-
Notifications
You must be signed in to change notification settings - Fork 1
AS5506 legality coverage: #14 closed against unmet criteria, and COMPLIANCE.md still reports the pre-#14 number #416
Description
Measured 2026年08月13日 against main. Two inaccuracies about the same quantity,
pointing in opposite directions — which is why neither was noticed.
1. #14 was closed against criteria it did not meet
#14 — "Complete remaining AS5506
legality rules (~150+ rules)" — opened 2026年03月08日, closed COMPLETED
2026年03月10日.
| acceptance criterion | delivered |
|---|---|
| "50+ additional legality rules implemented" | 23 (PR #32) |
| "Each rule has an AS5506 section reference" | zero § refs in the rule modules |
| "Tests for each rule" | not established |
The closing comment reads "Implemented in PR #32 — 23 new rules across 5
modules... Total 50+." The criterion said 50+ additional; the comment reports
50+ total. Same words, different denominator, and the issue closed on it.
2. COMPLIANCE.md still reports the state before that work
COMPLIANCE.md:16:
Legality Rules (L-rules) | Partial | ~15% — engine scaffold with ~20 rules from 6 categories
and :175 repeats it for gap G5. That is the pre-#14 figure, unchanged for
five months. It is the document a prospective AADL user reads to answer "how
conformant is this?", and it understates the current state by roughly 3x.
3. What is actually there
crates/spar-analysis/src/legality.rs 1641 lines, 65 fns, ~60 diagnostic sites
crates/spar-analysis/src/naming_rules.rs 1040 lines
§ references inside either module: 0
Taking diagnostic sites as a proxy for rules (imperfect — some rules emit more
than one), that is roughly 60 of AS5506's ~200+, about 30% — not 15%, and
not complete.
Why this matters beyond bookkeeping
Semantic conformance is the half of AADL compatibility the corpus test cannot
see. crates/spar-cli/tests/osate_corpus.rs asserts spar_syntax::parse(&src).ok()
— parse only. 532/548 of the unmodified OSATE corpus parses (~97%), which
says nothing about whether spar applies the same legality rules OSATE would, or
builds the same model. Legality coverage IS that missing half, and the only
number published for it is wrong.
Proposed
- Reopen the coverage question with the measured count as the baseline,
rather than re-closing Complete remaining AS5506 legality rules (~150+ rules) #14 . - Correct COMPLIANCE.md to the measured figure.
- Gate it. The same ratchet shape as
check_lean_sorries.pyand
check_evidence_steps.py: count the implemented rules, compare against a
declared floor, fail when the doc and the code disagree. Every number in this
repo that mattered — survivors, sorries, workspaces, fuzz targets, stepless
artifacts — now has a gate. The one an external evaluator actually reads has
none, which is exactly theclaim-verificationfailure mode: a claim about
the system with no mechanism keeping it true. - Restore the
§traceability that Complete remaining AS5506 legality rules (~150+ rules) #14 asked for, so "which AS5506 rule is
this?" is answerable from the code rather than from memory.
NOT claimed: that ~60 is the right count. It is a proxy from diagnostic sites,
and establishing the real number — with section references — is part of the work.
🤖 Generated with Claude Code