@@ -22,6 +22,119 @@ completion-percentage = 95
2222phase = "maintenance" # design | implementation | testing | maintenance | archived
2323maturity = "production" # experimental | alpha | beta | production | lts
2424
25+ # ═══════════════════════════════════════════════════════════════════════════════
26+ # CRG (Critical Reception Grade) advancement — D→C→B
27+ # Per memory rule: B-grade requires [external-targets]≥6, [issues-fed-back],
28+ # [field-signal] populated.
29+ # ═══════════════════════════════════════════════════════════════════════════════
30+
31+ [external-targets]
32+ [[external-targets.target]]
33+ name = "echidna (proof engine)"
34+ relationship = "consumer-of"
35+ contract = "vcltotal-echidna-client async REST + exchange endpoints (OpenTheory + Dedukti); shared types via vcltotal-interface re-exports of echidna-core"
36+ discovered = "Package 4 close-out (commits 64b8ff6 client, 8d26b84 matrix CI)"
37+
38+ [[external-targets.target]]
39+ name = "VeriSimDB"
40+ relationship = "primary-target"
41+ contract = "VCL-ut is the canonical 10-level type-safe query language for VeriSimDB; queries flow OUT, schema constraints flow IN"
42+ discovered = "anchor.identity.one-sentence + project purpose"
43+
44+ [[external-targets.target]]
45+ name = "echidna backend matrix CI"
46+ relationship = "consumer-via-ci"
47+ contract = "vcl-ut/.github/workflows/backend-matrix.yml reads echidna's .machine_readable/provers.a2ml at runtime to drive 113 per-prover smoke jobs"
48+ discovered = "Package 4 step 5 (commit 8d26b84)"
49+
50+ [[external-targets.target]]
51+ name = "echidna-core (shared-types crate)"
52+ relationship = "type-dependency"
53+ contract = "vcltotal-interface re-exports Term/Goal/ProofState/Tactic/Theorem from echidna-core; echidna is canonical owner of the schema"
54+ discovered = "Package 4 shared-types layer (echidna commit c8c0acf extraction + vcl-ut commit 69745de re-export)"
55+
56+ [[external-targets.target]]
57+ name = "AffineScript ecosystem"
58+ relationship = "sibling-typed-dsl"
59+ contract = "Both VCL-ut and AffineScript are type-system-driven DSLs in the typell ecosystem; potential for shared linting/checker infrastructure"
60+ discovered = "language policy (Allowed languages list), implementation-policy in ANCHOR.a2ml"
61+
62+ [[external-targets.target]]
63+ name = "Hypatia (estate-wide neurosym CI)"
64+ relationship = "potential-consumer"
65+ contract = "Hypatia scanning consumes type-safety verification reports; vcl-ut produces 10-level safety annotations that Hypatia could ingest"
66+ discovered = "ECOSYSTEM.a2ml + estate-wide CI design"
67+
68+ [[external-targets.target]]
69+ name = "echidnabot (proof history queries)"
70+ relationship = "potential-consumer"
71+ contract = "Echidnabot's tactic_outcomes table and VCL-ut both reason over proof history; vcl-ut could provide the query language for echidnabot's history surface (currently echidnabot uses raw SQLite)"
72+ discovered = "echidnabot src/store/ + STATE.a2ml feedback components"
73+
74+ [issues-fed-back]
75+ [[issues-fed-back.issue]]
76+ source = "LSP smoke test 2026-04-24"
77+ date = "2026-04-24"
78+ issue = "test_completion_without_schema_returns_only_keywords expected 3 keywords, returned 13 — keyword set grew without test update"
79+ status = "resolved — commit 76ef05a updated assertion to 13"
80+
81+ [[issues-fed-back.issue]]
82+ source = "Anchor identity audit"
83+ date = "2026-04-24"
84+ issue = "Anchor identity block + repo URL still said `VCL-total` / `hyperpolymath/vcl-total` after rename to vcl-ut (commit b2c71eb)"
85+ status = "resolved — commit e8147bb (3 fields renamed)"
86+
87+ [[issues-fed-back.issue]]
88+ source = "Contractile structure audit 2026-04-24"
89+ date = "2026-04-24"
90+ issue = "Only bust verb had a working .ncl runner; bust.ncl imported `../_base.ncl` which did not exist; adjust + intend verbs missing entirely"
91+ status = "resolved — commit b68fb08 ported template's 6-verb structure with _base.ncl + INDEX.a2ml"
92+
93+ [[issues-fed-back.issue]]
94+ source = "Backend matrix CI realism (Package 4 step 7)"
95+ date = "2026-04-24"
96+ issue = "Matrix runs same wiremock suite per slug because echidna REST surface only covers 17 of 113 provers"
97+ status = "open — work-convergent; jobs can diverge per slug when echidna REST surface expands"
98+
99+ [[issues-fed-back.issue]]
100+ source = "Internal STATE.a2ml audit 2026-04-25"
101+ date = "2026-04-25"
102+ issue = "STATE.a2ml [metadata] still says project = \"rsr-template-repo\" — leftover from template-clone bootstrap, never customised"
103+ status = "open — needs separate commit to update [metadata] + [project-context] to reflect actual vcl-ut state"
104+
105+ [field-signal]
106+ [[field-signal.signal]]
107+ source = "cargo test -p vcltotal-lsp --lib"
108+ metric = "LSP test pass rate"
109+ value = "16/16 (post 76ef05a keyword count fix)"
110+ collected = "2026-04-25"
111+
112+ [[field-signal.signal]]
113+ source = "cargo check --workspace"
114+ metric = "build"
115+ value = "clean (18.86s); single workspace member with path deps that resolve internally"
116+ collected = "2026-04-25"
117+
118+ [[field-signal.signal]]
119+ source = "Dependabot scanner"
120+ metric = "open vulnerability count"
121+ value = "0 open (rolls inherited from echidna's reqwest/rustls upgrades upstream)"
122+ collected = "2026-04-25"
123+
124+ [[field-signal.signal]]
125+ source = "Backend matrix CI configuration"
126+ metric = "per-prover job count"
127+ value = "113 (1:1 with echidna ProverKind variants); max-parallel=3"
128+ collected = "2026-04-25"
129+
130+ [[field-signal.signal]]
131+ source = "Contractile structure (post b68fb08)"
132+ metric = "verbs with working runners"
133+ value = "6/6 (was 1/4) — all six 6-verb pairs now present + base.ncl + INDEX.a2ml"
134+ collected = "2026-04-25"
135+
136+ # ═══════════════════════════════════════════════════════════════════════════════
137+
25138[route-to-mvp]
26139milestones = [
27140 { name = "Phase 0: Core scaffolding (justfile, CI/CD, .machine_readable)", completion = 100 },
0 commit comments