@astrosheep/keiyaku 4.5.7 → 4.5.8

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 (234) hide show
  1. package/README.md +10 -0
  2. package/build/integrations/marketplace/plugins/keiyaku/.claude-plugin/plugin.json +1 -1
  3. package/build/integrations/marketplace/plugins/keiyaku/.codex-plugin/plugin.json +1 -1
  4. package/build/integrations/marketplace/plugins/keiyaku/opencode.js +3 -2
  5. package/build/integrations/marketplace/plugins/keiyaku/package.json +1 -1
  6. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku/SKILL.md +10 -9
  7. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-akuma/SKILL.md +22 -1
  8. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-babysit/SKILL.md +35 -96
  9. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-bind/SKILL.md +28 -49
  10. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-task/SKILL.md +21 -15
  11. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-workflow/SKILL.md +148 -89
  12. package/build/src/akuma/abort.d.ts +2 -1
  13. package/build/src/akuma/abort.js +6 -23
  14. package/build/src/akuma/akuma-handle.js +4 -2
  15. package/build/src/akuma/akuma-observe.d.ts +2 -0
  16. package/build/src/akuma/akuma-observe.js +1 -0
  17. package/build/src/akuma/akuma-product.js +9 -7
  18. package/build/src/akuma/akuma.d.ts +372 -9
  19. package/build/src/akuma/akuma.js +31 -1
  20. package/build/src/akuma/allowed.d.ts +1 -1
  21. package/build/src/akuma/allowed.js +1 -0
  22. package/build/src/akuma/body.d.ts +6 -4
  23. package/build/src/akuma/body.js +5 -3
  24. package/build/src/akuma/call-request.d.ts +80 -0
  25. package/build/src/akuma/call-request.js +211 -0
  26. package/build/src/akuma/heart/facts.d.ts +6 -78
  27. package/build/src/akuma/heart/index.d.ts +1 -1
  28. package/build/src/akuma/heart/request-authority.d.ts +5 -4
  29. package/build/src/akuma/heart/request-authority.js +20 -34
  30. package/build/src/akuma/heart/request-rows.js +12 -23
  31. package/build/src/akuma/heart/schema.d.ts +1 -1
  32. package/build/src/akuma/heart/schema.js +5 -13
  33. package/build/src/akuma/index.d.ts +1 -1
  34. package/build/src/akuma/index.js +1 -1
  35. package/build/src/akuma/projection-read.d.ts +1 -0
  36. package/build/src/akuma/projection-read.js +8 -1
  37. package/build/src/akuma/projection.d.ts +856 -137
  38. package/build/src/akuma/projection.js +190 -0
  39. package/build/src/akuma/provider.d.ts +30 -3
  40. package/build/src/akuma/provider.js +104 -0
  41. package/build/src/akuma/providers/acp/core.d.ts +2 -2
  42. package/build/src/akuma/providers/acp/core.js +13 -6
  43. package/build/src/akuma/providers/acp/index.js +5 -4
  44. package/build/src/akuma/providers/claude/index.d.ts +3 -3
  45. package/build/src/akuma/providers/claude/index.js +16 -5
  46. package/build/src/akuma/providers/codex-app-server/events.js +1 -1
  47. package/build/src/akuma/providers/codex-app-server/index.js +18 -6
  48. package/build/src/akuma/providers/grok-build/index.js +5 -4
  49. package/build/src/akuma/providers/opencode-sdk/index.js +66 -25
  50. package/build/src/akuma/providers/opencode-sdk/session.d.ts +3 -2
  51. package/build/src/akuma/providers/opencode-sdk/session.js +28 -11
  52. package/build/src/akuma/providers/pi/index.js +42 -14
  53. package/build/src/akuma/request-lifecycle.d.ts +3 -9
  54. package/build/src/akuma/request-lifecycle.js +4 -4
  55. package/build/src/akuma/request-rendezvous.d.ts +26 -0
  56. package/build/src/akuma/request-rendezvous.js +100 -0
  57. package/build/src/akuma/request-serve.d.ts +5 -65
  58. package/build/src/akuma/request-serve.js +81 -208
  59. package/build/src/akuma/request-wire.d.ts +109 -115
  60. package/build/src/akuma/request-wire.js +63 -318
  61. package/build/src/akuma/requests.d.ts +19 -47
  62. package/build/src/akuma/requests.js +51 -107
  63. package/build/src/akuma/turn-drive.d.ts +5 -3
  64. package/build/src/akuma/turn-drive.js +32 -10
  65. package/build/src/akuma-body.d.ts +7 -2
  66. package/build/src/akuma-body.js +68 -46
  67. package/build/src/cli/accepted.d.ts +1 -1
  68. package/build/src/cli/accepted.js +2 -2
  69. package/build/src/cli/commands/akuma-invoke.d.ts +2 -0
  70. package/build/src/cli/commands/akuma-invoke.js +17 -9
  71. package/build/src/cli/commands/akuma.js +7 -7
  72. package/build/src/cli/commands/contract-invoke.d.ts +3 -2
  73. package/build/src/cli/commands/contract-invoke.js +26 -19
  74. package/build/src/cli/commands/contract.d.ts +13 -13
  75. package/build/src/cli/commands/contract.js +32 -17
  76. package/build/src/cli/commands/install.d.ts +1 -1
  77. package/build/src/cli/commands/install.js +1 -1
  78. package/build/src/cli/commands/task-invoke.d.ts +3 -0
  79. package/build/src/cli/commands/task-invoke.js +23 -140
  80. package/build/src/cli/commands/task.js +54 -20
  81. package/build/src/cli/invoke.js +39 -25
  82. package/build/src/cli/main.js +2 -1
  83. package/build/src/cli/parse.d.ts +2 -2
  84. package/build/src/cli/parse.js +37 -22
  85. package/build/src/cli/render/akuma-activity.d.ts +4 -1
  86. package/build/src/cli/render/akuma-activity.js +45 -30
  87. package/build/src/cli/render/akuma-tool.d.ts +5 -1
  88. package/build/src/cli/render/akuma.js +5 -9
  89. package/build/src/cli/render/audit.js +1 -1
  90. package/build/src/cli/render/catalog.js +80 -21
  91. package/build/src/cli/render/contract-observation.d.ts +2 -0
  92. package/build/src/cli/render/contract-observation.js +11 -0
  93. package/build/src/cli/render/contract.js +25 -65
  94. package/build/src/cli/render/kanshi-akuma.d.ts +8 -0
  95. package/build/src/cli/render/kanshi-akuma.js +111 -0
  96. package/build/src/cli/render/kanshi.js +108 -213
  97. package/build/src/cli/render/receipt.d.ts +1 -2
  98. package/build/src/cli/render/receipt.js +76 -26
  99. package/build/src/cli/render/refusal.js +2 -10
  100. package/build/src/cli/render/region.js +5 -2
  101. package/build/src/cli/render/settings.d.ts +1 -1
  102. package/build/src/cli/render/settings.js +27 -8
  103. package/build/src/cli/render/task.js +22 -5
  104. package/build/src/cli/render/terminal.d.ts +28 -0
  105. package/build/src/cli/render/terminal.js +65 -0
  106. package/build/src/cli/result.d.ts +3 -3
  107. package/build/src/cli/runtime.js +3 -1
  108. package/build/src/cli/selectors.d.ts +2 -1
  109. package/build/src/cli/selectors.js +4 -3
  110. package/build/src/cli/square-edge.js +120 -36
  111. package/build/src/cli/usage.js +2 -1
  112. package/build/src/contract-guidance.d.ts +5 -0
  113. package/build/src/contract-guidance.js +121 -0
  114. package/build/src/contract-worktree.d.ts +0 -1
  115. package/build/src/contract-worktree.js +32 -83
  116. package/build/src/coordination/sqlite-transaction-lock.d.ts +1 -0
  117. package/build/src/coordination/sqlite-transaction-lock.js +5 -0
  118. package/build/src/core/facts/codec.d.ts +2 -0
  119. package/build/src/core/facts/codec.js +4 -0
  120. package/build/src/core/verbs/placement.d.ts +6 -1
  121. package/build/src/core/verbs/placement.js +5 -3
  122. package/build/src/dispatch/index.d.ts +0 -2
  123. package/build/src/dispatch/index.js +54 -55
  124. package/build/src/git/admission.js +2 -2
  125. package/build/src/git/hooks.d.ts +9 -15
  126. package/build/src/git/hooks.js +23 -317
  127. package/build/src/git/nuke.d.ts +2 -1
  128. package/build/src/git/nuke.js +36 -18
  129. package/build/src/git/private-state-seat.d.ts +12 -0
  130. package/build/src/git/private-state-seat.js +39 -0
  131. package/build/src/git/process.d.ts +6 -0
  132. package/build/src/git/process.js +19 -7
  133. package/build/src/git/read-observation.js +29 -20
  134. package/build/src/git/reconcile.d.ts +11 -0
  135. package/build/src/git/reconcile.js +64 -11
  136. package/build/src/git/repository.d.ts +6 -2
  137. package/build/src/git/repository.js +8 -0
  138. package/build/src/git/target-placement.d.ts +1 -0
  139. package/build/src/git/target-placement.js +5 -0
  140. package/build/src/git/tender.d.ts +1 -0
  141. package/build/src/git/terminal-reconcile.d.ts +1 -1
  142. package/build/src/git/terminal-reconcile.js +22 -20
  143. package/build/src/git/workspace.d.ts +14 -0
  144. package/build/src/git/workspace.js +44 -0
  145. package/build/src/kanshi/index.d.ts +1 -1
  146. package/build/src/kanshi/read.js +16 -16
  147. package/build/src/kanshi/report.d.ts +2 -2
  148. package/build/src/library/address.d.ts +9 -3
  149. package/build/src/library/address.js +3 -2
  150. package/build/src/library/akuma-creation.d.ts +4 -3
  151. package/build/src/library/akuma-creation.js +19 -13
  152. package/build/src/library/audit.d.ts +1 -1
  153. package/build/src/library/audit.js +5 -3
  154. package/build/src/library/catalog.d.ts +3 -1
  155. package/build/src/library/catalog.js +20 -6
  156. package/build/src/library/composition.d.ts +371 -0
  157. package/build/src/library/composition.js +28 -0
  158. package/build/src/library/configuration.js +8 -2
  159. package/build/src/library/continuation.js +66 -30
  160. package/build/src/library/contract-bind.js +10 -2
  161. package/build/src/library/contract-forwarding-reconciliation-result.d.ts +96 -0
  162. package/build/src/library/contract-forwarding-reconciliation-result.js +83 -0
  163. package/build/src/library/contract-forwarding-result.d.ts +6723 -0
  164. package/build/src/library/contract-forwarding-result.js +521 -0
  165. package/build/src/library/contract-forwarding.d.ts +72 -0
  166. package/build/src/library/contract-forwarding.js +125 -0
  167. package/build/src/library/contract-handle.d.ts +36 -0
  168. package/build/src/library/contract-handle.js +313 -0
  169. package/build/src/library/contract-operations.d.ts +1044 -67
  170. package/build/src/library/contract-operations.js +190 -118
  171. package/build/src/library/contract.d.ts +11 -32
  172. package/build/src/library/contract.js +16 -289
  173. package/build/src/library/fleet-result.d.ts +1454 -0
  174. package/build/src/library/fleet-result.js +96 -0
  175. package/build/src/library/fleet.d.ts +112 -54
  176. package/build/src/library/fleet.js +211 -71
  177. package/build/src/library/input.d.ts +2 -0
  178. package/build/src/library/input.js +4 -0
  179. package/build/src/library/keiyaku.d.ts +371 -20
  180. package/build/src/library/keiyaku.js +8 -21
  181. package/build/src/library/mutation.d.ts +3 -3
  182. package/build/src/library/mutation.js +5 -9
  183. package/build/src/library/nuke.d.ts +1 -1
  184. package/build/src/library/nuke.js +4 -3
  185. package/build/src/library/reconcile.d.ts +4 -0
  186. package/build/src/library/reconcile.js +2 -0
  187. package/build/src/library/refusal.d.ts +0 -9
  188. package/build/src/library/refusal.js +0 -7
  189. package/build/src/protocol/amend.js +56 -50
  190. package/build/src/protocol/attempt.d.ts +2 -0
  191. package/build/src/protocol/attempt.js +8 -1
  192. package/build/src/protocol/completion.js +7 -0
  193. package/build/src/protocol/deliver.js +6 -2
  194. package/build/src/protocol/operations.d.ts +4 -1
  195. package/build/src/protocol/operations.js +5 -2
  196. package/build/src/protocol/placement.d.ts +1 -0
  197. package/build/src/protocol/placement.js +52 -38
  198. package/build/src/protocol/read/observation.d.ts +1 -4
  199. package/build/src/protocol/read/observation.js +2 -15
  200. package/build/src/protocol/reintegrate.js +62 -58
  201. package/build/src/protocol/review.js +5 -0
  202. package/build/src/protocol/run.js +17 -13
  203. package/build/src/runtime/proc/run.d.ts +8 -0
  204. package/build/src/runtime/proc/run.js +27 -0
  205. package/build/src/runtime/proc/termination.js +26 -22
  206. package/build/src/runtime/proc/windows-launch.exe +0 -0
  207. package/build/src/settlement/holder.d.ts +2 -1
  208. package/build/src/settlement/holder.js +15 -4
  209. package/build/src/settlement/settle.js +99 -33
  210. package/build/src/task/board.d.ts +68 -27
  211. package/build/src/task/board.js +31 -1
  212. package/build/src/task/catalog.d.ts +4 -0
  213. package/build/src/task/catalog.js +23 -0
  214. package/build/src/task/compose-language.js +33 -7
  215. package/build/src/task/compose-parser.d.ts +1 -1
  216. package/build/src/task/compose-parser.js +1 -1
  217. package/build/src/task/compose.js +2 -0
  218. package/build/src/task/index.d.ts +12 -4
  219. package/build/src/task/index.js +97 -16
  220. package/build/src/task/mutation-result.d.ts +923 -0
  221. package/build/src/task/mutation-result.js +140 -0
  222. package/build/src/task/mutation.d.ts +552 -28
  223. package/build/src/task/mutation.js +304 -97
  224. package/build/src/task/operations.d.ts +1 -4
  225. package/build/src/task/operations.js +0 -6
  226. package/build/src/task/public.d.ts +2 -0
  227. package/build/src/task/public.js +1 -0
  228. package/build/src/workspace-place.d.ts +7 -2
  229. package/build/src/workspace-place.js +34 -24
  230. package/build/src/world.d.ts +1 -0
  231. package/build/src/world.js +11 -0
  232. package/package.json +8 -6
  233. package/build/src/akuma/request-execution.d.ts +0 -8
  234. package/build/src/akuma/request-execution.js +0 -98
package/README.md CHANGED
@@ -139,3 +139,13 @@ npm install -g @astrosheep/keiyaku
139
139
  ```
140
140
 
141
141
  Node ≥ 22.19. Product law lives in [`docs/`](docs/README.md).
142
+
143
+ ## Source builds
144
+
145
+ Building from source also builds the Windows launcher with Zig 0.14.1. Install
146
+ that system tool separately and make `zig` available on `PATH`, or set
147
+ `KEIYAKU_ZIG` to the selected executable. `npm ci` alone is not sufficient for
148
+ the Windows launcher: use `npm ci --ignore-scripts --prefer-offline` followed by
149
+ `npm run build` (or `npm test`). On non-Windows hosts, a missing or unusable
150
+ Zig skips only the Windows launcher so the rest of `npm run build` and `npm test`
151
+ can continue; Windows builds fail with an actionable diagnostic.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "keiyaku",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Use the Keiyaku contract, task, and Akuma CLI.",
5
5
  "author": {
6
6
  "name": "Keiyaku"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "keiyaku",
3
- "version": "0.1.1+codex.20260826070830",
3
+ "version": "0.1.2+codex.20260826070830",
4
4
  "description": "Use the Keiyaku contract, task, and Akuma CLI.",
5
5
  "author": {
6
6
  "name": "Keiyaku"
@@ -1,8 +1,9 @@
1
1
  import { readFile } from "node:fs/promises";
2
2
  import { fileURLToPath } from "node:url";
3
3
 
4
- const skills = ["keiyaku", "keiyaku-task", "keiyaku-bind", "keiyaku-workflow", "keiyaku-akuma", "keiyaku-babysit"]
5
- .map((name) => fileURLToPath(new URL(`./skills/${name}/SKILL.md`, import.meta.url)));
4
+ const skills = ["keiyaku", "keiyaku-task", "keiyaku-bind", "keiyaku-workflow", "keiyaku-akuma", "keiyaku-babysit"].map(
5
+ (name) => fileURLToPath(new URL(`./skills/${name}/SKILL.md`, import.meta.url)),
6
+ );
6
7
 
7
8
  export default {
8
9
  id: "keiyaku",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "keiyaku-harness",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "type": "module",
5
5
  "main": "./opencode.js",
6
6
  "keywords": [
@@ -5,16 +5,17 @@ description: Use the Keiyaku v4 CLI for contract delivery, task coordination, an
5
5
 
6
6
  # Keiyaku
7
7
 
8
- Use `keiyaku` as an agent-facing ledger. Keep decisions with the flagship;
9
- read `<command> --help` before using flags.
10
-
11
8
  ## Model
12
9
 
13
- - `task` is planning; see `keiyaku-task`.
14
- - A Contract is delivery authority; see `keiyaku-bind` to author and bind one,
15
- then `keiyaku-workflow` for the remaining lifecycle.
16
- - An Akuma is a callable worker; see `keiyaku-akuma`.
17
- - A long-running multi-lane goal needs coordination; see `keiyaku-babysit`.
10
+ Keiyaku is three independent pillars, not a bundle: **Task** remembers plans
11
+ and dependencies, **Contract** makes acceptance standing and auditable,
12
+ **Akuma** invokes capability. Use any one alone; combine them only when the
13
+ work calls for it. Behind every Contract in flight there is one holder of its
14
+ fulfillment loop whoever turns intent into commissions and returns into
15
+ decisions. The flagship holds it by default, and may hand a whole Contract's
16
+ loop to one Aku in a single commission; the harness serves both styles
17
+ equally. See `keiyaku-workflow` for the loop, `keiyaku-bind` for authoring,
18
+ `keiyaku-akuma` for invocation.
18
19
 
19
20
  Settings owns named gate bundles. Omitting `--gates` selects `gates.default`,
20
21
  or freezes `["reviewed"]` when that entry is absent. `--gates <name,...>`
@@ -32,7 +33,7 @@ keiyaku -C <repo> review [<contract>|@<contract>] --satisfied
32
33
  ```
33
34
 
34
35
  ```bash
35
- keiyaku -C <cwd> call <akuma-name> [--contract <kei/...>] [--alias @name] [--readonly] [--allowed <product.action>]... [--wait <duration> | -d | --detach] (<prompt> | -)
36
+ keiyaku -C <cwd> call <akuma-name> [--contract <kei/...>] [--alias @name] [--readonly] [--allowed <product.action>]... [--wait <duration> | -d | --detach] [--json] (<prompt> | -)
36
37
  keiyaku -C <repo> wait <akuma-selector>... [--any | --all]
37
38
  keiyaku -C <repo> tell <aku/...|@alias> (<prompt> | -)
38
39
  ```
@@ -13,7 +13,7 @@ is accepted; the identity underneath never changes.
13
13
  ## Start One
14
14
 
15
15
  ```bash
16
- keiyaku -C <cwd> call <akuma-name> [--alias @name] [--readonly] [--allowed <product.action>]... [--wait <duration> | -d | --detach] (<prompt> | -)
16
+ keiyaku -C <cwd> call <akuma-name> [--alias @name] [--readonly] [--allowed <product.action>]... [--wait <duration> | -d | --detach] [--json] (<prompt> | -)
17
17
  ```
18
18
 
19
19
  Give the worker's initial prompt as one argument (quote it when it contains
@@ -41,6 +41,27 @@ prompt, and an empty body keeps the harness default. Write a new one when no
41
41
  existing file grants the permissions and stance the work needs; a worker never
42
42
  outgrows its Archetype mid-life.
43
43
 
44
+ ## Commission And Steer
45
+
46
+ A call assembles a commission from independent inputs: the Archetype fixes
47
+ capability stance for the identity's whole life; the `--contract` Dispatch
48
+ associates standing terms; allowed actions set what the callee may do, always
49
+ under the Archetype base and the parent Soul's ceiling; the prompt carries the
50
+ question. None of these implies another — association is not a seat, forwarded
51
+ actions are not a seat, and no combination mints a role.
52
+
53
+ The prompt and every later tell genuinely direct the callee's work: they choose
54
+ the subject, scope, depth, risks, and deliverable of the round. They spend
55
+ decisions already made and ask questions still open; they never change the
56
+ Dispatch, the journal, or what counts as acceptance, and an expectation stated
57
+ in a prompt is never evidence for the callee's own findings.
58
+
59
+ A commission can be as large as a whole Contract's fulfillment loop: call one
60
+ Aku with the Contract association, forward the actions the loop needs —
61
+ including nested calls, which stay under this Soul's ceiling — and state the
62
+ loop as the question. Steering that delegation afterwards goes to the holder,
63
+ not around it.
64
+
44
65
  ## Watch
45
66
 
46
67
  ```bash
@@ -3,112 +3,51 @@ name: keiyaku-babysit
3
3
  description: Babysit a long-running multi-lane goal — a room of lanes that advance on their own, call for you on their schedule, and hold each other up while you are busy being productive.
4
4
  ---
5
5
 
6
- # keiyaku-babysit
6
+ # Keiyaku Babysit
7
7
 
8
- A goal big enough to babysit is a room full of wards: kei in delivery,
9
- Akuma working, reviews pending, a caller owing a decision, an external
10
- dependency due someday. Each lane advances on its own once set moving;
11
- each calls for you when it chooses; a lane left waiting on you holds up
12
- the lanes behind it. There is one of you. The hard part is where your
13
- next ten minutes go.
14
-
15
- ## You did not hand it off. You booked yourself.
16
-
17
- Handing a lane to a worker felt lighter, didn't it. What you actually
18
- did was schedule your own future: a question to answer, a return to
19
- verify, a review to start, a delivery to make — all arriving when the
20
- lane is ready, never when you are. While absorbed anywhere, every lane
21
- reaching such a moment stops dead and waits, billing the goal by the
22
- minute. Price attention by delay cost, not work importance: the
23
- two-minute answer an Akuma is stalled on outranks an hour of brilliant
24
- work in your hands, because your hour happens later and the stall does
25
- not un-happen. Yes, even though your work is more interesting.
26
-
27
- ## The sweep
28
-
29
- Several lanes calling at once? How flattering. Take them in order of
30
- what your delay costs, never the order you prefer:
31
-
32
- 1. Unblock anyone stopped and waiting on you: a question, hand-off, or
33
- review only you can start. It will take minutes; it has cost hours.
34
- 2. Verify returns, starting with the one other lanes build on. An
35
- unverified return cannot close its lane, and every lane treating it
36
- as settled builds on your unchecked assumption. If two returns can
37
- interact, read both before settling either.
38
- 3. Tell lanes what changed. A settled result that invalidates a running
39
- lane's premise gets relayed before your own work; silence manufactures
40
- rework.
41
- 4. Then, and only then, your own lane. It survived waiting.
42
-
43
- Sweep at the seams: before a long stretch, when a lane returns something
44
- material, and when you hand a new lane out. Not on a timer. A quiet lane
45
- is not a content lane: quiet is working, stuck, or waiting on you, and
46
- you cannot tell which from your chair. Go look; reading progress into
47
- silence is astrology, not babysitting.
48
-
49
- ## Productive absorption
50
-
51
- Neglect does not have to look like thrashing on a dead end. Real neglect
52
- looks like you, deeply satisfied, making excellent progress on one ward
53
- while the room goes unswept: an Akuma holding a one-line question for
54
- two hours, a finished return nobody dares build on because you never
55
- checked it, a caller decision request composed in your head and sent
56
- nowhere. The test is not "am I being productive" — you are. Is any
57
- lane's due care older than the work in your hands?
8
+ Babysitting is a method, not a role: no new identity, permission, ledger,
9
+ status, id, or lifecycle. It is how whoever holds work in flight schedules
10
+ their own attention across it.
58
11
 
59
- ## The critical path decides ties
12
+ ## Lanes At Any Grain
60
13
 
61
- Two lanes call, both claims valid? Serve the critical path. Hand out
62
- critical-path work first, too: the side lane is tempting because it is
63
- easier to specify, and easy-to-specify is how goals die surrounded by
64
- finished side quests. Re-derive the path after every settled result; a
65
- delivered kei or fresh blocker can promote a background lane.
14
+ A lane is anything you are answerable for that moves without you: a Worker on
15
+ an Arc, a Reviewer mid-examination, a whole Contract whose fulfillment loop you
16
+ handed to one Aku. Handing work down narrows a lane; it never empties it — you
17
+ did not hand off your answerability, you booked yourself for the next question,
18
+ the next verify, the next return. When a Contract's whole loop is delegated,
19
+ your lane is the holder itself: watch the journaled record — bind, amends,
20
+ testimony, placement — verify at the boundaries you kept, and steer through the
21
+ holder, never past it. One delegated loop is one lane, however much moves
22
+ inside it.
66
23
 
67
- ## Only you can see the whole room
24
+ ## Attention
68
25
 
69
- Task records dependencies between tasks; nothing records that an Akuma
70
- waits on your answer, a review waits on a worktree, or the caller owes a
71
- lane a decision. That wait-graph lives in exactly one place: your head.
72
- It is what the sweep walks. When it outgrows your head — it will — park
73
- the waits in task notes. The map may degrade to paper, never to memory
74
- you merely trust. Wards answer at different speeds — Akuma in minutes,
75
- reviewers in hours, callers and external dependencies in geological
76
- time — so ask the slow ones when the question is knowable, not urgent.
77
- Shape a caller request as a decision with evidence, not a pile of raw
78
- results.
26
+ **Sweep.** Pass over every lane at natural pause points instead of dwelling on
27
+ one; depth goes where the sweep finds movement or silence that should not be
28
+ there.
79
29
 
80
- ## Release a blocked lane, keep the goal
30
+ **Critical path.** The lane the most other lanes wait on gets attention first,
31
+ regardless of which lane is loudest.
81
32
 
82
- Lane blocked beyond your reach? Write the blocker into its task where
83
- the next sweep will see it, and release the lane. Hovering beside a
84
- blocker you cannot move is decoration, not diligence. The note makes
85
- releasing different from abandoning. Exception: a blocker gating the
86
- critical path with nothing else runnable is the job — press on it, split
87
- it into its own task or kei, or take it to the caller now.
33
+ **Wait graph.** Know who waits on whom before deciding where to look; a cycle
34
+ in that graph is the emergency, everything else is schedule.
88
35
 
89
- ## Tired babysitters skip the checking
36
+ **Blocked lanes.** A blocked lane outranks every healthy one — unblock before
37
+ you optimize.
90
38
 
91
- Under load you cut verification depth first: diffs skimmed, gates
92
- assumed, "done" believed because the worker sounded confident. The
93
- goal's quality becomes the shabbiest check you accepted while busy.
94
- For a risky return, delegate an independent review: minutes spent, bar
95
- kept. Accepting it unread is free today and costs a later lane its
96
- premise.
39
+ **Verify returns.** A return is not done because it arrived; it is done when
40
+ checked against what was asked. Book the verify when you delegate, not after.
97
41
 
98
- ## Steer early, with the existing verbs
42
+ **Steer early.** The cheapest steer is before divergence compounds: ask the
43
+ question at the first doubt, not at delivery.
99
44
 
100
- Evidence changed the delivery? Amend the kei. Evidence obsoleted it?
101
- Abandon and bind a new one. Discovery deserves its own lane? Make it a
102
- task. Now, not "after this stretch": every lane keeps spending against
103
- the old contract until you speak.
45
+ **Lightest lane.** Keep each lane as light as it can be; do not babysit what
46
+ does not move without you.
104
47
 
105
- ## Boundaries
48
+ ## What Babysitting Never Owns
106
49
 
107
- Babysitting is a method, not a role: no new identity, permission, ledger,
108
- status, id, lifecycle, fixed cadence, numeric threshold, or mandatory
109
- Task+kei+Akuma bundle. Task is optional planning and dependency memory;
110
- each kei stays one bounded delivery; Akuma is one ward among the
111
- entities you watch, not the definition of the job. Commands live with
112
- their owners — keiyaku-task, keiyaku-bind, keiyaku-workflow,
113
- keiyaku-akuma — this skill says when to reach for them, never how they
114
- work.
50
+ Commands and semantics belong to task, bind, workflow, and akuma. Acceptance
51
+ belongs to the Contract's journal and its Reviewer's testimony. The question
52
+ belongs to whoever commissioned it. Babysitting decides only when you look and
53
+ what you check next.
@@ -5,51 +5,22 @@ description: Author and bind one Keiyaku delivery Contract. Use when deciding wh
5
5
 
6
6
  # Keiyaku Bind
7
7
 
8
- A Contract records a decision that already exists; writing terms does not
9
- produce one. You supply **all high-level design and public-surface facts this
10
- Keiyaku creates or changes**, and **all** pseudocode where ordering matters.
11
- The worker is a cheap executor: every choice you leave open, it resolves —
12
- possibly the way you like least, discovered at review and billed at review
13
- prices.
14
-
15
- ## Before You Bind
16
-
17
- Bind is the last step of an investigation, never the first step of an idea.
18
-
19
- - Design the delivery to the depth you could implement it yourself, against
20
- the code as it is not as you remember it. An unknown surfacing while
21
- you design is the next investigation, not a detail for the worker.
22
- - Walk the implementation path once, end to end. A step you cannot walk is
23
- an unresolved fact.
24
- - Observe active Contracts whose Regions intersect yours. Region overlap is a
25
- prompt signal only; it does not by itself imply a logical conflict. The
26
- caller decides autonomously whether to proceed in parallel or serialize.
27
- - A decision settled elsewhere binds only its explicit words; converting it
28
- into concrete shape is your job, and a question it left open goes back to
29
- its decider, never to the worker.
30
- - If the delivery must land documentation, you can draft its exact sentence
31
- now. Cannot draft means unresolved design — "the worker will sort out the
32
- docs" is a design gap in disguise.
33
-
34
- Split complex work wherever independently acceptable delivery boundaries
35
- exist. When a complex Keiyaku cannot be split without breaking one acceptance
36
- boundary, bind one Contract and plan its fulfillment as explicit arcs. Treat
37
- each arc as a chapter as in a work of literature, not as a task sequence.
38
- Commission one current chapter at a time; never hand the whole undifferentiated
39
- Contract to one Deliverer and trust it to finish everything in one pass.
40
- Continue with `keiyaku-workflow` for the arc document and command.
41
-
42
- Two tests close the gate:
43
-
44
- - **Substitution.** Two workers who never met each deliver test-green from
45
- your terms. If any external reader could tell the deliveries apart, that
46
- fact is undecided — decide it and write it.
47
- - **Rework.** For each blank: "if the worker picks what I like least, do I
48
- demand rework?" Yes — write it. No — write nothing.
49
-
50
- Public — anything visible outside the diff — is always yours to pin.
51
- Private — helper names, decomposition, control flow — is the worker's;
52
- its freedom comes from your genuine indifference, not from omission.
8
+ ## What Bind Records
9
+
10
+ Bind journals decisions that have already been made. The Contract author
11
+ arrives with the public outcome decided: Objective, Design, Region, Criteria,
12
+ Verification. A design gap discovered while authoring goes back to whoever
13
+ owns the decision — it is never forwarded into the worktree for a worker to
14
+ resolve.
15
+
16
+ ## Author And Freedom
17
+
18
+ The author pins every public, high-level fact: surfaces, semantics, persisted
19
+ shapes, the observable acceptance boundary. Private decomposition, helper
20
+ names, and control flow belong to the Deliverer and that freedom comes from
21
+ the author genuinely not caring, never from the author not deciding. Criteria
22
+ are observable accept/reject observations a Reviewer can judge without asking
23
+ the author anything further.
53
24
 
54
25
  ## Author And Bind
55
26
 
@@ -125,11 +96,19 @@ do not create one just to mirror the Contract.
125
96
 
126
97
  ## Authority Order
127
98
 
128
- > Settled upstream decisions and their documentation → this Contract → worker
129
- > brief (zero authority) review evidence (witnessed fact, never law).
99
+ Settled upstream decisions and their documentation → this Contract → commission
100
+ and brief (directs the current round's work and questions; never terms, never
101
+ acceptance) → review evidence (witnessed fact, never law). The journaled terms
102
+ are the standing acceptance floor. A brief or tell genuinely commands what this
103
+ round works on and what evidence it gathers; anything that must survive beyond
104
+ the round as a placement condition enters the journal through bind or amend, or
105
+ it is not acceptance.
106
+
107
+ ## One Boundary, One Contract
130
108
 
131
- Gaps flow upstream, never down: a design gap found by a worker or reviewer
132
- returns to you, never filled silently downstream.
109
+ One atomic acceptance boundary per Contract. Independent boundaries are
110
+ separate Contracts; a boundary that cannot be split but is too large for one
111
+ pass is chaptered with Arcs, and dispatch carries only the current Arc.
133
112
 
134
113
  ## Read The Receipt
135
114
 
@@ -7,15 +7,13 @@ description: >-
7
7
 
8
8
  # Keiyaku Task
9
9
 
10
- Task is a directory-context planning product. It is separate from Contract
11
- delivery and Akuma execution. A task records intent; `start` does not execute
12
- it and no task command binds a Contract. Task use is optional: create one only
13
- when planning needs a durable reader such as priority, dependencies, readiness,
14
- or coordination across deliveries. Do not create one as boilerplate before
15
- binding a Contract. Contract `bind --task <task/...>` optionally associates an
16
- existing Task through Settlement-owned TaskHolder: claim settles the current
17
- held Task to `done`, and abandon releases it. Task Markdown carries no Contract
18
- field.
10
+ ## What A Task Is Not
11
+
12
+ A Task remembers a plan: what is intended, what depends on what, what was
13
+ decided about sequence. It grants nothing no acceptance, no permission, no
14
+ scope, no fulfillment loop. Whoever holds a Contract's loop uses Tasks when the
15
+ plan is worth remembering and skips them when it is not; nothing binds Tasks to
16
+ Arcs, Contracts, or Akuma as a package.
19
17
 
20
18
  ## Lifecycle
21
19
 
@@ -42,7 +40,7 @@ keiyaku task ls --closed
42
40
  keiyaku task ls --all --world
43
41
  keiyaku task ready
44
42
  keiyaku task blocked
45
- keiyaku task tree <task-id> [--full]
43
+ keiyaku task tree <task-id>
46
44
  keiyaku task doctor
47
45
  ```
48
46
 
@@ -53,19 +51,22 @@ commands require a complete TaskId and never infer namespace.
53
51
  ## Mutations
54
52
 
55
53
  ```bash
56
- keiyaku task start <task-id>
54
+ keiyaku task start <task-id>...
57
55
  keiyaku task stop <task-id>
58
56
  keiyaku task hold <task-id>
59
57
  keiyaku task resume <task-id>
60
58
  keiyaku task done <task-id>...
61
59
  keiyaku task drop <task-id>... [--note <text>]
62
60
  keiyaku task update <task-id> --title <text>
63
- keiyaku task namespace [<namespace>]
61
+ keiyaku task context [<namespace>]
64
62
  ```
65
63
 
66
64
  Use `--json` on any command when a script must inspect the typed result.
67
65
  Relations are explicit facts: `needs` orders work, `parent` groups it,
68
66
  `supersedes` navigates replacement, and `relates` does not affect readiness.
67
+ `task start` accepts one or more complete TaskIds. A single ID keeps the
68
+ single-mutation result; multiple IDs use the ordered batch result, continue
69
+ after per-Task refusals, and preserve retry-over-refusal exit precedence.
69
70
 
70
71
  ## Batch Create Or Modify
71
72
 
@@ -78,6 +79,7 @@ ns=feature
78
79
 
79
80
  + Parent
80
81
  as = parent
82
+ state = in_progress
81
83
  pri = 0
82
84
  body <<BODY
83
85
  Parent body.
@@ -90,6 +92,10 @@ EOF
90
92
  ```
91
93
 
92
94
  Use `--plan` to inspect aliases, admission order, and body byte previews without
93
- writing. Compose does not change Task lifecycle state. Each changed Task is
94
- admitted independently; an incomplete result returns a reusable draft for the
95
- remaining batch.
95
+ writing. New `+ Title` nodes may declare `state = open|in_progress|on_hold|done|drop`
96
+ as their initial state; omitted state is `open`. Existing `@task/...` nodes cannot
97
+ declare state. Aliases are nonempty single-line tokens containing neither
98
+ Unicode whitespace nor comma; references use `^alias`. Compose does not change
99
+ the lifecycle state of pre-existing Tasks. Each changed Task is admitted
100
+ independently; an incomplete result returns a reusable draft for the remaining
101
+ batch and preserves each new node's declared state.