@sjawhar/opencode-legion-envoy 8.8.0 → 8.8.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.
@@ -15157,7 +15157,7 @@ var envoyToolSpecs = [
15157
15157
  },
15158
15158
  {
15159
15159
  name: "envoy_unsubscribe",
15160
- description: "Unsubscribe this session from Envoy topics, or remove all current subscriptions if topics are omitted.",
15160
+ description: "Unsubscribe this session from Envoy topics, or remove all current subscriptions if topics are omitted. A subscription another plugin holds for this session's role stays, and the result lists it as kept.",
15161
15161
  arguments: (schema) => ({ topics: schema.array(schema.string()).optional() }),
15162
15162
  operation: EnvoyToolOperation.unsubscribe
15163
15163
  },
@@ -15190,7 +15190,7 @@ var envoyToolSpecs = [
15190
15190
  },
15191
15191
  {
15192
15192
  name: "envoy_role_set",
15193
- description: "Set the current session as the holder of a named role. Messages published to notifications.role.<role> route to this session.",
15193
+ description: "Set the current session as the holder of a named role. Messages published to notifications.role.<role> route to this session. Moving to a different role is refused while another plugin holds subscriptions that last only as long as this session keeps its current role.",
15194
15194
  arguments: (schema) => ({ role: schema.string() }),
15195
15195
  operation: EnvoyToolOperation.setRole
15196
15196
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sjawhar/opencode-legion-envoy",
3
- "version": "8.8.0",
3
+ "version": "8.8.2",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "dist/src/server.js",
@@ -18,9 +18,10 @@ follows is a document on the same issue. This skill replaces superpowers' `brain
18
18
  - There is no approval after each section, only the one at the end.
19
19
  - A small change gets a short spec, never a design in chat: its size shortens the spec and changes
20
20
  nothing about where the conversation happens.
21
- - No spec or plan file goes in the repository (`docs/superpowers/specs/`,
22
- `docs/superpowers/plans/`, `docs/plans/`): the spec is the issue's primary document and the plan
23
- is its `plan.md` document.
21
+ - The spec is the issue's primary document and the plan is its `plan.md` document, in place of
22
+ superpowers' spec and plan files (`docs/superpowers/specs/`, `docs/superpowers/plans/`). A copy
23
+ also goes in the repository only when the person, the issue, its spec or the repository asks for
24
+ one.
24
25
 
25
26
  The brainstorming stages still shape what you ask: clarifying questions, then two or three
26
27
  approaches with a recommendation, then the design section by section. A question that depends on
@@ -28,8 +29,8 @@ no open answer goes out at once, whatever its stage.
28
29
 
29
30
  Read `skill://dispatch` before the first version: its "Writing a spec", "Decision blocks",
30
31
  "Writing for the human" and "Approval of a spec" sections define the spec's shape, each block's
31
- shape, and when approval is requested. A Legion phase worker never writes the spec; it sends a
32
- decision to its architect (`skill://legion-worker`).
32
+ shape, and when approval is requested. A Legion phase worker never writes the issue's spec
33
+ document; it sends a decision to its architect (`skill://legion-worker`).
33
34
 
34
35
  ## Where the spec lives
35
36
 
@@ -98,7 +99,7 @@ reactions, and so do corrections to it. Neither your model nor theirs is the sta
98
99
 
99
100
  Once the spec is approved — or, when the issue needed no spec at all (a bug fix with no design
100
101
  decision), once you have enough to plan from — the implementation plan is the issue's `plan.md`
101
- document, never its spec and never a repository file:
102
+ document, never its spec:
102
103
 
103
104
  ```bash
104
105
  dispatch artifact --issue <KEY> --name plan.md --content-file - <<'EOF'
@@ -108,7 +109,9 @@ EOF
108
109
 
109
110
  Uploading `plan.md` again writes its next version. `writing-plans`'s content rules still apply in
110
111
  full — file structure, task right-sizing, bite-sized steps, no placeholders, the header, and its
111
- self-review — only where the plan lives changes: the issue's `plan.md`, never a repository file.
112
+ self-review — only where the plan lives changes: the issue's `plan.md`, in place of a plan file.
113
+ A copy in the repository, or spec code there, goes in only when the person, the issue, its spec or
114
+ the repository asks for it.
112
115
  Technical choices inside the approved design are made in the plan and need no question. A plan
113
116
  never changes a decision the human made in the spec: a change to one goes back to the spec as a
114
117
  decision block, with the evidence for it.
@@ -200,6 +200,9 @@ fork's parent). If a different live session holds it — the parent of a `/fork`
200
200
  the child, or a second process on the same transcript — the listener refuses atomically and the
201
201
  resumed session logs a warning and holds nothing. Only an explicit `envoy_role_set` is
202
202
  last-claim-wins. Re-running `envoy_role_set` for a role this session already holds is harmless.
203
+ Moving to a different role is refused while another plugin holds subscriptions that last only as
204
+ long as this session keeps its current role (the refusal names them), and `envoy_unsubscribe`
205
+ keeps those subscriptions open, listing them as kept.
203
206
 
204
207
  ## Legion role claims
205
208
 
@@ -248,17 +248,15 @@ gh pr comment <pr-number> \
248
248
  ## Planner artifact
249
249
 
250
250
  The plan lives in `.legion/<issue>/plan.json` and the issue's `plan.md` document, never in the issue's
251
- primary document, which is its spec; never commit a plan or spec file to the repository.
252
- No `docs/plans/*`, `docs/superpowers/plans/*`, or spec markdown goes into the pull request: plan
253
- and spec content goes into the issue, never into a PR (the root `AGENTS.md`
254
- calls its own `docs/plans/` human-authored design history, not a Legion artifact). A skill step that says "save the plan
255
- to a file" is satisfied by the handoff write in the completion gate below; the planner's only
256
- commit is `plan: record handoff`.
251
+ primary document, which is its spec. Legion sets no rule on whether a plan or spec goes in the
252
+ repository: the planner commits a plan, a spec or spec code when the issue, its spec or the
253
+ repository asks for it. Otherwise, a skill step that says "save the plan to a file" is satisfied by
254
+ the handoff write in the completion gate below.
257
255
 
258
256
  A plan that departs from the spec's design records the departure in `plan.md` and in the required
259
257
  `.legion/<issue>/plan.json` `specDepartures`: `[]` means no departure; otherwise each bounded record names
260
258
  the spec, plan, evidence and outcome. The planner's role prompt defines that record. The planner
261
- never edits the spec. Whether the spec changes is the architect's decision
259
+ never edits the issue's spec document. Whether the spec changes is the architect's decision
262
260
  (`skill://legion-architect`, section 1), and the reviewer reads the plan beside the spec.
263
261
 
264
262
  ## Implementer push and pull request