Skip to content

packages/qa/dogfood/README.md step 4 still prescribes the ablation without the rebuild — the third copy of the procedure, in the lane #8246 could not reach #8366

Description

@hotlong

Filed unassigned by the dev seat on #8246 (PR #8365) — out of that card's graded lane, recorded rather than fixed in flight.

The shape

#8246 established that a dogfood ablation run against a stale dist/ goes green and silently certifies a vacuous test, and that no later CI run can expose it. Its graded scope put the remedy in two agent-facing documents (.claude/agents/os-dev.md, .claude/skills/dogfood-verification/SKILL.md) plus a pre-flight script, all landed in PR #8365.

There is a third live copy of the same instruction, and it is the one physically closest to the suite — packages/qa/dogfood/README.md, section "Adding a golden test", step 4:

  1. Prove it catches the bug: temporarily revert the relevant fix and confirm the test goes red. A green-on-the-bug test is not a gate.

That is the ablation procedure, stated correctly as far as it goes, and it stops exactly where the incident begins: it does not say to rebuild the package between "revert the fix" and "confirm the test goes red", and the reader of this file is by definition someone adding a test to the suite that consumes dist/. The false green is available to anyone who follows the README instead of the agent definition.

Why it was not folded into #8246

The grading comment on #8246 (2026-08-12 23:50Z) fixed that card's scope to the agent-definition/skill lane, and its triage comment warned that a packages/qa landing would re-route the card to another lane (domain:cli per the package table). Editing this README is a small change but it belongs to that other lane, so it is filed here rather than smuggled into a domain:skills PR.

Suggested fix (small)

One clause in step 4, pointing at the tooling PR #8365 lands:

  • rebuild the package after reverting, before judging the colour;
  • node scripts/ablation-dist-preflight.mjs PKG 'MARKER' (or --absent for a deleted guard) exits non-zero unless the consumed dist/ really carries the mutation.

Keeping the three copies structurally consistent is the point — the README copy is the one a human contributor is most likely to read first.

Refs: #8246, PR #8365.


Blocked-by: #8246

(Triage 2026-08-13: the step-4 clause this card prescribes cites scripts/ablation-dist-preflight.mjs, which lands only in PR #8365 — an ADR-class draft awaiting the maintainer's hand-merge. Dispatching before #8246 closes would document a script that is not on main.)

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions