The stamp
- Ask did validate still print clean
- Stamp SYS-REQ-200 last pass. live shall, empty satisfies
- Why the island is 100% covered inside itself. nobody asked who needed it
Topic · system requirements linked
Gist
A SYS-REQ with empty satisfies: is intent without provenance. Proof runs proof audit --check system_requirements_linked. A green lint on that file is not a stakeholder need. Jama still authors.
proof audit --check system_requirements_linked
Keep the live shall if it is still true. Keep Jama if it already holds it. Neither one fails the merge when the SYS-REQ never pointed up.
01 · The silent orphan
You can keep a system shall after the stakeholder file that needed it was never linked. Lint still prints clean. Traceability still prints 100% on the island.
The check is system_requirements_linked. It is SPEC-stage preflight. Default severity is error. The hop reads each active SYS-REQ against its traces.satisfies list and asks whether that list names a live stakeholder requirement. It does not rewrite the YAML. It does not call Z3. It does not call Kind2.
It fires on provenance. An empty satisfies: is an error. A pointer at a retired STK-REQ is an error. A pointer at another SYS-REQ is the wrong layer. Linking the nearest STK-REQ just to silence the checker is not a pass: the hop counts a name, it does not score whether that name is the need.
The expensive miss is a SYS-REQ that ships because nobody can name the stakeholder who asked. Twelve months later a refactor deletes the redirect. The STK-REQ that did ask for TLS was sitting in the other pile. This hop rejects that model before implementation starts, so the audit cannot show a clean SPEC on an unowned shall.
This is not L0 file existence. That hop is stakeholder requirements. A missing STK-REQ file is existence. A SYS-REQ that never points at one that exists is this hop. The help file teaches that first.
# specs/system/requirements/SYS-REQ-200.req.yaml
id: SYS-REQ-200
description: System redirects HTTP to HTTPS.
traces:
satisfies: []
# proof audit --check system_requirements_linked
# [SPEC] system_requirements_linked
# SYS-REQ-200 not linked to any stakeholder requirement
# silent pass: last stamp still on an unowned shall
The fix is on the link, not on another test. Add a real satisfies: to the STK-REQ that asked. Or write the STK-REQ first if the need was never recorded. Then re-run the SPEC stage. Do not jump to realize to hide a preflight miss.
proof audit --check system_requirements_linked --verbose
proof workflow check --stage spec --verbose
proof help system_requirements_linked
02 · The exhibit
One last green SPEC on SYS-REQ-200. The satisfies: list never held a STK-REQ. Click the tabs.
The stamp
This hop
Nobody asked whether SYS-REQ-200 pointed at a STK-REQ. A clean validate is not provenance. The finding kind is this hop.
The stamp
Keep the live shall. Keep the Jama cell. That is not this hop.
Keep the recordProof
Same empty satisfies. Silent pass, or this hop. Click the tabs.
| Surface | What they do | What Proof does | What we lose |
|---|---|---|---|
| Green validate | The last clean parse on the SYS-REQ file. | Whether that file pointed up at a live STK-REQ. | We do not reparse YAML here. A green stamp is not this hop. |
| Stakeholder requirements | Whether the L0 files exist. | Whether each SYS-REQ points at one of those files. | Not L0 existence. See stakeholder requirements. |
| Requirements decomposition | Whether a parent was split into children with more detail. | Whether the child still names the parent that asked. | Not the split. See requirements decomposition. |
| Traceability matrix | The table of requirement, code, and test cells. | One upward edge: SYS-REQ to STK-REQ. | Not the matrix. See requirements traceability matrix. |
| System-requirements SERP | Install minimums. Ads volume 4400. | Nothing. That is not this hop. | We do not rank the 4400 head. The H1 stays this check. |
| Jama cell | A shall, and a parent if you type it. | An error the audit can name next to the empty list. | Not Jama's V&V. Jama still authors. We have not run a frozen Jama pack. |
The teaching graph is still one SYS-REQ whose live shall redirected HTTP while satisfies: stayed empty. Close it by pointing at the STK-REQ that asked, or by writing that STK-REQ first if the need was never recorded. Do not point at the nearest STK-REQ only to silence the checker. With an empty list the hop still fires, and the need did not go anywhere. It just never sat in the YAML.
# SYS-REQ-200.req.yaml now names the need
id: SYS-REQ-200
description: System redirects HTTP to HTTPS.
traces:
satisfies: [STK-REQ-007]
# proof audit --check system_requirements_linked
# 940/940 linked to stakeholder reqs
#
# SPEC is allowed to move on. a pass now sits on a named need
L0 file existence stays on stakeholder requirements. The split stays on requirements decomposition. The table of cells stays on requirements traceability matrix. Jama still authors. Proof vs Jama.
03 · The honest loss
A quiet proof audit --check system_requirements_linked can still mean every SYS-REQ named a live STK-REQ. Jama still authors.
Error on an empty list, a retired target, or the wrong layer. No silent waiver: link to a real STK-REQ. If the SYS-REQ has no matching stakeholder need, that itself is the bug. Write the STK-REQ first, then re-link. The hop does not rewrite the YAML. It does not add a shall. It does not prove the Go. It does not run Kind2. A quiet hop is not a proof that the named STK-REQ is the one you meant, only that every collected SYS-REQ points at a live stakeholder id. We have not scored this floor against a frozen Jama pack or a ReqIF export. The loss is named, not scored.
The L0 existence hop stays on stakeholder requirements. The split hop stays on requirements decomposition. The matrix hop stays on requirements traceability matrix. The engagement stays on software correctness audit. Jama still authors.
04 · Nearby questions
What is system requirements linked? Same question. Same URL.
Is this stakeholder requirements? No. That hop is L0 file existence. This hop is the upward edge from each SYS-REQ. See stakeholder requirements.
Is this requirements decomposition? No. That hop is the split. This hop is whether the child still names who asked. See requirements decomposition.
Is this the traceability matrix? No. That hop is the table of cells. See requirements traceability matrix.
Is this levels connected? No. That hop is whether the declared levels join as one graph. This hop is the upward edge from each SYS-REQ. See levels connected.
Is this system requirements? No. Ads 4400 on that string is install minimums. The H1 stays this check.
Does a quiet hop prove the named STK-REQ is the right need? No. The hop observes ids. It does not score the sentence.
Does a quiet hop prove the code matches the shall? No. The hop observes the upward edge. It does not prove the Go.
Is Proof a Jama alternative for the shall? No. Jama still authors. Proof vs Jama.