@sjawhar/pi-legion-envoy 5.30.9 → 5.30.11
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/envoy.js +1 -1
- package/dist/legion.js +2 -2
- package/dist/skills/dispatch/SKILL.md +17 -18
- package/package.json +1 -1
package/dist/envoy.js
CHANGED
|
@@ -30352,7 +30352,7 @@ var dispatchToolSpecs = [
|
|
|
30352
30352
|
name: "dispatch_artifact",
|
|
30353
30353
|
example: { issue: "DSP-1", name: "design.md", content: `# Design
|
|
30354
30354
|
` },
|
|
30355
|
-
description: "Attach a local file or inline text as an issue artifact or project document. Do not use it to edit a live document; use " + "dispatch_doc_edit instead. Exactly one of path or content is required;
|
|
30355
|
+
description: "Attach a local file or inline text as an issue artifact or project document. Do not use it to edit a live document; use " + "dispatch_doc_edit instead. Exactly one of path or content is required; a markdown document is at most 1 MiB and any other file at most 25 MiB. " + "Markdown holding an ask block whose body breaks its content rule (one or more question paragraphs, then at most one bullet list of options, last) is refused with 400 INVALID_ASK_BLOCK; a new version of a document is held to it only for the asks it writes or changes. " + `${OWNER_REFERENCE}`,
|
|
30356
30356
|
arguments: (z2) => ({
|
|
30357
30357
|
issue: z2.string().describe(ISSUE_REFERENCE).optional(),
|
|
30358
30358
|
project: z2.string().describe("Project key for an unlinked document.").optional(),
|
package/dist/legion.js
CHANGED
|
@@ -30521,7 +30521,7 @@ var dispatchToolSpecs = [
|
|
|
30521
30521
|
name: "dispatch_artifact",
|
|
30522
30522
|
example: { issue: "DSP-1", name: "design.md", content: `# Design
|
|
30523
30523
|
` },
|
|
30524
|
-
description: "Attach a local file or inline text as an issue artifact or project document. Do not use it to edit a live document; use " + "dispatch_doc_edit instead. Exactly one of path or content is required;
|
|
30524
|
+
description: "Attach a local file or inline text as an issue artifact or project document. Do not use it to edit a live document; use " + "dispatch_doc_edit instead. Exactly one of path or content is required; a markdown document is at most 1 MiB and any other file at most 25 MiB. " + "Markdown holding an ask block whose body breaks its content rule (one or more question paragraphs, then at most one bullet list of options, last) is refused with 400 INVALID_ASK_BLOCK; a new version of a document is held to it only for the asks it writes or changes. " + `${OWNER_REFERENCE}`,
|
|
30525
30525
|
arguments: (z2) => ({
|
|
30526
30526
|
issue: z2.string().describe(ISSUE_REFERENCE).optional(),
|
|
30527
30527
|
project: z2.string().describe("Project key for an unlinked document.").optional(),
|
|
@@ -33834,7 +33834,7 @@ import { logger } from "@oh-my-pi/pi-utils";
|
|
|
33834
33834
|
// package.json
|
|
33835
33835
|
var package_default = {
|
|
33836
33836
|
name: "@sjawhar/pi-legion-envoy",
|
|
33837
|
-
version: "5.30.
|
|
33837
|
+
version: "5.30.11",
|
|
33838
33838
|
type: "module",
|
|
33839
33839
|
omp: {
|
|
33840
33840
|
extensions: [
|
|
@@ -10,9 +10,9 @@ decide, never a log of your work. The transcript is your scratch pad; progress a
|
|
|
10
10
|
goes through a `dispatch_*` tool.
|
|
11
11
|
|
|
12
12
|
The server enforces high signal: an ask question is at most 800 characters with at most eight options; comment and message bodies are at
|
|
13
|
-
most 2,000 characters;
|
|
14
|
-
the 800-character limit (850/800)`); it never truncates it. A tool call with several problems is
|
|
15
|
-
(`<tool> was not called: N problems`), so one corrected call lands. GitHub threads and markers no
|
|
13
|
+
most 2,000 characters; a markdown document is at most 1 MiB and any other file at most 25 MiB. It refuses over-limit input with the number
|
|
14
|
+
to trim (`question is 50 characters over the 800-character limit (850/800)`); it never truncates it. A tool call with several problems is
|
|
15
|
+
refused once, every problem listed (`<tool> was not called: N problems`), so one corrected call lands. GitHub threads and markers no
|
|
16
16
|
longer exist.
|
|
17
17
|
|
|
18
18
|
## Where the detail lives
|
|
@@ -84,7 +84,7 @@ a new version that keeps the human's own text, never a second "spec" artifact be
|
|
|
84
84
|
versions keep the history.
|
|
85
85
|
- **No placeholders.** No TBD, TODO, or hedging ("might", "could consider"): an open item is a
|
|
86
86
|
decision block, a technical decision your lane makes and records in the text, or, for a
|
|
87
|
-
contract between two lanes, a question
|
|
87
|
+
contract between two lanes, a question you settle with the other lane over Envoy (see
|
|
88
88
|
[Before you ask](#before-you-ask) under Asking).
|
|
89
89
|
- **No progress.** The spec records the design and its decisions, never status, timestamps, an
|
|
90
90
|
"Update HH:MMZ" section, a pull-request list, or handoff notes. Progress is not a Dispatch
|
|
@@ -208,11 +208,10 @@ Every `dispatch_ask` passes four gates first:
|
|
|
208
208
|
1. **Does it need his authority, taste, or risk appetite?** This is the bar for a decision
|
|
209
209
|
written as an `:::ask` block in context ([Decision blocks](#decision-blocks)). Technical
|
|
210
210
|
decisions inside your outcome do not: schema shapes, table layouts, field names, and migration
|
|
211
|
-
internals are your lane's to decide and record in the spec. A contract between two lanes
|
|
212
|
-
|
|
213
|
-
IAM, deletion or exposure of production data, anything that reaches a customer) passes this
|
|
214
|
-
gate: it is your own `dispatch_ask` to Sami on your own issue
|
|
215
|
-
platform PO.
|
|
211
|
+
internals are your lane's to decide and record in the spec. A contract between two lanes is
|
|
212
|
+
settled by those two lanes over Envoy, and you open no ask for it. A halt condition (a change
|
|
213
|
+
to IAM, deletion or exposure of production data, anything that reaches a customer) passes this
|
|
214
|
+
gate: it is your own `dispatch_ask` to Sami on your own issue.
|
|
216
215
|
2. **Is there genuine uncertainty, and have you measured what you can?** If there is none, it is
|
|
217
216
|
a plan you execute. The one legitimate ask without uncertainty is permission for an action
|
|
218
217
|
only a human can authorise — a production write, an external send, a console action — and then
|
|
@@ -247,8 +246,8 @@ Every `dispatch_ask` passes four gates first:
|
|
|
247
246
|
(further down) lists that the delivery waits on — including a conflict between what he asked
|
|
248
247
|
for and another of his rules, which this gate would otherwise bury as settled.
|
|
249
248
|
|
|
250
|
-
|
|
251
|
-
|
|
249
|
+
Nobody audits or retracts another session's asks: passing every gate, and carrying the content
|
|
250
|
+
instead of pointing at another message in prose (below), is the asking session's own check.
|
|
252
251
|
|
|
253
252
|
Open a decision with:
|
|
254
253
|
```ts
|
|
@@ -289,11 +288,11 @@ message above", or "as attached".
|
|
|
289
288
|
issue's comments. The rules:
|
|
290
289
|
|
|
291
290
|
- An ask that names another message in prose — "my comment above", "the procedure I posted",
|
|
292
|
-
"see the earlier message" —
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
291
|
+
"see the earlier message" — fails the gates. Put the content IN the ask. If it does not fit the
|
|
292
|
+
800-character budget, the step is too big: split the step, never point elsewhere. The only
|
|
293
|
+
pointers an ask may carry are a `dispatch://` reference or a document `anchor`, and they cite —
|
|
294
|
+
the ask still says in one line what the reader will find there and can be answered without
|
|
295
|
+
following them.
|
|
297
296
|
- Expand every term the reader has not used first. A product name, an internal setting, an
|
|
298
297
|
acronym, a value you coined this session — write what it is in the ask, in his words.
|
|
299
298
|
- A runbook the human must execute is one ask per step, each self-contained: what to do, where,
|
|
@@ -308,9 +307,9 @@ they must read to decide belongs in the spec in the first place — see [Artifac
|
|
|
308
307
|
|
|
309
308
|
### When you need a human
|
|
310
309
|
|
|
311
|
-
Before saying you are waiting for human input, call `dispatch_open_asks`. With no arguments it lists this session's active asks across open issues and project documents, including whether the human or agent owes the next reply. With `dispatch_open_asks({ project })` it lists every open ask in that project — on its issues and on its documents, whoever authored them — which is how you
|
|
310
|
+
Before saying you are waiting for human input, call `dispatch_open_asks`. With no arguments it lists this session's active asks across open issues and project documents, including whether the human or agent owes the next reply. With `dispatch_open_asks({ project })` it lists every open ask in that project — on its issues and on its documents, whoever authored them — which is how you see what a whole project is waiting on rather than just your own asks.
|
|
312
311
|
|
|
313
|
-
**Unsettled product shape needs a decision before implementation.** When a page, navigation entry, table key, customer-scoping rule, or persisted sidecar would set product shape that Sami has not already settled, send a one-line ask before the first implementation commit. A lane's schema decision or a
|
|
312
|
+
**Unsettled product shape needs a decision before implementation.** When a page, navigation entry, table key, customer-scoping rule, or persisted sidecar would set product shape that Sami has not already settled, send a one-line ask before the first implementation commit. A lane's schema decision or a contract two lanes agree does not settle product shape. This does not turn a user-specified decision or routine implementation into an approval request. A control or behaviour the human asked for in words is settled by those words, together with every choice inside it that his words do not make (where it sits, its defaults, its options): build it without an ask, as gate 4 of [Before you ask](#before-you-ask) says. This rule covers only product shape outside what he asked for, and its ask comes before the commit that sets that shape.
|
|
314
313
|
|
|
315
314
|
**Anything you are blocked on a human for is an open ask.** An agent waits on a human only through
|
|
316
315
|
an open ask. An approval, a credential or grant to renew, a setting only they can change, a review
|