diff --git a/stage0/CLAUDE.md b/stage0/CLAUDE.md index 6a43d5a720..cb715709d1 100644 --- a/stage0/CLAUDE.md +++ b/stage0/CLAUDE.md @@ -111,6 +111,15 @@ entries so that IP indices in the function body AIR match. - Deduplication matters. If the function body interns a value that was already created during module-level analysis, `ipIntern` must return the existing index (not create a duplicate). +- Port **functions**, not entries. The IP entries are a consequence of + running the upstream functions (`createFileRootStruct`, + `scanNamespace`, `ensureFileAnalyzed`, etc.) correctly. Port those + functions mechanically from `src/Zcu/PerThread.zig` to C; do not try + to understand every individual IP entry before starting to code. +- Time-box investigation. Spend at most ~10 minutes investigating a + problem before writing code. Use `--verbose-intern-pool` dumps to + verify progress after each batch, not to plan the entire + implementation upfront. ## AIR comparison exceptions