@selesai/code 0.9.6 → 0.9.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 (281) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cli/credential-print.js +4 -4
  3. package/dist/cli.js +0 -0
  4. package/dist/core/agent-session-runtime.js +1 -4
  5. package/dist/core/agent-session.d.ts +2 -0
  6. package/dist/core/agent-session.js +26 -0
  7. package/dist/core/compaction/branch-summarization.js +30 -30
  8. package/dist/core/compaction/compaction.js +81 -81
  9. package/dist/core/compaction/utils.js +2 -2
  10. package/dist/core/export-html/template.css +1066 -1066
  11. package/dist/core/export-html/template.html +55 -55
  12. package/dist/core/export-html/template.js +1864 -1864
  13. package/dist/core/export-html/vendor/highlight.min.js +1212 -1212
  14. package/dist/core/export-html/vendor/marked.min.js +78 -78
  15. package/dist/core/handoff.d.ts +11 -0
  16. package/dist/core/handoff.js +49 -0
  17. package/dist/core/messages.js +7 -7
  18. package/dist/extensions/context-compaction-reminder.test.ts +82 -82
  19. package/dist/extensions/context-compaction-reminder.ts +28 -28
  20. package/dist/extensions/handoff-new.ts +14 -75
  21. package/dist/extensions/pi-intercom/LICENSE +21 -21
  22. package/dist/extensions/pi-intercom/broker/client.test.ts +83 -83
  23. package/dist/extensions/pi-intercom/broker/extension.test.ts +387 -387
  24. package/dist/extensions/pi-intercom/broker/framing.test.ts +114 -114
  25. package/dist/extensions/pi-intercom/broker/paths.test.ts +153 -153
  26. package/dist/extensions/pi-intercom/broker/paths.ts +134 -134
  27. package/dist/extensions/pi-intercom/broker/runtime-claim.test.ts +34 -34
  28. package/dist/extensions/pi-intercom/broker/runtime-claim.ts +21 -21
  29. package/dist/extensions/pi-intercom/cwd.test.ts +40 -40
  30. package/dist/extensions/pi-intercom/cwd.ts +31 -31
  31. package/dist/extensions/pi-intercom/extension-api.ts +44 -44
  32. package/dist/extensions/pi-intercom/format-context.test.ts +31 -31
  33. package/dist/extensions/pi-intercom/format-context.ts +32 -32
  34. package/dist/extensions/pi-intercom/test/overlay-width.test.ts +66 -66
  35. package/dist/extensions/pi-intercom/ui/compose.ts +143 -143
  36. package/dist/extensions/pi-intercom/ui/session-list.ts +166 -166
  37. package/dist/extensions/pi-powerline-footer/bash-mode/shell-session.ts +286 -286
  38. package/dist/extensions/pi-powerline-footer/bash-mode/transcript.ts +108 -108
  39. package/dist/extensions/pi-powerline-footer/separators.ts +57 -57
  40. package/dist/extensions/pi-powerline-footer/tests/session-usage.test.ts +47 -47
  41. package/dist/extensions/pi-powerline-footer/tests/tps.test.ts +39 -39
  42. package/dist/extensions/pi-powerline-footer/theme.example.json +24 -24
  43. package/dist/extensions/pi-powerline-footer/theme.json +12 -12
  44. package/dist/extensions/pi-powerline-footer/tps.ts +345 -345
  45. package/dist/extensions/pi-rewind-hook/README.md +245 -245
  46. package/dist/extensions/pi-rewind-hook/index.ts +1445 -1445
  47. package/dist/extensions/pi-rewind-hook/package.json +29 -29
  48. package/dist/extensions/pi-subagents/install.mjs +0 -0
  49. package/dist/extensions/pi-web-agent/package.json +31 -31
  50. package/dist/extensions/pi-web-agent/src/backends/config.ts +205 -205
  51. package/dist/extensions/pi-web-agent/src/backends/doctor.ts +136 -136
  52. package/dist/extensions/pi-web-agent/src/backends/factory.ts +152 -152
  53. package/dist/extensions/pi-web-agent/src/backends/settings-reader.ts +25 -25
  54. package/dist/extensions/pi-web-agent/src/cache/ttl-cache.ts +28 -28
  55. package/dist/extensions/pi-web-agent/src/changelog-notice.ts +136 -136
  56. package/dist/extensions/pi-web-agent/src/commands/web-agent-config.ts +946 -946
  57. package/dist/extensions/pi-web-agent/src/extension.ts +126 -126
  58. package/dist/extensions/pi-web-agent/src/extract/readability.ts +118 -118
  59. package/dist/extensions/pi-web-agent/src/fetch/browser-resolution.ts +199 -199
  60. package/dist/extensions/pi-web-agent/src/fetch/firecrawl-fetch.ts +100 -100
  61. package/dist/extensions/pi-web-agent/src/fetch/headless-fetch.ts +117 -117
  62. package/dist/extensions/pi-web-agent/src/fetch/http-fetch.ts +67 -67
  63. package/dist/extensions/pi-web-agent/src/orchestration/answer-synthesizer.ts +60 -60
  64. package/dist/extensions/pi-web-agent/src/orchestration/candidate-selector.ts +50 -50
  65. package/dist/extensions/pi-web-agent/src/orchestration/direct-url.ts +52 -52
  66. package/dist/extensions/pi-web-agent/src/orchestration/evidence-quality.ts +105 -105
  67. package/dist/extensions/pi-web-agent/src/orchestration/evidence-ranker.ts +45 -45
  68. package/dist/extensions/pi-web-agent/src/orchestration/index.ts +28 -28
  69. package/dist/extensions/pi-web-agent/src/orchestration/query-planner.ts +47 -47
  70. package/dist/extensions/pi-web-agent/src/orchestration/research-orchestrator.ts +376 -376
  71. package/dist/extensions/pi-web-agent/src/orchestration/research-types.ts +64 -64
  72. package/dist/extensions/pi-web-agent/src/orchestration/research-worker.ts +181 -181
  73. package/dist/extensions/pi-web-agent/src/orchestration/source-profile.ts +101 -101
  74. package/dist/extensions/pi-web-agent/src/orchestration/stop-decider.ts +81 -81
  75. package/dist/extensions/pi-web-agent/src/presentation/config-store.ts +210 -210
  76. package/dist/extensions/pi-web-agent/src/presentation/config.ts +75 -75
  77. package/dist/extensions/pi-web-agent/src/presentation/explore-presentation.ts +61 -61
  78. package/dist/extensions/pi-web-agent/src/presentation/fetch-presentation.ts +54 -54
  79. package/dist/extensions/pi-web-agent/src/presentation/search-presentation.ts +41 -41
  80. package/dist/extensions/pi-web-agent/src/presentation/select-view.ts +20 -20
  81. package/dist/extensions/pi-web-agent/src/presentation/types.ts +63 -63
  82. package/dist/extensions/pi-web-agent/src/search/brave.ts +114 -114
  83. package/dist/extensions/pi-web-agent/src/search/duckduckgo.ts +72 -72
  84. package/dist/extensions/pi-web-agent/src/search/searxng.ts +96 -96
  85. package/dist/extensions/pi-web-agent/src/tools/web-explore.ts +71 -71
  86. package/dist/extensions/pi-web-agent/src/tools/web-fetch-headless.ts +31 -31
  87. package/dist/extensions/pi-web-agent/src/tools/web-fetch.ts +31 -31
  88. package/dist/extensions/pi-web-agent/src/tools/web-search.ts +157 -157
  89. package/dist/extensions/pi-web-agent/src/types.ts +88 -88
  90. package/dist/extensions/ponytail/package.json +8 -8
  91. package/dist/extensions/question/batch.ts +103 -103
  92. package/dist/extensions/question/constants.ts +30 -30
  93. package/dist/extensions/question/helpers.ts +58 -58
  94. package/dist/extensions/question/navigation.ts +14 -14
  95. package/dist/extensions/question/package.json +19 -19
  96. package/dist/extensions/question/schemas.ts +43 -43
  97. package/dist/extensions/question/selection-mode.ts +46 -46
  98. package/dist/extensions/question/shortcuts.ts +44 -44
  99. package/dist/extensions/question/types.ts +132 -132
  100. package/dist/extensions/test-resolve-hook-impl.mjs +6 -6
  101. package/dist/extensions/test-resolve-hook.mjs +6 -6
  102. package/dist/extensions/web-agent-onboarding.ts +222 -222
  103. package/dist/extensions/workflow/package.json +17 -17
  104. package/dist/modes/rpc/rpc-mode.js +24 -0
  105. package/dist/modes/rpc/rpc-types.d.ts +19 -0
  106. package/dist/package-manager-cli.js +71 -71
  107. package/dist/rpc-entry.js +0 -0
  108. package/dist/skills/agent-browser/SKILL.md +52 -52
  109. package/dist/skills/batch-grill-me/SKILL.md +19 -19
  110. package/dist/skills/grill-me/SKILL.md +10 -10
  111. package/dist/skills/handoff/SKILL.md +16 -16
  112. package/dist/skills/handoff-text/SKILL.md +14 -14
  113. package/dist/skills/implanger/SKILL.md +69 -69
  114. package/dist/skills/improve-codebase/REFERENCE.md +78 -78
  115. package/dist/skills/improve-codebase/SKILL.md +178 -178
  116. package/dist/skills/planger/SKILL.md +166 -166
  117. package/dist/skills/ponytail/SKILL.md +116 -116
  118. package/dist/skills/ponytail-audit/SKILL.md +42 -42
  119. package/dist/skills/ponytail-debt/SKILL.md +45 -45
  120. package/dist/skills/ponytail-gain/SKILL.md +51 -51
  121. package/dist/skills/ponytail-help/SKILL.md +70 -70
  122. package/dist/skills/ponytail-review/SKILL.md +58 -58
  123. package/dist/skills/selesai-handoff/SKILL.md +20 -20
  124. package/dist/skills/workflow-creation/SKILL.md +73 -73
  125. package/dist/themes/powerline-footer/theme.json +33 -33
  126. package/docs/compaction.md +396 -396
  127. package/docs/containerization.md +111 -111
  128. package/docs/development.md +71 -71
  129. package/docs/docs.json +164 -164
  130. package/docs/environment-variables.md +86 -86
  131. package/docs/index.md +83 -83
  132. package/docs/json.md +82 -82
  133. package/docs/models.md +502 -502
  134. package/docs/packages.md +227 -227
  135. package/docs/plans/subagent-delegation/phase-0-correctness.md +264 -264
  136. package/docs/plans/subagent-delegation/phase-1-behavioral-contract.md +485 -485
  137. package/docs/plans/subagent-delegation/phase-2-context-controls.md +281 -281
  138. package/docs/plans/subagent-delegation/phase-3-advisory-routing.md +361 -361
  139. package/docs/plans/subagent-delegation/phase-4-optional-enforcement.md +380 -380
  140. package/docs/prompt-templates.md +95 -95
  141. package/docs/providers.md +293 -293
  142. package/docs/sdk.md +1143 -1143
  143. package/docs/security.md +59 -59
  144. package/docs/session-format.md +414 -414
  145. package/docs/sessions.md +145 -145
  146. package/docs/shared-host-extensions.md +109 -109
  147. package/docs/shell-aliases.md +13 -13
  148. package/docs/skills.md +231 -231
  149. package/docs/terminal-setup.md +142 -142
  150. package/docs/termux.md +127 -127
  151. package/docs/themes.md +295 -295
  152. package/docs/tmux.md +63 -63
  153. package/docs/tui.md +927 -927
  154. package/docs/windows.md +17 -17
  155. package/examples/README.md +25 -25
  156. package/examples/extensions/README.md +211 -211
  157. package/examples/extensions/auto-commit-on-exit.ts +49 -49
  158. package/examples/extensions/bash-spawn-hook.ts +30 -30
  159. package/examples/extensions/bookmark.ts +50 -50
  160. package/examples/extensions/border-status-editor.ts +150 -150
  161. package/examples/extensions/built-in-tool-renderer.ts +249 -249
  162. package/examples/extensions/claude-rules.ts +86 -86
  163. package/examples/extensions/commands.ts +72 -72
  164. package/examples/extensions/confirm-destructive.ts +59 -59
  165. package/examples/extensions/custom-compaction.ts +130 -130
  166. package/examples/extensions/custom-footer.ts +64 -64
  167. package/examples/extensions/custom-header.ts +73 -73
  168. package/examples/extensions/custom-provider-anthropic/index.ts +610 -610
  169. package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -24
  170. package/examples/extensions/custom-provider-anthropic/package.json +19 -19
  171. package/examples/extensions/custom-provider-gitlab-duo/index.ts +404 -404
  172. package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -16
  173. package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -82
  174. package/examples/extensions/dirty-repo-guard.ts +56 -56
  175. package/examples/extensions/doom-overlay/README.md +46 -46
  176. package/examples/extensions/doom-overlay/doom/build/doom.js +21 -21
  177. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  178. package/examples/extensions/doom-overlay/doom/build.sh +152 -152
  179. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -72
  180. package/examples/extensions/doom-overlay/doom-component.ts +132 -132
  181. package/examples/extensions/doom-overlay/doom-engine.ts +173 -173
  182. package/examples/extensions/doom-overlay/doom-keys.ts +104 -104
  183. package/examples/extensions/doom-overlay/index.ts +74 -74
  184. package/examples/extensions/doom-overlay/wad-finder.ts +51 -51
  185. package/examples/extensions/dynamic-resources/SKILL.md +8 -8
  186. package/examples/extensions/dynamic-resources/dynamic.json +79 -79
  187. package/examples/extensions/dynamic-resources/dynamic.md +5 -5
  188. package/examples/extensions/dynamic-resources/index.ts +15 -15
  189. package/examples/extensions/dynamic-tools.ts +74 -74
  190. package/examples/extensions/event-bus.ts +43 -43
  191. package/examples/extensions/file-trigger.ts +41 -41
  192. package/examples/extensions/git-checkpoint.ts +53 -53
  193. package/examples/extensions/git-merge-and-resolve.ts +115 -115
  194. package/examples/extensions/github-issue-autocomplete.ts +185 -185
  195. package/examples/extensions/gondolin/index.ts +531 -531
  196. package/examples/extensions/gondolin/package-lock.json +185 -185
  197. package/examples/extensions/gondolin/package.json +19 -19
  198. package/examples/extensions/handoff.ts +199 -199
  199. package/examples/extensions/hello.ts +26 -26
  200. package/examples/extensions/hidden-thinking-label.ts +53 -53
  201. package/examples/extensions/inline-bash.ts +94 -94
  202. package/examples/extensions/input-transform-streaming.ts +39 -39
  203. package/examples/extensions/input-transform.ts +43 -43
  204. package/examples/extensions/interactive-shell.ts +196 -196
  205. package/examples/extensions/mac-system-theme.ts +47 -47
  206. package/examples/extensions/message-renderer.ts +59 -59
  207. package/examples/extensions/minimal-mode.ts +426 -426
  208. package/examples/extensions/modal-editor.ts +85 -85
  209. package/examples/extensions/model-status.ts +31 -31
  210. package/examples/extensions/notify.ts +55 -55
  211. package/examples/extensions/overlay-qa-tests.ts +1450 -1450
  212. package/examples/extensions/overlay-test.ts +153 -153
  213. package/examples/extensions/permission-gate.ts +34 -34
  214. package/examples/extensions/pirate.ts +47 -47
  215. package/examples/extensions/plan-mode/README.md +66 -66
  216. package/examples/extensions/plan-mode/index.ts +390 -390
  217. package/examples/extensions/plan-mode/utils.ts +168 -168
  218. package/examples/extensions/preset.ts +436 -436
  219. package/examples/extensions/project-trust.ts +64 -64
  220. package/examples/extensions/prompt-customizer.ts +97 -97
  221. package/examples/extensions/protected-paths.ts +30 -30
  222. package/examples/extensions/provider-payload.ts +18 -18
  223. package/examples/extensions/qna.ts +122 -122
  224. package/examples/extensions/question.ts +285 -285
  225. package/examples/extensions/questionnaire.ts +448 -448
  226. package/examples/extensions/rainbow-editor.ts +88 -88
  227. package/examples/extensions/reload-runtime.ts +37 -37
  228. package/examples/extensions/rpc-demo.ts +118 -118
  229. package/examples/extensions/sandbox/index.ts +321 -321
  230. package/examples/extensions/sandbox/package-lock.json +92 -92
  231. package/examples/extensions/sandbox/package.json +19 -19
  232. package/examples/extensions/send-user-message.ts +97 -97
  233. package/examples/extensions/session-name.ts +27 -27
  234. package/examples/extensions/shutdown-command.ts +63 -63
  235. package/examples/extensions/snake.ts +343 -343
  236. package/examples/extensions/space-invaders.ts +560 -560
  237. package/examples/extensions/ssh.ts +220 -220
  238. package/examples/extensions/status-line.ts +32 -32
  239. package/examples/extensions/structured-output.ts +65 -65
  240. package/examples/extensions/subagent/README.md +175 -175
  241. package/examples/extensions/subagent/agents/planner.md +37 -37
  242. package/examples/extensions/subagent/agents/reviewer.md +35 -35
  243. package/examples/extensions/subagent/agents/scout.md +50 -50
  244. package/examples/extensions/subagent/agents/worker.md +24 -24
  245. package/examples/extensions/subagent/agents.ts +126 -126
  246. package/examples/extensions/subagent/index.ts +1015 -1015
  247. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -10
  248. package/examples/extensions/subagent/prompts/implement.md +10 -10
  249. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -9
  250. package/examples/extensions/summarize.ts +209 -209
  251. package/examples/extensions/system-prompt-header.ts +17 -17
  252. package/examples/extensions/tic-tac-toe.ts +1008 -1008
  253. package/examples/extensions/timed-confirm.ts +70 -70
  254. package/examples/extensions/titlebar-spinner.ts +58 -58
  255. package/examples/extensions/todo.ts +297 -297
  256. package/examples/extensions/tool-override.ts +144 -144
  257. package/examples/extensions/tools.ts +146 -146
  258. package/examples/extensions/trigger-compact.ts +50 -50
  259. package/examples/extensions/truncated-tool.ts +195 -195
  260. package/examples/extensions/widget-placement.ts +9 -9
  261. package/examples/extensions/with-deps/index.ts +32 -32
  262. package/examples/extensions/with-deps/package-lock.json +31 -31
  263. package/examples/extensions/with-deps/package.json +22 -22
  264. package/examples/extensions/working-indicator.ts +123 -123
  265. package/examples/extensions/working-message-test.ts +25 -25
  266. package/examples/rpc-extension-ui.ts +632 -632
  267. package/examples/sdk/01-minimal.ts +26 -26
  268. package/examples/sdk/02-custom-model.ts +53 -53
  269. package/examples/sdk/03-custom-prompt.ts +75 -75
  270. package/examples/sdk/04-skills.ts +55 -55
  271. package/examples/sdk/05-tools.ts +48 -48
  272. package/examples/sdk/06-extensions.ts +99 -99
  273. package/examples/sdk/07-context-files.ts +47 -47
  274. package/examples/sdk/08-prompt-templates.ts +51 -51
  275. package/examples/sdk/09-api-keys-and-oauth.ts +52 -52
  276. package/examples/sdk/10-settings.ts +53 -53
  277. package/examples/sdk/11-sessions.ts +52 -52
  278. package/examples/sdk/12-full-control.ts +79 -79
  279. package/examples/sdk/13-session-runtime.ts +67 -67
  280. package/examples/sdk/README.md +144 -144
  281. package/package.json +1 -1
@@ -1,265 +1,265 @@
1
- # Phase 0 Plan — Correctness Cleanup Before Delegation Changes
2
-
3
- ## Objective
4
-
5
- Correct stale bundled-agent documentation and impossible builtin-agent contracts without changing intended delegation policy. Keep current runtime defaults authoritative: only `architect` and `recapper` fork by default; the other four builtins are fresh-context.
6
-
7
- ## Non-goals
8
-
9
- - Do not redesign delegation behavior, context policy, model routing, or orchestration.
10
- - Do not grant `commentator` write tools.
11
- - Do not make `researcher` portable by adding new extension/package dependencies.
12
- - Do not alter user settings, user-home skills, `.selesai/`, `.pi-subagents/`, or unrelated dirty changes.
13
- - Do not run `npm run build`: it cleans `dist/` and can destroy unrelated dirty generated artifacts.
14
-
15
- ## Review findings
16
-
17
- - **High — stale/mangled role docs:** `src/extensions/pi-subagents/skills/pi-subagents/references/prompting-and-roles.md:14,176-192,269` and `README.md:105-116,407` duplicate roles, omit `recapper`, and contain a false self-alias.
18
- - **High — context contradiction:** `constraints-and-recipes.md:8-9,106,141` and `execution-controls.md:363,369-376` claim `builder`/`commentator` fork by default; their frontmatter declares `fresh`.
19
- - **High — stale discovery paths:** `execution-controls.md:9-22` and additional README discovery/settings text describe `.pi`, although runtime discovers `.selesai` and legacy `.agents`.
20
- - **Medium — impossible/unsafe role contracts:** `agents/architect.md:38` tells a child without `question` or `subagent` access to use them; `agents/builder.md:7,21` requires bridge-only `contact_supervisor`; `agents/researcher.md:4` misclassifies MCP tools as builtin tools.
21
- - **Medium — output/tool-description drift:** role tables say read-only agents write output files and that `commentator` can receive edit/write tools from an explicit fix pass. Neither is true.
22
-
23
- ## Discovery and baseline preservation
24
-
25
- 1. From repository root, run:
26
- ```bash
27
- git status --short
28
- git diff --check
29
- git diff -- src/extensions/pi-subagents dist/extensions/pi-subagents
30
- ```
31
- 2. Record every pre-existing dirty path and hunk. Treat them as owned by another change.
32
- 3. Before touching an affected `dist/extensions/pi-subagents/**` file, inspect its existing diff. If it is already dirty, manually merge only the Phase 0 documentation/agent hunk; never reset, checkout, clean, or overwrite unrelated content.
33
- 4. Confirm these runtime facts before editing:
34
- - `src/extensions/pi-subagents/src/agents/agents.ts`: `BUILTIN_AGENT_NAMES` is exactly `architect`, `builder`, `commentator`, `explorer`, `recapper`, `researcher`; discovery uses `.selesai/agents` plus legacy `.agents`.
35
- - `src/extensions/pi-subagents/agents/*.md`: only `architect` and `recapper` have `defaultContext: fork`.
36
- - `src/extensions/pi-subagents/src/intercom/intercom-bridge.ts:applyIntercomBridgeToAgent`: bridge tools are appended only when the bridge is active.
37
- - `src/extensions/pi-subagents/src/runs/shared/pi-args.ts:resolvePiLaunchToolPlan` and `tool-availability.ts`: `tools` is a strict allowlist and `mcp:` values become direct MCP selections.
38
-
39
- ## Files and ownership
40
-
41
- ### Source files to modify
42
-
43
- | File | Ownership / required change |
44
- |---|---|
45
- | `src/extensions/pi-subagents/agents/architect.md` | Builtin planner’s executable prompt; remove unavailable-tool instructions. |
46
- | `src/extensions/pi-subagents/agents/builder.md` | Builtin writer’s declared tool contract and escalation instruction. |
47
- | `src/extensions/pi-subagents/agents/researcher.md` | Builtin researcher’s MCP-tool declaration. |
48
- | `src/extensions/pi-subagents/skills/pi-subagents/references/prompting-and-roles.md` | Canonical parent-skill role routing/table guidance. |
49
- | `src/extensions/pi-subagents/skills/pi-subagents/references/constraints-and-recipes.md` | Canonical default-context/workflow guidance. |
50
- | `src/extensions/pi-subagents/skills/pi-subagents/references/execution-controls.md` | Canonical discovery, context, and commentator-workflow guidance. |
51
- | `src/extensions/pi-subagents/README.md` | Public package documentation for builtin roles, paths, and defaults. |
52
- | `src/extensions/pi-subagents/test/unit/agent-frontmatter.test.ts` | Existing runtime-discovery test seam for builtin frontmatter. |
53
- | `src/extensions/pi-subagents/test/unit/builtin-agent-documentation.test.ts` (new) | Narrow regression test for six unique builtin roles in both public role tables. |
54
-
55
- ### Generated package mirrors to synchronize
56
-
57
- Mirror only corresponding changed source assets into:
58
-
59
- - `dist/extensions/pi-subagents/agents/architect.md`
60
- - `dist/extensions/pi-subagents/agents/builder.md`
61
- - `dist/extensions/pi-subagents/agents/researcher.md`
62
- - `dist/extensions/pi-subagents/README.md`
63
- - `dist/extensions/pi-subagents/skills/pi-subagents/references/prompting-and-roles.md`
64
- - `dist/extensions/pi-subagents/skills/pi-subagents/references/constraints-and-recipes.md`
65
- - `dist/extensions/pi-subagents/skills/pi-subagents/references/execution-controls.md`
66
-
67
- Do **not** modify runtime TypeScript, user settings, skill installations, or unrelated `dist` output.
68
-
69
- ## Ordered implementation tasks
70
-
71
- ### 1. Correct impossible builtin-agent instructions
72
-
73
- 1. In `agents/architect.md`, replace the sentence that says the architect should use an explorer agent and a “questions tool.”
74
- - New instruction: inspect the repository directly with its available read/search tools.
75
- - For unresolved user-owned decisions, require the architect to list them explicitly in the returned plan rather than trying to ask questions or launch a child.
76
- - Do not add `question`, `interview`, `subagent`, or `contact_supervisor` to architect’s allowlist.
77
-
78
- 2. In `agents/builder.md`:
79
- - Remove `contact_supervisor` from the static `tools:` frontmatter list.
80
- - Replace the unconditional instruction to call it with a conditional rule:
81
- - when injected bridge instructions make `contact_supervisor` available, use it for unapproved decisions and wait;
82
- - otherwise stop, do not guess, and report the exact blocking decision.
83
- - Keep all existing core writer tools and the single-writer role unchanged.
84
-
85
- 3. In `agents/researcher.md`, prefix `grep_app_search` and `grep_app_fetch` with `mcp:` in `tools:`.
86
- - Preserve `read` and `web_explore`.
87
- - Do not add `extensions` or `subagentOnlyExtensions`; that would introduce a separate dependency/policy decision.
88
-
89
- ### 2. Repair role, output, capability, and specialty documentation
90
-
91
- 1. In `prompting-and-roles.md`:
92
- - Change “use `explorer` or `explorer`” to one `explorer`.
93
- - Replace the malformed Builtin Agents table with exactly one row for each canonical builtin:
94
- `architect`, `builder`, `commentator`, `explorer`, `recapper`, `researcher`.
95
- - Describe outputs as final responses/artifacts only when caller-configured output persistence is used; never claim read-only agents write project files such as `context.md`, `plan.md`, or `research.md`.
96
- - Describe `commentator` as review-only and `builder` as the writer. Remove the claim that a fix pass automatically grants commentator `edit`/`write`.
97
- - Include `recapper` as the fork-context handoff specialist.
98
- - Replace the false strict-isolation statement with: explicit `tools` is an allowlist, but ambient extension discovery remains possible unless `extensions`, `subagentOnlyExtensions`, or a capability ceiling constrains it; naming a tool alone does not load its provider.
99
- - Remove duplicate `builder` in model-tier examples; use real builtins only.
100
-
101
- 2. In `README.md`:
102
- - Replace “Builtin agents in plain English” with the same six unique roles and accurate specialties.
103
- - Update the rule of thumb to use `recapper` for a clean current-state handoff, rather than repeating `commentator`.
104
- - Remove stale claims that `commentator` is an alias or can make small fixes, and remove obsolete researcher tool names/install guidance.
105
- - Correct `.pi` project path/root references to `.selesai`, retaining `.agents` only where runtime actually supports legacy discovery.
106
- - State the true context defaults: `architect` and `recapper` fork; `builder`, `commentator`, `explorer`, and `researcher` are fresh.
107
- - Remove duplicate/nonexistent “lightweight builder” examples from model-tier text.
108
-
109
- ### 3. Align context and discovery references with runtime
110
-
111
- 1. In `constraints-and-recipes.md`:
112
- - Replace all duplicated context-default lists with the actual six-agent split.
113
- - Change builder guidance from “defaults to fork; pass fresh” to “defaults to fresh; pass fork only when inherited parent context is intentionally required.”
114
- - Correct duplicate `explorer` references in Fable/clarify workflow prose.
115
- - Keep explicit fresh-context review guidance unchanged.
116
-
117
- 2. In `execution-controls.md`:
118
- - Replace canonical `.pi/agents` and `.pi/chains` paths with `.selesai/agents` and `.selesai/chains`.
119
- - State that `.agents` is legacy agent discovery only; do not invent legacy chain discovery.
120
- - Replace nearest-root `.pi` wording with `.selesai` or `.agents`.
121
- - Rewrite the commentator workflow to show fresh context as the default and an explicit `context: "fork"` only when a branched advisory thread is intended.
122
- - Correct builder example prose to state that builder is fresh by default and fork is explicit.
123
- - Keep the bridge-injection caveat for `contact_supervisor`; it is accurate once the builder prompt becomes conditional.
124
-
125
- ### 4. Add focused regression coverage
126
-
127
- 1. Extend `agent-frontmatter.test.ts`:
128
- - Replace the partial fork assertion with a complete expected map for all six builtins:
129
- - `architect`, `recapper` → `fork`
130
- - `builder`, `commentator`, `explorer`, `researcher` → `fresh`
131
- - Assert builder’s static builtin tools do not include `contact_supervisor`.
132
- - Assert researcher discovery produces:
133
- - builtin tools: `read`, `web_explore`
134
- - `mcpDirectTools`: `grep_app_search`, `grep_app_fetch`.
135
-
136
- 2. Add `builtin-agent-documentation.test.ts`:
137
- - Read source `README.md` and `skills/pi-subagents/references/prompting-and-roles.md`.
138
- - Extract the first-column agent names from each respective builtin-role table.
139
- - Assert each table has exactly the six names in `BUILTIN_AGENT_NAMES`, with no duplicates and no aliases.
140
- - Do not test generated `dist` here; generated-copy equality is verified in Task 5.
141
-
142
- ### 5. Synchronize package copies safely
143
-
144
- 1. After source tests pass, copy or manually merge only the listed changed source asset files into their matching `dist/extensions/pi-subagents/` paths.
145
- 2. Do not run root `npm run build`.
146
- 3. Do not run broad `npm run copy-assets` if it would overwrite pre-existing dirty generated files.
147
- 4. Verify every changed source asset is byte-identical to its matching `dist` copy:
148
- ```bash
149
- cmp -s src/extensions/pi-subagents/README.md dist/extensions/pi-subagents/README.md
150
- # Repeat for each changed agents/ and skills/ asset listed above.
151
- ```
152
-
153
- ## Decisions requiring approval (do not implement in Phase 0)
154
-
155
- 1. **Change builtin context defaults rather than docs:**
156
- Recommended Phase 0 action is docs-only alignment with current frontmatter/tests. Changing `builder` or `commentator` to fork would be a delegation-policy change and belongs in a later phase.
157
-
158
- 2. **Give `commentator` edit/write capability:**
159
- Recommended Phase 0 action is to remove stale documentation only. If fix-pass reviewers should edit, explicitly redesign its frontmatter, acceptance semantics, single-writer guarantees, and tests later.
160
-
161
- 3. **Make researcher tool providers self-contained:**
162
- Prefixing the grep.app tools as MCP tools is a correctness fix. Adding a web-agent extension path or packaging/configuring a grep.app provider is dependency/routing work and needs approval.
163
-
164
- ## Verification
165
-
166
- ### Commands
167
-
168
- ```bash
169
- cd src/extensions/pi-subagents
170
- node --experimental-strip-types --test \
171
- test/unit/agent-frontmatter.test.ts \
172
- test/unit/builtin-agent-documentation.test.ts
173
-
174
- npm run test:unit
175
- ```
176
-
177
- From repository root:
178
-
179
- ```bash
180
- git diff --check
181
- git diff -- src/extensions/pi-subagents dist/extensions/pi-subagents
182
- cmp -s src/extensions/pi-subagents/README.md dist/extensions/pi-subagents/README.md
183
- ```
184
-
185
- Repeat `cmp -s` for every changed mirrored asset.
186
-
187
- ### Success cases
188
-
189
- - Discovery returns exactly six builtins with documented specialties.
190
- - Only architect and recapper resolve to fork context without an explicit run context.
191
- - Builder launches without requiring bridge-only tools when the bridge is inactive.
192
- - Builder still receives `contact_supervisor` when the bridge is active.
193
- - Researcher’s grep.app tools are parsed into `mcpDirectTools`.
194
- - Both role tables list all six roles exactly once.
195
- - Source and `dist` copies are identical for every changed package asset.
196
-
197
- ### Failure cases
198
-
199
- - Missing MCP/provider registration still fails with the existing clear missing-tool diagnostic.
200
- - A builder blocked without a bridge does not guess or attempt an unavailable tool.
201
- - A forked run without a persisted parent session continues to fail as documented.
202
-
203
- ### Regression checks
204
-
205
- - Explicit `context: "fresh"` and `context: "fork"` overrides retain precedence.
206
- - `commentator` remains read-only.
207
- - `architect`, `explorer`, `recapper`, and `researcher` remain non-writing.
208
- - Legacy `.agents` agent discovery remains supported.
209
- - Existing user model overrides and user-home skills remain untouched.
210
-
211
- ## Compatibility, dependencies, risks, rollback
212
-
213
- - **Compatibility:** This preserves existing intended frontmatter behavior; only malformed tool routing and bridge-inactive builder startup are corrected.
214
- - **Dependencies:** existing Node test runtime with `--experimental-strip-types`; no new npm packages.
215
- - **Risks:** manually generated `dist` copies can conflict with current dirty artifacts; preserve/merge baseline hunks instead of regenerating broad output.
216
- - **Rollback:** revert only the Phase 0 source, test, and matching `dist` hunks. Do not revert baseline dirty hunks recorded before work began.
217
-
218
- ```acceptance-report
219
- {
220
- "criteriaSatisfied": [
221
- {
222
- "id": "criterion-1",
223
- "status": "satisfied",
224
- "evidence": "Concrete findings and planned fixes identify exact source paths, generated mirror paths, severity, runtime ownership, test seams, and residual risks."
225
- }
226
- ],
227
- "changedFiles": [],
228
- "testsAddedOrUpdated": [],
229
- "commandsRun": [
230
- {
231
- "command": "read/grep inspection of recon, builtin agent markdown, runtime discovery/tool planning code, package scripts, README, skill references, and unit tests",
232
- "result": "passed",
233
- "summary": "Verified Phase 0 ownership, current defaults, strict tool behavior, bridge injection, test runner, and generated-asset copy mechanism."
234
- },
235
- {
236
- "command": "git status --short / git diff",
237
- "result": "not-run",
238
- "summary": "No shell tool is available in this planning session; the plan requires a baseline dirty-diff capture before implementation."
239
- }
240
- ],
241
- "validationOutput": [
242
- "BUILTIN_AGENT_NAMES contains architect, builder, commentator, explorer, recapper, and researcher.",
243
- "Only architect and recapper currently declare defaultContext: fork.",
244
- "Builder statically requires contact_supervisor even though the bridge appends it only when active.",
245
- "Researcher currently declares grep.app tools without the parser-required mcp: prefix.",
246
- "Root copy-assets copies src/extensions into dist/extensions, while root build cleans dist and is unsafe for preserving existing dirty generated output."
247
- ],
248
- "residualRisks": [
249
- "Current dirty artifacts and unrelated edits were not inspectable through git in this session; implementation must baseline and preserve them.",
250
- "Researcher still depends on host MCP/web extension availability after the prefix correction.",
251
- "Changing context defaults or granting commentator write capability requires separate product/architecture approval."
252
- ],
253
- "noStagedFiles": false,
254
- "diffSummary": "No implementation was performed; this artifact is an implementation-ready Phase 0 plan.",
255
- "reviewFindings": [
256
- "high: skills/pi-subagents/references/prompting-and-roles.md and README.md contain duplicated/missing builtin roles and false output/capability descriptions.",
257
- "high: constraints-and-recipes.md and execution-controls.md contradict builtin defaultContext frontmatter.",
258
- "high: execution-controls.md and README.md contain stale .pi project discovery/root claims despite .selesai runtime configuration.",
259
- "medium: agents/architect.md, agents/builder.md, and agents/researcher.md contain impossible or incorrectly routed tool instructions."
260
- ],
261
- "manualNotes": "Phase 0 is intentionally limited to correctness cleanup and synchronization. Policy-level delegation behavior changes are explicitly deferred."
262
- }
263
- ```
264
-
1
+ # Phase 0 Plan — Correctness Cleanup Before Delegation Changes
2
+
3
+ ## Objective
4
+
5
+ Correct stale bundled-agent documentation and impossible builtin-agent contracts without changing intended delegation policy. Keep current runtime defaults authoritative: only `architect` and `recapper` fork by default; the other four builtins are fresh-context.
6
+
7
+ ## Non-goals
8
+
9
+ - Do not redesign delegation behavior, context policy, model routing, or orchestration.
10
+ - Do not grant `commentator` write tools.
11
+ - Do not make `researcher` portable by adding new extension/package dependencies.
12
+ - Do not alter user settings, user-home skills, `.selesai/`, `.pi-subagents/`, or unrelated dirty changes.
13
+ - Do not run `npm run build`: it cleans `dist/` and can destroy unrelated dirty generated artifacts.
14
+
15
+ ## Review findings
16
+
17
+ - **High — stale/mangled role docs:** `src/extensions/pi-subagents/skills/pi-subagents/references/prompting-and-roles.md:14,176-192,269` and `README.md:105-116,407` duplicate roles, omit `recapper`, and contain a false self-alias.
18
+ - **High — context contradiction:** `constraints-and-recipes.md:8-9,106,141` and `execution-controls.md:363,369-376` claim `builder`/`commentator` fork by default; their frontmatter declares `fresh`.
19
+ - **High — stale discovery paths:** `execution-controls.md:9-22` and additional README discovery/settings text describe `.pi`, although runtime discovers `.selesai` and legacy `.agents`.
20
+ - **Medium — impossible/unsafe role contracts:** `agents/architect.md:38` tells a child without `question` or `subagent` access to use them; `agents/builder.md:7,21` requires bridge-only `contact_supervisor`; `agents/researcher.md:4` misclassifies MCP tools as builtin tools.
21
+ - **Medium — output/tool-description drift:** role tables say read-only agents write output files and that `commentator` can receive edit/write tools from an explicit fix pass. Neither is true.
22
+
23
+ ## Discovery and baseline preservation
24
+
25
+ 1. From repository root, run:
26
+ ```bash
27
+ git status --short
28
+ git diff --check
29
+ git diff -- src/extensions/pi-subagents dist/extensions/pi-subagents
30
+ ```
31
+ 2. Record every pre-existing dirty path and hunk. Treat them as owned by another change.
32
+ 3. Before touching an affected `dist/extensions/pi-subagents/**` file, inspect its existing diff. If it is already dirty, manually merge only the Phase 0 documentation/agent hunk; never reset, checkout, clean, or overwrite unrelated content.
33
+ 4. Confirm these runtime facts before editing:
34
+ - `src/extensions/pi-subagents/src/agents/agents.ts`: `BUILTIN_AGENT_NAMES` is exactly `architect`, `builder`, `commentator`, `explorer`, `recapper`, `researcher`; discovery uses `.selesai/agents` plus legacy `.agents`.
35
+ - `src/extensions/pi-subagents/agents/*.md`: only `architect` and `recapper` have `defaultContext: fork`.
36
+ - `src/extensions/pi-subagents/src/intercom/intercom-bridge.ts:applyIntercomBridgeToAgent`: bridge tools are appended only when the bridge is active.
37
+ - `src/extensions/pi-subagents/src/runs/shared/pi-args.ts:resolvePiLaunchToolPlan` and `tool-availability.ts`: `tools` is a strict allowlist and `mcp:` values become direct MCP selections.
38
+
39
+ ## Files and ownership
40
+
41
+ ### Source files to modify
42
+
43
+ | File | Ownership / required change |
44
+ |---|---|
45
+ | `src/extensions/pi-subagents/agents/architect.md` | Builtin planner’s executable prompt; remove unavailable-tool instructions. |
46
+ | `src/extensions/pi-subagents/agents/builder.md` | Builtin writer’s declared tool contract and escalation instruction. |
47
+ | `src/extensions/pi-subagents/agents/researcher.md` | Builtin researcher’s MCP-tool declaration. |
48
+ | `src/extensions/pi-subagents/skills/pi-subagents/references/prompting-and-roles.md` | Canonical parent-skill role routing/table guidance. |
49
+ | `src/extensions/pi-subagents/skills/pi-subagents/references/constraints-and-recipes.md` | Canonical default-context/workflow guidance. |
50
+ | `src/extensions/pi-subagents/skills/pi-subagents/references/execution-controls.md` | Canonical discovery, context, and commentator-workflow guidance. |
51
+ | `src/extensions/pi-subagents/README.md` | Public package documentation for builtin roles, paths, and defaults. |
52
+ | `src/extensions/pi-subagents/test/unit/agent-frontmatter.test.ts` | Existing runtime-discovery test seam for builtin frontmatter. |
53
+ | `src/extensions/pi-subagents/test/unit/builtin-agent-documentation.test.ts` (new) | Narrow regression test for six unique builtin roles in both public role tables. |
54
+
55
+ ### Generated package mirrors to synchronize
56
+
57
+ Mirror only corresponding changed source assets into:
58
+
59
+ - `dist/extensions/pi-subagents/agents/architect.md`
60
+ - `dist/extensions/pi-subagents/agents/builder.md`
61
+ - `dist/extensions/pi-subagents/agents/researcher.md`
62
+ - `dist/extensions/pi-subagents/README.md`
63
+ - `dist/extensions/pi-subagents/skills/pi-subagents/references/prompting-and-roles.md`
64
+ - `dist/extensions/pi-subagents/skills/pi-subagents/references/constraints-and-recipes.md`
65
+ - `dist/extensions/pi-subagents/skills/pi-subagents/references/execution-controls.md`
66
+
67
+ Do **not** modify runtime TypeScript, user settings, skill installations, or unrelated `dist` output.
68
+
69
+ ## Ordered implementation tasks
70
+
71
+ ### 1. Correct impossible builtin-agent instructions
72
+
73
+ 1. In `agents/architect.md`, replace the sentence that says the architect should use an explorer agent and a “questions tool.”
74
+ - New instruction: inspect the repository directly with its available read/search tools.
75
+ - For unresolved user-owned decisions, require the architect to list them explicitly in the returned plan rather than trying to ask questions or launch a child.
76
+ - Do not add `question`, `interview`, `subagent`, or `contact_supervisor` to architect’s allowlist.
77
+
78
+ 2. In `agents/builder.md`:
79
+ - Remove `contact_supervisor` from the static `tools:` frontmatter list.
80
+ - Replace the unconditional instruction to call it with a conditional rule:
81
+ - when injected bridge instructions make `contact_supervisor` available, use it for unapproved decisions and wait;
82
+ - otherwise stop, do not guess, and report the exact blocking decision.
83
+ - Keep all existing core writer tools and the single-writer role unchanged.
84
+
85
+ 3. In `agents/researcher.md`, prefix `grep_app_search` and `grep_app_fetch` with `mcp:` in `tools:`.
86
+ - Preserve `read` and `web_explore`.
87
+ - Do not add `extensions` or `subagentOnlyExtensions`; that would introduce a separate dependency/policy decision.
88
+
89
+ ### 2. Repair role, output, capability, and specialty documentation
90
+
91
+ 1. In `prompting-and-roles.md`:
92
+ - Change “use `explorer` or `explorer`” to one `explorer`.
93
+ - Replace the malformed Builtin Agents table with exactly one row for each canonical builtin:
94
+ `architect`, `builder`, `commentator`, `explorer`, `recapper`, `researcher`.
95
+ - Describe outputs as final responses/artifacts only when caller-configured output persistence is used; never claim read-only agents write project files such as `context.md`, `plan.md`, or `research.md`.
96
+ - Describe `commentator` as review-only and `builder` as the writer. Remove the claim that a fix pass automatically grants commentator `edit`/`write`.
97
+ - Include `recapper` as the fork-context handoff specialist.
98
+ - Replace the false strict-isolation statement with: explicit `tools` is an allowlist, but ambient extension discovery remains possible unless `extensions`, `subagentOnlyExtensions`, or a capability ceiling constrains it; naming a tool alone does not load its provider.
99
+ - Remove duplicate `builder` in model-tier examples; use real builtins only.
100
+
101
+ 2. In `README.md`:
102
+ - Replace “Builtin agents in plain English” with the same six unique roles and accurate specialties.
103
+ - Update the rule of thumb to use `recapper` for a clean current-state handoff, rather than repeating `commentator`.
104
+ - Remove stale claims that `commentator` is an alias or can make small fixes, and remove obsolete researcher tool names/install guidance.
105
+ - Correct `.pi` project path/root references to `.selesai`, retaining `.agents` only where runtime actually supports legacy discovery.
106
+ - State the true context defaults: `architect` and `recapper` fork; `builder`, `commentator`, `explorer`, and `researcher` are fresh.
107
+ - Remove duplicate/nonexistent “lightweight builder” examples from model-tier text.
108
+
109
+ ### 3. Align context and discovery references with runtime
110
+
111
+ 1. In `constraints-and-recipes.md`:
112
+ - Replace all duplicated context-default lists with the actual six-agent split.
113
+ - Change builder guidance from “defaults to fork; pass fresh” to “defaults to fresh; pass fork only when inherited parent context is intentionally required.”
114
+ - Correct duplicate `explorer` references in Fable/clarify workflow prose.
115
+ - Keep explicit fresh-context review guidance unchanged.
116
+
117
+ 2. In `execution-controls.md`:
118
+ - Replace canonical `.pi/agents` and `.pi/chains` paths with `.selesai/agents` and `.selesai/chains`.
119
+ - State that `.agents` is legacy agent discovery only; do not invent legacy chain discovery.
120
+ - Replace nearest-root `.pi` wording with `.selesai` or `.agents`.
121
+ - Rewrite the commentator workflow to show fresh context as the default and an explicit `context: "fork"` only when a branched advisory thread is intended.
122
+ - Correct builder example prose to state that builder is fresh by default and fork is explicit.
123
+ - Keep the bridge-injection caveat for `contact_supervisor`; it is accurate once the builder prompt becomes conditional.
124
+
125
+ ### 4. Add focused regression coverage
126
+
127
+ 1. Extend `agent-frontmatter.test.ts`:
128
+ - Replace the partial fork assertion with a complete expected map for all six builtins:
129
+ - `architect`, `recapper` → `fork`
130
+ - `builder`, `commentator`, `explorer`, `researcher` → `fresh`
131
+ - Assert builder’s static builtin tools do not include `contact_supervisor`.
132
+ - Assert researcher discovery produces:
133
+ - builtin tools: `read`, `web_explore`
134
+ - `mcpDirectTools`: `grep_app_search`, `grep_app_fetch`.
135
+
136
+ 2. Add `builtin-agent-documentation.test.ts`:
137
+ - Read source `README.md` and `skills/pi-subagents/references/prompting-and-roles.md`.
138
+ - Extract the first-column agent names from each respective builtin-role table.
139
+ - Assert each table has exactly the six names in `BUILTIN_AGENT_NAMES`, with no duplicates and no aliases.
140
+ - Do not test generated `dist` here; generated-copy equality is verified in Task 5.
141
+
142
+ ### 5. Synchronize package copies safely
143
+
144
+ 1. After source tests pass, copy or manually merge only the listed changed source asset files into their matching `dist/extensions/pi-subagents/` paths.
145
+ 2. Do not run root `npm run build`.
146
+ 3. Do not run broad `npm run copy-assets` if it would overwrite pre-existing dirty generated files.
147
+ 4. Verify every changed source asset is byte-identical to its matching `dist` copy:
148
+ ```bash
149
+ cmp -s src/extensions/pi-subagents/README.md dist/extensions/pi-subagents/README.md
150
+ # Repeat for each changed agents/ and skills/ asset listed above.
151
+ ```
152
+
153
+ ## Decisions requiring approval (do not implement in Phase 0)
154
+
155
+ 1. **Change builtin context defaults rather than docs:**
156
+ Recommended Phase 0 action is docs-only alignment with current frontmatter/tests. Changing `builder` or `commentator` to fork would be a delegation-policy change and belongs in a later phase.
157
+
158
+ 2. **Give `commentator` edit/write capability:**
159
+ Recommended Phase 0 action is to remove stale documentation only. If fix-pass reviewers should edit, explicitly redesign its frontmatter, acceptance semantics, single-writer guarantees, and tests later.
160
+
161
+ 3. **Make researcher tool providers self-contained:**
162
+ Prefixing the grep.app tools as MCP tools is a correctness fix. Adding a web-agent extension path or packaging/configuring a grep.app provider is dependency/routing work and needs approval.
163
+
164
+ ## Verification
165
+
166
+ ### Commands
167
+
168
+ ```bash
169
+ cd src/extensions/pi-subagents
170
+ node --experimental-strip-types --test \
171
+ test/unit/agent-frontmatter.test.ts \
172
+ test/unit/builtin-agent-documentation.test.ts
173
+
174
+ npm run test:unit
175
+ ```
176
+
177
+ From repository root:
178
+
179
+ ```bash
180
+ git diff --check
181
+ git diff -- src/extensions/pi-subagents dist/extensions/pi-subagents
182
+ cmp -s src/extensions/pi-subagents/README.md dist/extensions/pi-subagents/README.md
183
+ ```
184
+
185
+ Repeat `cmp -s` for every changed mirrored asset.
186
+
187
+ ### Success cases
188
+
189
+ - Discovery returns exactly six builtins with documented specialties.
190
+ - Only architect and recapper resolve to fork context without an explicit run context.
191
+ - Builder launches without requiring bridge-only tools when the bridge is inactive.
192
+ - Builder still receives `contact_supervisor` when the bridge is active.
193
+ - Researcher’s grep.app tools are parsed into `mcpDirectTools`.
194
+ - Both role tables list all six roles exactly once.
195
+ - Source and `dist` copies are identical for every changed package asset.
196
+
197
+ ### Failure cases
198
+
199
+ - Missing MCP/provider registration still fails with the existing clear missing-tool diagnostic.
200
+ - A builder blocked without a bridge does not guess or attempt an unavailable tool.
201
+ - A forked run without a persisted parent session continues to fail as documented.
202
+
203
+ ### Regression checks
204
+
205
+ - Explicit `context: "fresh"` and `context: "fork"` overrides retain precedence.
206
+ - `commentator` remains read-only.
207
+ - `architect`, `explorer`, `recapper`, and `researcher` remain non-writing.
208
+ - Legacy `.agents` agent discovery remains supported.
209
+ - Existing user model overrides and user-home skills remain untouched.
210
+
211
+ ## Compatibility, dependencies, risks, rollback
212
+
213
+ - **Compatibility:** This preserves existing intended frontmatter behavior; only malformed tool routing and bridge-inactive builder startup are corrected.
214
+ - **Dependencies:** existing Node test runtime with `--experimental-strip-types`; no new npm packages.
215
+ - **Risks:** manually generated `dist` copies can conflict with current dirty artifacts; preserve/merge baseline hunks instead of regenerating broad output.
216
+ - **Rollback:** revert only the Phase 0 source, test, and matching `dist` hunks. Do not revert baseline dirty hunks recorded before work began.
217
+
218
+ ```acceptance-report
219
+ {
220
+ "criteriaSatisfied": [
221
+ {
222
+ "id": "criterion-1",
223
+ "status": "satisfied",
224
+ "evidence": "Concrete findings and planned fixes identify exact source paths, generated mirror paths, severity, runtime ownership, test seams, and residual risks."
225
+ }
226
+ ],
227
+ "changedFiles": [],
228
+ "testsAddedOrUpdated": [],
229
+ "commandsRun": [
230
+ {
231
+ "command": "read/grep inspection of recon, builtin agent markdown, runtime discovery/tool planning code, package scripts, README, skill references, and unit tests",
232
+ "result": "passed",
233
+ "summary": "Verified Phase 0 ownership, current defaults, strict tool behavior, bridge injection, test runner, and generated-asset copy mechanism."
234
+ },
235
+ {
236
+ "command": "git status --short / git diff",
237
+ "result": "not-run",
238
+ "summary": "No shell tool is available in this planning session; the plan requires a baseline dirty-diff capture before implementation."
239
+ }
240
+ ],
241
+ "validationOutput": [
242
+ "BUILTIN_AGENT_NAMES contains architect, builder, commentator, explorer, recapper, and researcher.",
243
+ "Only architect and recapper currently declare defaultContext: fork.",
244
+ "Builder statically requires contact_supervisor even though the bridge appends it only when active.",
245
+ "Researcher currently declares grep.app tools without the parser-required mcp: prefix.",
246
+ "Root copy-assets copies src/extensions into dist/extensions, while root build cleans dist and is unsafe for preserving existing dirty generated output."
247
+ ],
248
+ "residualRisks": [
249
+ "Current dirty artifacts and unrelated edits were not inspectable through git in this session; implementation must baseline and preserve them.",
250
+ "Researcher still depends on host MCP/web extension availability after the prefix correction.",
251
+ "Changing context defaults or granting commentator write capability requires separate product/architecture approval."
252
+ ],
253
+ "noStagedFiles": false,
254
+ "diffSummary": "No implementation was performed; this artifact is an implementation-ready Phase 0 plan.",
255
+ "reviewFindings": [
256
+ "high: skills/pi-subagents/references/prompting-and-roles.md and README.md contain duplicated/missing builtin roles and false output/capability descriptions.",
257
+ "high: constraints-and-recipes.md and execution-controls.md contradict builtin defaultContext frontmatter.",
258
+ "high: execution-controls.md and README.md contain stale .pi project discovery/root claims despite .selesai runtime configuration.",
259
+ "medium: agents/architect.md, agents/builder.md, and agents/researcher.md contain impossible or incorrectly routed tool instructions."
260
+ ],
261
+ "manualNotes": "Phase 0 is intentionally limited to correctness cleanup and synchronization. Policy-level delegation behavior changes are explicitly deferred."
262
+ }
263
+ ```
264
+
265
265
  ⧉ copy assistant: /cp e225dd