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.
Content & Writing
85 Stars
2 Forks
Updated Jan 19, 2026, 04:39 AM
Why Use This
This skill provides specialized capabilities for aiskillstore's codebase.
Use Cases
Developing new features in the aiskillstore repository
Refactoring existing code to follow aiskillstore standards
Understanding and working with aiskillstore's codebase structure
---
name: compound-docs
description: 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.
version: 0.1.0-beta
license: MIT
compatibility: opencode
---
# 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](https://github.com/EveryInc/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:
1. Confirm the problem is actually solved (not still in progress)
2. 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](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:**
1. Add the new value to the appropriate enum in `schema.yaml`
2. 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:
1. **Keyword match** - Search `{output_dir}/` for error message fragments or key symptom phrases
2. **File path match** - Check if the same files are involved in existing docs
3. **Import/dependency match** - Check if the same libraries or modules are mentioned
```bash
# 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:**
1. Read schema.yaml for current valid enum values
2. Ensure all required fields are present
3. 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:**
```bash
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
```markdown
---
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
```{language}
{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:**
```bash
grep -rl "keyword" docs/solutions/
```
**Search by category:**
```bash
ls docs/solutions/deployment/
```
**Search by tag:**
```bash
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.
```