devcoach 0.7.4 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -142,13 +142,13 @@ npm run mcpb # → dist-mcpb/devcoach-<version>.mcpb
142
142
  <details>
143
143
  <summary><strong>npx / npm CLI</strong> (any MCP agent — no install)</summary>
144
144
 
145
- No install required — `npx` runs devcoach on demand. For **Claude Code** and **Claude Desktop**, one command registers the MCP server and wires up automatic lesson delivery:
145
+ No install required — `npx` runs devcoach on demand. For **Claude Code** and **Claude Desktop**, one command registers the MCP server, wires up automatic lesson delivery (Stop hooks), and installs the coaching **skill** into `~/.claude/skills/devcoach/`:
146
146
 
147
147
  ```bash
148
148
  npx -y devcoach install
149
149
  ```
150
150
 
151
- Restart your agent afterward. Prefer a global binary? `npm install -g devcoach`, then run `devcoach install` (and drop the `npx -y` prefix everywhere).
151
+ Restart your agent afterward. Prefer a global binary? `npm install -g devcoach`, then run `devcoach install` (and drop the `npx -y` prefix everywhere). After upgrading devcoach, re-run `devcoach install` to refresh the skill — `devcoach stats` reminds you when it's out of date.
152
152
 
153
153
  </details>
154
154
 
@@ -170,14 +170,17 @@ claude mcp add --scope user devcoach npx -- -y devcoach mcp
170
170
  { "mcpServers": { "devcoach": { "type": "stdio", "command": "npx", "args": ["-y", "devcoach", "mcp"] } } }
171
171
  ```
172
172
 
173
- Then add the Stop hooks to `~/.claude/settings.json` for automatic lesson delivery:
173
+ Then add the hooks to `~/.claude/settings.json` for automatic lesson delivery — `stop-hook` decides
174
+ after each turn whether a lesson is due, `prompt-hook` primes the model up front when one is:
174
175
 
175
176
  ```json
176
177
  {
177
178
  "hooks": {
178
179
  "Stop": [
179
- { "hooks": [{ "type": "command", "command": "npx -y devcoach onboard-hook" }] },
180
- { "hooks": [{ "type": "command", "command": "npx -y devcoach lesson-ready" }] }
180
+ { "hooks": [{ "type": "command", "command": "npx -y devcoach stop-hook", "timeout": 60 }] }
181
+ ],
182
+ "UserPromptSubmit": [
183
+ { "hooks": [{ "type": "command", "command": "npx -y devcoach prompt-hook", "timeout": 30 }] }
181
184
  ]
182
185
  }
183
186
  }
@@ -376,7 +379,7 @@ The CLI is a secondary interface for querying and managing your coaching data. E
376
379
 
377
380
  | Command | Description |
378
381
  |---------|-------------|
379
- | `devcoach install` | Register with Claude Code / Claude Desktop |
382
+ | `devcoach install` | Register with Claude Code (MCP + hooks + skill) / Claude Desktop |
380
383
  | `devcoach profile` | Show your knowledge map with confidence bars |
381
384
  | `devcoach stats` | Overview: lesson counts, weakest/strongest topics |
382
385
  | `devcoach lessons` | Browse lesson history with filters |
@@ -427,9 +430,13 @@ devcoach requires Node.js ≥ 24. Check your version: `node --version`. If you'r
427
430
 
428
431
  Run `devcoach install` to re-register the server with Claude Code or Claude Desktop, then restart the agent. If the issue persists, check `~/.claude.json` (Claude Code) and confirm the `devcoach` entry is present and the command is correct.
429
432
 
430
- **"Stop hooks not firing"**
433
+ **"Coaching isn't firing / no lessons appear"**
431
434
 
432
- Stop hooks (automatic lesson delivery after each task) are Claude Code-specific and require `~/.claude/settings.json` to have the two devcoach hook entries (automatic if you ran `devcoach install`, manual if you did it yourself). Other agents (Cursor, Windsurf, Cline) don't support hooks — coaching is available on demand via MCP tools or manual prompting.
435
+ Run **`devcoach doctor`** — it checks the whole wiring (Node version, hook entries in `~/.claude/settings.json`, skill, MCP registration, database, pacing counters, rate limit) and ends with a verdict explaining exactly why the next stop would or wouldn't cue a lesson. Remember that pacing is intentionally quiet: with the defaults a lesson is cued only after `nudge_every` interactions in a session and within the rate limits — that's by design, not a bug. For a live trace, set `DEVCOACH_HOOK_DEBUG=1` and watch `~/.devcoach/hook.log`: every hook run appends one line with its decision (`paced (3/10)`, `rate limited: …`, `cue`). Hooks are Claude Code-specific; other agents (Cursor, Windsurf, Cline) don't support them — coaching is available on demand via MCP tools or manual prompting.
436
+
437
+ **"Stop hook error occurred" next to a lesson**
438
+
439
+ That notice is Claude Code's current labeling of *any* Stop hook that blocks — including devcoach's lesson cue (the accompanying "🎓 devcoach…" line tells you it's coaching, not a failure). It's harmless, and by design it's also rare: the UserPromptSubmit priming hook delivers most lessons within the turn, so the blocking fallback only fires when that didn't happen.
433
440
 
434
441
  **"SQLite permission error"**
435
442