@slycode/slycode 0.2.22 → 0.2.24

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 (176) hide show
  1. package/dist/bridge/api.d.ts +2 -1
  2. package/dist/bridge/api.js +114 -1
  3. package/dist/bridge/api.js.map +1 -1
  4. package/dist/bridge/git-utils.d.ts +9 -0
  5. package/dist/bridge/git-utils.js +49 -0
  6. package/dist/bridge/git-utils.js.map +1 -0
  7. package/dist/bridge/index.js +8 -2
  8. package/dist/bridge/index.js.map +1 -1
  9. package/dist/bridge/response-store.d.ts +46 -0
  10. package/dist/bridge/response-store.js +95 -0
  11. package/dist/bridge/response-store.js.map +1 -0
  12. package/dist/bridge/session-manager.d.ts +33 -1
  13. package/dist/bridge/session-manager.js +185 -2
  14. package/dist/bridge/session-manager.js.map +1 -1
  15. package/dist/bridge/types.d.ts +37 -0
  16. package/dist/data/scaffold-templates/tutorial-project/documentation/kanban.json +1 -1
  17. package/dist/messaging/bridge-client.d.ts +4 -0
  18. package/dist/messaging/bridge-client.js +20 -1
  19. package/dist/messaging/bridge-client.js.map +1 -1
  20. package/dist/messaging/index.js +38 -10
  21. package/dist/messaging/index.js.map +1 -1
  22. package/dist/scripts/kanban.js +448 -2
  23. package/dist/scripts/scaffold.js +40 -1
  24. package/dist/store/actions/approve.md +1 -1
  25. package/dist/store/actions/challenge-implementation.md +149 -0
  26. package/dist/store/actions/challenge.md +119 -0
  27. package/dist/store/actions/checkpoint.md +2 -2
  28. package/dist/store/actions/context.md +3 -3
  29. package/dist/store/actions/create-card.md +1 -1
  30. package/dist/store/actions/deep-design.md +13 -3
  31. package/dist/store/actions/design-requirements.md +11 -1
  32. package/dist/store/actions/explore.md +1 -1
  33. package/dist/store/actions/implement.md +1 -1
  34. package/dist/store/actions/onboard.md +2 -4
  35. package/dist/store/actions/show-card.md +2 -2
  36. package/dist/store/actions/summarize.md +3 -3
  37. package/dist/store/actions/test-review.md +1 -1
  38. package/dist/store/skills/kanban/SKILL.md +77 -3
  39. package/dist/web/.next/BUILD_ID +1 -1
  40. package/dist/web/.next/app-path-routes-manifest.json +1 -0
  41. package/dist/web/.next/build-manifest.json +2 -2
  42. package/dist/web/.next/prerender-manifest.json +3 -3
  43. package/dist/web/.next/routes-manifest.json +6 -0
  44. package/dist/web/.next/server/app/_global-error.html +2 -2
  45. package/dist/web/.next/server/app/_global-error.rsc +1 -1
  46. package/dist/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  47. package/dist/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  48. package/dist/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  49. package/dist/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  50. package/dist/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  51. package/dist/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  52. package/dist/web/.next/server/app/_not-found.html +1 -1
  53. package/dist/web/.next/server/app/_not-found.rsc +10 -10
  54. package/dist/web/.next/server/app/_not-found.segments/_full.segment.rsc +10 -10
  55. package/dist/web/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
  56. package/dist/web/.next/server/app/_not-found.segments/_index.segment.rsc +5 -5
  57. package/dist/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  58. package/dist/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  59. package/dist/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  60. package/dist/web/.next/server/app/api/changelog/route/app-paths-manifest.json +3 -0
  61. package/dist/web/.next/server/app/api/changelog/route/build-manifest.json +11 -0
  62. package/dist/web/.next/server/app/api/changelog/route/server-reference-manifest.json +4 -0
  63. package/dist/web/.next/server/app/api/changelog/route.js +7 -0
  64. package/dist/web/.next/server/app/api/changelog/route.js.map +5 -0
  65. package/dist/web/.next/server/app/api/changelog/route.js.nft.json +1 -0
  66. package/dist/web/.next/server/app/api/changelog/route_client-reference-manifest.js +2 -0
  67. package/dist/web/.next/server/app/api/cli-assets/assistant/route.js.nft.json +1 -1
  68. package/dist/web/.next/server/app/api/cli-assets/fix/route.js.nft.json +1 -1
  69. package/dist/web/.next/server/app/api/cli-assets/import/route.js.nft.json +1 -1
  70. package/dist/web/.next/server/app/api/cli-assets/route.js.nft.json +1 -1
  71. package/dist/web/.next/server/app/api/cli-assets/store/preview/route.js.nft.json +1 -1
  72. package/dist/web/.next/server/app/api/cli-assets/store/route.js.nft.json +1 -1
  73. package/dist/web/.next/server/app/api/cli-assets/sync/route.js.nft.json +1 -1
  74. package/dist/web/.next/server/app/api/cli-assets/updates/route.js.nft.json +1 -1
  75. package/dist/web/.next/server/app/api/dashboard/route.js.nft.json +1 -1
  76. package/dist/web/.next/server/app/api/file/route.js.nft.json +1 -1
  77. package/dist/web/.next/server/app/api/git-status/route.js.nft.json +1 -1
  78. package/dist/web/.next/server/app/api/kanban/route.js.nft.json +1 -1
  79. package/dist/web/.next/server/app/api/kanban/stream/route.js.nft.json +1 -1
  80. package/dist/web/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  81. package/dist/web/.next/server/app/api/projects/reorder/route.js.nft.json +1 -1
  82. package/dist/web/.next/server/app/api/projects/route.js.nft.json +1 -1
  83. package/dist/web/.next/server/app/api/scheduler/route.js.nft.json +1 -1
  84. package/dist/web/.next/server/app/api/search/route.js.nft.json +1 -1
  85. package/dist/web/.next/server/app/api/sly-actions/invalidate/route.js.nft.json +1 -1
  86. package/dist/web/.next/server/app/api/sly-actions/route.js.nft.json +1 -1
  87. package/dist/web/.next/server/app/api/version-check/route.js.nft.json +1 -1
  88. package/dist/web/.next/server/app/page.js.nft.json +1 -1
  89. package/dist/web/.next/server/app/page_client-reference-manifest.js +1 -1
  90. package/dist/web/.next/server/app/project/[id]/page.js.nft.json +1 -1
  91. package/dist/web/.next/server/app/project/[id]/page_client-reference-manifest.js +1 -1
  92. package/dist/web/.next/server/app-paths-manifest.json +1 -0
  93. package/dist/web/.next/server/chunks/[root-of-the-server]__92f81907._.js +1 -1
  94. package/dist/web/.next/server/chunks/[root-of-the-server]__a259539f._.js +3 -0
  95. package/dist/web/.next/server/chunks/_next-internal_server_app_api_changelog_route_actions_d6e239bf.js +3 -0
  96. package/dist/web/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_18324462.js +1 -1
  97. package/dist/web/.next/server/chunks/src_lib_scheduler_ts_03988e3e._.js +1 -1
  98. package/dist/web/.next/server/chunks/src_lib_scheduler_ts_7120457c._.js +1 -1
  99. package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__1f5fc489._.js +4 -3
  100. package/dist/web/.next/server/chunks/ssr/{[root-of-the-server]__077f472c._.js → [root-of-the-server]__6183d28c._.js} +1 -1
  101. package/dist/web/.next/server/chunks/ssr/[root-of-the-server]__bcbe4bf2._.js +4 -3
  102. package/dist/web/.next/server/chunks/ssr/src_components_Dashboard_tsx_efc4dc27._.js +1 -1
  103. package/dist/web/.next/server/chunks/ssr/src_components_c4135402._.js +1 -1
  104. package/dist/web/.next/server/chunks/ssr/src_contexts_VoiceContext_tsx_cfba7292._.js +1 -1
  105. package/dist/web/.next/server/pages/404.html +1 -1
  106. package/dist/web/.next/server/pages/500.html +2 -2
  107. package/dist/web/.next/server/server-reference-manifest.js +1 -1
  108. package/dist/web/.next/server/server-reference-manifest.json +1 -1
  109. package/dist/web/.next/static/chunks/293449b828207656.css +1 -0
  110. package/dist/web/.next/static/chunks/{8415039c5941cf5c.js → 3a5721af09d1c753.js} +4 -3
  111. package/dist/web/.next/static/chunks/{8fb2a99c64580de7.js → 98311243e9a5a0ec.js} +1 -1
  112. package/dist/web/.next/static/chunks/{b8e0c1aeea4a14bc.js → a47f36b030917d1f.js} +1 -1
  113. package/dist/web/.next/static/chunks/d60c422421920130.js +5 -0
  114. package/dist/web/.next/static/chunks/{f55f3c8c1a52f80c.js → f566a4b05a9cd6ba.js} +1 -1
  115. package/dist/web/.next/static/chunks/{4049cceee6a49323.js → fa78afe3ceed998b.js} +1 -1
  116. package/dist/web/src/app/api/changelog/route.ts +45 -0
  117. package/dist/web/src/app/api/kanban/route.ts +52 -12
  118. package/dist/web/src/app/api/terminal-classes/route.ts +43 -4
  119. package/dist/web/src/components/ActivityFeed.tsx +3 -0
  120. package/dist/web/src/components/BranchTab.tsx +115 -0
  121. package/dist/web/src/components/ChangelogModal.tsx +233 -0
  122. package/dist/web/src/components/Dashboard.tsx +11 -0
  123. package/dist/web/src/components/GlobalClaudePanel.tsx +6 -0
  124. package/dist/web/src/components/ProjectKanban.tsx +38 -8
  125. package/dist/web/src/components/VersionUpdateToast.tsx +6 -4
  126. package/dist/web/src/components/VoiceControlBar.tsx +1 -1
  127. package/dist/web/src/lib/scheduler.ts +2 -1
  128. package/dist/web/src/lib/types.ts +24 -0
  129. package/dist/web/tsconfig.tsbuildinfo +1 -1
  130. package/lib/cli/sync.d.ts +7 -0
  131. package/lib/cli/sync.d.ts.map +1 -1
  132. package/lib/cli/sync.js +25 -0
  133. package/lib/cli/sync.js.map +1 -1
  134. package/lib/cli/update.d.ts.map +1 -1
  135. package/lib/cli/update.js +9 -0
  136. package/lib/cli/update.js.map +1 -1
  137. package/package.json +1 -1
  138. package/templates/changelog.json +268 -0
  139. package/templates/kanban-seed.json +1 -1
  140. package/templates/store/actions/approve.md +1 -1
  141. package/templates/store/actions/challenge-implementation.md +149 -0
  142. package/templates/store/actions/challenge.md +119 -0
  143. package/templates/store/actions/checkpoint.md +2 -2
  144. package/templates/store/actions/context.md +3 -3
  145. package/templates/store/actions/create-card.md +1 -1
  146. package/templates/store/actions/deep-design.md +13 -3
  147. package/templates/store/actions/design-requirements.md +11 -1
  148. package/templates/store/actions/explore.md +1 -1
  149. package/templates/store/actions/implement.md +1 -1
  150. package/templates/store/actions/onboard.md +2 -4
  151. package/templates/store/actions/show-card.md +2 -2
  152. package/templates/store/actions/summarize.md +3 -3
  153. package/templates/store/actions/test-review.md +1 -1
  154. package/templates/store/skills/kanban/SKILL.md +77 -3
  155. package/templates/terminal-classes.json +51 -0
  156. package/templates/tutorial-project/documentation/kanban.json +1 -1
  157. package/templates/updates/actions/approve.md +1 -1
  158. package/templates/updates/actions/challenge-implementation.md +149 -0
  159. package/templates/updates/actions/challenge.md +119 -0
  160. package/templates/updates/actions/checkpoint.md +2 -2
  161. package/templates/updates/actions/context.md +3 -3
  162. package/templates/updates/actions/create-card.md +1 -1
  163. package/templates/updates/actions/deep-design.md +13 -3
  164. package/templates/updates/actions/design-requirements.md +11 -1
  165. package/templates/updates/actions/explore.md +1 -1
  166. package/templates/updates/actions/implement.md +1 -1
  167. package/templates/updates/actions/onboard.md +2 -4
  168. package/templates/updates/actions/show-card.md +2 -2
  169. package/templates/updates/actions/summarize.md +3 -3
  170. package/templates/updates/actions/test-review.md +1 -1
  171. package/templates/updates/skills/kanban/SKILL.md +77 -3
  172. package/dist/web/.next/static/chunks/18cfbdd7e977bb01.css +0 -1
  173. package/dist/web/.next/static/chunks/a0f5f9cdee8a22c1.js +0 -4
  174. /package/dist/web/.next/static/{b2V8jC3HBMi4vgm7Kie3H → O1Ine2WtyXv6EQJcwHyOV}/_buildManifest.js +0 -0
  175. /package/dist/web/.next/static/{b2V8jC3HBMi4vgm7Kie3H → O1Ine2WtyXv6EQJcwHyOV}/_clientMiddlewareManifest.json +0 -0
  176. /package/dist/web/.next/static/{b2V8jC3HBMi4vgm7Kie3H → O1Ine2WtyXv6EQJcwHyOV}/_ssgManifest.js +0 -0
@@ -0,0 +1,149 @@
1
+ ---
2
+ name: challenge-implementation
3
+ version: 1.0.0
4
+ label: "Challenge Impl"
5
+ description: "Send implementation to another AI provider for adversarial code review and methodology analysis"
6
+ group: "Card Actions"
7
+ placement: both
8
+ scope: global
9
+ classes:
10
+ testing: 30
11
+ ---
12
+
13
+ {{cardContext}}
14
+
15
+ ---
16
+
17
+ ## Your Task — Challenge Implementation
18
+
19
+ You are initiating a **cross-agent implementation challenge** for card `{{card.id}}`. The goal is to send the completed implementation to a different AI provider for adversarial code review and methodology analysis, then synthesize their feedback.
20
+
21
+ ---
22
+
23
+ ### Phase 1 — Gather Context
24
+
25
+ 1. **Read the full card details** (notes, problems, checklist):
26
+ ```bash
27
+ sly-kanban show {{card.id}}
28
+ ```
29
+
30
+ 2. **Prime area context** — use `/context-priming` with the card's **Areas** to understand the codebase architecture and patterns.
31
+
32
+ 3. **Read the design document** (if linked):
33
+ {{#if card.design_ref}}
34
+ Read `{{card.design_ref}}`
35
+ {{/if}}
36
+
37
+ 4. **Read the feature spec** (if linked):
38
+ {{#if card.feature_ref}}
39
+ Read `{{card.feature_ref}}`
40
+ {{/if}}
41
+
42
+ 5. **Identify the changed files** — use git to find what was changed for this card:
43
+ ```bash
44
+ git log --oneline --all | head -20
45
+ ```
46
+ Look at recent commits related to this card's work. Read the key files that were added or modified.
47
+
48
+ 6. **Read all card notes** — these contain implementation context and prior agent observations.
49
+
50
+ ---
51
+
52
+ ### Phase 2 — Determine Target Provider
53
+
54
+ Send the challenge to a **different** provider than yourself.
55
+
56
+ - If you are **Claude** → send to `codex`
57
+ - If you are **Codex** → send to `claude`
58
+ - If you are **Gemini** → try `claude` first; if that fails, try `codex`
59
+
60
+ To determine who you are: Claude models start with "claude-", Codex/OpenAI models are o3, o4-mini, codex-mini, etc., Gemini models start with "gemini-".
61
+
62
+ ---
63
+
64
+ ### Phase 3 — Prepare and Send
65
+
66
+ Before sending, optionally add a context note:
67
+
68
+ ```bash
69
+ sly-kanban notes {{card.id}} add "Implementation challenge context: <summary of what was built, key files, architectural decisions>" --agent "<your-provider-name>"
70
+ ```
71
+
72
+ Now construct a detailed prompt for the other agent. The prompt must include:
73
+
74
+ 1. **The design document content** (paste inline) so they know what was intended
75
+ 2. **The feature spec content** if one exists (paste inline)
76
+ 3. **The key implementation files** — paste the actual code of the most important changed/added files. Focus on the core logic, not boilerplate.
77
+ 4. **A file list** of everything that was changed, so they can request more if needed
78
+ 5. **Key notes from the card** that explain decisions made during implementation
79
+ 6. **Clear instructions** asking the other agent to:
80
+
81
+ **Code Quality Review:**
82
+ - Analyse the code for bugs, logic errors, and edge cases
83
+ - Evaluate error handling and failure modes
84
+ - Check for security concerns (injection, XSS, auth gaps, data leaks)
85
+ - Assess performance — unnecessary loops, missing caching, N+1 queries, memory leaks
86
+ - Review naming, structure, and readability
87
+
88
+ **Methodology Review:**
89
+ - Does the implementation match the design intent? Any drift?
90
+ - Are the chosen patterns and abstractions appropriate?
91
+ - Is there unnecessary complexity that could be simplified?
92
+ - Are there better approaches that would achieve the same goals?
93
+ - Is the code testable? Are there untested critical paths?
94
+ - Does it follow the existing codebase conventions?
95
+
96
+ **Perspective Analysis:**
97
+ - Review from the perspective of a future maintainer reading this code for the first time
98
+ - Consider what happens when requirements change — how rigid or flexible is this?
99
+ - Think about what could go wrong in production under real usage patterns
100
+
101
+ - Use `sly-kanban respond <response-id> "..."` to send back a structured response
102
+
103
+ **Send the prompt:**
104
+
105
+ ```bash
106
+ sly-kanban prompt {{card.id}} "<your constructed prompt>" --provider <target-provider> --wait --timeout 180
107
+ ```
108
+
109
+ Use `--timeout 180` (3 minutes). Do **not** use `--fresh`.
110
+
111
+ If the prompt times out, tell the user you're waiting — the response will arrive asynchronously.
112
+
113
+ ---
114
+
115
+ ### Phase 4 — Synthesize Feedback
116
+
117
+ When the response arrives, critically evaluate each point:
118
+
119
+ 1. **Categorise each finding** as:
120
+ - **Valid bug/issue** — real problem that should be fixed before approval
121
+ - **Valid improvement** — correct observation, worth doing but not blocking
122
+ - **Disagree** — you believe the implementation is correct, explain why
123
+ - **Needs discussion** — legitimate trade-off, user should decide
124
+
125
+ 2. **For valid bugs**: Fix them immediately or log as problems:
126
+ ```bash
127
+ sly-kanban problem {{card.id}} add "description" --severity <minor|major|critical>
128
+ ```
129
+
130
+ 3. **For valid improvements**: Propose the changes. If they're small, offer to make them now.
131
+
132
+ 4. **For disagreements**: Explain your reasoning clearly.
133
+
134
+ 5. **For ambiguous points**: Present both perspectives and ask the user.
135
+
136
+ 6. **Add a summary note** to the card:
137
+ ```bash
138
+ sly-kanban notes {{card.id}} add "Implementation challenge complete: <N> bugs found, <N> improvements suggested, <N> disagreements, <N> need user input." --agent "<your-provider-name>"
139
+ ```
140
+
141
+ 7. **Present the synthesis to the user** with:
142
+ - Any bugs that need fixing (blockers for approval)
143
+ - Improvements worth making (non-blocking)
144
+ - Disagreements with your reasoning
145
+ - Open questions for the user
146
+
147
+ ---
148
+
149
+ **Start now** — begin Phase 1.
@@ -0,0 +1,119 @@
1
+ ---
2
+ name: challenge
3
+ version: 1.0.0
4
+ label: "Challenge"
5
+ description: "Send design to another AI provider for adversarial review and synthesis"
6
+ group: "Card Actions"
7
+ placement: both
8
+ scope: global
9
+ classes:
10
+ design: 50
11
+ ---
12
+
13
+ {{cardContext}}
14
+
15
+ ---
16
+
17
+ ## Your Task — Challenge Design
18
+
19
+ You are initiating a **cross-agent design challenge** for card `{{card.id}}`. The goal is to send the current design work to a different AI provider for adversarial review, then synthesize their feedback to strengthen the design.
20
+
21
+ ---
22
+
23
+ ### Phase 1 — Gather Context
24
+
25
+ 1. **Read the full card details** (notes, problems, checklist):
26
+ ```bash
27
+ sly-kanban show {{card.id}}
28
+ ```
29
+
30
+ 2. **Read the design document** (if linked):
31
+ {{#if card.design_ref}}
32
+ Read `{{card.design_ref}}`
33
+ {{/if}}
34
+
35
+ 3. **Read the feature spec** (if linked):
36
+ {{#if card.feature_ref}}
37
+ Read `{{card.feature_ref}}`
38
+ {{/if}}
39
+
40
+ 4. **Read all card notes** — these contain cross-agent communication and prior context.
41
+
42
+ ---
43
+
44
+ ### Phase 2 — Determine Target Provider
45
+
46
+ You need to send the challenge to a **different** provider than yourself.
47
+
48
+ - If you are **Claude** → send to `codex`
49
+ - If you are **Codex** → send to `claude`
50
+ - If you are **Gemini** → try `claude` first; if that fails (no session / error), try `codex`
51
+
52
+ To determine who you are: check your model identity. Claude models start with "claude-", Codex models are OpenAI (e.g., o3, o4-mini, codex-mini), Gemini models start with "gemini-".
53
+
54
+ ---
55
+
56
+ ### Phase 3 — Prepare and Send
57
+
58
+ Before sending the prompt, you may optionally add a note to the card summarising key context that the other agent should know:
59
+
60
+ ```bash
61
+ sly-kanban notes {{card.id}} add "Challenge context: <brief summary of design state, key decisions, open questions>" --agent "<your-provider-name>"
62
+ ```
63
+
64
+ Now construct a detailed prompt for the other agent. The prompt must include:
65
+
66
+ 1. **The full design document content** (paste it inline — the other agent may not have access to the file)
67
+ 2. **The feature spec content** if one exists (paste inline)
68
+ 3. **Key notes from the card** that provide relevant context
69
+ 4. **Clear instructions** asking the other agent to:
70
+ - Review the design from as many perspectives as seem necessary (technical feasibility, user experience, edge cases, security, performance, simplicity, maintainability, etc.)
71
+ - State what it **agrees with** and why
72
+ - State what it **disagrees with** or sees as risky, with specific reasoning
73
+ - Suggest concrete improvements or alternatives where it sees weakness
74
+ - Call out any assumptions that seem unvalidated
75
+ - Use `sly-kanban respond <response-id> "..."` to send back a structured response
76
+
77
+ **Send the prompt:**
78
+
79
+ ```bash
80
+ sly-kanban prompt {{card.id}} "<your constructed prompt>" --provider <target-provider> --wait --timeout 180
81
+ ```
82
+
83
+ Use `--timeout 180` (3 minutes) to allow thorough analysis. Do **not** use `--fresh` — send to the existing session.
84
+
85
+ If the prompt times out, that's OK — the response will arrive asynchronously. Tell the user you're waiting and check back. The response will eventually come through.
86
+
87
+ ---
88
+
89
+ ### Phase 4 — Synthesize Feedback
90
+
91
+ When the response arrives, **do not blindly adopt the suggestions**. Instead:
92
+
93
+ 1. **Categorise each point** as:
94
+ - **Agree** — valid concern, should be addressed
95
+ - **Disagree** — you believe the current design is correct, explain why
96
+ - **Needs discussion** — legitimate tension, the user should decide
97
+
98
+ 2. **For agreed points**: Propose specific changes to the design document.
99
+
100
+ 3. **For disagreed points**: Explain your reasoning for why the current approach is sound.
101
+
102
+ 4. **For ambiguous points**: Present both perspectives clearly and ask the user what they'd like to do.
103
+
104
+ 5. **Update the design doc** with an "## External Review" section capturing:
105
+ - Who reviewed (which provider)
106
+ - Key agreements and changes made
107
+ - Key disagreements and your reasoning
108
+ - Open questions surfaced to the user
109
+
110
+ 6. **Add a summary note** to the card:
111
+ ```bash
112
+ sly-kanban notes {{card.id}} add "Challenge review complete: <N> points agreed, <N> disagreed, <N> need user input. Design doc updated with External Review section." --agent "<your-provider-name>"
113
+ ```
114
+
115
+ 7. **Present the synthesis to the user** with clear recommendations and any decisions that need their input.
116
+
117
+ ---
118
+
119
+ **Start now** — begin Phase 1.
@@ -7,9 +7,9 @@ group: "Utilities"
7
7
  placement: both
8
8
  scope: global
9
9
  classes:
10
- design: 60
10
+ design: 70
11
11
  implementation: 30
12
- project-terminal: 50
12
+ project-terminal: 60
13
13
  ---
14
14
 
15
15
  /checkpoint
@@ -8,11 +8,11 @@ placement: both
8
8
  scope: global
9
9
  classes:
10
10
  backlog: 20
11
- design: 90
11
+ design: 100
12
12
  done: 30
13
13
  implementation: 60
14
- project-terminal: 60
15
- testing: 60
14
+ project-terminal: 10
15
+ testing: 70
16
16
  ---
17
17
 
18
18
  {{cardContext}}
@@ -7,7 +7,7 @@ group: "Project"
7
7
  placement: startup
8
8
  scope: global
9
9
  classes:
10
- project-terminal: 40
10
+ project-terminal: 50
11
11
  ---
12
12
 
13
13
  {{projectContext}}
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: deep-design
3
- version: 1.0.0
3
+ version: 1.1.0
4
4
  label: "Deep Design"
5
5
  description: "Thorough design with parallel analysis agents for creative, risk, and quality perspectives"
6
6
  group: "Card Actions"
@@ -21,6 +21,8 @@ classes:
21
21
 
22
22
  We're starting a **deep design** session for card `{{card.id}}`. This is the thorough version — after creating the initial design doc, we'll run parallel analysis agents to stress-test the design from multiple angles before iterating.
23
23
 
24
+ **Your role is to investigate and advise.** You must NOT unilaterally cut scope, drop requirements, or decide what to build. All scope and direction decisions belong to the user. Present findings, options, and trade-offs — then ask.
25
+
24
26
  ---
25
27
 
26
28
  ### Phase 1 — Initial Design Doc
@@ -48,6 +50,7 @@ Now launch sub-agents to analyse the design from different perspectives. Each ag
48
50
  - Read the card details
49
51
  - If the card has Areas, use `/context-priming` with those areas for codebase awareness
50
52
  - Return a focused brief (aim for 5-15 bullet points, not essays)
53
+ - **Advise only** — do not recommend cutting scope or dropping requirements. Flag risks and trade-offs, but respect the stated scope as given
51
54
 
52
55
  Here are the 6 available perspectives:
53
56
 
@@ -64,7 +67,7 @@ Here are the 6 available perspectives:
64
67
  > You are a codebase archaeologist. Read the design doc and card details, then search the existing codebase for related patterns, reusable components, utilities, or conventions. Use `/context-priming` with the card's Areas and explore the code. Report: What existing code can be reused? What patterns should this design follow for consistency? Are there similar features we can learn from? Is there anything we'd be duplicating unnecessarily?
65
68
 
66
69
  #### 5. Simplification Advocate
67
- > You are a complexity skeptic. Read the design doc and card details, then challenge every piece of complexity. For each requirement or design decision, ask: Is this truly needed? Could it be simpler? Could we defer this part? Is there a 20% effort solution that delivers 80% of the value? Your job is to push back on over-engineering and scope creep. Propose concrete simplifications with clear trade-offs.
70
+ > You are a complexity skeptic. Read the design doc and card details, then look for ways the *implementation* could be simpler while still meeting the stated requirements. For each design decision, ask: Could the implementation be simpler? Is there a less complex way to achieve this requirement? Are we over-engineering the solution? Propose concrete simplifications with clear trade-offs. **Important:** Do NOT recommend cutting requirements or reducing scope the requirements are the user's decision. Focus on simpler ways to achieve what's been asked for.
68
71
 
69
72
  #### 6. Edge Case Hunter
70
73
  > You are a boundary condition specialist. Read the design doc and card details, then enumerate edge cases, boundary conditions, and scenarios the design should handle. Think about: empty/null/missing data, concurrent access, very large inputs, rapid repeated actions, permission boundaries, network failures, interrupted operations, first-use vs power-user flows. Rate each edge case by likelihood and severity.
@@ -81,7 +84,7 @@ Once the agents return, **synthesize** their findings:
81
84
  - 🟡 **Should consider** — meaningful improvement or risk worth discussing
82
85
  - 🟢 **Nice to know** — interesting perspective, may inform decisions later
83
86
  3. Update the design doc with a new **"Analysis Notes"** section capturing the key findings.
84
- 4. Recommend which items should be folded into the design requirements vs deferred.
87
+ 4. Present options and suggestions do NOT unilaterally fold findings into requirements or cut scope. The user decides what to act on.
85
88
 
86
89
  ---
87
90
 
@@ -93,6 +96,13 @@ Now begin the normal design iteration:
93
96
  - Update the design doc as decisions are made
94
97
  - Focus on goals, constraints, and acceptance criteria
95
98
 
99
+ **IMPORTANT — Surface everything in your message.** Do not assume the user has read the design document. Every time you respond, list in your conversation message:
100
+ - Any **outstanding questions** that need answers
101
+ - Any **options or trade-offs** that need a decision
102
+ - Any **suggestions** you want feedback on
103
+
104
+ Questions written into the doc but not surfaced in your message are effectively invisible.
105
+
96
106
  **When design is complete — assess complexity:**
97
107
 
98
108
  Look at the scope of work:
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: design-requirements
3
- version: 1.0.0
3
+ version: 1.1.0
4
4
  label: "Design Doc"
5
5
  description: "Create a requirements document through iterative discovery"
6
6
  group: "Card Actions"
@@ -21,6 +21,8 @@ classes:
21
21
 
22
22
  We're starting a **requirements discovery** session for card `{{card.id}}`. The goal is to create a design document that captures WHAT we're building and WHY - not HOW (unless architectural decisions are essential to the requirements).
23
23
 
24
+ **Your role is to investigate and advise.** You must NOT unilaterally cut scope, drop requirements, or decide what to build. All scope and direction decisions belong to the user. Present findings, options, and trade-offs — then ask.
25
+
24
26
  > Card details are provided above. Run `sly-kanban show {{card.id}}` only if you need additional detail.
25
27
 
26
28
  **Workflow:**
@@ -68,6 +70,14 @@ When in doubt, lean toward creating the feature spec — it's better to over-doc
68
70
  - Keep the document updated after each decision
69
71
  - Focus on goals, constraints, and acceptance criteria
70
72
  - Flag when you think the requirements are complete
73
+ - Do NOT unilaterally cut scope or drop requirements — the user decides what's in and out
74
+
75
+ **IMPORTANT — Surface everything in your message.** Do not assume the user has read the design document. Every time you respond, list in your conversation message:
76
+ - Any **outstanding questions** that need answers
77
+ - Any **options or trade-offs** that need a decision
78
+ - Any **suggestions** you want feedback on
79
+
80
+ Questions written into the doc but not surfaced in your message are effectively invisible.
71
81
 
72
82
  ---
73
83
 
@@ -8,7 +8,7 @@ placement: startup
8
8
  scope: global
9
9
  classes:
10
10
  global-terminal: 10
11
- project-terminal: 30
11
+ project-terminal: 40
12
12
  ---
13
13
 
14
14
  {{projectContext}}
@@ -7,7 +7,7 @@ group: "Card Actions"
7
7
  placement: both
8
8
  scope: global
9
9
  classes:
10
- design: 70
10
+ design: 80
11
11
  implementation: 10
12
12
  ---
13
13
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: onboard
3
- version: 1.0.0
3
+ version: 1.1.0
4
4
  label: "Onboard"
5
5
  description: "Analyze and improve a backlog item, then move to design"
6
6
  group: "Card Actions"
@@ -23,7 +23,7 @@ Onboard this backlog item. Analyze it, improve it, and move it to design.
23
23
  **Do this:**
24
24
  1. Analyze the card - understand the intent from title and description
25
25
  2. Improve the title - make it clear, concise, action-oriented
26
- 3. Rewrite the description - structure logically, capture the essential gist
26
+ 3. Rewrite the description - structure logically, capture the essential gist. **Do not add new solutions or implementation suggestions** — that belongs in the design phase. However, preserve any solution ideas already present in the original description.
27
27
  4. Set appropriate areas (run `sly-kanban areas` to see options)
28
28
  4.5 Potentially use context-priming to understand that area better
29
29
  5. Set correct type and priority
@@ -34,5 +34,3 @@ Onboard this backlog item. Analyze it, improve it, and move it to design.
34
34
  - What you understood the intent to be
35
35
  - What changes you made and why
36
36
  - Ask for confirmation - if I disagree, I'll tell you what to adjust
37
- # test change
38
- # user edit
@@ -8,10 +8,10 @@ placement: both
8
8
  scope: global
9
9
  classes:
10
10
  backlog: 30
11
- design: 80
11
+ design: 90
12
12
  done: 40
13
13
  implementation: 70
14
- testing: 70
14
+ testing: 80
15
15
  ---
16
16
 
17
17
  Show the full details of this card:
@@ -7,11 +7,11 @@ group: "Session"
7
7
  placement: startup
8
8
  scope: global
9
9
  classes:
10
- design: 50
10
+ design: 60
11
11
  done: 20
12
12
  implementation: 50
13
- project-terminal: 20
14
- testing: 50
13
+ project-terminal: 30
14
+ testing: 60
15
15
  ---
16
16
 
17
17
  {{cardContext}}
@@ -7,7 +7,7 @@ group: "Card Actions"
7
7
  placement: both
8
8
  scope: global
9
9
  classes:
10
- testing: 90
10
+ testing: 100
11
11
  ---
12
12
 
13
13
  {{cardContext}}
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  name: kanban
3
- version: 1.4.0
4
- updated: 2026-03-11
5
- description: "Manage kanban cards via CLI with commands for search, create, update, move, reorder, problem tracking, cross-agent notes, and scheduled automations"
3
+ version: 1.5.0
4
+ updated: 2026-04-03
5
+ description: "Manage kanban cards via CLI with commands for search, create, update, move, reorder, problem tracking, cross-agent notes, scheduled automations, and cross-card prompt execution"
6
6
  provider: claude
7
7
  ---
8
8
 
@@ -26,8 +26,22 @@ Manage kanban cards via CLI: `sly-kanban <command>`
26
26
  | `problem` | Track issues on cards |
27
27
  | `notes` | Manage cross-agent notes |
28
28
  | `automation` | Configure and manage scheduled automations |
29
+ | `prompt` | Send a prompt to another card's session (cross-card) |
30
+ | `respond` | Reply to a cross-card prompt (--wait callback) |
29
31
  | `areas` | List available areas |
30
32
 
33
+ ## Card Identification
34
+
35
+ All commands accept either a **card ID** or an **exact card title** (case-insensitive, non-archived cards only):
36
+
37
+ ```bash
38
+ sly-kanban show card-1234567890 # By ID
39
+ sly-kanban show "Test Card" # By exact title
40
+ sly-kanban prompt "Test Card" "do X" # Title works for prompt too
41
+ ```
42
+
43
+ If a title doesn't match, use the card ID instead.
44
+
31
45
  ## Quick Reference
32
46
 
33
47
  ```bash
@@ -269,6 +283,66 @@ sly-kanban automation list --tag "deploy"
269
283
  - One-shot automations auto-disable after firing, config preserved
270
284
  - "Report via messaging" toggle appends instructions for the agent to send results
271
285
 
286
+ ## Cross-Card Prompt Execution
287
+
288
+ Send prompts to other cards' sessions for orchestration, multi-provider review, and automation chains.
289
+
290
+ **IMPORTANT:** Only use `sly-kanban prompt` when **explicitly instructed** to do so — either by a user, a card description, or an automation instruction. Never fire prompts at other cards on your own initiative (e.g., during testing, exploration, or as a "helpful" side-effect). Cross-card prompts start real sessions that consume resources and are hard to track if unexpected.
291
+
292
+ ### Fire-and-Forget (async)
293
+
294
+ ```bash
295
+ sly-kanban prompt <card-id> "Your prompt text"
296
+ sly-kanban prompt <card-id> "Your prompt" --provider codex
297
+ sly-kanban prompt <card-id> "Your prompt" --provider codex --model o3
298
+ sly-kanban prompt <card-id> "Your prompt" --fresh # Stop existing session, start clean
299
+ ```
300
+
301
+ Delivers the prompt and returns immediately. Session handling:
302
+ - **Running session** → submits prompt to it directly
303
+ - **Stopped session** → **resumes** it (preserves conversation context), then delivers the prompt
304
+ - **No session** → creates a fresh one
305
+
306
+ Use `--fresh` only when you explicitly want to discard the existing session and start clean. Without it, stopped sessions are always resumed to preserve context.
307
+
308
+ **Card context is auto-injected.** Every prompt is automatically prepended with the target card's ID, title, stage, type, priority, and description. The called AI always knows its own card details without needing to look them up. Your prompt text follows after a `---` separator.
309
+
310
+ ### Wait-for-Response (sync)
311
+
312
+ ```bash
313
+ sly-kanban prompt <card-id> "Analyze this design" --wait --timeout 120
314
+ ```
315
+
316
+ Sends the prompt with an embedded callback instruction. The called card must run `sly-kanban respond` to return data. The CLI blocks until the response arrives or the timeout is reached.
317
+
318
+ **Timeout outcomes:**
319
+ - Response received → data printed to stdout (exit 0)
320
+ - Timeout + session still active → message indicating work is ongoing (exit 1)
321
+ - Timeout + session idle → terminal snapshot showing what blocked it (exit 1)
322
+
323
+ Late responses are automatically injected into the calling session's terminal even after timeout.
324
+
325
+ ### Responding to a Prompt
326
+
327
+ When your session receives a prompt with a callback instruction like:
328
+
329
+ > When you have completed this task, you MUST run: `sly-kanban respond <response-id> "<your response>"`
330
+
331
+ Run the respond command:
332
+
333
+ ```bash
334
+ sly-kanban respond <response-id> "Your response data here"
335
+ ```
336
+
337
+ ### Session Guards
338
+
339
+ The submit endpoint enforces three checks:
340
+ 1. **Call-locked** — another `--wait` prompt is active on the target session → rejected (409)
341
+ 2. **Active/busy** — the target session is mid-generation → rejected (409)
342
+ 3. **Idle/ready** — proceeds with submission
343
+
344
+ Use `--force` to bypass all guards.
345
+
272
346
  ## Error Handling
273
347
 
274
348
  The CLI provides clear error messages:
@@ -1 +1 @@
1
- b2V8jC3HBMi4vgm7Kie3H
1
+ O1Ine2WtyXv6EQJcwHyOV
@@ -3,6 +3,7 @@
3
3
  "/_not-found/page": "/_not-found",
4
4
  "/api/areas/route": "/api/areas",
5
5
  "/api/bridge/[...path]/route": "/api/bridge/[...path]",
6
+ "/api/changelog/route": "/api/changelog",
6
7
  "/api/cli-assets/assistant/route": "/api/cli-assets/assistant",
7
8
  "/api/cli-assets/fix/route": "/api/cli-assets/fix",
8
9
  "/api/cli-assets/import/route": "/api/cli-assets/import",
@@ -7,8 +7,8 @@
7
7
  "static/chunks/a6dad97d9634a72d.js"
8
8
  ],
9
9
  "lowPriorityFiles": [
10
- "static/b2V8jC3HBMi4vgm7Kie3H/_ssgManifest.js",
11
- "static/b2V8jC3HBMi4vgm7Kie3H/_buildManifest.js"
10
+ "static/O1Ine2WtyXv6EQJcwHyOV/_ssgManifest.js",
11
+ "static/O1Ine2WtyXv6EQJcwHyOV/_buildManifest.js"
12
12
  ],
13
13
  "rootMainFiles": [
14
14
  "static/chunks/5f95863347fe47d9.js",
@@ -54,8 +54,8 @@
54
54
  "dynamicRoutes": {},
55
55
  "notFoundRoutes": [],
56
56
  "preview": {
57
- "previewModeId": "d8fa5d8a421f0e685d46a0ab81b95822",
58
- "previewModeSigningKey": "a5507eb0ef7c94b1af8933b81ded4effe6e4de3237553b02c4e8b0634cdb3d90",
59
- "previewModeEncryptionKey": "3e6e9da68d13d6ae7bbd1c421e59596b8bbb2d6cece97532049e2493aa6f83bc"
57
+ "previewModeId": "fa3c9a07a4490ea2ec7498551f8811f1",
58
+ "previewModeSigningKey": "98564624009c69fc317ed7be5bf12fc1d2f8c0d86b8aacc5b788d14a07b5302d",
59
+ "previewModeEncryptionKey": "d7b2ddfecbf96af2b35d368e395d25a7fb7e97935109de90dbe6a642ee2c26c2"
60
60
  }
61
61
  }
@@ -71,6 +71,12 @@
71
71
  "routeKeys": {},
72
72
  "namedRegex": "^/api/areas(?:/)?$"
73
73
  },
74
+ {
75
+ "page": "/api/changelog",
76
+ "regex": "^/api/changelog(?:/)?$",
77
+ "routeKeys": {},
78
+ "namedRegex": "^/api/changelog(?:/)?$"
79
+ },
74
80
  {
75
81
  "page": "/api/cli-assets",
76
82
  "regex": "^/api/cli\\-assets(?:/)?$",