traceability: give CONTEXT acceptance criteria IDs so an audit can prove every criterion reached the checklist #76
Labels
No labels
already-shipped
bug
documentation
duplicate
enhancement
good first issue
help wanted
in progress
invalid
needs-decision
proposal
question
wontfix
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: crenshawdev/cadence#76
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Split out of #70, which was rejected on its own kill condition. This is the defect that measurement actually found.
What happened
Two CONTEXT acceptance criteria in v1.4.0 phase 1 got no UAT item at all when the checklist was built:
files: ["a\"b.md", "c\"d.md"]produces a diagnostic rather thanissues: []plan-overlapreportssrc/x(1)and a backtick-bearing path as overlapping byte-exactRound 1 of the checklist (
95ddced, 15 items) contains neither. They appear only in round 2 (9330e9c, 23 items) as items 16 and 17. They were recovered because a second/cad-verifypass happened to run, not because anything detected the omission.2 of 122 acceptance criteria across the shipped history, so 1.6%, silently dropped at checklist-build time.
Why this is not #70
#70 proposed IDs on truths and UAT items to stop wording drift breaking a merge. The measurement found zero instances of that across 139 merged findings, for a structural reason:
kalready serves as the ID on the one boundary where a merge happens.This failure is a different shape. Nothing drifted and no merge mismatched. A criterion simply never became an item, and no artifact records that it should have. IDs on truths and UAT items would not have caught it. An ID on the acceptance criterion would, because then an audit can assert a total function: every AC-ID in CONTEXT has a UAT item pointing at it.
What you want Cadence to do
Give CONTEXT acceptance criteria stable IDs, and have
/cad-auditassert coverage in both directions: every AC has at least one UAT item, and every UAT item traces to an AC or is explicitly marked as a verifier-added gap.The pattern is already proven in-repo rather than imported.
REQUIREMENTS.mdassigns IDs, plan frontmatter carriesrequirements, and/cad-audittraces by ID. This is the same mechanism applied one artifact further down.What it costs
Ordinals are not IDs, and the data says so. UAT
ktracks the AC ordinal in only 98 of 122 cases (80%); the rest are offsets where an extra item got interleaved. Sokcannot be reused as the AC identifier, and a new stable ID is needed rather than a positional convention.Renumbering.
/cad-phasealready handles phase renumbering on insert or remove; AC IDs would need the same care, and an ID that renumbers under the user is worse than none.Scope discipline, carried over from #70. Extend IDs only where an audit consumes them. Any artifact that gains an ID nothing reads is bookkeeping the user pays for.
The honest counter-argument. n is 2. One phase, one cycle, and a second verify pass recovered both. If the fix costs more than a second
/cad-verifypass, it is not worth it. What tips it is that the recovery was luck rather than detection: nothing reported the gap, and on a phase where no second pass runs, the criteria stay dropped and the phase reads as verified.Related