# Context Conservation Policy

> Prevent context window waste by keeping large artifacts in files, not chat.

---

## Rules

### 1. Summarize, Don't Reproduce

Reference file paths instead of echoing content.

**Do:** "PRD written to `docs/PRD.md` with 5 user stories."
**Don't:** Print the entire PRD in chat.

### 2. Write Artifacts to Files

| Artifact Type | Location |
|---------------|----------|
| Documentation | `docs/` |
| Decisions | `.claude/project/knowledge/DECISIONS.md` |
| Glossary terms | `.claude/project/knowledge/GLOSSARY.md` |
| Open questions | `.claude/project/knowledge/OPEN_QUESTIONS.md` |
| Task status | `.claude/project/STATE.md` |
| Event records | `.claude/project/EVENTS.md` |

### 3. Persist Decisions

Every architectural or design decision must be written to DECISIONS.md. Decisions stated only in chat are at risk of loss.

### 4. Update System State

After every unit of work:
- STATE.md -- update active task status, outputs, files modified
- EVENTS.md -- update event processing status

### 5. Chat Budget

Chat output per task cycle should stay under 200 words. Include only:
- Task completed (ID + one-line description)
- Files changed (list of paths)
- Decisions made (one-line each)
- Next task (ID + one-line description)

### 6. Lazy Context Loading

Do not preemptively read all files. Load only what the current task requires.
