Skip to content

Commit 16b1a56

Browse files
committed
fix: use canonical STATE completion field
1 parent b5eb4ed commit 16b1a56

2 files changed

Lines changed: 15 additions & 11 deletions

File tree

docs/archive/provenance/crg/CRG-DETECTOR-VALIDATION-2026-04-18.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
Validated Bucket-A self-consistency assumptions against current `STATE.a2ml` values for the 17 repos listed in `CRG-BULK-TRIAGE-2026-04-18.md`.
44

55
## Result Summary
6-
- 15/17 still match auto-demotion conditions (including 3 repos with missing `completion-percentage`).
6+
- 15/17 still match auto-demotion conditions (including 3 repos with missing `overall-completion`).
77
- 2/17 no longer match (stale triage values):
88
- `developer-ecosystem/valence-shell` (`version=0.9.0`, `completion=74`)
99
- `007-lang` (`version=0.1.0`, `completion=55`)
10-
- Rule updates applied in `HYP-S005` to treat missing `completion-percentage` as a high-severity self-consistency failure for `C/B/A` claims.
10+
- Rule updates applied in `HYP-S005` to treat missing `overall-completion` as a high-severity self-consistency failure for `C/B/A` claims.
1111

1212
## Validation Table
1313
| Repo | version | completion | dogfooding-status | Bucket-A match now |
@@ -23,9 +23,9 @@ Validated Bucket-A self-consistency assumptions against current `STATE.a2ml` val
2323
| verification-ecosystem/rrecord-verity | 0.1.0 | 35 | absent | yes |
2424
| developer-ecosystem/rescript-ecosystem/idaptik-rescript13-staging | 0.1.0 | 0 | absent | yes |
2525
| verification-ecosystem/tropical-resource-typing | 0.1.0 | 30 | absent | yes |
26-
| verification-ecosystem/a2ml-showcase | 0.1.0 | absent | absent | yes (missing completion) |
27-
| developer-ecosystem/nextgen-languages/anvomidav | 0.1.0 | absent | absent | yes (missing completion) |
26+
| verification-ecosystem/a2ml-showcase | 0.1.0 | absent | absent | yes (missing overall-completion) |
27+
| developer-ecosystem/nextgen-languages/anvomidav | 0.1.0 | absent | absent | yes (missing overall-completion) |
2828
| developer-ecosystem | 0.1.0 | 45 | absent | yes |
29-
| verification-ecosystem/k9-ecosystem/k9-showcase | 0.1.0 | absent | absent | yes (missing completion) |
29+
| verification-ecosystem/k9-ecosystem/k9-showcase | 0.1.0 | absent | absent | yes (missing overall-completion) |
3030
| developer-ecosystem/valence-shell | 0.9.0 | 74 | absent | no |
3131
| 007-lang | 0.1.0 | 55 | absent | no |

hypatia-rules/crg-overclaim-detector.a2ml

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SPDX-License-Identifier: PMPL-1.0-or-later
1+
# SPDX-License-Identifier: MPL-2.0
22
# HYP-S005 — CRG Overclaim Detector
33
# Flags repos self-declaring a CRG grade that lacks the evidence artefacts
44
# required by CRG v2.0 (STRICT). Sibling rule to HYP-S001 (demotion detector):
@@ -162,7 +162,11 @@ sections:
162162
#
163163
# Contradiction rule: a repo cannot self-consistently claim C (or higher) if
164164
# its own metadata says it is <50% complete and pre-0.5.0. Either the grade
165-
# is wrong, the version is wrong, or the completion-percentage is wrong.
165+
# is wrong, the version is wrong, or the completion score is wrong.
166+
#
167+
# Canonical field: `overall-completion` in STATE.a2ml. A legacy
168+
# `completion-percentage` field may still appear in older snapshots, but it is
169+
# not the primary schema key and must not be required for modern repos.
166170
# The audit convention is: trust version + completion, demote the grade.
167171
#
168172
# This fires BEFORE the file-tree evidence checks; if it fires, a full audit
@@ -173,8 +177,8 @@ grade_ge_c_but_early_stage:
173177
parse_state.crg-grade IN {"C", "B", "A"}
174178
AND parse_state.version < "0.5.0"
175179
AND (
176-
parse_state.completion-percentage < 50
177-
OR parse_state.completion-percentage IS empty_or_absent
180+
parse_state.overall-completion < 50
181+
OR parse_state.overall-completion IS empty_or_absent
178182
)
179183
AND parse_state.dogfooding-status IS empty_or_absent
180184
severity: high
@@ -194,13 +198,13 @@ grade_ge_c_but_missing_self_consistency_inputs:
194198
parse_state.crg-grade IN {"C", "B", "A"}
195199
AND (
196200
parse_state.version IS empty_or_absent
197-
OR parse_state.completion-percentage IS empty_or_absent
201+
OR parse_state.overall-completion IS empty_or_absent
198202
)
199203
severity: high
200204
finding_kind: self-inconsistent-claim
201205
message: >-
202206
{component} claims {declared} but STATE.a2ml is missing version and/or
203-
completion-percentage. The CRG self-consistency precheck cannot run
207+
overall-completion. The CRG self-consistency precheck cannot run
204208
without these keys — treat this as a structural overclaim until state
205209
metadata is completed.
206210

0 commit comments

Comments
 (0)