compound-docs

安装量: 1.4K
排名: #1034

安装

npx skills add https://github.com/everyinc/compound-engineering-plugin --skill 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.

7-Step Process

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

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]

Search docs/solutions/ for similar issues:

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).

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

CRITICAL: All docs require validated YAML frontmatter with enum validation.

Validate against schema: Load schema.yaml and classify the problem against the enum values defined in yaml-schema.md. Ensure all required fields are present and match allowed values exactly.

BLOCK if validation fails:

❌ YAML validation failed

Errors: - problem_type: must be one of schema enums, got "compilation_error" - severity: must be one of [critical, high, medium, low], got "invalid" - symptoms: must be array with 1-5 items, got string

Please provide corrected values.

GATE ENFORCEMENT: Do NOT proceed to Step 6 (Create Documentation) until YAML frontmatter passes all validation rules defined in schema.yaml.

Determine category from problem_type: Use the category mapping defined in yaml-schema.md (lines 49-61).

Create documentation file:

PROBLEM_TYPE="[from validated YAML]" CATEGORY="[mapped from problem_type]" FILENAME="[generated-filename].md" DOC_PATH="docs/solutions/${CATEGORY}/${FILENAME}"

Create directory if needed

mkdir -p "docs/solutions/${CATEGORY}"

Write documentation using template from assets/resolution-template.md

(Content populated with Step 2 context and validated YAML frontmatter)

Result:

Single file in category directory Enum validation ensures consistent categorization

Create documentation: Populate the structure from assets/resolution-template.md with context gathered in Step 2 and validated YAML frontmatter from Step 5.

If similar issues found in Step 3:

Update existing doc:

Add Related Issues link to similar doc

echo "- See also: $FILENAME" >> [similar-doc.md]

Update new doc: Already includes cross-reference from Step 6.

Update patterns if applicable:

If this represents a common pattern (3+ similar issues):

Add to docs/solutions/patterns/common-solutions.md

cat >> docs/solutions/patterns/common-solutions.md << 'EOF'

[Pattern Name]

Common symptom: [Description] Root cause: [Technical explanation] Solution pattern: [General approach]

Examples: - [Link to doc 1] - [Link to doc 2] - [Link to doc 3] EOF

Critical Pattern Detection (Optional Proactive Suggestion):

If this issue has automatic indicators suggesting it might be critical:

Severity: critical in YAML Affects multiple modules OR foundational stage (Stage 2 or 3) Non-obvious solution

Then in the decision menu (Step 8), add a note:

💡 This might be worth adding to Required Reading (Option 2)

But NEVER auto-promote. User decides via decision menu (Option 2).

Template for critical pattern addition:

When user selects Option 2 (Add to Required Reading), use the template from assets/critical-pattern-template.md to structure the pattern entry. Number it sequentially based on existing patterns in docs/solutions/patterns/critical-patterns.md.

Decision Menu After Capture

After successful documentation, present options and WAIT for user response:

✓ Solution documented

File created: - docs/solutions/[category]/[filename].md

What's next? 1. Continue workflow (recommended) 2. Add to Required Reading - Promote to critical patterns (critical-patterns.md) 3. Link related issues - Connect to similar problems 4. Add to existing skill - Add to a learning skill (e.g., hotwire-native) 5. Create new skill - Extract into new learning skill 6. View documentation - See what was captured 7. Other

Handle responses:

Option 1: Continue workflow

Return to calling skill/workflow Documentation is complete

Option 2: Add to Required Reading ⭐ PRIMARY PATH FOR CRITICAL PATTERNS

User selects this when:

System made this mistake multiple times across different modules Solution is non-obvious but must be followed every time Foundational requirement (Rails, Rails API, threading, etc.)

Action:

Extract pattern from the documentation Format as ❌ WRONG vs ✅ CORRECT with code examples Add to docs/solutions/patterns/critical-patterns.md Add cross-reference back to this doc Confirm: "✓ Added to Required Reading. All subagents will see this pattern before code generation."

Option 3: Link related issues

Prompt: "Which doc to link? (provide filename or describe)" Search docs/solutions/ for the doc Add cross-reference to both docs Confirm: "✓ Cross-reference added"

Option 4: Add to existing skill

User selects this when the documented solution relates to an existing learning skill:

Action:

Prompt: "Which skill? (hotwire-native, etc.)" Determine which reference file to update (resources.md, patterns.md, or examples.md) Add link and brief description to appropriate section Confirm: "✓ Added to [skill-name] skill in [file]"

Example: For Hotwire Native Tailwind variants solution:

Add to hotwire-native/references/resources.md under "Project-Specific Resources" Add to hotwire-native/references/examples.md with link to solution doc

Option 5: Create new skill

User selects this when the solution represents the start of a new learning domain:

Action:

Prompt: "What should the new skill be called? (e.g., stripe-billing, email-processing)" Run python3 .claude/skills/skill-creator/scripts/init_skill.py [skill-name] Create initial reference files with this solution as first example Confirm: "✓ Created new [skill-name] skill with this solution as first example"

Option 6: View documentation

Display the created documentation Present decision menu again

Option 7: Other

Ask what they'd like to do

Integration Points

Invoked by:

/compound command (primary interface) Manual invocation in conversation after solution confirmed Can be triggered by detecting confirmation phrases like "that worked", "it's fixed", etc.

Invokes:

None (terminal skill - does not delegate to other skills)

Handoff expectations: All context needed for documentation should be present in conversation history before invocation.

Success Criteria

Documentation is successful when ALL of the following are true:

✅ YAML frontmatter validated (all required fields, correct formats) ✅ File created in docs/solutions/[category]/[filename].md ✅ Enum values match schema.yaml exactly ✅ Code examples included in solution section ✅ Cross-references added if related issues found ✅ User presented with decision menu and action confirmed

Error Handling

Missing context:

Ask user for missing details Don't proceed until critical info provided

YAML validation failure:

Show specific errors Present retry with corrected values BLOCK until valid

Similar issue ambiguity:

Present multiple matches Let user choose: new doc, update existing, or link as duplicate

Module not in modules documentation:

Warn but don't block Proceed with documentation Suggest: "Add [Module] to modules documentation if not there" Execution Guidelines

MUST do:

Validate YAML frontmatter (BLOCK if invalid per Step 5 validation gate) Extract exact error messages from conversation Include code examples in solution section Create directories before writing files (mkdir -p) Ask user and WAIT if critical context missing

MUST NOT do:

Skip YAML validation (validation gate is blocking) Use vague descriptions (not searchable) Omit code examples or cross-references Quality Guidelines

Good documentation has:

✅ Exact error messages (copy-paste from output) ✅ Specific file:line references ✅ Observable symptoms (what you saw, not interpretations) ✅ Failed attempts documented (helps avoid wrong paths) ✅ Technical explanation (not just "what" but "why") ✅ Code examples (before/after if applicable) ✅ Prevention guidance (how to catch early) ✅ Cross-references (related issues)

Avoid:

❌ Vague descriptions ("something was wrong") ❌ Missing technical details ("fixed the code") ❌ No context (which version? which file?) ❌ Just code dumps (explain why it works) ❌ No prevention guidance ❌ No cross-references Example Scenario

User: "That worked! The N+1 query is fixed."

Skill activates:

Detect confirmation: "That worked!" triggers auto-invoke Gather context: Module: Brief System Symptom: Brief generation taking >5 seconds, N+1 query when loading email threads Failed attempts: Added pagination (didn't help), checked background job performance Solution: Added eager loading with includes(:emails) on Brief model Root cause: Missing eager loading causing separate database query per email thread Check existing: No similar issue found Generate filename: n-plus-one-brief-generation-BriefSystem-20251110.md Validate YAML: module: Brief System date: 2025-11-10 problem_type: performance_issue component: rails_model symptoms: - "N+1 query when loading email threads" - "Brief generation taking >5 seconds" root_cause: missing_include severity: high tags: [n-plus-one, eager-loading, performance]

✅ Valid Create documentation: docs/solutions/performance-issues/n-plus-one-brief-generation-BriefSystem-20251110.md Cross-reference: None needed (no similar issues)

Output:

✓ Solution documented

File created: - docs/solutions/performance-issues/n-plus-one-brief-generation-BriefSystem-20251110.md

What's next? 1. Continue workflow (recommended) 2. Add to Required Reading - Promote to critical patterns (critical-patterns.md) 3. Link related issues - Connect to similar problems 4. Add to existing skill - Add to a learning skill (e.g., hotwire-native) 5. Create new skill - Extract into new learning skill 6. View documentation - See what was captured 7. Other

Future Enhancements

Not in Phase 7 scope, but potential:

Search by date range Filter by severity Tag-based search interface Metrics (most common issues, resolution time) Export to shareable format (community knowledge sharing) Import community solutions

返回排行榜