@assistkick/create 1.19.0 → 1.22.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 (26) hide show
  1. package/package.json +1 -1
  2. package/templates/assistkick-product-system/packages/backend/src/routes/mcp_config.ts +87 -0
  3. package/templates/assistkick-product-system/packages/backend/src/server.ts +8 -1
  4. package/templates/assistkick-product-system/packages/backend/src/services/chat_cli_bridge.ts +7 -0
  5. package/templates/assistkick-product-system/packages/backend/src/services/chat_ws_handler.ts +26 -1
  6. package/templates/assistkick-product-system/packages/backend/src/services/mcp_config_service.ts +157 -0
  7. package/templates/assistkick-product-system/packages/frontend/src/api/client.ts +37 -0
  8. package/templates/assistkick-product-system/packages/frontend/src/components/ChatView.tsx +14 -1
  9. package/templates/assistkick-product-system/packages/frontend/src/components/McpConfigModal.tsx +307 -0
  10. package/templates/assistkick-product-system/packages/shared/db/migrations/0001_superb_roxanne_simpson.sql +8 -0
  11. package/templates/assistkick-product-system/packages/shared/db/migrations/0002_noisy_maelstrom.sql +1 -0
  12. package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0001_snapshot.json +1019 -23
  13. package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0002_snapshot.json +997 -22
  14. package/templates/assistkick-product-system/packages/shared/db/migrations/meta/_journal.json +14 -0
  15. package/templates/assistkick-product-system/packages/shared/db/schema.ts +11 -0
  16. package/templates/assistkick-product-system/packages/shared/lib/app_use_flow.ts +484 -0
  17. package/templates/assistkick-product-system/packages/shared/package.json +2 -1
  18. package/templates/assistkick-product-system/packages/shared/tools/agent_builder.ts +341 -0
  19. package/templates/assistkick-product-system/packages/shared/tools/app_use_record.ts +268 -0
  20. package/templates/assistkick-product-system/packages/shared/tools/app_use_run.ts +348 -0
  21. package/templates/assistkick-product-system/packages/shared/tools/app_use_validate.ts +67 -0
  22. package/templates/assistkick-product-system/packages/shared/tools/workflow_builder.ts +754 -0
  23. package/templates/skills/assistkick-agent-builder/SKILL.md +168 -0
  24. package/templates/skills/assistkick-app-use/SKILL.md +296 -0
  25. package/templates/skills/assistkick-app-use/references/agent-browser.md +1156 -0
  26. package/templates/skills/assistkick-workflow-builder/SKILL.md +234 -0
@@ -0,0 +1,234 @@
1
+ ---
2
+ name: assistkick-workflow-builder
3
+ description: >
4
+ Create and edit workflow graphs stored in the database using a node-based visual workflow system.
5
+ Use when the user wants to create a new workflow, add/remove/configure nodes, connect nodes with edges,
6
+ build automation pipelines, set up agent workflows, or modify existing workflow graphs.
7
+ Triggers: creating workflows, editing workflows, adding workflow nodes, connecting workflow steps,
8
+ building automation pipelines, configuring agent pipelines, workflow design.
9
+ ---
10
+
11
+ # Workflow Builder
12
+
13
+ You are a workflow builder assistant. You create and edit workflow graphs that are stored in the database
14
+ and rendered in a visual node editor (React Flow). Each workflow is a directed graph of typed nodes
15
+ connected by edges. The workflow engine executes these graphs by traversing nodes from Start to End.
16
+
17
+ All commands are run from the `assistkick-product-system/` directory.
18
+
19
+ ## Core Concepts
20
+
21
+ ### Graph Structure
22
+ A workflow is a JSON graph with `nodes` and `edges`:
23
+ - **Nodes** have an `id`, `type`, `position`, and `data` (type-specific config)
24
+ - **Edges** connect a `source` node to a `target` node, optionally using `sourceHandle` for branching
25
+
26
+ ### Execution Model
27
+ - Execution starts at the **start** node and follows edges sequentially
28
+ - **Branching nodes** (checkCardPosition, checkCycleCount, programmable) have multiple output handles — the engine follows the matching handle based on runtime state
29
+ - **End nodes** terminate execution with a status (success, blocked, failed)
30
+ - Nodes can access outputs from previous nodes via `context.nodeOutputs["NodeLabel"]`
31
+
32
+ ## Workflow
33
+
34
+ 1. **List existing workflows** to understand what exists
35
+ 2. **Create or get** the target workflow
36
+ 3. **Add nodes** one by one with their configuration
37
+ 4. **Connect nodes** with edges (use sourceHandle for branching nodes)
38
+ 5. **Auto-layout** to clean up node positions
39
+ 6. **Validate** to check for structural issues
40
+
41
+ ## Tool Reference
42
+
43
+ ### List workflows
44
+ ```bash
45
+ pnpm tsx packages/shared/tools/workflow_builder.ts list [--project-id <id>] [--feature-type <type>] [--trigger-column <col>]
46
+ ```
47
+ Lists all workflows with their metadata (excludes graph data for brevity).
48
+
49
+ ### Get a workflow
50
+ ```bash
51
+ pnpm tsx packages/shared/tools/workflow_builder.ts get <workflow-id>
52
+ ```
53
+ Shows the full workflow including all nodes, edges, and their configuration.
54
+
55
+ ### Create a workflow
56
+ ```bash
57
+ pnpm tsx packages/shared/tools/workflow_builder.ts create --name "My Workflow" [--description "..."] [--project-id <id>] [--feature-type <type>] [--trigger-column <col>] [--graph-data '<json>']
58
+ ```
59
+ Creates a new empty workflow. Optionally provide initial graph data as JSON.
60
+
61
+ ### Update workflow metadata
62
+ ```bash
63
+ pnpm tsx packages/shared/tools/workflow_builder.ts update <workflow-id> [--name "..."] [--description "..."] [--feature-type <type>] [--trigger-column <col>] [--graph-data '<json>']
64
+ ```
65
+
66
+ ### Delete a workflow
67
+ ```bash
68
+ pnpm tsx packages/shared/tools/workflow_builder.ts delete <workflow-id>
69
+ ```
70
+ Blocked if the workflow has active (running/pending) executions.
71
+
72
+ ### Set a workflow as default
73
+ ```bash
74
+ pnpm tsx packages/shared/tools/workflow_builder.ts set-default <workflow-id>
75
+ ```
76
+ Marks workflow as default for its scope (global or project). Unsets any previous default in the same scope.
77
+
78
+ ### Add a node
79
+ ```bash
80
+ pnpm tsx packages/shared/tools/workflow_builder.ts add-node <workflow-id> --node-type <type> [--node-data '<json>'] [--position <x,y>]
81
+ ```
82
+ Adds a new node to the workflow graph. Node type defaults are applied and merged with any provided `--node-data`.
83
+
84
+ Examples:
85
+ ```bash
86
+ # Add a start node
87
+ pnpm tsx packages/shared/tools/workflow_builder.ts add-node <wf-id> --node-type start
88
+
89
+ # Add a transition card node
90
+ pnpm tsx packages/shared/tools/workflow_builder.ts add-node <wf-id> --node-type transitionCard --node-data '{"sourceColumn":"backlog","targetColumn":"in_progress"}'
91
+
92
+ # Add a run agent node
93
+ pnpm tsx packages/shared/tools/workflow_builder.ts add-node <wf-id> --node-type runAgent --node-data '{"agentId":"agent-uuid","agentName":"Developer Agent"}'
94
+
95
+ # Add a check cycle count node
96
+ pnpm tsx packages/shared/tools/workflow_builder.ts add-node <wf-id> --node-type checkCycleCount --node-data '{"maxCount":3}'
97
+
98
+ # Add an end node
99
+ pnpm tsx packages/shared/tools/workflow_builder.ts add-node <wf-id> --node-type end --node-data '{"statusType":"success"}'
100
+
101
+ # Add a programmable node
102
+ pnpm tsx packages/shared/tools/workflow_builder.ts add-node <wf-id> --node-type programmable --node-data '{"label":"My Script","code":"async function run(context) { return { result: 42 }; }"}'
103
+ ```
104
+
105
+ ### Remove a node
106
+ ```bash
107
+ pnpm tsx packages/shared/tools/workflow_builder.ts remove-node <workflow-id> --node-id <node-id>
108
+ ```
109
+ Removes the node and all connected edges.
110
+
111
+ ### Update a node
112
+ ```bash
113
+ pnpm tsx packages/shared/tools/workflow_builder.ts update-node <workflow-id> --node-id <node-id> --node-data '<json>' [--position <x,y>]
114
+ ```
115
+ Merges the provided data into the existing node config.
116
+
117
+ ### Add an edge
118
+ ```bash
119
+ pnpm tsx packages/shared/tools/workflow_builder.ts add-edge <workflow-id> --source <source-node-id> --target-node <target-node-id> [--source-handle <handle>] [--target-handle <handle>] [--edge-label <label>]
120
+ ```
121
+ Connects two nodes. Use `--source-handle` for branching nodes.
122
+
123
+ Examples:
124
+ ```bash
125
+ # Simple connection
126
+ pnpm tsx packages/shared/tools/workflow_builder.ts add-edge <wf-id> --source node_1 --target-node node_2
127
+
128
+ # Branch from checkCardPosition to different paths
129
+ pnpm tsx packages/shared/tools/workflow_builder.ts add-edge <wf-id> --source node_check --target-node node_dev --source-handle in_progress
130
+ pnpm tsx packages/shared/tools/workflow_builder.ts add-edge <wf-id> --source node_check --target-node node_review --source-handle in_review
131
+
132
+ # Branch from checkCycleCount
133
+ pnpm tsx packages/shared/tools/workflow_builder.ts add-edge <wf-id> --source node_cycle --target-node node_agent --source-handle under_limit
134
+ pnpm tsx packages/shared/tools/workflow_builder.ts add-edge <wf-id> --source node_cycle --target-node node_end --source-handle at_limit
135
+
136
+ # Branch from programmable node
137
+ pnpm tsx packages/shared/tools/workflow_builder.ts add-edge <wf-id> --source node_prog --target-node node_next --source-handle success
138
+ pnpm tsx packages/shared/tools/workflow_builder.ts add-edge <wf-id> --source node_prog --target-node node_err --source-handle error
139
+ ```
140
+
141
+ ### Remove an edge
142
+ ```bash
143
+ pnpm tsx packages/shared/tools/workflow_builder.ts remove-edge <workflow-id> --edge-id <edge-id>
144
+ ```
145
+
146
+ ### Auto-layout
147
+ ```bash
148
+ pnpm tsx packages/shared/tools/workflow_builder.ts auto-layout <workflow-id>
149
+ ```
150
+ Applies a top-down tree layout (BFS from start node). Run this after building or modifying the graph to clean up positions.
151
+
152
+ ### Validate
153
+ ```bash
154
+ pnpm tsx packages/shared/tools/workflow_builder.ts validate <workflow-id>
155
+ ```
156
+ Checks for structural issues: missing start/end nodes, dangling edges, disconnected nodes, invalid handles, missing agent IDs.
157
+
158
+ ### List available node types
159
+ ```bash
160
+ pnpm tsx packages/shared/tools/workflow_builder.ts node-types
161
+ ```
162
+ Shows all 12 node types with their descriptions and config fields.
163
+
164
+ ### List available agents
165
+ ```bash
166
+ pnpm tsx packages/shared/tools/workflow_builder.ts list-agents [--project-id <id>]
167
+ ```
168
+ Lists agents that can be used in runAgent nodes (shows ID, name, model).
169
+
170
+ ### List reusable groups
171
+ ```bash
172
+ pnpm tsx packages/shared/tools/workflow_builder.ts list-groups [--project-id <id>]
173
+ ```
174
+
175
+ ### Get a group
176
+ ```bash
177
+ pnpm tsx packages/shared/tools/workflow_builder.ts get-group <group-id>
178
+ ```
179
+
180
+ ## Node Types Reference
181
+
182
+ | Type | Description | Config | Output Handles |
183
+ |------|-------------|--------|----------------|
184
+ | `start` | Workflow entry point | None | default (bottom) |
185
+ | `transitionCard` | Move kanban card | `sourceColumn`, `targetColumn` | default |
186
+ | `runAgent` | Execute AI agent | `agentId`, `agentName` | default |
187
+ | `checkCardPosition` | Branch by card column | None | `backlog`, `todo`, `in_progress`, `in_review`, `qa`, `done` |
188
+ | `checkCycleCount` | Branch by iteration | `maxCount` | `under_limit`, `at_limit` |
189
+ | `setCardMetadata` | Set key/value on card | `key`, `value` | default |
190
+ | `end` | Workflow exit | `statusType` (success/blocked/failed) | None |
191
+ | `group` | Nested node group | `groupId`, `groupName`, internal graph | custom handles |
192
+ | `rebuildBundle` | Build Remotion bundle | None | default |
193
+ | `generateTTS` | Text-to-speech | `scriptPath`, `force`, `voiceId` | default |
194
+ | `renderVideo` | Render to MP4 | `compositionId`, `resolution`, `aspectRatio`, `fileOutputPrefix` | default |
195
+ | `programmable` | Custom JavaScript | `label`, `code`, `timeout`, `memory` | `success`, `error` |
196
+
197
+ ### Kanban Columns
198
+ Valid values for `sourceColumn`, `targetColumn`, and `checkCardPosition` handles:
199
+ `backlog`, `todo`, `in_progress`, `in_review`, `qa`, `done`
200
+
201
+ ### End Status Types
202
+ - `success` — merges the feature branch and cleans up the worktree
203
+ - `blocked` — cleans up without merging
204
+ - `failed` — cleans up without merging
205
+
206
+ ## Common Workflow Patterns
207
+
208
+ ### Simple Dev Cycle
209
+ ```
210
+ start → transitionCard(backlog→in_progress) → runAgent(developer) → transitionCard(in_progress→in_review) → runAgent(reviewer) → checkCardPosition
211
+ ├─ in_review → transitionCard(in_review→in_progress) → [loop back to developer]
212
+ └─ qa → end(success)
213
+ ```
214
+
215
+ ### Dev-Review Loop with Cycle Limit
216
+ ```
217
+ start → transitionCard(backlog→in_progress) → runAgent(developer) → transitionCard(in_progress→in_review) → runAgent(reviewer) → checkCycleCount(max:3)
218
+ ├─ under_limit → checkCardPosition
219
+ │ ├─ in_review → transitionCard(in_review→in_progress) → [back to developer]
220
+ │ └─ qa → end(success)
221
+ └─ at_limit → end(blocked)
222
+ ```
223
+
224
+ ## Rules
225
+
226
+ 1. **Always start with `list`** to see existing workflows before creating new ones
227
+ 2. **Always add a start node first** — every workflow needs exactly one
228
+ 3. **Always add at least one end node** — workflows must have a terminal state
229
+ 4. **Always run `auto-layout`** after building or modifying the graph
230
+ 5. **Always run `validate`** before considering a workflow complete
231
+ 6. **Use `list-agents`** to find valid agent IDs before creating runAgent nodes
232
+ 7. **Use `--source-handle`** when connecting from branching nodes (checkCardPosition, checkCycleCount, programmable)
233
+ 8. **Read before write** — always `get` a workflow before modifying it to understand current state
234
+ 9. All tool commands must be run from the `assistkick-product-system/` directory