@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.
@@ -2,5 +2,5 @@
2
2
  "name": "claude-envoy",
3
3
  "description": "Deliver Envoy events as Claude Code channel notifications and expose Envoy MCP tools.",
4
4
  "mcpServers": "./.mcp.json",
5
- "version": "1.11.0"
5
+ "version": "1.11.2"
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-envoy",
3
- "version": "1.11.0",
3
+ "version": "1.11.2",
4
4
  "description": "Deliver Envoy events as Claude Code channel notifications and expose Envoy MCP tools.",
5
5
  "mcpServers": {}
6
6
  }
@@ -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.0";
55136
+ var version2 = "1.11.2";
55137
55137
  var legion = {
55138
55138
  daemonApiVersion: 54
55139
55139
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sjawhar/claude-envoy",
3
- "version": "1.11.0",
3
+ "version": "1.11.2",
4
4
  "license": "Apache-2.0",
5
5
  "description": "Claude Code channel plugin for Legion's Envoy bus",
6
6
  "type": "module",
@@ -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, or `dispatch issue-update --route session:<your id>` (`--route ''` on release), brings a person's answers, comments and messages; for agents' activity, `envoy_subscribe notifications.dispatch.issue.<KEY>.>`, which shows no quiet event.
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 before decomposing it. Change code and `.dispatch/architecture/<id>.md` in the same review.
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, filename or path is no reference, nor `dispatch://` outside Dispatch: give `dispatch`'s `https://` link. Write ids whole; a unique short id resolves.
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), because a person must not answer twice what the repository already records.
34
- - Ask a person only for what their authority, taste or risk appetite settles, because no file holds that. Where a file already records the decision, cite it (`file:line`) and follow it; ask again only when the facts it rested on changed.
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 with the person at the least cost of their 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:
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 that cites a gate passing (test, review, check) also says what the pass does not show: "Tests pass: a wrong verdict, not a missing one."
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 that hold it, in the repositories the work touches and in Dispatch, by exact match; a single-digit count means expand the term or drop it, because a term you coined reads as familiar to you. A count misses a coinage made 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 measurement that is missing; call an option unavailable only where a precondition is shown to fail. A premise can go stale within the hour, and 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 that source, then the other records that hold 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.
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: it lists gaps, conflicts, uncheckable requirements, unclear text and needless questions. Fix or record each.
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 that starts `Unsure:`: what would change your mind.
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.