Commit ba672e1
chore(spec): the field-file collection proof stops being an orphan tag (#4298)
`packages/qa/dogfood/test/field-file-collection.dogfood.test.ts` declares
`@proof: adr0104-field-file-collection`, but the ADR-0054 registry never
learned about it — so the liveness gate has been warning on every run since
#4285 landed the test:
⚠ 1 unregistered dogfood proof tag(s) — add to proof-registry.mts
That warning is the registry's reverse-integrity leg doing exactly its job:
an orphan tag means a proof was written but never wired into the high-risk
class list, so nothing connects the test to the surface it guards.
Registered as **honestly unbound**, not bound. The collection contract the
proof exercises is the `lifecycle` ttl declared on the SYSTEM object
`sys_file` (service-storage), not an authorable per-type property — and
`object.lifecycle` is already bound to `data-lifecycle`, which carries one
`proof` ref. The rest of the route (exclusive ownership, release-on-write,
the per-deployment migration gate) is service code with no authorable
surface to govern, so there is no other entry to bind instead. Faking a
binding would misrepresent both what the proof covers and what that entry
is proven by; `blockedReason` records the reason instead, the same shape as
`flow-runas-userless` and `scope-depth-cli-fallback`.
Enforcement is therefore unchanged: `BOUND_PROOF_PATHS` skips unbound
classes, so the bound-class list and the pinned path map are byte-identical.
The only behavioural change is that the gate now runs clean.
Verification: `check:liveness` green with the warning gone; liveness script
suite 98/98; spec suite 277 files / 7128 tests; `tsc --noEmit` clean.
Gate-only change under `packages/spec/scripts/`, which is not in the
package's published `files` — empty changeset.
Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>1 parent ab16331 commit ba672e1
2 files changed
Lines changed: 28 additions & 0 deletions
File tree
- .changeset
- packages/spec/scripts/liveness
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
482 | 482 | | |
483 | 483 | | |
484 | 484 | | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
485 | 509 | | |
486 | 510 | | |
487 | 511 | | |
| |||
0 commit comments