@atlashub/smartstack-cli 1.13.2 → 1.14.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 (210) 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 +1 -1
  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 +1001 -352
  12. package/.documentation/ralph-loop.html +1 -1
  13. package/.documentation/test-web.html +1 -1
  14. package/README.md +88 -20
  15. package/dist/index.js +276 -85
  16. package/dist/index.js.map +1 -1
  17. package/package.json +1 -1
  18. package/templates/agents/code-reviewer.md +163 -0
  19. package/templates/agents/efcore/db-deploy.md +25 -7
  20. package/templates/agents/efcore/db-reset.md +31 -10
  21. package/templates/agents/efcore/db-status.md +22 -5
  22. package/templates/agents/efcore/migration.md +69 -19
  23. package/templates/agents/gitflow/cleanup.md +8 -1
  24. package/templates/agents/gitflow/commit.md +7 -5
  25. package/templates/agents/gitflow/finish.md +6 -4
  26. package/templates/agents/gitflow/pr.md +8 -1
  27. package/templates/agents/gitflow/start.md +1 -1
  28. package/templates/commands/check-version.md +267 -0
  29. package/templates/commands/efcore/_shared.md +30 -1
  30. package/templates/commands/efcore/db-reset.md +18 -6
  31. package/templates/commands/gitflow/OPTIMIZATIONS.md +206 -0
  32. package/templates/commands/refactor.md +164 -0
  33. package/templates/project/DependencyInjection.Application.cs.template +25 -0
  34. package/templates/project/DependencyInjection.Infrastructure.cs.template +61 -0
  35. package/templates/project/DesignTimeExtensionsDbContextFactory.cs.template +70 -0
  36. package/templates/project/ExampleEntity.cs.template +116 -0
  37. package/templates/project/ExampleEntityConfiguration.cs.template +64 -0
  38. package/templates/project/ExampleService.cs.template +146 -0
  39. package/templates/project/ExtensionsDbContext.cs.template +41 -0
  40. package/templates/project/IExtensionsDbContext.cs.template +22 -0
  41. package/templates/project/Program.cs.template +47 -0
  42. package/templates/project/README.md +79 -0
  43. package/templates/ralph/README.md +10 -8
  44. package/templates/ralph/ralph.config.yaml +2 -2
  45. package/templates/skills/_shared.md +44 -44
  46. package/templates/skills/ai-prompt/SKILL.md +55 -55
  47. package/templates/skills/apex/SKILL.md +235 -0
  48. package/templates/skills/apex/steps/step-00-init.md +203 -0
  49. package/templates/skills/apex/steps/step-01-analyze.md +210 -0
  50. package/templates/skills/apex/steps/step-02-plan.md +217 -0
  51. package/templates/skills/apex/steps/step-03-execute.md +178 -0
  52. package/templates/skills/apex/steps/step-04-validate.md +217 -0
  53. package/templates/skills/apex/steps/step-05-examine.md +207 -0
  54. package/templates/skills/apex/steps/step-06-resolve.md +181 -0
  55. package/templates/skills/apex/steps/step-07-tests.md +206 -0
  56. package/templates/skills/apex/steps/step-08-run-tests.md +207 -0
  57. package/templates/skills/apex/templates/00-context.md +46 -0
  58. package/templates/skills/apex/templates/01-analyze.md +63 -0
  59. package/templates/skills/apex/templates/02-plan.md +63 -0
  60. package/templates/skills/apex/templates/03-execute.md +34 -0
  61. package/templates/skills/apex/templates/04-validate.md +61 -0
  62. package/templates/skills/apex/templates/05-examine.md +58 -0
  63. package/templates/skills/apex/templates/06-resolve.md +39 -0
  64. package/templates/skills/apex/templates/07-tests.md +56 -0
  65. package/templates/skills/apex/templates/08-run-tests.md +41 -0
  66. package/templates/skills/apex/templates/README.md +69 -0
  67. package/templates/skills/application/SKILL.md +50 -50
  68. package/templates/skills/application/templates-backend.md +25 -25
  69. package/templates/skills/application/templates-frontend.md +43 -43
  70. package/templates/skills/application/templates-i18n.md +29 -29
  71. package/templates/skills/application/templates-seed.md +77 -77
  72. package/templates/skills/business-analyse/SKILL.md +223 -0
  73. package/templates/skills/business-analyse/_shared.md +258 -0
  74. package/templates/skills/business-analyse/questionnaire/01-context.md +33 -0
  75. package/templates/skills/business-analyse/questionnaire/02-stakeholders.md +35 -0
  76. package/templates/skills/business-analyse/questionnaire/03-scope.md +35 -0
  77. package/templates/skills/business-analyse/questionnaire/04-data.md +36 -0
  78. package/templates/skills/business-analyse/questionnaire/05-integrations.md +36 -0
  79. package/templates/skills/business-analyse/questionnaire/06-security.md +40 -0
  80. package/templates/skills/business-analyse/questionnaire/07-ui.md +36 -0
  81. package/templates/skills/business-analyse/questionnaire/08-performance.md +35 -0
  82. package/templates/skills/business-analyse/questionnaire/09-constraints.md +35 -0
  83. package/templates/skills/business-analyse/questionnaire/10-documentation.md +35 -0
  84. package/templates/skills/business-analyse/questionnaire.md +177 -177
  85. package/templates/skills/business-analyse/react/components.md +340 -0
  86. package/templates/skills/business-analyse/react/i18n-template.md +245 -0
  87. package/templates/skills/business-analyse/react/schema.md +151 -0
  88. package/templates/skills/business-analyse/steps/step-00-init.md +293 -0
  89. package/templates/skills/business-analyse/steps/step-01-discover.md +267 -0
  90. package/templates/skills/business-analyse/steps/step-02-analyse.md +243 -0
  91. package/templates/skills/business-analyse/steps/step-03-specify.md +317 -0
  92. package/templates/skills/business-analyse/steps/step-04-validate.md +239 -0
  93. package/templates/skills/business-analyse/steps/step-05-handoff.md +336 -0
  94. package/templates/skills/business-analyse/steps/step-06-doc-html.md +261 -0
  95. package/templates/skills/business-analyse/templates/00-context.md +105 -0
  96. package/templates/skills/business-analyse/templates/frd-brd.md +97 -0
  97. package/templates/skills/business-analyse/templates/frd-discovery.md +78 -0
  98. package/templates/skills/business-analyse/templates/frd-handoff.md +118 -0
  99. package/templates/skills/business-analyse/templates/frd-spec.md +168 -0
  100. package/templates/skills/business-analyse/templates-frd.md +217 -217
  101. package/templates/skills/business-analyse/templates-react.md +26 -26
  102. package/templates/skills/controller/SKILL.md +141 -92
  103. package/templates/skills/controller/postman-templates.md +15 -15
  104. package/templates/skills/controller/steps/step-00-init.md +191 -0
  105. package/templates/skills/controller/steps/step-01-analyze.md +146 -0
  106. package/templates/skills/controller/steps/step-02-plan.md +176 -0
  107. package/templates/skills/controller/steps/step-03-generate.md +219 -0
  108. package/templates/skills/controller/steps/step-04-perms.md +219 -0
  109. package/templates/skills/controller/steps/step-05-validate.md +107 -0
  110. package/templates/skills/controller/templates.md +77 -77
  111. package/templates/skills/documentation/SKILL.md +79 -79
  112. package/templates/skills/feature-full/SKILL.md +38 -38
  113. package/templates/skills/gitflow/SKILL.md +277 -0
  114. package/templates/{commands → skills}/gitflow/_shared.md +20 -20
  115. package/templates/skills/gitflow/phases/abort.md +173 -0
  116. package/templates/skills/gitflow/phases/cleanup.md +226 -0
  117. package/templates/skills/gitflow/phases/status.md +178 -0
  118. package/templates/skills/gitflow/steps/step-commit.md +255 -0
  119. package/templates/skills/gitflow/steps/step-finish.md +255 -0
  120. package/templates/skills/gitflow/steps/step-init.md +209 -0
  121. package/templates/skills/gitflow/steps/step-merge.md +225 -0
  122. package/templates/skills/gitflow/steps/step-plan.md +208 -0
  123. package/templates/skills/gitflow/steps/step-pr.md +235 -0
  124. package/templates/skills/gitflow/steps/step-start.md +234 -0
  125. package/templates/skills/gitflow/steps/step-sync.md +200 -0
  126. package/templates/skills/gitflow/templates/config.json +53 -0
  127. package/templates/skills/notification/SKILL.md +51 -51
  128. package/templates/skills/ralph-loop/SKILL.md +228 -0
  129. package/templates/skills/ralph-loop/steps/step-00-init.md +201 -0
  130. package/templates/skills/ralph-loop/steps/step-01-task.md +169 -0
  131. package/templates/skills/ralph-loop/steps/step-02-execute.md +173 -0
  132. package/templates/skills/ralph-loop/steps/step-03-commit.md +170 -0
  133. package/templates/skills/ralph-loop/steps/step-04-check.md +162 -0
  134. package/templates/skills/ralph-loop/steps/step-05-report.md +181 -0
  135. package/templates/skills/review-code/SKILL.md +219 -0
  136. package/templates/skills/review-code/references/clean-code-principles.md +140 -0
  137. package/templates/skills/review-code/references/code-quality-metrics.md +174 -0
  138. package/templates/skills/review-code/references/feedback-patterns.md +149 -0
  139. package/templates/skills/review-code/references/security-checklist.md +127 -0
  140. package/templates/skills/ui-components/SKILL.md +54 -54
  141. package/templates/skills/workflow/SKILL.md +46 -46
  142. package/templates/commands/ai-prompt.md +0 -315
  143. package/templates/commands/apex/1-analyze.md +0 -100
  144. package/templates/commands/apex/2-plan.md +0 -145
  145. package/templates/commands/apex/3-execute.md +0 -171
  146. package/templates/commands/apex/4-examine.md +0 -116
  147. package/templates/commands/apex/5-tasks.md +0 -209
  148. package/templates/commands/apex.md +0 -76
  149. package/templates/commands/application/create.md +0 -362
  150. package/templates/commands/application/templates-backend.md +0 -463
  151. package/templates/commands/application/templates-frontend.md +0 -517
  152. package/templates/commands/application/templates-i18n.md +0 -478
  153. package/templates/commands/application/templates-seed.md +0 -362
  154. package/templates/commands/application.md +0 -303
  155. package/templates/commands/business-analyse/0-orchestrate.md +0 -156
  156. package/templates/commands/business-analyse/1-init.md +0 -99
  157. package/templates/commands/business-analyse/2-discover.md +0 -143
  158. package/templates/commands/business-analyse/3-analyse.md +0 -106
  159. package/templates/commands/business-analyse/4-specify.md +0 -133
  160. package/templates/commands/business-analyse/5-validate.md +0 -132
  161. package/templates/commands/business-analyse/6-handoff.md +0 -157
  162. package/templates/commands/business-analyse/7-doc-html.md +0 -103
  163. package/templates/commands/business-analyse/_shared.md +0 -176
  164. package/templates/commands/business-analyse/bug.md +0 -118
  165. package/templates/commands/business-analyse/change-request.md +0 -144
  166. package/templates/commands/business-analyse/hotfix.md +0 -116
  167. package/templates/commands/business-analyse.md +0 -121
  168. package/templates/commands/controller/create.md +0 -216
  169. package/templates/commands/controller/postman-templates.md +0 -528
  170. package/templates/commands/controller/templates.md +0 -600
  171. package/templates/commands/controller.md +0 -337
  172. package/templates/commands/create/agent.md +0 -138
  173. package/templates/commands/create/command.md +0 -166
  174. package/templates/commands/create/hook.md +0 -234
  175. package/templates/commands/create/plugin.md +0 -329
  176. package/templates/commands/create/project.md +0 -508
  177. package/templates/commands/create/skill.md +0 -199
  178. package/templates/commands/create.md +0 -220
  179. package/templates/commands/documentation/module.md +0 -202
  180. package/templates/commands/documentation/templates.md +0 -432
  181. package/templates/commands/documentation.md +0 -190
  182. package/templates/commands/epct.md +0 -69
  183. package/templates/commands/explain.md +0 -186
  184. package/templates/commands/feature-full.md +0 -267
  185. package/templates/commands/gitflow/1-init.md +0 -188
  186. package/templates/commands/gitflow/10-start.md +0 -190
  187. package/templates/commands/gitflow/11-finish.md +0 -382
  188. package/templates/commands/gitflow/12-cleanup.md +0 -103
  189. package/templates/commands/gitflow/13-sync.md +0 -216
  190. package/templates/commands/gitflow/14-rebase.md +0 -251
  191. package/templates/commands/gitflow/2-status.md +0 -122
  192. package/templates/commands/gitflow/3-commit.md +0 -209
  193. package/templates/commands/gitflow/4-plan.md +0 -174
  194. package/templates/commands/gitflow/5-exec.md +0 -202
  195. package/templates/commands/gitflow/6-abort.md +0 -121
  196. package/templates/commands/gitflow/7-pull-request.md +0 -176
  197. package/templates/commands/gitflow/8-review.md +0 -113
  198. package/templates/commands/gitflow/9-merge.md +0 -157
  199. package/templates/commands/gitflow.md +0 -128
  200. package/templates/commands/implement.md +0 -663
  201. package/templates/commands/init.md +0 -567
  202. package/templates/commands/mcp-integration.md +0 -330
  203. package/templates/commands/notification.md +0 -129
  204. package/templates/commands/oneshot.md +0 -57
  205. package/templates/commands/quickstart.md +0 -154
  206. package/templates/commands/ralph-loop/cancel-ralph.md +0 -18
  207. package/templates/commands/ralph-loop/help.md +0 -126
  208. package/templates/commands/ralph-loop/ralph-loop.md +0 -120
  209. package/templates/commands/review.md +0 -106
  210. package/templates/commands/workflow.md +0 -193
@@ -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
+ ```