Skip to content

Implements: trailers are never relevance-checked — 51 of 73 production commits, and five repeater commits claim 'signed transfer manifests' #1402

Description

@dc0sk

Follow-up from #1371, split out rather than widening PR #1401. Found during the adversarial review recorded in docs/dev/reviews/review-1371-split-and-enforce.md, and re-derived independently before filing.

The gap

#1401 enforces relevance — a named capability must own at least one file the change touched — but only for Refactors:. Implements: names a requirement, and nothing checks that the requirement's covering capabilities own anything the change touched.

Measured over the last 400 commits, production-touching only:

Refactors:        22
Implements: only  51     <- never relevance-checked

Of the 51, 29 name a requirement whose covered_by capabilities own none of the touched files.

The systematic instance

Five repeater commits carry Implements: REQ-FUN-11, which reads "Support signed transfer manifests" and is covered by CAP-03 (manifest.rs) and CAP-71 (filexfer). The repeater crate is CAP-47.

commit subject touched (example)
59784df1 fix(repeater): identify while idle, under its own key openpulse-daemon/src/server.rs
42369e60 fix(repeater): recover from a panic without handing back a keyed rig openpulse-daemon/src/lib.rs
4d268836 fix(repeater): hand the repeater back so a stopped one can restart openpulse-daemon/src/lib.rs
ceaa3d4f fix(repeater): listen to rig_b's band before keying it openpulse-config/src/lib.rs
fcbb8594 fix(repeater): hear what the daemon hears, and be startable openpulse-config/src/lib.rs

That is the same copy-paste shape #1371 was filed for, in the half of the trailers nobody is checking — and it is the larger half.

Why it is not simply "apply the same rule"

Implements: is a requirement→capability→file join, not a direct one, so the rule has a choice the Refactors: case does not:

  1. Require the requirement's covered_by capabilities to own a touched file. Direct analogue. But it inherits every narrowness in covered_by: 29 of 51 flag today, and an unknown share of those are map gaps rather than mislabels — the same 09048b84 shape that made me briefly adopt the wrong predicate in feat(trace): enforce trailer relevance, on the path that actually guards main (#1371) #1401.
  2. Report-only for Implements: until the flagged 29 are triaged.
  3. Triage the 29 first, then enforce — the ordering the 2026-09-15 decision used for code:, which worked.

Option 3 looks right by precedent, but the triage is the work and it is not clerical: telling a mislabel from a narrow covered_by needs reading each commit.

Prerequisite

The 29 need adjudicating before any of this is a gate, exactly as the 8 Refactors: failures were adjudicated in review-1371-capability-ownership.md (7 true mislabels, 1 map gap). Until then the honest statement is that half the trailers on main carry an unchecked claim.

Related: #1371, #1283 (give requirements a verification: field).

🤖 Generated with Claude Code

https://claude.ai/code/session_0188ATCj6DZ9aRVQ2vSirua6

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions