Topic · change evidence complete

Change evidence complete

Gist

Change evidence complete is whether a declared refactor, fix, or feature still has the backing that kind requires. Proof runs proof audit --check change_evidence_complete. A Jira ticket next to the hop is not that backing. Jama still authors.

proof audit --check change_evidence_complete

Keep Jira if it already owns the ticket. Keep Jama if it already authors the shall. Neither one refuses a --change-type fix with no resolving DEFECT in this repo. The hop is opt-in and off until you turn it on.

01 · The declared-without-backing pattern

A change-type without its DEFECT or LocalChange is a story. The hop names it.

You can write --change-type fix, leave --defect empty, and keep the merge green if the hop never ran.

Every code change is refactor, fix, or feature. A bare no-authored-change impact review is enough only for a refactor. A fix must resolve a DEFECT. A feature must resolve a LocalChange of type feature whose requirements list the reviewing shall. See software problem report and software change impact analysis.

The check is opt-in VERIFY, warning. It never guesses the kind. It only checks that the backing the declaration promised still resolves. Legacy reviews with no declared change type are never flagged. Enabling the gate over an existing corpus is a no-op until new change-typed reviews land. Only in-branch Go production files are eligible. Tests and generated files are ignored.

A refactor on a no-formalization-change decision is the wrong evidence shape: that decision records a description delta, not a code refactor. A DEFECT that is still open cannot back a fix. A DEFECT whose impact_analysis.affected_code does not name the file cannot back a fix. A LocalChange that is not type feature, or that does not list this requirement, cannot back a feature.

proof config set project.checks.change_evidence_complete.enabled true
proof audit --check change_evidence_complete \
    --set project.checks.change_evidence_complete.enabled=true
proof review impact SYS-REQ-1381 \
    --change-type refactor \
    --decision no-authored-change \
    --reason "Internal restructuring; requirement intent unchanged"

Do not down-declare a fix to refactor because refactor needs no backing artifact. Do not delete the --change-type so grandfathering swallows the hop. Do not link the nearest plausible DEFECT id so the reference resolves. A resolvable id is not a covering one.

02 · The exhibit

Same SYS-REQ-1381. A silent hop, or this stamp.

The change-type is written. The DEFECT is not. Click the tabs.

The row

  • Ask does the review still say change-type fix
  • Stamp --change-type fix, --defect empty
  • Why the hop is off, so CI never asked
Status green

This hop

No change_evidence_complete JSON. The kind is written. The DEFECT is not.

No stamp

The row

Keep the Jira ticket. Keep the PR label. That is not this hop.

Keep the record

Proof

  • Ask does a declared fix still resolve a covering DEFECT
  • Out SYS-REQ-1381 fix-defect-missing: declared fix with no resolving DEFECT
Fix defect missing

Same SYS-REQ-1381. A silent hop, or this stamp. Click the tabs.

Surface What they do What Proof does What we lose
Jira ticket A ticket next to the PR. Warn when --change-type fix has no resolving DEFECT that lists the file. We do not own the ticket thread. An open DEFECT still fails this hop.
GitHub PR label A label that says bugfix or feat. The hop on the impact review's declared kind, not the label. We do not parse GitHub labels. Undeclared reviews stay grandfathered.
Jama change The authoring programme. Reviews if you put them there. Warn a declared feature whose LocalChange does not list this shall. Not Jama's V&V. Jama still authors. We have not run a frozen Jama pack.
Impact review The stamp that the shall still stands. The backing the declared kind promised, on in-branch Go only. Not the blast-radius table. See software change impact analysis.

The teaching graph is still one shall next to its declared kind. Turn the hop on. Read the id. Link the covering DEFECT or LocalChange, or declare refactor with a bare no-authored-change. Do not waive it yourself. Accepting an uncovered change is a human risk-acceptance decision.

proof problem-report new \
    --title "cache helper dropped the miss path" \
    --source-type audit_finding \
    --surface runtime_code \
    --introduced-in unknown \
    --severity medium
proof problem-report triage DEFECT-N
proof review impact SYS-REQ-1381 \
    --change-type fix --defect DEFECT-N \
    --reason "Fix for DEFECT-N; requirement intent unchanged"
proof change new --type feature \
    --title "the delivered slice" \
    --intent "why this slice exists" \
    --requirement SYS-REQ-1381
proof review impact SYS-REQ-1381 \
    --change-type feature --change CHG-N \
    --reason "Feature slice CHG-N landed; governing requirement updated"
proof audit --check change_evidence_complete --verbose

The DEFECT write stays on software problem report. The impact stamp stays on software change impact analysis. The signed ship of a known miss stays on risk acceptance. Jama still authors. Proof vs Jama.

03 · The honest loss

Proof names a declared kind without backing. It does not classify the change for you.

A green change_evidence_complete is honest YAML on reviews you already typed. It is not a proof of the Go. Jama still authors.

Default is off. Until you enable it, CI never asks. Once on, default is warning, not fail. A green VERIFY can still carry fix-defect-missing unless you raise the fail level. Reviews with no declared change type stay silent. In-branch Go production files only. Tests are ignored. The hop does not open a DEFECT. It does not write a LocalChange. It does not prove the Go. We have not scored this graph against a frozen Jama pack, Jira, or GitHub labels. The loss is named, not scored.

The class-closure of a repaired defect stays on software problem report. The engagement stays on software correctness audit. Jama still authors.

04 · Nearby questions

What people type next.

What is change evidence complete? Same question. Same URL.

Is this change impact analysis? No. Impact analysis is the blast radius of the shall. This hop is the backing the declared kind promised. See software change impact analysis.

Is this a software problem report? The DEFECT is the backing for a fix. The hop is whether that DEFECT still covers this file. See software problem report.

Does enabling it flag every old review? No. Reviews with no declared change type are never flagged. Historical code is never retro-gated.

Does a missing DEFECT fail the merge? No. The hop warns. It is off until you enable it.

Can I declare refactor to silence a fix? No. That converts a repaired defect into a claim the code changed nothing the requirement governs.

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