@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,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: