Self-improving learning system for Claude Code that detects friction signals and proposes rule updates.
This is a Feature Plugin - it provides active automation via hooks and slash commands that run during your session, unlike Skill Plugins which only provide reference knowledge.
What makes it a Feature Plugin:
- Hooks that detect friction signals in real-time
- Slash commands for reviewing and approving changes
- Session analysis and cross-repo learning
Coach follows the Agent Skills specification and includes a skill component (
SKILL.md), but extends it with automation features.
Supported Platforms:
- ✅ Claude Code (Anthropic)
- ✅ Other platforms supporting hooks and commands
- Signal Detection: Automatically detects user corrections, tool failures, repeated instructions, and tone escalation
- Skill Update Suggestions: Detects when users supplement skills with additional guidance and proposes skill updates
- Outdated Tool Detection: Identifies deprecated tools and outdated dependencies from command output
- LLM-Assisted Generation: Uses Claude Haiku to generate specific, actionable learning candidates
- Transcript Analysis: Analyzes full session transcripts at session end for comprehensive learning
- Cross-Repo Learning: Tracks patterns across repositories and proposes promotion to global rules
- Proactive Scanning:
/coach scanchecks for outdated CLI tools and project dependencies - Approval Workflow: All changes require explicit user approval
Install via Claude Code plugin marketplace:
/plugin marketplace add netresearch/claude-code-marketplaceThen install Coach from the plugin list. The plugin auto-configures itself on first use.
| Command | Description |
|---|---|
/coach status |
Show system status and statistics |
/coach review |
Show pending learning proposals |
/coach approve <id> |
Approve and apply a proposal |
/coach reject <id> |
Reject a proposal with reason |
/coach edit <id> |
Edit a proposal before approving |
/coach promote <id> |
Promote project rule to global |
/coach scan |
Scan for outdated tools and dependencies |
/coach init |
Initialize the coach system |
-
Hooks detect friction signals as you work:
UserPromptSubmit: Detects corrections and repetition in user messagesPostToolUse: Captures command failures with exit codesStop: Runs full aggregation at session end
-
Signals are stored in
~/.claude-coach/events.sqlite -
Candidates are generated from patterns in signals
-
Review candidates with
/coach reviewand approve/reject -
Rules are added to your CLAUDE.md files
The plugin auto-configures hooks. For manual configuration or customization, see hooks/hooks.json.
Coach automatically maintains stable hook paths that survive plugin version updates. Hooks run asynchronously for improved performance.
How it works:
- On first hook execution, Coach auto-installs
~/.claude-coach/bin/coach-runlauncher - Settings.json hooks are automatically upgraded to use the stable launcher with
--asyncmode - The launcher dynamically resolves the current plugin version at runtime
- Async mode spawns scripts in background - hooks return immediately without blocking Claude Code
- Future plugin updates work seamlessly - no user action required
Manual recovery (if needed):
If hooks break after an update, running /coach init will repair them.
MIT