feat: Claude Code Monitor — lanes, pipelines and a merged workspace

Internal SmartGift build of a Claude Code monitoring dashboard.

Lanes: a durable unit of parallel agent work, one per working directory,
tracked across session restarts. Managed lanes are git worktrees the
dashboard provisions and can reset or remove behind a three-check destroy
guard and a counted preflight; adopted lanes are directories you already
own and are never destroyable.

Pipelines: a lane moves through pipeline stages. A stage the agent declares
with evidence renders green; a stage inferred from the tool-event stream
renders dashed amber and never counts as done. Detection is forward-only
within a 30-minute window, and never writes the declared stage.

Workspace: one page at /run with a lane grid, the selected lane's pipeline,
and a full Claude console behind a disclosure.
This commit is contained in:
2026-07-29 17:07:45 +07:00
commit d2fc4a4701
783 changed files with 221217 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
---
description: One-line reliability verdict (OK / DEGRADED / FAILING) for Claude Code usage
---
Print a single reliability verdict for Claude Code usage from the Agent Monitor
dashboard at `http://localhost:4820`. No arguments.
1. Fetch state:
```bash
curl -s http://localhost:4820/api/stats
curl -s http://localhost:4820/api/analytics
```
From `stats`: `total_events`, `events_today`, `sessions_by_status`. From
`analytics`: `event_types` (PreToolUse, PostToolUse, APIError).
2. Derive two reliability signals:
- **Error rate** = `APIError / total_events` (percentage, 2 decimals).
- **Tool-failure rate** = `(PreToolUse PostToolUse) / PreToolUse` (percentage).
3. Pick the verdict from the worse of the two signals:
- **OK** — error rate ≤ 1% and tool-failure rate ≤ 1%.
- **DEGRADED** — either is in 15%.
- **FAILING** — either exceeds 5%.
4. Print exactly one line:
`Reliability: <OK|DEGRADED|FAILING> — errors X.XX%, tool failures Y.YY% (N events)`
Prefix with ✅ (OK), ⚠️ (DEGRADED), or ❌ (FAILING).
Output rules: cite only fields the API returned — never fabricate. One line only;
no extra prose. If `curl` cannot reach `http://localhost:4820`, print
`Reliability: UNKNOWN — dashboard unreachable; start it with \`npm start\` from the repo root.`