opencode-plugin-flow 4.1.18 → 4.2.1

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/CHANGELOG.md CHANGED
@@ -1,88 +1,168 @@
1
1
  # Changelog
2
2
 
3
- One short line per release. For the full rationale behind each entry, see the
4
- commit history and review evidence.
3
+ One short entry per release, written for users deciding whether to upgrade.
4
+
5
+ ## [4.2.1] - 2026-07-05
6
+
7
+ Skill routing and boundary clarity across the managed skill set:
8
+
9
+ - Frontmatter descriptions now route single-phase asks cleanly: `flow`
10
+ defers plan-only work to `flow-plan` and single-feature execution to
11
+ `flow-run`, `flow-test` no longer claims every testing intent,
12
+ `flow-deslop` leaves review verdicts to `flow-review`, and
13
+ `flow-ui-quality` hands browser-run mechanics to `flow-test`.
14
+ - `flow-deslop` and `flow-ui-quality` now state explicitly that they are
15
+ helper skills: they contribute evidence only, and the manager owns every
16
+ state-changing `flow_*` call.
17
+ - The `flow` skill gained a routing note covering plan-only, single-feature,
18
+ and status-only asks, and `flow-review` names its manager context
19
+ accurately (the `flow`/`flow-run` skills or a bundled public Flow command).
20
+ - The repo-local contribution preflight now states its output is commit/push
21
+ readiness evidence only and never substitutes for Flow validation or
22
+ review evidence.
23
+ - README lists all four managed non-command helper skills.
24
+
25
+ ## [4.2.0] - 2026-07-01
26
+
27
+ Safety and usability overhaul across the runtime, packaging, skills, and docs:
28
+
29
+ - Uninstall no longer deletes managed skill folders that contain your own
30
+ files or have a damaged version marker; `uninstall --dry-run` previews
31
+ removals.
32
+ - Crashed sessions recover: stale session locks expire automatically and the
33
+ lock timeout error names the manual fix; corrupt or older-version
34
+ `session.json` files are quarantined into `.flow/history/` with recovery
35
+ guidance instead of failing every tool with a raw validation dump.
36
+ - Fixed a batch of small correctness bugs: `$`-sequences in goals no longer
37
+ get mangled, attachments to Flow commands are preserved, failed plan saves
38
+ no longer discard the previous session, replacing a draft plan archives it,
39
+ and `needs_input` no longer reports a stale prior error.
40
+ - OpenCode compatibility: the peer dependency is now a range
41
+ (`>=1.17.3 <2`) so newer OpenCode versions install cleanly; a live smoke
42
+ test boots a real OpenCode server against the packed tarball in CI; CI runs
43
+ on macOS and Node 20/22/24; published bundles are no longer minified and
44
+ ship sourcemaps.
45
+ - Skills: repo-specific content removed from distributed skills, duplicated
46
+ orchestration rules consolidated (smaller command prompts), the read-only
47
+ reviewer no longer receives instructions it cannot execute, and managers
48
+ are told to paste handoff templates into worker prompts.
49
+ - New opt-in `FLOW_EXPERIMENTAL_COMPACTION=1` injects the active session
50
+ summary into OpenCode session compaction; the default stays hook-free.
51
+ - README rewritten around a quick start; install/repair depth moved to
52
+ `docs/troubleshooting.md`.
5
53
 
6
54
  ## [4.1.18] - 2026-07-01
7
55
 
8
- Teach Flow's skill review lore to keep audit fallback bundled, commit preflight staged-only, and long references navigable.
56
+ Review-skill guidance: keep the audit rubric bundled with `/flow-review`,
57
+ restrict commit preflight to the staged boundary, and make long reference
58
+ docs easier to navigate.
9
59
 
10
60
  ## [4.1.17] - 2026-06-28
11
61
 
12
- Teach Flow's parallel pass lore to verify worker handoffs, prune retired managed skill files, and keep manager-owned synthesis explicit.
62
+ Parallel-pass guidance: verify worker handoffs before use, prune retired
63
+ managed skill files during sync, and state explicitly that only the manager
64
+ synthesizes worker output.
13
65
 
14
66
  ## [4.1.16] - 2026-06-22
15
67
 
16
- Quote Flow skill frontmatter lore so GitHub previews parse cleanly and CI guards future YAML slips.
68
+ Quote skill frontmatter values so GitHub renders SKILL.md previews correctly;
69
+ CI now guards against future YAML frontmatter regressions.
17
70
 
18
71
  ## [4.1.15] - 2026-06-22
19
72
 
20
- Refine Flow's orchestration lore into a quick path, bundled parallel pass example, tested doc links, and trusted-publishing release guidance.
73
+ Add a condensed "quick path" to the orchestration guidance, bundle a worked
74
+ parallel-pass example, test that skill doc links resolve, and document the
75
+ trusted-publishing release process.
21
76
 
22
77
  ## [4.1.14] - 2026-06-22
23
78
 
24
- Publish Flow through npm trusted publishing so release CI no longer depends on expiring npm tokens.
79
+ Publish through npm trusted publishing (GitHub Actions OIDC) so releases no
80
+ longer depend on expiring npm tokens.
25
81
 
26
82
  ## [4.1.13] - 2026-06-21
27
83
 
28
- Teach Flow's parallel orchestration lore to walk a full pass while pinning hidden worker permissions to tested docs.
84
+ Walk a full parallel pass in the orchestration guidance and pin hidden worker
85
+ permissions to a tested documentation table.
29
86
 
30
87
  ## [4.1.12] - 2026-06-18
31
88
 
32
- Harden Flow's hidden worker lore, scriptable doctor checks, typed package smoke, and session edge contracts without widening the v4 runtime surface.
89
+ Harden hidden worker prompts, add scriptable `doctor --check`/`--strict`
90
+ modes, type the package smoke test, and tighten session edge-case contracts
91
+ without changing the v4 runtime surface.
33
92
 
34
93
  ## [4.1.11] - 2026-06-17
35
94
 
36
- Give bundled Flow command lore a real title seed so OpenCode can name new chats while keeping the heavy instructions synthetic.
95
+ Give bundled Flow commands a real title seed so OpenCode can name new chats,
96
+ while keeping the heavy command instructions out of the visible prompt.
37
97
 
38
98
  ## [4.1.10] - 2026-06-17
39
99
 
40
- Move Flow session lore onto stable OpenCode instructions so experimental chat hooks no longer shape the default runtime context.
100
+ Move ambient Flow session context onto stable OpenCode `config.instructions`;
101
+ experimental chat hooks no longer shape default runtime context.
41
102
 
42
103
  ## [4.1.9] - 2026-06-17
43
104
 
44
- Make public Flow command lore self-contained so stale native skill discovery cannot block the required loop.
105
+ Make public Flow commands fully self-contained so stale native skill
106
+ discovery cannot block the required loop.
45
107
 
46
108
  ## [4.1.8] - 2026-06-17
47
109
 
48
- Make Flow command preflight overrule stale OpenCode command lore, with review instructions bundled where skill discovery can lag.
110
+ Command preflight now replaces stale resolved Flow command bodies with
111
+ current bundled instructions; review instructions are bundled where skill
112
+ discovery can lag.
49
113
 
50
114
  ## [4.1.7] - 2026-06-17
51
115
 
52
- Teach Flow's managed skill lore to test, commit, and trigger more precisely while keeping release state and `.flow/**` artifacts guarded by explicit maintainer intent.
116
+ Sharpen the flow-test and flow-commit skills' triggers, and require explicit
117
+ maintainer intent before any `.flow/**` artifacts are committed.
53
118
 
54
119
  ## [4.1.6] - 2026-06-16
55
120
 
56
- Make Flow's pinned installer path force-aware, so OpenCode replaces older global plugin entries instead of leaving stale versions behind.
121
+ Recommend `--force` in the pinned installer command so OpenCode replaces
122
+ older global plugin entries instead of leaving stale versions behind.
57
123
 
58
124
  ## [4.1.5] - 2026-06-16
59
125
 
60
- Make Flow installation follow OpenCode's native plugin installer, with pre-start skill sync and older-version fallback.
126
+ Adopt OpenCode's native plugin installer as the primary install path, with a
127
+ pre-start skill sync and a manual-config fallback for older versions.
61
128
 
62
129
  ## [4.1.4] - 2026-06-16
63
130
 
64
- Make Flow skill loading restart-aware across every command, add manual sync repair, and treat missing optional helpers as explicit coverage gaps.
131
+ Make skill loading restart-aware across every command, add manual sync
132
+ repair, and treat missing optional helper skills as explicit coverage gaps.
65
133
 
66
134
  ## [4.1.3] - 2026-06-16
67
135
 
68
- Sharpen Flow's skill/runtime contract with aligned final-review language, broader gate coverage, CLI smoke tests, and skill-aware preflight routing.
136
+ Align final-review language between skills and runtime, broaden gate test
137
+ coverage, add CLI smoke tests, and route command preflight through skill
138
+ awareness.
69
139
 
70
140
  ## [4.1.2] - 2026-06-15
71
141
 
72
- Make Flow's skill registry lag visible with restart-aware setup warnings, a doctor command, and a bundled review fallback for stale OpenCode startups.
142
+ Surface skill-registry lag with restart-aware setup warnings, add the
143
+ `doctor` command, and bundle a review fallback for stale OpenCode startups.
73
144
 
74
145
  ## [4.1.1] - 2026-06-15
75
146
 
76
- Keep Flow's local session ledger out of Git by default with a generated `.flow/.gitignore`, while preserving opt-in versioning for teams that intentionally archive session evidence.
147
+ Keep local session state out of Git by default with a generated
148
+ `.flow/.gitignore`, while preserving opt-in versioning for teams that
149
+ intentionally archive session evidence.
77
150
 
78
151
  ## [4.1.0] - 2026-06-15
79
152
 
80
- Add Flow-native orchestration handoffs, verification gates, and a hidden verifier worker, inspired by Ray Fernando's parallel agent workflow skill work and RepoPrompt CE's context-engineering approach, while keeping the public runtime surface unchanged.
153
+ Add Flow-native orchestration handoffs, verification gates, and a hidden
154
+ verifier worker, inspired by Ray Fernando's parallel agent workflow skill
155
+ work and RepoPrompt CE's context-engineering approach. Public runtime surface
156
+ unchanged.
81
157
 
82
158
  ## [4.0.1] - 2026-06-15
83
159
 
84
- Teach Flow to fan out through named evidence, validation, audit, review, and candidate workers while keeping runtime state changes manager-owned.
160
+ Fan out through named evidence, validation, audit, review, and candidate
161
+ workers while keeping runtime state changes manager-owned.
85
162
 
86
163
  ## [4.0.0] - 2026-06-14
87
164
 
88
- Breaking overhaul: Flow is now a skills-first plugin with a minimal v4 runtime ledger, seven tools, one active `.flow/session.json`, archived history, embedded review evidence on completion, and no context-pack or separate review-decision framework.
165
+ Breaking overhaul: Flow is now a skills-first plugin with a minimal v4
166
+ runtime ledger, seven tools, one active `.flow/session.json`, archived
167
+ history, review evidence embedded in completion, and no context-pack or
168
+ separate review-decision framework.
package/README.md CHANGED
@@ -1,131 +1,67 @@
1
1
  # Flow Plugin for OpenCode
2
2
 
3
- `opencode-plugin-flow` is a skills-first workflow helper for OpenCode. The skills carry planning, execution, validation, cleanup, UI quality, review, safe commit preparation, and orchestration judgment. The plugin code stays deliberately small: it keeps a durable `.flow/session.json` ledger and enforces the hard gates prompts should not be trusted to remember.
3
+ `opencode-plugin-flow` gives OpenCode a durable, resumable planning-and-execution
4
+ loop for larger coding work: plan a goal as discrete features, approve the plan,
5
+ then implement one feature at a time with enforced validation and review
6
+ evidence. State lives in `.flow/session.json`, so a session survives restarts,
7
+ model switches, and context loss.
4
8
 
5
- Flow v4 is a breaking simplification. It does not preserve v3 session layouts or retired tool aliases.
9
+ The design is skills-first: the skills carry planning, execution, validation,
10
+ review, and orchestration judgment, while the plugin runtime stays deliberately
11
+ small — it keeps the session ledger and enforces the hard gates prompts should
12
+ not be trusted to remember.
6
13
 
7
- ## What Flow adds
14
+ Full project documentation is available in the
15
+ [Flow OpenCode wiki](https://github.com/ddv1982/flow-opencode/wiki).
8
16
 
9
- - A resumable one-feature-at-a-time loop for larger coding work.
10
- - Skill-guided planning, running, validation, review, cleanup, and UI quality.
11
- - First-class validation guidance through `flow-test`, plus user-triggered safe
12
- commit preparation through `flow-commit`.
13
- - Hidden evidence, review, validation, audit, verifier, and candidate workers for broad parallel evidence passes.
14
- - Structured handoffs with coverage, evidence, confidence, and gaps.
15
- - Runtime gates for approval immutability, validation evidence, review evidence, and safe session closure.
16
-
17
- The manager still owns every Flow state change. Workers gather evidence; they do not approve plans, complete features, or close sessions. Flow may use parallel workers to reduce uncertainty, but Flow remains a serial state machine: parallel work produces candidate evidence, and only the manager records state.
18
-
19
- ## Install or update
20
-
21
- Use OpenCode's plugin installer when your OpenCode version supports it:
17
+ ## Quick start
22
18
 
23
19
  ```bash
24
- opencode plugin opencode-plugin-flow@4.1.18 --global --force
25
- npx -y opencode-plugin-flow@4.1.18 sync
20
+ opencode plugin opencode-plugin-flow@4.2.1 --global --force
21
+ npx -y opencode-plugin-flow@4.2.1 sync
26
22
  ```
27
23
 
28
- The first command adds Flow to your global OpenCode plugin config or replaces an
29
- older pinned Flow entry. The `sync` command pre-installs Flow's managed skills so
30
- the next OpenCode startup can load the refreshed skill registry.
31
-
32
- Then start or restart OpenCode. On startup, the plugin syncs its global skills
33
- into:
24
+ Restart OpenCode, then give Flow a goal:
34
25
 
35
26
  ```text
36
- ~/.config/opencode/skills/flow/SKILL.md
37
- ~/.config/opencode/skills/flow-plan/SKILL.md
38
- ~/.config/opencode/skills/flow-run/SKILL.md
39
- ~/.config/opencode/skills/flow-test/SKILL.md
40
- ~/.config/opencode/skills/flow-review/SKILL.md
41
- ~/.config/opencode/skills/flow-deslop/SKILL.md
42
- ~/.config/opencode/skills/flow-ui-quality/SKILL.md
43
- ~/.config/opencode/skills/flow-commit/SKILL.md
27
+ /flow-auto add rate limiting to the public API
44
28
  ```
45
29
 
46
- If your OpenCode version does not have `opencode plugin`, add Flow to your
47
- OpenCode config manually instead:
48
-
49
- ```json
50
- {
51
- "plugin": ["opencode-plugin-flow@4.1.18"]
52
- }
53
- ```
54
-
55
- When updating through this fallback, replace the older
56
- `opencode-plugin-flow@...` entry with the new pinned version instead of adding a
57
- duplicate entry.
58
-
59
- Then run the same pre-start skill sync and start or restart OpenCode:
60
-
61
- ```bash
62
- npx -y opencode-plugin-flow@4.1.18 sync
63
- ```
30
+ Flow inspects the repo, saves a plan of features, asks for approval (or
31
+ proceeds if you already authorized autonomous work), then runs the loop:
32
+ implement one feature → validate it → review it → record evidence → next
33
+ feature. `/flow-status` shows where you are at any point, including after a
34
+ restart.
64
35
 
65
- Project-local skill overrides still work through OpenCode's normal lookup:
36
+ ## What a session looks like
66
37
 
67
38
  ```text
68
- .opencode/skills/flow-plan/SKILL.md
69
- ```
70
-
71
- If Flow installs or updates skills during the current OpenCode startup, restart
72
- OpenCode once more before using Flow commands. OpenCode may have already scanned
73
- the skill registry for the running process, so a just-synced skill can exist on
74
- disk while still being unavailable to that process. Flow reports this through
75
- `flow_status` as `setup.skills.status: "restart_required"`.
76
-
77
- To update a pinned Flow version later, rerun the same install command with the
78
- new version.
79
-
80
- `--force` is intentional here: OpenCode keeps an existing same-package plugin
81
- entry unless replacement is requested, so the flag avoids leaving an older pinned
82
- version in your global `opencode.json`.
83
-
84
- To inspect the installed skill set:
85
-
86
- ```bash
87
- npx -y opencode-plugin-flow@4.1.18 doctor
88
- ```
89
-
90
- For automation, keep the default human-readable `doctor` output and opt into
91
- machine behavior explicitly:
92
-
93
- ```bash
94
- npx -y opencode-plugin-flow@4.1.18 doctor --json
95
- npx -y opencode-plugin-flow@4.1.18 doctor --check
96
- ```
97
-
98
- `doctor --check` and `doctor --strict` exit nonzero when the health status is
99
- `sync_required` or `action_required`; plain `doctor` remains advisory and exits
100
- successfully.
101
-
102
- If a command reports `Skill "flow-review" not found. Available skills...` or a
103
- similar Flow skill-loading error after upgrading, it is usually an older
104
- OpenCode process or stale resolved command body. Flow command preflight replaces
105
- public Flow command bodies in the running process, and `/flow-review` no longer
106
- asks OpenCode to native-load required public Flow skills. Public Flow command
107
- preflight replaces stale command bodies with bundled command instructions, so
108
- `/flow-auto`, `/flow-plan`, `/flow-run`, and `/flow-review` can continue even
109
- when native skill discovery lags. Run `/flow-status` or the doctor command
110
- above first. Missing, incomplete, or outdated managed skills can still be
111
- repaired with:
112
-
113
- ```bash
114
- npx -y opencode-plugin-flow@4.1.18 sync
39
+ > /flow-auto add rate limiting to the public API
40
+
41
+ flow_plan_save goal: "add rate limiting to the public API"
42
+ features: rate-limit-middleware, per-route-config, docs-update
43
+ (you approve the plan)
44
+ flow_plan_approve plan locked features are now immutable
45
+ flow_run_start feature: rate-limit-middleware
46
+ ... implementation, tests ...
47
+ flow_feature_complete
48
+ validationRun: "bun test tests/middleware.test.ts" passed
49
+ featureReview: passed
50
+ flow_run_start feature: per-route-config
51
+ ...
52
+
53
+ > /flow-status
54
+ status: running, 1/3 features completed
55
+ nextAction: complete feature "per-route-config"
115
56
  ```
116
57
 
117
- Then restart OpenCode so the refreshed registry is loaded. `sync` manages all
118
- bundled Flow skills: `flow`, `flow-plan`, `flow-run`, `flow-test`,
119
- `flow-review`, `flow-deslop`, `flow-ui-quality`, and `flow-commit`. If doctor
120
- reports a foreign or edited managed skill folder, Flow leaves it in place and
121
- asks for a user decision instead of overwriting local work.
58
+ Interrupt at any point; `/flow-run` resumes the next approved feature. On the
59
+ final feature Flow requires broad project-level validation and a final review
60
+ whose depth matches the approved plan before the session can close as
61
+ completed.
122
62
 
123
63
  ## Commands
124
64
 
125
- Commands are bundled entrypoints. OpenCode still syncs the Flow skills for
126
- discoverability and manual use, but public command execution does not depend on
127
- native skill discovery for the required Flow loop:
128
-
129
65
  | Command | Purpose |
130
66
  | --- | --- |
131
67
  | `/flow-auto <goal>` | Drive the full skill-guided loop. |
@@ -134,16 +70,13 @@ native skill discovery for the required Flow loop:
134
70
  | `/flow-review` | Run a read-only review. |
135
71
  | `/flow-status` | Show the active session and next action. |
136
72
 
137
- Flow reserves its public command IDs (`flow-auto`, `flow-plan`, `flow-run`,
138
- `flow-review`, `flow-status`) and internal worker IDs (`flow-reviewer`,
139
- `flow-evidence-worker`, `flow-validation-worker`, `flow-audit-worker`,
140
- `flow-candidate-worker`, `flow-verifier-worker`) while the plugin is enabled.
141
- The plugin injects those entries to keep command preflight and worker permission
142
- boundaries safe.
73
+ Commands are bundled entrypoints: they carry their own instructions, so they
74
+ keep working even when OpenCode's native skill discovery lags behind a fresh
75
+ install (see [docs/troubleshooting.md](docs/troubleshooting.md)).
143
76
 
144
- `flow-test` and `flow-commit` are managed helper skills, not public commands in
145
- this release. `flow-commit` is user-triggered only and stays outside the
146
- autonomous Flow runtime loop.
77
+ `flow-test`, `flow-deslop`, `flow-ui-quality`, and `flow-commit` are managed
78
+ helper skills, not public commands.
79
+ `flow-commit` is user-triggered only and stays outside the autonomous loop.
147
80
 
148
81
  ## Tools
149
82
 
@@ -159,53 +92,66 @@ The runtime exposes seven tools:
159
92
  | `flow_feature_reset` | Reset one feature and its dependents. |
160
93
  | `flow_session_close` | Archive the active session as completed, deferred, or abandoned. |
161
94
 
162
- There is no `flow_context` and no separate review-record tool. Review evidence is part of `flow_feature_complete`: every completed feature needs a passing `featureReview`, and the final feature also needs a passing `finalReview`.
95
+ Review evidence is part of `flow_feature_complete`: every completed feature
96
+ needs a passing `featureReview`, and the final feature also needs a passing
97
+ `finalReview`.
163
98
 
164
- ## Runtime Contract
99
+ ## What the runtime enforces
165
100
 
166
- The runtime owns only safety:
101
+ The runtime owns only safety; judgment lives in the skills:
167
102
 
168
- - `.flow/session.json` is the active source of truth.
169
- - `.flow/opencode-instructions.md` is a generated OpenCode instruction
170
- projection of the active session. It is refreshed from `session.json`; do not
171
- edit it.
172
- - `.flow/history/<session-id>.json` stores closed sessions.
173
- - Session writes are locked and atomic.
174
- - Flow writes `.flow/.gitignore` so session state stays out of Git by default.
175
- - Mutable roots cannot be filesystem roots or `$HOME`.
103
+ - `.flow/session.json` is the single source of truth; writes are locked and
104
+ atomic, and closed sessions are archived under `.flow/history/`.
176
105
  - Plans cannot be changed after approval.
177
106
  - Only one feature can be active at a time.
178
- - Completion requires passing validation evidence.
179
- - Non-final completion requires `validationScope: "targeted"`.
180
- - Final completion requires `validationScope: "broad"` and a passing final review matching the plan's `finalReviewPolicy`.
181
- - `flow_session_close` accepts `kind: "completed"` only after an approved plan has passed final completion.
182
- - Reset keeps prior history entries as audit/provenance data. Current state comes
183
- from `features`, `activeFeature`, `status`, `progress`, and `closure`, not from
184
- old completion summaries.
185
- - Deferred and abandoned closures archive the session with its status at the time
186
- of closure, clear the active session file, and remove the generated instruction
187
- projection.
107
+ - Completion requires passing validation evidence: `targeted` scope for
108
+ ordinary features, `broad` scope plus a passing final review for the last
109
+ one.
110
+ - A session can close as `completed` only after final completion has passed.
111
+ - Crash recovery is built in: stale session locks expire automatically and
112
+ unreadable session files are quarantined with recovery guidance, never
113
+ silently deleted.
114
+ - Flow writes `.flow/.gitignore` so session state stays out of Git by default.
115
+ - `.flow/opencode-instructions.md` is a generated projection of the active
116
+ session that keeps ambient context accurate; do not edit it.
188
117
 
189
- Planning quality, decomposition, review depth, validation adequacy, orchestration, and recovery judgment live in the skills.
118
+ ## Hidden workers
190
119
 
191
- ## State Layout
120
+ For broad work, Flow's manager can fan out read-only workers
121
+ (`flow-evidence-worker`, `flow-validation-worker`, `flow-audit-worker`,
122
+ `flow-candidate-worker`, `flow-verifier-worker`, and the `flow-reviewer`) with
123
+ locked-down permissions. Workers gather evidence; they never approve plans,
124
+ complete features, or close sessions. Flow reserves those agent ids and the
125
+ public command ids while the plugin is enabled, and warns if they collide with
126
+ your own config.
192
127
 
193
- ```text
194
- .flow/session.json
195
- .flow/opencode-instructions.md
196
- .flow/history/<session-id>.json
197
- .flow/session.lock/
128
+ ## Install details, doctor, repair, uninstall
129
+
130
+ See [docs/troubleshooting.md](docs/troubleshooting.md) for skill sync
131
+ mechanics, the `doctor`/`sync` CLI, older-OpenCode install fallback, stuck
132
+ session recovery, and uninstall (`uninstall --dry-run` previews removals).
133
+
134
+ To update a pinned Flow version, rerun the install command with the new
135
+ version. To inspect skill health:
136
+
137
+ ```bash
138
+ npx -y opencode-plugin-flow@4.2.1 doctor
198
139
  ```
199
140
 
200
- Versioning `.flow` state is opt-in. Keep it ignored by default, and archive only
201
- exact Flow session artifacts when a maintainer intentionally asks for them; avoid
202
- broad forced adds of `.flow/**`.
141
+ ## Experimental: compaction context
142
+
143
+ Flow's ambient context uses stable OpenCode configuration by default. If you
144
+ want the active session summary injected into OpenCode's session compaction as
145
+ well, opt in with the environment variable `FLOW_EXPERIMENTAL_COMPACTION=1`.
146
+ This uses OpenCode's experimental compaction hook and may change with OpenCode
147
+ versions; the default remains hook-free.
203
148
 
204
149
  ## Development
205
150
 
206
151
  ```bash
207
152
  bun install
208
- bun run check
153
+ bun run check # typecheck + lint + build + tests
154
+ bun run smoke:live # boots a real OpenCode server against the packed tarball
209
155
  ```
210
156
 
211
157
  The package exports only the OpenCode plugin entrypoint:
@@ -214,20 +160,17 @@ The package exports only the OpenCode plugin entrypoint:
214
160
  import flowPlugin from "opencode-plugin-flow";
215
161
  ```
216
162
 
217
- ## Credits
218
-
219
- Flow's parallel orchestration guidance was inspired by Ray Fernando's skill work on parallel agent workflows. Flow also draws conceptual inspiration from [RepoPrompt CE](https://github.com/repoprompt/repoprompt-ce), especially its emphasis on codebase orientation, context engineering, agent orchestration, and reviewable handoffs.
163
+ See [docs/development.md](docs/development.md) and
164
+ [docs/maintainer-contract.md](docs/maintainer-contract.md) for the
165
+ runtime/skills split and release process.
220
166
 
221
- The Flow version is its own OpenCode-native design: skills-first, manager-owned state, hidden workers, and no extra runtime ledger.
222
-
223
- ## Uninstall
224
-
225
- First remove `opencode-plugin-flow` from your OpenCode plugin config so future
226
- OpenCode startups stop loading Flow. Then remove Flow-owned synced skills:
167
+ ## Credits
227
168
 
228
- ```bash
229
- npx -y opencode-plugin-flow@4.1.18 uninstall
230
- ```
169
+ Flow's parallel orchestration guidance was inspired by Ray Fernando's skill
170
+ work on parallel agent workflows. Flow also draws conceptual inspiration from
171
+ [RepoPrompt CE](https://github.com/repoprompt/repoprompt-ce), especially its
172
+ emphasis on codebase orientation, context engineering, agent orchestration,
173
+ and reviewable handoffs.
231
174
 
232
- Restart OpenCode after both steps. This removes Flow-owned synced skills when
233
- they are pristine. User-edited or foreign skill folders are kept.
175
+ The Flow version is its own OpenCode-native design: skills-first,
176
+ manager-owned state, hidden workers, and no extra runtime ledger.