@fro.bot/systematic 3.2.0 → 3.2.2
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/HARNESSES.md +12 -3
- package/README.md +20 -13
- package/package.json +1 -1
package/HARNESSES.md
CHANGED
|
@@ -30,7 +30,7 @@ Pi's profile records degraded or unavailable native capabilities and explicit fa
|
|
|
30
30
|
|
|
31
31
|
The package manifest exposes the extension and skills at `package.json:17-23`, with tests verifying both manifest entries and their packaged paths `tests/unit/package-exports.test.ts:42-66,241-267` [PI-4]. Pi's RPC/JSONL test fixture isolates its environment (`tests/integration/pi.test.ts:349-388`), and the installed runtime exposes environment-specific agent/session directories `node_modules/@earendil-works/pi-coding-agent/dist/config.js:396-398` [PI-5].
|
|
32
32
|
|
|
33
|
-
Pi does not consume `disabled_skills` or Systematic's OpenCode configuration
|
|
33
|
+
Pi does not consume `disabled_skills` or Systematic's OpenCode configuration: `src/pi.ts` constructs its skill resolver with a hardcoded empty disabled-skills list, so every bundled skill is available through `systematic_skill` regardless of what is disabled for OpenCode. Pi's skill loading also has no OpenCode-style permission gate — OpenCode's `skill-tool.ts` calls `context.ask({ permission: 'skill', ... })` before returning skill content, but Pi 0.80.6's extension API has no equivalent hook and Systematic's Pi tool implementation does not call one [PI-6]. Those are deliberate honesty boundaries, not implied parity.
|
|
34
34
|
|
|
35
35
|
## Claude Code — Tier 1 shipped adapter
|
|
36
36
|
|
|
@@ -38,7 +38,16 @@ Claude Code's profile records name-based subagent dispatch, `AskUserQuestion`, t
|
|
|
38
38
|
|
|
39
39
|
Delegation is name-based: a prompt invokes a subagent by name (for example, "Use the systematic-implementer subagent to …") and Claude Code resolves it against the plugin's `agents/` directory; skills may additionally run scoped subagent forks via `context: fork` [CC-1]. `AskUserQuestion` is the blocking-interaction tool [CC-2]. `TodoWrite` is deprecated and disabled by default; `TaskCreate`/`TaskGet`/`TaskList`/`TaskUpdate` are the current task-tracking tools [CC-3][CC-4]. Skills are discovered natively from `SKILL.md` under `~/.claude/skills/`, `.claude/skills/`, and the plugin's own `skills/` directory through the built-in Skill tool; Systematic registers no `systematic_skill` tool on Claude Code, unlike its OpenCode and Pi adapters [CC-5][CC-6][CC-9].
|
|
40
40
|
|
|
41
|
-
Behavioral enforcement rides a plugin output style (`force-for-plugin: true`), which is the documented plugin-native channel that modifies the system prompt directly and auto-applies when the plugin is enabled. The `SessionStart` hook carries declarative session state only (a static skill/agent count and catalog) — imperative hook content is refused as prompt injection, so the hook does not attempt to inject behavioral instructions. Workflow content ships as native skills; agents ship as native subagents.
|
|
41
|
+
Behavioral enforcement rides a plugin output style (`force-for-plugin: true`), which is the documented plugin-native channel that modifies the system prompt directly and auto-applies when the plugin is enabled. The `SessionStart` hook carries declarative session state only (a static skill/agent count and catalog) — imperative hook content is refused as prompt injection, so the hook does not attempt to inject behavioral instructions. Workflow content ships as native skills; agents ship as native subagents. The integration is deliberately layered rather than relying on one mechanism to do everything:
|
|
42
|
+
|
|
43
|
+
| Layer | Mechanism | Role |
|
|
44
|
+
|---|---|---|
|
|
45
|
+
| Enforcement | Plugin output style (`force-for-plugin: true`) | Authoritative, install-alone behavioral discipline |
|
|
46
|
+
| State | `SessionStart` hook | Declarative session facts (skill/subagent availability) only |
|
|
47
|
+
| Workflow | Native skills | Skill content and instructions, discovered natively |
|
|
48
|
+
| Agents | Native subagents | Persona dispatch by name |
|
|
49
|
+
|
|
50
|
+
Honest capability boundary: output-style enforcement is real and applies automatically on install, but it operates at the system-prompt level — the same layer as any other instruction the model receives — so it is strong guidance, not a hard gate the model cannot violate. Coverage also differs by surface: plugin-bundled hooks fire app-wide, including in Cowork, while a project-local `.claude/settings.json` hook fires in the Code tab but not in Cowork — state or enforcement reaching Cowork sessions has to come through the plugin, not a project-local hook. Integration coverage lives in `tests/integration/claude-code.test.ts` [CC-10].
|
|
42
51
|
|
|
43
52
|
## Codex CLI — Tier 2 documented portability target
|
|
44
53
|
|
|
@@ -80,7 +89,7 @@ Migrated-skill discipline is enforced by the [content-integrity gate](scripts/co
|
|
|
80
89
|
- **PI-3** — `src/pi.ts:85-113`.
|
|
81
90
|
- **PI-4** — `package.json:17-23`; `tests/unit/package-exports.test.ts:42-66,241-267`.
|
|
82
91
|
- **PI-5** — `tests/integration/pi.test.ts:349-388`; installed Pi source `node_modules/@earendil-works/pi-coding-agent/dist/config.js:396-398`.
|
|
83
|
-
- **PI-6** — `
|
|
92
|
+
- **PI-6** — `src/pi.ts:59-60` (hardcoded empty disabled-skills list); OpenCode's contrasting permission gate at `src/lib/skill-tool.ts:86-87`.
|
|
84
93
|
- **CC-P** — [Claude Code profile](skills/using-systematic/references/claude-code-profile.md#L5-L10).
|
|
85
94
|
- **CC-1** — [Claude Code skills](https://code.claude.com/docs/en/skills) (`context: fork`); name-based subagent dispatch verified via `claude-code/agents/` and the plugin's invocation convention [CC-9].
|
|
86
95
|
- **CC-2** — [Claude Code tools reference](https://code.claude.com/docs/en/tools-reference).
|
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<picture>
|
|
4
4
|
<source media="(prefers-color-scheme: dark)" srcset="./assets/banner.svg">
|
|
5
5
|
<source media="(prefers-color-scheme: light)" srcset="./assets/banner.svg">
|
|
6
|
-
<img alt="Systematic -
|
|
6
|
+
<img alt="Systematic — Compound-Engineering Workflows for OpenCode, Pi, and Claude Code" src="./assets/banner.svg" width="100%">
|
|
7
7
|
</picture>
|
|
8
8
|
|
|
9
9
|
<br><br>
|
|
@@ -29,34 +29,41 @@ You want AI that follows your process, not just your prompts. You want repeatabl
|
|
|
29
29
|
|
|
30
30
|
## What You Get
|
|
31
31
|
|
|
32
|
-
Systematic is
|
|
32
|
+
Systematic is a compound-engineering workflow: brainstorm, plan, work, review — each phase a structured skill that guides the AI through requirements exploration, implementation planning, execution, and code review, capturing what was learned along the way. It ships 31 bundled skills and 37 specialized agents for architecture, security, performance, design, and code review.
|
|
33
|
+
|
|
34
|
+
The workflow runs on three harnesses from one source: [OpenCode](https://opencode.ai/), [Pi](https://github.com/earendil-works/pi-coding-agent), and Claude Code. Each gets a native install path; skill and agent content is identical across all three.
|
|
33
35
|
|
|
34
36
|
## Quick Install
|
|
35
37
|
|
|
36
|
-
**OpenCode
|
|
38
|
+
**OpenCode**:
|
|
37
39
|
|
|
38
40
|
```json
|
|
39
|
-
{ "
|
|
41
|
+
{ "plugin": ["@fro.bot/systematic@latest"] }
|
|
40
42
|
```
|
|
41
43
|
|
|
42
44
|
Add that to `~/.config/opencode/opencode.json` and restart OpenCode.
|
|
43
45
|
|
|
44
|
-
**Pi
|
|
46
|
+
**Pi**:
|
|
45
47
|
|
|
46
48
|
```bash
|
|
47
49
|
npx @fro.bot/systematic setup --harness pi
|
|
48
50
|
```
|
|
49
51
|
|
|
50
|
-
|
|
52
|
+
**Claude Code**:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
claude plugin marketplace add marcusrbrown/systematic
|
|
56
|
+
claude plugin install systematic@systematic
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
See the [installation guide](https://fro.bot/systematic/getting-started/installation/) for what carries over per harness and where parity honestly ends.
|
|
51
60
|
|
|
52
|
-
**`npx skills`** — portable skill content for any AI harness (
|
|
61
|
+
**`npx skills`** — portable skill content for any AI harness (Cursor, Copilot, …), content only, no tool registration:
|
|
53
62
|
|
|
54
63
|
```bash
|
|
55
64
|
npx skills add marcusrbrown/systematic
|
|
56
65
|
```
|
|
57
66
|
|
|
58
|
-
Use the plugin if you're on OpenCode and want the complete experience, the Pi setup command if you're on Pi, or `npx skills` if you want the skill Markdown files dropped into whatever harness you're running.
|
|
59
|
-
|
|
60
67
|
## First Workflow
|
|
61
68
|
|
|
62
69
|
Once installed, run a full engineering cycle on any feature:
|
|
@@ -72,11 +79,11 @@ Each step invokes a structured skill that guides the AI through the appropriate
|
|
|
72
79
|
|
|
73
80
|
## First-Run Checklist
|
|
74
81
|
|
|
75
|
-
- [ ]
|
|
76
|
-
- [ ]
|
|
77
|
-
- [ ] Restart
|
|
82
|
+
- [ ] Your harness (OpenCode, Pi, or Claude Code) installed
|
|
83
|
+
- [ ] Systematic installed via the harness's path above
|
|
84
|
+
- [ ] Restart the harness
|
|
78
85
|
- [ ] Run `/ce:brainstorm` on something you're building
|
|
79
|
-
- [ ] Verify: the
|
|
86
|
+
- [ ] Verify: the skill loads and displays usage instructions
|
|
80
87
|
|
|
81
88
|
## Learn More
|
|
82
89
|
|