← ClaudeAtlas

ingestlisted

Turn a long requirement document (contract, PRD, spec.md, ticket export) into the distilled spec layer — one .claude/docs/specs/memory/*.md per domain area plus the requirements.md row table — marking every undecided point ⚠️ instead of inventing an answer. Run once after /clio:setup when the project has a requirement source, and again whenever a new source arrives.
nhhthong/clio · ★ 2 · Web & Frontend · score 78
Install: claude install-skill nhhthong/clio
The source is written for humans and far too long to load every session. This skill distils it once into short per-domain files an agent can read, and an index mapping requirement rows onto them. **It never invents a decision.** A point the source leaves open becomes ⚠️ with the name of whoever owes the answer. Source (may be empty — then ask): $ARGUMENTS ## 1. Read the source, agree the split Read the whole document. The expensive content is the sentence that contradicts a heading three sections later. Then **ASK**, in one batch: - Where else requirements live (contract, tickets, chat, recordings) and **which source wins on conflict** — this becomes the priority list in `requirements.md`. - Whether raw sources may be committed, and where they live. - The `domain` vocabulary if `CLAUDE.md` does not have one yet. Propose one `memory/<area>.md` per area a task would plausibly be scoped to — 4–10 files, not one per chapter — with row numbers from the source's own numbering (section, contract task, epic, issue). No numbering → number sequentially and say in `requirements.md` that the numbers are local. ``` memory/viewer.md ← source §3–5 rows 3–5 memory/ocr.md ← source §7 rows 7.1–7.3 ``` **Wait for the user's confirmation.** Every later `req` tag in both ledgers joins on these numbers. ## 2. Write `.claude/docs/specs/memory/*.md` Final decisions only, shortest unambiguous form, no implementation history. ```markdown # <Area> ## Decisions - <One dec