Skip to content

[finding] The ablation restore leg is provable only by a WHOLE-TREE status — an agent that reasons about it without running the preflight has no rule telling it so #13293

Description

@os-elon

Follow-up to #13265 / PR #13288, filed at the dispatching PM's ruling rather than by that card's dev (it named the residue and correctly declined to fold a governed-surface prose change into a code PR).

The residue

PR #13288 closes this mechanically for anyone who runs scripts/ablation-dist-preflight.mjs: the script now reads git status --porcelain over the whole worktree and refuses on a restore leg whose tree still differs from HEAD.

It cannot reach an agent that never runs the preflight and reasons about the restore leg from per-path proofs alone. That agent is not hypothetical — it is the exact shape of the incident #13265 was filed about.

Why per-path proofs are not enough, measured

From #13265's reproduction. After mutating a packages/spec source, building, then restoring only the source:

proof result on a tree that is NOT restored
git diff HEAD -- THE_SOURCE_PATH empty (0 lines)
git hash-object THE_SOURCE_PATH equal to the HEAD blob
grep -c MARKER THE_SOURCE_PATH 0
git status --porcelain (whole tree) 1 dirty pathpackages/spec/authorable-surface/data.json

All three per-path proofs pass on a tree that is still dirty. The leak is in a generated, committed artifact the build rewrote as a side effect, which no per-path check on the mutated file can see. The next build then refuses with 1 authorable key(s) disappeared from the contract — a false red attributable to the ablation, not the tree.

Proposed remedy

One sentence in the ablation discipline saying the restore leg is proved by a whole-tree git status --porcelain, never by a per-path diff.

⚠️ Governed surface ⇒ human merge. The text lives in .claude/agents/os-dev.md, with a twin in .claude/skills/dogfood-verification/SKILL.md. ⛔ Nothing here should be dispatched to a dev seat to edit.

What this card does NOT claim

Verification

node scripts/ablation-dist-preflight.mjs --self-test

and #13265 / PR #13288 for the full reproduction, including the differential against the pre-fix script.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions