@astrosheep/keiyaku 4.5.6 → 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 (245) 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 -8
  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 +53 -0
  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 +7 -5
  23. package/build/src/akuma/body.js +25 -36
  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 +3 -3
  28. package/build/src/akuma/heart/index.js +2 -2
  29. package/build/src/akuma/heart/request-authority.d.ts +6 -4
  30. package/build/src/akuma/heart/request-authority.js +31 -35
  31. package/build/src/akuma/heart/request-rows.js +12 -23
  32. package/build/src/akuma/heart/schema.d.ts +1 -1
  33. package/build/src/akuma/heart/schema.js +5 -13
  34. package/build/src/akuma/heart/storage.d.ts +0 -1
  35. package/build/src/akuma/heart/storage.js +0 -54
  36. package/build/src/akuma/index.d.ts +1 -1
  37. package/build/src/akuma/index.js +1 -1
  38. package/build/src/akuma/projection-read.d.ts +1 -0
  39. package/build/src/akuma/projection-read.js +8 -1
  40. package/build/src/akuma/projection.d.ts +856 -137
  41. package/build/src/akuma/projection.js +190 -0
  42. package/build/src/akuma/provider.d.ts +30 -3
  43. package/build/src/akuma/provider.js +104 -0
  44. package/build/src/akuma/providers/acp/core.d.ts +2 -2
  45. package/build/src/akuma/providers/acp/core.js +13 -6
  46. package/build/src/akuma/providers/acp/index.js +5 -4
  47. package/build/src/akuma/providers/claude/index.d.ts +3 -3
  48. package/build/src/akuma/providers/claude/index.js +16 -5
  49. package/build/src/akuma/providers/codex-app-server/events.js +1 -1
  50. package/build/src/akuma/providers/codex-app-server/index.js +18 -6
  51. package/build/src/akuma/providers/grok-build/index.js +5 -4
  52. package/build/src/akuma/providers/opencode-sdk/index.js +66 -25
  53. package/build/src/akuma/providers/opencode-sdk/session.d.ts +3 -2
  54. package/build/src/akuma/providers/opencode-sdk/session.js +28 -11
  55. package/build/src/akuma/providers/pi/index.js +42 -14
  56. package/build/src/akuma/publication.js +75 -13
  57. package/build/src/akuma/request-lifecycle.d.ts +3 -9
  58. package/build/src/akuma/request-lifecycle.js +12 -25
  59. package/build/src/akuma/request-rendezvous.d.ts +26 -0
  60. package/build/src/akuma/request-rendezvous.js +100 -0
  61. package/build/src/akuma/request-serve.d.ts +5 -65
  62. package/build/src/akuma/request-serve.js +92 -204
  63. package/build/src/akuma/request-wire.d.ts +109 -115
  64. package/build/src/akuma/request-wire.js +63 -318
  65. package/build/src/akuma/requests.d.ts +19 -47
  66. package/build/src/akuma/requests.js +51 -107
  67. package/build/src/akuma/turn-drive.d.ts +5 -3
  68. package/build/src/akuma/turn-drive.js +32 -10
  69. package/build/src/akuma-body.d.ts +7 -2
  70. package/build/src/akuma-body.js +68 -46
  71. package/build/src/cli/accepted.d.ts +1 -1
  72. package/build/src/cli/accepted.js +2 -2
  73. package/build/src/cli/commands/akuma-invoke.d.ts +2 -0
  74. package/build/src/cli/commands/akuma-invoke.js +17 -9
  75. package/build/src/cli/commands/akuma.js +7 -7
  76. package/build/src/cli/commands/contract-invoke.d.ts +3 -2
  77. package/build/src/cli/commands/contract-invoke.js +26 -19
  78. package/build/src/cli/commands/contract.d.ts +13 -13
  79. package/build/src/cli/commands/contract.js +32 -17
  80. package/build/src/cli/commands/install.d.ts +1 -1
  81. package/build/src/cli/commands/install.js +1 -1
  82. package/build/src/cli/commands/task-invoke.d.ts +7 -2
  83. package/build/src/cli/commands/task-invoke.js +67 -158
  84. package/build/src/cli/commands/task.d.ts +1 -1
  85. package/build/src/cli/commands/task.js +60 -22
  86. package/build/src/cli/coordinates.d.ts +2 -0
  87. package/build/src/cli/coordinates.js +18 -2
  88. package/build/src/cli/invoke.js +39 -25
  89. package/build/src/cli/main.js +2 -1
  90. package/build/src/cli/parse.d.ts +2 -2
  91. package/build/src/cli/parse.js +37 -22
  92. package/build/src/cli/render/akuma-activity.d.ts +4 -1
  93. package/build/src/cli/render/akuma-activity.js +45 -30
  94. package/build/src/cli/render/akuma-tool.d.ts +5 -1
  95. package/build/src/cli/render/akuma.js +5 -9
  96. package/build/src/cli/render/audit.js +1 -1
  97. package/build/src/cli/render/catalog.js +80 -21
  98. package/build/src/cli/render/contract-observation.d.ts +2 -0
  99. package/build/src/cli/render/contract-observation.js +11 -0
  100. package/build/src/cli/render/contract.js +25 -65
  101. package/build/src/cli/render/kanshi-akuma.d.ts +8 -0
  102. package/build/src/cli/render/kanshi-akuma.js +111 -0
  103. package/build/src/cli/render/kanshi.js +108 -213
  104. package/build/src/cli/render/receipt.d.ts +1 -2
  105. package/build/src/cli/render/receipt.js +76 -26
  106. package/build/src/cli/render/refusal.js +2 -10
  107. package/build/src/cli/render/region.js +5 -2
  108. package/build/src/cli/render/settings.d.ts +1 -1
  109. package/build/src/cli/render/settings.js +27 -8
  110. package/build/src/cli/render/task.js +28 -10
  111. package/build/src/cli/render/terminal.d.ts +28 -0
  112. package/build/src/cli/render/terminal.js +65 -0
  113. package/build/src/cli/result.d.ts +3 -3
  114. package/build/src/cli/runtime.js +3 -1
  115. package/build/src/cli/selectors.d.ts +2 -1
  116. package/build/src/cli/selectors.js +4 -3
  117. package/build/src/cli/square-edge.js +120 -36
  118. package/build/src/cli/usage.js +2 -1
  119. package/build/src/contract-guidance.d.ts +5 -0
  120. package/build/src/contract-guidance.js +121 -0
  121. package/build/src/contract-worktree.d.ts +0 -1
  122. package/build/src/contract-worktree.js +32 -83
  123. package/build/src/coordination/sqlite-transaction-lock.d.ts +1 -0
  124. package/build/src/coordination/sqlite-transaction-lock.js +5 -0
  125. package/build/src/core/facts/codec.d.ts +2 -0
  126. package/build/src/core/facts/codec.js +4 -0
  127. package/build/src/core/verbs/placement.d.ts +6 -1
  128. package/build/src/core/verbs/placement.js +5 -3
  129. package/build/src/dispatch/index.d.ts +0 -2
  130. package/build/src/dispatch/index.js +54 -55
  131. package/build/src/git/admission.js +2 -2
  132. package/build/src/git/hooks.d.ts +9 -15
  133. package/build/src/git/hooks.js +23 -317
  134. package/build/src/git/nuke.d.ts +2 -1
  135. package/build/src/git/nuke.js +36 -18
  136. package/build/src/git/private-state-seat.d.ts +12 -0
  137. package/build/src/git/private-state-seat.js +39 -0
  138. package/build/src/git/process.d.ts +6 -0
  139. package/build/src/git/process.js +19 -7
  140. package/build/src/git/read-observation.js +29 -20
  141. package/build/src/git/reconcile.d.ts +11 -0
  142. package/build/src/git/reconcile.js +64 -11
  143. package/build/src/git/repository.d.ts +8 -2
  144. package/build/src/git/repository.js +42 -21
  145. package/build/src/git/target-placement.d.ts +1 -0
  146. package/build/src/git/target-placement.js +5 -6
  147. package/build/src/git/tender.d.ts +1 -0
  148. package/build/src/git/terminal-reconcile.d.ts +1 -1
  149. package/build/src/git/terminal-reconcile.js +22 -20
  150. package/build/src/git/workspace.d.ts +14 -0
  151. package/build/src/git/workspace.js +44 -0
  152. package/build/src/kanshi/index.d.ts +1 -1
  153. package/build/src/kanshi/read.js +16 -16
  154. package/build/src/kanshi/report.d.ts +2 -2
  155. package/build/src/library/address.d.ts +9 -3
  156. package/build/src/library/address.js +3 -2
  157. package/build/src/library/akuma-creation.d.ts +4 -3
  158. package/build/src/library/akuma-creation.js +19 -13
  159. package/build/src/library/audit.d.ts +1 -1
  160. package/build/src/library/audit.js +5 -3
  161. package/build/src/library/catalog.d.ts +3 -1
  162. package/build/src/library/catalog.js +20 -6
  163. package/build/src/library/composition.d.ts +371 -0
  164. package/build/src/library/composition.js +28 -0
  165. package/build/src/library/configuration.js +8 -2
  166. package/build/src/library/continuation.js +66 -30
  167. package/build/src/library/contract-bind.js +10 -2
  168. package/build/src/library/contract-forwarding-reconciliation-result.d.ts +96 -0
  169. package/build/src/library/contract-forwarding-reconciliation-result.js +83 -0
  170. package/build/src/library/contract-forwarding-result.d.ts +6723 -0
  171. package/build/src/library/contract-forwarding-result.js +521 -0
  172. package/build/src/library/contract-forwarding.d.ts +72 -0
  173. package/build/src/library/contract-forwarding.js +125 -0
  174. package/build/src/library/contract-handle.d.ts +36 -0
  175. package/build/src/library/contract-handle.js +313 -0
  176. package/build/src/library/contract-operations.d.ts +1044 -67
  177. package/build/src/library/contract-operations.js +190 -118
  178. package/build/src/library/contract.d.ts +11 -32
  179. package/build/src/library/contract.js +16 -289
  180. package/build/src/library/fleet-result.d.ts +1454 -0
  181. package/build/src/library/fleet-result.js +96 -0
  182. package/build/src/library/fleet.d.ts +112 -54
  183. package/build/src/library/fleet.js +211 -71
  184. package/build/src/library/input.d.ts +2 -0
  185. package/build/src/library/input.js +4 -0
  186. package/build/src/library/keiyaku.d.ts +371 -20
  187. package/build/src/library/keiyaku.js +8 -21
  188. package/build/src/library/mutation.d.ts +3 -3
  189. package/build/src/library/mutation.js +5 -9
  190. package/build/src/library/nuke.d.ts +1 -1
  191. package/build/src/library/nuke.js +4 -3
  192. package/build/src/library/reconcile.d.ts +4 -0
  193. package/build/src/library/reconcile.js +2 -0
  194. package/build/src/library/refusal.d.ts +0 -9
  195. package/build/src/library/refusal.js +0 -7
  196. package/build/src/protocol/amend.js +56 -50
  197. package/build/src/protocol/attempt.d.ts +2 -0
  198. package/build/src/protocol/attempt.js +17 -5
  199. package/build/src/protocol/completion.js +7 -0
  200. package/build/src/protocol/deliver.js +6 -2
  201. package/build/src/protocol/operations.d.ts +4 -1
  202. package/build/src/protocol/operations.js +5 -2
  203. package/build/src/protocol/placement.d.ts +1 -0
  204. package/build/src/protocol/placement.js +52 -38
  205. package/build/src/protocol/read/observation.d.ts +1 -4
  206. package/build/src/protocol/read/observation.js +2 -15
  207. package/build/src/protocol/reintegrate.js +62 -58
  208. package/build/src/protocol/review.js +5 -0
  209. package/build/src/protocol/run.js +17 -13
  210. package/build/src/runtime/proc/run.d.ts +8 -0
  211. package/build/src/runtime/proc/run.js +27 -0
  212. package/build/src/runtime/proc/termination.js +26 -22
  213. package/build/src/runtime/proc/windows-launch.exe +0 -0
  214. package/build/src/settlement/holder.d.ts +2 -1
  215. package/build/src/settlement/holder.js +15 -4
  216. package/build/src/settlement/settle.js +99 -33
  217. package/build/src/task/board.d.ts +68 -27
  218. package/build/src/task/board.js +31 -1
  219. package/build/src/task/catalog.d.ts +4 -0
  220. package/build/src/task/catalog.js +23 -0
  221. package/build/src/task/compose-language.d.ts +4 -0
  222. package/build/src/task/compose-language.js +40 -7
  223. package/build/src/task/compose-parser.d.ts +2 -1
  224. package/build/src/task/compose-parser.js +5 -3
  225. package/build/src/task/compose.d.ts +1 -0
  226. package/build/src/task/compose.js +4 -1
  227. package/build/src/task/context.d.ts +7 -1
  228. package/build/src/task/context.js +25 -6
  229. package/build/src/task/index.d.ts +18 -5
  230. package/build/src/task/index.js +97 -16
  231. package/build/src/task/mutation-result.d.ts +923 -0
  232. package/build/src/task/mutation-result.js +140 -0
  233. package/build/src/task/mutation.d.ts +552 -28
  234. package/build/src/task/mutation.js +304 -97
  235. package/build/src/task/operations.d.ts +1 -4
  236. package/build/src/task/operations.js +0 -6
  237. package/build/src/task/public.d.ts +2 -0
  238. package/build/src/task/public.js +1 -0
  239. package/build/src/workspace-place.d.ts +7 -2
  240. package/build/src/workspace-place.js +34 -24
  241. package/build/src/world.d.ts +1 -0
  242. package/build/src/world.js +11 -0
  243. package/package.json +8 -6
  244. package/build/src/akuma/request-execution.d.ts +0 -8
  245. 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"]
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,15 +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`.
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.
17
19
 
18
20
  Settings owns named gate bundles. Omitting `--gates` selects `gates.default`,
19
21
  or freezes `["reviewed"]` when that entry is absent. `--gates <name,...>`
@@ -31,7 +33,7 @@ keiyaku -C <repo> review [<contract>|@<contract>] --satisfied
31
33
  ```
32
34
 
33
35
  ```bash
34
- 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> | -)
35
37
  keiyaku -C <repo> wait <akuma-selector>... [--any | --all]
36
38
  keiyaku -C <repo> tell <aku/...|@alias> (<prompt> | -)
37
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
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: keiyaku-babysit
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
+ ---
5
+
6
+ # Keiyaku Babysit
7
+
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.
11
+
12
+ ## Lanes At Any Grain
13
+
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.
23
+
24
+ ## Attention
25
+
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.
29
+
30
+ **Critical path.** The lane the most other lanes wait on gets attention first,
31
+ regardless of which lane is loudest.
32
+
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.
35
+
36
+ **Blocked lanes.** A blocked lane outranks every healthy one — unblock before
37
+ you optimize.
38
+
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.
41
+
42
+ **Steer early.** The cheapest steer is before divergence compounds: ask the
43
+ question at the first doubt, not at delivery.
44
+
45
+ **Lightest lane.** Keep each lane as light as it can be; do not babysit what
46
+ does not move without you.
47
+
48
+ ## What Babysitting Never Owns
49
+
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.