@fro.bot/systematic 1.21.3 → 1.22.1
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/agents/research/learnings-researcher.md +1 -1
- package/commands/ce/brainstorm.md +145 -0
- package/commands/ce/compound.md +240 -0
- package/commands/ce/plan.md +636 -0
- package/commands/ce/review.md +525 -0
- package/commands/ce/work.md +456 -0
- package/commands/create-agent-skill.md +1 -3
- package/commands/deepen-plan.md +8 -8
- package/commands/heal-skill.md +1 -3
- package/commands/lfg.md +0 -1
- package/commands/slfg.md +0 -1
- package/commands/test-xcode.md +1 -2
- package/commands/workflows/brainstorm.md +23 -7
- package/commands/workflows/compound.md +5 -235
- package/commands/workflows/plan.md +4 -619
- package/commands/workflows/review.md +5 -524
- package/commands/workflows/work.md +5 -465
- package/package.json +2 -2
- package/skills/brainstorming/SKILL.md +0 -1
- package/skills/compound-docs/SKILL.md +4 -4
- package/skills/create-agent-skills/workflows/add-workflow.md +6 -0
- package/skills/create-agent-skills/workflows/create-new-skill.md +8 -2
- package/skills/create-agent-skills/workflows/get-guidance.md +1 -1
- package/skills/document-review/SKILL.md +0 -1
- package/skills/proof/SKILL.md +185 -0
- package/skills/setup/SKILL.md +10 -4
|
@@ -1,470 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: workflows:work
|
|
3
|
-
description:
|
|
4
|
-
argument-hint:
|
|
3
|
+
description: "[DEPRECATED] Use /ce:work instead — renamed for clarity."
|
|
4
|
+
argument-hint: "[plan file, specification, or todo file path]"
|
|
5
|
+
disable-model-invocation: true
|
|
5
6
|
---
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
NOTE: /workflows:work is deprecated. Please use /ce:work instead. This alias will be removed in a future version.
|
|
8
9
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
## Introduction
|
|
12
|
-
|
|
13
|
-
This command takes a work document (plan, specification, or todo file) and executes it systematically. The focus is on **shipping complete features** by understanding requirements quickly, following existing patterns, and maintaining quality throughout.
|
|
14
|
-
|
|
15
|
-
## Input Document
|
|
16
|
-
|
|
17
|
-
<input_document> #$ARGUMENTS </input_document>
|
|
18
|
-
|
|
19
|
-
## Execution Workflow
|
|
20
|
-
|
|
21
|
-
### Phase 1: Quick Start
|
|
22
|
-
|
|
23
|
-
1. **Read Plan and Clarify**
|
|
24
|
-
|
|
25
|
-
- Read the work document completely
|
|
26
|
-
- Review any references or links provided in the plan
|
|
27
|
-
- If anything is unclear or ambiguous, ask clarifying questions now
|
|
28
|
-
- Get user approval to proceed
|
|
29
|
-
- **Do not skip this** - better to ask questions now than build the wrong thing
|
|
30
|
-
|
|
31
|
-
2. **Setup Environment**
|
|
32
|
-
|
|
33
|
-
First, check the current branch:
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
current_branch=$(git branch --show-current)
|
|
37
|
-
default_branch=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin/@@')
|
|
38
|
-
|
|
39
|
-
# Fallback if remote HEAD isn't set
|
|
40
|
-
if [ -z "$default_branch" ]; then
|
|
41
|
-
default_branch=$(git rev-parse --verify origin/main >/dev/null 2>&1 && echo "main" || echo "master")
|
|
42
|
-
fi
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
**If already on a feature branch** (not the default branch):
|
|
46
|
-
- Ask: "Continue working on `[current_branch]`, or create a new branch?"
|
|
47
|
-
- If continuing, proceed to step 3
|
|
48
|
-
- If creating new, follow Option A or B below
|
|
49
|
-
|
|
50
|
-
**If on the default branch**, choose how to proceed:
|
|
51
|
-
|
|
52
|
-
**Option A: Create a new branch**
|
|
53
|
-
```bash
|
|
54
|
-
git pull origin [default_branch]
|
|
55
|
-
git checkout -b feature-branch-name
|
|
56
|
-
```
|
|
57
|
-
Use a meaningful name based on the work (e.g., `feat/user-authentication`, `fix/email-validation`).
|
|
58
|
-
|
|
59
|
-
**Option B: Use a worktree (recommended for parallel development)**
|
|
60
|
-
```bash
|
|
61
|
-
skill: git-worktree
|
|
62
|
-
# The skill will create a new branch from the default branch in an isolated worktree
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
**Option C: Continue on the default branch**
|
|
66
|
-
- Requires explicit user confirmation
|
|
67
|
-
- Only proceed after user explicitly says "yes, commit to [default_branch]"
|
|
68
|
-
- Never commit directly to the default branch without explicit permission
|
|
69
|
-
|
|
70
|
-
**Recommendation**: Use worktree if:
|
|
71
|
-
- You want to work on multiple features simultaneously
|
|
72
|
-
- You want to keep the default branch clean while experimenting
|
|
73
|
-
- You plan to switch between branches frequently
|
|
74
|
-
|
|
75
|
-
3. **Create Todo List**
|
|
76
|
-
- Use todowrite to break plan into actionable tasks
|
|
77
|
-
- Include dependencies between tasks
|
|
78
|
-
- Prioritize based on what needs to be done first
|
|
79
|
-
- Include testing and quality check tasks
|
|
80
|
-
- Keep tasks specific and completable
|
|
81
|
-
|
|
82
|
-
### Phase 2: Execute
|
|
83
|
-
|
|
84
|
-
1. **Task Execution Loop**
|
|
85
|
-
|
|
86
|
-
For each task in priority order:
|
|
87
|
-
|
|
88
|
-
```
|
|
89
|
-
while (tasks remain):
|
|
90
|
-
- Mark task as in_progress in todowrite
|
|
91
|
-
- Read any referenced files from the plan
|
|
92
|
-
- Look for similar patterns in codebase
|
|
93
|
-
- Implement following existing conventions
|
|
94
|
-
- Write tests for new functionality
|
|
95
|
-
- Run System-Wide Test Check (see below)
|
|
96
|
-
- Run tests after changes
|
|
97
|
-
- Mark task as completed in todowrite
|
|
98
|
-
- Mark off the corresponding checkbox in the plan file ([ ] → [x])
|
|
99
|
-
- Evaluate for incremental commit (see below)
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
**System-Wide Test Check** — Before marking a task done, pause and ask:
|
|
103
|
-
|
|
104
|
-
| Question | What to do |
|
|
105
|
-
|----------|------------|
|
|
106
|
-
| **What fires when this runs?** Callbacks, middleware, observers, event handlers — trace two levels out from your change. | Read the actual code (not docs) for callbacks on models you touch, middleware in the request chain, `after_*` hooks. |
|
|
107
|
-
| **Do my tests exercise the real chain?** If every dependency is mocked, the test proves your logic works *in isolation* — it says nothing about the interaction. | Write at least one integration test that uses real objects through the full callback/middleware chain. No mocks for the layers that interact. |
|
|
108
|
-
| **Can failure leave orphaned state?** If your code persists state (DB row, cache, file) before calling an external service, what happens when the service fails? Does retry create duplicates? | Trace the failure path with real objects. If state is created before the risky call, test that failure cleans up or that retry is idempotent. |
|
|
109
|
-
| **What other interfaces expose this?** Mixins, DSLs, alternative entry points (Agent vs Chat vs ChatMethods). | Grep for the method/behavior in related classes. If parity is needed, add it now — not as a follow-up. |
|
|
110
|
-
| **Do error strategies align across layers?** Retry middleware + application fallback + framework error handling — do they conflict or create double execution? | List the specific error classes at each layer. Verify your rescue list matches what the lower layer actually raises. |
|
|
111
|
-
|
|
112
|
-
**When to skip:** Leaf-node changes with no callbacks, no state persistence, no parallel interfaces. If the change is purely additive (new helper method, new view partial), the check takes 10 seconds and the answer is "nothing fires, skip."
|
|
113
|
-
|
|
114
|
-
**When this matters most:** Any change that touches models with callbacks, error handling with fallback/retry, or functionality exposed through multiple interfaces.
|
|
115
|
-
|
|
116
|
-
**IMPORTANT**: Always update the original plan document by checking off completed items. Use the edit tool to change `- [ ]` to `- [x]` for each task you finish. This keeps the plan as a living document showing progress and ensures no checkboxes are left unchecked.
|
|
117
|
-
|
|
118
|
-
2. **Incremental Commits**
|
|
119
|
-
|
|
120
|
-
After completing each task, evaluate whether to create an incremental commit:
|
|
121
|
-
|
|
122
|
-
| Commit when... | Don't commit when... |
|
|
123
|
-
|----------------|---------------------|
|
|
124
|
-
| Logical unit complete (model, service, component) | Small part of a larger unit |
|
|
125
|
-
| Tests pass + meaningful progress | Tests failing |
|
|
126
|
-
| About to switch contexts (backend → frontend) | Purely scaffolding with no behavior |
|
|
127
|
-
| About to attempt risky/uncertain changes | Would need a "WIP" commit message |
|
|
128
|
-
|
|
129
|
-
**Heuristic:** "Can I write a commit message that describes a complete, valuable change? If yes, commit. If the message would be 'WIP' or 'partial X', wait."
|
|
130
|
-
|
|
131
|
-
**Commit workflow:**
|
|
132
|
-
```bash
|
|
133
|
-
# 1. Verify tests pass (use project's test command)
|
|
134
|
-
# Examples: bin/rails test, npm test, pytest, go test, etc.
|
|
135
|
-
|
|
136
|
-
# 2. Stage only files related to this logical unit (not `git add .`)
|
|
137
|
-
git add <files related to this logical unit>
|
|
138
|
-
|
|
139
|
-
# 3. Commit with conventional message
|
|
140
|
-
git commit -m "feat(scope): description of this unit"
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
**Handling merge conflicts:** If conflicts arise during rebasing or merging, resolve them immediately. Incremental commits make conflict resolution easier since each commit is small and focused.
|
|
144
|
-
|
|
145
|
-
**Note:** Incremental commits use clean conventional messages without attribution footers. The final Phase 4 commit/PR includes the full attribution.
|
|
146
|
-
|
|
147
|
-
3. **Follow Existing Patterns**
|
|
148
|
-
|
|
149
|
-
- The plan should reference similar code - read those files first
|
|
150
|
-
- Match naming conventions exactly
|
|
151
|
-
- Reuse existing components where possible
|
|
152
|
-
- Follow project coding standards (see AGENTS.md)
|
|
153
|
-
- When in doubt, grep for similar implementations
|
|
154
|
-
|
|
155
|
-
4. **Test Continuously**
|
|
156
|
-
|
|
157
|
-
- Run relevant tests after each significant change
|
|
158
|
-
- Don't wait until the end to test
|
|
159
|
-
- Fix failures immediately
|
|
160
|
-
- Add new tests for new functionality
|
|
161
|
-
- **Unit tests with mocks prove logic in isolation. Integration tests with real objects prove the layers work together.** If your change touches callbacks, middleware, or error handling — you need both.
|
|
162
|
-
|
|
163
|
-
5. **Figma Design Sync** (if applicable)
|
|
164
|
-
|
|
165
|
-
For UI work with Figma designs:
|
|
166
|
-
|
|
167
|
-
- Implement components following design specs
|
|
168
|
-
- Use figma-design-sync agent iteratively to compare
|
|
169
|
-
- Fix visual differences identified
|
|
170
|
-
- Repeat until implementation matches design
|
|
171
|
-
|
|
172
|
-
6. **Track Progress**
|
|
173
|
-
- Keep todowrite updated as you complete tasks
|
|
174
|
-
- Note any blockers or unexpected discoveries
|
|
175
|
-
- Create new tasks if scope expands
|
|
176
|
-
- Keep user informed of major milestones
|
|
177
|
-
|
|
178
|
-
### Phase 3: Quality Check
|
|
179
|
-
|
|
180
|
-
1. **Run Core Quality Checks**
|
|
181
|
-
|
|
182
|
-
Always run before submitting:
|
|
183
|
-
|
|
184
|
-
```bash
|
|
185
|
-
# Run full test suite (use project's test command)
|
|
186
|
-
# Examples: bin/rails test, npm test, pytest, go test, etc.
|
|
187
|
-
|
|
188
|
-
# Run linting (per project conventions)
|
|
189
|
-
# Use linting-agent before pushing to origin
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
2. **Consider Reviewer Agents** (Optional)
|
|
193
|
-
|
|
194
|
-
Use for complex, risky, or large changes. Read agents from `systematic.local.md` frontmatter (`review_agents`). If no settings file, invoke the `setup` skill to create one.
|
|
195
|
-
|
|
196
|
-
Run configured agents in parallel with task tool. Present findings and address critical issues.
|
|
197
|
-
|
|
198
|
-
3. **Final Validation**
|
|
199
|
-
- All todowrite tasks marked completed
|
|
200
|
-
- All tests pass
|
|
201
|
-
- Linting passes
|
|
202
|
-
- Code follows existing patterns
|
|
203
|
-
- Figma designs match (if applicable)
|
|
204
|
-
- No console errors or warnings
|
|
205
|
-
|
|
206
|
-
4. **Prepare Operational Validation Plan** (REQUIRED)
|
|
207
|
-
- Add a `## Post-Deploy Monitoring & Validation` section to the PR description for every change.
|
|
208
|
-
- Include concrete:
|
|
209
|
-
- Log queries/search terms
|
|
210
|
-
- Metrics or dashboards to watch
|
|
211
|
-
- Expected healthy signals
|
|
212
|
-
- Failure signals and rollback/mitigation trigger
|
|
213
|
-
- Validation window and owner
|
|
214
|
-
- If there is truly no production/runtime impact, still include the section with: `No additional operational monitoring required` and a one-line reason.
|
|
215
|
-
|
|
216
|
-
### Phase 4: Ship It
|
|
217
|
-
|
|
218
|
-
1. **Create Commit**
|
|
219
|
-
|
|
220
|
-
```bash
|
|
221
|
-
git add .
|
|
222
|
-
git status # Review what's being committed
|
|
223
|
-
git diff --staged # Check the changes
|
|
224
|
-
|
|
225
|
-
# Commit with conventional format
|
|
226
|
-
git commit -m "$(cat <<'EOF'
|
|
227
|
-
feat(scope): description of what and why
|
|
228
|
-
|
|
229
|
-
Brief explanation if needed.
|
|
230
|
-
|
|
231
|
-
🤖 Generated with [OpenCode](https://opencode.ai)
|
|
232
|
-
|
|
233
|
-
Co-Authored-By: Claude <noreply@opencode.ai>
|
|
234
|
-
EOF
|
|
235
|
-
)"
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
2. **Capture and Upload Screenshots for UI Changes** (REQUIRED for any UI work)
|
|
239
|
-
|
|
240
|
-
For **any** design changes, new views, or UI modifications, you MUST capture and upload screenshots:
|
|
241
|
-
|
|
242
|
-
**Step 1: Start dev server** (if not running)
|
|
243
|
-
```bash
|
|
244
|
-
bin/dev # Run in background
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
**Step 2: Capture screenshots with agent-browser CLI**
|
|
248
|
-
```bash
|
|
249
|
-
agent-browser open http://localhost:3000/[route]
|
|
250
|
-
agent-browser snapshot -i
|
|
251
|
-
agent-browser screenshot output.png
|
|
252
|
-
```
|
|
253
|
-
See the `agent-browser` skill for detailed usage.
|
|
254
|
-
|
|
255
|
-
**Step 3: Upload using imgup skill**
|
|
256
|
-
```bash
|
|
257
|
-
skill: imgup
|
|
258
|
-
# Then upload each screenshot:
|
|
259
|
-
imgup -h pixhost screenshot.png # pixhost works without API key
|
|
260
|
-
# Alternative hosts: catbox, imagebin, beeimg
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
**What to capture:**
|
|
264
|
-
- **New screens**: Screenshot of the new UI
|
|
265
|
-
- **Modified screens**: Before AND after screenshots
|
|
266
|
-
- **Design implementation**: Screenshot showing Figma design match
|
|
267
|
-
|
|
268
|
-
**IMPORTANT**: Always include uploaded image URLs in PR description. This provides visual context for reviewers and documents the change.
|
|
269
|
-
|
|
270
|
-
3. **Create Pull Request**
|
|
271
|
-
|
|
272
|
-
```bash
|
|
273
|
-
git push -u origin feature-branch-name
|
|
274
|
-
|
|
275
|
-
gh pr create --title "Feature: [Description]" --body "$(cat <<'EOF'
|
|
276
|
-
## Summary
|
|
277
|
-
- What was built
|
|
278
|
-
- Why it was needed
|
|
279
|
-
- Key decisions made
|
|
280
|
-
|
|
281
|
-
## Testing
|
|
282
|
-
- Tests added/modified
|
|
283
|
-
- Manual testing performed
|
|
284
|
-
|
|
285
|
-
## Post-Deploy Monitoring & Validation
|
|
286
|
-
- **What to monitor/search**
|
|
287
|
-
- Logs:
|
|
288
|
-
- Metrics/Dashboards:
|
|
289
|
-
- **Validation checks (queries/commands)**
|
|
290
|
-
- `command or query here`
|
|
291
|
-
- **Expected healthy behavior**
|
|
292
|
-
- Expected signal(s)
|
|
293
|
-
- **Failure signal(s) / rollback trigger**
|
|
294
|
-
- Trigger + immediate action
|
|
295
|
-
- **Validation window & owner**
|
|
296
|
-
- Window:
|
|
297
|
-
- Owner:
|
|
298
|
-
- **If no operational impact**
|
|
299
|
-
- `No additional operational monitoring required: <reason>`
|
|
300
|
-
|
|
301
|
-
## Before / After Screenshots
|
|
302
|
-
| Before | After |
|
|
303
|
-
|--------|-------|
|
|
304
|
-
|  |  |
|
|
305
|
-
|
|
306
|
-
## Figma Design
|
|
307
|
-
[Link if applicable]
|
|
308
|
-
|
|
309
|
-
---
|
|
310
|
-
|
|
311
|
-
[](https://github.com/marcusrbrown/systematic) 🤖 Generated with [OpenCode](https://opencode.ai)
|
|
312
|
-
EOF
|
|
313
|
-
)"
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
4. **Update Plan Status**
|
|
317
|
-
|
|
318
|
-
If the input document has YAML frontmatter with a `status` field, update it to `completed`:
|
|
319
|
-
```
|
|
320
|
-
status: active → status: completed
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
5. **Notify User**
|
|
324
|
-
- Summarize what was completed
|
|
325
|
-
- Link to PR
|
|
326
|
-
- Note any follow-up work needed
|
|
327
|
-
- Suggest next steps if applicable
|
|
328
|
-
|
|
329
|
-
---
|
|
330
|
-
|
|
331
|
-
## Swarm Mode (Optional)
|
|
332
|
-
|
|
333
|
-
For complex plans with multiple independent workstreams, enable swarm mode for parallel execution with coordinated agents.
|
|
334
|
-
|
|
335
|
-
### When to Use Swarm Mode
|
|
336
|
-
|
|
337
|
-
| Use Swarm Mode when... | Use Standard Mode when... |
|
|
338
|
-
|------------------------|---------------------------|
|
|
339
|
-
| Plan has 5+ independent tasks | Plan is linear/sequential |
|
|
340
|
-
| Multiple specialists needed (review + test + implement) | Single-focus work |
|
|
341
|
-
| Want maximum parallelism | Simpler mental model preferred |
|
|
342
|
-
| Large feature with clear phases | Small feature or bug fix |
|
|
343
|
-
|
|
344
|
-
### Enabling Swarm Mode
|
|
345
|
-
|
|
346
|
-
To trigger swarm execution, say:
|
|
347
|
-
|
|
348
|
-
> "Make a Task list and launch an army of agent swarm subagents to build the plan"
|
|
349
|
-
|
|
350
|
-
Or explicitly request: "Use swarm mode for this work"
|
|
351
|
-
|
|
352
|
-
### Swarm Workflow
|
|
353
|
-
|
|
354
|
-
When swarm mode is enabled, the workflow changes:
|
|
355
|
-
|
|
356
|
-
1. **Create Team**
|
|
357
|
-
```
|
|
358
|
-
Teammate({ operation: "spawnTeam", team_name: "work-{timestamp}" })
|
|
359
|
-
```
|
|
360
|
-
|
|
361
|
-
2. **Create Task List with Dependencies**
|
|
362
|
-
- Parse plan into TaskCreate items
|
|
363
|
-
- Set up blockedBy relationships for sequential dependencies
|
|
364
|
-
- Independent tasks have no blockers (can run in parallel)
|
|
365
|
-
|
|
366
|
-
3. **Spawn Specialized Teammates**
|
|
367
|
-
```
|
|
368
|
-
Task({
|
|
369
|
-
team_name: "work-{timestamp}",
|
|
370
|
-
name: "implementer",
|
|
371
|
-
subagent_type: "general-purpose",
|
|
372
|
-
prompt: "Claim implementation tasks, execute, mark complete",
|
|
373
|
-
run_in_background: true
|
|
374
|
-
})
|
|
375
|
-
|
|
376
|
-
Task({
|
|
377
|
-
team_name: "work-{timestamp}",
|
|
378
|
-
name: "tester",
|
|
379
|
-
subagent_type: "general-purpose",
|
|
380
|
-
prompt: "Claim testing tasks, run tests, mark complete",
|
|
381
|
-
run_in_background: true
|
|
382
|
-
})
|
|
383
|
-
```
|
|
384
|
-
|
|
385
|
-
4. **Coordinate and Monitor**
|
|
386
|
-
- Team lead monitors task completion
|
|
387
|
-
- Spawn additional workers as phases unblock
|
|
388
|
-
- Handle plan approval if required
|
|
389
|
-
|
|
390
|
-
5. **Cleanup**
|
|
391
|
-
```
|
|
392
|
-
Teammate({ operation: "requestShutdown", target_agent_id: "implementer" })
|
|
393
|
-
Teammate({ operation: "requestShutdown", target_agent_id: "tester" })
|
|
394
|
-
Teammate({ operation: "cleanup" })
|
|
395
|
-
```
|
|
396
|
-
|
|
397
|
-
See the `orchestrating-swarms` skill for detailed swarm patterns and best practices.
|
|
398
|
-
|
|
399
|
-
---
|
|
400
|
-
|
|
401
|
-
## Key Principles
|
|
402
|
-
|
|
403
|
-
### Start Fast, Execute Faster
|
|
404
|
-
|
|
405
|
-
- Get clarification once at the start, then execute
|
|
406
|
-
- Don't wait for perfect understanding - ask questions and move
|
|
407
|
-
- The goal is to **finish the feature**, not create perfect process
|
|
408
|
-
|
|
409
|
-
### The Plan is Your Guide
|
|
410
|
-
|
|
411
|
-
- Work documents should reference similar code and patterns
|
|
412
|
-
- Load those references and follow them
|
|
413
|
-
- Don't reinvent - match what exists
|
|
414
|
-
|
|
415
|
-
### Test As You Go
|
|
416
|
-
|
|
417
|
-
- Run tests after each change, not at the end
|
|
418
|
-
- Fix failures immediately
|
|
419
|
-
- Continuous testing prevents big surprises
|
|
420
|
-
|
|
421
|
-
### Quality is Built In
|
|
422
|
-
|
|
423
|
-
- Follow existing patterns
|
|
424
|
-
- Write tests for new code
|
|
425
|
-
- Run linting before pushing
|
|
426
|
-
- Use reviewer agents for complex/risky changes only
|
|
427
|
-
|
|
428
|
-
### Ship Complete Features
|
|
429
|
-
|
|
430
|
-
- Mark all tasks completed before moving on
|
|
431
|
-
- Don't leave features 80% done
|
|
432
|
-
- A finished feature that ships beats a perfect feature that doesn't
|
|
433
|
-
|
|
434
|
-
## Quality Checklist
|
|
435
|
-
|
|
436
|
-
Before creating PR, verify:
|
|
437
|
-
|
|
438
|
-
- [ ] All clarifying questions asked and answered
|
|
439
|
-
- [ ] All todowrite tasks marked completed
|
|
440
|
-
- [ ] Tests pass (run project's test command)
|
|
441
|
-
- [ ] Linting passes (use linting-agent)
|
|
442
|
-
- [ ] Code follows existing patterns
|
|
443
|
-
- [ ] Figma designs match implementation (if applicable)
|
|
444
|
-
- [ ] Before/after screenshots captured and uploaded (for UI changes)
|
|
445
|
-
- [ ] Commit messages follow conventional format
|
|
446
|
-
- [ ] PR description includes Post-Deploy Monitoring & Validation section (or explicit no-impact rationale)
|
|
447
|
-
- [ ] PR description includes summary, testing notes, and screenshots
|
|
448
|
-
- [ ] PR description includes Systematic badge
|
|
449
|
-
|
|
450
|
-
## When to Use Reviewer Agents
|
|
451
|
-
|
|
452
|
-
**Don't use by default.** Use reviewer agents only when:
|
|
453
|
-
|
|
454
|
-
- Large refactor affecting many files (10+)
|
|
455
|
-
- Security-sensitive changes (authentication, permissions, data access)
|
|
456
|
-
- Performance-critical code paths
|
|
457
|
-
- Complex algorithms or business logic
|
|
458
|
-
- User explicitly requests thorough review
|
|
459
|
-
|
|
460
|
-
For most features: tests + linting + following patterns is sufficient.
|
|
461
|
-
|
|
462
|
-
## Common Pitfalls to Avoid
|
|
463
|
-
|
|
464
|
-
- **Analysis paralysis** - Don't overthink, read the plan and execute
|
|
465
|
-
- **Skipping clarifying questions** - Ask now, not after building wrong thing
|
|
466
|
-
- **Ignoring plan references** - The plan has links for a reason
|
|
467
|
-
- **Testing at the end** - Test continuously or suffer later
|
|
468
|
-
- **Forgetting todowrite** - Track progress or lose track of what's done
|
|
469
|
-
- **80% done syndrome** - Finish the feature, don't move on early
|
|
470
|
-
- **Over-reviewing simple changes** - Save reviewer agents for complex work
|
|
10
|
+
/ce:work $ARGUMENTS
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fro.bot/systematic",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.22.1",
|
|
4
4
|
"description": "Structured engineering workflows for OpenCode",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"homepage": "https://fro.bot/systematic",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"@types/js-yaml": "^4.0.9",
|
|
69
69
|
"@types/node": "^24.0.0",
|
|
70
70
|
"conventional-changelog-conventionalcommits": "^9.0.0",
|
|
71
|
-
"markdownlint-cli": "^0.
|
|
71
|
+
"markdownlint-cli": "^0.48.0",
|
|
72
72
|
"rimraf": "^6.1.2",
|
|
73
73
|
"semantic-release": "^25.0.0",
|
|
74
74
|
"semantic-release-export-data": "^1.2.0",
|
|
@@ -3,10 +3,10 @@ name: compound-docs
|
|
|
3
3
|
description: Capture solved problems as categorized documentation with YAML frontmatter for fast lookup
|
|
4
4
|
disable-model-invocation: true
|
|
5
5
|
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Bash
|
|
9
|
-
- Grep
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
- Grep
|
|
10
10
|
preconditions:
|
|
11
11
|
- Problem has been solved (not in-progress)
|
|
12
12
|
- Solution has been verified working
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Workflow: Add a Workflow to Existing Skill
|
|
2
2
|
|
|
3
|
+
## Interaction Method
|
|
4
|
+
|
|
5
|
+
If `question tool` is available, use it for all prompts below.
|
|
6
|
+
|
|
7
|
+
If not, present each question as a numbered list and wait for a reply before proceeding to the next step. Never skip or auto-configure.
|
|
8
|
+
|
|
3
9
|
<required_reading>
|
|
4
10
|
**Read these reference files NOW:**
|
|
5
11
|
1. references/recommended-structure.md
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Workflow: Create a New Skill
|
|
2
2
|
|
|
3
|
+
## Interaction Method
|
|
4
|
+
|
|
5
|
+
If `question tool` is available, use it for all prompts below.
|
|
6
|
+
|
|
7
|
+
If not, present each question as a numbered list and wait for a reply before proceeding to the next step. For multiSelect questions, accept comma-separated numbers (e.g. `1, 3`). Never skip or auto-configure.
|
|
8
|
+
|
|
3
9
|
<required_reading>
|
|
4
10
|
**Read these reference files NOW:**
|
|
5
11
|
1. references/recommended-structure.md
|
|
@@ -18,7 +24,7 @@
|
|
|
18
24
|
**If user just invoked skill without context:**
|
|
19
25
|
→ Ask what they want to build
|
|
20
26
|
|
|
21
|
-
### Using question
|
|
27
|
+
### Using question tool
|
|
22
28
|
|
|
23
29
|
Ask 2-4 domain-specific questions based on actual gaps. Each question should:
|
|
24
30
|
- Have specific options with descriptions
|
|
@@ -42,7 +48,7 @@ Options:
|
|
|
42
48
|
|
|
43
49
|
## Step 2: Research Trigger (If External API)
|
|
44
50
|
|
|
45
|
-
**When external service detected**, ask using question:
|
|
51
|
+
**When external service detected**, ask using question tool:
|
|
46
52
|
"This involves [service name] API. Would you like me to research current endpoints and patterns before building?"
|
|
47
53
|
|
|
48
54
|
Options:
|
|
@@ -17,7 +17,7 @@ Ask the user:
|
|
|
17
17
|
## Step 2: Determine If a Skill Is Right
|
|
18
18
|
|
|
19
19
|
**Create a skill when:**
|
|
20
|
-
-
|
|
20
|
+
- Task is repeated across multiple sessions
|
|
21
21
|
- Domain knowledge doesn't change frequently
|
|
22
22
|
- Complex enough to benefit from structure
|
|
23
23
|
- Would save significant time if automated
|