diff --git a/docs/archive/provenance/crg/CRG-DETECTOR-VALIDATION-2026-04-18.md b/docs/archive/provenance/crg/CRG-DETECTOR-VALIDATION-2026-04-18.md index ef2fdf76..93b5ce5f 100644 --- a/docs/archive/provenance/crg/CRG-DETECTOR-VALIDATION-2026-04-18.md +++ b/docs/archive/provenance/crg/CRG-DETECTOR-VALIDATION-2026-04-18.md @@ -3,11 +3,11 @@ Validated Bucket-A self-consistency assumptions against current `STATE.a2ml` values for the 17 repos listed in `CRG-BULK-TRIAGE-2026-04-18.md`. ## Result Summary -- 15/17 still match auto-demotion conditions (including 3 repos with missing `completion-percentage`). +- 15/17 still match auto-demotion conditions (including 3 repos with missing `overall-completion`). - 2/17 no longer match (stale triage values): - `developer-ecosystem/valence-shell` (`version=0.9.0`, `completion=74`) - `007-lang` (`version=0.1.0`, `completion=55`) -- Rule updates applied in `HYP-S005` to treat missing `completion-percentage` as a high-severity self-consistency failure for `C/B/A` claims. +- Rule updates applied in `HYP-S005` to treat missing `overall-completion` as a high-severity self-consistency failure for `C/B/A` claims. ## Validation Table | Repo | version | completion | dogfooding-status | Bucket-A match now | @@ -23,9 +23,9 @@ Validated Bucket-A self-consistency assumptions against current `STATE.a2ml` val | verification-ecosystem/rrecord-verity | 0.1.0 | 35 | absent | yes | | developer-ecosystem/rescript-ecosystem/idaptik-rescript13-staging | 0.1.0 | 0 | absent | yes | | verification-ecosystem/tropical-resource-typing | 0.1.0 | 30 | absent | yes | -| verification-ecosystem/a2ml-showcase | 0.1.0 | absent | absent | yes (missing completion) | -| developer-ecosystem/nextgen-languages/anvomidav | 0.1.0 | absent | absent | yes (missing completion) | +| verification-ecosystem/a2ml-showcase | 0.1.0 | absent | absent | yes (missing overall-completion) | +| developer-ecosystem/nextgen-languages/anvomidav | 0.1.0 | absent | absent | yes (missing overall-completion) | | developer-ecosystem | 0.1.0 | 45 | absent | yes | -| verification-ecosystem/k9-ecosystem/k9-showcase | 0.1.0 | absent | absent | yes (missing completion) | +| verification-ecosystem/k9-ecosystem/k9-showcase | 0.1.0 | absent | absent | yes (missing overall-completion) | | developer-ecosystem/valence-shell | 0.9.0 | 74 | absent | no | | 007-lang | 0.1.0 | 55 | absent | no | diff --git a/hypatia-rules/crg-overclaim-detector.a2ml b/hypatia-rules/crg-overclaim-detector.a2ml index 9d9e2f69..ff35873a 100644 --- a/hypatia-rules/crg-overclaim-detector.a2ml +++ b/hypatia-rules/crg-overclaim-detector.a2ml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: PMPL-1.0-or-later +# SPDX-License-Identifier: MPL-2.0 # HYP-S005 — CRG Overclaim Detector # Flags repos self-declaring a CRG grade that lacks the evidence artefacts # required by CRG v2.0 (STRICT). Sibling rule to HYP-S001 (demotion detector): @@ -162,7 +162,11 @@ sections: # # Contradiction rule: a repo cannot self-consistently claim C (or higher) if # its own metadata says it is <50% complete and pre-0.5.0. Either the grade -# is wrong, the version is wrong, or the completion-percentage is wrong. +# is wrong, the version is wrong, or the completion score is wrong. +# +# Canonical field: `overall-completion` in STATE.a2ml. A legacy +# `completion-percentage` field may still appear in older snapshots, but it is +# not the primary schema key and must not be required for modern repos. # The audit convention is: trust version + completion, demote the grade. # # This fires BEFORE the file-tree evidence checks; if it fires, a full audit @@ -173,8 +177,8 @@ grade_ge_c_but_early_stage: parse_state.crg-grade IN {"C", "B", "A"} AND parse_state.version < "0.5.0" AND ( - parse_state.completion-percentage < 50 - OR parse_state.completion-percentage IS empty_or_absent + parse_state.overall-completion < 50 + OR parse_state.overall-completion IS empty_or_absent ) AND parse_state.dogfooding-status IS empty_or_absent severity: high @@ -194,13 +198,13 @@ grade_ge_c_but_missing_self_consistency_inputs: parse_state.crg-grade IN {"C", "B", "A"} AND ( parse_state.version IS empty_or_absent - OR parse_state.completion-percentage IS empty_or_absent + OR parse_state.overall-completion IS empty_or_absent ) severity: high finding_kind: self-inconsistent-claim message: >- {component} claims {declared} but STATE.a2ml is missing version and/or - completion-percentage. The CRG self-consistency precheck cannot run + overall-completion. The CRG self-consistency precheck cannot run without these keys — treat this as a structural overclaim until state metadata is completed.