config: opt profile into spec_validation parse gates

Skills Issue #1 (compound-hallucination hardening) shipped a
new optional profile slot, `spec_validation.parsers`, that maps
markdown fence labels to validation commands. Three new gates
consume it: brainstorm Step 7 parse-every-block, planner Step 5
parse-the-bytes-you-inline, and the grounding-check code-block
parse pass. A profile written before the slot existed has all
three running as silent no-ops — exactly the failure mode the
raw-buf.2 spec slipped through.

Register three fence labels:
- `ail` → `ail check {file}` — Form-A surface modules. `check`
  is strictly broader than `parse` (catches the parser-novel
  head class AND the type-level rejects an MVP-only construct
  triggers, e.g. polymorphic fn-type without explicit forall),
  so it would have BLOCKED the storage-tag / RawBuf-shorthand /
  implicit-forall chain at Step 7 of brainstorm.
- `ail-json` → `ail check {file}` — JSON AST form; `check`
  auto-detects extension.
- `ll` → `llvm-as {file} -o /dev/null` — LLVM IR snippets in
  codegen specs.

Verified `ail check` works on a standalone Form-A file (no
workspace setup needed; the loader injects prelude + kernel).
This commit is contained in:
2026-05-29 15:14:00 +02:00
parent 647121cb8f
commit a2698a80cf
+12
View File
@@ -68,6 +68,18 @@ git:
notifications:
command: "~/.claude/notify.sh"
spec_validation:
parsers:
ail:
ext: ".ail"
cmd: "ail check {file}"
ail-json:
ext: ".ail.json"
cmd: "ail check {file}"
ll:
ext: ".ll"
cmd: "llvm-as {file} -o /dev/null"
pipeline:
brainstorm: { gates: [planner] }
planner: { gates: [implement] }