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.
Files changed (193) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +285 -0
  3. package/adapters/antigravity.js +15 -0
  4. package/adapters/claude-code.js +17 -0
  5. package/adapters/cursor.js +16 -0
  6. package/commands/bootstrap.md +49 -0
  7. package/commands/build.md +48 -0
  8. package/commands/content.md +48 -0
  9. package/commands/continuity.md +60 -0
  10. package/commands/debug.md +51 -0
  11. package/commands/demo.md +96 -0
  12. package/commands/deploy.md +51 -0
  13. package/commands/plan.md +42 -0
  14. package/commands/review.md +55 -0
  15. package/commands/track.md +46 -0
  16. package/commands/ux.md +46 -0
  17. package/dist/agent-dispatch.js +161 -0
  18. package/dist/chains/builtin.js +85 -0
  19. package/dist/continuity.js +385 -0
  20. package/dist/dashboard.js +926 -0
  21. package/dist/data.js +122 -0
  22. package/dist/index.js +2434 -0
  23. package/dist/judge.js +252 -0
  24. package/dist/parallel-dispatch.js +359 -0
  25. package/dist/parallel-quality.js +172 -0
  26. package/dist/skill-chain.js +258 -0
  27. package/install.sh +513 -0
  28. package/package.json +79 -0
  29. package/skills/.content-factory-state.json +132 -0
  30. package/skills/.git 2/logs/refs/heads/main +1 -0
  31. package/skills/.git 2/logs/refs/remotes/origin/main +1 -0
  32. package/skills/.git 2/objects/02/fb0956734b5f8ba3f918b7defd04a89cfe0076 +0 -0
  33. package/skills/.git 2/objects/08/1e129d75dc6feac6c02037272e6bd1a04e3324 +0 -0
  34. package/skills/.git 2/objects/0c/5393416f3c5e01c9a655a802bff0dd52f76f0a +0 -0
  35. package/skills/.git 2/objects/10/0b9be46978a946a77188f68be725098a122001 +0 -0
  36. package/skills/.git 2/objects/10/cf041167fc9843610eb3d90259ef3396315fdc +0 -0
  37. package/skills/.git 2/objects/12/5e19538dd6e1338ffe74f6c4c165b00435bf48 +0 -0
  38. package/skills/.git 2/objects/16/a9b9d0088d5c1347628b45a2620b479d8ad57c +0 -0
  39. package/skills/.git 2/objects/17/8c2a9ef93c33ae4eec9d58e82321f9229843a1 +0 -0
  40. package/skills/.git 2/objects/25/397ae41d09104d763bdcac2695209d85cdea89 +0 -0
  41. package/skills/.git 2/objects/2f/a836b7947f2d458e1f639788bf4bb0983a3305 +0 -0
  42. package/skills/.git 2/objects/3a/baaaf0a1c0909c0828335791557125fba911e0 +0 -0
  43. package/skills/.git 2/objects/42/2924221b81f5ce3c4e4daac9a64a24f9b01f9a +0 -0
  44. package/skills/.git 2/objects/42/ec0ce707447dc11446a34c9995fb8533801731 +0 -0
  45. package/skills/.git 2/objects/46/e43ce92866d56ce74b1d750db307cfe6154a15 +0 -0
  46. package/skills/.git 2/objects/48/5e41b633c63f55b8277bcc59f44f67681f671a +0 -0
  47. package/skills/.git 2/objects/49/49c596a3a89fa240642acd95dd3258e261eb09 +0 -0
  48. package/skills/.git 2/objects/50/9d42d8412ef8eaf7f7e138476bac2e4d10ce60 +0 -0
  49. package/skills/.git 2/objects/55/0c8c389d981b463ef849aeb792d8be3ccb6ec8 +0 -0
  50. package/skills/.git 2/objects/5d/82d3b18410cdda3ace3677436f0cb599dbe2d2 +0 -0
  51. package/skills/.git 2/objects/60/0617c58e871a38b33bf29e282d132bb3c381ad +0 -0
  52. package/skills/.git 2/objects/6a/8369a99c687b7245c92ffaf0e0f0dab9014504 +0 -0
  53. package/skills/.git 2/objects/79/bea435d40ab531c1aaf6be0432c6a5b7aaed21 +0 -0
  54. package/skills/.git 2/objects/7e/5ebd79251c2f14e4aceb86c74b6b6daae6b500 +0 -0
  55. package/skills/.git 2/objects/81/98a822a60178d6d5023ddb3e222cddf048742e +0 -0
  56. package/skills/.git 2/objects/86/0a0e1943dfe53411d2e499a1f16f46a96ef758 +0 -0
  57. package/skills/.git 2/objects/86/971fb55fdc081fdbae52376f0f13e57a4e9b04 +0 -0
  58. package/skills/.git 2/objects/88/b89dd609a0a03f8d4fe8bfde20d5b8fc1d326d +0 -0
  59. package/skills/.git 2/objects/90/8737edb6b7809e32cc01590b4e08ba42a9d40d +0 -0
  60. package/skills/.git 2/objects/93/d5a8a9a7d4fb7f11491cb596a6880528725118 +0 -0
  61. package/skills/.git 2/objects/98/46a2ab81d0c3b3eb00ef88fc56989aa7e9f316 +0 -0
  62. package/skills/.git 2/objects/9b/d8dd1e49cf274eaf9c555f3ab39dce7af5715e +0 -0
  63. package/skills/.git 2/objects/a1/13329fb0cec96ae78b222d33a24c3b5bc7fa1f +0 -0
  64. package/skills/.git 2/objects/a9/e6effe626e8a3aea3a8fc3364b492191c6e7d0 +0 -0
  65. package/skills/.git 2/objects/ad/6de7e48d9782cca9353d1ff0aa1aab7fe1df85 +0 -0
  66. package/skills/.git 2/objects/af/54ae316f771ff692e299ffcd8bf2f06b413b59 +0 -0
  67. package/skills/.git 2/objects/b0/4cb8b0b00dad633e731c1472161419e738d674 +0 -0
  68. package/skills/.git 2/objects/b3/094abb0b9ed46419b269e4a4e36a459690e3b0 +0 -0
  69. package/skills/.git 2/objects/b9/435c5d4baac2cfc5c83009ddd27b46b60db5f1 +0 -0
  70. package/skills/.git 2/objects/ba/5da17dbaec5ec2dcfdfd126aead518d1171d5c +0 -0
  71. package/skills/.git 2/objects/c0/bf58703aa258ba5dd63083bebaec8f223d844c +0 -0
  72. package/skills/.git 2/objects/c4/701a34edf1fc1bad58ccc57bd03f9426acb59a +0 -0
  73. package/skills/.git 2/objects/c7/5ccce9a4e5cc74d9b3174550cf6d993ca43638 +0 -0
  74. package/skills/.git 2/objects/c7/710d59b5a35b0f1f0a0399386643a0bd94c929 +0 -0
  75. package/skills/.git 2/objects/d1/fe58237112e953e5fec52da22cf38e08be3df9 +5 -0
  76. package/skills/.git 2/objects/d2/2bbe9fd2f74c95bc5583e803f5e435f1e2cd86 +0 -0
  77. package/skills/.git 2/objects/d7/e72852ea2bff74581dbf247d400120086229f4 +0 -0
  78. package/skills/.git 2/objects/d8/d4c3b5553e4fd72807e1d4b49ef07d9ef3ac35 +0 -0
  79. package/skills/.git 2/objects/dc/75050c2876f6a02ae2a53a3c886f395b622977 +0 -0
  80. package/skills/.git 2/objects/ee/e8546f95acec500187c08a28a8b9ee02db0dec +0 -0
  81. package/skills/.git 2/objects/ef/263c059208b416c2146434f10cb2b9fabcba16 +0 -0
  82. package/skills/.git 2/objects/f3/ae597e84d9a59b88acd21c99bde2eaf686d785 +0 -0
  83. package/skills/.git 2/objects/f3/f6f5673c821d3d8e76fa267a9e882e7a5387ea +0 -0
  84. package/skills/.git 2/objects/f9/6e6d0ad02624dd11d5848594d056caef7a5e8b +0 -0
  85. package/skills/.git 2/objects/ff/278988fc1edf0db3abcf18de795f4cc0b4f3e1 +0 -0
  86. package/skills/.git 2/refs/heads/main +1 -0
  87. package/skills/.git 2/refs/remotes/origin/main +1 -0
  88. package/skills/.pytest_cache 2/v/cache/nodeids +76 -0
  89. package/skills/.pytest_cache 2/v/cache/stepwise +1 -0
  90. package/skills/_shared/helpers.md +123 -0
  91. package/skills/_shared/outputs-convention.md +24 -0
  92. package/skills/cm-ads-tracker/SKILL.md +109 -0
  93. package/skills/cm-ads-tracker/evals/evals.json +55 -0
  94. package/skills/cm-ads-tracker/references/gtm-architecture.md +321 -0
  95. package/skills/cm-ads-tracker/references/industry-events.md +294 -0
  96. package/skills/cm-ads-tracker/references/platforms-api.md +238 -0
  97. package/skills/cm-ads-tracker/templates/capi-payload.md +79 -0
  98. package/skills/cm-ads-tracker/templates/datalayer-push.js +104 -0
  99. package/skills/cm-ads-tracker/templates/gtm-variables.js +56 -0
  100. package/skills/cm-brainstorm-idea/SKILL.md +423 -0
  101. package/skills/cm-code-review/SKILL.md +151 -0
  102. package/skills/cm-content-factory/SKILL.md +416 -0
  103. package/skills/cm-continuity/SKILL.md +399 -0
  104. package/skills/cm-dashboard/SKILL.md +533 -0
  105. package/skills/cm-dashboard/ui/app.js +1270 -0
  106. package/skills/cm-dashboard/ui/index.html +206 -0
  107. package/skills/cm-dashboard/ui/style.css +440 -0
  108. package/skills/cm-debugging/SKILL.md +412 -0
  109. package/skills/cm-deep-search/SKILL.md +242 -0
  110. package/skills/cm-design-system/SKILL.md +97 -0
  111. package/skills/cm-design-system/resources/halo-modern.md +40 -0
  112. package/skills/cm-design-system/resources/lunaris-advanced.md +40 -0
  113. package/skills/cm-design-system/resources/nitro-enterprise.md +39 -0
  114. package/skills/cm-design-system/resources/shadcn-default.md +37 -0
  115. package/skills/cm-dockit/README.md +100 -0
  116. package/skills/cm-dockit/SKILL.md +302 -0
  117. package/skills/cm-dockit/index.html +443 -0
  118. package/skills/cm-dockit/package-lock.json +1850 -0
  119. package/skills/cm-dockit/package.json +14 -0
  120. package/skills/cm-dockit/prompts/analysis.md +34 -0
  121. package/skills/cm-dockit/prompts/api-reference.md +24 -0
  122. package/skills/cm-dockit/prompts/architecture.md +21 -0
  123. package/skills/cm-dockit/prompts/data-flow.md +20 -0
  124. package/skills/cm-dockit/prompts/database.md +21 -0
  125. package/skills/cm-dockit/prompts/deployment.md +22 -0
  126. package/skills/cm-dockit/prompts/flows.md +21 -0
  127. package/skills/cm-dockit/prompts/jtbd.md +20 -0
  128. package/skills/cm-dockit/prompts/personas.md +24 -0
  129. package/skills/cm-dockit/prompts/sop-modules.md +40 -0
  130. package/skills/cm-dockit/scripts/doc-gen.sh +121 -0
  131. package/skills/cm-dockit/scripts/dockit-dashboard.sh +142 -0
  132. package/skills/cm-dockit/scripts/dockit-runner.sh +607 -0
  133. package/skills/cm-dockit/scripts/dockit-task.sh +166 -0
  134. package/skills/cm-dockit/skills/analyze-codebase.md +174 -0
  135. package/skills/cm-dockit/skills/api-reference.md +237 -0
  136. package/skills/cm-dockit/skills/changelog-guide.md +195 -0
  137. package/skills/cm-dockit/skills/content-guidelines.md +190 -0
  138. package/skills/cm-dockit/skills/sop-guide.md +184 -0
  139. package/skills/cm-dockit/skills/tech-docs.md +287 -0
  140. package/skills/cm-dockit/templates/markdown/structure.md +60 -0
  141. package/skills/cm-dockit/templates/vitepress-premium/.vitepress/config.mts +110 -0
  142. package/skills/cm-dockit/templates/vitepress-premium/.vitepress/theme/custom.css +189 -0
  143. package/skills/cm-dockit/templates/vitepress-premium/.vitepress/theme/index.ts +4 -0
  144. package/skills/cm-dockit/templates/vitepress-premium/package.json +19 -0
  145. package/skills/cm-dockit/templates/vitepress-premium/tests/frontend.test.ts +45 -0
  146. package/skills/cm-dockit/tests/runner.test.ts +66 -0
  147. package/skills/cm-dockit/workflows/export-markdown.md +82 -0
  148. package/skills/cm-dockit/workflows/generate-docs.md +68 -0
  149. package/skills/cm-dockit/workflows/setup-vitepress.md +181 -0
  150. package/skills/cm-example/SKILL.md +26 -0
  151. package/skills/cm-execution/SKILL.md +268 -0
  152. package/skills/cm-git-worktrees/SKILL.md +164 -0
  153. package/skills/cm-how-it-work/SKILL.md +189 -0
  154. package/skills/cm-identity-guard/SKILL.md +412 -0
  155. package/skills/cm-jtbd/SKILL.md +98 -0
  156. package/skills/cm-planning/SKILL.md +130 -0
  157. package/skills/cm-project-bootstrap/SKILL.md +161 -0
  158. package/skills/cm-project-bootstrap/templates/AGENTS.md +42 -0
  159. package/skills/cm-project-bootstrap/templates/frontend-safety.test.js +51 -0
  160. package/skills/cm-project-bootstrap/templates/i18n-sync.test.js +38 -0
  161. package/skills/cm-project-bootstrap/templates/pr-template.md +12 -0
  162. package/skills/cm-project-bootstrap/templates/project-identity.json +29 -0
  163. package/skills/cm-project-bootstrap/templates/vitest.config.js +10 -0
  164. package/skills/cm-quality-gate/SKILL.md +218 -0
  165. package/skills/cm-readit/SKILL.md +289 -0
  166. package/skills/cm-readit/audio-player.md +206 -0
  167. package/skills/cm-readit/examples/blog-reader.js +352 -0
  168. package/skills/cm-readit/examples/voice-cro.js +390 -0
  169. package/skills/cm-readit/tts-engine.md +262 -0
  170. package/skills/cm-readit/ui-patterns.md +362 -0
  171. package/skills/cm-readit/voice-cro.md +223 -0
  172. package/skills/cm-safe-deploy/SKILL.md +120 -0
  173. package/skills/cm-safe-deploy/templates/deploy.sh +89 -0
  174. package/skills/cm-safe-i18n/SKILL.md +473 -0
  175. package/skills/cm-secret-shield/SKILL.md +580 -0
  176. package/skills/cm-skill-chain/SKILL.md +78 -0
  177. package/skills/cm-skill-index/SKILL.md +318 -0
  178. package/skills/cm-skill-mastery/SKILL.md +169 -0
  179. package/skills/cm-start/SKILL.md +65 -0
  180. package/skills/cm-status/SKILL.md +12 -0
  181. package/skills/cm-tdd/SKILL.md +370 -0
  182. package/skills/cm-terminal/SKILL.md +177 -0
  183. package/skills/cm-test-gate/SKILL.md +242 -0
  184. package/skills/cm-ui-preview/SKILL.md +291 -0
  185. package/skills/cm-ux-master/DESIGN_STANDARD_TEMPLATE.md +54 -0
  186. package/skills/cm-ux-master/SKILL.md +114 -0
  187. package/skills/cro-methodology/SKILL.md +98 -0
  188. package/skills/cro-methodology/references/COPYWRITING.md +178 -0
  189. package/skills/cro-methodology/references/OBJECTIONS.md +135 -0
  190. package/skills/cro-methodology/references/PERSUASION.md +158 -0
  191. package/skills/cro-methodology/references/RESEARCH.md +220 -0
  192. package/skills/cro-methodology/references/funnel-analysis.md +365 -0
  193. 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 |