@tacuchi/agent-workflow-cli 11.0.1 → 12.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 (447) hide show
  1. package/README.md +51 -95
  2. package/dist/application/artifacts-service.d.ts +3 -12
  3. package/dist/application/artifacts-service.d.ts.map +1 -1
  4. package/dist/application/artifacts-service.js +18 -19
  5. package/dist/application/artifacts-service.js.map +1 -1
  6. package/dist/application/branch-resolver.d.ts +16 -0
  7. package/dist/application/branch-resolver.d.ts.map +1 -0
  8. package/dist/application/branch-resolver.js +24 -0
  9. package/dist/application/branch-resolver.js.map +1 -0
  10. package/dist/application/check-branch-service.d.ts +0 -2
  11. package/dist/application/check-branch-service.d.ts.map +1 -1
  12. package/dist/application/check-branch-service.js +5 -40
  13. package/dist/application/check-branch-service.js.map +1 -1
  14. package/dist/application/checkpoint/markdown.d.ts.map +1 -1
  15. package/dist/application/checkpoint/markdown.js +1 -16
  16. package/dist/application/checkpoint/markdown.js.map +1 -1
  17. package/dist/application/checkpoint/state-reader.d.ts +1 -3
  18. package/dist/application/checkpoint/state-reader.d.ts.map +1 -1
  19. package/dist/application/checkpoint/state-reader.js +10 -31
  20. package/dist/application/checkpoint/state-reader.js.map +1 -1
  21. package/dist/application/checkpoint-service.d.ts +12 -14
  22. package/dist/application/checkpoint-service.d.ts.map +1 -1
  23. package/dist/application/checkpoint-service.js +36 -61
  24. package/dist/application/checkpoint-service.js.map +1 -1
  25. package/dist/application/checkpoint-write-service.d.ts +0 -2
  26. package/dist/application/checkpoint-write-service.d.ts.map +1 -1
  27. package/dist/application/checkpoint-write-service.js +5 -6
  28. package/dist/application/checkpoint-write-service.js.map +1 -1
  29. package/dist/application/history-update-service.js +3 -1
  30. package/dist/application/history-update-service.js.map +1 -1
  31. package/dist/application/hook-branch-check.d.ts.map +1 -1
  32. package/dist/application/hook-branch-check.js +5 -34
  33. package/dist/application/hook-branch-check.js.map +1 -1
  34. package/dist/application/hook-git-commit-advisor.d.ts.map +1 -1
  35. package/dist/application/hook-git-commit-advisor.js +18 -23
  36. package/dist/application/hook-git-commit-advisor.js.map +1 -1
  37. package/dist/application/markdown.d.ts.map +1 -1
  38. package/dist/application/markdown.js +0 -4
  39. package/dist/application/markdown.js.map +1 -1
  40. package/dist/application/parsers/project-block.d.ts +0 -8
  41. package/dist/application/parsers/project-block.d.ts.map +1 -1
  42. package/dist/application/parsers/project-block.js +13 -52
  43. package/dist/application/parsers/project-block.js.map +1 -1
  44. package/dist/application/paths-service.d.ts +7 -8
  45. package/dist/application/paths-service.d.ts.map +1 -1
  46. package/dist/application/paths-service.js +12 -8
  47. package/dist/application/paths-service.js.map +1 -1
  48. package/dist/application/project-md-upsert-service.d.ts +3 -11
  49. package/dist/application/project-md-upsert-service.d.ts.map +1 -1
  50. package/dist/application/project-md-upsert-service.js +6 -56
  51. package/dist/application/project-md-upsert-service.js.map +1 -1
  52. package/dist/application/project-tab-data.d.ts +14 -42
  53. package/dist/application/project-tab-data.d.ts.map +1 -1
  54. package/dist/application/project-tab-data.js +27 -113
  55. package/dist/application/project-tab-data.js.map +1 -1
  56. package/dist/application/release-data/artifacts.d.ts +0 -2
  57. package/dist/application/release-data/artifacts.d.ts.map +1 -1
  58. package/dist/application/release-data/artifacts.js +22 -12
  59. package/dist/application/release-data/artifacts.js.map +1 -1
  60. package/dist/application/release-data/sessions.d.ts +0 -2
  61. package/dist/application/release-data/sessions.d.ts.map +1 -1
  62. package/dist/application/release-data/sessions.js +36 -27
  63. package/dist/application/release-data/sessions.js.map +1 -1
  64. package/dist/application/release-data-service.d.ts +0 -3
  65. package/dist/application/release-data-service.d.ts.map +1 -1
  66. package/dist/application/release-data-service.js +3 -21
  67. package/dist/application/release-data-service.js.map +1 -1
  68. package/dist/application/render/history-row.d.ts +1 -9
  69. package/dist/application/render/history-row.d.ts.map +1 -1
  70. package/dist/application/render/history-row.js +3 -20
  71. package/dist/application/render/history-row.js.map +1 -1
  72. package/dist/application/render/project-block.d.ts +1 -3
  73. package/dist/application/render/project-block.d.ts.map +1 -1
  74. package/dist/application/render/project-block.js +4 -27
  75. package/dist/application/render/project-block.js.map +1 -1
  76. package/dist/application/self/doctor-self.d.ts.map +1 -1
  77. package/dist/application/self/doctor-self.js +15 -8
  78. package/dist/application/self/doctor-self.js.map +1 -1
  79. package/dist/application/self/install-hooks.d.ts +1 -1
  80. package/dist/application/self/install-hooks.d.ts.map +1 -1
  81. package/dist/application/self/install-hooks.js +3 -2
  82. package/dist/application/self/install-hooks.js.map +1 -1
  83. package/dist/application/self/install-skill.d.ts +9 -3
  84. package/dist/application/self/install-skill.d.ts.map +1 -1
  85. package/dist/application/self/install-skill.js +16 -16
  86. package/dist/application/self/install-skill.js.map +1 -1
  87. package/dist/application/self/uninstall-skill.js +14 -12
  88. package/dist/application/self/uninstall-skill.js.map +1 -1
  89. package/dist/application/self/uninstall.js +14 -12
  90. package/dist/application/self/uninstall.js.map +1 -1
  91. package/dist/application/session-artifacts.d.ts +7 -6
  92. package/dist/application/session-artifacts.d.ts.map +1 -1
  93. package/dist/application/session-artifacts.js +10 -15
  94. package/dist/application/session-artifacts.js.map +1 -1
  95. package/dist/application/session-close-service.d.ts +5 -22
  96. package/dist/application/session-close-service.d.ts.map +1 -1
  97. package/dist/application/session-close-service.js +20 -143
  98. package/dist/application/session-close-service.js.map +1 -1
  99. package/dist/application/session-create-service.d.ts +9 -29
  100. package/dist/application/session-create-service.d.ts.map +1 -1
  101. package/dist/application/session-create-service.js +44 -288
  102. package/dist/application/session-create-service.js.map +1 -1
  103. package/dist/application/session-resolver.d.ts +4 -25
  104. package/dist/application/session-resolver.d.ts.map +1 -1
  105. package/dist/application/session-resolver.js +33 -149
  106. package/dist/application/session-resolver.js.map +1 -1
  107. package/dist/application/session-resume-service.d.ts +3 -4
  108. package/dist/application/session-resume-service.d.ts.map +1 -1
  109. package/dist/application/session-resume-service.js +8 -26
  110. package/dist/application/session-resume-service.js.map +1 -1
  111. package/dist/application/sessions-service.d.ts +2 -3
  112. package/dist/application/sessions-service.d.ts.map +1 -1
  113. package/dist/application/sessions-service.js +9 -26
  114. package/dist/application/sessions-service.js.map +1 -1
  115. package/dist/application/skill-index-service.d.ts +0 -2
  116. package/dist/application/skill-index-service.d.ts.map +1 -1
  117. package/dist/application/skill-index-service.js +0 -1
  118. package/dist/application/skill-index-service.js.map +1 -1
  119. package/dist/application/skills-resolver-service.d.ts +22 -0
  120. package/dist/application/skills-resolver-service.d.ts.map +1 -0
  121. package/dist/application/skills-resolver-service.js +71 -0
  122. package/dist/application/skills-resolver-service.js.map +1 -0
  123. package/dist/application/sources-service.d.ts +0 -5
  124. package/dist/application/sources-service.d.ts.map +1 -1
  125. package/dist/application/sources-service.js +5 -44
  126. package/dist/application/sources-service.js.map +1 -1
  127. package/dist/application/templates/session.d.ts +24 -0
  128. package/dist/application/templates/session.d.ts.map +1 -0
  129. package/dist/application/templates/session.js +46 -0
  130. package/dist/application/templates/session.js.map +1 -0
  131. package/dist/application/upgrade-hub-mode-service.d.ts.map +1 -1
  132. package/dist/application/upgrade-hub-mode-service.js +0 -1
  133. package/dist/application/upgrade-hub-mode-service.js.map +1 -1
  134. package/dist/application/workspace-init-service.d.ts +60 -0
  135. package/dist/application/workspace-init-service.d.ts.map +1 -0
  136. package/dist/application/workspace-init-service.js +227 -0
  137. package/dist/application/workspace-init-service.js.map +1 -0
  138. package/dist/cli/commands/check-branch.d.ts.map +1 -1
  139. package/dist/cli/commands/check-branch.js +0 -3
  140. package/dist/cli/commands/check-branch.js.map +1 -1
  141. package/dist/cli/commands/plugin-doctor.d.ts.map +1 -1
  142. package/dist/cli/commands/plugin-doctor.js +0 -3
  143. package/dist/cli/commands/plugin-doctor.js.map +1 -1
  144. package/dist/cli/commands/project-md-upsert.d.ts.map +1 -1
  145. package/dist/cli/commands/project-md-upsert.js +5 -31
  146. package/dist/cli/commands/project-md-upsert.js.map +1 -1
  147. package/dist/cli/commands/session-close.d.ts.map +1 -1
  148. package/dist/cli/commands/session-close.js +1 -33
  149. package/dist/cli/commands/session-close.js.map +1 -1
  150. package/dist/cli/commands/session-create.d.ts.map +1 -1
  151. package/dist/cli/commands/session-create.js +5 -21
  152. package/dist/cli/commands/session-create.js.map +1 -1
  153. package/dist/cli/commands/session-resume.js +1 -1
  154. package/dist/cli/commands/session-resume.js.map +1 -1
  155. package/dist/cli/commands/set-working-branch.d.ts +3 -0
  156. package/dist/cli/commands/set-working-branch.d.ts.map +1 -0
  157. package/dist/cli/commands/set-working-branch.js +34 -0
  158. package/dist/cli/commands/set-working-branch.js.map +1 -0
  159. package/dist/cli/commands/skill-index.d.ts.map +1 -1
  160. package/dist/cli/commands/skill-index.js +0 -3
  161. package/dist/cli/commands/skill-index.js.map +1 -1
  162. package/dist/cli/commands/skills.d.ts +3 -0
  163. package/dist/cli/commands/skills.d.ts.map +1 -0
  164. package/dist/cli/commands/skills.js +10 -0
  165. package/dist/cli/commands/skills.js.map +1 -0
  166. package/dist/cli/commands/sources.d.ts.map +1 -1
  167. package/dist/cli/commands/sources.js +0 -3
  168. package/dist/cli/commands/sources.js.map +1 -1
  169. package/dist/cli/commands/workspace-init.d.ts +3 -0
  170. package/dist/cli/commands/workspace-init.d.ts.map +1 -0
  171. package/dist/cli/commands/workspace-init.js +69 -0
  172. package/dist/cli/commands/workspace-init.js.map +1 -0
  173. package/dist/cli/help-groups.d.ts.map +1 -1
  174. package/dist/cli/help-groups.js +8 -19
  175. package/dist/cli/help-groups.js.map +1 -1
  176. package/dist/cli/interactive-menu.d.ts +1 -1
  177. package/dist/cli/interactive-menu.d.ts.map +1 -1
  178. package/dist/cli/main.js +29 -37
  179. package/dist/cli/main.js.map +1 -1
  180. package/dist/cli/parser.d.ts +0 -2
  181. package/dist/cli/parser.d.ts.map +1 -1
  182. package/dist/cli/parser.js +1 -13
  183. package/dist/cli/parser.js.map +1 -1
  184. package/dist/cli/tui/app.js +3 -38
  185. package/dist/cli/tui/app.js.map +1 -1
  186. package/dist/cli/tui/components/hub-init-alias.js +1 -1
  187. package/dist/cli/tui/components/hub-init-alias.js.map +1 -1
  188. package/dist/cli/tui/components/hub-init-form.d.ts.map +1 -1
  189. package/dist/cli/tui/components/hub-init-form.js +13 -12
  190. package/dist/cli/tui/components/hub-init-form.js.map +1 -1
  191. package/dist/cli/tui/components/workspace-init-alias.d.ts +5 -0
  192. package/dist/cli/tui/components/workspace-init-alias.d.ts.map +1 -0
  193. package/dist/cli/tui/components/workspace-init-alias.js +19 -0
  194. package/dist/cli/tui/components/workspace-init-alias.js.map +1 -0
  195. package/dist/cli/tui/components/workspace-init-form.d.ts +13 -0
  196. package/dist/cli/tui/components/workspace-init-form.d.ts.map +1 -0
  197. package/dist/cli/tui/components/workspace-init-form.js +87 -0
  198. package/dist/cli/tui/components/workspace-init-form.js.map +1 -0
  199. package/dist/cli/tui/data/activity.d.ts +1 -1
  200. package/dist/cli/tui/data/activity.d.ts.map +1 -1
  201. package/dist/cli/tui/data/activity.js +2 -2
  202. package/dist/cli/tui/data/activity.js.map +1 -1
  203. package/dist/cli/tui/data/workflow-content.d.ts.map +1 -1
  204. package/dist/cli/tui/data/workflow-content.js +67 -87
  205. package/dist/cli/tui/data/workflow-content.js.map +1 -1
  206. package/dist/cli/tui/tabs/project-tab.d.ts.map +1 -1
  207. package/dist/cli/tui/tabs/project-tab.js +23 -97
  208. package/dist/cli/tui/tabs/project-tab.js.map +1 -1
  209. package/dist/cli/tui/tabs/skills-tab.d.ts.map +1 -1
  210. package/dist/cli/tui/tabs/skills-tab.js +7 -7
  211. package/dist/cli/tui/tabs/skills-tab.js.map +1 -1
  212. package/dist/cli/tui/tabs/workflow-tab.d.ts +1 -3
  213. package/dist/cli/tui/tabs/workflow-tab.d.ts.map +1 -1
  214. package/dist/cli/tui/tabs/workflow-tab.js +2 -2
  215. package/dist/cli/tui/tabs/workflow-tab.js.map +1 -1
  216. package/dist/cli/types.d.ts +3 -0
  217. package/dist/cli/types.d.ts.map +1 -1
  218. package/dist/domain/plugin.d.ts +2 -12
  219. package/dist/domain/plugin.d.ts.map +1 -1
  220. package/dist/domain/project.d.ts +0 -9
  221. package/dist/domain/project.d.ts.map +1 -1
  222. package/dist/domain/session.d.ts +7 -24
  223. package/dist/domain/session.d.ts.map +1 -1
  224. package/dist/domain/skills.d.ts +22 -0
  225. package/dist/domain/skills.d.ts.map +1 -0
  226. package/dist/domain/skills.js +37 -0
  227. package/dist/domain/skills.js.map +1 -0
  228. package/dist/domain/types.d.ts +6 -2
  229. package/dist/domain/types.d.ts.map +1 -1
  230. package/dist/index.d.ts +4 -4
  231. package/dist/index.d.ts.map +1 -1
  232. package/dist/index.js.map +1 -1
  233. package/dist/runtime/config-service.js +1 -1
  234. package/dist/runtime/config-service.js.map +1 -1
  235. package/dist/runtime/types.d.ts +0 -1
  236. package/dist/runtime/types.d.ts.map +1 -1
  237. package/dist/runtime/types.js.map +1 -1
  238. package/package.json +12 -3
  239. package/skills/w/README.md +65 -0
  240. package/skills/w/SKILL.md +153 -0
  241. package/skills/w/artifacts/README.md +60 -0
  242. package/skills/w/artifacts/artifacts-core/BACKLOG.md +12 -0
  243. package/skills/w/artifacts/artifacts-core/CHECKPOINT.md +22 -0
  244. package/skills/w/artifacts/artifacts-core/SCRIPTS.sql +39 -0
  245. package/skills/w/artifacts/artifacts-core/SESSION.md +27 -0
  246. package/skills/w/artifacts/artifacts-core/TASKS.md +18 -0
  247. package/skills/w/artifacts/artifacts-dev/DECISION.md +11 -0
  248. package/skills/w/artifacts/artifacts-dev/TECHNICAL-NOTE.md +81 -0
  249. package/skills/w/artifacts/artifacts-research/ANALYSIS-FILE.md +48 -0
  250. package/skills/w/artifacts/artifacts-research/CONCLUSIONS.md +20 -0
  251. package/skills/w/commands/README.md +116 -0
  252. package/skills/w/commands/export-diagrams.md +35 -0
  253. package/skills/w/commands/export-manuals.md +35 -0
  254. package/skills/w/commands/export-reports.md +35 -0
  255. package/skills/w/commands/export-scripts.md +35 -0
  256. package/skills/w/commands/plan-exec.md +46 -0
  257. package/skills/w/commands/plan-new.md +44 -0
  258. package/skills/w/commands/quick.md +39 -0
  259. package/skills/w/commands/spec-new.md +63 -0
  260. package/skills/w/commands/spec-refine.md +41 -0
  261. package/skills/w/commands/workspace-init.md +39 -0
  262. package/skills/w/exports/README.md +88 -0
  263. package/skills/w/exports/export-diagrams/SKILL.md +125 -0
  264. package/skills/w/exports/export-manuals/SKILL.md +127 -0
  265. package/skills/w/exports/export-reports/SKILL.md +115 -0
  266. package/skills/w/exports/export-scripts/SKILL.md +135 -0
  267. package/skills/w/hooks/README.md +15 -0
  268. package/skills/{agent-workflow → w}/hooks/hooks.template.json +2 -2
  269. package/skills/w/loops/README.md +118 -0
  270. package/skills/w/loops/plan-exec-loop/SKILL.md +161 -0
  271. package/skills/w/loops/plan-new-loop/SKILL.md +97 -0
  272. package/skills/w/loops/quick-loop/SKILL.md +102 -0
  273. package/skills/w/loops/spec-refine-loop/SKILL.md +222 -0
  274. package/skills/w/roles/README.md +154 -0
  275. package/skills/w/roles/coding-standards/SKILL.md +82 -0
  276. package/skills/w/roles/diagrams/SKILL.md +248 -0
  277. package/skills/w/roles/git/SKILL.md +98 -0
  278. package/skills/w/roles/research/SKILL.md +181 -0
  279. package/skills/w/roles/sql/SKILL.md +137 -0
  280. package/skills/w/roles/testing/SKILL.md +180 -0
  281. package/skills/w/roles/tools/SKILL.md +148 -0
  282. package/skills/w/roles/ui-spec/SKILL.md +136 -0
  283. package/skills/w/roles/writing/SKILL.md +90 -0
  284. package/skills/agent-workflow/LICENSE +0 -661
  285. package/skills/agent-workflow/MANUAL-FUNCIONAL.md +0 -298
  286. package/skills/agent-workflow/MANUAL-TECNICO.md +0 -271
  287. package/skills/agent-workflow/README.md +0 -74
  288. package/skills/agent-workflow/SKILL.md +0 -112
  289. package/skills/agent-workflow/commands/README.md +0 -26
  290. package/skills/agent-workflow/commands/compact.md +0 -24
  291. package/skills/agent-workflow/commands/doctor.md +0 -100
  292. package/skills/agent-workflow/commands/export-arq.md +0 -77
  293. package/skills/agent-workflow/commands/export-conclusions.md +0 -78
  294. package/skills/agent-workflow/commands/export-plan.md +0 -74
  295. package/skills/agent-workflow/commands/export-qa-note.md +0 -30
  296. package/skills/agent-workflow/commands/export-report.md +0 -78
  297. package/skills/agent-workflow/commands/export-requirement.md +0 -30
  298. package/skills/agent-workflow/commands/export-scripts.md +0 -82
  299. package/skills/agent-workflow/commands/export-tech-manuals.md +0 -75
  300. package/skills/agent-workflow/commands/export-tech-note.md +0 -30
  301. package/skills/agent-workflow/commands/hub-init.md +0 -58
  302. package/skills/agent-workflow/commands/migrate.md +0 -56
  303. package/skills/agent-workflow/commands/patch.md +0 -49
  304. package/skills/agent-workflow/commands/project-init.md +0 -60
  305. package/skills/agent-workflow/commands/resume.md +0 -22
  306. package/skills/agent-workflow/commands/rules.md +0 -41
  307. package/skills/agent-workflow/commands/session.md +0 -35
  308. package/skills/agent-workflow/docs/TEST-PLAN.md +0 -163
  309. package/skills/agent-workflow/doctrine/README.md +0 -15
  310. package/skills/agent-workflow/doctrine/compact/SKILL.md +0 -145
  311. package/skills/agent-workflow/doctrine/doctor/SKILL.md +0 -86
  312. package/skills/agent-workflow/doctrine/hub-init/SKILL.md +0 -77
  313. package/skills/agent-workflow/doctrine/hub-init/references/multiroot-manual.md +0 -51
  314. package/skills/agent-workflow/doctrine/implement/SKILL.md +0 -290
  315. package/skills/agent-workflow/doctrine/implement/references/branch-verification.md +0 -16
  316. package/skills/agent-workflow/doctrine/implement/references/design-md-template.md +0 -108
  317. package/skills/agent-workflow/doctrine/implement/references/rollback-guide.md +0 -83
  318. package/skills/agent-workflow/doctrine/migrate/SKILL.md +0 -281
  319. package/skills/agent-workflow/doctrine/project-init/SKILL.md +0 -100
  320. package/skills/agent-workflow/doctrine/refactor/SKILL.md +0 -208
  321. package/skills/agent-workflow/doctrine/refactor/references/refactor-md-template.md +0 -108
  322. package/skills/agent-workflow/doctrine/refactor/references/strangler-checklist.md +0 -116
  323. package/skills/agent-workflow/doctrine/resume/SKILL.md +0 -199
  324. package/skills/agent-workflow/doctrine/rules/SKILL.md +0 -250
  325. package/skills/agent-workflow/doctrine/session/SKILL.md +0 -471
  326. package/skills/agent-workflow/doctrine/session/references/auto-plan-rules.md +0 -63
  327. package/skills/agent-workflow/doctrine/session/references/backlog-template.md +0 -95
  328. package/skills/agent-workflow/doctrine/session/references/branch-verification.md +0 -198
  329. package/skills/agent-workflow/doctrine/session/references/commits-policy.md +0 -111
  330. package/skills/agent-workflow/doctrine/session/references/communication-style.md +0 -50
  331. package/skills/agent-workflow/doctrine/session/references/graduacion-routing.md +0 -88
  332. package/skills/agent-workflow/doctrine/session/references/lifecycle-deep.md +0 -160
  333. package/skills/agent-workflow/doctrine/session/references/prompts/C1-specialty-selection.md +0 -11
  334. package/skills/agent-workflow/doctrine/session/references/prompts/C2-cost-guard.md +0 -14
  335. package/skills/agent-workflow/doctrine/session/references/prompts/M1-closure-commit-prompt.md +0 -104
  336. package/skills/agent-workflow/doctrine/session/references/prompts/M10-next-step.md +0 -17
  337. package/skills/agent-workflow/doctrine/session/references/prompts/M11-context.md +0 -16
  338. package/skills/agent-workflow/doctrine/session/references/prompts/M13-closure-cleanup.md +0 -61
  339. package/skills/agent-workflow/doctrine/session/references/prompts/M2-branch-caso-A.md +0 -14
  340. package/skills/agent-workflow/doctrine/session/references/prompts/M3-branch-caso-C.md +0 -33
  341. package/skills/agent-workflow/doctrine/session/references/prompts/M4-cross-source-hard-gate.md +0 -33
  342. package/skills/agent-workflow/doctrine/session/references/prompts/M5-modality-analyze.md +0 -15
  343. package/skills/agent-workflow/doctrine/session/references/prompts/M6-phase-gate.md +0 -31
  344. package/skills/agent-workflow/doctrine/session/references/prompts/M7-refactor-legacy-detected.md +0 -28
  345. package/skills/agent-workflow/doctrine/session/references/prompts/M8-refactor-cleanup.md +0 -16
  346. package/skills/agent-workflow/doctrine/session/references/prompts/M9-contract-review.md +0 -39
  347. package/skills/agent-workflow/doctrine/session/references/prompts/S1-type-design.md +0 -15
  348. package/skills/agent-workflow/doctrine/session/references/prompts/S2-topic-change-detection.md +0 -14
  349. package/skills/agent-workflow/doctrine/session/references/prompts/S3-flow-detection.md +0 -28
  350. package/skills/agent-workflow/doctrine/session/references/prompts/S4-resume.md +0 -27
  351. package/skills/agent-workflow/doctrine/session/references/prompts/S5-post-compact.md +0 -17
  352. package/skills/agent-workflow/doctrine/session/references/prompts/S6-scope.md +0 -16
  353. package/skills/agent-workflow/doctrine/session/references/prompts/S7-design-review.md +0 -37
  354. package/skills/agent-workflow/doctrine/session/references/prompts-catalog.md +0 -213
  355. package/skills/agent-workflow/doctrine/session/references/sandbox-readonly-rules.md +0 -82
  356. package/skills/agent-workflow/doctrine/session/references/specialty-decision-tree.md +0 -56
  357. package/skills/agent-workflow/doctrine/session/references/topic-change-rules.md +0 -67
  358. package/skills/agent-workflow/exports/README.md +0 -15
  359. package/skills/agent-workflow/exports/export-arq/SKILL.md +0 -229
  360. package/skills/agent-workflow/exports/export-arq/references/lexico-tecnico.md +0 -94
  361. package/skills/agent-workflow/exports/export-arq/references/template-c4.md +0 -293
  362. package/skills/agent-workflow/exports/export-arq/references/template-plantuml.puml +0 -77
  363. package/skills/agent-workflow/exports/export-arq/references/template-structurizr.dsl +0 -72
  364. package/skills/agent-workflow/exports/export-arq/references/validations.md +0 -231
  365. package/skills/agent-workflow/exports/export-conclusions/SKILL.md +0 -169
  366. package/skills/agent-workflow/exports/export-conclusions/references/dedup-rules.md +0 -154
  367. package/skills/agent-workflow/exports/export-conclusions/references/template-conclusions.md +0 -158
  368. package/skills/agent-workflow/exports/export-plan/SKILL.md +0 -225
  369. package/skills/agent-workflow/exports/export-plan/references/state-transitions.md +0 -141
  370. package/skills/agent-workflow/exports/export-plan/references/template-plan.md +0 -132
  371. package/skills/agent-workflow/exports/export-qa-note/SKILL.md +0 -31
  372. package/skills/agent-workflow/exports/export-report/SKILL.md +0 -262
  373. package/skills/agent-workflow/exports/export-report/references/lexico.md +0 -174
  374. package/skills/agent-workflow/exports/export-report/references/template-a.md +0 -95
  375. package/skills/agent-workflow/exports/export-report/references/template-b.md +0 -221
  376. package/skills/agent-workflow/exports/export-report/references/template-c.md +0 -180
  377. package/skills/agent-workflow/exports/export-report/references/validations.md +0 -255
  378. package/skills/agent-workflow/exports/export-requirement/SKILL.md +0 -31
  379. package/skills/agent-workflow/exports/export-scripts/SKILL.md +0 -211
  380. package/skills/agent-workflow/exports/export-scripts/references/code-scan-recommendations.md +0 -83
  381. package/skills/agent-workflow/exports/export-scripts/references/deprecation-plan.md +0 -80
  382. package/skills/agent-workflow/exports/export-scripts/references/lexico-tecnico.md +0 -47
  383. package/skills/agent-workflow/exports/export-scripts/references/manifest-template.md +0 -265
  384. package/skills/agent-workflow/exports/export-scripts/references/readme-template.md +0 -49
  385. package/skills/agent-workflow/exports/export-scripts/references/theme-handling.md +0 -141
  386. package/skills/agent-workflow/exports/export-scripts/references/validations.md +0 -69
  387. package/skills/agent-workflow/exports/export-tech-manuals/SKILL.md +0 -214
  388. package/skills/agent-workflow/exports/export-tech-manuals/references/lexico-tecnico.md +0 -97
  389. package/skills/agent-workflow/exports/export-tech-manuals/references/template-index.md +0 -123
  390. package/skills/agent-workflow/exports/export-tech-manuals/references/template-manual.md +0 -143
  391. package/skills/agent-workflow/exports/export-tech-manuals/references/validations.md +0 -211
  392. package/skills/agent-workflow/exports/export-tech-note/SKILL.md +0 -31
  393. package/skills/agent-workflow/hooks/README.md +0 -15
  394. package/skills/agent-workflow/references/README.md +0 -12
  395. package/skills/agent-workflow/references/checkpoint.md +0 -59
  396. package/skills/agent-workflow/references/dev-only.md +0 -50
  397. package/skills/agent-workflow/references/doctor.md +0 -61
  398. package/skills/agent-workflow/references/history.md +0 -40
  399. package/skills/agent-workflow/references/hooks.md +0 -35
  400. package/skills/agent-workflow/references/legacy-anchors.md +0 -50
  401. package/skills/agent-workflow/references/mcp.md +0 -34
  402. package/skills/agent-workflow/references/objetivo-tasks.md +0 -64
  403. package/skills/agent-workflow/references/orchestration.md +0 -86
  404. package/skills/agent-workflow/references/profile-parametrization.md +0 -88
  405. package/skills/agent-workflow/references/self.md +0 -68
  406. package/skills/agent-workflow/references/session-mgmt.md +0 -109
  407. package/skills/agent-workflow/references/sources.md +0 -102
  408. package/skills/agent-workflow/specialties/README.md +0 -14
  409. package/skills/agent-workflow/specialties/analyze-conclude/SKILL.md +0 -181
  410. package/skills/agent-workflow/specialties/analyze-conclude/references/incident-classification.md +0 -61
  411. package/skills/agent-workflow/specialties/analyze-investigate/SKILL.md +0 -148
  412. package/skills/agent-workflow/specialties/analyze-investigate/references/cost-guard.md +0 -85
  413. package/skills/agent-workflow/specialties/analyze-synthesize/SKILL.md +0 -127
  414. package/skills/agent-workflow/specialties/design-brief/SKILL.md +0 -90
  415. package/skills/agent-workflow/specialties/design-deliver/SKILL.md +0 -121
  416. package/skills/agent-workflow/specialties/design-develop/SKILL.md +0 -115
  417. package/skills/agent-workflow/specialties/design-discover/SKILL.md +0 -103
  418. package/skills/agent-workflow/standards/README.md +0 -12
  419. package/skills/agent-workflow/standards/coding-standards/SKILL.md +0 -102
  420. package/skills/agent-workflow/standards/coding-standards/references/angular-typescript.md +0 -266
  421. package/skills/agent-workflow/standards/coding-standards/references/database-conventions.md +0 -170
  422. package/skills/agent-workflow/standards/coding-standards/references/fe-be-integration.md +0 -300
  423. package/skills/agent-workflow/standards/coding-standards/references/frontend-structure.md +0 -182
  424. package/skills/agent-workflow/standards/coding-standards/references/java-spring.md +0 -244
  425. package/skills/agent-workflow/standards/coding-standards/references/project-structure.md +0 -197
  426. package/skills/agent-workflow/standards/frontend-design/SKILL.md +0 -62
  427. package/skills/agent-workflow/standards/frontend-design/references/feedback-toasts-patterns.md +0 -249
  428. package/skills/agent-workflow/standards/frontend-design/references/form-patterns.md +0 -278
  429. package/skills/agent-workflow/standards/frontend-design/references/list-patterns.md +0 -256
  430. package/skills/agent-workflow/standards/frontend-design/references/modal-patterns.md +0 -220
  431. package/skills/agent-workflow/standards/frontend-design/references/navigation-patterns.md +0 -224
  432. package/skills/agent-workflow/standards/redaccion-simple/SKILL.md +0 -128
  433. package/skills/agent-workflow/standards/sql-rollback-generator/SKILL.md +0 -158
  434. package/skills/agent-workflow/standards/sql-rollback-generator/references/irreversible-checklist.md +0 -161
  435. package/skills/agent-workflow/standards/sql-rollback-generator/references/release-rollback.md +0 -133
  436. package/skills/agent-workflow/standards/sql-rollback-generator/references/rollback-patterns.md +0 -257
  437. package/skills/agent-workflow/standards/sql-script-organizer/SKILL.md +0 -243
  438. package/skills/agent-workflow/standards/sql-script-organizer/references/bundle-readme-template.md +0 -82
  439. package/skills/agent-workflow/standards/sql-script-organizer/references/categorization-rules.md +0 -122
  440. package/skills/agent-workflow/standards/sql-script-organizer/references/consolidation-cross-session.md +0 -125
  441. package/skills/agent-workflow/standards/sql-script-organizer/references/scripts-sql-format.md +0 -140
  442. package/skills/agent-workflow/standards/testing-strategy/SKILL.md +0 -113
  443. package/skills/agent-workflow/standards/testing-strategy/references/test-levels.md +0 -255
  444. package/skills/agent-workflow/workflows/README.md +0 -12
  445. package/skills/agent-workflow/workflows/analyze-workflow/SKILL.md +0 -94
  446. package/skills/agent-workflow/workflows/design-workflow/SKILL.md +0 -79
  447. package/skills/agent-workflow/workflows/dev-workflow/SKILL.md +0 -172
@@ -1,115 +0,0 @@
1
- ---
2
- name: design-develop
3
- description: Convergencia en problem statement + divergencia en soluciones (variantes/mocks). Iteración con el usuario hasta tener una propuesta validada. Produce PROBLEM.md, IDEAS.md y opcionalmente mocks/wireframes en `docs/referencias/` (carpeta transversal manual del usuario, DEC-004 v2). Invocado en execution después de design-discover (o directo si el OBJECTIVE no requiere discovery).
4
- version: 2.2.0
5
- ---
6
-
7
- # design-develop — qtc v2.1+
8
-
9
- Specialty skill **design**: convergencia en problema + divergencia/iteración de soluciones. Núcleo creativo del flujo design.
10
-
11
- ## Cuándo se invoca
12
-
13
- - Composición desde `agent-workflow:session` en `execution` cuando hay OBJECTIVE + (DISCOVERY.md o sesión saltó discovery por trivialidad).
14
- - NL del usuario: "vamos a diseñar opciones", "propone variantes", "cómo lo resolvemos", "boceto rápido".
15
- - Recomendado por `design-discover` como siguiente paso.
16
-
17
- ## Acción
18
-
19
- Producir 2-3 artefactos en paralelo:
20
-
21
- ### 1. PROBLEM.md — convergencia
22
-
23
- Statement de problema en 1-3 oraciones. Foco en QUÉ se resuelve, no en CÓMO. (legacy: `PROBLEMA.md`)
24
-
25
- ```markdown
26
- # Problem — sessionNNN-design-<slug>
27
-
28
- ## Statement
29
- [1-3 oraciones: usuario X necesita Y porque Z].
30
-
31
- ## Key constraints
32
- - [restricciones técnicas, de UX, de tiempo, de tokens del design system]
33
-
34
- ## Success metrics
35
- - [cómo sabemos que la solución funciona]
36
- ```
37
-
38
- ### 2. IDEAS.md — divergencia
39
-
40
- Lista de variantes con tradeoffs. **No** elegir todavía:
41
-
42
- ```markdown
43
- # Ideas — sessionNNN-design-<slug>
44
-
45
- ## Variant A: <name>
46
- - Descripción 1-2 oraciones.
47
- - Pros: ...
48
- - Cons: ...
49
- - Mockup: docs/referencias/A-mockup.png (si el usuario lo aporta) o link Figma/Stitch
50
-
51
- ## Variant B: <name>
52
- - ...
53
-
54
- ## Variant C: ...
55
- - (3 variantes es típico; más sólo si justifica)
56
-
57
- ## Initial recommendation
58
- - [variante preferida y por qué; queda abierto a feedback del usuario]
59
- ```
60
-
61
- ### 3. `docs/referencias/` — mocks aportados por el usuario (DEC-004 v2)
62
-
63
- - Wireframes/mocks bajos en fidelidad para iteración rápida.
64
- - Storage:
65
- - Local: `<workspace-root>/docs/referencias/A-*.png|svg|md` (el **usuario** los coloca; el AI los lee). Carpeta transversal — cualquier sesión accede a las mismas referencias sin re-subirlas.
66
- - Externo (Figma/Stitch): URL en IDEAS.md, nada en `docs/referencias/`.
67
- - **El AI no escribe en `docs/referencias/` salvo solicitud explícita** del usuario ("guardá este wireframe en referencias"). Si necesita generar un esqueleto ASCII, lo embebe directamente en IDEAS.md.
68
- - Para `type=system`, las referencias pueden ser ejemplos de uso de tokens/componentes (no mockups de pantallas).
69
-
70
- ## Loop de iteración
71
-
72
- ```
73
- [propuestas] → [feedback usuario] → [refinar] → [propuestas v2] → [...]
74
-
75
- [convergencia]
76
-
77
- [→ design-deliver]
78
- ```
79
-
80
- Cada iteración:
81
- - Editar PROBLEM.md/IDEAS.md (no recrear).
82
- - Si el usuario aporta nuevos mockups en `docs/referencias/`, leerlos y reflejarlos en IDEAS.md. El AI no toca `docs/referencias/` salvo pedido explícito.
83
- - Confirmar con el usuario antes de la próxima iteración.
84
-
85
- ## Reglas
86
-
87
- - **3 variantes es óptimo**: si el espacio de soluciones es claro, 1-2 alcanza. Si el problema es muy abierto, hasta 4. Más es ruido.
88
- - **No saltar a deliver sin convergencia explícita**: el usuario debe confirmar "OK, vamos con la variante X" antes de pasar a `design-deliver`.
89
- - **Mocks de baja fidelidad primero**: alta fidelidad en `design-deliver`. Acá importa el flujo, no el pixel.
90
- - **Spec-only**: NO escribir código de UI. Mocks como imágenes/wireframes/Figma URLs.
91
- - **Frontend-design es referencia, no obligación**: para `type=system`, las decisiones de tokens/componentes ALIMENTAN `frontend-design` (no al revés).
92
-
93
- ## Composición con otras skills
94
-
95
- | Skill | Cuándo |
96
- |---|---|
97
- | `design-deliver` | siguiente paso una vez hay convergencia |
98
- | `frontend-design` | consultar patterns existentes para validar consistencia |
99
- | `design-discover` | si surge nueva pregunta que requiere investigación, retroceder |
100
-
101
- ## Sandbox read-only
102
-
103
- Reglas universales en el canon (`sandbox-readonly-rules.md`). En plan mode esta skill describe en el plan file:
104
-
105
- - **Paths destino**: `.workflow/sessions/<folder>/PROBLEM.md`, `IDEAS.md`, opcional lectura de `<workspace-root>/docs/referencias/` (carpeta transversal manual del usuario, DEC-004 v2) con mocks/wireframes que el usuario aporte.
106
- - **Problem statement** propuesto: 1-2 oraciones que capturan QUÉ resolver y POR QUÉ.
107
- - **Variantes a explorar**: 2-4 enfoques distintos (estructura, layout, interacción) con pros/cons textuales — sin diseñar mocks aún.
108
- - **Iteración prevista**: cuántas rondas con el usuario, qué validar en cada una.
109
-
110
- NO ejecuta: `Write` sobre PROBLEM.md/IDEAS.md, generación de mocks en `docs/referencias/` (manual del usuario), ediciones a `docs/especificaciones/`.
111
-
112
- ## Recursos
113
-
114
- - skill `frontend-design` — patterns reutilizables (form/list/modal/navigation/feedback).
115
- - shared-contract §14 — fase execution del lifecycle universal.
@@ -1,103 +0,0 @@
1
- ---
2
- name: design-discover
3
- description: Fase de investigación divergente del diseño dentro del lifecycle universal. Investiga usuarios, flows existentes, código relacionado, design system actual y referencias externas. Produce DISCOVERY.md como artefacto lazy. Invocado desde execution cuando ya hay OBJECTIVE con Type capturado por design-brief y el usuario está listo para divergir antes de converger en problema/soluciones.
4
- version: 1.2.0
5
- ---
6
-
7
- # design-discover — qtc v1.1+
8
-
9
- Specialty skill **design**: investigación divergente. Primer paso de `execution` para sesiones design.
10
-
11
- ## Cuándo se invoca
12
-
13
- - Composición desde `agent-workflow:session` en `execution` cuando hay OBJECTIVE con `## Type` (legacy: `## Tipo`) y todavía no existe `DISCOVERY.md`.
14
- - NL del usuario: "investigá el contexto", "qué hay del usuario X", "miremos cómo está hecho hoy".
15
- - Recomendado por `design-brief` como siguiente paso natural.
16
-
17
- ## Acción
18
-
19
- Producir o iterar `.workflow/sessions/<folder>/DISCOVERY.md` con investigación divergente sobre 4 ejes:
20
-
21
- ### 1. Usuarios
22
-
23
- - Quién va a usar esto, en qué contexto, con qué frecuencia.
24
- - Si hay personas/role-models existentes, referenciarlas.
25
- - Si hay usuarios reales accesibles, considerar entrevistas (lo decide el usuario).
26
-
27
- ### 2. Flows / proceso actual
28
-
29
- - Cómo se hace HOY (si existe). Pasos, frustraciones, walking skeleton.
30
- - Capturas de pantalla / refs al código existente si aplica.
31
- - Para `type=project` → mirar pantallas existentes del módulo.
32
- - Para `type=system` → mirar componentes/tokens existentes en `docs/especificaciones/` (kind=`especificacion`, modelo nuevo) o el design system instalado.
33
-
34
- ### 3. Design system existente
35
-
36
- - Qué tokens / componentes ya tenemos que aplican.
37
- - Patterns establecidos (`skill frontend-design references/*-patterns.md`).
38
- - Decisiones previas en `docs/especificaciones/NNN-*/DELIVERY.md` (kind=`especificacion`; legacy: `ENTREGA.md`).
39
-
40
- ### 4. Referencias externas
41
-
42
- - Productos parecidos (con screenshots/links si el usuario los provee).
43
- - Buenas prácticas del dominio.
44
- - Restricciones de accesibilidad / responsive / multi-idioma.
45
-
46
- ## Estructura típica de DISCOVERY.md
47
-
48
- ```markdown
49
- # Discovery — sessionNNN-design-<slug>
50
-
51
- ## Users
52
-
53
- - ...
54
-
55
- ## Current flow
56
-
57
- - ...
58
-
59
- ## Applicable design system
60
-
61
- - Tokens: ...
62
- - Components: ...
63
- - Patterns: ...
64
-
65
- ## External references
66
-
67
- - ...
68
-
69
- ## Key findings
70
-
71
- - [1-3 hallazgos accionables que el siguiente paso (define+develop) usa]
72
- ```
73
-
74
- ## Reglas
75
-
76
- - **Divergir ahora, converger después**: no proponer soluciones todavía — eso es `design-develop`.
77
- - **Citar fuentes**: cada afirmación con un link/path a evidencia (código, screenshots, docs).
78
- - **DISCOVERY.md es lazy**: si el OBJECTIVE es trivial (ej. cambio menor a un componente existente), saltar a `design-develop` directo.
79
- - **No escribir código**: spec-only siempre.
80
-
81
- ## Composición con otras skills
82
-
83
- | Skill | Cuándo |
84
- |---|---|
85
- | `design-develop` | siguiente paso una vez DISCOVERY tiene hallazgos accionables |
86
- | `frontend-design` | consultar patterns existentes para el inventario "design system aplicable" |
87
- | `analyze-investigate` | si la investigación requiere análisis técnico profundo (latencia, datos), invocar acá |
88
-
89
- ## Sandbox read-only
90
-
91
- Reglas universales en el canon (`sandbox-readonly-rules.md`). En plan mode esta skill describe en el plan file:
92
-
93
- - **Path destino**: `.workflow/sessions/<folder>/DISCOVERY.md`.
94
- - **Fuentes a consultar**: pantallas existentes (paths o screenshots), flows del repo, design system actual (`docs/especificaciones/` con kind=`especificacion` y `## Type: system` interno), referencias externas (links). Material aportado por el usuario en `<workspace-root>/docs/referencias/` también se considera (carpeta transversal — DEC-004 v2).
95
- - **Preguntas de investigación**: lista priorizada (qué hacen los usuarios hoy, qué duele, qué falta).
96
- - **Esqueleto del DISCOVERY.md**: secciones (Contexto, Stakeholders, Estado actual, Pain points, Referencias, Preguntas abiertas).
97
-
98
- NO ejecuta: `Read` sobre código fuente (sí permitido — read-only), `Write` sobre DISCOVERY.md.
99
-
100
- ## Recursos
101
-
102
- - skill `frontend-design` — patterns reutilizables.
103
- - shared-contract §14 — fase execution del lifecycle universal.
@@ -1,12 +0,0 @@
1
- # standards/
2
-
3
- Estándares técnicos universales (no doctrina del lifecycle, no específicos de empresa).
4
-
5
- Contenido esperado (T2 PR2):
6
-
7
- - `coding-standards.md` — estándares por stack (Java/Spring, Angular/TS, Node) + seguridad (sin secrets, SQL parametrizado, logging por nivel).
8
- - `sql-mutation-guard.md` — patrón del hook que aborta SQL no parametrizado / DDL fuera de scripts/.
9
- - `i18n-conventions.md` — convención EN-canon + ES-legacy aliases bilingües.
10
- - `commit-style.md` — formato de commit messages compatible con el ecosistema.
11
-
12
- Inyectables vía `profile.migrate_legacy_rules[]` cuando una empresa tiene estilos heredados.
@@ -1,102 +0,0 @@
1
- ---
2
- name: coding-standards
3
- description: Estándares de código por stack (Java/Spring, Angular, Node) — fail-fast, logging por nivel, seguridad (no secrets, SQL parametrizado), naming descriptivo, manejo de errores, validación de input, reglas FE-BE (Sparse DTO unificado, PATCH semantics, sin fallbacks ocultos). Activar al implementar, revisar o refactorizar, o ante NL como buenas prácticas/código limpio/cómo valido este input. Referencia transversal sin dependencia de sesiones.
4
- version: 0.4.0
5
- ---
6
-
7
- > **Profile parametrization**: lee `mcp_databases[] + examples_path` de `profile.json` (resuelto vía cascade 5 capas). Ver [`references/profile-parametrization.md`](../../references/profile-parametrization.md) para el contrato completo y comportamiento por defecto cuando el profile está vacío.
8
-
9
- # Coding Standards
10
-
11
- Estándares de código aplicables durante la implementación. Consultar la referencia del stack correspondiente para detalles.
12
-
13
- ## Principios generales
14
-
15
- - **SOLID** — Single Responsibility, Open/Closed, Liskov, Interface Segregation, Dependency Inversion
16
- - **Fail fast** — Validar y retornar errores al inicio del método (early returns, evitar nesting)
17
- - **Nombres descriptivos** — El código habla por sí mismo; comentarios solo para el "por qué"
18
- - **Métodos pequeños** — Una sola responsabilidad por método/función
19
- - **Composición sobre herencia**
20
- - **Reutilización antes que duplicación (DRY)** — antes de crear un componente, función o clase nueva, revisar si ya existe en `shared/` (frontend) o el paquete `common/`/`util/` (backend). Si un patrón aparece 2-3 veces, proponer extracción. Aplica transversalmente; para detalles de componentes frontend y `shared/`, ver skill `frontend-design` + `references/frontend-structure.md`.
21
-
22
- ## Estándares por stack
23
-
24
- ### Java / Spring Boot
25
- Constructor Injection (sin Field Injection), `@Transactional(readOnly=true)` para lecturas, Java records para DTOs Request/Response, Jakarta Validation para inputs. Ver `references/java-spring.md`.
26
-
27
- ### Angular / TypeScript
28
- Constructor injection, NgModules, `async` pipe en templates, evitar `any`. Arquitectura `@data`/`@presentation`. Ver `references/angular-typescript.md` y `references/frontend-structure.md`.
29
-
30
- ## Integración FE-BE (flow=dev v2.6+)
31
-
32
- Aplica a sesiones `flow=dev` con `## Type: feature|refactor` y a refactors guiados por `agent-workflow:refactor`. Reglas canónicas en `references/fe-be-integration.md`:
33
-
34
- - **R1 — Sparse DTO unificado**: mismo DTO `<Feature>SaveRequest` para create + edit, todos los campos nullable. `null` = "no tocar".
35
- - **R2 — PATCH para edit**: `@PatchMapping` en BE, `http.patch()` en FE. POST queda solo para create. PUT no se usa salvo replace total justificado.
36
- - **R3 — FE envía solo cambios**: payload diff entre `formValue` y entidad original.
37
- - **R4 — Sin fallbacks que oculten errores**: prohibido `catchError(() => of([]))` en FE; prohibido try/catch con fallback al método legacy en BE durante migraciones. Usar feature flags explícitas si se necesita rollout gradual.
38
- - **R5 — Validación BE con Bean Validation + groups**: `@NotNull(groups = OnCreate.class)` para distinguir reglas POST vs PATCH cuando comparten DTO.
39
- - **R6 — DB stub-first**: funciones/SP nuevas arrancan en Phase 0 devolviendo mock (`RETURN '[]'::jsonb`); implementación real recién en Phase 1/2.
40
-
41
- ## Seguridad
42
-
43
- - **Nunca** exponer secrets, API keys o credenciales en código
44
- - **Nunca** logear datos sensibles (contraseñas, tokens, datos personales)
45
- - **Siempre** parametrizar queries SQL (nunca concatenar strings)
46
- - **BD vía MCP** — `<mcp-cert>` (pruebas) y `<mcp-prod>` (producción) son READONLY. Modificaciones a BD solo mediante scripts SQL versionados en `docs/scripts/` del workspace de la fuente; el usuario es quien aplica el script (no el AI), nunca ejecución directa via MCP, Bash, psql ni cualquier otro canal. Excepción única: el usuario explícitamente pide "ejecutalo vos contra cert" — aún así, confirmación por bloque y no asumir autorización ampliada
47
-
48
- ## Manejo de errores HTTP
49
-
50
- - **Nunca silenciar errores HTTP con `catchError(() => of([]))` ni equivalentes.** Los errores del backend se propagan al usuario vía toast/mensaje; solo así detectamos regresiones durante guardado, sincronizaciones y creaciones. Si hace falta lógica de reintento, usar operadores RxJS explícitos (`retry`, `retryWhen`), no silenciar.
51
-
52
- ## Logging
53
-
54
- - `ERROR` — Fallos que requieren atención inmediata
55
- - `WARN` — Situaciones inesperadas pero manejadas
56
- - `INFO` — Eventos de negocio relevantes (inicio/fin de procesos)
57
- - `DEBUG` — Detalle técnico para diagnóstico
58
-
59
- ## Git y ramas
60
-
61
- Política de commits: ver `agent-workflow:commits-policy` (canónico).
62
-
63
- ### Estrategia de ramas
64
- - **`certificacion`** — Rama principal/producción. Base para crear feature branches.
65
- - **`desarrollo`** — Rama QA. Solo para probar features desplegados. Se sincroniza desde `certificacion`. No se usa como base.
66
- - **Feature branches** — Siempre desde `certificacion`, PR hacia `certificacion`.
67
-
68
- ### Prefijo opcional Conventional Commits
69
-
70
- Si la sesión/equipo lo prefiere, se puede combinar con el formato canónico:
71
-
72
- - `feat(session<NNN>):` nueva funcionalidad
73
- - `fix(session<NNN>):` corrección de bug
74
- - `docs(session<NNN>):` documentación
75
- - `chore(session<NNN>):` mantenimiento, dependencias
76
- - `refactor(session<NNN>):` reestructuración sin cambio funcional
77
-
78
- Ramas: `feature/`, `fix/`, `hotfix/` + descripción-kebab-case.
79
-
80
- ## Sandbox read-only
81
-
82
- Canon universal en `../session/references/sandbox-readonly-rules.md`. Esta skill es read-only por diseño — carga estándares de código por stack y reglas FE-BE, no edita ni ejecuta nada.
83
-
84
- En plan mode: describir en el plan file qué reglas se aplicarían al edit/refactor propuesto (fail-fast, FE-BE R1-R6, MCP READONLY, SQL parametrizado) y listar los refs relevantes (Java/Spring, Angular/TypeScript, fe-be-integration). NO ejecuta `Write`, `Edit`, `MultiEdit`, `Bash` con efectos colaterales, ni queries MCP mutantes.
85
-
86
- Compatible con plan mode sin restricciones adicionales.
87
-
88
- ## Recursos adicionales
89
-
90
- ### Archivos de referencia
91
- - **`references/fe-be-integration.md`** — Reglas FE-BE (Sparse DTO unificado, PATCH, sin fallbacks ocultos, Bean Validation con groups, DB stub-first). Aplica a `## Type: feature|refactor`.
92
- - **`references/java-spring.md`** — Convenciones Java/Spring Boot (inyección, records, transacciones, validación) + PATCH+Sparse DTO con records.
93
- - **`references/angular-typescript.md`** — Convenciones Angular/TypeScript (constructor injection, NgModules, ApiService) + PATCH client + interfaces sparse.
94
- - **`references/frontend-structure.md`** — Arquitectura `@data`/`@presentation`, ApiService, interfaces espejeo backend, environments, build
95
- - **`references/database-conventions.md`** — Nomenclatura BD: esquemas `esq_`, tablas `tb_`, columnas, sequences, funciones `fn_`/`sp_`, patrón maestra-detalle, auditoría, estilo de scripts SQL (transacciones, CTE, comentarios, idempotencia)
96
- - **`references/project-structure.md`** — Estructura de paquetes backend, capas Entity→Repository→Service→Controller, wrappers `ReqBase`/`RespBase`, convención DTOs `P`/`R`/`Req`
97
- - **`../frontend-design/`** — Principios de diseño UX para formularios de mantenimiento (agnóstico a framework) + reutilización de componentes y framework-first CSS. Consultar en paralelo con `angular-typescript.md` cuando el trabajo es frontend de mantenimiento.
98
-
99
- ### Skills de base de datos
100
- Cuando el stack involucra BD y se escriben scripts SQL:
101
- - **`sql-script-organizer`** — Organiza scripts en 4 categorías, aplica estilo y genera bundle listo para producción
102
- - **`sql-rollback-generator`** — Genera rollback acoplado por script y bundle global de reversión
@@ -1,266 +0,0 @@
1
- # Angular / TypeScript — Convenciones detalladas
2
-
3
- ## Inyección de servicios
4
-
5
- Los proyectos actuales usan constructor injection con `private`:
6
-
7
- ```typescript
8
- @Injectable({ providedIn: 'root' })
9
- export class SolicitudService {
10
- constructor(private apiService: ApiService) {}
11
- }
12
-
13
- @Component({ ... })
14
- export class MiComponente {
15
- constructor(
16
- private solicitudService: SolicitudService,
17
- private router: Router
18
- ) {}
19
- }
20
- ```
21
-
22
- > **Nota**: `inject()` es válido en Angular 14+ y preferible en proyectos nuevos, pero seguir la convención del proyecto actual.
23
-
24
- ## NgModules
25
-
26
- Los proyectos usan NgModules con routing modules separados:
27
-
28
- ```typescript
29
- @NgModule({
30
- declarations: [AppComponent],
31
- imports: [
32
- BrowserModule,
33
- AppRoutingModule,
34
- ComponentsModule,
35
- SharedModule,
36
- ToastrModule.forRoot(),
37
- BrowserAnimationsModule
38
- ],
39
- bootstrap: [AppComponent]
40
- })
41
- export class AppModule {}
42
- ```
43
-
44
- > **Nota**: Standalone components son válidos en Angular 15+ pero los proyectos actuales no los usan. No migrar a standalone a menos que el usuario lo pida.
45
-
46
- ## Async pipe en templates
47
-
48
- Preferir async pipe sobre subscribe manual para datos del template:
49
-
50
- ```html
51
- <div *ngIf="solicitudes$ | async as solicitudes">
52
- <app-tabla [data]="solicitudes"></app-tabla>
53
- </div>
54
- ```
55
-
56
- ```typescript
57
- solicitudes$ = this.solicitudService.listar();
58
- ```
59
-
60
- ## Tipos estrictos
61
-
62
- Evitar `any`. Usar interfaces en `@data/interfaces/`:
63
-
64
- ```typescript
65
- // Interfaces que espejean el backend
66
- export interface IResponsePayload<T> {
67
- trace: Trace;
68
- status: Status;
69
- payload: T;
70
- }
71
-
72
- export interface ResponseDTO {
73
- identificador: number;
74
- cuerpo: string;
75
- mensaje: string;
76
- }
77
-
78
- // Incorrecto
79
- const data: any = response.body; // NO
80
- ```
81
-
82
- ## Estructura de proyecto
83
-
84
- Ver `references/frontend-structure.md` para la arquitectura completa `@data`/`@presentation`.
85
-
86
- ## PATCH + Sparse DTO unificado (qtc-dev v2.6+)
87
-
88
- Para mantenimientos CRUD seguir las reglas de `references/fe-be-integration.md`:
89
-
90
- - **Interface única** `<Feature>SaveRequest` para create + edit con campos opcionales (`?` o `| null`).
91
- - **POST** envía todos los required cargados; **PATCH** envía solo los campos modificados (resto omitido).
92
- - ApiService expone `patch<T>(url, body)` paralelo a `post<T>(url, body)`.
93
-
94
- ```typescript
95
- export interface CategoriaSaveRequest {
96
- nombre?: string | null;
97
- descripcion?: string | null;
98
- activo?: boolean | null;
99
- ordenVisual?: number | null;
100
- }
101
-
102
- @Injectable({ providedIn: 'root' })
103
- export class CategoriasService {
104
- constructor(private apiService: ApiService) {}
105
-
106
- create(req: CategoriaSaveRequest): Observable<IResponsePayload<CategoriaResponse>> {
107
- return this.apiService.post(`${env.API_ADMIN}v1/categorias`, req);
108
- }
109
-
110
- edit(id: number, cambios: CategoriaSaveRequest): Observable<IResponsePayload<CategoriaResponse>> {
111
- return this.apiService.patch(`${env.API_ADMIN}v1/categorias/${id}`, cambios);
112
- }
113
- }
114
- ```
115
-
116
- En el componente de edición, construir el payload diff con solo los campos que cambiaron:
117
-
118
- ```typescript
119
- guardar(): void {
120
- const original = this.categoriaOriginal;
121
- const form = this.form.value;
122
- const cambios: CategoriaSaveRequest = {};
123
- if (form.nombre !== original.nombre) cambios.nombre = form.nombre;
124
- if (form.descripcion !== original.descripcion) cambios.descripcion = form.descripcion;
125
- if (form.activo !== original.activo) cambios.activo = form.activo;
126
- if (form.ordenVisual !== original.ordenVisual) cambios.ordenVisual = form.ordenVisual;
127
-
128
- if (Object.keys(cambios).length === 0) return; // nada cambió
129
-
130
- this.servicio.edit(original.id, cambios).subscribe({
131
- next: (res) => this.toast.success('Guardado'),
132
- error: (err) => this.errorHandler.handle(err) // R4 — no silenciar
133
- });
134
- }
135
- ```
136
-
137
- **Anti-pattern**: enviar `form.value` completo en PATCH equivale a PUT y rompe la semántica sparse. Detalles + casos edge: `references/fe-be-integration.md`.
138
-
139
- ## Services y API
140
-
141
- Todas las llamadas HTTP pasan por `ApiService` (wrapper central en `@data/services/`):
142
-
143
- ```typescript
144
- @Injectable({ providedIn: 'root' })
145
- export class SolicitudService {
146
- constructor(private apiService: ApiService) {}
147
-
148
- generaSolicitud(solicitud: Solicitud): Observable<IResponsePayload<ResponseDTO>> {
149
- const request = armarPayload<any>(solicitud);
150
- const url = `${env.API_PRESTAMO}v1/solicitud`;
151
- return this.apiService.post(url, request);
152
- }
153
-
154
- getOfertas(idSolicitud: number): Observable<IResponsePayload<IPayloadListG<Oferta>>> {
155
- const params = requestFilter({ idSolicitud });
156
- const url = `${env.API_PRESTAMO}v1/solicitud/listar-ofertas?${params}`;
157
- return this.apiService.get(url);
158
- }
159
- }
160
- ```
161
-
162
- No usar `HttpClient` directamente en services de presentación.
163
-
164
- ## Environments
165
-
166
- URLs de API se configuran en environment files:
167
-
168
- ```typescript
169
- export const environment = {
170
- production: false,
171
- API_PRESTAMO: '',
172
- API_SOLICITUD: '',
173
- API_IDENTIDAD: '',
174
- API_MOTOR: '',
175
- };
176
- ```
177
-
178
- Archivos: `environment.ts`, `environment.dev.ts`, `environment.prod.ts`
179
-
180
- ## Build y verificación
181
-
182
- - Build producción: `npm run build:prod` (equivale a `ng build -c=production`)
183
- - Build desarrollo: `npm run build:dev` (equivale a `ng build -c=development`)
184
- - Serve local: `npm run start:dev`
185
- - Tests: `ng test --watch=false`
186
- - Estilos: SCSS
187
- - UI: Angular Material + Bootstrap
188
-
189
- ## Formularios reactivos
190
-
191
- Patrones al trabajar con `FormGroup` / `FormControl` en mantenimientos CRUD. Para los principios de UX (cuándo usar switch vs checkbox, layout de cards, hints en combos), ver skill `frontend-design`.
192
-
193
- ### Combo dependiente con carga diferida
194
-
195
- Cuando el valor del combo B depende del valor del combo A, suscribirse a `valueChanges` de A en `ngOnInit`:
196
-
197
- ```typescript
198
- this.formMantenimiento.get('idPadre')?.valueChanges.subscribe((valor) => {
199
- this.formMantenimiento.get('idHijo')?.setValue('');
200
- if (valor) {
201
- this.listarHijos(String(valor));
202
- } else {
203
- this.lstHijos = [];
204
- }
205
- });
206
- ```
207
-
208
- Al editar, la **precarga inicial** debe setear padre e hijo **sin** disparar el listener (para no perder el valor de hijo que viene del backend):
209
-
210
- ```typescript
211
- this.formMantenimiento.patchValue({
212
- idPadre: data.idPadre != null ? String(data.idPadre) : '',
213
- idHijo: data.idHijo != null ? String(data.idHijo) : ''
214
- }, { emitEvent: false });
215
-
216
- if (data.idPadre) {
217
- this.listarHijos(String(data.idPadre));
218
- }
219
- ```
220
-
221
- ### Normalización de tipos en controles compartidos
222
-
223
- Componentes custom tipo `search-select` o equivalentes suelen comparar opciones con `===`. Si las opciones tienen `value: "1"` (string) pero el DTO trae `1` (number), la opción **no matchea** y el combo queda vacío.
224
-
225
- Regla: normalizar consistentemente en el `patchValue`. La forma que expone el componente UI manda:
226
-
227
- ```typescript
228
- this.formMantenimiento.patchValue({
229
- idRol: data.idRol != null ? String(data.idRol) : ''
230
- }, { emitEvent: false });
231
- ```
232
-
233
- Aplicar la misma regla a todos los campos tipo id. Documentar la decisión si no es obvia.
234
-
235
- ### Sincronizaciones secuenciales con `concat`
236
-
237
- Cuando N operaciones HTTP deben correr **en orden estricto** (evitar race conditions contra restricciones de unicidad del backend), usar `concat` de RxJS, no paralelo:
238
-
239
- ```typescript
240
- import { concat, of } from 'rxjs';
241
- import { toArray } from 'rxjs/operators';
242
-
243
- const ops = [
244
- ...paraDesactivar.map(r => this.servicio.desactivar(r.id)),
245
- ...(nuevoRequerido ? [this.servicio.asignar(nuevo)] : [])
246
- ];
247
- return ops.length ? concat(...ops).pipe(toArray()) : of([]);
248
- ```
249
-
250
- Orden: primero desactivar los sobrantes, luego asignar el nuevo. Nunca paralelo en estos casos.
251
-
252
- ### Switch Bootstrap alineado
253
-
254
- Patrón de clases para que el switch (3em×1.5em) quede alineado verticalmente con su label:
255
-
256
- ```html
257
- <div class="form-switch d-flex align-items-center gap-2 ps-0 mb-0">
258
- <input type="checkbox" class="form-check-input m-0" role="switch" id="mi-switch"
259
- [checked]="activo" (change)="toggle($event)">
260
- <label class="form-check-label mb-0" for="mi-switch">Texto del switch</label>
261
- </div>
262
- ```
263
-
264
- Claves: `d-flex align-items-center gap-2` (alinea), `ps-0` (anula padding-left 1.5em default de `.form-check`), `input.m-0` y `label.mb-0` (anulan márgenes que desalinean con el switch grande).
265
-
266
- Para la decisión UX **cuándo usar switch vs checkbox**, ver skill `frontend-design` (`references/form-patterns.md` §5).