@atlashub/smartstack-cli 1.13.2 → 1.14.1

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 (214) hide show
  1. package/.documentation/agents.html +1 -1
  2. package/.documentation/apex.html +1 -1
  3. package/.documentation/business-analyse.html +1 -1
  4. package/.documentation/cli-commands.html +3 -3
  5. package/.documentation/commands.html +1 -1
  6. package/.documentation/efcore.html +1 -1
  7. package/.documentation/gitflow.html +231 -236
  8. package/.documentation/hooks.html +1 -1
  9. package/.documentation/index.html +1 -1
  10. package/.documentation/init.html +3 -3
  11. package/.documentation/installation.html +1075 -351
  12. package/.documentation/ralph-loop.html +1 -1
  13. package/.documentation/test-web.html +1 -1
  14. package/README.md +88 -20
  15. package/config/default-config.json +10 -1
  16. package/dist/index.js +276 -85
  17. package/dist/index.js.map +1 -1
  18. package/package.json +1 -1
  19. package/templates/agents/code-reviewer.md +163 -0
  20. package/templates/agents/efcore/db-deploy.md +25 -7
  21. package/templates/agents/efcore/db-reset.md +31 -10
  22. package/templates/agents/efcore/db-status.md +22 -5
  23. package/templates/agents/efcore/migration.md +70 -20
  24. package/templates/agents/gitflow/cleanup.md +8 -1
  25. package/templates/agents/gitflow/commit.md +7 -5
  26. package/templates/agents/gitflow/finish.md +6 -4
  27. package/templates/agents/gitflow/pr.md +8 -1
  28. package/templates/agents/gitflow/start.md +1 -1
  29. package/templates/commands/check-version.md +267 -0
  30. package/templates/commands/efcore/_shared.md +31 -2
  31. package/templates/commands/efcore/db-reset.md +18 -6
  32. package/templates/commands/efcore/migration.md +1 -1
  33. package/templates/commands/efcore/rebase-snapshot.md +1 -1
  34. package/templates/commands/efcore/squash.md +1 -0
  35. package/templates/commands/refactor.md +164 -0
  36. package/templates/project/DependencyInjection.Application.cs.template +25 -0
  37. package/templates/project/DependencyInjection.Infrastructure.cs.template +61 -0
  38. package/templates/project/DesignTimeExtensionsDbContextFactory.cs.template +70 -0
  39. package/templates/project/ExampleEntity.cs.template +116 -0
  40. package/templates/project/ExampleEntityConfiguration.cs.template +64 -0
  41. package/templates/project/ExampleService.cs.template +146 -0
  42. package/templates/project/ExtensionsDbContext.cs.template +41 -0
  43. package/templates/project/IExtensionsDbContext.cs.template +22 -0
  44. package/templates/project/Program.cs.template +47 -0
  45. package/templates/project/README.md +79 -0
  46. package/templates/ralph/README.md +10 -8
  47. package/templates/ralph/ralph.config.yaml +2 -2
  48. package/templates/skills/_shared.md +44 -44
  49. package/templates/skills/ai-prompt/SKILL.md +55 -55
  50. package/templates/skills/apex/SKILL.md +235 -0
  51. package/templates/skills/apex/steps/step-00-init.md +203 -0
  52. package/templates/skills/apex/steps/step-01-analyze.md +210 -0
  53. package/templates/skills/apex/steps/step-02-plan.md +217 -0
  54. package/templates/skills/apex/steps/step-03-execute.md +178 -0
  55. package/templates/skills/apex/steps/step-04-validate.md +217 -0
  56. package/templates/skills/apex/steps/step-05-examine.md +207 -0
  57. package/templates/skills/apex/steps/step-06-resolve.md +181 -0
  58. package/templates/skills/apex/steps/step-07-tests.md +206 -0
  59. package/templates/skills/apex/steps/step-08-run-tests.md +207 -0
  60. package/templates/skills/apex/templates/00-context.md +46 -0
  61. package/templates/skills/apex/templates/01-analyze.md +63 -0
  62. package/templates/skills/apex/templates/02-plan.md +63 -0
  63. package/templates/skills/apex/templates/03-execute.md +34 -0
  64. package/templates/skills/apex/templates/04-validate.md +61 -0
  65. package/templates/skills/apex/templates/05-examine.md +58 -0
  66. package/templates/skills/apex/templates/06-resolve.md +39 -0
  67. package/templates/skills/apex/templates/07-tests.md +56 -0
  68. package/templates/skills/apex/templates/08-run-tests.md +41 -0
  69. package/templates/skills/apex/templates/README.md +69 -0
  70. package/templates/skills/application/SKILL.md +50 -50
  71. package/templates/skills/application/templates-backend.md +25 -25
  72. package/templates/skills/application/templates-frontend.md +43 -43
  73. package/templates/skills/application/templates-i18n.md +29 -29
  74. package/templates/skills/application/templates-seed.md +77 -77
  75. package/templates/skills/business-analyse/SKILL.md +223 -0
  76. package/templates/skills/business-analyse/_shared.md +258 -0
  77. package/templates/skills/business-analyse/questionnaire/01-context.md +33 -0
  78. package/templates/skills/business-analyse/questionnaire/02-stakeholders.md +35 -0
  79. package/templates/skills/business-analyse/questionnaire/03-scope.md +35 -0
  80. package/templates/skills/business-analyse/questionnaire/04-data.md +36 -0
  81. package/templates/skills/business-analyse/questionnaire/05-integrations.md +36 -0
  82. package/templates/skills/business-analyse/questionnaire/06-security.md +40 -0
  83. package/templates/skills/business-analyse/questionnaire/07-ui.md +36 -0
  84. package/templates/skills/business-analyse/questionnaire/08-performance.md +35 -0
  85. package/templates/skills/business-analyse/questionnaire/09-constraints.md +35 -0
  86. package/templates/skills/business-analyse/questionnaire/10-documentation.md +35 -0
  87. package/templates/skills/business-analyse/questionnaire.md +177 -177
  88. package/templates/skills/business-analyse/react/components.md +340 -0
  89. package/templates/skills/business-analyse/react/i18n-template.md +245 -0
  90. package/templates/skills/business-analyse/react/schema.md +151 -0
  91. package/templates/skills/business-analyse/steps/step-00-init.md +293 -0
  92. package/templates/skills/business-analyse/steps/step-01-discover.md +267 -0
  93. package/templates/skills/business-analyse/steps/step-02-analyse.md +243 -0
  94. package/templates/skills/business-analyse/steps/step-03-specify.md +317 -0
  95. package/templates/skills/business-analyse/steps/step-04-validate.md +239 -0
  96. package/templates/skills/business-analyse/steps/step-05-handoff.md +336 -0
  97. package/templates/skills/business-analyse/steps/step-06-doc-html.md +261 -0
  98. package/templates/skills/business-analyse/templates/00-context.md +105 -0
  99. package/templates/skills/business-analyse/templates/frd-brd.md +97 -0
  100. package/templates/skills/business-analyse/templates/frd-discovery.md +78 -0
  101. package/templates/skills/business-analyse/templates/frd-handoff.md +118 -0
  102. package/templates/skills/business-analyse/templates/frd-spec.md +168 -0
  103. package/templates/skills/business-analyse/templates-frd.md +217 -217
  104. package/templates/skills/business-analyse/templates-react.md +26 -26
  105. package/templates/skills/controller/SKILL.md +141 -92
  106. package/templates/skills/controller/postman-templates.md +15 -15
  107. package/templates/skills/controller/steps/step-00-init.md +191 -0
  108. package/templates/skills/controller/steps/step-01-analyze.md +146 -0
  109. package/templates/skills/controller/steps/step-02-plan.md +176 -0
  110. package/templates/skills/controller/steps/step-03-generate.md +219 -0
  111. package/templates/skills/controller/steps/step-04-perms.md +219 -0
  112. package/templates/skills/controller/steps/step-05-validate.md +107 -0
  113. package/templates/skills/controller/templates.md +77 -77
  114. package/templates/skills/documentation/SKILL.md +79 -79
  115. package/templates/skills/feature-full/SKILL.md +38 -38
  116. package/templates/skills/gitflow/SKILL.md +277 -0
  117. package/templates/{commands → skills}/gitflow/_shared.md +20 -20
  118. package/templates/skills/gitflow/phases/abort.md +173 -0
  119. package/templates/skills/gitflow/phases/cleanup.md +226 -0
  120. package/templates/skills/gitflow/phases/status.md +178 -0
  121. package/templates/skills/gitflow/steps/step-commit.md +255 -0
  122. package/templates/skills/gitflow/steps/step-finish.md +255 -0
  123. package/templates/skills/gitflow/steps/step-init.md +209 -0
  124. package/templates/skills/gitflow/steps/step-merge.md +225 -0
  125. package/templates/skills/gitflow/steps/step-plan.md +208 -0
  126. package/templates/skills/gitflow/steps/step-pr.md +235 -0
  127. package/templates/skills/gitflow/steps/step-start.md +334 -0
  128. package/templates/skills/gitflow/steps/step-sync.md +200 -0
  129. package/templates/skills/gitflow/templates/config.json +53 -0
  130. package/templates/skills/notification/SKILL.md +51 -51
  131. package/templates/skills/ralph-loop/SKILL.md +228 -0
  132. package/templates/skills/ralph-loop/steps/step-00-init.md +201 -0
  133. package/templates/skills/ralph-loop/steps/step-01-task.md +169 -0
  134. package/templates/skills/ralph-loop/steps/step-02-execute.md +173 -0
  135. package/templates/skills/ralph-loop/steps/step-03-commit.md +170 -0
  136. package/templates/skills/ralph-loop/steps/step-04-check.md +162 -0
  137. package/templates/skills/ralph-loop/steps/step-05-report.md +181 -0
  138. package/templates/skills/review-code/SKILL.md +219 -0
  139. package/templates/skills/review-code/references/clean-code-principles.md +140 -0
  140. package/templates/skills/review-code/references/code-quality-metrics.md +174 -0
  141. package/templates/skills/review-code/references/feedback-patterns.md +149 -0
  142. package/templates/skills/review-code/references/security-checklist.md +127 -0
  143. package/templates/skills/ui-components/SKILL.md +54 -54
  144. package/templates/skills/workflow/SKILL.md +46 -46
  145. package/templates/commands/ai-prompt.md +0 -315
  146. package/templates/commands/apex/1-analyze.md +0 -100
  147. package/templates/commands/apex/2-plan.md +0 -145
  148. package/templates/commands/apex/3-execute.md +0 -171
  149. package/templates/commands/apex/4-examine.md +0 -116
  150. package/templates/commands/apex/5-tasks.md +0 -209
  151. package/templates/commands/apex.md +0 -76
  152. package/templates/commands/application/create.md +0 -362
  153. package/templates/commands/application/templates-backend.md +0 -463
  154. package/templates/commands/application/templates-frontend.md +0 -517
  155. package/templates/commands/application/templates-i18n.md +0 -478
  156. package/templates/commands/application/templates-seed.md +0 -362
  157. package/templates/commands/application.md +0 -303
  158. package/templates/commands/business-analyse/0-orchestrate.md +0 -156
  159. package/templates/commands/business-analyse/1-init.md +0 -99
  160. package/templates/commands/business-analyse/2-discover.md +0 -143
  161. package/templates/commands/business-analyse/3-analyse.md +0 -106
  162. package/templates/commands/business-analyse/4-specify.md +0 -133
  163. package/templates/commands/business-analyse/5-validate.md +0 -132
  164. package/templates/commands/business-analyse/6-handoff.md +0 -157
  165. package/templates/commands/business-analyse/7-doc-html.md +0 -103
  166. package/templates/commands/business-analyse/_shared.md +0 -176
  167. package/templates/commands/business-analyse/bug.md +0 -118
  168. package/templates/commands/business-analyse/change-request.md +0 -144
  169. package/templates/commands/business-analyse/hotfix.md +0 -116
  170. package/templates/commands/business-analyse.md +0 -121
  171. package/templates/commands/controller/create.md +0 -216
  172. package/templates/commands/controller/postman-templates.md +0 -528
  173. package/templates/commands/controller/templates.md +0 -600
  174. package/templates/commands/controller.md +0 -337
  175. package/templates/commands/create/agent.md +0 -138
  176. package/templates/commands/create/command.md +0 -166
  177. package/templates/commands/create/hook.md +0 -234
  178. package/templates/commands/create/plugin.md +0 -329
  179. package/templates/commands/create/project.md +0 -508
  180. package/templates/commands/create/skill.md +0 -199
  181. package/templates/commands/create.md +0 -220
  182. package/templates/commands/documentation/module.md +0 -202
  183. package/templates/commands/documentation/templates.md +0 -432
  184. package/templates/commands/documentation.md +0 -190
  185. package/templates/commands/epct.md +0 -69
  186. package/templates/commands/explain.md +0 -186
  187. package/templates/commands/feature-full.md +0 -267
  188. package/templates/commands/gitflow/1-init.md +0 -188
  189. package/templates/commands/gitflow/10-start.md +0 -190
  190. package/templates/commands/gitflow/11-finish.md +0 -382
  191. package/templates/commands/gitflow/12-cleanup.md +0 -103
  192. package/templates/commands/gitflow/13-sync.md +0 -216
  193. package/templates/commands/gitflow/14-rebase.md +0 -251
  194. package/templates/commands/gitflow/2-status.md +0 -122
  195. package/templates/commands/gitflow/3-commit.md +0 -209
  196. package/templates/commands/gitflow/4-plan.md +0 -174
  197. package/templates/commands/gitflow/5-exec.md +0 -202
  198. package/templates/commands/gitflow/6-abort.md +0 -121
  199. package/templates/commands/gitflow/7-pull-request.md +0 -176
  200. package/templates/commands/gitflow/8-review.md +0 -113
  201. package/templates/commands/gitflow/9-merge.md +0 -157
  202. package/templates/commands/gitflow.md +0 -128
  203. package/templates/commands/implement.md +0 -663
  204. package/templates/commands/init.md +0 -567
  205. package/templates/commands/mcp-integration.md +0 -330
  206. package/templates/commands/notification.md +0 -129
  207. package/templates/commands/oneshot.md +0 -57
  208. package/templates/commands/quickstart.md +0 -154
  209. package/templates/commands/ralph-loop/cancel-ralph.md +0 -18
  210. package/templates/commands/ralph-loop/help.md +0 -126
  211. package/templates/commands/ralph-loop/ralph-loop.md +0 -120
  212. package/templates/commands/review.md +0 -106
  213. package/templates/commands/workflow.md +0 -193
  214. package/templates/gitflow/config.json +0 -138
@@ -0,0 +1,340 @@
1
+ # React Components - FRD Documentation
2
+
3
+ > **Usage:** React component templates for documentation pages
4
+ > **Loaded in:** step-06-doc-html.md
5
+ > **Context7:** /facebook/react, /lucide-icons/lucide-react
6
+
7
+ ---
8
+
9
+ ## FrdDocPage Component
10
+
11
+ ```tsx
12
+ // web/smartstack-web/src/pages/docs/business/{app}/{module}/FrdDocPage.tsx
13
+
14
+ import { Link } from 'react-router-dom';
15
+ import { useTranslation } from 'react-i18next';
16
+ import {
17
+ FileText,
18
+ Users,
19
+ Shield,
20
+ CheckCircle,
21
+ AlertTriangle,
22
+ ChevronRight,
23
+ ArrowRight,
24
+ List,
25
+ Layout,
26
+ Database
27
+ } from 'lucide-react';
28
+ import type { FrdData } from './types';
29
+
30
+ // Import data (generated from FRD)
31
+ import { frdData } from './frdData';
32
+
33
+ // Priority Badge Component
34
+ function PriorityBadge({ priority }: { priority: string }) {
35
+ const colors = {
36
+ Must: 'bg-red-500/10 text-red-600',
37
+ Should: 'bg-yellow-500/10 text-yellow-600',
38
+ Could: 'bg-blue-500/10 text-blue-600'
39
+ };
40
+ return (
41
+ <span className={`px-2 py-0.5 rounded text-xs font-medium ${colors[priority as keyof typeof colors] || 'bg-gray-500/10 text-gray-600'}`}>
42
+ {priority}
43
+ </span>
44
+ );
45
+ }
46
+
47
+ // Numbered Section Component
48
+ function NumberedSection({
49
+ number,
50
+ title,
51
+ icon: Icon,
52
+ children
53
+ }: {
54
+ number: number;
55
+ title: string;
56
+ icon: React.ComponentType<{ className?: string }>;
57
+ children: React.ReactNode;
58
+ }) {
59
+ return (
60
+ <section id={`section-${number}`} className="scroll-mt-4">
61
+ <h2 className="text-xl font-semibold mb-4 flex items-center gap-3">
62
+ <span className="w-8 h-8 rounded-full bg-[var(--color-primary-600)] text-white flex items-center justify-center text-sm font-bold">
63
+ {number}
64
+ </span>
65
+ <Icon className="w-5 h-5 text-[var(--color-primary-600)]" />
66
+ {title}
67
+ </h2>
68
+ <div className="card p-6">
69
+ {children}
70
+ </div>
71
+ </section>
72
+ );
73
+ }
74
+
75
+ // Export page component
76
+ export function {ModuleName}FrdDocPage() {
77
+ const { t } = useTranslation('docs-business');
78
+
79
+ return (
80
+ <div className="space-y-8">
81
+ {/* Component implementation follows standard patterns */}
82
+ </div>
83
+ );
84
+ }
85
+
86
+ export function {ModuleName}FrdDocPage() {
87
+ const { t } = useTranslation('docs-business');
88
+
89
+ return (
90
+ <div className="space-y-8">
91
+ {/* Breadcrumb */}
92
+ <nav className="flex items-center gap-2 text-sm text-[var(--text-secondary)]">
93
+ <Link to="/docs" className="hover:text-[var(--color-primary-600)]">
94
+ {t('breadcrumb.docs')}
95
+ </Link>
96
+ <span>/</span>
97
+ <Link to="/docs/business" className="hover:text-[var(--color-primary-600)]">
98
+ {t('breadcrumb.business')}
99
+ </Link>
100
+ <span>/</span>
101
+ <Link to={`/docs/business/${frdData.applicationName.toLowerCase()}`} className="hover:text-[var(--color-primary-600)]">
102
+ {t(`apps.${frdData.applicationName.toLowerCase()}.name`)}
103
+ </Link>
104
+ <span>/</span>
105
+ <span>{t(`modules.${frdData.moduleName.toLowerCase()}.name`)}</span>
106
+ </nav>
107
+
108
+ {/* Header */}
109
+ <header>
110
+ <div className="flex items-center gap-2 mb-2">
111
+ <span className="px-2 py-0.5 rounded bg-[var(--color-primary-600)]/10 text-[var(--color-primary-600)] text-xs font-medium">
112
+ {frdData.featureId}
113
+ </span>
114
+ <span className="px-2 py-0.5 rounded bg-green-500/10 text-green-600 text-xs font-medium">
115
+ v{frdData.version}
116
+ </span>
117
+ </div>
118
+ <h1 className="text-3xl font-bold mb-4 flex items-center gap-3">
119
+ <FileText className="w-8 h-8 text-[var(--color-primary-600)]" />
120
+ {t(`modules.${frdData.moduleName.toLowerCase()}.title`)}
121
+ </h1>
122
+ <p className="text-lg text-[var(--text-secondary)]">
123
+ {t(`modules.${frdData.moduleName.toLowerCase()}.subtitle`)}
124
+ </p>
125
+ </header>
126
+
127
+ {/* Table of Contents */}
128
+ <div className="card p-4 bg-[var(--bg-secondary)]">
129
+ <h2 className="font-semibold mb-3 flex items-center gap-2">
130
+ <List className="w-4 h-4" />
131
+ {t('common.tableOfContents')}
132
+ </h2>
133
+ <nav className="grid grid-cols-2 md:grid-cols-3 gap-2">
134
+ {['overview', 'useCases', 'businessRules', 'permissions', 'wireframes', 'api'].map((section, idx) => (
135
+ <a
136
+ key={section}
137
+ href={`#section-${idx + 1}`}
138
+ className="flex items-center gap-2 p-2 rounded hover:bg-[var(--bg-tertiary)] text-sm"
139
+ >
140
+ <ChevronRight className="w-4 h-4 text-[var(--color-primary-600)]" />
141
+ {t(`sections.${section}`)}
142
+ </a>
143
+ ))}
144
+ </nav>
145
+ </div>
146
+
147
+ {/* Sections follow standard pattern - see templates-react.md */}
148
+
149
+ {/* Section 1: Overview */}
150
+ <NumberedSection number={1} title={t('sections.overview')} icon={Layout}>
151
+ <p className="text-[var(--text-secondary)] mb-4">
152
+ {t(`modules.${frdData.moduleName.toLowerCase()}.overview`)}
153
+ </p>
154
+ <div className="grid grid-cols-2 md:grid-cols-4 gap-4 mt-4">
155
+ <div className="p-4 rounded-lg bg-[var(--bg-secondary)] text-center">
156
+ <div className="text-2xl font-bold text-[var(--color-primary-600)]">
157
+ {frdData.useCases.length}
158
+ </div>
159
+ <div className="text-sm text-[var(--text-secondary)]">{t('stats.useCases')}</div>
160
+ </div>
161
+ <div className="p-4 rounded-lg bg-[var(--bg-secondary)] text-center">
162
+ <div className="text-2xl font-bold text-[var(--color-primary-600)]">
163
+ {frdData.businessRules.length}
164
+ </div>
165
+ <div className="text-sm text-[var(--text-secondary)]">{t('stats.businessRules')}</div>
166
+ </div>
167
+ <div className="p-4 rounded-lg bg-[var(--bg-secondary)] text-center">
168
+ <div className="text-2xl font-bold text-[var(--color-primary-600)]">
169
+ {frdData.permissions.length}
170
+ </div>
171
+ <div className="text-sm text-[var(--text-secondary)]">{t('stats.permissions')}</div>
172
+ </div>
173
+ </div>
174
+ </NumberedSection>
175
+
176
+ {/* Section 2: Use Cases */}
177
+ <NumberedSection number={2} title={t('sections.useCases')} icon={Users}>
178
+ <div className="space-y-4">
179
+ {frdData.useCases.map((uc) => (
180
+ <div key={uc.id} className="border border-[var(--border-color)] rounded-lg p-4">
181
+ <div className="flex items-center justify-between mb-2">
182
+ <h3 className="font-semibold flex items-center gap-2">
183
+ <span className="px-2 py-0.5 rounded bg-[var(--color-primary-600)]/10 text-[var(--color-primary-600)] text-xs font-mono">
184
+ {uc.id}
185
+ </span>
186
+ {uc.name}
187
+ </h3>
188
+ <span className="text-sm text-[var(--text-secondary)]">
189
+ {t('labels.actor')}: {uc.actor}
190
+ </span>
191
+ </div>
192
+ <p className="text-sm text-[var(--text-secondary)] mb-2">{uc.description}</p>
193
+ <div className="flex items-center gap-2 text-xs">
194
+ <Shield className="w-3 h-3 text-amber-500" />
195
+ <code className="bg-[var(--bg-secondary)] px-2 py-0.5 rounded">{uc.permission}</code>
196
+ </div>
197
+ </div>
198
+ ))}
199
+ </div>
200
+ </NumberedSection>
201
+
202
+ {/* Section 3: Business Rules */}
203
+ <NumberedSection number={3} title={t('sections.businessRules')} icon={CheckCircle}>
204
+ <div className="overflow-x-auto">
205
+ <table className="w-full text-sm">
206
+ <thead>
207
+ <tr className="bg-[var(--bg-secondary)]">
208
+ <th className="text-left py-2 px-3 rounded-tl-lg">ID</th>
209
+ <th className="text-left py-2 px-3">{t('labels.rule')}</th>
210
+ <th className="text-left py-2 px-3">{t('labels.category')}</th>
211
+ <th className="text-left py-2 px-3 rounded-tr-lg">{t('labels.priority')}</th>
212
+ </tr>
213
+ </thead>
214
+ <tbody>
215
+ {frdData.businessRules.map((br, idx) => (
216
+ <tr key={br.id} className={idx % 2 === 1 ? 'bg-[var(--bg-secondary)]/50' : ''}>
217
+ <td className="py-2 px-3 font-mono text-[var(--color-primary-600)]">{br.id}</td>
218
+ <td className="py-2 px-3">{br.rule}</td>
219
+ <td className="py-2 px-3 text-[var(--text-secondary)]">{br.category}</td>
220
+ <td className="py-2 px-3"><PriorityBadge priority={br.priority} /></td>
221
+ </tr>
222
+ ))}
223
+ </tbody>
224
+ </table>
225
+ </div>
226
+ </NumberedSection>
227
+
228
+ {/* Section 4: Permissions */}
229
+ <NumberedSection number={4} title={t('sections.permissions')} icon={Shield}>
230
+ <div className="space-y-3">
231
+ {frdData.permissions.map((perm) => (
232
+ <div key={perm.path} className="flex items-center justify-between p-3 rounded-lg bg-[var(--bg-secondary)]">
233
+ <div>
234
+ <code className="text-sm font-mono text-[var(--color-primary-600)]">{perm.path}</code>
235
+ <p className="text-sm text-[var(--text-secondary)] mt-1">{perm.description}</p>
236
+ </div>
237
+ <div className="flex gap-1">
238
+ {perm.roles.map((role) => (
239
+ <span key={role} className="px-2 py-0.5 rounded bg-[var(--bg-tertiary)] text-xs">
240
+ {role}
241
+ </span>
242
+ ))}
243
+ </div>
244
+ </div>
245
+ ))}
246
+ </div>
247
+
248
+ {/* Permission Warning */}
249
+ <div className="mt-4 p-4 rounded-lg bg-amber-500/10 border border-amber-500/20 flex items-start gap-3">
250
+ <AlertTriangle className="w-5 h-5 text-amber-600 flex-shrink-0 mt-0.5" />
251
+ <div>
252
+ <div className="font-medium text-amber-600">{t('warnings.permissionCheck')}</div>
253
+ <p className="text-sm text-[var(--text-secondary)]">
254
+ {t('warnings.permissionCheckDescription')}
255
+ </p>
256
+ </div>
257
+ </div>
258
+ </NumberedSection>
259
+
260
+ {/* Section 5: Wireframes */}
261
+ <NumberedSection number={5} title={t('sections.wireframes')} icon={Layout}>
262
+ <div className="border-2 border-dashed border-[var(--border-color)] rounded-lg p-6">
263
+ <div className="text-center text-sm text-[var(--text-tertiary)] mb-4">
264
+ {t('common.wireframePreview')}
265
+ </div>
266
+ <div className="space-y-4">
267
+ <div className="h-12 bg-[var(--bg-secondary)] rounded flex items-center px-4 justify-between">
268
+ <span className="text-sm">[Header + Navigation]</span>
269
+ <span className="text-sm">[User Menu]</span>
270
+ </div>
271
+ <div className="grid grid-cols-4 gap-4">
272
+ <div className="col-span-1 h-64 bg-[var(--bg-secondary)] rounded p-4">
273
+ <span className="text-sm">[Filters]</span>
274
+ </div>
275
+ <div className="col-span-3 h-64 bg-[var(--bg-secondary)] rounded p-4">
276
+ <span className="text-sm">[Data Table]</span>
277
+ </div>
278
+ </div>
279
+ </div>
280
+ </div>
281
+ </NumberedSection>
282
+
283
+ {/* Section 6: API Endpoints */}
284
+ <NumberedSection number={6} title={t('sections.api')} icon={Database}>
285
+ <div className="overflow-x-auto">
286
+ <table className="w-full text-sm font-mono">
287
+ <thead>
288
+ <tr className="bg-[var(--bg-secondary)]">
289
+ <th className="text-left py-2 px-3 rounded-tl-lg">Method</th>
290
+ <th className="text-left py-2 px-3">Endpoint</th>
291
+ <th className="text-left py-2 px-3 rounded-tr-lg">Permission</th>
292
+ </tr>
293
+ </thead>
294
+ <tbody>
295
+ <tr>
296
+ <td className="py-2 px-3"><span className="px-2 py-0.5 rounded bg-green-500/10 text-green-600">GET</span></td>
297
+ <td className="py-2 px-3">/api/business/{'{module}'}</td>
298
+ <td className="py-2 px-3 text-[var(--text-secondary)]">.read</td>
299
+ </tr>
300
+ <tr className="bg-[var(--bg-secondary)]/50">
301
+ <td className="py-2 px-3"><span className="px-2 py-0.5 rounded bg-blue-500/10 text-blue-600">POST</span></td>
302
+ <td className="py-2 px-3">/api/business/{'{module}'}</td>
303
+ <td className="py-2 px-3 text-[var(--text-secondary)]">.create</td>
304
+ </tr>
305
+ <tr>
306
+ <td className="py-2 px-3"><span className="px-2 py-0.5 rounded bg-yellow-500/10 text-yellow-600">PUT</span></td>
307
+ <td className="py-2 px-3">/api/business/{'{module}'}/{'{id}'}</td>
308
+ <td className="py-2 px-3 text-[var(--text-secondary)]">.update</td>
309
+ </tr>
310
+ <tr className="bg-[var(--bg-secondary)]/50">
311
+ <td className="py-2 px-3"><span className="px-2 py-0.5 rounded bg-red-500/10 text-red-600">DELETE</span></td>
312
+ <td className="py-2 px-3">/api/business/{'{module}'}/{'{id}'}</td>
313
+ <td className="py-2 px-3 text-[var(--text-secondary)]">.delete</td>
314
+ </tr>
315
+ </tbody>
316
+ </table>
317
+ </div>
318
+ </NumberedSection>
319
+
320
+ {/* Navigation Footer */}
321
+ <div className="flex justify-between pt-6 border-t border-[var(--border-color)]">
322
+ <Link
323
+ to={`/docs/business/${frdData.applicationName.toLowerCase()}`}
324
+ className="flex items-center gap-2 text-[var(--text-secondary)] hover:text-[var(--color-primary-600)]"
325
+ >
326
+ <ArrowRight className="w-4 h-4 rotate-180" />
327
+ {t('nav.backToApp')}
328
+ </Link>
329
+ <Link
330
+ to="/docs/business"
331
+ className="flex items-center gap-2 text-[var(--color-primary-600)]"
332
+ >
333
+ {t('nav.allModules')}
334
+ <ArrowRight className="w-4 h-4" />
335
+ </Link>
336
+ </div>
337
+ </div>
338
+ );
339
+ }
340
+ ```
@@ -0,0 +1,245 @@
1
+ # i18n Template - Documentation Translations
2
+
3
+ > **Usage:** Translation templates for 4 languages
4
+ > **Loaded in:** step-06-doc-html.md
5
+ > **Languages:** FR (source), EN, IT, DE
6
+
7
+ ---
8
+
9
+ ## French (Source)
10
+
11
+ ```json
12
+ // web/smartstack-web/src/i18n/locales/fr/docs-{{app}}-{{module}}.json
13
+ {
14
+ "breadcrumb": {
15
+ "docs": "Documentation",
16
+ "business": "Business"
17
+ },
18
+ "common": {
19
+ "tableOfContents": "Table des matières",
20
+ "wireframePreview": "Aperçu du wireframe",
21
+ "modules": "Modules"
22
+ },
23
+ "sections": {
24
+ "overview": "Vue d'ensemble",
25
+ "useCases": "Cas d'utilisation",
26
+ "businessRules": "Règles métier",
27
+ "permissions": "Permissions",
28
+ "wireframes": "Wireframes",
29
+ "api": "Points d'accès API"
30
+ },
31
+ "labels": {
32
+ "actor": "Acteur",
33
+ "rule": "Règle",
34
+ "category": "Catégorie",
35
+ "priority": "Priorité"
36
+ },
37
+ "stats": {
38
+ "useCases": "Cas d'utilisation",
39
+ "businessRules": "Règles métier",
40
+ "permissions": "Permissions"
41
+ },
42
+ "warnings": {
43
+ "permissionCheck": "Vérification des permissions requise",
44
+ "permissionCheckDescription": "Assurez-vous que toutes les permissions sont enregistrées dans PermissionConfiguration.cs avant le déploiement."
45
+ },
46
+ "nav": {
47
+ "backToApp": "Retour à l'application",
48
+ "allModules": "Tous les modules"
49
+ },
50
+ "apps": {
51
+ "{{app}}": {
52
+ "name": "{{Application Name FR}}",
53
+ "description": "{{Application description FR}}"
54
+ }
55
+ },
56
+ "modules": {
57
+ "{{module}}": {
58
+ "name": "{{Module Name FR}}",
59
+ "title": "{{Module Title FR}}",
60
+ "subtitle": "{{Module subtitle FR}}",
61
+ "overview": "{{Module overview FR}}"
62
+ }
63
+ }
64
+ }
65
+ ```
66
+
67
+ ---
68
+
69
+ ## English
70
+
71
+ ```json
72
+ // web/smartstack-web/src/i18n/locales/en/docs-{{app}}-{{module}}.json
73
+ {
74
+ "breadcrumb": {
75
+ "docs": "Documentation",
76
+ "business": "Business"
77
+ },
78
+ "common": {
79
+ "tableOfContents": "Table of Contents",
80
+ "wireframePreview": "Wireframe Preview",
81
+ "modules": "Modules"
82
+ },
83
+ "sections": {
84
+ "overview": "Overview",
85
+ "useCases": "Use Cases",
86
+ "businessRules": "Business Rules",
87
+ "permissions": "Permissions",
88
+ "wireframes": "Wireframes",
89
+ "api": "API Endpoints"
90
+ },
91
+ "labels": {
92
+ "actor": "Actor",
93
+ "rule": "Rule",
94
+ "category": "Category",
95
+ "priority": "Priority"
96
+ },
97
+ "stats": {
98
+ "useCases": "Use Cases",
99
+ "businessRules": "Business Rules",
100
+ "permissions": "Permissions"
101
+ },
102
+ "warnings": {
103
+ "permissionCheck": "Permission Check Required",
104
+ "permissionCheckDescription": "Ensure all permissions are registered in PermissionConfiguration.cs before deployment."
105
+ },
106
+ "nav": {
107
+ "backToApp": "Back to Application",
108
+ "allModules": "All Modules"
109
+ },
110
+ "apps": {
111
+ "{{app}}": {
112
+ "name": "{{Application Name EN}}",
113
+ "description": "{{Application description EN}}"
114
+ }
115
+ },
116
+ "modules": {
117
+ "{{module}}": {
118
+ "name": "{{Module Name EN}}",
119
+ "title": "{{Module Title EN}}",
120
+ "subtitle": "{{Module subtitle EN}}",
121
+ "overview": "{{Module overview EN}}"
122
+ }
123
+ }
124
+ }
125
+ ```
126
+
127
+ ---
128
+
129
+ ## Italian
130
+
131
+ ```json
132
+ // web/smartstack-web/src/i18n/locales/it/docs-{{app}}-{{module}}.json
133
+ {
134
+ "breadcrumb": {
135
+ "docs": "Documentazione",
136
+ "business": "Business"
137
+ },
138
+ "common": {
139
+ "tableOfContents": "Indice",
140
+ "wireframePreview": "Anteprima wireframe",
141
+ "modules": "Moduli"
142
+ },
143
+ "sections": {
144
+ "overview": "Panoramica",
145
+ "useCases": "Casi d'uso",
146
+ "businessRules": "Regole di business",
147
+ "permissions": "Permessi",
148
+ "wireframes": "Wireframe",
149
+ "api": "Endpoint API"
150
+ },
151
+ "labels": {
152
+ "actor": "Attore",
153
+ "rule": "Regola",
154
+ "category": "Categoria",
155
+ "priority": "Priorità"
156
+ },
157
+ "stats": {
158
+ "useCases": "Casi d'uso",
159
+ "businessRules": "Regole di business",
160
+ "permissions": "Permessi"
161
+ },
162
+ "warnings": {
163
+ "permissionCheck": "Verifica permessi richiesta",
164
+ "permissionCheckDescription": "Assicurarsi che tutti i permessi siano registrati in PermissionConfiguration.cs prima del deployment."
165
+ },
166
+ "nav": {
167
+ "backToApp": "Torna all'applicazione",
168
+ "allModules": "Tutti i moduli"
169
+ },
170
+ "apps": {
171
+ "{{app}}": {
172
+ "name": "{{Application Name IT}}",
173
+ "description": "{{Application description IT}}"
174
+ }
175
+ },
176
+ "modules": {
177
+ "{{module}}": {
178
+ "name": "{{Module Name IT}}",
179
+ "title": "{{Module Title IT}}",
180
+ "subtitle": "{{Module subtitle IT}}",
181
+ "overview": "{{Module overview IT}}"
182
+ }
183
+ }
184
+ }
185
+ ```
186
+
187
+ ---
188
+
189
+ ## German
190
+
191
+ ```json
192
+ // web/smartstack-web/src/i18n/locales/de/docs-{{app}}-{{module}}.json
193
+ {
194
+ "breadcrumb": {
195
+ "docs": "Dokumentation",
196
+ "business": "Geschäft"
197
+ },
198
+ "common": {
199
+ "tableOfContents": "Inhaltsverzeichnis",
200
+ "wireframePreview": "Wireframe-Vorschau",
201
+ "modules": "Module"
202
+ },
203
+ "sections": {
204
+ "overview": "Übersicht",
205
+ "useCases": "Anwendungsfälle",
206
+ "businessRules": "Geschäftsregeln",
207
+ "permissions": "Berechtigungen",
208
+ "wireframes": "Wireframes",
209
+ "api": "API-Endpunkte"
210
+ },
211
+ "labels": {
212
+ "actor": "Akteur",
213
+ "rule": "Regel",
214
+ "category": "Kategorie",
215
+ "priority": "Priorität"
216
+ },
217
+ "stats": {
218
+ "useCases": "Anwendungsfälle",
219
+ "businessRules": "Geschäftsregeln",
220
+ "permissions": "Berechtigungen"
221
+ },
222
+ "warnings": {
223
+ "permissionCheck": "Berechtigungsprüfung erforderlich",
224
+ "permissionCheckDescription": "Stellen Sie sicher, dass alle Berechtigungen in PermissionConfiguration.cs vor dem Deployment registriert sind."
225
+ },
226
+ "nav": {
227
+ "backToApp": "Zurück zur Anwendung",
228
+ "allModules": "Alle Module"
229
+ },
230
+ "apps": {
231
+ "{{app}}": {
232
+ "name": "{{Application Name DE}}",
233
+ "description": "{{Application description DE}}"
234
+ }
235
+ },
236
+ "modules": {
237
+ "{{module}}": {
238
+ "name": "{{Module Name DE}}",
239
+ "title": "{{Module Title DE}}",
240
+ "subtitle": "{{Module subtitle DE}}",
241
+ "overview": "{{Module overview DE}}"
242
+ }
243
+ }
244
+ }
245
+ ```