@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.
package/dist/src/server.js
CHANGED
|
@@ -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
|
@@ -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
|
-
-
|
|
22
|
-
`docs/superpowers/
|
|
23
|
-
|
|
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
|
|
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
|
|
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`,
|
|
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.
|
package/skills/envoy/SKILL.md
CHANGED
|
@@ -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
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
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
|