Built for Claude Code.
- README.md
- CLAUDE.md instructions, style, rules, dictionary index
- Makefile
- dictionary.yaml one term per concept
- scripts
- comment-budget.py
- doc-lint.py
- dictionary-index.py
- .claude
- settings.json
- commands/
- design.md
- execute.md
- audit.md
- ref.md
- deslop.md
- docs
- README.md
- notes/
- _example-evidence.md
- spec/
- _example-api.yaml
- _example-returns.yaml
- refs/
- documentation.yaml
- tasks/
- README.md
- _example.yaml
- backlog/
- next/
- progress/
- done/
/designa task with the user. Save it intodocs/tasks/next/./executethe task. Move it intodocs/tasks/progress/./auditthe work. Write the findings into the same task file.- Fix small findings in the same session. For a large finding, open a new task.
- Move the task into
docs/tasks/done/.
Split a large task into phases in one file, or into several files linked by after.
- One YAML file per domain. Eight keys: domain, purpose, scope, design, rules, limits, issues, references.
docs/spec/holds one system document per domain, product and technical alike.docs/refs/holds the overarching documents,architecture.yamlanddocumentation.yaml.- One YAML file per task. Eleven keys,
docs/tasks/_example.yamlgives the order. docs/refs/documentation.yamlstates the schema and the 18 rules.- Each rule carries an id. Another document cites it as domain and id, for example
example R1. - A number in an issue or a result carries an evidence path.
dictionary.yamldefines one term per concept, with a source.- The seed holds 10 document terms. Add the project's domain terms.
- Mark a term with no published source as
src: project. scripts/dictionary-index.pyprints the index block for CLAUDE.md.
make lintrunsscripts/comment-budget.pyandscripts/doc-lint.py.- Comment budget: file warn 15 %, fail 20 % of characters. Blocks warn over 2 lines, fail over 4. Tree warn 13 %, fail 15 %. Covers py, ts, tsx, js, jsx, rs and md.
- Document lint: schema, key order, sentence length, banned modals, citation keys, evidence path shape.
--strictfails on a warning. The repository ships no pre-commit hook. Add one that runsmake lint./desloprewrites docs to the style. Facts, numbers, sources and code stay unchanged.
- Write CLAUDE.md for the project. Fill the
<project>block. - Run Claude Code with
--system-prompt "-"to drop the default prompt. - Add the project linters to
make lint, for example ruff, eslint, clippy. One target serves the hook and the agents. - Set
EVIDENCEinscripts/doc-lint.pyto the project's evidence path shape. - Write one system document per domain into
docs/spec/. Use/refon an existing product or on existing code. - Write
docs/refs/architecture.yaml. It spans the domains and names the seams. - Add the project's terms to
dictionary.yaml. Runscripts/dictionary-index.pyand paste the index into CLAUDE.md. - Work through the flow above.
- After
/audit, ask the model whether it reviewed the whole scope. It stops early. - A large task needs several
/executeand/auditsessions. - Two agents on one repo need separate branches or separate worktrees.