This commit is contained in:
@@ -44,7 +44,8 @@
|
||||
"hook-pre-commit/lint-staged-failure",
|
||||
"hook-pre-push/typecheck-failure",
|
||||
"checkout-preflight/history-provenance-exclusion",
|
||||
"checkout-preflight/inventory-source-and-manifest-shrink"
|
||||
"checkout-preflight/inventory-source-and-manifest-shrink",
|
||||
"checkout-preflight/inventory-claim-overstatement"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -303,13 +304,23 @@
|
||||
{
|
||||
"id": "RM02-NONEMPTY-ANCHORED-QUANTIFICATION",
|
||||
"originalText": "No universally quantified registry check runs until its population is proven non-empty and anchored.",
|
||||
"currentText": "No universally quantified registry check runs until its population is proven non-empty and anchored.",
|
||||
"currentText": "No universally quantified registry check runs over an empty population. Detects accidental and incompetent inventory drift within a checkout; does NOT survive an adversary who rewrites baseline, manifest, and verifier consistently — that guarantee requires RM-60's external boundary.",
|
||||
"claimType": "integrity",
|
||||
"source": "docs/remediation/TASKS.md#d-46",
|
||||
"meaningChanges": [],
|
||||
"meaningChanges": [
|
||||
{
|
||||
"originalText": "No universally quantified registry check runs until its population is proven non-empty and anchored.",
|
||||
"restatement": "No universally quantified registry check runs over an empty population. Detects accidental and incompetent inventory drift within a checkout; does NOT survive an adversary who rewrites baseline, manifest, and verifier consistently — that guarantee requires RM-60's external boundary.",
|
||||
"reason": "D-48/CWE-353 established that a same-checkout baseline detects drift but is not an adversarial trust anchor.",
|
||||
"finding": "D-48",
|
||||
"task": "RM-60",
|
||||
"date": "2026-08-01"
|
||||
}
|
||||
],
|
||||
"caseRefs": [
|
||||
"checkout-preflight/empty-registry-populations",
|
||||
"checkout-preflight/inventory-source-and-manifest-shrink"
|
||||
"checkout-preflight/inventory-source-and-manifest-shrink",
|
||||
"checkout-preflight/inventory-claim-overstatement"
|
||||
],
|
||||
"gateRefs": [
|
||||
"quality-typecheck",
|
||||
@@ -362,6 +373,11 @@
|
||||
"id": "CRITERION-RESTATEMENT",
|
||||
"criterionId": "RM02-MEANING-PROVENANCE",
|
||||
"caseRef": "checkout-preflight/missing-meaning-provenance"
|
||||
},
|
||||
{
|
||||
"id": "INVENTORY-DRIFT-BOUNDARY",
|
||||
"criterionId": "RM02-NONEMPTY-ANCHORED-QUANTIFICATION",
|
||||
"caseRef": "checkout-preflight/inventory-claim-overstatement"
|
||||
}
|
||||
],
|
||||
"compatibilityScenarios": [
|
||||
@@ -1004,6 +1020,44 @@
|
||||
"evidence": {
|
||||
"subject": "checkout-preflight"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "inventory-claim-overstatement",
|
||||
"criterionIds": ["RM02-CHECK-RIGHT", "RM02-NONEMPTY-ANCHORED-QUANTIFICATION"],
|
||||
"mustFail": true,
|
||||
"invocation": ["node", "scripts/gate-inventory-claim-control.mjs"],
|
||||
"required": {
|
||||
"exitCode": 84,
|
||||
"outputPattern": "INVENTORY_CLAIM_OVERSTATED"
|
||||
},
|
||||
"actual": {
|
||||
"exitCode": 84,
|
||||
"outputPattern": "INVENTORY_CLAIM_OVERSTATED"
|
||||
},
|
||||
"reasonPattern": "INVENTORY_CLAIM_OVERSTATED",
|
||||
"fixture": {
|
||||
"copyPaths": [
|
||||
"scripts/gate-inventory-claim-control.mjs",
|
||||
"gates/required-gates.baseline.json",
|
||||
"gates/gates.manifest.json",
|
||||
"docs/PRD.md",
|
||||
"docs/ADMIN-GUIDE/quality-gate-registry.md",
|
||||
"docs/DEVELOPER-GUIDE/quality-gate-registry.md",
|
||||
"docs/remediation/GATE-CLAIMS.md",
|
||||
"docs/plans/2026-08-01-rm-02-gate-registry.md",
|
||||
"docs/SITEMAP.md"
|
||||
],
|
||||
"replaceFiles": [
|
||||
{
|
||||
"path": "gates/required-gates.baseline.json",
|
||||
"find": "Detects accidental and incompetent inventory drift within a checkout; does NOT survive an adversary who rewrites baseline, manifest, and verifier consistently — that guarantee requires RM-60's external boundary.",
|
||||
"replace": "Provides an independent seven-gate baseline comparison."
|
||||
}
|
||||
]
|
||||
},
|
||||
"evidence": {
|
||||
"subject": "checkout-preflight"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -1,16 +1,34 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"purpose": "Independent required-gate population baseline; manifest and verifier inventory must both match.",
|
||||
"purpose": "Detects accidental and incompetent inventory drift within a checkout; does NOT survive an adversary who rewrites baseline, manifest, and verifier consistently — that guarantee requires RM-60's external boundary.",
|
||||
"gates": [
|
||||
{ "id": "quality-typecheck", "source": "package.json" },
|
||||
{ "id": "quality-lint", "source": "package.json" },
|
||||
{ "id": "quality-format", "source": "package.json" },
|
||||
{ "id": "checkout-preflight", "source": "scripts/preflight.mjs" },
|
||||
{
|
||||
"id": "quality-typecheck",
|
||||
"source": "package.json"
|
||||
},
|
||||
{
|
||||
"id": "quality-lint",
|
||||
"source": "package.json"
|
||||
},
|
||||
{
|
||||
"id": "quality-format",
|
||||
"source": "package.json"
|
||||
},
|
||||
{
|
||||
"id": "checkout-preflight",
|
||||
"source": "scripts/preflight.mjs"
|
||||
},
|
||||
{
|
||||
"id": "ci-queue-wait",
|
||||
"source": "packages/mosaic/framework/tools/git/ci-queue-wait.sh"
|
||||
},
|
||||
{ "id": "hook-pre-commit", "source": ".husky/pre-commit" },
|
||||
{ "id": "hook-pre-push", "source": ".husky/pre-push" }
|
||||
{
|
||||
"id": "hook-pre-commit",
|
||||
"source": ".husky/pre-commit"
|
||||
},
|
||||
{
|
||||
"id": "hook-pre-push",
|
||||
"source": ".husky/pre-push"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user