@sjawhar/opencode-legion-envoy 5.9.0 → 5.9.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.
@@ -15798,6 +15798,7 @@ function followsAsk(owner) {
15798
15798
  return `You follow this ask: its answer and replies reach you directly. For every event on ${owner.label}: envoy_subscribe ${owner.topic}`;
15799
15799
  }
15800
15800
  var triageAdviceShown = new Set;
15801
+ var SPEC_CHECK_REMINDER = 'Has a fresh reader checked this spec? Each claim about how a system works today should trace to code read or a command run, and each requirement to the human\'s words or a cited fact. If not, have a fresh read-only subagent (`plan-gap-analyst` on Oh My Pi) check it now and fix what it finds. See the `dispatch-first` skill, "Design in the spec".';
15801
15802
  function renderAdvice(tool, key, advice, opts) {
15802
15803
  if (advice === undefined)
15803
15804
  return [];
@@ -17048,6 +17049,7 @@ async function executeDispatchTool(input) {
17048
17049
  return {
17049
17050
  text: [
17050
17051
  `Created ${created.key}: ${created.title} ${notSubscribed(issueTopic(created.key))}`,
17052
+ ...spec === undefined ? [] : [SPEC_CHECK_REMINDER],
17051
17053
  ...adviceLines
17052
17054
  ].join(`
17053
17055
  `),
@@ -17612,7 +17614,8 @@ ${trailer.join(`
17612
17614
  const details = await followedAskDetails(client, result.ask, resolved.artifact);
17613
17615
  const outcome = result.recorded ? `Approval requested for ${resolved.artifact.name} (document id ${resolved.artifact.id}) at version ${result.version} (ask ${result.ask.id}).` : `The approval request for ${resolved.artifact.name} (document id ${resolved.artifact.id}) at version ${result.version} (ask ${result.ask.id}) already waits on the human, so this call changed nothing: nothing since it last reached the human (a newer version, a human's reply in its thread, or your progress note) left it waiting on you.`;
17614
17616
  return {
17615
- text: `${outcome} The human's Inbox asks: ${JSON.stringify(result.ask.question)}. The answer arrives as artifact.approved or artifact.changes_requested. An edit before the answer moves this request to the new version and leaves it waiting on you, and an edit after approval makes the approval stale: either way, request again for the new version once the human has agreed to every point in it, which hands this request back or opens a new one.`,
17617
+ text: `${outcome} The human's Inbox asks: ${JSON.stringify(result.ask.question)}. The answer arrives as artifact.approved or artifact.changes_requested. An edit before the answer moves this request to the new version and leaves it waiting on you, and an edit after approval makes the approval stale: either way, request again for the new version once the human has agreed to every point in it, which hands this request back or opens a new one.${result.recorded ? `
17618
+ ${SPEC_CHECK_REMINDER}` : ""}`,
17616
17619
  details: { ...details, artifact: resolved.artifact.id, version: result.version }
17617
17620
  };
17618
17621
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sjawhar/opencode-legion-envoy",
3
- "version": "5.9.0",
3
+ "version": "5.9.1",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "dist/src/server.js",
package/skills/AGENTS.md CHANGED
@@ -9,7 +9,7 @@ event intake, process lifecycle, credentials, and role delivery.
9
9
  | `ce-simplify-code/` | the implementer, once per pull request | the behaviour-preserving simplify pass, in the implementer's first implementing round (Legion's copy of the MIT-licensed Compound Engineering skill; `LICENSE` beside it) |
10
10
  | `dispatch/` | every role, and any session writing to Dispatch | specs, asks, comments, artifacts, and messages on native Dispatch |
11
11
  | `dispatch-brainstorming/` | any session with Dispatch that starts a design conversation or writes a plan, as `dispatch-first` directs | the design conversation in the issue's spec, turn by turn to one approval, and the plan as the issue's `plan.md`; in a session with Dispatch it replaces superpowers' `brainstorming` and `writing-plans` |
12
- | `dispatch-first/` | every session with Dispatch configured, injected by each host plugin on every request (Oh My Pi), on every `SessionStart` (startup, resume, clear, compact, fork) and `SubagentStart` (Claude Code), or as an instruction file (OpenCode) | searching Dispatch before acting, extending the existing issue, citing decisions, closing duplicates; kept under 60 lines and 6,000 characters |
12
+ | `dispatch-first/` | every session with Dispatch configured, injected by each host plugin on every request (Oh My Pi), on every `SessionStart` (startup, resume, clear, compact, fork) and `SubagentStart` (Claude Code), or as an instruction file (OpenCode) | searching Dispatch before acting, extending the existing issue, citing decisions, closing duplicates, the fresh-reader check before a spec reaches a human; kept under 60 lines and 6,000 characters |
13
13
  | `envoy/` | every role | subscriptions, agent-to-agent messages, and topic formats |
14
14
  | `legion-architect/` | root and sub-architects | tree ownership, decomposition, waves, gates, integration, sign-off |
15
15
  | `legion-controller/` | the controller root process | wake routing, keeping the admission slots full from `todo`, the daily report, escalation |
@@ -50,7 +50,7 @@ found yourself.
50
50
  A design conversation with a person, or the implementation plan that follows one, uses
51
51
  `skill://dispatch-brainstorming`: read it before your first design question on a change, the spec,
52
52
  or that plan. It replaces superpowers' `brainstorming` and `writing-plans` here, even when the user
53
- invokes one by name. A Legion architect's own issue spec follows `skill://legion-architect`.
53
+ invokes one by name. A Legion architect's own issue spec follows `skill://legion-architect`. Before a spec's first version and each approval request, have a fresh read-only subagent (on Oh My Pi, `task(agent="plan-gap-analyst")`) check it against the code, the human's words and any command output a claim rests on, and resolve what it flags.
54
54
 
55
55
  ## Load the full skill before you write
56
56