Topic · Deletion without retirement

Deletion without retirement

Gist

A git rm of a shall with no retire or supersede is not a silent pass. Proof runs proof audit --scope baseline --check deletion_without_retirement and names the missing id. Warning. No waiver. Jama still authors.

proof audit --scope baseline --check deletion_without_retirement

Keep the Jama cell if it still lists the old id. Keep the extra tests if they still pass. Neither one notices a file that left the tree without a lifecycle event.

01 · The silent last pass

The file left. The lifecycle did not.

You can git rm a .req.yaml, leave the extra tests green, and still look reviewed on paper. This hop stays quiet until a baseline audit asks whether that id went through retire or supersede.

The check is deletion_without_retirement. It is SPECIFICATION-stage. It warns. It only fires under --scope baseline. A default full audit never sees it. It compares the baseline set of requirement ids to the files on disk. An id that was in the baseline and is gone, with no retire, supersede, or deprecate event, is the finding. It does not write the YAML. It does not prove the Go.

This hop is the deletion companion to requirement lifecycle. That page is the status field: draft, review, approved, deprecated, retired, superseded. This hop is the case where the file disappeared instead of taking one of those terminal statuses. A Slack note that says the shall is gone is not a lifecycle event. A rename that deletes SYS-REQ-OLD and creates SYS-REQ-NEW, while other files still cite SYS-REQ-OLD, is the same miss. The loader drops those dangling traces silently. This hop names the missing file before that drop becomes the new normal.

The two resolutions are alternatives, not steps. If the removal was a mistake, restore the file. If the shall is really leaving, retire it with a reason, or supersede it with the replacement id. Do not waive the hop. There is no waiver. The lifecycle action is the audit trail. Do not delete the file to silence the finding. That is the finding.

# SYS-REQ-OLD was in the baseline
# git rm specs/system/requirements/SYS-REQ-OLD.req.yaml
# extra tests still green. Jama still lists the old id
# proof audit --scope baseline --check deletion_without_retirement
# [SPECIFICATION] deletion_without_retirement
# SYS-REQ-OLD removed without retire/supersede
# WARN
# proof help deletion_without_retirement

Read both sides before you edit anything. The baseline id that used to exist, and the file that is no longer on disk. A no-baseline run skips this hop. That skip is a pass, not a proof that nobody deleted a shall:

proof audit --scope baseline --check deletion_without_retirement
proof spec show SYS-REQ-OLD
proof req supersede SYS-REQ-OLD --replacement SYS-REQ-NEW \
  --reason "rename to canonical spelling" --yes
proof audit --scope baseline --check deletion_without_retirement --verbose
proof help deletion_without_retirement

02 · The exhibit

Same missing file. Silent last pass, or this hop.

One last green suite after SYS-REQ-OLD left the tree with no retire and no supersede. Click the tabs.

The wording

  • Ask did the extra tests still pass
  • Delta SYS-REQ-OLD.req.yaml gone. no retire. no supersede
  • Why nobody compared the baseline set to the files on disk
Tests still green

This hop

Nobody asked whether the missing id went through the lifecycle. The finding kind is this hop.

Need unread

The wording

Keep the Jama cell. Keep the extra tests. That is not this hop.

Keep the record

Proof

  • Ask did a baseline id leave without retire or supersede
  • Out SYS-REQ-OLD removed without retire/supersede, warning
File left. Lifecycle did not.

Same missing file. Silent last pass, or this hop. Click the tabs.

Surface What they do What Proof does What we lose
Green extra tests The suite still passes on the remaining files. Whether a baseline id left without retire or supersede. We do not treat a green suite as a retirement.
Requirement lifecycle The status field on a file that is still on disk. Whether a file that left the tree took a terminal status first. Not the status hop. See requirement lifecycle.
Suspect clean Whether a live link still covers both sides. Whether the file that used to hold one side is still there. Not the stamp hop. See suspect clean.
Authored delta expected Whether a traced production file moved without a linked spec delta. Whether a spec file disappeared without a lifecycle event. Not the code-moved hop. See authored delta expected.
LDRA / VectorCAST An avionics toolchain that already owns C CIA. A warning the audit can name next to a missing id. We do not replace LDRA. We have not run a frozen VectorCAST corpus. See Proof vs LDRA.
Jama cell A shall, and a link if you type it. A warning the audit can name next to the missing file. Not Jama's V&V. Jama still authors. We have not run a frozen Jama pack.

The teaching graph is still one baseline id whose file left the tree with no retire and no supersede. Close it by restoring the file if the removal was a mistake, or by retiring or superseding the id if the shall is really leaving. Do not delete the file to make the sets match. That is the finding. The hop does not write that event for you. The hop does not waive itself.

# SYS-REQ-OLD superseded by SYS-REQ-NEW
# proof audit --scope baseline --check deletion_without_retirement
# 0 untraced deletions
# SPECIFICATION may move on. pass sits on a lifecycle event, not a missing file

The status hop stays on requirement lifecycle. The rewrite hop stays on characterization testing and mirrors. Jama still authors. Proof vs Jama.

03 · The honest loss

Proof names the missing id. It does not write the YAML, and it does not prove the Go.

A quiet proof audit --scope baseline --check deletion_without_retirement means every in-scope baseline id is still on disk or already took a terminal status, or that nothing in-scope asked. Jama still authors.

Warning when a baseline requirement id is gone from disk without retire, supersede, or deprecate. Only under --scope baseline. A default full audit never sees it. Default severity is warning, not error. It does not fail the merge by itself. No waiver. The lifecycle action is the audit trail. No baseline available is a skip, and that skip is a pass. Zero in-scope findings is a pass. The hop does not write the retire or supersede event. It does not restore the file. It does not run proof req retire for you. It does not prove the Go. A quiet hop is not a proof that Jama's shall still exists, only that every in-scope baseline id currently has a file or a terminal status, or that nothing asked. We have not scored this floor against a frozen Jama pack or a VectorCAST corpus. The loss is named, not scored.

The status hop stays on requirement lifecycle. The rewrite hop stays on characterization testing and mirrors. The engagement stays on software correctness audit. Jama still authors.

04 · Nearby questions

What people type next.

What is deletion without retirement? Same question. Same URL.

Is this requirement lifecycle? No. That hop is the status field on a file that is still on disk. This hop is a file that left without taking a terminal status. See requirement lifecycle.

Is this suspect clean? No. That hop reports a live link whose stamp no longer covers both sides. This hop reports a missing file. See suspect clean.

Is this authored delta expected? No. That hop reports a missing no-authored-change stamp on a moved production file. This hop reports a missing spec file. See authored delta expected.

Do extra tests clear a missing shall? No. A green suite is not a retirement.

Does this finding fail the merge? No by default. The check keeps warning severity and only runs under --scope baseline.

Can an agent waive the deletion? No. There is no waiver. Restore the file, or retire or supersede the id.

Does a quiet hop prove nobody deleted a shall? No. A run with no baseline skips. The hop observes two id sets. It does not prove the Go.

Is this characterization testing? No. That page is rewrite-with-a-ledger. This hop is a missing file versus a baseline. See characterization testing and mirrors.

Is Proof an LDRA alternative for the instrument? No. LDRA still owns the avionics toolchain. Proof vs LDRA.

Is Proof a Jama alternative for the shall? No. Jama still authors. Proof vs Jama.