@sjawhar/claude-envoy 1.11.0 → 1.11.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/.claude-plugin/plugin.json +1 -1
- package/.omp-plugin/plugin.json +1 -1
- package/dist/envoy-channel.js +1 -1
- package/package.json +1 -1
- package/skills/dispatch/SKILL.md +4 -3
- package/skills/dispatch-first/SKILL.md +2 -2
- package/skills/dispatch-writing-specs/SKILL.md +7 -7
- package/skills/outside-message/SKILL.md +13 -0
package/.omp-plugin/plugin.json
CHANGED
package/dist/envoy-channel.js
CHANGED
|
@@ -55133,7 +55133,7 @@ var import_nats2 = __toESM(require_mod4(), 1);
|
|
|
55133
55133
|
|
|
55134
55134
|
// package.json
|
|
55135
55135
|
var name = "@sjawhar/claude-envoy";
|
|
55136
|
-
var version2 = "1.11.
|
|
55136
|
+
var version2 = "1.11.2";
|
|
55137
55137
|
var legion = {
|
|
55138
55138
|
daemonApiVersion: 54
|
|
55139
55139
|
};
|
package/package.json
CHANGED
package/skills/dispatch/SKILL.md
CHANGED
|
@@ -10,6 +10,7 @@ Dispatch is a record for the people who decide, never a log of your work.
|
|
|
10
10
|
- Use the `dispatch` command; the HTTP API only for what no command does. `dispatch <command> --help` gives its rules and an example.
|
|
11
11
|
- Put long text on stdin: `--<field>-file -` with a quoted here-document (`<<'EOF'`); give object and list fields as JSON.
|
|
12
12
|
- Exit 1 is a refusal, 2 a usage error. A refusal lists each problem: fix them all, then call once.
|
|
13
|
+
- A Dispatch command hard to use, or storing or losing something wrongly, is a defect to report, not work around: open an issue in the owning project's code and tell that project's controller; a Legion role tells its architect (`skill://legion-worker/references/findings.md`).
|
|
13
14
|
|
|
14
15
|
## Asks and ask blocks
|
|
15
16
|
|
|
@@ -45,7 +46,7 @@ Outside Legion, claim your issue (`dispatch claim`) and move it and your childre
|
|
|
45
46
|
|
|
46
47
|
`unresponsive` holders keep their claims 20 minutes (`skill://envoy`).
|
|
47
48
|
|
|
48
|
-
A claim
|
|
49
|
+
A claim (or `dispatch issue-update --route session:<your id>`, `--route ''` to release) brings a person's answers, comments and messages; `envoy_subscribe notifications.dispatch.issue.<KEY>.>` adds agents' activity, no quiet event.
|
|
49
50
|
|
|
50
51
|
## Close what you opened
|
|
51
52
|
|
|
@@ -59,7 +60,7 @@ A claim, or `dispatch issue-update --route session:<your id>` (`--route ''` on r
|
|
|
59
60
|
|
|
60
61
|
## Architecture components
|
|
61
62
|
|
|
62
|
-
Attach each architectural issue to its components (`--components-json`), the root
|
|
63
|
+
Attach each architectural issue to its components (`--components-json`), the root first; change code and `.dispatch/architecture/<id>.md` together.
|
|
63
64
|
|
|
64
65
|
## References
|
|
65
66
|
|
|
@@ -81,7 +82,7 @@ dispatch://PROJECT/artifact/<slug>/ask/<id>
|
|
|
81
82
|
dispatch://PROJECT/artifact/<slug>/comment/<id>#b-<block>[@vN]
|
|
82
83
|
```
|
|
83
84
|
|
|
84
|
-
A bare id
|
|
85
|
+
A bare id or path, or `dispatch://` outside Dispatch, is no link: give the `https://` one. Write ids whole.
|
|
85
86
|
|
|
86
87
|
## Setup and the HTTP API
|
|
87
88
|
|
|
@@ -30,8 +30,8 @@ dispatch search --query 'reviewer threads OR review comments'
|
|
|
30
30
|
|
|
31
31
|
## Research before you ask
|
|
32
32
|
|
|
33
|
-
- Research when a file, command or document can show the answer (a pattern, a convention, a solved problem, a technical approach)
|
|
34
|
-
- Ask a person only for what their authority, taste or risk appetite settles, because no file holds that. Where a file
|
|
33
|
+
- Research when a file, command or document can show the answer (a pattern, a convention, a solved problem, a technical approach).
|
|
34
|
+
- Ask a person only for what their authority, taste or risk appetite settles, because no file holds that. Where a file records the decision, cite it (`file:line`) and follow it; ask again only when the facts it rested on changed.
|
|
35
35
|
- Say what you searched: each part you found with its source, and each part you did not, with the queries you ran. Ask only the part no search answered.
|
|
36
36
|
|
|
37
37
|
## Reach a person only through Dispatch
|
|
@@ -7,7 +7,7 @@ description: "Use in a session with Dispatch before you write or change a spec,
|
|
|
7
7
|
|
|
8
8
|
## The conversation
|
|
9
9
|
|
|
10
|
-
Reach shared understanding
|
|
10
|
+
Reach shared understanding at the least cost of the person's time. A spec is a conversation, not a document you write and then ask about. A Legion phase worker writes none (`skill://legion-worker`). In order:
|
|
11
11
|
|
|
12
12
|
1. Read the issue, the code and what the person wrote.
|
|
13
13
|
2. Send what you found and the questions it leaves open, a few at a time, before the spec states a design.
|
|
@@ -38,7 +38,7 @@ For each spec, ask, comment and message:
|
|
|
38
38
|
- Write about the current design, never the person or how people reached it, and never quote or upload their words.
|
|
39
39
|
- Link each source where the person wrote it, each id whole. With no link, state the design.
|
|
40
40
|
- In a spec, cite code by file and symbol, never a line number: it goes stale at the next edit.
|
|
41
|
-
- A sentence
|
|
41
|
+
- A sentence citing a gate passing (test, review, check) also says what the pass does not show: "Tests pass: a wrong verdict, not a missing one."
|
|
42
42
|
- Keep only text a reader needs to understand, decide, build or check, and say what each issue you name does for them (`skill://plain-words`).
|
|
43
43
|
- In an ask, ask block, comment or message, name a requirement or check by what it is, never its number.
|
|
44
44
|
|
|
@@ -48,14 +48,14 @@ For each spec, ask, comment and message:
|
|
|
48
48
|
- A choice inside what the person asked for, one their messages favour, routine cleanup, sequencing, naming, a choice between equivalent options, and a fix you can make are yours.
|
|
49
49
|
- Ask only for the person's authority, taste or risk appetite, when options differ on what they care about.
|
|
50
50
|
- Ask with an [ask block](skill://dispatch/SKILL.md#asks-and-ask-blocks): 2 to 4 options, answerable on a phone, and name nothing the reader cannot see from it ("the message above").
|
|
51
|
-
- For each technical term you coined in this session, count the files
|
|
52
|
-
- Measure each claim the ask rests on, its premise and each option's precondition. Where you cannot, mark the claim unverified and name the measurement
|
|
53
|
-
- Before you pass a question on as one only an attended or privileged act answers, name the source that answers it and try
|
|
51
|
+
- For each technical term you coined in this session, count by exact match the files holding it, in the repositories the work touches and in Dispatch; a single-digit count means expand the term or drop it, because a coinage reads as familiar to you. A count misses a coinage of common words, so read the draft for those too.
|
|
52
|
+
- Measure each claim the ask rests on, its premise and each option's precondition. Where you cannot, mark the claim unverified and name the missing measurement; call an option unavailable only where a precondition demonstrably fails. A premise can go stale within the hour; no unmeasured number goes in one.
|
|
53
|
+
- Before you pass a question on as one only an attended or privileged act answers, name the source that answers it and try it, then the other records holding it, because a 403 or an unfamiliar surface does not make a fact unknowable. Keep a privileged read for what only the live system knows.
|
|
54
54
|
|
|
55
55
|
## Each version
|
|
56
56
|
|
|
57
57
|
1. After a person's answer, comment or edit, reread the problem and rewrite what the answer touches, deleting what it contradicts: an answer is integrated, never appended. Answer each comment in its thread. Never narrate an edit: versions and comments hold the history.
|
|
58
|
-
2. Before each spec write, paste the whole spec, never a path, into a fresh subagent
|
|
58
|
+
2. Before each spec write, paste the whole spec, never a path, into a fresh subagent to list gaps, conflicts, uncheckable requirements, unclear text and needless questions. Fix or record each.
|
|
59
59
|
3. Before each approval request, `wait` for a read-only fact check: `task(agent="scout")`.
|
|
60
60
|
4. Name each version with `dispatch doc-edit --summary`.
|
|
61
61
|
|
|
@@ -65,7 +65,7 @@ Choices—answered asks included—earn `decisions.md` `##` sections only if a d
|
|
|
65
65
|
|
|
66
66
|
- The heading names the choice; the text gives the reason and the options weighed.
|
|
67
67
|
- Link each spec block it shaped, `dispatch://KEY/spec#b-<id>`, and a person's decision its ask, `dispatch://KEY/ask/<id>`.
|
|
68
|
-
- An unsure section adds a paragraph
|
|
68
|
+
- An unsure section adds a paragraph starting `Unsure:`: what would change your mind.
|
|
69
69
|
- A replaced section moves under a final `## Replaced` as a `###`.
|
|
70
70
|
|
|
71
71
|
## Old specs
|
|
@@ -31,6 +31,10 @@ to the company before.
|
|
|
31
31
|
Everything else waits for the operator: a first contact with a project that has not enrolled, a bug
|
|
32
32
|
report, a disclosure, and a reply to a maintainer who wrote first.
|
|
33
33
|
|
|
34
|
+
Hold an extremely high bar. Optimise every upstream report, patch or public post for a human
|
|
35
|
+
reader and for being received well, so each one builds the company's reputation rather than a
|
|
36
|
+
name for slop.
|
|
37
|
+
|
|
34
38
|
## The four steps
|
|
35
39
|
|
|
36
40
|
1. **Research the audience.** Read the repository's contributing guide, its issue and pull-request
|
|
@@ -84,6 +88,15 @@ An ask for an outside message has, in this order:
|
|
|
84
88
|
Link the research, not the message. An ask with no removal line has not had step 4, whatever it
|
|
85
89
|
says.
|
|
86
90
|
|
|
91
|
+
## One batch, not one ask at a time
|
|
92
|
+
|
|
93
|
+
An upstream bug report, patch or public post that needs the operator's approval goes into one
|
|
94
|
+
review batch, never a per-message "can I send this" ask. Write its entry — what it is and how
|
|
95
|
+
serious; who receives it and what they do; the exact text or patch; its evidence; a non-author
|
|
96
|
+
reviewer's APPROVE under your stream's reviewer-model rule; what the operator decides; its owner
|
|
97
|
+
— into the batch, add it under the batch's Waiting list, and tell the batch owner. Your stream's
|
|
98
|
+
brief names the batch and its owner.
|
|
99
|
+
|
|
87
100
|
## What this skill does not cover
|
|
88
101
|
|
|
89
102
|
- Text written in a person's own name, which that person signs off.
|