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 57dc91585d
783 changed files with 221743 additions and 0 deletions
@@ -0,0 +1,41 @@
---
description: Quick Claude Code config audit — counts per surface (user vs project) and totals.
---
Run a fast configuration audit against the Agent Monitor Config Explorer at
`http://localhost:4820`. Fetch the overview in one call:
```bash
curl -s http://localhost:4820/api/cc-config/overview
```
The response is `{ roots, counts }` where `counts` includes:
`skills`, `agents`, `commands`, `outputStyles` (each `{ user, project }`),
`plugins`, `pluginsEnabled`, `pluginsDisabled`, `marketplaces`, `keybindings`,
`mcpServers` (`{ user, project }`), `hooks` (`{ user, project, "project-local" }`),
`memory`, and `settingsFiles`.
Print a compact one-screen table — one row per surface with User, Project, and
Total columns (sum the two scopes; for plugins/memory/etc. that have no scope
split, show the single total). Echo the resolved `roots.claudeHome` and
`roots.projectRoot` on the first line so the user knows what was inspected.
```
Config Audit (home=~/.claude project=/path/to/repo)
Skills .......... user 22 project 3 total 25
Agents .......... user 7 project 1 total 8
Commands ........ user 14 project 0 total 14
Output styles ... user 2 project 0 total 2
Plugins ......... 9 (enabled 7 / disabled 2)
Marketplaces .... 2
MCP servers ..... user 5 project 1 total 6
Hooks ........... user 7 project 0 project-local 0 total 7
Memory .......... 41 entries
Settings files .. 2
```
End with a one-line verdict: note the largest surface and any obvious sprawl
(e.g. heavy user-scope skills/commands). Cite only the numbers the API
returned — never fabricate counts. If the dashboard is unreachable, say so and
tell the user to start it with `npm start` from the repo root. Keep it to the
table + verdict; no extra prose.
+33
View File
@@ -0,0 +1,33 @@
---
description: One-screen inventory of skills, agents, commands, MCP servers, and hooks counts.
---
Print a one-screen inventory of the user's Claude Code config from the Agent
Monitor Config Explorer at `http://localhost:4820`. Fetch the overview once:
```bash
curl -s http://localhost:4820/api/cc-config/overview
```
From `counts`, surface just the five core surfaces:
- **skills** — `counts.skills.user + counts.skills.project`
- **agents** — `counts.agents.user + counts.agents.project`
- **commands** — `counts.commands.user + counts.commands.project`
- **mcp** — `counts.mcpServers.user + counts.mcpServers.project`
- **hooks** — `counts.hooks.user + counts.hooks.project + counts.hooks["project-local"]`
Print a single compact block with the total for each, plus the user/project
split in parentheses where it applies:
```
Config Inventory
Skills ... 25 (user 22 / project 3)
Agents ... 8 (user 7 / project 1)
Commands . 14 (user 14 / project 0)
MCP ...... 6 (user 5 / project 1)
Hooks .... 7 (user 7 / project 0 / local 0)
```
Cite only the numbers the API returned — never fabricate counts. If the
dashboard is unreachable, say so and tell the user to start it with `npm start`
from the repo root. Keep it to the block only; no extra prose.
+45
View File
@@ -0,0 +1,45 @@
---
description: List the file-based memory store grouped by project (auto-memory) plus the CLAUDE.md files.
argument-hint: "[project-filter]"
---
List the user's file-based memory store from the Agent Monitor Config Explorer
at `http://localhost:4820`. If **$ARGUMENTS** is given, treat it as a
project-slug filter and show only matching auto-memory groups.
```bash
curl -s http://localhost:4820/api/cc-config/memory
```
The response is `{ items: [...] }`. Two kinds of entry:
- **CLAUDE.md** — `{ scope:"user"|"project", file, size, mtime, preview }`.
- **Auto-memory facts** — `{ scope:"auto-memory", project, name, isIndex, file,
size, mtime, frontmatter, preview }`.
Print in two parts:
1. **CLAUDE.md** — one line per entry: `scope`, `size` (KB), last-modified.
Flag any with `truncated: true` as oversized.
2. **Auto-memory, grouped by `project`** — for each project (filtered by
`$ARGUMENTS` if provided), list the index file (`isIndex: true`, usually
`MEMORY.md`) first, then each per-fact file with `name`,
`frontmatter.description` (or start of `preview`), `size` (KB), and `mtime`.
```
Memory store
CLAUDE.md
user ..... 8.2 KB modified 3d ago
project .. 1.1 KB modified 1h ago
Project: -Users-david-WebstormProjects-foo (4 files)
MEMORY.md (index) ......... 0.6 KB
feature_x_decision.md ..... 0.3 KB — "why we chose X over Y"
api_quirk.md .............. 0.2 KB — "endpoint Z returns 200 on error"
```
Cite only fields the API returned — never invent facts, names, or sizes. Note
that auto-memory files are editable via `PUT`/`DELETE /api/cc-config/file`
(a backup is taken automatically) but this command is read-only. If the
dashboard is unreachable, say so and tell the user to start it with `npm start`
from the repo root.