Self-improving learning system that detects friction signals and proposes rule updates. This skill should be used when Claude needs to learn from mistakes, when users repeatedly correct behavior, when tool failures indicate missing knowledge, or when reviewing learning candidates via /coach commands.
This skill inherits all available tools. When active, it can use any tool Claude has access to.
Coach enables Claude to learn from friction and improve over time. It detects learning opportunities (user corrections, repeated instructions, tool failures, tone escalation), extracts actionable improvement candidates, and proposes changes requiring explicit user approval.
Core Principle: No silent writes. All improvements require user approval via /coach approve.
Activate this skill when:
/coach commands| Type | Description | Example |
|---|---|---|
rule | Stable constraint | "Never edit generated files" |
checklist | Workflow step | "Run tests after code change" |
snippet | Repeatable command | "Preflight check script" |
skill | Skill update suggestion | "Add X guidance to Y skill" |
antipattern | Things to never do | "Never assume tool exists" |
~/.claude-coach/events.sqlite/coach review, approves/rejects/edits~/.claude-coach/
├── events.sqlite # Raw friction events
├── candidates.json # Pending proposals
└── ledger.sqlite # Cross-repo fingerprints
~/.claude/ or <repo>/.claude/
├── CLAUDE.md # Rules destination
├── checklists/ # Workflow checklists
└── snippets/ # Reusable commands
Execute from ${CLAUDE_PLUGIN_ROOT}/scripts/:
| Script | Purpose |
|---|---|
init_coach.py | Initialize coach system |
detect_signals.py | Pattern detection for friction |
aggregate.py | Turn signals into candidates |
skill_analyzer.py | Analyze skills and scan for outdated tools |
apply.py | Apply approved proposals |
Use /coach scan to proactively check for:
For detailed architecture, schemas, and patterns, see references/ directory.