@tacuchi/agent-workflow-cli 11.0.1 → 12.2.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 (471) hide show
  1. package/README.md +52 -95
  2. package/dist/adapters/git-cli.d.ts +7 -1
  3. package/dist/adapters/git-cli.d.ts.map +1 -1
  4. package/dist/adapters/git-cli.js +47 -0
  5. package/dist/adapters/git-cli.js.map +1 -1
  6. package/dist/application/artifacts-service.d.ts +3 -12
  7. package/dist/application/artifacts-service.d.ts.map +1 -1
  8. package/dist/application/artifacts-service.js +18 -19
  9. package/dist/application/artifacts-service.js.map +1 -1
  10. package/dist/application/branch-resolver.d.ts +16 -0
  11. package/dist/application/branch-resolver.d.ts.map +1 -0
  12. package/dist/application/branch-resolver.js +24 -0
  13. package/dist/application/branch-resolver.js.map +1 -0
  14. package/dist/application/check-branch-service.d.ts +0 -2
  15. package/dist/application/check-branch-service.d.ts.map +1 -1
  16. package/dist/application/check-branch-service.js +5 -40
  17. package/dist/application/check-branch-service.js.map +1 -1
  18. package/dist/application/checkpoint/markdown.d.ts.map +1 -1
  19. package/dist/application/checkpoint/markdown.js +1 -16
  20. package/dist/application/checkpoint/markdown.js.map +1 -1
  21. package/dist/application/checkpoint/state-reader.d.ts +1 -3
  22. package/dist/application/checkpoint/state-reader.d.ts.map +1 -1
  23. package/dist/application/checkpoint/state-reader.js +10 -31
  24. package/dist/application/checkpoint/state-reader.js.map +1 -1
  25. package/dist/application/checkpoint-service.d.ts +12 -14
  26. package/dist/application/checkpoint-service.d.ts.map +1 -1
  27. package/dist/application/checkpoint-service.js +36 -61
  28. package/dist/application/checkpoint-service.js.map +1 -1
  29. package/dist/application/checkpoint-write-service.d.ts +0 -2
  30. package/dist/application/checkpoint-write-service.d.ts.map +1 -1
  31. package/dist/application/checkpoint-write-service.js +5 -6
  32. package/dist/application/checkpoint-write-service.js.map +1 -1
  33. package/dist/application/git-flow-service.d.ts +44 -0
  34. package/dist/application/git-flow-service.d.ts.map +1 -0
  35. package/dist/application/git-flow-service.js +220 -0
  36. package/dist/application/git-flow-service.js.map +1 -0
  37. package/dist/application/history-update-service.js +3 -1
  38. package/dist/application/history-update-service.js.map +1 -1
  39. package/dist/application/hook-branch-check.d.ts.map +1 -1
  40. package/dist/application/hook-branch-check.js +5 -34
  41. package/dist/application/hook-branch-check.js.map +1 -1
  42. package/dist/application/hook-git-commit-advisor.d.ts.map +1 -1
  43. package/dist/application/hook-git-commit-advisor.js +18 -23
  44. package/dist/application/hook-git-commit-advisor.js.map +1 -1
  45. package/dist/application/markdown.d.ts.map +1 -1
  46. package/dist/application/markdown.js +0 -4
  47. package/dist/application/markdown.js.map +1 -1
  48. package/dist/application/parsers/project-block.d.ts +1 -8
  49. package/dist/application/parsers/project-block.d.ts.map +1 -1
  50. package/dist/application/parsers/project-block.js +19 -51
  51. package/dist/application/parsers/project-block.js.map +1 -1
  52. package/dist/application/paths-service.d.ts +9 -8
  53. package/dist/application/paths-service.d.ts.map +1 -1
  54. package/dist/application/paths-service.js +16 -8
  55. package/dist/application/paths-service.js.map +1 -1
  56. package/dist/application/project-md-upsert-service.d.ts +5 -11
  57. package/dist/application/project-md-upsert-service.d.ts.map +1 -1
  58. package/dist/application/project-md-upsert-service.js +11 -56
  59. package/dist/application/project-md-upsert-service.js.map +1 -1
  60. package/dist/application/project-tab-data.d.ts +16 -42
  61. package/dist/application/project-tab-data.d.ts.map +1 -1
  62. package/dist/application/project-tab-data.js +28 -113
  63. package/dist/application/project-tab-data.js.map +1 -1
  64. package/dist/application/release-data/artifacts.d.ts +0 -2
  65. package/dist/application/release-data/artifacts.d.ts.map +1 -1
  66. package/dist/application/release-data/artifacts.js +22 -12
  67. package/dist/application/release-data/artifacts.js.map +1 -1
  68. package/dist/application/release-data/sessions.d.ts +0 -2
  69. package/dist/application/release-data/sessions.d.ts.map +1 -1
  70. package/dist/application/release-data/sessions.js +36 -27
  71. package/dist/application/release-data/sessions.js.map +1 -1
  72. package/dist/application/release-data-service.d.ts +0 -3
  73. package/dist/application/release-data-service.d.ts.map +1 -1
  74. package/dist/application/release-data-service.js +3 -21
  75. package/dist/application/release-data-service.js.map +1 -1
  76. package/dist/application/render/history-row.d.ts +1 -9
  77. package/dist/application/render/history-row.d.ts.map +1 -1
  78. package/dist/application/render/history-row.js +3 -20
  79. package/dist/application/render/history-row.js.map +1 -1
  80. package/dist/application/render/project-block.d.ts +2 -3
  81. package/dist/application/render/project-block.d.ts.map +1 -1
  82. package/dist/application/render/project-block.js +16 -26
  83. package/dist/application/render/project-block.js.map +1 -1
  84. package/dist/application/self/doctor-self.d.ts.map +1 -1
  85. package/dist/application/self/doctor-self.js +15 -8
  86. package/dist/application/self/doctor-self.js.map +1 -1
  87. package/dist/application/self/install-hooks.d.ts +1 -1
  88. package/dist/application/self/install-hooks.d.ts.map +1 -1
  89. package/dist/application/self/install-hooks.js +3 -2
  90. package/dist/application/self/install-hooks.js.map +1 -1
  91. package/dist/application/self/install-skill.d.ts +11 -3
  92. package/dist/application/self/install-skill.d.ts.map +1 -1
  93. package/dist/application/self/install-skill.js +65 -14
  94. package/dist/application/self/install-skill.js.map +1 -1
  95. package/dist/application/self/uninstall-skill.js +14 -12
  96. package/dist/application/self/uninstall-skill.js.map +1 -1
  97. package/dist/application/self/uninstall.d.ts +1 -1
  98. package/dist/application/self/uninstall.d.ts.map +1 -1
  99. package/dist/application/self/uninstall.js +39 -29
  100. package/dist/application/self/uninstall.js.map +1 -1
  101. package/dist/application/session-artifacts.d.ts +7 -6
  102. package/dist/application/session-artifacts.d.ts.map +1 -1
  103. package/dist/application/session-artifacts.js +10 -15
  104. package/dist/application/session-artifacts.js.map +1 -1
  105. package/dist/application/session-close-service.d.ts +5 -22
  106. package/dist/application/session-close-service.d.ts.map +1 -1
  107. package/dist/application/session-close-service.js +20 -143
  108. package/dist/application/session-close-service.js.map +1 -1
  109. package/dist/application/session-create-service.d.ts +9 -29
  110. package/dist/application/session-create-service.d.ts.map +1 -1
  111. package/dist/application/session-create-service.js +44 -288
  112. package/dist/application/session-create-service.js.map +1 -1
  113. package/dist/application/session-resolver.d.ts +4 -25
  114. package/dist/application/session-resolver.d.ts.map +1 -1
  115. package/dist/application/session-resolver.js +33 -149
  116. package/dist/application/session-resolver.js.map +1 -1
  117. package/dist/application/session-resume-service.d.ts +3 -4
  118. package/dist/application/session-resume-service.d.ts.map +1 -1
  119. package/dist/application/session-resume-service.js +8 -26
  120. package/dist/application/session-resume-service.js.map +1 -1
  121. package/dist/application/sessions-service.d.ts +2 -3
  122. package/dist/application/sessions-service.d.ts.map +1 -1
  123. package/dist/application/sessions-service.js +9 -26
  124. package/dist/application/sessions-service.js.map +1 -1
  125. package/dist/application/skill-index-service.d.ts +0 -2
  126. package/dist/application/skill-index-service.d.ts.map +1 -1
  127. package/dist/application/skill-index-service.js +0 -1
  128. package/dist/application/skill-index-service.js.map +1 -1
  129. package/dist/application/skills-resolver-service.d.ts +22 -0
  130. package/dist/application/skills-resolver-service.d.ts.map +1 -0
  131. package/dist/application/skills-resolver-service.js +71 -0
  132. package/dist/application/skills-resolver-service.js.map +1 -0
  133. package/dist/application/sources-service.d.ts +0 -5
  134. package/dist/application/sources-service.d.ts.map +1 -1
  135. package/dist/application/sources-service.js +5 -44
  136. package/dist/application/sources-service.js.map +1 -1
  137. package/dist/application/templates/session.d.ts +24 -0
  138. package/dist/application/templates/session.d.ts.map +1 -0
  139. package/dist/application/templates/session.js +46 -0
  140. package/dist/application/templates/session.js.map +1 -0
  141. package/dist/application/upgrade-hub-mode-service.d.ts.map +1 -1
  142. package/dist/application/upgrade-hub-mode-service.js +0 -1
  143. package/dist/application/upgrade-hub-mode-service.js.map +1 -1
  144. package/dist/application/workspace-init-service.d.ts +62 -0
  145. package/dist/application/workspace-init-service.d.ts.map +1 -0
  146. package/dist/application/workspace-init-service.js +228 -0
  147. package/dist/application/workspace-init-service.js.map +1 -0
  148. package/dist/cli/commands/check-branch.d.ts.map +1 -1
  149. package/dist/cli/commands/check-branch.js +0 -3
  150. package/dist/cli/commands/check-branch.js.map +1 -1
  151. package/dist/cli/commands/git-flow.d.ts +3 -0
  152. package/dist/cli/commands/git-flow.d.ts.map +1 -0
  153. package/dist/cli/commands/git-flow.js +50 -0
  154. package/dist/cli/commands/git-flow.js.map +1 -0
  155. package/dist/cli/commands/plugin-doctor.d.ts.map +1 -1
  156. package/dist/cli/commands/plugin-doctor.js +0 -3
  157. package/dist/cli/commands/plugin-doctor.js.map +1 -1
  158. package/dist/cli/commands/project-md-upsert.d.ts.map +1 -1
  159. package/dist/cli/commands/project-md-upsert.js +5 -31
  160. package/dist/cli/commands/project-md-upsert.js.map +1 -1
  161. package/dist/cli/commands/session-close.d.ts.map +1 -1
  162. package/dist/cli/commands/session-close.js +1 -33
  163. package/dist/cli/commands/session-close.js.map +1 -1
  164. package/dist/cli/commands/session-create.d.ts.map +1 -1
  165. package/dist/cli/commands/session-create.js +5 -21
  166. package/dist/cli/commands/session-create.js.map +1 -1
  167. package/dist/cli/commands/session-resume.js +1 -1
  168. package/dist/cli/commands/session-resume.js.map +1 -1
  169. package/dist/cli/commands/set-qa-branch.d.ts +3 -0
  170. package/dist/cli/commands/set-qa-branch.d.ts.map +1 -0
  171. package/dist/cli/commands/set-qa-branch.js +34 -0
  172. package/dist/cli/commands/set-qa-branch.js.map +1 -0
  173. package/dist/cli/commands/set-working-branch.d.ts +3 -0
  174. package/dist/cli/commands/set-working-branch.d.ts.map +1 -0
  175. package/dist/cli/commands/set-working-branch.js +34 -0
  176. package/dist/cli/commands/set-working-branch.js.map +1 -0
  177. package/dist/cli/commands/skill-index.d.ts.map +1 -1
  178. package/dist/cli/commands/skill-index.js +0 -3
  179. package/dist/cli/commands/skill-index.js.map +1 -1
  180. package/dist/cli/commands/skills.d.ts +3 -0
  181. package/dist/cli/commands/skills.d.ts.map +1 -0
  182. package/dist/cli/commands/skills.js +10 -0
  183. package/dist/cli/commands/skills.js.map +1 -0
  184. package/dist/cli/commands/sources.d.ts.map +1 -1
  185. package/dist/cli/commands/sources.js +0 -3
  186. package/dist/cli/commands/sources.js.map +1 -1
  187. package/dist/cli/commands/workspace-init.d.ts +3 -0
  188. package/dist/cli/commands/workspace-init.d.ts.map +1 -0
  189. package/dist/cli/commands/workspace-init.js +71 -0
  190. package/dist/cli/commands/workspace-init.js.map +1 -0
  191. package/dist/cli/help-groups.d.ts.map +1 -1
  192. package/dist/cli/help-groups.js +10 -19
  193. package/dist/cli/help-groups.js.map +1 -1
  194. package/dist/cli/interactive-menu.d.ts +1 -1
  195. package/dist/cli/interactive-menu.d.ts.map +1 -1
  196. package/dist/cli/main.js +33 -37
  197. package/dist/cli/main.js.map +1 -1
  198. package/dist/cli/parser.d.ts +0 -2
  199. package/dist/cli/parser.d.ts.map +1 -1
  200. package/dist/cli/parser.js +6 -13
  201. package/dist/cli/parser.js.map +1 -1
  202. package/dist/cli/tui/app.js +3 -38
  203. package/dist/cli/tui/app.js.map +1 -1
  204. package/dist/cli/tui/components/git-flow-actions.d.ts +22 -0
  205. package/dist/cli/tui/components/git-flow-actions.d.ts.map +1 -0
  206. package/dist/cli/tui/components/git-flow-actions.js +0 -0
  207. package/dist/cli/tui/components/git-flow-actions.js.map +1 -0
  208. package/dist/cli/tui/components/hub-init-alias.js +1 -1
  209. package/dist/cli/tui/components/hub-init-alias.js.map +1 -1
  210. package/dist/cli/tui/components/hub-init-form.d.ts.map +1 -1
  211. package/dist/cli/tui/components/hub-init-form.js +13 -12
  212. package/dist/cli/tui/components/hub-init-form.js.map +1 -1
  213. package/dist/cli/tui/components/workspace-init-alias.d.ts +5 -0
  214. package/dist/cli/tui/components/workspace-init-alias.d.ts.map +1 -0
  215. package/dist/cli/tui/components/workspace-init-alias.js +19 -0
  216. package/dist/cli/tui/components/workspace-init-alias.js.map +1 -0
  217. package/dist/cli/tui/components/workspace-init-form.d.ts +13 -0
  218. package/dist/cli/tui/components/workspace-init-form.d.ts.map +1 -0
  219. package/dist/cli/tui/components/workspace-init-form.js +87 -0
  220. package/dist/cli/tui/components/workspace-init-form.js.map +1 -0
  221. package/dist/cli/tui/data/activity.d.ts +1 -1
  222. package/dist/cli/tui/data/activity.d.ts.map +1 -1
  223. package/dist/cli/tui/data/activity.js +2 -2
  224. package/dist/cli/tui/data/activity.js.map +1 -1
  225. package/dist/cli/tui/data/workflow-content.d.ts.map +1 -1
  226. package/dist/cli/tui/data/workflow-content.js +67 -87
  227. package/dist/cli/tui/data/workflow-content.js.map +1 -1
  228. package/dist/cli/tui/tabs/project-tab.d.ts.map +1 -1
  229. package/dist/cli/tui/tabs/project-tab.js +49 -105
  230. package/dist/cli/tui/tabs/project-tab.js.map +1 -1
  231. package/dist/cli/tui/tabs/skills-tab.d.ts.map +1 -1
  232. package/dist/cli/tui/tabs/skills-tab.js +7 -7
  233. package/dist/cli/tui/tabs/skills-tab.js.map +1 -1
  234. package/dist/cli/tui/tabs/workflow-tab.d.ts +1 -3
  235. package/dist/cli/tui/tabs/workflow-tab.d.ts.map +1 -1
  236. package/dist/cli/tui/tabs/workflow-tab.js +2 -2
  237. package/dist/cli/tui/tabs/workflow-tab.js.map +1 -1
  238. package/dist/cli/types.d.ts +3 -0
  239. package/dist/cli/types.d.ts.map +1 -1
  240. package/dist/domain/plugin.d.ts +2 -12
  241. package/dist/domain/plugin.d.ts.map +1 -1
  242. package/dist/domain/project.d.ts +0 -9
  243. package/dist/domain/project.d.ts.map +1 -1
  244. package/dist/domain/session.d.ts +7 -24
  245. package/dist/domain/session.d.ts.map +1 -1
  246. package/dist/domain/skills.d.ts +22 -0
  247. package/dist/domain/skills.d.ts.map +1 -0
  248. package/dist/domain/skills.js +37 -0
  249. package/dist/domain/skills.js.map +1 -0
  250. package/dist/domain/types.d.ts +6 -2
  251. package/dist/domain/types.d.ts.map +1 -1
  252. package/dist/index.d.ts +4 -4
  253. package/dist/index.d.ts.map +1 -1
  254. package/dist/index.js.map +1 -1
  255. package/dist/ports/git.d.ts +17 -0
  256. package/dist/ports/git.d.ts.map +1 -1
  257. package/dist/runtime/config-service.js +1 -1
  258. package/dist/runtime/config-service.js.map +1 -1
  259. package/dist/runtime/types.d.ts +0 -1
  260. package/dist/runtime/types.d.ts.map +1 -1
  261. package/dist/runtime/types.js.map +1 -1
  262. package/package.json +12 -3
  263. package/skills/w/README.md +65 -0
  264. package/skills/w/SKILL.md +153 -0
  265. package/skills/w/artifacts/README.md +60 -0
  266. package/skills/w/artifacts/artifacts-core/BACKLOG.md +12 -0
  267. package/skills/w/artifacts/artifacts-core/CHECKPOINT.md +22 -0
  268. package/skills/w/artifacts/artifacts-core/SCRIPTS.sql +39 -0
  269. package/skills/w/artifacts/artifacts-core/SESSION.md +27 -0
  270. package/skills/w/artifacts/artifacts-core/TASKS.md +18 -0
  271. package/skills/w/artifacts/artifacts-dev/DECISION.md +11 -0
  272. package/skills/w/artifacts/artifacts-dev/TECHNICAL-NOTE.md +81 -0
  273. package/skills/w/artifacts/artifacts-research/ANALYSIS-FILE.md +48 -0
  274. package/skills/w/artifacts/artifacts-research/CONCLUSIONS.md +20 -0
  275. package/skills/w/commands/README.md +116 -0
  276. package/skills/w/commands/export-diagrams.md +35 -0
  277. package/skills/w/commands/export-manuals.md +35 -0
  278. package/skills/w/commands/export-reports.md +35 -0
  279. package/skills/w/commands/export-scripts.md +35 -0
  280. package/skills/w/commands/plan-exec.md +46 -0
  281. package/skills/w/commands/plan-new.md +44 -0
  282. package/skills/w/commands/quick.md +39 -0
  283. package/skills/w/commands/spec-new.md +63 -0
  284. package/skills/w/commands/spec-refine.md +41 -0
  285. package/skills/w/commands/workspace-init.md +39 -0
  286. package/skills/w/exports/README.md +88 -0
  287. package/skills/w/exports/export-diagrams/SKILL.md +125 -0
  288. package/skills/w/exports/export-manuals/SKILL.md +127 -0
  289. package/skills/w/exports/export-reports/SKILL.md +115 -0
  290. package/skills/w/exports/export-scripts/SKILL.md +135 -0
  291. package/skills/w/hooks/README.md +15 -0
  292. package/skills/{agent-workflow → w}/hooks/hooks.template.json +2 -2
  293. package/skills/w/loops/README.md +118 -0
  294. package/skills/w/loops/plan-exec-loop/SKILL.md +161 -0
  295. package/skills/w/loops/plan-new-loop/SKILL.md +97 -0
  296. package/skills/w/loops/quick-loop/SKILL.md +102 -0
  297. package/skills/w/loops/spec-refine-loop/SKILL.md +222 -0
  298. package/skills/w/roles/README.md +154 -0
  299. package/skills/w/roles/coding-standards/SKILL.md +82 -0
  300. package/skills/w/roles/diagrams/SKILL.md +248 -0
  301. package/skills/w/roles/git/SKILL.md +98 -0
  302. package/skills/w/roles/research/SKILL.md +181 -0
  303. package/skills/w/roles/sql/SKILL.md +137 -0
  304. package/skills/w/roles/testing/SKILL.md +180 -0
  305. package/skills/w/roles/tools/SKILL.md +148 -0
  306. package/skills/w/roles/ui-spec/SKILL.md +136 -0
  307. package/skills/w/roles/writing/SKILL.md +90 -0
  308. package/skills/agent-workflow/LICENSE +0 -661
  309. package/skills/agent-workflow/MANUAL-FUNCIONAL.md +0 -298
  310. package/skills/agent-workflow/MANUAL-TECNICO.md +0 -271
  311. package/skills/agent-workflow/README.md +0 -74
  312. package/skills/agent-workflow/SKILL.md +0 -112
  313. package/skills/agent-workflow/commands/README.md +0 -26
  314. package/skills/agent-workflow/commands/compact.md +0 -24
  315. package/skills/agent-workflow/commands/doctor.md +0 -100
  316. package/skills/agent-workflow/commands/export-arq.md +0 -77
  317. package/skills/agent-workflow/commands/export-conclusions.md +0 -78
  318. package/skills/agent-workflow/commands/export-plan.md +0 -74
  319. package/skills/agent-workflow/commands/export-qa-note.md +0 -30
  320. package/skills/agent-workflow/commands/export-report.md +0 -78
  321. package/skills/agent-workflow/commands/export-requirement.md +0 -30
  322. package/skills/agent-workflow/commands/export-scripts.md +0 -82
  323. package/skills/agent-workflow/commands/export-tech-manuals.md +0 -75
  324. package/skills/agent-workflow/commands/export-tech-note.md +0 -30
  325. package/skills/agent-workflow/commands/hub-init.md +0 -58
  326. package/skills/agent-workflow/commands/migrate.md +0 -56
  327. package/skills/agent-workflow/commands/patch.md +0 -49
  328. package/skills/agent-workflow/commands/project-init.md +0 -60
  329. package/skills/agent-workflow/commands/resume.md +0 -22
  330. package/skills/agent-workflow/commands/rules.md +0 -41
  331. package/skills/agent-workflow/commands/session.md +0 -35
  332. package/skills/agent-workflow/docs/TEST-PLAN.md +0 -163
  333. package/skills/agent-workflow/doctrine/README.md +0 -15
  334. package/skills/agent-workflow/doctrine/compact/SKILL.md +0 -145
  335. package/skills/agent-workflow/doctrine/doctor/SKILL.md +0 -86
  336. package/skills/agent-workflow/doctrine/hub-init/SKILL.md +0 -77
  337. package/skills/agent-workflow/doctrine/hub-init/references/multiroot-manual.md +0 -51
  338. package/skills/agent-workflow/doctrine/implement/SKILL.md +0 -290
  339. package/skills/agent-workflow/doctrine/implement/references/branch-verification.md +0 -16
  340. package/skills/agent-workflow/doctrine/implement/references/design-md-template.md +0 -108
  341. package/skills/agent-workflow/doctrine/implement/references/rollback-guide.md +0 -83
  342. package/skills/agent-workflow/doctrine/migrate/SKILL.md +0 -281
  343. package/skills/agent-workflow/doctrine/project-init/SKILL.md +0 -100
  344. package/skills/agent-workflow/doctrine/refactor/SKILL.md +0 -208
  345. package/skills/agent-workflow/doctrine/refactor/references/refactor-md-template.md +0 -108
  346. package/skills/agent-workflow/doctrine/refactor/references/strangler-checklist.md +0 -116
  347. package/skills/agent-workflow/doctrine/resume/SKILL.md +0 -199
  348. package/skills/agent-workflow/doctrine/rules/SKILL.md +0 -250
  349. package/skills/agent-workflow/doctrine/session/SKILL.md +0 -471
  350. package/skills/agent-workflow/doctrine/session/references/auto-plan-rules.md +0 -63
  351. package/skills/agent-workflow/doctrine/session/references/backlog-template.md +0 -95
  352. package/skills/agent-workflow/doctrine/session/references/branch-verification.md +0 -198
  353. package/skills/agent-workflow/doctrine/session/references/commits-policy.md +0 -111
  354. package/skills/agent-workflow/doctrine/session/references/communication-style.md +0 -50
  355. package/skills/agent-workflow/doctrine/session/references/graduacion-routing.md +0 -88
  356. package/skills/agent-workflow/doctrine/session/references/lifecycle-deep.md +0 -160
  357. package/skills/agent-workflow/doctrine/session/references/prompts/C1-specialty-selection.md +0 -11
  358. package/skills/agent-workflow/doctrine/session/references/prompts/C2-cost-guard.md +0 -14
  359. package/skills/agent-workflow/doctrine/session/references/prompts/M1-closure-commit-prompt.md +0 -104
  360. package/skills/agent-workflow/doctrine/session/references/prompts/M10-next-step.md +0 -17
  361. package/skills/agent-workflow/doctrine/session/references/prompts/M11-context.md +0 -16
  362. package/skills/agent-workflow/doctrine/session/references/prompts/M13-closure-cleanup.md +0 -61
  363. package/skills/agent-workflow/doctrine/session/references/prompts/M2-branch-caso-A.md +0 -14
  364. package/skills/agent-workflow/doctrine/session/references/prompts/M3-branch-caso-C.md +0 -33
  365. package/skills/agent-workflow/doctrine/session/references/prompts/M4-cross-source-hard-gate.md +0 -33
  366. package/skills/agent-workflow/doctrine/session/references/prompts/M5-modality-analyze.md +0 -15
  367. package/skills/agent-workflow/doctrine/session/references/prompts/M6-phase-gate.md +0 -31
  368. package/skills/agent-workflow/doctrine/session/references/prompts/M7-refactor-legacy-detected.md +0 -28
  369. package/skills/agent-workflow/doctrine/session/references/prompts/M8-refactor-cleanup.md +0 -16
  370. package/skills/agent-workflow/doctrine/session/references/prompts/M9-contract-review.md +0 -39
  371. package/skills/agent-workflow/doctrine/session/references/prompts/S1-type-design.md +0 -15
  372. package/skills/agent-workflow/doctrine/session/references/prompts/S2-topic-change-detection.md +0 -14
  373. package/skills/agent-workflow/doctrine/session/references/prompts/S3-flow-detection.md +0 -28
  374. package/skills/agent-workflow/doctrine/session/references/prompts/S4-resume.md +0 -27
  375. package/skills/agent-workflow/doctrine/session/references/prompts/S5-post-compact.md +0 -17
  376. package/skills/agent-workflow/doctrine/session/references/prompts/S6-scope.md +0 -16
  377. package/skills/agent-workflow/doctrine/session/references/prompts/S7-design-review.md +0 -37
  378. package/skills/agent-workflow/doctrine/session/references/prompts-catalog.md +0 -213
  379. package/skills/agent-workflow/doctrine/session/references/sandbox-readonly-rules.md +0 -82
  380. package/skills/agent-workflow/doctrine/session/references/specialty-decision-tree.md +0 -56
  381. package/skills/agent-workflow/doctrine/session/references/topic-change-rules.md +0 -67
  382. package/skills/agent-workflow/exports/README.md +0 -15
  383. package/skills/agent-workflow/exports/export-arq/SKILL.md +0 -229
  384. package/skills/agent-workflow/exports/export-arq/references/lexico-tecnico.md +0 -94
  385. package/skills/agent-workflow/exports/export-arq/references/template-c4.md +0 -293
  386. package/skills/agent-workflow/exports/export-arq/references/template-plantuml.puml +0 -77
  387. package/skills/agent-workflow/exports/export-arq/references/template-structurizr.dsl +0 -72
  388. package/skills/agent-workflow/exports/export-arq/references/validations.md +0 -231
  389. package/skills/agent-workflow/exports/export-conclusions/SKILL.md +0 -169
  390. package/skills/agent-workflow/exports/export-conclusions/references/dedup-rules.md +0 -154
  391. package/skills/agent-workflow/exports/export-conclusions/references/template-conclusions.md +0 -158
  392. package/skills/agent-workflow/exports/export-plan/SKILL.md +0 -225
  393. package/skills/agent-workflow/exports/export-plan/references/state-transitions.md +0 -141
  394. package/skills/agent-workflow/exports/export-plan/references/template-plan.md +0 -132
  395. package/skills/agent-workflow/exports/export-qa-note/SKILL.md +0 -31
  396. package/skills/agent-workflow/exports/export-report/SKILL.md +0 -262
  397. package/skills/agent-workflow/exports/export-report/references/lexico.md +0 -174
  398. package/skills/agent-workflow/exports/export-report/references/template-a.md +0 -95
  399. package/skills/agent-workflow/exports/export-report/references/template-b.md +0 -221
  400. package/skills/agent-workflow/exports/export-report/references/template-c.md +0 -180
  401. package/skills/agent-workflow/exports/export-report/references/validations.md +0 -255
  402. package/skills/agent-workflow/exports/export-requirement/SKILL.md +0 -31
  403. package/skills/agent-workflow/exports/export-scripts/SKILL.md +0 -211
  404. package/skills/agent-workflow/exports/export-scripts/references/code-scan-recommendations.md +0 -83
  405. package/skills/agent-workflow/exports/export-scripts/references/deprecation-plan.md +0 -80
  406. package/skills/agent-workflow/exports/export-scripts/references/lexico-tecnico.md +0 -47
  407. package/skills/agent-workflow/exports/export-scripts/references/manifest-template.md +0 -265
  408. package/skills/agent-workflow/exports/export-scripts/references/readme-template.md +0 -49
  409. package/skills/agent-workflow/exports/export-scripts/references/theme-handling.md +0 -141
  410. package/skills/agent-workflow/exports/export-scripts/references/validations.md +0 -69
  411. package/skills/agent-workflow/exports/export-tech-manuals/SKILL.md +0 -214
  412. package/skills/agent-workflow/exports/export-tech-manuals/references/lexico-tecnico.md +0 -97
  413. package/skills/agent-workflow/exports/export-tech-manuals/references/template-index.md +0 -123
  414. package/skills/agent-workflow/exports/export-tech-manuals/references/template-manual.md +0 -143
  415. package/skills/agent-workflow/exports/export-tech-manuals/references/validations.md +0 -211
  416. package/skills/agent-workflow/exports/export-tech-note/SKILL.md +0 -31
  417. package/skills/agent-workflow/hooks/README.md +0 -15
  418. package/skills/agent-workflow/references/README.md +0 -12
  419. package/skills/agent-workflow/references/checkpoint.md +0 -59
  420. package/skills/agent-workflow/references/dev-only.md +0 -50
  421. package/skills/agent-workflow/references/doctor.md +0 -61
  422. package/skills/agent-workflow/references/history.md +0 -40
  423. package/skills/agent-workflow/references/hooks.md +0 -35
  424. package/skills/agent-workflow/references/legacy-anchors.md +0 -50
  425. package/skills/agent-workflow/references/mcp.md +0 -34
  426. package/skills/agent-workflow/references/objetivo-tasks.md +0 -64
  427. package/skills/agent-workflow/references/orchestration.md +0 -86
  428. package/skills/agent-workflow/references/profile-parametrization.md +0 -88
  429. package/skills/agent-workflow/references/self.md +0 -68
  430. package/skills/agent-workflow/references/session-mgmt.md +0 -109
  431. package/skills/agent-workflow/references/sources.md +0 -102
  432. package/skills/agent-workflow/specialties/README.md +0 -14
  433. package/skills/agent-workflow/specialties/analyze-conclude/SKILL.md +0 -181
  434. package/skills/agent-workflow/specialties/analyze-conclude/references/incident-classification.md +0 -61
  435. package/skills/agent-workflow/specialties/analyze-investigate/SKILL.md +0 -148
  436. package/skills/agent-workflow/specialties/analyze-investigate/references/cost-guard.md +0 -85
  437. package/skills/agent-workflow/specialties/analyze-synthesize/SKILL.md +0 -127
  438. package/skills/agent-workflow/specialties/design-brief/SKILL.md +0 -90
  439. package/skills/agent-workflow/specialties/design-deliver/SKILL.md +0 -121
  440. package/skills/agent-workflow/specialties/design-develop/SKILL.md +0 -115
  441. package/skills/agent-workflow/specialties/design-discover/SKILL.md +0 -103
  442. package/skills/agent-workflow/standards/README.md +0 -12
  443. package/skills/agent-workflow/standards/coding-standards/SKILL.md +0 -102
  444. package/skills/agent-workflow/standards/coding-standards/references/angular-typescript.md +0 -266
  445. package/skills/agent-workflow/standards/coding-standards/references/database-conventions.md +0 -170
  446. package/skills/agent-workflow/standards/coding-standards/references/fe-be-integration.md +0 -300
  447. package/skills/agent-workflow/standards/coding-standards/references/frontend-structure.md +0 -182
  448. package/skills/agent-workflow/standards/coding-standards/references/java-spring.md +0 -244
  449. package/skills/agent-workflow/standards/coding-standards/references/project-structure.md +0 -197
  450. package/skills/agent-workflow/standards/frontend-design/SKILL.md +0 -62
  451. package/skills/agent-workflow/standards/frontend-design/references/feedback-toasts-patterns.md +0 -249
  452. package/skills/agent-workflow/standards/frontend-design/references/form-patterns.md +0 -278
  453. package/skills/agent-workflow/standards/frontend-design/references/list-patterns.md +0 -256
  454. package/skills/agent-workflow/standards/frontend-design/references/modal-patterns.md +0 -220
  455. package/skills/agent-workflow/standards/frontend-design/references/navigation-patterns.md +0 -224
  456. package/skills/agent-workflow/standards/redaccion-simple/SKILL.md +0 -128
  457. package/skills/agent-workflow/standards/sql-rollback-generator/SKILL.md +0 -158
  458. package/skills/agent-workflow/standards/sql-rollback-generator/references/irreversible-checklist.md +0 -161
  459. package/skills/agent-workflow/standards/sql-rollback-generator/references/release-rollback.md +0 -133
  460. package/skills/agent-workflow/standards/sql-rollback-generator/references/rollback-patterns.md +0 -257
  461. package/skills/agent-workflow/standards/sql-script-organizer/SKILL.md +0 -243
  462. package/skills/agent-workflow/standards/sql-script-organizer/references/bundle-readme-template.md +0 -82
  463. package/skills/agent-workflow/standards/sql-script-organizer/references/categorization-rules.md +0 -122
  464. package/skills/agent-workflow/standards/sql-script-organizer/references/consolidation-cross-session.md +0 -125
  465. package/skills/agent-workflow/standards/sql-script-organizer/references/scripts-sql-format.md +0 -140
  466. package/skills/agent-workflow/standards/testing-strategy/SKILL.md +0 -113
  467. package/skills/agent-workflow/standards/testing-strategy/references/test-levels.md +0 -255
  468. package/skills/agent-workflow/workflows/README.md +0 -12
  469. package/skills/agent-workflow/workflows/analyze-workflow/SKILL.md +0 -94
  470. package/skills/agent-workflow/workflows/design-workflow/SKILL.md +0 -79
  471. package/skills/agent-workflow/workflows/dev-workflow/SKILL.md +0 -172
@@ -0,0 +1,71 @@
1
+ import { parse as parseToml } from "smol-toml";
2
+ import { BUILTIN_DEFAULT_SKILLS, SKILL_ROLES, isSkillRole, } from "../domain/skills.js";
3
+ const OFF = "off";
4
+ /**
5
+ * Resolve capability role → skill bindings via the cascade:
6
+ * built-in default → ~/.workflow/skills.toml (global) → .workflow/skills.toml (workspace)
7
+ *
8
+ * Workspace overrides global; global overrides built-in default. A role bound to
9
+ * "off" is disabled. Unknown role keys and parse errors are recorded as warnings
10
+ * and never crash resolution (this runs for every command).
11
+ */
12
+ export async function resolveSkills(fs, paths) {
13
+ const warnings = [];
14
+ const skills = buildDefaultSkills();
15
+ const sources = { global: false, workspace: false };
16
+ const levels = [
17
+ { source: "global", path: paths.userSkillsToml() },
18
+ { source: "workspace", path: paths.cwdSkillsToml() },
19
+ ];
20
+ for (const level of levels) {
21
+ if (!(await fs.exists(level.path)))
22
+ continue;
23
+ sources[level.source] = true;
24
+ const table = await readSkillsTable(fs, level.path, warnings);
25
+ if (table)
26
+ applyLevel(skills, table, level.source, level.path, warnings);
27
+ }
28
+ return { skills, sources, warnings };
29
+ }
30
+ function buildDefaultSkills() {
31
+ const skills = {};
32
+ for (const role of SKILL_ROLES) {
33
+ skills[role] = { role, skill: BUILTIN_DEFAULT_SKILLS[role], source: "default", enabled: true };
34
+ }
35
+ return skills;
36
+ }
37
+ /** Read the `[skills]` table from a TOML file. Returns null (with a warning) on any problem. */
38
+ async function readSkillsTable(fs, path, warnings) {
39
+ try {
40
+ const parsed = parseToml(await fs.readText(path));
41
+ const skillsTable = parsed.skills;
42
+ if (skillsTable === undefined || skillsTable === null)
43
+ return null;
44
+ if (typeof skillsTable !== "object") {
45
+ warnings.push(`${path}: [skills] is not a table`);
46
+ return null;
47
+ }
48
+ return skillsTable;
49
+ }
50
+ catch (err) {
51
+ warnings.push(`${path}: parse error (${err.message})`);
52
+ return null;
53
+ }
54
+ }
55
+ /** Merge one cascade level's `[skills]` table onto the resolved bindings. */
56
+ function applyLevel(skills, table, source, path, warnings) {
57
+ for (const [key, value] of Object.entries(table)) {
58
+ if (!isSkillRole(key)) {
59
+ warnings.push(`${path}: unknown role '${key}' ignored`);
60
+ continue;
61
+ }
62
+ const val = String(value).trim();
63
+ if (val.toLowerCase() === OFF) {
64
+ skills[key] = { role: key, skill: null, source, enabled: false };
65
+ }
66
+ else if (val.length > 0) {
67
+ skills[key] = { role: key, skill: val, source, enabled: true };
68
+ }
69
+ }
70
+ }
71
+ //# sourceMappingURL=skills-resolver-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills-resolver-service.js","sourceRoot":"","sources":["../../src/application/skills-resolver-service.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,6 @@ export interface SourcesInput {
8
8
  sessionCode?: string;
9
9
  scope?: string[];
10
10
  skipGit?: boolean;
11
- flowOverride?: string;
12
11
  verbose?: boolean;
13
12
  }
14
13
  export interface EnrichedSource extends ProjectFuente {
@@ -26,14 +25,10 @@ export interface DivergentSource {
26
25
  expected: string | null;
27
26
  }
28
27
  export interface SourcesOutput {
29
- workspace_mode: "project" | "hub";
30
- flow: string | null;
31
28
  sources: Array<Partial<EnrichedSource>>;
32
- session_branches: string[];
33
29
  working_branches_from_status: Record<string, string>;
34
30
  cross_source_consistent: boolean;
35
31
  divergent_sources: DivergentSource[];
36
- is_hub?: boolean;
37
32
  session_code?: string;
38
33
  scope?: string[] | null;
39
34
  error?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"sources-service.d.ts","sourceRoot":"","sources":["../../src/application/sources-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EACL,KAAK,aAAa,EAGnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,SAAS,GAAG,KAAK,CAAC;IAClC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;IACxC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,uBAAuB,EAAE,OAAO,CAAC;IACjC,iBAAiB,EAAE,eAAe,EAAE,CAAC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,UAAU,CAC9B,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,aAAa,CAAC,CAiExB;AA8HD,YAAY,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"sources-service.d.ts","sourceRoot":"","sources":["../../src/application/sources-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,KAAK,aAAa,EAAqB,MAAM,4BAA4B,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;IACxC,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,uBAAuB,EAAE,OAAO,CAAC;IACjC,iBAAiB,EAAE,eAAe,EAAE,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,UAAU,CAC9B,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,aAAa,CAAC,CAyDxB;AA0FD,YAAY,EAAE,WAAW,EAAE,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { join } from "node:path";
2
- import { parseProjectBlock, } from "./parsers/project-block.js";
2
+ import { expectedWorkBranch } from "./branch-resolver.js";
3
+ import { parseProjectBlock } from "./parsers/project-block.js";
3
4
  import { relpath } from "./paths.js";
4
5
  export async function runSources(fs, env, git, paths, input) {
5
6
  const cwd = env.cwd();
@@ -7,10 +8,7 @@ export async function runSources(fs, env, git, paths, input) {
7
8
  const verbose = input.verbose === true;
8
9
  if (!block || block.fuentes.length === 0) {
9
10
  const empty = {
10
- workspace_mode: block?.mode ?? "project",
11
- flow: null,
12
11
  sources: [],
13
- session_branches: [],
14
12
  working_branches_from_status: {},
15
13
  cross_source_consistent: true,
16
14
  divergent_sources: [],
@@ -21,13 +19,12 @@ export async function runSources(fs, env, git, paths, input) {
21
19
  const sources = input.scope
22
20
  ? block.fuentes.filter((s) => input.scope?.includes(s.alias))
23
21
  : block.fuentes;
24
- const sessionEntry = resolveSessionEntry(block.sessions, input.sessionCode);
25
- const sessionBranches = sessionEntry?.branches ?? [];
26
- const flow = input.flowOverride ?? resolveSessionFlow(sessionEntry);
22
+ // Expected work branch comes from WORKSPACE block working_branches per source;
23
+ // decoupled from sessions/flow.
27
24
  const workingBranches = block.working_branches;
28
25
  const enriched = [];
29
26
  for (const src of sources) {
30
- const expected = expectedWorkBranch(src, workingBranches, sessionBranches, flow);
27
+ const expected = expectedWorkBranch(src, workingBranches);
31
28
  if (input.skipGit === true) {
32
29
  // Mirror Python: skip_git produces only alias/path/main_branch/expected_work_branch.
33
30
  enriched.push({
@@ -43,16 +40,12 @@ export async function runSources(fs, env, git, paths, input) {
43
40
  }
44
41
  const { consistent, divergent } = computeCrossSourceConsistency(enriched);
45
42
  const payload = {
46
- workspace_mode: block.mode,
47
- flow,
48
43
  sources: enriched.map((e) => compactSourceEntry(e, cwd, verbose)),
49
- session_branches: sessionBranches,
50
44
  working_branches_from_status: workingBranches,
51
45
  cross_source_consistent: consistent,
52
46
  divergent_sources: divergent,
53
47
  };
54
48
  if (verbose) {
55
- payload.is_hub = block.mode === "hub";
56
49
  payload.session_code = input.sessionCode ?? "";
57
50
  payload.scope = input.scope ?? null;
58
51
  }
@@ -71,38 +64,6 @@ async function readProjectBlock(fs, cwd, paths) {
71
64
  }
72
65
  return null;
73
66
  }
74
- function resolveSessionEntry(sessions, sessionCode) {
75
- if (!sessionCode)
76
- return sessions[0] ?? null;
77
- for (const s of sessions) {
78
- if (s.folder.startsWith(`session${sessionCode}`) || s.folder.includes(sessionCode)) {
79
- return s;
80
- }
81
- }
82
- return null;
83
- }
84
- function resolveSessionFlow(session) {
85
- if (!session)
86
- return null;
87
- const m = session.folder.match(/^session(\d{3})-([a-z]+)-/);
88
- if (!m || !m[2])
89
- return null;
90
- return ["dev", "design", "analyze"].includes(m[2]) ? m[2] : null;
91
- }
92
- function expectedWorkBranch(source, workingBranches, sessionBranches, flow) {
93
- for (const entry of sessionBranches) {
94
- if (!entry.includes(":"))
95
- continue;
96
- const [a, b] = entry.split(":", 2);
97
- if (a?.trim() === source.alias && b?.trim())
98
- return b.trim();
99
- }
100
- if (flow === "analyze")
101
- return source.main_branch;
102
- if (workingBranches[source.alias])
103
- return workingBranches[source.alias] ?? null;
104
- return null;
105
- }
106
67
  async function checkSourceBranch(fs, git, source, expected) {
107
68
  const base = {
108
69
  ...source,
@@ -1 +1 @@
1
- {"version":3,"file":"sources-service.js","sourceRoot":"","sources":["../../src/application/sources-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sources-service.js","sourceRoot":"","sources":["../../src/application/sources-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Renderer for SESSION.md — the brief descriptor of an internal session
3
+ * (Layer 3), created by a loop (not the user). Shape mirrors
4
+ * `skills/w/artifacts/artifacts-core/SESSION.md`:
5
+ *
6
+ * # SESSION — <name>
7
+ * ## Objective (from --objetivo)
8
+ * ## Origin (list derived from a plain origin string; placeholder when absent)
9
+ * ## Type (the --type value, set by the parent loop)
10
+ * ## Components (blank checklist)
11
+ * ## Success criteria (blank `[ ]` checklist)
12
+ */
13
+ export interface SessionTemplateValues {
14
+ /** Folder/name of the session (verbatim --name). */
15
+ name: string;
16
+ /** Session type set by the loop: research | refine | exec | quick. */
17
+ type: string;
18
+ /** What this session resolves (from --objetivo). */
19
+ objetivo: string;
20
+ /** Optional plain origin string (from --from): who/where it was created from. */
21
+ origin?: string;
22
+ }
23
+ export declare function renderSessionMarkdown(values: SessionTemplateValues): string;
24
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/application/templates/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,qBAAqB;IACpC,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAeD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAoB3E"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Renderer for SESSION.md — the brief descriptor of an internal session
3
+ * (Layer 3), created by a loop (not the user). Shape mirrors
4
+ * `skills/w/artifacts/artifacts-core/SESSION.md`:
5
+ *
6
+ * # SESSION — <name>
7
+ * ## Objective (from --objetivo)
8
+ * ## Origin (list derived from a plain origin string; placeholder when absent)
9
+ * ## Type (the --type value, set by the parent loop)
10
+ * ## Components (blank checklist)
11
+ * ## Success criteria (blank `[ ]` checklist)
12
+ */
13
+ function renderOriginSection(origin) {
14
+ const trimmed = origin?.trim();
15
+ if (!trimmed) {
16
+ return "<!-- Who created it and from where: parent loop, source document, trigger. -->\n- ";
17
+ }
18
+ // Allow a comma-separated origin string to become a small bullet list.
19
+ const items = trimmed
20
+ .split(",")
21
+ .map((s) => s.trim())
22
+ .filter((s) => s.length > 0);
23
+ return items.map((item) => `- ${item}`).join("\n");
24
+ }
25
+ export function renderSessionMarkdown(values) {
26
+ return `# SESSION — ${values.name}
27
+
28
+ ## Objective
29
+ ${values.objetivo}
30
+
31
+ ## Origin
32
+ ${renderOriginSection(values.origin)}
33
+
34
+ ## Type
35
+ ${values.type}
36
+
37
+ ## Components
38
+ <!-- Projects / systems / sources / databases involved. -->
39
+ - [ ]
40
+
41
+ ## Success criteria
42
+ <!-- Checklist that, when met, closes the session and triggers the report back to the loop. -->
43
+ - [ ]
44
+ `;
45
+ }
46
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/application/templates/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,SAAS,mBAAmB,CAAC,MAA0B;IACrD,MAAM,OAAO,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,oFAAoF,CAAC;IAC9F,CAAC;IACD,uEAAuE;IACvE,MAAM,KAAK,GAAG,OAAO;SAClB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAA6B;IACjE,OAAO,eAAe,MAAM,CAAC,IAAI;;;EAGjC,MAAM,CAAC,QAAQ;;;EAGf,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC;;;EAGlC,MAAM,CAAC,IAAI;;;;;;;;;CASZ,CAAC;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade-hub-mode-service.d.ts","sourceRoot":"","sources":["../../src/application/upgrade-hub-mode-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAO3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,mBAAmB,EAC1B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,oBAAoB,CAAC,CA6E/B"}
1
+ {"version":3,"file":"upgrade-hub-mode-service.d.ts","sourceRoot":"","sources":["../../src/application/upgrade-hub-mode-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAO3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,mBAAmB,EAC1B,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,oBAAoB,CAAC,CA4E/B"}
@@ -43,7 +43,6 @@ export async function runUpgradeHubMode(fs, env, paths, input, runtime) {
43
43
  proyecto: block.proyecto,
44
44
  fuentes: block.fuentes,
45
45
  stack: block.stack,
46
- sessions: block.sessions,
47
46
  ...(block.last_activity !== null ? { lastActivity: block.last_activity } : {}),
48
47
  mode: "hub",
49
48
  workingBranches: block.working_branches,
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade-hub-mode-service.js","sourceRoot":"","sources":["../../src/application/upgrade-hub-mode-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrade-hub-mode-service.js","sourceRoot":"","sources":["../../src/application/upgrade-hub-mode-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import type { EnvPort } from "../ports/env.js";
2
+ import type { FileSystemPort } from "../ports/file-system.js";
3
+ import { type MultirootError, type MultirootResult } from "./multiroot-service.js";
4
+ import { PathsService } from "./paths-service.js";
5
+ import { type ProjectMdUpsertError, type ProjectMdUpsertOutput } from "./project-md-upsert-service.js";
6
+ export interface WorkspaceSource {
7
+ alias: string;
8
+ path: string;
9
+ mainBranch?: string;
10
+ }
11
+ export interface WorkspaceInitInput {
12
+ /** Workspace name; defaults to the workspace directory basename. */
13
+ proyecto?: string;
14
+ /** 1+ sources (repos). A single source is just a workspace with one source. */
15
+ sources: WorkspaceSource[];
16
+ /** Default main branch for sources that do not declare one. Defaults to "main". */
17
+ mainBranch?: string;
18
+ /** Working branches per source alias (rendered in the WORKSPACE Status block). */
19
+ workingBranches?: Record<string, string>;
20
+ /** QA branches per source alias (rendered in the WORKSPACE Status block). */
21
+ qaBranches?: Record<string, string>;
22
+ /** Override the target directory (defaults to cwd). */
23
+ workspace?: string;
24
+ dryRun?: boolean;
25
+ /** Fixed `Última actividad` value for deterministic tests. */
26
+ lastActivity?: string;
27
+ }
28
+ export interface WorkspaceInitInputError {
29
+ error: string;
30
+ hint?: string;
31
+ }
32
+ export interface ScaffoldSummary {
33
+ created: string[];
34
+ existing: string[];
35
+ }
36
+ export interface WorkspaceInitResult {
37
+ ok: boolean;
38
+ dry_run: boolean;
39
+ workspace: string;
40
+ sources: number;
41
+ scaffold: ScaffoldSummary;
42
+ skills_toml: "created" | "exists";
43
+ project_md: ProjectMdUpsertOutput | ProjectMdUpsertError;
44
+ /** Multi-root visibility only runs with 2+ sources; single-source skips it. */
45
+ attach_multiroot: MultirootResult | MultirootError | {
46
+ skipped: true;
47
+ reason: string;
48
+ };
49
+ /** Reconcile: detach of sources that were in the previous block and no longer are. */
50
+ detached_removed?: MultirootResult | MultirootError;
51
+ }
52
+ /**
53
+ * Initialize the current directory as an agent-workflow **workspace**. Unifies the
54
+ * legacy `hub-init` + `project-init`: there is no project/hub distinction — a
55
+ * workspace simply has 1+ sources. Idempotent: re-running reconciles in place.
56
+ *
57
+ * The on-disk block carries NO `Mode:` line (the "WORKSPACE" shape). Source BASE
58
+ * branches live in the Fuentes table; WORKING branches (optional, via
59
+ * --working-branch) render in the Status block unconditionally.
60
+ */
61
+ export declare function runWorkspaceInit(fs: FileSystemPort, env: EnvPort, paths: PathsService, input: WorkspaceInitInput): Promise<WorkspaceInitResult | WorkspaceInitInputError>;
62
+ //# sourceMappingURL=workspace-init-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-init-service.d.ts","sourceRoot":"","sources":["../../src/application/workspace-init-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAgB,MAAM,wBAAwB,CAAC;AAGjG,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAE3B,MAAM,gCAAgC,CAAC;AAkBxC,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,SAAS,GAAG,QAAQ,CAAC;IAClC,UAAU,EAAE,qBAAqB,GAAG,oBAAoB,CAAC;IACzD,+EAA+E;IAC/E,gBAAgB,EAAE,eAAe,GAAG,cAAc,GAAG;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACvF,sFAAsF;IACtF,gBAAgB,CAAC,EAAE,eAAe,GAAG,cAAc,CAAC;CACrD;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,cAAc,EAClB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,mBAAmB,GAAG,uBAAuB,CAAC,CA0FxD"}
@@ -0,0 +1,228 @@
1
+ import { basename, join, resolve } from "node:path";
2
+ import { BUILTIN_DEFAULT_SKILLS, SKILL_ROLES } from "../domain/skills.js";
3
+ import { runMultiroot } from "./multiroot-service.js";
4
+ import { normalizePath } from "./multiroot/paths.js";
5
+ import { parseProjectBlock } from "./parsers/project-block.js";
6
+ import { PathsService } from "./paths-service.js";
7
+ import { runProjectMdUpsertWrite, } from "./project-md-upsert-service.js";
8
+ /** docs/ taxonomy scaffolded for every workspace (one folder per export category). */
9
+ const DOCS_FOLDERS = [
10
+ "specs",
11
+ "plans",
12
+ "tools",
13
+ "manuals",
14
+ "scripts",
15
+ "diagrams",
16
+ "reports",
17
+ ];
18
+ /** Visibility files (machine-specific absolute roots) — gitignored, multi-source only. */
19
+ const VISIBILITY_GITIGNORE = [".claude/settings.local.json", ".codex/config.toml"];
20
+ const DEFAULT_MAIN_BRANCH = "main";
21
+ /**
22
+ * Initialize the current directory as an agent-workflow **workspace**. Unifies the
23
+ * legacy `hub-init` + `project-init`: there is no project/hub distinction — a
24
+ * workspace simply has 1+ sources. Idempotent: re-running reconciles in place.
25
+ *
26
+ * The on-disk block carries NO `Mode:` line (the "WORKSPACE" shape). Source BASE
27
+ * branches live in the Fuentes table; WORKING branches (optional, via
28
+ * --working-branch) render in the Status block unconditionally.
29
+ */
30
+ export async function runWorkspaceInit(fs, env, paths, input) {
31
+ const validation = validateInput(input);
32
+ if (validation)
33
+ return validation;
34
+ const workspace = input.workspace ? resolve(input.workspace) : resolve(env.cwd());
35
+ const proyecto = input.proyecto && input.proyecto.trim().length > 0
36
+ ? input.proyecto.trim()
37
+ : basename(workspace);
38
+ const mainBranch = input.mainBranch ?? DEFAULT_MAIN_BRANCH;
39
+ if (input.dryRun) {
40
+ return {
41
+ ok: true,
42
+ dry_run: true,
43
+ workspace,
44
+ sources: input.sources.length,
45
+ scaffold: { created: plannedScaffold(workspace, paths.namespace), existing: [] },
46
+ skills_toml: "created",
47
+ project_md: { ok: true, action: "init" },
48
+ attach_multiroot: input.sources.length > 1
49
+ ? { skipped: true, reason: "dry_run" }
50
+ : { skipped: true, reason: "single_source" },
51
+ };
52
+ }
53
+ // Everything is scoped to `workspace` (which may differ from the process cwd).
54
+ const targetEnv = workspace !== resolve(env.cwd()) ? overrideCwd(env, workspace) : env;
55
+ const wsPaths = new PathsService(paths.namespace, env.homeDir(), workspace);
56
+ const scaffold = await scaffoldDirs(fs, workspace, wsPaths);
57
+ const skillsToml = await seedSkillsToml(fs, wsPaths);
58
+ // Capture the previous block's sources before overwriting, to detach removed ones.
59
+ const previousPaths = await readBlockSourcePaths(fs, workspace, wsPaths);
60
+ const projectMd = await runProjectMdUpsertWrite(fs, targetEnv, wsPaths, {
61
+ op: "init",
62
+ // Block without `Mode:` line; Fuentes table holds N sources. Working branches
63
+ // render in the Status block.
64
+ proyecto,
65
+ fuentes: input.sources.map((s) => ({
66
+ alias: s.alias,
67
+ path: s.path,
68
+ ...(s.mainBranch !== undefined ? { mainBranch: s.mainBranch } : {}),
69
+ })),
70
+ // Declared set is authoritative (supports removing a source by re-running).
71
+ replaceFuentes: true,
72
+ mainBranch,
73
+ ...(input.workingBranches !== undefined ? { workingBranches: input.workingBranches } : {}),
74
+ ...(input.qaBranches !== undefined ? { qaBranches: input.qaBranches } : {}),
75
+ verbose: true,
76
+ ...(input.lastActivity !== undefined ? { lastActivity: input.lastActivity } : {}),
77
+ });
78
+ if ("error" in projectMd) {
79
+ return {
80
+ ok: false,
81
+ dry_run: false,
82
+ workspace,
83
+ sources: input.sources.length,
84
+ scaffold,
85
+ skills_toml: skillsToml,
86
+ project_md: projectMd,
87
+ attach_multiroot: { skipped: true, reason: "project_md_failed" },
88
+ };
89
+ }
90
+ // Multi-root visibility only matters with 2+ sources. Single source → no-op.
91
+ const visibility = await reconcileVisibility(fs, targetEnv, wsPaths, workspace, input.sources, previousPaths);
92
+ return {
93
+ ok: projectMd.ok && visibility.ok,
94
+ dry_run: false,
95
+ workspace,
96
+ sources: input.sources.length,
97
+ scaffold,
98
+ skills_toml: skillsToml,
99
+ project_md: projectMd,
100
+ attach_multiroot: visibility.attach,
101
+ ...(visibility.detached !== undefined ? { detached_removed: visibility.detached } : {}),
102
+ };
103
+ }
104
+ function plannedScaffold(workspace, ns) {
105
+ const out = [join(workspace, `.${ns}`, "sessions")];
106
+ for (const f of DOCS_FOLDERS)
107
+ out.push(join(workspace, "docs", f));
108
+ return out;
109
+ }
110
+ async function scaffoldDirs(fs, workspace, wsPaths) {
111
+ const created = [];
112
+ const existing = [];
113
+ const dirs = [wsPaths.cwdSessionsDir(), ...DOCS_FOLDERS.map((f) => join(workspace, "docs", f))];
114
+ for (const dir of dirs) {
115
+ if (await fs.exists(dir)) {
116
+ existing.push(dir);
117
+ continue;
118
+ }
119
+ await fs.mkdirp(dir);
120
+ // .gitkeep so the empty taxonomy folders survive in git.
121
+ const keep = join(dir, ".gitkeep");
122
+ if (!(await fs.exists(keep)))
123
+ await fs.writeText(keep, "");
124
+ created.push(dir);
125
+ }
126
+ return { created, existing };
127
+ }
128
+ /** Seed `.workflow/skills.toml` with a commented template. Never clobbers an existing file. */
129
+ async function seedSkillsToml(fs, wsPaths) {
130
+ const file = wsPaths.cwdSkillsToml();
131
+ if (await fs.exists(file))
132
+ return "exists";
133
+ await fs.mkdirp(wsPaths.cwdRoot());
134
+ await fs.writeText(file, renderSkillsTomlTemplate());
135
+ return "created";
136
+ }
137
+ function renderSkillsTomlTemplate() {
138
+ const header = [
139
+ "# agent-workflow — capability skill bindings",
140
+ "#",
141
+ "# Maps each capability ROLE to the SKILL that implements it.",
142
+ "# Cascade (later wins): built-in default -> ~/.workflow/skills.toml (global) -> .workflow/skills.toml (workspace)",
143
+ "#",
144
+ "# To override a role, uncomment its line and set a value:",
145
+ "# - a skill name (built-in, or a third-party skill installed via skills.sh)",
146
+ '# - "off" to disable the capability',
147
+ "# A commented role keeps its built-in default (shown after the #).",
148
+ "#",
149
+ "# Inspect the resolved bindings with: aw skills",
150
+ "",
151
+ "[skills]",
152
+ ];
153
+ const roleLines = SKILL_ROLES.map((role) => `# ${role} = "${BUILTIN_DEFAULT_SKILLS[role]}"`);
154
+ return `${[...header, ...roleLines].join("\n")}\n`;
155
+ }
156
+ async function reconcileVisibility(fs, env, wsPaths, workspace, sources, previousPaths) {
157
+ if (sources.length <= 1) {
158
+ return { ok: true, attach: { skipped: true, reason: "single_source" } };
159
+ }
160
+ const currentNorm = new Set(sources.map((s) => normalizePath(s.path)));
161
+ const removed = previousPaths.filter((p) => !currentNorm.has(normalizePath(p)));
162
+ const detached = removed.length > 0
163
+ ? await runMultiroot(fs, env, wsPaths, "detach", { paths: removed, workspace })
164
+ : undefined;
165
+ const attach = await runMultiroot(fs, env, wsPaths, "attach", { fromSources: true, workspace });
166
+ await ensureVisibilityGitignore(fs, workspace);
167
+ return {
168
+ ok: !("error" in attach),
169
+ attach,
170
+ ...(detached !== undefined ? { detached } : {}),
171
+ };
172
+ }
173
+ function overrideCwd(env, cwd) {
174
+ return {
175
+ get: (k) => env.get(k),
176
+ homeDir: () => env.homeDir(),
177
+ cwd: () => cwd,
178
+ };
179
+ }
180
+ /** Source paths declared in the current block (before it is rewritten). */
181
+ async function readBlockSourcePaths(fs, workspace, paths) {
182
+ const markers = paths.blockMarkers();
183
+ for (const fname of ["CLAUDE.md", "AGENTS.md"]) {
184
+ const file = join(workspace, fname);
185
+ if (!(await fs.exists(file)))
186
+ continue;
187
+ const block = parseProjectBlock(await fs.readText(file), markers);
188
+ if (block && block.fuentes.length > 0) {
189
+ return block.fuentes.map((f) => f.path).filter((p) => p.length > 0);
190
+ }
191
+ }
192
+ return [];
193
+ }
194
+ /** Ensure the workspace `.gitignore` ignores the visibility files (idempotent). */
195
+ async function ensureVisibilityGitignore(fs, workspace) {
196
+ const file = join(workspace, ".gitignore");
197
+ const existing = (await fs.exists(file)) ? await fs.readText(file) : "";
198
+ const present = new Set(existing
199
+ .split(/\r?\n/)
200
+ .map((l) => l.trim())
201
+ .filter((l) => l.length > 0));
202
+ const missing = VISIBILITY_GITIGNORE.filter((e) => !present.has(e));
203
+ if (missing.length === 0)
204
+ return;
205
+ const block = `# Multi-root visibility (machine-specific paths — do not commit)\n${missing.join("\n")}\n`;
206
+ const body = existing.replace(/\s+$/, "");
207
+ await fs.writeText(file, body.length === 0 ? block : `${body}\n\n${block}`);
208
+ }
209
+ function validateInput(input) {
210
+ if (!input.sources || input.sources.length < 1) {
211
+ return {
212
+ error: "no_sources",
213
+ hint: "workspace-init requiere al menos 1 fuente (--source alias:path[:rama])",
214
+ };
215
+ }
216
+ const aliases = new Set();
217
+ for (const s of input.sources) {
218
+ if (!s.alias || !s.path) {
219
+ return { error: "invalid_source", hint: `fuente sin alias o path: ${JSON.stringify(s)}` };
220
+ }
221
+ if (aliases.has(s.alias)) {
222
+ return { error: "duplicate_alias", hint: `alias duplicado: ${s.alias}` };
223
+ }
224
+ aliases.add(s.alias);
225
+ }
226
+ return null;
227
+ }
228
+ //# sourceMappingURL=workspace-init-service.js.map