@tacuchi/agent-workflow-cli 4.0.0

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 (423) hide show
  1. package/README.md +70 -0
  2. package/dist/adapters/git-cli.d.ts +13 -0
  3. package/dist/adapters/git-cli.d.ts.map +1 -0
  4. package/dist/adapters/git-cli.js +73 -0
  5. package/dist/adapters/git-cli.js.map +1 -0
  6. package/dist/adapters/node-env.d.ts +7 -0
  7. package/dist/adapters/node-env.d.ts.map +1 -0
  8. package/dist/adapters/node-env.js +13 -0
  9. package/dist/adapters/node-env.js.map +1 -0
  10. package/dist/adapters/node-file-system.d.ts +10 -0
  11. package/dist/adapters/node-file-system.d.ts.map +1 -0
  12. package/dist/adapters/node-file-system.js +35 -0
  13. package/dist/adapters/node-file-system.js.map +1 -0
  14. package/dist/adapters/node-process.d.ts +6 -0
  15. package/dist/adapters/node-process.d.ts.map +1 -0
  16. package/dist/adapters/node-process.js +53 -0
  17. package/dist/adapters/node-process.js.map +1 -0
  18. package/dist/application/artifacts-service.d.ts +58 -0
  19. package/dist/application/artifacts-service.d.ts.map +1 -0
  20. package/dist/application/artifacts-service.js +129 -0
  21. package/dist/application/artifacts-service.js.map +1 -0
  22. package/dist/application/auto-plan.d.ts +19 -0
  23. package/dist/application/auto-plan.d.ts.map +1 -0
  24. package/dist/application/auto-plan.js +190 -0
  25. package/dist/application/auto-plan.js.map +1 -0
  26. package/dist/application/check-branch-service.d.ts +31 -0
  27. package/dist/application/check-branch-service.d.ts.map +1 -0
  28. package/dist/application/check-branch-service.js +140 -0
  29. package/dist/application/check-branch-service.js.map +1 -0
  30. package/dist/application/checkpoint-service.d.ts +77 -0
  31. package/dist/application/checkpoint-service.d.ts.map +1 -0
  32. package/dist/application/checkpoint-service.js +259 -0
  33. package/dist/application/checkpoint-service.js.map +1 -0
  34. package/dist/application/checkpoint-write-service.d.ts +42 -0
  35. package/dist/application/checkpoint-write-service.d.ts.map +1 -0
  36. package/dist/application/checkpoint-write-service.js +354 -0
  37. package/dist/application/checkpoint-write-service.js.map +1 -0
  38. package/dist/application/code-scan-service.d.ts +44 -0
  39. package/dist/application/code-scan-service.d.ts.map +1 -0
  40. package/dist/application/code-scan-service.js +211 -0
  41. package/dist/application/code-scan-service.js.map +1 -0
  42. package/dist/application/decisiones-service.d.ts +22 -0
  43. package/dist/application/decisiones-service.d.ts.map +1 -0
  44. package/dist/application/decisiones-service.js +31 -0
  45. package/dist/application/decisiones-service.js.map +1 -0
  46. package/dist/application/dependencias-service.d.ts +21 -0
  47. package/dist/application/dependencias-service.d.ts.map +1 -0
  48. package/dist/application/dependencias-service.js +31 -0
  49. package/dist/application/dependencias-service.js.map +1 -0
  50. package/dist/application/dev-bootstrap-dsn-service.d.ts +16 -0
  51. package/dist/application/dev-bootstrap-dsn-service.d.ts.map +1 -0
  52. package/dist/application/dev-bootstrap-dsn-service.js +31 -0
  53. package/dist/application/dev-bootstrap-dsn-service.js.map +1 -0
  54. package/dist/application/dev-graduate-service.d.ts +33 -0
  55. package/dist/application/dev-graduate-service.d.ts.map +1 -0
  56. package/dist/application/dev-graduate-service.js +116 -0
  57. package/dist/application/dev-graduate-service.js.map +1 -0
  58. package/dist/application/dev-only-services.d.ts +50 -0
  59. package/dist/application/dev-only-services.d.ts.map +1 -0
  60. package/dist/application/dev-only-services.js +155 -0
  61. package/dist/application/dev-only-services.js.map +1 -0
  62. package/dist/application/handoff.d.ts +19 -0
  63. package/dist/application/handoff.d.ts.map +1 -0
  64. package/dist/application/handoff.js +98 -0
  65. package/dist/application/handoff.js.map +1 -0
  66. package/dist/application/history-data-service.d.ts +26 -0
  67. package/dist/application/history-data-service.d.ts.map +1 -0
  68. package/dist/application/history-data-service.js +61 -0
  69. package/dist/application/history-data-service.js.map +1 -0
  70. package/dist/application/history-table.d.ts +16 -0
  71. package/dist/application/history-table.d.ts.map +1 -0
  72. package/dist/application/history-table.js +49 -0
  73. package/dist/application/history-table.js.map +1 -0
  74. package/dist/application/history-update-service.d.ts +24 -0
  75. package/dist/application/history-update-service.d.ts.map +1 -0
  76. package/dist/application/history-update-service.js +47 -0
  77. package/dist/application/history-update-service.js.map +1 -0
  78. package/dist/application/hook-branch-check.d.ts +22 -0
  79. package/dist/application/hook-branch-check.d.ts.map +1 -0
  80. package/dist/application/hook-branch-check.js +152 -0
  81. package/dist/application/hook-branch-check.js.map +1 -0
  82. package/dist/application/hook-sql-mutation-guard.d.ts +13 -0
  83. package/dist/application/hook-sql-mutation-guard.d.ts.map +1 -0
  84. package/dist/application/hook-sql-mutation-guard.js +119 -0
  85. package/dist/application/hook-sql-mutation-guard.js.map +1 -0
  86. package/dist/application/markdown.d.ts +4 -0
  87. package/dist/application/markdown.d.ts.map +1 -0
  88. package/dist/application/markdown.js +53 -0
  89. package/dist/application/markdown.js.map +1 -0
  90. package/dist/application/mcp-dbhub-launcher.d.ts +31 -0
  91. package/dist/application/mcp-dbhub-launcher.d.ts.map +1 -0
  92. package/dist/application/mcp-dbhub-launcher.js +84 -0
  93. package/dist/application/mcp-dbhub-launcher.js.map +1 -0
  94. package/dist/application/multiroot-service.d.ts +83 -0
  95. package/dist/application/multiroot-service.d.ts.map +1 -0
  96. package/dist/application/multiroot-service.js +440 -0
  97. package/dist/application/multiroot-service.js.map +1 -0
  98. package/dist/application/objetivo-service.d.ts +23 -0
  99. package/dist/application/objetivo-service.d.ts.map +1 -0
  100. package/dist/application/objetivo-service.js +32 -0
  101. package/dist/application/objetivo-service.js.map +1 -0
  102. package/dist/application/orchestration.d.ts +29 -0
  103. package/dist/application/orchestration.d.ts.map +1 -0
  104. package/dist/application/orchestration.js +291 -0
  105. package/dist/application/orchestration.js.map +1 -0
  106. package/dist/application/parsers/decisiones.d.ts +9 -0
  107. package/dist/application/parsers/decisiones.d.ts.map +1 -0
  108. package/dist/application/parsers/decisiones.js +55 -0
  109. package/dist/application/parsers/decisiones.js.map +1 -0
  110. package/dist/application/parsers/dependencias.d.ts +7 -0
  111. package/dist/application/parsers/dependencias.d.ts.map +1 -0
  112. package/dist/application/parsers/dependencias.js +76 -0
  113. package/dist/application/parsers/dependencias.js.map +1 -0
  114. package/dist/application/parsers/objetivo.d.ts +11 -0
  115. package/dist/application/parsers/objetivo.d.ts.map +1 -0
  116. package/dist/application/parsers/objetivo.js +73 -0
  117. package/dist/application/parsers/objetivo.js.map +1 -0
  118. package/dist/application/parsers/project-block.d.ts +35 -0
  119. package/dist/application/parsers/project-block.d.ts.map +1 -0
  120. package/dist/application/parsers/project-block.js +188 -0
  121. package/dist/application/parsers/project-block.js.map +1 -0
  122. package/dist/application/parsers/tasks.d.ts +17 -0
  123. package/dist/application/parsers/tasks.d.ts.map +1 -0
  124. package/dist/application/parsers/tasks.js +40 -0
  125. package/dist/application/parsers/tasks.js.map +1 -0
  126. package/dist/application/paths-service.d.ts +28 -0
  127. package/dist/application/paths-service.d.ts.map +1 -0
  128. package/dist/application/paths-service.js +67 -0
  129. package/dist/application/paths-service.js.map +1 -0
  130. package/dist/application/paths.d.ts +2 -0
  131. package/dist/application/paths.d.ts.map +1 -0
  132. package/dist/application/paths.js +12 -0
  133. package/dist/application/paths.js.map +1 -0
  134. package/dist/application/phase-detect-service.d.ts +28 -0
  135. package/dist/application/phase-detect-service.d.ts.map +1 -0
  136. package/dist/application/phase-detect-service.js +141 -0
  137. package/dist/application/phase-detect-service.js.map +1 -0
  138. package/dist/application/phase-next-service.d.ts +20 -0
  139. package/dist/application/phase-next-service.d.ts.map +1 -0
  140. package/dist/application/phase-next-service.js +97 -0
  141. package/dist/application/phase-next-service.js.map +1 -0
  142. package/dist/application/plugin-doctor-service.d.ts +60 -0
  143. package/dist/application/plugin-doctor-service.d.ts.map +1 -0
  144. package/dist/application/plugin-doctor-service.js +651 -0
  145. package/dist/application/plugin-doctor-service.js.map +1 -0
  146. package/dist/application/project-md-service.d.ts +13 -0
  147. package/dist/application/project-md-service.d.ts.map +1 -0
  148. package/dist/application/project-md-service.js +27 -0
  149. package/dist/application/project-md-service.js.map +1 -0
  150. package/dist/application/project-md-upsert-service.d.ts +48 -0
  151. package/dist/application/project-md-upsert-service.d.ts.map +1 -0
  152. package/dist/application/project-md-upsert-service.js +182 -0
  153. package/dist/application/project-md-upsert-service.js.map +1 -0
  154. package/dist/application/release-data-service.d.ts +81 -0
  155. package/dist/application/release-data-service.d.ts.map +1 -0
  156. package/dist/application/release-data-service.js +305 -0
  157. package/dist/application/release-data-service.js.map +1 -0
  158. package/dist/application/render/history-row.d.ts +10 -0
  159. package/dist/application/render/history-row.d.ts.map +1 -0
  160. package/dist/application/render/history-row.js +47 -0
  161. package/dist/application/render/history-row.js.map +1 -0
  162. package/dist/application/render/project-block.d.ts +17 -0
  163. package/dist/application/render/project-block.d.ts.map +1 -0
  164. package/dist/application/render/project-block.js +129 -0
  165. package/dist/application/render/project-block.js.map +1 -0
  166. package/dist/application/self/doctor-self.d.ts +27 -0
  167. package/dist/application/self/doctor-self.d.ts.map +1 -0
  168. package/dist/application/self/doctor-self.js +44 -0
  169. package/dist/application/self/doctor-self.js.map +1 -0
  170. package/dist/application/self/install-skill.d.ts +25 -0
  171. package/dist/application/self/install-skill.d.ts.map +1 -0
  172. package/dist/application/self/install-skill.js +176 -0
  173. package/dist/application/self/install-skill.js.map +1 -0
  174. package/dist/application/self/namespace-info.d.ts +8 -0
  175. package/dist/application/self/namespace-info.d.ts.map +1 -0
  176. package/dist/application/self/namespace-info.js +11 -0
  177. package/dist/application/self/namespace-info.js.map +1 -0
  178. package/dist/application/self/update-self.d.ts +10 -0
  179. package/dist/application/self/update-self.d.ts.map +1 -0
  180. package/dist/application/self/update-self.js +31 -0
  181. package/dist/application/self/update-self.js.map +1 -0
  182. package/dist/application/session-close-service.d.ts +30 -0
  183. package/dist/application/session-close-service.d.ts.map +1 -0
  184. package/dist/application/session-close-service.js +64 -0
  185. package/dist/application/session-close-service.js.map +1 -0
  186. package/dist/application/session-create-service.d.ts +40 -0
  187. package/dist/application/session-create-service.d.ts.map +1 -0
  188. package/dist/application/session-create-service.js +197 -0
  189. package/dist/application/session-create-service.js.map +1 -0
  190. package/dist/application/session-resolver.d.ts +39 -0
  191. package/dist/application/session-resolver.d.ts.map +1 -0
  192. package/dist/application/session-resolver.js +192 -0
  193. package/dist/application/session-resolver.js.map +1 -0
  194. package/dist/application/session-resume-service.d.ts +23 -0
  195. package/dist/application/session-resume-service.d.ts.map +1 -0
  196. package/dist/application/session-resume-service.js +44 -0
  197. package/dist/application/session-resume-service.js.map +1 -0
  198. package/dist/application/sessions-service.d.ts +31 -0
  199. package/dist/application/sessions-service.d.ts.map +1 -0
  200. package/dist/application/sessions-service.js +74 -0
  201. package/dist/application/sessions-service.js.map +1 -0
  202. package/dist/application/skill-index-service.d.ts +27 -0
  203. package/dist/application/skill-index-service.d.ts.map +1 -0
  204. package/dist/application/skill-index-service.js +99 -0
  205. package/dist/application/skill-index-service.js.map +1 -0
  206. package/dist/application/sources-service.d.ts +43 -0
  207. package/dist/application/sources-service.d.ts.map +1 -0
  208. package/dist/application/sources-service.js +176 -0
  209. package/dist/application/sources-service.js.map +1 -0
  210. package/dist/application/stack-detect.d.ts +7 -0
  211. package/dist/application/stack-detect.d.ts.map +1 -0
  212. package/dist/application/stack-detect.js +52 -0
  213. package/dist/application/stack-detect.js.map +1 -0
  214. package/dist/application/stack-service.d.ts +14 -0
  215. package/dist/application/stack-service.d.ts.map +1 -0
  216. package/dist/application/stack-service.js +13 -0
  217. package/dist/application/stack-service.js.map +1 -0
  218. package/dist/application/tasks-service.d.ts +27 -0
  219. package/dist/application/tasks-service.d.ts.map +1 -0
  220. package/dist/application/tasks-service.js +45 -0
  221. package/dist/application/tasks-service.js.map +1 -0
  222. package/dist/application/templates/objetivo.d.ts +3 -0
  223. package/dist/application/templates/objetivo.d.ts.map +1 -0
  224. package/dist/application/templates/objetivo.js +77 -0
  225. package/dist/application/templates/objetivo.js.map +1 -0
  226. package/dist/application/upgrade-hub-mode-service.d.ts +27 -0
  227. package/dist/application/upgrade-hub-mode-service.d.ts.map +1 -0
  228. package/dist/application/upgrade-hub-mode-service.js +114 -0
  229. package/dist/application/upgrade-hub-mode-service.js.map +1 -0
  230. package/dist/application/workspace-mode-service.d.ts +17 -0
  231. package/dist/application/workspace-mode-service.d.ts.map +1 -0
  232. package/dist/application/workspace-mode-service.js +39 -0
  233. package/dist/application/workspace-mode-service.js.map +1 -0
  234. package/dist/cli/commands/checkpoint-write.d.ts +4 -0
  235. package/dist/cli/commands/checkpoint-write.d.ts.map +1 -0
  236. package/dist/cli/commands/checkpoint-write.js +25 -0
  237. package/dist/cli/commands/checkpoint-write.js.map +1 -0
  238. package/dist/cli/commands/decisiones-list.d.ts +3 -0
  239. package/dist/cli/commands/decisiones-list.d.ts.map +1 -0
  240. package/dist/cli/commands/decisiones-list.js +17 -0
  241. package/dist/cli/commands/decisiones-list.js.map +1 -0
  242. package/dist/cli/commands/dependencias-list.d.ts +3 -0
  243. package/dist/cli/commands/dependencias-list.d.ts.map +1 -0
  244. package/dist/cli/commands/dependencias-list.js +11 -0
  245. package/dist/cli/commands/dependencias-list.js.map +1 -0
  246. package/dist/cli/commands/dev-only.d.ts +6 -0
  247. package/dist/cli/commands/dev-only.d.ts.map +1 -0
  248. package/dist/cli/commands/dev-only.js +51 -0
  249. package/dist/cli/commands/dev-only.js.map +1 -0
  250. package/dist/cli/commands/history-data.d.ts +3 -0
  251. package/dist/cli/commands/history-data.d.ts.map +1 -0
  252. package/dist/cli/commands/history-data.js +17 -0
  253. package/dist/cli/commands/history-data.js.map +1 -0
  254. package/dist/cli/commands/history-update.d.ts +3 -0
  255. package/dist/cli/commands/history-update.d.ts.map +1 -0
  256. package/dist/cli/commands/history-update.js +37 -0
  257. package/dist/cli/commands/history-update.js.map +1 -0
  258. package/dist/cli/commands/hook.d.ts +3 -0
  259. package/dist/cli/commands/hook.d.ts.map +1 -0
  260. package/dist/cli/commands/hook.js +53 -0
  261. package/dist/cli/commands/hook.js.map +1 -0
  262. package/dist/cli/commands/mcp.d.ts +3 -0
  263. package/dist/cli/commands/mcp.d.ts.map +1 -0
  264. package/dist/cli/commands/mcp.js +56 -0
  265. package/dist/cli/commands/mcp.js.map +1 -0
  266. package/dist/cli/commands/multiroot.d.ts +4 -0
  267. package/dist/cli/commands/multiroot.d.ts.map +1 -0
  268. package/dist/cli/commands/multiroot.js +50 -0
  269. package/dist/cli/commands/multiroot.js.map +1 -0
  270. package/dist/cli/commands/objetivo-data.d.ts +3 -0
  271. package/dist/cli/commands/objetivo-data.d.ts.map +1 -0
  272. package/dist/cli/commands/objetivo-data.js +11 -0
  273. package/dist/cli/commands/objetivo-data.js.map +1 -0
  274. package/dist/cli/commands/orchestration.d.ts +5 -0
  275. package/dist/cli/commands/orchestration.d.ts.map +1 -0
  276. package/dist/cli/commands/orchestration.js +84 -0
  277. package/dist/cli/commands/orchestration.js.map +1 -0
  278. package/dist/cli/commands/plugin-doctor.d.ts +3 -0
  279. package/dist/cli/commands/plugin-doctor.d.ts.map +1 -0
  280. package/dist/cli/commands/plugin-doctor.js +29 -0
  281. package/dist/cli/commands/plugin-doctor.js.map +1 -0
  282. package/dist/cli/commands/project-md-upsert.d.ts +3 -0
  283. package/dist/cli/commands/project-md-upsert.d.ts.map +1 -0
  284. package/dist/cli/commands/project-md-upsert.js +132 -0
  285. package/dist/cli/commands/project-md-upsert.js.map +1 -0
  286. package/dist/cli/commands/release-data.d.ts +3 -0
  287. package/dist/cli/commands/release-data.d.ts.map +1 -0
  288. package/dist/cli/commands/release-data.js +27 -0
  289. package/dist/cli/commands/release-data.js.map +1 -0
  290. package/dist/cli/commands/self.d.ts +3 -0
  291. package/dist/cli/commands/self.d.ts.map +1 -0
  292. package/dist/cli/commands/self.js +41 -0
  293. package/dist/cli/commands/self.js.map +1 -0
  294. package/dist/cli/commands/session-artifacts.d.ts +3 -0
  295. package/dist/cli/commands/session-artifacts.d.ts.map +1 -0
  296. package/dist/cli/commands/session-artifacts.js +17 -0
  297. package/dist/cli/commands/session-artifacts.js.map +1 -0
  298. package/dist/cli/commands/session-close.d.ts +3 -0
  299. package/dist/cli/commands/session-close.d.ts.map +1 -0
  300. package/dist/cli/commands/session-close.js +43 -0
  301. package/dist/cli/commands/session-close.js.map +1 -0
  302. package/dist/cli/commands/session-create.d.ts +3 -0
  303. package/dist/cli/commands/session-create.d.ts.map +1 -0
  304. package/dist/cli/commands/session-create.js +42 -0
  305. package/dist/cli/commands/session-create.js.map +1 -0
  306. package/dist/cli/commands/session-resume.d.ts +3 -0
  307. package/dist/cli/commands/session-resume.d.ts.map +1 -0
  308. package/dist/cli/commands/session-resume.js +11 -0
  309. package/dist/cli/commands/session-resume.js.map +1 -0
  310. package/dist/cli/commands/sessions.d.ts +4 -0
  311. package/dist/cli/commands/sessions.d.ts.map +1 -0
  312. package/dist/cli/commands/sessions.js +26 -0
  313. package/dist/cli/commands/sessions.js.map +1 -0
  314. package/dist/cli/commands/tasks-data.d.ts +3 -0
  315. package/dist/cli/commands/tasks-data.d.ts.map +1 -0
  316. package/dist/cli/commands/tasks-data.js +20 -0
  317. package/dist/cli/commands/tasks-data.js.map +1 -0
  318. package/dist/cli/commands/wave2-extras.d.ts +7 -0
  319. package/dist/cli/commands/wave2-extras.d.ts.map +1 -0
  320. package/dist/cli/commands/wave2-extras.js +87 -0
  321. package/dist/cli/commands/wave2-extras.js.map +1 -0
  322. package/dist/cli/commands/wave2-final.d.ts +8 -0
  323. package/dist/cli/commands/wave2-final.d.ts.map +1 -0
  324. package/dist/cli/commands/wave2-final.js +134 -0
  325. package/dist/cli/commands/wave2-final.js.map +1 -0
  326. package/dist/cli/commands/wave4d-simple.d.ts +6 -0
  327. package/dist/cli/commands/wave4d-simple.d.ts.map +1 -0
  328. package/dist/cli/commands/wave4d-simple.js +133 -0
  329. package/dist/cli/commands/wave4d-simple.js.map +1 -0
  330. package/dist/cli/interactive-menu.d.ts +9 -0
  331. package/dist/cli/interactive-menu.d.ts.map +1 -0
  332. package/dist/cli/interactive-menu.js +17 -0
  333. package/dist/cli/interactive-menu.js.map +1 -0
  334. package/dist/cli/main.d.ts +3 -0
  335. package/dist/cli/main.d.ts.map +1 -0
  336. package/dist/cli/main.js +208 -0
  337. package/dist/cli/main.js.map +1 -0
  338. package/dist/cli/parser.d.ts +17 -0
  339. package/dist/cli/parser.d.ts.map +1 -0
  340. package/dist/cli/parser.js +125 -0
  341. package/dist/cli/parser.js.map +1 -0
  342. package/dist/cli/registry.d.ts +15 -0
  343. package/dist/cli/registry.d.ts.map +1 -0
  344. package/dist/cli/registry.js +16 -0
  345. package/dist/cli/registry.js.map +1 -0
  346. package/dist/cli/render.d.ts +6 -0
  347. package/dist/cli/render.d.ts.map +1 -0
  348. package/dist/cli/render.js +13 -0
  349. package/dist/cli/render.js.map +1 -0
  350. package/dist/cli/types.d.ts +17 -0
  351. package/dist/cli/types.d.ts.map +1 -0
  352. package/dist/cli/types.js +2 -0
  353. package/dist/cli/types.js.map +1 -0
  354. package/dist/domain/plugin.d.ts +21 -0
  355. package/dist/domain/plugin.d.ts.map +1 -0
  356. package/dist/domain/plugin.js +2 -0
  357. package/dist/domain/plugin.js.map +1 -0
  358. package/dist/domain/project.d.ts +22 -0
  359. package/dist/domain/project.d.ts.map +1 -0
  360. package/dist/domain/project.js +2 -0
  361. package/dist/domain/project.js.map +1 -0
  362. package/dist/domain/session.d.ts +39 -0
  363. package/dist/domain/session.d.ts.map +1 -0
  364. package/dist/domain/session.js +2 -0
  365. package/dist/domain/session.js.map +1 -0
  366. package/dist/domain/types.d.ts +16 -0
  367. package/dist/domain/types.d.ts.map +1 -0
  368. package/dist/domain/types.js +2 -0
  369. package/dist/domain/types.js.map +1 -0
  370. package/dist/index.d.ts +22 -0
  371. package/dist/index.d.ts.map +1 -0
  372. package/dist/index.js +12 -0
  373. package/dist/index.js.map +1 -0
  374. package/dist/ports/env.d.ts +6 -0
  375. package/dist/ports/env.d.ts.map +1 -0
  376. package/dist/ports/env.js +2 -0
  377. package/dist/ports/env.js.map +1 -0
  378. package/dist/ports/file-system.d.ts +20 -0
  379. package/dist/ports/file-system.d.ts.map +1 -0
  380. package/dist/ports/file-system.js +2 -0
  381. package/dist/ports/file-system.js.map +1 -0
  382. package/dist/ports/git.d.ts +15 -0
  383. package/dist/ports/git.d.ts.map +1 -0
  384. package/dist/ports/git.js +2 -0
  385. package/dist/ports/git.js.map +1 -0
  386. package/dist/ports/process.d.ts +16 -0
  387. package/dist/ports/process.d.ts.map +1 -0
  388. package/dist/ports/process.js +2 -0
  389. package/dist/ports/process.js.map +1 -0
  390. package/dist/runtime/config-service.d.ts +19 -0
  391. package/dist/runtime/config-service.d.ts.map +1 -0
  392. package/dist/runtime/config-service.js +145 -0
  393. package/dist/runtime/config-service.js.map +1 -0
  394. package/dist/runtime/namespace-resolver.d.ts +18 -0
  395. package/dist/runtime/namespace-resolver.d.ts.map +1 -0
  396. package/dist/runtime/namespace-resolver.js +58 -0
  397. package/dist/runtime/namespace-resolver.js.map +1 -0
  398. package/dist/runtime/namespace.d.ts +7 -0
  399. package/dist/runtime/namespace.d.ts.map +1 -0
  400. package/dist/runtime/namespace.js +12 -0
  401. package/dist/runtime/namespace.js.map +1 -0
  402. package/dist/runtime/types.d.ts +43 -0
  403. package/dist/runtime/types.d.ts.map +1 -0
  404. package/dist/runtime/types.js +8 -0
  405. package/dist/runtime/types.js.map +1 -0
  406. package/package.json +57 -0
  407. package/skills/agent-workflow/LICENSE +21 -0
  408. package/skills/agent-workflow/MANUAL-FUNCIONAL.md +298 -0
  409. package/skills/agent-workflow/MANUAL-TECNICO.md +271 -0
  410. package/skills/agent-workflow/README.md +74 -0
  411. package/skills/agent-workflow/SKILL.md +111 -0
  412. package/skills/agent-workflow/docs/TEST-PLAN.md +163 -0
  413. package/skills/agent-workflow/references/checkpoint.md +59 -0
  414. package/skills/agent-workflow/references/dev-only.md +50 -0
  415. package/skills/agent-workflow/references/doctor.md +61 -0
  416. package/skills/agent-workflow/references/history.md +40 -0
  417. package/skills/agent-workflow/references/hooks.md +35 -0
  418. package/skills/agent-workflow/references/mcp.md +31 -0
  419. package/skills/agent-workflow/references/objetivo-tasks.md +64 -0
  420. package/skills/agent-workflow/references/orchestration.md +86 -0
  421. package/skills/agent-workflow/references/self.md +68 -0
  422. package/skills/agent-workflow/references/session-mgmt.md +109 -0
  423. package/skills/agent-workflow/references/sources.md +102 -0
@@ -0,0 +1,111 @@
1
+ ---
2
+ name: agent-workflow
3
+ description: Universal skill for the @tacuchi/agent-workflow-cli CLI. Teach Claude Code how to drive session-lifecycle workflows (planning → execution → validation → closure), history bookkeeping, source/branch checks, checkpoints, doctor, hooks, and self-management. Use whenever the user works with session-based development inside a workspace that hosts an `.agent-workflow/` (or `.qtc/` for the QTC plugin family) artifact tree.
4
+ version: 1.1.0
5
+ ---
6
+
7
+ # agent-workflow — universal CLI skill
8
+
9
+ `@tacuchi/agent-workflow-cli` is a generic, namespace-aware CLI that runs the canonical session-lifecycle workflow used by the qtc-* plugin family and any other plugin that opts into the same artifact contract.
10
+
11
+ This skill teaches Claude Code:
12
+
13
+ - when to invoke the CLI vs. handing the work to a slash command,
14
+ - the 43 top-level subcommands grouped by family,
15
+ - the namespace contract that lets the same binary serve multiple plugin ecosystems without forks.
16
+
17
+ For each command family there is a dedicated reference under `references/`. Read the matching reference *before* invoking commands you have not used in the current conversation — flags and contracts evolve.
18
+
19
+ ## Invocation contract
20
+
21
+ ```
22
+ agent-workflow [--namespace <name>] [--flow <core|dev|design|analyze>]
23
+ [--plugin-root <path>] [--plugin-version <semver>] [--compat <range>]
24
+ <command> [args...]
25
+ ```
26
+
27
+ Short alias: `aw`.
28
+
29
+ ### Namespace resolution (highest precedence first)
30
+
31
+ 1. CLI flag `--namespace <name>`
32
+ 2. Env var `AW_NAMESPACE` (or `AGENT_WORKFLOW_NAMESPACE`)
33
+ 3. User config `~/.config/agent-workflow/namespace`
34
+ 4. Default literal: `agent-workflow`
35
+
36
+ For QTC plugin compatibility, qtc-* plugins export `AW_NAMESPACE=qtc` from their SessionStart hooks; the CLI then reads/writes `~/.qtc/`, `.qtc/sessions/`, and the `QTC-PROJECT` block in `CLAUDE.md` / `AGENTS.md`.
37
+
38
+ When you invoke the CLI from a fresh shell where no plugin has set the env, use `--namespace <name>` explicitly or the binary will operate on the default `agent-workflow` namespace and miss the QTC artifacts.
39
+
40
+ ### Output contract
41
+
42
+ Every command returns JSON on stdout (no decoration), exit code 0 on success and non-zero on error with a structured error envelope. Pipe to `jq` to extract fields.
43
+
44
+ ```bash
45
+ agent-workflow sessions | jq '.next_number'
46
+ agent-workflow objetivo-data --code session035 | jq '.criterios_aceptacion'
47
+ ```
48
+
49
+ ## When to invoke this CLI
50
+
51
+ Invoke `agent-workflow` (directly or via the registered slash commands) whenever:
52
+
53
+ - the user asks to **create / resume / close / list** sessions,
54
+ - the user asks to **read or update** an artifact (`OBJETIVO.md`, `TASKS.md`, `DECISIONES.md`, `HISTORY.md`, `CHECKPOINT.md`),
55
+ - you need to **detect workspace state** (sources, branches, mode, stack, harness),
56
+ - a host hook (`PreToolUse`, `SessionEnd`, `PostCompact`) routes to the binary,
57
+ - the user wants to **manage the CLI itself** (doctor / update / install-skill / namespace).
58
+
59
+ Do *not* invoke the CLI for ad-hoc file edits, code refactors, business validation, or anything outside the session-lifecycle contract.
60
+
61
+ ## Command families
62
+
63
+ The 43 top-level subcommands group into 11 families. Open the matching reference before composing a command.
64
+
65
+ | Family | Reference | What lives there |
66
+ |---|---|---|
67
+ | Session management | [references/session-mgmt.md](references/session-mgmt.md) | sessions, session-create, session-resume, session-close, session-artifacts |
68
+ | Objetivo / Tasks | [references/objetivo-tasks.md](references/objetivo-tasks.md) | objetivo-data, tasks-data, decisiones-list, dependencias-list |
69
+ | History | [references/history.md](references/history.md) | history-data, history-update |
70
+ | Checkpoint | [references/checkpoint.md](references/checkpoint.md) | checkpoint-read, checkpoint-write, compress-checkpoint, resume-summary, auto-compact-on-close |
71
+ | Sources / branches | [references/sources.md](references/sources.md) | sources, check-branch, workspace-mode, project-md-upsert, upgrade-hub-mode, attach-multiroot, detach-multiroot |
72
+ | Orchestration | [references/orchestration.md](references/orchestration.md) | auto-plan-decide, topic-change-check, specialty-choose, phase-detect, phase-next, stack, workflows, skill-index |
73
+ | Doctor / release | [references/doctor.md](references/doctor.md) | plugin-doctor, code-scan, release-data, graduate |
74
+ | Hooks | [references/hooks.md](references/hooks.md) | hook branch-check, hook sql-mutation-guard |
75
+ | MCP / DSN | [references/mcp.md](references/mcp.md) | mcp dbhub, bootstrap-dsn |
76
+ | Dev-only | [references/dev-only.md](references/dev-only.md) | harness, profiles, logs, next-number |
77
+ | Self | [references/self.md](references/self.md) | self namespace, self doctor, self update, self install-skill |
78
+
79
+ ## Quick start cheatsheet
80
+
81
+ ```bash
82
+ # Discover state
83
+ agent-workflow sessions
84
+ agent-workflow workspace-mode
85
+ agent-workflow sources
86
+
87
+ # Create + drive a session
88
+ agent-workflow session-create --flow dev --name fix-login --objetivo "Bug: login redirect loop"
89
+ agent-workflow session-resume --code session042
90
+ agent-workflow tasks-data --code session042 --only-open
91
+ agent-workflow checkpoint-write --code session042
92
+ agent-workflow session-close --code session042
93
+
94
+ # Diagnostics
95
+ agent-workflow self doctor
96
+ agent-workflow self namespace
97
+ agent-workflow plugin-doctor --plugin-root /path/to/plugin
98
+ ```
99
+
100
+ ## Discovery rules
101
+
102
+ 1. If unsure which family a command belongs to, run `agent-workflow --help` (top-level) and pick the family from the table above.
103
+ 2. If unsure about flags, read the corresponding `references/*.md`. The references list every supported flag with example payloads.
104
+ 3. If a command returns `error.code = "NOT_IN_WORKSPACE"`, the namespace points at a filesystem tree that does not exist — re-check `--namespace` / env, or run `self namespace` to see the resolved value.
105
+
106
+ ## Cross-references
107
+
108
+ - CLI repo: <https://github.com/Tacuchi/agent-workflow-cli>
109
+ - npm: <https://www.npmjs.com/package/@tacuchi/agent-workflow-cli>
110
+ - This skill is bundled in the CLI tarball — no standalone repo. `agent-workflow self install-skill` copies it from the bundled location to `~/.claude/skills/agent-workflow/`.
111
+ - Install: `npm i -g @tacuchi/agent-workflow-cli && agent-workflow self install-skill`
@@ -0,0 +1,163 @@
1
+ # Test plan — Workflow universal (CLI agent-workflow + skill agent-workflow)
2
+
3
+ Specs (no implementación). Validan los 3 contratos arquitecturales.
4
+
5
+ Generable a `skills/agent-workflow/docs/TEST-PLAN.md` para que cualquier consumidor del workflow tenga la batería de aceptación.
6
+
7
+ ## Convenciones
8
+
9
+ - Cada test tiene: id, contrato, precondición, pasos, criterio de éxito, frontera (lo que NO valida).
10
+ - Estados esperados expresados como JSON observable o efectos de filesystem.
11
+ - Implementación recomendada: vitest (unit/golden) para Contract A; bash/CI smoke para Contract B; bash + namespace alterno para Contract C.
12
+
13
+ ## Contract A — CLI ↔ skill
14
+
15
+ Cada comando que el skill referencia ejecuta y devuelve la forma JSON declarada por la reference.
16
+
17
+ ### A1 — Surface match
18
+
19
+ - **Precondición**: CLI instalado globalmente, skill instalado en `~/.claude/skills/agent-workflow`.
20
+ - **Pasos**:
21
+ 1. Listar comandos del CLI (`agent-workflow --help`).
22
+ 2. Para cada comando: parse top-level del SKILL.md y de las 11 references; verificar que aparece exactamente en 1 reference.
23
+ - **Criterio**: 43 comandos listados, 43 menciones en exactamente 1 reference cada uno. 0 huérfanos.
24
+ - **Frontera**: no valida la forma del JSON ni la implementación de cada comando.
25
+
26
+ ### A2 — JSON contract por comando
27
+
28
+ - **Precondición**: workspace de prueba con `qtc-PROJECT` block y al menos una sesión.
29
+ - **Pasos** (por cada comando read-only):
30
+ 1. Ejecutar `agent-workflow <cmd> [flags] | jq '.'`.
31
+ 2. Validar que `jq` retorna 0 (JSON parseable).
32
+ 3. Validar que las claves top-level matchean lo declarado en la reference.
33
+ - **Criterio**: 100% de comandos read-only retornan JSON parseable con shape declarado.
34
+ - **Frontera**: no valida correctness semántica de los valores (solo shape).
35
+
36
+ ### A3 — Error envelope
37
+
38
+ - **Precondición**: workspace donde el namespace activo no existe.
39
+ - **Pasos**:
40
+ 1. Correr `agent-workflow --namespace invalid sessions`.
41
+ 2. Capturar stdout + stderr + exit code.
42
+ - **Criterio**: exit code ≠ 0, stderr o stdout incluye `error.code = "NOT_IN_WORKSPACE"` (o equivalente declarado).
43
+ - **Frontera**: no valida cobertura exhaustiva de error codes.
44
+
45
+ ## Contract B — Skill ↔ usuario externo
46
+
47
+ Una empresa nueva (sin plugins QTC) instala skill + CLI y completa un workflow E2E sin tocar plugins.
48
+
49
+ ### B1 — Install path
50
+
51
+ - **Precondición**: máquina sin `agent-workflow` ni skill instalado.
52
+ - **Pasos**:
53
+ 1. `npm install -g @tacuchi/agent-workflow`.
54
+ 2. `agent-workflow self install-skill`.
55
+ 3. `agent-workflow self doctor`.
56
+ - **Criterio**: doctor reporta `cli_version >= 1.2.0`, `skill.installed = true`, `skill.path` apunta al directorio correcto.
57
+ - **Frontera**: no valida ediciones de `~/.claude/settings.json` ni hook registration.
58
+
59
+ ### B2 — Workflow E2E (fresh namespace)
60
+
61
+ - **Precondición**: directorio `/tmp/acme-test` vacío, `git init` ejecutado.
62
+ - **Pasos**:
63
+ 1. `cd /tmp/acme-test && agent-workflow --namespace acme project-md-upsert --init`.
64
+ 2. `agent-workflow --namespace acme session-create --flow dev --name first-feature --objetivo "Implementar lo que sea"`.
65
+ 3. `agent-workflow --namespace acme tasks-data --code session001`.
66
+ 4. `agent-workflow --namespace acme checkpoint-write --code session001`.
67
+ 5. `agent-workflow --namespace acme checkpoint-read --code session001`.
68
+ 6. `agent-workflow --namespace acme session-close --code session001`.
69
+ - **Criterio**:
70
+ - Tras paso 1: `CLAUDE.md` (o `AGENTS.md`) contiene bloque `<!-- ACME-PROJECT-START -->`.
71
+ - Tras paso 2: directorio `.acme/sessions/session001-dev-first-feature/` con `OBJETIVO.md`.
72
+ - Tras paso 6: `HISTORY.md` muestra fila con state = closed.
73
+ - **Frontera**: no valida invocación desde Claude Code real (eso es B3).
74
+
75
+ ### B3 — Skill consumption en Claude Code (manual)
76
+
77
+ - **Precondición**: B1 + B2 ejecutados; Claude Code abierto en `/tmp/acme-test`.
78
+ - **Pasos**:
79
+ 1. Pedirle al modelo: "create a session for fixing the login bug".
80
+ 2. Observar si el modelo invoca el skill `agent-workflow`.
81
+ 3. Observar comandos ejecutados por el modelo.
82
+ - **Criterio**: el modelo lee SKILL.md, identifica `session-create`, lo ejecuta con namespace correcto.
83
+ - **Frontera**: depende de que la SessionStart del entorno setee `AW_NAMESPACE` o el modelo use `--namespace`.
84
+
85
+ ## Contract C — Plugins QTC sin lógica universal
86
+
87
+ El workflow universal opera con namespace alternativo (sin plugins QTC) y produce resultados equivalentes.
88
+
89
+ ### C1 — Equivalencia operacional
90
+
91
+ - **Precondición**: workspace QTC real (con plugins instalados) + workspace alternativo "vanilla" (sin plugins, con bloque `<NS>-PROJECT` propio).
92
+ - **Pasos**: ejecutar la misma secuencia (`session-create → tasks-data → checkpoint-write → session-close`) en ambos workspaces, con namespaces respectivos.
93
+ - **Criterio**: ambos generan estructuras isomorfas (`.<ns>/sessions/sessionNNN-dev-<slug>/OBJETIVO.md` + fila en `HISTORY.md` + bloque `<NS>-PROJECT` actualizado). Diferencias permitidas: contenido de `OBJETIVO.md` (texto), header del bloque project (`QTC-PROJECT` vs `ACME-PROJECT`).
94
+ - **Frontera**: no valida los skills de negocio QTC (coding-standards, sql-organizer) — esos son específicos del namespace.
95
+
96
+ ### C2 — Plugins QTC no implementan lifecycle
97
+
98
+ - **Precondición**: repos `qtc-core/dev/design/analyze` accesibles.
99
+ - **Pasos**:
100
+ 1. `grep -rn "def session_create\|function sessionCreate\|create_session" qtc-{core,dev,design,analyze}/skills/` (debe retornar 0 hits).
101
+ 2. `find qtc-{core,dev,design,analyze} -name "*.py"` (debe retornar 0 archivos).
102
+ 3. Para cada hook en `hooks.json`: validar que invoca `agent-workflow ...` (no script local).
103
+ - **Criterio**: 0 funciones de lifecycle, 0 archivos Python, 100% de hooks invocan al CLI.
104
+ - **Frontera**: no valida que los skills de negocio sean correctos — solo que no duplican lógica universal.
105
+
106
+ ### C3 — `AW_NAMESPACE` propagation
107
+
108
+ - **Precondición**: nuevo Claude Code session en workspace QTC.
109
+ - **Pasos**:
110
+ 1. Esperar SessionStart hook.
111
+ 2. Verificar `cat ~/.config/agent-workflow/namespace`.
112
+ 3. Correr `agent-workflow self namespace`.
113
+ - **Criterio**: archivo contiene `qtc`, comando reporta `{ namespace: "qtc", source: "user-config" }` (o "workspace" si v1.2.0 detectó bloque local).
114
+ - **Frontera**: no valida cómo otros plugins (no-QTC) propagan su namespace.
115
+
116
+ ## Contract D — Hooks (cobertura faltante en tests del CLI)
117
+
118
+ Estos tests cierran H4 (gap de tests existentes en agent-workflow/tests/).
119
+
120
+ ### D1 — `hook branch-check`
121
+
122
+ - **Precondición**: workspace con sesión que declara `expected_work_branch = main`; checkout en `feature/x`.
123
+ - **Pasos**: `echo '{"tool_input":{"file_path":"src/foo.ts"}}' | agent-workflow hook branch-check`.
124
+ - **Criterio**: exit 2 (block), stdout JSON con `{ match: false, expected: "main", current: "feature/x" }`.
125
+ - **Frontera**: no valida MultiEdit/NotebookEdit (covered por Anthropic harness).
126
+
127
+ ### D2 — `hook sql-mutation-guard`
128
+
129
+ - **Precondición**: payload de MCP con SQL DML.
130
+ - **Pasos**: `echo '{"tool_input":{"sql":"UPDATE foo SET x=1"}}' | agent-workflow hook sql-mutation-guard`.
131
+ - **Criterio**: exit 2, stdout JSON con `{ blocked: true, reason: "DML detected" }` (o equivalente).
132
+ - **Frontera**: no valida SELECT/EXPLAIN (deben pasar — cubrir en D2.b).
133
+
134
+ ### D3 — `mcp dbhub` smoke
135
+
136
+ - **Precondición**: DSN persistido vía `bootstrap-dsn`.
137
+ - **Pasos**: `agent-workflow mcp dbhub cert` con stdin/stdout MCP frame de `initialize`.
138
+ - **Criterio**: el binario lanza `@bytebase/dbhub` vía npx y devuelve respuesta MCP válida.
139
+ - **Frontera**: no valida queries ejecutadas (las hace dbhub).
140
+
141
+ ### D4 — `plugin-doctor`
142
+
143
+ - **Precondición**: plugin root válido (ej. `qtc-core`).
144
+ - **Pasos**: `agent-workflow plugin-doctor --plugin-root /Users/tacuchi/Git/core-workflow-plugin`.
145
+ - **Criterio**: JSON con `status: "ok"` o `findings: []`. Si manifests no declaran `exportedSkills`, dejar warning explícito (no error).
146
+ - **Frontera**: no valida correctness de los skills exportados — solo presencia.
147
+
148
+ ## Resumen
149
+
150
+ | Contract | Tests | Severidad |
151
+ |---|---|---|
152
+ | A — CLI ↔ skill | 3 (A1, A2, A3) | crítica |
153
+ | B — Skill ↔ usuario externo | 3 (B1, B2, B3) | alta |
154
+ | C — Plugins QTC sin lógica universal | 3 (C1, C2, C3) | alta |
155
+ | D — Hooks gap | 4 (D1, D2, D3, D4) | media |
156
+ | **Total** | **13 specs** | |
157
+
158
+ Implementación recomendada (no en alcance):
159
+ - A1, A2, A3 → vitest unit en `agent-workflow/tests/unit/`.
160
+ - B1, B2 → bash + golden fixtures en `agent-workflow/tests/golden/external-namespace.test.ts`.
161
+ - B3 → manual + grabado en `skills/agent-workflow/MANUAL-FUNCIONAL.md`.
162
+ - C1, C2, C3 → bash + workspace fixture comparativo.
163
+ - D1..D4 → vitest unit con stdin mock + spawn snapshot.
@@ -0,0 +1,59 @@
1
+ # Checkpoint
2
+
3
+ CHECKPOINT.md is the single artifact that lets a fresh conversation resume work without re-exploring the codebase. It is written before `/compact` (PreCompact hook) or at session end (SessionEnd hook), and read on resume.
4
+
5
+ ## checkpoint-read
6
+
7
+ Read `CHECKPOINT.md` of the active (or specified) session.
8
+
9
+ ```bash
10
+ agent-workflow checkpoint-read
11
+ agent-workflow checkpoint-read --code session035
12
+ ```
13
+
14
+ Returns the raw markdown payload plus parsed metadata (phase, last-updated, refs).
15
+
16
+ ## checkpoint-write
17
+
18
+ Write a CHECKPOINT.md draft for the active (or specified) session. Includes the canonical sections (Lo último que hice / Próximo paso / Decisiones recientes / Archivos tocados / Contexto crítico / Refs).
19
+
20
+ ```bash
21
+ agent-workflow checkpoint-write
22
+ agent-workflow checkpoint-write --code session035
23
+ agent-workflow checkpoint-write --force # overwrite even if recent
24
+ ```
25
+
26
+ Flags: `--code <sessionNNN>`, `--force`.
27
+
28
+ The output is intentionally a *draft*: the AI typically fills in the placeholder sections (`_[AI: ...]_`) with the real content before the file is committed.
29
+
30
+ ## compress-checkpoint
31
+
32
+ Identify long artifacts that should be compressed before checkpoint generation (HALLAZGOS.md, EVIDENCIA.md, DISCOVERY.md, etc.). Returns a list of files exceeding the threshold so you can summarize them in place.
33
+
34
+ ```bash
35
+ agent-workflow compress-checkpoint --code session035
36
+ agent-workflow compress-checkpoint --code session035 --threshold 12000 # bytes
37
+ ```
38
+
39
+ Flags: `--code <sessionNNN>`, `--threshold <bytes>` (default ~10000).
40
+
41
+ ## resume-summary
42
+
43
+ Compact resume payload for the PostCompact hook. Returns the minimal information needed to greet the user with "Resumen — sesión activa: ..." right after `/compact`.
44
+
45
+ ```bash
46
+ agent-workflow resume-summary
47
+ ```
48
+
49
+ No flags. Reads the active session and its CHECKPOINT.md (if present).
50
+
51
+ ## auto-compact-on-close
52
+
53
+ SessionEnd hook target. Walks every active session and writes a checkpoint for each.
54
+
55
+ ```bash
56
+ agent-workflow auto-compact-on-close
57
+ ```
58
+
59
+ You should rarely call this manually; it is wired into the host harness via the SessionEnd hook configured by the plugin's installer.
@@ -0,0 +1,50 @@
1
+ # Dev-only utilities
2
+
3
+ Operational helpers for plugin authors and harness diagnostics. Not part of the everyday session flow.
4
+
5
+ ## harness
6
+
7
+ Detect which host harness is running the CLI: `claude-code`, `codex`, or `unknown`.
8
+
9
+ ```bash
10
+ agent-workflow harness
11
+ ```
12
+
13
+ Output:
14
+
15
+ ```json
16
+ { "harness": "claude-code", "evidence": ["env:CLAUDE_PROJECT_DIR"] }
17
+ ```
18
+
19
+ ## profiles
20
+
21
+ Resolve user preferences from the namespace's `user-config.md`.
22
+
23
+ ```bash
24
+ agent-workflow profiles
25
+ ```
26
+
27
+ Returns the parsed key-value preferences (e.g. `delegate_to_subagent`, `compact_threshold`).
28
+
29
+ ## logs
30
+
31
+ View or clear the CLI log file.
32
+
33
+ ```bash
34
+ agent-workflow logs # dump full log
35
+ agent-workflow logs --tail 50 # last 50 lines
36
+ agent-workflow logs --clear # truncate
37
+ ```
38
+
39
+ The log file lives at `~/.<namespace>/lib/logs/agent-workflow.log` (or equivalent for the resolved namespace).
40
+
41
+ ## next-number
42
+
43
+ Compute the next NNN correlative for a directory. Used by `session-create` and the SQL release tooling, but available standalone for plugin authors building their own correlatives.
44
+
45
+ ```bash
46
+ agent-workflow next-number /path/to/sessions
47
+ agent-workflow next-number .qtc/sessions
48
+ ```
49
+
50
+ The directory argument is positional (not a flag).
@@ -0,0 +1,61 @@
1
+ # Doctor / release / scan / graduate
2
+
3
+ Diagnostics and release-prep commands. Read-only by default (`graduate` writes documentation, not code).
4
+
5
+ ## plugin-doctor
6
+
7
+ Health check for a plugin: validates frontmatter, manifest version, hooks, MCP entries, and exported skills.
8
+
9
+ ```bash
10
+ agent-workflow plugin-doctor --plugin-root /Users/me/Git/core-workflow-plugin
11
+ agent-workflow plugin-doctor --plugin-root /path --plugin-name qtc-core --plugin-version 3.24.0
12
+ agent-workflow plugin-doctor --plugin-root /path --compat-range "^3.0.0"
13
+ agent-workflow plugin-doctor --plugin-root /path --exports-file plugin.json
14
+ ```
15
+
16
+ Exits 1 when validation fails; 0 when clean.
17
+
18
+ ## code-scan
19
+
20
+ Scan files for release-critical patterns: hardcoded `localhost`, exposed secrets, TODO/FIXME markers, debug prints, etc. Used by the release skill.
21
+
22
+ ```bash
23
+ agent-workflow code-scan
24
+ agent-workflow code-scan --since 2026-04-01 # only files changed since date
25
+ agent-workflow code-scan --source core # restrict to one declared source
26
+ ```
27
+
28
+ ## release-data
29
+
30
+ Consolidated dump for the release / release-scripts skills: which sessions are graduated, which scripts ship, etc.
31
+
32
+ ```bash
33
+ agent-workflow release-data
34
+ agent-workflow release-data --since 2026-04-01
35
+ agent-workflow release-data --source core
36
+ agent-workflow release-data --include-graduated
37
+ agent-workflow release-data --no-open --no-closed --skip-content # narrow scope
38
+ agent-workflow release-data --verbose
39
+ ```
40
+
41
+ ## graduate
42
+
43
+ Promote a session-local artifact (DEC-NNN, TASKS, RFC, design entrega) into a workspace-level `docs/` location.
44
+
45
+ ```bash
46
+ # Graduate a decision DEC-005 from session023
47
+ agent-workflow graduate --kind decision --session session023 --id DEC-005 --slug auto-plan-thresholds
48
+
49
+ # Graduate the full plan
50
+ agent-workflow graduate --kind plan --session session023 --slug cli-npm-agent-workflow
51
+
52
+ # Graduate an analyze RFC / data / postmortem
53
+ agent-workflow graduate --kind rfc --session session022 --slug cli-npm-agent-workflow
54
+ agent-workflow graduate --kind data --session session004 --slug precarga-objetos-bd
55
+ agent-workflow graduate --kind postmortem --session sessionNNN --slug incident-foo
56
+
57
+ # Graduate a design entrega
58
+ agent-workflow graduate --kind design --session sessionNNN --slug system-foo
59
+ ```
60
+
61
+ Required: `--kind`, `--session`, plus `--id` (decisions) or `--slug` (everything else).
@@ -0,0 +1,40 @@
1
+ # History
2
+
3
+ `<workspace>/.<namespace>/HISTORY.md` is a markdown table that lists every session in the workspace. Two CLI commands maintain it.
4
+
5
+ ## history-data
6
+
7
+ Read-only aggregator. Walks the `.<namespace>/sessions/` tree and returns the data you would need to (re)build `HISTORY.md` from scratch, plus optional graduated-doc references.
8
+
9
+ ```bash
10
+ agent-workflow history-data
11
+ agent-workflow history-data --verbose
12
+ agent-workflow history-data --include-docs # also enumerate docs/scripts, docs/rfcs, etc.
13
+ ```
14
+
15
+ Use this to detect drift between `HISTORY.md` and the on-disk session folders, or when you need to regenerate the table.
16
+
17
+ ## history-update
18
+
19
+ Upsert a row in `HISTORY.md`. Used by `session-create` and `session-close` internally; you typically only invoke it directly to repair a row.
20
+
21
+ ```bash
22
+ agent-workflow history-update \
23
+ --code session035 \
24
+ --state active \
25
+ --sesion "aw-skill-repo" \
26
+ --date 2026-05-05 \
27
+ --summary "Sub-proyecto 2 del spec ..." \
28
+ --refs "[OBJETIVO](.qtc/sessions/session035-dev-aw-skill-repo/OBJETIVO.md)"
29
+ ```
30
+
31
+ Flags:
32
+
33
+ | Flag | Notes |
34
+ |---|---|
35
+ | `--code <sessionNNN>` | Required. |
36
+ | `--state <active\|closed>` | Required. |
37
+ | `--sesion <slug>` | Visible session slug (without `sessionNNN-flow-` prefix). |
38
+ | `--date <YYYY-MM-DD>` | Defaults to today if omitted in some callers; pass explicitly to be safe. |
39
+ | `--summary <text>` | Replaces the Resumen cell. |
40
+ | `--refs <markdown>` | Replaces the Refs cell. |
@@ -0,0 +1,35 @@
1
+ # Hooks
2
+
3
+ Hook targets the host harness invokes via `PreToolUse` / `SessionEnd` / `PostCompact` events. Each hook reads JSON on stdin, may print a message on stderr, and returns a meaningful exit code.
4
+
5
+ You rarely call these by hand — they are wired into `hooks.json` by the plugin installer. Document them here so the AI knows what to expect when a hook fires.
6
+
7
+ ## hook branch-check
8
+
9
+ PreToolUse guard for `Edit` / `Write`. Reads the tool input from stdin, resolves the target file, finds the owning source by path, and verifies the current branch matches the declared work branch.
10
+
11
+ ```bash
12
+ echo '{"tool":"Edit","tool_input":{"file_path":"/path/to/file"}}' \
13
+ | agent-workflow hook branch-check
14
+ ```
15
+
16
+ Exit codes:
17
+
18
+ | Code | Meaning |
19
+ |---|---|
20
+ | 0 | Branch matches expected (silent). |
21
+ | 0 + stderr | Warning logged, but proceed. |
22
+ | Non-zero | Block the tool call. |
23
+
24
+ ## hook sql-mutation-guard
25
+
26
+ PreToolUse guard for MCP SQL execution tools. Reads the tool input, matches against the runtime config's `mcpGuards.sqlMutation` patterns, and blocks `INSERT`/`UPDATE`/`DELETE`/DDL against the configured "no-mutate" servers.
27
+
28
+ ```bash
29
+ echo '{"tool":"mcp__plugin_qtc-dev_qtc-cert__execute_sql","tool_input":{"sql":"UPDATE x SET ..."}}' \
30
+ | agent-workflow hook sql-mutation-guard
31
+ ```
32
+
33
+ The patterns live in `~/.<namespace>/lib/config/<namespace>-runtime.json` — for the `qtc` namespace this blocks mutations against `qtc-cert` and `qtc-prod`.
34
+
35
+ Exit codes: same conventions as `branch-check`.
@@ -0,0 +1,31 @@
1
+ # MCP / DSN
2
+
3
+ CLI helpers for MCP server lifecycle and the DSN bootstrap shared by qtc-* hooks.
4
+
5
+ ## mcp dbhub <instance>
6
+
7
+ Launch the `@bytebase/dbhub` MCP server pre-wired with the namespace's DSN file. The CLI resolves the DSN, sets up environment, and execs `npx @bytebase/dbhub` with the right transport.
8
+
9
+ ```bash
10
+ agent-workflow mcp dbhub cert # qtc-cert instance
11
+ agent-workflow mcp dbhub prod # qtc-prod instance
12
+ ```
13
+
14
+ Instance names map to environment variables in `~/.<namespace>/lib/dsn.env`:
15
+
16
+ | Instance | Reads | Default behavior on missing DSN |
17
+ |---|---|---|
18
+ | `cert` | `DB_CERT_DSN` | stderr message, exit 1 |
19
+ | `prod` | `DB_PROD_DSN` | stderr message, exit 1 |
20
+
21
+ The launcher is the entry point referenced by the plugin's `.mcp.json`. You usually do not invoke it manually — Claude Code / Codex starts it.
22
+
23
+ ## bootstrap-dsn
24
+
25
+ Persist `DB_CERT_DSN` and `DB_PROD_DSN` from the current shell into the namespace's `dsn.env` file (so subsequent CLI / hook invocations have them).
26
+
27
+ ```bash
28
+ DB_CERT_DSN=postgres://... DB_PROD_DSN=postgres://... agent-workflow bootstrap-dsn
29
+ ```
30
+
31
+ Exit code 2 + `MISSING_DSN` error when neither DSN is set. Writes to `~/.<namespace>/lib/dsn.env`.
@@ -0,0 +1,64 @@
1
+ # Objetivo / Tasks / Decisions
2
+
3
+ Read-only parsers for the four canonical session artifacts.
4
+
5
+ | Artifact | Reader | Purpose |
6
+ |---|---|---|
7
+ | `OBJETIVO.md` | `objetivo-data` | requirement, type, modalidad, criterios |
8
+ | `TASKS.md` | `tasks-data` | open/closed counts, item list, optional verbose body |
9
+ | `DECISIONES.md` | `decisiones-list` | DEC-NNN headers + previews |
10
+ | `DEPENDENCIAS.md` | `dependencias-list` | dependency table rows |
11
+
12
+ All four accept `--code <sessionNNN>`. Without it, the active session is used (errors if there are 0 or >1 active sessions).
13
+
14
+ ## objetivo-data
15
+
16
+ Parses `OBJETIVO.md` into structured JSON: requirement, contexto, criterios de aceptación (with checked/unchecked state), tipo (`feature`/`refactor`/`bugfix`), modalidad (`tecnica`/`datos`/`incidente`), temas.
17
+
18
+ ```bash
19
+ agent-workflow objetivo-data --code session035 | jq '.criterios_aceptacion'
20
+ agent-workflow objetivo-data --code session035 | jq '.tipo'
21
+ ```
22
+
23
+ ## tasks-data
24
+
25
+ Parses `TASKS.md` into open/closed counts plus the full item list. Supports phased plans (`## Phase X — Title` sections) and surfaces them as task groups.
26
+
27
+ ```bash
28
+ agent-workflow tasks-data --code session035
29
+ agent-workflow tasks-data --code session035 --only-open # filter completed items
30
+ agent-workflow tasks-data --code session035 --verbose # include raw markdown body
31
+ ```
32
+
33
+ Output:
34
+
35
+ ```json
36
+ {
37
+ "code": "session035",
38
+ "counts": { "total": 22, "open": 22, "closed": 0 },
39
+ "phases": [
40
+ { "name": "Phase 0 — Mapeo+Contrato", "open": 4, "closed": 0 },
41
+ ...
42
+ ],
43
+ "items": [
44
+ { "id": "T0.1", "phase": "Phase 0", "text": "...", "done": false }
45
+ ]
46
+ }
47
+ ```
48
+
49
+ ## decisiones-list
50
+
51
+ Lists `DECISIONES.md` entries — DEC-NNN headers with short previews. Pass `--full` to include the full body of each decision.
52
+
53
+ ```bash
54
+ agent-workflow decisiones-list --code session023
55
+ agent-workflow decisiones-list --code session023 --full
56
+ ```
57
+
58
+ ## dependencias-list
59
+
60
+ Lists `DEPENDENCIAS.md` rows as JSON — useful when a session declares cross-source dependencies.
61
+
62
+ ```bash
63
+ agent-workflow dependencias-list --code session035
64
+ ```