
Compound Docs
Turn a verified bugfix or debugging win into a categorized, searchable markdown doc so the same trap does not eat your next session.
Install
npx skills add https://github.com/everyinc/compound-engineering-plugin --skill compound-docsWhat is this skill?
- 7-step strict documentation-capture sequence after the user confirms the fix
- Enum-validated symptom categories with one markdown file per problem under docs/solutions/
- YAML frontmatter on each resolution doc for fast grep and lookup
- Auto-invoke on confirmation phrases or manual /doc-fix
- Skips trivial fixes; requires a verified, non-obvious solution before writing
Adoption & trust: 1.5k installs on skills.sh; 20.5k GitHub stars; 3/3 security scanners passed (skills.sh audits).
Recommended Skills
Journey fit
Institutional fix memory belongs on the operate shelf because it compounds how you run and evolve the product after incidents, not only at first ship. Iterate is where recurring fixes, regressions, and tribal knowledge get captured so each solved problem makes the next cycle faster.
Common Questions / FAQ
Is Compound Docs safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Compound Docs
# compound-docs Skill **Purpose:** Automatically document solved problems to build searchable institutional knowledge with category-based organization (enum-validated problem types). ## Overview This skill captures problem solutions immediately after confirmation, creating structured documentation that serves as a searchable knowledge base for future sessions. **Organization:** Single-file architecture - each problem documented as one markdown file in its symptom category directory (e.g., `docs/solutions/performance-issues/n-plus-one-briefs.md`). Files use YAML frontmatter for metadata and searchability. --- <critical_sequence name="documentation-capture" enforce_order="strict"> ## 7-Step Process <step number="1" required="true"> ### Step 1: Detect Confirmation **Auto-invoke after phrases:** - "that worked" - "it's fixed" - "working now" - "problem solved" - "that did it" **OR manual:** `/doc-fix` command **Non-trivial problems only:** - Multiple investigation attempts needed - Tricky debugging that took time - Non-obvious solution - Future sessions would benefit **Skip documentation for:** - Simple typos - Obvious syntax errors - Trivial fixes immediately corrected </step> <step number="2" required="true" depends_on="1"> ### Step 2: Gather Context Extract from conversation history: **Required information:** - **Module name**: Which module or component had the problem - **Symptom**: Observable error/behavior (exact error messages) - **Investigation attempts**: What didn't work and why - **Root cause**: Technical explanation of actual problem - **Solution**: What fixed it (code/config changes) - **Prevention**: How to avoid in future **Environment details:** - Rails version - Stage (0-6 or post-implementation) - OS version - File/line references **BLOCKING REQUIREMENT:** If critical context is missing (module name, exact error, stage, or resolution steps), ask user and WAIT for response before proceeding to Step 3: ``` I need a few details to document this properly: 1. Which module had this issue? [ModuleName] 2. What was the exact error message or symptom? 3. What stage were you in? (0-6 or post-implementation) [Continue after user provides details] ``` </step> <step number="3" required="false" depends_on="2"> ### Step 3: Check Existing Docs Search docs/solutions/ for similar issues: ```bash # Search by error message keywords grep -r "exact error phrase" docs/solutions/ # Search by symptom category ls docs/solutions/[category]/ ``` **IF similar issue found:** THEN present decision options: ``` Found similar issue: docs/solutions/[path] What's next? 1. Create new doc with cross-reference (recommended) 2. Update existing doc (only if same root cause) 3. Other Choose (1-3): _ ``` WAIT for user response, then execute chosen action. **ELSE** (no similar issue found): Proceed directly to Step 4 (no user interaction needed). </step> <step number="4" required="true" depends_on="2"> ### Step 4: Generate Filename Format: `[sanitized-symptom]-[module]-[YYYYMMDD].md` **Sanitization rules:** - Lowercase - Replace spaces with hyphens - Remove special characters except hyphens - Truncate to reasonable length (< 80 chars) **Examples:** - `missing-include-BriefSystem-20251110.md` - `parameter-not-saving-state-EmailProcessing-20251110.md` - `webview-crash-on-resize-Assistant-20251110.md` </step> <step number="5" required="true" depends_on="4" blocking="true"> ### Step 5: Validate YAML Schema **CRITICAL:** All docs require validated YAML frontmatter with enum validation. <validation_gate name="