agent-pipeline 0.1.0 → 0.1.2

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 (331) hide show
  1. package/CLAUDE.md +4 -3
  2. package/{license → LICENSE} +1 -1
  3. package/README.md +120 -55
  4. package/dist/cli/commands/agent/info.js +1 -1
  5. package/dist/cli/commands/agent/info.js.map +1 -1
  6. package/dist/cli/commands/agent/list.js +1 -1
  7. package/dist/cli/commands/agent/list.js.map +1 -1
  8. package/dist/cli/commands/agent/pull.d.ts +1 -0
  9. package/dist/cli/commands/agent/pull.d.ts.map +1 -1
  10. package/dist/cli/commands/agent/pull.js +67 -44
  11. package/dist/cli/commands/agent/pull.js.map +1 -1
  12. package/dist/cli/commands/cleanup.d.ts +4 -0
  13. package/dist/cli/commands/cleanup.d.ts.map +1 -1
  14. package/dist/cli/commands/cleanup.js +197 -37
  15. package/dist/cli/commands/cleanup.js.map +1 -1
  16. package/dist/cli/commands/history.d.ts.map +1 -1
  17. package/dist/cli/commands/history.js +3 -22
  18. package/dist/cli/commands/history.js.map +1 -1
  19. package/dist/cli/commands/hooks.d.ts +10 -0
  20. package/dist/cli/commands/hooks.d.ts.map +1 -0
  21. package/dist/cli/commands/hooks.js +88 -0
  22. package/dist/cli/commands/hooks.js.map +1 -0
  23. package/dist/cli/commands/init.d.ts +1 -6
  24. package/dist/cli/commands/init.d.ts.map +1 -1
  25. package/dist/cli/commands/init.js +169 -88
  26. package/dist/cli/commands/init.js.map +1 -1
  27. package/dist/cli/commands/loop-context.d.ts +2 -0
  28. package/dist/cli/commands/loop-context.d.ts.map +1 -0
  29. package/dist/cli/commands/loop-context.js +88 -0
  30. package/dist/cli/commands/loop-context.js.map +1 -0
  31. package/dist/cli/commands/pipeline/create.d.ts.map +1 -1
  32. package/dist/cli/commands/pipeline/create.js +156 -68
  33. package/dist/cli/commands/pipeline/create.js.map +1 -1
  34. package/dist/cli/commands/run.d.ts +1 -1
  35. package/dist/cli/commands/run.d.ts.map +1 -1
  36. package/dist/cli/commands/run.js +29 -5
  37. package/dist/cli/commands/run.js.map +1 -1
  38. package/dist/cli/commands/schema.d.ts +9 -0
  39. package/dist/cli/commands/schema.d.ts.map +1 -0
  40. package/dist/cli/commands/schema.js +541 -0
  41. package/dist/cli/commands/schema.js.map +1 -0
  42. package/dist/cli/commands/status.d.ts.map +1 -1
  43. package/dist/cli/commands/status.js +0 -6
  44. package/dist/cli/commands/status.js.map +1 -1
  45. package/dist/cli/help/index.d.ts +6 -0
  46. package/dist/cli/help/index.d.ts.map +1 -0
  47. package/dist/cli/help/index.js +538 -0
  48. package/dist/cli/help/index.js.map +1 -0
  49. package/dist/cli/help/types.d.ts +22 -0
  50. package/dist/cli/help/types.d.ts.map +1 -0
  51. package/dist/cli/help/types.js +2 -0
  52. package/dist/cli/help/types.js.map +1 -0
  53. package/dist/cli/hooks.d.ts +5 -1
  54. package/dist/cli/hooks.d.ts.map +1 -1
  55. package/dist/cli/hooks.js +106 -12
  56. package/dist/cli/hooks.js.map +1 -1
  57. package/dist/cli/templates/agents/code-review-agents/code-reviewer.md +46 -0
  58. package/dist/cli/templates/agents/code-review-agents/memory-doc-updater.md +189 -0
  59. package/dist/cli/templates/agents/code-review-agents/quality-checker.md +52 -0
  60. package/dist/cli/templates/agents/frontend-agents/brutalist_purist.md +563 -0
  61. package/dist/cli/templates/agents/frontend-agents/cyberpunk_hacker.md +824 -0
  62. package/dist/cli/templates/agents/frontend-agents/frontend-pipeline-ref.md +32 -0
  63. package/dist/cli/templates/agents/frontend-agents/indie_game_dev.md +715 -0
  64. package/dist/cli/templates/agents/frontend-agents/luxury_editorial.md +628 -0
  65. package/dist/cli/templates/agents/frontend-agents/product_owner.md +159 -0
  66. package/dist/cli/templates/agents/frontend-agents/retro_90s_webmaster.md +385 -0
  67. package/dist/cli/templates/agents/frontend-agents/showcase.md +362 -0
  68. package/dist/cli/templates/agents/frontend-agents/swiss_modernist.md +716 -0
  69. package/dist/cli/templates/agents/loop-agents/socratic-explorer.md +91 -0
  70. package/dist/cli/templates/instructions/handover.md +40 -0
  71. package/dist/cli/templates/instructions/loop.md +39 -0
  72. package/dist/cli/templates/pipelines/front-end-parallel-example.yml +81 -0
  73. package/dist/cli/templates/pipelines/loop-example.yml +25 -0
  74. package/dist/cli/templates/pipelines/post-commit-example.yml +49 -58
  75. package/dist/cli/templates/schema/pipeline-config.schema.json +400 -0
  76. package/dist/cli/templates/schema/pipeline-config.schema.yaml +302 -0
  77. package/dist/cli/utils/agent-importer.d.ts +1 -0
  78. package/dist/cli/utils/agent-importer.d.ts.map +1 -1
  79. package/dist/cli/utils/agent-importer.js +67 -0
  80. package/dist/cli/utils/agent-importer.js.map +1 -1
  81. package/dist/cli/utils/interactive-prompts.d.ts +4 -0
  82. package/dist/cli/utils/interactive-prompts.d.ts.map +1 -1
  83. package/dist/cli/utils/interactive-prompts.js +59 -13
  84. package/dist/cli/utils/interactive-prompts.js.map +1 -1
  85. package/dist/config/pipeline-loader.d.ts +4 -1
  86. package/dist/config/pipeline-loader.d.ts.map +1 -1
  87. package/dist/config/pipeline-loader.js +58 -0
  88. package/dist/config/pipeline-loader.js.map +1 -1
  89. package/dist/config/schema.d.ts +64 -35
  90. package/dist/config/schema.d.ts.map +1 -1
  91. package/dist/core/abort-controller.d.ts +16 -0
  92. package/dist/core/abort-controller.d.ts.map +1 -0
  93. package/dist/core/abort-controller.js +52 -0
  94. package/dist/core/abort-controller.js.map +1 -0
  95. package/dist/core/agent-query-runner.d.ts +0 -1
  96. package/dist/core/agent-query-runner.d.ts.map +1 -1
  97. package/dist/core/agent-query-runner.js +0 -22
  98. package/dist/core/agent-query-runner.js.map +1 -1
  99. package/dist/core/agent-runtimes/claude-code-headless-runtime.d.ts +5 -1
  100. package/dist/core/agent-runtimes/claude-code-headless-runtime.d.ts.map +1 -1
  101. package/dist/core/agent-runtimes/claude-code-headless-runtime.js +127 -12
  102. package/dist/core/agent-runtimes/claude-code-headless-runtime.js.map +1 -1
  103. package/dist/core/agent-runtimes/claude-sdk-runtime.d.ts +0 -2
  104. package/dist/core/agent-runtimes/claude-sdk-runtime.d.ts.map +1 -1
  105. package/dist/core/agent-runtimes/claude-sdk-runtime.js +1 -22
  106. package/dist/core/agent-runtimes/claude-sdk-runtime.js.map +1 -1
  107. package/dist/core/agent-runtimes/codex-headless-runtime.d.ts +27 -0
  108. package/dist/core/agent-runtimes/codex-headless-runtime.d.ts.map +1 -0
  109. package/dist/core/agent-runtimes/codex-headless-runtime.js +623 -0
  110. package/dist/core/agent-runtimes/codex-headless-runtime.js.map +1 -0
  111. package/dist/core/agent-runtimes/openai-compatible-runtime.d.ts +17 -0
  112. package/dist/core/agent-runtimes/openai-compatible-runtime.d.ts.map +1 -0
  113. package/dist/core/agent-runtimes/openai-compatible-runtime.js +231 -0
  114. package/dist/core/agent-runtimes/openai-compatible-runtime.js.map +1 -0
  115. package/dist/core/branch-manager.d.ts +3 -1
  116. package/dist/core/branch-manager.d.ts.map +1 -1
  117. package/dist/core/branch-manager.js +11 -1
  118. package/dist/core/branch-manager.js.map +1 -1
  119. package/dist/core/git-manager.d.ts +17 -1
  120. package/dist/core/git-manager.d.ts.map +1 -1
  121. package/dist/core/git-manager.js +147 -3
  122. package/dist/core/git-manager.js.map +1 -1
  123. package/dist/core/group-execution-orchestrator.d.ts +4 -13
  124. package/dist/core/group-execution-orchestrator.d.ts.map +1 -1
  125. package/dist/core/group-execution-orchestrator.js +53 -142
  126. package/dist/core/group-execution-orchestrator.js.map +1 -1
  127. package/dist/core/handover-manager.d.ts +24 -0
  128. package/dist/core/handover-manager.d.ts.map +1 -0
  129. package/dist/core/handover-manager.js +214 -0
  130. package/dist/core/handover-manager.js.map +1 -0
  131. package/dist/core/instruction-loader.d.ts +23 -0
  132. package/dist/core/instruction-loader.d.ts.map +1 -0
  133. package/dist/core/instruction-loader.js +123 -0
  134. package/dist/core/instruction-loader.js.map +1 -0
  135. package/dist/core/loop-state-manager.d.ts +12 -7
  136. package/dist/core/loop-state-manager.d.ts.map +1 -1
  137. package/dist/core/loop-state-manager.js +49 -3
  138. package/dist/core/loop-state-manager.js.map +1 -1
  139. package/dist/core/parallel-executor.d.ts +8 -3
  140. package/dist/core/parallel-executor.d.ts.map +1 -1
  141. package/dist/core/parallel-executor.js +90 -16
  142. package/dist/core/parallel-executor.js.map +1 -1
  143. package/dist/core/pipeline-finalizer.d.ts +12 -4
  144. package/dist/core/pipeline-finalizer.d.ts.map +1 -1
  145. package/dist/core/pipeline-finalizer.js +244 -33
  146. package/dist/core/pipeline-finalizer.js.map +1 -1
  147. package/dist/core/pipeline-initializer.d.ts +13 -5
  148. package/dist/core/pipeline-initializer.d.ts.map +1 -1
  149. package/dist/core/pipeline-initializer.js +53 -25
  150. package/dist/core/pipeline-initializer.js.map +1 -1
  151. package/dist/core/pipeline-runner.d.ts +15 -1
  152. package/dist/core/pipeline-runner.d.ts.map +1 -1
  153. package/dist/core/pipeline-runner.js +434 -64
  154. package/dist/core/pipeline-runner.js.map +1 -1
  155. package/dist/core/pr-creator.d.ts +0 -1
  156. package/dist/core/pr-creator.d.ts.map +1 -1
  157. package/dist/core/pr-creator.js +12 -4
  158. package/dist/core/pr-creator.js.map +1 -1
  159. package/dist/core/stage-executor.d.ts +19 -11
  160. package/dist/core/stage-executor.d.ts.map +1 -1
  161. package/dist/core/stage-executor.js +151 -178
  162. package/dist/core/stage-executor.js.map +1 -1
  163. package/dist/core/types/agent-runtime.d.ts +3 -2
  164. package/dist/core/types/agent-runtime.d.ts.map +1 -1
  165. package/dist/core/worktree-manager.d.ts +21 -0
  166. package/dist/core/worktree-manager.d.ts.map +1 -0
  167. package/dist/core/worktree-manager.js +133 -0
  168. package/dist/core/worktree-manager.js.map +1 -0
  169. package/dist/index.js +147 -112
  170. package/dist/index.js.map +1 -1
  171. package/dist/notifications/notification-manager.d.ts +1 -0
  172. package/dist/notifications/notification-manager.d.ts.map +1 -1
  173. package/dist/notifications/notification-manager.js +17 -3
  174. package/dist/notifications/notification-manager.js.map +1 -1
  175. package/dist/notifications/notifiers/local-notifier.d.ts.map +1 -1
  176. package/dist/notifications/notifiers/local-notifier.js +5 -2
  177. package/dist/notifications/notifiers/local-notifier.js.map +1 -1
  178. package/dist/notifications/notifiers/slack-notifier.d.ts.map +1 -1
  179. package/dist/notifications/notifiers/slack-notifier.js +39 -8
  180. package/dist/notifications/notifiers/slack-notifier.js.map +1 -1
  181. package/dist/notifications/types.d.ts +1 -1
  182. package/dist/notifications/types.d.ts.map +1 -1
  183. package/dist/ui/components/execution-group.d.ts.map +1 -1
  184. package/dist/ui/components/execution-group.js +1 -1
  185. package/dist/ui/components/execution-group.js.map +1 -1
  186. package/dist/ui/components/interactive-summary.d.ts +9 -0
  187. package/dist/ui/components/interactive-summary.d.ts.map +1 -0
  188. package/dist/ui/components/interactive-summary.js +166 -0
  189. package/dist/ui/components/interactive-summary.js.map +1 -0
  190. package/dist/ui/components/keyboard-hints.d.ts +12 -0
  191. package/dist/ui/components/keyboard-hints.d.ts.map +1 -0
  192. package/dist/ui/components/keyboard-hints.js +13 -0
  193. package/dist/ui/components/keyboard-hints.js.map +1 -0
  194. package/dist/ui/components/live-timer.d.ts +9 -0
  195. package/dist/ui/components/live-timer.d.ts.map +1 -0
  196. package/dist/ui/components/live-timer.js +25 -0
  197. package/dist/ui/components/live-timer.js.map +1 -0
  198. package/dist/ui/components/loop-iteration-history.d.ts +8 -0
  199. package/dist/ui/components/loop-iteration-history.d.ts.map +1 -0
  200. package/dist/ui/components/loop-iteration-history.js +106 -0
  201. package/dist/ui/components/loop-iteration-history.js.map +1 -0
  202. package/dist/ui/components/loop-session-summary.d.ts +9 -0
  203. package/dist/ui/components/loop-session-summary.d.ts.map +1 -0
  204. package/dist/ui/components/loop-session-summary.js +39 -0
  205. package/dist/ui/components/loop-session-summary.js.map +1 -0
  206. package/dist/ui/components/stage-row.d.ts +0 -1
  207. package/dist/ui/components/stage-row.d.ts.map +1 -1
  208. package/dist/ui/components/stage-row.js +5 -15
  209. package/dist/ui/components/stage-row.js.map +1 -1
  210. package/dist/ui/components/status-badge.d.ts.map +1 -1
  211. package/dist/ui/components/status-badge.js +1 -0
  212. package/dist/ui/components/status-badge.js.map +1 -1
  213. package/dist/ui/pipeline-ui.d.ts +1 -0
  214. package/dist/ui/pipeline-ui.d.ts.map +1 -1
  215. package/dist/ui/pipeline-ui.js +22 -18
  216. package/dist/ui/pipeline-ui.js.map +1 -1
  217. package/dist/utils/error-factory.d.ts.map +1 -1
  218. package/dist/utils/error-factory.js +10 -2
  219. package/dist/utils/error-factory.js.map +1 -1
  220. package/dist/utils/pipeline-formatter.d.ts +8 -2
  221. package/dist/utils/pipeline-formatter.d.ts.map +1 -1
  222. package/dist/utils/pipeline-formatter.js +30 -26
  223. package/dist/utils/pipeline-formatter.js.map +1 -1
  224. package/dist/utils/pipeline-logger.d.ts +19 -0
  225. package/dist/utils/pipeline-logger.d.ts.map +1 -0
  226. package/dist/utils/pipeline-logger.js +80 -0
  227. package/dist/utils/pipeline-logger.js.map +1 -0
  228. package/dist/utils/platform-opener.d.ts +4 -0
  229. package/dist/utils/platform-opener.d.ts.map +1 -0
  230. package/dist/utils/platform-opener.js +52 -0
  231. package/dist/utils/platform-opener.js.map +1 -0
  232. package/dist/validators/agent-validator.d.ts +10 -0
  233. package/dist/validators/agent-validator.d.ts.map +1 -0
  234. package/dist/validators/agent-validator.js +87 -0
  235. package/dist/validators/agent-validator.js.map +1 -0
  236. package/dist/validators/dag-validator.d.ts +9 -0
  237. package/dist/validators/dag-validator.d.ts.map +1 -0
  238. package/dist/validators/dag-validator.js +51 -0
  239. package/dist/validators/dag-validator.js.map +1 -0
  240. package/dist/validators/environment-validator.d.ts +9 -0
  241. package/dist/validators/environment-validator.d.ts.map +1 -0
  242. package/dist/validators/environment-validator.js +35 -0
  243. package/dist/validators/environment-validator.js.map +1 -0
  244. package/dist/validators/execution-validator.d.ts +8 -0
  245. package/dist/validators/execution-validator.d.ts.map +1 -0
  246. package/dist/validators/execution-validator.js +51 -0
  247. package/dist/validators/execution-validator.js.map +1 -0
  248. package/dist/validators/git-validator.d.ts +13 -0
  249. package/dist/validators/git-validator.d.ts.map +1 -0
  250. package/dist/validators/git-validator.js +135 -0
  251. package/dist/validators/git-validator.js.map +1 -0
  252. package/dist/validators/notification-validator.d.ts +8 -0
  253. package/dist/validators/notification-validator.d.ts.map +1 -0
  254. package/dist/validators/notification-validator.js +27 -0
  255. package/dist/validators/notification-validator.js.map +1 -0
  256. package/dist/validators/pipeline-validator.d.ts +3 -26
  257. package/dist/validators/pipeline-validator.d.ts.map +1 -1
  258. package/dist/validators/pipeline-validator.js +5 -515
  259. package/dist/validators/pipeline-validator.js.map +1 -1
  260. package/dist/validators/retry-validator.d.ts +9 -0
  261. package/dist/validators/retry-validator.d.ts.map +1 -0
  262. package/dist/validators/retry-validator.js +34 -0
  263. package/dist/validators/retry-validator.js.map +1 -0
  264. package/dist/validators/runtime-validator.d.ts +9 -0
  265. package/dist/validators/runtime-validator.d.ts.map +1 -0
  266. package/dist/validators/runtime-validator.js +82 -0
  267. package/dist/validators/runtime-validator.js.map +1 -0
  268. package/dist/validators/structure-validator.d.ts +8 -0
  269. package/dist/validators/structure-validator.d.ts.map +1 -0
  270. package/dist/validators/structure-validator.js +39 -0
  271. package/dist/validators/structure-validator.js.map +1 -0
  272. package/dist/validators/types.d.ts +19 -0
  273. package/dist/validators/types.d.ts.map +1 -0
  274. package/dist/validators/types.js +2 -0
  275. package/dist/validators/types.js.map +1 -0
  276. package/dist/validators/validation-orchestrator.d.ts +9 -0
  277. package/dist/validators/validation-orchestrator.d.ts.map +1 -0
  278. package/dist/validators/validation-orchestrator.js +43 -0
  279. package/dist/validators/validation-orchestrator.js.map +1 -0
  280. package/package.json +18 -12
  281. package/dist/cli/commands/install.d.ts +0 -2
  282. package/dist/cli/commands/install.d.ts.map +0 -1
  283. package/dist/cli/commands/install.js +0 -15
  284. package/dist/cli/commands/install.js.map +0 -1
  285. package/dist/cli/commands/uninstall.d.ts +0 -2
  286. package/dist/cli/commands/uninstall.d.ts.map +0 -1
  287. package/dist/cli/commands/uninstall.js +0 -6
  288. package/dist/cli/commands/uninstall.js.map +0 -1
  289. package/dist/cli/templates/agents/cleanup-reporter.md +0 -107
  290. package/dist/cli/templates/agents/code-reducer.md +0 -51
  291. package/dist/cli/templates/agents/code-reviewer.md +0 -34
  292. package/dist/cli/templates/agents/context-reducer.md +0 -94
  293. package/dist/cli/templates/agents/dependency-auditor.md +0 -127
  294. package/dist/cli/templates/agents/detective-empath.md +0 -26
  295. package/dist/cli/templates/agents/detective-linguist.md +0 -26
  296. package/dist/cli/templates/agents/detective-logician.md +0 -26
  297. package/dist/cli/templates/agents/detective-skeptic.md +0 -26
  298. package/dist/cli/templates/agents/detective-statistician.md +0 -26
  299. package/dist/cli/templates/agents/doc-updater.md +0 -30
  300. package/dist/cli/templates/agents/judge.md +0 -27
  301. package/dist/cli/templates/agents/memory-updater.md +0 -72
  302. package/dist/cli/templates/agents/quality-checker.md +0 -32
  303. package/dist/cli/templates/agents/security-auditor.md +0 -32
  304. package/dist/cli/templates/agents/storyteller.md +0 -26
  305. package/dist/cli/templates/agents/summary.md +0 -32
  306. package/dist/cli/templates/agents/synthesizer.md +0 -26
  307. package/dist/cli/templates/pipelines/large-pipeline-example.yml +0 -178
  308. package/dist/cli/templates/pipelines/post-merge-example.yml +0 -78
  309. package/dist/cli/templates/pipelines/pre-commit-example.yml +0 -41
  310. package/dist/cli/templates/pipelines/pre-push-example.yml +0 -51
  311. package/dist/cli/templates/pipelines/test-pipeline.yml +0 -90
  312. package/dist/config/project-config-loader.d.ts +0 -11
  313. package/dist/config/project-config-loader.d.ts.map +0 -1
  314. package/dist/config/project-config-loader.js +0 -100
  315. package/dist/config/project-config-loader.js.map +0 -1
  316. package/dist/core/condition-evaluator.d.ts +0 -16
  317. package/dist/core/condition-evaluator.d.ts.map +0 -1
  318. package/dist/core/condition-evaluator.js +0 -121
  319. package/dist/core/condition-evaluator.js.map +0 -1
  320. package/dist/core/context-reducer.d.ts +0 -15
  321. package/dist/core/context-reducer.d.ts.map +0 -1
  322. package/dist/core/context-reducer.js +0 -224
  323. package/dist/core/context-reducer.js.map +0 -1
  324. package/dist/core/output-storage-manager.d.ts +0 -14
  325. package/dist/core/output-storage-manager.d.ts.map +0 -1
  326. package/dist/core/output-storage-manager.js +0 -68
  327. package/dist/core/output-storage-manager.js.map +0 -1
  328. package/dist/core/output-tool-builder.d.ts +0 -6
  329. package/dist/core/output-tool-builder.d.ts.map +0 -1
  330. package/dist/core/output-tool-builder.js +0 -50
  331. package/dist/core/output-tool-builder.js.map +0 -1
package/dist/cli/hooks.js CHANGED
@@ -31,11 +31,16 @@ export class HookInstaller {
31
31
  console.log(` Pipeline: ${pipelineName}`);
32
32
  console.log(` Hook: .git/hooks/${hookType}`);
33
33
  }
34
- async uninstall(hookType) {
35
- const hookTypes = hookType
36
- ? [hookType]
34
+ async uninstall(hookTypeOrOptions) {
35
+ const options = typeof hookTypeOrOptions === 'string'
36
+ ? { hookType: hookTypeOrOptions }
37
+ : hookTypeOrOptions ?? {};
38
+ const hookTypes = options.hookType
39
+ ? [options.hookType]
37
40
  : ['pre-commit', 'post-commit', 'pre-push', 'post-merge'];
38
41
  let uninstalledCount = 0;
42
+ const pipelineName = options.pipelineName;
43
+ const removeAll = options.removeAll ?? !pipelineName;
39
44
  for (const type of hookTypes) {
40
45
  const hookPath = path.join(this.repoPath, '.git', 'hooks', type);
41
46
  try {
@@ -44,11 +49,20 @@ export class HookInstaller {
44
49
  const filtered = [];
45
50
  let inPipelineSection = false;
46
51
  let blankLineCount = 0;
52
+ let removedSection = false;
47
53
  for (let i = 0; i < lines.length; i++) {
48
54
  const line = lines[i];
49
55
  if (line.includes('# Agent Pipeline')) {
50
- inPipelineSection = true;
51
- blankLineCount = 0;
56
+ const isTargetPipeline = pipelineName
57
+ ? line.includes(`: ${pipelineName}`)
58
+ : false;
59
+ if (removeAll || isTargetPipeline) {
60
+ inPipelineSection = true;
61
+ blankLineCount = 0;
62
+ removedSection = true;
63
+ continue;
64
+ }
65
+ filtered.push(line);
52
66
  continue;
53
67
  }
54
68
  if (inPipelineSection) {
@@ -67,15 +81,23 @@ export class HookInstaller {
67
81
  }
68
82
  filtered.push(line);
69
83
  }
84
+ if (!removedSection) {
85
+ continue;
86
+ }
70
87
  const newContent = filtered.join('\n').trim();
71
88
  if (newContent === '#!/bin/bash' || !newContent) {
72
89
  await fs.unlink(hookPath);
73
- console.log(`✅ ${type} hook removed (was only agent-pipeline)`);
90
+ console.log(`✅ ${type} hook removed (no other hook content found)`);
74
91
  uninstalledCount++;
75
92
  }
76
93
  else {
77
94
  await fs.writeFile(hookPath, newContent, 'utf-8');
78
- console.log(`✅ Agent Pipeline section removed from ${type} hook`);
95
+ if (pipelineName) {
96
+ console.log(`✅ Removed ${pipelineName} from ${type} hook`);
97
+ }
98
+ else {
99
+ console.log(`✅ Agent Pipeline section removed from ${type} hook`);
100
+ }
79
101
  uninstalledCount++;
80
102
  }
81
103
  }
@@ -84,15 +106,87 @@ export class HookInstaller {
84
106
  }
85
107
  }
86
108
  if (uninstalledCount === 0) {
87
- console.log('ℹ️ No Agent Pipeline hooks found to uninstall');
109
+ if (pipelineName) {
110
+ console.log(`ℹ️ No Agent Pipeline hooks found for ${pipelineName}`);
111
+ }
112
+ else {
113
+ console.log('ℹ️ No Agent Pipeline hooks found to uninstall');
114
+ }
88
115
  }
89
116
  }
90
117
  generateHookScript(pipelineName) {
91
- return `# Run Agent Pipeline in background to avoid blocking
92
- nohup npx agent-pipeline run ${pipelineName} > /dev/null 2>&1 &
118
+ return `# Skip if last commit was created by Agent Pipeline
119
+ if git log -1 --pretty=%B | grep -Eq "^Agent-Pipeline: true$"; then
120
+ exit 0
121
+ fi
122
+
123
+ # Load user environment for ANTHROPIC_API_KEY if set (workaround for GUI git clients)
124
+ # Note: Claude Code's Keychain auth won't work from GUI apps - see docs/configuration.md
125
+ for profile in "$HOME/.zshenv" "$HOME/.profile"; do
126
+ if [ -f "$profile" ]; then
127
+ . "$profile" 2>/dev/null || true
128
+ break
129
+ fi
130
+ done
131
+
132
+ # Load repo-specific env overrides (e.g., ANTHROPIC_API_KEY)
133
+ if [ -f ".agent-pipeline/env" ]; then
134
+ . ".agent-pipeline/env" 2>/dev/null || true
135
+ fi
136
+
137
+ # Ensure PATH includes common locations for non-interactive hooks
138
+ if ! command -v npx >/dev/null 2>&1 && [ -s "$HOME/.nvm/nvm.sh" ]; then
139
+ . "$HOME/.nvm/nvm.sh"
140
+ fi
141
+ export PATH="/usr/local/bin:/opt/homebrew/bin:$PATH"
142
+
143
+ # Prevent overlapping runs for the same pipeline
144
+ lockDir=".agent-pipeline/locks"
145
+ lockPath="$lockDir/${pipelineName}.lock"
146
+ logDir=".agent-pipeline/logs"
147
+ logPath="$logDir/${pipelineName}.log"
148
+
149
+ mkdir -p "$lockDir"
150
+ mkdir -p "$logDir"
151
+
152
+ if [ -f "$lockPath/pid" ]; then
153
+ oldPid=$(cat "$lockPath/pid")
154
+ if ! kill -0 "$oldPid" 2>/dev/null; then
155
+ rm -rf "$lockPath"
156
+ fi
157
+ fi
158
+
159
+ if ! mkdir "$lockPath" 2>/dev/null; then
160
+ exit 0
161
+ fi
162
+
163
+ # Run Agent Pipeline in background to avoid blocking
164
+ if command -v agent-pipeline >/dev/null 2>&1; then
165
+ runner="agent-pipeline"
166
+ else
167
+ runner="npx agent-pipeline"
168
+ fi
169
+
170
+ # Brief delay to let git fully release index locks after commit
171
+ sleep 1
172
+
173
+ # Unset git env vars set by hook context - relative paths cause worktree failures
174
+ unset GIT_INDEX_FILE
175
+ unset GIT_DIR
176
+ unset GIT_WORK_TREE
177
+ unset GIT_EXEC_PATH
178
+
179
+ echo "[agent-pipeline] $(date) starting ${pipelineName}" >> "$logPath"
180
+ nohup $runner run ${pipelineName} --quiet >> "$logPath" 2>&1 &
181
+ pipelinePid=$!
182
+ echo "$pipelinePid" > "$lockPath/pid"
183
+
184
+ ( wait "$pipelinePid"; rm -rf "$lockPath" ) >/dev/null 2>&1 &
93
185
 
94
- # Optional: Notify user
95
- echo "🤖 Agent Pipeline running in background (${pipelineName})"`;
186
+ # Notify user with helpful details
187
+ echo "🤖 Agent Pipeline running in background (${pipelineName})"
188
+ echo " Log: $logPath"
189
+ echo " Run: agent-pipeline history --last"`;
96
190
  }
97
191
  }
98
192
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/cli/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/cli/hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: code-reviewer
3
+ description: Reviews code for bugs, logic errors, security vulnerabilities, code quality issues, and adherence to project conventions, using confidence-based filtering to report only high-priority issues that truly matter
4
+ model: opus
5
+ ---
6
+
7
+ You are an expert code reviewer specializing in modern software development across multiple languages and frameworks. Your primary responsibility is to review code against project guidelines in CLAUDE.md with high precision to minimize false positives.
8
+
9
+ ## Review Scope
10
+
11
+ By default, review last commit `git log`. The user may specify different files or scope to review.
12
+
13
+ ## Core Review Responsibilities
14
+
15
+ **Project Guidelines Compliance**: Verify adherence to explicit project rules (typically in CLAUDE.md or equivalent) including import patterns, framework conventions, language-specific style, function declarations, error handling, logging, testing practices, platform compatibility, and naming conventions.
16
+
17
+ **Bug Detection**: Identify actual bugs that will impact functionality - logic errors, null/undefined handling, race conditions, memory leaks, security vulnerabilities, and performance problems.
18
+
19
+ **Code Quality**: Evaluate significant issues like code duplication, missing critical error handling, accessibility problems, and inadequate test coverage.
20
+
21
+ ## Issue Confidence Scoring
22
+
23
+ Rate each issue from 0-100:
24
+
25
+ - **0-25**: Likely false positive or pre-existing issue
26
+ - **26-50**: Minor nitpick not explicitly in CLAUDE.md
27
+ - **51-75**: Valid but low-impact issue
28
+ - **76-90**: Important issue requiring attention
29
+ - **91-100**: Critical bug or explicit CLAUDE.md violation
30
+
31
+ **Only report issues with confidence ≥ 80**
32
+
33
+ ## Output Format
34
+
35
+ Start by listing what you're reviewing. For each high-confidence issue provide:
36
+
37
+ - Clear description and confidence score
38
+ - File path and line number
39
+ - Specific CLAUDE.md rule or bug explanation
40
+ - Concrete fix suggestion
41
+
42
+ Group issues by severity (Critical: 90-100, Important: 80-89).
43
+
44
+ If no high-confidence issues exist, confirm the code meets standards with a brief summary.
45
+
46
+ Be thorough but filter aggressively - quality over quantity. Focus on issues that truly matter.
@@ -0,0 +1,189 @@
1
+ ---
2
+ name: doc-updater
3
+ description: Post work complete agent that updates memory files (CLAUDE.md, AGENTS.md) and ensures documentation stays in sync with code changes. Headless, automatic, minimal.
4
+ purpose: post-commit-automation
5
+ ---
6
+
7
+ # Doc Updater Agent
8
+
9
+ **You are a documentation maintainer.** After every commit, you review what changed and update memory files and documentation accordingly. No questions. No creativity. Just accuracy and consistency.
10
+
11
+ ---
12
+
13
+ ## Rules
14
+
15
+ 1. **NEVER ask for clarification** — Infer from the diff
16
+ 2. **NEVER invent information** — Only document what exists
17
+ 3. **NEVER delete without reason** — Preserve existing documentation unless invalidated
18
+ 4. **ALWAYS be concise** — Memory files should be scannable
19
+ 5. **ALWAYS preserve structure** — Match existing file formats
20
+
21
+ ---
22
+
23
+ ## Files You Maintain
24
+
25
+ | File | Purpose | Update When |
26
+ |------|---------|-------------|
27
+ | `CLAUDE.md` | Project context for Claude | Architecture, patterns, or conventions change |
28
+ | `AGENTS.md` | Agent registry and capabilities | Agents added, removed, or modified |
29
+ | `README.md` | Project overview | Major features, setup, or usage changes |
30
+ | `CHANGELOG.md` | Version history | Every meaningful commit (optional) |
31
+ | `docs/*.md` | Feature documentation | Related code changes |
32
+ | `*reference.md` | Feature documentation | Related code changes |
33
+
34
+ ---
35
+
36
+ ## Update Logic
37
+
38
+ ### CLAUDE.md
39
+
40
+ Update when commits touch:
41
+ - Project structure (new directories, renamed files)
42
+ - Core patterns (new utilities, shared code)
43
+ - Configuration (build, lint, environment)
44
+ - Dependencies (package.json, requirements.txt, etc.)
45
+ - Core Modules (new modules, frameworks)
46
+
47
+ **Add/update sections for:**
48
+ - Build commands
49
+ - Key file locations
50
+ - Architectural decisions
51
+ - Naming conventions
52
+ - Common patterns
53
+ - Core Components
54
+
55
+ **Format:**
56
+ ```markdown
57
+ # CLAUDE.md
58
+
59
+ ## Build & Run
60
+ [commands]
61
+
62
+ ## Project Structure
63
+ [key directories and their purpose]
64
+
65
+ ## Conventions
66
+ [patterns to follow]
67
+
68
+ ## Key Files
69
+ [important files and what they do]
70
+ ```
71
+ ---
72
+
73
+ ### README.md
74
+
75
+ Update when commits touch:
76
+ - Setup/installation process
77
+ - Main features or commands
78
+ - Usage examples
79
+ - Project description
80
+
81
+ **Only update sections that are invalidated.** Do not rewrite the entire README.
82
+
83
+ ---
84
+
85
+ ### CHANGELOG.md (if present)
86
+
87
+ Append entry for meaningful commits:
88
+
89
+ ```markdown
90
+ ## [Unreleased]
91
+
92
+ ### Added
93
+ - [feature description]
94
+
95
+ ### Changed
96
+ - [change description]
97
+
98
+ ### Fixed
99
+ - [fix description]
100
+ ```
101
+
102
+ Skip for trivial commits (typos, formatting, comments).
103
+
104
+ ---
105
+
106
+ ## Decision Process
107
+
108
+ ```
109
+ 1. Parse commit diff
110
+ 2. Categorize changes:
111
+ - [ ] Structure change? → Update CLAUDE.md
112
+ - [ ] Agent change? → Update AGENTS.md
113
+ - [ ] Feature change? → Update README.md / docs/
114
+ - [ ] Meaningful commit? → Update CHANGELOG.md
115
+ 3. For each applicable file:
116
+ a. Read current content
117
+ b. Identify outdated sections
118
+ c. Apply minimal updates
119
+ d. Preserve formatting and tone
120
+ 4. Output list of updated files
121
+ ```
122
+
123
+ ---
124
+
125
+ ## Output
126
+
127
+ After processing, output a summary:
128
+
129
+ ```markdown
130
+ ## Doc Updater Summary
131
+
132
+ **Commit:** [short hash] [commit message]
133
+
134
+ **Files Updated:**
135
+ - `CLAUDE.md` — Added new build command
136
+ - `AGENTS.md` — Registered new agent: doc-updater
137
+
138
+ **Files Unchanged:**
139
+ - `README.md` — No relevant changes
140
+ - `CHANGELOG.md` — Not present in repo
141
+
142
+ **No Action Required:**
143
+ - [reason, if nothing updated]
144
+ ```
145
+
146
+ ---
147
+
148
+ ## Examples
149
+
150
+ ---
151
+
152
+ ### Example 1: Build Config Changed
153
+
154
+ **Commit diff shows:** Modified `package.json` scripts
155
+
156
+ **Action:**
157
+ - Update `CLAUDE.md` — Refresh "Build & Run" section
158
+
159
+ ---
160
+
161
+ ### Example 2: Typo Fix
162
+
163
+ **Commit diff shows:** Fixed typo in `src/utils.ts` comment
164
+
165
+ **Action:**
166
+ - No updates needed — Trivial change
167
+
168
+ ---
169
+
170
+ ## Anti-Patterns
171
+
172
+ ❌ **Don't** add speculative documentation ("this might be used for...")
173
+ ❌ **Don't** duplicate code as documentation
174
+ ❌ **Don't** create files that don't exist — only update existing ones
175
+ ❌ **Don't** change documentation tone or style
176
+ ❌ **Don't** update unrelated sections
177
+
178
+ ---
179
+
180
+ ## Memory File Principles
181
+
182
+ Memory files (CLAUDE.md, AGENTS.md) exist so future Claude instances have context. Write them as if:
183
+ - The reader has never seen this project
184
+ - The reader needs to be productive in 30 seconds
185
+ - Every line must earn its place
186
+
187
+ ---
188
+
189
+ Parse commit → Identify stale docs → Apply minimal updates → Done.
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: code-simplifier
3
+ description: A quality check and code simplifier agent
4
+ model: opus
5
+ ---
6
+
7
+ You are an expert code simplification specialist focused on enhancing code clarity, consistency, and maintainability while preserving exact functionality. Your expertise lies in applying project-specific best practices to simplify and improve code without altering its behavior. You prioritize readable, explicit code over overly compact solutions. This is a balance that you have mastered as a result your years as an expert software engineer.
8
+
9
+ You will analyze recently modified code and apply refinements that:
10
+
11
+ 1. **Preserve Functionality**: Never change what the code does - only how it does it. All original features, outputs, and behaviors must remain intact.
12
+
13
+ 2. **Apply Project Standards**: Follow the established coding standards from CLAUDE.md including:
14
+
15
+ - Use ES modules with proper import sorting and extensions
16
+ - Prefer `function` keyword over arrow functions
17
+ - Use explicit return type annotations for top-level functions
18
+ - Follow proper React component patterns with explicit Props types
19
+ - Use proper error handling patterns (avoid try/catch when possible)
20
+ - Maintain consistent naming conventions
21
+
22
+ 3. **Enhance Clarity**: Simplify code structure by:
23
+
24
+ - Reducing unnecessary complexity and nesting
25
+ - Eliminating redundant code and abstractions
26
+ - Improving readability through clear variable and function names
27
+ - Consolidating related logic
28
+ - Removing unnecessary comments that describe obvious code
29
+ - IMPORTANT: Avoid nested ternary operators - prefer switch statements or if/else chains for multiple conditions
30
+ - Choose clarity over brevity - explicit code is often better than overly compact code
31
+
32
+ 4. **Maintain Balance**: Avoid over-simplification that could:
33
+
34
+ - Reduce code clarity or maintainability
35
+ - Create overly clever solutions that are hard to understand
36
+ - Combine too many concerns into single functions or components
37
+ - Remove helpful abstractions that improve code organization
38
+ - Prioritize "fewer lines" over readability (e.g., nested ternaries, dense one-liners)
39
+ - Make the code harder to debug or extend
40
+
41
+ 5. **Focus Scope**: Only refine code that has been recently modified or touched in the current session, unless explicitly instructed to review a broader scope.
42
+
43
+ Your refinement process:
44
+
45
+ 1. Identify the recently modified code sections
46
+ 2. Analyze for opportunities to improve elegance and consistency
47
+ 3. Apply project-specific best practices and coding standards
48
+ 4. Ensure all functionality remains unchanged
49
+ 5. Verify the refined code is simpler and more maintainable
50
+ 6. Document only significant changes that affect understanding
51
+
52
+ You operate autonomously and proactively, refining code immediately after it's written or modified without requiring explicit requests. Your goal is to ensure all code meets the highest standards of elegance and maintainability while preserving its complete functionality.