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,139 @@
|
||||
{
|
||||
"id": "default",
|
||||
"name": "Default feature pipeline",
|
||||
"nodes": [
|
||||
{
|
||||
"id": "intake",
|
||||
"label": "intake",
|
||||
"icon": "📝",
|
||||
"gate": false,
|
||||
"aliases": [
|
||||
"assigned",
|
||||
"claimed",
|
||||
"start"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "plan",
|
||||
"label": "plan",
|
||||
"icon": "🧭",
|
||||
"gate": false,
|
||||
"aliases": [
|
||||
"planning",
|
||||
"brainstorm",
|
||||
"design"
|
||||
],
|
||||
"detect": [
|
||||
{
|
||||
"tool": "Skill",
|
||||
"match": "brainstorming|writing-plans"
|
||||
},
|
||||
{
|
||||
"tool": "Write",
|
||||
"match": "docs/.*plan.*\\.md"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "implement",
|
||||
"label": "implement",
|
||||
"icon": "🛠",
|
||||
"gate": false,
|
||||
"aliases": [
|
||||
"implementing",
|
||||
"coding",
|
||||
"build"
|
||||
],
|
||||
"detect": [
|
||||
{
|
||||
"tool": "Edit"
|
||||
},
|
||||
{
|
||||
"tool": "Write",
|
||||
"match": "^(?!.*(?:^|/)docs/)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "tests",
|
||||
"label": "tests",
|
||||
"icon": "🧪",
|
||||
"gate": true,
|
||||
"aliases": [
|
||||
"testing",
|
||||
"unit",
|
||||
"gates",
|
||||
"pre-push-gate"
|
||||
],
|
||||
"detect": [
|
||||
{
|
||||
"tool": "Bash",
|
||||
"match": "\\b(npm (run )?test|pytest|vitest|jest|go test|cargo test|node\\s+--test)\\b"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "review",
|
||||
"label": "review",
|
||||
"icon": "👀",
|
||||
"gate": true,
|
||||
"aliases": [
|
||||
"reviewing",
|
||||
"code-review",
|
||||
"self-review"
|
||||
],
|
||||
"detect": [
|
||||
{
|
||||
"tool": "Skill",
|
||||
"match": "code-review|requesting-code-review"
|
||||
},
|
||||
{
|
||||
"tool": "Bash",
|
||||
"match": "\\bgh\\b[^;&|]*\\bpr diff\\b"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "gate",
|
||||
"label": "gate",
|
||||
"icon": "🚦",
|
||||
"gate": true,
|
||||
"aliases": [
|
||||
"verify",
|
||||
"verification",
|
||||
"sr-gate",
|
||||
"gate-blocked"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "ship",
|
||||
"label": "ship",
|
||||
"icon": "🔀",
|
||||
"gate": false,
|
||||
"aliases": [
|
||||
"pr",
|
||||
"pr-open",
|
||||
"publishing",
|
||||
"commit",
|
||||
"push"
|
||||
],
|
||||
"detect": [
|
||||
{
|
||||
"tool": "Bash",
|
||||
"match": "\\bgit\\b(?:\\s+-c\\s+[\\w.-]+=(?:'[^']*'|\\\"[^\\\"]*\\\"|\\S+)|\\s+-{1,2}[\\w.-]+(?:=(?:'[^']*'|\\\"[^\\\"]*\\\"|\\S+))?)*\\s+push\\b|\\bgh\\b[^;&|]*\\bpr create\\b"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "done",
|
||||
"label": "done",
|
||||
"icon": "✅",
|
||||
"gate": false,
|
||||
"aliases": [
|
||||
"complete",
|
||||
"completed",
|
||||
"merged"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user