@pi-unipi/unipi 3.0.0-alpha.2 → 3.0.0-alpha.21

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 (359) hide show
  1. package/CHANGELOG.md +292 -0
  2. package/README.md +8 -11
  3. package/docs/prefix-cache-architecture.md +14 -0
  4. package/package.json +22 -24
  5. package/packages/ask-user/README.md +55 -107
  6. package/packages/ask-user/ask-ui.ts +306 -732
  7. package/packages/ask-user/clipboard.ts +50 -0
  8. package/packages/ask-user/config.ts +74 -78
  9. package/packages/ask-user/package.json +2 -2
  10. package/packages/ask-user/questions.ts +151 -0
  11. package/packages/ask-user/skills/ask-user/SKILL.md +59 -133
  12. package/packages/ask-user/tools.ts +198 -432
  13. package/packages/autocomplete/package.json +1 -1
  14. package/packages/autocomplete/src/constants.ts +38 -43
  15. package/packages/autocomplete/src/sorting.ts +8 -0
  16. package/packages/background-tasks/package.json +2 -2
  17. package/packages/background-tasks/src/config.ts +0 -73
  18. package/packages/background-tasks/src/index.ts +20 -16
  19. package/packages/background-tasks/src/registry.ts +1 -171
  20. package/packages/background-tasks/src/types.ts +0 -32
  21. package/packages/btw/README.md +13 -56
  22. package/packages/btw/extensions/btw.ts +403 -1796
  23. package/packages/btw/package.json +5 -2
  24. package/packages/btw/skills/btw/SKILL.md +7 -143
  25. package/packages/compactor/README.md +56 -287
  26. package/packages/compactor/package.json +5 -9
  27. package/packages/compactor/skills/compactor/SKILL.md +13 -20
  28. package/packages/compactor/src/card.ts +90 -0
  29. package/packages/compactor/src/commands/index.ts +73 -130
  30. package/packages/compactor/src/compaction/compact-args.ts +5 -3
  31. package/packages/compactor/src/compaction/filter-noise.ts +1 -1
  32. package/packages/compactor/src/compaction/hooks.ts +487 -311
  33. package/packages/compactor/src/compaction/source.ts +178 -0
  34. package/packages/compactor/src/compaction/summarize.ts +586 -52
  35. package/packages/compactor/src/config/manager.ts +130 -127
  36. package/packages/compactor/src/config/schema.ts +32 -48
  37. package/packages/compactor/src/index.ts +40 -431
  38. package/packages/compactor/src/info-screen.ts +44 -190
  39. package/packages/compactor/src/session/recall-blocks.ts +1 -1
  40. package/packages/compactor/src/stats.ts +76 -0
  41. package/packages/compactor/src/tools/context-budget.ts +17 -34
  42. package/packages/compactor/src/tools/ctx-doctor.ts +45 -36
  43. package/packages/compactor/src/tools/register.ts +29 -269
  44. package/packages/compactor/src/types.ts +47 -186
  45. package/packages/core/README.md +25 -0
  46. package/packages/core/child-agent.ts +1 -0
  47. package/packages/core/command-echo.ts +63 -0
  48. package/packages/core/compaction-context.ts +41 -0
  49. package/packages/core/constants.ts +8 -38
  50. package/packages/core/events.ts +0 -53
  51. package/packages/core/fusion-status.ts +4 -0
  52. package/packages/core/global.d.ts +10 -0
  53. package/packages/core/harness-messages.ts +392 -0
  54. package/packages/core/index.ts +14 -0
  55. package/packages/core/kanboard-status.ts +49 -0
  56. package/packages/core/long-horizon-owner-status.ts +46 -0
  57. package/packages/core/model-cache.ts +81 -7
  58. package/packages/core/package.json +6 -3
  59. package/packages/core/src/attach/detect.ts +163 -0
  60. package/packages/core/src/child-agent/child-args.ts +31 -0
  61. package/packages/core/src/child-agent/delivery.ts +41 -0
  62. package/packages/core/src/child-agent/index.ts +5 -0
  63. package/packages/core/src/child-agent/readers.ts +203 -0
  64. package/packages/core/src/child-agent/runtime.ts +584 -0
  65. package/packages/core/src/evidence.ts +78 -0
  66. package/packages/core/src/hints/browser.ts +278 -0
  67. package/packages/core/src/hints/crab-data.ts +19 -0
  68. package/packages/core/src/hints/index.ts +865 -0
  69. package/packages/core/src/hints/lines.ts +607 -0
  70. package/packages/core/src/hints/store.ts +120 -0
  71. package/packages/core/src/jev/chatter.ts +24 -0
  72. package/packages/core/src/jev/settings.ts +177 -14
  73. package/packages/core/src/package-colors.ts +2 -0
  74. package/packages/core/src/settings/catalog.ts +39 -15
  75. package/packages/core/src/settings/engine.ts +48 -2
  76. package/packages/core/src/settings/hub.ts +83 -20
  77. package/packages/core/src/settings/open.ts +49 -0
  78. package/packages/core/src/settings/schema.ts +27 -7
  79. package/packages/core/src/tui/hub-kit.ts +18 -5
  80. package/packages/core/src/tui/kit.ts +198 -0
  81. package/packages/core/src/tui/progress.ts +73 -0
  82. package/packages/core/src/turn/arbiter.ts +290 -0
  83. package/packages/footer/README.md +4 -6
  84. package/packages/footer/package.json +3 -3
  85. package/packages/footer/src/glance-editor.ts +19 -11
  86. package/packages/footer/src/help.ts +1 -1
  87. package/packages/footer/src/index.ts +36 -3
  88. package/packages/footer/src/presets.ts +3 -4
  89. package/packages/footer/src/rendering/icons.ts +0 -20
  90. package/packages/footer/src/segments/compactor.ts +52 -142
  91. package/packages/footer/src/segments/status-ext.ts +0 -1
  92. package/packages/fusion/README.md +14 -4
  93. package/packages/fusion/package.json +4 -3
  94. package/packages/fusion/src/child-args.ts +1 -0
  95. package/packages/fusion/src/index.ts +161 -8
  96. package/packages/fusion/src/pi-settings.ts +57 -0
  97. package/packages/fusion/src/picker.ts +186 -51
  98. package/packages/fusion/src/preset.ts +56 -2
  99. package/packages/fusion/src/prompts.ts +1 -1
  100. package/packages/fusion/src/sidekick-runtime.ts +1 -420
  101. package/packages/fusion/src/tools.ts +107 -128
  102. package/packages/fusion/src/transcript.ts +27 -85
  103. package/packages/info-screen/package.json +2 -2
  104. package/packages/input-shortcuts/README.md +18 -30
  105. package/packages/input-shortcuts/package.json +2 -2
  106. package/packages/input-shortcuts/src/burst.ts +88 -0
  107. package/packages/input-shortcuts/src/chord-overlay.ts +20 -70
  108. package/packages/input-shortcuts/src/cleared-input.ts +97 -0
  109. package/packages/input-shortcuts/src/index.ts +99 -193
  110. package/packages/input-shortcuts/src/last-response.ts +40 -0
  111. package/packages/input-shortcuts/src/registers.ts +8 -23
  112. package/packages/input-shortcuts/src/types.ts +4 -16
  113. package/packages/input-shortcuts/src/undo-redo.ts +59 -47
  114. package/packages/kanboard/README.md +51 -47
  115. package/packages/kanboard/index.ts +293 -55
  116. package/packages/kanboard/package.json +8 -8
  117. package/packages/kanboard/skills/kanboard/SKILL.md +61 -27
  118. package/packages/kanboard/src/badges.ts +93 -0
  119. package/packages/kanboard/src/bin.ts +4 -2
  120. package/packages/kanboard/src/commands.ts +218 -84
  121. package/packages/kanboard/src/debug.ts +20 -0
  122. package/packages/kanboard/src/guard.ts +267 -109
  123. package/packages/kanboard/src/monitor.ts +330 -0
  124. package/packages/kanboard/src/notice-buffer.ts +74 -0
  125. package/packages/kanboard/src/progress.ts +27 -0
  126. package/packages/kanboard/src/reminders.ts +234 -0
  127. package/packages/kanboard/src/settings.ts +69 -15
  128. package/packages/kanboard/src/shapes.ts +5 -0
  129. package/packages/long-horizon/index.ts +190 -13
  130. package/packages/long-horizon/package.json +3 -3
  131. package/packages/long-horizon/src/commands.ts +103 -7
  132. package/packages/long-horizon/src/compaction-brief.ts +35 -0
  133. package/packages/long-horizon/src/engine/continuation.ts +84 -15
  134. package/packages/long-horizon/src/engine/goal-state.ts +64 -13
  135. package/packages/long-horizon/src/engine/nudge-stash.ts +71 -0
  136. package/packages/long-horizon/src/engine/ralph.ts +3 -2
  137. package/packages/long-horizon/src/engine/runaway.ts +68 -11
  138. package/packages/long-horizon/src/engine/verifier.ts +19 -0
  139. package/packages/long-horizon/src/gate.ts +37 -12
  140. package/packages/long-horizon/src/judge/resolve.ts +1 -0
  141. package/packages/long-horizon/src/owner.ts +35 -2
  142. package/packages/long-horizon/src/progress.ts +87 -0
  143. package/packages/long-horizon/src/prompts/goal.ts +1 -1
  144. package/packages/long-horizon/src/runtime.ts +172 -18
  145. package/packages/long-horizon/src/settings.ts +54 -39
  146. package/packages/long-horizon/src/tools/goal.ts +6 -0
  147. package/packages/long-horizon/src/tools/graph.ts +1 -1
  148. package/packages/long-horizon/src/tools/swarm.ts +3 -3
  149. package/packages/mcp/package.json +2 -2
  150. package/packages/memory/commands.ts +7 -2
  151. package/packages/memory/index.ts +210 -32
  152. package/packages/memory/package.json +3 -3
  153. package/packages/memory/save-session.ts +264 -0
  154. package/packages/memory/settings.ts +17 -0
  155. package/packages/memory/tools.ts +253 -203
  156. package/packages/notify/package.json +2 -2
  157. package/packages/skill-registry/README.md +53 -16
  158. package/packages/skill-registry/index.ts +230 -0
  159. package/packages/skill-registry/package.json +19 -8
  160. package/packages/skill-registry/src/editor.ts +206 -0
  161. package/packages/skill-registry/src/judge.ts +289 -0
  162. package/packages/skill-registry/src/registry.ts +87 -0
  163. package/packages/skill-registry/src/settings.ts +259 -0
  164. package/packages/skill-registry/src/vault.ts +80 -0
  165. package/packages/subagents/README.md +39 -119
  166. package/packages/subagents/package.json +6 -13
  167. package/packages/subagents/skills/subagents/SKILL.md +18 -42
  168. package/packages/subagents/src/agents.ts +213 -0
  169. package/packages/subagents/src/cards.ts +182 -0
  170. package/packages/subagents/src/index.ts +609 -1084
  171. package/packages/subagents/src/manager.ts +429 -0
  172. package/packages/subagents/src/profiles.ts +130 -0
  173. package/packages/subagents/src/transcript.ts +154 -0
  174. package/packages/subagents/src/ui.ts +389 -0
  175. package/packages/unipi/bundled.js +39756 -45569
  176. package/packages/unipi/index.ts +55 -10
  177. package/packages/updater/package.json +2 -2
  178. package/packages/utility/README.md +76 -69
  179. package/packages/utility/package.json +2 -2
  180. package/packages/utility/skills/image/SKILL.md +37 -0
  181. package/packages/utility/skills/utility/SKILL.md +17 -60
  182. package/packages/utility/src/answer/extract.ts +128 -0
  183. package/packages/utility/src/answer/index.ts +213 -0
  184. package/packages/utility/src/answer/reply.ts +133 -0
  185. package/packages/utility/src/answer/web.ts +167 -0
  186. package/packages/utility/src/attach/index.ts +205 -0
  187. package/packages/utility/src/commands.ts +38 -142
  188. package/packages/utility/src/diagnostics/engine.ts +50 -5
  189. package/packages/utility/src/image/index.ts +33 -0
  190. package/packages/utility/src/image/models.ts +221 -0
  191. package/packages/{image/src → utility/src/image}/recognize.ts +2 -2
  192. package/packages/utility/src/image/settings.ts +178 -0
  193. package/packages/{image/src/image-source.ts → utility/src/image/source.ts} +1 -1
  194. package/packages/utility/src/image/tools.ts +168 -0
  195. package/packages/utility/src/image/transports.ts +186 -0
  196. package/packages/utility/src/index.ts +68 -389
  197. package/packages/utility/src/lifecycle/cleanup.ts +116 -311
  198. package/packages/utility/src/rename/gate.ts +102 -0
  199. package/packages/utility/src/rename/index.ts +191 -0
  200. package/packages/utility/src/rename/session.ts +170 -0
  201. package/packages/utility/src/render/delegated.ts +285 -0
  202. package/packages/utility/src/render/harness.ts +683 -0
  203. package/packages/utility/src/render/parse.ts +156 -0
  204. package/packages/utility/src/render/pi-settings.ts +38 -0
  205. package/packages/utility/src/render/reply-bg.ts +307 -0
  206. package/packages/utility/src/render/simple.ts +724 -0
  207. package/packages/utility/src/render/spacing.ts +235 -0
  208. package/packages/utility/src/render/styled.ts +251 -0
  209. package/packages/utility/src/render/tools.ts +353 -0
  210. package/packages/utility/src/settings.ts +166 -233
  211. package/packages/utility/src/types.ts +1 -222
  212. package/packages/watchdog/index.ts +17 -6
  213. package/packages/watchdog/package.json +3 -3
  214. package/packages/watchdog/src/config.ts +3 -2
  215. package/packages/web-api/package.json +2 -2
  216. package/packages/workflow/README.md +3 -0
  217. package/packages/workflow/index.ts +0 -2
  218. package/packages/workflow/package.json +2 -2
  219. package/packages/workflow/src/permission/decide.ts +6 -4
  220. package/packages/workflow/src/permission/index.ts +17 -7
  221. package/packages/workflow/src/permission/settings.ts +39 -4
  222. package/packages/workflow/src/plan/index.ts +19 -4
  223. package/packages/background-tasks/extensions/delegate-child.ts +0 -1
  224. package/packages/background-tasks/src/context-parent-snapshot.ts +0 -142
  225. package/packages/background-tasks/src/context-token-budget.ts +0 -903
  226. package/packages/background-tasks/src/context-visible-conversation-v2.ts +0 -551
  227. package/packages/background-tasks/src/delegate/artifacts.ts +0 -487
  228. package/packages/background-tasks/src/delegate/budget.ts +0 -415
  229. package/packages/background-tasks/src/delegate/hook-contract-evidence.json +0 -18
  230. package/packages/background-tasks/src/delegate/hook-contract.ts +0 -154
  231. package/packages/background-tasks/src/delegate/launch.ts +0 -484
  232. package/packages/background-tasks/src/delegate/result-package.ts +0 -459
  233. package/packages/background-tasks/src/delegate/runner.ts +0 -430
  234. package/packages/background-tasks/src/delegate/seed.ts +0 -423
  235. package/packages/background-tasks/src/delegate/types.ts +0 -323
  236. package/packages/background-tasks/src/delegate-child-extension.ts +0 -978
  237. package/packages/background-tasks/src/delegate-extension.ts +0 -654
  238. package/packages/background-tasks/src/fixtures/delegate-context-incident.json +0 -17
  239. package/packages/compactor/skills/compactor-detail/SKILL.md +0 -116
  240. package/packages/compactor/skills/compactor-doctor/SKILL.md +0 -71
  241. package/packages/compactor/skills/compactor-stats/SKILL.md +0 -51
  242. package/packages/compactor/src/compaction/build-sections.ts +0 -76
  243. package/packages/compactor/src/compaction/extract/goals.ts +0 -36
  244. package/packages/compactor/src/compaction/extract/preferences.ts +0 -40
  245. package/packages/compactor/src/compaction/format.ts +0 -53
  246. package/packages/compactor/src/compaction/merge.ts +0 -143
  247. package/packages/compactor/src/config/presets.ts +0 -160
  248. package/packages/compactor/src/executor/executor.ts +0 -233
  249. package/packages/compactor/src/executor/runtime.ts +0 -115
  250. package/packages/compactor/src/security/evaluator.ts +0 -89
  251. package/packages/compactor/src/security/policy.ts +0 -96
  252. package/packages/compactor/src/security/scanner.ts +0 -65
  253. package/packages/compactor/src/session/auto-inject.ts +0 -60
  254. package/packages/compactor/src/session/db.ts +0 -325
  255. package/packages/compactor/src/session/extract.ts +0 -144
  256. package/packages/compactor/src/session/resume-inject.ts +0 -64
  257. package/packages/compactor/src/session/snapshot.ts +0 -327
  258. package/packages/compactor/src/tools/ctx-batch-execute.ts +0 -41
  259. package/packages/compactor/src/tools/ctx-execute-file.ts +0 -23
  260. package/packages/compactor/src/tools/ctx-execute.ts +0 -23
  261. package/packages/compactor/src/tools/ctx-stats.ts +0 -96
  262. package/packages/image/README.md +0 -99
  263. package/packages/image/package.json +0 -61
  264. package/packages/image/skills/image/SKILL.md +0 -76
  265. package/packages/image/src/generate.ts +0 -256
  266. package/packages/image/src/index.ts +0 -135
  267. package/packages/image/src/models.ts +0 -519
  268. package/packages/image/src/openai-images-api.ts +0 -282
  269. package/packages/image/src/register-providers.ts +0 -209
  270. package/packages/image/src/settings.ts +0 -173
  271. package/packages/image/src/tools.ts +0 -326
  272. package/packages/input-shortcuts/src/clipboard.ts +0 -119
  273. package/packages/kanboard/src/runner.ts +0 -817
  274. package/packages/skill-registry/skills/auto/SKILL.md +0 -465
  275. package/packages/skill-registry/skills/brainstorm/SKILL.md +0 -219
  276. package/packages/skill-registry/skills/chore-create/SKILL.md +0 -315
  277. package/packages/skill-registry/skills/chore-execute/SKILL.md +0 -314
  278. package/packages/skill-registry/skills/consolidate/SKILL.md +0 -142
  279. package/packages/skill-registry/skills/consultant/SKILL.md +0 -97
  280. package/packages/skill-registry/skills/debug/SKILL.md +0 -228
  281. package/packages/skill-registry/skills/document/SKILL.md +0 -120
  282. package/packages/skill-registry/skills/fix/SKILL.md +0 -212
  283. package/packages/skill-registry/skills/gather-context/SKILL.md +0 -145
  284. package/packages/skill-registry/skills/plan/SKILL.md +0 -231
  285. package/packages/skill-registry/skills/quick-fix/SKILL.md +0 -135
  286. package/packages/skill-registry/skills/quick-work/SKILL.md +0 -110
  287. package/packages/skill-registry/skills/research/SKILL.md +0 -251
  288. package/packages/skill-registry/skills/review-work/SKILL.md +0 -187
  289. package/packages/skill-registry/skills/scan-issues/SKILL.md +0 -195
  290. package/packages/skill-registry/skills/work/SKILL.md +0 -218
  291. package/packages/skill-registry/skills/worktree-create/SKILL.md +0 -69
  292. package/packages/skill-registry/skills/worktree-list/SKILL.md +0 -78
  293. package/packages/skill-registry/skills/worktree-merge/SKILL.md +0 -89
  294. package/packages/subagents/agents/delegate.md +0 -14
  295. package/packages/subagents/agents/oracle.md +0 -78
  296. package/packages/subagents/agents/researcher.md +0 -52
  297. package/packages/subagents/agents/reviewer.md +0 -80
  298. package/packages/subagents/agents/scout.md +0 -50
  299. package/packages/subagents/agents/worker.md +0 -59
  300. package/packages/subagents/prompts/council.md +0 -48
  301. package/packages/subagents/prompts/gather-context-and-clarify.md +0 -13
  302. package/packages/subagents/prompts/parallel-cleanup.md +0 -59
  303. package/packages/subagents/prompts/parallel-research.md +0 -50
  304. package/packages/subagents/prompts/parallel-review.md +0 -54
  305. package/packages/subagents/prompts/review-loop.md +0 -43
  306. package/packages/subagents/skills/council-mode/SKILL.md +0 -230
  307. package/packages/subagents/skills/subagents/references/constraints-and-recipes.md +0 -259
  308. package/packages/subagents/skills/subagents/references/execution-controls.md +0 -454
  309. package/packages/subagents/skills/subagents/references/management-authoring-rpc.md +0 -161
  310. package/packages/subagents/skills/subagents/references/multi-lane-orchestration.md +0 -39
  311. package/packages/subagents/skills/subagents/references/prompting-and-roles.md +0 -267
  312. package/packages/subagents/src/acceptance.ts +0 -331
  313. package/packages/subagents/src/agent-manager.ts +0 -405
  314. package/packages/subagents/src/agent-memory.ts +0 -300
  315. package/packages/subagents/src/agent-overrides.ts +0 -183
  316. package/packages/subagents/src/agent-runner.ts +0 -271
  317. package/packages/subagents/src/async-runner.ts +0 -422
  318. package/packages/subagents/src/authority-policy.ts +0 -47
  319. package/packages/subagents/src/budgets.ts +0 -285
  320. package/packages/subagents/src/child-safety.ts +0 -140
  321. package/packages/subagents/src/config.ts +0 -249
  322. package/packages/subagents/src/conversation-viewer.ts +0 -281
  323. package/packages/subagents/src/core-compat.ts +0 -94
  324. package/packages/subagents/src/custom-agents.ts +0 -343
  325. package/packages/subagents/src/file-system-retry.ts +0 -50
  326. package/packages/subagents/src/fleet-data.ts +0 -105
  327. package/packages/subagents/src/fleet-view.ts +0 -322
  328. package/packages/subagents/src/foreground-detach.ts +0 -59
  329. package/packages/subagents/src/fork-context.ts +0 -285
  330. package/packages/subagents/src/global.d.ts +0 -7
  331. package/packages/subagents/src/guide.ts +0 -129
  332. package/packages/subagents/src/mission-state.ts +0 -133
  333. package/packages/subagents/src/mission-store.ts +0 -436
  334. package/packages/subagents/src/output-limits.ts +0 -142
  335. package/packages/subagents/src/parity-types.ts +0 -315
  336. package/packages/subagents/src/pi-args.ts +0 -167
  337. package/packages/subagents/src/result-files.ts +0 -232
  338. package/packages/subagents/src/result-watcher.ts +0 -221
  339. package/packages/subagents/src/retained-children.ts +0 -176
  340. package/packages/subagents/src/run-fanout-budget.ts +0 -356
  341. package/packages/subagents/src/scheduled-runs.ts +0 -349
  342. package/packages/subagents/src/schemas.ts +0 -263
  343. package/packages/subagents/src/slash-commands.ts +0 -80
  344. package/packages/subagents/src/supervisor-channel.ts +0 -249
  345. package/packages/subagents/src/tool-handler.ts +0 -1144
  346. package/packages/subagents/src/types.ts +0 -238
  347. package/packages/subagents/src/widget.ts +0 -457
  348. package/packages/subagents/src/workflow-script.ts +0 -737
  349. package/packages/subagents/src/workflow-worker.ts +0 -384
  350. package/packages/subagents/src/worktree.ts +0 -614
  351. package/packages/utility/src/analytics/collector.ts +0 -293
  352. package/packages/utility/src/info-screen.ts +0 -80
  353. package/packages/utility/src/lifecycle/process.ts +0 -162
  354. package/packages/utility/src/prefix-cache.ts +0 -263
  355. package/packages/utility/src/skill-discovery.ts +0 -542
  356. package/packages/utility/src/tools/env.ts +0 -113
  357. package/packages/utility/src/tui/name-badge-state.ts +0 -315
  358. package/packages/utility/src/tui/name-badge.ts +0 -109
  359. /package/packages/{subagents/src → core/src/child-agent}/pi-spawn.ts +0 -0
@@ -1,195 +0,0 @@
1
- ---
2
- name: scan-issues
3
- description: "Passive codebase scan — find potential bugs, anti-patterns, security issues. Spawns subagents if available."
4
- ---
5
-
6
- # Scanning for Issues
7
-
8
- Passive investigation of codebase to find potential bugs, anti-patterns, security issues, and technical debt.
9
-
10
- ## Boundaries
11
-
12
- **This skill MAY:** read codebase, run read-only analysis commands, spawn subagents, write findings.
13
- **This skill MAY NOT:** edit code, fix issues, run tests that modify state, deploy.
14
-
15
- **This is investigation only — not fixing.**
16
-
17
- **Note:** For active debugging of specific bugs, use `the debug step` instead. scan-issues finds potential problems; debug diagnoses known issues.
18
-
19
- ## Command Format
20
-
21
- ```
22
- the issue scan <string(greedy)>(optional)
23
- ```
24
-
25
- - `string(greedy)` — optional scope (e.g., "focus on auth", "check for SQL injection", "find dead code")
26
- - If not provided → full codebase scan
27
- - Read-only sandbox
28
- - Spawns subagents if `@unipi/subagents` extension is installed
29
-
30
- ---
31
-
32
- ## Process
33
-
34
- ### Phase 1: Determine Scope
35
-
36
- **If scope provided:**
37
- 1. Parse the focus area
38
- 2. Determine scan type:
39
- - Security scan
40
- - Bug hunt
41
- - Anti-pattern detection
42
- - Tech debt assessment
43
- - Performance issues
44
-
45
- **If no scope:**
46
- 1. Ask user what to focus on, or
47
- 2. Run broad scan covering all categories
48
-
49
- **Exit:** Scope defined.
50
-
51
- ### Phase 2: Deep Investigation
52
-
53
- If subagents available:
54
- 1. Spawn parallel subagents for different scan types
55
- 2. Each subagent investigates independently
56
- 3. Collect findings from all subagents
57
-
58
- If no subagents:
59
- 1. Investigate sequentially
60
- 2. Use grep, find, read commands
61
- 3. Build findings incrementally
62
-
63
- **Scan categories:**
64
-
65
- **Security:**
66
- - Hardcoded secrets/credentials
67
- - SQL injection vulnerabilities
68
- - XSS vulnerabilities
69
- - Insecure dependencies
70
- - Missing input validation
71
- - Exposed sensitive data
72
-
73
- **Bugs:**
74
- - Null/undefined handling
75
- - Race conditions
76
- - Error handling gaps
77
- - Edge cases missed
78
- - Logic errors
79
- - Off-by-one errors
80
-
81
- **Anti-patterns:**
82
- - Code duplication
83
- - God objects/functions
84
- - Circular dependencies
85
- - Tight coupling
86
- - Magic numbers/strings
87
- - Inconsistent patterns
88
-
89
- **Tech debt:**
90
- - TODO/FIXME comments
91
- - Deprecated API usage
92
- - Outdated dependencies
93
- - Dead code
94
- - Missing tests
95
- - Poor naming
96
-
97
- **Performance:**
98
- - N+1 queries
99
- - Unnecessary re-renders
100
- - Large bundle imports
101
- - Missing caching
102
- - Inefficient algorithms
103
-
104
- **Exit:** Findings collected.
105
-
106
- ### Phase 3: Categorize & Prioritize
107
-
108
- Organize findings by severity:
109
-
110
- **Critical (P0):**
111
- - Security vulnerabilities
112
- - Data loss risks
113
- - Production-breaking bugs
114
-
115
- **High (P1):**
116
- - Significant bugs
117
- - Major anti-patterns
118
- - Performance bottlenecks
119
-
120
- **Medium (P2):**
121
- - Minor bugs
122
- - Tech debt
123
- - Code smells
124
-
125
- **Low (P3):**
126
- - Style issues
127
- - Minor improvements
128
- - Nice-to-haves
129
-
130
- ### Phase 4: Present Findings
131
-
132
- ```markdown
133
- ## Issue Scan Results
134
-
135
- ### Critical (P0)
136
- - {Finding} — {file:line} — {description}
137
-
138
- ### High (P1)
139
- - {Finding} — {file:line} — {description}
140
-
141
- ### Medium (P2)
142
- - {Finding} — {file:line} — {description}
143
-
144
- ### Low (P3)
145
- - {Finding} — {file:line} — {description}
146
-
147
- ### Summary
148
- - Total issues: {count}
149
- - Critical: {count}
150
- - High: {count}
151
- - Medium: {count}
152
- - Low: {count}
153
- ```
154
-
155
- ### Phase 5: Handoff
156
-
157
- Based on findings:
158
-
159
- **If critical issues found:**
160
- > "Critical issues found. Recommend addressing immediately."
161
- ```
162
- a quick work pass "fix critical security issue in auth.ts"
163
- ```
164
-
165
- **If many issues:**
166
- > "Multiple issues found. Consider planning a cleanup sprint."
167
- ```
168
- the brainstorm skill "tech debt cleanup plan"
169
- ```
170
-
171
- **If few/no issues:**
172
- > "Codebase looks healthy. No critical issues found."
173
- ```
174
- the consolidate step
175
- ```
176
-
177
- ---
178
-
179
- ## Notes
180
-
181
- - Investigation only — findings are reported, not fixed
182
- - Subagent support enables parallel scanning when available
183
- - Can focus on specific categories or scan broadly
184
- - Prioritized findings help triage what to fix first
185
- - Natural lead-in to quick-work (for critical) or brainstorm (for planned cleanup)
186
-
187
- ## Differences from debug
188
-
189
- | Aspect | `the issue scan` | `the debug step` |
190
- |--------|----------------------|----------------|
191
- | Purpose | Find potential issues | Investigate specific bug |
192
- | Input | Scope / category | Bug report / error message |
193
- | Output | Issue list with priorities | Debug report with root cause |
194
- | Depth | Broad codebase scan | Deep single-issue analysis |
195
- | Handoff | `a quick work pass` or `the brainstorm skill` | `the fix step` |
@@ -1,218 +0,0 @@
1
- ---
2
- name: work
3
- description: "Execute plan — implement tasks, test, commit on done. Works in worktree or on main branch. Resumable."
4
- ---
5
-
6
- # Executing Plans
7
-
8
- Load plan, review critically, execute tasks, commit when complete.
9
-
10
- ## Boundaries
11
-
12
- **This skill MAY:** read/write code, read/write the project's `docs/`, run tests, commit, create worktree.
13
- **This skill MAY NOT:** merge branches, deploy.
14
-
15
- **Worktree vs Main:**
16
- - If `workbranch` in plan → work within worktree directory
17
- - If `workbranch` empty → work directly on main branch (current directory)
18
-
19
- ## Command Format
20
-
21
- ```
22
- the implementation step worktree:<branch>(optional) specs:<path>(multiple,optional) <string(greedy)>(optional)
23
- ```
24
-
25
- - `worktree:<branch>` — branch to work on (auto-suggested, agent asks if not provided)
26
- - `specs:<path>` — plan(s) to execute (auto-suggested, agent asks if not provided)
27
- - `string(greedy)` — scope guidance (e.g., "only task 1 and 2")
28
- - **Recommended: new session** — this command switches pi's internal worktree
29
-
30
- ## Sandbox
31
-
32
- - **Read/Write:** full access within worktree (or project root if on main)
33
- - **Write:** `docs/` in the project for progress tracking (Create the folder if it does not exist — it is an ordinary project folder, not a unipi store.)
34
-
35
- ---
36
-
37
- ## Phase 1: Resolve Args
38
-
39
- 1. **Specs:**
40
- - If `specs:` arg provided, read those plan files
41
- - If not, list available plans in `docs/plans/` and ask user
42
- - Can select multiple
43
-
44
- 2. **Read `workbranch` from plan frontmatter:**
45
- - If `workbranch:` is **non-empty** → use that branch/worktree
46
- - If worktree arg also provided → use worktree arg (override)
47
- - Create worktree if not exists: `git worktree add .unipi/worktrees/{branch} -b {branch}`
48
- - Work within worktree directory
49
- - If `workbranch:` is **empty or missing** → work on current branch (main)
50
- - No worktree creation needed
51
- - Edit files directly in project root
52
- - If neither plan nor args specify branch → ask user:
53
- > "Where should this work happen?"
54
- > 1. Current branch (main)
55
- > 2. New worktree (provide branch name)
56
-
57
- 3. **Scope:**
58
- - If `string(greedy)` provided, use to scope tasks
59
- - Otherwise execute all incomplete tasks
60
-
61
- **Exit:** Branch/worktree resolved. Plan(s) loaded. Scope defined.
62
-
63
- ---
64
-
65
- ## Phase 2: Review Plan
66
-
67
- 1. Read plan file(s)
68
- 2. Review critically — identify questions or concerns
69
- 3. If concerns: raise with user before starting
70
- 4. Identify task status: `unstarted:` (pending), `in-progress:` (started), `completed:` (done), `failed:` (needs investigation), `awaiting_user:` (needs user action), `blocked:` (waiting on dependency), `skipped:` (deferred)
71
-
72
- **Exit:** Plan reviewed, ready to execute.
73
-
74
- ### Ralph Loop Decision
75
-
76
- Count the non-completed tasks (`unstarted:`, `in-progress:`, `failed:`). If you have the `ralph_start` tool available and 3+ non-trivial tasks remain, consider a ralph loop for resilience:
77
-
78
- ```
79
- ralph_start({
80
- name: "{plan-topic}",
81
- taskContent: "# {Plan Title}\n\n{overview}\n\n## Goals\n- {goal1}\n- {goal2}\n\n## Checklist\n- [ ] {task1}\n- [ ] {task2}\n- [ ] {task3}",
82
- maxIterations: 50,
83
- itemsPerIteration: 2,
84
- reflectEvery: 5
85
- })
86
- ```
87
-
88
- **To skip:** Just proceed to Phase 3 and execute tasks directly. Ralph is a helper, not a requirement.
89
-
90
- ---
91
-
92
- ## Phase 3: Execute Tasks
93
-
94
- For each task in order, skip `completed:`, `skipped:`, and `awaiting_user:` tasks:
95
-
96
- ### If `unstarted:`
97
- 1. Change `unstarted:` to `in-progress:` in plan
98
- 2. Follow each step exactly (plan has bite-sized steps)
99
- 3. Run verifications as specified in acceptance criteria
100
- 4. Change `in-progress:` to `completed:` when complete
101
- 5. Update plan file with progress
102
-
103
- ### If `in-progress:`
104
- 1. Continue from where it left off
105
- 2. Follow remaining steps
106
- 3. Change to `completed:` when done
107
-
108
- ### If `failed:`
109
- 1. Read failure notes
110
- 2. Investigate root cause
111
- 3. Fix and re-verify
112
- 4. Change to `completed:` when fixed, or keep `failed:` if still broken
113
-
114
- ### If `awaiting_user:`
115
- 1. Remind user what's needed
116
- 2. Wait for user response
117
- 3. Resume when user provides input
118
-
119
- ### If `blocked:`
120
- 1. Check if blocker is resolved
121
- 2. If resolved → change to `unstarted:` and continue
122
- 3. If still blocked → skip and move to next task
123
-
124
- ### When to Stop and Ask
125
-
126
- **STOP immediately when:**
127
- - Hit blocker (missing dependency, test fails, instruction unclear)
128
- - Plan has critical gaps
129
- - You don't understand an instruction
130
- - Verification fails repeatedly
131
-
132
- Ask for clarification rather than guessing.
133
-
134
- ### When to Revisit Earlier Steps
135
-
136
- **Return to review when:**
137
- - Partner updates plan based on feedback
138
- - Fundamental approach needs rethinking
139
-
140
- Don't force through blockers — stop and ask.
141
-
142
- ---
143
-
144
- ## Phase 4: Commit Progress
145
-
146
- After each task or group of tasks:
147
- 1. Stage changes
148
- 2. Commit with descriptive message referencing task name
149
- 3. Continue to next task
150
-
151
- Don't wait until end to commit — incremental commits are safer.
152
-
153
- ---
154
-
155
- ## Phase 5: Complete
156
-
157
- When all tasks are `completed:`:
158
-
159
- 1. Run final verification (tests, lint, build)
160
- 2. Commit all remaining changes
161
- 3. If using a ralph loop, emit `COMPLETE` and call `ralph_done` to cleanly exit
162
- 4. Inform user based on branch strategy:
163
-
164
- **If working in worktree:**
165
- > "All tasks complete. Worktree: `{branch}`. Recommend reviewing before merge."
166
-
167
- If `ask_user` is available, offer an automatic handoff:
168
- ```ts
169
- ask_user({
170
- question: "Review this work now?",
171
- options: [
172
- {
173
- label: "Proceed to the review step",
174
- description: "Review before merge",
175
- value: "review",
176
- action: "new_session",
177
- prefill: "the review step plan:<plan-path>",
178
- },
179
- { label: "Done for now", value: "done", action: "end_turn" },
180
- ],
181
- allowFreeform: false,
182
- })
183
- ```
184
- Copyable fallback:
185
- ```
186
- the review step plan:<plan-path>
187
- ```
188
- **Recommend starting a new session** for review; the ask_user launcher can compact/direct queue the command.
189
-
190
- **If working on main branch:**
191
- > "All tasks complete. All changes committed directly on main."
192
-
193
- If `ask_user` is available, offer the same review handoff with `prefill: "the review step plan:<plan-path>"`. Copyable fallback:
194
- ```
195
- the review step plan:<plan-path>
196
- ```
197
- No merge needed — changes already on main.
198
-
199
- ---
200
-
201
- ## Resumability
202
-
203
- If user runs `the implementation step` and plan has `completed:` or `in-progress:` tasks:
204
- 1. Read plan
205
- 2. Identify first `unstarted:` task
206
- 3. Ask user: "Resume from Task N: {name}?"
207
- 4. Continue from there
208
-
209
- If user provides scope string, only execute matching tasks.
210
-
211
- ---
212
-
213
- ## Notes
214
-
215
- - Agent reads plan on start — finds what's incomplete
216
- - Worktree: changes don't affect main branch until merge (skip for small tasks)
217
- - Main branch: changes committed directly, no merge needed
218
- - Each worktree session is independent — no coordination with other worktrees
@@ -1,69 +0,0 @@
1
- ---
2
- name: worktree-create
3
- description: "Create git worktree for parallel work. Agent-driven naming."
4
- ---
5
-
6
- # Creating Worktrees
7
-
8
- Create a git worktree for isolated parallel work.
9
-
10
- ## Boundaries
11
-
12
- **This skill MAY:** run git worktree commands, ask user for branch name, suggest names.
13
- **This skill MAY NOT:** edit code, run tests, implement features.
14
-
15
- ## Command Format
16
-
17
- ```
18
- the implementation steptree-create <string(greedy)>
19
- ```
20
-
21
- - `string(greedy)` — description or desired branch name
22
- - Agent asks user for exact name or suggests based on description
23
-
24
- ---
25
-
26
- ## Process
27
-
28
- ### Phase 1: Parse Input
29
-
30
- 1. Read the string input
31
- 2. Assess if it's a branch name or a description:
32
- - Branch name: `feat/auth`, `fix/login-bug` → use directly
33
- - Description: "add user authentication" → suggest name
34
-
35
- ### Phase 2: Name Resolution
36
-
37
- **If clear branch name:**
38
- > "Creating worktree on branch `feat/auth`. Confirm?"
39
-
40
- **If description:**
41
- > "Based on your description, I suggest: `feat/user-auth`. What name would you like?"
42
-
43
- Let user confirm or provide different name.
44
-
45
- ### Phase 3: Create Worktree
46
-
47
- 1. Check if branch already exists (local or remote)
48
- 2. If exists: ask user if they want to reuse or create new
49
- 3. Create worktree:
50
- ```bash
51
- git worktree add .unipi/worktrees/<branch> -b <branch>
52
- ```
53
- 4. Verify creation succeeded
54
-
55
- ### Phase 4: Confirm
56
-
57
- Report:
58
- > "Worktree created: `.unipi/worktrees/<branch>` (branch: `<branch>`)"
59
- > "To work in this worktree: `the implementation step worktree:<branch> specs:<plan>`"
60
-
61
- ---
62
-
63
- ## Notes
64
-
65
- - Worktrees stored in `.unipi/worktrees/` directory
66
- - Each worktree is a full working copy with its own branch
67
- - Multiple worktrees can exist for parallel work
68
- - Use `the implementation steptree-list` to see all worktrees
69
- - Use `the implementation steptree-merge` to merge back to main
@@ -1,78 +0,0 @@
1
- ---
2
- name: worktree-list
3
- description: "List all unipi worktrees. Shows branch, path, and status."
4
- ---
5
-
6
- # Listing Worktrees
7
-
8
- List all git worktrees created by unipi.
9
-
10
- ## Boundaries
11
-
12
- **This skill MAY:** read filesystem (ls, read), grep for git info.
13
- **This skill MAY NOT:** edit anything, create worktrees, merge branches, run bash.
14
-
15
- ## Command Format
16
-
17
- ```
18
- the implementation steptree-list
19
- ```
20
-
21
- No arguments. Lists all unipi worktrees.
22
-
23
- ---
24
-
25
- ## Process
26
-
27
- ### Phase 1: Discover Worktrees
28
-
29
- 1. `ls .unipi/worktrees/` — list worktree directories
30
- 2. For each directory:
31
- - Read `.unipi/worktrees/<branch>/.git` file to get gitdir path
32
- - Check for uncommitted changes: `ls .unipi/worktrees/<branch>/` and read key files
33
- 3. If `.unipi/worktrees/` doesn't exist or is empty → no worktrees
34
-
35
- **Exit:** List of worktrees discovered.
36
-
37
- ### Phase 2: Determine Status
38
-
39
- For each worktree directory:
40
-
41
- 1. Check if `HEAD` file exists in gitdir
42
- 2. Check for modified files by reading directory listing
43
- 3. Determine status:
44
- - **clean** — no uncommitted changes
45
- - **dirty** — has uncommitted changes
46
-
47
- ### Phase 3: Present
48
-
49
- Display in table format:
50
-
51
- ```
52
- Worktrees:
53
- ┌──────────────────┬────────────────────────────────┬─────────┐
54
- │ Branch │ Path │ Status │
55
- ├──────────────────┼────────────────────────────────┼─────────┤
56
- │ feat/auth │ .unipi/worktrees/feat/auth │ clean │
57
- │ fix/login-bug │ .unipi/worktrees/fix/login-bug │ dirty │
58
- └──────────────────┴────────────────────────────────┴─────────┘
59
- ```
60
-
61
- If no worktrees:
62
- > "No unipi worktrees. Create one with `the implementation steptree-create`"
63
-
64
- ### Phase 4: Suggest Actions
65
-
66
- Based on state:
67
- - If dirty worktrees exist → suggest reviewing or committing
68
- - If clean worktrees exist → suggest working or merging
69
- - Always available: `the implementation steptree-create`, `the implementation steptree-merge`
70
-
71
- ---
72
-
73
- ## Notes
74
-
75
- - Only shows worktrees under `.unipi/worktrees/`
76
- - Ignores worktrees in other locations
77
- - Status: `clean` = no uncommitted changes, `dirty` = has changes
78
- - No bash required — uses ls, read, grep for all discovery
@@ -1,89 +0,0 @@
1
- ---
2
- name: worktree-merge
3
- description: "Merge worktree branches back to main. Gathers context from specs/plans, merges, cleans up."
4
- ---
5
-
6
- # Worktree Merge
7
-
8
- Merge completed worktree branches into main. Gather context from docs before merging.
9
-
10
- **Note:** Only needed when work was done in a worktree (plan `workbranch` set). If work was on main branch directly, skip this — changes already on main.
11
-
12
- ## Process
13
-
14
- ### Phase 1: Gather Context
15
-
16
- Before merging, read existing specs and plans to understand what each worktree was implementing:
17
-
18
- 1. Read all files in `docs/specs/` (if exists)
19
- 2. Read all files in `docs/plans/` (if exists)
20
- 3. Build a map: branch → what it was working on
21
-
22
- This context helps during merge conflicts and in the final report.
23
-
24
- ### Phase 2: Resolve Target Branch
25
-
26
- 1. Check for `main` branch: `git branch --list main`
27
- 2. If not found, check `master`: `git branch --list master`
28
- 3. If neither exists, ask user for target branch
29
-
30
- ### Phase 3: Resolve Source Branches
31
-
32
- **If branches provided in args:**
33
- - Verify each branch exists: `git branch --list <name>`
34
- - Check worktree status for each
35
-
36
- **If no branches provided:**
37
- - List all worktrees: `git worktree list`
38
- - Filter to `.unipi/worktrees/` paths only
39
- - Show each with status (clean/dirty via `git status`)
40
- - Ask user which to merge
41
-
42
- ### Phase 4: Merge Each Branch
43
-
44
- For each source branch (in dependency order if specs indicate ordering):
45
-
46
- 1. **Checkout target:** `git checkout main`
47
- 2. **Merge:** `git merge <branch> --no-edit`
48
- 3. **If conflict:**
49
- - Report which files conflict
50
- - Reference the spec/plan context: "This branch was working on: <description>"
51
- - **Structured conflict resolution:**
52
- 1. **Check finalized plan** — read the plan for this branch, understand intended changes
53
- 2. **Brainstorm resolution** — reason about which changes align with the plan's intent
54
- 3. **Read codebase** — read the conflicting files to understand current state
55
- 4. **Ask user** — present options and ask for final decision (always ask, never force)
56
- - Options to present:
57
- - Accept incoming (their changes)
58
- - Accept current (main branch)
59
- - Manual merge (describe what each side does, ask user to decide)
60
- - Skip this branch
61
- 4. **If success:**
62
- - Remove worktree: `git worktree remove .unipi/worktrees/<branch-name>`
63
- - Delete branch: `git branch -d <branch>`
64
- - Log success with context: "Merged: <what it was doing>"
65
-
66
- ### Phase 5: Report
67
-
68
- ```
69
- Merge Summary:
70
- ✓ feat/auth — merged (auth system implementation from specs/auth-system.md)
71
- ✓ fix/login-bug — merged (login fix from plans/bugfix-login.md)
72
- ✗ feat/dashboard — CONFLICT in src/dashboard.ts, skipped
73
-
74
- Worktrees cleaned: 2 removed
75
- Branches deleted: 2
76
- ```
77
-
78
- ### Phase 6: Suggest Next
79
-
80
- - If all merged cleanly → suggest `the consolidate step` to save learnings
81
- - If conflicts remain → suggest resolving and retrying `the implementation steptree-merge`
82
- - If specs/plans exist for merged work → suggest `the document step` to update docs
83
-
84
- ## Important
85
-
86
- - ALWAYS read specs/plans before merging — context prevents bad conflict resolution
87
- - NEVER force push or force merge
88
- - Ask user before destructive operations (branch deletion)
89
- - If a worktree has uncommitted changes, warn and skip
@@ -1,14 +0,0 @@
1
- ---
2
- name: delegate
3
- description: Lightweight subagent that inherits the parent model with no default reads
4
- systemPromptMode: append
5
- inheritProjectContext: true
6
- tools: read, grep, find, ls, bash, edit, write, contact_supervisor
7
- inheritSkills: false
8
- ---
9
-
10
- You are a delegated agent. Execute the assigned task using the provided tools. Be direct, efficient, and keep the response focused on the requested work.
11
-
12
- The builtin delegate uses a strict tool allowlist and does not inherit ambient extension tools from the parent session. To use an extension tool, configure a custom agent with the tool name explicitly listed in `tools` and load its provider through `extensions` or `subagentOnlyExtensions`.
13
-
14
- If runtime bridge instructions identify a safe supervisor target and you are blocked or need a decision, use `contact_supervisor` with `reason: "need_decision"` and stay alive for the reply. Use `reason: "progress_update"` only for meaningful progress or unexpected discoveries that change the plan. Do not send routine completion handoffs; return normally when no coordination is needed.