What problem does it solve?
Propagate learnings to improve existing skills by feeding observations, corrections, gotchas, or new patterns to a backprop subagent that decides how to update skills.
Core Features & Use Cases
- Take a learning, correction, or observation from the current session
- Spawn a backprop subagent that searches existing skills for relevance
- The subagent edits the affected skills to incorporate the new knowledge
- Reports what changed and why
When to use me
Trigger on:
- "backprop this" / "propagate this back"
- "this skill is wrong about X"
- "remember that X actually works like Y"
- "add this gotcha to the relevant skill"
- Any request to update skills based on something discovered during work
How to invoke
The user provides a learning. It can be:
- A correction: "ast-grep patterns don't work with JSX fragments unless you set language to tsx"
- A new pattern: "found that combining
has + inside with stopBy: end is the way to match deeply nested X inside Y"
- A gotcha/anti-pattern: "never use
regex on multiline nodes, it only sees the first line"
- A missing concept: "the tree-sitter-queries skill doesn't cover the
set! directive for injection.combined"
Workflow
When this skill loads, the main agent MUST:
- Collect the learning from the user's message (and any relevant context from the current conversation)
- Spawn the
backprop subagent with a prompt containing:
- The exact learning/correction/observation
- Which topic area it relates to (if obvious)
- Any code examples or evidence from the session
- The subagent handles everything else: searching skills, deciding edits, applying them
- Report the subagent's summary back to the user
Prompt template for the subagent
LEARNING:
{the observation, correction, or new pattern}
TOPIC HINT:
{topic area if known, or "unknown -- search broadly"}
EVIDENCE:
{any code snippets, error messages, or examples that support the learning}
The subagent will search ~/.agents/skills/, read relevant skills, and edit them.
What the subagent decides
For each relevant skill, the subagent picks one of:
- append: Add to an existing section (new example, new bullet point, new gotcha)
- correct: Fix incorrect information
- restructure: Move content between sections or add a new section
- skip: Skill is tangentially related but the learning doesn't belong there
The subagent does NOT:
- Create new skills (that's what docs-to-skills is for)
- Delete large sections
- Change skill frontmatter (name, description) unless the description is now inaccurate