@fro.bot/systematic 1.11.1 → 1.13.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/LICENSE +1 -1
- package/README.md +93 -29
- package/commands/workflows/brainstorm.md +17 -8
- package/commands/workflows/compound.md +95 -60
- package/commands/workflows/plan.md +22 -24
- package/commands/workflows/review.md +45 -32
- package/commands/workflows/work.md +91 -19
- package/dist/cli.js +14 -2
- package/dist/{index-we4f9de3.js → index-bky4p9gw.js} +171 -66
- package/dist/index.js +8 -5
- package/dist/lib/agents.d.ts +3 -1
- package/dist/lib/manifest.d.ts +35 -0
- package/dist/lib/validation.d.ts +2 -0
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: workflows:review
|
|
3
3
|
description: Perform exhaustive code reviews using multi-agent analysis, ultra-thinking, and worktrees
|
|
4
|
-
argument-hint:
|
|
4
|
+
argument-hint: '[PR number, GitHub URL, branch name, or latest]'
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Review Command
|
|
@@ -31,7 +31,7 @@ argument-hint: "[PR number, GitHub URL, branch name, or latest]"
|
|
|
31
31
|
First, I need to determine the review target type and set up the code for analysis.
|
|
32
32
|
</thinking>
|
|
33
33
|
|
|
34
|
-
#### Immediate Actions
|
|
34
|
+
#### Immediate Actions
|
|
35
35
|
|
|
36
36
|
<task_list>
|
|
37
37
|
|
|
@@ -48,29 +48,40 @@ Ensure that the code is ready for analysis (either in worktree or on current bra
|
|
|
48
48
|
|
|
49
49
|
</task_list>
|
|
50
50
|
|
|
51
|
-
####
|
|
51
|
+
#### Protected Artifacts
|
|
52
|
+
|
|
53
|
+
<protected_artifacts>
|
|
54
|
+
The following paths are systematic pipeline artifacts and must never be flagged for deletion, removal, or gitignore by any review agent:
|
|
55
|
+
|
|
56
|
+
- `docs/plans/*.md` — Plan files created by `/workflows:plan`. These are living documents that track implementation progress (checkboxes are checked off by `/workflows:work`).
|
|
57
|
+
- `docs/solutions/*.md` — Solution documents created during the pipeline.
|
|
58
|
+
|
|
59
|
+
If a review agent flags any file in these directories for cleanup or removal, discard that finding during synthesis. Do not create a todo for it.
|
|
60
|
+
</protected_artifacts>
|
|
61
|
+
|
|
62
|
+
#### Parallel Agents to review the PR
|
|
52
63
|
|
|
53
64
|
<parallel_tasks>
|
|
54
65
|
|
|
55
66
|
Run ALL or most of these agents at the same time:
|
|
56
67
|
|
|
57
|
-
1.
|
|
58
|
-
2.
|
|
59
|
-
3. If turbo is used:
|
|
60
|
-
4.
|
|
61
|
-
5.
|
|
62
|
-
6.
|
|
63
|
-
7.
|
|
64
|
-
8.
|
|
65
|
-
9.
|
|
66
|
-
10.
|
|
67
|
-
11.
|
|
68
|
-
12.
|
|
69
|
-
13.
|
|
68
|
+
1. task kieran-rails-reviewer(PR content)
|
|
69
|
+
2. task dhh-rails-reviewer(PR title)
|
|
70
|
+
3. If turbo is used: task rails-turbo-expert(PR content)
|
|
71
|
+
4. task git-history-analyzer(PR content)
|
|
72
|
+
5. task dependency-detective(PR content)
|
|
73
|
+
6. task pattern-recognition-specialist(PR content)
|
|
74
|
+
7. task architecture-strategist(PR content)
|
|
75
|
+
8. task code-philosopher(PR content)
|
|
76
|
+
9. task security-sentinel(PR content)
|
|
77
|
+
10. task performance-oracle(PR content)
|
|
78
|
+
11. task devops-harmony-analyst(PR content)
|
|
79
|
+
12. task data-integrity-guardian(PR content)
|
|
80
|
+
13. task agent-native-reviewer(PR content) - Verify new features are agent-accessible
|
|
70
81
|
|
|
71
82
|
</parallel_tasks>
|
|
72
83
|
|
|
73
|
-
#### Conditional Agents (Run if applicable)
|
|
84
|
+
#### Conditional Agents (Run if applicable)
|
|
74
85
|
|
|
75
86
|
<conditional_agents>
|
|
76
87
|
|
|
@@ -78,8 +89,8 @@ These agents are run ONLY when the PR matches specific criteria. Check the PR fi
|
|
|
78
89
|
|
|
79
90
|
**If PR contains database migrations (db/migrate/*.rb files) or data backfills:**
|
|
80
91
|
|
|
81
|
-
14.
|
|
82
|
-
15.
|
|
92
|
+
14. task data-migration-expert(PR content) - Validates ID mappings match production, checks for swapped values, verifies rollback safety
|
|
93
|
+
15. task deployment-verification-agent(PR content) - Creates Go/No-Go deployment checklist with SQL verification queries
|
|
83
94
|
|
|
84
95
|
**When to run migration agents:**
|
|
85
96
|
- PR includes files matching `db/migrate/*.rb`
|
|
@@ -191,7 +202,7 @@ Complete system context map with component interactions
|
|
|
191
202
|
|
|
192
203
|
### 4. Simplification and Minimalism Review
|
|
193
204
|
|
|
194
|
-
Run the
|
|
205
|
+
Run the task code-simplicity-reviewer() to see if we can simplify the code.
|
|
195
206
|
|
|
196
207
|
### 5. Findings Synthesis and Todo Creation Using file-todos Skill
|
|
197
208
|
|
|
@@ -207,6 +218,7 @@ Remove duplicates, prioritize by severity and impact.
|
|
|
207
218
|
<synthesis_tasks>
|
|
208
219
|
|
|
209
220
|
- [ ] Collect findings from all parallel agents
|
|
221
|
+
- [ ] Discard any findings that recommend deleting or gitignoring files in `docs/plans/` or `docs/solutions/` (see Protected Artifacts above)
|
|
210
222
|
- [ ] Categorize by type: security, performance, architecture, quality, etc.
|
|
211
223
|
- [ ] Assign severity levels: 🔴 CRITICAL (P1), 🟡 IMPORTANT (P2), 🔵 NICE-TO-HAVE (P3)
|
|
212
224
|
- [ ] Remove duplicate or overlapping findings
|
|
@@ -222,18 +234,18 @@ Remove duplicates, prioritize by severity and impact.
|
|
|
222
234
|
|
|
223
235
|
**Option A: Direct File Creation (Fast)**
|
|
224
236
|
|
|
225
|
-
- Create todo files directly using
|
|
237
|
+
- Create todo files directly using write tool
|
|
226
238
|
- All findings in parallel for speed
|
|
227
|
-
- Use standard template from `.
|
|
239
|
+
- Use standard template from `.opencode/skills/file-todos/assets/todo-template.md`
|
|
228
240
|
- Follow naming convention: `{issue_id}-pending-{priority}-{description}.md`
|
|
229
241
|
|
|
230
242
|
**Option B: Sub-Agents in Parallel (Recommended for Scale)** For large PRs with 15+ findings, use sub-agents to create finding files in parallel:
|
|
231
243
|
|
|
232
244
|
```bash
|
|
233
245
|
# Launch multiple finding-creator agents in parallel
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
246
|
+
task() - Create todos for first finding
|
|
247
|
+
task() - Create todos for second finding
|
|
248
|
+
task() - Create todos for third finding
|
|
237
249
|
etc. for each finding.
|
|
238
250
|
```
|
|
239
251
|
|
|
@@ -272,7 +284,7 @@ Sub-agents can:
|
|
|
272
284
|
|
|
273
285
|
The skill provides:
|
|
274
286
|
|
|
275
|
-
- Template location: `.
|
|
287
|
+
- Template location: `.opencode/skills/file-todos/assets/todo-template.md`
|
|
276
288
|
- Naming convention: `{issue_id}-{status}-{priority}-{description}.md`
|
|
277
289
|
- YAML frontmatter structure: status, priority, issue_id, tags, dependencies
|
|
278
290
|
- All required sections: Problem Statement, Findings, Solutions, etc.
|
|
@@ -292,7 +304,7 @@ Sub-agents can:
|
|
|
292
304
|
004-pending-p3-unused-parameter.md
|
|
293
305
|
```
|
|
294
306
|
|
|
295
|
-
5. Follow template structure from file-todos skill: `.
|
|
307
|
+
5. Follow template structure from file-todos skill: `.opencode/skills/file-todos/assets/todo-template.md`
|
|
296
308
|
|
|
297
309
|
**Todo File Structure (from template):**
|
|
298
310
|
|
|
@@ -400,7 +412,7 @@ After creating all todo files, present comprehensive summary:
|
|
|
400
412
|
- Update Work Log as you work
|
|
401
413
|
- Commit todos: `git add todos/ && git commit -m "refactor: add code review findings"`
|
|
402
414
|
|
|
403
|
-
### Severity Breakdown
|
|
415
|
+
### Severity Breakdown
|
|
404
416
|
|
|
405
417
|
**🔴 P1 (Critical - Blocks Merge):**
|
|
406
418
|
|
|
@@ -468,12 +480,12 @@ After presenting the Summary Report, offer appropriate testing based on project
|
|
|
468
480
|
|
|
469
481
|
</offer_testing>
|
|
470
482
|
|
|
471
|
-
#### If User Accepts Web Testing
|
|
483
|
+
#### If User Accepts Web Testing
|
|
472
484
|
|
|
473
485
|
Spawn a subagent to run browser tests (preserves main context):
|
|
474
486
|
|
|
475
487
|
```
|
|
476
|
-
|
|
488
|
+
task general-purpose("Run /test-browser for PR #[number]. Test all affected pages, check for console errors, handle failures by creating todos and fixing.")
|
|
477
489
|
```
|
|
478
490
|
|
|
479
491
|
The subagent will:
|
|
@@ -487,12 +499,12 @@ The subagent will:
|
|
|
487
499
|
|
|
488
500
|
**Standalone:** `/test-browser [PR number]`
|
|
489
501
|
|
|
490
|
-
#### If User Accepts iOS Testing
|
|
502
|
+
#### If User Accepts iOS Testing
|
|
491
503
|
|
|
492
504
|
Spawn a subagent to run Xcode tests (preserves main context):
|
|
493
505
|
|
|
494
506
|
```
|
|
495
|
-
|
|
507
|
+
task general-purpose("Run /xcode-test for scheme [name]. Build for simulator, install, launch, take screenshots, check for crashes.")
|
|
496
508
|
```
|
|
497
509
|
|
|
498
510
|
The subagent will:
|
|
@@ -512,3 +524,4 @@ The subagent will:
|
|
|
512
524
|
|
|
513
525
|
Any **🔴 P1 (CRITICAL)** findings must be addressed before merging the PR. Present these prominently and ensure they're resolved before accepting the PR.
|
|
514
526
|
```
|
|
527
|
+
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: workflows:work
|
|
3
3
|
description: Execute work plans efficiently while maintaining quality and finishing features
|
|
4
|
-
argument-hint:
|
|
4
|
+
argument-hint: '[plan file, specification, or todo file path]'
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Work Plan Execution Command
|
|
@@ -73,7 +73,7 @@ This command takes a work document (plan, specification, or todo file) and execu
|
|
|
73
73
|
- You plan to switch between branches frequently
|
|
74
74
|
|
|
75
75
|
3. **Create Todo List**
|
|
76
|
-
- Use
|
|
76
|
+
- Use todowrite to break plan into actionable tasks
|
|
77
77
|
- Include dependencies between tasks
|
|
78
78
|
- Prioritize based on what needs to be done first
|
|
79
79
|
- Include testing and quality check tasks
|
|
@@ -87,18 +87,18 @@ This command takes a work document (plan, specification, or todo file) and execu
|
|
|
87
87
|
|
|
88
88
|
```
|
|
89
89
|
while (tasks remain):
|
|
90
|
-
|
|
90
|
+
- Mark task as in_progress in todowrite
|
|
91
91
|
- Read any referenced files from the plan
|
|
92
92
|
- Look for similar patterns in codebase
|
|
93
93
|
- Implement following existing conventions
|
|
94
94
|
- Write tests for new functionality
|
|
95
95
|
- Run tests after changes
|
|
96
|
-
|
|
96
|
+
- Mark task as completed in todowrite
|
|
97
97
|
- Mark off the corresponding checkbox in the plan file ([ ] → [x])
|
|
98
98
|
- Evaluate for incremental commit (see below)
|
|
99
99
|
```
|
|
100
100
|
|
|
101
|
-
**IMPORTANT**: Always update the original plan document by checking off completed items. Use the
|
|
101
|
+
**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.
|
|
102
102
|
|
|
103
103
|
2. **Incremental Commits**
|
|
104
104
|
|
|
@@ -134,7 +134,7 @@ This command takes a work document (plan, specification, or todo file) and execu
|
|
|
134
134
|
- The plan should reference similar code - read those files first
|
|
135
135
|
- Match naming conventions exactly
|
|
136
136
|
- Reuse existing components where possible
|
|
137
|
-
|
|
137
|
+
- Follow project coding standards (see AGENTS.md)
|
|
138
138
|
- When in doubt, grep for similar implementations
|
|
139
139
|
|
|
140
140
|
4. **Test Continuously**
|
|
@@ -154,7 +154,7 @@ This command takes a work document (plan, specification, or todo file) and execu
|
|
|
154
154
|
- Repeat until implementation matches design
|
|
155
155
|
|
|
156
156
|
6. **Track Progress**
|
|
157
|
-
- Keep
|
|
157
|
+
- Keep todowrite updated as you complete tasks
|
|
158
158
|
- Note any blockers or unexpected discoveries
|
|
159
159
|
- Create new tasks if scope expands
|
|
160
160
|
- Keep user informed of major milestones
|
|
@@ -169,7 +169,7 @@ This command takes a work document (plan, specification, or todo file) and execu
|
|
|
169
169
|
# Run full test suite (use project's test command)
|
|
170
170
|
# Examples: bin/rails test, npm test, pytest, go test, etc.
|
|
171
171
|
|
|
172
|
-
|
|
172
|
+
# Run linting (per AGENTS.md)
|
|
173
173
|
# Use linting-agent before pushing to origin
|
|
174
174
|
```
|
|
175
175
|
|
|
@@ -181,19 +181,19 @@ This command takes a work document (plan, specification, or todo file) and execu
|
|
|
181
181
|
- **kieran-rails-reviewer**: Verify Rails conventions (Rails projects)
|
|
182
182
|
- **performance-oracle**: Check for performance issues
|
|
183
183
|
- **security-sentinel**: Scan for security vulnerabilities
|
|
184
|
-
- **cora-test-reviewer**: Review test quality (
|
|
184
|
+
- **cora-test-reviewer**: Review test quality (Rails projects with comprehensive test coverage)
|
|
185
185
|
|
|
186
|
-
Run reviewers in parallel with
|
|
186
|
+
Run reviewers in parallel with task tool:
|
|
187
187
|
|
|
188
188
|
```
|
|
189
|
-
|
|
190
|
-
|
|
189
|
+
task(code-simplicity-reviewer): "Review changes for simplicity"
|
|
190
|
+
task(kieran-rails-reviewer): "Check Rails conventions"
|
|
191
191
|
```
|
|
192
192
|
|
|
193
193
|
Present findings to user and address critical issues.
|
|
194
194
|
|
|
195
195
|
3. **Final Validation**
|
|
196
|
-
- All
|
|
196
|
+
- All todowrite tasks marked completed
|
|
197
197
|
- All tests pass
|
|
198
198
|
- Linting passes
|
|
199
199
|
- Code follows existing patterns
|
|
@@ -215,9 +215,9 @@ This command takes a work document (plan, specification, or todo file) and execu
|
|
|
215
215
|
|
|
216
216
|
Brief explanation if needed.
|
|
217
217
|
|
|
218
|
-
|
|
218
|
+
🤖 Generated with [OpenCode](https://opencode.ai)
|
|
219
219
|
|
|
220
|
-
|
|
220
|
+
Co-Authored-By: OpenCode <noreply@opencode.ai>
|
|
221
221
|
EOF
|
|
222
222
|
)"
|
|
223
223
|
```
|
|
@@ -279,7 +279,7 @@ This command takes a work document (plan, specification, or todo file) and execu
|
|
|
279
279
|
|
|
280
280
|
---
|
|
281
281
|
|
|
282
|
-
|
|
282
|
+
[](https://github.com/marcusrbrown/systematic) 🤖 Generated with [OpenCode](https://opencode.ai)
|
|
283
283
|
EOF
|
|
284
284
|
)"
|
|
285
285
|
```
|
|
@@ -292,6 +292,78 @@ This command takes a work document (plan, specification, or todo file) and execu
|
|
|
292
292
|
|
|
293
293
|
---
|
|
294
294
|
|
|
295
|
+
## Swarm Mode (Optional)
|
|
296
|
+
|
|
297
|
+
> **Note:** Swarm mode coordination primitives (`Teammate` API — team creation, shutdown signals, cleanup) are not yet available in OpenCode. The concepts below are aspirational. For current parallel execution, use the `task` tool with multiple background subagents, or see the `dispatching-parallel-agents` skill.
|
|
298
|
+
|
|
299
|
+
For complex plans with multiple independent workstreams, enable swarm mode for parallel execution with coordinated agents.
|
|
300
|
+
|
|
301
|
+
### When to Use Swarm Mode
|
|
302
|
+
|
|
303
|
+
| Use Swarm Mode when... | Use Standard Mode when... |
|
|
304
|
+
|------------------------|---------------------------|
|
|
305
|
+
| Plan has 5+ independent tasks | Plan is linear/sequential |
|
|
306
|
+
| Multiple specialists needed (review + test + implement) | Single-focus work |
|
|
307
|
+
| Want maximum parallelism | Simpler mental model preferred |
|
|
308
|
+
| Large feature with clear phases | Small feature or bug fix |
|
|
309
|
+
|
|
310
|
+
### Enabling Swarm Mode
|
|
311
|
+
|
|
312
|
+
To trigger swarm execution, say:
|
|
313
|
+
|
|
314
|
+
> "Make a Task list and launch an army of agent swarm subagents to build the plan"
|
|
315
|
+
|
|
316
|
+
Or explicitly request: "Use swarm mode for this work"
|
|
317
|
+
|
|
318
|
+
### Swarm Workflow
|
|
319
|
+
|
|
320
|
+
When swarm mode is enabled, the workflow changes:
|
|
321
|
+
|
|
322
|
+
1. **Create Team**
|
|
323
|
+
```
|
|
324
|
+
Teammate({ operation: "spawnTeam", team_name: "work-{timestamp}" })
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
2. **Create Task List with Dependencies**
|
|
328
|
+
- Parse plan into TaskCreate items
|
|
329
|
+
- Set up blockedBy relationships for sequential dependencies
|
|
330
|
+
- Independent tasks have no blockers (can run in parallel)
|
|
331
|
+
|
|
332
|
+
3. **Spawn Specialized Teammates**
|
|
333
|
+
```
|
|
334
|
+
Task({
|
|
335
|
+
team_name: "work-{timestamp}",
|
|
336
|
+
name: "implementer",
|
|
337
|
+
subagent_type: "general-purpose",
|
|
338
|
+
prompt: "Claim implementation tasks, execute, mark complete",
|
|
339
|
+
run_in_background: true
|
|
340
|
+
})
|
|
341
|
+
|
|
342
|
+
Task({
|
|
343
|
+
team_name: "work-{timestamp}",
|
|
344
|
+
name: "tester",
|
|
345
|
+
subagent_type: "general-purpose",
|
|
346
|
+
prompt: "Claim testing tasks, run tests, mark complete",
|
|
347
|
+
run_in_background: true
|
|
348
|
+
})
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
4. **Coordinate and Monitor**
|
|
352
|
+
- Team lead monitors task completion
|
|
353
|
+
- Spawn additional workers as phases unblock
|
|
354
|
+
- Handle plan approval if required
|
|
355
|
+
|
|
356
|
+
5. **Cleanup**
|
|
357
|
+
```
|
|
358
|
+
Teammate({ operation: "requestShutdown", target_agent_id: "implementer" })
|
|
359
|
+
Teammate({ operation: "requestShutdown", target_agent_id: "tester" })
|
|
360
|
+
Teammate({ operation: "cleanup" })
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
See the `orchestrating-swarms` skill for detailed swarm patterns and best practices.
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
295
367
|
## Key Principles
|
|
296
368
|
|
|
297
369
|
### Start Fast, Execute Faster
|
|
@@ -330,7 +402,7 @@ This command takes a work document (plan, specification, or todo file) and execu
|
|
|
330
402
|
Before creating PR, verify:
|
|
331
403
|
|
|
332
404
|
- [ ] All clarifying questions asked and answered
|
|
333
|
-
- [ ] All
|
|
405
|
+
- [ ] All todowrite tasks marked completed
|
|
334
406
|
- [ ] Tests pass (run project's test command)
|
|
335
407
|
- [ ] Linting passes (use linting-agent)
|
|
336
408
|
- [ ] Code follows existing patterns
|
|
@@ -338,7 +410,7 @@ Before creating PR, verify:
|
|
|
338
410
|
- [ ] Before/after screenshots captured and uploaded (for UI changes)
|
|
339
411
|
- [ ] Commit messages follow conventional format
|
|
340
412
|
- [ ] PR description includes summary, testing notes, and screenshots
|
|
341
|
-
- [ ] PR description includes
|
|
413
|
+
- [ ] PR description includes Systematic badge
|
|
342
414
|
|
|
343
415
|
## When to Use Reviewer Agents
|
|
344
416
|
|
|
@@ -358,6 +430,6 @@ For most features: tests + linting + following patterns is sufficient.
|
|
|
358
430
|
- **Skipping clarifying questions** - Ask now, not after building wrong thing
|
|
359
431
|
- **Ignoring plan references** - The plan has links for a reason
|
|
360
432
|
- **Testing at the end** - Test continuously or suffer later
|
|
361
|
-
- **Forgetting
|
|
433
|
+
- **Forgetting todowrite** - Track progress or lose track of what's done
|
|
362
434
|
- **80% done syndrome** - Finish the feature, don't move on early
|
|
363
435
|
- **Over-reviewing simple changes** - Save reviewer agents for complex work
|
package/dist/cli.js
CHANGED
|
@@ -6,12 +6,24 @@ import {
|
|
|
6
6
|
findCommandsInDir,
|
|
7
7
|
findSkillsInDir,
|
|
8
8
|
getConfigPaths
|
|
9
|
-
} from "./index-
|
|
9
|
+
} from "./index-bky4p9gw.js";
|
|
10
10
|
|
|
11
11
|
// src/cli.ts
|
|
12
12
|
import fs from "fs";
|
|
13
13
|
import path from "path";
|
|
14
|
-
var
|
|
14
|
+
var getPackageVersion = () => {
|
|
15
|
+
try {
|
|
16
|
+
const packageJsonPath = path.resolve(import.meta.dirname, "..", "package.json");
|
|
17
|
+
if (!fs.existsSync(packageJsonPath))
|
|
18
|
+
return "unknown";
|
|
19
|
+
const content = fs.readFileSync(packageJsonPath, "utf8");
|
|
20
|
+
const parsed = JSON.parse(content);
|
|
21
|
+
return parsed.version ?? "unknown";
|
|
22
|
+
} catch {
|
|
23
|
+
return "unknown";
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
var VERSION = getPackageVersion();
|
|
15
27
|
var HELP = `
|
|
16
28
|
systematic - OpenCode plugin for systematic engineering workflows
|
|
17
29
|
|