proof(verifier-spec): ADR-0005 — MkTrustedFixture audit boundary (closes #103)#155
Open
hyperpolymath wants to merge 1 commit into
Open
proof(verifier-spec): ADR-0005 — MkTrustedFixture audit boundary (closes #103)#155hyperpolymath wants to merge 1 commit into
hyperpolymath wants to merge 1 commit into
Conversation
6 tasks
dfe3c0d to
8f931a7
Compare
🔍 Hypatia Security ScanFindings: 108 issues detected
View findings[
{
"reason": "Issue in boj-build.yml",
"type": "missing_timeout_minutes",
"file": "boj-build.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in c5-regenerate.yml",
"type": "missing_timeout_minutes",
"file": "c5-regenerate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in cargo-audit.yml",
"type": "missing_timeout_minutes",
"file": "cargo-audit.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in codeql.yml",
"type": "missing_timeout_minutes",
"file": "codeql.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in dogfood-gate.yml",
"type": "missing_timeout_minutes",
"file": "dogfood-gate.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
},
{
"reason": "Issue in e2e.yml",
"type": "missing_timeout_minutes",
"file": "e2e.yml",
"action": "flag",
"rule_module": "workflow_audit",
"severity": "medium"
}
]Powered by Hypatia Neurosymbolic CI/CD Intelligence |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #103 by taking path (3) from the issue's three closure paths — an explicit ADR pinning
MkTrustedFixtureas the formal audit boundary forVerifierAccepts/SourceAccepts.PR #79 (
06ec00e) landed TOTAL bodies forVerifierSpecAgreementandSourceVerifierAgreement. What remained per #103: the trust-injection moment (everyVADifferential/SADifferentialultimately routes throughMkTrustedFixture) needed a load-bearing, named, cross-referenced specification rather than an inline docstring.What lands
docs/decisions/0005-trustedfixture-audit-boundary.adoc(new ADR, Accepted)Pins three inspection invariants every
MkTrustedFixture mconstruction site is audited against:(trustedFixtureName, trustedFixtureId)must correspond to an existing row incrates/typed-wasm-verify/tests/cross_compat.rs.trustedWitness : FunctionsAccepted m.functionsmust be the structural witness the harness's ACCEPT verdict establishes; rejected fixtures yield noMkTrustedFixture.ModuleSummarymust mirror the harness'sModuleSummaryreconstruction for the same fixture bytes (function order + decoded ownership intents).Also names the supersession path: a future WasmCert-Isabelle tie-back (issue #103 path 1) or constructive Rust-verifier soundness (issue #103 path 2) would each ship as a fresh ADR superseding 0005 by collapsing the audit boundary into a constructive proof.
docs/decisions/README.adocIndex row for ADR-0005 + 1-line owner-line header normalisation (hook compliance).
src/abi/TypedWasm/ABI/VerifierSpec.idr6-line docstring addition near
MkTrustedFixturecross-referencing ADR-0005 so a reader landing on the record's definition can find the invariants without rediscovering them. Single grep point for trust injections preserved: `git grep MkTrustedFixture`. Same 1-line owner-line normalisation as #152's Epistemic.idr (parenthetical removal only; no licence change, no SPDX change; owner-approved via AskUserQuestion mid-session).PROOF-NEEDS.mdNew
RECONCILIATION 2026-06-02banner recording the closure with the I1/I2/I3 summary and the supersession note. Matches the convention of the priorRECONCILIATION 2026-05-27 (post-A10 items 7 + 8 bodies closed)banner. Same 3-line owner-line header normalisation already landed on #153's branch.Stacking
This PR is stacked on #152 (
proof/epistemic-fresh-pin-102) — base set accordingly. Reason: #152 contains the HEAD build fix forcomposeWitnessLegacyAgree; #103's docstring edit onVerifierSpec.idrrequires a clean package build to land. The incremental diff (visible here) is only the ADR + cross-references — 4 files / +351 lines / -2 lines.When #152 merges, this PR will rebase forward to
mainand be a 1-commit fast-forward.What this is not
VAStructuralandSAStructuralcontinue to inject zero trust.Test plan
src/abi/TypedWasm/ABI/VerifierSpec.idrtype-checks rc=0 in isolation (idris2 --check).believe_me/assert_total/postulate/sorry/assert_smallerintroduced.%default totalpreserved across the arc.Cross-references
06ec00e).RegisteredFixtureGADT +Maybe-returning bridges); composable add-on if a fixture-table module is ever wanted.🤖 Generated with Claude Code