@bastani/atomic 0.9.19-alpha.3 → 0.9.19-alpha.5

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 (164) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/builtin/intercom/CHANGELOG.md +8 -0
  3. package/dist/builtin/intercom/index.bundle.mjs +117 -26
  4. package/dist/builtin/intercom/package.json +1 -1
  5. package/dist/builtin/mcp/package.json +1 -1
  6. package/dist/builtin/subagents/CHANGELOG.md +18 -0
  7. package/dist/builtin/subagents/README.md +15 -15
  8. package/dist/builtin/subagents/agents/debugger.md +2 -2
  9. package/dist/builtin/subagents/package.json +1 -1
  10. package/dist/builtin/subagents/skills/subagent/SKILL.md +26 -26
  11. package/dist/builtin/subagents/src/extension/index.bundle.mjs +140 -58
  12. package/dist/builtin/web-access/package.json +1 -1
  13. package/dist/builtin/workflows/CHANGELOG.md +27 -0
  14. package/dist/builtin/workflows/README.md +14 -15
  15. package/dist/builtin/workflows/builtin/{chunk-mygmtz6e.js → chunk-1nbq96fh.js} +19 -19
  16. package/dist/builtin/workflows/builtin/{chunk-zggjyg5z.js → chunk-n8zysf1t.js} +1 -1
  17. package/dist/builtin/workflows/builtin/{chunk-r9qq7xfj.js → chunk-vhmnzdj9.js} +37 -37
  18. package/dist/builtin/workflows/builtin/{chunk-62v3gg9f.js → chunk-yeee2jrc.js} +11 -11
  19. package/dist/builtin/workflows/builtin/goal.js +2 -2
  20. package/dist/builtin/workflows/builtin/index.js +4 -4
  21. package/dist/builtin/workflows/builtin/open-claude-design.js +1 -1
  22. package/dist/builtin/workflows/builtin/ralph.js +2 -2
  23. package/dist/builtin/workflows/package.json +5 -5
  24. package/dist/builtin/workflows/src/extension/index.bundle.mjs +180 -239
  25. package/dist/builtin/workflows/src/index.js +19 -2
  26. package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +2 -1
  27. package/dist/builtin/workflows/src/shared/authoring-contract-ui.d.ts +1 -1
  28. package/dist/core/agent-session-auto-compaction.js +1 -1
  29. package/dist/core/agent-session-auto-compaction.js.map +1 -1
  30. package/dist/core/agent-session-compaction.js +1 -1
  31. package/dist/core/agent-session-compaction.js.map +1 -1
  32. package/dist/core/agent-session-custom-message-commit.d.ts.map +1 -1
  33. package/dist/core/agent-session-custom-message-commit.js +33 -2
  34. package/dist/core/agent-session-custom-message-commit.js.map +1 -1
  35. package/dist/core/agent-session-message-queue.d.ts +1 -1
  36. package/dist/core/agent-session-message-queue.d.ts.map +1 -1
  37. package/dist/core/agent-session-message-queue.js +20 -6
  38. package/dist/core/agent-session-message-queue.js.map +1 -1
  39. package/dist/core/agent-session-methods.d.ts +4 -1
  40. package/dist/core/agent-session-methods.d.ts.map +1 -1
  41. package/dist/core/agent-session-methods.js.map +1 -1
  42. package/dist/core/agent-session-persistent-custom-messages.d.ts +1 -1
  43. package/dist/core/agent-session-persistent-custom-messages.d.ts.map +1 -1
  44. package/dist/core/agent-session-persistent-custom-messages.js +13 -3
  45. package/dist/core/agent-session-persistent-custom-messages.js.map +1 -1
  46. package/dist/core/agent-session-post-tool-compaction.js +1 -1
  47. package/dist/core/agent-session-post-tool-compaction.js.map +1 -1
  48. package/dist/core/agent-session-prompt.d.ts.map +1 -1
  49. package/dist/core/agent-session-prompt.js +83 -0
  50. package/dist/core/agent-session-prompt.js.map +1 -1
  51. package/dist/core/agent-session-queue-pause.d.ts.map +1 -1
  52. package/dist/core/agent-session-queue-pause.js +11 -0
  53. package/dist/core/agent-session-queue-pause.js.map +1 -1
  54. package/dist/core/agent-session-tool-hooks.d.ts.map +1 -1
  55. package/dist/core/agent-session-tool-hooks.js +2 -0
  56. package/dist/core/agent-session-tool-hooks.js.map +1 -1
  57. package/dist/core/agent-session-tool-registry.d.ts.map +1 -1
  58. package/dist/core/agent-session-tool-registry.js +12 -0
  59. package/dist/core/agent-session-tool-registry.js.map +1 -1
  60. package/dist/core/agent-session-transfer.d.ts.map +1 -1
  61. package/dist/core/agent-session-transfer.js +7 -0
  62. package/dist/core/agent-session-transfer.js.map +1 -1
  63. package/dist/core/agent-session-types.d.ts +2 -0
  64. package/dist/core/agent-session-types.d.ts.map +1 -1
  65. package/dist/core/agent-session-types.js +2 -0
  66. package/dist/core/agent-session-types.js.map +1 -1
  67. package/dist/core/agent-session.d.ts +4 -0
  68. package/dist/core/agent-session.d.ts.map +1 -1
  69. package/dist/core/agent-session.js +22 -0
  70. package/dist/core/agent-session.js.map +1 -1
  71. package/dist/core/extensions/context-types.d.ts +6 -0
  72. package/dist/core/extensions/context-types.d.ts.map +1 -1
  73. package/dist/core/extensions/context-types.js.map +1 -1
  74. package/dist/core/extensions/loader-virtual-modules.js +3 -3
  75. package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
  76. package/dist/core/extensions/runner-context.d.ts +1 -1
  77. package/dist/core/extensions/runner-context.d.ts.map +1 -1
  78. package/dist/core/extensions/runner-context.js +9 -3
  79. package/dist/core/extensions/runner-context.js.map +1 -1
  80. package/dist/core/extensions/runner.js +1 -1
  81. package/dist/core/extensions/runner.js.map +1 -1
  82. package/dist/core/extensions/workflow-events.d.ts +1 -1
  83. package/dist/core/extensions/workflow-events.d.ts.map +1 -1
  84. package/dist/core/extensions/workflow-events.js.map +1 -1
  85. package/dist/core/sdk-exports.d.ts +1 -1
  86. package/dist/core/sdk-exports.d.ts.map +1 -1
  87. package/dist/core/sdk-exports.js +1 -1
  88. package/dist/core/sdk-exports.js.map +1 -1
  89. package/dist/core/settings-manager-basic-accessors.d.ts +5 -3
  90. package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
  91. package/dist/core/settings-manager-basic-accessors.js +23 -8
  92. package/dist/core/settings-manager-basic-accessors.js.map +1 -1
  93. package/dist/core/settings-manager.d.ts +1 -1
  94. package/dist/core/settings-manager.d.ts.map +1 -1
  95. package/dist/core/settings-manager.js.map +1 -1
  96. package/dist/core/settings-types.d.ts +5 -0
  97. package/dist/core/settings-types.d.ts.map +1 -1
  98. package/dist/core/settings-types.js.map +1 -1
  99. package/dist/core/slash-commands.d.ts.map +1 -1
  100. package/dist/core/slash-commands.js +4 -5
  101. package/dist/core/slash-commands.js.map +1 -1
  102. package/dist/core/tasks/agent-adapter.d.ts +5 -2
  103. package/dist/core/tasks/agent-adapter.d.ts.map +1 -1
  104. package/dist/core/tasks/agent-adapter.js +10 -3
  105. package/dist/core/tasks/agent-adapter.js.map +1 -1
  106. package/dist/core/tasks/completion.d.ts.map +1 -1
  107. package/dist/core/tasks/completion.js +5 -1
  108. package/dist/core/tasks/completion.js.map +1 -1
  109. package/dist/core/tools/bash-pty-native.d.ts +16 -2
  110. package/dist/core/tools/bash-pty-native.d.ts.map +1 -1
  111. package/dist/core/tools/bash-pty-native.js +82 -0
  112. package/dist/core/tools/bash-pty-native.js.map +1 -1
  113. package/dist/core/tools/bash.d.ts +13 -2
  114. package/dist/core/tools/bash.d.ts.map +1 -1
  115. package/dist/core/tools/bash.js +48 -3
  116. package/dist/core/tools/bash.js.map +1 -1
  117. package/dist/core/tools/index.d.ts +4 -1
  118. package/dist/core/tools/index.d.ts.map +1 -1
  119. package/dist/core/tools/index.js +12 -0
  120. package/dist/core/tools/index.js.map +1 -1
  121. package/dist/core/tools/kill.d.ts +17 -0
  122. package/dist/core/tools/kill.d.ts.map +1 -0
  123. package/dist/core/tools/kill.js +49 -0
  124. package/dist/core/tools/kill.js.map +1 -0
  125. package/dist/core/tools/powershell.d.ts +84 -28
  126. package/dist/core/tools/powershell.d.ts.map +1 -1
  127. package/dist/core/tools/powershell.js +10 -3
  128. package/dist/core/tools/powershell.js.map +1 -1
  129. package/dist/core/workflow-stage-admission.d.ts +14 -0
  130. package/dist/core/workflow-stage-admission.d.ts.map +1 -1
  131. package/dist/core/workflow-stage-admission.js +63 -3
  132. package/dist/core/workflow-stage-admission.js.map +1 -1
  133. package/dist/index.d.ts +2 -2
  134. package/dist/index.d.ts.map +1 -1
  135. package/dist/index.js +1 -1
  136. package/dist/index.js.map +1 -1
  137. package/dist/modes/interactive/components/task-row.d.ts.map +1 -1
  138. package/dist/modes/interactive/components/task-row.js +8 -1
  139. package/dist/modes/interactive/components/task-row.js.map +1 -1
  140. package/docs/background-tasks.md +24 -1
  141. package/docs/compaction.md +20 -0
  142. package/docs/computer-use.md +390 -0
  143. package/docs/docs.json +1 -0
  144. package/docs/extensions.md +11 -1
  145. package/docs/herdr.md +2 -0
  146. package/docs/index.md +1 -0
  147. package/docs/intercom.md +10 -2
  148. package/docs/providers.md +1 -1
  149. package/docs/quickstart.md +1 -1
  150. package/docs/sdk.md +11 -1
  151. package/docs/settings.md +20 -0
  152. package/docs/subagents.md +8 -6
  153. package/docs/tmux.md +2 -0
  154. package/docs/tools.md +7 -1
  155. package/docs/usage.md +1 -1
  156. package/docs/workflows/api-reference.md +4 -3
  157. package/docs/workflows/authoring.md +3 -3
  158. package/docs/workflows/builtins.md +9 -6
  159. package/docs/workflows/operations.md +36 -30
  160. package/docs/workflows/reliable-design.md +3 -3
  161. package/docs/workflows/verification.md +99 -40
  162. package/docs/workflows.md +4 -2
  163. package/npm-shrinkwrap.json +32 -32
  164. package/package.json +3 -3
@@ -22,7 +22,7 @@ Use this skill when bounded specialist delegation adds value and the parent shou
22
22
  - **Debug and fix**: use `debugger` for actual failures that need reproduction, root-cause diagnosis, and a validated patch; conceptual or exploratory debugging can stay inline.
23
23
  - **Refinement**: use `code-simplifier` to clean up recently changed code without altering behavior.
24
24
  - **Adversarial review**: compose read-only specialists (`codebase-analyzer`, `codebase-pattern-finder`, `debugger` in inspect-only mode, `codebase-online-researcher`) into a parallel review pass — there is no generic `reviewer` agent.
25
- - **Subagent control**: watch needs-attention signals and soft-interrupt only when a delegated run is genuinely blocked.
25
+ - **Subagent control**: watch needs-attention signals and kill only when a delegated run is genuinely blocked.
26
26
  - **Agent authoring**: create, update, or override agents for a project.
27
27
 
28
28
  ## Tool
@@ -65,19 +65,19 @@ Use this after implementation when the user wants cleanup review or when a final
65
65
 
66
66
  Builtin agents load at the lowest priority. Project agents override user agents, and user/project agents override builtins with the same name.
67
67
 
68
- | Agent | Purpose | Default model | Thinking | Tools | Notes |
69
- | ---------------------------- | ----------------------------------------------------------------- | --------------------- | -------- | -------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
70
- | `codebase-locator` | Locate files, directories, tests, and configs relevant to a topic | `openai-codex/gpt-6-astra:low` | low | read, search, find, ls, bash | Read-only finder. Returns a categorized file map; no analysis. |
71
- | `codebase-analyzer` | Explain how specific code currently works | `openai-codex/gpt-6-astra:low` | low | read, search, find, ls, bash | Read-only. Traces flow with `file:line` references; does not critique. |
72
- | `codebase-pattern-finder` | Find similar implementations or conventions | `openai-codex/gpt-6-astra:low` | low | read, search, find, ls, bash | Read-only. Returns code snippets with `file:line` references. |
73
- | `codebase-research-locator` | Discover prior `research/` and `specs/` docs | `openai-codex/gpt-6-astra:low` | low | read, search, find, ls, bash | Read-only. Sorts by date, tiers by recency, flags supersession. |
74
- | `codebase-research-analyzer` | Extract decisions and constraints from prior docs | `openai-codex/gpt-6-astra:low` | low | read, search, find, ls, bash | Read-only. Filters aggressively for what still applies today. |
75
- | `codebase-online-researcher` | Web research with authoritative sources | `openai-codex/gpt-6-astra:low` | low | read, search, find, ls, bash, write, web_search, fetch_content, get_search_content | Has the `playwright-cli` skill. Persists keepers to `research/web/`. |
76
- | `code-simplifier` | Clean up recently changed code without changing behavior | `openai-codex/gpt-6-astra:low` | low | read, edit, write, search, find, ls, bash | **Writer.** Scopes to recently modified code by default; preserves all observable behavior. |
77
- | `debugger` | Reproduce, diagnose, and fix failing behavior | `openai-codex/gpt-6-astra:xhigh` | xhigh | read, edit, write, search, find, ls, bash, web_search, fetch_content, get_search_content, intercom, contact_supervisor, todo | **Writer.** Has the `tdd`, `playwright-cli`, and `tmux` skills. Can coordinate with the parent; inspect-only mode requires an explicit instruction. |
78
- | `worker` | Implement normal tasks and approved orchestrator handoffs | `openai-codex/gpt-6-astra:low` | low | read, edit, write, search, find, ls, bash, web_search, fetch_content, get_search_content, intercom, contact_supervisor, todo | **Writer.** Has the `tdd`, `playwright-cli`, and `tmux` skills. Defaults to forked context; escalates unapproved decisions instead of guessing. |
68
+ | Agent | Purpose | Tools | Notes |
69
+ | --- | --- | --- | --- |
70
+ | `codebase-locator` | Locate files, directories, tests, and configs relevant to a topic | read, search, find, ls, bash | Read-only finder. Returns a categorized file map; no analysis. |
71
+ | `codebase-analyzer` | Explain how specific code currently works | read, search, find, ls, bash | Read-only. Traces flow with `file:line` references; does not critique. |
72
+ | `codebase-pattern-finder` | Find similar implementations or conventions | read, search, find, ls, bash | Read-only. Returns code snippets with `file:line` references. |
73
+ | `codebase-research-locator` | Discover prior `research/` and `specs/` docs | read, search, find, ls, bash | Read-only. Sorts by date, tiers by recency, flags supersession. |
74
+ | `codebase-research-analyzer` | Extract decisions and constraints from prior docs | read, search, find, ls, bash | Read-only. Filters aggressively for what still applies today. |
75
+ | `codebase-online-researcher` | Web research with authoritative sources | read, search, find, ls, bash, write, web_search, fetch_content, get_search_content | Has the `playwright-cli` skill. Persists keepers to `research/web/`. |
76
+ | `code-simplifier` | Clean up recently changed code without changing behavior | read, edit, write, search, find, ls, bash | **Writer.** Scopes to recently modified code by default; preserves all observable behavior. |
77
+ | `debugger` | Reproduce, diagnose, and fix failing behavior | read, edit, write, search, find, ls, bash, web_search, fetch_content, get_search_content, intercom, contact_supervisor, todo | **Writer.** Has the `tdd`, `playwright-cli`, and `tmux` skills. Can coordinate with the parent; inspect-only mode requires an explicit instruction. |
78
+ | `worker` | Implement normal tasks and approved orchestrator handoffs | read, edit, write, search, find, ls, bash, web_search, fetch_content, get_search_content, intercom, contact_supervisor, todo | **Writer.** Has the `tdd`, `playwright-cli`, and `tmux` skills. Defaults to forked context; escalates unapproved decisions instead of guessing. |
79
79
 
80
- Each builtin declares an explicit `model` and ordered `fallbackModels` sequence. Astra-led agents try GitHub Copilot Astra, OpenAI Astra, Anthropic Fable 5.1, then GitHub Copilot Fable 5.1 before older models. Ordinary agents use Astra/Fable 5.1 at `low`; debugger uses Astra at `xhigh` and Fable 5.1 at `high`. See each definition for its full provider-specific chain. The current user-selected model is automatically appended as the last fallback and de-duplicated. Override per run with inline config:
80
+ Each builtin declares its model, reasoning level, and ordered fallback chain in its agent definition. Inspect the current configuration with `subagent({ action: "get", agent: "debugger" })` rather than relying on a fixed list of defaults. The current user-selected model is automatically appended as the last fallback and de-duplicated. Override per run with inline config:
81
81
 
82
82
  ```typescript
83
83
  subagent({ agent: "codebase-analyzer", task: "Trace the auth flow", model: "anthropic/claude-sonnet-4" })
@@ -211,11 +211,11 @@ Concurrent writers conflict. `code-simplifier` and `debugger` change files. Do n
211
211
 
212
212
  Choose the observation mode for each authorized task. No extra user confirmation is needed merely to choose foreground or background. In owner-bound main and workflow-stage sessions, omitted `wait` or `wait: { kind: "background" }` returns after admission. Use `wait: { kind: "foreground", budgetMs: 30000 }` when the result is needed next. If the observation budget expires, the same child keeps running in the background; do not relaunch it. This applies to single and parallel calls.
213
213
 
214
- Use `subagent({ action: "wait", id: taskId, budgetMs: 1000 })` to observe an existing task, `status` to inspect its state, or `interrupt` to stop it. A yielded receipt is not a terminal result. Background counts stay below the prompt; `/tasks` opens inspection only on command. A shaded completion notification reaches the owning chat without requiring a model reply. A later wait does not extend the owner's lifetime.
214
+ Use `subagent({ action: "wait", id: taskId, budgetMs: 1000 })` to observe an existing task, `status` to inspect its state, or `kill` to terminally stop it. A yielded receipt is not a terminal result. Background counts stay below the prompt; `/tasks` opens inspection only on command. A shaded completion notification reaches the owning chat without requiring a model reply. A later wait does not extend the owner's lifetime.
215
215
 
216
216
  Intercom `ask` cannot revive a completed, failed, interrupted, or cancelled noninteractive child, even if its retained registration says `idle`. New asks fail immediately, and termination fails an already-admitted ask that has not received a reply. Use a fresh child for follow-up work. Live interactive idle sessions and workflow post-mortem conversations remain separate reply-capable cases; `send` transport behavior is unchanged.
217
217
 
218
- Completed, interrupted, and parent-question children are terminal for continuation. Do not address a prior child or sibling set by run ID. Start follow-up work with the normal launch form and an explicit handoff:
218
+ Completed, killed, interrupted, and parent-question children are terminal for continuation. Do not address a prior child or sibling set by run ID. Start follow-up work with the normal launch form and an explicit handoff:
219
219
 
220
220
  ```typescript
221
221
  subagent({ agent: "worker", task: "[TASK_CONTEXT] Continue with this supervisor answer: ..." })
@@ -225,23 +225,23 @@ A parent-ask handoff supplies the original question, ordered attachments, previo
225
225
 
226
226
  ### Subagent control
227
227
 
228
- Subagent control is the runtime visibility and intervention layer for delegated runs. Lifecycle status distinguishes queued and running children from terminal completed, failed, or interrupted results. Activity reporting is factual: it tracks the last observed activity time and the current tool when known. It does not pretend to know that a child is truly stuck.
228
+ Subagent control is the runtime visibility and intervention layer for delegated runs. Lifecycle status distinguishes queued and running children from terminal completed, failed, killed, or cancelled results. Activity reporting is factual: it tracks the last observed activity time and the current tool when known. It does not pretend to know that a child is truly stuck.
229
229
 
230
- Default behavior is intentionally conservative. When no activity has been observed past the configured threshold, the run emits a `needs_attention` control event. Foreground runs push this as a `subagent:control-event` event, and notification-worthy control events are inserted into the visible transcript so both the user and the parent agent can see them, with a proactive hint plus concrete `nudge`, `status`, and `interrupt` options. Visible notifications fire once per child run and attention state.
230
+ Default behavior is intentionally conservative. When no activity has been observed past the configured threshold, the run emits a `needs_attention` control event. Foreground runs push this as a `subagent:control-event` event, and notification-worthy control events are inserted into the visible transcript so both the user and the parent agent can see them, with a proactive hint plus concrete `nudge`, `status`, and `kill` options. Visible notifications fire once per child run and attention state.
231
231
 
232
- Use soft interrupt when a child is clearly blocked or drifting and the parent needs to regain control:
232
+ Use kill when a child is clearly blocked or drifting and the parent needs to terminally stop it:
233
233
 
234
234
  ```typescript
235
- subagent({ action: "interrupt" })
235
+ subagent({ action: "kill", id: taskId })
236
236
  ```
237
237
 
238
238
  Pass `id` when targeting a specific controllable run:
239
239
 
240
240
  ```typescript
241
- subagent({ action: "interrupt", id: "abc123" })
241
+ subagent({ action: "kill", id: "abc123" })
242
242
  ```
243
243
 
244
- A soft interrupt cancels the current child turn and terminally records the child as interrupted. It does not mean the delegated task succeeded. Decide the next explicit action: launch a fresh child with the relevant task context, replace the task, ask the user, or stop the workflow.
244
+ Kill terminally stops the child and records it as killed. It cannot be resumed and does not mean the delegated task succeeded. Decide the next explicit action: launch a fresh child with the relevant task context, replace the task, ask the user, or stop the workflow.
245
245
 
246
246
  Per-run control thresholds can be overridden when a task legitimately runs without observable output for longer than usual:
247
247
 
@@ -404,8 +404,8 @@ If a prompt-template extension is installed, additional user prompt templates ca
404
404
 
405
405
  - **Forking requires a persisted parent session.** If the current session does not have a persisted session file, forked runs fail.
406
406
  - **Forked runs inherit parent history.** They are branched threads, not fresh filtered contexts. Use fresh context for adversarial review unless the user explicitly asks for forked context.
407
- - **Delegation is one level deep and not configurable.** A subagent cannot call `subagent`: every launch and `interrupt` from inside a child is refused. Only `list`, `get`, and `status` stay available to a child.
408
- - **Attention signals are not lifecycle state.** `needs_attention` means no activity has been observed past the configured threshold. `interrupted` means the child turn ended before completion; it is terminal for continuation and is not the same as `failed`.
407
+ - **Delegation is one level deep and not configurable.** A subagent cannot call `subagent`: every launch and `kill` from inside a child is refused. Only `list`, `get`, and `status` stay available to a child.
408
+ - **Attention signals are not lifecycle state.** `needs_attention` means no activity has been observed past the configured threshold. `killed` means the child was terminally stopped by the kill command; it cannot be resumed and is not the same as `failed`.
409
409
  - **Builtin coordination varies by agent.** `debugger` and `worker` declare `intercom` and `contact_supervisor`; the other builtin specialists do not. For agents without bridge tools, decide the task up front or use a custom agent when mid-run coordination is required.
410
410
  - **Intercom asks are blocking.** A session can only maintain one pending outbound ask wait state at a time.
411
411
  - **Keep conversational authority clear.** Advisory specialists should not silently become second decision-makers.
@@ -441,11 +441,11 @@ Give subagents specific tasks rather than vague mandates.
441
441
 
442
442
  ### Escalate decisions upward
443
443
 
444
- Most builtin specialists return on completion rather than pausing for parent decisions. The builtin `debugger` and `worker` can use `contact_supervisor` when an active bridge route exists, but resolve known scope, product, and architecture questions before launching any writer. If the parent realizes mid-run that the scope is wrong, steer a reachable writer or soft-interrupt it.
444
+ Most builtin specialists return on completion rather than pausing for parent decisions. The builtin `debugger` and `worker` can use `contact_supervisor` when an active bridge route exists, but resolve known scope, product, and architecture questions before launching any writer. If the parent realizes mid-run that the scope is wrong, steer a reachable writer or kill it.
445
445
 
446
446
  ### Intervene only on clear control signals
447
447
 
448
- Use subagent control proactively when a delegated run emits `needs_attention`, or when a human asks you to regain control. Do not interrupt just because a child has briefly produced no output. Silence can be normal during long tool calls, test runs, or model reasoning.
448
+ Use subagent control proactively when a delegated run emits `needs_attention`, or when a human asks you to regain control. Do not kill just because a child has briefly produced no output. Silence can be normal during long tool calls, test runs, or model reasoning.
449
449
 
450
450
  ### Name sessions meaningfully
451
451
 
@@ -484,7 +484,7 @@ For complex or risky changes, increase review and validation fanout when user in
484
484
 
485
485
  For very large work, split into serial milestones instead of launching a swarm of writers. Each milestone gets one writer, a validation contract, fresh-context review, a fix pass, and parent approval before the next milestone starts. Use parallel subagents inside a milestone for read-only context, research, and review only.
486
486
 
487
- Keep orchestration authority in the parent session. Child subagents cannot launch more subagents or run their own orchestration loops: delegation is one level deep and nothing configures it. This skill is parent-only and is stripped from every child prompt. A child may still have the `subagent` extension tool registered, because bundled extensions load through normal discovery; registration is not authority. Typed admission policy lets a child use only `list`, `get`, and `status`, and refuses delegation and `interrupt`. Spawned children also do not receive parent-only status/control/slash messages or prior parent `subagent` tool-call/tool-result artifacts, and child context filtering strips old hidden orchestration-instruction messages when they appear in inherited history. Every child also receives a boundary instruction that says the parent owns orchestration, that the `subagent` tool refuses every launch and `interrupt` from inside a subagent, and that writer children must call real edit/write tools instead of printing pseudo tool calls. Pass children concrete role-specific work instead.
487
+ Keep orchestration authority in the parent session. Child subagents cannot launch more subagents or run their own orchestration loops: delegation is one level deep and nothing configures it. This skill is parent-only and is stripped from every child prompt. A child may still have the `subagent` extension tool registered, because bundled extensions load through normal discovery; registration is not authority. Typed admission policy lets a child use only `list`, `get`, and `status`, and refuses delegation and `kill`. Spawned children also do not receive parent-only status/control/slash messages or prior parent `subagent` tool-call/tool-result artifacts, and child context filtering strips old hidden orchestration-instruction messages when they appear in inherited history. Every child also receives a boundary instruction that says the parent owns orchestration, that the `subagent` tool refuses every launch and `kill` from inside a subagent, and that writer children must call real edit/write tools instead of printing pseudo tool calls. Pass children concrete role-specific work instead.
488
488
 
489
489
  1. Clarify only when needed. Use existing context first; gather missing code or research context selectively, then ask only unresolved questions that materially affect scope, completion criteria, constraints, or non-goals.
490
490
  2. Define the validation contract. State completion expectations before implementation: expected behavior, checks to run, user flows to exercise, and evidence required in the writer handoff. For UI, CLI, integration, or workflow changes, include at least one validator angle that uses the product the way a user would rather than only reading code.