Files
AILang/.claude/dev-cycle-profile.yml
T
Brummel a2698a80cf 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).
2026-05-29 15:14:00 +02:00

92 lines
2.2 KiB
YAML

# AILang project profile for the ~/dev/skills/ plugin.
# Schema reference: ~/dev/skills/docs/profile-schema.md
paths:
spec_dir: docs/specs
plan_dir: docs/plans
design_ledger: design/INDEX.md
design_contracts: design/contracts
design_models: design/models
code_roots: [crates, runtime]
bench_dir: bench
public_interface: [README.md, design, docs, examples]
fieldtest_examples: examples/fieldtest
naming:
counter_dirs: [docs/specs, docs/plans, design/contracts, design/models]
policy: stable_per_directory_4digit
slug_separator: "-"
commands:
build: cargo build --workspace
test: cargo test --workspace
doc_build: cargo doc --no-deps 2>&1
regression:
- bench/check.py
- bench/compile_check.py
- bench/cross_lang.py
architect_sweeps:
- bash bench/architect_sweeps.sh
vocabulary:
cycle: milestone
subcycle: iteration
ledger_entry: contract
standing_reading:
always:
- CLAUDE.md
- design/INDEX.md
- "git log -10 --format=full"
by_role:
architect:
- design/contracts
debugger:
- "git log -5 --format=full"
bencher:
- design/models/0004-rc-uniqueness.md
- bench/run.sh
- runtime/rc.c
- runtime/bump.c
grounding-check:
- design/INDEX.md
- design/contracts
fieldtester:
- design/INDEX.md
- design/models
git:
main_sacrosanct: true
only_orchestrator_commits: true
protected_branches: [main]
issue_tracker:
kind: gitea
close_marker: "closes #N"
url: "http://192.168.178.103:3000/Brummel/AILang/issues"
list_cmd: "tea issues ls --repo Brummel/AILang --state open"
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] }
implement: {}
audit: { mandatory_at: cycle_close }
debug: { trigger: bug, red_first: true }
boss: { user_invoked: true }
fieldtest: { boss_only: true, when: surface_touch }
docwriter: { boss_only: true, when: api_stable_across_n_cycles }