You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Subagent evidence packets + report surfacing in-product — the product side of the one-contract-three-natives #1292
Problem — Product subagents communicate through prose in transcripts: the director/subagent boundary passes briefs and returns summaries, but there is no typed evidence-packet contract — no bounded receipts, no measured parent consumption, no fresh-context handoff discipline — and the campaign reports (the 1-page loop and 2-page synthesis artifacts) have no in-product surface. The PI decision (2026-09-20): first-class agent/subagent communication across the product, the ops repo, and the harness, one contract. Approach — Implement the product side of the shared evidence-packet contract (the public schema lands in the schema package as contract of record; the harness and ops rows carry their native sides): subagent casts emit typed packets — claim, receipt, verified evidence lines, counters, bounded — instead of uncapped prose; the casting surface records routing reasons (by evidence need); child casts run bounded and default-off with typed partials on exhaustion; the parent's consumption is observed (does the next parent decision cite the packet?); roles hand off fresh context (packet + pointer, never the parent transcript). Plus the report surface: campaign report artifacts (the harness's generated reports, mirrored to the vault) render in-product — the PI reads the loop's legible output where the PI already works. Scope — in: the schema package's packet contract (the public contract of record), the product's subagent cast/return path adopting it, the consumption observation, the report artifact surfacing in the app's viewer surfaces. out: the harness's campaign-role implementation (its repo's row), the ops nightly-pass implementation (its repo's row), the report generator itself (the harness's row). Assumptions — The product's subagent surface is the cast/return seam (the same seam the orchestrated implementer flow uses); adopting packets there covers all postures without a new agent kind.
Acceptance Criteria
The packet schema is versioned in the schema package: claim, receipt, evidence lines (each verifiable against its archive), counters — with a bounded-size invariant and a version stamp
A subagent cast returns a packet; the seam rejects uncapped-prose returns with a typed repair request (the existing malformed-call repair pass, extended)
Routing by evidence need: a cast carries its routing reason; a cast without a need-reason is refused by the casting surface (the question-is-free, spend-is-not rule)
Child casts are bounded (turns/tokens per cast, default-off for new cast types) and exhaustion returns a typed partial with completed-work evidence
Parent consumption is observable: the session record shows whether a subsequent parent decision cited the packet, and the digest surfaces unconsumed packets
Campaign report artifacts (loop report, campaign synthesis) render in-product from the vault mirror — the artifact's provenance (campaign, spine prefix) rides the surface, and the viewer degrades honestly when the artifact is absent
The three implementations agree: the schema package's conformance test table is consumed by the harness and ops rows (one contract, three natives — a parity test pattern the repo already uses)
Testing Decisions
Extend the subagent/cast tests (packet typing, bounded returns, routing refusal) and the schema conformance suite (the packet contract's table). The report surface extends the app's artifact-viewer tests with the mirror-present and mirror-absent cases.
Key Decisions
The schema is public in the product's schema package — publish the gym equipment, keep the training program (the consolidation doctrine); the harness and ops consume the published contract, not a private mirror.
Packets are session events in the product's record — the same transactional, replayable spine the harness uses; prose remains the voice, packets are the cargo.
Fresh-context handoffs preserve the posture boundary: roles receive packets and pointers, never parent transcripts — the anti-leak rule both for context efficiency and for isolation.
Report surfacing is read-only projection: the app renders artifacts; it never becomes the report's source of truth.
Constraints & Invariants
No uncapped prose crosses the cast boundary, ever — the invariant the three surfaces share.
Every packet's evidence lines are verifiable; unverifiable lines are typed failures (the anti-fabrication rule, extended to the product plane).
Consumption observation is honest telemetry, never a gate on the child (an unconsumed packet is information about the parent's decision, surfaced for tuning).
Prior Art
The SoL-Pi delegation family and swarm experiment (the design sources), the harness's subagent receipt discipline (the typed-receipt precedent all three planes inherit), the campaign-report contract spec (the artifact being surfaced), the vault F1 mirror rule (the artifact path), the parity-test patterns (the one-contract-three-natives mechanism).
Source
Composes with harmoniqs/Telaio.jl#75 (the harness-side evidence-packet contract — this row's schema lands first as the contract of record; Telaio conforms to it) and harmoniqs/Telaio.jl#72 (the report generator whose artifacts this row surfaces).
Notes
Locked as one contract, three native implementations (product, harness, ops) at the 2026-09-20 PI decision — the cross-repo split is deliberate: schema public, implementations local, parity via shared conformance tables. Depends on the harness rows for the packet mechanics' reference implementation; this row's schema can land first and the others conform to it.
Important
Problem — Product subagents communicate through prose in transcripts: the director/subagent boundary passes briefs and returns summaries, but there is no typed evidence-packet contract — no bounded receipts, no measured parent consumption, no fresh-context handoff discipline — and the campaign reports (the 1-page loop and 2-page synthesis artifacts) have no in-product surface. The PI decision (2026-09-20): first-class agent/subagent communication across the product, the ops repo, and the harness, one contract.
Approach — Implement the product side of the shared evidence-packet contract (the public schema lands in the schema package as contract of record; the harness and ops rows carry their native sides): subagent casts emit typed packets — claim, receipt, verified evidence lines, counters, bounded — instead of uncapped prose; the casting surface records routing reasons (by evidence need); child casts run bounded and default-off with typed partials on exhaustion; the parent's consumption is observed (does the next parent decision cite the packet?); roles hand off fresh context (packet + pointer, never the parent transcript). Plus the report surface: campaign report artifacts (the harness's generated reports, mirrored to the vault) render in-product — the PI reads the loop's legible output where the PI already works.
Scope — in: the schema package's packet contract (the public contract of record), the product's subagent cast/return path adopting it, the consumption observation, the report artifact surfacing in the app's viewer surfaces. out: the harness's campaign-role implementation (its repo's row), the ops nightly-pass implementation (its repo's row), the report generator itself (the harness's row).
Assumptions — The product's subagent surface is the cast/return seam (the same seam the orchestrated implementer flow uses); adopting packets there covers all postures without a new agent kind.
Acceptance Criteria
Testing Decisions
Extend the subagent/cast tests (packet typing, bounded returns, routing refusal) and the schema conformance suite (the packet contract's table). The report surface extends the app's artifact-viewer tests with the mirror-present and mirror-absent cases.
Key Decisions
Constraints & Invariants
Prior Art
Source
Composes with harmoniqs/Telaio.jl#75 (the harness-side evidence-packet contract — this row's schema lands first as the contract of record; Telaio conforms to it) and harmoniqs/Telaio.jl#72 (the report generator whose artifacts this row surfaces).
Notes
Locked as one contract, three native implementations (product, harness, ops) at the 2026-09-20 PI decision — the cross-repo split is deliberate: schema public, implementations local, parity via shared conformance tables. Depends on the harness rows for the packet mechanics' reference implementation; this row's schema can land first and the others conform to it.