Phase Execution
Rigid workflow for executing any ROADMAP.md phase. Follow exactly — skipped steps cause rework.
Before Starting
- •Read the phase items from
ICL-Runtime/ROADMAP.md - •Read relevant sections of
ICL-Spec/spec/CORE-SPECIFICATION.mdandICL-Spec/grammar/icl.bnf - •Read existing code that the phase builds on (e.g., for Phase 2, read parser output types)
- •Present a brief plan to the user — what will be built, in how many batches
Implementation Loop
For each batch:
- •Announce — Tell user what this batch covers
- •Implement — Write the code
- •Build —
source "$HOME/.cargo/env" && cargo build --workspace - •Test —
cargo test --workspace(all existing + new tests must pass) - •Determinism — If the phase involves output, run 100-iteration determinism test
- •Report — Show results, ask user to type "continue" for next batch
After All Batches Complete
- •Full test suite —
source "$HOME/.cargo/env" && cargo build --workspace && cargo test --workspace - •Conformance — Test against
ICL-Spec/conformance/valid/andICL-Spec/conformance/invalid/if applicable - •Determinism proof — 100-iteration test on the completed component
- •Update ICL-Runtime/ROADMAP.md — Check off all completed items with
[x] - •Git commit & push — ALWAYS
cdinto the specific repo directory first (e.g.,cd <ICL_WORKSPACE>/ICL-Runtime), then:NEVER run git commands from the ICL workspace root — it is NOT a git repo. The 3 repos are subdirectories. If ICL-Runtime/ROADMAP.md was updated, commit it from insidebashcd <ICL_WORKSPACE>/<repo> # ICL-Runtime, ICL-Spec, or ICL-Docs git add -A && git commit -m "feat(scope): Phase X.Y — description" git push
ICL-Runtime. - •Report — Confirm phase complete, state what's next
Environment
bash
source "$HOME/.cargo/env" # ALWAYS before any cargo command
SSH remotes use host alias github-assetexpand2, not github.com.
Rules
- •Never skip the determinism test — it's the core promise of ICL
- •Never skip ROADMAP update — it's the single source of truth for progress
- •Never skip git commit+push — every sub-phase gets committed
- •Batch size — user controls when to continue; don't auto-proceed
- •Build before test — always
cargo buildbeforecargo test - •Spec is authoritative — if code contradicts spec, fix the code