Skip to content

Declare the functional-coverage status column (quire-rs#409) - #85

Draft
kreneskyp wants to merge 4 commits into
mainfrom
contract-agent-core/409-status-column
Draft

Declare the functional-coverage status column (quire-rs#409)#85
kreneskyp wants to merge 4 commits into
mainfrom
contract-agent-core/409-status-column

Conversation

@kreneskyp

Copy link
Copy Markdown
Contributor

Summary

For quire-rs#409 / engine PR410, functional-coverage explicitly selects
Coverage Status. The global Status selector and every authored header/status
value stay unchanged. Depends on the ISO optional-field schema amendment.

Parent is canonical publishedccc2bea19, preserving accepted semantic-module
work, not historical locked61a20e0. The entire raw manifest differs by one line.

Compatibility and verification

The NFR001 amendment explicitly permits only this reference's exact metadata
value; it is not inferred permission under the earlier semantic ticket or
FR003CON1 approval for a header/vocabulary migration. Frozen0.1 baseline bytes
remain untouched. Controls reject missing/wrong/other-reference/duplicate
overrides before normalization, then retain the historical full comparison.
An independent exact-parent hash comparison admits only the one-line addition.

Eleven focused native controls pass (25 deselected), independently rerun by the
coordinator: metadata, historical compatibility, unchanged vocabulary and four
schema/header contracts. Cross-version schema controls pass as specified.

Draft declaration candidate; no full consumer sweep, lock/evidence promotion,
merge or release claimed. Engine/CLI and closed declaration-set joins remain
separate campaign gates.

@kreneskyp

Copy link
Copy Markdown
Contributor Author

Independent evidence for this from a downstream consumer, in case it helps unblock the draft.

Engineering Assurance installs this module and runs quire coverage as its release gate. With the global Status selector, functional-coverage reports:

status-column-matches-nothing at spec/tests.md:67
"Status classification was skipped, so complete-but-unbacked rows could not be checked."

EA's gate then reads status_lies from that document, finds [], and passes. The list is empty because the check never ran — not because the repo is clean. So a status-honesty gate is currently certifying "no status lies" from a measurement that was skipped, and has been for as long as the table has used the Coverage Status header.

The two columns are deliberately distinct in EA's matrix (Coverage Status on the StR/US/FR coverage tables at spec/tests.md:47,:54,:67; Status on the test-summary and integration tables at :138,:147,:177,:411,:446), so renaming the document column is not an option on our side — the per-declaration status_column override this PR adds is the only repair that preserves both.

Downstream note, not a request to change scope: this PR targets main, but EA is pinned to the epic/264-assurance-integration cohort (currently 61a20e0), which forked at v0.24.0 and does not contain main. So landing here does not by itself reach EA — the cohort would need to pick it up separately. Flagging it so the dependency is visible rather than discovered later.

Happy to re-run EA's coverage against a build of this branch and report what status_lies actually contains once the check is live, if that measurement would help.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant