@atlashub/smartstack-cli 3.38.0 → 3.39.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 (47) hide show
  1. package/dist/mcp-entry.mjs +62 -37
  2. package/dist/mcp-entry.mjs.map +1 -1
  3. package/package.json +1 -1
  4. package/templates/agents/efcore/scan.md +3 -1
  5. package/templates/agents/gitflow/commit.md +74 -0
  6. package/templates/agents/gitflow/finish.md +5 -2
  7. package/templates/agents/gitflow/init-clone.md +3 -3
  8. package/templates/agents/gitflow/init-validate.md +3 -2
  9. package/templates/agents/gitflow/merge.md +5 -0
  10. package/templates/agents/gitflow/pr.md +5 -0
  11. package/templates/agents/gitflow/start.md +8 -1
  12. package/templates/hooks/hooks.json +11 -0
  13. package/templates/hooks/wsl-dotnet-cleanup.sh +24 -0
  14. package/templates/skills/apex/references/core-seed-data.md +0 -1
  15. package/templates/skills/apex/references/examine-build-validation.md +1 -6
  16. package/templates/skills/apex/references/smartstack-frontend.md +1 -1
  17. package/templates/skills/apex/steps/step-03-execute.md +4 -9
  18. package/templates/skills/apex/steps/step-08-run-tests.md +1 -2
  19. package/templates/skills/application/SKILL.md +241 -241
  20. package/templates/skills/application/references/frontend-route-wiring-app-tsx.md +5 -5
  21. package/templates/skills/application/references/frontend-verification.md +1 -1
  22. package/templates/skills/application/references/init-parameter-detection.md +121 -120
  23. package/templates/skills/application/references/migration-checklist-troubleshooting.md +100 -100
  24. package/templates/skills/application/references/nav-fallback-procedure.md +199 -199
  25. package/templates/skills/application/steps/step-00-init.md +130 -130
  26. package/templates/skills/application/steps/step-01-navigation.md +170 -170
  27. package/templates/skills/application/steps/step-02-permissions.md +196 -196
  28. package/templates/skills/application/steps/step-03-roles.md +182 -182
  29. package/templates/skills/application/steps/step-03b-provider.md +133 -133
  30. package/templates/skills/application/steps/step-04-backend.md +174 -174
  31. package/templates/skills/application/steps/step-05-frontend.md +1 -1
  32. package/templates/skills/application/templates-frontend.md +7 -7
  33. package/templates/skills/business-analyse/react/schema.md +836 -836
  34. package/templates/skills/business-analyse/templates/tpl-progress.md +1 -1
  35. package/templates/skills/business-analyse/templates-frd.md +1 -1
  36. package/templates/skills/efcore/SKILL.md +1 -1
  37. package/templates/skills/efcore/steps/migration/step-02-create.md +1 -14
  38. package/templates/skills/gitflow/SKILL.md +27 -4
  39. package/templates/skills/gitflow/_shared.md +86 -12
  40. package/templates/skills/gitflow/phases/abort.md +4 -0
  41. package/templates/skills/gitflow/phases/cleanup.md +4 -0
  42. package/templates/skills/gitflow/references/finish-cleanup.md +4 -0
  43. package/templates/skills/gitflow/references/init-structure-creation.md +4 -0
  44. package/templates/skills/gitflow/references/start-worktree-creation.md +1 -1
  45. package/templates/skills/ralph-loop/steps/step-04-check.md +1 -2
  46. package/templates/skills/review-code/references/smartstack-conventions.md +568 -568
  47. package/templates/skills/validate-feature/steps/step-01-compile.md +1 -6
@@ -1,241 +1,241 @@
1
- ---
2
- name: application
3
- description: |
4
- Creates SmartStack full-stack applications/modules.
5
- Use this skill when:
6
- - User asks to create an application or module
7
- - User mentions "new module", "new application", "add a feature"
8
- - User wants to extend navigation with new entries
9
- Scope: Application → Module → Section (all levels)
10
- ---
11
-
12
- # Skill Application SmartStack
13
-
14
- **Reference:** [_shared.md](../_shared.md) for architecture, permissions, i18n
15
-
16
- ## ENTRY POINT
17
-
18
- > **FIRST ACTION:** Load `steps/step-00-init.md`
19
-
20
- This skill uses progressive step loading. Each step calls MCP tools for generation.
21
-
22
- ## STEP FILES
23
-
24
- | Step | File | MCP Tool Called | Condition |
25
- |------|------|-----------------|-----------|
26
- | 00 | `steps/step-00-init.md` | `validate_conventions` (MCP check) | Always |
27
- | 01 | `steps/step-01-navigation.md` | `scaffold_navigation` | Always |
28
- | 02 | `steps/step-02-permissions.md` | `generate_permissions` | Always |
29
- | 03 | `steps/step-03-roles.md` | `scaffold_role_permissions` | Always |
30
- | 03b | `steps/step-03b-provider.md` | (none - direct generation) | Client projects only |
31
- | 04 | `steps/step-04-backend.md` | `scaffold_extension` | Always |
32
- | 05 | `steps/step-05-frontend.md` | `scaffold_api_client`, `scaffold_routes` | Always |
33
- | 06 | `steps/step-06-migration.md` | `suggest_migration` | Always |
34
- | 07 | `steps/step-07-tests.md` | `scaffold_tests` | Always |
35
- | 08 | `steps/step-08-documentation.md` | `/documentation` skill | If userDocRequired |
36
-
37
- ## MCP INTEGRATION
38
-
39
- > **CRITICAL:** This skill MUST use MCP tools for all generation.
40
- > Templates in this folder are for REFERENCE ONLY - never use them directly.
41
-
42
- | MCP Tool | Purpose |
43
- |----------|---------|
44
- | `mcp__smartstack__scaffold_navigation` | Navigation entity + translations |
45
- | `mcp__smartstack__generate_permissions` | Permissions.cs + HasData |
46
- | `mcp__smartstack__scaffold_role_permissions` | Role-permission mappings |
47
- | `mcp__smartstack__scaffold_extension` | Entity, Service, Controller, DTOs |
48
- | `mcp__smartstack__scaffold_api_client` | TypeScript API client |
49
- | `mcp__smartstack__scaffold_routes` | React Router configuration |
50
- | `mcp__smartstack__suggest_migration` | Migration name suggestion |
51
- | `mcp__smartstack__scaffold_tests` | Test suite generation (backend) |
52
- | `mcp__smartstack__scaffold_frontend_tests` | Test suite generation (frontend React) |
53
- | `mcp__smartstack__validate_conventions` | Post-generation convention check |
54
- | `mcp__smartstack__review_code` | Code quality audit |
55
-
56
- ## WHEN THIS SKILL ACTIVATES
57
-
58
- | Trigger | Example |
59
- |---------|---------|
60
- | Explicit request | "Create a module to manage products" |
61
- | New feature | "We need to add order management" |
62
- | Navigation extension | "Add a CRM application" |
63
- | Keywords | "new module", "new application" |
64
-
65
- ## FLOW ARCHITECTURE
66
-
67
- ```
68
- WEB (React) → API (.NET) → Application → Infrastructure → Database
69
- ```
70
-
71
- **FORBIDDEN:** WEB → Infrastructure (direct DB access), WEB → Domain
72
-
73
- ## WORKFLOW
74
-
75
- ### 1. Level Detection
76
-
77
- | Hint | → Level |
78
- |------|---------|
79
- | "application", "app" | Application |
80
- | "module", "feature" | Module |
81
- | "section", "tab" | Section |
82
-
83
- ### 2. Parameter Extraction
84
- `$LEVEL`, `$CODE` (kebab-case), `$LABEL_EN`, `$ICON` (Lucide)
85
-
86
- ### 3. Full-Stack Generation
87
- ```
88
- 1. DB SEED (Navigation + Translations 4 languages)
89
- 2. PERMISSIONS (Permissions.cs + PermissionConfiguration.cs) ← 2 files!
90
- 3. ROLES (RolePermission mappings)
91
- 3b. CLIENT SEED PROVIDER (client projects only - IClientSeedDataProvider)
92
- 4. API (Controller + DTOs via /controller:create)
93
- 4b. VALIDATE (/validate - convention check on generated backend)
94
- 5. SERVICES (Interface + Implementation)
95
- 6. FRONTEND (Page + Components + Hooks)
96
- 7. I18N (fr, en, it, de)
97
- 8. ROUTES (nested routes mandatory)
98
- 9. PREFERENCES (Hook pattern)
99
- 10. MIGRATION (/efcore:migration)
100
- 11. TESTS - Backend (scaffold_tests - 7 categories including real integration)
101
- 12. TESTS - Frontend (scaffold_frontend_tests - Vitest + Testing Library + MSW)
102
- 13. REVIEW (/review-code - security + architecture + quality audit)
103
- 14. DOCUMENTATION (in-app user doc via /documentation - if userDocRequired)
104
- ```
105
-
106
- ### 3b. Client Seed Provider (client projects only)
107
- Generates `IClientSeedDataProvider` implementation that wires navigation + permissions + roles
108
- into the SmartStack Core seeding pipeline. Only runs when `{seeding_strategy}` = "provider".
109
- Core projects skip this step entirely.
110
-
111
- ### 4. Automatic Chaining
112
- - `/controller:create` → API Controllers
113
- - `/efcore:migration` → DB Migrations
114
- - `/ui-components` → EntityCard, DataTable
115
-
116
- ## USER PREFERENCES
117
-
118
- | Preference | Storage |
119
- |------------|---------|
120
- | pageSize | `user.preferences.{module}.pageSize` |
121
- | sortColumn/Direction | `user.preferences.{module}.sort*` |
122
- | filters | `user.preferences.{module}.filters` |
123
- | visibleColumns | `user.preferences.{module}.visibleColumns` |
124
- | viewMode | `user.preferences.{module}.viewMode` |
125
-
126
- ```typescript
127
- export function use{Module}Preferences() {
128
- const { preferences, updatePreference } = useUserPreferences();
129
- return {
130
- pageSize: preferences.{module}?.pageSize ?? 10,
131
- setPageSize: (size: number) => updatePreference('{module}.pageSize', size),
132
- // ... others
133
- };
134
- }
135
- ```
136
-
137
- ## ROUTING (React Router v7)
138
-
139
- ```tsx
140
- // ✅ CORRECT - Nested routes
141
- <Route path="$APPLICATION">
142
- <Route index element={<Navigate to="$DEFAULT_MODULE" replace />} />
143
- <Route path="$MODULE1" element={<Module1Page />} />
144
- </Route>
145
-
146
- // ❌ FORBIDDEN - Flat routes (cause redirect to Home)
147
- <Route path="$APPLICATION" element={<Navigate ... />} />
148
- <Route path="$APPLICATION/$MODULE1" element={...} />
149
- ```
150
-
151
- ## INTEGRATIONS
152
-
153
- | Skill | When | Action |
154
- |-------|------|--------|
155
- | `/notification` | User alerts | INotificationService + SignalR |
156
- | `/workflow` | Automated emails | IWorkflowService.TriggerAsync |
157
- | `/ai-prompt` | AI assistance | IAiCompletionService |
158
- | `/feature-full` | Complete feature | Orchestration all skills |
159
- | `/validate` | After step-04 (backend) | MCP `validate_conventions` on generated code |
160
- | `/review-code` | After step-07 (tests) | Security (OWASP), architecture, SOLID, performance audit |
161
- | `/validate-feature` | After step-07 (tests) | Compile + test + API smoke test |
162
- | `/documentation` | In-app user doc | Documentation page via doc-data.ts + DocRenderer |
163
-
164
- ### Notification Integration Pattern
165
- ```csharp
166
- await _notificationService.SendNotificationAsync(
167
- userId, NotificationType.{Entity}Created, title, message,
168
- relatedEntityType: nameof({Entity}), relatedEntityId: entity.Id);
169
- ```
170
-
171
- ### Workflow Integration Pattern
172
- ```csharp
173
- await _workflowService.TriggerAsync("{entity}.created", new Dictionary<string, object>
174
- {
175
- ["entityId"] = entity.Id,
176
- ["creatorEmail"] = _currentUser.Email
177
- });
178
- ```
179
-
180
- ## ABSOLUTE RULES
181
-
182
- | DO | DON'T |
183
- |----|-------|
184
- | 4 languages (FR, EN, IT, DE) | Import Infrastructure in frontend |
185
- | Permissions: 2 files | Direct SQL in frontend |
186
- | Nested routes | Flat routes (flat siblings) |
187
- | EntityCard for cards | Manual cards with divs |
188
- | DataTable for tables | Sequential GUIDs |
189
-
190
- ### FORBIDDEN ACTIONS (BLOCKING)
191
-
192
- > **NEVER create temporary files, scripts, or helper files of any kind.**
193
-
194
- | FORBIDDEN | USE INSTEAD |
195
- |-----------|-------------|
196
- | Creating `.ps1` scripts | `Grep` tool to search `.cs` files |
197
- | Creating `.sh` / `.bat` scripts | `Glob` tool to find files by pattern |
198
- | Creating `temp-*` files | `Read` tool to inspect file contents |
199
- | Scanning DLLs / assemblies | Search source `.cs` files directly |
200
- | Running `dotnet` reflection commands | MCP `validate_conventions` tool |
201
- | Any file not part of the final deliverable | Ask the user if information is missing |
202
-
203
- **Type Discovery Rules:**
204
- - To find base classes: `Grep` for `class BaseEntity` or `class {Name}` in `*.cs` files
205
- - To find existing services: `Glob` for `**/I*Service.cs` in the Application layer
206
- - To find NuGet packages: `Read` the `.csproj` files directly
207
- - To find existing entities: `Glob` for `**/*.cs` in the Domain layer
208
- - If a type cannot be found after 2 search attempts: **ASK the user**, do NOT create scripts
209
-
210
- ## ASSOCIATED FILES
211
-
212
- ### Step Files (ACTIVE - Use These)
213
- - [steps/step-00-init.md](steps/step-00-init.md) - Initialize parameters
214
- - [steps/step-01-navigation.md](steps/step-01-navigation.md) - Generate navigation
215
- - [steps/step-02-permissions.md](steps/step-02-permissions.md) - Generate permissions
216
- - [steps/step-03-roles.md](steps/step-03-roles.md) - Assign roles
217
- - [steps/step-03b-provider.md](steps/step-03b-provider.md) - Client seed provider (client projects only)
218
- - [steps/step-04-backend.md](steps/step-04-backend.md) - Generate backend
219
- - [steps/step-05-frontend.md](steps/step-05-frontend.md) - Generate frontend
220
- - [steps/step-06-migration.md](steps/step-06-migration.md) - Create migration
221
- - [steps/step-07-tests.md](steps/step-07-tests.md) - Generate test suite
222
- - [steps/step-08-documentation.md](steps/step-08-documentation.md) - Generate in-app documentation
223
-
224
- ### Templates (REFERENCE ONLY - Do Not Use Directly)
225
- > These templates are kept for documentation purposes.
226
- > All generation is done via MCP tools in step files.
227
-
228
- - [templates-backend.md](templates-backend.md) - Backend patterns reference
229
- - [templates-frontend.md](templates-frontend.md) - Frontend patterns reference
230
- - [templates-i18n.md](templates-i18n.md) - i18n structure reference
231
- - [templates-seed.md](templates-seed.md) - Seed data patterns reference
232
-
233
- <success_criteria>
234
- - Navigation entries created with correct hierarchy (Application/Module)
235
- - Permissions generated via MCP with 2-file pattern (constants + seed)
236
- - Roles assigned with appropriate permission sets
237
- - Backend layers follow SmartStack conventions (validated by MCP)
238
- - Frontend pages in correct path structure with i18n
239
- - EF Core migration created and applied successfully
240
- - Test suite generated and passing
241
- </success_criteria>
1
+ ---
2
+ name: application
3
+ description: |
4
+ Creates SmartStack full-stack applications/modules.
5
+ Use this skill when:
6
+ - User asks to create an application or module
7
+ - User mentions "new module", "new application", "add a feature"
8
+ - User wants to extend navigation with new entries
9
+ Scope: Application → Module → Section → Resource (all levels)
10
+ ---
11
+
12
+ # Skill Application SmartStack
13
+
14
+ **Reference:** [_shared.md](../_shared.md) for architecture, permissions, i18n
15
+
16
+ ## ENTRY POINT
17
+
18
+ > **FIRST ACTION:** Load `steps/step-00-init.md`
19
+
20
+ This skill uses progressive step loading. Each step calls MCP tools for generation.
21
+
22
+ ## STEP FILES
23
+
24
+ | Step | File | MCP Tool Called | Condition |
25
+ |------|------|-----------------|-----------|
26
+ | 00 | `steps/step-00-init.md` | `validate_conventions` (MCP check) | Always |
27
+ | 01 | `steps/step-01-navigation.md` | `scaffold_navigation` | Always |
28
+ | 02 | `steps/step-02-permissions.md` | `generate_permissions` | Always |
29
+ | 03 | `steps/step-03-roles.md` | `scaffold_role_permissions` | Always |
30
+ | 03b | `steps/step-03b-provider.md` | (none - direct generation) | Client projects only |
31
+ | 04 | `steps/step-04-backend.md` | `scaffold_extension` | Always |
32
+ | 05 | `steps/step-05-frontend.md` | `scaffold_api_client`, `scaffold_routes` | Always |
33
+ | 06 | `steps/step-06-migration.md` | `suggest_migration` | Always |
34
+ | 07 | `steps/step-07-tests.md` | `scaffold_tests` | Always |
35
+ | 08 | `steps/step-08-documentation.md` | `/documentation` skill | If userDocRequired |
36
+
37
+ ## MCP INTEGRATION
38
+
39
+ > **CRITICAL:** This skill MUST use MCP tools for all generation.
40
+ > Templates in this folder are for REFERENCE ONLY - never use them directly.
41
+
42
+ | MCP Tool | Purpose |
43
+ |----------|---------|
44
+ | `mcp__smartstack__scaffold_navigation` | Navigation entity + translations |
45
+ | `mcp__smartstack__generate_permissions` | Permissions.cs + HasData |
46
+ | `mcp__smartstack__scaffold_role_permissions` | Role-permission mappings |
47
+ | `mcp__smartstack__scaffold_extension` | Entity, Service, Controller, DTOs |
48
+ | `mcp__smartstack__scaffold_api_client` | TypeScript API client |
49
+ | `mcp__smartstack__scaffold_routes` | React Router configuration |
50
+ | `mcp__smartstack__suggest_migration` | Migration name suggestion |
51
+ | `mcp__smartstack__scaffold_tests` | Test suite generation (backend) |
52
+ | `mcp__smartstack__scaffold_frontend_tests` | Test suite generation (frontend React) |
53
+ | `mcp__smartstack__validate_conventions` | Post-generation convention check |
54
+ | `mcp__smartstack__review_code` | Code quality audit |
55
+
56
+ ## WHEN THIS SKILL ACTIVATES
57
+
58
+ | Trigger | Example |
59
+ |---------|---------|
60
+ | Explicit request | "Create a module to manage products" |
61
+ | New feature | "We need to add order management" |
62
+ | Navigation extension | "Add a CRM application" |
63
+ | Keywords | "new module", "new application" |
64
+
65
+ ## FLOW ARCHITECTURE
66
+
67
+ ```
68
+ WEB (React) → API (.NET) → Application → Infrastructure → Database
69
+ ```
70
+
71
+ **FORBIDDEN:** WEB → Infrastructure (direct DB access), WEB → Domain
72
+
73
+ ## WORKFLOW
74
+
75
+ ### 1. Level Detection
76
+
77
+ | Hint | → Level |
78
+ |------|---------|
79
+ | "application", "app" | Application |
80
+ | "module", "feature" | Module |
81
+ | "section", "tab" | Section |
82
+
83
+ ### 2. Parameter Extraction
84
+ `$LEVEL`, `$CODE` (kebab-case), `$LABEL_EN`, `$ICON` (Lucide)
85
+
86
+ ### 3. Full-Stack Generation
87
+ ```
88
+ 1. DB SEED (Navigation + Translations 4 languages)
89
+ 2. PERMISSIONS (Permissions.cs + PermissionConfiguration.cs) ← 2 files!
90
+ 3. ROLES (RolePermission mappings)
91
+ 3b. CLIENT SEED PROVIDER (client projects only - IClientSeedDataProvider)
92
+ 4. API (Controller + DTOs via /controller:create)
93
+ 4b. VALIDATE (/validate - convention check on generated backend)
94
+ 5. SERVICES (Interface + Implementation)
95
+ 6. FRONTEND (Page + Components + Hooks)
96
+ 7. I18N (fr, en, it, de)
97
+ 8. ROUTES (nested routes mandatory)
98
+ 9. PREFERENCES (Hook pattern)
99
+ 10. MIGRATION (/efcore:migration)
100
+ 11. TESTS - Backend (scaffold_tests - 7 categories including real integration)
101
+ 12. TESTS - Frontend (scaffold_frontend_tests - Vitest + Testing Library + MSW)
102
+ 13. REVIEW (/review-code - security + architecture + quality audit)
103
+ 14. DOCUMENTATION (in-app user doc via /documentation - if userDocRequired)
104
+ ```
105
+
106
+ ### 3b. Client Seed Provider (client projects only)
107
+ Generates `IClientSeedDataProvider` implementation that wires navigation + permissions + roles
108
+ into the SmartStack Core seeding pipeline. Only runs when `{seeding_strategy}` = "provider".
109
+ Core projects skip this step entirely.
110
+
111
+ ### 4. Automatic Chaining
112
+ - `/controller:create` → API Controllers
113
+ - `/efcore:migration` → DB Migrations
114
+ - `/ui-components` → EntityCard, DataTable
115
+
116
+ ## USER PREFERENCES
117
+
118
+ | Preference | Storage |
119
+ |------------|---------|
120
+ | pageSize | `user.preferences.{module}.pageSize` |
121
+ | sortColumn/Direction | `user.preferences.{module}.sort*` |
122
+ | filters | `user.preferences.{module}.filters` |
123
+ | visibleColumns | `user.preferences.{module}.visibleColumns` |
124
+ | viewMode | `user.preferences.{module}.viewMode` |
125
+
126
+ ```typescript
127
+ export function use{Module}Preferences() {
128
+ const { preferences, updatePreference } = useUserPreferences();
129
+ return {
130
+ pageSize: preferences.{module}?.pageSize ?? 10,
131
+ setPageSize: (size: number) => updatePreference('{module}.pageSize', size),
132
+ // ... others
133
+ };
134
+ }
135
+ ```
136
+
137
+ ## ROUTING (React Router v7)
138
+
139
+ ```tsx
140
+ // ✅ CORRECT - Nested routes
141
+ <Route path="$APPLICATION">
142
+ <Route index element={<Navigate to="$DEFAULT_MODULE" replace />} />
143
+ <Route path="$MODULE1" element={<Module1Page />} />
144
+ </Route>
145
+
146
+ // ❌ FORBIDDEN - Flat routes (cause redirect to Home)
147
+ <Route path="$APPLICATION" element={<Navigate ... />} />
148
+ <Route path="$APPLICATION/$MODULE1" element={...} />
149
+ ```
150
+
151
+ ## INTEGRATIONS
152
+
153
+ | Skill | When | Action |
154
+ |-------|------|--------|
155
+ | `/notification` | User alerts | INotificationService + SignalR |
156
+ | `/workflow` | Automated emails | IWorkflowService.TriggerAsync |
157
+ | `/ai-prompt` | AI assistance | IAiCompletionService |
158
+ | `/feature-full` | Complete feature | Orchestration all skills |
159
+ | `/validate` | After step-04 (backend) | MCP `validate_conventions` on generated code |
160
+ | `/review-code` | After step-07 (tests) | Security (OWASP), architecture, SOLID, performance audit |
161
+ | `/validate-feature` | After step-07 (tests) | Compile + test + API smoke test |
162
+ | `/documentation` | In-app user doc | Documentation page via doc-data.ts + DocRenderer |
163
+
164
+ ### Notification Integration Pattern
165
+ ```csharp
166
+ await _notificationService.SendNotificationAsync(
167
+ userId, NotificationType.{Entity}Created, title, message,
168
+ relatedEntityType: nameof({Entity}), relatedEntityId: entity.Id);
169
+ ```
170
+
171
+ ### Workflow Integration Pattern
172
+ ```csharp
173
+ await _workflowService.TriggerAsync("{entity}.created", new Dictionary<string, object>
174
+ {
175
+ ["entityId"] = entity.Id,
176
+ ["creatorEmail"] = _currentUser.Email
177
+ });
178
+ ```
179
+
180
+ ## ABSOLUTE RULES
181
+
182
+ | DO | DON'T |
183
+ |----|-------|
184
+ | 4 languages (FR, EN, IT, DE) | Import Infrastructure in frontend |
185
+ | Permissions: 2 files | Direct SQL in frontend |
186
+ | Nested routes | Flat routes (flat siblings) |
187
+ | EntityCard for cards | Manual cards with divs |
188
+ | DataTable for tables | Sequential GUIDs |
189
+
190
+ ### FORBIDDEN ACTIONS (BLOCKING)
191
+
192
+ > **NEVER create temporary files, scripts, or helper files of any kind.**
193
+
194
+ | FORBIDDEN | USE INSTEAD |
195
+ |-----------|-------------|
196
+ | Creating `.ps1` scripts | `Grep` tool to search `.cs` files |
197
+ | Creating `.sh` / `.bat` scripts | `Glob` tool to find files by pattern |
198
+ | Creating `temp-*` files | `Read` tool to inspect file contents |
199
+ | Scanning DLLs / assemblies | Search source `.cs` files directly |
200
+ | Running `dotnet` reflection commands | MCP `validate_conventions` tool |
201
+ | Any file not part of the final deliverable | Ask the user if information is missing |
202
+
203
+ **Type Discovery Rules:**
204
+ - To find base classes: `Grep` for `class BaseEntity` or `class {Name}` in `*.cs` files
205
+ - To find existing services: `Glob` for `**/I*Service.cs` in the Application layer
206
+ - To find NuGet packages: `Read` the `.csproj` files directly
207
+ - To find existing entities: `Glob` for `**/*.cs` in the Domain layer
208
+ - If a type cannot be found after 2 search attempts: **ASK the user**, do NOT create scripts
209
+
210
+ ## ASSOCIATED FILES
211
+
212
+ ### Step Files (ACTIVE - Use These)
213
+ - [steps/step-00-init.md](steps/step-00-init.md) - Initialize parameters
214
+ - [steps/step-01-navigation.md](steps/step-01-navigation.md) - Generate navigation
215
+ - [steps/step-02-permissions.md](steps/step-02-permissions.md) - Generate permissions
216
+ - [steps/step-03-roles.md](steps/step-03-roles.md) - Assign roles
217
+ - [steps/step-03b-provider.md](steps/step-03b-provider.md) - Client seed provider (client projects only)
218
+ - [steps/step-04-backend.md](steps/step-04-backend.md) - Generate backend
219
+ - [steps/step-05-frontend.md](steps/step-05-frontend.md) - Generate frontend
220
+ - [steps/step-06-migration.md](steps/step-06-migration.md) - Create migration
221
+ - [steps/step-07-tests.md](steps/step-07-tests.md) - Generate test suite
222
+ - [steps/step-08-documentation.md](steps/step-08-documentation.md) - Generate in-app documentation
223
+
224
+ ### Templates (REFERENCE ONLY - Do Not Use Directly)
225
+ > These templates are kept for documentation purposes.
226
+ > All generation is done via MCP tools in step files.
227
+
228
+ - [templates-backend.md](templates-backend.md) - Backend patterns reference
229
+ - [templates-frontend.md](templates-frontend.md) - Frontend patterns reference
230
+ - [templates-i18n.md](templates-i18n.md) - i18n structure reference
231
+ - [templates-seed.md](templates-seed.md) - Seed data patterns reference
232
+
233
+ <success_criteria>
234
+ - Navigation entries created with correct hierarchy (Application/Module)
235
+ - Permissions generated via MCP with 2-file pattern (constants + seed)
236
+ - Roles assigned with appropriate permission sets
237
+ - Backend layers follow SmartStack conventions (validated by MCP)
238
+ - Frontend pages in correct path structure with i18n
239
+ - EF Core migration created and applied successfully
240
+ - Test suite generated and passing
241
+ </success_criteria>
@@ -55,7 +55,7 @@ Routes are automatically injected into BOTH standard (`/{application}/...`) and
55
55
  → Insert `<Route>` children inside the Layout wrapper:
56
56
 
57
57
  ```tsx
58
- <Route path="/human-resources" element={<BusinessLayout />}>
58
+ <Route path="/human-resources" element={<AppLayout />}>
59
59
  {/* ... existing routes ... */}
60
60
  <Route path="{module_kebab}" element={<{EntityName}Page />} />
61
61
  </Route>
@@ -71,9 +71,9 @@ Find `<Route path="/t/:slug">` and add the **same route entries** there.
71
71
 
72
72
  | Application prefix | Layout Component | Route path |
73
73
  |---------|------------------|------------|
74
- | `administration.*` | `AdminLayout` | `/administration` |
75
- | `*` (business apps) | `BusinessLayout` | `/{application}` |
76
- | `myspace.*` | `UserLayout` | `/myspace` |
74
+ | `administration.*` | `AppLayout` | `/administration` |
75
+ | `*` (business apps) | `AppLayout` | `/{application}` |
76
+ | `myspace.*` | `AppLayout` | `/myspace` |
77
77
 
78
78
  ---
79
79
 
@@ -99,7 +99,7 @@ If `appWiring.issues` is not empty, fix the wiring before proceeding.
99
99
 
100
100
  ## Verification Checklist
101
101
 
102
- - [ ] Routes are inside Layout wrapper (BusinessLayout, AdminLayout, UserLayout)
102
+ - [ ] Routes are inside the AppLayout wrapper
103
103
  - [ ] Routes use NESTED structure (not flat)
104
104
  - [ ] Application kebab-case matches navigation seed data
105
105
  - [ ] Both standard and tenant-prefixed blocks have routes (if using Pattern B)
@@ -74,7 +74,7 @@ Verify exactly **4 language files** exist with identical key structures:
74
74
  ### 5. Route Check (BLOCKING)
75
75
 
76
76
  Verify routes are:
77
- - **INSIDE** the Layout wrapper (e.g. `SalesLayout`, `AdminLayout`, or `UserLayout`)
77
+ - **INSIDE** the AppLayout wrapper
78
78
  - **NESTED** (not flat)
79
79
  - Following path convention: `/{application_kebab}/{module_kebab}` (kebab-case)
80
80