docs(decisions): 0258 — the Filed by an agent footer is a wire format fabrika owns (#4759) - #5285
Conversation
No preview deploy
|
|
review-doc: advisory — blocking-set PR (§CP — approval-gated) PR #5285 is §CP. Path axis is clear — My verdict is advisory only: it does not authorize a merge. Under the §CP hard gate (ADR 0135), Reviewed-head: @ b834d4e Class fan. Verified against #4759's acceptance criteria + doc hygiene — all checks pass: Acceptance criteria (triage seed, #4759 comment)
The two-rulings handling — ruled CORRECT I read both rulings first-party rather than through the PR body.
These name different artifacts and the conflict is real. The ADR follows the later ruling and Three things make it more than mere recency. First, the seed's own reasoning for naming §4.5 was The #4619 layer is handled correctly too. The ruling's own words — "the footer format is the Grounding correction — independently verified at source, not from the PR body The claim that the seam is now code-to-code on both sides holds exactly:
So the intake note and triage's "no consumer-side artifact to pin against" were both true when Every other source claim was re-verified at a freshly fetched ADR number 0258 — uncontested at this head Enumerated the reservation set myself: Doc hygiene
ADR contradiction sweep (Step 4a)
Deviation disclosure (§DEV)
Read the PR head (§HEAD): all files under review sourced from Verdict-written: 2026-08-10T05:12:02Z |
…me, never by backfill (#5041) Repair round 1, addressing review-doc's FAIL on PR #5273. F1 — the ADR recorded the opposite of what was ruled. The founder ruled directly at 2026-08-10 ~07:43Z on #5041: LAZY cutover, no bulk backfill. That confirms the founder-delegated ruling of 2026-08-10T00:15:28Z on the same issue, which the first draft contradicted and cited nowhere. The decision is re-recorded as lazy: absence of a `ready-for:` label stays an exclusion, the label is applied at triage time going forward, and the already-triaged rows are not backfilled. The ruling history is now in `## Context` as its own table, and backfill-first is written up as a rejected option with the false-signal reason. Rewritten rather than amended: this is an unmerged draft, and the landed record must read as one coherent decision. F2 — renumbered 0253 -> 0254. PR #5271 opened 28 seconds earlier and owns 0253. Re-enumerated at repair time: main carries 0250-0252, 0255, 0270 (no 0253/0254); open PRs claim 0253 (#5271 and this one), 0256 (#5281), 0257 (#5282), 0258 (#5285), 0237 (#4703), 0235 (#4614). 0254 is free. The slug changed with the decision.
Fixes #4759
Records the founder-delegated ruling of 2026-08-10 on #4759 as ADR 0258,
.decisions/0258-report-footer-is-a-pinned-wire-format.md. Purely additive: one ADR file, no otherchange.
The ruling this records
It is the same ruling #4892 got, so the ADR applies ADR 0251's rule (re-implement calls, pin
formats) to a second shared format rather than inventing a new one. ADR 0238 stands unchanged on
calls; ADR 0159 keeps the marker's meaning and only the ownership of its bytes is settled here.
The #4619 operator-authorship ruling is named as the policy layer above this mechanical one, and is
explicitly not weakened.
Acceptance criteria (from triage's seed)
reconciled against ADR 0238's call ban and the deletion test. It does: one
wireschemamodule + registry row + a committed fixture file. The pin is a test-time file read, not an
import or a call, so 0238 is untouched; the v1-side conformance test lives in
packages/pipeline-cli/and is deleted with v1, so the deletion test passes in the directionthat matters.
packages/fabrika-cli/src/report/compose.ts(emits through the module),claude-plugins/kampus-pipeline/skills/report/footer.sh(conforms by a v1-owned test), andclaude-plugins/kampus-pipeline/skills/wayfinder/SKILL.md— which is ruled not a producer,because prose telling a model to write bytes has no pin a test can hold, so it must call the
one emitter. That third row is stated as the honest limit of the ruling.
names both halves — see
## Deviations, this is where the ADR departs from the seed.report note's deliberate omission is preserved. Stated in the Decision and repeated inthe Banned list; the test asserting its absence stays.
Filed by an agentfooter as a wire format — module, fixture, registry row, and the two conformance tests (ADR 0258) #5284 carries the module, the fixture, theregistry row, both conformance tests, and the migration of the two skill-contract shape
restatements into the module.
Grounding
Every source claim was re-verified at
origin/mainwhile writing, not taken from the intake note.One of them changed the shape of the fix: the report and triage both recorded that there was no
consumer-side artifact to pin against — true when each looked, and no longer true.
packages/fabrika-cli/src/triage/provenance.tsnow shipshasAgentFooter(
/^<sub>Filed by an agent/m), whichtriage killre-runs itself. The seam is code-to-code on bothsides today, which is why the ADR can rule "the reader becomes the module's
read" rather than"there is nothing to pin." The ADR's method lesson records this.
Also verified rather than assumed: the deliberate divergence between the anchored reader and
file-verb.ts's bare substring read-back (both docblocks state it), and the two existing shaperestatements in
claude-plugins/fabrika/skills/report/contract.mdandclaude-plugins/fabrika/skills/triage/contract.mdthat ADR 0241 bans and this format's module givesa home.
Deviations
The ruling and triage's seed name different authorities for the pin; the ADR follows the later
ruling and says so out loud. Triage's acceptance criteria (2026-08-02) asked the pin to assert
against "the
gh-issue-intake-formats.md§4.5 / ADR 0159 contract, not either implementation." Thefounder-delegated ruling (2026-08-10) puts the byte authority in fabrika's
wirecontract instead.Those are different artifacts — v1's formats doc versus fabrika's owner module. The ADR follows the
ruling, and reconciles the seed's actual concern two ways: the authority is still neither
implementation (the module owns the bytes, both producers become conformers), and ADR 0159 keeps
the authority over the marker's meaning. The ADR carries this in its own
## Deviationssection andrecords that the veto is open — if the founder wants §4.5 to hold the byte authority, the ADR is
amended.
ADR number. 0258 was pre-assigned by the dispatcher. Re-verified before committing:
origin/maintops out at 0252 and the in-flight reservation set (open PRs adding a
.decisions/NNNN-*.md) topsout at 0257, so
max(union) + 1is 0258. The enumeration agrees with the assignment.Contradiction sweep run, nothing to cite.
adr/scripts/sweep-shortlist.shreturned eightlexically adjacent live-accepted ADRs (0246, 0242, 0152, 0244, 0245, 0252, 0236, 0229). Each was read
against the questions this ADR settles — who owns a shared byte format, and how a non-owner conforms.
None rules on either; the adjacency is vocabulary overlap (provenance, fabrika, reader), not a
same-question decision. Nothing superseded, nothing amended-in-part.
No vocabulary impact. Wire format is coined in ADR 0241 and applied here; filing provenance
and the never-auto-close signal are ADR 0159's and are used, not redefined. Recorded explicitly in
the ADR's
## Records.Routing note
.decisions/**matches no CODEOWNERS row, but ADR 0164 classifies by content as well as path — areviewer should run the content probe rather than assume this auto-ships.