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
Problem — The research loop's gates live as prose in a card and the dev walk's gates live as prose in skills; neither is data, so the campaign layer can't consume them, completeness can't be checked, and the two packs can't be compared or floors enforced. Approach — Extract both gate packs as schema'd TOML fixtures in amicode (open contract): the research pack from the live autoresearch protocol, the dev pack from the develop/implementer walk — plus the pack schema and the mapping-completeness test with non-triviality floors. Scope — in: pack TOML schema, both pack fixtures, the mapping-completeness suite (forward + reverse + floors + distinctness) · out: the mode cards that reference them, the campaign-layer consumption (docs slice), the dual-harness grep.
Mapping complete forward (every phase ≥ 1 gate, one closing artifact, every gate has owner+kind, every role in ≥ 1 phase) and reverse (every gate in a phase, every role in a pack, every handoff has a target kind)
Floors: ≥ 3 phases, ≥ 5 gates, ≥ 1 gate of each kind, ≥ 1 role per phase-with-roles, ≥ 1 handoff, per pack; gate names unique within a pack; procedure texts pairwise distinct (normalized-text equality)
Testing Decisions
New surface (first TOML fixtures in the protocol suite); the mapping test IS the spec's gate_pack_mapping_complete criterion — this slice delivers it.
Key Decisions
Gates as data, not prose: the campaign layer selects manifests by phase name from these files. The research pack's floor-clearing gates come from the live protocol (advisory closure, ledger commit are real gates, not filler). Kind assignments: mechanical = command-derived verdicts; human = promotion/sign-off; derived = state computed from artifacts.
Constraints & Invariants
Zero blocklisted strings (protocol layer). Field names exactly per the spec's data contracts.
Prior Art
The autoresearch skill's loop; the develop + implement-issue skills (the dev walk being extracted); the spec's D2.
Source
Part of 497 · spec spec-20260822-063957-auto-rd-two-modes.md (D2, Measurement Protocol) · no blockers.
Important
Problem — The research loop's gates live as prose in a card and the dev walk's gates live as prose in skills; neither is data, so the campaign layer can't consume them, completeness can't be checked, and the two packs can't be compared or floors enforced.
Approach — Extract both gate packs as schema'd TOML fixtures in amicode (open contract): the research pack from the live autoresearch protocol, the dev pack from the develop/implementer walk — plus the pack schema and the mapping-completeness test with non-triviality floors.
Scope — in: pack TOML schema, both pack fixtures, the mapping-completeness suite (forward + reverse + floors + distinctness) · out: the mode cards that reference them, the campaign-layer consumption (docs slice), the dual-harness grep.
Acceptance Criteria
Testing Decisions
New surface (first TOML fixtures in the protocol suite); the mapping test IS the spec's
gate_pack_mapping_completecriterion — this slice delivers it.Key Decisions
Gates as data, not prose: the campaign layer selects manifests by phase name from these files. The research pack's floor-clearing gates come from the live protocol (advisory closure, ledger commit are real gates, not filler). Kind assignments: mechanical = command-derived verdicts; human = promotion/sign-off; derived = state computed from artifacts.
Constraints & Invariants
Zero blocklisted strings (protocol layer). Field names exactly per the spec's data contracts.
Prior Art
The autoresearch skill's loop; the develop + implement-issue skills (the dev walk being extracted); the spec's D2.
Source
Part of 497 · spec
spec-20260822-063957-auto-rd-two-modes.md(D2, Measurement Protocol) · no blockers.