@assistkick/create 1.2.0 → 1.3.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/package.json +2 -1
- package/templates/assistkick-product-system/packages/backend/src/routes/git.ts +231 -0
- package/templates/assistkick-product-system/packages/backend/src/routes/kanban.ts +4 -4
- package/templates/assistkick-product-system/packages/backend/src/routes/pipeline.ts +49 -2
- package/templates/assistkick-product-system/packages/backend/src/routes/terminal.ts +82 -0
- package/templates/assistkick-product-system/packages/backend/src/server.ts +19 -6
- package/templates/assistkick-product-system/packages/backend/src/services/github_app_service.ts +146 -0
- package/templates/assistkick-product-system/packages/backend/src/services/init.ts +69 -2
- package/templates/assistkick-product-system/packages/backend/src/services/project_service.ts +71 -0
- package/templates/assistkick-product-system/packages/backend/src/services/project_workspace_service.test.ts +87 -0
- package/templates/assistkick-product-system/packages/backend/src/services/project_workspace_service.ts +194 -0
- package/templates/assistkick-product-system/packages/backend/src/services/pty_session_manager.test.ts +88 -17
- package/templates/assistkick-product-system/packages/backend/src/services/pty_session_manager.ts +114 -39
- package/templates/assistkick-product-system/packages/backend/src/services/terminal_ws_handler.ts +28 -14
- package/templates/assistkick-product-system/packages/frontend/src/App.tsx +1 -1
- package/templates/assistkick-product-system/packages/frontend/src/api/client.ts +151 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/GitRepoModal.tsx +352 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/KanbanView.tsx +208 -95
- package/templates/assistkick-product-system/packages/frontend/src/components/ProjectSelector.tsx +17 -1
- package/templates/assistkick-product-system/packages/frontend/src/components/TerminalView.tsx +238 -105
- package/templates/assistkick-product-system/packages/frontend/src/components/Toolbar.tsx +15 -13
- package/templates/assistkick-product-system/packages/frontend/src/constants/graph.ts +1 -0
- package/templates/assistkick-product-system/packages/frontend/src/hooks/useProjects.ts +4 -0
- package/templates/assistkick-product-system/packages/frontend/src/routes/dashboard.tsx +22 -4
- package/templates/assistkick-product-system/packages/frontend/src/styles/index.css +486 -38
- package/templates/assistkick-product-system/packages/shared/db/migrations/0001_vengeful_wallop.sql +1 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/0002_greedy_excalibur.sql +4 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0001_snapshot.json +826 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0002_snapshot.json +854 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/meta/_journal.json +14 -0
- package/templates/assistkick-product-system/packages/shared/db/schema.ts +5 -0
- package/templates/assistkick-product-system/packages/shared/lib/claude-service.ts +54 -1
- package/templates/assistkick-product-system/packages/shared/lib/git_workflow.ts +25 -0
- package/templates/assistkick-product-system/packages/shared/lib/pipeline-state-store.ts +4 -0
- package/templates/assistkick-product-system/packages/shared/lib/pipeline.ts +329 -89
- package/templates/assistkick-product-system/packages/shared/lib/pipeline_orchestrator.ts +186 -0
- package/templates/assistkick-product-system/packages/shared/tools/db_explorer.ts +275 -0
- package/templates/assistkick-product-system/packages/shared/tools/get_kanban.ts +2 -1
- package/templates/assistkick-product-system/packages/shared/tools/move_card.ts +3 -2
- package/templates/assistkick-product-system/packages/shared/tools/update_node.ts +2 -2
- package/templates/assistkick-product-system/tests/kanban.test.ts +1 -1
- package/templates/assistkick-product-system/tests/pipeline_stats_all_cards.test.ts +1 -1
- package/templates/assistkick-product-system/tests/web_terminal.test.ts +189 -150
- package/templates/skills/assistkick-bootstrap/SKILL.md +33 -25
- package/templates/skills/assistkick-code-reviewer/SKILL.md +23 -15
- package/templates/skills/assistkick-db-explorer/SKILL.md +86 -0
- package/templates/skills/assistkick-debugger/SKILL.md +30 -22
- package/templates/skills/assistkick-developer/SKILL.md +37 -29
- package/templates/skills/assistkick-interview/SKILL.md +34 -26
|
@@ -181,37 +181,45 @@ from the features they apply to.
|
|
|
181
181
|
3. Call `end_session` with a summary
|
|
182
182
|
4. Tell the user which phase to resume at next session
|
|
183
183
|
|
|
184
|
+
## Project ID
|
|
185
|
+
|
|
186
|
+
All tools require `--project-id <project_id>`. Resolve it at session start:
|
|
187
|
+
- If the user passed a project ID in the invocation arguments → use it directly
|
|
188
|
+
- Otherwise → ask the user: "Which project ID should I use?"
|
|
189
|
+
|
|
190
|
+
Use the same `<project_id>` on **every** tool call in this session.
|
|
191
|
+
|
|
184
192
|
## Tool Reference
|
|
185
193
|
|
|
186
194
|
### start_session
|
|
187
195
|
```
|
|
188
|
-
npx tsx packages/shared/tools/start_session.ts
|
|
196
|
+
npx tsx packages/shared/tools/start_session.ts --project-id <project_id>
|
|
189
197
|
```
|
|
190
198
|
|
|
191
199
|
### end_session
|
|
192
200
|
```
|
|
193
|
-
npx tsx packages/shared/tools/end_session.ts --summary "..." --nodes-touched "feat_001,dec_001" --questions-resolved 3
|
|
201
|
+
npx tsx packages/shared/tools/end_session.ts --project-id <project_id> --summary "..." --nodes-touched "feat_001,dec_001" --questions-resolved 3
|
|
194
202
|
```
|
|
195
203
|
|
|
196
204
|
### search_nodes
|
|
197
205
|
```
|
|
198
|
-
npx tsx packages/shared/tools/search_nodes.ts --query "keyword"
|
|
199
|
-
npx tsx packages/shared/tools/search_nodes.ts --type feature
|
|
200
|
-
npx tsx packages/shared/tools/search_nodes.ts --has-open-questions
|
|
201
|
-
npx tsx packages/shared/tools/search_nodes.ts --completeness-below 0.5
|
|
206
|
+
npx tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --query "keyword"
|
|
207
|
+
npx tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --type feature
|
|
208
|
+
npx tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --has-open-questions
|
|
209
|
+
npx tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --completeness-below 0.5
|
|
202
210
|
```
|
|
203
211
|
|
|
204
212
|
### get_node
|
|
205
213
|
```
|
|
206
|
-
npx tsx packages/shared/tools/get_node.ts <node_id>
|
|
207
|
-
npx tsx packages/shared/tools/get_node.ts --name "Node Name"
|
|
214
|
+
npx tsx packages/shared/tools/get_node.ts <node_id> --project-id <project_id>
|
|
215
|
+
npx tsx packages/shared/tools/get_node.ts --name "Node Name" --project-id <project_id>
|
|
208
216
|
```
|
|
209
217
|
Returns full .md content plus a Relations section listing all connected nodes
|
|
210
218
|
with direction, relation type, name, type, and status.
|
|
211
219
|
|
|
212
220
|
### add_node
|
|
213
221
|
```
|
|
214
|
-
npx tsx packages/shared/tools/add_node.ts --type <type> --name "Name" --description "..."
|
|
222
|
+
npx tsx packages/shared/tools/add_node.ts --project-id <project_id> --type <type> --name "Name" --description "..."
|
|
215
223
|
```
|
|
216
224
|
Valid types: feature, component, data_entity, decision, tech_choice,
|
|
217
225
|
non_functional_requirement, design_token, design_pattern, user_role,
|
|
@@ -219,23 +227,23 @@ flow, assumption, open_question
|
|
|
219
227
|
|
|
220
228
|
### update_node
|
|
221
229
|
```
|
|
222
|
-
npx tsx packages/shared/tools/update_node.ts <id> --add-acceptance-criteria "..."
|
|
223
|
-
npx tsx packages/shared/tools/update_node.ts <id> --add-open-question "..."
|
|
224
|
-
npx tsx packages/shared/tools/update_node.ts <id> --add-note "Session N: ..."
|
|
225
|
-
npx tsx packages/shared/tools/update_node.ts <id> --set-status <draft|partially_defined|defined>
|
|
226
|
-
npx tsx packages/shared/tools/update_node.ts <id> --set-priority <low|medium|high|blocking>
|
|
227
|
-
npx tsx packages/shared/tools/update_node.ts <id> --set-description "..."
|
|
228
|
-
npx tsx packages/shared/tools/update_node.ts <id> --set-section "SectionName=content"
|
|
230
|
+
npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --add-acceptance-criteria "..."
|
|
231
|
+
npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --add-open-question "..."
|
|
232
|
+
npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --add-note "Session N: ..."
|
|
233
|
+
npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --set-status <draft|partially_defined|defined>
|
|
234
|
+
npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --set-priority <low|medium|high|blocking>
|
|
235
|
+
npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --set-description "..."
|
|
236
|
+
npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --set-section "SectionName=content"
|
|
229
237
|
```
|
|
230
238
|
|
|
231
239
|
### resolve_question
|
|
232
240
|
```
|
|
233
|
-
npx tsx packages/shared/tools/resolve_question.ts <id> --question "..." --answer "..."
|
|
241
|
+
npx tsx packages/shared/tools/resolve_question.ts <id> --project-id <project_id> --question "..." --answer "..."
|
|
234
242
|
```
|
|
235
243
|
|
|
236
244
|
### add_edge
|
|
237
245
|
```
|
|
238
|
-
npx tsx packages/shared/tools/add_edge.ts <from_id> <relation> <to_id>
|
|
246
|
+
npx tsx packages/shared/tools/add_edge.ts <from_id> <relation> <to_id> --project-id <project_id>
|
|
239
247
|
```
|
|
240
248
|
Valid relations: contains, depends_on, governed_by, constrained_by,
|
|
241
249
|
implemented_with, reads_writes, exposes, consumes, performed_by,
|
|
@@ -243,25 +251,25 @@ escalates_to, relates_to
|
|
|
243
251
|
|
|
244
252
|
### remove_edge
|
|
245
253
|
```
|
|
246
|
-
npx tsx packages/shared/tools/remove_edge.ts <from_id> <relation> <to_id>
|
|
254
|
+
npx tsx packages/shared/tools/remove_edge.ts <from_id> <relation> <to_id> --project-id <project_id>
|
|
247
255
|
```
|
|
248
256
|
|
|
249
257
|
### get_gaps
|
|
250
258
|
```
|
|
251
|
-
npx tsx packages/shared/tools/get_gaps.ts
|
|
252
|
-
npx tsx packages/shared/tools/get_gaps.ts --blocking-only
|
|
253
|
-
npx tsx packages/shared/tools/get_gaps.ts --type feature
|
|
259
|
+
npx tsx packages/shared/tools/get_gaps.ts --project-id <project_id>
|
|
260
|
+
npx tsx packages/shared/tools/get_gaps.ts --project-id <project_id> --blocking-only
|
|
261
|
+
npx tsx packages/shared/tools/get_gaps.ts --project-id <project_id> --type feature
|
|
254
262
|
```
|
|
255
263
|
|
|
256
264
|
### get_status
|
|
257
265
|
```
|
|
258
|
-
npx tsx packages/shared/tools/get_status.ts
|
|
266
|
+
npx tsx packages/shared/tools/get_status.ts --project-id <project_id>
|
|
259
267
|
```
|
|
260
268
|
|
|
261
269
|
### rebuild_index
|
|
262
270
|
```
|
|
263
|
-
npx tsx packages/shared/tools/rebuild_index.ts
|
|
264
|
-
npx tsx packages/shared/tools/rebuild_index.ts --dry-run
|
|
271
|
+
npx tsx packages/shared/tools/rebuild_index.ts --project-id <project_id>
|
|
272
|
+
npx tsx packages/shared/tools/rebuild_index.ts --project-id <project_id> --dry-run
|
|
265
273
|
```
|
|
266
274
|
|
|
267
275
|
## Search Strategy
|
|
@@ -72,14 +72,14 @@ After reviewing, you MUST take exactly one action:
|
|
|
72
72
|
### Approve
|
|
73
73
|
If the feature delivers what was requested and passes all checks:
|
|
74
74
|
```
|
|
75
|
-
npx tsx packages/shared/tools/move_card.ts <feat_id> qa
|
|
75
|
+
npx tsx packages/shared/tools/move_card.ts <feat_id> qa --project-id <project_id>
|
|
76
76
|
```
|
|
77
77
|
Report to the user: what was reviewed, how it integrates with existing features, and that it passed.
|
|
78
78
|
|
|
79
79
|
### Reject
|
|
80
80
|
If any check fails — especially if the feature does not deliver what was requested:
|
|
81
81
|
```
|
|
82
|
-
npx tsx packages/shared/tools/move_card.ts <feat_id> todo --note "Clear description of what needs fixing"
|
|
82
|
+
npx tsx packages/shared/tools/move_card.ts <feat_id> todo --project-id <project_id> --note "Clear description of what needs fixing"
|
|
83
83
|
```
|
|
84
84
|
The note MUST be actionable — reference specific acceptance criteria that are not met,
|
|
85
85
|
specific integration issues with existing features, or specific connected node requirements
|
|
@@ -91,48 +91,56 @@ Your transitions:
|
|
|
91
91
|
- **In Review → QA**: Feature passes review (approve)
|
|
92
92
|
- **In Review → Todo**: Feature fails review (reject with notes)
|
|
93
93
|
|
|
94
|
+
## Project ID
|
|
95
|
+
|
|
96
|
+
All tools require `--project-id <project_id>`. Resolve it at session start:
|
|
97
|
+
- If the user passed a project ID in the invocation arguments → use it directly
|
|
98
|
+
- Otherwise → ask the user: "Which project ID should I use?"
|
|
99
|
+
|
|
100
|
+
Use the same `<project_id>` on **every** tool call in this session.
|
|
101
|
+
|
|
94
102
|
## Tool Reference
|
|
95
103
|
|
|
96
104
|
### get_kanban
|
|
97
105
|
```
|
|
98
|
-
npx tsx packages/shared/tools/get_kanban.ts # show all columns
|
|
99
|
-
npx tsx packages/shared/tools/get_kanban.ts --column in_review # features awaiting review
|
|
100
|
-
npx tsx packages/shared/tools/get_kanban.ts --column done # already shipped features
|
|
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
|
|
101
109
|
```
|
|
102
110
|
|
|
103
111
|
### move_card
|
|
104
112
|
```
|
|
105
|
-
npx tsx packages/shared/tools/move_card.ts <feature_id> qa # approve
|
|
106
|
-
npx tsx packages/shared/tools/move_card.ts <feature_id> todo --note "What to fix" # reject
|
|
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
|
|
107
115
|
```
|
|
108
116
|
|
|
109
117
|
### get_node
|
|
110
118
|
```
|
|
111
|
-
npx tsx packages/shared/tools/get_node.ts <node_id>
|
|
112
|
-
npx tsx packages/shared/tools/get_node.ts --name "Node Name"
|
|
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>
|
|
113
121
|
```
|
|
114
122
|
Returns full .md content plus a Relations section listing all connected nodes with direction, relation type, name, type, and status.
|
|
115
123
|
|
|
116
124
|
### search_nodes
|
|
117
125
|
```
|
|
118
|
-
npx tsx packages/shared/tools/search_nodes.ts --query "keyword"
|
|
119
|
-
npx tsx packages/shared/tools/search_nodes.ts --type feature
|
|
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
|
|
120
128
|
```
|
|
121
129
|
|
|
122
130
|
### update_node
|
|
123
131
|
```
|
|
124
|
-
npx tsx packages/shared/tools/update_node.ts <id> --add-note "Review: ..."
|
|
125
|
-
npx tsx packages/shared/tools/update_node.ts <id> --add-open-question "..."
|
|
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 "..."
|
|
126
134
|
```
|
|
127
135
|
|
|
128
136
|
### get_gaps
|
|
129
137
|
```
|
|
130
|
-
npx tsx packages/shared/tools/get_gaps.ts
|
|
138
|
+
npx tsx packages/shared/tools/get_gaps.ts --project-id <project_id>
|
|
131
139
|
```
|
|
132
140
|
|
|
133
141
|
### get_status
|
|
134
142
|
```
|
|
135
|
-
npx tsx packages/shared/tools/get_status.ts
|
|
143
|
+
npx tsx packages/shared/tools/get_status.ts --project-id <project_id>
|
|
136
144
|
```
|
|
137
145
|
|
|
138
146
|
## Rules
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: assistkick-db-explorer
|
|
3
|
+
description: Explore and inspect the database with read-only access. Use when the user wants to check database contents, inspect table schemas, count rows, sample data, or run read-only SQL queries to understand the current state of the data.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Database Explorer Skill
|
|
7
|
+
|
|
8
|
+
## Your Role
|
|
9
|
+
You are a database inspector. You use the `db_explorer` tool to help the user
|
|
10
|
+
understand the current state of the database — table structures, row counts,
|
|
11
|
+
data samples, and custom read-only queries. You have absolutely NO write
|
|
12
|
+
capabilities. You can only read and inspect.
|
|
13
|
+
|
|
14
|
+
All commands are run from the `assistkick-product-system/` directory.
|
|
15
|
+
|
|
16
|
+
## Tool Reference
|
|
17
|
+
|
|
18
|
+
### List all tables
|
|
19
|
+
```
|
|
20
|
+
npx tsx packages/shared/tools/db_explorer.ts tables
|
|
21
|
+
```
|
|
22
|
+
Shows all tables with row counts.
|
|
23
|
+
|
|
24
|
+
### Describe a table schema
|
|
25
|
+
```
|
|
26
|
+
npx tsx packages/shared/tools/db_explorer.ts describe <table_name>
|
|
27
|
+
```
|
|
28
|
+
Shows columns, types, nullability, defaults, primary keys, indexes, and foreign keys.
|
|
29
|
+
|
|
30
|
+
### Count rows
|
|
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'"
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Sample rows
|
|
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
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Run a read-only SQL query
|
|
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')"
|
|
51
|
+
```
|
|
52
|
+
Only SELECT, PRAGMA, and EXPLAIN queries are allowed. Write operations are blocked.
|
|
53
|
+
A safety LIMIT of 100 is auto-appended to SELECT queries without an explicit LIMIT.
|
|
54
|
+
|
|
55
|
+
## Available Tables
|
|
56
|
+
|
|
57
|
+
| Table | Description |
|
|
58
|
+
|-------|-------------|
|
|
59
|
+
| `nodes` | Knowledge graph nodes (features, components, decisions, etc.) |
|
|
60
|
+
| `edges` | Relationships between nodes |
|
|
61
|
+
| `kanban` | Feature kanban board state |
|
|
62
|
+
| `sessions` | Interview session history |
|
|
63
|
+
| `coherence_reviews` | Graph change proposals |
|
|
64
|
+
| `review_meta` | Kanban metadata and review state |
|
|
65
|
+
| `users` | User accounts |
|
|
66
|
+
| `refresh_tokens` | JWT refresh tokens |
|
|
67
|
+
| `password_reset_tokens` | Password reset flow |
|
|
68
|
+
| `invitations` | User invitations |
|
|
69
|
+
| `projects` | Project contexts |
|
|
70
|
+
| `pipeline_state` | Pipeline execution state |
|
|
71
|
+
|
|
72
|
+
## Security
|
|
73
|
+
|
|
74
|
+
- Only SELECT, PRAGMA, and EXPLAIN queries are allowed
|
|
75
|
+
- Write keywords (INSERT, UPDATE, DELETE, DROP, ALTER, CREATE, etc.) are blocked
|
|
76
|
+
- Multiple statements (semicolons) are blocked
|
|
77
|
+
- Sensitive columns (`password_hash`, `token_hash`) are automatically redacted as `[REDACTED]`
|
|
78
|
+
- SQL comments are stripped before validation
|
|
79
|
+
|
|
80
|
+
## Rules
|
|
81
|
+
1. Never attempt write operations — the tool will reject them
|
|
82
|
+
2. Use `--where` to filter results rather than dumping entire tables
|
|
83
|
+
3. Use `--limit` to keep output manageable
|
|
84
|
+
4. The `--project-id` flag is optional — use `--where "project_id = '...'"` to filter by project
|
|
85
|
+
5. All tool commands must be run from the `assistkick-product-system/` directory
|
|
86
|
+
6. Start with `tables` to understand what's available, then `describe` to understand structure, then `sample` or `query` to inspect data
|
|
@@ -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 --type feature --kind bugfix --name "Fix: <short description>" --description "Root cause description..."
|
|
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..."
|
|
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> --add-acceptance-criteria "..."
|
|
112
|
+
npx 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> --add-note "Investigation: ..."
|
|
117
|
+
npx 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,71 +124,79 @@ 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>
|
|
127
|
+
npx 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
|
|
131
131
|
|
|
132
|
+
## Project ID
|
|
133
|
+
|
|
134
|
+
All tools require `--project-id <project_id>`. Resolve it at session start:
|
|
135
|
+
- If the user passed a project ID in the invocation arguments → use it directly
|
|
136
|
+
- Otherwise → ask the user: "Which project ID should I use?"
|
|
137
|
+
|
|
138
|
+
Use the same `<project_id>` on **every** tool call in this session.
|
|
139
|
+
|
|
132
140
|
## Tool Reference
|
|
133
141
|
|
|
134
142
|
### get_kanban
|
|
135
143
|
```
|
|
136
|
-
npx tsx packages/shared/tools/get_kanban.ts # show all columns
|
|
137
|
-
npx tsx packages/shared/tools/get_kanban.ts --column qa # features in QA
|
|
138
|
-
npx tsx packages/shared/tools/get_kanban.ts --column done # shipped features
|
|
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
|
|
139
147
|
```
|
|
140
148
|
|
|
141
149
|
### move_card
|
|
142
150
|
```
|
|
143
|
-
npx tsx packages/shared/tools/move_card.ts <feature_id> todo --note "Bug found — see feat_NNN for details"
|
|
151
|
+
npx tsx packages/shared/tools/move_card.ts <feature_id> todo --project-id <project_id> --note "Bug found — see feat_NNN for details"
|
|
144
152
|
```
|
|
145
153
|
|
|
146
154
|
### get_node
|
|
147
155
|
```
|
|
148
|
-
npx tsx packages/shared/tools/get_node.ts <node_id>
|
|
149
|
-
npx tsx packages/shared/tools/get_node.ts --name "Node Name"
|
|
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>
|
|
150
158
|
```
|
|
151
159
|
Returns full .md content plus a Relations section listing all connected nodes with direction, relation type, name, type, and status.
|
|
152
160
|
|
|
153
161
|
### search_nodes
|
|
154
162
|
```
|
|
155
|
-
npx tsx packages/shared/tools/search_nodes.ts --query "keyword"
|
|
156
|
-
npx tsx packages/shared/tools/search_nodes.ts --type feature
|
|
157
|
-
npx tsx packages/shared/tools/search_nodes.ts --has-open-questions
|
|
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
|
|
158
166
|
```
|
|
159
167
|
|
|
160
168
|
### add_node
|
|
161
169
|
```
|
|
162
|
-
npx tsx packages/shared/tools/add_node.ts --type feature --kind bugfix --name "Fix: ..." --description "..."
|
|
170
|
+
npx tsx packages/shared/tools/add_node.ts --project-id <project_id> --type feature --kind bugfix --name "Fix: ..." --description "..."
|
|
163
171
|
```
|
|
164
172
|
Use `--kind bugfix` when creating bug features.
|
|
165
173
|
|
|
166
174
|
### update_node
|
|
167
175
|
```
|
|
168
|
-
npx tsx packages/shared/tools/update_node.ts <id> --add-acceptance-criteria "..."
|
|
169
|
-
npx tsx packages/shared/tools/update_node.ts <id> --add-open-question "..."
|
|
170
|
-
npx tsx packages/shared/tools/update_node.ts <id> --add-note "Investigation: ..."
|
|
171
|
-
npx tsx packages/shared/tools/update_node.ts <id> --set-description "..."
|
|
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 "..."
|
|
172
180
|
```
|
|
173
181
|
|
|
174
182
|
### add_edge
|
|
175
183
|
```
|
|
176
|
-
npx tsx packages/shared/tools/add_edge.ts <from_id> <relation> <to_id>
|
|
184
|
+
npx tsx packages/shared/tools/add_edge.ts <from_id> <relation> <to_id> --project-id <project_id>
|
|
177
185
|
```
|
|
178
186
|
|
|
179
187
|
### resolve_question
|
|
180
188
|
```
|
|
181
|
-
npx tsx packages/shared/tools/resolve_question.ts <id> --question "..." --answer "..."
|
|
189
|
+
npx tsx packages/shared/tools/resolve_question.ts <id> --project-id <project_id> --question "..." --answer "..."
|
|
182
190
|
```
|
|
183
191
|
|
|
184
192
|
### get_gaps
|
|
185
193
|
```
|
|
186
|
-
npx tsx packages/shared/tools/get_gaps.ts
|
|
194
|
+
npx tsx packages/shared/tools/get_gaps.ts --project-id <project_id>
|
|
187
195
|
```
|
|
188
196
|
|
|
189
197
|
### get_status
|
|
190
198
|
```
|
|
191
|
-
npx tsx packages/shared/tools/get_status.ts
|
|
199
|
+
npx tsx packages/shared/tools/get_status.ts --project-id <project_id>
|
|
192
200
|
```
|
|
193
201
|
|
|
194
202
|
## Rules
|
|
@@ -72,18 +72,26 @@ Features may be sent back to `todo` with rejection notes:
|
|
|
72
72
|
### Browser Support
|
|
73
73
|
- Latest Chrome and Firefox
|
|
74
74
|
|
|
75
|
+
## Project ID
|
|
76
|
+
|
|
77
|
+
All tools require `--project-id <project_id>`. Resolve it at session start:
|
|
78
|
+
- If the user passed a project ID in the invocation arguments → use it directly
|
|
79
|
+
- Otherwise → ask the user: "Which project ID should I use?"
|
|
80
|
+
|
|
81
|
+
Use the same `<project_id>` on **every** tool call in this session.
|
|
82
|
+
|
|
75
83
|
## Tool Reference
|
|
76
84
|
|
|
77
85
|
### get_kanban
|
|
78
86
|
```
|
|
79
|
-
npx tsx packages/shared/tools/get_kanban.ts # show all columns
|
|
80
|
-
npx tsx packages/shared/tools/get_kanban.ts --column todo # only todo items
|
|
81
|
-
npx tsx packages/shared/tools/get_kanban.ts --column qa # only qa items
|
|
87
|
+
npx tsx packages/shared/tools/get_kanban.ts --project-id <project_id> # show all columns
|
|
88
|
+
npx tsx packages/shared/tools/get_kanban.ts --project-id <project_id> --column todo # only todo items
|
|
89
|
+
npx tsx packages/shared/tools/get_kanban.ts --project-id <project_id> --column qa # only qa items
|
|
82
90
|
```
|
|
83
91
|
|
|
84
92
|
### move_card
|
|
85
93
|
```
|
|
86
|
-
npx tsx packages/shared/tools/move_card.ts <feature_id> <target_column>
|
|
94
|
+
npx tsx packages/shared/tools/move_card.ts <feature_id> <target_column> --project-id <project_id>
|
|
87
95
|
```
|
|
88
96
|
Your allowed transitions:
|
|
89
97
|
- `todo` → `in_progress`
|
|
@@ -91,32 +99,32 @@ Your allowed transitions:
|
|
|
91
99
|
|
|
92
100
|
### start_session
|
|
93
101
|
```
|
|
94
|
-
npx tsx packages/shared/tools/start_session.ts
|
|
102
|
+
npx tsx packages/shared/tools/start_session.ts --project-id <project_id>
|
|
95
103
|
```
|
|
96
104
|
|
|
97
105
|
### end_session
|
|
98
106
|
```
|
|
99
|
-
npx tsx packages/shared/tools/end_session.ts --summary "..." --nodes-touched "feat_001,dec_001" --questions-resolved 3
|
|
107
|
+
npx tsx packages/shared/tools/end_session.ts --project-id <project_id> --summary "..." --nodes-touched "feat_001,dec_001" --questions-resolved 3
|
|
100
108
|
```
|
|
101
109
|
|
|
102
110
|
### search_nodes
|
|
103
111
|
```
|
|
104
|
-
npx tsx packages/shared/tools/search_nodes.ts --query "keyword"
|
|
105
|
-
npx tsx packages/shared/tools/search_nodes.ts --type feature
|
|
106
|
-
npx tsx packages/shared/tools/search_nodes.ts --has-open-questions
|
|
107
|
-
npx tsx packages/shared/tools/search_nodes.ts --completeness-below 0.5
|
|
112
|
+
npx tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --query "keyword"
|
|
113
|
+
npx tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --type feature
|
|
114
|
+
npx tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --has-open-questions
|
|
115
|
+
npx tsx packages/shared/tools/search_nodes.ts --project-id <project_id> --completeness-below 0.5
|
|
108
116
|
```
|
|
109
117
|
|
|
110
118
|
### get_node
|
|
111
119
|
```
|
|
112
|
-
npx tsx packages/shared/tools/get_node.ts <node_id>
|
|
113
|
-
npx tsx packages/shared/tools/get_node.ts --name "Node Name"
|
|
120
|
+
npx tsx packages/shared/tools/get_node.ts <node_id> --project-id <project_id>
|
|
121
|
+
npx tsx packages/shared/tools/get_node.ts --name "Node Name" --project-id <project_id>
|
|
114
122
|
```
|
|
115
123
|
Returns full .md content plus a Relations section listing all connected nodes with direction, relation type, name, type, and status.
|
|
116
124
|
|
|
117
125
|
### add_node
|
|
118
126
|
```
|
|
119
|
-
npx tsx packages/shared/tools/add_node.ts --type <type> --name "Name" --description "..."
|
|
127
|
+
npx tsx packages/shared/tools/add_node.ts --project-id <project_id> --type <type> --name "Name" --description "..."
|
|
120
128
|
```
|
|
121
129
|
Valid types: feature, component, data_entity, decision, tech_choice,
|
|
122
130
|
non_functional_requirement, design_token, design_pattern, user_role,
|
|
@@ -124,23 +132,23 @@ flow, assumption, open_question
|
|
|
124
132
|
|
|
125
133
|
### update_node
|
|
126
134
|
```
|
|
127
|
-
npx tsx packages/shared/tools/update_node.ts <id> --add-acceptance-criteria "..."
|
|
128
|
-
npx tsx packages/shared/tools/update_node.ts <id> --add-open-question "..."
|
|
129
|
-
npx tsx packages/shared/tools/update_node.ts <id> --add-note "Session N: ..."
|
|
130
|
-
npx tsx packages/shared/tools/update_node.ts <id> --set-status <draft|partially_defined|defined>
|
|
131
|
-
npx tsx packages/shared/tools/update_node.ts <id> --set-priority <low|medium|high|blocking>
|
|
132
|
-
npx tsx packages/shared/tools/update_node.ts <id> --set-description "..."
|
|
133
|
-
npx tsx packages/shared/tools/update_node.ts <id> --set-section "SectionName=content"
|
|
135
|
+
npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --add-acceptance-criteria "..."
|
|
136
|
+
npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --add-open-question "..."
|
|
137
|
+
npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --add-note "Session N: ..."
|
|
138
|
+
npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --set-status <draft|partially_defined|defined>
|
|
139
|
+
npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --set-priority <low|medium|high|blocking>
|
|
140
|
+
npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --set-description "..."
|
|
141
|
+
npx tsx packages/shared/tools/update_node.ts <id> --project-id <project_id> --set-section "SectionName=content"
|
|
134
142
|
```
|
|
135
143
|
|
|
136
144
|
### resolve_question
|
|
137
145
|
```
|
|
138
|
-
npx tsx packages/shared/tools/resolve_question.ts <id> --question "..." --answer "..."
|
|
146
|
+
npx tsx packages/shared/tools/resolve_question.ts <id> --project-id <project_id> --question "..." --answer "..."
|
|
139
147
|
```
|
|
140
148
|
|
|
141
149
|
### add_edge
|
|
142
150
|
```
|
|
143
|
-
npx tsx packages/shared/tools/add_edge.ts <from_id> <relation> <to_id>
|
|
151
|
+
npx tsx packages/shared/tools/add_edge.ts <from_id> <relation> <to_id> --project-id <project_id>
|
|
144
152
|
```
|
|
145
153
|
Valid relations: contains, depends_on, governed_by, constrained_by,
|
|
146
154
|
implemented_with, reads_writes, exposes, consumes, performed_by,
|
|
@@ -148,25 +156,25 @@ escalates_to, relates_to
|
|
|
148
156
|
|
|
149
157
|
### remove_edge
|
|
150
158
|
```
|
|
151
|
-
npx tsx packages/shared/tools/remove_edge.ts <from_id> <relation> <to_id>
|
|
159
|
+
npx tsx packages/shared/tools/remove_edge.ts <from_id> <relation> <to_id> --project-id <project_id>
|
|
152
160
|
```
|
|
153
161
|
|
|
154
162
|
### get_gaps
|
|
155
163
|
```
|
|
156
|
-
npx tsx packages/shared/tools/get_gaps.ts
|
|
157
|
-
npx tsx packages/shared/tools/get_gaps.ts --blocking-only
|
|
158
|
-
npx tsx packages/shared/tools/get_gaps.ts --type feature
|
|
164
|
+
npx tsx packages/shared/tools/get_gaps.ts --project-id <project_id>
|
|
165
|
+
npx tsx packages/shared/tools/get_gaps.ts --project-id <project_id> --blocking-only
|
|
166
|
+
npx tsx packages/shared/tools/get_gaps.ts --project-id <project_id> --type feature
|
|
159
167
|
```
|
|
160
168
|
|
|
161
169
|
### get_status
|
|
162
170
|
```
|
|
163
|
-
npx tsx packages/shared/tools/get_status.ts
|
|
171
|
+
npx tsx packages/shared/tools/get_status.ts --project-id <project_id>
|
|
164
172
|
```
|
|
165
173
|
|
|
166
174
|
### rebuild_index
|
|
167
175
|
```
|
|
168
|
-
npx tsx packages/shared/tools/rebuild_index.ts
|
|
169
|
-
npx tsx packages/shared/tools/rebuild_index.ts --dry-run
|
|
176
|
+
npx tsx packages/shared/tools/rebuild_index.ts --project-id <project_id>
|
|
177
|
+
npx tsx packages/shared/tools/rebuild_index.ts --project-id <project_id> --dry-run
|
|
170
178
|
```
|
|
171
179
|
|
|
172
180
|
## Rules
|