@sjawhar/opencode-legion-envoy 5.0.0 → 5.0.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sjawhar/opencode-legion-envoy",
3
- "version": "5.0.0",
3
+ "version": "5.0.1",
4
4
  "type": "module",
5
5
  "main": "dist/src/server.js",
6
6
  "exports": {
package/skills/AGENTS.md CHANGED
@@ -21,6 +21,6 @@ event intake, process lifecycle, credentials, and role delivery.
21
21
  The owning skill above is where each contract is defined; a role prompt that needs a contract from its own seat points there or restates only its own step. This file lists and does not restate.
22
22
  A Legion prompt (a skill here, a role prompt, or an agent definition in `packages/pi-envoy/agents/`) names a task agent only as `task(agent="<name>")` and a skill it tells the model to load only as `skill://<name>`. Those are the two forms the Go daemon's boot gate and `legion probe-image` resolve through Oh My Pi, refusing by name one it cannot find; a dispatch or a load written any other way goes unchecked. An agent or skill Legion's prompts name is shipped here or in `packages/pi-envoy/agents/`, unless Oh My Pi bundles it.
23
23
  A skill file an agent loads stays under 51,200 bytes, Oh My Pi's spill threshold (a longer one arrives with its middle cut out), and a skill's detail lives in `references/` files linked as `skill://<name>/references/<file>.md`, never by relative path, which a read by path cuts at 300 lines. `packages/pi-envoy/src/skills-guard.test.ts` fails on a file at the threshold, on any `SKILL.md` body of 500 lines or more, on a skill whose frontmatter `name` is not its directory's name, on a `dispatch-first` over its budget, on a `skill://<name>/<path>` link that names a missing file or a missing `#heading`, and on a `legion-worker` reference nothing links.
24
- The text a worker boots with (its role prompt) lives in `packages/pi-envoy/roles/` and is
25
- composed per role in `packages/daemon/src/daemon/processes.ts`; `packages/pi-envoy/roles/roles.test.ts`
26
- holds the structural rules for those parts.
24
+ The text a worker boots with (its role prompt) lives in `packages/daemon/internal/prompts/roles/`,
25
+ embedded in the `legion` binary and composed per role by `packages/daemon/internal/prompts/prompts.go`;
26
+ `packages/daemon/internal/prompts/roles_test.go` holds the structural rules for those parts.
@@ -317,7 +317,7 @@ line), the full definition of a proof, what the tester verifies, and the simplif
317
317
  ## Completion gate: handoff write, verification, and persistence
318
318
 
319
319
  The merger writes no handoff and pushes nothing, so this gate does not apply to it
320
- (`packages/pi-envoy/roles/merger.md`).
320
+ (`packages/daemon/internal/prompts/roles/merger.md`).
321
321
 
322
322
  Write the phase-specific handoff: call the `legion` tool with `op: "handoff_write"`, `phase: "<p>"`,
323
323
  and `data`: a JSON object of the phase-specific fields only. It runs `legion handoff write` in
@@ -73,12 +73,12 @@ completion leaves the issue in reviewing until you finish.
73
73
  in READY (an empty output is quoted as `no file changes above the approved head`); then the same
74
74
  with `'~docs/solutions'` appended, which must print nothing. *The READY packet*: the merger
75
75
  always posts `READY #<n> at <current sha> (approved at <approved sha>) for <KEY> (<pr url>)`
76
- (the shape `packages/pi-envoy/roles/merger.md` defines), then the PR body's `Outcome:` line and
77
- its `Not proven / risk:` value — every bullet under that label joined with `; ` on the one
78
- READY line, or `none` — quoted from the `## For the reviewer` block at that same head (or one
79
- line saying the body carries no brief — the packet still publishes), then the `--summary`
80
- output and the PR body's gate facts, as a `dispatch_message` on the issue. When the `Legion
81
- addressing` line names a merge queue, it also publishes the same packet there with
76
+ (the shape `packages/daemon/internal/prompts/roles/merger.md` defines), then the PR body's
77
+ `Outcome:` line and its `Not proven / risk:` value — every bullet under that label joined with
78
+ `; ` on the one READY line, or `none` — quoted from the `## For the reviewer` block at that same
79
+ head (or one line saying the body carries no brief — the packet still publishes), then the
80
+ `--summary` output and the PR body's gate facts, as a `dispatch_message` on the issue. When the
81
+ `Legion addressing` line names a merge queue, it also publishes the same packet there with
82
82
  `envoy_publish`; a 404 means the Dispatch message remains the durable notice and the merger
83
83
  stays idle. The READY packet names both the implementer's and tester's `E2E` lines; a missing
84
84
  one is reported to the architect instead of published. Legion never merges.