@fro.bot/systematic 2.20.6 → 2.21.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 +29 -489
- package/dist/cli.js +1 -1
- package/dist/{index-6evyges6.js → index-175fc4yn.js} +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -15,520 +15,60 @@
|
|
|
15
15
|
|
|
16
16
|
<br>
|
|
17
17
|
|
|
18
|
-
**[
|
|
18
|
+
**[Docs](https://fro.bot/systematic/)** · **[npm](https://www.npmjs.com/package/@fro.bot/systematic)** · **[GitHub](https://github.com/marcusrbrown/systematic)**
|
|
19
19
|
|
|
20
20
|
</div>
|
|
21
21
|
|
|
22
22
|
---
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
AI coding tools are fast at generating code, but they don't preserve engineering discipline by default. They skip planning, forget standards, miss review steps, and fail to capture what was learned. Systematic exists to turn those one-off interactions into a repeatable workflow.
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
## Why Systematic?
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
You want AI that follows your process, not just your prompts. You want repeatable engineering habits encoded into the environment. You want the system to get better after each task.
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
## What You Get
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
Systematic is an [OpenCode](https://opencode.ai/) plugin that ships 40+ bundled skills covering brainstorming, planning, implementation, review, and knowledge capture. It includes 50+ specialized agents for architecture, security, performance, design, and code review. Installation is zero-configuration — the plugin registers everything via OpenCode's config hooks and works immediately on restart. OCX registry support is available for component-level installs when you only want specific pieces.
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
- **Plan with rigor** using multi-phase workflows
|
|
36
|
-
- **Review code architecturally** with specialized agents
|
|
37
|
-
- **Follow consistent patterns** across your entire team
|
|
34
|
+
## Quick Install
|
|
38
35
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
- **Structured Skills** — Pre-built workflows for brainstorming, planning, code review, and more
|
|
42
|
-
- **Specialized Agents** — Purpose-built subagents for architecture, security, performance, and research
|
|
43
|
-
- **Zero Configuration** — Works immediately after installation via config hooks
|
|
44
|
-
- **Extensible** — Add project-specific skills and agents alongside bundled ones
|
|
45
|
-
- **Batteries Included** — a curated catalog of skills and agents ships with the npm package
|
|
46
|
-
- **CLI Tooling** — Inspect, list, and convert assets from the command line
|
|
47
|
-
|
|
48
|
-
## Quick Start
|
|
49
|
-
|
|
50
|
-
### Prerequisites
|
|
51
|
-
|
|
52
|
-
- [OpenCode](https://opencode.ai/) installed and configured
|
|
53
|
-
- Node.js 18+ or Bun runtime
|
|
54
|
-
|
|
55
|
-
### Installation
|
|
56
|
-
|
|
57
|
-
Install the plugin by adding it to your OpenCode configuration (`~/.config/opencode/opencode.json`):
|
|
36
|
+
Add to your `opencode.json` and restart OpenCode:
|
|
58
37
|
|
|
59
38
|
```json
|
|
60
|
-
{
|
|
61
|
-
"plugins": ["@fro.bot/systematic@latest"]
|
|
62
|
-
}
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
Restart OpenCode to activate the plugin. All bundled skills and agents will be available immediately.
|
|
66
|
-
|
|
67
|
-
> [!NOTE]
|
|
68
|
-
> Systematic uses OpenCode's `config` hook to automatically register all bundled content. No manual file copying required.
|
|
69
|
-
|
|
70
|
-
### Alternative: Install via OCX
|
|
71
|
-
|
|
72
|
-
[OCX](https://github.com/kdcokenny/ocx) provides component-level installation:
|
|
73
|
-
|
|
74
|
-
```bash
|
|
75
|
-
# Add the Systematic registry
|
|
76
|
-
ocx registry add https://fro.bot/systematic --name systematic
|
|
77
|
-
|
|
78
|
-
# Install individual components
|
|
79
|
-
ocx add systematic/using-systematic
|
|
80
|
-
ocx add systematic/agent-architecture-strategist
|
|
81
|
-
|
|
82
|
-
# Or install bundles
|
|
83
|
-
ocx add systematic/skills # All bundled skills
|
|
84
|
-
ocx add systematic/agents # All bundled agents
|
|
85
|
-
|
|
86
|
-
# Or use a profile (requires --global registry)
|
|
87
|
-
ocx registry add https://fro.bot/systematic --name systematic --global
|
|
88
|
-
ocx profile add sys --from systematic/standalone
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
See the [OCX Registry Guide](https://fro.bot/systematic/guides/ocx-registry/) for details.
|
|
92
|
-
|
|
93
|
-
### Verify Installation
|
|
94
|
-
|
|
95
|
-
In any OpenCode conversation, type:
|
|
96
|
-
|
|
97
|
-
```
|
|
98
|
-
/systematic:using-systematic
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
If the skill loads and displays usage instructions, the plugin is working correctly.
|
|
102
|
-
|
|
103
|
-
#### Next Steps
|
|
104
|
-
|
|
105
|
-
Once verified, explore these guides to master the Systematic workflow:
|
|
106
|
-
- **[Philosophy](https://fro.bot/systematic/guides/philosophy/)** — Understand the Compound Engineering mindset and why it works
|
|
107
|
-
- **[Main Loop](https://fro.bot/systematic/guides/main-loop/)** — Learn the Plan → Work → Review → Compound cycle
|
|
108
|
-
- **[Agent Install Guide](https://fro.bot/systematic/guides/agent-install/)** — Step-by-step install guide for AI agents
|
|
109
|
-
|
|
110
|
-
## Skills
|
|
111
|
-
|
|
112
|
-
Skills are structured workflows that guide the AI through systematic engineering processes. They're loaded via the `systematic_skill` tool and invocable as slash commands (e.g., `/ce:brainstorm`).
|
|
113
|
-
|
|
114
|
-
### Core Workflows
|
|
115
|
-
|
|
116
|
-
The Compound Engineering loop — the heart of Systematic:
|
|
117
|
-
|
|
118
|
-
| Skill | Description |
|
|
119
|
-
|-------|-------------|
|
|
120
|
-
| `ce:brainstorm` | Explore requirements through collaborative dialogue before planning |
|
|
121
|
-
| `ce:plan` | Transform feature descriptions into structured implementation plans |
|
|
122
|
-
| `ce:review` | Perform exhaustive code reviews using multi-agent analysis |
|
|
123
|
-
| `ce:work` | Execute work plans efficiently while maintaining quality |
|
|
124
|
-
| `ce:compound` | Document recently solved problems to compound team knowledge |
|
|
125
|
-
| `ce:ideate` | Generate and critically evaluate grounded improvement ideas |
|
|
126
|
-
| `ce:compound-refresh` | Refresh stale learnings and pattern docs against current codebase |
|
|
127
|
-
|
|
128
|
-
### Development Tools
|
|
129
|
-
|
|
130
|
-
| Skill | Description |
|
|
131
|
-
|-------|-------------|
|
|
132
|
-
| `using-systematic` | Bootstrap skill — teaches the AI how to discover and use other skills |
|
|
133
|
-
| `agent-browser` | Browser automation using Vercel's agent-browser CLI |
|
|
134
|
-
| `agent-native-architecture` | Design systems where AI agents are first-class citizens |
|
|
135
|
-
| `compound-docs` | Capture solved problems as categorized documentation |
|
|
136
|
-
| `document-review` | Refine requirements or plan documents before proceeding |
|
|
137
|
-
| `deepen-plan` | Enhance a plan with parallel research for each section |
|
|
138
|
-
| `todo-create` · `todo-resolve` · `todo-triage` | Durable file-based todo tracking, triage, and batch resolution |
|
|
139
|
-
| `frontend-design` | Create distinctive, production-grade frontend interfaces |
|
|
140
|
-
| `git-worktree` | Manage git worktrees for isolated parallel development |
|
|
141
|
-
| `generate_command` | Create a new custom slash command following conventions |
|
|
142
|
-
| `orchestrating-swarms` | Coordinate multi-agent swarms and pipeline workflows |
|
|
143
|
-
| `lfg` · `slfg` | Full autonomous engineering workflow (single-agent / swarm) |
|
|
144
|
-
|
|
145
|
-
### Specialized Skills
|
|
146
|
-
|
|
147
|
-
| Skill | Description |
|
|
148
|
-
|-------|-------------|
|
|
149
|
-
| `dhh-rails-style` | Write Ruby and Rails code in DHH's distinctive 37signals style |
|
|
150
|
-
| `andrew-kane-gem-writer` | Write Ruby gems following Andrew Kane's proven patterns |
|
|
151
|
-
| `dspy-ruby` | Build type-safe LLM applications with DSPy.rb |
|
|
152
|
-
| `every-style-editor` | Review and edit copy for style guide compliance |
|
|
153
|
-
| `gemini-imagegen` | Generate and edit images using the Gemini API |
|
|
154
|
-
| `proof` | Create, edit, and share markdown documents via Proof |
|
|
155
|
-
| `rclone` | Upload, sync, and manage files across cloud storage providers |
|
|
156
|
-
|
|
157
|
-
> **[View all skills →](https://fro.bot/systematic/reference/skills/)**
|
|
158
|
-
|
|
159
|
-
### How Skills Work
|
|
160
|
-
|
|
161
|
-
Skills are Markdown files with YAML frontmatter. When loaded, their content is injected into the conversation, guiding the AI's behavior:
|
|
162
|
-
|
|
163
|
-
```markdown
|
|
164
|
-
---
|
|
165
|
-
name: brainstorming
|
|
166
|
-
description: This skill should be used before implementing features...
|
|
167
|
-
---
|
|
168
|
-
|
|
169
|
-
# Brainstorming
|
|
170
|
-
|
|
171
|
-
This skill provides detailed process knowledge for effective brainstorming...
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
The AI is instructed to invoke skills **before** taking action — even with a 1% chance a skill might apply.
|
|
175
|
-
|
|
176
|
-
## Agents
|
|
177
|
-
|
|
178
|
-
Agents are specialized subagents with pre-configured prompts and expertise. They're registered automatically via the config hook.
|
|
179
|
-
|
|
180
|
-
### Design Agents
|
|
181
|
-
|
|
182
|
-
| Agent | Purpose |
|
|
183
|
-
|-------|---------|
|
|
184
|
-
| `design-implementation-reviewer` | Visually compare live UI against Figma designs and report discrepancies |
|
|
185
|
-
| `design-iterator` | Iteratively refine UI design through screenshot-analyze-improve cycles |
|
|
186
|
-
| `figma-design-sync` | Detect and fix visual differences between web implementation and Figma |
|
|
187
|
-
|
|
188
|
-
### Docs Agents
|
|
189
|
-
|
|
190
|
-
| Agent | Purpose |
|
|
191
|
-
|-------|---------|
|
|
192
|
-
| `ankane-readme-writer` | Create or update README files following Ankane-style template for Ruby gems |
|
|
193
|
-
|
|
194
|
-
### Research Agents
|
|
195
|
-
|
|
196
|
-
| Agent | Purpose |
|
|
197
|
-
|-------|---------|
|
|
198
|
-
| `best-practices-researcher` | Research external best practices, documentation, and examples for any technology |
|
|
199
|
-
| `framework-docs-researcher` | Gather framework documentation and best practices |
|
|
200
|
-
| `git-history-analyzer` | Archaeological analysis of git history to trace code evolution and patterns |
|
|
201
|
-
| `issue-intelligence-analyst` | Analyze GitHub issues to surface recurring themes, pain patterns, and severity trends |
|
|
202
|
-
| `learnings-researcher` | Search past solutions in docs/solutions/ to surface institutional knowledge |
|
|
203
|
-
| `repo-research-analyst` | Research repository structure, documentation, conventions, and implementation patterns |
|
|
204
|
-
|
|
205
|
-
### Review Agents
|
|
206
|
-
|
|
207
|
-
| Agent | Purpose |
|
|
208
|
-
|-------|---------|
|
|
209
|
-
| `agent-native-reviewer` | Ensure agent-native parity — any user action should also be available to agents |
|
|
210
|
-
| `architecture-strategist` | Analyze code changes from an architectural perspective |
|
|
211
|
-
| `code-simplicity-reviewer` | Final review pass for simplicity and YAGNI principles |
|
|
212
|
-
| `data-integrity-guardian` | Review database migrations, data models, and persistent data code for safety |
|
|
213
|
-
| `data-migration-expert` | Validate data migrations, backfills, and production data transformations |
|
|
214
|
-
| `deployment-verification-agent` | Produce Go/No-Go deployment checklists with verification queries and rollback procedures |
|
|
215
|
-
| `dhh-rails-reviewer` | Brutally honest Rails code review from DHH's perspective |
|
|
216
|
-
| `julik-frontend-races-reviewer` | Review JavaScript and Stimulus code for race conditions and timing issues |
|
|
217
|
-
| `kieran-python-reviewer` | High quality bar Python review for Pythonic patterns, type safety, and maintainability |
|
|
218
|
-
| `kieran-rails-reviewer` | High quality bar Rails review for conventions, clarity, and maintainability |
|
|
219
|
-
| `kieran-typescript-reviewer` | High quality bar TypeScript review for type safety, modern patterns, and maintainability |
|
|
220
|
-
| `pattern-recognition-specialist` | Detect design patterns, anti-patterns, and code smells |
|
|
221
|
-
| `performance-oracle` | Performance analysis, bottleneck identification, scalability |
|
|
222
|
-
| `schema-drift-detector` | Detect unrelated schema.rb changes by cross-referencing against included migrations |
|
|
223
|
-
| `security-sentinel` | Security audits, vulnerability assessment, OWASP compliance |
|
|
224
|
-
|
|
225
|
-
### Workflow Agents
|
|
226
|
-
|
|
227
|
-
| Agent | Purpose |
|
|
228
|
-
|-------|---------|
|
|
229
|
-
| `bug-reproduction-validator` | Systematically verify and reproduce reported bugs |
|
|
230
|
-
| `lint` | Run linting and code quality checks on Ruby and ERB files |
|
|
231
|
-
| `pr-comment-resolver` | Address PR review comments by implementing requested changes |
|
|
232
|
-
| `spec-flow-analyzer` | Analyze specifications for user flow gaps and missing requirements |
|
|
233
|
-
|
|
234
|
-
### Using Agents
|
|
235
|
-
|
|
236
|
-
Agents are invoked via OpenCode's `@mention` syntax or `task`:
|
|
237
|
-
|
|
238
|
-
```
|
|
239
|
-
@architecture-strategist Review the authentication refactoring in this PR
|
|
39
|
+
{ "plugins": ["@fro.bot/systematic@latest"] }
|
|
240
40
|
```
|
|
241
41
|
|
|
242
|
-
|
|
42
|
+
Your global config lives at `~/.config/opencode/opencode.json`.
|
|
243
43
|
|
|
244
|
-
|
|
245
|
-
task(subagent_type="architecture-strategist", prompt="Review...")
|
|
246
|
-
```
|
|
44
|
+
## First Workflow
|
|
247
45
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
Systematic includes a CLI for inspecting and converting assets outside of OpenCode.
|
|
46
|
+
Once installed, run a full engineering cycle on any feature:
|
|
251
47
|
|
|
252
48
|
```
|
|
253
|
-
|
|
49
|
+
/ce:brainstorm "add dark mode toggle"
|
|
50
|
+
/ce:plan
|
|
51
|
+
/ce:work
|
|
52
|
+
/ce:review
|
|
254
53
|
```
|
|
255
54
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
| Command | Description |
|
|
259
|
-
|---------|-------------|
|
|
260
|
-
| `list [type]` | List available skills, agents, or commands |
|
|
261
|
-
| `convert <type> <file>` | Convert a CEP file and output the result to stdout |
|
|
262
|
-
| `config show` | Show current configuration and file contents |
|
|
263
|
-
| `config path` | Print config file locations |
|
|
264
|
-
|
|
265
|
-
### Examples
|
|
266
|
-
|
|
267
|
-
```bash
|
|
268
|
-
# List all bundled skills
|
|
269
|
-
systematic list skills
|
|
270
|
-
|
|
271
|
-
# List all bundled agents
|
|
272
|
-
systematic list agents
|
|
273
|
-
|
|
274
|
-
# Convert a Claude Code agent to OpenCode format
|
|
275
|
-
systematic convert agent ./agents/my-agent.md
|
|
276
|
-
|
|
277
|
-
# Convert with a specific agent mode
|
|
278
|
-
systematic convert agent ./agents/my-agent.md --mode=primary
|
|
279
|
-
|
|
280
|
-
# Show configuration
|
|
281
|
-
systematic config show
|
|
282
|
-
```
|
|
283
|
-
|
|
284
|
-
## Configuration
|
|
285
|
-
|
|
286
|
-
Systematic works out of the box, but you can customize it via configuration files.
|
|
287
|
-
|
|
288
|
-
### Plugin Configuration
|
|
289
|
-
|
|
290
|
-
Configuration is loaded from multiple locations and merged (later sources override earlier ones):
|
|
291
|
-
|
|
292
|
-
1. **User config:** `~/.config/opencode/systematic.json`
|
|
293
|
-
2. **Project config:** `.opencode/systematic.json`
|
|
294
|
-
3. **Custom config:** `$OPENCODE_CONFIG_DIR/systematic.json` (if `OPENCODE_CONFIG_DIR` is set)
|
|
295
|
-
|
|
296
|
-
```json
|
|
297
|
-
{
|
|
298
|
-
"disabled_skills": ["git-worktree"],
|
|
299
|
-
"disabled_agents": [],
|
|
300
|
-
"categories": {
|
|
301
|
-
"review": {
|
|
302
|
-
"temperature": 0.1,
|
|
303
|
-
"steps": 12
|
|
304
|
-
}
|
|
305
|
-
},
|
|
306
|
-
"agents": {
|
|
307
|
-
"security-sentinel": {
|
|
308
|
-
"variant": "thinking"
|
|
309
|
-
},
|
|
310
|
-
"workflow/systematic-implementer": {
|
|
311
|
-
"steps": 20
|
|
312
|
-
}
|
|
313
|
-
},
|
|
314
|
-
"bootstrap": {
|
|
315
|
-
"enabled": true
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
```
|
|
319
|
-
|
|
320
|
-
| Option | Type | Default | Description |
|
|
321
|
-
|--------|------|---------|-------------|
|
|
322
|
-
| `disabled_skills` | `string[]` | `[]` | Skills to exclude from registration |
|
|
323
|
-
| `disabled_agents` | `string[]` | `[]` | Agents to exclude from registration |
|
|
324
|
-
| `categories` | `object` | `{}` | Overlay bundled agents by category (`design`, `docs`, `document-review`, `research`, `review`, `workflow`) |
|
|
325
|
-
| `agents` | `object` | `{}` | Overlay exact bundled agents by unique stem or `<category>/<stem>` key |
|
|
326
|
-
| `bootstrap.enabled` | `boolean` | `true` | Inject the `using-systematic` guide into system prompts |
|
|
327
|
-
| `bootstrap.file` | `string` | — | Custom bootstrap file path (overrides default) |
|
|
328
|
-
|
|
329
|
-
Agent overlays support `model`, `variant`, `temperature`, `top_p`, `permission`, `mode`, `color`, `steps`, `hidden`, exact-agent-only `disable`, and managed `skills`. `color` accepts `#RRGGBB` hex colors or OpenCode theme tokens: `primary`, `secondary`, `accent`, `success`, `warning`, `error`, and `info`. `skills` uses bundled skill frontmatter names like `ce:review`; it is a shortcut that writes OpenCode `permission.skill` rules, not a native OpenCode agent field. Because `model` and `variant` control provider routing/cost/privacy and `permission`/`skills` control tool access, those fields are only accepted from user config or `$OPENCODE_CONFIG_DIR/systematic.json`. Project config may tune non-sensitive presentation and runtime fields such as `temperature`, `top_p`, `mode`, `color`, `steps`, `hidden`, or exact-agent `disable`, but it cannot choose model/provider routing, tune `variant`, or loosen permission/capability policy.
|
|
330
|
-
|
|
331
|
-
Systematic separates config-source precedence from overlay precedence. Config files merge in this order: user config, project config, then `$OPENCODE_CONFIG_DIR/systematic.json` if set. Higher-priority `agents.<key>` and `categories.<id>` entries replace lower-priority entries wholesale, while unrelated keys survive. Project overlays are the exception for trust-sensitive fields: same-key project overlays preserve user-level `model`, `variant`, `permission`, and `skills` fields instead of erasing them. After the effective config is built, Systematic applies agent overlay precedence for bundled agents:
|
|
332
|
-
|
|
333
|
-
1. Exact `agents.<key>` overlay (high-trust `model` wins)
|
|
334
|
-
2. `categories.<category-id>` overlay (high-trust `model` wins)
|
|
335
|
-
3. Source category model default (built-in, code-owned)
|
|
336
|
-
4. Bundled markdown/frontmatter defaults
|
|
337
|
-
5. OpenCode inherited defaults
|
|
338
|
-
|
|
339
|
-
Source category model defaults are primary model choices only — they are not fallback chains. Systematic does not support `fallback_models`, inherited retry semantics, runtime fallback behavior, or fallback to the parent model when a source model is unavailable. Explicit and source model IDs are structurally validated and may still fail at OpenCode runtime if the provider or model is unavailable.
|
|
340
|
-
|
|
341
|
-
Source category model defaults are ordered provider/model preference chains per category. At plugin load, Systematic asks OpenCode for connected providers through `client.config.providers()` and selects the first provider/model entry OpenCode reports as available. If the live provider query fails, Systematic falls back to OpenCode's `models.json` cache; if both sources fail, it skips source-default emission so bundled agents inherit the parent OpenCode model instead of pinning an unavailable model. The chains are ordered preference lists, not runtime fallback chains — `fallback_models` is still not supported.
|
|
342
|
-
|
|
343
|
-
If you want to restore OpenCode parent-model inheritance for a bundled agent or category (opting out of the source default), set `"model": null` in high-trust user or `$OPENCODE_CONFIG_DIR/systematic.json` config. Project config cannot use `model: null` — project config cannot set, erase, or shadow `model` at any value.
|
|
344
|
-
|
|
345
|
-
The source defaults are:
|
|
346
|
-
|
|
347
|
-
| Category | Chain | Rationale | When to Override |
|
|
348
|
-
| --- | --- | --- | --- |
|
|
349
|
-
| `design` | `github-copilot/gemini-3.1-pro-preview`, `openai/gpt-5.5` (`high`), `anthropic/claude-opus-4-7` (`max`), … | High-judgment UX, product, and design work benefits from a strong general reasoning model with broad creative capability. | Override to a faster/cheaper model when design tasks are primarily templating or low-stakes layout work. |
|
|
350
|
-
| `docs` | `github-copilot/gemini-3.1-pro-preview`, `openai/gpt-5.4-mini`, `anthropic/claude-haiku-4-5`, … | Documentation and summarization tasks should start cheaper and faster; quality is sufficient at mid-tier models. | — |
|
|
351
|
-
| `document-review` | `anthropic/claude-opus-4-7` (`max`), `openai/gpt-5.5` (`high`), `github-copilot/gemini-3.1-pro-preview`, … | Requirements and plan critique benefit from the strongest nuanced reasoning to surface non-obvious gaps and contradictions. | — |
|
|
352
|
-
| `research` | `openai/gpt-5.4-mini`, `anthropic/claude-sonnet-4-6`, `github-copilot/gemini-3.1-pro-preview`, … | Tool-heavy synthesis and source evaluation benefit from a strong general reasoning model with broad knowledge. | — |
|
|
353
|
-
| `review` | `anthropic/claude-sonnet-4-6`, `openai/gpt-5.3-codex`, `github-copilot/gemini-3.1-pro-preview`, … | Code, security, and adversarial review benefits from the strongest reasoning to catch subtle bugs and security issues. | Override to a faster model when review tasks are primarily style or formatting checks rather than correctness or security analysis. |
|
|
354
|
-
| `workflow` | `openai/gpt-5.4-mini`, `anthropic/claude-sonnet-4-6`, `opencode/claude-haiku-4-5`, … | Orchestration and bounded implementation tasks should default cheaper and faster; strong reasoning is rarely needed for routing decisions. | — |
|
|
355
|
-
|
|
356
|
-
These defaults are owned by Systematic code and emitted for bundled agents in each category when no stronger high-trust exact or category `model` override exists. Uncategorized bundled agents receive no source default and continue inheriting the parent OpenCode model. Native OpenCode agents with the same emitted key are full replacements and receive no Systematic source model default.
|
|
357
|
-
|
|
358
|
-
Bundled agent markdown still intentionally omits `model` — the field belongs in source code defaults, not portable markdown files. Authors must not add `model:` frontmatter to bundled agent files.
|
|
359
|
-
|
|
360
|
-
Systematic emits a source model as the default; you can override it per-agent or per-category in user or `$OPENCODE_CONFIG_DIR/systematic.json` config. Project config cannot set, erase, or shadow `model` policy.
|
|
361
|
-
|
|
362
|
-
> **Migration: Restoring parent-model inheritance.** If you previously relied on bundled agents inheriting the parent OpenCode model (no source defaults), set `"model": null` in your high-trust config to opt out of the source default per agent or per category. For example:
|
|
363
|
-
>
|
|
364
|
-
> ```jsonc
|
|
365
|
-
> // ~/.config/opencode/systematic.json or $OPENCODE_CONFIG_DIR/systematic.json
|
|
366
|
-
> {
|
|
367
|
-
> "categories": {
|
|
368
|
-
> "review": { "model": null } // All review agents inherit parent model
|
|
369
|
-
> },
|
|
370
|
-
> "agents": {
|
|
371
|
-
> "security-sentinel": { "model": null } // Single agent inherits parent model
|
|
372
|
-
> }
|
|
373
|
-
> }
|
|
374
|
-
> ```
|
|
375
|
-
>
|
|
376
|
-
> This only works from high-trust config (user or `$OPENCODE_CONFIG_DIR/systematic.json`). Project `.opencode/systematic.json` cannot set `model: null` or any `model` value.
|
|
377
|
-
|
|
378
|
-
Native OpenCode agents with the same emitted key are full replacements. An exact Systematic overlay for that key conflicts, while category overlays skip native replacements and continue applying to other bundled agents. Use one canonical agent key form across config sources (`security-sentinel` or `review/security-sentinel`) because alias collisions fail duplicate-target validation.
|
|
379
|
-
|
|
380
|
-
Category IDs are V1 public API because broad policy overlays are a core use case; future agent reorganizations must preserve aliases or provide migration warnings. Category overlays also apply to future bundled agents added to that category. V1 does not include an MCP allowlist shortcut.
|
|
381
|
-
|
|
382
|
-
### Project-Specific Content
|
|
383
|
-
|
|
384
|
-
Add your own skills and agents alongside bundled ones:
|
|
385
|
-
|
|
386
|
-
```
|
|
387
|
-
.opencode/
|
|
388
|
-
├── skills/
|
|
389
|
-
│ └── my-skill/
|
|
390
|
-
│ └── SKILL.md
|
|
391
|
-
└── agents/
|
|
392
|
-
└── my-agent.md
|
|
393
|
-
```
|
|
394
|
-
|
|
395
|
-
Project-level content takes precedence over bundled content with the same name.
|
|
396
|
-
|
|
397
|
-
## Tools
|
|
398
|
-
|
|
399
|
-
The plugin exposes one tool to OpenCode:
|
|
400
|
-
|
|
401
|
-
| Tool | Description |
|
|
402
|
-
|------|-------------|
|
|
403
|
-
| `systematic_skill` | Load Systematic bundled skills by name. Lists available skills in its description and returns formatted skill content when invoked. |
|
|
404
|
-
|
|
405
|
-
For non-Systematic skills (project or user-level), use OpenCode's `skill` tool.
|
|
406
|
-
|
|
407
|
-
## How It Works
|
|
408
|
-
|
|
409
|
-
Systematic uses three OpenCode plugin hooks:
|
|
410
|
-
|
|
411
|
-
```mermaid
|
|
412
|
-
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#1a1a2e', 'primaryTextColor': '#fff', 'primaryBorderColor': '#4FD1C5', 'lineColor': '#4FD1C5', 'secondaryColor': '#16213e', 'tertiaryColor': '#0f0f23'}}}%%
|
|
413
|
-
flowchart TB
|
|
414
|
-
A[Plugin Loaded] --> B[config hook]
|
|
415
|
-
A --> C[tool hook]
|
|
416
|
-
A --> D[system.transform hook]
|
|
417
|
-
|
|
418
|
-
B --> E[Merge bundled agents and skills into OpenCode config]
|
|
419
|
-
C --> F[Register systematic_skill tool]
|
|
420
|
-
D --> G[Inject bootstrap prompt into every conversation]
|
|
421
|
-
|
|
422
|
-
style A fill:#1a1a2e,stroke:#4FD1C5,color:#fff
|
|
423
|
-
style B fill:#16213e,stroke:#4FD1C5,color:#4FD1C5
|
|
424
|
-
style C fill:#16213e,stroke:#E91E8C,color:#E91E8C
|
|
425
|
-
style D fill:#16213e,stroke:#F5A623,color:#F5A623
|
|
426
|
-
style E fill:#0f0f23,stroke:#4FD1C5,color:#B2F5EA
|
|
427
|
-
style F fill:#0f0f23,stroke:#E91E8C,color:#B2F5EA
|
|
428
|
-
style G fill:#0f0f23,stroke:#F5A623,color:#B2F5EA
|
|
429
|
-
```
|
|
430
|
-
|
|
431
|
-
1. **`config` hook** — Discovers and merges bundled skills and agents into your OpenCode configuration. Existing config takes precedence over bundled content. Skills are registered as slash commands with the `systematic:` prefix.
|
|
432
|
-
2. **`tool` hook** — Registers the `systematic_skill` tool, which lists available skills in its XML description and loads skill content on demand.
|
|
433
|
-
3. **`system.transform` hook** — Injects the "Using Systematic" bootstrap guide into system prompts, teaching the AI how to discover and invoke skills.
|
|
434
|
-
|
|
435
|
-
This architecture ensures skills and agents are available immediately without manual setup.
|
|
436
|
-
|
|
437
|
-
## Development
|
|
438
|
-
|
|
439
|
-
### Prerequisites
|
|
440
|
-
|
|
441
|
-
- [Bun](https://bun.sh/) runtime
|
|
442
|
-
- Node.js 18+ (for compatibility)
|
|
443
|
-
|
|
444
|
-
### Setup
|
|
445
|
-
|
|
446
|
-
```bash
|
|
447
|
-
# Clone the repository
|
|
448
|
-
git clone https://github.com/marcusrbrown/systematic.git
|
|
449
|
-
cd systematic
|
|
450
|
-
|
|
451
|
-
# Install dependencies
|
|
452
|
-
bun install
|
|
453
|
-
|
|
454
|
-
# Build the plugin
|
|
455
|
-
bun run build
|
|
456
|
-
|
|
457
|
-
# Run type checking
|
|
458
|
-
bun run typecheck
|
|
459
|
-
|
|
460
|
-
# Run linter
|
|
461
|
-
bun run lint
|
|
462
|
-
|
|
463
|
-
# Run unit tests
|
|
464
|
-
bun test
|
|
465
|
-
```
|
|
466
|
-
|
|
467
|
-
### Project Structure
|
|
468
|
-
|
|
469
|
-
```
|
|
470
|
-
systematic/
|
|
471
|
-
├── src/
|
|
472
|
-
│ ├── index.ts # Plugin entry point (SystematicPlugin)
|
|
473
|
-
│ ├── cli.ts # CLI entry point
|
|
474
|
-
│ └── lib/
|
|
475
|
-
│ ├── bootstrap.ts # System prompt injection
|
|
476
|
-
│ ├── config.ts # JSONC config loading + merging
|
|
477
|
-
│ ├── config-handler.ts # OpenCode config hook implementation
|
|
478
|
-
│ ├── converter.ts # CEP-to-OpenCode content conversion
|
|
479
|
-
│ ├── skill-tool.ts # systematic_skill tool factory
|
|
480
|
-
│ ├── skill-loader.ts # Skill content loading + formatting
|
|
481
|
-
│ ├── skills.ts # Skill discovery
|
|
482
|
-
│ ├── agents.ts # Agent discovery
|
|
483
|
-
│ ├── commands.ts # Command discovery (backward compat)
|
|
484
|
-
│ ├── frontmatter.ts # YAML frontmatter parsing
|
|
485
|
-
│ ├── validation.ts # Agent config validation + type guards
|
|
486
|
-
│ └── walk-dir.ts # Recursive directory walker
|
|
487
|
-
├── skills/ # Bundled skills (SKILL.md files)
|
|
488
|
-
├── agents/ # Bundled agents (6 categories)
|
|
489
|
-
├── docs/ # Starlight documentation site
|
|
490
|
-
├── registry/ # OCX registry config + profiles
|
|
491
|
-
├── scripts/ # Build and utility scripts
|
|
492
|
-
├── tests/
|
|
493
|
-
│ ├── unit/ # Unit test files
|
|
494
|
-
│ └── integration/ # Integration test files
|
|
495
|
-
└── dist/ # Build output
|
|
496
|
-
```
|
|
497
|
-
|
|
498
|
-
### Testing
|
|
499
|
-
|
|
500
|
-
```bash
|
|
501
|
-
# Run all unit tests
|
|
502
|
-
bun test tests/unit
|
|
503
|
-
|
|
504
|
-
# Run a specific test file
|
|
505
|
-
bun test tests/unit/skills.test.ts
|
|
506
|
-
|
|
507
|
-
# Run integration tests
|
|
508
|
-
bun test tests/integration
|
|
509
|
-
|
|
510
|
-
# Run all tests
|
|
511
|
-
bun test
|
|
512
|
-
```
|
|
513
|
-
|
|
514
|
-
### Contributing
|
|
515
|
-
|
|
516
|
-
See [`AGENTS.md`](./AGENTS.md) for detailed development guidelines, code style conventions, and architecture overview.
|
|
55
|
+
Each step invokes a structured skill that guides the AI through the appropriate phase — requirements exploration, implementation planning, execution, and code review.
|
|
517
56
|
|
|
518
|
-
##
|
|
57
|
+
## First-Run Checklist
|
|
519
58
|
|
|
520
|
-
|
|
59
|
+
- [ ] [OpenCode](https://opencode.ai/) installed
|
|
60
|
+
- [ ] Add `@fro.bot/systematic@latest` to your `opencode.json` plugins list
|
|
61
|
+
- [ ] Restart OpenCode
|
|
62
|
+
- [ ] Run `/ce:brainstorm` on something you're building
|
|
63
|
+
- [ ] Verify: the `systematic_skill` tool appears in your tool list
|
|
521
64
|
|
|
522
|
-
##
|
|
65
|
+
## Learn More
|
|
523
66
|
|
|
524
|
-
- [
|
|
525
|
-
- [
|
|
526
|
-
- [
|
|
527
|
-
- [
|
|
528
|
-
- [
|
|
529
|
-
- [OpenCode Plugin API](https://opencode.ai/docs/plugins) — Plugin development reference
|
|
530
|
-
- [Compound Engineering Plugin](https://github.com/EveryInc/compound-engineering-plugin) — Original Claude Code workflows
|
|
531
|
-
- [Source Code](https://github.com/marcusrbrown/systematic) — View the implementation
|
|
67
|
+
- [Documentation](https://fro.bot/systematic/)
|
|
68
|
+
- [Skills Catalog](https://fro.bot/systematic/reference/skills/)
|
|
69
|
+
- [Agents Catalog](https://fro.bot/systematic/reference/agents/)
|
|
70
|
+
- [Configuration Reference](https://fro.bot/systematic/reference/configuration/)
|
|
71
|
+
- [Architecture](./ARCHITECTURE.md)
|
|
532
72
|
|
|
533
73
|
## License
|
|
534
74
|
|
package/dist/cli.js
CHANGED
|
@@ -16087,7 +16087,7 @@ function loadJsoncFile(filePath) {
|
|
|
16087
16087
|
}
|
|
16088
16088
|
return parsed;
|
|
16089
16089
|
}
|
|
16090
|
-
var TYPED_VALIDATION_DOCS_URL = "https://
|
|
16090
|
+
var TYPED_VALIDATION_DOCS_URL = "https://fro.bot/systematic/reference/configuration#typed-validation";
|
|
16091
16091
|
var TYPED_KEY_FIELDS = new Set([
|
|
16092
16092
|
"agents",
|
|
16093
16093
|
"disabled_agents",
|
package/dist/index.js
CHANGED