@atlashub/smartstack-cli 3.39.0 → 3.41.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 (472) hide show
  1. package/.documentation/apex.html +644 -644
  2. package/.documentation/css/styles.css +2320 -2320
  3. package/.documentation/init.html +1377 -1377
  4. package/.documentation/js/app.js +780 -780
  5. package/.documentation/prd-json-v2.0.0.md +396 -396
  6. package/.documentation/testing-ba-e2e.md +462 -462
  7. package/config/default-config.json +95 -95
  8. package/config/mcp-defaults.json +62 -62
  9. package/config/settings.json +53 -53
  10. package/config/settings.local.example.json +16 -16
  11. package/dist/index.js +6 -3
  12. package/dist/index.js.map +1 -1
  13. package/dist/mcp-entry.mjs +6 -4
  14. package/dist/mcp-entry.mjs.map +1 -1
  15. package/package.json +115 -115
  16. package/scripts/extract-api-endpoints.ts +325 -325
  17. package/scripts/extract-business-rules.ts +440 -440
  18. package/scripts/generate-doc-with-mock-ui.ts +804 -804
  19. package/scripts/health-check.sh +168 -168
  20. package/scripts/postinstall.js +18 -18
  21. package/templates/agents/action.md +37 -37
  22. package/templates/agents/ba-reader.md +378 -378
  23. package/templates/agents/ba-writer.md +861 -861
  24. package/templates/agents/code-reviewer.md +163 -163
  25. package/templates/agents/db-reader.md +149 -149
  26. package/templates/agents/docs-context-reader.md +143 -143
  27. package/templates/agents/docs-sync-checker.md +122 -122
  28. package/templates/agents/efcore/conflicts.md +95 -84
  29. package/templates/agents/efcore/db-deploy.md +85 -74
  30. package/templates/agents/efcore/db-reset.md +96 -85
  31. package/templates/agents/efcore/db-seed.md +72 -61
  32. package/templates/agents/efcore/db-status.md +97 -86
  33. package/templates/agents/efcore/migration.md +197 -186
  34. package/templates/agents/efcore/rebase-snapshot.md +119 -108
  35. package/templates/agents/efcore/scan.md +103 -92
  36. package/templates/agents/efcore/squash.md +172 -161
  37. package/templates/agents/explore-codebase.md +66 -66
  38. package/templates/agents/explore-docs.md +98 -98
  39. package/templates/agents/fix-grammar.md +50 -50
  40. package/templates/agents/gitflow/abort.md +45 -45
  41. package/templates/agents/gitflow/cleanup.md +96 -96
  42. package/templates/agents/gitflow/commit.md +236 -236
  43. package/templates/agents/gitflow/exec.md +48 -48
  44. package/templates/agents/gitflow/finish.md +146 -146
  45. package/templates/agents/gitflow/init-clone.md +199 -199
  46. package/templates/agents/gitflow/init-detect.md +137 -137
  47. package/templates/agents/gitflow/init-validate.md +225 -225
  48. package/templates/agents/gitflow/init.md +340 -340
  49. package/templates/agents/gitflow/merge.md +145 -145
  50. package/templates/agents/gitflow/plan.md +42 -42
  51. package/templates/agents/gitflow/pr.md +191 -191
  52. package/templates/agents/gitflow/review.md +49 -49
  53. package/templates/agents/gitflow/start.md +147 -147
  54. package/templates/agents/gitflow/status.md +95 -95
  55. package/templates/agents/mcp-healthcheck.md +163 -163
  56. package/templates/agents/snipper.md +37 -37
  57. package/templates/agents/websearch.md +46 -46
  58. package/templates/hooks/appsettings-guard.sh +76 -76
  59. package/templates/hooks/docs-drift-check.md +96 -96
  60. package/templates/hooks/ef-migration-check.md +139 -139
  61. package/templates/hooks/hooks.json +58 -58
  62. package/templates/hooks/mcp-check.md +64 -64
  63. package/templates/hooks/ralph-mcp-logger.sh +46 -46
  64. package/templates/hooks/ralph-session-end.sh +69 -69
  65. package/templates/hooks/stop-hook.sh +177 -177
  66. package/templates/hooks/wsl-dotnet-cleanup.sh +24 -24
  67. package/templates/mcp-scaffolding/component.tsx.hbs +318 -318
  68. package/templates/mcp-scaffolding/controller.cs.hbs +192 -192
  69. package/templates/mcp-scaffolding/entity-extension.cs.hbs +239 -239
  70. package/templates/mcp-scaffolding/frontend/api-client.ts.hbs +116 -116
  71. package/templates/mcp-scaffolding/frontend/nav-routes.ts.hbs +133 -133
  72. package/templates/mcp-scaffolding/frontend/routes.tsx.hbs +126 -126
  73. package/templates/mcp-scaffolding/migrations/seed-roles.cs.hbs +261 -261
  74. package/templates/mcp-scaffolding/service-extension.cs.hbs +53 -53
  75. package/templates/mcp-scaffolding/tests/controller.test.cs.hbs +436 -436
  76. package/templates/mcp-scaffolding/tests/entity.test.cs.hbs +239 -239
  77. package/templates/mcp-scaffolding/tests/repository.test.cs.hbs +441 -441
  78. package/templates/mcp-scaffolding/tests/security.test.cs.hbs +442 -442
  79. package/templates/mcp-scaffolding/tests/service.test.cs.hbs +402 -402
  80. package/templates/mcp-scaffolding/tests/validator.test.cs.hbs +428 -428
  81. package/templates/project/DependencyInjection.Application.cs.template +25 -25
  82. package/templates/project/DependencyInjection.Infrastructure.cs.template +61 -61
  83. package/templates/project/DesignTimeExtensionsDbContextFactory.cs.template +70 -70
  84. package/templates/project/ExampleEntity.cs.template +116 -116
  85. package/templates/project/ExampleEntityConfiguration.cs.template +64 -64
  86. package/templates/project/ExampleService.cs.template +146 -146
  87. package/templates/project/ExtensionsDbContext.cs.template +41 -41
  88. package/templates/project/IExtensionsDbContext.cs.template +22 -22
  89. package/templates/project/Program.cs.template +47 -47
  90. package/templates/project/README.md +79 -79
  91. package/templates/project/api.ts.template +12 -12
  92. package/templates/project/appsettings.json.template +170 -170
  93. package/templates/project/claude-settings.json.template +5 -5
  94. package/templates/project/test-frontend/msw/handlers.ts +58 -58
  95. package/templates/project/test-frontend/msw/server.ts +25 -25
  96. package/templates/project/test-frontend/setup.ts +16 -16
  97. package/templates/project/test-frontend/test-utils.tsx +59 -59
  98. package/templates/project/test-frontend/vitest.config.ts +31 -31
  99. package/templates/ralph/README.md +93 -93
  100. package/templates/ralph/ralph.config.yaml +113 -113
  101. package/templates/scripts/setup-ralph-loop.sh +173 -173
  102. package/templates/skills/_resources/config-safety.md +61 -61
  103. package/templates/skills/_resources/context-digest-template.md +53 -53
  104. package/templates/skills/_resources/doc-context-cache.md +60 -60
  105. package/templates/skills/_resources/docs-manifest-schema.md +155 -155
  106. package/templates/skills/_resources/formatting-guide.md +124 -124
  107. package/templates/skills/_resources/mcp-validate-documentation-spec.md +181 -181
  108. package/templates/skills/_shared.md +228 -228
  109. package/templates/skills/admin/SKILL.md +48 -48
  110. package/templates/skills/ai-prompt/SKILL.md +107 -107
  111. package/templates/skills/ai-prompt/steps/step-00-init.md +47 -47
  112. package/templates/skills/ai-prompt/steps/step-01-implementation.md +122 -122
  113. package/templates/skills/apex/SKILL.md +168 -168
  114. package/templates/skills/apex/_shared.md +141 -141
  115. package/templates/skills/apex/references/agent-teams-protocol.md +164 -164
  116. package/templates/skills/apex/references/analysis-methods.md +141 -141
  117. package/templates/skills/apex/references/challenge-questions.md +145 -145
  118. package/templates/skills/apex/references/code-generation.md +412 -412
  119. package/templates/skills/apex/references/core-seed-data.md +1437 -1437
  120. package/templates/skills/apex/references/error-classification.md +144 -144
  121. package/templates/skills/apex/references/examine-build-validation.md +82 -82
  122. package/templates/skills/apex/references/execution-frontend-gates.md +177 -177
  123. package/templates/skills/apex/references/execution-frontend-patterns.md +105 -105
  124. package/templates/skills/apex/references/execution-layer1-rules.md +96 -96
  125. package/templates/skills/apex/references/initialization-challenge-flow.md +110 -110
  126. package/templates/skills/apex/references/planning-layer-mapping.md +151 -151
  127. package/templates/skills/apex/references/post-checks.md +1584 -1584
  128. package/templates/skills/apex/references/smartstack-api.md +1053 -1053
  129. package/templates/skills/apex/references/smartstack-frontend.md +1571 -1571
  130. package/templates/skills/apex/references/smartstack-layers.md +402 -402
  131. package/templates/skills/apex/steps/step-00-init.md +307 -307
  132. package/templates/skills/apex/steps/step-01-analyze.md +165 -165
  133. package/templates/skills/apex/steps/step-02-plan.md +144 -144
  134. package/templates/skills/apex/steps/step-03-execute.md +328 -328
  135. package/templates/skills/apex/steps/step-04-examine.md +263 -263
  136. package/templates/skills/apex/steps/step-05-deep-review.md +129 -129
  137. package/templates/skills/apex/steps/step-06-resolve.md +101 -101
  138. package/templates/skills/apex/steps/step-07-tests.md +238 -238
  139. package/templates/skills/apex/steps/step-08-run-tests.md +125 -125
  140. package/templates/skills/application/SKILL.md +4 -4
  141. package/templates/skills/application/references/application-roles-template.md +227 -227
  142. package/templates/skills/application/references/backend-controller-hierarchy.md +58 -58
  143. package/templates/skills/application/references/backend-entity-seeding.md +72 -72
  144. package/templates/skills/application/references/backend-seeding-and-dto-output.md +83 -83
  145. package/templates/skills/application/references/backend-table-prefix-mapping.md +79 -79
  146. package/templates/skills/application/references/backend-verification.md +88 -88
  147. package/templates/skills/application/references/frontend-i18n-and-output.md +67 -67
  148. package/templates/skills/application/references/frontend-route-naming.md +117 -117
  149. package/templates/skills/application/references/frontend-route-wiring-app-tsx.md +107 -107
  150. package/templates/skills/application/references/frontend-verification.md +156 -156
  151. package/templates/skills/application/references/migration-checklist-troubleshooting.md +1 -1
  152. package/templates/skills/application/references/provider-template.md +177 -177
  153. package/templates/skills/application/references/roles-client-project-handling.md +55 -55
  154. package/templates/skills/application/references/roles-fallback-procedure.md +149 -149
  155. package/templates/skills/application/references/test-coverage-requirements.md +213 -213
  156. package/templates/skills/application/references/test-frontend.md +73 -73
  157. package/templates/skills/application/references/test-prerequisites.md +72 -72
  158. package/templates/skills/application/steps/step-05-frontend.md +176 -176
  159. package/templates/skills/application/steps/step-06-migration.md +193 -193
  160. package/templates/skills/application/steps/step-07-tests.md +356 -356
  161. package/templates/skills/application/steps/step-08-documentation.md +137 -137
  162. package/templates/skills/application/templates-backend.md +463 -463
  163. package/templates/skills/application/templates-frontend.md +685 -685
  164. package/templates/skills/application/templates-i18n.md +520 -520
  165. package/templates/skills/application/templates-seed.md +1096 -1096
  166. package/templates/skills/business-analyse/SKILL.md +327 -327
  167. package/templates/skills/business-analyse/_architecture.md +123 -123
  168. package/templates/skills/business-analyse/_elicitation.md +206 -206
  169. package/templates/skills/business-analyse/_module-loop.md +115 -115
  170. package/templates/skills/business-analyse/_shared.md +383 -383
  171. package/templates/skills/business-analyse/_suggestions.md +34 -34
  172. package/templates/skills/business-analyse/html/ba-interactive.html +4477 -4477
  173. package/templates/skills/business-analyse/html/build-html.js +77 -77
  174. package/templates/skills/business-analyse/html/src/scripts/01-data-init.js +150 -150
  175. package/templates/skills/business-analyse/html/src/scripts/02-navigation.js +227 -227
  176. package/templates/skills/business-analyse/html/src/scripts/03-render-cadrage.js +199 -199
  177. package/templates/skills/business-analyse/html/src/scripts/04-render-modules.js +205 -205
  178. package/templates/skills/business-analyse/html/src/scripts/05-render-specs.js +647 -647
  179. package/templates/skills/business-analyse/html/src/scripts/06-render-consolidation.js +195 -195
  180. package/templates/skills/business-analyse/html/src/scripts/07-render-handoff.js +92 -92
  181. package/templates/skills/business-analyse/html/src/scripts/08-editing.js +135 -135
  182. package/templates/skills/business-analyse/html/src/scripts/09-export.js +168 -168
  183. package/templates/skills/business-analyse/html/src/scripts/10-comments.js +171 -171
  184. package/templates/skills/business-analyse/html/src/scripts/11-review-panel.js +166 -166
  185. package/templates/skills/business-analyse/html/src/styles/01-variables.css +38 -38
  186. package/templates/skills/business-analyse/html/src/styles/02-layout.css +101 -101
  187. package/templates/skills/business-analyse/html/src/styles/03-navigation.css +120 -120
  188. package/templates/skills/business-analyse/html/src/styles/04-cards.css +196 -196
  189. package/templates/skills/business-analyse/html/src/styles/05-modules.css +454 -454
  190. package/templates/skills/business-analyse/html/src/styles/06-wireframes.css +272 -272
  191. package/templates/skills/business-analyse/html/src/styles/07-comments.css +184 -184
  192. package/templates/skills/business-analyse/html/src/styles/08-review-panel.css +241 -241
  193. package/templates/skills/business-analyse/html/src/template.html +516 -516
  194. package/templates/skills/business-analyse/patterns/suggestion-catalog.md +546 -546
  195. package/templates/skills/business-analyse/questionnaire/00-application.md +160 -160
  196. package/templates/skills/business-analyse/questionnaire/00b-project.md +85 -85
  197. package/templates/skills/business-analyse/questionnaire/01-context.md +185 -185
  198. package/templates/skills/business-analyse/questionnaire/02-stakeholders.md +189 -189
  199. package/templates/skills/business-analyse/questionnaire/03-scope.md +164 -164
  200. package/templates/skills/business-analyse/questionnaire/04-data.md +88 -88
  201. package/templates/skills/business-analyse/questionnaire/05-integrations.md +58 -58
  202. package/templates/skills/business-analyse/questionnaire/06-security.md +68 -68
  203. package/templates/skills/business-analyse/questionnaire/07-ui.md +76 -76
  204. package/templates/skills/business-analyse/questionnaire/08-performance.md +42 -42
  205. package/templates/skills/business-analyse/questionnaire/09-constraints.md +45 -45
  206. package/templates/skills/business-analyse/questionnaire/10-documentation.md +43 -43
  207. package/templates/skills/business-analyse/questionnaire/11-data-lifecycle.md +59 -59
  208. package/templates/skills/business-analyse/questionnaire/12-migration.md +58 -58
  209. package/templates/skills/business-analyse/questionnaire/13-cross-module.md +69 -69
  210. package/templates/skills/business-analyse/questionnaire/14-risk-assumptions.md +135 -135
  211. package/templates/skills/business-analyse/questionnaire/15-success-metrics.md +136 -136
  212. package/templates/skills/business-analyse/questionnaire.md +337 -337
  213. package/templates/skills/business-analyse/react/application-viewer.md +242 -242
  214. package/templates/skills/business-analyse/react/components.md +551 -551
  215. package/templates/skills/business-analyse/react/i18n-template.md +306 -306
  216. package/templates/skills/business-analyse/references/acceptance-criteria.md +169 -169
  217. package/templates/skills/business-analyse/references/agent-module-prompt.md +362 -362
  218. package/templates/skills/business-analyse/references/agent-pooling-best-practices.md +557 -557
  219. package/templates/skills/business-analyse/references/analysis-semantic-checks.md +190 -190
  220. package/templates/skills/business-analyse/references/cache-warming-strategy.md +566 -566
  221. package/templates/skills/business-analyse/references/cadrage-challenge-patterns.md +41 -41
  222. package/templates/skills/business-analyse/references/cadrage-coverage-matrix.md +74 -74
  223. package/templates/skills/business-analyse/references/cadrage-pre-analysis.md +115 -115
  224. package/templates/skills/business-analyse/references/cadrage-shared-modules.md +68 -69
  225. package/templates/skills/business-analyse/references/cadrage-structure-cards.md +85 -85
  226. package/templates/skills/business-analyse/references/compilation-structure-cards.md +297 -297
  227. package/templates/skills/business-analyse/references/consolidation-structural-checks.md +107 -107
  228. package/templates/skills/business-analyse/references/deploy-data-build.md +180 -180
  229. package/templates/skills/business-analyse/references/deploy-modes.md +118 -118
  230. package/templates/skills/business-analyse/references/detection-strategies.md +424 -424
  231. package/templates/skills/business-analyse/references/entity-architecture-decision.md +218 -218
  232. package/templates/skills/business-analyse/references/handoff-file-templates.md +120 -120
  233. package/templates/skills/business-analyse/references/handoff-mappings.md +81 -81
  234. package/templates/skills/business-analyse/references/handoff-seeddata-generation.md +312 -312
  235. package/templates/skills/business-analyse/references/html-data-mapping.md +299 -299
  236. package/templates/skills/business-analyse/references/init-schema-deployment.md +65 -65
  237. package/templates/skills/business-analyse/references/naming-conventions.md +243 -243
  238. package/templates/skills/business-analyse/references/prd-generation.md +258 -258
  239. package/templates/skills/business-analyse/references/review-data-mapping.md +363 -363
  240. package/templates/skills/business-analyse/references/robustness-checks.md +542 -542
  241. package/templates/skills/business-analyse/references/spec-auto-inference.md +111 -111
  242. package/templates/skills/business-analyse/references/team-orchestration.md +1022 -1022
  243. package/templates/skills/business-analyse/references/ui-dashboard-spec.md +85 -85
  244. package/templates/skills/business-analyse/references/ui-resource-cards.md +259 -259
  245. package/templates/skills/business-analyse/references/validate-incremental-html.md +121 -121
  246. package/templates/skills/business-analyse/references/validation-checklist.md +347 -347
  247. package/templates/skills/business-analyse/references/wireframe-svg-style-guide.md +335 -335
  248. package/templates/skills/business-analyse/schemas/application-schema.json +453 -453
  249. package/templates/skills/business-analyse/schemas/feature-schema.json +53 -53
  250. package/templates/skills/business-analyse/schemas/project-schema.json +485 -485
  251. package/templates/skills/business-analyse/schemas/sections/analysis-schema.json +201 -201
  252. package/templates/skills/business-analyse/schemas/sections/discovery-schema.json +82 -82
  253. package/templates/skills/business-analyse/schemas/sections/handoff-schema.json +80 -80
  254. package/templates/skills/business-analyse/schemas/sections/metadata-schema.json +70 -70
  255. package/templates/skills/business-analyse/schemas/sections/specification-schema.json +547 -547
  256. package/templates/skills/business-analyse/schemas/sections/validation-schema.json +93 -93
  257. package/templates/skills/business-analyse/schemas/shared/common-defs.json +226 -226
  258. package/templates/skills/business-analyse/steps/step-00-init.md +575 -576
  259. package/templates/skills/business-analyse/steps/step-01-cadrage.md +767 -767
  260. package/templates/skills/business-analyse/steps/step-01b-applications.md +419 -419
  261. package/templates/skills/business-analyse/steps/step-02-decomposition.md +387 -387
  262. package/templates/skills/business-analyse/steps/step-03a-data.md +16 -16
  263. package/templates/skills/business-analyse/steps/step-03a1-setup.md +506 -506
  264. package/templates/skills/business-analyse/steps/step-03a2-analysis.md +252 -252
  265. package/templates/skills/business-analyse/steps/step-03b-ui.md +425 -425
  266. package/templates/skills/business-analyse/steps/step-03c-compile.md +611 -611
  267. package/templates/skills/business-analyse/steps/step-03d-validate.md +783 -783
  268. package/templates/skills/business-analyse/steps/step-04-consolidation.md +17 -17
  269. package/templates/skills/business-analyse/steps/step-04a-collect.md +415 -415
  270. package/templates/skills/business-analyse/steps/step-04b-analyze.md +163 -163
  271. package/templates/skills/business-analyse/steps/step-04c-decide.md +186 -186
  272. package/templates/skills/business-analyse/steps/step-05a-handoff.md +840 -840
  273. package/templates/skills/business-analyse/steps/step-05b-deploy.md +522 -522
  274. package/templates/skills/business-analyse/steps/step-05c-ralph-readiness.md +703 -703
  275. package/templates/skills/business-analyse/steps/step-06-review.md +278 -278
  276. package/templates/skills/business-analyse/templates/tpl-frd.md +168 -168
  277. package/templates/skills/business-analyse/templates/tpl-handoff.md +186 -186
  278. package/templates/skills/business-analyse/templates/tpl-launch-displays.md +59 -59
  279. package/templates/skills/business-analyse/templates/tpl-progress.md +172 -172
  280. package/templates/skills/business-analyse/templates-frd.md +476 -476
  281. package/templates/skills/business-analyse/templates-react.md +574 -574
  282. package/templates/skills/cc-agent/SKILL.md +129 -129
  283. package/templates/skills/cc-agent/references/agent-behavior-patterns.md +95 -95
  284. package/templates/skills/cc-agent/references/agent-frontmatter.md +213 -213
  285. package/templates/skills/cc-agent/references/permission-modes.md +102 -102
  286. package/templates/skills/cc-agent/references/tools-reference.md +144 -144
  287. package/templates/skills/cc-agent/steps/step-00-init.md +134 -134
  288. package/templates/skills/cc-agent/steps/step-01-design.md +186 -186
  289. package/templates/skills/cc-agent/steps/step-02-generate.md +131 -131
  290. package/templates/skills/cc-agent/steps/step-03-validate.md +130 -130
  291. package/templates/skills/cc-agent/templates/agent-categorized.md +67 -67
  292. package/templates/skills/cc-agent/templates/agent-standalone.md +56 -56
  293. package/templates/skills/cc-agent/templates/agent-with-skills.md +94 -94
  294. package/templates/skills/cc-audit/SKILL.md +108 -108
  295. package/templates/skills/cc-audit/references/agent-checklist.md +91 -91
  296. package/templates/skills/cc-audit/references/hook-checklist.md +110 -110
  297. package/templates/skills/cc-audit/references/skill-checklist.md +70 -70
  298. package/templates/skills/cc-audit/steps/step-00-init.md +98 -98
  299. package/templates/skills/cc-audit/steps/step-01-scan.md +142 -142
  300. package/templates/skills/cc-audit/steps/step-02-analyze.md +158 -158
  301. package/templates/skills/cc-audit/steps/step-03-report.md +142 -142
  302. package/templates/skills/cc-skill/SKILL.md +134 -134
  303. package/templates/skills/cc-skill/references/best-practices.md +167 -167
  304. package/templates/skills/cc-skill/references/frontmatter-reference.md +182 -182
  305. package/templates/skills/cc-skill/references/skill-patterns.md +199 -199
  306. package/templates/skills/cc-skill/steps/step-00-init.md +119 -119
  307. package/templates/skills/cc-skill/steps/step-01-design.md +199 -199
  308. package/templates/skills/cc-skill/steps/step-02-generate.md +145 -145
  309. package/templates/skills/cc-skill/steps/step-03-steps.md +151 -151
  310. package/templates/skills/cc-skill/steps/step-04-validate.md +124 -124
  311. package/templates/skills/cc-skill/templates/skill-forked.md +85 -85
  312. package/templates/skills/cc-skill/templates/skill-progressive.md +102 -102
  313. package/templates/skills/cc-skill/templates/skill-simple.md +75 -75
  314. package/templates/skills/cc-skill/templates/step-template.md +82 -82
  315. package/templates/skills/check-version/SKILL.md +196 -196
  316. package/templates/skills/controller/SKILL.md +162 -162
  317. package/templates/skills/controller/postman-templates.md +614 -614
  318. package/templates/skills/controller/references/controller-code-templates.md +159 -159
  319. package/templates/skills/controller/references/mcp-scaffold-workflow.md +209 -209
  320. package/templates/skills/controller/references/permission-sync-templates.md +149 -149
  321. package/templates/skills/controller/steps/step-00-init.md +193 -191
  322. package/templates/skills/controller/steps/step-01-analyze.md +146 -146
  323. package/templates/skills/controller/steps/step-02-plan.md +176 -176
  324. package/templates/skills/controller/steps/step-03-generate.md +189 -189
  325. package/templates/skills/controller/steps/step-04-perms.md +80 -80
  326. package/templates/skills/controller/steps/step-05-validate.md +107 -107
  327. package/templates/skills/controller/templates.md +1555 -1555
  328. package/templates/skills/debug/SKILL.md +70 -70
  329. package/templates/skills/debug/references/team-protocol.md +232 -232
  330. package/templates/skills/debug/steps/step-00-init.md +57 -57
  331. package/templates/skills/debug/steps/step-01-analyze.md +219 -219
  332. package/templates/skills/debug/steps/step-02-resolve.md +85 -85
  333. package/templates/skills/documentation/SKILL.md +132 -132
  334. package/templates/skills/documentation/data-schema.md +227 -227
  335. package/templates/skills/documentation/steps/step-00-init.md +70 -70
  336. package/templates/skills/documentation/steps/step-01-scan.md +113 -113
  337. package/templates/skills/documentation/steps/step-02-generate.md +231 -231
  338. package/templates/skills/documentation/steps/step-03-validate.md +251 -238
  339. package/templates/skills/documentation/templates.md +662 -663
  340. package/templates/skills/efcore/SKILL.md +168 -167
  341. package/templates/skills/efcore/references/both-contexts.md +32 -32
  342. package/templates/skills/efcore/references/database-operations.md +67 -67
  343. package/templates/skills/efcore/references/destructive-operations.md +38 -38
  344. package/templates/skills/efcore/references/reset-operations.md +81 -81
  345. package/templates/skills/efcore/references/seed-methods.md +86 -86
  346. package/templates/skills/efcore/references/shared-init-functions.md +250 -250
  347. package/templates/skills/efcore/references/sql-objects-injection.md +61 -61
  348. package/templates/skills/efcore/references/troubleshooting.md +81 -81
  349. package/templates/skills/efcore/references/zero-downtime-patterns.md +227 -227
  350. package/templates/skills/efcore/steps/db/step-deploy.md +217 -217
  351. package/templates/skills/efcore/steps/db/step-reset.md +186 -186
  352. package/templates/skills/efcore/steps/db/step-seed.md +166 -166
  353. package/templates/skills/efcore/steps/db/step-status.md +173 -173
  354. package/templates/skills/efcore/steps/migration/step-00-init.md +102 -102
  355. package/templates/skills/efcore/steps/migration/step-01-check.md +164 -164
  356. package/templates/skills/efcore/steps/migration/step-02-create.md +160 -160
  357. package/templates/skills/efcore/steps/migration/step-03-validate.md +168 -168
  358. package/templates/skills/efcore/steps/rebase-snapshot/step-00-init.md +173 -173
  359. package/templates/skills/efcore/steps/rebase-snapshot/step-01-backup.md +100 -100
  360. package/templates/skills/efcore/steps/rebase-snapshot/step-02-fetch.md +115 -115
  361. package/templates/skills/efcore/steps/rebase-snapshot/step-03-create.md +112 -112
  362. package/templates/skills/efcore/steps/rebase-snapshot/step-04-validate.md +157 -157
  363. package/templates/skills/efcore/steps/shared/step-00-init.md +131 -131
  364. package/templates/skills/efcore/steps/squash/step-00-init.md +141 -141
  365. package/templates/skills/efcore/steps/squash/step-01-backup.md +120 -120
  366. package/templates/skills/efcore/steps/squash/step-02-fetch.md +168 -168
  367. package/templates/skills/efcore/steps/squash/step-03-create.md +184 -184
  368. package/templates/skills/efcore/steps/squash/step-04-validate.md +174 -174
  369. package/templates/skills/explore/SKILL.md +98 -98
  370. package/templates/skills/feature-full/SKILL.md +111 -111
  371. package/templates/skills/feature-full/steps/step-00-init.md +57 -57
  372. package/templates/skills/feature-full/steps/step-01-implementation.md +120 -120
  373. package/templates/skills/gitflow/SKILL.md +377 -377
  374. package/templates/skills/gitflow/_shared.md +620 -620
  375. package/templates/skills/gitflow/phases/abort.md +189 -189
  376. package/templates/skills/gitflow/phases/cleanup.md +234 -234
  377. package/templates/skills/gitflow/phases/status.md +192 -192
  378. package/templates/skills/gitflow/references/commit-message-generation.md +58 -58
  379. package/templates/skills/gitflow/references/commit-migration-validation.md +49 -49
  380. package/templates/skills/gitflow/references/finish-cleanup.md +55 -55
  381. package/templates/skills/gitflow/references/finish-version-bumping.md +45 -45
  382. package/templates/skills/gitflow/references/init-config-template.md +135 -135
  383. package/templates/skills/gitflow/references/init-environment-detection.md +41 -41
  384. package/templates/skills/gitflow/references/init-name-normalization.md +103 -103
  385. package/templates/skills/gitflow/references/init-questions.md +185 -185
  386. package/templates/skills/gitflow/references/init-structure-creation.md +75 -75
  387. package/templates/skills/gitflow/references/init-version-detection.md +21 -21
  388. package/templates/skills/gitflow/references/init-workspace-detection.md +43 -43
  389. package/templates/skills/gitflow/references/merge-ci-status.md +36 -36
  390. package/templates/skills/gitflow/references/merge-execution.md +62 -62
  391. package/templates/skills/gitflow/references/merge-pr-context.md +76 -76
  392. package/templates/skills/gitflow/references/plan-template.md +69 -69
  393. package/templates/skills/gitflow/references/pr-build-checks.md +60 -60
  394. package/templates/skills/gitflow/references/pr-generation.md +58 -58
  395. package/templates/skills/gitflow/references/start-branch-normalization.md +28 -28
  396. package/templates/skills/gitflow/references/start-efcore-preflight.md +70 -70
  397. package/templates/skills/gitflow/references/start-local-config.md +113 -113
  398. package/templates/skills/gitflow/references/start-worktree-creation.md +50 -50
  399. package/templates/skills/gitflow/references/sync-push-verify.md +44 -44
  400. package/templates/skills/gitflow/references/sync-rebase-conflicts.md +38 -38
  401. package/templates/skills/gitflow/steps/step-commit.md +199 -199
  402. package/templates/skills/gitflow/steps/step-finish.md +147 -147
  403. package/templates/skills/gitflow/steps/step-init.md +190 -190
  404. package/templates/skills/gitflow/steps/step-merge.md +85 -85
  405. package/templates/skills/gitflow/steps/step-plan.md +151 -151
  406. package/templates/skills/gitflow/steps/step-pr.md +199 -199
  407. package/templates/skills/gitflow/steps/step-start.md +195 -195
  408. package/templates/skills/gitflow/steps/step-sync.md +161 -161
  409. package/templates/skills/gitflow/templates/config.json +72 -72
  410. package/templates/skills/mcp/SKILL.md +62 -62
  411. package/templates/skills/mcp/steps/step-01-healthcheck.md +108 -108
  412. package/templates/skills/mcp/steps/step-02-tools.md +73 -73
  413. package/templates/skills/notification/SKILL.md +173 -173
  414. package/templates/skills/quick-search/SKILL.md +99 -99
  415. package/templates/skills/ralph-loop/SKILL.md +234 -234
  416. package/templates/skills/ralph-loop/references/category-completeness.md +185 -185
  417. package/templates/skills/ralph-loop/references/category-rules.md +96 -96
  418. package/templates/skills/ralph-loop/references/compact-loop.md +300 -300
  419. package/templates/skills/ralph-loop/references/init-resume-recovery.md +127 -127
  420. package/templates/skills/ralph-loop/references/module-transition.md +151 -151
  421. package/templates/skills/ralph-loop/references/multi-module-queue.md +171 -171
  422. package/templates/skills/ralph-loop/references/parallel-execution.md +246 -246
  423. package/templates/skills/ralph-loop/references/section-splitting.md +439 -439
  424. package/templates/skills/ralph-loop/references/task-transform-legacy.md +256 -256
  425. package/templates/skills/ralph-loop/references/team-orchestration.md +547 -547
  426. package/templates/skills/ralph-loop/steps/step-00-init.md +150 -150
  427. package/templates/skills/ralph-loop/steps/step-01-task.md +174 -174
  428. package/templates/skills/ralph-loop/steps/step-02-execute.md +177 -177
  429. package/templates/skills/ralph-loop/steps/step-03-commit.md +92 -92
  430. package/templates/skills/ralph-loop/steps/step-04-check.md +207 -207
  431. package/templates/skills/ralph-loop/steps/step-05-report.md +175 -175
  432. package/templates/skills/refactor/SKILL.md +56 -56
  433. package/templates/skills/refactor/steps/step-01-discover.md +60 -60
  434. package/templates/skills/refactor/steps/step-02-execute.md +67 -67
  435. package/templates/skills/review-code/SKILL.md +95 -94
  436. package/templates/skills/review-code/references/clean-code-principles.md +292 -292
  437. package/templates/skills/review-code/references/code-quality-metrics.md +174 -174
  438. package/templates/skills/review-code/references/feedback-patterns.md +149 -149
  439. package/templates/skills/review-code/references/owasp-api-top10.md +243 -243
  440. package/templates/skills/review-code/references/security-checklist.md +212 -212
  441. package/templates/skills/review-code/steps/step-01-smartstack.md +96 -96
  442. package/templates/skills/review-code/steps/step-02-detailed-review.md +80 -80
  443. package/templates/skills/review-code/steps/step-03-react.md +44 -44
  444. package/templates/skills/ui-components/SKILL.md +137 -137
  445. package/templates/skills/ui-components/accessibility.md +170 -170
  446. package/templates/skills/ui-components/patterns/dashboard-chart.md +327 -327
  447. package/templates/skills/ui-components/patterns/data-table.md +39 -39
  448. package/templates/skills/ui-components/patterns/entity-card.md +77 -77
  449. package/templates/skills/ui-components/patterns/grid-layout.md +91 -91
  450. package/templates/skills/ui-components/patterns/kanban.md +43 -43
  451. package/templates/skills/ui-components/responsive-guidelines.md +278 -278
  452. package/templates/skills/ui-components/style-guide.md +113 -113
  453. package/templates/skills/utils/SKILL.md +44 -44
  454. package/templates/skills/utils/subcommands/test-web-config.md +152 -152
  455. package/templates/skills/utils/subcommands/test-web.md +123 -123
  456. package/templates/skills/validate/SKILL.md +181 -181
  457. package/templates/skills/validate-feature/SKILL.md +101 -101
  458. package/templates/skills/validate-feature/references/api-smoke-tests.md +140 -140
  459. package/templates/skills/validate-feature/references/db-validation-checks.md +180 -180
  460. package/templates/skills/validate-feature/steps/step-00-dependencies.md +121 -121
  461. package/templates/skills/validate-feature/steps/step-01-compile.md +39 -39
  462. package/templates/skills/validate-feature/steps/step-02-unit-tests.md +45 -45
  463. package/templates/skills/validate-feature/steps/step-03-integration-tests.md +53 -53
  464. package/templates/skills/validate-feature/steps/step-04-api-smoke.md +94 -94
  465. package/templates/skills/validate-feature/steps/step-05-db-validation.md +149 -149
  466. package/templates/skills/workflow/SKILL.md +127 -127
  467. package/templates/skills/workflow/steps/step-00-init.md +57 -57
  468. package/templates/skills/workflow/steps/step-01-implementation.md +84 -84
  469. package/templates/test-web/api-health.json +38 -38
  470. package/templates/test-web/minimal.json +19 -19
  471. package/templates/test-web/npm-package.json +46 -46
  472. package/templates/test-web/seo-check.json +54 -54
@@ -1,166 +1,166 @@
1
- /* ============================================
2
- REVIEW PANEL
3
- ============================================ */
4
- let reviewPanelOpen = false;
5
- let reviewFilter = 'all';
6
-
7
- function toggleReviewPanel() {
8
- reviewPanelOpen = !reviewPanelOpen;
9
- const panel = document.getElementById('reviewPanel');
10
- const body = document.getElementById('appBody');
11
- const btn = document.getElementById('reviewToggleBtn');
12
-
13
- if (reviewPanelOpen) {
14
- panel.classList.add('visible');
15
- body.classList.add('review-open');
16
- btn.classList.add('active');
17
- } else {
18
- panel.classList.remove('visible');
19
- body.classList.remove('review-open');
20
- btn.classList.remove('active');
21
- }
22
-
23
- renderReviewPanel();
24
- }
25
-
26
- function filterReviewComments(filter) {
27
- reviewFilter = filter;
28
- // Update active filter button
29
- document.querySelectorAll('.review-filter-btn').forEach(btn => {
30
- btn.classList.toggle('active', btn.dataset.filter === filter);
31
- });
32
- renderReviewPanel();
33
- }
34
-
35
- function renderReviewPanel() {
36
- const comments = data.comments || [];
37
-
38
- // Update header badge
39
- const toReviewCount = comments.filter(c => c.status === 'to-review').length;
40
- const badge = document.getElementById('reviewBadge');
41
- if (badge) {
42
- badge.textContent = toReviewCount;
43
- badge.classList.toggle('hidden', toReviewCount === 0);
44
- }
45
-
46
- // Update stats
47
- const totalEl = document.getElementById('reviewStatTotal');
48
- const toReviewEl = document.getElementById('reviewStatToReview');
49
- const validatedEl = document.getElementById('reviewStatValidated');
50
- if (totalEl) totalEl.textContent = comments.length;
51
- if (toReviewEl) toReviewEl.textContent = toReviewCount;
52
- if (validatedEl) validatedEl.textContent = comments.filter(c => c.status === 'validated').length;
53
-
54
- // Filter comments
55
- let filtered = comments;
56
- if (reviewFilter === 'to-review') {
57
- filtered = comments.filter(c => c.status === 'to-review');
58
- } else if (reviewFilter === 'validated') {
59
- filtered = comments.filter(c => c.status === 'validated');
60
- }
61
-
62
- // Render comment list
63
- const container = document.getElementById('reviewCommentsList');
64
- if (!container) return;
65
-
66
- if (filtered.length === 0) {
67
- container.innerHTML = '<div class="review-empty">Aucun commentaire' +
68
- (reviewFilter !== 'all' ? ' avec ce filtre' : '') + '.</div>';
69
- return;
70
- }
71
-
72
- container.innerHTML = filtered.map((c, i) => {
73
- const globalIndex = data.comments.indexOf(c);
74
- const sectionLabel = getSectionLabel(c.sectionId);
75
- const date = c.timestamp ? new Date(c.timestamp).toLocaleDateString('fr-FR', { day: '2-digit', month: '2-digit' }) : '';
76
-
77
- return `
78
- <div class="review-comment-item" onclick="navigateToComment('${c.sectionId}', ${c.cardIndex})">
79
- <div class="review-comment-section">${sectionLabel}</div>
80
- <div class="review-comment-text">${c.content}</div>
81
- <div class="review-comment-footer">
82
- <span class="review-comment-author">${c.author || 'Utilisateur'} - ${date}</span>
83
- <div class="review-comment-actions">
84
- <button class="review-action-btn ${c.status === 'validated' ? 'reject' : 'validate'}"
85
- onclick="event.stopPropagation();toggleCommentStatus(${globalIndex})"
86
- title="${c.status === 'validated' ? 'Remettre a revoir' : 'Valider'}">
87
- ${c.status === 'validated' ? 'A revoir' : 'Valider'}
88
- </button>
89
- <button class="review-action-btn delete"
90
- onclick="event.stopPropagation();deleteComment(${globalIndex})"
91
- title="Supprimer">
92
- &#10005;
93
- </button>
94
- </div>
95
- </div>
96
- </div>
97
- `;
98
- }).join('');
99
- }
100
-
101
- function getSectionLabel(sectionId) {
102
- const labels = {
103
- 'cadrage-context': 'Contexte',
104
- 'cadrage-stakeholders': 'Parties prenantes',
105
- 'cadrage-scope': 'Perimetre',
106
- 'cadrage-risks': 'Risques',
107
- 'cadrage-success': 'Criteres',
108
- 'decomp-modules': 'Domaines',
109
- 'decomp-dependencies': 'Dependances',
110
- 'consol-interactions': 'Interactions',
111
- 'consol-permissions': 'Acces',
112
- 'consol-flows': 'Parcours',
113
- 'handoff-summary': 'Synthese'
114
- };
115
- if (labels[sectionId]) return labels[sectionId];
116
- if (sectionId.startsWith('module-spec-')) {
117
- const code = sectionId.replace('module-spec-', '');
118
- const mod = data.modules.find(m => m.code === code);
119
- return mod ? mod.name : code;
120
- }
121
- // Handle module structure sections (module-struct-{code}-{section})
122
- const structMatch = sectionId.match(/^module-struct-(.+?)-(.+)$/);
123
- if (structMatch) {
124
- const mod = data.modules.find(m => m.code === structMatch[1]);
125
- const modName = mod ? mod.name : structMatch[1];
126
- return modName + ' > Structure > ' + structMatch[2];
127
- }
128
- // Handle list-based sectionIds (ucList-*, brList-*, entList-*)
129
- const listMatch = sectionId.match(/^(uc|br|ent)List-(.+)$/);
130
- if (listMatch) {
131
- const tabLabels = { uc: 'Cas d\'utilisation', br: 'Regles metier', ent: 'Donnees' };
132
- const mod = data.modules.find(m => m.code === listMatch[2]);
133
- const modName = mod ? mod.name : listMatch[2];
134
- return modName + ' > ' + (tabLabels[listMatch[1]] || listMatch[1]);
135
- }
136
- return sectionId;
137
- }
138
-
139
- function navigateToComment(sectionId, cardIndex) {
140
- // Handle list-based sectionIds (ucList-*, brList-*, entList-*) → navigate to module + tab
141
- const listMatch = sectionId.match(/^(uc|br|ent)List-(.+)$/);
142
- if (listMatch) {
143
- const [, tabType, moduleCode] = listMatch;
144
- showSection('module-spec-' + moduleCode);
145
- setTimeout(() => {
146
- switchTab(moduleCode, tabType);
147
- scrollToCommentThread(sectionId, cardIndex);
148
- }, 150);
149
- } else {
150
- showSection(sectionId);
151
- scrollToCommentThread(sectionId, cardIndex);
152
- }
153
- }
154
-
155
- function scrollToCommentThread(sectionId, cardIndex) {
156
- setTimeout(() => {
157
- const thread = document.getElementById('comment-thread-' + sectionId + '-' + cardIndex);
158
- if (thread && !thread.classList.contains('visible')) {
159
- thread.classList.add('visible');
160
- }
161
- const container = document.querySelector(`.comment-btn-container[data-section-id="${sectionId}"][data-card-index="${cardIndex}"]`);
162
- if (container) {
163
- container.scrollIntoView({ behavior: 'smooth', block: 'center' });
164
- }
165
- }, 100);
166
- }
1
+ /* ============================================
2
+ REVIEW PANEL
3
+ ============================================ */
4
+ let reviewPanelOpen = false;
5
+ let reviewFilter = 'all';
6
+
7
+ function toggleReviewPanel() {
8
+ reviewPanelOpen = !reviewPanelOpen;
9
+ const panel = document.getElementById('reviewPanel');
10
+ const body = document.getElementById('appBody');
11
+ const btn = document.getElementById('reviewToggleBtn');
12
+
13
+ if (reviewPanelOpen) {
14
+ panel.classList.add('visible');
15
+ body.classList.add('review-open');
16
+ btn.classList.add('active');
17
+ } else {
18
+ panel.classList.remove('visible');
19
+ body.classList.remove('review-open');
20
+ btn.classList.remove('active');
21
+ }
22
+
23
+ renderReviewPanel();
24
+ }
25
+
26
+ function filterReviewComments(filter) {
27
+ reviewFilter = filter;
28
+ // Update active filter button
29
+ document.querySelectorAll('.review-filter-btn').forEach(btn => {
30
+ btn.classList.toggle('active', btn.dataset.filter === filter);
31
+ });
32
+ renderReviewPanel();
33
+ }
34
+
35
+ function renderReviewPanel() {
36
+ const comments = data.comments || [];
37
+
38
+ // Update header badge
39
+ const toReviewCount = comments.filter(c => c.status === 'to-review').length;
40
+ const badge = document.getElementById('reviewBadge');
41
+ if (badge) {
42
+ badge.textContent = toReviewCount;
43
+ badge.classList.toggle('hidden', toReviewCount === 0);
44
+ }
45
+
46
+ // Update stats
47
+ const totalEl = document.getElementById('reviewStatTotal');
48
+ const toReviewEl = document.getElementById('reviewStatToReview');
49
+ const validatedEl = document.getElementById('reviewStatValidated');
50
+ if (totalEl) totalEl.textContent = comments.length;
51
+ if (toReviewEl) toReviewEl.textContent = toReviewCount;
52
+ if (validatedEl) validatedEl.textContent = comments.filter(c => c.status === 'validated').length;
53
+
54
+ // Filter comments
55
+ let filtered = comments;
56
+ if (reviewFilter === 'to-review') {
57
+ filtered = comments.filter(c => c.status === 'to-review');
58
+ } else if (reviewFilter === 'validated') {
59
+ filtered = comments.filter(c => c.status === 'validated');
60
+ }
61
+
62
+ // Render comment list
63
+ const container = document.getElementById('reviewCommentsList');
64
+ if (!container) return;
65
+
66
+ if (filtered.length === 0) {
67
+ container.innerHTML = '<div class="review-empty">Aucun commentaire' +
68
+ (reviewFilter !== 'all' ? ' avec ce filtre' : '') + '.</div>';
69
+ return;
70
+ }
71
+
72
+ container.innerHTML = filtered.map((c, i) => {
73
+ const globalIndex = data.comments.indexOf(c);
74
+ const sectionLabel = getSectionLabel(c.sectionId);
75
+ const date = c.timestamp ? new Date(c.timestamp).toLocaleDateString('fr-FR', { day: '2-digit', month: '2-digit' }) : '';
76
+
77
+ return `
78
+ <div class="review-comment-item" onclick="navigateToComment('${c.sectionId}', ${c.cardIndex})">
79
+ <div class="review-comment-section">${sectionLabel}</div>
80
+ <div class="review-comment-text">${c.content}</div>
81
+ <div class="review-comment-footer">
82
+ <span class="review-comment-author">${c.author || 'Utilisateur'} - ${date}</span>
83
+ <div class="review-comment-actions">
84
+ <button class="review-action-btn ${c.status === 'validated' ? 'reject' : 'validate'}"
85
+ onclick="event.stopPropagation();toggleCommentStatus(${globalIndex})"
86
+ title="${c.status === 'validated' ? 'Remettre a revoir' : 'Valider'}">
87
+ ${c.status === 'validated' ? 'A revoir' : 'Valider'}
88
+ </button>
89
+ <button class="review-action-btn delete"
90
+ onclick="event.stopPropagation();deleteComment(${globalIndex})"
91
+ title="Supprimer">
92
+ &#10005;
93
+ </button>
94
+ </div>
95
+ </div>
96
+ </div>
97
+ `;
98
+ }).join('');
99
+ }
100
+
101
+ function getSectionLabel(sectionId) {
102
+ const labels = {
103
+ 'cadrage-context': 'Contexte',
104
+ 'cadrage-stakeholders': 'Parties prenantes',
105
+ 'cadrage-scope': 'Perimetre',
106
+ 'cadrage-risks': 'Risques',
107
+ 'cadrage-success': 'Criteres',
108
+ 'decomp-modules': 'Domaines',
109
+ 'decomp-dependencies': 'Dependances',
110
+ 'consol-interactions': 'Interactions',
111
+ 'consol-permissions': 'Acces',
112
+ 'consol-flows': 'Parcours',
113
+ 'handoff-summary': 'Synthese'
114
+ };
115
+ if (labels[sectionId]) return labels[sectionId];
116
+ if (sectionId.startsWith('module-spec-')) {
117
+ const code = sectionId.replace('module-spec-', '');
118
+ const mod = data.modules.find(m => m.code === code);
119
+ return mod ? mod.name : code;
120
+ }
121
+ // Handle module structure sections (module-struct-{code}-{section})
122
+ const structMatch = sectionId.match(/^module-struct-(.+?)-(.+)$/);
123
+ if (structMatch) {
124
+ const mod = data.modules.find(m => m.code === structMatch[1]);
125
+ const modName = mod ? mod.name : structMatch[1];
126
+ return modName + ' > Structure > ' + structMatch[2];
127
+ }
128
+ // Handle list-based sectionIds (ucList-*, brList-*, entList-*)
129
+ const listMatch = sectionId.match(/^(uc|br|ent)List-(.+)$/);
130
+ if (listMatch) {
131
+ const tabLabels = { uc: 'Cas d\'utilisation', br: 'Regles metier', ent: 'Donnees' };
132
+ const mod = data.modules.find(m => m.code === listMatch[2]);
133
+ const modName = mod ? mod.name : listMatch[2];
134
+ return modName + ' > ' + (tabLabels[listMatch[1]] || listMatch[1]);
135
+ }
136
+ return sectionId;
137
+ }
138
+
139
+ function navigateToComment(sectionId, cardIndex) {
140
+ // Handle list-based sectionIds (ucList-*, brList-*, entList-*) → navigate to module + tab
141
+ const listMatch = sectionId.match(/^(uc|br|ent)List-(.+)$/);
142
+ if (listMatch) {
143
+ const [, tabType, moduleCode] = listMatch;
144
+ showSection('module-spec-' + moduleCode);
145
+ setTimeout(() => {
146
+ switchTab(moduleCode, tabType);
147
+ scrollToCommentThread(sectionId, cardIndex);
148
+ }, 150);
149
+ } else {
150
+ showSection(sectionId);
151
+ scrollToCommentThread(sectionId, cardIndex);
152
+ }
153
+ }
154
+
155
+ function scrollToCommentThread(sectionId, cardIndex) {
156
+ setTimeout(() => {
157
+ const thread = document.getElementById('comment-thread-' + sectionId + '-' + cardIndex);
158
+ if (thread && !thread.classList.contains('visible')) {
159
+ thread.classList.add('visible');
160
+ }
161
+ const container = document.querySelector(`.comment-btn-container[data-section-id="${sectionId}"][data-card-index="${cardIndex}"]`);
162
+ if (container) {
163
+ container.scrollIntoView({ behavior: 'smooth', block: 'center' });
164
+ }
165
+ }, 100);
166
+ }
@@ -1,38 +1,38 @@
1
- /* ============================================
2
- DESIGN SYSTEM - SmartStack Business Analysis
3
- ============================================ */
4
- :root {
5
- --primary: #6366f1;
6
- --primary-dark: #4f46e5;
7
- --primary-light: #818cf8;
8
- --secondary: #f97316;
9
- --accent: #06b6d4;
10
- --bg-dark: #0f172a;
11
- --bg-card: #1e293b;
12
- --bg-hover: #334155;
13
- --bg-input: #151d2e;
14
- --text: #b8c4d1;
15
- --text-muted: #8a9bb0;
16
- --text-bright: #e2e8f0;
17
- --border: #334155;
18
- --border-light: #475569;
19
- --success: #22c55e;
20
- --warning: #eab308;
21
- --error: #ef4444;
22
- --info: #3b82f6;
23
- --sidebar-width: 280px;
24
- --header-height: 52px;
25
- --transition-fast: 0.15s ease;
26
- --transition-normal: 0.3s ease;
27
- }
28
-
29
- * { margin: 0; padding: 0; box-sizing: border-box; }
30
- html { scroll-behavior: smooth; }
31
-
32
- body {
33
- font-family: 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
34
- background: var(--bg-dark);
35
- color: var(--text);
36
- line-height: 1.7;
37
- min-height: 100vh;
38
- }
1
+ /* ============================================
2
+ DESIGN SYSTEM - SmartStack Business Analysis
3
+ ============================================ */
4
+ :root {
5
+ --primary: #6366f1;
6
+ --primary-dark: #4f46e5;
7
+ --primary-light: #818cf8;
8
+ --secondary: #f97316;
9
+ --accent: #06b6d4;
10
+ --bg-dark: #0f172a;
11
+ --bg-card: #1e293b;
12
+ --bg-hover: #334155;
13
+ --bg-input: #151d2e;
14
+ --text: #b8c4d1;
15
+ --text-muted: #8a9bb0;
16
+ --text-bright: #e2e8f0;
17
+ --border: #334155;
18
+ --border-light: #475569;
19
+ --success: #22c55e;
20
+ --warning: #eab308;
21
+ --error: #ef4444;
22
+ --info: #3b82f6;
23
+ --sidebar-width: 280px;
24
+ --header-height: 52px;
25
+ --transition-fast: 0.15s ease;
26
+ --transition-normal: 0.3s ease;
27
+ }
28
+
29
+ * { margin: 0; padding: 0; box-sizing: border-box; }
30
+ html { scroll-behavior: smooth; }
31
+
32
+ body {
33
+ font-family: 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
34
+ background: var(--bg-dark);
35
+ color: var(--text);
36
+ line-height: 1.7;
37
+ min-height: 100vh;
38
+ }
@@ -1,101 +1,101 @@
1
- /* ============================================
2
- LAYOUT
3
- ============================================ */
4
- .app { display: flex; flex-direction: column; min-height: 100vh; }
5
-
6
- .header {
7
- background: var(--bg-card);
8
- border-bottom: 1px solid var(--border);
9
- height: var(--header-height);
10
- display: flex;
11
- align-items: center;
12
- padding: 0 1.5rem;
13
- gap: 1rem;
14
- position: sticky;
15
- top: 0;
16
- z-index: 100;
17
- }
18
-
19
- .header-logo {
20
- width: 32px; height: 32px;
21
- background: linear-gradient(135deg, var(--primary), var(--secondary));
22
- border-radius: 6px;
23
- display: flex; align-items: center; justify-content: center;
24
- font-weight: 700; font-size: 0.85rem; color: #fff;
25
- flex-shrink: 0;
26
- }
27
-
28
- .header-title { font-size: 1rem; font-weight: 600; color: var(--text-bright); }
29
- .header-sep { width: 1px; height: 24px; background: var(--border); }
30
- .header-app-name { font-size: 0.9rem; color: var(--primary-light); font-weight: 500; }
31
- .header-spacer { flex: 1; }
32
-
33
- .header-actions { display: flex; gap: 0.5rem; }
34
-
35
- .body { display: flex; flex: 1; }
36
-
37
- /* ============================================
38
- SIDEBAR - Container
39
- ============================================ */
40
- .sidebar {
41
- width: var(--sidebar-width);
42
- background: var(--bg-card);
43
- border-right: 1px solid var(--border);
44
- overflow-y: auto;
45
- height: calc(100vh - var(--header-height));
46
- position: sticky;
47
- top: var(--header-height);
48
- flex-shrink: 0;
49
- }
50
-
51
- .sidebar::-webkit-scrollbar { width: 4px; }
52
- .sidebar::-webkit-scrollbar-thumb { background: var(--border); border-radius: 4px; }
53
-
54
- /* ============================================
55
- MAIN CONTENT - FULL WIDTH
56
- ============================================ */
57
- .main {
58
- flex: 1;
59
- padding: 2rem 3rem;
60
- overflow-y: auto;
61
- height: calc(100vh - var(--header-height));
62
- }
63
-
64
- .section { margin-bottom: 4rem; }
65
- .section-title {
66
- font-size: 1.4rem;
67
- color: var(--text-bright);
68
- font-weight: 600;
69
- margin-bottom: 0.5rem;
70
- padding-bottom: 0.5rem;
71
- border-bottom: 2px solid var(--primary);
72
- }
73
- .section-subtitle {
74
- font-size: 0.9rem;
75
- color: var(--text-muted);
76
- margin-bottom: 1.5rem;
77
- }
78
-
79
- /* ============================================
80
- RESPONSIVE
81
- ============================================ */
82
- @media (max-width: 768px) {
83
- .sidebar { display: none; }
84
- .main { padding: 1rem; }
85
- .form-row { grid-template-columns: 1fr; }
86
- .stakeholder-grid { grid-template-columns: 1fr; }
87
- }
88
-
89
- /* ============================================
90
- PRINT
91
- ============================================ */
92
- @media print {
93
- .sidebar, .header-actions, .add-btn, .uc-actions, .inline-form, .module-card-remove { display: none !important; }
94
- .main { max-width: 100%; padding: 0; }
95
- .section { display: block !important; page-break-inside: avoid; }
96
- body { background: #fff; color: #1a1a1a; }
97
- .card, .uc-item, .br-item, .module-card, .entity-block, .interaction-item { border-color: #ddd; }
98
- .tab-panel { display: block !important; }
99
- .tab-bar { display: none; }
100
- .review-panel, .comment-btn-container { display: none !important; }
101
- }
1
+ /* ============================================
2
+ LAYOUT
3
+ ============================================ */
4
+ .app { display: flex; flex-direction: column; min-height: 100vh; }
5
+
6
+ .header {
7
+ background: var(--bg-card);
8
+ border-bottom: 1px solid var(--border);
9
+ height: var(--header-height);
10
+ display: flex;
11
+ align-items: center;
12
+ padding: 0 1.5rem;
13
+ gap: 1rem;
14
+ position: sticky;
15
+ top: 0;
16
+ z-index: 100;
17
+ }
18
+
19
+ .header-logo {
20
+ width: 32px; height: 32px;
21
+ background: linear-gradient(135deg, var(--primary), var(--secondary));
22
+ border-radius: 6px;
23
+ display: flex; align-items: center; justify-content: center;
24
+ font-weight: 700; font-size: 0.85rem; color: #fff;
25
+ flex-shrink: 0;
26
+ }
27
+
28
+ .header-title { font-size: 1rem; font-weight: 600; color: var(--text-bright); }
29
+ .header-sep { width: 1px; height: 24px; background: var(--border); }
30
+ .header-app-name { font-size: 0.9rem; color: var(--primary-light); font-weight: 500; }
31
+ .header-spacer { flex: 1; }
32
+
33
+ .header-actions { display: flex; gap: 0.5rem; }
34
+
35
+ .body { display: flex; flex: 1; }
36
+
37
+ /* ============================================
38
+ SIDEBAR - Container
39
+ ============================================ */
40
+ .sidebar {
41
+ width: var(--sidebar-width);
42
+ background: var(--bg-card);
43
+ border-right: 1px solid var(--border);
44
+ overflow-y: auto;
45
+ height: calc(100vh - var(--header-height));
46
+ position: sticky;
47
+ top: var(--header-height);
48
+ flex-shrink: 0;
49
+ }
50
+
51
+ .sidebar::-webkit-scrollbar { width: 4px; }
52
+ .sidebar::-webkit-scrollbar-thumb { background: var(--border); border-radius: 4px; }
53
+
54
+ /* ============================================
55
+ MAIN CONTENT - FULL WIDTH
56
+ ============================================ */
57
+ .main {
58
+ flex: 1;
59
+ padding: 2rem 3rem;
60
+ overflow-y: auto;
61
+ height: calc(100vh - var(--header-height));
62
+ }
63
+
64
+ .section { margin-bottom: 4rem; }
65
+ .section-title {
66
+ font-size: 1.4rem;
67
+ color: var(--text-bright);
68
+ font-weight: 600;
69
+ margin-bottom: 0.5rem;
70
+ padding-bottom: 0.5rem;
71
+ border-bottom: 2px solid var(--primary);
72
+ }
73
+ .section-subtitle {
74
+ font-size: 0.9rem;
75
+ color: var(--text-muted);
76
+ margin-bottom: 1.5rem;
77
+ }
78
+
79
+ /* ============================================
80
+ RESPONSIVE
81
+ ============================================ */
82
+ @media (max-width: 768px) {
83
+ .sidebar { display: none; }
84
+ .main { padding: 1rem; }
85
+ .form-row { grid-template-columns: 1fr; }
86
+ .stakeholder-grid { grid-template-columns: 1fr; }
87
+ }
88
+
89
+ /* ============================================
90
+ PRINT
91
+ ============================================ */
92
+ @media print {
93
+ .sidebar, .header-actions, .add-btn, .uc-actions, .inline-form, .module-card-remove { display: none !important; }
94
+ .main { max-width: 100%; padding: 0; }
95
+ .section { display: block !important; page-break-inside: avoid; }
96
+ body { background: #fff; color: #1a1a1a; }
97
+ .card, .uc-item, .br-item, .module-card, .entity-block, .interaction-item { border-color: #ddd; }
98
+ .tab-panel { display: block !important; }
99
+ .tab-bar { display: none; }
100
+ .review-panel, .comment-btn-container { display: none !important; }
101
+ }