Topic · MC/DC ignore classified

MC/DC ignore classified

Gist

MC/DC ignore classified is whether a code-level //mcdc:ignore or an honored witness-row exemption is a named category, not a free-form comment. Proof runs proof audit --check mcdc_ignore_classified. Jama still authors.

proof audit --check mcdc_ignore_classified

Keep LDRA if it already measures C in the avionics toolchain. Keep Jama if it already authors the shall. Neither one asks whether a green coverage cell is a defensive exemption or a live product hole.

01 · The masquerade

A green MC/DC cell that sits on a bare ignore is coverage bookkeeping, not a claim about the decision.

Presence of an ignore comment is not this hop. This hop is whether the ignore named a category a reviewer can read without opening every free-form reason.

The check is default-on, warning, verify stage, under project.checks.mcdc_coverage. It enforces the product-impact taxonomy so a green result cannot hide whether an ignored decision is a legitimate exemption or capability-gap debt. Four situations warn. An uncategorized code-level ignore. A :capability-gap ignore with no resolvable [ki:]. A capability-gap whose KnownIssue is closed or has no reproducer_command tripwire. An honored witness-row exemption with no [category:] trailer. Defensive, external-evidence, and capability-gap-with-open-KI-and-tripwire ignores pass.

Measuring MC/DC is a different hop. That page is whether each condition flips the outcome on its own. Stale KI disposition is a different hop. That page is an error when a leftover exemption outlived a fixed bug. Neither one asks whether pkg/upload.go:32 is still a free-form comment pretending to be an exemption.

//mcdc:ignore streaming upload not yet supported
// no :category, no [ki:], coverage already green

Pick one claim per ignore, not a cheapest label. Delete the ignore and witness the decision if it is reachable. Classify :defensive only for true structural unreachability where the positive path is already witnessed. Classify :capability-gap only with an open KnownIssue, a failing public-API tripwire run twice, and additional e2e tests on that surface. Classify :external-evidence only when a child process really drives the decision. A witness-row finding needs the same claim as a [category:] trailer. Writing :defensive because it needs no KnownIssue is the anti-pattern this hop exists to stop. The check will not catch that lie for you. It will catch the missing token.

proof mcdc ignores --unclassified
proof mcdc ignores --category capability-gap --with-ki
proof audit --check mcdc_ignore_classified

The structural floor the machine counts is capability-gap-no-tripwire. Additional e2e tests on the public surface are the help bar on top of that floor, not a second counted finding here. Classification is a pure function of the source comment. After you edit the token, proof mcdc refresh-classification rewrites the persisted object without re-running the suite. Opt-out reports skip, never pass. A human waiver is an authorization gate, not a mute.

02 · The exhibit

Same pkg/upload.go:32 ignore. Bare comment, or this hop.

The streaming path is not implemented. The ignore line has no category. Click the tabs.

The row

  • Ask does mcdc_coverage still treat the decision as ignored bookkeeping
  • Stamp //mcdc:ignore streaming upload not yet supported with no :category and no [ki:]
  • Why coverage dropped the decision from open warnings while the comment stayed free-form
Status green

This hop

Nobody asked whether the ignore named a category. Coverage already passed. The warning is this hop.

No stamp

The row

Keep the LDRA report. Keep the Jama field. That is not this hop.

Keep the record

Proof

  • Ask does the ignore name a category a reviewer can read without opening the reason
  • Out pkg/upload.go:32 is uncategorized. Pick :defensive, :capability-gap with [ki:] and a failing tripwire, or delete the ignore and witness it
Unclassified ignore

Same pkg/upload.go:32 ignore. Bare comment, or this hop. Click the tabs.

Surface What they do What Proof does What we lose
MC/DC coverage for Go Whether each condition flips the outcome on its own. Warning. Whether the ignore that hid a cell named a category. Not the measure hop. See MC/DC coverage for Go.
MC/DC known issue disposition stale Error. Whether a KI-gated leftover outlived a fixed bug. Warning. Whether a live ignore is still uncategorized or a capability-gap with no tripwire. Not the leftover-after-fix hop. See MC/DC known issue disposition stale.
Known issue complete Warning. Whether the record has evidence and an origin. Warning. Whether the ignore that names that record is classified, and whether a capability-gap has a tripwire at all. Not the completeness hop. See known issue complete.
LDRA / VectorCAST Condition tables on C in the avionics toolchain. A warning on unclassified Go (and other) ignores in CI. Not their certified C toolchain. We have not run a frozen LDRA pack.
Jama field The authoring programme. Attributes if you put them there. A YAML object the audit can fail next to the shall. Not Jama's V&V. Jama still authors. We have not run a frozen Jama pack.

The teaching graph is still one ignore whose reason names a missing feature and whose comment never named a category. Read the warning. Then classify it, or delete it and witness the decision.

//mcdc:ignore:capability-gap streaming upload not yet supported [ki: streaming-upload]
proof mcdc refresh-classification
proof audit --check mcdc_ignore_classified

The measure hop stays on MC/DC coverage for Go. The leftover-after-fix hop stays on MC/DC known issue disposition stale. Completeness stays on known issue complete. Do not treat an LDRA condition table as this cell. Jama still authors. Proof vs Jama. Proof vs LDRA.

03 · The honest loss

Proof names a missing category. It does not prove the Go, and it does not write the token for you.

A green mcdc_ignore_classified can still mean every ignore was already classified, including a cheap :defensive on a live hole. The hop is a warning. Jama still authors.

Warning severity. A counted finding does not fail the audit until you promote it. The hop does not edit the comment, open a KnownIssue, or write the tripwire. It does not re-measure the suite; classification is a comment-only refresh. Zero matching ignores is a silent pass. Load failure is a fail. Opt-out is skip, never pass. A waiver is a human authorization gate with a scope, a reason, a role, and an expiry. Additional e2e tests on the public surface are the help bar, not a second counted finding here. The leftover-after-fix floor is a different check, not this page. The hop does not prove the Go. We have not scored this taxonomy against a frozen Jama pack, an LDRA condition table, or VectorCAST. The loss is named, not scored.

The measure hop stays on MC/DC coverage for Go. The leftover-after-fix hop stays on MC/DC known issue disposition stale. Completeness stays on known issue complete. The engagement stays on software correctness audit. Jama still authors.

04 · Nearby questions

What people type next.

What is MC/DC ignore classified? Same question. Same URL.

Is this MC/DC coverage for Go? No. That hop measures whether each condition flips the outcome. This hop is whether the ignore that hid a cell named a category. See MC/DC coverage for Go.

Is this MC/DC known issue disposition stale? No. That hop is an error when a KI-gated leftover outlived a fixed bug. This hop is a warning while the ignore is still live and unclassified. See MC/DC known issue disposition stale.

Is this known issue complete? No. That hop is whether the record has evidence and an origin. This hop is whether the ignore that names that record is classified. See known issue complete.

Does a green hop prove the function? No. The hop does not write the token. It does not prove the Go.

Is an unclassified ignore an error? No. This hop is a warning. Promote it if a missing category should fail the build.

Does zero ignores fail? No. Zero matching ignores is a silent pass.

Can I write :defensive to skip the KnownIssue? Only for true structural unreachability where the positive path is already witnessed. A missing feature path is a capability gap. The check will not catch a cheap :defensive on a live hole.

Does classification require a re-measure? No. Edit the comment, then proof mcdc refresh-classification. Only an executable change still needs proof mcdc measure.

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

Is Proof an LDRA alternative for certified C? No. LDRA still wins that toolchain. Proof vs LDRA.