Agent skill
compound-docs
Capture solved problems as searchable documentation with pattern detection. This skill auto-triggers when users confirm a fix worked ("that worked", "it's fixed", "working now") or manually via /compound command.
Install this agent skill to your Project
npx add-skill https://github.com/aiskillstore/marketplace/tree/main/skills/bind/compound-docs
SKILL.md
compound-docs
Each documented solution compounds your team's knowledge. The first time you solve a problem takes research. Document it, and the next occurrence takes minutes. Knowledge compounds.
This skill is inspired by Every.to's compound-engineering plugin.
Auto-Invoke Triggers
This skill auto-triggers when the user says:
- "that worked"
- "it's fixed"
- "working now"
- "problem solved"
- "that did it"
Manual command: /compound
Workflow
Step 1: Detect Trigger
When a trigger phrase is detected or /compound is invoked:
- Confirm the problem is actually solved (not still in progress)
- Check if the fix is worth documenting
Skip documentation for trivial fixes:
- Simple typos
- Obvious syntax errors (missing semicolon, bracket)
- Single-line fixes that were immediately obvious
If skipping, briefly explain why: "This was a simple typo fix - skipping documentation."
Step 2: Gather Context
Read schema.yaml to get valid enum values, then extract from the conversation:
| Field | Required | Description |
|---|---|---|
| Symptom | Yes | Error message or observable behavior |
| Category | Yes | From schema.yaml category.values (or add new) |
| Component | No | From schema.yaml component.values (or add new) |
| Root cause | No | From schema.yaml root_cause.values (or add new) |
| Solution | Yes | The fix that worked |
| Prevention | No | How to avoid this in the future |
If a value doesn't exist in schema.yaml:
- Add the new value to the appropriate enum in
schema.yaml - If it's a new category, create the directory:
mkdir -p {output_dir}/{new-category}
If critical info is missing, ask:
To document this fix, I need a few details:
1. Category: What type of issue was this?
[list current values from schema.yaml]
Or suggest a new category if none fit
Step 3: Check for Similar Issues
Before creating a new doc, search for similar existing issues:
- Keyword match - Search
{output_dir}/for error message fragments or key symptom phrases - File path match - Check if the same files are involved in existing docs
- Import/dependency match - Check if the same libraries or modules are mentioned
# Example searches
grep -rl "ErrorMessage" docs/solutions/
grep -l "path/to/file" docs/solutions/**/*.md
If potential matches found:
Found potentially related issues:
- docs/solutions/integration/api-timeout-20250102.md
- docs/solutions/integration/auth-header-missing-20250105.md
Are any of these the same or related issue? (y/n)
If related, add to the related field in frontmatter.
Step 4: Create Documentation
Validate against schema.yaml:
- Read schema.yaml for current valid enum values
- Ensure all required fields are present
- Ensure enum values exist (or add them first)
Generate filename:
- Format:
{sanitized-symptom}-{YYYYMMDD}.md - Sanitize: lowercase, replace spaces with hyphens, remove special chars, truncate to 80 chars
Create file at: {output_dir}/{category}/{filename}
Ensure directory exists:
mkdir -p {output_dir}/{category}
Use the Solution Doc Template below.
Step 5: Pattern Promotion
After creating the doc, check if this issue has occurred multiple times.
If similar issues >= threshold (default: 2):
This issue has occurred {N} times:
- {link to issue 1}
- {link to issue 2}
- {link to current issue}
Promote to patterns.md? This surfaces it prominently for future sessions.
1. Yes - Add to patterns
2. No - Keep as regular doc only
If yes: Append to {output_dir}/patterns.md using the Pattern Template below.
Solution Doc Template
---
date: {YYYY-MM-DD}
category: {category}
symptoms:
- {symptom 1}
- {symptom 2}
component: {component}
root_cause: {root_cause}
tags: [{keyword1}, {keyword2}]
related: []
---
# {Problem Title}
## Problem
{1-2 sentence description of what went wrong}
## Symptoms
- {What you observed - error messages, behavior, etc.}
## What Didn't Work
- {Attempted solution 1} - {Why it failed}
- {Attempted solution 2} - {Why it failed}
## Solution
{Description of the fix}
```{language}
# Before (broken)
{code before}
# After (fixed)
{code after}
Why This Works
{Technical explanation of the root cause and why the solution addresses it}
Prevention
{How to avoid this in the future - tests, linting rules, patterns to follow}
## Pattern Template
When adding to `patterns.md`:
```markdown
## {Pattern Name}
**Occurrences:** {N} times ({link1}, {link2}, ...)
### WRONG
```{language}
{code that causes the problem}
CORRECT
{code that fixes it}
Why: {Technical explanation}
When this applies: {Context or conditions when this pattern is relevant}
## Integration
### Reference in AGENTS.md
Add to your project's AGENTS.md to ensure patterns are checked:
```markdown
## Required Reading
Before making changes, review known patterns:
- [Solution Patterns](docs/solutions/patterns.md)
Consuming Solutions
Other workflows can discover and apply documented solutions:
Search by keyword:
grep -rl "keyword" docs/solutions/
Search by category:
ls docs/solutions/deployment/
Search by tag:
grep -l "tags:.*docker" docs/solutions/**/*.md
patterns.md is the primary integration point - check it first for critical patterns before making changes.
Example Scenario
User: "That worked! The Docker build was failing because of the cache issue."
Agent response:
Great! Let me document this fix.
**Reading schema.yaml...**
Current categories: developer-experience, deployment, ui, integration, performance, testing
Current components: (none yet)
Current root_causes: (none yet)
**Gathering context...**
From our conversation:
- Symptom: Docker build failing with "layer not found" error
- Category: deployment
- Component: docker (adding to schema.yaml)
- Root cause: stale-cache (adding to schema.yaml)
- Solution: Added `--no-cache` flag and updated base image tag
- Prevention: Pin base image versions, use `docker system prune` periodically
**Updating schema.yaml...**
Added 'docker' to component.values
Added 'stale-cache' to root_cause.values
**Checking for similar issues...**
No related issues found.
**Creating documentation...**
Created: docs/solutions/deployment/docker-layer-not-found-20250106.md
Documentation complete.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
perigon-backend
Perigon ASP.NET Core + EF Core + Aspire conventions
perigon-agent
Pointers for Copilot/agents to apply Perigon conventions
perigon-angular
Angular 21+ standalone/Material/signal conventions for Perigon WebApp
fastapi-mastery
Comprehensive FastAPI development skill covering REST API creation, routing, request/response handling, validation, authentication, database integration, middleware, and deployment. Use when working with FastAPI projects, building APIs, implementing CRUD operations, setting up authentication/authorization, integrating databases (SQL/NoSQL), adding middleware, handling WebSockets, or deploying FastAPI applications. Triggered by requests involving .py files with FastAPI code, API endpoint creation, Pydantic models, or FastAPI-specific features.
context7-efficient
Token-efficient library documentation fetcher using Context7 MCP with 86.8% token savings through intelligent shell pipeline filtering. Fetches code examples, API references, and best practices for JavaScript, Python, Go, Rust, and other libraries. Use when users ask about library documentation, need code examples, want API usage patterns, are learning a new framework, need syntax reference, or troubleshooting with library-specific information. Triggers include questions like "Show me React hooks", "How do I use Prisma", "What's the Next.js routing syntax", or any request for library/framework documentation.
browser-use
Browser automation using Playwright MCP. Navigate websites, fill forms, click elements, take screenshots, and extract data. Use when tasks require web browsing, form submission, web scraping, UI testing, or any browser interaction.
Didn't find tool you were looking for?