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:
@@ -0,0 +1,14 @@
|
||||
---
|
||||
paths:
|
||||
- "server/**/*.js"
|
||||
- "scripts/**/*.js"
|
||||
---
|
||||
|
||||
# Backend and Hook Rules
|
||||
|
||||
- Keep API responses backward-compatible unless a breaking change is explicitly requested.
|
||||
- Maintain deterministic, non-blocking hook ingestion behavior.
|
||||
- Preserve transaction boundaries and data integrity in event processing logic.
|
||||
- For route changes, validate input thoroughly and return structured errors.
|
||||
- Prefer prepared-statement usage patterns already established in `server/db.js`.
|
||||
- If touching status transitions, verify session and agent lifecycle state machines still make sense.
|
||||
@@ -0,0 +1,12 @@
|
||||
---
|
||||
paths:
|
||||
- "**/*.md"
|
||||
---
|
||||
|
||||
# Documentation Rules
|
||||
|
||||
- Keep command examples executable and aligned with actual scripts.
|
||||
- Use absolute or clearly rooted paths when discussing project files.
|
||||
- When adding architecture claims, reflect current code behavior.
|
||||
- Update all affected docs together (`README`, `ARCHITECTURE`, `SETUP`, `INSTALL`, `mcp/README`) when workflows change.
|
||||
- Prefer concise sections and concrete troubleshooting steps.
|
||||
@@ -0,0 +1,6 @@
|
||||
# File Header Rules (binding for every coding agent)
|
||||
|
||||
- Every applicable source file (`.js/.ts/.tsx/.cjs/.mjs/.py/.sh/.css` — excluding `node_modules/`, `dist/`, `data/`, minified/vendored, snapshots) MUST start with the header comment: a truthful file overview plus the exact line `@author Nguyễn Ngọc Trí Vĩ <vinnt@smartgift.vn>`.
|
||||
- Creating a new applicable file → write the header before any code (after the shebang in scripts).
|
||||
- Editing a file that lacks the header → add it in the same change; if the edit changes the file's purpose, update the overview.
|
||||
- Formats and the repo-wide audit script live in `.claude/skills/file-headers/` (`bash .claude/skills/file-headers/scripts/check-headers.sh` must exit 0).
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
paths:
|
||||
- "client/src/**/*.{ts,tsx,css}"
|
||||
- "client/public/**/*.tsx"
|
||||
---
|
||||
|
||||
# Frontend Rules
|
||||
|
||||
- Preserve existing UI information hierarchy unless redesign is requested.
|
||||
- Keep component props and API typing explicit; avoid implicit `any`.
|
||||
- Match existing page/component patterns for loading, empty, and error states.
|
||||
- When adding UI behavior, ensure it degrades safely if websocket updates are delayed.
|
||||
- Keep routes consistent with current navigation model.
|
||||
- Prefer focused UI diffs over broad stylistic rewrites.
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
paths:
|
||||
- "mcp/src/**/*.ts"
|
||||
- "mcp/package.json"
|
||||
- "mcp/tsconfig.json"
|
||||
- "mcp/.env.example"
|
||||
- "mcp/README.md"
|
||||
---
|
||||
|
||||
# MCP Server Rules
|
||||
|
||||
- Keep MCP tool names stable and descriptive.
|
||||
- Keep destructive operations behind explicit guardrails.
|
||||
- Route all logs to stderr only; never write protocol logs to stdout.
|
||||
- Keep tool input schemas strict and bounded.
|
||||
- Preserve loopback-only API target enforcement unless security posture changes by request.
|
||||
- Verify MCP with `npm run mcp:typecheck` and `npm run mcp:build` after code edits.
|
||||
Reference in New Issue
Block a user