@humwick/runner 0.130.5 → 0.130.6

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.
Files changed (211) hide show
  1. package/agent-bin/humwick +2 -2
  2. package/agent-bin/humwick-browser +4 -0
  3. package/hooks/fff-search-redirect/fff-search-redirect.cjs +1 -1
  4. package/hooks/web-tools-redirect/web-tools-redirect.cjs +2 -2
  5. package/package.json +7 -10
  6. package/plugins/browser/skills/playwright-cli/SKILL.md +8 -6
  7. package/plugins/claude/.claude-plugin/plugin.json +3 -3
  8. package/plugins/claude/claude-statusline-probe.cjs +26 -16
  9. package/plugins/claude/hooks/gate-run-guard.provisioned.mjs +47 -17
  10. package/plugins/claude/hooks/gate-run-guard.sh +3 -3
  11. package/plugins/claude/hooks/gate-run-guard.ts +5 -5
  12. package/plugins/claude/hooks/kill-guard.sh +4 -4
  13. package/plugins/claude/hooks/kill-guard.ts +1 -1
  14. package/plugins/claude/hooks/permission-request.sh +1 -1
  15. package/plugins/claude/hooks/post-compact.sh +1 -1
  16. package/plugins/claude/hooks/post-tool-use.sh +3 -3
  17. package/plugins/claude/hooks/pre-compact.sh +2 -2
  18. package/plugins/claude/hooks/read-only-bash-guard.sh +4 -4
  19. package/plugins/claude/hooks/relay-status.sh +32 -32
  20. package/plugins/claude/hooks/session-end.sh +2 -2
  21. package/plugins/claude/hooks/session-start.sh +3 -3
  22. package/plugins/claude/hooks/shell-trust.ts +1 -1
  23. package/plugins/claude/hooks/stop-failure.sh +2 -2
  24. package/plugins/claude/hooks/stop.sh +6 -6
  25. package/plugins/claude/hooks/subagent-skill-policy.cjs +8 -6
  26. package/plugins/claude/hooks/subagent-stop.sh +3 -3
  27. package/plugins/claude/hooks/user-prompt-submit.sh +1 -1
  28. package/plugins/claude/hooks/wait-loop-guard.ts +3 -3
  29. package/plugins/claude/monitors/monitors.json +2 -2
  30. package/plugins/claude/monitors/relay-monitor.provisioned.mjs +96 -62
  31. package/plugins/claude/monitors/relay-monitor.ts +5 -5
  32. package/plugins/claude/skills/label/SKILL.md +3 -3
  33. package/plugins/claude/skills/message/SKILL.md +5 -5
  34. package/plugins/claude/skills/react/SKILL.md +1 -1
  35. package/plugins/claude/skills/read-message/SKILL.md +4 -4
  36. package/plugins/claude/skills/reply/SKILL.md +5 -5
  37. package/plugins/claude/skills/send-claimable/SKILL.md +5 -5
  38. package/plugins/claude/skills/slice-first/SKILL.md +5 -3
  39. package/plugins/claude/skills/slice-first/references/plan-recipe.md +30 -29
  40. package/plugins/claude/skills/status/SKILL.md +1 -1
  41. package/plugins/claude/skills/tags/SKILL.md +5 -5
  42. package/plugins/claude/skills/task/SKILL.md +10 -10
  43. package/plugins/claude-output-style/.claude-plugin/plugin.json +1 -1
  44. package/plugins/claude-output-style/output-styles/{agent-relay.md → humwick.md} +1 -1
  45. package/plugins/codex/skills/guide/SKILL.md +1 -1
  46. package/plugins/codex/skills/label/SKILL.md +3 -3
  47. package/plugins/codex/skills/message/SKILL.md +5 -5
  48. package/plugins/codex/skills/react/SKILL.md +1 -1
  49. package/plugins/codex/skills/read-message/SKILL.md +4 -4
  50. package/plugins/codex/skills/reply/SKILL.md +5 -5
  51. package/plugins/codex/skills/send-claimable/SKILL.md +5 -5
  52. package/plugins/codex/skills/slice-first/SKILL.md +5 -3
  53. package/plugins/codex/skills/slice-first/references/plan-recipe.md +30 -29
  54. package/plugins/codex/skills/status/SKILL.md +1 -1
  55. package/plugins/codex/skills/tags/SKILL.md +5 -5
  56. package/plugins/codex/skills/task/SKILL.md +11 -10
  57. package/src/adapter.ts +95 -92
  58. package/src/adapters/claude-api.ts +8 -11
  59. package/src/adapters/claude-context-command.ts +1 -1
  60. package/src/adapters/claude-credentials.ts +7 -3
  61. package/src/adapters/claude-delivery-lanes.ts +2 -2
  62. package/src/adapters/claude-delivery.ts +16 -16
  63. package/src/adapters/claude-effort.ts +2 -2
  64. package/src/adapters/claude-exit.ts +2 -2
  65. package/src/adapters/claude-headless-mirror.ts +18 -2
  66. package/src/adapters/claude-headless-refusal.ts +3 -3
  67. package/src/adapters/claude-headless.ts +11 -10
  68. package/src/adapters/claude-launch-exit.ts +1 -1
  69. package/src/adapters/claude-monitor-delivery-plan.ts +36 -16
  70. package/src/adapters/claude-permission.ts +5 -5
  71. package/src/adapters/claude-prompt-gates.ts +9 -9
  72. package/src/adapters/claude-prompt-hook.ts +2 -2
  73. package/src/adapters/claude-session-capture.ts +6 -6
  74. package/src/adapters/claude-session-probe.ts +25 -25
  75. package/src/adapters/claude-shutdown.ts +11 -11
  76. package/src/adapters/claude-status-detectors.ts +31 -31
  77. package/src/adapters/claude-subagents.ts +7 -7
  78. package/src/adapters/claude-submit-confirmation.ts +6 -6
  79. package/src/adapters/claude-tmux.ts +43 -43
  80. package/src/adapters/claude-token-usage-capture.ts +5 -5
  81. package/src/adapters/claude-tool-policy.ts +7 -7
  82. package/src/adapters/claude-transcript.ts +24 -24
  83. package/src/adapters/claude.ts +100 -100
  84. package/src/adapters/codex-agent-message-capture.ts +26 -63
  85. package/src/adapters/codex-app-server.ts +1 -1
  86. package/src/adapters/codex-client.ts +9 -9
  87. package/src/adapters/codex-effective-config.ts +1 -1
  88. package/src/adapters/codex-launch-config.ts +5 -5
  89. package/src/adapters/codex-rollout-context.ts +2 -2
  90. package/src/adapters/codex-skill-discovery.ts +1 -1
  91. package/src/adapters/codex-token-usage-capture.ts +16 -16
  92. package/src/adapters/codex-tool-output.ts +4 -4
  93. package/src/adapters/codex-version.ts +3 -3
  94. package/src/adapters/codex.ts +64 -64
  95. package/src/adapters/opencode-api.ts +1 -1
  96. package/src/adapters/opencode-context.ts +20 -22
  97. package/src/adapters/opencode-model-registry.ts +7 -7
  98. package/src/adapters/opencode-provider.ts +8 -8
  99. package/src/adapters/opencode-provisioning.ts +30 -0
  100. package/src/adapters/opencode-server-retry.ts +1 -1
  101. package/src/adapters/opencode-soft-steer.ts +5 -5
  102. package/src/adapters/opencode-spawn.ts +18 -14
  103. package/src/adapters/opencode-token-usage-capture.ts +12 -12
  104. package/src/adapters/opencode-tool-events.ts +15 -15
  105. package/src/adapters/opencode.ts +232 -232
  106. package/src/adapters/project-shell.ts +11 -11
  107. package/src/adapters/service-access.ts +6 -6
  108. package/src/adapters/tmux-offload.ts +9 -9
  109. package/src/adapters/tool-summary.ts +5 -5
  110. package/src/agent-redact.ts +1 -1
  111. package/src/agent-runner/commands/dispatch.ts +10 -10
  112. package/src/agent-runner/commands/lifecycle.ts +2 -2
  113. package/src/agent-runner/commands/prompt.ts +19 -19
  114. package/src/agent-runner/credentials.ts +5 -5
  115. package/src/agent-runner/inbox.ts +1 -1
  116. package/src/agent-runner/lifecycle-milestones.ts +3 -3
  117. package/src/agent-runner/lifecycle-phase.ts +2 -2
  118. package/src/agent-runner/liveness-exchange.ts +4 -10
  119. package/src/agent-runner/registration.ts +8 -8
  120. package/src/agent-runner/runner-context.ts +9 -14
  121. package/src/agent-runner/session-mirror.ts +12 -12
  122. package/src/agent-runner/task-claims.ts +2 -2
  123. package/src/agent-runner/token-usage-coverage.ts +1 -1
  124. package/src/agent-runner/turn-report.ts +12 -12
  125. package/src/api-budget-accounting.ts +3 -3
  126. package/src/area-memory.ts +6 -6
  127. package/src/artifact-path-materialize.ts +1 -1
  128. package/src/async-guard.ts +5 -5
  129. package/src/attachment-cache.ts +17 -22
  130. package/src/background-script-reconcile.ts +6 -6
  131. package/src/bounded-log.ts +1 -1
  132. package/src/busy-reconciler.ts +22 -22
  133. package/src/claim-tracker.ts +3 -3
  134. package/src/claude-settings.ts +8 -8
  135. package/src/claude-system-prompt.ts +1 -1
  136. package/src/claude-workspace-trust.ts +1 -1
  137. package/src/config.ts +62 -61
  138. package/src/context-boundary.ts +5 -5
  139. package/src/context-command.ts +3 -3
  140. package/src/control-server.ts +32 -32
  141. package/src/delivery-result.ts +2 -2
  142. package/src/effort-command.ts +2 -2
  143. package/src/empty-turn.ts +22 -14
  144. package/src/free-port.ts +1 -1
  145. package/src/gate-run-config.ts +3 -3
  146. package/src/host-asset-plan.ts +24 -17
  147. package/src/host-claude-config-worker.ts +2 -2
  148. package/src/host-sources.ts +2 -2
  149. package/src/index.ts +16 -16
  150. package/src/launch-assembly.ts +94 -96
  151. package/src/liveness.ts +15 -15
  152. package/src/logger.ts +3 -3
  153. package/src/mcp-outbox.ts +3 -3
  154. package/src/mcp-preflight.ts +2 -2
  155. package/src/mcp-source-selection.ts +2 -2
  156. package/src/mcp-tool-deferral.ts +1 -1
  157. package/src/mcp-vault-env.ts +2 -2
  158. package/src/message-body-config/config.ts +4 -4
  159. package/src/mid-turn-delivery.ts +2 -2
  160. package/src/native-memory-lever.ts +8 -8
  161. package/src/outbox.ts +15 -15
  162. package/src/pending-permission-store.ts +1 -1
  163. package/src/profile-home.ts +19 -19
  164. package/src/profile-projection.ts +26 -24
  165. package/src/project-instructions.ts +5 -5
  166. package/src/provider-auth-warning.ts +17 -0
  167. package/src/provider-double.ts +1 -1
  168. package/src/provider-hold.ts +3 -3
  169. package/src/provider-home-marker.ts +1 -1
  170. package/src/provider-home-tombstone.ts +1 -1
  171. package/src/provider-input-queue.ts +2 -2
  172. package/src/provider-integration.ts +15 -13
  173. package/src/provider-setup.ts +15 -3
  174. package/src/providers.ts +1 -1
  175. package/src/provisioning.ts +37 -40
  176. package/src/question-decision.ts +2 -2
  177. package/src/quota.ts +0 -6
  178. package/src/rate-limit.ts +24 -13
  179. package/src/refused-prompt-store.ts +2 -2
  180. package/src/relay-injection-events.ts +2 -2
  181. package/src/relay-instructions.ts +5 -5
  182. package/src/relay-mcp-proxy.long-turn-e2e.ts +13 -13
  183. package/src/relay-mcp-proxy.ts +57 -58
  184. package/src/relay-mcp.ts +55 -69
  185. package/src/reply-obligation-cache.ts +9 -9
  186. package/src/response-capture-report.ts +9 -9
  187. package/src/response-routing.ts +1 -1
  188. package/src/runner-core.ts +209 -222
  189. package/src/runner-exit.ts +1 -1
  190. package/src/runner-helpers.ts +10 -10
  191. package/src/runner-insights.ts +4 -2
  192. package/src/runner-mcp-proxy.ts +3 -3
  193. package/src/runner-spawn-config.ts +3 -3
  194. package/src/runtime-token-file.ts +1 -1
  195. package/src/runtime-token-remint.ts +1 -1
  196. package/src/service-access.ts +2 -2
  197. package/src/session-destroy.ts +1 -1
  198. package/src/session-insights.ts +1 -1
  199. package/src/session-scratch.ts +24 -37
  200. package/src/spawn-input.ts +6 -6
  201. package/src/startup-config-fetch.ts +4 -4
  202. package/src/subreaper.ts +3 -5
  203. package/src/test-run-dedup.ts +13 -13
  204. package/src/transcript-context.ts +2 -2
  205. package/src/transport-errors.ts +1 -1
  206. package/src/turn-opener.ts +1 -1
  207. package/src/turn-reconcile-event.ts +2 -2
  208. package/src/vault-proxy-hop.ts +2 -2
  209. package/src/web-tools.ts +2 -2
  210. package/agent-bin/agent-relay-browser +0 -10
  211. package/src/adapters/provider-quota-harvest.ts +0 -76
@@ -1,46 +1,47 @@
1
1
  # Plan recipe (coordinator only)
2
2
 
3
- 1. **Frame.** `relay_plan_create { title:"<feature>", acceptance:[{ id, text, check?:{ path }|{ command } }] }`.
3
+ 1. **Frame.** `humwick_plan_create { title:"<feature>", acceptance:[{ id, text, check?:{ path }|{ command } }] }`.
4
4
  Acceptance is required: the plan's own bar (the design doc's deliverables, deletions and
5
5
  acceptance commands), one checkable item each. Then create and bind the spec Task:
6
- `relay_task_create { intent, issueRefs:["#<feature>"] }` →
7
- `relay_plan_add_node { planId, node:{ id:"spec", label:"Slice spec", lane:"frame", refs:{ taskId:<spec> } } }`.
6
+ `humwick_task_create { intent, issueRefs:["#<feature>"] }` →
7
+ `humwick_plan_add_node { planId, node:{ id:"spec", label:"Slice spec", lane:"frame", refs:{ taskId:<spec> } } }`.
8
8
  Record the fixed v1 bar and budget on this Task; spawn `software-design` on it.
9
- 2. **Slice.** Create the build Task (normal landing Task) and the proof Task. The proof
10
- Task must not land: `relay_task_create { intent:"Independent slice proof",
11
- doneWhen:"delivered", dispatch:{ type:"review" }, context:"<proof command>; <instance>" }`.
12
- Add both as nodes (lane `slice`, `refs:{ taskId }`) and edges `spec→build`, `build→proof`
13
- (`relay_plan_add_edge { planId, from, to }`: `to` depends on `from`; edges between bound
14
- nodes become Task dependencies). Spawn a `worker` on `build`; when its project delivery/deployment
15
- gates pass, spawn `QA` on `proof`.
16
- 3. **Gate.** The prover delivers the proof Task; that closes it `done` with no land attempt
17
- because it is a delivered review Task. `relay_task_record_gate` alone does not finish it,
18
- so its harden dependents stay on an open upstream.
19
- - Pass: `relay_task_deliver { disposition:"complete", summary, gates:{ other:[{ name:"slice-proof", status:"pass", detail:"<command> @ <sha> on <instance>" }] } }`
20
- - Fail: `relay_task_deliver { disposition:"failed", summary, reason:"<blocker>", gates:{ other:[{ name:"slice-proof", status:"fail", detail }] } }`
21
-
22
- Fail → frame again (new spec revision, same plan). Pass → verify the proof Task is
23
- `done` with `slice-proof: pass`, then record the stage on the spec Task:
24
- `relay_task_memory_append_decision { taskId:<spec>, decision:"stage: harden" }`.
9
+ 2. **Slice.** Create one slice Task, a normal landing Task whose execution is the
10
+ `slice-proof` workflow: `humwick_task_create { intent, doneWhen, execution:{ workflow:"slice-proof",
11
+ inputs:{ command:"<proof command>", instance:"<dev or ephemeral instance>" } } }`. There is no
12
+ proof Task. Add it as a node (lane `slice`, `refs:{ taskId }`) with the edge `spec→slice`
13
+ (`humwick_plan_add_edge { planId, from, to }`: `to` depends on `from`; edges between bound
14
+ nodes become Task dependencies). Plan autopilot starts its run; by hand:
15
+ `humwick_workflow_start { workflow:"slice-proof", taskId:<slice>, inputs:{ command, instance } }`.
16
+ The run builds and reviews the slice, lands it, then a fresh `slice-qa` agent reproduces
17
+ the proof on the slice Task itself.
18
+ 3. **Gate.** The QA agent records the `slice-proof` verdict on the slice Task with
19
+ `humwick_task_verdict` (pass or fail, the landed commit, command, instance and evidence).
20
+ Until it passes, the slice Task stays `validating` (failed: in progress) and its dependents
21
+ wait for the proof verdict. Fail → the run escalates to you → frame again (new spec
22
+ revision, same plan). Pass → the slice Task is `done`; confirm with
23
+ `humwick_task_get { taskId:<slice>, verbose:true }` (`status:"done"`, gate `slice-proof`
24
+ with `status:"pass"`), then record the stage on the spec Task:
25
+ `humwick_task_memory_append_decision { taskId:<spec>, decision:"stage: harden" }`.
25
26
  4. **Harden.** Only now add harden nodes (lane `harden`, bound to their Tasks), each with
26
- an edge `proof→<node>`, up to the budget. Each harden builder delivers normally and adds
27
- the proof re-run: `relay_task_deliver { disposition:"complete", summary, commits,
27
+ an edge `slice→<node>`, up to the budget. Each harden builder delivers normally and adds
28
+ the proof re-run: `humwick_task_deliver { disposition:"complete", summary, commits,
28
29
  idempotencyKey, gates:{ test:{ status:"pass" }, other:[{ name:"slice-proof", status:"pass" }] } }`.
29
30
  5. **Conformance.** When every node lands the plan reads `completion:"conformance-pending"`,
30
31
  not done, and you get a `plan.conformance-pending` notice. Fetch, check each acceptance item
31
32
  on the main tip (or spawn a fresh agent to audit it), then
32
- `relay_plan_conformance { planId, mainSha:<origin/main tip>, items:[{ id, status:"met"|"unmet", note? }] }`.
33
+ `humwick_plan_conformance { planId, mainSha:<origin/main tip>, items:[{ id, status:"met"|"unmet", note? }] }`.
33
34
  A gap files one bound Task per unmet item and reopens the plan; repeat after they land.
34
35
  Only a pass makes the plan `done`.
35
36
  6. **v1/closed.** Bar met → flag on, file "future" issues, record `stage: v1`;
36
37
  after closure, record `stage: closed` and archive the plan.
37
38
 
38
- Before spawning a harden builder, read `relay_task_get { taskId:<harden>, verbose:true }`
39
- for `dependsOn`, then `relay_task_get { taskId:<proof>, verbose:true }`; require
40
- `status:"done"` and `slice-proof` with `status:"pass"`. Relay records dependencies;
41
- the coordinator enforces dispatch order. Validate with the project's own commands
39
+ Before spawning a harden builder by hand, read `humwick_task_get { taskId:<harden>, verbose:true }`
40
+ for `dependsOn`, then the slice Task: require `status:"done"` and gate `slice-proof` with
41
+ `status:"pass"`. Plan autopilot and Task dependencies already hold dependents of a slice whose
42
+ proof is open or failed; a hand spawn is not held. Validate with the project's own commands
42
43
  from its spawn brief/config; the proof is an additional gate.
43
44
 
44
- Check gate order any time with `relay_plan_get { planId, mode:"lean" }`: every
45
- `harden` node must have `proof` upstream, and no harden node may exist while the proof
46
- Task is not complete with a passing `slice-proof` gate.
45
+ Check gate order any time with `humwick_plan_get { planId, mode:"lean" }`: every
46
+ `harden` node must have `slice` upstream, and no harden node may exist while the slice
47
+ Task is not `done` with a passing `slice-proof` verdict.
@@ -10,7 +10,7 @@ allowed-tools: [Bash]
10
10
  Run:
11
11
 
12
12
  ```bash
13
- agent-relay /status $ARGUMENTS
13
+ humwick /status $ARGUMENTS
14
14
  ```
15
15
 
16
16
  Summarize the current relay connection, agent identity, label, and tags.
@@ -10,16 +10,16 @@ allowed-tools: [Bash]
10
10
  Run:
11
11
 
12
12
  ```bash
13
- agent-relay /tags $ARGUMENTS
13
+ humwick /tags $ARGUMENTS
14
14
  ```
15
15
 
16
16
  Examples:
17
17
 
18
18
  ```bash
19
- agent-relay /tags
20
- agent-relay /tags backend tests urgent
21
- agent-relay /tags --add backend,tests
22
- agent-relay /tags --remove urgent
19
+ humwick /tags
20
+ humwick /tags backend tests urgent
21
+ humwick /tags --add backend,tests
22
+ humwick /tags --remove urgent
23
23
  ```
24
24
 
25
25
  Report the resulting tags briefly.
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: agent-relay-task
2
+ name: humwick-task
3
3
  description: Use Humwick Task tools to create, update, and document durable work records. Use when coordinating multi-step work or when your brief was spawned from a Task.
4
4
  ---
5
5
 
@@ -9,20 +9,20 @@ Use Relay Task tools for durable work tracking instead of burying state in chat.
9
9
 
10
10
  Coordinators:
11
11
 
12
- - Create a Task before multi-step work with `relay_task_create`.
12
+ - Create a Task before multi-step work with `humwick_task_create`.
13
13
  - Set `intent`, `complexity`, and useful `context`; add `doneWhen`, `dispatch`, refs, or dependencies when they clarify routing.
14
14
  - Spawn workers from the Task so they inherit the Task context.
15
15
 
16
16
  Workers:
17
17
 
18
- - Use `relay_task_set_status` as work moves through `in_progress`, `blocked`, `done`, `failed`, or `canceled`.
19
- - Use `relay_task_memory_replace_working_state` for current progress a retry agent needs.
20
- - Use `relay_task_memory_append_decision` for durable choices and rationale.
21
- - Use `relay_task_memory_append_ruled_out` for dead ends, failed approaches, and why they were rejected.
18
+ - Use `humwick_task_set_status` as work moves through `in_progress`, `blocked`, `done`, `failed`, or `canceled`.
19
+ - Use `humwick_task_memory_replace_working_state` for current progress a retry agent needs.
20
+ - Use `humwick_task_memory_append_decision` for durable choices and rationale.
21
+ - Use `humwick_task_memory_append_ruled_out` for dead ends, failed approaches, and why they were rejected.
22
22
 
23
23
  Useful reads and updates:
24
24
 
25
- - `relay_task_get` and `relay_task_history` inspect the Task and audit timeline.
26
- - `relay_task_update` refreshes intent, context, latest steer, doneWhen, complexity, or dispatch.
27
- - `relay_task_record_gate` records tests, typecheck, docs, smoke, and other quality gates.
28
- - `relay_task_dispatch` maps Task shape to a concrete spawn and launches it bound to the Task (shared spawn path). Idempotent retry needs a caller-supplied spawnRequestId, as with relay_spawn_agent.
25
+ - `humwick_task_get` and `humwick_task_history` inspect the Task and audit timeline.
26
+ - `humwick_task_update` refreshes intent, context, latest steer, doneWhen, complexity, or dispatch.
27
+ - `humwick_task_record_gate` records tests, typecheck, docs, smoke, and other quality gates.
28
+ - `humwick_task_dispatch` maps Task shape to a concrete spawn and launches it bound to the Task (shared spawn path). Idempotent retry needs a caller-supplied spawnRequestId, as with humwick_spawn_agent.
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "agent-relay-output-style",
2
+ "name": "humwick-output-style",
3
3
  "description": "Suppress Claude Code's redundant default output-style instructions for Relay-managed sessions",
4
4
  "version": "0.129.23"
5
5
  }
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: Agent Relay
2
+ name: Humwick
3
3
  description: Relay-managed sessions provide their communication rules through the agent profile.
4
4
  force-for-plugin: true
5
5
  ---
@@ -9,7 +9,7 @@ argument-hint: ""
9
9
  Run:
10
10
 
11
11
  ```bash
12
- agent-relay /guide
12
+ humwick /guide
13
13
  ```
14
14
 
15
15
  Use this before guessing Relay commands. The guide explains reply, message, status, label, tag, target, and claimable-work commands.
@@ -9,14 +9,14 @@ argument-hint: "[LABEL|--clear]"
9
9
  Run:
10
10
 
11
11
  ```bash
12
- agent-relay /label $ARGUMENTS
12
+ humwick /label $ARGUMENTS
13
13
  ```
14
14
 
15
15
  Examples:
16
16
 
17
17
  ```bash
18
- agent-relay /label backend-fixer
19
- agent-relay /label --clear
18
+ humwick /label backend-fixer
19
+ humwick /label --clear
20
20
  ```
21
21
 
22
22
  Report the new label or current label briefly.
@@ -9,12 +9,12 @@ allowed-tools: [Bash]
9
9
 
10
10
  ⚠️ **SECURITY — never inline the message body in the shell command.** A body with
11
11
  markdown backticks `` `like this` `` or `$(...)` would be shell-executed (command
12
- substitution) before `agent-relay` sees it — a command-injection vector (#1262),
12
+ substitution) before `humwick` sees it — a command-injection vector,
13
13
  since the body may quote another agent's or a user's text. **Feed the body through
14
14
  stdin via a quoted heredoc** (the `'RELAY_EOF'` quotes disable all expansion):
15
15
 
16
16
  ```bash
17
- agent-relay /message <target> --stdin <<'RELAY_EOF'
17
+ humwick /message <target> --stdin <<'RELAY_EOF'
18
18
  Your message text. Backticks `bun run release` and $(anything) are delivered
19
19
  verbatim and are NOT executed.
20
20
  RELAY_EOF
@@ -24,17 +24,17 @@ Targets (the `<target>` positional) can be an agent id, `tag:`, `policy:`, `cap:
24
24
  `broadcast`:
25
25
 
26
26
  ```bash
27
- agent-relay /message codex --stdin <<'RELAY_EOF'
27
+ humwick /message codex --stdin <<'RELAY_EOF'
28
28
  Can you look at that failing action?
29
29
  RELAY_EOF
30
30
 
31
- agent-relay /message tag:backend --stdin <<'RELAY_EOF'
31
+ humwick /message tag:backend --stdin <<'RELAY_EOF'
32
32
  Does anyone see the regression?
33
33
  RELAY_EOF
34
34
  ```
35
35
 
36
36
  For a message you have already staged in a file, use `--body-file PATH` instead.
37
37
 
38
- **Do NOT** build `agent-relay /message <target> "…body…"` with the body inside quotes.
38
+ **Do NOT** build `humwick /message <target> "…body…"` with the body inside quotes.
39
39
 
40
40
  Report the sent message id briefly.
@@ -9,7 +9,7 @@ argument-hint: "<messageId> <emoji> [--remove]"
9
9
  Run:
10
10
 
11
11
  ```bash
12
- agent-relay /react $ARGUMENTS
12
+ humwick /react $ARGUMENTS
13
13
  ```
14
14
 
15
15
  Use reactions instead of text when the message only needs lightweight acknowledgement, approval, thanks, or "good job".
@@ -9,15 +9,15 @@ argument-hint: "<messageId> [--json|--body]"
9
9
  Run:
10
10
 
11
11
  ```bash
12
- agent-relay get-message $ARGUMENTS
12
+ humwick get-message $ARGUMENTS
13
13
  ```
14
14
 
15
15
  Useful forms:
16
16
 
17
17
  ```bash
18
- agent-relay get-message 206
19
- agent-relay get-message 206 --json
20
- agent-relay get-message 206 --body
18
+ humwick get-message 206
19
+ humwick get-message 206 --json
20
+ humwick get-message 206 --body
21
21
  ```
22
22
 
23
23
  Use `--body` when you only need the complete message text. Use `--json` when attachments, metadata, or thread context matter.
@@ -9,15 +9,15 @@ allowed-tools: [Bash]
9
9
 
10
10
  ⚠️ **SECURITY — never inline the reply body in the shell command.** Your shell runs
11
11
  the command you type, so a body containing markdown backticks `` `like this` `` or
12
- `$(...)` would be executed as a shell command *before* `agent-relay` ever sees it
13
- (command substitution). This is a real command-injection vector (#1262): the body may
12
+ `$(...)` would be executed as a shell command *before* `humwick` ever sees it
13
+ (command substitution). This is a real command-injection vector: the body may
14
14
  quote another agent's or a user's text. **Always feed the body through stdin via a
15
15
  quoted heredoc**, which disables all shell expansion and delivers the body verbatim.
16
16
 
17
17
  Run (safe — quoted `'RELAY_EOF'` delimiter means no expansion, no substitution):
18
18
 
19
19
  ```bash
20
- agent-relay /reply <messageId> --stdin <<'RELAY_EOF'
20
+ humwick /reply <messageId> --stdin <<'RELAY_EOF'
21
21
  Your reply text here. Backticks `bun run release` and $(anything) are delivered
22
22
  verbatim and are NOT executed.
23
23
  RELAY_EOF
@@ -29,7 +29,7 @@ The server auto-routes the reply to the original sender and inherits the channel
29
29
  For a reply you have already staged in a file, use `--body-file` instead:
30
30
 
31
31
  ```bash
32
- agent-relay /reply <messageId> --body-file .agent-relay/sessions/$AGENT_RELAY_ID/tmp/reply.md
32
+ humwick /reply <messageId> --body-file $TMPDIR/reply.md
33
33
  ```
34
34
 
35
35
  The relay creates that per-session scratch dir for you (git-ignored locally), so
@@ -37,7 +37,7 @@ staging there never pollutes the working tree and never collides with other agen
37
37
  No cleanup needed — the dir is reaped when your session ends. Oversized replies are
38
38
  automatically uploaded as an Humwick artifact and sent as an attached concise reply.
39
39
 
40
- **Do NOT** build `agent-relay /reply <id> "…body…"` with the body inside quotes — the
40
+ **Do NOT** build `humwick /reply <id> "…body…"` with the body inside quotes — the
41
41
  heredoc `--stdin` form above is the only safe way to pass free text.
42
42
 
43
43
  Do not send a separate Relay follow-up that only confirms the reply was sent. The CLI
@@ -9,12 +9,12 @@ allowed-tools: [Bash]
9
9
 
10
10
  ⚠️ **SECURITY — never inline the work-item body in the shell command.** A body with
11
11
  markdown backticks `` `like this` `` or `$(...)` would be shell-executed (command
12
- substitution) before `agent-relay` sees it — a command-injection vector (#1262).
12
+ substitution) before `humwick` sees it — a command-injection vector.
13
13
  **Feed the body through stdin via a quoted heredoc** (the `'RELAY_EOF'` quotes disable
14
14
  all expansion, delivering the body verbatim):
15
15
 
16
16
  ```bash
17
- agent-relay /send-claimable <target> --stdin <<'RELAY_EOF'
17
+ humwick /send-claimable <target> --stdin <<'RELAY_EOF'
18
18
  Describe the work item here. Backticks `bun run release` and $(anything) are
19
19
  delivered verbatim and are NOT executed.
20
20
  RELAY_EOF
@@ -23,17 +23,17 @@ RELAY_EOF
23
23
  Targets can be an agent id, `tag:`, `cap:`, or `policy:`:
24
24
 
25
25
  ```bash
26
- agent-relay /send-claimable tag:backend --stdin <<'RELAY_EOF'
26
+ humwick /send-claimable tag:backend --stdin <<'RELAY_EOF'
27
27
  Fix the failing API test
28
28
  RELAY_EOF
29
29
 
30
- agent-relay /send-claimable cap:review --stdin <<'RELAY_EOF'
30
+ humwick /send-claimable cap:review --stdin <<'RELAY_EOF'
31
31
  Review the migration patch
32
32
  RELAY_EOF
33
33
  ```
34
34
 
35
35
  For a work item you have already staged in a file, use `--body-file PATH` instead.
36
36
 
37
- **Do NOT** build `agent-relay /send-claimable <target> "…body…"` with the body inside quotes.
37
+ **Do NOT** build `humwick /send-claimable <target> "…body…"` with the body inside quotes.
38
38
 
39
39
  Report the sent claimable message id briefly.
@@ -6,7 +6,7 @@ description: Frame and prove a thin end-to-end feature slice before planning har
6
6
  # Slice first
7
7
 
8
8
  Use the current project's instructions and configured validation/deployment gates,
9
- including its “How to validate in THIS project” brief or `.agent-relay/land-gates.json`.
9
+ including its “How to validate in THIS project” brief or the project’s `land-gates.json`.
10
10
  Choose the proof's location and runtime in that project; no particular repo is required.
11
11
 
12
12
  | Stage | Required result |
@@ -19,8 +19,10 @@ Choose the proof's location and runtime in that project; no particular repo is r
19
19
 
20
20
  Coordinator owns stages, scope ledger and budget; record stage decisions on the spec
21
21
  Task. Changing the bar or exceeding the budget needs operator approval. A blocked
22
- slice returns to frame. Never create or spawn harden Tasks before the proof Task is
23
- done with `slice-proof: pass`; dependencies alone do not prevent dispatch.
22
+ slice returns to frame. Never spawn harden builders before the slice Task is `done`
23
+ with a passing `slice-proof` verdict. Relay holds the slice Task's dependents (plan
24
+ nodes, Task dependencies) while its proof is open or failed; a builder you spawn by
25
+ hand is not held.
24
26
 
25
27
  Design writes proof then spec, no full design. Builder declares each slice shortcut
26
28
  in delivery risks. QA reproduces independently. Review blocks only on the stage's
@@ -1,46 +1,47 @@
1
1
  # Plan recipe (coordinator only)
2
2
 
3
- 1. **Frame.** `relay_plan_create { title:"<feature>", acceptance:[{ id, text, check?:{ path }|{ command } }] }`.
3
+ 1. **Frame.** `humwick_plan_create { title:"<feature>", acceptance:[{ id, text, check?:{ path }|{ command } }] }`.
4
4
  Acceptance is required: the plan's own bar (the design doc's deliverables, deletions and
5
5
  acceptance commands), one checkable item each. Then create and bind the spec Task:
6
- `relay_task_create { intent, issueRefs:["#<feature>"] }` →
7
- `relay_plan_add_node { planId, node:{ id:"spec", label:"Slice spec", lane:"frame", refs:{ taskId:<spec> } } }`.
6
+ `humwick_task_create { intent, issueRefs:["#<feature>"] }` →
7
+ `humwick_plan_add_node { planId, node:{ id:"spec", label:"Slice spec", lane:"frame", refs:{ taskId:<spec> } } }`.
8
8
  Record the fixed v1 bar and budget on this Task; spawn `software-design` on it.
9
- 2. **Slice.** Create the build Task (normal landing Task) and the proof Task. The proof
10
- Task must not land: `relay_task_create { intent:"Independent slice proof",
11
- doneWhen:"delivered", dispatch:{ type:"review" }, context:"<proof command>; <instance>" }`.
12
- Add both as nodes (lane `slice`, `refs:{ taskId }`) and edges `spec→build`, `build→proof`
13
- (`relay_plan_add_edge { planId, from, to }`: `to` depends on `from`; edges between bound
14
- nodes become Task dependencies). Spawn a `worker` on `build`; when its project delivery/deployment
15
- gates pass, spawn `QA` on `proof`.
16
- 3. **Gate.** The prover delivers the proof Task; that closes it `done` with no land attempt
17
- because it is a delivered review Task. `relay_task_record_gate` alone does not finish it,
18
- so its harden dependents stay on an open upstream.
19
- - Pass: `relay_task_deliver { disposition:"complete", summary, gates:{ other:[{ name:"slice-proof", status:"pass", detail:"<command> @ <sha> on <instance>" }] } }`
20
- - Fail: `relay_task_deliver { disposition:"failed", summary, reason:"<blocker>", gates:{ other:[{ name:"slice-proof", status:"fail", detail }] } }`
21
-
22
- Fail → frame again (new spec revision, same plan). Pass → verify the proof Task is
23
- `done` with `slice-proof: pass`, then record the stage on the spec Task:
24
- `relay_task_memory_append_decision { taskId:<spec>, decision:"stage: harden" }`.
9
+ 2. **Slice.** Create one slice Task, a normal landing Task whose execution is the
10
+ `slice-proof` workflow: `humwick_task_create { intent, doneWhen, execution:{ workflow:"slice-proof",
11
+ inputs:{ command:"<proof command>", instance:"<dev or ephemeral instance>" } } }`. There is no
12
+ proof Task. Add it as a node (lane `slice`, `refs:{ taskId }`) with the edge `spec→slice`
13
+ (`humwick_plan_add_edge { planId, from, to }`: `to` depends on `from`; edges between bound
14
+ nodes become Task dependencies). Plan autopilot starts its run; by hand:
15
+ `humwick_workflow_start { workflow:"slice-proof", taskId:<slice>, inputs:{ command, instance } }`.
16
+ The run builds and reviews the slice, lands it, then a fresh `slice-qa` agent reproduces
17
+ the proof on the slice Task itself.
18
+ 3. **Gate.** The QA agent records the `slice-proof` verdict on the slice Task with
19
+ `humwick_task_verdict` (pass or fail, the landed commit, command, instance and evidence).
20
+ Until it passes, the slice Task stays `validating` (failed: in progress) and its dependents
21
+ wait for the proof verdict. Fail → the run escalates to you → frame again (new spec
22
+ revision, same plan). Pass → the slice Task is `done`; confirm with
23
+ `humwick_task_get { taskId:<slice>, verbose:true }` (`status:"done"`, gate `slice-proof`
24
+ with `status:"pass"`), then record the stage on the spec Task:
25
+ `humwick_task_memory_append_decision { taskId:<spec>, decision:"stage: harden" }`.
25
26
  4. **Harden.** Only now add harden nodes (lane `harden`, bound to their Tasks), each with
26
- an edge `proof→<node>`, up to the budget. Each harden builder delivers normally and adds
27
- the proof re-run: `relay_task_deliver { disposition:"complete", summary, commits,
27
+ an edge `slice→<node>`, up to the budget. Each harden builder delivers normally and adds
28
+ the proof re-run: `humwick_task_deliver { disposition:"complete", summary, commits,
28
29
  idempotencyKey, gates:{ test:{ status:"pass" }, other:[{ name:"slice-proof", status:"pass" }] } }`.
29
30
  5. **Conformance.** When every node lands the plan reads `completion:"conformance-pending"`,
30
31
  not done, and you get a `plan.conformance-pending` notice. Fetch, check each acceptance item
31
32
  on the main tip (or spawn a fresh agent to audit it), then
32
- `relay_plan_conformance { planId, mainSha:<origin/main tip>, items:[{ id, status:"met"|"unmet", note? }] }`.
33
+ `humwick_plan_conformance { planId, mainSha:<origin/main tip>, items:[{ id, status:"met"|"unmet", note? }] }`.
33
34
  A gap files one bound Task per unmet item and reopens the plan; repeat after they land.
34
35
  Only a pass makes the plan `done`.
35
36
  6. **v1/closed.** Bar met → flag on, file "future" issues, record `stage: v1`;
36
37
  after closure, record `stage: closed` and archive the plan.
37
38
 
38
- Before spawning a harden builder, read `relay_task_get { taskId:<harden>, verbose:true }`
39
- for `dependsOn`, then `relay_task_get { taskId:<proof>, verbose:true }`; require
40
- `status:"done"` and `slice-proof` with `status:"pass"`. Relay records dependencies;
41
- the coordinator enforces dispatch order. Validate with the project's own commands
39
+ Before spawning a harden builder by hand, read `humwick_task_get { taskId:<harden>, verbose:true }`
40
+ for `dependsOn`, then the slice Task: require `status:"done"` and gate `slice-proof` with
41
+ `status:"pass"`. Plan autopilot and Task dependencies already hold dependents of a slice whose
42
+ proof is open or failed; a hand spawn is not held. Validate with the project's own commands
42
43
  from its spawn brief/config; the proof is an additional gate.
43
44
 
44
- Check gate order any time with `relay_plan_get { planId, mode:"lean" }`: every
45
- `harden` node must have `proof` upstream, and no harden node may exist while the proof
46
- Task is not complete with a passing `slice-proof` gate.
45
+ Check gate order any time with `humwick_plan_get { planId, mode:"lean" }`: every
46
+ `harden` node must have `slice` upstream, and no harden node may exist while the slice
47
+ Task is not `done` with a passing `slice-proof` verdict.
@@ -9,7 +9,7 @@ argument-hint: "[--json]"
9
9
  Run:
10
10
 
11
11
  ```bash
12
- agent-relay /status $ARGUMENTS
12
+ humwick /status $ARGUMENTS
13
13
  ```
14
14
 
15
15
  Summarize the current relay connection, agent identity, label, and tags.
@@ -9,16 +9,16 @@ argument-hint: "[TAG ...|--list|--add TAGS|--remove TAGS]"
9
9
  Run:
10
10
 
11
11
  ```bash
12
- agent-relay /tags $ARGUMENTS
12
+ humwick /tags $ARGUMENTS
13
13
  ```
14
14
 
15
15
  Examples:
16
16
 
17
17
  ```bash
18
- agent-relay /tags
19
- agent-relay /tags backend tests urgent
20
- agent-relay /tags --add backend,tests
21
- agent-relay /tags --remove urgent
18
+ humwick /tags
19
+ humwick /tags backend tests urgent
20
+ humwick /tags --add backend,tests
21
+ humwick /tags --remove urgent
22
22
  ```
23
23
 
24
24
  Report the resulting tags briefly.
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: agent-relay-task
2
+ name: humwick-task
3
3
  description: Use Humwick Task tools to create, update, and document durable work records. Use when coordinating multi-step work or when your brief was spawned from a Task.
4
4
  ---
5
5
 
@@ -9,20 +9,21 @@ Use Relay Task tools for durable work tracking instead of burying state in chat.
9
9
 
10
10
  Coordinators:
11
11
 
12
- - Create a Task before multi-step work with `relay_task_create`.
12
+ - Create a Task before multi-step work with `humwick_task_create`.
13
13
  - Set `intent`, `complexity`, and useful `context`; add `doneWhen`, `dispatch`, refs, or dependencies when they clarify routing.
14
14
  - Spawn workers from the Task so they inherit the Task context.
15
15
 
16
16
  Workers:
17
17
 
18
- - Use `relay_task_set_status` as work moves through `in_progress`, `blocked`, `done`, `failed`, or `canceled`.
19
- - Use `relay_task_memory_replace_working_state` for current progress a retry agent needs.
20
- - Use `relay_task_memory_append_decision` for durable choices and rationale.
21
- - Use `relay_task_memory_append_ruled_out` for dead ends, failed approaches, and why they were rejected.
18
+ - Deliver with `humwick_task_deliver` after code, committed tests and the project's delivery gate pass. Checks explicitly marked post-deploy/onDeploy are verified after landing; name them in delivery risks and deliver `complete`, rather than blocking on a deployment the builder does not own.
19
+ - Use `humwick_task_set_status` as work moves through `in_progress`, `blocked`, `done`, `failed`, or `canceled`.
20
+ - Use `humwick_task_memory_replace_working_state` for current progress a retry agent needs.
21
+ - Use `humwick_task_memory_append_decision` for durable choices and rationale.
22
+ - Use `humwick_task_memory_append_ruled_out` for dead ends, failed approaches, and why they were rejected.
22
23
 
23
24
  Useful reads and updates:
24
25
 
25
- - `relay_task_get` and `relay_task_history` inspect the Task and audit timeline.
26
- - `relay_task_update` refreshes intent, context, latest steer, doneWhen, complexity, or dispatch.
27
- - `relay_task_record_gate` records tests, typecheck, docs, smoke, and other quality gates.
28
- - `relay_task_dispatch` maps Task shape to a concrete spawn and launches it bound to the Task (shared spawn path). Idempotent retry needs a caller-supplied spawnRequestId, as with relay_spawn_agent.
26
+ - `humwick_task_get` and `humwick_task_history` inspect the Task and audit timeline.
27
+ - `humwick_task_update` refreshes intent, context, latest steer, doneWhen, complexity, or dispatch.
28
+ - `humwick_task_record_gate` records tests, typecheck, docs, smoke, and other quality gates.
29
+ - `humwick_task_dispatch` maps Task shape to a concrete spawn and launches it bound to the Task (shared spawn path). Idempotent retry needs a caller-supplied spawnRequestId, as with humwick_spawn_agent.