codymaster 4.1.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/CHANGELOG.md +50 -0
- package/README.md +285 -0
- package/adapters/antigravity.js +15 -0
- package/adapters/claude-code.js +17 -0
- package/adapters/cursor.js +16 -0
- package/commands/bootstrap.md +49 -0
- package/commands/build.md +48 -0
- package/commands/content.md +48 -0
- package/commands/continuity.md +60 -0
- package/commands/debug.md +51 -0
- package/commands/demo.md +96 -0
- package/commands/deploy.md +51 -0
- package/commands/plan.md +42 -0
- package/commands/review.md +55 -0
- package/commands/track.md +46 -0
- package/commands/ux.md +46 -0
- package/dist/agent-dispatch.js +161 -0
- package/dist/chains/builtin.js +85 -0
- package/dist/continuity.js +385 -0
- package/dist/dashboard.js +926 -0
- package/dist/data.js +122 -0
- package/dist/index.js +2434 -0
- package/dist/judge.js +252 -0
- package/dist/parallel-dispatch.js +359 -0
- package/dist/parallel-quality.js +172 -0
- package/dist/skill-chain.js +258 -0
- package/install.sh +513 -0
- package/package.json +79 -0
- package/skills/.content-factory-state.json +132 -0
- package/skills/.git 2/logs/refs/heads/main +1 -0
- package/skills/.git 2/logs/refs/remotes/origin/main +1 -0
- package/skills/.git 2/objects/02/fb0956734b5f8ba3f918b7defd04a89cfe0076 +0 -0
- package/skills/.git 2/objects/08/1e129d75dc6feac6c02037272e6bd1a04e3324 +0 -0
- package/skills/.git 2/objects/0c/5393416f3c5e01c9a655a802bff0dd52f76f0a +0 -0
- package/skills/.git 2/objects/10/0b9be46978a946a77188f68be725098a122001 +0 -0
- package/skills/.git 2/objects/10/cf041167fc9843610eb3d90259ef3396315fdc +0 -0
- package/skills/.git 2/objects/12/5e19538dd6e1338ffe74f6c4c165b00435bf48 +0 -0
- package/skills/.git 2/objects/16/a9b9d0088d5c1347628b45a2620b479d8ad57c +0 -0
- package/skills/.git 2/objects/17/8c2a9ef93c33ae4eec9d58e82321f9229843a1 +0 -0
- package/skills/.git 2/objects/25/397ae41d09104d763bdcac2695209d85cdea89 +0 -0
- package/skills/.git 2/objects/2f/a836b7947f2d458e1f639788bf4bb0983a3305 +0 -0
- package/skills/.git 2/objects/3a/baaaf0a1c0909c0828335791557125fba911e0 +0 -0
- package/skills/.git 2/objects/42/2924221b81f5ce3c4e4daac9a64a24f9b01f9a +0 -0
- package/skills/.git 2/objects/42/ec0ce707447dc11446a34c9995fb8533801731 +0 -0
- package/skills/.git 2/objects/46/e43ce92866d56ce74b1d750db307cfe6154a15 +0 -0
- package/skills/.git 2/objects/48/5e41b633c63f55b8277bcc59f44f67681f671a +0 -0
- package/skills/.git 2/objects/49/49c596a3a89fa240642acd95dd3258e261eb09 +0 -0
- package/skills/.git 2/objects/50/9d42d8412ef8eaf7f7e138476bac2e4d10ce60 +0 -0
- package/skills/.git 2/objects/55/0c8c389d981b463ef849aeb792d8be3ccb6ec8 +0 -0
- package/skills/.git 2/objects/5d/82d3b18410cdda3ace3677436f0cb599dbe2d2 +0 -0
- package/skills/.git 2/objects/60/0617c58e871a38b33bf29e282d132bb3c381ad +0 -0
- package/skills/.git 2/objects/6a/8369a99c687b7245c92ffaf0e0f0dab9014504 +0 -0
- package/skills/.git 2/objects/79/bea435d40ab531c1aaf6be0432c6a5b7aaed21 +0 -0
- package/skills/.git 2/objects/7e/5ebd79251c2f14e4aceb86c74b6b6daae6b500 +0 -0
- package/skills/.git 2/objects/81/98a822a60178d6d5023ddb3e222cddf048742e +0 -0
- package/skills/.git 2/objects/86/0a0e1943dfe53411d2e499a1f16f46a96ef758 +0 -0
- package/skills/.git 2/objects/86/971fb55fdc081fdbae52376f0f13e57a4e9b04 +0 -0
- package/skills/.git 2/objects/88/b89dd609a0a03f8d4fe8bfde20d5b8fc1d326d +0 -0
- package/skills/.git 2/objects/90/8737edb6b7809e32cc01590b4e08ba42a9d40d +0 -0
- package/skills/.git 2/objects/93/d5a8a9a7d4fb7f11491cb596a6880528725118 +0 -0
- package/skills/.git 2/objects/98/46a2ab81d0c3b3eb00ef88fc56989aa7e9f316 +0 -0
- package/skills/.git 2/objects/9b/d8dd1e49cf274eaf9c555f3ab39dce7af5715e +0 -0
- package/skills/.git 2/objects/a1/13329fb0cec96ae78b222d33a24c3b5bc7fa1f +0 -0
- package/skills/.git 2/objects/a9/e6effe626e8a3aea3a8fc3364b492191c6e7d0 +0 -0
- package/skills/.git 2/objects/ad/6de7e48d9782cca9353d1ff0aa1aab7fe1df85 +0 -0
- package/skills/.git 2/objects/af/54ae316f771ff692e299ffcd8bf2f06b413b59 +0 -0
- package/skills/.git 2/objects/b0/4cb8b0b00dad633e731c1472161419e738d674 +0 -0
- package/skills/.git 2/objects/b3/094abb0b9ed46419b269e4a4e36a459690e3b0 +0 -0
- package/skills/.git 2/objects/b9/435c5d4baac2cfc5c83009ddd27b46b60db5f1 +0 -0
- package/skills/.git 2/objects/ba/5da17dbaec5ec2dcfdfd126aead518d1171d5c +0 -0
- package/skills/.git 2/objects/c0/bf58703aa258ba5dd63083bebaec8f223d844c +0 -0
- package/skills/.git 2/objects/c4/701a34edf1fc1bad58ccc57bd03f9426acb59a +0 -0
- package/skills/.git 2/objects/c7/5ccce9a4e5cc74d9b3174550cf6d993ca43638 +0 -0
- package/skills/.git 2/objects/c7/710d59b5a35b0f1f0a0399386643a0bd94c929 +0 -0
- package/skills/.git 2/objects/d1/fe58237112e953e5fec52da22cf38e08be3df9 +5 -0
- package/skills/.git 2/objects/d2/2bbe9fd2f74c95bc5583e803f5e435f1e2cd86 +0 -0
- package/skills/.git 2/objects/d7/e72852ea2bff74581dbf247d400120086229f4 +0 -0
- package/skills/.git 2/objects/d8/d4c3b5553e4fd72807e1d4b49ef07d9ef3ac35 +0 -0
- package/skills/.git 2/objects/dc/75050c2876f6a02ae2a53a3c886f395b622977 +0 -0
- package/skills/.git 2/objects/ee/e8546f95acec500187c08a28a8b9ee02db0dec +0 -0
- package/skills/.git 2/objects/ef/263c059208b416c2146434f10cb2b9fabcba16 +0 -0
- package/skills/.git 2/objects/f3/ae597e84d9a59b88acd21c99bde2eaf686d785 +0 -0
- package/skills/.git 2/objects/f3/f6f5673c821d3d8e76fa267a9e882e7a5387ea +0 -0
- package/skills/.git 2/objects/f9/6e6d0ad02624dd11d5848594d056caef7a5e8b +0 -0
- package/skills/.git 2/objects/ff/278988fc1edf0db3abcf18de795f4cc0b4f3e1 +0 -0
- package/skills/.git 2/refs/heads/main +1 -0
- package/skills/.git 2/refs/remotes/origin/main +1 -0
- package/skills/.pytest_cache 2/v/cache/nodeids +76 -0
- package/skills/.pytest_cache 2/v/cache/stepwise +1 -0
- package/skills/_shared/helpers.md +123 -0
- package/skills/_shared/outputs-convention.md +24 -0
- package/skills/cm-ads-tracker/SKILL.md +109 -0
- package/skills/cm-ads-tracker/evals/evals.json +55 -0
- package/skills/cm-ads-tracker/references/gtm-architecture.md +321 -0
- package/skills/cm-ads-tracker/references/industry-events.md +294 -0
- package/skills/cm-ads-tracker/references/platforms-api.md +238 -0
- package/skills/cm-ads-tracker/templates/capi-payload.md +79 -0
- package/skills/cm-ads-tracker/templates/datalayer-push.js +104 -0
- package/skills/cm-ads-tracker/templates/gtm-variables.js +56 -0
- package/skills/cm-brainstorm-idea/SKILL.md +423 -0
- package/skills/cm-code-review/SKILL.md +151 -0
- package/skills/cm-content-factory/SKILL.md +416 -0
- package/skills/cm-continuity/SKILL.md +399 -0
- package/skills/cm-dashboard/SKILL.md +533 -0
- package/skills/cm-dashboard/ui/app.js +1270 -0
- package/skills/cm-dashboard/ui/index.html +206 -0
- package/skills/cm-dashboard/ui/style.css +440 -0
- package/skills/cm-debugging/SKILL.md +412 -0
- package/skills/cm-deep-search/SKILL.md +242 -0
- package/skills/cm-design-system/SKILL.md +97 -0
- package/skills/cm-design-system/resources/halo-modern.md +40 -0
- package/skills/cm-design-system/resources/lunaris-advanced.md +40 -0
- package/skills/cm-design-system/resources/nitro-enterprise.md +39 -0
- package/skills/cm-design-system/resources/shadcn-default.md +37 -0
- package/skills/cm-dockit/README.md +100 -0
- package/skills/cm-dockit/SKILL.md +302 -0
- package/skills/cm-dockit/index.html +443 -0
- package/skills/cm-dockit/package-lock.json +1850 -0
- package/skills/cm-dockit/package.json +14 -0
- package/skills/cm-dockit/prompts/analysis.md +34 -0
- package/skills/cm-dockit/prompts/api-reference.md +24 -0
- package/skills/cm-dockit/prompts/architecture.md +21 -0
- package/skills/cm-dockit/prompts/data-flow.md +20 -0
- package/skills/cm-dockit/prompts/database.md +21 -0
- package/skills/cm-dockit/prompts/deployment.md +22 -0
- package/skills/cm-dockit/prompts/flows.md +21 -0
- package/skills/cm-dockit/prompts/jtbd.md +20 -0
- package/skills/cm-dockit/prompts/personas.md +24 -0
- package/skills/cm-dockit/prompts/sop-modules.md +40 -0
- package/skills/cm-dockit/scripts/doc-gen.sh +121 -0
- package/skills/cm-dockit/scripts/dockit-dashboard.sh +142 -0
- package/skills/cm-dockit/scripts/dockit-runner.sh +607 -0
- package/skills/cm-dockit/scripts/dockit-task.sh +166 -0
- package/skills/cm-dockit/skills/analyze-codebase.md +174 -0
- package/skills/cm-dockit/skills/api-reference.md +237 -0
- package/skills/cm-dockit/skills/changelog-guide.md +195 -0
- package/skills/cm-dockit/skills/content-guidelines.md +190 -0
- package/skills/cm-dockit/skills/sop-guide.md +184 -0
- package/skills/cm-dockit/skills/tech-docs.md +287 -0
- package/skills/cm-dockit/templates/markdown/structure.md +60 -0
- package/skills/cm-dockit/templates/vitepress-premium/.vitepress/config.mts +110 -0
- package/skills/cm-dockit/templates/vitepress-premium/.vitepress/theme/custom.css +189 -0
- package/skills/cm-dockit/templates/vitepress-premium/.vitepress/theme/index.ts +4 -0
- package/skills/cm-dockit/templates/vitepress-premium/package.json +19 -0
- package/skills/cm-dockit/templates/vitepress-premium/tests/frontend.test.ts +45 -0
- package/skills/cm-dockit/tests/runner.test.ts +66 -0
- package/skills/cm-dockit/workflows/export-markdown.md +82 -0
- package/skills/cm-dockit/workflows/generate-docs.md +68 -0
- package/skills/cm-dockit/workflows/setup-vitepress.md +181 -0
- package/skills/cm-example/SKILL.md +26 -0
- package/skills/cm-execution/SKILL.md +268 -0
- package/skills/cm-git-worktrees/SKILL.md +164 -0
- package/skills/cm-how-it-work/SKILL.md +189 -0
- package/skills/cm-identity-guard/SKILL.md +412 -0
- package/skills/cm-jtbd/SKILL.md +98 -0
- package/skills/cm-planning/SKILL.md +130 -0
- package/skills/cm-project-bootstrap/SKILL.md +161 -0
- package/skills/cm-project-bootstrap/templates/AGENTS.md +42 -0
- package/skills/cm-project-bootstrap/templates/frontend-safety.test.js +51 -0
- package/skills/cm-project-bootstrap/templates/i18n-sync.test.js +38 -0
- package/skills/cm-project-bootstrap/templates/pr-template.md +12 -0
- package/skills/cm-project-bootstrap/templates/project-identity.json +29 -0
- package/skills/cm-project-bootstrap/templates/vitest.config.js +10 -0
- package/skills/cm-quality-gate/SKILL.md +218 -0
- package/skills/cm-readit/SKILL.md +289 -0
- package/skills/cm-readit/audio-player.md +206 -0
- package/skills/cm-readit/examples/blog-reader.js +352 -0
- package/skills/cm-readit/examples/voice-cro.js +390 -0
- package/skills/cm-readit/tts-engine.md +262 -0
- package/skills/cm-readit/ui-patterns.md +362 -0
- package/skills/cm-readit/voice-cro.md +223 -0
- package/skills/cm-safe-deploy/SKILL.md +120 -0
- package/skills/cm-safe-deploy/templates/deploy.sh +89 -0
- package/skills/cm-safe-i18n/SKILL.md +473 -0
- package/skills/cm-secret-shield/SKILL.md +580 -0
- package/skills/cm-skill-chain/SKILL.md +78 -0
- package/skills/cm-skill-index/SKILL.md +318 -0
- package/skills/cm-skill-mastery/SKILL.md +169 -0
- package/skills/cm-start/SKILL.md +65 -0
- package/skills/cm-status/SKILL.md +12 -0
- package/skills/cm-tdd/SKILL.md +370 -0
- package/skills/cm-terminal/SKILL.md +177 -0
- package/skills/cm-test-gate/SKILL.md +242 -0
- package/skills/cm-ui-preview/SKILL.md +291 -0
- package/skills/cm-ux-master/DESIGN_STANDARD_TEMPLATE.md +54 -0
- package/skills/cm-ux-master/SKILL.md +114 -0
- package/skills/cro-methodology/SKILL.md +98 -0
- package/skills/cro-methodology/references/COPYWRITING.md +178 -0
- package/skills/cro-methodology/references/OBJECTIONS.md +135 -0
- package/skills/cro-methodology/references/PERSUASION.md +158 -0
- package/skills/cro-methodology/references/RESEARCH.md +220 -0
- package/skills/cro-methodology/references/funnel-analysis.md +365 -0
- package/skills/cro-methodology/references/testing-methodology.md +330 -0
|
@@ -0,0 +1,533 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cm-dashboard
|
|
3
|
+
description: Open visual Dashboard UI to track work status, with auto-sync from Claude Code, Claude Desktop, Cursor, Codex CLI, Aider, OpenCode, Windsurf, and any shell tool.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Command: `/cm-dashboard`
|
|
7
|
+
|
|
8
|
+
When this command is called, the AI Assistant should:
|
|
9
|
+
|
|
10
|
+
1. **Launch Dashboard:** Run `cm dashboard` in the terminal.
|
|
11
|
+
2. **Query board state:** Call `GET http://localhost:6969/api/tasks` and render a quick summary.
|
|
12
|
+
3. **Inform the user:** The CodyMaster Mission Control Dashboard is live at `http://localhost:6969`.
|
|
13
|
+
|
|
14
|
+
Do NOT draw a static markdown table — always query the live API.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Architecture Overview
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
22
|
+
│ cm-dashboard v3.4+ │
|
|
23
|
+
│ │
|
|
24
|
+
│ ┌──────────────┐ PostToolUse hook │
|
|
25
|
+
│ │ Claude Code │ ──────────────────► todo-bridge.js │
|
|
26
|
+
│ └──────────────┘ │ │
|
|
27
|
+
│ │ │
|
|
28
|
+
│ ┌──────────────┐ MCP stdio │ POST │
|
|
29
|
+
│ │Claude Desktop│ ──────────────────► mcp-bridge.js ──────┐ │
|
|
30
|
+
│ └──────────────┘ │ │ │
|
|
31
|
+
│ │ ▼ │
|
|
32
|
+
│ ┌──────────────┐ MCP (same server) │ ┌─────────┐│
|
|
33
|
+
│ │ Cursor / │ ─────────────────────── ┘ │Dashboard││
|
|
34
|
+
│ │ Windsurf / │ │ :6969 ││
|
|
35
|
+
│ │ Continue / │ ┌────────┤ API ││
|
|
36
|
+
│ │ OpenCode │ │ └─────────┘│
|
|
37
|
+
│ └──────────────┘ │ │
|
|
38
|
+
│ │ │
|
|
39
|
+
│ ┌──────────────┐ shell / cm-dash CLI │ │
|
|
40
|
+
│ │ Codex CLI / │ ────────────────────► cm-dash.js │
|
|
41
|
+
│ │ Aider / │ │ │
|
|
42
|
+
│ │ git hooks / │ │ │
|
|
43
|
+
│ │ any shell │ │ │
|
|
44
|
+
│ └──────────────┘ │ │
|
|
45
|
+
│ │ │
|
|
46
|
+
│ ┌──────────────┐ file watch (.ai-tasks) │ │
|
|
47
|
+
│ │ dashboard- │ ─────────────────────────┘ │
|
|
48
|
+
│ │ watcher.js │ (passive — no per-tool config needed) │
|
|
49
|
+
│ └──────────────┘ │
|
|
50
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Three integration tiers:**
|
|
54
|
+
| Tier | How | Tools |
|
|
55
|
+
|------|-----|-------|
|
|
56
|
+
| **MCP** | Stdio MCP server | Claude Desktop, Cursor, Windsurf, Continue, OpenCode, Zed |
|
|
57
|
+
| **Hook** | PostToolUse hook | Claude Code |
|
|
58
|
+
| **Shell/File** | `cm-dash` CLI or file watcher | Codex CLI, Aider, any shell |
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Tier 1 — Claude Code (PostToolUse Hook)
|
|
63
|
+
|
|
64
|
+
Every `TodoWrite` call syncs automatically. Zero effort after setup.
|
|
65
|
+
|
|
66
|
+
### Step 1 — Install bridge
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
mkdir -p ~/.claude/scripts
|
|
70
|
+
cp <cody-master>/scripts/todo-bridge.js ~/.claude/scripts/todo-bridge.js
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Step 2 — Add hook to `~/.claude/settings.json`
|
|
74
|
+
|
|
75
|
+
```json
|
|
76
|
+
{
|
|
77
|
+
"hooks": {
|
|
78
|
+
"PostToolUse": [
|
|
79
|
+
{
|
|
80
|
+
"matcher": "TodoWrite",
|
|
81
|
+
"hooks": [{ "type": "command", "command": "node ~/.claude/scripts/todo-bridge.js" }]
|
|
82
|
+
}
|
|
83
|
+
]
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Step 3 — Start dashboard
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
cm dashboard
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
| TodoWrite status | Dashboard column |
|
|
95
|
+
|-----------------|-----------------|
|
|
96
|
+
| `pending` | 🔴 Backlog |
|
|
97
|
+
| `in_progress` | 🟡 In Progress |
|
|
98
|
+
| `completed` | 🟢 Done |
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Tier 2 — MCP Server (Claude Desktop · Cursor · Windsurf · Continue · OpenCode · Zed)
|
|
103
|
+
|
|
104
|
+
One MCP server, works with **any MCP-compatible client**. Same `mcp-bridge.js` for all.
|
|
105
|
+
|
|
106
|
+
### Step 1 — Install MCP bridge (once)
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
mkdir -p ~/.claude/scripts
|
|
110
|
+
cp <cody-master>/scripts/mcp-bridge.js ~/.claude/scripts/mcp-bridge.js
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Step 2A — Claude Desktop
|
|
114
|
+
|
|
115
|
+
Edit `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
116
|
+
|
|
117
|
+
```json
|
|
118
|
+
{
|
|
119
|
+
"mcpServers": {
|
|
120
|
+
"cm-dashboard": {
|
|
121
|
+
"command": "node",
|
|
122
|
+
"args": ["/Users/<you>/.claude/scripts/mcp-bridge.js"]
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Restart Claude Desktop. You'll have 3 new tools:
|
|
129
|
+
|
|
130
|
+
| Tool | Purpose |
|
|
131
|
+
|------|---------|
|
|
132
|
+
| `cm_sync_todos` | Sync todo list to dashboard |
|
|
133
|
+
| `cm_get_tasks` | Read current board state |
|
|
134
|
+
| `cm_update_task`| Move a task between columns |
|
|
135
|
+
|
|
136
|
+
Add to your system prompt:
|
|
137
|
+
> After every TodoWrite, call `cm_sync_todos` with the current todo list.
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
### Step 2B — Cursor
|
|
142
|
+
|
|
143
|
+
Edit `~/.cursor/mcp.json` (or **Cursor → Settings → MCP**):
|
|
144
|
+
|
|
145
|
+
```json
|
|
146
|
+
{
|
|
147
|
+
"mcpServers": {
|
|
148
|
+
"cm-dashboard": {
|
|
149
|
+
"command": "node",
|
|
150
|
+
"args": ["/Users/<you>/.claude/scripts/mcp-bridge.js"]
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Restart Cursor. The same 3 tools appear in Cursor's AI context.
|
|
157
|
+
|
|
158
|
+
Add to `.cursorrules` or your global rules:
|
|
159
|
+
```
|
|
160
|
+
When you update your todo list, call cm_sync_todos to keep the cm-dashboard in sync.
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
### Step 2C — Windsurf
|
|
166
|
+
|
|
167
|
+
Edit `~/.codeium/windsurf/mcp_config.json`:
|
|
168
|
+
|
|
169
|
+
```json
|
|
170
|
+
{
|
|
171
|
+
"mcpServers": {
|
|
172
|
+
"cm-dashboard": {
|
|
173
|
+
"command": "node",
|
|
174
|
+
"args": ["/Users/<you>/.claude/scripts/mcp-bridge.js"]
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
### Step 2D — Continue.dev
|
|
183
|
+
|
|
184
|
+
Edit `~/.continue/config.json`:
|
|
185
|
+
|
|
186
|
+
```json
|
|
187
|
+
{
|
|
188
|
+
"experimental": {
|
|
189
|
+
"modelContextProtocolServers": [
|
|
190
|
+
{
|
|
191
|
+
"transport": {
|
|
192
|
+
"type": "stdio",
|
|
193
|
+
"command": "node",
|
|
194
|
+
"args": ["/Users/<you>/.claude/scripts/mcp-bridge.js"]
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
]
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
### Step 2E — OpenCode
|
|
205
|
+
|
|
206
|
+
Edit `~/.config/opencode/config.json` (or `opencode.json` in project root):
|
|
207
|
+
|
|
208
|
+
```json
|
|
209
|
+
{
|
|
210
|
+
"mcp": {
|
|
211
|
+
"cm-dashboard": {
|
|
212
|
+
"command": "node",
|
|
213
|
+
"args": ["/Users/<you>/.claude/scripts/mcp-bridge.js"]
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
### Step 2F — Zed
|
|
222
|
+
|
|
223
|
+
Edit `~/.config/zed/settings.json`:
|
|
224
|
+
|
|
225
|
+
```json
|
|
226
|
+
{
|
|
227
|
+
"context_servers": {
|
|
228
|
+
"cm-dashboard": {
|
|
229
|
+
"command": {
|
|
230
|
+
"path": "node",
|
|
231
|
+
"args": ["/Users/<you>/.claude/scripts/mcp-bridge.js"]
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## Tier 3A — Codex CLI (Shell Wrapper)
|
|
241
|
+
|
|
242
|
+
Codex CLI has no native hook system. Use a shell wrapper function.
|
|
243
|
+
|
|
244
|
+
### Install `cm-dash`
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
chmod +x <cody-master>/scripts/cm-dash.js
|
|
248
|
+
ln -sf "$(pwd)/scripts/cm-dash.js" /usr/local/bin/cm-dash
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### Add to `~/.zshrc` or `~/.bashrc`
|
|
252
|
+
|
|
253
|
+
```bash
|
|
254
|
+
# cm-dashboard integration for Codex CLI
|
|
255
|
+
codex() {
|
|
256
|
+
local session="codex-$(date +%s)"
|
|
257
|
+
export CM_AGENT="codex"
|
|
258
|
+
|
|
259
|
+
# Sync "starting" task if a prompt was given
|
|
260
|
+
if [[ -n "$*" ]]; then
|
|
261
|
+
cm-dash sync --session "$session" \
|
|
262
|
+
--title "$*" \
|
|
263
|
+
--status in-progress \
|
|
264
|
+
--agent codex 2>/dev/null &
|
|
265
|
+
fi
|
|
266
|
+
|
|
267
|
+
# Run the real codex binary
|
|
268
|
+
command codex "$@"
|
|
269
|
+
local exit_code=$?
|
|
270
|
+
|
|
271
|
+
# Sync completed/failed
|
|
272
|
+
if [[ -n "$*" ]]; then
|
|
273
|
+
local status="completed"
|
|
274
|
+
[[ $exit_code -ne 0 ]] && status="cancelled"
|
|
275
|
+
cm-dash sync --session "$session" \
|
|
276
|
+
--title "$*" \
|
|
277
|
+
--status "$status" \
|
|
278
|
+
--agent codex 2>/dev/null &
|
|
279
|
+
fi
|
|
280
|
+
|
|
281
|
+
return $exit_code
|
|
282
|
+
}
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
### Alternative — Codex writes `.ai-tasks.json`
|
|
286
|
+
|
|
287
|
+
Add to your Codex system prompt / AGENTS.md:
|
|
288
|
+
```
|
|
289
|
+
After each task update, write the current task list to .ai-tasks.json in this format:
|
|
290
|
+
{
|
|
291
|
+
"agent": "codex",
|
|
292
|
+
"tasks": [
|
|
293
|
+
{ "id": "1", "title": "task description", "status": "in_progress" }
|
|
294
|
+
]
|
|
295
|
+
}
|
|
296
|
+
The dashboard-watcher will pick this up automatically.
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## Tier 3B — Aider
|
|
302
|
+
|
|
303
|
+
### Option A — Shell hook in `.aider.conf.yml`
|
|
304
|
+
|
|
305
|
+
Aider supports `--exec` for running commands. Add to `~/.aider.conf.yml`:
|
|
306
|
+
|
|
307
|
+
```yaml
|
|
308
|
+
# Run after each commit
|
|
309
|
+
auto-commits: true
|
|
310
|
+
commit-prompt: "feat: {message}"
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
Then add to `~/.zshrc`:
|
|
314
|
+
```bash
|
|
315
|
+
aider() {
|
|
316
|
+
local session="aider-$(basename $(pwd))"
|
|
317
|
+
CM_AGENT="aider" command aider "$@"
|
|
318
|
+
# Sync .ai-tasks.json if it exists
|
|
319
|
+
[[ -f .ai-tasks.json ]] && cm-dash file .ai-tasks.json 2>/dev/null &
|
|
320
|
+
}
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
### Option B — Aider writes `.ai-tasks.json` (recommended)
|
|
324
|
+
|
|
325
|
+
Add to `.aider.conf.yml` or your system prompt:
|
|
326
|
+
```
|
|
327
|
+
When starting work on a task, append to .ai-tasks.json:
|
|
328
|
+
{
|
|
329
|
+
"agent": "aider",
|
|
330
|
+
"tasks": [{ "title": "<task>", "status": "in_progress" }]
|
|
331
|
+
}
|
|
332
|
+
When done, update status to "completed".
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
The `dashboard-watcher.js` picks this up automatically without any extra config.
|
|
336
|
+
|
|
337
|
+
### Option C — Manual sync
|
|
338
|
+
|
|
339
|
+
```bash
|
|
340
|
+
# Before starting
|
|
341
|
+
cm-dash sync --title "Refactor auth module" --status in-progress --agent aider
|
|
342
|
+
|
|
343
|
+
# After done
|
|
344
|
+
cm-dash sync --title "Refactor auth module" --status done --agent aider
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
## Tier 3C — Passive File Watcher (any tool)
|
|
350
|
+
|
|
351
|
+
**Zero per-tool config.** Just run the watcher — it detects any supported file format.
|
|
352
|
+
|
|
353
|
+
### Start the watcher
|
|
354
|
+
|
|
355
|
+
```bash
|
|
356
|
+
# Watch current project
|
|
357
|
+
node <cody-master>/scripts/dashboard-watcher.js
|
|
358
|
+
|
|
359
|
+
# Watch multiple projects
|
|
360
|
+
node <cody-master>/scripts/dashboard-watcher.js --dirs ~/projects/app1,~/projects/app2
|
|
361
|
+
|
|
362
|
+
# Custom poll interval (ms)
|
|
363
|
+
node <cody-master>/scripts/dashboard-watcher.js --poll 2000
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
### Supported file formats
|
|
367
|
+
|
|
368
|
+
| File | Format |
|
|
369
|
+
|------|--------|
|
|
370
|
+
| `.ai-tasks.json` | Universal JSON (any tool can write this) |
|
|
371
|
+
| `TODO.md` | Markdown checkboxes `- [ ] task` / `- [x] done` |
|
|
372
|
+
| `AGENTS.md` | Task sections with checkboxes |
|
|
373
|
+
|
|
374
|
+
### `.ai-tasks.json` — Universal format
|
|
375
|
+
|
|
376
|
+
Any tool, script, or AI can write to this file:
|
|
377
|
+
|
|
378
|
+
```json
|
|
379
|
+
{
|
|
380
|
+
"session": "optional-session-id",
|
|
381
|
+
"project": "my-project",
|
|
382
|
+
"agent": "aider",
|
|
383
|
+
"tasks": [
|
|
384
|
+
{ "id": "1", "title": "Fix auth bug", "status": "in_progress", "priority": "high" },
|
|
385
|
+
{ "id": "2", "title": "Write tests", "status": "pending", "priority": "medium" },
|
|
386
|
+
{ "id": "3", "title": "Deploy to prod","status": "completed", "priority": "low" }
|
|
387
|
+
]
|
|
388
|
+
}
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
Fields for `tasks[]`:
|
|
392
|
+
|
|
393
|
+
| Field | Required | Values |
|
|
394
|
+
|-------|----------|--------|
|
|
395
|
+
| `title` | ✅ | Any string |
|
|
396
|
+
| `status` | ✅ | `pending` / `in_progress` / `completed` / `done` / `wip` / `backlog` / `review` |
|
|
397
|
+
| `id` | — | Any unique string |
|
|
398
|
+
| `priority` | — | `low` / `medium` / `high` / `urgent` |
|
|
399
|
+
|
|
400
|
+
### Auto-start watcher on macOS (launchd)
|
|
401
|
+
|
|
402
|
+
Create `~/Library/LaunchAgents/com.codymaster.watcher.plist`:
|
|
403
|
+
|
|
404
|
+
```xml
|
|
405
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
406
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
|
|
407
|
+
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
408
|
+
<plist version="1.0">
|
|
409
|
+
<dict>
|
|
410
|
+
<key>Label</key>
|
|
411
|
+
<string>com.codymaster.dashboard-watcher</string>
|
|
412
|
+
<key>ProgramArguments</key>
|
|
413
|
+
<array>
|
|
414
|
+
<string>/usr/local/bin/node</string>
|
|
415
|
+
<string>/path/to/cody-master/scripts/dashboard-watcher.js</string>
|
|
416
|
+
<string>--dirs</string>
|
|
417
|
+
<string>/Users/<you>/projects</string>
|
|
418
|
+
</array>
|
|
419
|
+
<key>RunAtLoad</key>
|
|
420
|
+
<true/>
|
|
421
|
+
<key>KeepAlive</key>
|
|
422
|
+
<true/>
|
|
423
|
+
<key>StandardOutPath</key>
|
|
424
|
+
<string>/tmp/cm-watcher.log</string>
|
|
425
|
+
<key>StandardErrorPath</key>
|
|
426
|
+
<string>/tmp/cm-watcher.err</string>
|
|
427
|
+
</dict>
|
|
428
|
+
</plist>
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
```bash
|
|
432
|
+
launchctl load ~/Library/LaunchAgents/com.codymaster.watcher.plist
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
---
|
|
436
|
+
|
|
437
|
+
## `cm-dash` CLI Reference
|
|
438
|
+
|
|
439
|
+
Install:
|
|
440
|
+
```bash
|
|
441
|
+
chmod +x scripts/cm-dash.js
|
|
442
|
+
ln -sf "$(pwd)/scripts/cm-dash.js" /usr/local/bin/cm-dash
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
| Command | Description |
|
|
446
|
+
|---------|-------------|
|
|
447
|
+
| `cm-dash sync --title "X" --status S` | Sync one task |
|
|
448
|
+
| `cm-dash file .ai-tasks.json` | Sync all tasks from file |
|
|
449
|
+
| `cm-dash pipe` | Read .ai-tasks.json from stdin |
|
|
450
|
+
| `cm-dash board [--project P]` | Print ASCII kanban |
|
|
451
|
+
| `cm-dash get [--project P]` | Print tasks as JSON |
|
|
452
|
+
| `cm-dash move <id> <status>` | Transition a task |
|
|
453
|
+
| `cm-dash start` | Start the dashboard |
|
|
454
|
+
| `cm-dash status` | Check if running (exit 0/1) |
|
|
455
|
+
|
|
456
|
+
**Status values accepted everywhere:**
|
|
457
|
+
|
|
458
|
+
| Input | Column |
|
|
459
|
+
|-------|--------|
|
|
460
|
+
| `pending` / `todo` / `backlog` / `open` | 🔴 Backlog |
|
|
461
|
+
| `in_progress` / `in-progress` / `active` / `wip` | 🟡 In Progress |
|
|
462
|
+
| `review` / `testing` | 🔵 Review |
|
|
463
|
+
| `completed` / `done` / `closed` / `cancelled` | 🟢 Done |
|
|
464
|
+
|
|
465
|
+
---
|
|
466
|
+
|
|
467
|
+
## Git Hook Integration
|
|
468
|
+
|
|
469
|
+
Auto-sync tasks on every `git commit`:
|
|
470
|
+
|
|
471
|
+
```bash
|
|
472
|
+
# .git/hooks/post-commit (chmod +x)
|
|
473
|
+
#!/bin/sh
|
|
474
|
+
# Sync .ai-tasks.json if present
|
|
475
|
+
if [ -f .ai-tasks.json ]; then
|
|
476
|
+
cm-dash file .ai-tasks.json 2>/dev/null &
|
|
477
|
+
fi
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
Install globally (all repos):
|
|
481
|
+
```bash
|
|
482
|
+
git config --global core.hooksPath ~/.git-hooks
|
|
483
|
+
mkdir -p ~/.git-hooks
|
|
484
|
+
cat > ~/.git-hooks/post-commit << 'EOF'
|
|
485
|
+
#!/bin/sh
|
|
486
|
+
[ -f .ai-tasks.json ] && cm-dash file .ai-tasks.json 2>/dev/null &
|
|
487
|
+
EOF
|
|
488
|
+
chmod +x ~/.git-hooks/post-commit
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
---
|
|
492
|
+
|
|
493
|
+
## Dashboard API Reference
|
|
494
|
+
|
|
495
|
+
The dashboard runs at `http://localhost:6969`.
|
|
496
|
+
|
|
497
|
+
| Method | Path | Purpose |
|
|
498
|
+
|--------|------|---------|
|
|
499
|
+
| `POST` | `/api/tasks/auto-sync` | Upsert task by `conversationId` |
|
|
500
|
+
| `GET` | `/api/tasks` | List all tasks |
|
|
501
|
+
| `PATCH`| `/api/tasks/:id` | Update task fields |
|
|
502
|
+
| `DELETE`| `/api/tasks/:id` | Delete a task |
|
|
503
|
+
| `GET` | `/api/projects` | List all projects |
|
|
504
|
+
|
|
505
|
+
Auto-sync payload:
|
|
506
|
+
```json
|
|
507
|
+
{
|
|
508
|
+
"conversationId": "<session>:<todoId>",
|
|
509
|
+
"title": "Task title",
|
|
510
|
+
"status": "backlog | in-progress | review | done",
|
|
511
|
+
"agent": "aider | codex | cursor | claude-code | …",
|
|
512
|
+
"priority": "low | medium | high | urgent",
|
|
513
|
+
"projectName": "MyProject"
|
|
514
|
+
}
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
---
|
|
518
|
+
|
|
519
|
+
## Quick Comparison
|
|
520
|
+
|
|
521
|
+
| Tool | Method | Config needed | Auto-sync |
|
|
522
|
+
|------|--------|--------------|-----------|
|
|
523
|
+
| Claude Code | PostToolUse hook | settings.json (once) | ✅ Automatic |
|
|
524
|
+
| Claude Desktop | MCP server | claude_desktop_config.json (once) | ✅ Via system prompt |
|
|
525
|
+
| Cursor | MCP server | mcp.json (once) | ✅ Via rules |
|
|
526
|
+
| Windsurf | MCP server | mcp_config.json (once) | ✅ Via rules |
|
|
527
|
+
| Continue.dev | MCP server | config.json (once) | ✅ Via rules |
|
|
528
|
+
| OpenCode | MCP server | config.json (once) | ✅ Via rules |
|
|
529
|
+
| Zed | MCP server | settings.json (once) | ✅ Via rules |
|
|
530
|
+
| Codex CLI | Shell wrapper | ~/.zshrc (once) | ✅ Per session |
|
|
531
|
+
| Aider | Shell / file | optional | ✅ Via .ai-tasks.json |
|
|
532
|
+
| Any shell | `cm-dash` CLI | none | ✅ On demand |
|
|
533
|
+
| Any tool | File watcher | none | ✅ Passive |
|