@selesai/code 0.9.9 → 0.9.11

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 (306) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/cli/args.js +13 -2
  3. package/dist/cli/args.test.js +8 -0
  4. package/dist/cli/credential-print.js +4 -4
  5. package/dist/cli.js +0 -0
  6. package/dist/core/agent-session-auto-handoff.test.js +24 -1
  7. package/dist/core/agent-session.d.ts +11 -4
  8. package/dist/core/agent-session.js +99 -39
  9. package/dist/core/compaction/branch-summarization.js +30 -30
  10. package/dist/core/compaction/compaction.js +81 -81
  11. package/dist/core/compaction/utils.js +2 -2
  12. package/dist/core/defaults.d.ts +1 -0
  13. package/dist/core/defaults.js +9 -0
  14. package/dist/core/export-html/template.css +1066 -1066
  15. package/dist/core/export-html/template.html +55 -55
  16. package/dist/core/export-html/template.js +1864 -1864
  17. package/dist/core/export-html/vendor/highlight.min.js +1212 -1212
  18. package/dist/core/export-html/vendor/marked.min.js +78 -78
  19. package/dist/core/extensions/loader.js +108 -35
  20. package/dist/core/extensions/loader.test.d.ts +1 -0
  21. package/dist/core/extensions/loader.test.js +21 -0
  22. package/dist/core/extensions/types.d.ts +12 -2
  23. package/dist/core/keybindings.d.ts +2 -2
  24. package/dist/core/messages.js +7 -7
  25. package/dist/core/model-resolver.d.ts +1 -0
  26. package/dist/core/model-resolver.js +10 -4
  27. package/dist/core/package-manager.js +4 -4
  28. package/dist/core/sdk.d.ts +5 -5
  29. package/dist/core/sdk.js +16 -4
  30. package/dist/core/settings-manager.d.ts +6 -0
  31. package/dist/core/settings-manager.js +22 -0
  32. package/dist/core/tools/bash.d.ts +18 -1
  33. package/dist/core/tools/bash.js +41 -23
  34. package/dist/core/tools/index.d.ts +4 -1
  35. package/dist/core/tools/index.js +9 -1
  36. package/dist/core/tools/powershell.d.ts +15 -0
  37. package/dist/core/tools/powershell.js +38 -0
  38. package/dist/core/tools/powershell.test.d.ts +1 -0
  39. package/dist/core/tools/powershell.test.js +20 -0
  40. package/dist/extensions/context-compaction-reminder.test.ts +82 -82
  41. package/dist/extensions/context-compaction-reminder.ts +28 -28
  42. package/dist/extensions/copy-turn.test.ts +24 -1
  43. package/dist/extensions/copy-turn.ts +6 -1
  44. package/dist/extensions/handoff-new.test.ts +15 -2
  45. package/dist/extensions/handoff-new.ts +44 -30
  46. package/dist/extensions/pi-intercom/LICENSE +21 -21
  47. package/dist/extensions/pi-intercom/broker/client.test.ts +83 -83
  48. package/dist/extensions/pi-intercom/broker/extension.test.ts +387 -387
  49. package/dist/extensions/pi-intercom/broker/framing.test.ts +114 -114
  50. package/dist/extensions/pi-intercom/broker/paths.test.ts +153 -153
  51. package/dist/extensions/pi-intercom/broker/paths.ts +134 -134
  52. package/dist/extensions/pi-intercom/broker/runtime-claim.test.ts +34 -34
  53. package/dist/extensions/pi-intercom/broker/runtime-claim.ts +21 -21
  54. package/dist/extensions/pi-intercom/cwd.test.ts +40 -40
  55. package/dist/extensions/pi-intercom/cwd.ts +31 -31
  56. package/dist/extensions/pi-intercom/extension-api.ts +44 -44
  57. package/dist/extensions/pi-intercom/format-context.test.ts +31 -31
  58. package/dist/extensions/pi-intercom/format-context.ts +32 -32
  59. package/dist/extensions/pi-intercom/test/overlay-width.test.ts +66 -66
  60. package/dist/extensions/pi-intercom/ui/compose.ts +143 -143
  61. package/dist/extensions/pi-intercom/ui/session-list.ts +166 -166
  62. package/dist/extensions/pi-powerline-footer/bash-mode/shell-session.ts +286 -286
  63. package/dist/extensions/pi-powerline-footer/bash-mode/transcript.ts +108 -108
  64. package/dist/extensions/pi-powerline-footer/separators.ts +57 -57
  65. package/dist/extensions/pi-powerline-footer/tests/session-usage.test.ts +47 -47
  66. package/dist/extensions/pi-powerline-footer/tests/tps.test.ts +39 -39
  67. package/dist/extensions/pi-powerline-footer/theme.example.json +24 -24
  68. package/dist/extensions/pi-powerline-footer/theme.json +12 -12
  69. package/dist/extensions/pi-powerline-footer/tps.ts +345 -345
  70. package/dist/extensions/pi-rewind-hook/README.md +245 -245
  71. package/dist/extensions/pi-rewind-hook/index.ts +1445 -1445
  72. package/dist/extensions/pi-rewind-hook/package.json +29 -29
  73. package/dist/extensions/pi-subagents/install.mjs +0 -0
  74. package/dist/extensions/pi-web-agent/package.json +31 -31
  75. package/dist/extensions/pi-web-agent/src/backends/config.ts +205 -205
  76. package/dist/extensions/pi-web-agent/src/backends/doctor.ts +136 -136
  77. package/dist/extensions/pi-web-agent/src/backends/factory.ts +152 -152
  78. package/dist/extensions/pi-web-agent/src/backends/settings-reader.ts +25 -25
  79. package/dist/extensions/pi-web-agent/src/cache/ttl-cache.ts +28 -28
  80. package/dist/extensions/pi-web-agent/src/changelog-notice.ts +136 -136
  81. package/dist/extensions/pi-web-agent/src/commands/web-agent-config.ts +946 -946
  82. package/dist/extensions/pi-web-agent/src/extension.ts +126 -126
  83. package/dist/extensions/pi-web-agent/src/extract/readability.ts +118 -118
  84. package/dist/extensions/pi-web-agent/src/fetch/browser-resolution.ts +199 -199
  85. package/dist/extensions/pi-web-agent/src/fetch/firecrawl-fetch.ts +100 -100
  86. package/dist/extensions/pi-web-agent/src/fetch/headless-fetch.ts +117 -117
  87. package/dist/extensions/pi-web-agent/src/fetch/http-fetch.ts +67 -67
  88. package/dist/extensions/pi-web-agent/src/orchestration/answer-synthesizer.ts +60 -60
  89. package/dist/extensions/pi-web-agent/src/orchestration/candidate-selector.ts +50 -50
  90. package/dist/extensions/pi-web-agent/src/orchestration/direct-url.ts +52 -52
  91. package/dist/extensions/pi-web-agent/src/orchestration/evidence-quality.ts +105 -105
  92. package/dist/extensions/pi-web-agent/src/orchestration/evidence-ranker.ts +45 -45
  93. package/dist/extensions/pi-web-agent/src/orchestration/index.ts +28 -28
  94. package/dist/extensions/pi-web-agent/src/orchestration/query-planner.ts +47 -47
  95. package/dist/extensions/pi-web-agent/src/orchestration/research-orchestrator.ts +376 -376
  96. package/dist/extensions/pi-web-agent/src/orchestration/research-types.ts +64 -64
  97. package/dist/extensions/pi-web-agent/src/orchestration/research-worker.ts +181 -181
  98. package/dist/extensions/pi-web-agent/src/orchestration/source-profile.ts +101 -101
  99. package/dist/extensions/pi-web-agent/src/orchestration/stop-decider.ts +81 -81
  100. package/dist/extensions/pi-web-agent/src/presentation/config-store.ts +210 -210
  101. package/dist/extensions/pi-web-agent/src/presentation/config.ts +75 -75
  102. package/dist/extensions/pi-web-agent/src/presentation/explore-presentation.ts +61 -61
  103. package/dist/extensions/pi-web-agent/src/presentation/fetch-presentation.ts +54 -54
  104. package/dist/extensions/pi-web-agent/src/presentation/search-presentation.ts +41 -41
  105. package/dist/extensions/pi-web-agent/src/presentation/select-view.ts +20 -20
  106. package/dist/extensions/pi-web-agent/src/presentation/types.ts +63 -63
  107. package/dist/extensions/pi-web-agent/src/search/brave.ts +114 -114
  108. package/dist/extensions/pi-web-agent/src/search/duckduckgo.ts +72 -72
  109. package/dist/extensions/pi-web-agent/src/search/searxng.ts +96 -96
  110. package/dist/extensions/pi-web-agent/src/tools/web-explore.ts +71 -71
  111. package/dist/extensions/pi-web-agent/src/tools/web-fetch-headless.ts +31 -31
  112. package/dist/extensions/pi-web-agent/src/tools/web-fetch.ts +31 -31
  113. package/dist/extensions/pi-web-agent/src/tools/web-search.ts +157 -157
  114. package/dist/extensions/pi-web-agent/src/types.ts +88 -88
  115. package/dist/extensions/ponytail/package.json +8 -8
  116. package/dist/extensions/question/batch.ts +103 -103
  117. package/dist/extensions/question/constants.ts +30 -30
  118. package/dist/extensions/question/helpers.ts +58 -58
  119. package/dist/extensions/question/navigation.ts +14 -14
  120. package/dist/extensions/question/package.json +19 -19
  121. package/dist/extensions/question/schemas.ts +43 -43
  122. package/dist/extensions/question/selection-mode.ts +46 -46
  123. package/dist/extensions/question/shortcuts.ts +44 -44
  124. package/dist/extensions/question/types.ts +132 -132
  125. package/dist/extensions/test-resolve-hook-impl.mjs +6 -6
  126. package/dist/extensions/test-resolve-hook.mjs +6 -6
  127. package/dist/extensions/web-agent-onboarding.ts +222 -222
  128. package/dist/extensions/workflow/package.json +17 -17
  129. package/dist/package-manager-cli.js +71 -71
  130. package/dist/rpc-entry.js +0 -0
  131. package/dist/skills/agent-browser/SKILL.md +52 -52
  132. package/dist/skills/batch-grill-me/SKILL.md +19 -19
  133. package/dist/skills/grill-me/SKILL.md +10 -10
  134. package/dist/skills/handoff/SKILL.md +16 -16
  135. package/dist/skills/handoff-text/SKILL.md +14 -14
  136. package/dist/skills/implanger/SKILL.md +69 -69
  137. package/dist/skills/improve-codebase/REFERENCE.md +78 -78
  138. package/dist/skills/improve-codebase/SKILL.md +178 -178
  139. package/dist/skills/planger/SKILL.md +166 -166
  140. package/dist/skills/ponytail/SKILL.md +116 -116
  141. package/dist/skills/ponytail-audit/SKILL.md +42 -42
  142. package/dist/skills/ponytail-debt/SKILL.md +45 -45
  143. package/dist/skills/ponytail-gain/SKILL.md +51 -51
  144. package/dist/skills/ponytail-help/SKILL.md +70 -70
  145. package/dist/skills/ponytail-review/SKILL.md +58 -58
  146. package/dist/skills/selesai-handoff/SKILL.md +20 -20
  147. package/dist/skills/workflow-creation/SKILL.md +73 -73
  148. package/dist/themes/powerline-footer/theme.json +33 -33
  149. package/dist/utils/shell.d.ts +3 -0
  150. package/dist/utils/shell.js +17 -5
  151. package/docs/compaction.md +396 -396
  152. package/docs/containerization.md +111 -111
  153. package/docs/development.md +71 -71
  154. package/docs/docs.json +164 -164
  155. package/docs/environment-variables.md +86 -86
  156. package/docs/index.md +83 -83
  157. package/docs/json.md +82 -82
  158. package/docs/models.md +502 -502
  159. package/docs/packages.md +227 -227
  160. package/docs/plans/subagent-delegation/phase-0-correctness.md +264 -264
  161. package/docs/plans/subagent-delegation/phase-1-behavioral-contract.md +485 -485
  162. package/docs/plans/subagent-delegation/phase-2-context-controls.md +281 -281
  163. package/docs/plans/subagent-delegation/phase-3-advisory-routing.md +361 -361
  164. package/docs/plans/subagent-delegation/phase-4-optional-enforcement.md +380 -380
  165. package/docs/prompt-templates.md +95 -95
  166. package/docs/providers.md +293 -293
  167. package/docs/sdk.md +1144 -1143
  168. package/docs/security.md +59 -59
  169. package/docs/session-format.md +414 -414
  170. package/docs/sessions.md +145 -145
  171. package/docs/shared-host-extensions.md +109 -109
  172. package/docs/shell-aliases.md +13 -13
  173. package/docs/skills.md +231 -231
  174. package/docs/terminal-setup.md +142 -142
  175. package/docs/termux.md +127 -127
  176. package/docs/themes.md +295 -295
  177. package/docs/tmux.md +63 -63
  178. package/docs/tui.md +927 -927
  179. package/docs/windows.md +17 -17
  180. package/examples/README.md +25 -25
  181. package/examples/extensions/README.md +211 -211
  182. package/examples/extensions/auto-commit-on-exit.ts +49 -49
  183. package/examples/extensions/bash-spawn-hook.ts +30 -30
  184. package/examples/extensions/bookmark.ts +50 -50
  185. package/examples/extensions/border-status-editor.ts +150 -150
  186. package/examples/extensions/built-in-tool-renderer.ts +249 -249
  187. package/examples/extensions/claude-rules.ts +86 -86
  188. package/examples/extensions/commands.ts +72 -72
  189. package/examples/extensions/confirm-destructive.ts +59 -59
  190. package/examples/extensions/custom-compaction.ts +130 -130
  191. package/examples/extensions/custom-footer.ts +64 -64
  192. package/examples/extensions/custom-header.ts +73 -73
  193. package/examples/extensions/custom-provider-anthropic/index.ts +610 -610
  194. package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -24
  195. package/examples/extensions/custom-provider-anthropic/package.json +19 -19
  196. package/examples/extensions/custom-provider-gitlab-duo/index.ts +404 -404
  197. package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -16
  198. package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -82
  199. package/examples/extensions/dirty-repo-guard.ts +56 -56
  200. package/examples/extensions/doom-overlay/README.md +46 -46
  201. package/examples/extensions/doom-overlay/doom/build/doom.js +21 -21
  202. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  203. package/examples/extensions/doom-overlay/doom/build.sh +152 -152
  204. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -72
  205. package/examples/extensions/doom-overlay/doom-component.ts +132 -132
  206. package/examples/extensions/doom-overlay/doom-engine.ts +173 -173
  207. package/examples/extensions/doom-overlay/doom-keys.ts +104 -104
  208. package/examples/extensions/doom-overlay/index.ts +74 -74
  209. package/examples/extensions/doom-overlay/wad-finder.ts +51 -51
  210. package/examples/extensions/dynamic-resources/SKILL.md +8 -8
  211. package/examples/extensions/dynamic-resources/dynamic.json +79 -79
  212. package/examples/extensions/dynamic-resources/dynamic.md +5 -5
  213. package/examples/extensions/dynamic-resources/index.ts +15 -15
  214. package/examples/extensions/dynamic-tools.ts +74 -74
  215. package/examples/extensions/event-bus.ts +43 -43
  216. package/examples/extensions/file-trigger.ts +41 -41
  217. package/examples/extensions/git-checkpoint.ts +53 -53
  218. package/examples/extensions/git-merge-and-resolve.ts +115 -115
  219. package/examples/extensions/github-issue-autocomplete.ts +185 -185
  220. package/examples/extensions/gondolin/index.ts +531 -531
  221. package/examples/extensions/gondolin/package-lock.json +185 -185
  222. package/examples/extensions/gondolin/package.json +19 -19
  223. package/examples/extensions/handoff.ts +199 -199
  224. package/examples/extensions/hello.ts +26 -26
  225. package/examples/extensions/hidden-thinking-label.ts +53 -53
  226. package/examples/extensions/inline-bash.ts +94 -94
  227. package/examples/extensions/input-transform-streaming.ts +39 -39
  228. package/examples/extensions/input-transform.ts +43 -43
  229. package/examples/extensions/interactive-shell.ts +196 -196
  230. package/examples/extensions/mac-system-theme.ts +47 -47
  231. package/examples/extensions/message-renderer.ts +59 -59
  232. package/examples/extensions/minimal-mode.ts +426 -426
  233. package/examples/extensions/modal-editor.ts +85 -85
  234. package/examples/extensions/model-status.ts +31 -31
  235. package/examples/extensions/notify.ts +55 -55
  236. package/examples/extensions/overlay-qa-tests.ts +1450 -1450
  237. package/examples/extensions/overlay-test.ts +153 -153
  238. package/examples/extensions/permission-gate.ts +34 -34
  239. package/examples/extensions/pirate.ts +47 -47
  240. package/examples/extensions/plan-mode/README.md +66 -66
  241. package/examples/extensions/plan-mode/index.ts +390 -390
  242. package/examples/extensions/plan-mode/utils.ts +168 -168
  243. package/examples/extensions/preset.ts +436 -436
  244. package/examples/extensions/project-trust.ts +64 -64
  245. package/examples/extensions/prompt-customizer.ts +97 -97
  246. package/examples/extensions/protected-paths.ts +30 -30
  247. package/examples/extensions/provider-payload.ts +18 -18
  248. package/examples/extensions/qna.ts +122 -122
  249. package/examples/extensions/question.ts +285 -285
  250. package/examples/extensions/questionnaire.ts +448 -448
  251. package/examples/extensions/rainbow-editor.ts +88 -88
  252. package/examples/extensions/reload-runtime.ts +37 -37
  253. package/examples/extensions/rpc-demo.ts +118 -118
  254. package/examples/extensions/sandbox/index.ts +321 -321
  255. package/examples/extensions/sandbox/package-lock.json +92 -92
  256. package/examples/extensions/sandbox/package.json +19 -19
  257. package/examples/extensions/send-user-message.ts +97 -97
  258. package/examples/extensions/session-name.ts +27 -27
  259. package/examples/extensions/shutdown-command.ts +63 -63
  260. package/examples/extensions/snake.ts +343 -343
  261. package/examples/extensions/space-invaders.ts +560 -560
  262. package/examples/extensions/ssh.ts +220 -220
  263. package/examples/extensions/status-line.ts +32 -32
  264. package/examples/extensions/structured-output.ts +65 -65
  265. package/examples/extensions/subagent/README.md +175 -175
  266. package/examples/extensions/subagent/agents/planner.md +37 -37
  267. package/examples/extensions/subagent/agents/reviewer.md +35 -35
  268. package/examples/extensions/subagent/agents/scout.md +50 -50
  269. package/examples/extensions/subagent/agents/worker.md +24 -24
  270. package/examples/extensions/subagent/agents.ts +126 -126
  271. package/examples/extensions/subagent/index.ts +1015 -1015
  272. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -10
  273. package/examples/extensions/subagent/prompts/implement.md +10 -10
  274. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -9
  275. package/examples/extensions/summarize.ts +209 -209
  276. package/examples/extensions/system-prompt-header.ts +17 -17
  277. package/examples/extensions/tic-tac-toe.ts +1008 -1008
  278. package/examples/extensions/timed-confirm.ts +70 -70
  279. package/examples/extensions/titlebar-spinner.ts +58 -58
  280. package/examples/extensions/todo.ts +297 -297
  281. package/examples/extensions/tool-override.ts +144 -144
  282. package/examples/extensions/tools.ts +146 -146
  283. package/examples/extensions/trigger-compact.ts +50 -50
  284. package/examples/extensions/truncated-tool.ts +195 -195
  285. package/examples/extensions/widget-placement.ts +9 -9
  286. package/examples/extensions/with-deps/index.ts +32 -32
  287. package/examples/extensions/with-deps/package-lock.json +31 -31
  288. package/examples/extensions/with-deps/package.json +22 -22
  289. package/examples/extensions/working-indicator.ts +123 -123
  290. package/examples/extensions/working-message-test.ts +25 -25
  291. package/examples/rpc-extension-ui.ts +632 -632
  292. package/examples/sdk/01-minimal.ts +26 -26
  293. package/examples/sdk/02-custom-model.ts +53 -53
  294. package/examples/sdk/03-custom-prompt.ts +75 -75
  295. package/examples/sdk/04-skills.ts +55 -55
  296. package/examples/sdk/05-tools.ts +48 -48
  297. package/examples/sdk/06-extensions.ts +99 -99
  298. package/examples/sdk/07-context-files.ts +47 -47
  299. package/examples/sdk/08-prompt-templates.ts +51 -51
  300. package/examples/sdk/09-api-keys-and-oauth.ts +52 -52
  301. package/examples/sdk/10-settings.ts +53 -53
  302. package/examples/sdk/11-sessions.ts +52 -52
  303. package/examples/sdk/12-full-control.ts +79 -79
  304. package/examples/sdk/13-session-runtime.ts +67 -67
  305. package/examples/sdk/README.md +144 -144
  306. package/package.json +4 -4
@@ -1,179 +1,179 @@
1
- ---
2
- name: improve-codebase
3
- description: improve codebase quality
4
- disable-model-invocation: true
5
- ---
6
-
7
- # Improve Codebase Architecture
8
-
9
- Explore a codebase (or provided context) like an AI would. Surface architectural friction, identify deepening opportunities, and propose refactors as GitHub issue RFCs.
10
-
11
- The input is already provided inline. Do NOT describe or restate it — use it directly.
12
-
13
- ---
14
-
15
- ## Core Principle
16
-
17
- A **deep module** (John Ousterhout, "A Philosophy of Software Design") has a small interface hiding a large implementation.
18
-
19
- Your goal:
20
- - Reduce cognitive load
21
- - Collapse shallow abstractions
22
- - Move complexity behind stable boundaries
23
- - Improve testability at module boundaries
24
-
25
- ---
26
-
27
- ## Process
28
-
29
- ### 1. Explore the context
30
-
31
- Call the subagent tool with `{ agent: "explorer", task: "..." }` (do not pass a model) when possible.
32
-
33
- If the context is partial:
34
- - Infer surrounding architecture cautiously
35
- - Focus on local friction signals
36
- - Avoid blocking on missing information
37
-
38
- Explore organically. Do NOT follow rigid heuristics.
39
-
40
- Look for friction:
41
-
42
- - Does understanding one concept require jumping across multiple files or layers?
43
- - Are modules shallow (interface ≈ implementation complexity)?
44
- - Are “pure functions” extracted for testability, but orchestration is fragile?
45
- - Are modules tightly coupled through shared types or call sequences?
46
- - Are there hidden integration risks between layers?
47
- - What is hard or impossible to test from the outside?
48
-
49
- The friction you encounter IS the signal.
50
-
51
- ### 2. Identify candidate(s) and frame the problem
52
-
53
- Analyze the context and identify deepening opportunities.
54
-
55
- If the input clearly implies a specific target (file, module, diff, or instruction):
56
- - Select the most relevant candidate automatically
57
- - Do NOT present multiple options
58
- - Proceed directly to framing the problem space below
59
-
60
- If the input is ambiguous or spans multiple concerns:
61
- - Present a numbered list of candidates
62
-
63
- Each candidate must include:
64
-
65
- - **Cluster**
66
- Modules / files / concepts involved
67
-
68
- - **Why they're coupled**
69
- Shared types, execution flow, ownership of a concept
70
-
71
- - **Dependency category**
72
- Classify using `REFERENCE.md`:
73
- - In-process
74
- - Local-substitutable
75
- - Ports & adapters
76
- - True external
77
-
78
- - **Test impact**
79
- - Which tests become obsolete
80
- - What boundary tests would replace them
81
-
82
- Then ask:
83
- "Which of these would you like to explore?"
84
- Wait for user input before continuing.
85
-
86
- ---
87
-
88
- ### Problem framing (execute immediately if a candidate is selected or inferred)
89
-
90
- Explain the selected candidate clearly:
91
-
92
- - Constraints a new interface must satisfy
93
- - Dependencies it must handle
94
- - What complexity needs to be hidden
95
-
96
- Include a small illustrative code sketch to make constraints concrete.
97
- This is NOT a proposal.
98
-
99
- After writing this, immediately proceed to Step 5: Design multiple interfaces.
100
-
101
- ### 5. Design multiple interfaces
102
-
103
- Spawn 3+ sub-agents in parallel using the subagent tool (`tasks: [...]`).
104
-
105
- Each sub-agent gets:
106
- - A focused technical brief derived from the provided context
107
- - Clear coupling + dependency context
108
- - A distinct design constraint
109
-
110
- Required variants:
111
-
112
- - Agent 1: Minimize interface (1–3 entry points max)
113
- - Agent 2: Maximize flexibility / extensibility
114
- - Agent 3: Optimize for the most common caller
115
- - Agent 4 (if relevant): Ports & adapters oriented design
116
- - ...
117
-
118
- ---
119
-
120
- ### Each sub-agent must output:
121
-
122
- 1. Interface signature (types, methods, params)
123
- 2. Usage example
124
- 3. Hidden complexity (what gets absorbed internally)
125
- 4. Dependency strategy (per `REFERENCE.md`)
126
- 5. Trade-offs
127
-
128
- ---
129
-
130
- ### Synthesis
131
-
132
- After all designs:
133
-
134
- - Compare approaches in prose
135
- - Highlight meaningful differences (not superficial ones)
136
- - Identify where each design wins/fails
137
-
138
- Then give a strong recommendation:
139
- - Pick the best design OR
140
- - Propose a hybrid
141
-
142
- Be opinionated.
143
-
144
- ---
145
-
146
- ### 6. User picks an interface (or accepts recommendation)
147
-
148
- ---
149
-
150
- ### 7. Create Branch
151
-
152
- Create a new branch for implementation.
153
-
154
- Branch name should reflect the domain concept being deepened.
155
-
156
- Examples:
157
- - deepen-payment-orchestration
158
- - deepen-map-rendering-pipeline
159
-
160
- ---
161
-
162
- ## Behavior Rules
163
-
164
- - Do NOT restate or summarize the provided input
165
- - Do NOT overfit to file structure — think in conceptual modules
166
- - Do NOT suggest incremental refactors — prefer boundary redefinition
167
- - Do NOT preserve bad abstractions — collapse aggressively
168
- - Prefer fewer, deeper modules over many shallow ones
169
- - Tests must move to the boundary, not remain internal
170
-
171
- ---
172
-
173
- ## Handling Incomplete Context
174
-
175
- - Make reasonable assumptions
176
- - State them explicitly
177
- - Continue without blocking
178
-
1
+ ---
2
+ name: improve-codebase
3
+ description: improve codebase quality
4
+ disable-model-invocation: true
5
+ ---
6
+
7
+ # Improve Codebase Architecture
8
+
9
+ Explore a codebase (or provided context) like an AI would. Surface architectural friction, identify deepening opportunities, and propose refactors as GitHub issue RFCs.
10
+
11
+ The input is already provided inline. Do NOT describe or restate it — use it directly.
12
+
13
+ ---
14
+
15
+ ## Core Principle
16
+
17
+ A **deep module** (John Ousterhout, "A Philosophy of Software Design") has a small interface hiding a large implementation.
18
+
19
+ Your goal:
20
+ - Reduce cognitive load
21
+ - Collapse shallow abstractions
22
+ - Move complexity behind stable boundaries
23
+ - Improve testability at module boundaries
24
+
25
+ ---
26
+
27
+ ## Process
28
+
29
+ ### 1. Explore the context
30
+
31
+ Call the subagent tool with `{ agent: "explorer", task: "..." }` (do not pass a model) when possible.
32
+
33
+ If the context is partial:
34
+ - Infer surrounding architecture cautiously
35
+ - Focus on local friction signals
36
+ - Avoid blocking on missing information
37
+
38
+ Explore organically. Do NOT follow rigid heuristics.
39
+
40
+ Look for friction:
41
+
42
+ - Does understanding one concept require jumping across multiple files or layers?
43
+ - Are modules shallow (interface ≈ implementation complexity)?
44
+ - Are “pure functions” extracted for testability, but orchestration is fragile?
45
+ - Are modules tightly coupled through shared types or call sequences?
46
+ - Are there hidden integration risks between layers?
47
+ - What is hard or impossible to test from the outside?
48
+
49
+ The friction you encounter IS the signal.
50
+
51
+ ### 2. Identify candidate(s) and frame the problem
52
+
53
+ Analyze the context and identify deepening opportunities.
54
+
55
+ If the input clearly implies a specific target (file, module, diff, or instruction):
56
+ - Select the most relevant candidate automatically
57
+ - Do NOT present multiple options
58
+ - Proceed directly to framing the problem space below
59
+
60
+ If the input is ambiguous or spans multiple concerns:
61
+ - Present a numbered list of candidates
62
+
63
+ Each candidate must include:
64
+
65
+ - **Cluster**
66
+ Modules / files / concepts involved
67
+
68
+ - **Why they're coupled**
69
+ Shared types, execution flow, ownership of a concept
70
+
71
+ - **Dependency category**
72
+ Classify using `REFERENCE.md`:
73
+ - In-process
74
+ - Local-substitutable
75
+ - Ports & adapters
76
+ - True external
77
+
78
+ - **Test impact**
79
+ - Which tests become obsolete
80
+ - What boundary tests would replace them
81
+
82
+ Then ask:
83
+ "Which of these would you like to explore?"
84
+ Wait for user input before continuing.
85
+
86
+ ---
87
+
88
+ ### Problem framing (execute immediately if a candidate is selected or inferred)
89
+
90
+ Explain the selected candidate clearly:
91
+
92
+ - Constraints a new interface must satisfy
93
+ - Dependencies it must handle
94
+ - What complexity needs to be hidden
95
+
96
+ Include a small illustrative code sketch to make constraints concrete.
97
+ This is NOT a proposal.
98
+
99
+ After writing this, immediately proceed to Step 5: Design multiple interfaces.
100
+
101
+ ### 5. Design multiple interfaces
102
+
103
+ Spawn 3+ sub-agents in parallel using the subagent tool (`tasks: [...]`).
104
+
105
+ Each sub-agent gets:
106
+ - A focused technical brief derived from the provided context
107
+ - Clear coupling + dependency context
108
+ - A distinct design constraint
109
+
110
+ Required variants:
111
+
112
+ - Agent 1: Minimize interface (1–3 entry points max)
113
+ - Agent 2: Maximize flexibility / extensibility
114
+ - Agent 3: Optimize for the most common caller
115
+ - Agent 4 (if relevant): Ports & adapters oriented design
116
+ - ...
117
+
118
+ ---
119
+
120
+ ### Each sub-agent must output:
121
+
122
+ 1. Interface signature (types, methods, params)
123
+ 2. Usage example
124
+ 3. Hidden complexity (what gets absorbed internally)
125
+ 4. Dependency strategy (per `REFERENCE.md`)
126
+ 5. Trade-offs
127
+
128
+ ---
129
+
130
+ ### Synthesis
131
+
132
+ After all designs:
133
+
134
+ - Compare approaches in prose
135
+ - Highlight meaningful differences (not superficial ones)
136
+ - Identify where each design wins/fails
137
+
138
+ Then give a strong recommendation:
139
+ - Pick the best design OR
140
+ - Propose a hybrid
141
+
142
+ Be opinionated.
143
+
144
+ ---
145
+
146
+ ### 6. User picks an interface (or accepts recommendation)
147
+
148
+ ---
149
+
150
+ ### 7. Create Branch
151
+
152
+ Create a new branch for implementation.
153
+
154
+ Branch name should reflect the domain concept being deepened.
155
+
156
+ Examples:
157
+ - deepen-payment-orchestration
158
+ - deepen-map-rendering-pipeline
159
+
160
+ ---
161
+
162
+ ## Behavior Rules
163
+
164
+ - Do NOT restate or summarize the provided input
165
+ - Do NOT overfit to file structure — think in conceptual modules
166
+ - Do NOT suggest incremental refactors — prefer boundary redefinition
167
+ - Do NOT preserve bad abstractions — collapse aggressively
168
+ - Prefer fewer, deeper modules over many shallow ones
169
+ - Tests must move to the boundary, not remain internal
170
+
171
+ ---
172
+
173
+ ## Handling Incomplete Context
174
+
175
+ - Make reasonable assumptions
176
+ - State them explicitly
177
+ - Continue without blocking
178
+
179
179
  Do NOT ask for more information unless absolutely necessary.
@@ -1,166 +1,166 @@
1
- ---
2
- name: planger
3
- description: Create decomposed planning for sub agent
4
- argument-hint: "How i provide a good plan for subagent"
5
- disable-model-invocation: true
6
- ---
7
-
8
- # Planning Skill
9
-
10
- ## Goal
11
-
12
- Create implementation plans that can be executed by a small coding model with:
13
-
14
- - Limited context window
15
- - No project knowledge
16
- - No memory of previous conversation
17
- - Weak architectural understanding
18
- - No ability to infer missing steps
19
-
20
- Assume the executor only knows what is written in the plan.
21
-
22
- # Core Principles
23
-
24
- ## Discovery First
25
-
26
- Never assume:
27
-
28
- - File names
29
- - File locations
30
- - Ownership of behavior
31
- - Existing abstractions
32
- - Existing utilities
33
-
34
- If the code has not been inspected, the plan must begin with discovery.
35
- You research the codebase (using explore agent) → clarify with the user (using questions tool) → capture findings and decisions into a comprehensive plan. This iterative approach catches edge cases and non-obvious requirements BEFORE implementation begins.
36
-
37
- ## Simplicity First
38
-
39
- Prefer the smallest maintainable solution that satisfies the requirement.
40
-
41
- Avoid:
42
-
43
- - New abstractions
44
- - New services
45
- - New dependencies
46
- - Large refactors
47
- - Generic frameworks
48
- - Future-proofing for hypothetical requirements
49
-
50
- Choose the lowest-complexity solution that works.
51
-
52
- ## Reuse Before Build
53
-
54
- Before creating anything new (use explorer agent):
55
-
56
- - Search for existing implementations
57
- - Search for existing utilities
58
- - Search for existing patterns
59
- - Search for existing tests
60
-
61
- Reuse existing code when reasonable.
62
-
63
- Do not duplicate behavior unless duplication is clearly preferable.
64
-
65
- ## Scope Discipline
66
-
67
- Only modify code required for the task.
68
-
69
- Allowed:
70
-
71
- - Small cleanup in touched files
72
- - Remove unused imports
73
- - Remove obvious dead code
74
- - Improve nearby naming
75
-
76
- Not allowed:
77
-
78
- - Unrelated refactors
79
- - Architecture changes
80
- - Broad cleanup efforts
81
- - Dependency migrations
82
-
83
- # Task Structure
84
-
85
- Every implementation task must contain:
86
-
87
- ## 1. Discovery
88
-
89
- Describe:
90
-
91
- - What to search for
92
- - Where to search
93
- - How to identify relevant code
94
-
95
- Example:
96
-
97
- Search for:
98
-
99
- - Authorization
100
- - Bearer
101
- - Interceptor
102
- - Refresh token
103
-
104
- Inspect matching files and identify where authentication headers are attached.
105
-
106
- ## 2. Identification
107
-
108
- Describe:
109
-
110
- - Exact file(s) to modify
111
- - Why those files own the behavior
112
- - Why other files should not be modified
113
-
114
- ## 3. Change
115
-
116
- Describe:
117
-
118
- - Exact modification required
119
- - Functions/classes affected
120
- - Existing code to reuse
121
- - New code to add
122
- - Code explicitly not to add
123
-
124
- The executor should know exactly what to implement.
125
-
126
- ## 4. Verification
127
-
128
- Include:
129
-
130
- ### Success Cases
131
-
132
- Expected working behavior.
133
-
134
- ### Failure Cases
135
-
136
- Expected error behavior.
137
-
138
- ### Regression Checks
139
-
140
- Existing behavior that must remain unchanged.
141
-
142
- # Granularity Rule
143
-
144
- A task is too large if it can be split into smaller independently verifiable work.
145
-
146
- Keep decomposing until each task:
147
-
148
- - Has one objective
149
- - Has clear ownership
150
- - Can be implemented independently
151
- - Can be verified independently
152
-
153
- Prefer 5 small tasks over 1 large task.
154
-
155
- # Final Review
156
-
157
- Before returning a plan verify:
158
-
159
- - Discovery exists
160
- - Ownership is justified
161
- - Solution is the simplest acceptable approach
162
- - Existing code is reused when possible
163
- - No unnecessary abstractions are introduced
164
- - Scope remains limited
165
- - Verification is included
166
- - Every step is executable without additional assumptions
1
+ ---
2
+ name: planger
3
+ description: Create decomposed planning for sub agent
4
+ argument-hint: "How i provide a good plan for subagent"
5
+ disable-model-invocation: true
6
+ ---
7
+
8
+ # Planning Skill
9
+
10
+ ## Goal
11
+
12
+ Create implementation plans that can be executed by a small coding model with:
13
+
14
+ - Limited context window
15
+ - No project knowledge
16
+ - No memory of previous conversation
17
+ - Weak architectural understanding
18
+ - No ability to infer missing steps
19
+
20
+ Assume the executor only knows what is written in the plan.
21
+
22
+ # Core Principles
23
+
24
+ ## Discovery First
25
+
26
+ Never assume:
27
+
28
+ - File names
29
+ - File locations
30
+ - Ownership of behavior
31
+ - Existing abstractions
32
+ - Existing utilities
33
+
34
+ If the code has not been inspected, the plan must begin with discovery.
35
+ You research the codebase (using explore agent) → clarify with the user (using questions tool) → capture findings and decisions into a comprehensive plan. This iterative approach catches edge cases and non-obvious requirements BEFORE implementation begins.
36
+
37
+ ## Simplicity First
38
+
39
+ Prefer the smallest maintainable solution that satisfies the requirement.
40
+
41
+ Avoid:
42
+
43
+ - New abstractions
44
+ - New services
45
+ - New dependencies
46
+ - Large refactors
47
+ - Generic frameworks
48
+ - Future-proofing for hypothetical requirements
49
+
50
+ Choose the lowest-complexity solution that works.
51
+
52
+ ## Reuse Before Build
53
+
54
+ Before creating anything new (use explorer agent):
55
+
56
+ - Search for existing implementations
57
+ - Search for existing utilities
58
+ - Search for existing patterns
59
+ - Search for existing tests
60
+
61
+ Reuse existing code when reasonable.
62
+
63
+ Do not duplicate behavior unless duplication is clearly preferable.
64
+
65
+ ## Scope Discipline
66
+
67
+ Only modify code required for the task.
68
+
69
+ Allowed:
70
+
71
+ - Small cleanup in touched files
72
+ - Remove unused imports
73
+ - Remove obvious dead code
74
+ - Improve nearby naming
75
+
76
+ Not allowed:
77
+
78
+ - Unrelated refactors
79
+ - Architecture changes
80
+ - Broad cleanup efforts
81
+ - Dependency migrations
82
+
83
+ # Task Structure
84
+
85
+ Every implementation task must contain:
86
+
87
+ ## 1. Discovery
88
+
89
+ Describe:
90
+
91
+ - What to search for
92
+ - Where to search
93
+ - How to identify relevant code
94
+
95
+ Example:
96
+
97
+ Search for:
98
+
99
+ - Authorization
100
+ - Bearer
101
+ - Interceptor
102
+ - Refresh token
103
+
104
+ Inspect matching files and identify where authentication headers are attached.
105
+
106
+ ## 2. Identification
107
+
108
+ Describe:
109
+
110
+ - Exact file(s) to modify
111
+ - Why those files own the behavior
112
+ - Why other files should not be modified
113
+
114
+ ## 3. Change
115
+
116
+ Describe:
117
+
118
+ - Exact modification required
119
+ - Functions/classes affected
120
+ - Existing code to reuse
121
+ - New code to add
122
+ - Code explicitly not to add
123
+
124
+ The executor should know exactly what to implement.
125
+
126
+ ## 4. Verification
127
+
128
+ Include:
129
+
130
+ ### Success Cases
131
+
132
+ Expected working behavior.
133
+
134
+ ### Failure Cases
135
+
136
+ Expected error behavior.
137
+
138
+ ### Regression Checks
139
+
140
+ Existing behavior that must remain unchanged.
141
+
142
+ # Granularity Rule
143
+
144
+ A task is too large if it can be split into smaller independently verifiable work.
145
+
146
+ Keep decomposing until each task:
147
+
148
+ - Has one objective
149
+ - Has clear ownership
150
+ - Can be implemented independently
151
+ - Can be verified independently
152
+
153
+ Prefer 5 small tasks over 1 large task.
154
+
155
+ # Final Review
156
+
157
+ Before returning a plan verify:
158
+
159
+ - Discovery exists
160
+ - Ownership is justified
161
+ - Solution is the simplest acceptable approach
162
+ - Existing code is reused when possible
163
+ - No unnecessary abstractions are introduced
164
+ - Scope remains limited
165
+ - Verification is included
166
+ - Every step is executable without additional assumptions