@assistkick/create 1.9.0 → 1.11.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 (206) hide show
  1. package/dist/src/scaffolder.d.ts +12 -1
  2. package/dist/src/scaffolder.js +40 -3
  3. package/dist/src/scaffolder.js.map +1 -1
  4. package/package.json +1 -1
  5. package/templates/assistkick-product-system/package.json +1 -1
  6. package/templates/assistkick-product-system/packages/backend/package.json +1 -0
  7. package/templates/assistkick-product-system/packages/backend/src/mcp/permission_mcp_server.ts +196 -0
  8. package/templates/assistkick-product-system/packages/backend/src/routes/agents.ts +31 -7
  9. package/templates/assistkick-product-system/packages/backend/src/routes/auth.ts +15 -12
  10. package/templates/assistkick-product-system/packages/backend/src/routes/chat_files.test.ts +95 -0
  11. package/templates/assistkick-product-system/packages/backend/src/routes/chat_files.ts +97 -0
  12. package/templates/assistkick-product-system/packages/backend/src/routes/chat_permission.ts +94 -0
  13. package/templates/assistkick-product-system/packages/backend/src/routes/chat_sessions.ts +189 -0
  14. package/templates/assistkick-product-system/packages/backend/src/routes/chat_upload.test.ts +131 -0
  15. package/templates/assistkick-product-system/packages/backend/src/routes/chat_upload.ts +94 -0
  16. package/templates/assistkick-product-system/packages/backend/src/routes/files.test.ts +12 -3
  17. package/templates/assistkick-product-system/packages/backend/src/routes/files.ts +2 -2
  18. package/templates/assistkick-product-system/packages/backend/src/routes/git.ts +391 -23
  19. package/templates/assistkick-product-system/packages/backend/src/routes/git_branches.test.ts +306 -0
  20. package/templates/assistkick-product-system/packages/backend/src/routes/git_connect.test.ts +133 -0
  21. package/templates/assistkick-product-system/packages/backend/src/routes/pipeline.ts +66 -9
  22. package/templates/assistkick-product-system/packages/backend/src/routes/preview.ts +204 -0
  23. package/templates/assistkick-product-system/packages/backend/src/routes/projects.test.ts +205 -0
  24. package/templates/assistkick-product-system/packages/backend/src/routes/projects.ts +37 -9
  25. package/templates/assistkick-product-system/packages/backend/src/routes/skills.test.ts +139 -0
  26. package/templates/assistkick-product-system/packages/backend/src/routes/skills.ts +95 -0
  27. package/templates/assistkick-product-system/packages/backend/src/routes/terminal.ts +5 -4
  28. package/templates/assistkick-product-system/packages/backend/src/routes/users.ts +4 -4
  29. package/templates/assistkick-product-system/packages/backend/src/routes/video.ts +8 -8
  30. package/templates/assistkick-product-system/packages/backend/src/routes/workflow_groups.ts +5 -5
  31. package/templates/assistkick-product-system/packages/backend/src/routes/workflows.ts +6 -6
  32. package/templates/assistkick-product-system/packages/backend/src/server.ts +107 -27
  33. package/templates/assistkick-product-system/packages/backend/src/services/agent_service.test.ts +105 -203
  34. package/templates/assistkick-product-system/packages/backend/src/services/agent_service.ts +76 -266
  35. package/templates/assistkick-product-system/packages/backend/src/services/chat_cli_bridge.test.ts +427 -0
  36. package/templates/assistkick-product-system/packages/backend/src/services/chat_cli_bridge.ts +345 -0
  37. package/templates/assistkick-product-system/packages/backend/src/services/chat_message_repository.test.ts +170 -0
  38. package/templates/assistkick-product-system/packages/backend/src/services/chat_message_repository.ts +106 -0
  39. package/templates/assistkick-product-system/packages/backend/src/services/chat_session_service.test.ts +217 -0
  40. package/templates/assistkick-product-system/packages/backend/src/services/chat_session_service.ts +188 -0
  41. package/templates/assistkick-product-system/packages/backend/src/services/chat_ws_handler.test.ts +1243 -0
  42. package/templates/assistkick-product-system/packages/backend/src/services/chat_ws_handler.ts +894 -0
  43. package/templates/assistkick-product-system/packages/backend/src/services/coherence-review.ts +3 -3
  44. package/templates/assistkick-product-system/packages/backend/src/services/dev_command_detector.test.ts +85 -0
  45. package/templates/assistkick-product-system/packages/backend/src/services/dev_command_detector.ts +54 -0
  46. package/templates/assistkick-product-system/packages/backend/src/services/email_service.ts +13 -10
  47. package/templates/assistkick-product-system/packages/backend/src/services/init.ts +11 -3
  48. package/templates/assistkick-product-system/packages/backend/src/services/invitation_service.ts +1 -1
  49. package/templates/assistkick-product-system/packages/backend/src/services/password_reset_service.ts +1 -1
  50. package/templates/assistkick-product-system/packages/backend/src/services/permission_service.test.ts +243 -0
  51. package/templates/assistkick-product-system/packages/backend/src/services/permission_service.ts +259 -0
  52. package/templates/assistkick-product-system/packages/backend/src/services/preview_server_manager.test.ts +172 -0
  53. package/templates/assistkick-product-system/packages/backend/src/services/preview_server_manager.ts +225 -0
  54. package/templates/assistkick-product-system/packages/backend/src/services/project_service.test.ts +29 -0
  55. package/templates/assistkick-product-system/packages/backend/src/services/project_service.ts +17 -0
  56. package/templates/assistkick-product-system/packages/backend/src/services/project_workspace_service.test.ts +255 -0
  57. package/templates/assistkick-product-system/packages/backend/src/services/project_workspace_service.ts +300 -25
  58. package/templates/assistkick-product-system/packages/backend/src/services/pty_session_manager.test.ts +44 -0
  59. package/templates/assistkick-product-system/packages/backend/src/services/pty_session_manager.ts +62 -7
  60. package/templates/assistkick-product-system/packages/backend/src/services/ssh_key_service.test.ts +77 -6
  61. package/templates/assistkick-product-system/packages/backend/src/services/ssh_key_service.ts +149 -14
  62. package/templates/assistkick-product-system/packages/backend/src/services/terminal_ws_handler.ts +2 -1
  63. package/templates/assistkick-product-system/packages/backend/src/services/title_generator_service.test.ts +45 -0
  64. package/templates/assistkick-product-system/packages/backend/src/services/title_generator_service.ts +157 -0
  65. package/templates/assistkick-product-system/packages/backend/src/services/tts_service.ts +4 -3
  66. package/templates/assistkick-product-system/packages/backend/src/services/video_render_service.ts +3 -3
  67. package/templates/assistkick-product-system/packages/frontend/package.json +5 -0
  68. package/templates/assistkick-product-system/packages/frontend/src/App.tsx +2 -0
  69. package/templates/assistkick-product-system/packages/frontend/src/api/client.ts +336 -5
  70. package/templates/assistkick-product-system/packages/frontend/src/components/AgentsView.tsx +192 -12
  71. package/templates/assistkick-product-system/packages/frontend/src/components/AttachmentPreviewList.tsx +98 -0
  72. package/templates/assistkick-product-system/packages/frontend/src/components/AutocompleteDropdown.tsx +65 -0
  73. package/templates/assistkick-product-system/packages/frontend/src/components/ChatAttachButton.tsx +56 -0
  74. package/templates/assistkick-product-system/packages/frontend/src/components/ChatDropZone.tsx +80 -0
  75. package/templates/assistkick-product-system/packages/frontend/src/components/ChatMessageBubble.tsx +155 -0
  76. package/templates/assistkick-product-system/packages/frontend/src/components/ChatMessageContent.tsx +182 -0
  77. package/templates/assistkick-product-system/packages/frontend/src/components/ChatMessageInput.tsx +233 -0
  78. package/templates/assistkick-product-system/packages/frontend/src/components/ChatSessionSidebar.tsx +218 -0
  79. package/templates/assistkick-product-system/packages/frontend/src/components/ChatStopButton.tsx +32 -0
  80. package/templates/assistkick-product-system/packages/frontend/src/components/ChatTodoSidebar.tsx +113 -0
  81. package/templates/assistkick-product-system/packages/frontend/src/components/ChatView.tsx +842 -0
  82. package/templates/assistkick-product-system/packages/frontend/src/components/CommitMessageModal.tsx +82 -0
  83. package/templates/assistkick-product-system/packages/frontend/src/components/DiagramOverlay.tsx +160 -0
  84. package/templates/assistkick-product-system/packages/frontend/src/components/EditorTabBar.tsx +5 -5
  85. package/templates/assistkick-product-system/packages/frontend/src/components/FileTree.tsx +9 -10
  86. package/templates/assistkick-product-system/packages/frontend/src/components/FileTreeInlineInput.tsx +5 -5
  87. package/templates/assistkick-product-system/packages/frontend/src/components/FilesView.tsx +112 -41
  88. package/templates/assistkick-product-system/packages/frontend/src/components/GraphLegend.tsx +2 -2
  89. package/templates/assistkick-product-system/packages/frontend/src/components/HighlightedText.tsx +87 -0
  90. package/templates/assistkick-product-system/packages/frontend/src/components/ImageLightbox.tsx +192 -0
  91. package/templates/assistkick-product-system/packages/frontend/src/components/KanbanView.tsx +2 -2
  92. package/templates/assistkick-product-system/packages/frontend/src/components/MentionPill.tsx +33 -0
  93. package/templates/assistkick-product-system/packages/frontend/src/components/MermaidBlock.tsx +148 -0
  94. package/templates/assistkick-product-system/packages/frontend/src/components/PermissionDialog.tsx +91 -0
  95. package/templates/assistkick-product-system/packages/frontend/src/components/PermissionModeSelector.tsx +229 -0
  96. package/templates/assistkick-product-system/packages/frontend/src/components/ProjectSelector.tsx +249 -83
  97. package/templates/assistkick-product-system/packages/frontend/src/components/QueuedMessageBubble.tsx +38 -0
  98. package/templates/assistkick-product-system/packages/frontend/src/components/SidePanel.tsx +212 -117
  99. package/templates/assistkick-product-system/packages/frontend/src/components/SystemPromptAccordion.tsx +48 -0
  100. package/templates/assistkick-product-system/packages/frontend/src/components/TaskIcon.tsx +11 -0
  101. package/templates/assistkick-product-system/packages/frontend/src/components/TerminalView.tsx +25 -9
  102. package/templates/assistkick-product-system/packages/frontend/src/components/ToolDiffView.tsx +114 -0
  103. package/templates/assistkick-product-system/packages/frontend/src/components/ToolResultCard.tsx +87 -0
  104. package/templates/assistkick-product-system/packages/frontend/src/components/ToolUseCard.tsx +149 -0
  105. package/templates/assistkick-product-system/packages/frontend/src/components/Toolbar.tsx +25 -8
  106. package/templates/assistkick-product-system/packages/frontend/src/components/UnifiedGitWidget.tsx +722 -0
  107. package/templates/assistkick-product-system/packages/frontend/src/components/workflow/GroupNode.tsx +2 -0
  108. package/templates/assistkick-product-system/packages/frontend/src/components/workflow/NodePalette.tsx +2 -1
  109. package/templates/assistkick-product-system/packages/frontend/src/components/workflow/ProgrammableNode.tsx +178 -0
  110. package/templates/assistkick-product-system/packages/frontend/src/components/workflow/WorkflowCanvas.tsx +3 -0
  111. package/templates/assistkick-product-system/packages/frontend/src/components/workflow/WorkflowMonitorModal.tsx +103 -9
  112. package/templates/assistkick-product-system/packages/frontend/src/components/workflow/monitor_nodes.tsx +26 -2
  113. package/templates/assistkick-product-system/packages/frontend/src/components/workflow/workflow_types.ts +42 -1
  114. package/templates/assistkick-product-system/packages/frontend/src/hooks/useDocumentTitle.ts +11 -0
  115. package/templates/assistkick-product-system/packages/frontend/src/hooks/useProjects.ts +1 -0
  116. package/templates/assistkick-product-system/packages/frontend/src/hooks/use_chat_stream.ts +826 -0
  117. package/templates/assistkick-product-system/packages/frontend/src/hooks/use_file_tree_cache.ts +69 -0
  118. package/templates/assistkick-product-system/packages/frontend/src/hooks/use_mention_autocomplete.ts +284 -0
  119. package/templates/assistkick-product-system/packages/frontend/src/lib/attachment_manager.test.ts +183 -0
  120. package/templates/assistkick-product-system/packages/frontend/src/lib/attachment_manager.ts +150 -0
  121. package/templates/assistkick-product-system/packages/frontend/src/lib/chat_message_helpers.test.ts +305 -0
  122. package/templates/assistkick-product-system/packages/frontend/src/lib/chat_message_helpers.ts +113 -0
  123. package/templates/assistkick-product-system/packages/frontend/src/lib/context_usage_helpers.test.ts +157 -0
  124. package/templates/assistkick-product-system/packages/frontend/src/lib/context_usage_helpers.ts +95 -0
  125. package/templates/assistkick-product-system/packages/frontend/src/lib/mermaid_helpers.test.ts +65 -0
  126. package/templates/assistkick-product-system/packages/frontend/src/lib/mermaid_helpers.ts +110 -0
  127. package/templates/assistkick-product-system/packages/frontend/src/lib/message_queue.ts +66 -0
  128. package/templates/assistkick-product-system/packages/frontend/src/lib/tool_use_summary.test.ts +124 -0
  129. package/templates/assistkick-product-system/packages/frontend/src/lib/tool_use_summary.ts +112 -0
  130. package/templates/assistkick-product-system/packages/frontend/src/routes/AgentsRoute.tsx +2 -0
  131. package/templates/assistkick-product-system/packages/frontend/src/routes/ChatRoute.tsx +8 -0
  132. package/templates/assistkick-product-system/packages/frontend/src/routes/CoherenceRoute.tsx +2 -0
  133. package/templates/assistkick-product-system/packages/frontend/src/routes/DashboardLayout.tsx +0 -4
  134. package/templates/assistkick-product-system/packages/frontend/src/routes/DesignSystemRoute.tsx +2 -0
  135. package/templates/assistkick-product-system/packages/frontend/src/routes/FilesRoute.tsx +2 -0
  136. package/templates/assistkick-product-system/packages/frontend/src/routes/GraphRoute.tsx +2 -0
  137. package/templates/assistkick-product-system/packages/frontend/src/routes/KanbanRoute.tsx +2 -0
  138. package/templates/assistkick-product-system/packages/frontend/src/routes/TerminalRoute.tsx +2 -0
  139. package/templates/assistkick-product-system/packages/frontend/src/routes/UsersRoute.tsx +2 -0
  140. package/templates/assistkick-product-system/packages/frontend/src/routes/VideographyRoute.tsx +2 -0
  141. package/templates/assistkick-product-system/packages/frontend/src/routes/WorkflowsRoute.tsx +2 -0
  142. package/templates/assistkick-product-system/packages/frontend/src/routes/accept_invitation.tsx +2 -0
  143. package/templates/assistkick-product-system/packages/frontend/src/routes/forgot_password.tsx +2 -0
  144. package/templates/assistkick-product-system/packages/frontend/src/routes/login.tsx +2 -0
  145. package/templates/assistkick-product-system/packages/frontend/src/routes/register.tsx +2 -0
  146. package/templates/assistkick-product-system/packages/frontend/src/routes/reset_password.tsx +2 -0
  147. package/templates/assistkick-product-system/packages/frontend/src/stores/useAttachmentStore.ts +66 -0
  148. package/templates/assistkick-product-system/packages/frontend/src/stores/useChatSessionStore.ts +107 -0
  149. package/templates/assistkick-product-system/packages/frontend/src/stores/useMessageQueueStore.ts +110 -0
  150. package/templates/assistkick-product-system/packages/frontend/src/stores/usePreviewStore.ts +78 -0
  151. package/templates/assistkick-product-system/packages/frontend/src/stores/useProjectStore.ts +7 -0
  152. package/templates/assistkick-product-system/packages/frontend/src/stores/useSidePanelStore.ts +6 -1
  153. package/templates/assistkick-product-system/packages/frontend/src/styles/index.css +30 -357
  154. package/templates/assistkick-product-system/packages/frontend/src/utils/parse_node_markdown.test.ts +115 -0
  155. package/templates/assistkick-product-system/packages/frontend/src/utils/parse_node_markdown.ts +91 -0
  156. package/templates/assistkick-product-system/packages/frontend/src/utils/preview_utils.test.ts +30 -0
  157. package/templates/assistkick-product-system/packages/frontend/src/utils/preview_utils.ts +3 -0
  158. package/templates/assistkick-product-system/packages/shared/db/migrations/0015_magenta_jazinda.sql +1 -0
  159. package/templates/assistkick-product-system/packages/shared/db/migrations/0016_giant_xorn.sql +1 -0
  160. package/templates/assistkick-product-system/packages/shared/db/migrations/0017_sloppy_mentor.sql +6 -0
  161. package/templates/assistkick-product-system/packages/shared/db/migrations/0018_vengeful_kabuki.sql +9 -0
  162. package/templates/assistkick-product-system/packages/shared/db/migrations/0019_careful_sentinels.sql +8 -0
  163. package/templates/assistkick-product-system/packages/shared/db/migrations/0020_clever_spot.sql +27 -0
  164. package/templates/assistkick-product-system/packages/shared/db/migrations/0021_graceful_hex.sql +1 -0
  165. package/templates/assistkick-product-system/packages/shared/db/migrations/0022_short_kingpin.sql +1 -0
  166. package/templates/assistkick-product-system/packages/shared/db/migrations/0023_ambiguous_sharon_carter.sql +1 -0
  167. package/templates/assistkick-product-system/packages/shared/db/migrations/0024_fat_unus.sql +1 -0
  168. package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0015_snapshot.json +1552 -0
  169. package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0016_snapshot.json +1560 -0
  170. package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0017_snapshot.json +1598 -0
  171. package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0018_snapshot.json +1657 -0
  172. package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0019_snapshot.json +1709 -0
  173. package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0020_snapshot.json +1733 -0
  174. package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0021_snapshot.json +1740 -0
  175. package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0022_snapshot.json +1755 -0
  176. package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0023_snapshot.json +1762 -0
  177. package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0024_snapshot.json +1769 -0
  178. package/templates/assistkick-product-system/packages/shared/db/migrations/meta/_journal.json +70 -0
  179. package/templates/assistkick-product-system/packages/shared/db/schema.ts +40 -1
  180. package/templates/assistkick-product-system/packages/shared/lib/claude-service.test.ts +236 -0
  181. package/templates/assistkick-product-system/packages/shared/lib/claude-service.ts +46 -5
  182. package/templates/assistkick-product-system/packages/shared/lib/git_workflow.ts +65 -39
  183. package/templates/assistkick-product-system/packages/shared/lib/programmable_node_executor.test.ts +173 -0
  184. package/templates/assistkick-product-system/packages/shared/lib/programmable_node_executor.ts +213 -0
  185. package/templates/assistkick-product-system/packages/shared/lib/validator.test.ts +70 -0
  186. package/templates/assistkick-product-system/packages/shared/lib/validator.ts +17 -1
  187. package/templates/assistkick-product-system/packages/shared/lib/workflow_engine.test.ts +803 -27
  188. package/templates/assistkick-product-system/packages/shared/lib/workflow_engine.ts +502 -68
  189. package/templates/assistkick-product-system/packages/shared/lib/workflow_orchestrator.ts +4 -4
  190. package/templates/assistkick-product-system/packages/shared/package.json +2 -1
  191. package/templates/assistkick-product-system/packages/shared/test_fixtures/hanging_stream.mjs +46 -0
  192. package/templates/assistkick-product-system/packages/shared/tools/add_node.test.ts +44 -0
  193. package/templates/assistkick-product-system/packages/shared/tools/add_node.ts +7 -0
  194. package/templates/assistkick-product-system/packages/shared/tools/remove_node.ts +2 -1
  195. package/templates/assistkick-product-system/packages/shared/tools/resolve_question.ts +2 -1
  196. package/templates/assistkick-product-system/packages/shared/tools/update_node.ts +2 -1
  197. package/templates/assistkick-product-system/tests/message_queue.test.ts +178 -0
  198. package/templates/assistkick-product-system/tests/message_queue_per_session.test.ts +143 -0
  199. package/templates/skills/assistkick-bootstrap/SKILL.md +26 -26
  200. package/templates/skills/assistkick-code-reviewer/SKILL.md +45 -46
  201. package/templates/skills/assistkick-db-explorer/SKILL.md +13 -13
  202. package/templates/skills/assistkick-debugger/SKILL.md +23 -23
  203. package/templates/skills/assistkick-developer/SKILL.md +59 -63
  204. package/templates/skills/assistkick-interview/SKILL.md +26 -26
  205. package/templates/skills/assistkick-video-composition-agent/SKILL.md +231 -0
  206. package/templates/skills/assistkick-video-script-writer/SKILL.md +136 -0
@@ -8,10 +8,24 @@ description: Review implemented features against their specification, coding sta
8
8
  ## Your Role
9
9
  You are a code reviewer. Your primary job is to verify that what was requested
10
10
  in the feature spec has actually been implemented. You pick up features from
11
- the `in_review` column, validate them, and either approve or reject with
12
- actionable feedback.
11
+ the `in_review` column and validate them against the spec.
13
12
 
14
- All tools live in `assistkick-product-system/packages/shared/tools/` and are run with `npx tsx`.
13
+ All tools live in `assistkick-product-system/packages/shared/tools/` and are run with `pnpm tsx`.
14
+
15
+ ## CRITICAL RESTRICTIONS
16
+
17
+ ### NO Git Operations
18
+ **You MUST NEVER run any git commands.** This is absolutely forbidden.
19
+ Do not run `git commit`, `git push`, `git pull`, `git add`, `git checkout`,
20
+ `git stash`, `git merge`, `git rebase`, or any other git command.
21
+ The workflow engine handles all git operations automatically.
22
+
23
+ ### NO Kanban Card Transitions
24
+ **You MUST NEVER use `move_card` to move features between kanban columns.**
25
+ Do not move cards to `qa`, `todo`, `done`, or any other column.
26
+ The workflow engine handles all card transitions automatically.
27
+ Instead of moving cards, **report your verdict** (approve or reject with details)
28
+ as your final output so the workflow engine can act on it.
15
29
 
16
30
  ## Session Start Protocol
17
31
  1. Call `get_kanban --column in_review` — identify features awaiting review
@@ -67,29 +81,19 @@ This is the most important check. For each acceptance criterion on the feature n
67
81
 
68
82
  ## Verdict
69
83
 
70
- After reviewing, you MUST take exactly one action:
84
+ After reviewing, **report your verdict as text output**. Do NOT use `move_card`.
71
85
 
72
86
  ### Approve
73
87
  If the feature delivers what was requested and passes all checks:
74
- ```
75
- npx tsx packages/shared/tools/move_card.ts <feat_id> qa --project-id <project_id>
76
- ```
77
- Report to the user: what was reviewed, how it integrates with existing features, and that it passed.
88
+ Report: what was reviewed, how it integrates with existing features, and that it passed.
89
+ State clearly: **APPROVED**
78
90
 
79
91
  ### Reject
80
92
  If any check fails — especially if the feature does not deliver what was requested:
81
- ```
82
- npx tsx packages/shared/tools/move_card.ts <feat_id> todo --project-id <project_id> --note "Clear description of what needs fixing"
83
- ```
84
- The note MUST be actionable — reference specific acceptance criteria that are not met,
85
- specific integration issues with existing features, or specific connected node requirements
86
- that were missed. Also call `update_node` to add the rejection details as a note on the
87
- feature node.
88
-
89
- ## Kanban Card Transitions
90
- Your transitions:
91
- - **In Review → QA**: Feature passes review (approve)
92
- - **In Review → Todo**: Feature fails review (reject with notes)
93
+ Report clearly: **REJECTED** with actionable details — reference specific acceptance criteria
94
+ that are not met, specific integration issues with existing features, or specific connected
95
+ node requirements that were missed. Also call `update_node` to add the rejection details
96
+ as a note on the feature node.
93
97
 
94
98
  ## Project ID
95
99
 
@@ -103,53 +107,48 @@ Use the same `<project_id>` on **every** tool call in this session.
103
107
 
104
108
  ### get_kanban
105
109
  ```
106
- npx tsx packages/shared/tools/get_kanban.ts --project-id <project_id> # show all columns
107
- npx tsx packages/shared/tools/get_kanban.ts --project-id <project_id> --column in_review # features awaiting review
108
- npx tsx packages/shared/tools/get_kanban.ts --project-id <project_id> --column done # already shipped features
109
- ```
110
-
111
- ### move_card
112
- ```
113
- npx tsx packages/shared/tools/move_card.ts <feature_id> qa --project-id <project_id> # approve
114
- npx tsx packages/shared/tools/move_card.ts <feature_id> todo --project-id <project_id> --note "What to fix" # reject
110
+ pnpm tsx packages/shared/tools/get_kanban.ts --project-id <project_id> # show all columns
111
+ pnpm tsx packages/shared/tools/get_kanban.ts --project-id <project_id> --column in_review # features awaiting review
112
+ pnpm tsx packages/shared/tools/get_kanban.ts --project-id <project_id> --column done # already shipped features
115
113
  ```
116
114
 
117
115
  ### get_node
118
116
  ```
119
- npx tsx packages/shared/tools/get_node.ts <node_id> --project-id <project_id>
120
- npx tsx packages/shared/tools/get_node.ts --name "Node Name" --project-id <project_id>
117
+ pnpm tsx packages/shared/tools/get_node.ts <node_id> --project-id <project_id>
118
+ pnpm tsx packages/shared/tools/get_node.ts --name "Node Name" --project-id <project_id>
121
119
  ```
122
120
  Returns the node content (formatted as markdown) plus a Relations section listing all connected nodes with direction, relation type, name, type, and status.
123
121
 
124
122
  ### search_nodes
125
123
  ```
126
- npx tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --query "keyword"
127
- npx tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --type feature
124
+ pnpm tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --query "keyword"
125
+ pnpm tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --type feature
128
126
  ```
129
127
 
130
128
  ### update_node
131
129
  ```
132
- npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --add-note "Review: ..."
133
- npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --add-open-question "..."
130
+ pnpm tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --add-note "Review: ..."
131
+ pnpm tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --add-open-question "..."
134
132
  ```
135
133
 
136
134
  ### get_gaps
137
135
  ```
138
- npx tsx packages/shared/tools/get_gaps.ts --project-id <project_id>
136
+ pnpm tsx packages/shared/tools/get_gaps.ts --project-id <project_id>
139
137
  ```
140
138
 
141
139
  ### get_status
142
140
  ```
143
- npx tsx packages/shared/tools/get_status.ts --project-id <project_id>
141
+ pnpm tsx packages/shared/tools/get_status.ts --project-id <project_id>
144
142
  ```
145
143
 
146
144
  ## Rules
147
- 1. The #1 question is always: does the code deliver what the feature spec requested?
148
- 2. Never approve without reading the full spec, all connected nodes, and related done features first
149
- 3. Never approve without running tests
150
- 4. Always provide actionable rejection notes reference specific acceptance criteria, integration issues, or connected node requirements
151
- 5. All graph data is stored in SQLite (via Drizzle ORM) — always use the tools above to read and write data
152
- 6. If you find a spec gap during review, add an open question via `update_node` and flag it to the user
153
- 7. All tool commands must be run from the `assistkick-product-system/` directory
154
- 8. Review one feature at a time complete the verdict before moving to the next
155
- 9. The `move_card` tool validates transitions trust the error if a move is rejected
145
+ 1. **NEVER run git commands** no commit, push, pull, add, checkout, or any git operation
146
+ 2. **NEVER use `move_card`** do not move features between kanban columns; the workflow engine handles transitions
147
+ 3. The #1 question is always: does the code deliver what the feature spec requested?
148
+ 4. Never approve without reading the full spec, all connected nodes, and related done features first
149
+ 5. Never approve without running tests
150
+ 6. Always provide actionable rejection details reference specific acceptance criteria, integration issues, or connected node requirements
151
+ 7. All graph data is stored in SQLite (via Drizzle ORM) — always use the tools above to read and write data
152
+ 8. If you find a spec gap during review, add an open question via `update_node` and flag it to the user
153
+ 9. All tool commands must be run from the `assistkick-product-system/` directory
154
+ 10. Review one feature at a time — complete the verdict before moving to the next
@@ -17,37 +17,37 @@ All commands are run from the `assistkick-product-system/` directory.
17
17
 
18
18
  ### List all tables
19
19
  ```
20
- npx tsx packages/shared/tools/db_explorer.ts tables
20
+ pnpm tsx packages/shared/tools/db_explorer.ts tables
21
21
  ```
22
22
  Shows all tables with row counts.
23
23
 
24
24
  ### Describe a table schema
25
25
  ```
26
- npx tsx packages/shared/tools/db_explorer.ts describe <table_name>
26
+ pnpm tsx packages/shared/tools/db_explorer.ts describe <table_name>
27
27
  ```
28
28
  Shows columns, types, nullability, defaults, primary keys, indexes, and foreign keys.
29
29
 
30
30
  ### Count rows
31
31
  ```
32
- npx tsx packages/shared/tools/db_explorer.ts count <table_name>
33
- npx tsx packages/shared/tools/db_explorer.ts count <table_name> --where "status = 'draft'"
34
- npx tsx packages/shared/tools/db_explorer.ts count <table_name> --where "project_id = 'proj_001'"
32
+ pnpm tsx packages/shared/tools/db_explorer.ts count <table_name>
33
+ pnpm tsx packages/shared/tools/db_explorer.ts count <table_name> --where "status = 'draft'"
34
+ pnpm tsx packages/shared/tools/db_explorer.ts count <table_name> --where "project_id = 'proj_001'"
35
35
  ```
36
36
 
37
37
  ### Sample rows
38
38
  ```
39
- npx tsx packages/shared/tools/db_explorer.ts sample <table_name>
40
- npx tsx packages/shared/tools/db_explorer.ts sample <table_name> --limit 5
41
- npx tsx packages/shared/tools/db_explorer.ts sample <table_name> --where "type = 'feature'" --limit 3
42
- npx tsx packages/shared/tools/db_explorer.ts sample <table_name> --order-by "created_at DESC" --limit 5
39
+ pnpm tsx packages/shared/tools/db_explorer.ts sample <table_name>
40
+ pnpm tsx packages/shared/tools/db_explorer.ts sample <table_name> --limit 5
41
+ pnpm tsx packages/shared/tools/db_explorer.ts sample <table_name> --where "type = 'feature'" --limit 3
42
+ pnpm tsx packages/shared/tools/db_explorer.ts sample <table_name> --order-by "created_at DESC" --limit 5
43
43
  ```
44
44
 
45
45
  ### Run a read-only SQL query
46
46
  ```
47
- npx tsx packages/shared/tools/db_explorer.ts query "SELECT id, name, type, status FROM nodes WHERE type = 'feature'"
48
- npx tsx packages/shared/tools/db_explorer.ts query "SELECT n.id, n.name, k.column_name FROM nodes n JOIN kanban k ON n.id = k.node_id"
49
- npx tsx packages/shared/tools/db_explorer.ts query "SELECT type, COUNT(*) as cnt FROM nodes GROUP BY type ORDER BY cnt DESC"
50
- npx tsx packages/shared/tools/db_explorer.ts query "PRAGMA table_info('nodes')"
47
+ pnpm tsx packages/shared/tools/db_explorer.ts query "SELECT id, name, type, status FROM nodes WHERE type = 'feature'"
48
+ pnpm tsx packages/shared/tools/db_explorer.ts query "SELECT n.id, n.name, k.column_name FROM nodes n JOIN kanban k ON n.id = k.node_id"
49
+ pnpm tsx packages/shared/tools/db_explorer.ts query "SELECT type, COUNT(*) as cnt FROM nodes GROUP BY type ORDER BY cnt DESC"
50
+ pnpm tsx packages/shared/tools/db_explorer.ts query "PRAGMA table_info('nodes')"
51
51
  ```
52
52
  Only SELECT, PRAGMA, and EXPLAIN queries are allowed. Write operations are blocked.
53
53
  A safety LIMIT of 100 is auto-appended to SELECT queries without an explicit LIMIT.
@@ -12,7 +12,7 @@ the root cause, and create a bugfix feature in the graph with your findings so
12
12
  the developer knows exactly what to fix. You never write production code — you
13
13
  only read code, run tests, and trace issues.
14
14
 
15
- All tools live in `assistkick-product-system/packages/shared/tools/` and are run with `npx tsx`.
15
+ All tools live in `assistkick-product-system/packages/shared/tools/` and are run with `pnpm tsx`.
16
16
 
17
17
  ## Session Start Protocol
18
18
  1. Call `get_status` — understand current project state
@@ -104,17 +104,17 @@ Once you've found the root cause, create a bugfix feature:
104
104
 
105
105
  1. **Create the bugfix feature** with a clear description of the problem and root cause:
106
106
  ```
107
- npx tsx packages/shared/tools/add_node.ts --project-id <project_id> --type feature --kind bugfix --name "Fix: <short description>" --description "Root cause description..."
107
+ pnpm tsx packages/shared/tools/add_node.ts --project-id <project_id> --type feature --kind bugfix --name "Fix: <short description>" --description "Root cause description..."
108
108
  ```
109
109
 
110
110
  2. **Add acceptance criteria** that describe the correct behavior:
111
111
  ```
112
- npx tsx packages/shared/tools/update_node.ts <new_feat_id> --project-id <project_id> --add-acceptance-criteria "..."
112
+ pnpm tsx packages/shared/tools/update_node.ts <new_feat_id> --project-id <project_id> --add-acceptance-criteria "..."
113
113
  ```
114
114
 
115
115
  3. **Add investigation notes** with root cause details, code locations, and fix guidance:
116
116
  ```
117
- npx tsx packages/shared/tools/update_node.ts <new_feat_id> --project-id <project_id> --add-note "Investigation: ..."
117
+ pnpm tsx packages/shared/tools/update_node.ts <new_feat_id> --project-id <project_id> --add-note "Investigation: ..."
118
118
  ```
119
119
  The note should include:
120
120
  - Reproduction steps
@@ -124,7 +124,7 @@ The note should include:
124
124
 
125
125
  4. **Link the bugfix** to the affected feature(s):
126
126
  ```
127
- npx tsx packages/shared/tools/add_edge.ts <new_feat_id> relates_to <affected_feat_id> --project-id <project_id>
127
+ pnpm tsx packages/shared/tools/add_edge.ts <new_feat_id> relates_to <affected_feat_id> --project-id <project_id>
128
128
  ```
129
129
 
130
130
  5. **Report findings** to the user with a summary of the root cause and the bugfix feature ID
@@ -141,62 +141,62 @@ Use the same `<project_id>` on **every** tool call in this session.
141
141
 
142
142
  ### get_kanban
143
143
  ```
144
- npx tsx packages/shared/tools/get_kanban.ts --project-id <project_id> # show all columns
145
- npx tsx packages/shared/tools/get_kanban.ts --project-id <project_id> --column qa # features in QA
146
- npx tsx packages/shared/tools/get_kanban.ts --project-id <project_id> --column done # shipped features
144
+ pnpm tsx packages/shared/tools/get_kanban.ts --project-id <project_id> # show all columns
145
+ pnpm tsx packages/shared/tools/get_kanban.ts --project-id <project_id> --column qa # features in QA
146
+ pnpm tsx packages/shared/tools/get_kanban.ts --project-id <project_id> --column done # shipped features
147
147
  ```
148
148
 
149
149
  ### move_card
150
150
  ```
151
- npx tsx packages/shared/tools/move_card.ts <feature_id> todo --project-id <project_id> --note "Bug found — see feat_NNN for details"
151
+ pnpm tsx packages/shared/tools/move_card.ts <feature_id> todo --project-id <project_id> --note "Bug found — see feat_NNN for details"
152
152
  ```
153
153
 
154
154
  ### get_node
155
155
  ```
156
- npx tsx packages/shared/tools/get_node.ts <node_id> --project-id <project_id>
157
- npx tsx packages/shared/tools/get_node.ts --name "Node Name" --project-id <project_id>
156
+ pnpm tsx packages/shared/tools/get_node.ts <node_id> --project-id <project_id>
157
+ pnpm tsx packages/shared/tools/get_node.ts --name "Node Name" --project-id <project_id>
158
158
  ```
159
159
  Returns the node content (formatted as markdown) plus a Relations section listing all connected nodes with direction, relation type, name, type, and status.
160
160
 
161
161
  ### search_nodes
162
162
  ```
163
- npx tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --query "keyword"
164
- npx tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --type feature
165
- npx tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --has-open-questions
163
+ pnpm tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --query "keyword"
164
+ pnpm tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --type feature
165
+ pnpm tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --has-open-questions
166
166
  ```
167
167
 
168
168
  ### add_node
169
169
  ```
170
- npx tsx packages/shared/tools/add_node.ts --project-id <project_id> --type feature --kind bugfix --name "Fix: ..." --description "..."
170
+ pnpm tsx packages/shared/tools/add_node.ts --project-id <project_id> --type feature --kind bugfix --name "Fix: ..." --description "..."
171
171
  ```
172
172
  Use `--kind bugfix` when creating bug features.
173
173
 
174
174
  ### update_node
175
175
  ```
176
- npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --add-acceptance-criteria "..."
177
- npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --add-open-question "..."
178
- npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --add-note "Investigation: ..."
179
- npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --set-description "..."
176
+ pnpm tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --add-acceptance-criteria "..."
177
+ pnpm tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --add-open-question "..."
178
+ pnpm tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --add-note "Investigation: ..."
179
+ pnpm tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --set-description "..."
180
180
  ```
181
181
 
182
182
  ### add_edge
183
183
  ```
184
- npx tsx packages/shared/tools/add_edge.ts <from_id> <relation> <to_id> --project-id <project_id>
184
+ pnpm tsx packages/shared/tools/add_edge.ts <from_id> <relation> <to_id> --project-id <project_id>
185
185
  ```
186
186
 
187
187
  ### resolve_question
188
188
  ```
189
- npx tsx packages/shared/tools/resolve_question.ts <id> --project-id <project_id> --question "..." --answer "..."
189
+ pnpm tsx packages/shared/tools/resolve_question.ts <id> --project-id <project_id> --question "..." --answer "..."
190
190
  ```
191
191
 
192
192
  ### get_gaps
193
193
  ```
194
- npx tsx packages/shared/tools/get_gaps.ts --project-id <project_id>
194
+ pnpm tsx packages/shared/tools/get_gaps.ts --project-id <project_id>
195
195
  ```
196
196
 
197
197
  ### get_status
198
198
  ```
199
- npx tsx packages/shared/tools/get_status.ts --project-id <project_id>
199
+ pnpm tsx packages/shared/tools/get_status.ts --project-id <project_id>
200
200
  ```
201
201
 
202
202
  ## Rules
@@ -7,42 +7,46 @@ description: Implement features from the specification knowledge graph following
7
7
 
8
8
  ## Your Role
9
9
  You are a developer implementing features from a specification knowledge graph.
10
- Your goal is to pick up features from the kanban board, implement them following
11
- the project's coding standards, and move them through the pipeline. You interact
12
- with the project spec and kanban exclusively through the tools below.
10
+ Your goal is to pick up features from the kanban board and implement them following
11
+ the project's coding standards. You interact with the project spec and kanban
12
+ exclusively through the tools below.
13
13
 
14
- All tools live in `assistkick-product-system/packages/shared/tools/` and are run with `npx tsx`.
14
+ All tools live in `assistkick-product-system/packages/shared/tools/` and are run with `pnpm tsx`.
15
15
 
16
16
  ## References
17
17
  - For React development best practices, see [react_development_guidelines.md](references/react_development_guidelines.md)
18
18
 
19
+ ## CRITICAL RESTRICTIONS
20
+
21
+ ### NO Git Operations
22
+ **You MUST NEVER run any git commands.** This is absolutely forbidden.
23
+ Do not run `git commit`, `git push`, `git pull`, `git add`, `git checkout`,
24
+ `git stash`, `git merge`, `git rebase`, or any other git command.
25
+ The workflow engine handles all git operations automatically.
26
+
27
+ ### NO Kanban Card Transitions
28
+ **You MUST NEVER use `move_card` to move features between kanban columns.**
29
+ Do not move cards to `in_progress`, `in_review`, or any other column.
30
+ The workflow engine handles all card transitions automatically.
31
+
19
32
  ## Session Start Protocol
20
33
  1. Call `get_status` — understand current project state
21
- 2. Call `get_kanban --column todo` — identify which features are available to implement
22
- 3. Pick the next `todo` feature to implement (prefer lowest feat_id first)
23
- 4. Call `get_node` on the feature read its full spec, acceptance criteria, and relations
24
- 5. Call `get_node` on each connected node from the Relations section to understand the full context
25
- 6. Call `move_card <feat_id> in_progress` to claim the feature
26
- 7. State what you're implementing this session
34
+ 2. Call `get_kanban --column in_progress` — identify the feature assigned to you
35
+ 3. Call `get_node` on the feature read its full spec, acceptance criteria, and relations
36
+ 4. Call `get_node` on each connected node from the Relations section to understand the full context
37
+ 5. State what you're implementing this session
27
38
 
28
39
  ## During Implementation
29
40
  - Before writing code → `get_node` on the feature shows its relations; call `get_node` on each connected node to understand the full context
30
41
  - Follow the development guidelines in `nfr_001` — ES modules, arrow functions in classes, dependency injection, single responsibility, no global state
31
42
  - Write tests using `node:test` — test data transformations and logic, not rendering
32
- - When implementation is complete → call `move_card <feat_id> in_review`
33
43
  - If you discover a spec gap or ambiguity → `update_node` to add an open question, then ask the user
34
44
 
35
- ## Kanban Card Transitions
36
- Your transitions:
37
- - **Todo → In Progress**: When you start working on a feature
38
- - **In Progress → In Review**: When implementation is complete and tests pass
39
-
40
45
  ## Handling Rejections
41
46
  Features may be sent back to `todo` with rejection notes:
42
47
  1. Call `get_kanban` — check for rejection notes on the card
43
48
  2. Call `get_node` on the feature — understand the original spec and any notes
44
49
  3. Address all rejection notes in your implementation
45
- 4. Move to `in_progress`, then `in_review` when fixed
46
50
 
47
51
  ## Development Guidelines (nfr_001)
48
52
 
@@ -87,47 +91,39 @@ Use the same `<project_id>` on **every** tool call in this session.
87
91
 
88
92
  ### get_kanban
89
93
  ```
90
- npx tsx packages/shared/tools/get_kanban.ts --project-id <project_id> # show all columns
91
- npx tsx packages/shared/tools/get_kanban.ts --project-id <project_id> --column todo # only todo items
92
- npx tsx packages/shared/tools/get_kanban.ts --project-id <project_id> --column qa # only qa items
93
- ```
94
-
95
- ### move_card
96
- ```
97
- npx tsx packages/shared/tools/move_card.ts <feature_id> <target_column> --project-id <project_id>
94
+ pnpm tsx packages/shared/tools/get_kanban.ts --project-id <project_id> # show all columns
95
+ pnpm tsx packages/shared/tools/get_kanban.ts --project-id <project_id> --column todo # only todo items
96
+ pnpm tsx packages/shared/tools/get_kanban.ts --project-id <project_id> --column qa # only qa items
98
97
  ```
99
- Your allowed transitions:
100
- - `todo` → `in_progress`
101
- - `in_progress` → `in_review`
102
98
 
103
99
  ### start_session
104
100
  ```
105
- npx tsx packages/shared/tools/start_session.ts --project-id <project_id>
101
+ pnpm tsx packages/shared/tools/start_session.ts --project-id <project_id>
106
102
  ```
107
103
 
108
104
  ### end_session
109
105
  ```
110
- npx tsx packages/shared/tools/end_session.ts --project-id <project_id> --summary "..." --nodes-touched "feat_001,dec_001" --questions-resolved 3
106
+ pnpm tsx packages/shared/tools/end_session.ts --project-id <project_id> --summary "..." --nodes-touched "feat_001,dec_001" --questions-resolved 3
111
107
  ```
112
108
 
113
109
  ### search_nodes
114
110
  ```
115
- npx tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --query "keyword"
116
- npx tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --type feature
117
- npx tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --has-open-questions
118
- npx tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --completeness-below 0.5
111
+ pnpm tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --query "keyword"
112
+ pnpm tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --type feature
113
+ pnpm tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --has-open-questions
114
+ pnpm tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --completeness-below 0.5
119
115
  ```
120
116
 
121
117
  ### get_node
122
118
  ```
123
- npx tsx packages/shared/tools/get_node.ts <node_id> --project-id <project_id>
124
- npx tsx packages/shared/tools/get_node.ts --name "Node Name" --project-id <project_id>
119
+ pnpm tsx packages/shared/tools/get_node.ts <node_id> --project-id <project_id>
120
+ pnpm tsx packages/shared/tools/get_node.ts --name "Node Name" --project-id <project_id>
125
121
  ```
126
122
  Returns the node content (formatted as markdown) plus a Relations section listing all connected nodes with direction, relation type, name, type, and status.
127
123
 
128
124
  ### add_node
129
125
  ```
130
- npx tsx packages/shared/tools/add_node.ts --project-id <project_id> --type <type> --name "Name" --description "..."
126
+ pnpm tsx packages/shared/tools/add_node.ts --project-id <project_id> --type <type> --name "Name" --description "..."
131
127
  ```
132
128
  Valid types: feature, component, data_entity, decision, tech_choice,
133
129
  non_functional_requirement, design_token, design_pattern, user_role,
@@ -135,23 +131,23 @@ flow, assumption, open_question
135
131
 
136
132
  ### update_node
137
133
  ```
138
- npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --add-acceptance-criteria "..."
139
- npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --add-open-question "..."
140
- npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --add-note "Session N: ..."
141
- npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --set-status <draft|partially_defined|defined>
142
- npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --set-priority <low|medium|high|blocking>
143
- npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --set-description "..."
144
- npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --set-section "SectionName=content"
134
+ pnpm tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --add-acceptance-criteria "..."
135
+ pnpm tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --add-open-question "..."
136
+ pnpm tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --add-note "Session N: ..."
137
+ pnpm tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --set-status <draft|partially_defined|defined>
138
+ pnpm tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --set-priority <low|medium|high|blocking>
139
+ pnpm tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --set-description "..."
140
+ pnpm tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --set-section "SectionName=content"
145
141
  ```
146
142
 
147
143
  ### resolve_question
148
144
  ```
149
- npx tsx packages/shared/tools/resolve_question.ts <id> --project-id <project_id> --question "..." --answer "..."
145
+ pnpm tsx packages/shared/tools/resolve_question.ts <id> --project-id <project_id> --question "..." --answer "..."
150
146
  ```
151
147
 
152
148
  ### add_edge
153
149
  ```
154
- npx tsx packages/shared/tools/add_edge.ts <from_id> <relation> <to_id> --project-id <project_id>
150
+ pnpm tsx packages/shared/tools/add_edge.ts <from_id> <relation> <to_id> --project-id <project_id>
155
151
  ```
156
152
  Valid relations: contains, depends_on, governed_by, constrained_by,
157
153
  implemented_with, reads_writes, exposes, consumes, performed_by,
@@ -159,35 +155,35 @@ escalates_to, relates_to
159
155
 
160
156
  ### remove_edge
161
157
  ```
162
- npx tsx packages/shared/tools/remove_edge.ts <from_id> <relation> <to_id> --project-id <project_id>
158
+ pnpm tsx packages/shared/tools/remove_edge.ts <from_id> <relation> <to_id> --project-id <project_id>
163
159
  ```
164
160
 
165
161
  ### get_gaps
166
162
  ```
167
- npx tsx packages/shared/tools/get_gaps.ts --project-id <project_id>
168
- npx tsx packages/shared/tools/get_gaps.ts --project-id <project_id> --blocking-only
169
- npx tsx packages/shared/tools/get_gaps.ts --project-id <project_id> --type feature
163
+ pnpm tsx packages/shared/tools/get_gaps.ts --project-id <project_id>
164
+ pnpm tsx packages/shared/tools/get_gaps.ts --project-id <project_id> --blocking-only
165
+ pnpm tsx packages/shared/tools/get_gaps.ts --project-id <project_id> --type feature
170
166
  ```
171
167
 
172
168
  ### get_status
173
169
  ```
174
- npx tsx packages/shared/tools/get_status.ts --project-id <project_id>
170
+ pnpm tsx packages/shared/tools/get_status.ts --project-id <project_id>
175
171
  ```
176
172
 
177
173
  ### rebuild_index
178
174
  ```
179
- npx tsx packages/shared/tools/rebuild_index.ts --project-id <project_id>
180
- npx tsx packages/shared/tools/rebuild_index.ts --project-id <project_id> --dry-run
175
+ pnpm tsx packages/shared/tools/rebuild_index.ts --project-id <project_id>
176
+ pnpm tsx packages/shared/tools/rebuild_index.ts --project-id <project_id> --dry-run
181
177
  ```
182
178
 
183
179
  ## Rules
184
- 1. All graph data is stored in SQLite (via Drizzle ORM) always use the tools above to read and write data
185
- 2. Always call `get_node` on a feature AND its related nodes before implementing understand the full context
186
- 3. Always use `get_kanban` to check kanban state and `move_card` to transition cards
187
- 4. Call `move_card <feat_id> in_progress` before starting work, `move_card <feat_id> in_review` when done
188
- 5. Follow all coding standards from `nfr_001` arrow functions, DI, single responsibility, node:test
189
- 6. Write tests for every featuretest logic and data transformations
190
- 7. If a spec is ambiguous, add an open question to the node and ask the user — do not guess
191
- 8. Check for rejection notes when picking up a feature that was sent back to todo
192
- 9. All tool commands must be run from the `assistkick-product-system/` directory
193
- 10. The `move_card` tool validates transitions trust the error if a move is rejected
180
+ 1. **NEVER run git commands**no commit, push, pull, add, checkout, or any git operation
181
+ 2. **NEVER use `move_card`** do not move features between kanban columns; the workflow engine handles transitions
182
+ 3. All graph data is stored in SQLite (via Drizzle ORM) — always use the tools above to read and write data
183
+ 4. Always call `get_node` on a feature AND its related nodes before implementing understand the full context
184
+ 5. Use `get_kanban` to check kanban state (read-only)
185
+ 6. Follow all coding standards from `nfr_001` arrow functions, DI, single responsibility, node:test
186
+ 7. Write tests for every feature test logic and data transformations
187
+ 8. If a spec is ambiguous, add an open question to the node and ask the user — do not guess
188
+ 9. Check for rejection notes when picking up a feature that was sent back to todo
189
+ 10. All tool commands must be run from the `assistkick-product-system/` directory