@desplega.ai/agent-swarm 1.20.0 → 1.51.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 (561) hide show
  1. package/README.md +271 -169
  2. package/openapi.json +5015 -0
  3. package/package.json +40 -7
  4. package/plugin/commands/close-issue.md +7 -3
  5. package/plugin/commands/create-pr.md +18 -12
  6. package/plugin/commands/implement-issue.md +7 -3
  7. package/plugin/commands/respond-github.md +8 -4
  8. package/plugin/commands/review-pr.md +44 -10
  9. package/plugin/commands/start-leader.md +1 -3
  10. package/plugin/commands/start-worker.md +1 -3
  11. package/plugin/commands/work-on-task.md +22 -3
  12. package/plugin/pi-skills/close-issue/SKILL.md +90 -0
  13. package/plugin/pi-skills/create-pr/SKILL.md +99 -0
  14. package/plugin/pi-skills/implement-issue/SKILL.md +135 -0
  15. package/plugin/pi-skills/investigate-sentry-issue/SKILL.md +138 -0
  16. package/plugin/pi-skills/respond-github/SKILL.md +98 -0
  17. package/plugin/pi-skills/review-offered-task/SKILL.md +45 -0
  18. package/plugin/pi-skills/review-pr/SKILL.md +261 -0
  19. package/plugin/pi-skills/start-leader/SKILL.md +121 -0
  20. package/plugin/pi-skills/start-worker/SKILL.md +60 -0
  21. package/plugin/pi-skills/swarm-chat/SKILL.md +82 -0
  22. package/plugin/pi-skills/todos/SKILL.md +66 -0
  23. package/plugin/pi-skills/work-on-task/SKILL.md +65 -0
  24. package/plugin/skills/artifacts/examples/approval-flow.ts +34 -0
  25. package/plugin/skills/artifacts/examples/hono-dashboard.ts +31 -0
  26. package/plugin/skills/artifacts/examples/multi-artifact.ts +20 -0
  27. package/plugin/skills/artifacts/examples/static-report.sh +17 -0
  28. package/plugin/skills/artifacts/skill.md +71 -0
  29. package/src/agentmail/app.ts +65 -0
  30. package/src/agentmail/handlers.ts +262 -0
  31. package/src/agentmail/index.ts +9 -0
  32. package/src/agentmail/templates.ts +111 -0
  33. package/src/agentmail/types.ts +51 -0
  34. package/src/artifact-sdk/browser-sdk.ts +30 -0
  35. package/src/artifact-sdk/index.ts +2 -0
  36. package/src/artifact-sdk/localtunnel.d.ts +20 -0
  37. package/src/artifact-sdk/port.ts +12 -0
  38. package/src/artifact-sdk/server.ts +156 -0
  39. package/src/artifact-sdk/tunnel.ts +19 -0
  40. package/src/be/chunking.ts +193 -0
  41. package/src/be/db-queries/oauth.ts +90 -0
  42. package/src/be/db-queries/tracker.ts +182 -0
  43. package/src/be/db.ts +3327 -784
  44. package/src/be/embedding.ts +80 -0
  45. package/src/be/migrations/001_initial.sql +409 -0
  46. package/src/be/migrations/002_one_time_schedules.sql +59 -0
  47. package/src/be/migrations/003_workflows.sql +51 -0
  48. package/src/be/migrations/004_workflow_source.sql +81 -0
  49. package/src/be/migrations/005_epic_next_steps.sql +2 -0
  50. package/src/be/migrations/006_vcs_provider.sql +94 -0
  51. package/src/be/migrations/007_task_dir.sql +2 -0
  52. package/src/be/migrations/008_workflow_redesign.sql +85 -0
  53. package/src/be/migrations/009_tracker_integration.sql +144 -0
  54. package/src/be/migrations/010_step_diagnostics.sql +1 -0
  55. package/src/be/migrations/011_step_next_port.sql +1 -0
  56. package/src/be/migrations/012_trigger_schema.sql +1 -0
  57. package/src/be/migrations/013_task_output_schema.sql +2 -0
  58. package/src/be/migrations/014_prompt_templates.sql +33 -0
  59. package/src/be/migrations/015_workflow_workspace.sql +3 -0
  60. package/src/be/migrations/016_active_session_runner_session.sql +4 -0
  61. package/src/be/migrations/017_channel_activity_cursors.sql +6 -0
  62. package/src/be/migrations/018_fix_seed_double_version.sql +30 -0
  63. package/src/be/migrations/runner.ts +188 -0
  64. package/src/be/seed.ts +62 -0
  65. package/src/cli.tsx +231 -299
  66. package/src/commands/artifact.ts +241 -0
  67. package/src/commands/onboard/compose-generator.ts +169 -0
  68. package/src/commands/onboard/env-generator.ts +79 -0
  69. package/src/commands/onboard/manifest.ts +37 -0
  70. package/src/commands/onboard/presets.ts +85 -0
  71. package/src/commands/onboard/service-names.ts +47 -0
  72. package/src/commands/onboard/steps/core-credentials.tsx +111 -0
  73. package/src/commands/onboard/steps/custom-templates.tsx +168 -0
  74. package/src/commands/onboard/steps/generate.tsx +154 -0
  75. package/src/commands/onboard/steps/harness-credentials.tsx +195 -0
  76. package/src/commands/onboard/steps/harness.tsx +21 -0
  77. package/src/commands/onboard/steps/health-check.tsx +171 -0
  78. package/src/commands/onboard/steps/integration-github.tsx +105 -0
  79. package/src/commands/onboard/steps/integration-gitlab.tsx +79 -0
  80. package/src/commands/onboard/steps/integration-menu.tsx +58 -0
  81. package/src/commands/onboard/steps/integration-sentry.tsx +79 -0
  82. package/src/commands/onboard/steps/integration-slack.tsx +165 -0
  83. package/src/commands/onboard/steps/post-connect.tsx +145 -0
  84. package/src/commands/onboard/steps/post-dashboard.tsx +34 -0
  85. package/src/commands/onboard/steps/post-task.tsx +103 -0
  86. package/src/commands/onboard/steps/prereq-check.tsx +178 -0
  87. package/src/commands/onboard/steps/review.tsx +82 -0
  88. package/src/commands/onboard/steps/start.tsx +97 -0
  89. package/src/commands/onboard/templates.ts +34 -0
  90. package/src/commands/onboard/types.ts +259 -0
  91. package/src/commands/onboard.tsx +425 -0
  92. package/src/commands/runner.ts +1540 -630
  93. package/src/commands/setup.tsx +23 -38
  94. package/src/commands/shared/client-config.ts +41 -0
  95. package/src/commands/templates.ts +172 -0
  96. package/src/github/app.ts +8 -0
  97. package/src/github/handlers.ts +384 -151
  98. package/src/github/index.ts +1 -0
  99. package/src/github/mentions-aliases.test.ts +73 -0
  100. package/src/github/mentions.test.ts +3 -3
  101. package/src/github/mentions.ts +32 -6
  102. package/src/github/templates.ts +398 -0
  103. package/src/github/types.ts +1 -0
  104. package/src/gitlab/auth.ts +63 -0
  105. package/src/gitlab/handlers.ts +368 -0
  106. package/src/gitlab/index.ts +19 -0
  107. package/src/gitlab/reactions.ts +104 -0
  108. package/src/gitlab/templates.ts +140 -0
  109. package/src/gitlab/types.ts +130 -0
  110. package/src/heartbeat/heartbeat.ts +434 -0
  111. package/src/heartbeat/index.ts +1 -0
  112. package/src/heartbeat/templates.ts +30 -0
  113. package/src/hooks/hook.ts +555 -4
  114. package/src/hooks/tool-loop-detection.test.ts +158 -0
  115. package/src/hooks/tool-loop-detection.ts +167 -0
  116. package/src/http/active-sessions.ts +199 -0
  117. package/src/http/agents.ts +328 -0
  118. package/src/http/config.ts +191 -0
  119. package/src/http/core.ts +309 -0
  120. package/src/http/db-query.ts +91 -0
  121. package/src/http/ecosystem.ts +63 -0
  122. package/src/http/epics.ts +460 -0
  123. package/src/http/index.ts +216 -0
  124. package/src/http/mcp.ts +77 -0
  125. package/src/http/memory.ts +168 -0
  126. package/src/http/openapi.ts +109 -0
  127. package/src/http/poll.ts +299 -0
  128. package/src/http/prompt-templates.ts +412 -0
  129. package/src/http/repos.ts +195 -0
  130. package/src/http/route-def.ts +123 -0
  131. package/src/http/schedules.ts +426 -0
  132. package/src/http/session-data.ts +241 -0
  133. package/src/http/stats.ts +174 -0
  134. package/src/http/tasks.ts +468 -0
  135. package/src/http/trackers/index.ts +10 -0
  136. package/src/http/trackers/linear.ts +187 -0
  137. package/src/http/types.ts +12 -0
  138. package/src/http/utils.ts +87 -0
  139. package/src/http/webhooks.ts +432 -0
  140. package/src/http/workflows.ts +530 -0
  141. package/src/http.ts +1 -1890
  142. package/src/linear/README.md +65 -0
  143. package/src/linear/app.ts +48 -0
  144. package/src/linear/client.ts +18 -0
  145. package/src/linear/index.ts +1 -0
  146. package/src/linear/oauth.ts +35 -0
  147. package/src/linear/outbound.ts +212 -0
  148. package/src/linear/sync.ts +567 -0
  149. package/src/linear/templates.ts +47 -0
  150. package/src/linear/types.ts +7 -0
  151. package/src/linear/webhook.ts +104 -0
  152. package/src/oauth/README.md +66 -0
  153. package/src/oauth/index.ts +6 -0
  154. package/src/oauth/wrapper.ts +204 -0
  155. package/src/prompts/base-prompt.ts +150 -265
  156. package/src/prompts/defaults.ts +196 -0
  157. package/src/prompts/registry.ts +57 -0
  158. package/src/prompts/resolver.ts +296 -0
  159. package/src/prompts/session-templates.ts +604 -0
  160. package/src/providers/claude-adapter.ts +442 -0
  161. package/src/providers/index.ts +24 -0
  162. package/src/providers/pi-mono-adapter.ts +442 -0
  163. package/src/providers/pi-mono-extension.ts +624 -0
  164. package/src/providers/pi-mono-mcp-client.ts +124 -0
  165. package/src/providers/types.ts +75 -0
  166. package/src/scheduler/scheduler.test.ts +2 -0
  167. package/src/scheduler/scheduler.ts +231 -40
  168. package/src/server.ts +97 -6
  169. package/src/slack/HEURISTICS.md +105 -0
  170. package/src/slack/actions.ts +133 -0
  171. package/src/slack/app.ts +7 -0
  172. package/src/slack/assistant.ts +118 -0
  173. package/src/slack/blocks.ts +233 -0
  174. package/src/slack/channel-activity.ts +177 -0
  175. package/src/slack/commands.ts +31 -17
  176. package/src/slack/files.ts +1 -1
  177. package/src/slack/handlers.test.ts +114 -1
  178. package/src/slack/handlers.ts +230 -55
  179. package/src/slack/responses.ts +120 -67
  180. package/src/slack/router.ts +17 -99
  181. package/src/slack/templates.ts +55 -0
  182. package/src/slack/thread-buffer.ts +213 -0
  183. package/src/slack/watcher.ts +119 -4
  184. package/src/tests/agent-activity.test.ts +247 -0
  185. package/src/tests/agentmail-filters.test.ts +97 -0
  186. package/src/tests/artifact-sdk.test.ts +800 -0
  187. package/src/tests/base-prompt.test.ts +264 -0
  188. package/src/tests/build-pi-skills.test.ts +127 -0
  189. package/src/tests/channel-activity.test.ts +363 -0
  190. package/src/tests/claude-adapter.test.ts +126 -0
  191. package/src/tests/context-versioning.test.ts +425 -0
  192. package/src/tests/db-queries-oauth.test.ts +197 -0
  193. package/src/tests/db-queries-tracker.test.ts +230 -0
  194. package/src/tests/epics.test.ts +3 -3
  195. package/src/tests/error-tracker.test.ts +368 -0
  196. package/src/tests/fetch-resolved-env.test.ts +167 -0
  197. package/src/tests/generate-default-claude-md.test.ts +9 -1
  198. package/src/tests/generate-identity-templates.test.ts +124 -0
  199. package/src/tests/gitlab-auth.test.ts +109 -0
  200. package/src/tests/gitlab-handlers.test.ts +691 -0
  201. package/src/tests/gitlab-vcs-db.test.ts +177 -0
  202. package/src/tests/heartbeat.test.ts +364 -0
  203. package/src/tests/http-api-integration.test.ts +1698 -0
  204. package/src/tests/linear-outbound-sync.test.ts +200 -0
  205. package/src/tests/linear-webhook.test.ts +406 -0
  206. package/src/tests/match-route.test.ts +187 -0
  207. package/src/tests/memory.test.ts +737 -0
  208. package/src/tests/migration-runner-regressions.test.ts +86 -0
  209. package/src/tests/model-control.test.ts +338 -0
  210. package/src/tests/oauth-wrapper.test.ts +147 -0
  211. package/src/tests/onboard-compose.test.ts +138 -0
  212. package/src/tests/onboard-env.test.ts +174 -0
  213. package/src/tests/onboard-manifest.test.ts +137 -0
  214. package/src/tests/pi-mono-adapter.test.ts +234 -0
  215. package/src/tests/pool-session-logs.test.ts +199 -0
  216. package/src/tests/progress-dedup.test.ts +98 -0
  217. package/src/tests/prompt-template-github.test.ts +682 -0
  218. package/src/tests/prompt-template-remaining.test.ts +504 -0
  219. package/src/tests/prompt-template-resolver.test.ts +621 -0
  220. package/src/tests/prompt-template-session.test.ts +363 -0
  221. package/src/tests/prompt-templates-db.test.ts +616 -0
  222. package/src/tests/provider-adapter.test.ts +122 -0
  223. package/src/tests/provider-command-format.test.ts +98 -0
  224. package/src/tests/reload-config.test.ts +170 -0
  225. package/src/tests/runner-polling-api.test.ts +25 -20
  226. package/src/tests/scheduled-tasks.test.ts +104 -0
  227. package/src/tests/scheduler-backoff.test.ts +166 -0
  228. package/src/tests/self-improvement.test.ts +541 -0
  229. package/src/tests/session-attach.test.ts +536 -0
  230. package/src/tests/session-costs.test.ts +267 -1
  231. package/src/tests/slack-actions.test.ts +133 -0
  232. package/src/tests/slack-assistant.test.ts +136 -0
  233. package/src/tests/slack-blocks.test.ts +246 -0
  234. package/src/tests/slack-metadata-inheritance.test.ts +243 -0
  235. package/src/tests/slack-queue-offline.test.ts +174 -0
  236. package/src/tests/slack-router.test.ts +181 -0
  237. package/src/tests/slack-thread-buffer.test.ts +305 -0
  238. package/src/tests/slack-thread-followups.test.ts +298 -0
  239. package/src/tests/slack-watcher.test.ts +101 -0
  240. package/src/tests/structured-output.test.ts +307 -0
  241. package/src/tests/swarm-repos.test.ts +198 -0
  242. package/src/tests/task-cancellation.test.ts +6 -4
  243. package/src/tests/task-working-dir.test.ts +176 -0
  244. package/src/tests/template-fetch.test.ts +490 -0
  245. package/src/tests/tool-annotations.test.ts +371 -0
  246. package/src/tests/tracker-tools.test.ts +184 -0
  247. package/src/tests/update-profile-agentid.test.ts +248 -0
  248. package/src/tests/update-profile-api.test.ts +143 -3
  249. package/src/tests/update-profile-auth.test.ts +195 -0
  250. package/src/tests/validation-adapters.test.ts +86 -0
  251. package/src/tests/vcs-provider.test.ts +27 -0
  252. package/src/tests/workflow-agent-task.test.ts +196 -0
  253. package/src/tests/workflow-async-v2.test.ts +508 -0
  254. package/src/tests/workflow-convergence.test.ts +541 -0
  255. package/src/tests/workflow-definition-validation.test.ts +366 -0
  256. package/src/tests/workflow-engine-v2.test.ts +691 -0
  257. package/src/tests/workflow-executors.test.ts +736 -0
  258. package/src/tests/workflow-http-v2.test.ts +599 -0
  259. package/src/tests/workflow-integration-io.test.ts +902 -0
  260. package/src/tests/workflow-io-schemas.test.ts +624 -0
  261. package/src/tests/workflow-registry.test.ts +592 -0
  262. package/src/tests/workflow-retry-v2.test.ts +401 -0
  263. package/src/tests/workflow-retry-validation.test.ts +282 -0
  264. package/src/tests/workflow-schedule-trigger.test.ts +104 -0
  265. package/src/tests/workflow-template.test.ts +288 -0
  266. package/src/tests/workflow-trigger-schema.test.ts +359 -0
  267. package/src/tests/workflow-triggers-v2.test.ts +264 -0
  268. package/src/tests/workflow-versions.test.ts +208 -0
  269. package/src/tests/workflow-workspace.test.ts +272 -0
  270. package/src/tests/x402-client.test.ts +117 -0
  271. package/src/tests/x402-config.test.ts +182 -0
  272. package/src/tests/x402-spending-tracker.test.ts +185 -0
  273. package/src/tools/cancel-task.ts +2 -0
  274. package/src/tools/context-diff.ts +171 -0
  275. package/src/tools/context-history.ts +138 -0
  276. package/src/tools/create-channel.ts +1 -0
  277. package/src/tools/db-query.ts +78 -0
  278. package/src/tools/delete-channel.ts +132 -0
  279. package/src/tools/epics/assign-task-to-epic.ts +1 -0
  280. package/src/tools/epics/create-epic.ts +3 -2
  281. package/src/tools/epics/delete-epic.ts +2 -0
  282. package/src/tools/epics/get-epic-details.ts +2 -0
  283. package/src/tools/epics/list-epics.ts +2 -0
  284. package/src/tools/epics/unassign-task-from-epic.ts +1 -0
  285. package/src/tools/epics/update-epic.ts +7 -4
  286. package/src/tools/get-swarm.ts +2 -0
  287. package/src/tools/get-task-details.ts +2 -0
  288. package/src/tools/get-tasks.ts +27 -1
  289. package/src/tools/inject-learning.ts +106 -0
  290. package/src/tools/join-swarm.ts +17 -7
  291. package/src/tools/list-channels.ts +2 -0
  292. package/src/tools/list-services.ts +2 -0
  293. package/src/tools/memory-get.ts +56 -0
  294. package/src/tools/memory-search.ts +131 -0
  295. package/src/tools/my-agent-info.ts +2 -0
  296. package/src/tools/poll-task.ts +2 -20
  297. package/src/tools/post-message.ts +1 -0
  298. package/src/tools/prompt-templates/delete.ts +86 -0
  299. package/src/tools/prompt-templates/get.ts +89 -0
  300. package/src/tools/prompt-templates/index.ts +5 -0
  301. package/src/tools/prompt-templates/list.ts +95 -0
  302. package/src/tools/prompt-templates/preview.ts +84 -0
  303. package/src/tools/prompt-templates/set.ts +117 -0
  304. package/src/tools/read-messages.ts +2 -0
  305. package/src/tools/register-agentmail-inbox.ts +166 -0
  306. package/src/tools/register-service.ts +2 -0
  307. package/src/tools/schedules/create-schedule.ts +134 -24
  308. package/src/tools/schedules/delete-schedule.ts +2 -0
  309. package/src/tools/schedules/list-schedules.ts +20 -4
  310. package/src/tools/schedules/run-schedule-now.ts +1 -0
  311. package/src/tools/schedules/update-schedule.ts +49 -17
  312. package/src/tools/send-task.ts +132 -10
  313. package/src/tools/slack-download-file.ts +4 -2
  314. package/src/tools/slack-list-channels.ts +2 -0
  315. package/src/tools/slack-post.ts +2 -0
  316. package/src/tools/slack-read.ts +2 -0
  317. package/src/tools/slack-reply.ts +2 -0
  318. package/src/tools/slack-upload-file.ts +2 -0
  319. package/src/tools/store-progress.ts +205 -4
  320. package/src/tools/swarm-config/delete-config.ts +87 -0
  321. package/src/tools/swarm-config/get-config.ts +108 -0
  322. package/src/tools/swarm-config/index.ts +4 -0
  323. package/src/tools/swarm-config/list-config.ts +99 -0
  324. package/src/tools/swarm-config/set-config.ts +118 -0
  325. package/src/tools/task-action.ts +50 -5
  326. package/src/tools/task-dedup.ts +97 -0
  327. package/src/tools/templates.ts +53 -0
  328. package/src/tools/tool-config.ts +124 -0
  329. package/src/tools/tracker/index.ts +6 -0
  330. package/src/tools/tracker/tracker-link-epic.ts +64 -0
  331. package/src/tools/tracker/tracker-link-task.ts +64 -0
  332. package/src/tools/tracker/tracker-map-agent.ts +57 -0
  333. package/src/tools/tracker/tracker-status.ts +56 -0
  334. package/src/tools/tracker/tracker-sync-status.ts +42 -0
  335. package/src/tools/tracker/tracker-unlink.ts +41 -0
  336. package/src/tools/unregister-service.ts +2 -0
  337. package/src/tools/update-profile.ts +172 -17
  338. package/src/tools/update-service-status.ts +2 -0
  339. package/src/tools/utils.ts +10 -1
  340. package/src/tools/workflows/create-workflow.ts +129 -0
  341. package/src/tools/workflows/delete-workflow.ts +42 -0
  342. package/src/tools/workflows/get-workflow-run.ts +59 -0
  343. package/src/tools/workflows/get-workflow.ts +53 -0
  344. package/src/tools/workflows/index.ts +9 -0
  345. package/src/tools/workflows/list-workflow-runs.ts +48 -0
  346. package/src/tools/workflows/list-workflows.ts +42 -0
  347. package/src/tools/workflows/retry-workflow-run.ts +40 -0
  348. package/src/tools/workflows/trigger-workflow.ts +96 -0
  349. package/src/tools/workflows/update-workflow.ts +133 -0
  350. package/src/tracker/types.ts +51 -0
  351. package/src/types.ts +530 -14
  352. package/src/utils/credentials.test.ts +156 -0
  353. package/src/utils/credentials.ts +50 -0
  354. package/src/utils/error-tracker.ts +190 -0
  355. package/src/vcs/index.ts +15 -0
  356. package/src/vcs/types.ts +5 -0
  357. package/src/workflows/checkpoint.ts +121 -0
  358. package/src/workflows/cooldown.ts +28 -0
  359. package/src/workflows/definition.ts +235 -0
  360. package/src/workflows/engine.ts +580 -0
  361. package/src/workflows/event-bus.ts +29 -0
  362. package/src/workflows/executors/agent-task.ts +103 -0
  363. package/src/workflows/executors/base.ts +86 -0
  364. package/src/workflows/executors/code-match.ts +88 -0
  365. package/src/workflows/executors/index.ts +16 -0
  366. package/src/workflows/executors/notify.ts +93 -0
  367. package/src/workflows/executors/property-match.ts +104 -0
  368. package/src/workflows/executors/raw-llm.ts +83 -0
  369. package/src/workflows/executors/registry.ts +76 -0
  370. package/src/workflows/executors/script.ts +103 -0
  371. package/src/workflows/executors/validate.ts +215 -0
  372. package/src/workflows/executors/vcs.ts +58 -0
  373. package/src/workflows/index.ts +61 -0
  374. package/src/workflows/input.ts +46 -0
  375. package/src/workflows/json-schema-validator.ts +118 -0
  376. package/src/workflows/recovery.ts +139 -0
  377. package/src/workflows/resume.ts +229 -0
  378. package/src/workflows/retry-poller.ts +216 -0
  379. package/src/workflows/template.ts +74 -0
  380. package/src/workflows/templates.ts +86 -0
  381. package/src/workflows/triggers.ts +124 -0
  382. package/src/workflows/validation.ts +104 -0
  383. package/src/workflows/version.ts +44 -0
  384. package/src/x402/cli.ts +140 -0
  385. package/src/x402/client.ts +192 -0
  386. package/src/x402/config.ts +131 -0
  387. package/src/x402/index.ts +37 -0
  388. package/src/x402/openfort-signer.ts +83 -0
  389. package/src/x402/spending-tracker.ts +109 -0
  390. package/templates/official/coder/CLAUDE.md +49 -0
  391. package/templates/official/coder/IDENTITY.md +28 -0
  392. package/templates/official/coder/SOUL.md +43 -0
  393. package/templates/official/coder/TOOLS.md +40 -0
  394. package/templates/official/coder/config.json +23 -0
  395. package/templates/official/coder/start-up.sh +23 -0
  396. package/templates/official/content-reviewer/CLAUDE.md +68 -0
  397. package/templates/official/content-reviewer/IDENTITY.md +28 -0
  398. package/templates/official/content-reviewer/SOUL.md +44 -0
  399. package/templates/official/content-reviewer/TOOLS.md +37 -0
  400. package/templates/official/content-reviewer/config.json +23 -0
  401. package/templates/official/content-reviewer/start-up.sh +23 -0
  402. package/templates/official/content-strategist/CLAUDE.md +63 -0
  403. package/templates/official/content-strategist/IDENTITY.md +33 -0
  404. package/templates/official/content-strategist/SOUL.md +48 -0
  405. package/templates/official/content-strategist/TOOLS.md +47 -0
  406. package/templates/official/content-strategist/config.json +23 -0
  407. package/templates/official/content-strategist/start-up.sh +23 -0
  408. package/templates/official/content-writer/CLAUDE.md +72 -0
  409. package/templates/official/content-writer/IDENTITY.md +30 -0
  410. package/templates/official/content-writer/SOUL.md +46 -0
  411. package/templates/official/content-writer/TOOLS.md +44 -0
  412. package/templates/official/content-writer/config.json +23 -0
  413. package/templates/official/content-writer/start-up.sh +23 -0
  414. package/templates/official/forward-deployed-engineer/CLAUDE.md +54 -0
  415. package/templates/official/forward-deployed-engineer/IDENTITY.md +37 -0
  416. package/templates/official/forward-deployed-engineer/SOUL.md +55 -0
  417. package/templates/official/forward-deployed-engineer/config.json +21 -0
  418. package/templates/official/lead/CLAUDE.md +33 -0
  419. package/templates/official/lead/IDENTITY.md +36 -0
  420. package/templates/official/lead/SOUL.md +51 -0
  421. package/templates/official/lead/config.json +22 -0
  422. package/templates/official/researcher/CLAUDE.md +46 -0
  423. package/templates/official/researcher/IDENTITY.md +28 -0
  424. package/templates/official/researcher/SOUL.md +43 -0
  425. package/templates/official/researcher/config.json +21 -0
  426. package/templates/official/reviewer/CLAUDE.md +63 -0
  427. package/templates/official/reviewer/IDENTITY.md +28 -0
  428. package/templates/official/reviewer/SOUL.md +45 -0
  429. package/templates/official/reviewer/config.json +21 -0
  430. package/templates/official/tester/CLAUDE.md +53 -0
  431. package/templates/official/tester/IDENTITY.md +28 -0
  432. package/templates/official/tester/SOUL.md +55 -0
  433. package/templates/official/tester/config.json +21 -0
  434. package/templates/schema.ts +35 -0
  435. package/.claude/settings.local.json +0 -115
  436. package/.dockerignore +0 -61
  437. package/.editorconfig +0 -15
  438. package/.env.docker.example +0 -39
  439. package/.env.example +0 -40
  440. package/.github/workflows/ci.yml +0 -76
  441. package/.github/workflows/docker-and-deploy.yml +0 -117
  442. package/.wts-config.json +0 -4
  443. package/.wts-setup.ts +0 -102
  444. package/CLAUDE.md +0 -104
  445. package/CONTRIBUTING.md +0 -270
  446. package/DEPLOYMENT.md +0 -605
  447. package/Dockerfile +0 -57
  448. package/Dockerfile.worker +0 -157
  449. package/FAQ.md +0 -19
  450. package/MCP.md +0 -406
  451. package/UI.md +0 -40
  452. package/assets/agent-swarm-logo-orange.png +0 -0
  453. package/assets/agent-swarm-logo.png +0 -0
  454. package/assets/agent-swarm.mp4 +0 -0
  455. package/assets/agent-swarm.png +0 -0
  456. package/biome.json +0 -39
  457. package/deploy/DEPLOY.md +0 -60
  458. package/deploy/agent-swarm.service +0 -17
  459. package/deploy/docker-push.ts +0 -30
  460. package/deploy/install.ts +0 -85
  461. package/deploy/prod-db.ts +0 -42
  462. package/deploy/uninstall.ts +0 -12
  463. package/deploy/update.ts +0 -21
  464. package/docker-compose.example.yml +0 -159
  465. package/docker-entrypoint.sh +0 -352
  466. package/ecosystem.config.cjs +0 -66
  467. package/plugin/README.md +0 -1
  468. package/plugin/hooks/hooks.json +0 -71
  469. package/pyproject.toml +0 -9
  470. package/scripts/generate-mcp-docs.ts +0 -415
  471. package/slack-manifest.json +0 -71
  472. package/src/tests/get-inbox-message.test.ts +0 -145
  473. package/src/tools/get-inbox-message.ts +0 -89
  474. package/src/tools/inbox-delegate.ts +0 -113
  475. package/thoughts/shared/plans/2025-12-18-slack-integration.md +0 -1195
  476. package/thoughts/shared/plans/2025-12-19-agent-log-streaming.md +0 -732
  477. package/thoughts/shared/plans/2025-12-19-role-based-swarm-plugin.md +0 -361
  478. package/thoughts/shared/plans/2025-12-20-mobile-responsive-ui.md +0 -501
  479. package/thoughts/shared/plans/2025-12-20-startup-team-swarm.md +0 -560
  480. package/thoughts/shared/plans/2025-12-23-runner-level-polling.md +0 -934
  481. package/thoughts/shared/plans/2025-12-23-runner-session-logs.md +0 -1000
  482. package/thoughts/shared/plans/2025-12-23-worker-lead-spawn-triggers.md +0 -568
  483. package/thoughts/shared/plans/2026-01-09-inverse-teleport.md +0 -1516
  484. package/thoughts/shared/plans/2026-01-12-agent-rename-pm2-control.md +0 -1133
  485. package/thoughts/shared/plans/2026-01-12-github-app-integration.md +0 -380
  486. package/thoughts/shared/plans/2026-01-12-lead-inbox-model.md +0 -876
  487. package/thoughts/shared/plans/2026-01-12-ralph-wiggum-integration.md +0 -463
  488. package/thoughts/shared/plans/2026-01-13-agent-concurrency.md +0 -691
  489. package/thoughts/shared/plans/2026-01-13-github-assignment-handling.md +0 -690
  490. package/thoughts/shared/plans/2026-01-13-prevent-duplicate-trigger-processing.md +0 -1071
  491. package/thoughts/shared/plans/2026-01-14-fix-slack-thread-context.md +0 -507
  492. package/thoughts/shared/plans/2026-01-15-scheduled-tasks-implementation.md +0 -565
  493. package/thoughts/shared/plans/2026-01-15-usage-cost-tracking-ui.md +0 -1479
  494. package/thoughts/shared/plans/2026-01-16-epics-feature-implementation.md +0 -1230
  495. package/thoughts/shared/research/.gitkeep +0 -0
  496. package/thoughts/shared/research/2025-01-09-inverse-teleport-plan-review.md +0 -420
  497. package/thoughts/shared/research/2025-12-18-slack-integration.md +0 -442
  498. package/thoughts/shared/research/2025-12-19-agent-log-streaming.md +0 -339
  499. package/thoughts/shared/research/2025-12-19-agent-secrets-cli-research.md +0 -390
  500. package/thoughts/shared/research/2025-12-21-gemini-cli-integration.md +0 -376
  501. package/thoughts/shared/research/2025-12-22-runner-loop-architecture.md +0 -582
  502. package/thoughts/shared/research/2025-12-22-setup-experience-improvements.md +0 -264
  503. package/thoughts/shared/research/2026-01-13-lead-duplicate-trigger-processing.md +0 -223
  504. package/thoughts/shared/research/2026-01-14-lead-slack-thread-context.md +0 -277
  505. package/thoughts/shared/research/2026-01-15-ai-tracker-agent-swarm-integration.md +0 -376
  506. package/thoughts/shared/research/2026-01-15-auto-starting-processes-in-worker-containers.md +0 -787
  507. package/thoughts/shared/research/2026-01-15-scheduled-tasks.md +0 -390
  508. package/thoughts/shared/research/2026-01-16-epics-feature-research.md +0 -437
  509. package/thoughts/taras/plans/2026-01-22-agent-swarm-schemas.md +0 -98
  510. package/thoughts/taras/plans/2026-01-28-per-worker-claude-md.md +0 -617
  511. package/thoughts/taras/plans/2026-01-28-sentry-cli-integration.md +0 -214
  512. package/thoughts/taras/research/2026-01-22-vercel-cli-integration.md +0 -287
  513. package/thoughts/taras/research/2026-01-27-excessive-polling-issue.md +0 -311
  514. package/thoughts/taras/research/2026-01-28-per-worker-claude-md.md +0 -383
  515. package/thoughts/taras/research/2026-01-28-sentry-cli-integration.md +0 -240
  516. package/tsconfig.json +0 -37
  517. package/ui/CLAUDE.md +0 -49
  518. package/ui/bun.lock +0 -771
  519. package/ui/index.html +0 -22
  520. package/ui/package-lock.json +0 -5290
  521. package/ui/package.json +0 -33
  522. package/ui/pnpm-lock.yaml +0 -3341
  523. package/ui/postcss.config.js +0 -6
  524. package/ui/public/logo.png +0 -0
  525. package/ui/src/App.tsx +0 -63
  526. package/ui/src/components/ActivityFeed.tsx +0 -440
  527. package/ui/src/components/AgentDetailPanel.tsx +0 -733
  528. package/ui/src/components/AgentsPanel.tsx +0 -815
  529. package/ui/src/components/ChatPanel.tsx +0 -1920
  530. package/ui/src/components/ConfigModal.tsx +0 -253
  531. package/ui/src/components/Dashboard.tsx +0 -832
  532. package/ui/src/components/EditAgentProfileModal.tsx +0 -433
  533. package/ui/src/components/EpicDetailPage.tsx +0 -741
  534. package/ui/src/components/EpicsPanel.tsx +0 -566
  535. package/ui/src/components/Header.tsx +0 -160
  536. package/ui/src/components/JsonViewer.tsx +0 -171
  537. package/ui/src/components/ScheduledTaskDetailPanel.tsx +0 -517
  538. package/ui/src/components/ScheduledTasksPanel.tsx +0 -639
  539. package/ui/src/components/ServicesPanel.tsx +0 -622
  540. package/ui/src/components/SessionLogPanel.tsx +0 -1219
  541. package/ui/src/components/StatsBar.tsx +0 -321
  542. package/ui/src/components/StatusBadge.tsx +0 -168
  543. package/ui/src/components/TaskDetailPanel.tsx +0 -903
  544. package/ui/src/components/TasksPanel.tsx +0 -614
  545. package/ui/src/components/UsageCharts.tsx +0 -216
  546. package/ui/src/components/UsageTab.tsx +0 -394
  547. package/ui/src/hooks/queries.ts +0 -353
  548. package/ui/src/hooks/useAutoScroll.ts +0 -83
  549. package/ui/src/index.css +0 -257
  550. package/ui/src/lib/api.ts +0 -268
  551. package/ui/src/lib/config.ts +0 -35
  552. package/ui/src/lib/contentPreview.ts +0 -208
  553. package/ui/src/lib/theme.ts +0 -214
  554. package/ui/src/lib/utils.ts +0 -88
  555. package/ui/src/main.tsx +0 -28
  556. package/ui/src/types/api.ts +0 -323
  557. package/ui/src/vite-env.d.ts +0 -1
  558. package/ui/tailwind.config.js +0 -37
  559. package/ui/tsconfig.json +0 -31
  560. package/ui/vite.config.ts +0 -35
  561. /package/{thoughts/shared/plans → templates/community}/.gitkeep +0 -0
@@ -0,0 +1,135 @@
1
+ ---
2
+ name: implement-issue
3
+ description: Implement a GitHub issue or GitLab issue and create a PR/MR
4
+ ---
5
+
6
+ # Implement Issue
7
+
8
+ Read a GitHub or GitLab issue, implement the requested changes, and create a pull request / merge request.
9
+
10
+ **Provider detection:** Check the URL or remote to determine the VCS provider:
11
+ - If GitHub → use `gh issue view` / `gh pr create`
12
+ - If GitLab → use `glab issue view` / `glab mr create`
13
+
14
+ ## Arguments
15
+
16
+ - `issue-number-or-url`: Either an issue number (e.g., `123`) or a full URL (e.g., `https://github.com/owner/repo/issues/123` or `https://gitlab.com/group/project/-/issues/123`)
17
+
18
+ ## Workflow
19
+
20
+ ### 1. Parse the Input
21
+
22
+ If given a URL, extract the owner, repo, and issue number. If given just a number, use the current repository context.
23
+
24
+ ### 2. Fetch Issue Details
25
+
26
+ ```bash
27
+ gh issue view <issue-number> --json number,title,body,labels,comments
28
+ ```
29
+
30
+ Read and understand:
31
+ - What is being requested?
32
+ - Are there acceptance criteria?
33
+ - Any technical details or constraints mentioned?
34
+ - Check comments for additional context or clarifications
35
+
36
+ ### 3. Ensure Repository is Cloned
37
+
38
+ Clone the repository to your personal workspace if not already present:
39
+
40
+ ```bash
41
+ REPO_PATH=/workspace/personal/<repo-name>
42
+
43
+ if [ ! -d "$REPO_PATH" ]; then
44
+ gh repo clone <owner>/<repo> "$REPO_PATH"
45
+ fi
46
+
47
+ cd "$REPO_PATH"
48
+ git fetch origin
49
+ git checkout main
50
+ git pull origin main
51
+ ```
52
+
53
+ ### 4. Create a Feature Branch
54
+
55
+ ```bash
56
+ # Use a descriptive branch name based on the issue
57
+ git checkout -b fix/issue-<number>-<short-description>
58
+
59
+ # Examples:
60
+ # git checkout -b fix/issue-123-add-dark-mode
61
+ # git checkout -b fix/issue-456-fix-login-redirect
62
+ ```
63
+
64
+ ### 5. Implement the Changes
65
+
66
+ This is the core work. Based on the issue:
67
+
68
+ 1. **Understand the codebase** - Explore relevant files, understand existing patterns
69
+ 2. **Plan your approach** - Consider using plan creation for complex changes
70
+ 3. **Write the code** - Implement the requested functionality
71
+ 4. **Test your changes** - Run existing tests, add new tests if appropriate
72
+ 5. **Verify it works** - Manual verification where possible
73
+
74
+ Keep changes focused on what the issue requests. Avoid scope creep.
75
+
76
+ ### 6. Commit Your Changes
77
+
78
+ ```bash
79
+ # Stage your changes
80
+ git add -A
81
+
82
+ # Commit with a message referencing the issue
83
+ git commit -m "Fix #<issue-number>: <short description>
84
+
85
+ <longer description if needed>"
86
+ ```
87
+
88
+ Use conventional commit style if the repo uses it (e.g., `feat:`, `fix:`, `docs:`).
89
+
90
+ ### 7. Push the Branch
91
+
92
+ ```bash
93
+ git push -u origin HEAD
94
+ ```
95
+
96
+ ### 8. Create the Pull Request
97
+
98
+ ```bash
99
+ gh pr create \
100
+ --title "<descriptive title>" \
101
+ --body "## Summary
102
+ <Brief description of what this PR does>
103
+
104
+ ## Changes
105
+ - <List key changes>
106
+
107
+ ## Testing
108
+ - <How you tested the changes>
109
+
110
+ Fixes #<issue-number>"
111
+ ```
112
+
113
+ The `Fixes #<number>` syntax will auto-close the issue when the PR is merged.
114
+
115
+ ### 9. Report Back
116
+
117
+ Provide the user with:
118
+ - PR URL
119
+ - Summary of changes made
120
+ - Any notes or caveats
121
+
122
+ Optionally, comment on the original issue:
123
+
124
+ ```bash
125
+ gh issue comment <issue-number> --body "I've created a PR to address this: <PR-URL>"
126
+ ```
127
+
128
+ ## Tips
129
+
130
+ - Read the issue thoroughly before starting - misunderstanding wastes time
131
+ - Check if there are related issues or existing PRs
132
+ - Keep PRs focused - one issue = one PR
133
+ - If the issue is too large, consider breaking it into smaller PRs
134
+ - If you get stuck or the issue is unclear, use `/skill:respond-github` to ask for clarification
135
+ - Run linters and tests before creating the PR
@@ -0,0 +1,138 @@
1
+ ---
2
+ name: investigate-sentry-issue
3
+ description: Investigate and triage a Sentry error issue
4
+ ---
5
+
6
+ # Investigate Sentry Issue
7
+
8
+ Investigate a Sentry issue to understand the error, gather context, and prepare for fixing or triaging.
9
+
10
+ ## Prerequisites
11
+
12
+ Environment variables `SENTRY_AUTH_TOKEN` and `SENTRY_ORG` must be set (they are pre-configured in the worker environment).
13
+
14
+ Verify authentication:
15
+ ```bash
16
+ sentry-cli info
17
+ ```
18
+
19
+ ## Arguments
20
+
21
+ - `sentry-issue-url-or-id`: Either a Sentry issue URL (e.g., `https://sentry.io/organizations/myorg/issues/123456/`) or just the issue ID (e.g., `123456`)
22
+
23
+ ## Workflow
24
+
25
+ ### 1. Parse the Sentry URL
26
+
27
+ If given a URL, extract the issue ID:
28
+ ```bash
29
+ # URL format: https://sentry.io/organizations/{org}/issues/{issue_id}/
30
+ # Extract issue_id from the URL path
31
+ ```
32
+
33
+ ### 2. Get Issue Overview
34
+
35
+ Use `sentry-cli` to list the issue:
36
+ ```bash
37
+ sentry-cli issues list --id <issue-id>
38
+ ```
39
+
40
+ ### 3. Get Detailed Issue Information
41
+
42
+ For more context, use the REST API:
43
+ ```bash
44
+ curl -s "https://sentry.io/api/0/organizations/${SENTRY_ORG}/issues/<issue-id>/" \
45
+ -H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" | jq
46
+ ```
47
+
48
+ This returns:
49
+ - Error title and metadata
50
+ - First/last seen timestamps
51
+ - Event count and user impact
52
+ - Assigned user and status
53
+
54
+ ### 4. Get Full Stacktrace
55
+
56
+ The recommended event provides the best debugging context:
57
+ ```bash
58
+ curl -s "https://sentry.io/api/0/organizations/${SENTRY_ORG}/issues/<issue-id>/events/recommended/" \
59
+ -H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" | jq
60
+ ```
61
+
62
+ Key fields in the response:
63
+ - `.entries[] | select(.type == "exception")` - The exception with stacktrace
64
+ - `.entries[] | select(.type == "breadcrumbs")` - Actions leading to the error
65
+ - `.tags` - Environment, browser, OS info
66
+ - `.context` - Custom context data
67
+
68
+ ### 5. Extract Stacktrace Frames
69
+
70
+ To see the actual stack:
71
+ ```bash
72
+ curl -s "https://sentry.io/api/0/organizations/${SENTRY_ORG}/issues/<issue-id>/events/recommended/" \
73
+ -H "Authorization: Bearer ${SENTRY_AUTH_TOKEN}" | \
74
+ jq '.entries[] | select(.type == "exception") | .data.values[].stacktrace.frames'
75
+ ```
76
+
77
+ ### 6. Analyze and Report
78
+
79
+ Based on the stacktrace and context:
80
+ 1. Identify the failing file and line number
81
+ 2. Understand the error type and message
82
+ 3. Review breadcrumbs for the sequence of events
83
+ 4. Check tags for environment-specific issues
84
+
85
+ ### 7. Take Action (if appropriate)
86
+
87
+ **Resolve an issue:**
88
+ ```bash
89
+ sentry-cli issues resolve <issue-id>
90
+ ```
91
+
92
+ **Mute an issue:**
93
+ ```bash
94
+ sentry-cli issues mute <issue-id>
95
+ ```
96
+
97
+ **Unresolve an issue:**
98
+ ```bash
99
+ sentry-cli issues unresolve <issue-id>
100
+ ```
101
+
102
+ ## Common CLI Commands
103
+
104
+ ```bash
105
+ # Verify authentication
106
+ sentry-cli info
107
+
108
+ # List unresolved issues
109
+ sentry-cli issues list --query "is:unresolved"
110
+
111
+ # List recent issues (last 2 days)
112
+ sentry-cli issues list --query "lastSeen:-2d"
113
+
114
+ # List issues matching a message
115
+ sentry-cli issues list --query "message:undefined"
116
+
117
+ # Bulk resolve issues
118
+ sentry-cli issues resolve <id1> <id2> <id3>
119
+ ```
120
+
121
+ ## Search Query Syntax
122
+
123
+ Use these filters with `--query`:
124
+
125
+ | Filter | Example | Description |
126
+ |--------|---------|-------------|
127
+ | `is:` | `is:unresolved`, `is:resolved` | Issue status |
128
+ | `lastSeen:` | `lastSeen:-2d` | Seen within time range |
129
+ | `message:` | `message:undefined` | Match error message |
130
+ | `issue.category:` | `issue.category:error` | Error category |
131
+
132
+ ## Tips
133
+
134
+ - Always get the recommended event first - it's curated for debugging
135
+ - Use `jq` to filter large JSON responses
136
+ - Check breadcrumbs to understand user actions before the error
137
+ - Look at tags for environment info (browser, OS, etc.)
138
+ - If investigating from a Slack alert, the issue URL is in the alert message
@@ -0,0 +1,98 @@
1
+ ---
2
+ name: respond-github
3
+ description: Respond to a GitHub issue/PR or GitLab issue/MR
4
+ ---
5
+
6
+ # Respond to VCS Issue/PR/MR
7
+
8
+ Post a response to a GitHub issue/PR or GitLab issue/MR.
9
+
10
+ **Provider detection:** Check the URL or remote to determine the VCS provider:
11
+ - If GitHub → use `gh issue comment` / `gh pr comment`
12
+ - If GitLab → use `glab issue note` / `glab mr note`
13
+
14
+ ## Arguments
15
+
16
+ - `issue-or-pr-number-or-url`: Either a number (e.g., `123`) or a full URL (e.g., `https://github.com/owner/repo/issues/123` or `https://gitlab.com/group/project/-/issues/123`)
17
+
18
+ ## Workflow
19
+
20
+ ### 1. Parse the Input
21
+
22
+ If given a URL, extract:
23
+ - Owner and repo
24
+ - Whether it's an issue or PR (from the URL path)
25
+ - The number
26
+
27
+ If given just a number, use the current repository context and check if it's an issue or PR.
28
+
29
+ ### 2. Ensure Repository is Cloned Locally
30
+
31
+ Make sure the repository is available in your personal workspace:
32
+
33
+ ```bash
34
+ REPO_PATH=/workspace/personal/<repo-name>
35
+
36
+ if [ ! -d "$REPO_PATH" ]; then
37
+ gh repo clone <owner>/<repo> "$REPO_PATH"
38
+ fi
39
+
40
+ cd "$REPO_PATH"
41
+ ```
42
+
43
+ ### 3. Get Full Context
44
+
45
+ For issues:
46
+ ```bash
47
+ gh issue view <number> --json title,body,author,labels,comments,state
48
+ ```
49
+
50
+ For PRs:
51
+ ```bash
52
+ gh pr view <number> --json title,body,author,comments,state,reviews
53
+ ```
54
+
55
+ ### 4. Understand What's Being Asked
56
+
57
+ Read through:
58
+ - The original issue/PR description
59
+ - All comments in the thread
60
+ - Any specific questions or requests
61
+
62
+ If this is a task from agent-swarm with `@agent-swarm` mention, focus on what was asked in that mention.
63
+
64
+ ### 5. Formulate Your Response
65
+
66
+ Consider:
67
+ - What specific question or request needs addressing?
68
+ - Do you need to provide code examples?
69
+ - Should you ask clarifying questions?
70
+ - Is this something you can resolve, or do you need human input?
71
+
72
+ ### 6. Post the Response
73
+
74
+ For issues:
75
+ ```bash
76
+ gh issue comment <number> --body "Your response"
77
+ ```
78
+
79
+ For PRs:
80
+ ```bash
81
+ gh pr comment <number> --body "Your response"
82
+ ```
83
+
84
+ ## Response Guidelines
85
+
86
+ - Be helpful and constructive
87
+ - If you don't know something, say so
88
+ - Provide code examples when relevant
89
+ - Use markdown formatting for readability
90
+ - Keep responses focused and concise
91
+ - If you've completed work, link to the relevant PR or commit
92
+
93
+ ## Tips
94
+
95
+ - Check if there's already a PR addressing an issue before responding
96
+ - If asked to implement something, consider whether to respond first or just do it
97
+ - For complex requests, acknowledge receipt and outline your plan
98
+ - Tag relevant people with `@username` if needed
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: review-offered-task
3
+ description: Review a task that has been offered to you and decide whether to accept or reject it
4
+ ---
5
+
6
+ # Review Offered Task
7
+
8
+ You have been offered a task. Your job is to review it and decide whether to accept or reject it based on your capabilities and current workload.
9
+
10
+ ## Workflow
11
+
12
+ 1. **Get task details**: Call the `get-task-details` tool with the provided `taskId` to understand what the task involves.
13
+
14
+ 2. **Evaluate the task**: Consider:
15
+ - Does this task match your capabilities?
16
+ - Do you have the necessary context or access to complete it?
17
+ - Is the task description clear enough to proceed?
18
+
19
+ 3. **Make a decision**:
20
+ - **Accept**: If you can complete this task, call `task-action` with `action: "accept"` and `taskId: "<taskId>"`. Then immediately use `/skill:work-on-task <taskId>` to start working on it.
21
+ - **Reject**: If you cannot complete this task, call `task-action` with `action: "reject"`, `taskId: "<taskId>"`, and provide a `reason` explaining why you're rejecting it (e.g., "Task requires Python expertise which I don't have", "Task description is too vague").
22
+
23
+ ## Example Accept Flow
24
+
25
+ ```
26
+ 1. get-task-details taskId="abc-123"
27
+ 2. [Review the task details]
28
+ 3. task-action action="accept" taskId="abc-123"
29
+ 4. /skill:work-on-task abc-123
30
+ ```
31
+
32
+ ## Example Reject Flow
33
+
34
+ ```
35
+ 1. get-task-details taskId="abc-123"
36
+ 2. [Review the task details]
37
+ 3. task-action action="reject" taskId="abc-123" reason="Task requires access to production database which I don't have"
38
+ 4. Reply "DONE" to end the session
39
+ ```
40
+
41
+ ## Important Notes
42
+
43
+ - Always provide a clear reason when rejecting a task - this helps the lead agent reassign it appropriately
44
+ - If you accept, you must immediately start working on the task using `/skill:work-on-task`
45
+ - If you reject, the task returns to the unassigned pool for reassignment
@@ -0,0 +1,261 @@
1
+ ---
2
+ name: review-pr
3
+ description: Review a pull request (GitHub) or merge request (GitLab) and provide detailed feedback
4
+ ---
5
+
6
+ # Review Pull Request / Merge Request
7
+
8
+ Review a pull request (GitHub) or merge request (GitLab) by analyzing the changes and providing structured feedback.
9
+
10
+ **Provider detection:** Check the remote URL or the provided URL to determine the VCS provider:
11
+ - If GitHub → use `gh pr` commands
12
+ - If GitLab → use `glab mr` commands
13
+
14
+ ## Arguments
15
+
16
+ - `pr-number-or-url`: Either a PR number (e.g., `123`) or a full GitHub PR URL (e.g., `https://github.com/owner/repo/pull/123`)
17
+
18
+ ## Workflow
19
+
20
+ ### 1. Parse the Input
21
+
22
+ If given a URL, extract the owner, repo, and PR number. If given just a number, use the current repository context.
23
+
24
+ ### 2. Ensure Repository is Cloned Locally
25
+
26
+ Before reviewing, make sure the repository is cloned in your personal workspace:
27
+
28
+ ```bash
29
+ # Clone to your personal workspace
30
+ REPO_PATH=/workspace/personal/<repo-name>
31
+
32
+ if [ ! -d "$REPO_PATH" ]; then
33
+ gh repo clone <owner>/<repo> "$REPO_PATH"
34
+ fi
35
+
36
+ cd "$REPO_PATH"
37
+ git fetch origin
38
+ ```
39
+
40
+ ### 3. Checkout the PR Branch
41
+
42
+ ```bash
43
+ gh pr checkout <pr-number>
44
+ ```
45
+
46
+ ### 4. Fetch PR Details
47
+
48
+ ```bash
49
+ gh pr view <pr-number> --json title,body,author,headRefName,baseRefName,additions,deletions,changedFiles
50
+ ```
51
+
52
+ ### 5. Get the Diff
53
+
54
+ ```bash
55
+ gh pr diff <pr-number>
56
+ ```
57
+
58
+ ### 6. Check CI Status (MANDATORY)
59
+
60
+ Before analyzing the code, check if CI checks are passing:
61
+
62
+ ```bash
63
+ # GitHub
64
+ gh pr checks <pr-number>
65
+
66
+ # GitLab
67
+ glab mr view <mr-number> --json pipelines
68
+ ```
69
+
70
+ **If CI checks are failing, this is an automatic REQUEST_CHANGES.** Do not approve a PR with failing CI. Include the failing check names and any relevant error details in your review.
71
+
72
+ ### 7. Verify Tests Are Included (MANDATORY)
73
+
74
+ Check that the PR includes test changes:
75
+
76
+ ```bash
77
+ # Look for test files in the diff
78
+ gh pr diff <pr-number> | grep -E '^\+\+\+ b/.*\.(test|spec)\.' || echo "NO TEST FILES CHANGED"
79
+ ```
80
+
81
+ **If the PR modifies code but does not add or update tests, this is an automatic REQUEST_CHANGES.** Every code change must include corresponding tests. The only exceptions are:
82
+ - Pure documentation changes (README, comments only)
83
+ - Configuration-only changes (CI config, linter config, env files)
84
+ - Dependency version bumps with no code changes
85
+
86
+ When requesting changes for missing tests, be specific about what tests are needed.
87
+
88
+ ### 8. Analyze the Changes
89
+
90
+ Review the diff for:
91
+ - **Security issues**: SQL injection, XSS, command injection, secrets in code
92
+ - **Logic errors**: Off-by-one errors, null handling, edge cases
93
+ - **Performance concerns**: N+1 queries, unnecessary loops, memory leaks
94
+ - **Code quality**: Naming, complexity, duplication, missing error handling
95
+ - **Test coverage**: Are the included tests sufficient? Do they cover edge cases?
96
+
97
+ You can also:
98
+ - Run the test suite locally to verify tests pass
99
+ - Check for TypeScript errors with `bun tsc --noEmit` or equivalent
100
+ - Review the actual files in context, not just the diff
101
+
102
+ ### 9. Provide Structured Feedback
103
+
104
+ Format your review as:
105
+
106
+ ```markdown
107
+ ## PR Review: <title>
108
+
109
+ ### Summary
110
+ <Brief summary of what this PR does>
111
+
112
+ ### Findings
113
+
114
+ #### Critical Issues
115
+ <List any blocking issues that must be fixed>
116
+
117
+ #### Suggestions
118
+ <Non-blocking improvements to consider>
119
+
120
+ #### Positive Notes
121
+ <Good patterns or practices observed>
122
+
123
+ ### Verdict
124
+ <APPROVE | REQUEST_CHANGES | COMMENT>
125
+
126
+ <Overall recommendation>
127
+ ```
128
+
129
+ ### 10. Optionally Post the Review
130
+
131
+ If the user wants to post the review to GitHub:
132
+
133
+ ```bash
134
+ gh pr review <pr-number> --approve --body "Your review message"
135
+ # or
136
+ gh pr review <pr-number> --request-changes --body "Your review message"
137
+ # or
138
+ gh pr review <pr-number> --comment --body "Your review message"
139
+ ```
140
+
141
+ ### 11. Post Inline Comments on Specific Lines
142
+
143
+ For more detailed feedback, you can post inline comments directly on specific lines of code using the GitHub API:
144
+
145
+ #### Get the Commit SHA
146
+
147
+ First, get the latest commit SHA for the PR head:
148
+
149
+ ```bash
150
+ COMMIT_SHA=$(gh pr view <pr-number> --json headRefOid --jq '.headRefOid')
151
+ ```
152
+
153
+ #### Post an Inline Comment
154
+
155
+ Use `gh api` to post a comment on a specific line:
156
+
157
+ ```bash
158
+ gh api repos/<owner>/<repo>/pulls/<pr-number>/comments \
159
+ --method POST \
160
+ -f commit_id="$COMMIT_SHA" \
161
+ -f path="src/path/to/file.ts" \
162
+ -f line=42 \
163
+ -f side="RIGHT" \
164
+ -f body="Your inline comment here explaining the issue or suggestion."
165
+ ```
166
+
167
+ **Parameters:**
168
+ - `commit_id`: The SHA of the commit to comment on (use the PR head commit)
169
+ - `path`: The relative path to the file being commented on
170
+ - `line`: The line number in the diff to attach the comment to
171
+ - `side`: Use `"RIGHT"` for the new code (additions), `"LEFT"` for removed code
172
+ - `body`: The comment text (supports markdown)
173
+
174
+ #### Example: Multiple Inline Comments
175
+
176
+ ```bash
177
+ # Get commit SHA once
178
+ COMMIT_SHA=$(gh pr view 123 --json headRefOid --jq '.headRefOid')
179
+
180
+ # Comment on a potential bug
181
+ gh api repos/owner/repo/pulls/123/comments \
182
+ --method POST \
183
+ -f commit_id="$COMMIT_SHA" \
184
+ -f path="src/utils/validate.ts" \
185
+ -f line=15 \
186
+ -f side="RIGHT" \
187
+ -f body="This could throw if \`input\` is undefined. Consider adding a null check."
188
+
189
+ # Comment on a security concern
190
+ gh api repos/owner/repo/pulls/123/comments \
191
+ --method POST \
192
+ -f commit_id="$COMMIT_SHA" \
193
+ -f path="src/api/handler.ts" \
194
+ -f line=28 \
195
+ -f side="RIGHT" \
196
+ -f body="⚠️ SQL injection risk: Use parameterized queries instead of string interpolation."
197
+ ```
198
+
199
+ ### 12. Re-reviewing and Resolving Comments
200
+
201
+ When the PR author makes changes in response to your review:
202
+
203
+ #### Re-review After Changes
204
+
205
+ Check for new commits and re-review the updated code:
206
+
207
+ ```bash
208
+ # Fetch latest changes
209
+ git fetch origin
210
+ gh pr checkout <pr-number>
211
+
212
+ # View commits since your last review
213
+ gh pr view <pr-number> --json commits --jq '.commits[-3:]'
214
+
215
+ # See the full updated diff
216
+ gh pr diff <pr-number>
217
+ ```
218
+
219
+ #### Follow Up on Previous Comments
220
+
221
+ When re-reviewing:
222
+ - Check if your previous concerns have been addressed
223
+ - Resolve comment threads that are now fixed
224
+ - Add follow-up comments if changes need further refinement
225
+
226
+ ```bash
227
+ # View existing review comments on the PR
228
+ gh api repos/<owner>/<repo>/pulls/<pr-number>/comments --jq '.[].body'
229
+
230
+ # Reply to a specific comment thread
231
+ gh api repos/<owner>/<repo>/pulls/<pr-number>/comments/<comment-id>/replies \
232
+ --method POST \
233
+ -f body="Thanks, this looks good now!"
234
+ ```
235
+
236
+ #### Resolve Conversations (via GitHub UI)
237
+
238
+ Comment threads are typically resolved through the GitHub web interface:
239
+ - Navigate to the PR's "Files changed" tab
240
+ - Click "Resolve conversation" on addressed comments
241
+ - This keeps the review history clean and shows progress
242
+
243
+ #### Update Your Review Status
244
+
245
+ After re-reviewing, update your overall review status:
246
+
247
+ ```bash
248
+ # If all issues are addressed
249
+ gh pr review <pr-number> --approve --body "All feedback addressed. LGTM!"
250
+
251
+ # If some issues remain
252
+ gh pr review <pr-number> --request-changes --body "A few items still need attention - see comments."
253
+ ```
254
+
255
+ ## Tips
256
+
257
+ - Focus on substantive issues, not style nitpicks
258
+ - Be constructive and explain why something is a problem
259
+ - Acknowledge good work when you see it
260
+ - If changes look good, say so clearly
261
+ - Having the repo cloned allows you to run tests and verify changes work