@fro.bot/systematic 1.12.0 → 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/README.md +3 -3
- 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 +1 -1
- package/dist/{index-0ftaxvrt.js → index-bky4p9gw.js} +6 -6
- package/dist/index.js +1 -1
- package/dist/lib/manifest.d.ts +14 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -146,7 +146,7 @@ Agents are specialized subagents with pre-configured prompts and expertise. They
|
|
|
146
146
|
|
|
147
147
|
### Using Agents
|
|
148
148
|
|
|
149
|
-
Agents are invoked via OpenCode's `@mention` syntax or `
|
|
149
|
+
Agents are invoked via OpenCode's `@mention` syntax or `task`:
|
|
150
150
|
|
|
151
151
|
```
|
|
152
152
|
@architecture-strategist Review the authentication refactoring in this PR
|
|
@@ -155,7 +155,7 @@ Agents are invoked via OpenCode's `@mention` syntax or `delegate_task`:
|
|
|
155
155
|
Or programmatically in skills/commands:
|
|
156
156
|
|
|
157
157
|
```
|
|
158
|
-
|
|
158
|
+
task(subagent_type="architecture-strategist", prompt="Review...")
|
|
159
159
|
```
|
|
160
160
|
|
|
161
161
|
## Commands
|
|
@@ -387,7 +387,7 @@ See [`AGENTS.md`](./AGENTS.md) for detailed development guidelines, code style c
|
|
|
387
387
|
|
|
388
388
|
## Converting from Claude Code
|
|
389
389
|
|
|
390
|
-
Migrating skills, agents, or commands from Claude Code
|
|
390
|
+
Migrating skills, agents, or commands from CEP or other Claude Code-format sources to Systematic? See the [Conversion Guide](https://fro.bot/systematic/guides/conversion-guide/) for field mappings and examples. Also available as [local Markdown](./docs/CONVERSION-GUIDE.md).
|
|
391
391
|
|
|
392
392
|
## References
|
|
393
393
|
|
|
@@ -33,7 +33,7 @@ Evaluate whether brainstorming is needed based on the feature description.
|
|
|
33
33
|
- Constrained, well-defined scope
|
|
34
34
|
|
|
35
35
|
**If requirements are already clear:**
|
|
36
|
-
Use **
|
|
36
|
+
Use the **question tool** to suggest: "Your requirements seem detailed enough to proceed directly to planning. Should I run `/workflows:plan` instead, or would you like to explore the idea further?"
|
|
37
37
|
|
|
38
38
|
### Phase 1: Understand the Idea
|
|
39
39
|
|
|
@@ -41,13 +41,13 @@ Use **AskUserQuestion tool** to suggest: "Your requirements seem detailed enough
|
|
|
41
41
|
|
|
42
42
|
Run a quick repo scan to understand existing patterns:
|
|
43
43
|
|
|
44
|
-
-
|
|
44
|
+
- task repo-research-analyst("Understand existing patterns related to: <feature_description>")
|
|
45
45
|
|
|
46
|
-
Focus on: similar features, established patterns,
|
|
46
|
+
Focus on: similar features, established patterns, AGENTS.md guidance.
|
|
47
47
|
|
|
48
48
|
#### 1.2 Collaborative Dialogue
|
|
49
49
|
|
|
50
|
-
Use the **
|
|
50
|
+
Use the **question tool** to ask questions **one at a time**.
|
|
51
51
|
|
|
52
52
|
**Guidelines (see `brainstorming` skill for detailed techniques):**
|
|
53
53
|
- Prefer multiple choice when natural options exist
|
|
@@ -68,7 +68,7 @@ For each approach, provide:
|
|
|
68
68
|
|
|
69
69
|
Lead with your recommendation and explain why. Apply YAGNI—prefer simpler solutions.
|
|
70
70
|
|
|
71
|
-
Use **
|
|
71
|
+
Use the **question tool** to ask which approach the user prefers.
|
|
72
72
|
|
|
73
73
|
### Phase 3: Capture the Design
|
|
74
74
|
|
|
@@ -80,15 +80,24 @@ Ensure `docs/brainstorms/` directory exists before writing.
|
|
|
80
80
|
|
|
81
81
|
### Phase 4: Handoff
|
|
82
82
|
|
|
83
|
-
Use **
|
|
83
|
+
Use the **question tool** to present next steps:
|
|
84
84
|
|
|
85
85
|
**Question:** "Brainstorm captured. What would you like to do next?"
|
|
86
86
|
|
|
87
87
|
**Options:**
|
|
88
|
-
1. **
|
|
89
|
-
2. **
|
|
88
|
+
1. **Review and refine** - Improve the document through structured self-review
|
|
89
|
+
2. **Proceed to planning** - Run `/workflows:plan` (will auto-detect this brainstorm)
|
|
90
90
|
3. **Done for now** - Return later
|
|
91
91
|
|
|
92
|
+
**If user selects "Review and refine":**
|
|
93
|
+
|
|
94
|
+
Load the `document-review` skill and apply it to the brainstorm document.
|
|
95
|
+
|
|
96
|
+
When document-review returns "Review complete", present next steps:
|
|
97
|
+
|
|
98
|
+
1. **Move to planning** - Continue to `/workflows:plan` with this document
|
|
99
|
+
2. **Done for now** - Brainstorming complete. To start planning later: `/workflows:plan [document-path]`
|
|
100
|
+
|
|
92
101
|
## Output Summary
|
|
93
102
|
|
|
94
103
|
When complete, display:
|
|
@@ -21,53 +21,83 @@ Captures problem solutions while context is fresh, creating structured documenta
|
|
|
21
21
|
/workflows:compound [brief context] # Provide additional context hint
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
## Execution Strategy:
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
24
|
+
## Execution Strategy: Two-Phase Orchestration
|
|
25
|
+
|
|
26
|
+
<critical_requirement>
|
|
27
|
+
**Only ONE file gets written - the final documentation.**
|
|
28
|
+
|
|
29
|
+
Phase 1 subagents return TEXT DATA to the orchestrator. They must NOT use Write, Edit, or create any files. Only the orchestrator (Phase 2) writes the final documentation file.
|
|
30
|
+
</critical_requirement>
|
|
31
|
+
|
|
32
|
+
### Phase 1: Parallel Research
|
|
33
|
+
|
|
34
|
+
<parallel_tasks>
|
|
35
|
+
|
|
36
|
+
Launch these subagents IN PARALLEL. Each returns text data to the orchestrator.
|
|
37
|
+
|
|
38
|
+
#### 1. **Context Analyzer**
|
|
39
|
+
- Extracts conversation history
|
|
40
|
+
- Identifies problem type, component, symptoms
|
|
41
|
+
- Validates against schema
|
|
42
|
+
- Returns: YAML frontmatter skeleton
|
|
43
|
+
|
|
44
|
+
#### 2. **Solution Extractor**
|
|
45
|
+
- Analyzes all investigation steps
|
|
46
|
+
- Identifies root cause
|
|
47
|
+
- Extracts working solution with code examples
|
|
48
|
+
- Returns: Solution content block
|
|
49
|
+
|
|
50
|
+
#### 3. **Related Docs Finder**
|
|
51
|
+
- Searches `docs/solutions/` for related documentation
|
|
52
|
+
- Identifies cross-references and links
|
|
53
|
+
- Finds related GitHub issues
|
|
54
|
+
- Returns: Links and relationships
|
|
55
|
+
|
|
56
|
+
#### 4. **Prevention Strategist**
|
|
57
|
+
- Develops prevention strategies
|
|
58
|
+
- Creates best practices guidance
|
|
59
|
+
- Generates test cases if applicable
|
|
60
|
+
- Returns: Prevention/testing content
|
|
61
|
+
|
|
62
|
+
#### 5. **Category Classifier**
|
|
63
|
+
- Determines optimal `docs/solutions/` category
|
|
64
|
+
- Validates category against schema
|
|
65
|
+
- Suggests filename based on slug
|
|
66
|
+
- Returns: Final path and filename
|
|
67
|
+
|
|
68
|
+
</parallel_tasks>
|
|
69
|
+
|
|
70
|
+
### Phase 2: Assembly & Write
|
|
71
|
+
|
|
72
|
+
<sequential_tasks>
|
|
73
|
+
|
|
74
|
+
**WAIT for all Phase 1 subagents to complete before proceeding.**
|
|
75
|
+
|
|
76
|
+
The orchestrating agent (main conversation) performs these steps:
|
|
77
|
+
|
|
78
|
+
1. Collect all text results from Phase 1 subagents
|
|
79
|
+
2. Assemble complete markdown file from the collected pieces
|
|
80
|
+
3. Validate YAML frontmatter against schema
|
|
81
|
+
4. Create directory if needed: `mkdir -p docs/solutions/[category]/`
|
|
82
|
+
5. Write the SINGLE final file: `docs/solutions/[category]/[filename].md`
|
|
83
|
+
|
|
84
|
+
</sequential_tasks>
|
|
85
|
+
|
|
86
|
+
### Phase 3: Optional Enhancement
|
|
87
|
+
|
|
88
|
+
**WAIT for Phase 2 to complete before proceeding.**
|
|
89
|
+
|
|
90
|
+
<parallel_tasks>
|
|
91
|
+
|
|
92
|
+
Based on problem type, optionally invoke specialized agents to review the documentation:
|
|
93
|
+
|
|
94
|
+
- **performance_issue** → `performance-oracle`
|
|
95
|
+
- **security_issue** → `security-sentinel`
|
|
96
|
+
- **database_issue** → `data-integrity-guardian`
|
|
97
|
+
- **test_failure** → `cora-test-reviewer`
|
|
98
|
+
- Any code-heavy issue → `kieran-rails-reviewer` + `code-simplicity-reviewer`
|
|
99
|
+
|
|
100
|
+
</parallel_tasks>
|
|
71
101
|
|
|
72
102
|
## What It Captures
|
|
73
103
|
|
|
@@ -110,24 +140,29 @@ This command launches multiple specialized subagents IN PARALLEL to maximize eff
|
|
|
110
140
|
- integration-issues/
|
|
111
141
|
- logic-errors/
|
|
112
142
|
|
|
143
|
+
## Common Mistakes to Avoid
|
|
144
|
+
|
|
145
|
+
| Wrong | Correct |
|
|
146
|
+
|----------|-----------:|
|
|
147
|
+
| Subagents write files like `context-analysis.md`, `solution-draft.md` | Subagents return text data; orchestrator writes one final file |
|
|
148
|
+
| Research and assembly run in parallel | Research completes, then assembly runs |
|
|
149
|
+
| Multiple files created during workflow | Single file: `docs/solutions/[category]/[filename].md` |
|
|
150
|
+
|
|
113
151
|
## Success Output
|
|
114
152
|
|
|
115
153
|
```
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
✓ Prevention Strategist: Generated test cases
|
|
123
|
-
✓ Category Classifier: docs/solutions/performance-issues/
|
|
124
|
-
✓ Documentation Writer: Created complete markdown
|
|
154
|
+
Subagent Results:
|
|
155
|
+
Context Analyzer: Identified performance_issue in brief_system
|
|
156
|
+
Solution Extractor: 3 code fixes
|
|
157
|
+
Related Docs Finder: 2 related issues
|
|
158
|
+
Prevention Strategist: Prevention strategies, test suggestions
|
|
159
|
+
Category Classifier: `performance-issues`
|
|
125
160
|
|
|
126
161
|
Specialized Agent Reviews (Auto-Triggered):
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
162
|
+
performance-oracle: Validated query optimization approach
|
|
163
|
+
kieran-rails-reviewer: Code examples meet Rails standards
|
|
164
|
+
code-simplicity-reviewer: Solution is appropriately minimal
|
|
165
|
+
every-style-editor: Documentation style verified
|
|
131
166
|
|
|
132
167
|
File created:
|
|
133
168
|
- docs/solutions/performance-issues/n-plus-one-brief-generation.md
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: workflows:plan
|
|
3
3
|
description: Transform feature descriptions into well-structured project plans following conventions
|
|
4
|
-
argument-hint:
|
|
4
|
+
argument-hint: '[feature description, bug report, or improvement idea]'
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Create a plan for a new feature or bug fix
|
|
@@ -43,11 +43,11 @@ ls -la docs/brainstorms/*.md 2>/dev/null | head -10
|
|
|
43
43
|
5. Use brainstorm decisions as input to the research phase
|
|
44
44
|
|
|
45
45
|
**If multiple brainstorms could match:**
|
|
46
|
-
Use **
|
|
46
|
+
Use **question tool** to ask which brainstorm to use, or whether to proceed without one.
|
|
47
47
|
|
|
48
48
|
**If no brainstorm found (or not relevant), run idea refinement:**
|
|
49
49
|
|
|
50
|
-
Refine the idea through collaborative dialogue using the **
|
|
50
|
+
Refine the idea through collaborative dialogue using the **question tool**:
|
|
51
51
|
|
|
52
52
|
- Ask questions one at a time to understand the idea fully
|
|
53
53
|
- Prefer multiple choice questions when natural options exist
|
|
@@ -74,11 +74,11 @@ First, I need to understand the project's conventions, existing patterns, and an
|
|
|
74
74
|
|
|
75
75
|
Run these agents **in parallel** to gather local context:
|
|
76
76
|
|
|
77
|
-
-
|
|
78
|
-
-
|
|
77
|
+
- task repo-research-analyst(feature_description)
|
|
78
|
+
- task learnings-researcher(feature_description)
|
|
79
79
|
|
|
80
80
|
**What to look for:**
|
|
81
|
-
- **Repo research:** existing patterns,
|
|
81
|
+
- **Repo research:** existing patterns, AGENTS.md guidance, technology familiarity, pattern consistency
|
|
82
82
|
- **Learnings:** documented solutions in `docs/solutions/` that might apply (gotchas, patterns, lessons learned)
|
|
83
83
|
|
|
84
84
|
These findings inform the next step.
|
|
@@ -89,7 +89,7 @@ Based on signals from Step 0 and findings from Step 1, decide on external resear
|
|
|
89
89
|
|
|
90
90
|
**High-risk topics → always research.** Security, payments, external APIs, data privacy. The cost of missing something is too high. This takes precedence over speed signals.
|
|
91
91
|
|
|
92
|
-
**Strong local context → skip external research.** Codebase has good patterns,
|
|
92
|
+
**Strong local context → skip external research.** Codebase has good patterns, AGENTS.md has guidance, user knows what they want. External research adds little value.
|
|
93
93
|
|
|
94
94
|
**Uncertainty or unfamiliar territory → research.** User is exploring, codebase has no examples, new technology. External perspective is valuable.
|
|
95
95
|
|
|
@@ -105,8 +105,8 @@ Examples:
|
|
|
105
105
|
|
|
106
106
|
Run these agents in parallel:
|
|
107
107
|
|
|
108
|
-
-
|
|
109
|
-
-
|
|
108
|
+
- task best-practices-researcher(feature_description)
|
|
109
|
+
- task framework-docs-researcher(feature_description)
|
|
110
110
|
|
|
111
111
|
### 1.6. Consolidate Research
|
|
112
112
|
|
|
@@ -116,7 +116,7 @@ After all research steps complete, consolidate findings:
|
|
|
116
116
|
- **Include relevant institutional learnings** from `docs/solutions/` (key insights, gotchas to avoid)
|
|
117
117
|
- Note external documentation URLs and best practices (if external research was done)
|
|
118
118
|
- List related issues or PRs discovered
|
|
119
|
-
- Capture
|
|
119
|
+
- Capture AGENTS.md conventions
|
|
120
120
|
|
|
121
121
|
**Optional validation:** Briefly summarize findings and ask if anything looks off or missing before proceeding to planning.
|
|
122
122
|
|
|
@@ -150,7 +150,7 @@ Think like a product manager - what would make this issue clear and actionable?
|
|
|
150
150
|
|
|
151
151
|
After planning the issue structure, run SpecFlow Analyzer to validate and refine the feature specification:
|
|
152
152
|
|
|
153
|
-
-
|
|
153
|
+
- task spec-flow-analyzer(feature_description, research_findings)
|
|
154
154
|
|
|
155
155
|
**SpecFlow Analyzer Output:**
|
|
156
156
|
|
|
@@ -491,38 +491,36 @@ Examples:
|
|
|
491
491
|
|
|
492
492
|
## Post-Generation Options
|
|
493
493
|
|
|
494
|
-
After writing the plan file, use the **
|
|
494
|
+
After writing the plan file, use the **question tool** to present these options:
|
|
495
495
|
|
|
496
496
|
**Question:** "Plan ready at `docs/plans/YYYY-MM-DD-<type>-<name>-plan.md`. What would you like to do next?"
|
|
497
497
|
|
|
498
498
|
**Options:**
|
|
499
499
|
1. **Open plan in editor** - Open the plan file for review
|
|
500
500
|
2. **Run `/deepen-plan`** - Enhance each section with parallel research agents (best practices, performance, UI)
|
|
501
|
-
3. **Run `/
|
|
502
|
-
4. **
|
|
503
|
-
5. **Start `/workflows:work
|
|
501
|
+
3. **Run `/technical_review`** - Technical feedback from code-focused reviewers (DHH, Kieran, Simplicity)
|
|
502
|
+
4. **Review and refine** - Improve the document through structured self-review
|
|
503
|
+
5. **Start `/workflows:work`** - Begin implementing this plan locally
|
|
504
504
|
6. **Create Issue** - Create issue in project tracker (GitHub/Linear)
|
|
505
|
-
7. **Simplify** - Reduce detail level
|
|
506
505
|
|
|
507
506
|
Based on selection:
|
|
508
507
|
- **Open plan in editor** → Run `open docs/plans/<plan_filename>.md` to open the file in the user's default editor
|
|
509
508
|
- **`/deepen-plan`** → Call the /deepen-plan command with the plan file path to enhance with research
|
|
510
|
-
- **`/
|
|
509
|
+
- **`/technical_review`** → Call the /technical_review command with the plan file path
|
|
510
|
+
- **Review and refine** → Load `document-review` skill.
|
|
511
511
|
- **`/workflows:work`** → Call the /workflows:work command with the plan file path
|
|
512
|
-
- **`/workflows:work` on remote** → Run `/workflows:work docs/plans/<plan_filename>.md &` to start work in background for Claude Code web
|
|
513
512
|
- **Create Issue** → See "Issue Creation" section below
|
|
514
|
-
- **Simplify** → Ask "What should I simplify?" then regenerate simpler version
|
|
515
513
|
- **Other** (automatically provided) → Accept free text for rework or specific changes
|
|
516
514
|
|
|
517
515
|
**Note:** If running `/workflows:plan` with ultrathink enabled, automatically run `/deepen-plan` after plan creation for maximum depth and grounding.
|
|
518
516
|
|
|
519
|
-
Loop back to options after Simplify or Other changes until user selects `/workflows:work` or `/
|
|
517
|
+
Loop back to options after Simplify or Other changes until user selects `/workflows:work` or `/technical_review`.
|
|
520
518
|
|
|
521
519
|
## Issue Creation
|
|
522
520
|
|
|
523
|
-
When user selects "Create Issue", detect their project tracker from
|
|
521
|
+
When user selects "Create Issue", detect their project tracker from AGENTS.md:
|
|
524
522
|
|
|
525
|
-
1. **Check for tracker preference** in user's
|
|
523
|
+
1. **Check for tracker preference** in user's AGENTS.md (global or project):
|
|
526
524
|
- Look for `project_tracker: github` or `project_tracker: linear`
|
|
527
525
|
- Or look for mentions of "GitHub Issues" or "Linear" in their workflow section
|
|
528
526
|
|
|
@@ -542,10 +540,10 @@ When user selects "Create Issue", detect their project tracker from CLAUDE.md:
|
|
|
542
540
|
|
|
543
541
|
4. **If no tracker configured:**
|
|
544
542
|
Ask user: "Which project tracker do you use? (GitHub/Linear/Other)"
|
|
545
|
-
- Suggest adding `project_tracker: github` or `project_tracker: linear` to their
|
|
543
|
+
- Suggest adding `project_tracker: github` or `project_tracker: linear` to their AGENTS.md
|
|
546
544
|
|
|
547
545
|
5. **After creation:**
|
|
548
546
|
- Display the issue URL
|
|
549
|
-
- Ask if they want to proceed to `/workflows:work` or `/
|
|
547
|
+
- Ask if they want to proceed to `/workflows:work` or `/technical_review`
|
|
550
548
|
|
|
551
549
|
NEVER CODE! Just research and write the plan.
|
|
@@ -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
|
@@ -322,11 +322,11 @@ import fs3 from "fs";
|
|
|
322
322
|
var CONVERTER_VERSION = 2;
|
|
323
323
|
var cache = new Map;
|
|
324
324
|
var TOOL_MAPPINGS = [
|
|
325
|
-
[/\bTask\s+tool\b/gi, "
|
|
326
|
-
[/\bTask\s+([\w-]+)\s*:/g, "
|
|
327
|
-
[/\bTask\s+([\w-]+)\s*\(/g, "
|
|
328
|
-
[/\bTask\s*\(/g, "
|
|
329
|
-
[/\bTask\b(?=\s+to\s+\w)/g, "
|
|
325
|
+
[/\bTask\s+tool\b/gi, "task tool"],
|
|
326
|
+
[/\bTask\s+([\w-]+)\s*:/g, "task $1:"],
|
|
327
|
+
[/\bTask\s+([\w-]+)\s*\(/g, "task $1("],
|
|
328
|
+
[/\bTask\s*\(/g, "task("],
|
|
329
|
+
[/\bTask\b(?=\s+to\s+\w)/g, "task"],
|
|
330
330
|
[/\bTodoWrite\b/g, "todowrite"],
|
|
331
331
|
[/\bAskUserQuestion\b/g, "question"],
|
|
332
332
|
[/\bWebSearch\b/g, "google_search"],
|
|
@@ -349,7 +349,7 @@ var PATH_REPLACEMENTS = [
|
|
|
349
349
|
[/compound-engineering:/g, "systematic:"]
|
|
350
350
|
];
|
|
351
351
|
var TOOL_NAME_MAP = {
|
|
352
|
-
task: "
|
|
352
|
+
task: "task",
|
|
353
353
|
todowrite: "todowrite",
|
|
354
354
|
askuserquestion: "question",
|
|
355
355
|
websearch: "google_search",
|
package/dist/index.js
CHANGED
package/dist/lib/manifest.d.ts
CHANGED
|
@@ -3,12 +3,26 @@ export interface ManifestSource {
|
|
|
3
3
|
branch: string;
|
|
4
4
|
url: string;
|
|
5
5
|
}
|
|
6
|
+
export interface ManifestRewrite {
|
|
7
|
+
field: string;
|
|
8
|
+
reason: string;
|
|
9
|
+
original?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface ManualOverride {
|
|
12
|
+
field: string;
|
|
13
|
+
reason: string;
|
|
14
|
+
original?: string;
|
|
15
|
+
overridden_at: string;
|
|
16
|
+
}
|
|
6
17
|
export interface ManifestDefinition {
|
|
7
18
|
source: string;
|
|
8
19
|
upstream_path: string;
|
|
9
20
|
upstream_commit: string;
|
|
10
21
|
synced_at: string;
|
|
11
22
|
notes: string;
|
|
23
|
+
upstream_content_hash?: string;
|
|
24
|
+
rewrites?: ManifestRewrite[];
|
|
25
|
+
manual_overrides?: ManualOverride[];
|
|
12
26
|
}
|
|
13
27
|
export interface SyncManifest {
|
|
14
28
|
$schema?: string;
|