@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.
- package/dist/src/scaffolder.d.ts +12 -1
- package/dist/src/scaffolder.js +40 -3
- package/dist/src/scaffolder.js.map +1 -1
- package/package.json +1 -1
- package/templates/assistkick-product-system/package.json +1 -1
- package/templates/assistkick-product-system/packages/backend/package.json +1 -0
- package/templates/assistkick-product-system/packages/backend/src/mcp/permission_mcp_server.ts +196 -0
- package/templates/assistkick-product-system/packages/backend/src/routes/agents.ts +31 -7
- package/templates/assistkick-product-system/packages/backend/src/routes/auth.ts +15 -12
- package/templates/assistkick-product-system/packages/backend/src/routes/chat_files.test.ts +95 -0
- package/templates/assistkick-product-system/packages/backend/src/routes/chat_files.ts +97 -0
- package/templates/assistkick-product-system/packages/backend/src/routes/chat_permission.ts +94 -0
- package/templates/assistkick-product-system/packages/backend/src/routes/chat_sessions.ts +189 -0
- package/templates/assistkick-product-system/packages/backend/src/routes/chat_upload.test.ts +131 -0
- package/templates/assistkick-product-system/packages/backend/src/routes/chat_upload.ts +94 -0
- package/templates/assistkick-product-system/packages/backend/src/routes/files.test.ts +12 -3
- package/templates/assistkick-product-system/packages/backend/src/routes/files.ts +2 -2
- package/templates/assistkick-product-system/packages/backend/src/routes/git.ts +391 -23
- package/templates/assistkick-product-system/packages/backend/src/routes/git_branches.test.ts +306 -0
- package/templates/assistkick-product-system/packages/backend/src/routes/git_connect.test.ts +133 -0
- package/templates/assistkick-product-system/packages/backend/src/routes/pipeline.ts +66 -9
- package/templates/assistkick-product-system/packages/backend/src/routes/preview.ts +204 -0
- package/templates/assistkick-product-system/packages/backend/src/routes/projects.test.ts +205 -0
- package/templates/assistkick-product-system/packages/backend/src/routes/projects.ts +37 -9
- package/templates/assistkick-product-system/packages/backend/src/routes/skills.test.ts +139 -0
- package/templates/assistkick-product-system/packages/backend/src/routes/skills.ts +95 -0
- package/templates/assistkick-product-system/packages/backend/src/routes/terminal.ts +5 -4
- package/templates/assistkick-product-system/packages/backend/src/routes/users.ts +4 -4
- package/templates/assistkick-product-system/packages/backend/src/routes/video.ts +8 -8
- package/templates/assistkick-product-system/packages/backend/src/routes/workflow_groups.ts +5 -5
- package/templates/assistkick-product-system/packages/backend/src/routes/workflows.ts +6 -6
- package/templates/assistkick-product-system/packages/backend/src/server.ts +107 -27
- package/templates/assistkick-product-system/packages/backend/src/services/agent_service.test.ts +105 -203
- package/templates/assistkick-product-system/packages/backend/src/services/agent_service.ts +76 -266
- package/templates/assistkick-product-system/packages/backend/src/services/chat_cli_bridge.test.ts +427 -0
- package/templates/assistkick-product-system/packages/backend/src/services/chat_cli_bridge.ts +345 -0
- package/templates/assistkick-product-system/packages/backend/src/services/chat_message_repository.test.ts +170 -0
- package/templates/assistkick-product-system/packages/backend/src/services/chat_message_repository.ts +106 -0
- package/templates/assistkick-product-system/packages/backend/src/services/chat_session_service.test.ts +217 -0
- package/templates/assistkick-product-system/packages/backend/src/services/chat_session_service.ts +188 -0
- package/templates/assistkick-product-system/packages/backend/src/services/chat_ws_handler.test.ts +1243 -0
- package/templates/assistkick-product-system/packages/backend/src/services/chat_ws_handler.ts +894 -0
- package/templates/assistkick-product-system/packages/backend/src/services/coherence-review.ts +3 -3
- package/templates/assistkick-product-system/packages/backend/src/services/dev_command_detector.test.ts +85 -0
- package/templates/assistkick-product-system/packages/backend/src/services/dev_command_detector.ts +54 -0
- package/templates/assistkick-product-system/packages/backend/src/services/email_service.ts +13 -10
- package/templates/assistkick-product-system/packages/backend/src/services/init.ts +11 -3
- package/templates/assistkick-product-system/packages/backend/src/services/invitation_service.ts +1 -1
- package/templates/assistkick-product-system/packages/backend/src/services/password_reset_service.ts +1 -1
- package/templates/assistkick-product-system/packages/backend/src/services/permission_service.test.ts +243 -0
- package/templates/assistkick-product-system/packages/backend/src/services/permission_service.ts +259 -0
- package/templates/assistkick-product-system/packages/backend/src/services/preview_server_manager.test.ts +172 -0
- package/templates/assistkick-product-system/packages/backend/src/services/preview_server_manager.ts +225 -0
- package/templates/assistkick-product-system/packages/backend/src/services/project_service.test.ts +29 -0
- package/templates/assistkick-product-system/packages/backend/src/services/project_service.ts +17 -0
- package/templates/assistkick-product-system/packages/backend/src/services/project_workspace_service.test.ts +255 -0
- package/templates/assistkick-product-system/packages/backend/src/services/project_workspace_service.ts +300 -25
- package/templates/assistkick-product-system/packages/backend/src/services/pty_session_manager.test.ts +44 -0
- package/templates/assistkick-product-system/packages/backend/src/services/pty_session_manager.ts +62 -7
- package/templates/assistkick-product-system/packages/backend/src/services/ssh_key_service.test.ts +77 -6
- package/templates/assistkick-product-system/packages/backend/src/services/ssh_key_service.ts +149 -14
- package/templates/assistkick-product-system/packages/backend/src/services/terminal_ws_handler.ts +2 -1
- package/templates/assistkick-product-system/packages/backend/src/services/title_generator_service.test.ts +45 -0
- package/templates/assistkick-product-system/packages/backend/src/services/title_generator_service.ts +157 -0
- package/templates/assistkick-product-system/packages/backend/src/services/tts_service.ts +4 -3
- package/templates/assistkick-product-system/packages/backend/src/services/video_render_service.ts +3 -3
- package/templates/assistkick-product-system/packages/frontend/package.json +5 -0
- package/templates/assistkick-product-system/packages/frontend/src/App.tsx +2 -0
- package/templates/assistkick-product-system/packages/frontend/src/api/client.ts +336 -5
- package/templates/assistkick-product-system/packages/frontend/src/components/AgentsView.tsx +192 -12
- package/templates/assistkick-product-system/packages/frontend/src/components/AttachmentPreviewList.tsx +98 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/AutocompleteDropdown.tsx +65 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/ChatAttachButton.tsx +56 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/ChatDropZone.tsx +80 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/ChatMessageBubble.tsx +155 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/ChatMessageContent.tsx +182 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/ChatMessageInput.tsx +233 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/ChatSessionSidebar.tsx +218 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/ChatStopButton.tsx +32 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/ChatTodoSidebar.tsx +113 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/ChatView.tsx +842 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/CommitMessageModal.tsx +82 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/DiagramOverlay.tsx +160 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/EditorTabBar.tsx +5 -5
- package/templates/assistkick-product-system/packages/frontend/src/components/FileTree.tsx +9 -10
- package/templates/assistkick-product-system/packages/frontend/src/components/FileTreeInlineInput.tsx +5 -5
- package/templates/assistkick-product-system/packages/frontend/src/components/FilesView.tsx +112 -41
- package/templates/assistkick-product-system/packages/frontend/src/components/GraphLegend.tsx +2 -2
- package/templates/assistkick-product-system/packages/frontend/src/components/HighlightedText.tsx +87 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/ImageLightbox.tsx +192 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/KanbanView.tsx +2 -2
- package/templates/assistkick-product-system/packages/frontend/src/components/MentionPill.tsx +33 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/MermaidBlock.tsx +148 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/PermissionDialog.tsx +91 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/PermissionModeSelector.tsx +229 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/ProjectSelector.tsx +249 -83
- package/templates/assistkick-product-system/packages/frontend/src/components/QueuedMessageBubble.tsx +38 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/SidePanel.tsx +212 -117
- package/templates/assistkick-product-system/packages/frontend/src/components/SystemPromptAccordion.tsx +48 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/TaskIcon.tsx +11 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/TerminalView.tsx +25 -9
- package/templates/assistkick-product-system/packages/frontend/src/components/ToolDiffView.tsx +114 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/ToolResultCard.tsx +87 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/ToolUseCard.tsx +149 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/Toolbar.tsx +25 -8
- package/templates/assistkick-product-system/packages/frontend/src/components/UnifiedGitWidget.tsx +722 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/workflow/GroupNode.tsx +2 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/workflow/NodePalette.tsx +2 -1
- package/templates/assistkick-product-system/packages/frontend/src/components/workflow/ProgrammableNode.tsx +178 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/workflow/WorkflowCanvas.tsx +3 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/workflow/WorkflowMonitorModal.tsx +103 -9
- package/templates/assistkick-product-system/packages/frontend/src/components/workflow/monitor_nodes.tsx +26 -2
- package/templates/assistkick-product-system/packages/frontend/src/components/workflow/workflow_types.ts +42 -1
- package/templates/assistkick-product-system/packages/frontend/src/hooks/useDocumentTitle.ts +11 -0
- package/templates/assistkick-product-system/packages/frontend/src/hooks/useProjects.ts +1 -0
- package/templates/assistkick-product-system/packages/frontend/src/hooks/use_chat_stream.ts +826 -0
- package/templates/assistkick-product-system/packages/frontend/src/hooks/use_file_tree_cache.ts +69 -0
- package/templates/assistkick-product-system/packages/frontend/src/hooks/use_mention_autocomplete.ts +284 -0
- package/templates/assistkick-product-system/packages/frontend/src/lib/attachment_manager.test.ts +183 -0
- package/templates/assistkick-product-system/packages/frontend/src/lib/attachment_manager.ts +150 -0
- package/templates/assistkick-product-system/packages/frontend/src/lib/chat_message_helpers.test.ts +305 -0
- package/templates/assistkick-product-system/packages/frontend/src/lib/chat_message_helpers.ts +113 -0
- package/templates/assistkick-product-system/packages/frontend/src/lib/context_usage_helpers.test.ts +157 -0
- package/templates/assistkick-product-system/packages/frontend/src/lib/context_usage_helpers.ts +95 -0
- package/templates/assistkick-product-system/packages/frontend/src/lib/mermaid_helpers.test.ts +65 -0
- package/templates/assistkick-product-system/packages/frontend/src/lib/mermaid_helpers.ts +110 -0
- package/templates/assistkick-product-system/packages/frontend/src/lib/message_queue.ts +66 -0
- package/templates/assistkick-product-system/packages/frontend/src/lib/tool_use_summary.test.ts +124 -0
- package/templates/assistkick-product-system/packages/frontend/src/lib/tool_use_summary.ts +112 -0
- package/templates/assistkick-product-system/packages/frontend/src/routes/AgentsRoute.tsx +2 -0
- package/templates/assistkick-product-system/packages/frontend/src/routes/ChatRoute.tsx +8 -0
- package/templates/assistkick-product-system/packages/frontend/src/routes/CoherenceRoute.tsx +2 -0
- package/templates/assistkick-product-system/packages/frontend/src/routes/DashboardLayout.tsx +0 -4
- package/templates/assistkick-product-system/packages/frontend/src/routes/DesignSystemRoute.tsx +2 -0
- package/templates/assistkick-product-system/packages/frontend/src/routes/FilesRoute.tsx +2 -0
- package/templates/assistkick-product-system/packages/frontend/src/routes/GraphRoute.tsx +2 -0
- package/templates/assistkick-product-system/packages/frontend/src/routes/KanbanRoute.tsx +2 -0
- package/templates/assistkick-product-system/packages/frontend/src/routes/TerminalRoute.tsx +2 -0
- package/templates/assistkick-product-system/packages/frontend/src/routes/UsersRoute.tsx +2 -0
- package/templates/assistkick-product-system/packages/frontend/src/routes/VideographyRoute.tsx +2 -0
- package/templates/assistkick-product-system/packages/frontend/src/routes/WorkflowsRoute.tsx +2 -0
- package/templates/assistkick-product-system/packages/frontend/src/routes/accept_invitation.tsx +2 -0
- package/templates/assistkick-product-system/packages/frontend/src/routes/forgot_password.tsx +2 -0
- package/templates/assistkick-product-system/packages/frontend/src/routes/login.tsx +2 -0
- package/templates/assistkick-product-system/packages/frontend/src/routes/register.tsx +2 -0
- package/templates/assistkick-product-system/packages/frontend/src/routes/reset_password.tsx +2 -0
- package/templates/assistkick-product-system/packages/frontend/src/stores/useAttachmentStore.ts +66 -0
- package/templates/assistkick-product-system/packages/frontend/src/stores/useChatSessionStore.ts +107 -0
- package/templates/assistkick-product-system/packages/frontend/src/stores/useMessageQueueStore.ts +110 -0
- package/templates/assistkick-product-system/packages/frontend/src/stores/usePreviewStore.ts +78 -0
- package/templates/assistkick-product-system/packages/frontend/src/stores/useProjectStore.ts +7 -0
- package/templates/assistkick-product-system/packages/frontend/src/stores/useSidePanelStore.ts +6 -1
- package/templates/assistkick-product-system/packages/frontend/src/styles/index.css +30 -357
- package/templates/assistkick-product-system/packages/frontend/src/utils/parse_node_markdown.test.ts +115 -0
- package/templates/assistkick-product-system/packages/frontend/src/utils/parse_node_markdown.ts +91 -0
- package/templates/assistkick-product-system/packages/frontend/src/utils/preview_utils.test.ts +30 -0
- package/templates/assistkick-product-system/packages/frontend/src/utils/preview_utils.ts +3 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/0015_magenta_jazinda.sql +1 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/0016_giant_xorn.sql +1 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/0017_sloppy_mentor.sql +6 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/0018_vengeful_kabuki.sql +9 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/0019_careful_sentinels.sql +8 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/0020_clever_spot.sql +27 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/0021_graceful_hex.sql +1 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/0022_short_kingpin.sql +1 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/0023_ambiguous_sharon_carter.sql +1 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/0024_fat_unus.sql +1 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0015_snapshot.json +1552 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0016_snapshot.json +1560 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0017_snapshot.json +1598 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0018_snapshot.json +1657 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0019_snapshot.json +1709 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0020_snapshot.json +1733 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0021_snapshot.json +1740 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0022_snapshot.json +1755 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0023_snapshot.json +1762 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0024_snapshot.json +1769 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/meta/_journal.json +70 -0
- package/templates/assistkick-product-system/packages/shared/db/schema.ts +40 -1
- package/templates/assistkick-product-system/packages/shared/lib/claude-service.test.ts +236 -0
- package/templates/assistkick-product-system/packages/shared/lib/claude-service.ts +46 -5
- package/templates/assistkick-product-system/packages/shared/lib/git_workflow.ts +65 -39
- package/templates/assistkick-product-system/packages/shared/lib/programmable_node_executor.test.ts +173 -0
- package/templates/assistkick-product-system/packages/shared/lib/programmable_node_executor.ts +213 -0
- package/templates/assistkick-product-system/packages/shared/lib/validator.test.ts +70 -0
- package/templates/assistkick-product-system/packages/shared/lib/validator.ts +17 -1
- package/templates/assistkick-product-system/packages/shared/lib/workflow_engine.test.ts +803 -27
- package/templates/assistkick-product-system/packages/shared/lib/workflow_engine.ts +502 -68
- package/templates/assistkick-product-system/packages/shared/lib/workflow_orchestrator.ts +4 -4
- package/templates/assistkick-product-system/packages/shared/package.json +2 -1
- package/templates/assistkick-product-system/packages/shared/test_fixtures/hanging_stream.mjs +46 -0
- package/templates/assistkick-product-system/packages/shared/tools/add_node.test.ts +44 -0
- package/templates/assistkick-product-system/packages/shared/tools/add_node.ts +7 -0
- package/templates/assistkick-product-system/packages/shared/tools/remove_node.ts +2 -1
- package/templates/assistkick-product-system/packages/shared/tools/resolve_question.ts +2 -1
- package/templates/assistkick-product-system/packages/shared/tools/update_node.ts +2 -1
- package/templates/assistkick-product-system/tests/message_queue.test.ts +178 -0
- package/templates/assistkick-product-system/tests/message_queue_per_session.test.ts +143 -0
- package/templates/skills/assistkick-bootstrap/SKILL.md +26 -26
- package/templates/skills/assistkick-code-reviewer/SKILL.md +45 -46
- package/templates/skills/assistkick-db-explorer/SKILL.md +13 -13
- package/templates/skills/assistkick-debugger/SKILL.md +23 -23
- package/templates/skills/assistkick-developer/SKILL.md +59 -63
- package/templates/skills/assistkick-interview/SKILL.md +26 -26
- package/templates/skills/assistkick-video-composition-agent/SKILL.md +231 -0
- 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
|
|
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 `
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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
|
-
|
|
107
|
-
|
|
108
|
-
|
|
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
|
-
|
|
120
|
-
|
|
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
|
-
|
|
127
|
-
|
|
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
|
-
|
|
133
|
-
|
|
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
|
-
|
|
136
|
+
pnpm tsx packages/shared/tools/get_gaps.ts --project-id <project_id>
|
|
139
137
|
```
|
|
140
138
|
|
|
141
139
|
### get_status
|
|
142
140
|
```
|
|
143
|
-
|
|
141
|
+
pnpm tsx packages/shared/tools/get_status.ts --project-id <project_id>
|
|
144
142
|
```
|
|
145
143
|
|
|
146
144
|
## Rules
|
|
147
|
-
1.
|
|
148
|
-
2.
|
|
149
|
-
3.
|
|
150
|
-
4.
|
|
151
|
-
5.
|
|
152
|
-
6.
|
|
153
|
-
7. All
|
|
154
|
-
8.
|
|
155
|
-
9.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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 `
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
145
|
-
|
|
146
|
-
|
|
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
|
-
|
|
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
|
-
|
|
157
|
-
|
|
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
|
-
|
|
164
|
-
|
|
165
|
-
|
|
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
|
-
|
|
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
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
194
|
+
pnpm tsx packages/shared/tools/get_gaps.ts --project-id <project_id>
|
|
195
195
|
```
|
|
196
196
|
|
|
197
197
|
### get_status
|
|
198
198
|
```
|
|
199
|
-
|
|
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
|
|
11
|
-
the project's coding standards
|
|
12
|
-
|
|
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 `
|
|
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
|
|
22
|
-
3.
|
|
23
|
-
4. Call `get_node` on
|
|
24
|
-
5.
|
|
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
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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
|
-
|
|
101
|
+
pnpm tsx packages/shared/tools/start_session.ts --project-id <project_id>
|
|
106
102
|
```
|
|
107
103
|
|
|
108
104
|
### end_session
|
|
109
105
|
```
|
|
110
|
-
|
|
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
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
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
|
-
|
|
124
|
-
|
|
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
|
-
|
|
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
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
168
|
-
|
|
169
|
-
|
|
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
|
-
|
|
170
|
+
pnpm tsx packages/shared/tools/get_status.ts --project-id <project_id>
|
|
175
171
|
```
|
|
176
172
|
|
|
177
173
|
### rebuild_index
|
|
178
174
|
```
|
|
179
|
-
|
|
180
|
-
|
|
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.
|
|
185
|
-
2.
|
|
186
|
-
3.
|
|
187
|
-
4.
|
|
188
|
-
5.
|
|
189
|
-
6.
|
|
190
|
-
7.
|
|
191
|
-
8.
|
|
192
|
-
9.
|
|
193
|
-
10.
|
|
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
|