@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.
- package/package.json +1 -1
- package/templates/assistkick-product-system/packages/backend/src/routes/mcp_config.ts +87 -0
- package/templates/assistkick-product-system/packages/backend/src/server.ts +8 -1
- package/templates/assistkick-product-system/packages/backend/src/services/chat_cli_bridge.ts +7 -0
- package/templates/assistkick-product-system/packages/backend/src/services/chat_ws_handler.ts +26 -1
- package/templates/assistkick-product-system/packages/backend/src/services/mcp_config_service.ts +157 -0
- package/templates/assistkick-product-system/packages/frontend/src/api/client.ts +37 -0
- package/templates/assistkick-product-system/packages/frontend/src/components/ChatView.tsx +14 -1
- package/templates/assistkick-product-system/packages/frontend/src/components/McpConfigModal.tsx +307 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/0001_superb_roxanne_simpson.sql +8 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/0002_noisy_maelstrom.sql +1 -0
- package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0001_snapshot.json +1019 -23
- package/templates/assistkick-product-system/packages/shared/db/migrations/meta/0002_snapshot.json +997 -22
- package/templates/assistkick-product-system/packages/shared/db/migrations/meta/_journal.json +14 -0
- package/templates/assistkick-product-system/packages/shared/db/schema.ts +11 -0
- package/templates/assistkick-product-system/packages/shared/lib/app_use_flow.ts +484 -0
- package/templates/assistkick-product-system/packages/shared/package.json +2 -1
- package/templates/assistkick-product-system/packages/shared/tools/agent_builder.ts +341 -0
- package/templates/assistkick-product-system/packages/shared/tools/app_use_record.ts +268 -0
- package/templates/assistkick-product-system/packages/shared/tools/app_use_run.ts +348 -0
- package/templates/assistkick-product-system/packages/shared/tools/app_use_validate.ts +67 -0
- package/templates/assistkick-product-system/packages/shared/tools/workflow_builder.ts +754 -0
- package/templates/skills/assistkick-agent-builder/SKILL.md +168 -0
- package/templates/skills/assistkick-app-use/SKILL.md +296 -0
- package/templates/skills/assistkick-app-use/references/agent-browser.md +1156 -0
- 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
|