Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions .claude/context/nats-subjects.md
Original file line number Diff line number Diff line change
Expand Up @@ -2073,3 +2073,32 @@ This is analogous to HTTP path versioning (`/api/v1/`) vs content-type versionin
- Runtime dependencies: `nats` CLI, `hbbs` / `hbbr` systemd journals, `/var/log/pmoves`, and a NATS broker reachable from KVM2
- Auth split: `TAILSCALE_AUTHKEY` joins nodes; `TAILSCALE_API_KEY` is for admin API operations and is not used to publish watcher events
- Reachability caveat: the repo-default NATS broker is localhost-only on port `4222`, so remote watcher publishes stay blocked until one broker is exposed on a Tailscale-reachable interface


## Validation Subjects (MiSSinGLinC external peer review)

> Namespace `validation.*` introduced by the MiSSinGLinC mint
> (`pmoves/docs/AGENTS/MISSINGLINC_MINT_SPEC.md`, 2026-08-09). The branded
> namespace table addition in `.claude/context/self-hosted-defaults.md` is
> staged in the mint PR body — that file is damage-control protected, so the
> table row lands via operator apply.

**`validation.run.requested.v1`**
- **Direction:** Published by rooms/agents requesting validation -> Consumed by missinglinc-validator
- **Purpose:** Request an external peer-review validation run: `{claim_set, evidence_corpus_refs, validation_depth}`
- **Status:** REGISTERED-AHEAD — publisher lands with the MiSSinGLinC service (mint spec Wave-0; no consumer live yet)

**`validation.verdict.ready.v1`**
- **Direction:** Published by missinglinc-validator -> Consumed by rooms, Makeda voice readout (persona.makeda.missinglinc), Hi-RAG ingest
- **Purpose:** Structured validation verdict with per-claim evidence chains and CHIT CGP proof packet
- **Status:** REGISTERED-AHEAD — see mint spec

**`validation.evidence.chain.v1`**
- **Direction:** Published by missinglinc-validator -> Consumed by graph persistence (Neo4j lane), audit surfaces
- **Purpose:** Claim -> evidence -> source graph (JSON-LD) for a completed validation run
- **Status:** REGISTERED-AHEAD — see mint spec

**`validation.counter.evidence.v1`**
- **Direction:** Published by missinglinc-validator (adversarial depth only) -> Consumed by rooms, alerting
- **Purpose:** Counter-evidence report: contradictions found while red-teaming a claim set
- **Status:** REGISTERED-AHEAD — see mint spec
30 changes: 30 additions & 0 deletions pmoves/config/agent_registry.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2556,6 +2556,36 @@ agents:
compose_profile: agents
description: "Fordham room host/concierge; routes resident intent to the 4 specialists. No money/vote authority. Runtime-minted by Archon."

missinglinc_validator:
name: "MiSSinGLinC Validator"
class: specialized
primary_type: agent
secondary_type: api
port: null
health: "/healthz"
layers: [L2, L4]
evolution_stage: stage_0
nats:
publishes: ["validation.verdict.ready.v1", "validation.evidence.chain.v1", "validation.counter.evidence.v1"]
subscribes: ["voice.agent.response.v1", "ingest.file.added.v1", "validation.run.requested.v1"]
chit_toggles:
delta_sensitive: false
kappa_sensitive: false
hz_sensitive: false
swarm_participant: false
attribution_gated: true
resilience:
context_budget: medium
checkpoint_frequency: per_action
recovery_strategy: cipher_resumable
cipher_categories: [agent_plan, agent_completion]
topology:
node_affinity: [powerfulmoves, pmoves-laptop]
team: orchestration
ci_runner: ai-lab
compose_profile: agents
description: "External peer-review validator (DangerRuss frame) built on PMOVES-mike; adversarial claim validation with cryptographic evidence chains. Audits only - never drafts. Wave-0 staged; runtime-minted by Archon. Spec: pmoves/docs/AGENTS/MISSINGLINC_MINT_SPEC.md"

fordham_onboarding:
name: "Fordham Onboarding"
class: specialized
Expand Down
1 change: 1 addition & 0 deletions pmoves/configs/agent-teams.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ teams:
- space_agent # Port 3010 — spatial/canvas agent
- a0_plugins # Agent Zero community plugin index + validation CI
- hermes_agent # HERMES gateway/reasoning agent (hermes-agent.room.control)
- missinglinc_validator # External peer-review validator (DangerRuss frame; 4090-field.room.control; mint spec MISSINGLINC_MINT_SPEC.md)

implementation:
name: "Implementation"
Expand Down
179 changes: 179 additions & 0 deletions pmoves/docs/AGENTS/MISSINGLINC_MINT_SPEC.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
# MiSSinGLinC — External Peer-Review Validator: AgentMintSpec (Wave-0 staging)

> Mint ritual: `.claude/commands/archon/mint-agent.md` · Contract:
> `pmoves/docs/handoffs/ARCHON_MINT_CONTRACT_REVIEW.md` · Format precedent:
> `pmoves/docs/pilots/fordham-hill/05-room-agents-mint-specs.md`.
>
> Provenance: drafted by Agent Zero (work order `archon-update-ocr-6dbb43e2`,
> deliverable 2026-08-08), **reviewed and code-verified** by 5090-CLAUDE
> (Claude Fable 5) on 2026-08-09 against `PMOVES-mike @ 204d2d5` — every
> claimed build-base module confirmed present (see § Verification). Operator
> anchor: DARKXSIDE directive, 5090 session 2026-08-07 (mint MiSSinGLinC from
> PMOVES-mike; external-peer-review frame, persona alias DangerRuss).

## Why this agent

MiSSinGLinC does not draft — it audits. It is the external-peer-review
validator for PMOVES agent output: adversarial claim validation,
evidence-chain construction, and citation verification against source
documents and external authorities, returning structured verdicts with
cryptographic evidence chains. The build base is PMOVES-mike (fork of MikeOSS,
an open-source TypeScript legal-AI platform), whose existing modules map
directly onto the validator's needs — reuse, not rebuild.

## AgentMintSpec

```yaml
apiVersion: archon.mint.agent.v1
kind: AgentMintSpec
metadata:
agent_name: missinglinc-validator
agent_id: f52112c8-82ec-428b-8337-8215ae3e6a55 # staged; Archon factory may reissue
room_id: 4090-field.room.control # reviewer role-class → Control body
stage: rehearsal
owning_persona: DARKXSIDE
creator_id: "<supabase auth.users.id — resolved at mint Step 0 (operator OAuth)>"
persona_alias: DangerRuss
frame: external-peer-review
tags: [validator, peer-review, evidence-chain, citations, chit, dangerruss]
spec:
role: >-
External-peer-review validator. Consumes other agents' outputs, extracts
claims, verifies each against an evidence corpus and optional external
authorities, and returns a structured validation verdict with per-claim
evidence chains and cryptographic proofs. Audits only — never drafts,
never adjudicates beyond the verdict schema.
role_class: reviewer # AGNOTE4482 Three-Body surface: Control
team_ref: orchestration # bare key per pmoves/configs/agent-teams.yaml
node_affinity: [powerfulmoves, pmoves-laptop] # 5090 + 4090
model:
provider: tensorzero
routing: hybrid
fallback: ollama
build_base:
repository: github.com/POWERFULMOVES/PMOVES-mike
verified_at: "204d2d5"
language: TypeScript
architecture: Express backend + Next.js frontend
key_modules: # each verified present 2026-08-09
- backend/src/lib/chat/verifyCitations.ts # exact-match quote verification
- backend/src/lib/chat/citations.ts # citation extraction/parsing
- backend/src/lib/manifestSigning.ts # Ed25519 signing (pkcs8 der)
- backend/src/lib/chat/tools/toolDispatcher.ts # validation orchestration loop
- backend/src/lib/courtlistener.ts # external case-law verification
- backend/src/routes/caseLaw.ts
capabilities:
- claim_extraction # structured claims from agent output (tabular review pattern)
- quote_verification # surface level — verifyCitations exact match
- semantic_validation # deep level — LLM-judge equivalence + multi-hop chains
- counter_evidence_search # adversarial level — Hi-RAG corpus sweep for contradictions
- evidence_chain_graph # claim→evidence→source graph (JSON-LD; Neo4j optional)
- chit_verdict_packets # verdict encoded as CGP for Hi-RAG ingest + bus broadcast
validation_depths: [surface, deep, adversarial]
skills:
- pmoves-cipher-memory
voice:
persona: persona.makeda.missinglinc # FlOO$ Makeda scoped child (taxonomy v0.2.0)
allowed_moods: [professional, assertive]
verdict_tones:
verified: makeda_assertive
partially_verified: makeda_formal
failed: makeda_assertive
counter_evidence: makeda_formal
chit_tier: Partial # emits signed CGP verdict packets; not a full
# CHIT-aware service yet — see
# pmoves/docs/audit/CHIT_INTEGRATION_STATUS.md
nats:
consume:
- voice.agent.response.v1 # registered agent-output subject (nats-subjects.md)
- ingest.file.added.v1
- validation.run.requested.v1
publish:
- validation.verdict.ready.v1
- validation.evidence.chain.v1
- validation.counter.evidence.v1
# validation.* is a new branded namespace — subjects registered in
# .claude/context/nats-subjects.md in this PR; the namespace table row in
# .claude/context/self-hosted-defaults.md is STAGED FOR OPERATOR APPLY
# (protected file — see Open gate 0).
Comment on lines +95 to +98

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Register the validation namespace before claiming QA pass

When this manifest is submitted to the current archon-qa-agent, all four validation.* subjects fail its branded-namespace check: .claude/agents/archon-qa-agent.md only accepts namespaces registered in .claude/context/self-hosted-defaults.md, whose minted-artifact rule requires a new namespace addition before merge. Staging that row for a later operator action therefore makes the recorded QA PASS non-reproducible and blocks the factory gate; land the namespace row with this staging change or do not mark the agent as QA-passed yet.

Useful? React with 👍 / 👎.

service_dependencies:
required:
- {service: pmoves-mike-backend, endpoint: "POST /api/chat"}
- {service: nats, port: 4222}
optional:
Comment on lines +99 to +103

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Declare deployment tiers before passing the tier check

When archon-qa-agent runs its mandatory tier audit, this manifest fails because it declares only service routes and ports, with no dev/staging/prod tiers or explanation of how endpoint URLs vary through tier-specific environment variables. The QA definition explicitly requires both pieces, so the receipt's tier pass cannot be reproduced; add a tier/environment declaration before treating this artifact as QA-approved.

Useful? React with 👍 / 👎.

- {service: hi-rag-gateway-v2, port: 8086, endpoint: "POST /hirag/query"}
- {service: courtlistener-api, endpoint: "GET https://www.courtlistener.com/api/rest/v4/"}
- {service: neo4j, port: 7687}
compute: {gpu: optional, memory: 4GB, timeout_seconds: 300}
proofs:
source_hashing: sha256_per_document
span_hashing: sha256_per_text_span
signing: chit_cgp_v0.1
signing_context: "missinglinc-validation-v1\n"
key_management: ed25519_pkcs8_der
guardrails:
authority: verdict-only # audits and reports; never drafts content
drafting: forbidden # consumes others' output, produces verdicts only
adjudication: verdict-schema-only # no authority beyond the structured verdict
evidence_required: true # every verdict claim carries an evidence chain
transparency_only: true
agent_zero: { subordinate: true, report_to: agent_zero }
lifecycle: { emits_on_mint: archon.mint.agent.v1, confirms_with: archon.mint.confirmed.v1 }
```

## Persona doc (ritual Step 4 template — staged until `PMOVES-agents.md/` populated)

```markdown
---
name: missinglinc-validator
role: External-peer-review validator — audits agent output via claim extraction, evidence-chain verification, and citation checks; never drafts
role_class: reviewer
room: 4090-field.room.control
Comment on lines +127 to +131

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Supply the frontmatter fields required by the QA gate

When the staged persona artifact is used for QA, the schema check fails: .claude/agents/archon-qa-agent.md requires name, a one-line description containing a trigger and example, and tools intersecting the canonical registry, but this template substitutes role and supplies neither description nor tools. No separate coding-agent definition is included in the commit, so the claimed schema pass has no compliant artifact to validate; provide the required agent definition/frontmatter or explicitly stage this as pre-QA.

Useful? React with 👍 / 👎.

owning_persona: DARKXSIDE
creator_id: <pending Step-0 OAuth>
minted_at: 2026-08-09
status: provisional
---
# MiSSinGLinC (DangerRuss)
## Mandate
Adversarial external peer review of PMOVES agent output with cryptographic
evidence chains. Verdicts are read out through FlOO$ Makeda's missinglinc
scope (professional/assertive only — never warm tones for verdicts).
## Mint trail
- Archon agent_id: f52112c8-82ec-428b-8337-8215ae3e6a55 (staged)
- NATS mint event: archon.mint.agent.v1 (staged below)
```

## Staged NATS payloads (schema: `pmoves/contracts/schemas/archon/mint.agent.v1.schema.json`)

```json
{"subject": "archon.mint.agent.v1", "payload": {"agent_id": "f52112c8-82ec-428b-8337-8215ae3e6a55", "agent_name": "missinglinc-validator", "room_id": "4090-field.room.control", "owning_persona": "DARKXSIDE", "ts": "<RFC3339 at publish>"}}
```

`archon.mint.confirmed.v1` follows operator confirmation (ritual Step 7).

## Verification (review pass, 2026-08-09)

- All six `key_modules` exist at `PMOVES-mike @ 204d2d5` (checked file-by-file).
- Ed25519 signing confirmed in `manifestSigning.ts` (+ tests); nonce-based
untrusted-content boundary confirmed in `chat/contextBuilders.ts`,
`prompts.ts`, `streaming.ts`.
- Room `4090-field.room.control` validated against `pmoves/config/rooms/catalog.json`.
- Voice scoping matches Agent Zero's persona taxonomy
(`tac-tree-persona-taxonomy.yaml` v0.2.0, `persona.makeda.missinglinc`).

## Open gates

0. **Branded-namespace table row** (operator apply — the file is
damage-control protected): add to `.claude/context/self-hosted-defaults.md`
namespace table:
`| `validation.*` | MiSSinGLinC external peer-review validation | `validation.run.requested.v1`, `validation.verdict.ready.v1`, `validation.evidence.chain.v1`, `validation.counter.evidence.v1` |`
(The four subjects are already registered in
`.claude/context/nats-subjects.md` §Validation Subjects.)
1. **Step 0 creator OAuth** (operator): Supabase Google sign-in resolves
`creator_id` before factory submission.
2. **Archon factory call**: Wave-2 (`archon:create-agent` MCP tool / REST
`POST /api/agents`) — staged manifest is the Wave-0 artifact per contract.
3. **QA gate**: archon-qa-agent pass recorded in the mint PR.
4. Full A0 source brief: work order `archon-update-ocr-6dbb43e2` deliverable
(Agent Zero workdir; harvested copy in 5090 session scratchpad 2026-08-09).
Loading