Estate audit — Waves 5 + 6: per-language testing standard, canonical-names guard, DYADT residual fix#459
Merged
Conversation
…AffineScript The estate's only per-language testing depth was a single Julia guide from 2024 (no MUST/SHOULD, Rust+Julia only) plus a byte-identical duplicate snapshot. The user flagged this: replicate the pattern properly instead of one stale generic. - standards/language-testing-standards.md -> v2.0.0: RFC-2119 conformance requirements R1–R9 (unit/format/lint/coverage/property/bench/audit/contract/ proof) mapped to the CRG test taxonomy, an anti-theatre rule (no continue-on-error on a MUST check; coverage reported-not-asserted), and the required per-language guide set. Rust/SPARK + Julia mapped to R1–R9. - standards/templates/language-testing-guide-TEMPLATE.md: the skeleton every per-language guide follows — a requirement-mapping table (tool or visible `none`), tools, CI pipeline, best practices, and a mandatory honest "Known gaps" section. - standards/affinescript-testing-guide.md: the estate's primary language, which had ZERO testing standard. Authored honestly — most SHOULD rows are tracked gaps (no formatter/coverage/fuzz/bench yet) and R3 notes that affinescript-verify.yml is currently advisory. Canonical SSOT migrates to hyperpolymath/affinescript prospectively (Wave-6 charter). - scripts/check-language-guide.sh + Justfile language-guides-check, wired into `just validate` as a hard gate: a guide missing a required section (e.g. "Known gaps"), the SPDX header, or the R1..R9 mapping fails loudly. - Deleted the byte-identical language-testing-standards-v1.0.0-2024-04-14.md. - scripts/tests/wave5-language-guides-test.sh (7/7): lint accepts a conformant guide and rejects incomplete ones; the standard is v2.0.0/RFC-2119. Zig / Elixir+Gleam / Idris2+Agda guides are Wave-6 charters. Licence rows manual-only (flag-only). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0114ps6mY5jAH4Sz
…record Capstone wave: close the last pull-forward holes and record the flag-only licence discipline. (Campaign umbrella #460.) - scripts/verify-claims.sh: close the residual DYADT bypass from the adversarial review (#461) — an always-matching `contains:` regex (`.*`, `^`, `$`, `.`, `.+`) no longer confirms vacuously; it now requires a literal character and returns `unverifiable trivial-pattern` otherwise. CLAIM-FORMAT.adoc pins the `contains:` dialect to POSIX ERE and states the trivial-pattern rule; a conformance vector (always-match) + a wave4 assertion lock it (10 vectors, 15 dyadt assertions). - scripts/check-canonical-names.sh: reintroduction guard for the deprecated names (6a2 -> descriptiles, agent_instructions -> bot_directives) from the CANONICAL-NAMES.adoc mandate. Inspects only ADDED diff lines so the chartered bulk migration of existing occurrences is untouched; skips meta-references (lines that describe the deprecation). Wired into `just validate` and the pre-commit hook. scripts/tests/wave6-canonical-names-test.sh (4/4). - audits/licence-flags-2026-07.adoc: flag-only record — the whole program made no SPDX edits and no auto licence PRs; DYADT treats licence claims as manual-only end to end. Two owner-review flags surfaced, none acted on. CHANGELOG is git-cliff-generated (not hand-edited); the first tagged release + the rand<0.9.3 advisory expiry are owner actions tracked under #460. Orphan A2ML-ATOMICITY-PROTOCOL registration + REORGANIZATION-PLAN archival deferred to #460 as minor cleanup. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0114ps6mY5jAH4Sz
|
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.



Two cohesive commits closing out the estate audit-and-optimization program (umbrella #460). Both fully tested; generated artifacts in sync.
Commit 1 — Wave 5: per-language testing depth
You flagged this directly: the estate's only per-language testing depth was a single Julia guide from 2024 (no MUST/SHOULD, Rust+Julia only) next to a byte-identical duplicate.
language-testing-standards.md→ v2.0.0: RFC-2119 requirements R1–R9 mapped to the CRG test taxonomy; an anti-theatre rule (nocontinue-on-erroron a MUST check; coverage reported-with-artifact, not asserted).templates/language-testing-guide-TEMPLATE.md: the skeleton every guide follows — requirement-mapping table (tool or visiblenone), tools, SHA-pinned CI, and a mandatory honest "Known gaps" section.affinescript-testing-guide.md: your primary language, previously with zero testing standard — authored honestly (most SHOULD rows are tracked gaps; R3 notesaffinescript-verify.ymlis advisory). SSOT migrates tohyperpolymath/affinescriptprospectively.scripts/check-language-guide.sh(wired intojust validate) +wave5-language-guides-test.sh(7/7). Deleted the duplicate snapshot.Commit 2 — Wave 6: guard, DYADT residual fix, licence record
contains:patterns + minor spec/coverage gaps #461): an adversarial review confirmed 16 bypasses in the Wave-4 verifier; 15 were fixed in Harden the DYADT claim verifier against adversarial-review bypasses #458, and this closes the last — an always-matchingcontains:regex (.*,^,$, …) no longer confirms vacuously (unverifiable trivial-pattern). Spec pins thecontains:dialect to POSIX ERE; conformance vector + assertion added (10 vectors, 15 assertions).check-canonical-names.sh): blocks reintroduction of the deprecated names (6a2→descriptiles,agent_instructions→bot_directives) in added diff lines only (chartered bulk migration untouched). Wired intojust validate+ the pre-commit hook;wave6-canonical-names-test.sh(4/4).audits/licence-flags-2026-07.adoc: flag-only record — the whole program made no SPDX edits and no auto licence PRs; DYADT treats licence claims asmanual-onlyend to end.Verification
All six wave suites pass; DYADT conformance 10/10 + dogfood all-confirmed; registry + scorecard dashboard in sync.
Program status (umbrella #460)
Waves 0/1/3/4 + hardening merged (#453, #454, #457, #458). This lands Waves 5 + 6. Remaining estate-wide work is chartered: #461 (verifier residual — fixed here), #462 (DYADT production verifier), #463 (per-language guides completion).
Licence rows
manual-onlythroughout (flag-only policy).🤖 Generated with Claude Code