@fro.bot/systematic 3.2.1 → 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.
Files changed (3) hide show
  1. package/HARNESSES.md +12 -3
  2. package/README.md +19 -12
  3. 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, and its skill loading has no OpenCode-style permission gate `docs/src/content/docs/guides/pi-harness.mdx:39-47` [PI-6]. Those are deliberate honesty boundaries, not implied parity.
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. Integration coverage lives in `tests/integration/claude-code.test.ts` [CC-10].
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** — `docs/src/content/docs/guides/pi-harness.mdx:39-47`.
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 - Structured Engineering Workflows for OpenCode" src="./assets/banner.svg" width="100%">
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,11 +29,13 @@ 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 an [OpenCode](https://opencode.ai/) plugin and, from v3, a [Pi coding agent](https://github.com/earendil-works/pi-coding-agent) extension in the same package — that ships 31 bundled skills covering brainstorming, planning, implementation, review, and knowledge capture. It includes 37 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.
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 plugin** — full integration (slash commands, `systematic_skill` tool, agent registration):
38
+ **OpenCode**:
37
39
 
38
40
  ```json
39
41
  { "plugin": ["@fro.bot/systematic@latest"] }
@@ -41,22 +43,27 @@ Systematic is an [OpenCode](https://opencode.ai/) plugin — and, from v3, a [Pi
41
43
 
42
44
  Add that to `~/.config/opencode/opencode.json` and restart OpenCode.
43
45
 
44
- **Pi coding agent** — same package, second harness (bundled skills, `systematic_skill`, persona delegation via `systematic_delegate`):
46
+ **Pi**:
45
47
 
46
48
  ```bash
47
49
  npx @fro.bot/systematic setup --harness pi
48
50
  ```
49
51
 
50
- See the [Pi harness guide](https://fro.bot/systematic/guides/pi-harness/) for what carries over and where parity honestly ends.
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 (Claude Code, Cursor, Copilot, …):
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
- - [ ] [OpenCode](https://opencode.ai/) installed
76
- - [ ] Add `@fro.bot/systematic@latest` to your `opencode.json` plugins list
77
- - [ ] Restart OpenCode
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 `systematic_skill` tool appears in your tool list
86
+ - [ ] Verify: the skill loads and displays usage instructions
80
87
 
81
88
  ## Learn More
82
89
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fro.bot/systematic",
3
- "version": "3.2.1",
3
+ "version": "3.2.2",
4
4
  "description": "Structured engineering workflows for OpenCode",
5
5
  "type": "module",
6
6
  "homepage": "https://fro.bot/systematic",