# Learnings This directory is the system-of-record for durable learnings extracted from completed work. ## Policy - Prefer merging/deduping into existing bullets over adding new near-duplicates. - Keep each category within the configured bullet budget (default: 30 per category). - Each learning bullet should end with a source suffix: `*(F024)*` for internally-derived learnings, or `*(Author, Source Year)*` for externally-sourced insights. - Archive overflow in `docs/learnings/archived/` rather than growing unbounded. - Use one-line bullets only, starting with `- `. ## Categories | Category | File | Scope | |----------|------|-------| | Architecture | [architecture.md](architecture.md) | System structure, patterns, boundaries | | Conventions | [conventions.md](conventions.md) | Naming, file organization, code style | | Workflow | [workflow.md](workflow.md) | Process, automation, verification | | Integrations | [integrations.md](integrations.md) | APIs, libraries, external systems | | Gotchas | [gotchas.md](gotchas.md) | Non-obvious behaviors, edge cases | | Security | [security.md](security.md) | Threats, hardening, secrets | | Testing | [testing.md](testing.md) | Test patterns, fixtures, mocking | ## Archive Learnings that are stale or superseded move to [archived/README.md](archived/README.md). ## Adding Learnings The `compound-engineer` agent updates these files after completed features. To add learnings manually: 1. Find the appropriate category file 2. Add a one-line bullet starting with `- ` 3. End with a source: `*(F001)*` for feature-derived learnings, or `*(Author, Source Year)*` for external insights 4. If category is at budget, merge related learnings or archive stale ones