lastlight 0.1.15 → 0.2.1

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 (478) hide show
  1. package/README.md +265 -118
  2. package/agent-context/rules.md +62 -9
  3. package/agent-context/security.md +69 -0
  4. package/config/default.yaml +89 -0
  5. package/deploy/.env.production.example +20 -2
  6. package/deploy/entrypoint.sh +16 -17
  7. package/deploy/native/README.md +160 -0
  8. package/deploy/native/install.sh +110 -0
  9. package/deploy/native/lastlight.env.example +95 -0
  10. package/deploy/native/lastlight.service +50 -0
  11. package/deploy/sandbox-entrypoint.sh +59 -42
  12. package/dist/admin/auth.d.ts +1 -1
  13. package/dist/admin/auth.js +3 -1
  14. package/dist/admin/auth.js.map +1 -1
  15. package/dist/admin/chat-session-reader.d.ts +11 -14
  16. package/dist/admin/chat-session-reader.js +27 -51
  17. package/dist/admin/chat-session-reader.js.map +1 -1
  18. package/dist/admin/docker.d.ts +37 -0
  19. package/dist/admin/docker.js +86 -1
  20. package/dist/admin/docker.js.map +1 -1
  21. package/dist/admin/index.js +38 -3
  22. package/dist/admin/index.js.map +1 -1
  23. package/dist/admin/log-search.test.d.ts +1 -0
  24. package/dist/admin/log-search.test.js +78 -0
  25. package/dist/admin/log-search.test.js.map +1 -0
  26. package/dist/admin/routes.d.ts +52 -3
  27. package/dist/admin/routes.js +780 -63
  28. package/dist/admin/routes.js.map +1 -1
  29. package/dist/admin/routes.test.js +680 -14
  30. package/dist/admin/routes.test.js.map +1 -1
  31. package/dist/admin/server-logs.test.d.ts +1 -0
  32. package/dist/admin/server-logs.test.js +58 -0
  33. package/dist/admin/server-logs.test.js.map +1 -0
  34. package/dist/admin/sessions.d.ts +26 -39
  35. package/dist/admin/sessions.js +86 -310
  36. package/dist/admin/sessions.js.map +1 -1
  37. package/dist/admin/sessions.test.d.ts +1 -0
  38. package/dist/admin/sessions.test.js +78 -0
  39. package/dist/admin/sessions.test.js.map +1 -0
  40. package/dist/admin/version.d.ts +15 -0
  41. package/dist/admin/version.js +73 -0
  42. package/dist/admin/version.js.map +1 -0
  43. package/dist/admin/version.test.d.ts +1 -0
  44. package/dist/admin/version.test.js +71 -0
  45. package/dist/admin/version.test.js.map +1 -0
  46. package/dist/cli-config.d.ts +55 -0
  47. package/dist/cli-config.js +119 -0
  48. package/dist/cli-config.js.map +1 -0
  49. package/dist/cli-config.test.d.ts +1 -0
  50. package/dist/cli-config.test.js +92 -0
  51. package/dist/cli-config.test.js.map +1 -0
  52. package/dist/cli-format.d.ts +19 -0
  53. package/dist/cli-format.js +107 -0
  54. package/dist/cli-format.js.map +1 -0
  55. package/dist/cli-server.d.ts +73 -0
  56. package/dist/cli-server.js +347 -0
  57. package/dist/cli-server.js.map +1 -0
  58. package/dist/cli-server.test.d.ts +1 -0
  59. package/dist/cli-server.test.js +38 -0
  60. package/dist/cli-server.test.js.map +1 -0
  61. package/dist/cli-timeline.d.ts +35 -0
  62. package/dist/cli-timeline.js +373 -0
  63. package/dist/cli-timeline.js.map +1 -0
  64. package/dist/cli-timeline.test.d.ts +1 -0
  65. package/dist/cli-timeline.test.js +104 -0
  66. package/dist/cli-timeline.test.js.map +1 -0
  67. package/dist/cli.d.ts +0 -19
  68. package/dist/cli.js +910 -194
  69. package/dist/cli.js.map +1 -1
  70. package/dist/config-overlay.test.d.ts +1 -0
  71. package/dist/config-overlay.test.js +112 -0
  72. package/dist/config-overlay.test.js.map +1 -0
  73. package/dist/config-resolve.d.ts +28 -0
  74. package/dist/config-resolve.js +47 -0
  75. package/dist/config-resolve.js.map +1 -0
  76. package/dist/config-resolve.test.d.ts +1 -0
  77. package/dist/config-resolve.test.js +68 -0
  78. package/dist/config-resolve.test.js.map +1 -0
  79. package/dist/config.d.ts +62 -49
  80. package/dist/config.js +452 -76
  81. package/dist/config.js.map +1 -1
  82. package/dist/config.test.js +201 -32
  83. package/dist/config.test.js.map +1 -1
  84. package/dist/connectors/github-webhook.js +83 -5
  85. package/dist/connectors/github-webhook.js.map +1 -1
  86. package/dist/connectors/github-webhook.test.d.ts +1 -0
  87. package/dist/connectors/github-webhook.test.js +156 -0
  88. package/dist/connectors/github-webhook.test.js.map +1 -0
  89. package/dist/connectors/messaging/session-manager.d.ts +18 -0
  90. package/dist/connectors/messaging/session-manager.js +83 -2
  91. package/dist/connectors/messaging/session-manager.js.map +1 -1
  92. package/dist/connectors/messaging/session-manager.test.d.ts +1 -0
  93. package/dist/connectors/messaging/session-manager.test.js +144 -0
  94. package/dist/connectors/messaging/session-manager.test.js.map +1 -0
  95. package/dist/connectors/slack/connector.d.ts +9 -0
  96. package/dist/connectors/slack/connector.js +15 -0
  97. package/dist/connectors/slack/connector.js.map +1 -1
  98. package/dist/connectors/slack/mrkdwn.js +81 -0
  99. package/dist/connectors/slack/mrkdwn.js.map +1 -1
  100. package/dist/connectors/slack/mrkdwn.test.js +49 -0
  101. package/dist/connectors/slack/mrkdwn.test.js.map +1 -1
  102. package/dist/connectors/types.d.ts +1 -1
  103. package/dist/cron/fanout.d.ts +33 -0
  104. package/dist/cron/fanout.js +55 -0
  105. package/dist/cron/fanout.js.map +1 -0
  106. package/dist/cron/fanout.test.d.ts +1 -0
  107. package/dist/cron/fanout.test.js +73 -0
  108. package/dist/cron/fanout.test.js.map +1 -0
  109. package/dist/cron/jobs.d.ts +5 -0
  110. package/dist/cron/jobs.js +10 -3
  111. package/dist/cron/jobs.js.map +1 -1
  112. package/dist/cron/scheduler.d.ts +12 -0
  113. package/dist/cron/scheduler.js +27 -1
  114. package/dist/cron/scheduler.js.map +1 -1
  115. package/dist/engine/agent-executor.d.ts +158 -0
  116. package/dist/engine/agent-executor.js +1140 -0
  117. package/dist/engine/agent-executor.js.map +1 -0
  118. package/dist/engine/agent-executor.test.d.ts +1 -0
  119. package/dist/engine/agent-executor.test.js +395 -0
  120. package/dist/engine/agent-executor.test.js.map +1 -0
  121. package/dist/engine/chat-runner.d.ts +123 -0
  122. package/dist/engine/chat-runner.js +379 -0
  123. package/dist/engine/chat-runner.js.map +1 -0
  124. package/dist/engine/chat-runner.test.d.ts +1 -0
  125. package/dist/engine/chat-runner.test.js +104 -0
  126. package/dist/engine/chat-runner.test.js.map +1 -0
  127. package/dist/engine/chat-skills.d.ts +45 -0
  128. package/dist/engine/chat-skills.js +184 -0
  129. package/dist/engine/chat-skills.js.map +1 -0
  130. package/dist/engine/chat-skills.test.d.ts +1 -0
  131. package/dist/engine/chat-skills.test.js +20 -0
  132. package/dist/engine/chat-skills.test.js.map +1 -0
  133. package/dist/engine/chat.d.ts +20 -23
  134. package/dist/engine/chat.js +251 -155
  135. package/dist/engine/chat.js.map +1 -1
  136. package/dist/engine/chat.test.d.ts +1 -0
  137. package/dist/engine/chat.test.js +42 -0
  138. package/dist/engine/chat.test.js.map +1 -0
  139. package/dist/engine/classifier.d.ts +35 -2
  140. package/dist/engine/classifier.js +170 -31
  141. package/dist/engine/classifier.js.map +1 -1
  142. package/dist/engine/classifier.test.d.ts +1 -0
  143. package/dist/engine/classifier.test.js +115 -0
  144. package/dist/engine/classifier.test.js.map +1 -0
  145. package/dist/engine/dispatcher.d.ts +60 -0
  146. package/dist/engine/dispatcher.js +601 -0
  147. package/dist/engine/dispatcher.js.map +1 -0
  148. package/dist/engine/dispatcher.test.d.ts +1 -0
  149. package/dist/engine/dispatcher.test.js +511 -0
  150. package/dist/engine/dispatcher.test.js.map +1 -0
  151. package/dist/engine/event-shim.d.ts +117 -0
  152. package/dist/engine/event-shim.js +435 -0
  153. package/dist/engine/event-shim.js.map +1 -0
  154. package/dist/engine/event-shim.test.d.ts +1 -0
  155. package/dist/engine/event-shim.test.js +194 -0
  156. package/dist/engine/event-shim.test.js.map +1 -0
  157. package/dist/engine/git-auth.d.ts +13 -17
  158. package/dist/engine/git-auth.js +99 -42
  159. package/dist/engine/git-auth.js.map +1 -1
  160. package/dist/engine/git-auth.test.d.ts +1 -0
  161. package/dist/engine/git-auth.test.js +117 -0
  162. package/dist/engine/git-auth.test.js.map +1 -0
  163. package/dist/engine/github-app-client.d.ts +7 -0
  164. package/dist/engine/github-app-client.js +16 -0
  165. package/dist/engine/github-app-client.js.map +1 -0
  166. package/dist/engine/github-app-client.test.d.ts +1 -0
  167. package/dist/engine/github-app-client.test.js +44 -0
  168. package/dist/engine/github-app-client.test.js.map +1 -0
  169. package/dist/engine/github-tools.d.ts +12 -0
  170. package/dist/engine/github-tools.js +261 -0
  171. package/dist/engine/github-tools.js.map +1 -0
  172. package/dist/engine/github.d.ts +1027 -43
  173. package/dist/engine/github.js +153 -14
  174. package/dist/engine/github.js.map +1 -1
  175. package/dist/engine/llm.d.ts +47 -0
  176. package/dist/engine/llm.js +221 -0
  177. package/dist/engine/llm.js.map +1 -0
  178. package/dist/engine/llm.test.d.ts +1 -0
  179. package/dist/engine/llm.test.js +189 -0
  180. package/dist/engine/llm.test.js.map +1 -0
  181. package/dist/engine/profiles.d.ts +249 -0
  182. package/dist/engine/profiles.js +42 -0
  183. package/dist/engine/profiles.js.map +1 -0
  184. package/dist/engine/router.d.ts +12 -6
  185. package/dist/engine/router.js +339 -81
  186. package/dist/engine/router.js.map +1 -1
  187. package/dist/engine/router.test.js +428 -78
  188. package/dist/engine/router.test.js.map +1 -1
  189. package/dist/engine/screen.d.ts +41 -0
  190. package/dist/engine/screen.js +93 -0
  191. package/dist/engine/screen.js.map +1 -0
  192. package/dist/engine/screen.test.d.ts +1 -0
  193. package/dist/engine/screen.test.js +82 -0
  194. package/dist/engine/screen.test.js.map +1 -0
  195. package/dist/index.js +377 -432
  196. package/dist/index.js.map +1 -1
  197. package/dist/managed-repos.d.ts +7 -9
  198. package/dist/managed-repos.js +12 -15
  199. package/dist/managed-repos.js.map +1 -1
  200. package/dist/managed-repos.test.js +24 -19
  201. package/dist/managed-repos.test.js.map +1 -1
  202. package/dist/notify/index.d.ts +15 -0
  203. package/dist/notify/index.js +6 -0
  204. package/dist/notify/index.js.map +1 -0
  205. package/dist/notify/model.d.ts +57 -0
  206. package/dist/notify/model.js +89 -0
  207. package/dist/notify/model.js.map +1 -0
  208. package/dist/notify/model.test.d.ts +1 -0
  209. package/dist/notify/model.test.js +109 -0
  210. package/dist/notify/model.test.js.map +1 -0
  211. package/dist/notify/notifier.d.ts +17 -0
  212. package/dist/notify/notifier.js +87 -0
  213. package/dist/notify/notifier.js.map +1 -0
  214. package/dist/notify/notifier.test.d.ts +1 -0
  215. package/dist/notify/notifier.test.js +100 -0
  216. package/dist/notify/notifier.test.js.map +1 -0
  217. package/dist/notify/render.d.ts +21 -0
  218. package/dist/notify/render.js +59 -0
  219. package/dist/notify/render.js.map +1 -0
  220. package/dist/notify/render.test.d.ts +1 -0
  221. package/dist/notify/render.test.js +65 -0
  222. package/dist/notify/render.test.js.map +1 -0
  223. package/dist/notify/transports/github.d.ts +26 -0
  224. package/dist/notify/transports/github.js +26 -0
  225. package/dist/notify/transports/github.js.map +1 -0
  226. package/dist/notify/transports/slack.d.ts +26 -0
  227. package/dist/notify/transports/slack.js +28 -0
  228. package/dist/notify/transports/slack.js.map +1 -0
  229. package/dist/notify/transports.test.d.ts +1 -0
  230. package/dist/notify/transports.test.js +71 -0
  231. package/dist/notify/transports.test.js.map +1 -0
  232. package/dist/notify/types.d.ts +95 -0
  233. package/dist/notify/types.js +16 -0
  234. package/dist/notify/types.js.map +1 -0
  235. package/dist/sandbox/docker-compose.test.d.ts +1 -0
  236. package/dist/sandbox/docker-compose.test.js +128 -0
  237. package/dist/sandbox/docker-compose.test.js.map +1 -0
  238. package/dist/sandbox/docker.d.ts +97 -9
  239. package/dist/sandbox/docker.js +192 -41
  240. package/dist/sandbox/docker.js.map +1 -1
  241. package/dist/sandbox/docker.test.d.ts +1 -0
  242. package/dist/sandbox/docker.test.js +137 -0
  243. package/dist/sandbox/docker.test.js.map +1 -0
  244. package/dist/sandbox/egress-allowlist.d.ts +69 -0
  245. package/dist/sandbox/egress-allowlist.js +164 -0
  246. package/dist/sandbox/egress-allowlist.js.map +1 -0
  247. package/dist/sandbox/egress-allowlist.test.d.ts +1 -0
  248. package/dist/sandbox/egress-allowlist.test.js +65 -0
  249. package/dist/sandbox/egress-allowlist.test.js.map +1 -0
  250. package/dist/sandbox/egress-firewall-config.d.ts +127 -0
  251. package/dist/sandbox/egress-firewall-config.js +434 -0
  252. package/dist/sandbox/egress-firewall-config.js.map +1 -0
  253. package/dist/sandbox/egress-firewall-config.test.d.ts +1 -0
  254. package/dist/sandbox/egress-firewall-config.test.js +244 -0
  255. package/dist/sandbox/egress-firewall-config.test.js.map +1 -0
  256. package/dist/sandbox/images.d.ts +23 -0
  257. package/dist/sandbox/images.js +55 -0
  258. package/dist/sandbox/images.js.map +1 -0
  259. package/dist/sandbox/index.d.ts +82 -3
  260. package/dist/sandbox/index.js +223 -93
  261. package/dist/sandbox/index.js.map +1 -1
  262. package/dist/sandbox/index.test.d.ts +1 -0
  263. package/dist/sandbox/index.test.js +157 -0
  264. package/dist/sandbox/index.test.js.map +1 -0
  265. package/dist/session-log.d.ts +63 -0
  266. package/dist/session-log.js +290 -0
  267. package/dist/session-log.js.map +1 -0
  268. package/dist/session-log.test.d.ts +1 -0
  269. package/dist/session-log.test.js +85 -0
  270. package/dist/session-log.test.js.map +1 -0
  271. package/dist/setup.d.ts +30 -1
  272. package/dist/setup.js +241 -25
  273. package/dist/setup.js.map +1 -1
  274. package/dist/setup.test.js +138 -6
  275. package/dist/setup.test.js.map +1 -1
  276. package/dist/state/approval-store.d.ts +86 -0
  277. package/dist/state/approval-store.js +140 -0
  278. package/dist/state/approval-store.js.map +1 -0
  279. package/dist/state/build-assets.d.ts +50 -0
  280. package/dist/state/build-assets.js +154 -0
  281. package/dist/state/build-assets.js.map +1 -0
  282. package/dist/state/build-assets.test.d.ts +1 -0
  283. package/dist/state/build-assets.test.js +106 -0
  284. package/dist/state/build-assets.test.js.map +1 -0
  285. package/dist/state/db.d.ts +65 -333
  286. package/dist/state/db.js +112 -835
  287. package/dist/state/db.js.map +1 -1
  288. package/dist/state/db.test.js +127 -91
  289. package/dist/state/db.test.js.map +1 -1
  290. package/dist/state/execution-store.d.ts +257 -0
  291. package/dist/state/execution-store.js +527 -0
  292. package/dist/state/execution-store.js.map +1 -0
  293. package/dist/state/migrate.d.ts +15 -0
  294. package/dist/state/migrate.js +175 -0
  295. package/dist/state/migrate.js.map +1 -0
  296. package/dist/state/workflow-run-store.d.ts +195 -0
  297. package/dist/state/workflow-run-store.js +363 -0
  298. package/dist/state/workflow-run-store.js.map +1 -0
  299. package/dist/state/workflow-run-store.test.d.ts +1 -0
  300. package/dist/state/workflow-run-store.test.js +264 -0
  301. package/dist/state/workflow-run-store.test.js.map +1 -0
  302. package/dist/telemetry/index.d.ts +38 -0
  303. package/dist/telemetry/index.js +253 -0
  304. package/dist/telemetry/index.js.map +1 -0
  305. package/dist/telemetry/index.test.d.ts +1 -0
  306. package/dist/telemetry/index.test.js +73 -0
  307. package/dist/telemetry/index.test.js.map +1 -0
  308. package/dist/telemetry/pi-events.d.ts +12 -0
  309. package/dist/telemetry/pi-events.js +134 -0
  310. package/dist/telemetry/pi-events.js.map +1 -0
  311. package/dist/telemetry/pi-events.test.d.ts +1 -0
  312. package/dist/telemetry/pi-events.test.js +69 -0
  313. package/dist/telemetry/pi-events.test.js.map +1 -0
  314. package/dist/workflows/dag.d.ts +13 -1
  315. package/dist/workflows/dag.js +7 -3
  316. package/dist/workflows/dag.js.map +1 -1
  317. package/dist/workflows/dag.test.js +22 -0
  318. package/dist/workflows/dag.test.js.map +1 -1
  319. package/dist/workflows/golden-build.test.d.ts +1 -0
  320. package/dist/workflows/golden-build.test.js +45 -0
  321. package/dist/workflows/golden-build.test.js.map +1 -0
  322. package/dist/workflows/loader-overlay.test.d.ts +1 -0
  323. package/dist/workflows/loader-overlay.test.js +101 -0
  324. package/dist/workflows/loader-overlay.test.js.map +1 -0
  325. package/dist/workflows/loader.d.ts +36 -11
  326. package/dist/workflows/loader.js +311 -87
  327. package/dist/workflows/loader.js.map +1 -1
  328. package/dist/workflows/loader.test.js +114 -10
  329. package/dist/workflows/loader.test.js.map +1 -1
  330. package/dist/workflows/loop-eval.js +2 -0
  331. package/dist/workflows/loop-eval.js.map +1 -1
  332. package/dist/workflows/loop-eval.test.js +14 -0
  333. package/dist/workflows/loop-eval.test.js.map +1 -1
  334. package/dist/workflows/phase-executor.d.ts +145 -0
  335. package/dist/workflows/phase-executor.js +691 -0
  336. package/dist/workflows/phase-executor.js.map +1 -0
  337. package/dist/workflows/phase-executor.test.d.ts +1 -0
  338. package/dist/workflows/phase-executor.test.js +434 -0
  339. package/dist/workflows/phase-executor.test.js.map +1 -0
  340. package/dist/workflows/phase-ref.d.ts +44 -0
  341. package/dist/workflows/phase-ref.js +78 -0
  342. package/dist/workflows/phase-ref.js.map +1 -0
  343. package/dist/workflows/phase-ref.test.d.ts +1 -0
  344. package/dist/workflows/phase-ref.test.js +24 -0
  345. package/dist/workflows/phase-ref.test.js.map +1 -0
  346. package/dist/workflows/resume.d.ts +5 -11
  347. package/dist/workflows/resume.js +88 -7
  348. package/dist/workflows/resume.js.map +1 -1
  349. package/dist/workflows/runner.d.ts +34 -27
  350. package/dist/workflows/runner.js +252 -930
  351. package/dist/workflows/runner.js.map +1 -1
  352. package/dist/workflows/runner.test.js +346 -35
  353. package/dist/workflows/runner.test.js.map +1 -1
  354. package/dist/workflows/schema.d.ts +52 -10
  355. package/dist/workflows/schema.js +147 -7
  356. package/dist/workflows/schema.js.map +1 -1
  357. package/dist/workflows/simple.d.ts +67 -3
  358. package/dist/workflows/simple.js +248 -87
  359. package/dist/workflows/simple.js.map +1 -1
  360. package/dist/workflows/simple.test.d.ts +1 -0
  361. package/dist/workflows/simple.test.js +107 -0
  362. package/dist/workflows/simple.test.js.map +1 -0
  363. package/dist/workflows/templates.d.ts +29 -0
  364. package/dist/workflows/templates.js +42 -4
  365. package/dist/workflows/templates.js.map +1 -1
  366. package/dist/workflows/templates.test.js +103 -0
  367. package/dist/workflows/templates.test.js.map +1 -1
  368. package/dist/workflows/triggers.d.ts +21 -0
  369. package/dist/workflows/triggers.js +44 -0
  370. package/dist/workflows/triggers.js.map +1 -0
  371. package/dist/workflows/verdict.d.ts +19 -0
  372. package/dist/workflows/verdict.js +30 -0
  373. package/dist/workflows/verdict.js.map +1 -0
  374. package/dist/workflows/verdict.test.d.ts +1 -0
  375. package/dist/workflows/verdict.test.js +44 -0
  376. package/dist/workflows/verdict.test.js.map +1 -0
  377. package/dist/worktree/manager.d.ts +1 -1
  378. package/dist/worktree/manager.js +14 -14
  379. package/dist/worktree/manager.js.map +1 -1
  380. package/dist/worktree/manager.test.d.ts +1 -0
  381. package/dist/worktree/manager.test.js +87 -0
  382. package/dist/worktree/manager.test.js.map +1 -0
  383. package/docker-compose.yml +206 -5
  384. package/package.json +19 -9
  385. package/sandbox.Dockerfile +97 -18
  386. package/skills/README.md +40 -0
  387. package/skills/browser-qa/SKILL.md +193 -0
  388. package/skills/browser-qa/scripts/agent-browser.mjs +380 -0
  389. package/skills/building/SKILL.md +95 -0
  390. package/skills/chat/SKILL.md +30 -11
  391. package/skills/code-review/SKILL.md +59 -0
  392. package/skills/debug-production/SKILL.md +108 -0
  393. package/skills/demo/SKILL.md +194 -0
  394. package/skills/demo/scripts/compose-demo.sh +205 -0
  395. package/skills/issue-answer/SKILL.md +90 -0
  396. package/skills/issue-comment/SKILL.md +38 -24
  397. package/skills/issue-triage/SKILL.md +103 -37
  398. package/skills/issue-triage/references/AGENT-BRIEF.md +61 -0
  399. package/skills/pr-comment/SKILL.md +64 -0
  400. package/skills/pr-review/SKILL.md +65 -49
  401. package/skills/qa-test/SKILL.md +97 -0
  402. package/skills/repo-health/SKILL.md +48 -45
  403. package/skills/security-feedback/SKILL.md +173 -0
  404. package/skills/security-feedback/references/templates.md +77 -0
  405. package/skills/security-review/SKILL.md +213 -0
  406. package/skills/security-review/references/issue-format.md +302 -0
  407. package/skills/verify/SKILL.md +118 -0
  408. package/workflows/answer.yaml +37 -0
  409. package/workflows/build.yaml +32 -22
  410. package/workflows/cron-security.yaml +6 -0
  411. package/workflows/demo.yaml +55 -0
  412. package/workflows/explore.yaml +9 -0
  413. package/workflows/pr-comment.yaml +16 -0
  414. package/workflows/pr-fix.yaml +3 -0
  415. package/workflows/pr-review.yaml +4 -1
  416. package/workflows/prompts/answer.md +67 -0
  417. package/workflows/prompts/architect.md +24 -7
  418. package/workflows/prompts/demo.md +100 -0
  419. package/workflows/prompts/executor.md +29 -20
  420. package/workflows/prompts/explore-ask.md +51 -22
  421. package/workflows/prompts/explore-publish.md +2 -2
  422. package/workflows/prompts/explore-read.md +24 -10
  423. package/workflows/prompts/explore-synthesize.md +15 -8
  424. package/workflows/prompts/fix.md +9 -10
  425. package/workflows/prompts/guardrails.md +26 -8
  426. package/workflows/prompts/pr-fix.md +6 -7
  427. package/workflows/prompts/pr.md +11 -10
  428. package/workflows/prompts/qa-browser.md +95 -0
  429. package/workflows/prompts/qa-synth.md +44 -0
  430. package/workflows/prompts/qa-test.md +60 -0
  431. package/workflows/prompts/re-reviewer.md +8 -9
  432. package/workflows/prompts/reviewer.md +10 -9
  433. package/workflows/prompts/verify-browser.md +93 -0
  434. package/workflows/prompts/verify-synth.md +44 -0
  435. package/workflows/prompts/verify.md +63 -0
  436. package/workflows/qa-test.yaml +87 -0
  437. package/workflows/security-feedback.yaml +25 -0
  438. package/workflows/security-review.yaml +29 -0
  439. package/workflows/verify.yaml +85 -0
  440. package/deploy/mcp-config.tmpl.json +0 -14
  441. package/dist/cron/rate-limits.d.ts +0 -26
  442. package/dist/cron/rate-limits.js +0 -193
  443. package/dist/cron/rate-limits.js.map +0 -1
  444. package/dist/engine/executor.d.ts +0 -75
  445. package/dist/engine/executor.js +0 -292
  446. package/dist/engine/executor.js.map +0 -1
  447. package/mcp-github-app/package.json +0 -18
  448. package/mcp-github-app/src/auth.js +0 -66
  449. package/mcp-github-app/src/github.js +0 -371
  450. package/mcp-github-app/src/index.js +0 -534
  451. package/skills/devops/webhook-subscriptions/SKILL.md +0 -180
  452. package/skills/github/DESCRIPTION.md +0 -3
  453. package/skills/github/codebase-inspection/SKILL.md +0 -115
  454. package/skills/github/github-auth/SKILL.md +0 -54
  455. package/skills/github/github-auth/scripts/gh-env.sh +0 -66
  456. package/skills/github/github-code-review/SKILL.md +0 -480
  457. package/skills/github/github-code-review/references/review-output-template.md +0 -74
  458. package/skills/github/github-issues/SKILL.md +0 -369
  459. package/skills/github/github-issues/templates/bug-report.md +0 -35
  460. package/skills/github/github-issues/templates/feature-request.md +0 -31
  461. package/skills/github/github-pr-workflow/SKILL.md +0 -395
  462. package/skills/github/github-pr-workflow/references/ci-troubleshooting.md +0 -183
  463. package/skills/github/github-pr-workflow/references/conventional-commits.md +0 -71
  464. package/skills/github/github-pr-workflow/templates/pr-body-bugfix.md +0 -35
  465. package/skills/github/github-pr-workflow/templates/pr-body-feature.md +0 -33
  466. package/skills/github/github-repo-management/SKILL.md +0 -515
  467. package/skills/github/github-repo-management/references/github-api-cheatsheet.md +0 -161
  468. package/skills/github-orchestrator/SKILL.md +0 -103
  469. package/skills/mcp/DESCRIPTION.md +0 -3
  470. package/skills/mcp/mcporter/SKILL.md +0 -122
  471. package/skills/mcp/native-mcp/SKILL.md +0 -356
  472. package/skills/software-development/architect/SKILL.md +0 -154
  473. package/skills/software-development/assure-guardrails/SKILL.md +0 -239
  474. package/skills/software-development/plan/SKILL.md +0 -64
  475. package/skills/software-development/requesting-code-review/SKILL.md +0 -291
  476. package/skills/software-development/subagent-driven-development/SKILL.md +0 -433
  477. package/skills/software-development/systematic-debugging/SKILL.md +0 -366
  478. package/skills/software-development/test-driven-development/SKILL.md +0 -342
@@ -1,433 +0,0 @@
1
- ---
2
- name: subagent-driven-development
3
- description: Use when executing implementation plans with independent tasks. Dispatches fresh delegate_task per task with two-stage review (spec compliance then code quality).
4
- version: 1.1.0
5
- author: Hermes Agent (adapted from obra/superpowers)
6
- license: MIT
7
- metadata:
8
- hermes:
9
- tags: [delegation, subagent, implementation, workflow, parallel]
10
- related_skills: [plan, requesting-code-review, test-driven-development]
11
- ---
12
-
13
- # Subagent-Driven Development
14
-
15
- ## Overview
16
-
17
- Execute implementation plans by dispatching fresh subagents per task with systematic two-stage review.
18
-
19
- **Core principle:** Fresh subagent per task + two-stage review (spec then quality) = high quality, fast iteration.
20
-
21
- ## GitHub-First Gate
22
-
23
- Before starting any implementation work, ensure a **GitHub issue** exists to track it:
24
- - If an issue already exists (e.g. from a webhook event), use it.
25
- - If the request came from Discord, Slack, or CLI with no linked issue, **create one first**
26
- in the appropriate managed repo. Use the request as the issue body.
27
- - Post progress updates (plan, task completion, review verdicts) as comments on the issue.
28
- - **Never start coding without a tracking issue.** The issue is the authorisation gate and audit trail.
29
-
30
- ## Guardrails Check
31
-
32
- Before dispatching the first task, run the `assure-guardrails` skill on the target repo.
33
- This verifies that test framework, linting, and type checking are in place. If any are
34
- missing (verdict: BLOCKED), create a guardrails issue, fix the foundations first, then
35
- resume. The build cycle depends on these: TDD needs tests, requesting-code-review needs
36
- lint/typecheck, the Reviewer needs tests to run.
37
-
38
- ## When to Use
39
-
40
- Use this skill when:
41
- - You have an implementation plan (from plan skill or user requirements)
42
- - Tasks are mostly independent
43
- - Quality and spec compliance are important
44
- - You want automated review between tasks
45
-
46
- **vs. manual execution:**
47
- - Fresh context per task (no confusion from accumulated state)
48
- - Automated review process catches issues early
49
- - Consistent quality checks across all tasks
50
- - Subagents can ask questions before starting work
51
-
52
- ## The Process
53
-
54
- ### 1. Read and Parse Plan
55
-
56
- Read the plan file. Extract ALL tasks with their full text and context upfront. Create a todo list:
57
-
58
- ```python
59
- # Read the plan
60
- read_file("docs/plans/feature-plan.md")
61
-
62
- # Create todo list with all tasks
63
- todo([
64
- {"id": "task-1", "content": "Create User model with email field", "status": "pending"},
65
- {"id": "task-2", "content": "Add password hashing utility", "status": "pending"},
66
- {"id": "task-3", "content": "Create login endpoint", "status": "pending"},
67
- ])
68
- ```
69
-
70
- **Key:** Read the plan ONCE. Extract everything. Don't make subagents read the plan file — provide the full task text directly in context.
71
-
72
- ### 2. Per-Task Workflow
73
-
74
- For EACH task in the plan:
75
-
76
- #### Step 1: Dispatch Implementer Subagent
77
-
78
- Use `delegate_task` with complete context and explicit role identity:
79
-
80
- ```python
81
- delegate_task(
82
- goal="Implement Task 1: Create User model with email and password_hash fields",
83
- context="""
84
- ROLE: You are the EXECUTOR. You implement precisely what the task spec
85
- requires, no more, no less. Keep going until the task is fully resolved.
86
- Do not claim completion without fresh verification output (test results,
87
- build output). Prefer the smallest viable diff. Do not broaden scope
88
- unless correctness requires it.
89
-
90
- TASK FROM PLAN:
91
- - Create: src/models/user.py
92
- - Add User class with email (str) and password_hash (str) fields
93
- - Use bcrypt for password hashing
94
- - Include __repr__ for debugging
95
-
96
- FOLLOW TDD:
97
- 1. Write failing test in tests/models/test_user.py
98
- 2. Run: pytest tests/models/test_user.py -v (verify FAIL)
99
- 3. Write minimal implementation
100
- 4. Run: pytest tests/models/test_user.py -v (verify PASS)
101
- 5. Run: pytest tests/ -q (verify no regressions)
102
- 6. Commit with Lore format:
103
- git add -A && git commit -m "feat: add User model with password hashing
104
-
105
- Tested: pytest tests/models/test_user.py -> all passing
106
- Scope-risk: low"
107
-
108
- PROJECT CONTEXT:
109
- - Python 3.11, Flask app in src/app.py
110
- - Existing models in src/models/
111
- - Tests use pytest, run from project root
112
- - bcrypt already in requirements.txt
113
- """,
114
- toolsets=['terminal', 'file']
115
- )
116
- ```
117
-
118
- #### Step 2: Dispatch Spec Compliance Reviewer
119
-
120
- After the implementer completes, verify against the original spec:
121
-
122
- ```python
123
- delegate_task(
124
- goal="Review if implementation matches the spec from the plan",
125
- context="""
126
- ROLE: You are the SPEC REVIEWER. You verify implementations against
127
- specifications. You do not fix code — you report gaps. Every finding
128
- must cite file:line evidence. You have no shared context with the
129
- implementer. Judge only by the spec and the code.
130
-
131
- ORIGINAL TASK SPEC:
132
- - Create src/models/user.py with User class
133
- - Fields: email (str), password_hash (str)
134
- - Use bcrypt for password hashing
135
- - Include __repr__
136
-
137
- CHECK:
138
- - [ ] All requirements from spec implemented?
139
- - [ ] File paths match spec?
140
- - [ ] Function signatures match spec?
141
- - [ ] Behavior matches expected?
142
- - [ ] Nothing extra added (no scope creep)?
143
-
144
- OUTPUT: PASS or list of specific spec gaps to fix (with file:line refs).
145
- """,
146
- toolsets=['file']
147
- )
148
- ```
149
-
150
- **If spec issues found:** Fix gaps, then re-run spec review. Continue only when spec-compliant.
151
-
152
- #### Step 3: Dispatch Code Quality Reviewer
153
-
154
- After spec compliance passes:
155
-
156
- ```python
157
- delegate_task(
158
- goal="Review code quality for Task 1 implementation",
159
- context="""
160
- ROLE: You are the CODE REVIEWER. Independent quality verification.
161
- You have no shared context with the implementer. Review only the code,
162
- not the process. Every finding must cite file:line evidence. You do not
163
- fix code — you report issues.
164
-
165
- FILES TO REVIEW:
166
- - src/models/user.py
167
- - tests/models/test_user.py
168
-
169
- CHECK:
170
- - [ ] Follows project conventions and style?
171
- - [ ] Proper error handling?
172
- - [ ] Clear variable/function names?
173
- - [ ] Adequate test coverage?
174
- - [ ] No obvious bugs or missed edge cases?
175
- - [ ] No security issues?
176
-
177
- OUTPUT FORMAT:
178
- - Critical Issues: [must fix before proceeding] (with file:line refs)
179
- - Important Issues: [should fix]
180
- - Minor Issues: [optional]
181
- - Verdict: APPROVED or REQUEST_CHANGES
182
- """,
183
- toolsets=['file']
184
- )
185
- ```
186
-
187
- **If quality issues found:** Fix issues, re-review. Continue only when approved.
188
-
189
- #### Step 4: Mark Complete
190
-
191
- ```python
192
- todo([{"id": "task-1", "content": "Create User model with email field", "status": "completed"}], merge=True)
193
- ```
194
-
195
- ### 3. Final Review
196
-
197
- After ALL tasks are complete, dispatch a final integration reviewer:
198
-
199
- ```python
200
- delegate_task(
201
- goal="Review the entire implementation for consistency and integration issues",
202
- context="""
203
- ROLE: You are the CODE REVIEWER performing integration review of
204
- THIS BRANCH'S CHANGES ONLY. You have no shared context with the
205
- implementers. You do not fix code — you report issues.
206
-
207
- SCOPE — CRITICAL:
208
- Review ONLY the files changed on this branch vs main. Get the scope first:
209
- git diff main --name-only # list of changed files
210
- git diff main # the actual changes
211
-
212
- Do NOT review unchanged files. Do NOT flag pre-existing issues.
213
- You may read unchanged files for context only if needed to understand
214
- a specific change.
215
-
216
- CHECK (on changed files only):
217
- - Do the changes work together as a cohesive whole?
218
- - Any inconsistencies between the tasks just completed?
219
- - All tests passing? (run them — do not assume)
220
- - Ready for merge?
221
-
222
- OUTPUT: APPROVED or REQUEST_CHANGES with specific issues (file:line refs).
223
- """,
224
- toolsets=['terminal', 'file']
225
- )
226
- ```
227
-
228
- ### 3b. Architect Completion Gate
229
-
230
- After the integration reviewer passes, dispatch an architect for a final completeness check.
231
- This is the "persistent until verified complete" gate — it catches gaps that individual task
232
- reviews miss because they lack the full picture.
233
-
234
- ```python
235
- delegate_task(
236
- goal="Architect completion verification — is this truly done?",
237
- context="""
238
- ROLE: You are the ARCHITECT. Read-only verification. You do not fix
239
- code — you assess completeness and architectural coherence.
240
-
241
- All tasks from the plan are implemented and have passed both spec
242
- compliance and code quality review.
243
-
244
- Verify the ENTIRE implementation against the original requirements:
245
- - Does the full implementation satisfy the original requirements?
246
- - Any gaps between what was planned and what was built?
247
- - Any architectural concerns with how the pieces fit together?
248
- - Are there loose ends, missing error paths, or untested edge cases?
249
- - Would you ship this? If not, what specifically is missing?
250
-
251
- ORIGINAL PLAN:
252
- [INSERT FULL PLAN CONTENT]
253
-
254
- OUTPUT FORMAT:
255
- - Verdict: COMPLETE or INCOMPLETE
256
- - If INCOMPLETE: specific gaps with file:line references
257
- - If COMPLETE: one-sentence confirmation
258
- """,
259
- toolsets=['terminal', 'file']
260
- )
261
- ```
262
-
263
- **If INCOMPLETE:** Create new tasks for the identified gaps, execute them through the
264
- same per-task workflow (Steps 2-3), and re-run the architect gate. Maximum 2 cycles —
265
- after that, report remaining gaps to the user.
266
-
267
- ### 4. Verify and Commit
268
-
269
- ```bash
270
- # Run full test suite
271
- pytest tests/ -q
272
-
273
- # Review all changes
274
- git diff --stat
275
-
276
- # Final commit if needed
277
- git add -A && git commit -m "feat: complete [feature name] implementation"
278
- ```
279
-
280
- ## Task Granularity
281
-
282
- **Each task = 2-5 minutes of focused work.**
283
-
284
- **Too big:**
285
- - "Implement user authentication system"
286
-
287
- **Right size:**
288
- - "Create User model with email and password fields"
289
- - "Add password hashing function"
290
- - "Create login endpoint"
291
- - "Add JWT token generation"
292
- - "Create registration endpoint"
293
-
294
- ## Red Flags — Never Do These
295
-
296
- - Start implementation without a plan
297
- - Skip reviews (spec compliance OR code quality)
298
- - Proceed with unfixed critical/important issues
299
- - Dispatch multiple implementation subagents for tasks that touch the same files
300
- - Make subagent read the plan file (provide full text in context instead)
301
- - Skip scene-setting context (subagent needs to understand where the task fits)
302
- - Ignore subagent questions (answer before letting them proceed)
303
- - Accept "close enough" on spec compliance
304
- - Skip review loops (reviewer found issues → implementer fixes → review again)
305
- - Let implementer self-review replace actual review (both are needed)
306
- - **Start code quality review before spec compliance is PASS** (wrong order)
307
- - Move to next task while either review has open issues
308
-
309
- ## Handling Issues
310
-
311
- ### If Subagent Asks Questions
312
-
313
- - Answer clearly and completely
314
- - Provide additional context if needed
315
- - Don't rush them into implementation
316
-
317
- ### If Reviewer Finds Issues
318
-
319
- - Implementer subagent (or a new one) fixes them
320
- - Reviewer reviews again
321
- - Repeat until approved
322
- - Don't skip the re-review
323
-
324
- ### If Subagent Fails a Task
325
-
326
- - Dispatch a new fix subagent with specific instructions about what went wrong
327
- - Don't try to fix manually in the controller session (context pollution)
328
-
329
- ## Efficiency Notes
330
-
331
- **Why fresh subagent per task:**
332
- - Prevents context pollution from accumulated state
333
- - Each subagent gets clean, focused context
334
- - No confusion from prior tasks' code or reasoning
335
-
336
- **Why two-stage review:**
337
- - Spec review catches under/over-building early
338
- - Quality review ensures the implementation is well-built
339
- - Catches issues before they compound across tasks
340
-
341
- **Cost trade-off:**
342
- - More subagent invocations (implementer + 2 reviewers per task)
343
- - But catches issues early (cheaper than debugging compounded problems later)
344
-
345
- ## Integration with Other Skills
346
-
347
- ### With plan
348
-
349
- This skill EXECUTES plans created by the plan skill:
350
- 1. User requirements → plan → implementation plan
351
- 2. Implementation plan → subagent-driven-development → working code
352
-
353
- ### With test-driven-development
354
-
355
- Implementer subagents should follow TDD:
356
- 1. Write failing test first
357
- 2. Implement minimal code
358
- 3. Verify test passes
359
- 4. Commit
360
-
361
- Include TDD instructions in every implementer context.
362
-
363
- ### With requesting-code-review
364
-
365
- The two-stage review process IS the code review. For final integration review, use the requesting-code-review skill's review dimensions.
366
-
367
- ### With systematic-debugging
368
-
369
- If a subagent encounters bugs during implementation:
370
- 1. Follow systematic-debugging process
371
- 2. Find root cause before fixing
372
- 3. Write regression test
373
- 4. Resume implementation
374
-
375
- ## Example Workflow
376
-
377
- ```
378
- [Read plan: docs/plans/auth-feature.md]
379
- [Create todo list with 5 tasks]
380
-
381
- --- Task 1: Create User model ---
382
- [Dispatch implementer subagent]
383
- Implementer: "Should email be unique?"
384
- You: "Yes, email must be unique"
385
- Implementer: Implemented, 3/3 tests passing, committed.
386
-
387
- [Dispatch spec reviewer]
388
- Spec reviewer: ✅ PASS — all requirements met
389
-
390
- [Dispatch quality reviewer]
391
- Quality reviewer: ✅ APPROVED — clean code, good tests
392
-
393
- [Mark Task 1 complete]
394
-
395
- --- Task 2: Password hashing ---
396
- [Dispatch implementer subagent]
397
- Implementer: No questions, implemented, 5/5 tests passing.
398
-
399
- [Dispatch spec reviewer]
400
- Spec reviewer: ❌ Missing: password strength validation (spec says "min 8 chars")
401
-
402
- [Implementer fixes]
403
- Implementer: Added validation, 7/7 tests passing.
404
-
405
- [Dispatch spec reviewer again]
406
- Spec reviewer: ✅ PASS
407
-
408
- [Dispatch quality reviewer]
409
- Quality reviewer: Important: Magic number 8, extract to constant
410
- Implementer: Extracted MIN_PASSWORD_LENGTH constant
411
- Quality reviewer: ✅ APPROVED
412
-
413
- [Mark Task 2 complete]
414
-
415
- ... (continue for all tasks)
416
-
417
- [After all tasks: dispatch final integration reviewer]
418
- [Run full test suite: all passing]
419
- [Done!]
420
- ```
421
-
422
- ## Remember
423
-
424
- ```
425
- Fresh subagent per task
426
- Two-stage review every time
427
- Spec compliance FIRST
428
- Code quality SECOND
429
- Never skip reviews
430
- Catch issues early
431
- ```
432
-
433
- **Quality is not an accident. It's the result of systematic process.**