@atlashub/smartstack-cli 4.80.0 → 5.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 (1008) hide show
  1. package/.documentation/agents.html +124 -585
  2. package/.documentation/ba-develop.html +852 -0
  3. package/.documentation/ba-skills.html +465 -0
  4. package/.documentation/business-analyse.html +385 -1570
  5. package/.documentation/cli-commands.html +162 -799
  6. package/.documentation/commands.html +902 -1338
  7. package/.documentation/css/styles.css +34 -1
  8. package/.documentation/efcore.html +161 -2599
  9. package/.documentation/gitflow.html +62 -105
  10. package/.documentation/hooks.html +94 -343
  11. package/.documentation/index.html +116 -385
  12. package/.documentation/init.html +217 -1566
  13. package/.documentation/installation.html +121 -1470
  14. package/.documentation/license.html +90 -450
  15. package/.documentation/ralph-loop.html +105 -602
  16. package/dist/index.js +9421 -79036
  17. package/dist/index.js.map +1 -1
  18. package/package.json +5 -20
  19. package/scripts/generate-docs/README.md +87 -0
  20. package/scripts/generate-docs/index.ts +175 -0
  21. package/scripts/generate-docs/lib/context-builder.ts +81 -0
  22. package/scripts/generate-docs/lib/handlebars-setup.ts +162 -0
  23. package/scripts/generate-docs/lib/markdown-parser.ts +86 -0
  24. package/scripts/generate-docs/lib/sidebar-builder.ts +80 -0
  25. package/scripts/generate-docs/lib/skill-parser.ts +171 -0
  26. package/scripts/generate-docs/lib/stats.ts +32 -0
  27. package/scripts/generate-docs/lib/version.ts +17 -0
  28. package/scripts/generate-docs/templates/layout.hbs +33 -0
  29. package/scripts/generate-docs/templates/pages/_generic.hbs +12 -0
  30. package/scripts/generate-docs/templates/pages/ba-develop.hbs +10 -0
  31. package/scripts/generate-docs/templates/pages/ba-skills.hbs +8 -0
  32. package/scripts/generate-docs/templates/pages/business-analyse.hbs +1 -0
  33. package/scripts/generate-docs/templates/pages/commands.hbs +13 -0
  34. package/scripts/generate-docs/templates/pages/gitflow.hbs +2164 -0
  35. package/scripts/generate-docs/templates/pages/index.hbs +5 -0
  36. package/scripts/generate-docs/templates/partials/breadcrumb.hbs +6 -0
  37. package/scripts/generate-docs/templates/partials/header.hbs +22 -0
  38. package/scripts/generate-docs/templates/partials/sidebar.hbs +32 -0
  39. package/scripts/generate-docs/templates/partials/skill-card.hbs +22 -0
  40. package/scripts/generate-docs/templates/partials/skill-grid.hbs +5 -0
  41. package/scripts/generate-docs/templates/partials/skill-table.hbs +18 -0
  42. package/scripts/generate-docs/templates/partials/stats-bar.hbs +20 -0
  43. package/scripts/test-migration-program-cs.mts +94 -0
  44. package/templates/agents/explore-codebase.md +2 -3
  45. package/templates/agents/explore-docs.md +5 -5
  46. package/templates/hooks/hooks.json +0 -9
  47. package/templates/project/Program.cs.template +17 -5
  48. package/templates/project/appsettings.json.template +208 -195
  49. package/templates/project/claude-md/api.CLAUDE.md.template +27 -2
  50. package/templates/project/patch-smartstack-theme.cjs.template +42 -0
  51. package/templates/scripts/statusline/README.md +47 -0
  52. package/templates/scripts/statusline/index.js +224 -0
  53. package/templates/skills/CLAUDE.md +235 -0
  54. package/templates/skills/ba-develop/SKILL.md +310 -0
  55. package/templates/skills/ba-develop/cli/compute-page-diff/__tests__/compute-page-diff.test.ts +177 -0
  56. package/templates/skills/ba-develop/cli/compute-page-diff/compute-diff.ts +51 -0
  57. package/templates/skills/ba-develop/cli/compute-page-diff/disk-drift.ts +55 -0
  58. package/templates/skills/ba-develop/cli/compute-page-diff/index.ts +89 -0
  59. package/templates/skills/ba-develop/cli/compute-page-diff/scan-pagespecs.ts +115 -0
  60. package/templates/skills/ba-develop/cli/compute-page-diff/types.ts +63 -0
  61. package/templates/skills/ba-develop/cli/compute-page-diff/validate.ts +20 -0
  62. package/templates/skills/ba-develop/cli/update-snapshot/__tests__/update-snapshot.test.ts +73 -0
  63. package/templates/skills/ba-develop/cli/update-snapshot/execute.ts +24 -0
  64. package/templates/skills/ba-develop/cli/update-snapshot/index.ts +61 -0
  65. package/templates/skills/ba-develop/cli/update-snapshot/types.ts +40 -0
  66. package/templates/skills/ba-develop/cli/update-snapshot/validate.ts +17 -0
  67. package/templates/skills/ba-develop/references/anti-patterns.md +101 -0
  68. package/templates/skills/ba-develop/references/auto-healing.md +191 -0
  69. package/templates/skills/ba-develop/references/commit-checkpoints.md +79 -0
  70. package/templates/skills/ba-develop/references/gates.md +380 -0
  71. package/templates/skills/ba-develop/references/output-contract.md +95 -0
  72. package/templates/skills/ba-develop/references/phases-detail.md +592 -0
  73. package/templates/skills/ba-develop-plan/SKILL.md +239 -0
  74. package/templates/skills/ba-develop-plan/cli/preflight-develop-plan/__tests__/validate.test.ts +225 -0
  75. package/templates/skills/ba-develop-plan/cli/preflight-develop-plan/index.ts +102 -0
  76. package/templates/skills/ba-develop-plan/cli/preflight-develop-plan/types.ts +121 -0
  77. package/templates/skills/ba-develop-plan/cli/preflight-develop-plan/validate.ts +261 -0
  78. package/templates/skills/business-analyse/_workflow/README.md +34 -0
  79. package/templates/skills/business-analyse/_workflow/ba-files.md +174 -0
  80. package/templates/skills/business-analyse/_workflow/code-discipline.md +104 -0
  81. package/templates/skills/business-analyse/_workflow/communication.md +63 -0
  82. package/templates/skills/business-analyse/_workflow/completeAuto-discipline.md +79 -0
  83. package/templates/skills/business-analyse/_workflow/context-documents.md +45 -0
  84. package/templates/skills/business-analyse/_workflow/doc-templates.md +318 -0
  85. package/templates/skills/business-analyse/audit-actors/SKILL.md +97 -0
  86. package/templates/skills/business-analyse/audit-cross-dimension/SKILL.md +127 -0
  87. package/templates/skills/business-analyse/audit-cross-ref-code/SKILL.md +119 -0
  88. package/templates/skills/business-analyse/audit-data-model/SKILL.md +343 -0
  89. package/templates/skills/business-analyse/audit-menu/SKILL.md +97 -0
  90. package/templates/skills/business-analyse/audit-prd/SKILL.md +479 -0
  91. package/templates/skills/business-analyse/audit-pre-dev/SKILL.md +135 -0
  92. package/templates/skills/business-analyse/audit-rbac/SKILL.md +93 -0
  93. package/templates/skills/business-analyse/audit-rules/SKILL.md +182 -0
  94. package/templates/skills/business-analyse/audit-screens/SKILL.md +169 -0
  95. package/templates/skills/business-analyse/audit-sections/SKILL.md +174 -0
  96. package/templates/skills/business-analyse/audit-use-cases/SKILL.md +245 -0
  97. package/templates/skills/business-analyse/create-actors/SKILL.md +129 -0
  98. package/templates/skills/business-analyse/create-ba-order/SKILL.md +182 -0
  99. package/templates/skills/business-analyse/create-ba-order/cli/create-ba-order/__tests__/generate.test.ts +151 -0
  100. package/templates/skills/business-analyse/create-ba-order/cli/create-ba-order/__tests__/graph.test.ts +173 -0
  101. package/templates/skills/business-analyse/create-ba-order/cli/create-ba-order/generate.ts +273 -0
  102. package/templates/skills/business-analyse/create-ba-order/cli/create-ba-order/graph.ts +193 -0
  103. package/templates/skills/business-analyse/create-ba-order/cli/create-ba-order/index.ts +108 -0
  104. package/templates/skills/business-analyse/create-ba-order/cli/create-ba-order/types.ts +106 -0
  105. package/templates/skills/business-analyse/create-ba-order/cli/create-ba-order/validate.ts +79 -0
  106. package/templates/skills/business-analyse/create-business-rules/SKILL.md +302 -0
  107. package/templates/skills/business-analyse/create-business-rules/levels/access-rules.md +105 -0
  108. package/templates/skills/business-analyse/create-business-rules/levels/elaborate.md +193 -0
  109. package/templates/skills/business-analyse/create-business-rules/levels/identify.md +157 -0
  110. package/templates/skills/business-analyse/create-business-rules/levels/link.md +86 -0
  111. package/templates/skills/business-analyse/create-data-model/SKILL.md +319 -0
  112. package/templates/skills/business-analyse/create-data-model/levels/attributes.md +130 -0
  113. package/templates/skills/business-analyse/create-data-model/levels/identify.md +100 -0
  114. package/templates/skills/business-analyse/create-data-model/levels/relationships.md +97 -0
  115. package/templates/skills/business-analyse/create-menu/SKILL.md +191 -0
  116. package/templates/skills/business-analyse/create-menu/levels/applications.md +85 -0
  117. package/templates/skills/business-analyse/create-menu/levels/modules.md +81 -0
  118. package/templates/skills/business-analyse/create-menu/levels/resources.md +75 -0
  119. package/templates/skills/business-analyse/create-menu/levels/sections.md +82 -0
  120. package/templates/skills/business-analyse/create-plan-development/SKILL.md +93 -0
  121. package/templates/skills/business-analyse/create-plan-development/cli/create-plan-development/__tests__/graph.test.ts +271 -0
  122. package/templates/skills/business-analyse/create-plan-development/cli/create-plan-development/__tests__/parse.test.ts +177 -0
  123. package/templates/skills/business-analyse/create-plan-development/cli/create-plan-development/generate.ts +317 -0
  124. package/templates/skills/business-analyse/create-plan-development/cli/create-plan-development/graph.ts +233 -0
  125. package/templates/skills/business-analyse/create-plan-development/cli/create-plan-development/index.ts +106 -0
  126. package/templates/skills/business-analyse/create-plan-development/cli/create-plan-development/parse.ts +346 -0
  127. package/templates/skills/business-analyse/create-plan-development/cli/create-plan-development/types.ts +160 -0
  128. package/templates/skills/business-analyse/create-plan-development/cli/create-plan-development/validate.ts +118 -0
  129. package/templates/skills/business-analyse/create-prd/SKILL.md +228 -0
  130. package/templates/skills/business-analyse/create-rbac/SKILL.md +255 -0
  131. package/templates/skills/business-analyse/create-rbac/levels/detail.md +86 -0
  132. package/templates/skills/business-analyse/create-rbac/levels/discovery.md +63 -0
  133. package/templates/skills/business-analyse/create-rbac/levels/review.md +66 -0
  134. package/templates/skills/business-analyse/create-screen/SKILL.md +386 -0
  135. package/templates/skills/business-analyse/create-screen/levels/dashboard-screens.md +94 -0
  136. package/templates/skills/business-analyse/create-screen/levels/form-screens.md +142 -0
  137. package/templates/skills/business-analyse/create-screen/levels/home-screens.md +151 -0
  138. package/templates/skills/business-analyse/create-screen/levels/kanban-screens.md +86 -0
  139. package/templates/skills/business-analyse/create-screen/levels/list-screens.md +134 -0
  140. package/templates/skills/business-analyse/create-screen/references/post-check.md +101 -0
  141. package/templates/skills/business-analyse/create-screen/references/react-templates.md +252 -0
  142. package/templates/skills/business-analyse/create-screen/references/smartcomponents.md +419 -0
  143. package/templates/skills/business-analyse/create-screen/references/type-mapping.md +150 -0
  144. package/templates/skills/business-analyse/create-use-case/SKILL.md +347 -0
  145. package/templates/skills/business-analyse/create-use-case/levels/detail.md +136 -0
  146. package/templates/skills/business-analyse/create-use-case/levels/discovery.md +110 -0
  147. package/templates/skills/business-analyse/loop/SKILL.md +401 -0
  148. package/templates/skills/business-analyse/modeling-detail/SKILL.md +241 -0
  149. package/templates/skills/business-analyse/modeling-inventory/SKILL.md +174 -0
  150. package/templates/skills/business-analyse/reconcile-menu/SKILL.md +180 -0
  151. package/templates/skills/business-analyse/reconcile-menu/cli/reconcile-menu/__tests__/clean.test.ts +266 -0
  152. package/templates/skills/business-analyse/reconcile-menu/cli/reconcile-menu/__tests__/detect.test.ts +231 -0
  153. package/templates/skills/business-analyse/reconcile-menu/cli/reconcile-menu/__tests__/scan.test.ts +154 -0
  154. package/templates/skills/business-analyse/reconcile-menu/cli/reconcile-menu/clean.ts +319 -0
  155. package/templates/skills/business-analyse/reconcile-menu/cli/reconcile-menu/detect.ts +256 -0
  156. package/templates/skills/business-analyse/reconcile-menu/cli/reconcile-menu/index.ts +126 -0
  157. package/templates/skills/business-analyse/reconcile-menu/cli/reconcile-menu/scan.ts +175 -0
  158. package/templates/skills/business-analyse/reconcile-menu/cli/reconcile-menu/types.ts +136 -0
  159. package/templates/skills/business-analyse/reconcile-menu/cli/reconcile-menu/validate.ts +32 -0
  160. package/templates/skills/check-version/SKILL.md +196 -196
  161. package/templates/skills/cli-app-sync/SKILL.md +9 -9
  162. package/templates/skills/cli-app-sync/references/comparison-map.md +4 -4
  163. package/templates/skills/cli-app-sync/references/diff-entities.md +6 -6
  164. package/templates/skills/conventions/SKILL.md +64 -0
  165. package/templates/skills/dev-start/SKILL.md +190 -237
  166. package/templates/skills/development/SKILL.md +87 -0
  167. package/templates/skills/development/audit/SKILL.md +156 -0
  168. package/templates/skills/development/audit/routing-dynamic/SKILL.md +196 -0
  169. package/templates/skills/development/audit-dev-api/SKILL.md +331 -0
  170. package/templates/skills/development/audit-dev-api/cli/audit-dev-api/__tests__/end-to-end.test.ts +364 -0
  171. package/templates/skills/development/audit-dev-api/cli/audit-dev-api/audit.ts +646 -0
  172. package/templates/skills/development/audit-dev-api/cli/audit-dev-api/index.ts +140 -0
  173. package/templates/skills/development/audit-dev-api/cli/audit-dev-api/types.ts +158 -0
  174. package/templates/skills/development/audit-dev-api/cli/audit-dev-api/validate.ts +45 -0
  175. package/templates/skills/development/audit-dev-core/SKILL.md +182 -0
  176. package/templates/skills/development/audit-dev-data/SKILL.md +195 -0
  177. package/templates/skills/development/audit-dev-domain/SKILL.md +184 -0
  178. package/templates/skills/development/audit-dev-frontend/SKILL.md +530 -0
  179. package/templates/skills/development/audit-dev-frontend/cli/audit-dev-actions-alignment/__tests__/end-to-end.test.ts +202 -0
  180. package/templates/skills/development/audit-dev-frontend/cli/audit-dev-actions-alignment/apply.ts +31 -0
  181. package/templates/skills/development/audit-dev-frontend/cli/audit-dev-actions-alignment/audit.ts +734 -0
  182. package/templates/skills/development/audit-dev-frontend/cli/audit-dev-actions-alignment/index.ts +125 -0
  183. package/templates/skills/development/audit-dev-frontend/cli/audit-dev-actions-alignment/types.ts +165 -0
  184. package/templates/skills/development/audit-dev-frontend/cli/audit-dev-actions-alignment/validate.ts +36 -0
  185. package/templates/skills/development/audit-dev-frontend/cli/audit-dev-frontend/__tests__/dev-ui-022.test.ts +193 -0
  186. package/templates/skills/development/audit-dev-frontend/cli/audit-dev-frontend/apply.ts +374 -0
  187. package/templates/skills/development/audit-dev-frontend/cli/audit-dev-frontend/audit.ts +1126 -0
  188. package/templates/skills/development/audit-dev-frontend/cli/audit-dev-frontend/index.ts +141 -0
  189. package/templates/skills/development/audit-dev-frontend/cli/audit-dev-frontend/types.ts +218 -0
  190. package/templates/skills/development/audit-dev-frontend/cli/audit-dev-frontend/validate.ts +80 -0
  191. package/templates/skills/development/audit-dev-tests/SKILL.md +82 -0
  192. package/templates/skills/development/audit-dev-tests/cli/audit-dev-tests/__tests__/audit.test.ts +220 -0
  193. package/templates/skills/development/audit-dev-tests/cli/audit-dev-tests/audit.ts +185 -0
  194. package/templates/skills/development/audit-dev-tests/cli/audit-dev-tests/index.ts +84 -0
  195. package/templates/skills/development/audit-dev-tests/cli/audit-dev-tests/types.ts +48 -0
  196. package/templates/skills/development/audit-dev-tests/cli/audit-dev-tests/validate.ts +36 -0
  197. package/templates/skills/development/audit-dev-wire/SKILL.md +144 -0
  198. package/templates/skills/development/audit-dev-wire/cli/audit-dev-wire/__tests__/audit.test.ts +171 -0
  199. package/templates/skills/development/audit-dev-wire/cli/audit-dev-wire/audit.ts +307 -0
  200. package/templates/skills/development/audit-dev-wire/cli/audit-dev-wire/index.ts +139 -0
  201. package/templates/skills/development/audit-dev-wire/cli/audit-dev-wire/types.ts +110 -0
  202. package/templates/skills/development/audit-dev-wire/cli/audit-dev-wire/validate.ts +16 -0
  203. package/templates/skills/development/backend/business-layer/SKILL.md +255 -0
  204. package/templates/skills/development/backend/business-layer/cli/scaffold-business/__tests__/generate.test.ts +254 -0
  205. package/templates/skills/development/backend/business-layer/cli/scaffold-business/generate.ts +842 -0
  206. package/templates/skills/development/backend/business-layer/cli/scaffold-business/index.ts +56 -0
  207. package/templates/skills/development/backend/business-layer/cli/scaffold-business/types.ts +112 -0
  208. package/templates/skills/development/backend/business-layer/cli/scaffold-business/validate.ts +24 -0
  209. package/templates/skills/development/backend/controller/SKILL.md +154 -0
  210. package/templates/skills/development/backend/controller/cli/scaffold-controller/__tests__/generate.test.ts +345 -0
  211. package/templates/skills/development/backend/controller/cli/scaffold-controller/generate.ts +280 -0
  212. package/templates/skills/development/backend/controller/cli/scaffold-controller/index.ts +49 -0
  213. package/templates/skills/development/backend/controller/cli/scaffold-controller/types.ts +72 -0
  214. package/templates/skills/development/backend/controller/cli/scaffold-controller/validate.ts +14 -0
  215. package/templates/skills/development/backend/core-seed/SKILL.md +177 -0
  216. package/templates/skills/development/backend/core-seed/cli/scaffold-core-seed/__tests__/build-spec.test.ts +163 -0
  217. package/templates/skills/development/backend/core-seed/cli/scaffold-core-seed/__tests__/generate.test.ts +330 -0
  218. package/templates/skills/development/backend/core-seed/cli/scaffold-core-seed/__tests__/validate.test.ts +126 -0
  219. package/templates/skills/development/backend/core-seed/cli/scaffold-core-seed/build-spec.ts +287 -0
  220. package/templates/skills/development/backend/core-seed/cli/scaffold-core-seed/generate.ts +826 -0
  221. package/templates/skills/development/backend/core-seed/cli/scaffold-core-seed/index.ts +188 -0
  222. package/templates/skills/development/backend/core-seed/cli/scaffold-core-seed/types.ts +163 -0
  223. package/templates/skills/development/backend/core-seed/cli/scaffold-core-seed/validate.ts +129 -0
  224. package/templates/skills/development/backend/data-layer/SKILL.md +163 -0
  225. package/templates/skills/development/backend/data-layer/cli/scaffold-entity/__tests__/generate.test.ts +155 -0
  226. package/templates/skills/development/backend/data-layer/cli/scaffold-entity/generate.ts +232 -0
  227. package/templates/skills/development/backend/data-layer/cli/scaffold-entity/index.ts +34 -0
  228. package/templates/skills/development/backend/data-layer/cli/scaffold-entity/types.ts +60 -0
  229. package/templates/skills/development/backend/data-layer/cli/scaffold-entity/validate.ts +42 -0
  230. package/templates/skills/development/backend/data-layer/cli/scaffold-migration/execute.ts +13 -0
  231. package/templates/skills/development/backend/data-layer/cli/scaffold-migration/index.ts +25 -0
  232. package/templates/skills/development/backend/data-layer/cli/scaffold-migration/types.ts +11 -0
  233. package/templates/skills/development/backend/data-layer/cli/scaffold-migration/validate.ts +9 -0
  234. package/templates/skills/development/backend/screen-controller/SKILL.md +169 -0
  235. package/templates/skills/development/backend/screen-controller/cli/scaffold-screen-controller/__tests__/generate.test.ts +329 -0
  236. package/templates/skills/development/backend/screen-controller/cli/scaffold-screen-controller/__tests__/hub-views.test.ts +105 -0
  237. package/templates/skills/development/backend/screen-controller/cli/scaffold-screen-controller/__tests__/parse-pagespec.test.ts +137 -0
  238. package/templates/skills/development/backend/screen-controller/cli/scaffold-screen-controller/generate.ts +437 -0
  239. package/templates/skills/development/backend/screen-controller/cli/scaffold-screen-controller/index.ts +108 -0
  240. package/templates/skills/development/backend/screen-controller/cli/scaffold-screen-controller/parse-pagespec.ts +104 -0
  241. package/templates/skills/development/backend/screen-controller/cli/scaffold-screen-controller/types.ts +101 -0
  242. package/templates/skills/development/backend/screen-controller/cli/scaffold-screen-controller/validate.ts +26 -0
  243. package/templates/skills/development/backend/seed-data/SKILL.md +91 -0
  244. package/templates/skills/development/backend/seed-data/cli/scaffold-seed/generate.ts +471 -0
  245. package/templates/skills/development/backend/seed-data/cli/scaffold-seed/index.ts +74 -0
  246. package/templates/skills/development/backend/seed-data/cli/scaffold-seed/types.ts +104 -0
  247. package/templates/skills/development/backend/seed-data/cli/scaffold-seed/validate.ts +63 -0
  248. package/templates/skills/development/backend/structure/SKILL.md +47 -0
  249. package/templates/skills/development/debug/SKILL.md +62 -0
  250. package/templates/skills/development/debug/audit-bug/SKILL.md +185 -0
  251. package/templates/skills/development/debug/backend/SKILL.md +114 -0
  252. package/templates/skills/development/debug/discuss-bug/SKILL.md +193 -0
  253. package/templates/skills/development/debug/fix-bug/SKILL.md +172 -0
  254. package/templates/skills/development/debug/frontend/SKILL.md +215 -0
  255. package/templates/skills/development/frontend/api-client/SKILL.md +158 -0
  256. package/templates/skills/development/frontend/api-client/cli/scaffold-api-client/__tests__/generate.test.ts +1180 -0
  257. package/templates/skills/development/frontend/api-client/cli/scaffold-api-client/__tests__/screen-strata-contract.test.ts +261 -0
  258. package/templates/skills/development/frontend/api-client/cli/scaffold-api-client/__tests__/url-parity.test.ts +201 -0
  259. package/templates/skills/development/frontend/api-client/cli/scaffold-api-client/generate.ts +875 -0
  260. package/templates/skills/development/frontend/api-client/cli/scaffold-api-client/index.ts +36 -0
  261. package/templates/skills/development/frontend/api-client/cli/scaffold-api-client/types.ts +251 -0
  262. package/templates/skills/development/frontend/api-client/cli/scaffold-api-client/validate.ts +10 -0
  263. package/templates/skills/development/frontend/auth/SKILL.md +77 -0
  264. package/templates/skills/development/frontend/auth/cli/scaffold-frontend-auth/generate.ts +306 -0
  265. package/templates/skills/development/frontend/auth/cli/scaffold-frontend-auth/index.ts +179 -0
  266. package/templates/skills/development/frontend/auth/cli/scaffold-frontend-auth/types.ts +22 -0
  267. package/templates/skills/development/frontend/auth/cli/scaffold-frontend-auth/validate.ts +37 -0
  268. package/templates/skills/development/frontend/component/SKILL.md +347 -0
  269. package/templates/skills/development/frontend/component/cli/scaffold-component/__tests__/generate.test.ts +1237 -0
  270. package/templates/skills/development/frontend/component/cli/scaffold-component/generate.ts +1923 -0
  271. package/templates/skills/development/frontend/component/cli/scaffold-component/index.ts +155 -0
  272. package/templates/skills/development/frontend/component/cli/scaffold-component/types.ts +290 -0
  273. package/templates/skills/development/frontend/component/cli/scaffold-component/validate.ts +16 -0
  274. package/templates/skills/development/frontend/component/cli/validate-page/__tests__/execute.test.ts +231 -0
  275. package/templates/skills/development/frontend/component/cli/validate-page/execute.ts +598 -0
  276. package/templates/skills/development/frontend/component/cli/validate-page/index.ts +88 -0
  277. package/templates/skills/development/frontend/component/cli/validate-page/types.ts +58 -0
  278. package/templates/skills/development/frontend/component/cli/validate-page/validate.ts +28 -0
  279. package/templates/skills/development/frontend/component/patterns/README.md +42 -0
  280. package/templates/skills/development/frontend/component/patterns/detail-page.md +133 -0
  281. package/templates/skills/development/frontend/component/patterns/entity-card.md +148 -0
  282. package/templates/skills/development/frontend/component/patterns/form-page.md +191 -0
  283. package/templates/skills/development/frontend/component/patterns/kanban-board.md +195 -0
  284. package/templates/skills/development/frontend/component/patterns/list-page.md +175 -0
  285. package/templates/skills/development/frontend/extension-config/SKILL.md +108 -0
  286. package/templates/skills/development/frontend/extension-config/cli/scaffold-extension-config/generate.ts +64 -0
  287. package/templates/skills/development/frontend/extension-config/cli/scaffold-extension-config/index.ts +70 -0
  288. package/templates/skills/development/frontend/extension-config/cli/scaffold-extension-config/types.ts +27 -0
  289. package/templates/skills/development/frontend/extension-config/cli/scaffold-extension-config/validate.ts +16 -0
  290. package/templates/skills/development/frontend/layout/SKILL.md +52 -0
  291. package/templates/skills/development/frontend/layout/cli/scaffold-layout/__tests__/generate.test.ts +66 -0
  292. package/templates/skills/development/frontend/layout/cli/scaffold-layout/generate.ts +175 -0
  293. package/templates/skills/development/frontend/layout/cli/scaffold-layout/index.ts +104 -0
  294. package/templates/skills/development/frontend/layout/cli/scaffold-layout/types.ts +17 -0
  295. package/templates/skills/development/frontend/layout/cli/scaffold-layout/validate.ts +37 -0
  296. package/templates/skills/development/frontend/routes/SKILL.md +152 -0
  297. package/templates/skills/development/frontend/routes/cli/aggregate-component-registry/generate.ts +216 -0
  298. package/templates/skills/development/frontend/routes/cli/aggregate-component-registry/index.ts +121 -0
  299. package/templates/skills/development/frontend/routes/cli/aggregate-component-registry/types.ts +69 -0
  300. package/templates/skills/development/frontend/routes/cli/aggregate-component-registry/validate.ts +23 -0
  301. package/templates/skills/development/frontend/routes/cli/scaffold-routes/__tests__/generate.test.ts +292 -0
  302. package/templates/skills/development/frontend/routes/cli/scaffold-routes/generate.ts +270 -0
  303. package/templates/skills/development/frontend/routes/cli/scaffold-routes/index.ts +42 -0
  304. package/templates/skills/development/frontend/routes/cli/scaffold-routes/types.ts +114 -0
  305. package/templates/skills/development/frontend/routes/cli/scaffold-routes/validate.ts +68 -0
  306. package/templates/skills/development/frontend/structure/SKILL.md +119 -0
  307. package/templates/skills/development/frontend/theme/SKILL.md +48 -0
  308. package/templates/skills/development/frontend/theme/cli/scaffold-theme/__tests__/generate.test.ts +53 -0
  309. package/templates/skills/development/frontend/theme/cli/scaffold-theme/generate.ts +129 -0
  310. package/templates/skills/development/frontend/theme/cli/scaffold-theme/index.ts +102 -0
  311. package/templates/skills/development/frontend/theme/cli/scaffold-theme/types.ts +48 -0
  312. package/templates/skills/development/frontend/theme/cli/scaffold-theme/validate.ts +37 -0
  313. package/templates/skills/development/frontend/ui-polish/SKILL.md +192 -0
  314. package/templates/skills/development/frontend/ui-polish/cli/ui-polish/__tests__/r18.test.ts +153 -0
  315. package/templates/skills/development/frontend/ui-polish/cli/ui-polish/__tests__/r19.test.ts +307 -0
  316. package/templates/skills/development/frontend/ui-polish/cli/ui-polish/__tests__/r20.test.ts +167 -0
  317. package/templates/skills/development/frontend/ui-polish/cli/ui-polish/__tests__/shared-scan.test.ts +262 -0
  318. package/templates/skills/development/frontend/ui-polish/cli/ui-polish/apply.ts +580 -0
  319. package/templates/skills/development/frontend/ui-polish/cli/ui-polish/audit.ts +825 -0
  320. package/templates/skills/development/frontend/ui-polish/cli/ui-polish/index.ts +133 -0
  321. package/templates/skills/development/frontend/ui-polish/cli/ui-polish/types.ts +121 -0
  322. package/templates/skills/development/frontend/ui-polish/cli/ui-polish/validate.ts +73 -0
  323. package/templates/skills/development/frontend/ui-polish/tokens.json +292 -0
  324. package/templates/skills/development/frontend/ui-primitives/SKILL.md +88 -0
  325. package/templates/skills/development/frontend/ui-primitives/cli/scaffold-ui-primitives/__tests__/generate.test.ts +158 -0
  326. package/templates/skills/development/frontend/ui-primitives/cli/scaffold-ui-primitives/generate.ts +345 -0
  327. package/templates/skills/development/frontend/ui-primitives/cli/scaffold-ui-primitives/index.ts +142 -0
  328. package/templates/skills/development/frontend/ui-primitives/cli/scaffold-ui-primitives/types.ts +27 -0
  329. package/templates/skills/development/frontend/ui-primitives/cli/scaffold-ui-primitives/validate.ts +37 -0
  330. package/templates/skills/development/run/SKILL.md +61 -0
  331. package/templates/skills/development/run/backend/SKILL.md +106 -0
  332. package/templates/skills/development/run/frontend/SKILL.md +116 -0
  333. package/templates/skills/development/smoke-test/SKILL.md +99 -0
  334. package/templates/skills/development/smoke-test/cli/run-smoke/execute.ts +424 -0
  335. package/templates/skills/development/smoke-test/cli/run-smoke/index.ts +75 -0
  336. package/templates/skills/development/smoke-test/cli/run-smoke/types.ts +100 -0
  337. package/templates/skills/development/testing/SKILL.md +148 -0
  338. package/templates/skills/development/testing/cli/scaffold-tests/generate.ts +530 -0
  339. package/templates/skills/development/testing/cli/scaffold-tests/index.ts +83 -0
  340. package/templates/skills/development/testing/cli/scaffold-tests/types.ts +51 -0
  341. package/templates/skills/development/testing/cli/scaffold-tests/validate.ts +33 -0
  342. package/templates/skills/development/testing/cli/scaffold-tests-from-ac/__tests__/generate.test.ts +188 -0
  343. package/templates/skills/development/testing/cli/scaffold-tests-from-ac/__tests__/parse-ac.test.ts +191 -0
  344. package/templates/skills/development/testing/cli/scaffold-tests-from-ac/generate.ts +190 -0
  345. package/templates/skills/development/testing/cli/scaffold-tests-from-ac/index.ts +138 -0
  346. package/templates/skills/development/testing/cli/scaffold-tests-from-ac/parse-ac.ts +172 -0
  347. package/templates/skills/development/testing/cli/scaffold-tests-from-ac/types.ts +104 -0
  348. package/templates/skills/development/testing/cli/scaffold-tests-from-ac/validate.ts +57 -0
  349. package/templates/skills/development/testing/cli/test-report/execute.ts +140 -0
  350. package/templates/skills/development/testing/cli/test-report/index.ts +96 -0
  351. package/templates/skills/development/testing/cli/test-report/types.ts +52 -0
  352. package/templates/skills/development/testing/cli/test-report/validate.ts +26 -0
  353. package/templates/skills/development/testing/fix-build/SKILL.md +81 -0
  354. package/templates/skills/development/testing/smoke-http/SKILL.md +123 -0
  355. package/templates/skills/development/testing/smoke-http/cli/smoke-http/execute.ts +129 -0
  356. package/templates/skills/development/testing/smoke-http/cli/smoke-http/index.ts +113 -0
  357. package/templates/skills/development/testing/smoke-http/cli/smoke-http/types.ts +62 -0
  358. package/templates/skills/development/testing/smoke-http/cli/smoke-http/validate.ts +36 -0
  359. package/templates/skills/development/testing/ui-test/SKILL.md +128 -0
  360. package/templates/skills/development/testing/ui-test/cli/build-manifest/generate.ts +129 -0
  361. package/templates/skills/development/testing/ui-test/cli/build-manifest/index.ts +80 -0
  362. package/templates/skills/development/testing/ui-test/cli/build-manifest/types.ts +72 -0
  363. package/templates/skills/development/testing/ui-test/cli/build-manifest/validate.ts +44 -0
  364. package/templates/skills/development/testing/ui-test/cli/run-ui-test/execute.ts +136 -0
  365. package/templates/skills/development/testing/ui-test/cli/run-ui-test/index.ts +75 -0
  366. package/templates/skills/development/testing/ui-test/cli/run-ui-test/lib/dev-browser-driver.ts +250 -0
  367. package/templates/skills/development/testing/ui-test/cli/run-ui-test/templates/delete.js.hbs +83 -0
  368. package/templates/skills/development/testing/ui-test/cli/run-ui-test/templates/detail.js.hbs +87 -0
  369. package/templates/skills/development/testing/ui-test/cli/run-ui-test/templates/edit.js.hbs +91 -0
  370. package/templates/skills/development/testing/ui-test/cli/run-ui-test/templates/form-submit.js.hbs +82 -0
  371. package/templates/skills/development/testing/ui-test/cli/run-ui-test/templates/list.js.hbs +125 -0
  372. package/templates/skills/development/testing/ui-test/cli/run-ui-test/templates/permission-negative.js.hbs +65 -0
  373. package/templates/skills/development/testing/ui-test/cli/run-ui-test/types.ts +57 -0
  374. package/templates/skills/development/testing/ui-test/cli/run-ui-test/validate.ts +56 -0
  375. package/templates/skills/documentation/SKILL.md +168 -139
  376. package/templates/skills/documentation/cli/extract-doc/__tests__/forbidden.test.ts +136 -0
  377. package/templates/skills/documentation/cli/extract-doc/__tests__/overflow.test.ts +76 -0
  378. package/templates/skills/documentation/cli/extract-doc/__tests__/required.test.ts +147 -0
  379. package/templates/skills/documentation/cli/extract-doc/extract.ts +657 -0
  380. package/templates/skills/documentation/cli/extract-doc/index.ts +102 -0
  381. package/templates/skills/documentation/cli/extract-doc/types.ts +133 -0
  382. package/templates/skills/documentation/cli/extract-doc/validate.ts +35 -0
  383. package/templates/skills/documentation/cli/scaffold-doc/generate.ts +198 -0
  384. package/templates/skills/documentation/cli/scaffold-doc/index.ts +61 -0
  385. package/templates/skills/documentation/cli/scaffold-doc/types.ts +72 -0
  386. package/templates/skills/documentation/cli/scaffold-doc/validate.ts +33 -0
  387. package/templates/skills/documentation/data-schema.md +18 -38
  388. package/templates/skills/documentation/steps/step-01-scan.md +59 -113
  389. package/templates/skills/documentation/steps/step-02-generate.md +158 -231
  390. package/templates/skills/documentation/steps/step-03-validate.md +101 -280
  391. package/templates/skills/documentation/templates.md +403 -92
  392. package/templates/skills/efcore/SKILL.md +88 -308
  393. package/templates/skills/efcore/_shared.md +140 -0
  394. package/templates/skills/efcore/agents/create.md +69 -0
  395. package/templates/skills/efcore/agents/db-update.md +58 -0
  396. package/templates/skills/efcore/agents/list.md +35 -0
  397. package/templates/skills/efcore/agents/rebase-snapshot.md +50 -0
  398. package/templates/skills/efcore/agents/recreate-db.md +78 -0
  399. package/templates/skills/efcore/agents/squash.md +78 -0
  400. package/templates/skills/efcore/agents/status.md +35 -0
  401. package/templates/skills/efcore/cli/create/execute.ts +164 -0
  402. package/templates/skills/efcore/cli/create/index.ts +51 -0
  403. package/templates/skills/efcore/cli/create/types.ts +35 -0
  404. package/templates/skills/efcore/cli/create/validate.ts +29 -0
  405. package/templates/skills/efcore/cli/lib/detect-dbcontexts.ts +195 -0
  406. package/templates/skills/efcore/cli/lib/ef-runner.ts +144 -0
  407. package/templates/skills/efcore/cli/lib/migration-name.ts +56 -0
  408. package/templates/skills/efcore/cli/lib/parse-csproj-version.ts +45 -0
  409. package/templates/skills/efcore/cli/list/execute.ts +83 -0
  410. package/templates/skills/efcore/cli/list/index.ts +60 -0
  411. package/templates/skills/efcore/cli/list/types.ts +46 -0
  412. package/templates/skills/efcore/cli/list/validate.ts +20 -0
  413. package/templates/skills/efcore/cli/rebase-snapshot/execute.ts +21 -0
  414. package/templates/skills/efcore/cli/rebase-snapshot/index.ts +53 -0
  415. package/templates/skills/efcore/cli/rebase-snapshot/types.ts +20 -0
  416. package/templates/skills/efcore/cli/rebase-snapshot/validate.ts +25 -0
  417. package/templates/skills/efcore/cli/squash/execute.ts +298 -0
  418. package/templates/skills/efcore/cli/squash/index.ts +57 -0
  419. package/templates/skills/efcore/cli/squash/types.ts +38 -0
  420. package/templates/skills/efcore/cli/squash/validate.ts +30 -0
  421. package/templates/skills/efcore/cli/status/execute.ts +152 -0
  422. package/templates/skills/efcore/cli/status/index.ts +45 -0
  423. package/templates/skills/efcore/cli/status/types.ts +32 -0
  424. package/templates/skills/efcore/cli/status/validate.ts +20 -0
  425. package/templates/skills/external/context7/SKILL.md +121 -0
  426. package/templates/skills/external/dev-browser/SKILL.md +134 -0
  427. package/templates/skills/gitflow/SKILL.md +139 -392
  428. package/templates/skills/gitflow/_shared.md +24 -620
  429. package/templates/skills/gitflow/agents/abort.md +47 -0
  430. package/templates/skills/gitflow/agents/cleanup.md +50 -0
  431. package/templates/skills/gitflow/agents/commit.md +41 -0
  432. package/templates/skills/gitflow/agents/finish.md +47 -0
  433. package/templates/skills/gitflow/agents/init.md +41 -0
  434. package/templates/skills/gitflow/agents/merge.md +44 -0
  435. package/templates/skills/gitflow/agents/pr.md +39 -0
  436. package/templates/skills/gitflow/agents/start.md +42 -0
  437. package/templates/skills/gitflow/agents/status.md +39 -0
  438. package/templates/skills/gitflow/agents/sync.md +38 -0
  439. package/templates/skills/gitflow/cli/abort/execute.ts +61 -0
  440. package/templates/skills/gitflow/cli/abort/index.ts +116 -0
  441. package/templates/skills/gitflow/cli/abort/types.ts +21 -0
  442. package/templates/skills/gitflow/cli/abort/validate.ts +38 -0
  443. package/templates/skills/gitflow/cli/cleanup/execute.ts +107 -0
  444. package/templates/skills/gitflow/cli/cleanup/index.ts +122 -0
  445. package/templates/skills/gitflow/cli/cleanup/types.ts +26 -0
  446. package/templates/skills/gitflow/cli/cleanup/validate.ts +33 -0
  447. package/templates/skills/gitflow/cli/commit/execute.ts +146 -0
  448. package/templates/skills/gitflow/cli/commit/index.ts +77 -0
  449. package/templates/skills/gitflow/cli/commit/types.ts +36 -0
  450. package/templates/skills/gitflow/cli/commit/validate.ts +38 -0
  451. package/templates/skills/gitflow/cli/finish/execute.ts +127 -0
  452. package/templates/skills/gitflow/cli/finish/index.ts +106 -0
  453. package/templates/skills/gitflow/cli/finish/types.ts +25 -0
  454. package/templates/skills/gitflow/cli/finish/validate.ts +44 -0
  455. package/templates/skills/gitflow/cli/generate-msg/execute.ts +51 -0
  456. package/templates/skills/gitflow/cli/generate-msg/index.ts +73 -0
  457. package/templates/skills/gitflow/cli/generate-msg/types.ts +37 -0
  458. package/templates/skills/gitflow/cli/generate-msg/validate.ts +42 -0
  459. package/templates/skills/gitflow/cli/init/execute.ts +186 -0
  460. package/templates/skills/gitflow/cli/init/index.ts +127 -0
  461. package/templates/skills/gitflow/cli/init/types.ts +63 -0
  462. package/templates/skills/gitflow/cli/init/validate.ts +56 -0
  463. package/templates/skills/gitflow/cli/lib/branch.ts +83 -0
  464. package/templates/skills/gitflow/cli/lib/config.ts +149 -0
  465. package/templates/skills/gitflow/cli/lib/efcore.ts +136 -0
  466. package/templates/skills/gitflow/cli/lib/git.ts +212 -0
  467. package/templates/skills/gitflow/cli/lib/output.ts +49 -0
  468. package/templates/skills/gitflow/cli/lib/paths.ts +54 -0
  469. package/templates/skills/gitflow/cli/lib/platform.ts +44 -0
  470. package/templates/skills/gitflow/cli/lib/provider.ts +147 -0
  471. package/templates/skills/gitflow/cli/lib/types.ts +189 -0
  472. package/templates/skills/gitflow/cli/lib/version.ts +152 -0
  473. package/templates/skills/gitflow/cli/lib/worktree.ts +170 -0
  474. package/templates/skills/gitflow/cli/merge/execute.ts +93 -0
  475. package/templates/skills/gitflow/cli/merge/index.ts +109 -0
  476. package/templates/skills/gitflow/cli/merge/types.ts +24 -0
  477. package/templates/skills/gitflow/cli/merge/validate.ts +33 -0
  478. package/templates/skills/gitflow/cli/pr/execute.ts +131 -0
  479. package/templates/skills/gitflow/cli/pr/index.ts +115 -0
  480. package/templates/skills/gitflow/cli/pr/types.ts +27 -0
  481. package/templates/skills/gitflow/cli/pr/validate.ts +27 -0
  482. package/templates/skills/gitflow/cli/start/execute.ts +98 -0
  483. package/templates/skills/gitflow/cli/start/index.ts +75 -0
  484. package/templates/skills/gitflow/cli/start/types.ts +26 -0
  485. package/templates/skills/gitflow/cli/start/validate.ts +47 -0
  486. package/templates/skills/gitflow/cli/status/execute.ts +251 -0
  487. package/templates/skills/gitflow/cli/status/index.ts +154 -0
  488. package/templates/skills/gitflow/cli/status/types.ts +75 -0
  489. package/templates/skills/gitflow/cli/status/validate.ts +38 -0
  490. package/templates/skills/gitflow/cli/sync/execute.ts +84 -0
  491. package/templates/skills/gitflow/cli/sync/index.ts +75 -0
  492. package/templates/skills/gitflow/cli/sync/types.ts +25 -0
  493. package/templates/skills/gitflow/cli/sync/validate.ts +34 -0
  494. package/templates/skills/gitflow/commit-message.md +46 -0
  495. package/templates/skills/init/SKILL.md +54 -0
  496. package/templates/skills/lib/__tests__/canonical-hash.test.ts +45 -0
  497. package/templates/skills/lib/__tests__/page-spec-actions.test.ts +232 -0
  498. package/templates/skills/lib/canonical-hash.ts +40 -0
  499. package/templates/skills/lib/detector.ts +243 -0
  500. package/templates/skills/lib/dotnet.ts +238 -0
  501. package/templates/skills/lib/frontend-fixers.ts +151 -0
  502. package/templates/skills/lib/fs.ts +238 -0
  503. package/templates/skills/lib/git.ts +134 -0
  504. package/templates/skills/lib/graph.ts +138 -0
  505. package/templates/skills/lib/navroute-parser.ts +51 -0
  506. package/templates/skills/lib/output.ts +117 -0
  507. package/templates/skills/lib/page-spec-actions.ts +350 -0
  508. package/templates/skills/lib/skill-slug.ts +121 -0
  509. package/templates/skills/lib/string-utils.ts +140 -0
  510. package/templates/skills/lib/template-loader.ts +115 -0
  511. package/templates/skills/lib/url-conventions.ts +151 -0
  512. package/templates/skills/package.json +5 -0
  513. package/templates/skills/quick-search/SKILL.md +99 -99
  514. package/templates/skills/review/SKILL.md +56 -0
  515. package/templates/skills/smoke-generation/SKILL.md +18 -16
  516. package/templates/skills/ui-components/SKILL.md +136 -457
  517. package/templates/skills/upgrade/SKILL.md +36 -0
  518. package/templates/skills/utils/SKILL.md +45 -44
  519. package/templates/skills/utils/subcommands/test-web-config.md +152 -152
  520. package/templates/skills/utils/subcommands/test-web.md +123 -123
  521. package/templates/skills/validate-feature/SKILL.md +102 -101
  522. package/templates/skills/validate-feature/references/api-smoke-tests.md +140 -140
  523. package/templates/skills/validate-feature/references/db-validation-checks.md +180 -180
  524. package/templates/skills/validate-feature/steps/step-00-dependencies.md +121 -121
  525. package/templates/skills/validate-feature/steps/step-01-compile.md +39 -39
  526. package/templates/skills/validate-feature/steps/step-02-unit-tests.md +45 -45
  527. package/templates/skills/validate-feature/steps/step-03-integration-tests.md +53 -53
  528. package/templates/skills/validate-feature/steps/step-04-api-smoke.md +94 -94
  529. package/templates/skills/validate-feature/steps/step-05-db-validation.md +149 -149
  530. package/templates/skills/validation/conventions/SKILL.md +193 -0
  531. package/templates/skills/validation/conventions/cli/validate-conventions/execute.ts +368 -0
  532. package/templates/skills/validation/conventions/cli/validate-conventions/index.ts +67 -0
  533. package/templates/skills/validation/conventions/cli/validate-conventions/types.ts +91 -0
  534. package/templates/skills/validation/conventions/cli/validate-conventions/validate.ts +36 -0
  535. package/templates/skills/validation/cross-validate/SKILL.md +83 -0
  536. package/templates/skills/validation/cross-validate/cli/execute.ts +576 -0
  537. package/templates/skills/validation/cross-validate/cli/index.ts +87 -0
  538. package/templates/skills/validation/cross-validate/cli/types.ts +85 -0
  539. package/templates/skills/validation/cross-validate/cli/validate.ts +54 -0
  540. package/templates/skills/validation/eslint/SKILL.md +65 -0
  541. package/templates/skills/validation/eslint/cli/execute.ts +413 -0
  542. package/templates/skills/validation/eslint/cli/index.ts +102 -0
  543. package/templates/skills/validation/eslint/cli/types.ts +48 -0
  544. package/templates/skills/validation/eslint/cli/validate.ts +43 -0
  545. package/templates/skills/validation/project-inventory/SKILL.md +166 -0
  546. package/templates/skills/validation/project-inventory/cli/project-inventory/execute.ts +397 -0
  547. package/templates/skills/validation/project-inventory/cli/project-inventory/index.ts +80 -0
  548. package/templates/skills/validation/project-inventory/cli/project-inventory/types.ts +89 -0
  549. package/templates/skills/validation/project-inventory/cli/project-inventory/validate.ts +35 -0
  550. package/templates/skills/validation/readiness-report/SKILL.md +109 -0
  551. package/templates/skills/validation/readiness-report/cli/execute.ts +236 -0
  552. package/templates/skills/validation/readiness-report/cli/index.ts +234 -0
  553. package/templates/skills/validation/readiness-report/cli/types.ts +61 -0
  554. package/templates/skills/validation/readiness-report/cli/validate.ts +54 -0
  555. package/templates/skills/validation/roslyn/SKILL.md +103 -0
  556. package/templates/skills/validation/roslyn/cli/execute.ts +616 -0
  557. package/templates/skills/validation/roslyn/cli/index.ts +86 -0
  558. package/templates/skills/validation/roslyn/cli/types.ts +50 -0
  559. package/templates/skills/validation/roslyn/cli/validate.ts +43 -0
  560. package/.documentation/apex.html +0 -649
  561. package/dist/mcp-entry.mjs +0 -68888
  562. package/dist/mcp-entry.mjs.map +0 -1
  563. package/scripts/extract-api-endpoints.ts +0 -325
  564. package/scripts/extract-business-rules.ts +0 -440
  565. package/scripts/generate-doc-with-mock-ui.ts +0 -804
  566. package/templates/agents/ba-reader.md +0 -386
  567. package/templates/agents/ba-writer.md +0 -810
  568. package/templates/agents/efcore/migration.md +0 -204
  569. package/templates/agents/efcore/rebase-snapshot.md +0 -202
  570. package/templates/agents/efcore/squash.md +0 -269
  571. package/templates/agents/gitflow/abort.md +0 -45
  572. package/templates/agents/gitflow/cleanup.md +0 -107
  573. package/templates/agents/gitflow/commit.md +0 -236
  574. package/templates/agents/gitflow/exec.md +0 -48
  575. package/templates/agents/gitflow/finish.md +0 -146
  576. package/templates/agents/gitflow/init-clone.md +0 -199
  577. package/templates/agents/gitflow/init-detect.md +0 -137
  578. package/templates/agents/gitflow/init-validate.md +0 -225
  579. package/templates/agents/gitflow/init.md +0 -509
  580. package/templates/agents/gitflow/merge.md +0 -145
  581. package/templates/agents/gitflow/plan.md +0 -42
  582. package/templates/agents/gitflow/pr.md +0 -191
  583. package/templates/agents/gitflow/review.md +0 -49
  584. package/templates/agents/gitflow/start.md +0 -147
  585. package/templates/agents/gitflow/status.md +0 -95
  586. package/templates/agents/mcp-healthcheck.md +0 -163
  587. package/templates/hooks/docs-drift-check.md +0 -96
  588. package/templates/hooks/ef-migration-check.md +0 -139
  589. package/templates/hooks/mcp-check.md +0 -64
  590. package/templates/hooks/ralph-mcp-logger.sh +0 -46
  591. package/templates/mcp-scaffolding/component.tsx.hbs +0 -318
  592. package/templates/mcp-scaffolding/controller.cs.hbs +0 -118
  593. package/templates/mcp-scaffolding/entity-extension.cs.hbs +0 -239
  594. package/templates/mcp-scaffolding/frontend/api-client.ts.hbs +0 -117
  595. package/templates/mcp-scaffolding/frontend/nav-routes.ts.hbs +0 -133
  596. package/templates/mcp-scaffolding/migrations/seed-roles.cs.hbs +0 -261
  597. package/templates/mcp-scaffolding/service-extension.cs.hbs +0 -53
  598. package/templates/mcp-scaffolding/tests/controller.test.cs.hbs +0 -436
  599. package/templates/mcp-scaffolding/tests/entity.test.cs.hbs +0 -239
  600. package/templates/mcp-scaffolding/tests/repository.test.cs.hbs +0 -441
  601. package/templates/mcp-scaffolding/tests/security.test.cs.hbs +0 -442
  602. package/templates/mcp-scaffolding/tests/service.test.cs.hbs +0 -402
  603. package/templates/mcp-scaffolding/tests/validator.test.cs.hbs +0 -428
  604. package/templates/skills/_resources/config-safety.md +0 -61
  605. package/templates/skills/_resources/context-digest-template.md +0 -53
  606. package/templates/skills/_resources/doc-context-cache.md +0 -60
  607. package/templates/skills/_resources/docs-manifest-schema.md +0 -155
  608. package/templates/skills/_resources/formatting-guide.md +0 -124
  609. package/templates/skills/_resources/mcp-validate-documentation-spec.md +0 -181
  610. package/templates/skills/_shared.md +0 -228
  611. package/templates/skills/admin/SKILL.md +0 -48
  612. package/templates/skills/ai-prompt/SKILL.md +0 -171
  613. package/templates/skills/ai-prompt/references/ai-agent-modes.md +0 -89
  614. package/templates/skills/ai-prompt/references/eval-framework.md +0 -129
  615. package/templates/skills/ai-prompt/steps/step-00-init.md +0 -47
  616. package/templates/skills/ai-prompt/steps/step-01-implementation.md +0 -122
  617. package/templates/skills/apex/SKILL.md +0 -234
  618. package/templates/skills/apex/_shared.md +0 -197
  619. package/templates/skills/apex/references/analysis-methods.md +0 -178
  620. package/templates/skills/apex/references/challenge-questions.md +0 -359
  621. package/templates/skills/apex/references/checks/architecture-checks.sh +0 -154
  622. package/templates/skills/apex/references/checks/backend-checks.sh +0 -208
  623. package/templates/skills/apex/references/checks/frontend-checks.sh +0 -560
  624. package/templates/skills/apex/references/checks/infrastructure-checks.sh +0 -292
  625. package/templates/skills/apex/references/checks/security-checks.sh +0 -153
  626. package/templates/skills/apex/references/checks/seed-checks.sh +0 -610
  627. package/templates/skills/apex/references/code-generation.md +0 -412
  628. package/templates/skills/apex/references/core-seed-data.md +0 -1502
  629. package/templates/skills/apex/references/domain-events-pattern.md +0 -45
  630. package/templates/skills/apex/references/entity-hooks-pattern.md +0 -68
  631. package/templates/skills/apex/references/error-classification.md +0 -168
  632. package/templates/skills/apex/references/frontend-route-wiring-app-tsx.md +0 -91
  633. package/templates/skills/apex/references/licensing-enforcement.md +0 -52
  634. package/templates/skills/apex/references/parallel-execution.md +0 -187
  635. package/templates/skills/apex/references/person-extension-pattern.md +0 -619
  636. package/templates/skills/apex/references/post-checks.md +0 -162
  637. package/templates/skills/apex/references/smartstack-api.md +0 -591
  638. package/templates/skills/apex/references/smartstack-frontend-compliance.md +0 -616
  639. package/templates/skills/apex/references/smartstack-frontend.md +0 -442
  640. package/templates/skills/apex/references/smartstack-layers.md +0 -551
  641. package/templates/skills/apex/steps/step-00-init.md +0 -405
  642. package/templates/skills/apex/steps/step-01-analyze.md +0 -210
  643. package/templates/skills/apex/steps/step-02-plan.md +0 -303
  644. package/templates/skills/apex/steps/step-03-execute.md +0 -194
  645. package/templates/skills/apex/steps/step-03a-layer0-domain.md +0 -144
  646. package/templates/skills/apex/steps/step-03b-layer1-seed.md +0 -339
  647. package/templates/skills/apex/steps/step-03c-layer2-backend.md +0 -401
  648. package/templates/skills/apex/steps/step-03d-layer3-frontend.md +0 -562
  649. package/templates/skills/apex/steps/step-03e-layer4-devdata.md +0 -46
  650. package/templates/skills/apex/steps/step-04-examine.md +0 -404
  651. package/templates/skills/apex/steps/step-05-deep-review.md +0 -140
  652. package/templates/skills/apex/steps/step-06-resolve.md +0 -120
  653. package/templates/skills/apex/steps/step-07-tests.md +0 -271
  654. package/templates/skills/apex/steps/step-08-run-tests.md +0 -135
  655. package/templates/skills/apex-verify/SKILL.md +0 -110
  656. package/templates/skills/apex-verify/references/audit-rules.md +0 -50
  657. package/templates/skills/apex-verify/steps/step-00-init.md +0 -119
  658. package/templates/skills/apex-verify/steps/step-01-nav-audit.md +0 -96
  659. package/templates/skills/apex-verify/steps/step-02-crud-audit.md +0 -127
  660. package/templates/skills/apex-verify/steps/step-03-perm-audit.md +0 -119
  661. package/templates/skills/apex-verify/steps/step-04-route-audit.md +0 -98
  662. package/templates/skills/apex-verify/steps/step-05-report.md +0 -110
  663. package/templates/skills/application/SKILL.md +0 -241
  664. package/templates/skills/application/references/application-roles-template.md +0 -228
  665. package/templates/skills/application/references/backend-controller-hierarchy.md +0 -68
  666. package/templates/skills/application/references/backend-entity-seeding.md +0 -73
  667. package/templates/skills/application/references/backend-seeding-and-dto-output.md +0 -83
  668. package/templates/skills/application/references/backend-table-prefix-mapping.md +0 -80
  669. package/templates/skills/application/references/backend-verification.md +0 -88
  670. package/templates/skills/application/references/contexts-cheatsheet.md +0 -86
  671. package/templates/skills/application/references/extensions-system.md +0 -158
  672. package/templates/skills/application/references/frontend-i18n-and-output.md +0 -67
  673. package/templates/skills/application/references/frontend-route-naming.md +0 -123
  674. package/templates/skills/application/references/frontend-route-wiring-app-tsx.md +0 -91
  675. package/templates/skills/application/references/frontend-verification.md +0 -158
  676. package/templates/skills/application/references/init-parameter-detection.md +0 -121
  677. package/templates/skills/application/references/migration-checklist-troubleshooting.md +0 -88
  678. package/templates/skills/application/references/nav-fallback-procedure.md +0 -198
  679. package/templates/skills/application/references/provider-template.md +0 -191
  680. package/templates/skills/application/references/roles-client-project-handling.md +0 -55
  681. package/templates/skills/application/references/roles-fallback-procedure.md +0 -144
  682. package/templates/skills/application/references/smartstack-provider.md +0 -118
  683. package/templates/skills/application/references/test-coverage-requirements.md +0 -213
  684. package/templates/skills/application/references/test-frontend.md +0 -73
  685. package/templates/skills/application/references/test-prerequisites.md +0 -72
  686. package/templates/skills/application/references/themes-db-driven.md +0 -484
  687. package/templates/skills/application/steps/step-00-init.md +0 -130
  688. package/templates/skills/application/steps/step-01-navigation.md +0 -170
  689. package/templates/skills/application/steps/step-02-permissions.md +0 -196
  690. package/templates/skills/application/steps/step-03-roles.md +0 -182
  691. package/templates/skills/application/steps/step-03b-provider.md +0 -134
  692. package/templates/skills/application/steps/step-04-backend.md +0 -174
  693. package/templates/skills/application/steps/step-05-frontend.md +0 -189
  694. package/templates/skills/application/steps/step-06-migration.md +0 -189
  695. package/templates/skills/application/steps/step-07-tests.md +0 -356
  696. package/templates/skills/application/steps/step-08-documentation.md +0 -137
  697. package/templates/skills/application/templates-backend.md +0 -463
  698. package/templates/skills/application/templates-frontend.md +0 -950
  699. package/templates/skills/application/templates-i18n.md +0 -520
  700. package/templates/skills/application/templates-seed.md +0 -1110
  701. package/templates/skills/audit-route/SKILL.md +0 -107
  702. package/templates/skills/audit-route/references/routing-pattern.md +0 -131
  703. package/templates/skills/audit-route/steps/step-00-init.md +0 -128
  704. package/templates/skills/audit-route/steps/step-01-inventory.md +0 -157
  705. package/templates/skills/audit-route/steps/step-02-conformity.md +0 -193
  706. package/templates/skills/audit-route/steps/step-03-report.md +0 -201
  707. package/templates/skills/business-analyse/SKILL.md +0 -252
  708. package/templates/skills/business-analyse/_shared.md +0 -276
  709. package/templates/skills/business-analyse/patterns/suggestion-catalog.md +0 -560
  710. package/templates/skills/business-analyse/questionnaire/01-context.md +0 -43
  711. package/templates/skills/business-analyse/questionnaire/02-stakeholders-scope.md +0 -111
  712. package/templates/skills/business-analyse/questionnaire/03-data-ui.md +0 -125
  713. package/templates/skills/business-analyse/questionnaire/04-risks-metrics.md +0 -6
  714. package/templates/skills/business-analyse/questionnaire/05-cross-module.md +0 -69
  715. package/templates/skills/business-analyse/questionnaire.md +0 -156
  716. package/templates/skills/business-analyse/react/application-viewer.md +0 -242
  717. package/templates/skills/business-analyse/react/components.md +0 -532
  718. package/templates/skills/business-analyse/react/i18n-template.md +0 -306
  719. package/templates/skills/business-analyse/react/schema.md +0 -831
  720. package/templates/skills/business-analyse/references/03-json-schemas.md +0 -221
  721. package/templates/skills/business-analyse/references/03-post-check-validation.md +0 -208
  722. package/templates/skills/business-analyse/references/03-smartstack-entity-guards.md +0 -32
  723. package/templates/skills/business-analyse/references/04-cross-module-validation.md +0 -95
  724. package/templates/skills/business-analyse/references/04-file-allocation.md +0 -162
  725. package/templates/skills/business-analyse/references/04-naming-audit-checks.md +0 -174
  726. package/templates/skills/business-analyse/references/04-semantic-validation-matrix.md +0 -118
  727. package/templates/skills/business-analyse/references/acceptance-criteria.md +0 -164
  728. package/templates/skills/business-analyse/references/analysis-semantic-checks.md +0 -190
  729. package/templates/skills/business-analyse/references/canonical-json-formats.md +0 -204
  730. package/templates/skills/business-analyse/references/compilation-structure-cards.md +0 -297
  731. package/templates/skills/business-analyse/references/consolidation-structural-checks.md +0 -124
  732. package/templates/skills/business-analyse/references/detection-strategies.md +0 -424
  733. package/templates/skills/business-analyse/references/domain-research-playbook.md +0 -234
  734. package/templates/skills/business-analyse/references/entity-architecture-decision.md +0 -240
  735. package/templates/skills/business-analyse/references/entity-sourcing-presentation.md +0 -166
  736. package/templates/skills/business-analyse/references/init-resume-logic.md +0 -70
  737. package/templates/skills/business-analyse/references/init-schema-deployment.md +0 -65
  738. package/templates/skills/business-analyse/references/module-completeness-challenge.md +0 -174
  739. package/templates/skills/business-analyse/references/multi-app-detection.md +0 -149
  740. package/templates/skills/business-analyse/references/naming-conventions.md +0 -253
  741. package/templates/skills/business-analyse/references/portal-classification.md +0 -52
  742. package/templates/skills/business-analyse/references/robustness-checks.md +0 -426
  743. package/templates/skills/business-analyse/references/ui-dashboard-spec.md +0 -85
  744. package/templates/skills/business-analyse/references/ui-resource-cards.md +0 -259
  745. package/templates/skills/business-analyse/references/validation-checklist.md +0 -378
  746. package/templates/skills/business-analyse/schemas/application-schema.json +0 -481
  747. package/templates/skills/business-analyse/schemas/feature-schema.json +0 -53
  748. package/templates/skills/business-analyse/schemas/index-schema.json +0 -47
  749. package/templates/skills/business-analyse/schemas/project-schema.json +0 -481
  750. package/templates/skills/business-analyse/schemas/sections/analysis-schema.json +0 -245
  751. package/templates/skills/business-analyse/schemas/sections/discovery-schema.json +0 -80
  752. package/templates/skills/business-analyse/schemas/sections/handoff-schema.json +0 -82
  753. package/templates/skills/business-analyse/schemas/sections/metadata-schema.json +0 -70
  754. package/templates/skills/business-analyse/schemas/sections/specification-schema.json +0 -567
  755. package/templates/skills/business-analyse/schemas/sections/validation-schema.json +0 -93
  756. package/templates/skills/business-analyse/schemas/shared/common-defs.json +0 -227
  757. package/templates/skills/business-analyse/steps/step-00-init.md +0 -463
  758. package/templates/skills/business-analyse/steps/step-01-cadrage.md +0 -901
  759. package/templates/skills/business-analyse/steps/step-02-structure.md +0 -315
  760. package/templates/skills/business-analyse/steps/step-03-specify.md +0 -986
  761. package/templates/skills/business-analyse/steps/step-04-consolidate.md +0 -928
  762. package/templates/skills/business-analyse/templates/tpl-frd.md +0 -168
  763. package/templates/skills/business-analyse/templates/tpl-handoff.md +0 -189
  764. package/templates/skills/business-analyse/templates/tpl-launch-displays.md +0 -59
  765. package/templates/skills/business-analyse/templates-frd.md +0 -476
  766. package/templates/skills/business-analyse/templates-react.md +0 -574
  767. package/templates/skills/business-analyse-design/SKILL.md +0 -101
  768. package/templates/skills/business-analyse-design/references/screens-post-check.md +0 -221
  769. package/templates/skills/business-analyse-design/references/screens-type-mapping.md +0 -138
  770. package/templates/skills/business-analyse-design/references/smartcomponents-templates.md +0 -225
  771. package/templates/skills/business-analyse-design/references/spec-auto-inference.md +0 -117
  772. package/templates/skills/business-analyse-design/steps/step-01-screens.md +0 -108
  773. package/templates/skills/business-analyse-design/steps/step-02-wireframes.md +0 -155
  774. package/templates/skills/business-analyse-design/steps/step-03-navigation.md +0 -189
  775. package/templates/skills/business-analyse-develop/SKILL.md +0 -250
  776. package/templates/skills/business-analyse-develop/references/category-completeness.md +0 -326
  777. package/templates/skills/business-analyse-develop/references/category-rules.md +0 -109
  778. package/templates/skills/business-analyse-develop/references/compact-loop.md +0 -478
  779. package/templates/skills/business-analyse-develop/references/handoff-quality-gate.md +0 -132
  780. package/templates/skills/business-analyse-develop/references/init-resume-recovery.md +0 -183
  781. package/templates/skills/business-analyse-develop/references/module-transition.md +0 -246
  782. package/templates/skills/business-analyse-develop/references/multi-module-queue.md +0 -171
  783. package/templates/skills/business-analyse-develop/references/parallel-execution.md +0 -246
  784. package/templates/skills/business-analyse-develop/references/prd-v3-transformation.md +0 -326
  785. package/templates/skills/business-analyse-develop/references/quality-gates.md +0 -160
  786. package/templates/skills/business-analyse-develop/references/report-reconciliation.md +0 -140
  787. package/templates/skills/business-analyse-develop/references/report-template.md +0 -142
  788. package/templates/skills/business-analyse-develop/references/section-splitting.md +0 -439
  789. package/templates/skills/business-analyse-develop/references/task-transform-legacy.md +0 -256
  790. package/templates/skills/business-analyse-develop/references/team-orchestration.md +0 -547
  791. package/templates/skills/business-analyse-develop/steps/step-00-init.md +0 -242
  792. package/templates/skills/business-analyse-develop/steps/step-01-task.md +0 -182
  793. package/templates/skills/business-analyse-develop/steps/step-01-v4-execute.md +0 -139
  794. package/templates/skills/business-analyse-develop/steps/step-02-execute.md +0 -216
  795. package/templates/skills/business-analyse-develop/steps/step-02-v4-verify.md +0 -176
  796. package/templates/skills/business-analyse-develop/steps/step-03-commit.md +0 -107
  797. package/templates/skills/business-analyse-develop/steps/step-04-check.md +0 -419
  798. package/templates/skills/business-analyse-develop/steps/step-05-report.md +0 -137
  799. package/templates/skills/business-analyse-handoff/SKILL.md +0 -101
  800. package/templates/skills/business-analyse-handoff/references/acceptance-criteria.md +0 -318
  801. package/templates/skills/business-analyse-handoff/references/agent-handoff-transform-prompt.md +0 -211
  802. package/templates/skills/business-analyse-handoff/references/context-isolation-pattern.md +0 -47
  803. package/templates/skills/business-analyse-handoff/references/entity-canonicalization.md +0 -158
  804. package/templates/skills/business-analyse-handoff/references/entity-domain-mapping.md +0 -115
  805. package/templates/skills/business-analyse-handoff/references/handoff-file-inventory.md +0 -49
  806. package/templates/skills/business-analyse-handoff/references/handoff-file-templates.md +0 -197
  807. package/templates/skills/business-analyse-handoff/references/handoff-global-validation.md +0 -142
  808. package/templates/skills/business-analyse-handoff/references/handoff-mappings.md +0 -108
  809. package/templates/skills/business-analyse-handoff/references/handoff-seeddata-generation.md +0 -314
  810. package/templates/skills/business-analyse-handoff/references/prd-generation.md +0 -362
  811. package/templates/skills/business-analyse-handoff/references/prd-validation-checks.md +0 -125
  812. package/templates/skills/business-analyse-handoff/references/project-index-update.md +0 -98
  813. package/templates/skills/business-analyse-handoff/references/readiness-scoring.md +0 -95
  814. package/templates/skills/business-analyse-handoff/schemas/handoff-schema.json +0 -95
  815. package/templates/skills/business-analyse-handoff/steps/step-00-validate.md +0 -158
  816. package/templates/skills/business-analyse-handoff/steps/step-01-transform.md +0 -85
  817. package/templates/skills/business-analyse-handoff/steps/step-02-export.md +0 -169
  818. package/templates/skills/business-analyse-handoff/templates/tpl-progress.md +0 -172
  819. package/templates/skills/business-analyse-html/SKILL.md +0 -89
  820. package/templates/skills/business-analyse-html/html/ba-interactive.html +0 -6134
  821. package/templates/skills/business-analyse-html/html/build-html.js +0 -137
  822. package/templates/skills/business-analyse-html/html/src/partials/cadrage-context.html +0 -34
  823. package/templates/skills/business-analyse-html/html/src/partials/cadrage-scope.html +0 -27
  824. package/templates/skills/business-analyse-html/html/src/partials/cadrage-stakeholders.html +0 -55
  825. package/templates/skills/business-analyse-html/html/src/partials/cadrage-success.html +0 -34
  826. package/templates/skills/business-analyse-html/html/src/partials/consol-datamodel.html +0 -8
  827. package/templates/skills/business-analyse-html/html/src/partials/consol-flows.html +0 -29
  828. package/templates/skills/business-analyse-html/html/src/partials/consol-interactions.html +0 -8
  829. package/templates/skills/business-analyse-html/html/src/partials/consol-permissions.html +0 -8
  830. package/templates/skills/business-analyse-html/html/src/partials/decomp-dependencies.html +0 -38
  831. package/templates/skills/business-analyse-html/html/src/partials/decomp-modules.html +0 -43
  832. package/templates/skills/business-analyse-html/html/src/partials/handoff-summary.html +0 -24
  833. package/templates/skills/business-analyse-html/html/src/partials/module-spec-container.html +0 -4
  834. package/templates/skills/business-analyse-html/html/src/scripts/01-data-init.js +0 -313
  835. package/templates/skills/business-analyse-html/html/src/scripts/02-navigation.js +0 -316
  836. package/templates/skills/business-analyse-html/html/src/scripts/03-render-cadrage.js +0 -162
  837. package/templates/skills/business-analyse-html/html/src/scripts/04-render-modules.js +0 -203
  838. package/templates/skills/business-analyse-html/html/src/scripts/05-render-specs.js +0 -866
  839. package/templates/skills/business-analyse-html/html/src/scripts/06-render-consolidation.js +0 -196
  840. package/templates/skills/business-analyse-html/html/src/scripts/06-render-mockups.js +0 -564
  841. package/templates/skills/business-analyse-html/html/src/scripts/07-render-handoff.js +0 -108
  842. package/templates/skills/business-analyse-html/html/src/scripts/08-editing.js +0 -137
  843. package/templates/skills/business-analyse-html/html/src/scripts/09-export.js +0 -138
  844. package/templates/skills/business-analyse-html/html/src/scripts/10-comments.js +0 -221
  845. package/templates/skills/business-analyse-html/html/src/scripts/11-review-panel.js +0 -167
  846. package/templates/skills/business-analyse-html/html/src/scripts/12-render-diagrams.js +0 -162
  847. package/templates/skills/business-analyse-html/html/src/styles/01-variables.css +0 -38
  848. package/templates/skills/business-analyse-html/html/src/styles/02-layout.css +0 -216
  849. package/templates/skills/business-analyse-html/html/src/styles/03-navigation.css +0 -120
  850. package/templates/skills/business-analyse-html/html/src/styles/04-cards.css +0 -194
  851. package/templates/skills/business-analyse-html/html/src/styles/05-modules.css +0 -518
  852. package/templates/skills/business-analyse-html/html/src/styles/06-wireframes.css +0 -263
  853. package/templates/skills/business-analyse-html/html/src/styles/07-comments.css +0 -184
  854. package/templates/skills/business-analyse-html/html/src/styles/08-review-panel.css +0 -241
  855. package/templates/skills/business-analyse-html/html/src/styles/09-mockups-html.css +0 -220
  856. package/templates/skills/business-analyse-html/html/src/styles/10-diagrams.css +0 -73
  857. package/templates/skills/business-analyse-html/html/src/template.html +0 -449
  858. package/templates/skills/business-analyse-html/references/02-embedded-artifacts-building.md +0 -144
  859. package/templates/skills/business-analyse-html/references/02-feature-data-building.md +0 -143
  860. package/templates/skills/business-analyse-html/references/02-mapping-tables.md +0 -442
  861. package/templates/skills/business-analyse-html/references/02-normalization-helpers.md +0 -139
  862. package/templates/skills/business-analyse-html/references/02-screen-format-detection.md +0 -283
  863. package/templates/skills/business-analyse-html/references/02-self-check-validation.md +0 -199
  864. package/templates/skills/business-analyse-html/references/data-build.md +0 -215
  865. package/templates/skills/business-analyse-html/references/data-mapping.md +0 -452
  866. package/templates/skills/business-analyse-html/references/output-modes.md +0 -119
  867. package/templates/skills/business-analyse-html/references/wireframe-svg-style-guide.md +0 -335
  868. package/templates/skills/business-analyse-html/steps/step-01-collect.md +0 -140
  869. package/templates/skills/business-analyse-html/steps/step-02-build-data.md +0 -76
  870. package/templates/skills/business-analyse-html/steps/step-03-render.md +0 -95
  871. package/templates/skills/business-analyse-html/steps/step-04-verify.md +0 -224
  872. package/templates/skills/business-analyse-quick/SKILL.md +0 -807
  873. package/templates/skills/business-analyse-quick/references/domain-heuristics.md +0 -172
  874. package/templates/skills/business-analyse-quick/references/prd-schema.md +0 -268
  875. package/templates/skills/business-analyse-review/SKILL.md +0 -71
  876. package/templates/skills/business-analyse-review/references/review-data-mapping.md +0 -367
  877. package/templates/skills/business-analyse-review/steps/step-00-init.md +0 -111
  878. package/templates/skills/business-analyse-review/steps/step-01-apply.md +0 -304
  879. package/templates/skills/business-analyse-status/SKILL.md +0 -136
  880. package/templates/skills/cc-agent/SKILL.md +0 -129
  881. package/templates/skills/cc-agent/references/agent-behavior-patterns.md +0 -95
  882. package/templates/skills/cc-agent/references/agent-frontmatter.md +0 -213
  883. package/templates/skills/cc-agent/references/permission-modes.md +0 -102
  884. package/templates/skills/cc-agent/references/tools-reference.md +0 -144
  885. package/templates/skills/cc-agent/steps/step-00-init.md +0 -134
  886. package/templates/skills/cc-agent/steps/step-01-design.md +0 -186
  887. package/templates/skills/cc-agent/steps/step-02-generate.md +0 -131
  888. package/templates/skills/cc-agent/steps/step-03-validate.md +0 -130
  889. package/templates/skills/cc-agent/templates/agent-categorized.md +0 -67
  890. package/templates/skills/cc-agent/templates/agent-standalone.md +0 -56
  891. package/templates/skills/cc-agent/templates/agent-with-skills.md +0 -94
  892. package/templates/skills/cc-audit/SKILL.md +0 -108
  893. package/templates/skills/cc-audit/references/agent-checklist.md +0 -91
  894. package/templates/skills/cc-audit/references/hook-checklist.md +0 -110
  895. package/templates/skills/cc-audit/references/skill-checklist.md +0 -70
  896. package/templates/skills/cc-audit/steps/step-00-init.md +0 -98
  897. package/templates/skills/cc-audit/steps/step-01-scan.md +0 -142
  898. package/templates/skills/cc-audit/steps/step-02-analyze.md +0 -158
  899. package/templates/skills/cc-audit/steps/step-03-report.md +0 -142
  900. package/templates/skills/cc-skill/SKILL.md +0 -134
  901. package/templates/skills/cc-skill/references/best-practices.md +0 -167
  902. package/templates/skills/cc-skill/references/frontmatter-reference.md +0 -182
  903. package/templates/skills/cc-skill/references/skill-patterns.md +0 -199
  904. package/templates/skills/cc-skill/steps/step-00-init.md +0 -119
  905. package/templates/skills/cc-skill/steps/step-01-design.md +0 -199
  906. package/templates/skills/cc-skill/steps/step-02-generate.md +0 -145
  907. package/templates/skills/cc-skill/steps/step-03-steps.md +0 -151
  908. package/templates/skills/cc-skill/steps/step-04-validate.md +0 -124
  909. package/templates/skills/cc-skill/templates/skill-forked.md +0 -85
  910. package/templates/skills/cc-skill/templates/skill-progressive.md +0 -102
  911. package/templates/skills/cc-skill/templates/skill-simple.md +0 -75
  912. package/templates/skills/cc-skill/templates/step-template.md +0 -82
  913. package/templates/skills/controller/SKILL.md +0 -162
  914. package/templates/skills/controller/postman-templates.md +0 -614
  915. package/templates/skills/controller/references/controller-code-templates.md +0 -162
  916. package/templates/skills/controller/references/mcp-scaffold-workflow.md +0 -237
  917. package/templates/skills/controller/references/permission-sync-templates.md +0 -149
  918. package/templates/skills/controller/steps/step-00-init.md +0 -193
  919. package/templates/skills/controller/steps/step-01-analyze.md +0 -152
  920. package/templates/skills/controller/steps/step-02-plan.md +0 -176
  921. package/templates/skills/controller/steps/step-03-generate.md +0 -189
  922. package/templates/skills/controller/steps/step-04-perms.md +0 -80
  923. package/templates/skills/controller/steps/step-05-validate.md +0 -107
  924. package/templates/skills/controller/templates.md +0 -1556
  925. package/templates/skills/debug/SKILL.md +0 -70
  926. package/templates/skills/debug/references/team-protocol.md +0 -232
  927. package/templates/skills/debug/steps/step-00-init.md +0 -57
  928. package/templates/skills/debug/steps/step-01-analyze.md +0 -219
  929. package/templates/skills/debug/steps/step-02-resolve.md +0 -85
  930. package/templates/skills/efcore/references/database-operations.md +0 -66
  931. package/templates/skills/efcore/references/reset-operations.md +0 -81
  932. package/templates/skills/efcore/references/seed-methods.md +0 -86
  933. package/templates/skills/efcore/references/shared-init-functions.md +0 -250
  934. package/templates/skills/efcore/references/sql-objects-injection.md +0 -19
  935. package/templates/skills/efcore/references/troubleshooting.md +0 -81
  936. package/templates/skills/efcore/references/zero-downtime-patterns.md +0 -229
  937. package/templates/skills/explore/SKILL.md +0 -98
  938. package/templates/skills/feature-full/SKILL.md +0 -111
  939. package/templates/skills/feature-full/steps/step-00-init.md +0 -57
  940. package/templates/skills/feature-full/steps/step-01-implementation.md +0 -133
  941. package/templates/skills/gitflow/phases/abort.md +0 -189
  942. package/templates/skills/gitflow/phases/cleanup.md +0 -264
  943. package/templates/skills/gitflow/phases/status.md +0 -192
  944. package/templates/skills/gitflow/references/commit-message-generation.md +0 -58
  945. package/templates/skills/gitflow/references/commit-migration-validation.md +0 -53
  946. package/templates/skills/gitflow/references/finish-cleanup.md +0 -55
  947. package/templates/skills/gitflow/references/finish-version-bumping.md +0 -45
  948. package/templates/skills/gitflow/references/init-config-template.md +0 -143
  949. package/templates/skills/gitflow/references/init-environment-detection.md +0 -41
  950. package/templates/skills/gitflow/references/init-name-normalization.md +0 -118
  951. package/templates/skills/gitflow/references/init-questions.md +0 -193
  952. package/templates/skills/gitflow/references/init-structure-creation.md +0 -75
  953. package/templates/skills/gitflow/references/init-version-detection.md +0 -23
  954. package/templates/skills/gitflow/references/init-workspace-detection.md +0 -43
  955. package/templates/skills/gitflow/references/merge-ci-status.md +0 -36
  956. package/templates/skills/gitflow/references/merge-execution.md +0 -62
  957. package/templates/skills/gitflow/references/merge-pr-context.md +0 -76
  958. package/templates/skills/gitflow/references/plan-template.md +0 -69
  959. package/templates/skills/gitflow/references/pr-build-checks.md +0 -60
  960. package/templates/skills/gitflow/references/pr-generation.md +0 -58
  961. package/templates/skills/gitflow/references/start-branch-normalization.md +0 -28
  962. package/templates/skills/gitflow/references/start-efcore-preflight.md +0 -70
  963. package/templates/skills/gitflow/references/start-local-config.md +0 -113
  964. package/templates/skills/gitflow/references/start-worktree-creation.md +0 -50
  965. package/templates/skills/gitflow/references/sync-push-verify.md +0 -44
  966. package/templates/skills/gitflow/references/sync-rebase-conflicts.md +0 -38
  967. package/templates/skills/gitflow/steps/step-commit.md +0 -199
  968. package/templates/skills/gitflow/steps/step-finish.md +0 -147
  969. package/templates/skills/gitflow/steps/step-init.md +0 -230
  970. package/templates/skills/gitflow/steps/step-merge.md +0 -85
  971. package/templates/skills/gitflow/steps/step-plan.md +0 -151
  972. package/templates/skills/gitflow/steps/step-pr.md +0 -247
  973. package/templates/skills/gitflow/steps/step-start.md +0 -195
  974. package/templates/skills/gitflow/steps/step-sync.md +0 -161
  975. package/templates/skills/gitflow/templates/config.json +0 -72
  976. package/templates/skills/mcp/SKILL.md +0 -62
  977. package/templates/skills/mcp/steps/step-01-healthcheck.md +0 -108
  978. package/templates/skills/mcp/steps/step-02-tools.md +0 -73
  979. package/templates/skills/migrate/SKILL.md +0 -312
  980. package/templates/skills/migrate/references/v3.34-to-v3.46.md +0 -289
  981. package/templates/skills/notification/SKILL.md +0 -173
  982. package/templates/skills/refactor/SKILL.md +0 -56
  983. package/templates/skills/refactor/steps/step-01-discover.md +0 -60
  984. package/templates/skills/refactor/steps/step-02-execute.md +0 -67
  985. package/templates/skills/review-code/SKILL.md +0 -95
  986. package/templates/skills/review-code/references/clean-code-principles.md +0 -292
  987. package/templates/skills/review-code/references/code-quality-metrics.md +0 -174
  988. package/templates/skills/review-code/references/feedback-patterns.md +0 -149
  989. package/templates/skills/review-code/references/owasp-api-top10.md +0 -243
  990. package/templates/skills/review-code/references/security-checklist.md +0 -212
  991. package/templates/skills/review-code/references/smartstack-conventions.md +0 -568
  992. package/templates/skills/review-code/steps/step-01-smartstack.md +0 -96
  993. package/templates/skills/review-code/steps/step-02-detailed-review.md +0 -80
  994. package/templates/skills/review-code/steps/step-03-react.md +0 -44
  995. package/templates/skills/sketch/SKILL.md +0 -34
  996. package/templates/skills/ui-components/accessibility.md +0 -170
  997. package/templates/skills/ui-components/patterns/dashboard-chart.md +0 -327
  998. package/templates/skills/ui-components/patterns/data-table.md +0 -175
  999. package/templates/skills/ui-components/patterns/entity-card.md +0 -77
  1000. package/templates/skills/ui-components/patterns/grid-layout.md +0 -91
  1001. package/templates/skills/ui-components/patterns/kanban.md +0 -43
  1002. package/templates/skills/ui-components/references/component-catalog.md +0 -82
  1003. package/templates/skills/ui-components/responsive-guidelines.md +0 -278
  1004. package/templates/skills/ui-components/style-guide.md +0 -113
  1005. package/templates/skills/validate/SKILL.md +0 -181
  1006. package/templates/skills/workflow/SKILL.md +0 -196
  1007. package/templates/skills/workflow/steps/step-00-init.md +0 -57
  1008. package/templates/skills/workflow/steps/step-01-implementation.md +0 -84
@@ -1,986 +0,0 @@
1
- ---
2
- name: step-03-specify
3
- description: Sequential deep dive per module - entities, BRs, UCs, permissions
4
- model: opus
5
- next_step: steps/step-04-consolidate.md
6
- ---
7
-
8
- # Step 03 — Specify (Deep Dive per Module)
9
-
10
- ## Objective
11
-
12
- For each module (in dependency order), produce complete specifications: entities, business rules, use cases, and permissions. Interface specs (screens, wireframes, navigation) are handled by Phase 2 (`/business-analyse-design`).
13
-
14
- ## Context Recovery
15
-
16
- Re-read session variables from `.business-analyse/config.json`:
17
- ```javascript
18
- const config = readJSON('.business-analyse/config.json').currentFeature;
19
- const { id: feature_id, docsDir: docs_dir, projectSlug, application: application_name,
20
- applicationCode, workflowMode: workflow_mode, language } = config;
21
-
22
- // Path helpers (ba-006)
23
- function toKebabCase(code) {
24
- return code.replace(/([a-z0-9])([A-Z])/g, '$1-$2').replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2').toLowerCase();
25
- }
26
- function resolveModuleDir(appCode, moduleCode) {
27
- return `${docs_dir}/${toKebabCase(appCode)}/${toKebabCase(moduleCode)}`;
28
- }
29
- ```
30
-
31
- > **Module directory (ba-006):** `mod.dir = resolveModuleDir(applicationCode, module.code)`
32
- > Example: `docs/projet-rh/v1.0/human-resources/employees/`
33
-
34
- ## ENFORCEMENT LANGUE (OBLIGATOIRE)
35
-
36
- Toutes les valeurs textuelles générées dans les fichiers JSON de ce module DOIVENT être rédigées en `{language}` :
37
-
38
- | Champ JSON | Langue | Exemple FR | Exemple EN |
39
- |------------|--------|-----------|-----------|
40
- | entity.description | `{language}` | "Représente un employé" | "Represents an employee" |
41
- | attribute.description | `{language}` | "Code unique de l'employé" | "Unique employee code" |
42
- | rule.statement | `{language}` | "Le code doit être unique" | "Code must be unique" |
43
- | rule.examples[].input | `{language}` | "code='EMP-001', doublon" | "code='EMP-001', duplicate" |
44
- | rule.examples[].expected | `{language}` | "Erreur : code déjà existant" | "Error: code already exists" |
45
- | usecase.name | `{language}` | "Créer un employé" | "Create employee" |
46
- | usecase.mainScenario[] | `{language}` | "L'utilisateur ouvre la page" | "User opens the page" |
47
- | usecase.preconditions[] | `{language}` | "L'utilisateur est connecté" | "User is logged in" |
48
- | permission.description | `{language}` | "Consulter la liste" | "View the list" |
49
-
50
- **Identifiants techniques** (PascalCase) restent en anglais : `Employee`, `AbsenceBalance`, `status`, `BR-VAL-EMP-001`.
51
-
52
- **VIOLATION = contenu rejeté à la consolidation (step-04).**
53
-
54
- ## Prerequisites
55
-
56
- - Step 02 (structure) completed
57
- - Applications, modules, sections, dependencies identified
58
-
59
- ## Scope Verification (BLOCKING — before any module processing)
60
-
61
- Re-read `.business-analyse/config.json` and verify scope has not drifted:
62
-
63
- ```javascript
64
- const config = readJSON('.business-analyse/config.json').currentFeature;
65
- const expectedApps = config.candidateApplications?.length || 1;
66
- const confirmedModules = /* read from step-02 output: application index.json modules[] */;
67
-
68
- // BLOCKING if scope drifted
69
- if (config.workflowMode === "project") {
70
- const appIndexFiles = GLOB(`${config.docsDir}/*/index.json`);
71
- if (appIndexFiles.length > expectedApps) {
72
- BLOCKING_ERROR(`Scope drift: expected ${expectedApps} applications but found ${appIndexFiles.length}`);
73
- }
74
- }
75
-
76
- // Log confirmed scope for traceability
77
- Display(`Scope locked: ${expectedApps} app(s), ${confirmedModules.length} module(s)`);
78
- ```
79
-
80
- ## INTERDICTIONS ABSOLUES (step-03)
81
-
82
- +==============================================================================+
83
- | INTERDICTIONS — Violation = analyse invalide |
84
- +==============================================================================+
85
- | |
86
- | 1. JAMAIS lancer ba-writer pour un module AVANT validation client |
87
- | des entites, regles, use cases ET permissions de ce module. |
88
- | |
89
- | 2. JAMAIS lancer des ba-writer en PARALLELE pour des modules differents. |
90
- | Chaque module est traite SEQUENTIELLEMENT avec interaction client. |
91
- | |
92
- | 3. JAMAIS persister des entites, regles, volumetries, filtres |
93
- | ou notifications sans VALIDATION CLIENT (confirmation du lot propose). |
94
- | L'auto-deduction avec confirmation groupee est une validation valide. |
95
- | |
96
- | 4. JAMAIS sauter la VALIDATION CLIENT meme si le domaine semble "evident". |
97
- | Auto-deduction + confirmation groupee = OK. Pas de confirmation = KO. |
98
- | |
99
- | 5. SUBAGENT DISCIPLINE : |
100
- | - MAX 1 ba-writer par module (ecriture finale apres validation) |
101
- | - Total ba-writer pour step-03 = nombre_de_modules (pas plus) |
102
- | - INTERDICTION de spawner des ba-writer pour des modules NON encore |
103
- | valides par le client |
104
- | |
105
- | 6. JAMAIS "accelerer" en batchant des modules dans des sub-agents. |
106
- | Sub-agents (Agent/Snipper) n'ont PAS acces au schema JSON canonique. |
107
- | PREUVE: audit ba-012 → 4 dialectes JSON, conformite 95% → 35%. |
108
- | Si > 10 modules: maintenir le sequentiel, le retravail coute plus. |
109
- | |
110
- +==============================================================================+
111
-
112
- ## Sequential Execution
113
-
114
- **No team mode.** Each module receives 100% of LLM attention for maximum specification quality.
115
-
116
- Process **application by application**, modules in dependency order within each app:
117
-
118
- ```
119
- IF workflow_mode = "project" (multi-app):
120
- // Group by application first, then topological sort within each app
121
- // Cross-app dependencies: if Module A (App1) depends on Module B (App2),
122
- // App2 must be processed before App1. Adjust application order accordingly.
123
-
124
- applicationOrder = resolveApplicationOrder(modules, dependencies)
125
- // e.g., [Rh, Crm, GestionDeProjet, Facturation, Portal]
126
-
127
- For EACH application in applicationOrder:
128
- Display application banner:
129
- ═══════════════════════════════════════════════════════
130
- APPLICATION {appIndex}/{appTotal} : {appName}
131
- ═══════════════════════════════════════════════════════
132
-
133
- appModules = modules.filter(m => m.applicationCode === app.code)
134
- sortedAppModules = topologicalSort(appModules)
135
-
136
- For EACH module in sortedAppModules:
137
- specify(module) // Full cycle: A-bis → A-ter → B → C-pre → C → D → E → F → H
138
-
139
- ELSE (single-app):
140
- For module in topologicalSort(modules):
141
- specify(module)
142
- ```
143
-
144
- ## Per-Module Specification Loop — STRICT MODE
145
-
146
- ### VALIDATION MINIMALE (per module — ba-009 fix)
147
-
148
- Chaque module metier (hors Portal et config) requiert AU MINIMUM 2 AskUserQuestion :
149
- 1. Entites (B-ter) : "Voici les entites pour {module}. Corrections ?"
150
- 2. Regles + UCs + Permissions (C-bis + E-ter groupes) : "Voici les regles, UCs et permissions pour {module}. Corrections ?"
151
-
152
- Exceptions :
153
- - Modules **Portal** (read-only, 0 entites propres) : 1 validation groupee suffit.
154
- - Modules **config/lookup** (< 2 entites) : 1 validation groupee suffit.
155
-
156
- **INTERDICTION** de tout bundler en 1 seule question "Module complet, validez-vous ?" pour les modules metier.
157
-
158
- For each module (in topological order), execute the complete cycle below.
159
-
160
- ### Banniere de progression
161
-
162
- Afficher au debut de chaque module :
163
- ```
164
- ═══════════════════════════════════════════════════════════════
165
- MODULE {index}/{total} : {moduleName} ({applicationName})
166
- ═══════════════════════════════════════════════════════════════
167
- ```
168
-
169
- Execute these sub-steps for the current module:
170
-
171
- ### A. Context Loading
172
-
173
- Load via ba-reader:
174
- - Module's `index.json` (if exists from previous run)
175
- - Application `cadrage.json` for stakeholder context (including `_preAnalysis.domain_research`)
176
- - Completed modules' summaries (compact, <100 lines each)
177
-
178
- ### A-bis. Module Domain Research (MANDATORY for modules with >= 2 entities)
179
-
180
- > **MANDATORY — BLOCKING** pour les modules metier (>= 2 entites).
181
- > SKIP ONLY: Portal (0 entites propres), config (1 entite reference pure).
182
- > Uses domain_research from step-01 as baseline, then does targeted searches for this specific module.
183
- > → **Load** `references/domain-research-playbook.md` Level 2 for per-module search strategy.
184
- > Si WebSearch indisponible: s'appuyer sur `references/module-completeness-challenge.md` comme fallback.
185
-
186
- ```
187
- IF module is Portal OR (module has exactly 1 config/lookup entity):
188
- → SKIP WebSearch (use step-01 domain_research only)
189
- ELSE:
190
- SHOULD WebSearch: "{module_domain} entity data model best practices"
191
- (e.g., "invoice entity design ERP", "timesheet data model best practices")
192
-
193
- IF cadrage._preAnalysis.domain_research exists:
194
- → Load as baseline complement
195
-
196
- OPTIONAL: FOR complex entities (max 1-2 additional searches):
197
- Query: "{entity_name} entity design pattern {domain}"
198
-
199
- EXTRACT (ULTRATHINK — internal only):
200
- - Standard attributes for this entity type
201
- - Common relationships and cardinality
202
- - Versioned vs. inline data patterns (e.g., salary history)
203
- - Workflow states if applicable
204
- - Known anti-patterns to avoid
205
-
206
- CROSS-CHECK against SmartStack conventions (B-bis rules):
207
- - Would this entity trigger Person Extension Pattern?
208
- - Are there attributes that should be versioned (salary, rate)?
209
- - Does this entity already exist in the SmartStack socle DB?
210
- ```
211
-
212
- > **CRITICAL:** This research informs entity design but does NOT override SmartStack conventions.
213
- > If web research suggests putting firstName on Employee, the B-bis guard still blocks it
214
- > because SmartStack uses auth_Users for personal data.
215
-
216
- **TRACK 2 — Section & View Completeness (MANDATORY):**
217
-
218
- ```
219
- WebSearch: "{module_domain} management system features views screens UX"
220
- (e.g., "absence management system features views screens",
221
- "invoice management application features views UX")
222
-
223
- EXTRACT (ULTRATHINK — internal only):
224
- - Standard views/sections for this module type
225
- - Contextual filtered views (open requests, rejected, my X, history)
226
- - Dashboard/reporting expectations
227
- - Standard UX patterns (approval queue, batch actions, etc.)
228
-
229
- CROSS-CHECK against anticipatedSections from step-02:
230
- - List sections found in research but NOT in anticipatedSections
231
- - For each missing section: prepare proposal for A-ter validation
232
- ```
233
-
234
- ### A-ter. Section Completeness Validation (MANDATORY)
235
-
236
- > **Ensure this module has all the sections a user would expect.**
237
- > Workflow modules without contextual views (open-requests, rejected, history) are incomplete.
238
- > → **Load** `references/module-completeness-challenge.md` for section archetypes per pattern.
239
-
240
- Compare module's `anticipatedSections` against:
241
- 1. Domain research (Track 2 above)
242
- 2. Module archetype from `module-completeness-challenge.md`
243
- 3. Section archetypes per module pattern (workflow vs data-centric)
244
-
245
- Display comparison table:
246
- ```
247
- ### Sections pour {moduleName}
248
-
249
- | Section actuelle | Section standard (recherche/archetype) | Statut |
250
- |-----------------|---------------------------------------|--------|
251
- | list | list | ✓ OK |
252
- | detail | detail | ✓ OK |
253
- | approve | approve | ✓ OK |
254
- | calendar | calendar | ✓ OK |
255
- | — | open-requests | ✗ MANQUANTE — vue filtree des demandes en attente |
256
- | — | rejected | ✗ MANQUANTE — vue filtree des demandes rejetees |
257
- | — | history | ✗ MANQUANTE — historique des absences passees |
258
- | — | my-balance | ✗ MANQUANTE — solde personnel de l'employe |
259
- ```
260
-
261
- AskUserQuestion (multiSelect: true):
262
- ```
263
- question: "{language == 'fr'
264
- ? 'Voici les sections standards trouvees pour un module {moduleType}. Quelles sections manquantes souhaitez-vous ajouter ?'
265
- : 'Here are the standard sections found for a {moduleType} module. Which missing sections would you like to add?'}"
266
- header: "Sections {moduleName}"
267
- multiSelect: true
268
- options:
269
- - For each missing section: label: "{section_code}", description: "{description}"
270
- - label: "{language == 'fr' ? 'Aucune' : 'None'}"
271
- description: "{language == 'fr' ? 'Garder les sections actuelles' : 'Keep current sections'}"
272
- ```
273
-
274
- Update `anticipatedSections` with accepted additions. For each added section:
275
- - Determine `sectionType` (functional for filtered views, embedded for dashboards)
276
- - Determine `permissionMode` (read-only for history/reporting, custom for approval queues)
277
- - Add appropriate resources
278
-
279
- ### B. Entities
280
-
281
- For each entity identified in step 02:
282
-
283
- > → **Load** `references/03-json-schemas.md` section "Entity Schema Format" for the canonical JSON format.
284
-
285
- ### B-bis. SmartStack Entity Convention Guards (MANDATORY)
286
-
287
- > → **Load** `references/03-smartstack-entity-guards.md` for all convention rules before finalizing each entity.
288
-
289
- ### B-ter. Client Validation — Entities (OBLIGATOIRE)
290
-
291
- **Mode : Auto-déduction + Confirmation groupée**
292
-
293
- > L'IA propose les entités basées sur le cadrage + recherche domaine (A-bis).
294
- > Le client valide PAR LOT au lieu de répondre aux questions individuellement.
295
- > Les questions détaillées (Q3.1-Q3.5) ne sont posées QUE si le cadrage est ambigu.
296
-
297
- 1. **Construire la proposition d'entités** à partir de :
298
- - `cadrage.json` (coverageMatrix, stakeholders, globalScope)
299
- - Recherche domaine (A-bis : standard attributes, versioning patterns)
300
- - Modules déjà spécifiés (dépendances, entités partagées)
301
-
302
- 2. **Présenter la proposition COMPLÈTE** (markdown PUIS AskUserQuestion) :
303
- ```
304
- ### Entités proposées pour {moduleName}
305
-
306
- | Entité | Attributs clés | Relations | Volume estimé |
307
- |--------|---------------|-----------|---------------|
308
- | {entity} | {top 5 attrs with flags} | {relations} | {monthly/total} |
309
- ```
310
- AskUserQuestion : "Voici les entités que je propose pour {moduleName}. Corrections ?"
311
-
312
- 3. SI le client corrige → intégrer et re-présenter
313
- 4. SI le client valide → continuer vers C
314
-
315
- 5. **SI le cadrage est ambigu** sur un point spécifique → poser la question ciblée :
316
- - Q3.1 si les entités ne sont pas claires
317
- - Q3.5 si la stratégie de code est ambiguë
318
-
319
- 6. APRES validation entites, AVANT passage aux regles (C) — poser en 2 batches max :
320
-
321
- **Batch recherche/filtres** (Q3.19 + Q3.20) :
322
- - Q3.19 : "Par quels criteres cherchez-vous un {entite} ? (nom, date, statut, code...)"
323
- - Q3.20 : "Quels filtres rapides sont indispensables dans la liste ?"
324
-
325
- **RACCOURCI module 3+ :** Proposer "Meme logique de recherche/filtres que {module_precedent} ?"
326
- → Si le client confirme, copier searchableFields et defaultFilters du module precedent.
327
- → Sinon, poser les questions normalement.
328
-
329
- **SKIP si:** module Portal (pas d'entites propres) ou module config (filtres evidents : name, code).
330
-
331
- INTERDICTION de passer à C (Business Rules) tant que le client n'a pas validé les entités ET les champs recherche/filtres.
332
-
333
- ### C. Business Rules
334
-
335
- For each entity/process, identify rules. **Each rule MUST specify `sectionCode`** matching a code from `anticipatedSections[]`:
336
-
337
- > → **Load** `references/03-json-schemas.md` section "Business Rules Schema Format" for the canonical JSON format and all validation requirements.
338
-
339
- ### C-pre. Business Rules Domain Research (MANDATORY for workflow modules)
340
-
341
- > **Domain-specific business rules are what separate a 2/10 analysis from a 9/10 analysis.**
342
- > Generic rules (date coherence, required fields) are the MINIMUM. Domain rules are the VALUE.
343
- > → **Load** `references/module-completeness-challenge.md` for domain-specific rule examples.
344
-
345
- ```
346
- IF module has workflow states OR approval patterns:
347
- WebSearch: "{module_domain} business rules constraints validation best practices"
348
- (e.g., "absence leave management business rules HR constraints",
349
- "invoice billing business rules validation constraints",
350
- "CRM opportunity management business rules")
351
-
352
- EXTRACT (ULTRATHINK — internal only):
353
- - Domain-specific validation rules (NOT just date coherence / required fields)
354
- - Calculation rules with formulas
355
- - Workflow constraints (capacity limits, notice periods, deadlines)
356
- - Edge cases (half-day, probation, carry-over, expiry, partial payments)
357
- - Regulatory constraints (legal leave types, mandatory approvals, numbering)
358
- - Separation of duties rules (cannot approve own request)
359
-
360
- CROSS-CHECK proposed rules (from B-ter entity analysis):
361
- For each rule found in research but NOT already proposed:
362
- → Add to proposal with source: "domain-research"
363
- → Category: detected category (VAL, CALC, WF, SEC, DATA)
364
- → Mark with domainSpecific: true
365
-
366
- Example enrichments for Absences module:
367
- Current generic rules: date coherence, no overlap, balance check, workflow transitions
368
- Research-based additions:
369
- - BR-VAL-ABS-004: "Half-day absence (morning/afternoon)" [domainSpecific]
370
- - BR-VAL-ABS-005: "Minimum 48h notice for planned absences" [domainSpecific]
371
- - BR-VAL-ABS-006: "Max 30% of team can be absent simultaneously" [domainSpecific]
372
- - BR-VAL-ABS-007: "Restricted leave types during probation period" [domainSpecific]
373
- - BR-DATA-ABS-001: "Carry-over days expire after March 31" [domainSpecific]
374
- - BR-VAL-ABS-008: "Medical certificate required for absences > 3 days" [domainSpecific]
375
- - BR-SEC-ABS-001: "Manager cannot approve their own absences" [domainSpecific]
376
-
377
- ELSE (non-workflow module with >= 2 entities):
378
- SHOULD WebSearch: "{module_domain} data validation rules best practices"
379
- → Use entity patterns from A-bis for validation rules
380
- → Load archetype rules from module-completeness-challenge.md
381
- → For each archetype rule relevant to this module type, ADD to proposal
382
- → Mark rules from research with domainSpecific: true
383
- ```
384
-
385
- ### C-bis. Client Validation — Business Rules (OBLIGATOIRE)
386
-
387
- **Mode : Auto-déduction + Confirmation groupée**
388
-
389
- 1. **Construire les règles métier** à partir de :
390
- - Entités validées en B-ter (attributs, types, contraintes)
391
- - Patterns domaine (A-bis) : validations standards, calculs attendus
392
- - Cadrage : errorFlows, processus décrits
393
-
394
- > **Schema:** ALL fields defined in `schemas/sections/analysis-schema.json` property `businessRules`. Use EXACT canonical field names (`id`, `name`, `category`, `statement`, `severity`, `entities`, `examples`, `sectionCode`, `domainSpecific`).
395
-
396
- **ENRICHISSEMENT OBLIGATOIRE pour chaque règle :**
397
-
398
- Pour chaque BR proposée, inclure ces champs :
399
- - `severity` : TOUJOURS spécifier (blocking/warning/info)
400
- - `sectionCode` : TOUJOURS spécifier (section où la règle s'applique)
401
- - `examples[]` : OBLIGATOIRE — format **test-ready** `{scenario, description, given, when, then}`
402
- Chaque exemple est un **jeu de test** avec des valeurs concrètes (pas de prose).
403
- Minimum **2 exemples** par règle : `happy_path` + `error` (ou `calculation` + `boundary`).
404
-
405
- **Format par catégorie :**
406
- - `validation` :
407
- ```json
408
- { "scenario": "happy_path", "description": "Code unique accepté",
409
- "given": { "Employee.code": "EMP-00042", "existingCodes": [] },
410
- "when": "create",
411
- "then": { "result": "success" } }
412
- { "scenario": "error", "description": "Code dupliqué rejeté",
413
- "given": { "Employee.code": "EMP-00001", "existingCodes": ["EMP-00001"] },
414
- "when": "create",
415
- "then": { "result": "error", "message": "Code déjà existant", "field": "code" } }
416
- ```
417
- - `calculation` :
418
- ```json
419
- { "scenario": "calculation", "description": "Solde avec report",
420
- "given": { "AbsenceBalance.entitled": 25, "AbsenceBalance.carriedForward": 3, "AbsenceBalance.taken": 12 },
421
- "when": "calculate_remaining",
422
- "then": { "AbsenceBalance.remaining": 16, "formula": "25 + 3 - 12 = 16" } }
423
- { "scenario": "boundary", "description": "Solde à zéro",
424
- "given": { "AbsenceBalance.entitled": 10, "AbsenceBalance.carriedForward": 0, "AbsenceBalance.taken": 10 },
425
- "when": "calculate_remaining",
426
- "then": { "AbsenceBalance.remaining": 0 } }
427
- ```
428
- - `workflow` :
429
- ```json
430
- { "scenario": "happy_path", "description": "Transition Draft→Submitted",
431
- "given": { "Absence.status": "Draft" },
432
- "when": "submit",
433
- "then": { "Absence.status": "Submitted", "result": "success" } }
434
- { "scenario": "error", "description": "Transition interdite Approved→Draft",
435
- "given": { "Absence.status": "Approved" },
436
- "when": "submit",
437
- "then": { "result": "error", "message": "Transition non autorisée" } }
438
- ```
439
- - `security` :
440
- ```json
441
- { "scenario": "happy_path", "description": "Admin accède à toutes les fiches",
442
- "given": { "user.role": "RH Admin", "Employee.departmentId": "any" },
443
- "when": "read",
444
- "then": { "result": "success", "scope": "all" } }
445
- { "scenario": "error", "description": "Employé accède uniquement à sa fiche",
446
- "given": { "user.role": "Employé", "target.employeeId": "other-user" },
447
- "when": "read",
448
- "then": { "result": "error", "message": "Accès limité à votre fiche" } }
449
- ```
450
- **Fallback** : `{input, expected}` accepté mais marqué WARNING "format non test-ready".
451
- - `conditions[]` : OBLIGATOIRE pour les règles conditionnelles (IF/THEN) — structuré `{entity, field, operator, value}`
452
- Ex: `[{ entity: "Absence", field: "type", operator: "==", value: "Maladie" }, { entity: "Absence", field: "duration", operator: ">", value: 3 }]`
453
- - `consequences[]` : OBLIGATOIRE pour les règles avec effets de bord
454
- Ex: `[{ type: "notification", target: "RH Manager", description: "Certificat médical requis" }]`
455
- - `formula` : OBLIGATOIRE pour les BR-CALC
456
- - `domainSpecific: true` si la règle vient de la recherche domaine (C-pre)
457
-
458
- **Minimums par module métier (hors Portal/config) :**
459
- - 100% des règles avec `examples[]` non vide (minimum 2 par règle : happy_path + error)
460
- - >= 4 règles avec exemples test-ready `{scenario, given, when, then}`
461
- - >= 2 règles avec `conditions[]` structurés
462
- - >= 1 règle avec `consequences[]`
463
- - Toute BR-CALC avec un exemple `calculation` contenant des valeurs numériques chiffrées
464
-
465
- **Self-check AVANT présentation client :**
466
- ```
467
- domainCount = rules.filter(r => r.domainSpecific === true).length
468
- IF domainCount < 2 AND module is NOT config/lookup/Portal:
469
- SELF-CHECK: "Only {domainCount} domain-specific rules."
470
- → Re-examine module-completeness-challenge.md archetypes for this module type
471
- → Add at least 2 domain-specific rules before presenting to client
472
- ```
473
-
474
- 2. **Présenter le LOT complet** (markdown PUIS AskUserQuestion) :
475
- ```
476
- ### Règles métier proposées pour {moduleName}
477
-
478
- | ID | Catégorie | Règle | Sévérité |
479
- |----|-----------|-------|----------|
480
- | BR-VAL-... | validation | {statement} | blocking |
481
- | BR-CALC-... | calculation | {statement} (formula: {formula}) | blocking |
482
- ```
483
- AskUserQuestion : "Voici les {N} règles métier pour {moduleName}. Manques/corrections ?"
484
-
485
- 3. SI le cadrage est ambigu → poser les questions ciblées :
486
- - Q3.7 si les validations ne sont pas claires
487
- - Q3.8 si les relations inter-champs sont complexes
488
- - Q3.9 si les données sensibles ne sont pas identifiées
489
-
490
- 4. **POST-VALIDATION : Qualité test-ready des exemples (OBLIGATOIRE)**
491
-
492
- Après validation client des règles métier, vérifier la qualité des exemples AVANT écriture :
493
-
494
- ```javascript
495
- // 1. Règles sans aucun exemple
496
- const rulesWithoutExamples = module.rules.filter(r =>
497
- !r.examples || r.examples.length === 0
498
- );
499
- if (rulesWithoutExamples.length > 0) {
500
- // Auto-générer des exemples test-ready à partir du statement et des conditions
501
- for (const rule of rulesWithoutExamples) {
502
- rule.examples = generateTestReadyExamples(rule);
503
- // Génère minimum: 1 happy_path + 1 error avec given/when/then
504
- }
505
- Display(`${rulesWithoutExamples.length} règle(s) complétée(s) avec exemples test-ready auto-générés.`);
506
- }
507
-
508
- // 2. Règles avec exemples en prose (ancien format {input, expected} sans given/when/then)
509
- const proseExamples = module.rules.filter(r =>
510
- r.examples?.length > 0 && !r.examples.some(e => e.given && e.when && e.then)
511
- );
512
- if (proseExamples.length > 0) {
513
- // Convertir les exemples prose en format test-ready
514
- for (const rule of proseExamples) {
515
- rule.examples = rule.examples.map(e => convertToTestReady(e, rule));
516
- }
517
- Display(`${proseExamples.length} règle(s) converties du format prose au format test-ready.`);
518
- }
519
-
520
- // 3. BR-CALC sans exemple chiffré
521
- const calcWithoutNumbers = module.rules.filter(r =>
522
- r.category === 'calculation' &&
523
- !r.examples?.some(e => e.scenario === 'calculation' || (e.then && Object.values(e.then).some(v => typeof v === 'number')))
524
- );
525
- if (calcWithoutNumbers.length > 0) {
526
- Display(`⚠ ${calcWithoutNumbers.length} BR-CALC sans exemple chiffré — ajouter des valeurs numériques.`);
527
- }
528
-
529
- // 4. Vérification minimale
530
- const testReady = module.rules.filter(r =>
531
- r.examples?.some(e => e.given && e.when && e.then)
532
- );
533
- if (testReady.length < 4 && module.featureType !== 'portal') {
534
- Display(`⚠ ${testReady.length}/4 règles au format test-ready {given, when, then}. Enrichir.`);
535
- }
536
- ```
537
-
538
- **Minimum requis par module métier (hors Portal/config) :**
539
- - 100% des règles avec `examples[]` non vide (minimum 2 par règle)
540
- - >= 4 règles avec exemples test-ready `{scenario, given, when, then}`
541
- - Toute BR-CALC avec un exemple `calculation` contenant des valeurs numériques
542
- - Zéro exemple en prose vague (tout doit être en format `given/when/then`)
543
-
544
- INTERDICTION de passer à D (Use Cases) tant que le client n'a pas validé les règles.
545
-
546
- ### D. Use Cases
547
-
548
- > **Note (v3) :** Les questions parcours/decisions/erreurs (ex-Q2.16-Q2.18) sont desormais capturees ICI
549
- > lors de la specification des use cases, et non plus en step-01 cadrage. Cela evite la duplication
550
- > et produit des donnees directement exploitables par module.
551
-
552
- **D-pre. Capture du parcours utilisateur (1 question par module si pertinent)**
553
-
554
- > Avant de construire les UCs, comprendre le parcours type pour CE module.
555
- > SKIP si le module est un module config/lookup ou Portal (pas de parcours propre).
556
-
557
- ```
558
- IF module is NOT config/lookup AND NOT Portal:
559
- AskUserQuestion (1 question):
560
- "{language == 'fr'
561
- ? 'Pour le module {moduleName} : décrivez le parcours typique. L\'utilisateur arrive, que fait-il ? Quand quelque chose ne se passe pas comme prévu, que se passe-t-il ?'
562
- : 'For the {moduleName} module: describe the typical journey. The user arrives, what do they do? When something doesn't go as planned, what happens?'}"
563
-
564
- Record answer as:
565
- - mainScenario steps → feed UC mainScenario
566
- - decision points → feed UC alternativeScenarios
567
- - error cases → feed UC errorScenarios + BR-WF rules
568
- ```
569
-
570
- For each stakeholder action. **Each use case MUST specify `sectionCode`** matching a code from `anticipatedSections[]` — this links the UC to the screen/page where it happens:
571
-
572
- > → **Load** `references/03-json-schemas.md` section "Use Cases Schema Format" for the canonical JSON format.
573
-
574
- ### E. Permissions
575
-
576
- Define the permission matrix:
577
-
578
- > → **Load** `references/03-json-schemas.md` section "Permissions Schema Format" for the canonical JSON format.
579
-
580
- ### E-bis. Notifications et Dashboards (OBLIGATOIRE)
581
-
582
- > **Regle : 2 questions max par AskUserQuestion.**
583
-
584
- **Batch E-bis-1** — Notifications :
585
- - Q3.21 : "Quels evenements doivent declencher une notification dans {moduleName} ?"
586
- - Q3.22 : "Qui doit etre notifie ? Par quel canal ? (in-app, email)" (conditionnel si Q3.21 = oui)
587
-
588
- **Batch E-bis-2** — Dashboards (SI pertinent pour ce module) :
589
- - Q3.14 : "Des tableaux de bord ou indicateurs sont-ils requis ?"
590
- - Q3.15 : "Si oui, quels KPIs afficher ?" (conditionnel si Q3.14 = oui)
591
-
592
- ### E-ter. Client Validation — Use Cases & Permissions (OBLIGATOIRE)
593
-
594
- **Mode : Auto-déduction + Confirmation groupée**
595
-
596
- 1. **Construire UCs et permissions** à partir des entités + règles validées :
597
- - CRUD UCs dérivés des entités (Create, Read, Update, Delete)
598
- - Export UC si cadrage mentionne export/Excel/CSV
599
- - Import UC si cadrage mentionne import/upload
600
- - Workflow UCs si entité a des états (enum status)
601
-
602
- **ENRICHISSEMENT OBLIGATOIRE pour chaque Use Case :**
603
-
604
- Pour chaque UC proposé, inclure ces champs :
605
- - `postconditions[]` : OBLIGATOIRE — effets après le UC
606
- Ex: `["Absence.status = Approved", "AbsenceBalance.taken += duration", "Notification envoyee a l'employe"]`
607
- - `errorScenarios[]` : OBLIGATOIRE pour les UCs workflow (>= 1 par UC workflow)
608
- Ex: `{ name: "Solde insuffisant", steps: ["Systeme affiche le solde restant", "Systeme bloque la soumission", "Employe peut modifier les dates"] }`
609
- - `mainScenario[]` : MINIMUM 5 steps pour les UCs workflow (3 suffisent pour list/read)
610
- - `alternativeScenarios[]` : MINIMUM 1 pour les UCs avec branchements
611
-
612
- **Minimums par module métier :**
613
- - >= 3 UCs avec `errorScenarios[]` non vides
614
- - >= 4 UCs avec `postconditions[]` non vides
615
- - Moyenne mainScenario >= 4 steps
616
-
617
- 2. **Présenter les deux lots en 1 seule interaction** (markdown PUIS AskUserQuestion) :
618
- ```
619
- ### Use Cases proposés pour {moduleName}
620
- | ID | Nom | Acteur | Règles liées |
621
- ...
622
-
623
- ### Permissions proposées
624
- | Rôle | Permissions |
625
- ...
626
- ```
627
- AskUserQuestion : "Voici les UCs et permissions pour {moduleName}. Corrections ?"
628
-
629
- 3. SI le cadrage est ambigu → poser les questions ciblées du lot E-bis (notifications, dashboards)
630
-
631
- INTERDICTION de passer à F (Seed Data) / H (Write) tant que le client n'a pas validé use cases ET permissions.
632
-
633
- ### F. Seed Data pour tables de référence
634
-
635
- > **OBLIGATOIRE** : Chaque entité de type "table de référence" (lookup, étapes de pipeline, types) DOIT avoir ses valeurs initiales documentées.
636
-
637
- ```json
638
- {
639
- "entity": "OpportunityStage",
640
- "type": "reference-table",
641
- "seedData": [
642
- { "name": "Qualification", "sortOrder": 1, "defaultProbability": 20, "isWon": false, "isLost": false },
643
- { "name": "Proposition", "sortOrder": 2, "defaultProbability": 50, "isWon": false, "isLost": false },
644
- { "name": "Négociation", "sortOrder": 3, "defaultProbability": 75, "isWon": false, "isLost": false },
645
- { "name": "Gagné", "sortOrder": 4, "defaultProbability": 100, "isWon": true, "isLost": false },
646
- { "name": "Perdu", "sortOrder": 5, "defaultProbability": 0, "isWon": false, "isLost": true }
647
- ]
648
- }
649
- ```
650
-
651
- ### F-bis. LifeCycle State Machine (MANDATORY for workflow entities)
652
-
653
- > Les lifeCycles sont déjà dans le schema (`specification-schema.json` l.317-383).
654
- > Ils doivent être générés pour CHAQUE entité ayant un attribut status de type enum.
655
- > Ces données alimentent les diagrammes d'état Mermaid ET le code généré.
656
-
657
- Pour CHAQUE entité avec attribut `type: "enum"` contenant "status" dans ses `options[]` :
658
-
659
- 1. Extraire les états depuis `options[]` de l'attribut enum
660
- 2. Identifier les transitions depuis les règles BR-WF-*
661
- 3. Lier chaque transition à :
662
- - `permission` : depuis permissions.json
663
- - `guards[]` : BR-VAL-* qui doivent passer avant la transition
664
- - `effects[]` : BR-NOTIF-* et BR-CALC-* déclenchées par la transition
665
-
666
- Générer le `lifeCycle` complet :
667
- ```json
668
- {
669
- "entity": "Absence",
670
- "field": "status",
671
- "initialState": "Draft",
672
- "states": [
673
- { "id": "Draft", "displayName": "Brouillon", "color": "gray", "allowedTransitions": ["Submitted"], "isTerminal": false },
674
- { "id": "Submitted", "displayName": "Soumis", "color": "blue", "allowedTransitions": ["Approved", "Rejected"], "isTerminal": false },
675
- { "id": "Approved", "displayName": "Approuvé", "color": "green", "allowedTransitions": [], "isTerminal": true },
676
- { "id": "Rejected", "displayName": "Refusé", "color": "red", "allowedTransitions": [], "isTerminal": true }
677
- ],
678
- "transitions": [
679
- { "from": "Draft", "to": "Submitted", "action": "submit", "permission": "Rh.Absences.Create",
680
- "guards": ["BR-VAL-ABS-001", "BR-VAL-ABS-002", "BR-VAL-ABS-003"],
681
- "effects": [{ "type": "notification", "target": "RH Manager", "template": "absence-submitted" }] },
682
- { "from": "Submitted", "to": "Approved", "action": "approve", "permission": "Rh.Absences.Approve",
683
- "guards": [],
684
- "effects": [
685
- { "type": "field-update", "target": "AbsenceBalance.taken", "template": "+= duration" },
686
- { "type": "notification", "target": "employee", "template": "absence-approved" }
687
- ] }
688
- ]
689
- }
690
- ```
691
-
692
- Présenter le lifecycle au client dans le lot E-ter (avec UCs et permissions).
693
-
694
- **Écriture :** Stocker dans `usecases.json` sous la clé `lifeCycles[]` (déjà dans le schema).
695
-
696
- ### F-ter. Gherkin Auto-Generation from Enriched UCs (MANDATORY)
697
-
698
- > **Les Gherkin doivent être DERIVES des UCs enrichis, pas inventés séparément.**
699
- > Chaque `mainScenario` → 1 Gherkin happy path.
700
- > Chaque `errorScenario` → 1 Gherkin error path.
701
- > Chaque `alternativeScenario` → 1 Gherkin alternative path.
702
- > Les `examples[]{input, expected}` des BRs alimentent les `Examples:` tables Gherkin.
703
-
704
- **Process :**
705
-
706
- ```
707
- For EACH UC in module:
708
- // 1. Happy path from mainScenario + postconditions
709
- Generate Gherkin:
710
- Feature: {UC.name}
711
- Scenario: {UC.name} - happy path
712
- Given {UC.preconditions[] joined as Given/And}
713
- When {UC.mainScenario[] mapped to When/And steps}
714
- Then {UC.postconditions[] mapped to Then/And assertions}
715
-
716
- // 2. Error paths from errorScenarios
717
- For EACH errorScenario in UC.errorScenarios:
718
- Scenario: {UC.name} - {errorScenario.name}
719
- Given {UC.preconditions[] + error setup conditions}
720
- When {trigger action from mainScenario step 1}
721
- Then {errorScenario.steps[] mapped to Then/And}
722
-
723
- // 3. Alternative paths from alternativeScenarios
724
- For EACH alt in UC.alternativeScenarios:
725
- Scenario: {UC.name} - {alt.name}
726
- Given {modified preconditions}
727
- When {alt trigger}
728
- Then {alt.steps[] mapped to Then/And}
729
-
730
- // 4. Data-driven examples from linked BR examples
731
- IF UC.linkedRules references BRs with structured examples[]:
732
- Scenario Outline: {UC.name} - validation rules
733
- Given a {entity} with <field> = <value>
734
- When the user submits the form
735
- Then the system shows <expected>
736
- Examples:
737
- | field | value | expected |
738
- {for each BR example: | {input} | {expected} |}
739
- ```
740
-
741
- **Exemple concret (Absence - Soumission) :**
742
-
743
- ```gherkin
744
- Feature: Soumettre une demande d'absence (UC-ABS-001)
745
-
746
- Scenario: Soumission reussie
747
- Given un employe avec la permission Rh.Absences.Create
748
- And un solde de CP >= duree demandee
749
- When il selectionne le type CP, dates 15/03 au 19/03
750
- And le systeme calcule la duree en jours ouvres (5j)
751
- And le systeme verifie les dates, chevauchements et solde
752
- And il soumet la demande
753
- Then Absence.status = Submitted
754
- And AbsenceBalance.taken reste inchange (pas encore approuve)
755
- And notification envoyee au RH Manager
756
-
757
- Scenario: Soumission echouee - solde insuffisant
758
- Given un employe avec 2 jours de CP restants
759
- When il soumet une absence de 5 jours de type CP
760
- Then le systeme affiche le solde restant (2 jours)
761
- And la soumission est bloquee
762
-
763
- Scenario: Soumission echouee - chevauchement
764
- Given un employe avec une absence approuvee du 15/03 au 19/03
765
- When il soumet une absence du 17/03 au 21/03
766
- Then le systeme affiche l'absence existante en conflit
767
- And la soumission est bloquee
768
-
769
- Scenario Outline: Validation des dates
770
- Given un employe connecte
771
- When il saisit debut=<debut> fin=<fin>
772
- Then le systeme affiche <resultat>
773
- Examples:
774
- | debut | fin | resultat |
775
- | 15/03 | 12/03 | Erreur : date de fin avant date de debut |
776
- | 15/03 | 15/03 | OK (1 jour) |
777
- | 15/03 | 19/03 | OK (5 jours ouvres) |
778
- ```
779
-
780
- **Minimums :** >= 3 scnarios Gherkin par module mtier (1 happy + 2 error/alt minimum).
781
-
782
- **criture :** Stocker dans `usecases.json` sous la cl `gherkinScenarios[]`.
783
-
784
- ### F-quater. Field-Level Validations Auto-Generation (MANDATORY)
785
-
786
- > **Gnrer les validations field-level depuis les attributs d'entits + rgles mtier.**
787
- > Ces validations alimentent directement les validators frontend (FluentValidation backend + form validation frontend).
788
-
789
- ```
790
- For EACH entity in module:
791
- For EACH attribute in entity.attributes:
792
-
793
- validations = []
794
-
795
- // From attribute metadata
796
- IF attribute.required: validations.push({ rule: "required", errorMessageKey: "{module}.{entity}.{attr}.required" })
797
- IF attribute.type === "string" AND attribute.maxLength: validations.push({ rule: "maxLength", params: { max: attribute.maxLength }, errorMessageKey: "..." })
798
- IF attribute.type === "string" AND attribute.unique: validations.push({ rule: "unique", errorMessageKey: "..." })
799
- IF attribute.type === "email": validations.push({ rule: "email", errorMessageKey: "..." })
800
- IF attribute.type === "decimal" AND (context is amount/price): validations.push({ rule: "min", params: { min: 0 }, errorMessageKey: "..." })
801
- IF attribute.type === "int": validations.push({ rule: "integer", errorMessageKey: "..." })
802
- IF attribute.type === "date": validations.push({ rule: "date", errorMessageKey: "..." })
803
-
804
- // From linked business rules (BR-VAL-*)
805
- IF exists BR-VAL referencing this attribute:
806
- For EACH matching BR:
807
- validations.push({ rule: "custom", brRef: BR.id, description: BR.statement, errorMessageKey: "..." })
808
-
809
- Store: { entity: entity.name, field: attribute.name, rules: validations }
810
- ```
811
-
812
- **Exemple concret (Absence) :**
813
-
814
- ```json
815
- [
816
- { "entity": "Absence", "field": "startDate", "rules": [
817
- { "rule": "required", "errorMessageKey": "absences.absence.startDate.required" },
818
- { "rule": "date", "errorMessageKey": "absences.absence.startDate.date" },
819
- { "rule": "custom", "brRef": "BR-VAL-ABS-001", "description": "startDate <= endDate", "errorMessageKey": "absences.absence.startDate.beforeEnd" }
820
- ]},
821
- { "entity": "Absence", "field": "endDate", "rules": [
822
- { "rule": "required", "errorMessageKey": "absences.absence.endDate.required" },
823
- { "rule": "date", "errorMessageKey": "absences.absence.endDate.date" }
824
- ]},
825
- { "entity": "Absence", "field": "reason", "rules": [
826
- { "rule": "maxLength", "params": { "max": 500 }, "errorMessageKey": "absences.absence.reason.maxLength" }
827
- ]}
828
- ]
829
- ```
830
-
831
- **criture :** Stocker dans `usecases.json` sous la cl `validations[]` (dj dans le schema specification-schema.json).
832
-
833
- ### G. Interface Specs — Delegated to /business-analyse-design
834
-
835
- > **Screen specifications are NOT produced in this step.**
836
- > Interface design (SmartTable columns, SmartForm fields, wireframes, navigation) is handled by Phase 2: `/business-analyse-design`.
837
- > This separation allows iterating on UI design without replaying the full analysis cycle.
838
-
839
- ### G-bis. API Endpoint Schema Enrichment (MANDATORY)
840
-
841
- > **Gnrer les request/response schemas pour chaque API endpoint depuis les entits.**
842
- > Les apiEndpoints[] existent dj dans le schema mais manquent les DTOs.
843
- > Ce sont ces DTOs qui permettent au develop de gnrer le bon code du premier coup.
844
-
845
- ```
846
- For EACH apiEndpoint in module:
847
- // Derive requestSchema from entity attributes
848
- IF method in ["POST", "PUT", "PATCH"]:
849
- requestSchema = {}
850
- For EACH attribute in entity.attributes:
851
- IF attribute is NOT computed AND attribute is NOT auto-generated:
852
- requestSchema[attribute.name] = {
853
- type: attribute.type,
854
- required: attribute.required || false,
855
- description: attribute.description
856
- }
857
-
858
- // Derive responseSchema from entity attributes + computed fields
859
- responseSchema = { id: "guid" }
860
- For EACH attribute in entity.attributes:
861
- responseSchema[attribute.name] = {
862
- type: attribute.type,
863
- computed: attribute.computed || false
864
- }
865
- // Add navigation properties for relationships
866
- For EACH relationship in entity.relationships:
867
- IF relationship.type === "ManyToOne":
868
- responseSchema[relationship.target + "Name"] = { type: "string", computed: true }
869
-
870
- // Derive errorCodes from linked BRs
871
- errorCodes = []
872
- For EACH linkedRule in UC.linkedRules:
873
- IF rule.severity === "blocking":
874
- errorCodes.push({ code: 400, reason: rule.id, description: rule.statement })
875
- errorCodes.push({ code: 403, reason: "Forbidden", description: "Missing permission: " + endpoint.permission })
876
- errorCodes.push({ code: 404, reason: "NotFound", description: entity.name + " not found" })
877
- ```
878
-
879
- **Exemple concret (POST /api/rh/absences) :**
880
-
881
- ```json
882
- {
883
- "method": "POST",
884
- "path": "/api/rh/absences",
885
- "permission": "Rh.Absences.Create",
886
- "linkedUC": "UC-ABS-001",
887
- "requestSchema": {
888
- "employeeId": { "type": "guid", "required": true },
889
- "absenceTypeId": { "type": "guid", "required": true },
890
- "startDate": { "type": "date", "required": true },
891
- "endDate": { "type": "date", "required": true },
892
- "reason": { "type": "string", "required": false }
893
- },
894
- "responseSchema": {
895
- "id": { "type": "guid" },
896
- "code": { "type": "string" },
897
- "status": { "type": "enum", "computed": false },
898
- "duration": { "type": "decimal", "computed": true },
899
- "employeeName": { "type": "string", "computed": true }
900
- },
901
- "errorCodes": [
902
- { "code": 400, "reason": "BR-VAL-ABS-001", "description": "Date de debut apres date de fin" },
903
- { "code": 400, "reason": "BR-VAL-ABS-002", "description": "Chevauchement avec absence existante" },
904
- { "code": 400, "reason": "BR-VAL-ABS-003", "description": "Solde insuffisant" },
905
- { "code": 403, "reason": "Forbidden", "description": "Permission Rh.Absences.Create requise" },
906
- { "code": 404, "reason": "NotFound", "description": "Employee not found" }
907
- ]
908
- }
909
- ```
910
-
911
- **criture :** Stocker dans `usecases.json` sous la cl `apiEndpoints[]` (enrichi).
912
-
913
- ### H-pre. Schema Refresh (OBLIGATOIRE avant chaque ecriture)
914
-
915
- AVANT d'ecrire les JSON pour le module courant :
916
- → **Relire** `references/03-json-schemas.md` section "Business Rules Schema Format"
917
- → Verifier que CHAQUE rule dans le buffer utilise les champs canoniques :
918
- - `id` (pas `code`), `name` (pas `label`), `statement` (pas `description`/`rule`),
919
- `category` (pas `type`), `severity` (blocking/warning/info, pas Error/error),
920
- `examples[]` (array d'`{input, expected}`, pas string), `entities[]`, `sectionCode`
921
- → SI un champ deprecated est detecte : corriger AVANT ecriture
922
- → Ce refresh prend ~30 secondes et previent 100% des derives de schema
923
-
924
- **POURQUOI ce refresh :** Apres 5+ modules, le contexte est compacte et les exemples
925
- JSON du debut de conversation sont perdus. Ce refresh garantit que chaque module
926
- est ecrit avec le format canonique, meme si le contexte a ete compresse.
927
-
928
- ### H. Write & Advance (SEULEMENT apres validation complete)
929
-
930
- > **GATE:** ba-writer ne peut etre lance QUE si le client a valide :
931
- > entites (B-ter) + regles (C-bis) + use cases/permissions (E-ter).
932
- > Si un lot n'est pas valide → RETOUR au lot concerne.
933
-
934
- After completing all sub-steps for a module:
935
-
936
- 1. **Validate against schema BEFORE writing** (uses schemas deployed in step-00):
937
- ```javascript
938
- ba-writer.validate("entities", entitiesData, docs_dir + "/schemas/entities.json")
939
- ba-writer.validate("rules", rulesData, docs_dir + "/schemas/rules.json")
940
- ba-writer.validate("usecases", usecasesData, docs_dir + "/schemas/usecases.json")
941
- ba-writer.validate("permissions", permissionsData, docs_dir + "/schemas/permissions.json")
942
- ```
943
- > If validation fails: fix the data and re-validate. Do NOT write invalid JSON.
944
-
945
- 2. Write via ba-writer:
946
- - `entities.json`
947
- - `rules.json`
948
- - `usecases.json`
949
- - `permissions.json`
950
- - Update `index.json` (hashes, summary counts)
951
-
952
- 3. Update module status to `specified`
953
-
954
- 3. Advance to next module in topological order
955
-
956
- ### H-bis. Module Transition Summary
957
-
958
- Afficher un resume compact du module termine :
959
- ```
960
- ✓ {moduleName} — {entityCount} entites, {ruleCount} regles, {ucCount} UCs, {permCount} permissions
961
- ```
962
-
963
- Passer au module suivant. INTERDICTION de lancer des ba-writer en parallele pour des modules differents.
964
-
965
- ### I. Module Completion Check
966
-
967
- After all modules are specified:
968
- - Verify all modules have status `specified`
969
- - Display summary: total entities, rules, UCs, permissions across all modules
970
- - Remind user: "Run /business-analyse-design to design interfaces for these modules"
971
- - Transition to step 04
972
-
973
- ### I-bis. Cross-Module Questions (apres tous les modules)
974
-
975
- SI des dependances cross-module existent (identifiees en step-02) :
976
- → Charger questionnaire/05-cross-module.md et poser les questions pertinentes via AskUserQuestion.
977
- → Integrer les reponses dans les modules concernes via ba-writer.
978
-
979
- ## POST-CHECK (EXECUTABLE — BLOCKING)
980
-
981
- > → **Load** `references/03-post-check-validation.md` and execute ALL checks.
982
- > Any BLOCKING check failure must be resolved before proceeding to step 04.
983
-
984
- ## Transition
985
-
986
- → Step 04 (consolidate) — Cross-module validation