The row
- Ask does SW-REQ-041 satisfy SYS-REQ-022
- Stamp the shall is in Jama. the satisfies link is on the matrix
- Why a filled cell never asks whether auth_required landed on the child
Topic · obligation decomposition complete
Gist
Obligation decomposition complete is whether every class on a parent's obligation_checklist is carried by a satisfying child, matched by that child's tags, or suppressed on the parent. A green satisfies link is not enough. Proof runs proof audit --check obligation_decomposition_complete. Jama still authors.
proof audit --check obligation_decomposition_complete
Keep Jama if it already authors the shall. Keep a parent-to-child file split if you already decompose SYS into SW. Neither one asks whether auth_required on SYS-REQ-022 ever landed on the child that claims to satisfy it.
01 · The silent drop
A filled Jama cell never asks whether auth_required flowed one layer down. The same hole as a present-but-false poc_quality block.
The check is obligation_decomposition_complete. It walks every requirement that has entries on obligation_checklist. For each class it looks one layer down, at requirements whose traces.satisfies names this parent. Coverage is explicit (the same class on the child's checklist) or implicit (the child's tags match the class's applies_when). A parent suppression counts as resolved. The walk is per pair, not transitive: STK to SYS, SYS to SW, SW to INT, each hop on its own.
Severity defaults to warning. Two findings. The parent listed a class and has no satisfying children at all. Or it has children, and none of them carry the class. A deferral with a 32-character reason is tracked debt, counted in the summary, never a silent pass. A KI-linked deferral whose tripwire is still green is listed as accepted KI-debt. It is not a suppress.
proof audit --check obligation_decomposition_complete
# SYS-REQ-022 obligation_checklist: [auth_required]
# SW-REQ-041 traces.satisfies: SYS-REQ-022
# SW-REQ-041 obligation_checklist: []
# SW-REQ-041 tags miss auth_required applies_when
# warn: SYS-REQ-022: auth_required not on any satisfier
# silent drop: the child exists. the class did not
requirements decomposition is whether a child file copies the parent shall. This hop is not that split. obligation_baseline only asks whether a tag-matched class was listed. This hop asks whether a listed class flowed. A covering SYS-REQ on the parent list stays on obligation_completeness. Required triples stay on obligation_evidence_complete.
Fix one of three ways. Put the class on the child's checklist. Tag the child so the catalog matches it. Or suppress it on the parent with a rationale of at least 32 characters, if it does not flow at this layer. Defer it if it must flow later and you can name the tracking issue.
proof req edit SW-REQ-041 --add-obligation auth_required
proof catalog show auth_required
proof req edit SYS-REQ-022 --suppress-obligation auth_required
proof req edit SYS-REQ-022 --defer-obligation auth_required --tracking "#221"
02 · The exhibit
One system requirement. One software child. One catalog class. No child listing. No parent suppress. Click the tabs.
The row
This hop
Nobody asked whether the parent's class flowed. A satisfies link is not a carried obligation. The finding kind is this hop.
Class unreadThe row
Keep the Jama shall. Keep the satisfies link. That is not this hop.
Keep the recordProof
Same SYS-REQ-022 / auth_required. Silent drop, or this hop. Click the tabs.
| Surface | What they do | What Proof does | What we lose |
|---|---|---|---|
| Jama cell | A shall, and a satisfies link if you type it. | A warning the audit can name next to the uncarried class. | Not Jama's V&V. Jama still authors. We have not run a frozen Jama pack. |
| requirements decomposition | A parent shall split into owned child files. | Whether a listed class on that parent landed on a satisfier. | Not the child-file hop. See requirements decomposition. |
| obligation_baseline | Whether a tag-matched class was listed or suppressed. | Whether a listed class flowed one layer down. | Not the silent-omission hop. See obligation baseline. |
| obligation_completeness | Whether each listed class has a covering SYS-REQ. | Whether that covering child actually carries the class. | Not the covering-child hop. See obligation completeness. |
| obligation_evidence_complete | Whether required evidence kinds exist on the covering req. | Whether the class reached a covering req at all. | Not the triple hop. See obligation evidence complete. |
The teaching graph is still one parent class that never landed on a satisfier. Put it on the child, tag the child, suppress it on the parent, or defer it with a tracking issue. Do not treat a Jama cell as this hop. Do not treat a child-file split as this hop.
proof audit --check obligation_decomposition_complete --verbose
proof catalog show auth_required
proof catalog list --tag http_server
The child-file hop stays on requirements decomposition. The silent-omission hop stays on obligation baseline. The covering-child hop stays on obligation completeness. The triple hop stays on obligation evidence complete. The silent-no-op hop stays on obligation enforcement backed. Jama still authors. Proof vs Jama.
03 · The honest loss
A quiet proof audit --check obligation_decomposition_complete can still mean the parent listed nothing. Jama still authors.
The hop does not write the child's checklist. It does not write a suppression. Severity is warning; findings do not fail the first install. An empty checklist is a silent pass. The walk is one layer, not transitive: a SYS child that carries the class does not cover a missing SW grandchild. A suppress is resolved silence. A deferral is counted debt. Accepted KI-debt can report zero open warnings and still be listed. Opt-out is skip, never pass. The hop does not prove the Go. We have not scored this floor against a frozen Jama pack. The loss is named, not scored.
The child-file hop stays on requirements decomposition. The engagement stays on software correctness audit. Jama still authors.
04 · Nearby questions
What is obligation decomposition complete? Same question. Same URL.
Is this requirements decomposition? No. That hop is whether a child file copies the parent shall. This hop is whether a listed class on the parent landed on a satisfier. See requirements decomposition.
Is this obligation baseline? No. That hop is whether a tag-matched class was listed or suppressed. This hop is whether a listed class flowed. See obligation baseline.
Is this obligation completeness? No. That hop is whether each listed class has a covering SYS-REQ. This hop is whether that child carries the class. See obligation completeness.
Is this obligation evidence complete? No. That hop is whether required evidence kinds exist. See obligation evidence complete.
Is this obligation enforcement backed? No. That hop is whether a listed class has a signal or any evidence. See obligation enforcement backed.
Does a suppress count as flowed? Yes. A parent suppress is resolved. A deferral is not a suppress. It stays visible debt.
Does a green hop prove the Go? No. The hop does not execute a test. It does not prove the shall.
Is Proof a Jama alternative for the shall? No. Jama still authors. Proof vs Jama.