@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,196 +1,196 @@
1
- ---
2
- name: step-02-permissions
3
- description: Generate RBAC permissions using MCP generate_permissions
4
- prev_step: steps/step-01-navigation.md
5
- next_step: steps/step-03-roles.md
6
- ---
7
-
8
- # Step 2: Permissions Generation
9
-
10
- ## MANDATORY EXECUTION RULES
11
-
12
- - ALWAYS use MCP `generate_permissions` tool - NEVER use templates
13
- - ALWAYS generate BOTH Permissions.cs constants AND PermissionConfiguration.cs HasData
14
- - NEVER skip this step - permissions are MANDATORY for security
15
- - YOU ARE AN ORCHESTRATOR calling MCP, not a generator
16
-
17
- ## YOUR TASK
18
-
19
- Call the SmartStack MCP `generate_permissions` tool to generate:
20
- 1. Permissions.cs nested class with constants
21
- 2. PermissionConfiguration.cs HasData() entries
22
-
23
- ---
24
-
25
- ## AVAILABLE STATE
26
-
27
- From previous steps:
28
-
29
- | Variable | Description |
30
- |----------|-------------|
31
- | `{level}` | application, module, or section |
32
- | `{full_path}` | Complete navigation path (navRoute) |
33
- | `{navigation_guid}` | GUID of the navigation entity |
34
- | `{labels}` | Object with fr, en, it, de |
35
- | `{project_type}` | "core" or "client" |
36
- | `{seeding_strategy}` | "hasdata" or "provider" |
37
-
38
- ---
39
-
40
- ## EXECUTION SEQUENCE
41
-
42
- ### 1. Determine NavRoute
43
-
44
- For permissions, the navRoute is the `{full_path}`:
45
-
46
- ```
47
- navRoute = "{full_path}"
48
- Example: "sales.products"
49
- ```
50
-
51
- ### 2. Call MCP generate_permissions
52
-
53
- ```
54
- Tool: mcp__smartstack__generate_permissions
55
- Args:
56
- navRoute: "{full_path}"
57
- includeStandardActions: true
58
- includeWildcard: true
59
- ```
60
-
61
- ### 3. Parse MCP Response
62
-
63
- The tool returns:
64
- - Permissions.cs nested class structure
65
- - PermissionConfiguration.cs HasData() entries
66
- - Deterministic GUIDs for each permission
67
-
68
- ### 4. Present Permissions.cs Output
69
-
70
- ```markdown
71
- ## Permissions.cs Constants
72
-
73
- Add to `Application/Common/Authorization/Permissions.cs`:
74
-
75
- [Show Permissions.cs nested class from MCP response]
76
-
77
- **Usage in Controller:**
78
- ```csharp
79
- [RequirePermission(Permissions.{Application}.{Module}.Read)]
80
- public async Task<ActionResult> GetAll() { ... }
81
- ```
82
- ```
83
-
84
- ### 5. Present PermissionConfiguration.cs Output
85
-
86
- ```markdown
87
- ## PermissionConfiguration.cs HasData
88
-
89
- Add to `Infrastructure/Persistence/Configurations/PermissionConfiguration.cs`:
90
-
91
- [Show HasData entries from MCP response]
92
- ```
93
-
94
- ### 6. Store Permission GUIDs
95
-
96
- Store the permission GUIDs for use in step-03-roles:
97
-
98
- ```
99
- {permission_guids} = {
100
- wildcard: "guid-for-wildcard",
101
- read: "guid-for-read",
102
- create: "guid-for-create",
103
- update: "guid-for-update",
104
- delete: "guid-for-delete"
105
- }
106
- ```
107
-
108
- ---
109
-
110
- ## CLIENT PROJECT HANDLING
111
-
112
- > **Condition:** `{seeding_strategy}` = "provider"
113
-
114
- ### 1. Call MCP generate_permissions normally
115
-
116
- The tool always returns:
117
- - Permissions.cs constants (Application layer) - **ALWAYS generated** (identical for core and client)
118
- - PermissionConfiguration.cs HasData - **REDIRECT for client projects**
119
-
120
- ### 2. Permissions.cs: IDENTICAL
121
-
122
- The `Permissions.cs` file in the Application layer is generated identically regardless of project type.
123
- Write it as usual.
124
-
125
- ### 3. PermissionConfiguration.cs: REDIRECT
126
-
127
- **For core (`{seeding_strategy}` = "hasdata"):** Write HasData() in `PermissionConfiguration.cs` (existing pattern)
128
-
129
- **For client (`{seeding_strategy}` = "provider"):** DO NOT write in PermissionConfiguration.cs (does not exist in client projects).
130
- Instead, create:
131
- - `Infrastructure/Persistence/Seeding/Data/{Domain}/{Module}PermissionSeedData.cs`
132
-
133
- Content: static class with deterministic GUIDs and method `GetPermissionEntries()`.
134
- These entries will be consumed by the `IClientSeedDataProvider` at step 03b.
135
-
136
- ### 4. Store Permission GUIDs
137
-
138
- Identical to the existing pattern - store `{permission_guids}` for step-03.
139
-
140
- ---
141
-
142
- ## TWO-FILE REQUIREMENT
143
-
144
- **CRITICAL:** SmartStack requires permissions in TWO files:
145
-
146
- | File | Layer | Content |
147
- |------|-------|---------|
148
- | `Permissions.cs` | Application | Compile-time constants |
149
- | `PermissionConfiguration.cs` | Infrastructure | EF Core HasData seeds |
150
-
151
- Both MUST be kept in sync. Missing one = runtime 403 errors.
152
-
153
- > **Client project exception:** For `{seeding_strategy}` = "provider", `PermissionConfiguration.cs` is replaced by
154
- > `{Module}PermissionSeedData.cs` + `IClientSeedDataProvider`. The `Permissions.cs` constants file is still required.
155
-
156
- ---
157
-
158
- ## MCP RESPONSE HANDLING
159
-
160
- ### Success Case
161
-
162
- If MCP returns successfully:
163
- - Display Permissions.cs code
164
- - Display PermissionConfiguration.cs HasData code
165
- - Store `{permission_guids}` for next step
166
- - Proceed to step-03-roles.md
167
-
168
- ### Error Case
169
-
170
- If MCP call fails:
171
- - Display error message
172
- - Suggest checking navRoute format
173
- - Do NOT proceed automatically
174
-
175
- ---
176
-
177
- ## SUCCESS METRICS
178
-
179
- - MCP generate_permissions called successfully
180
- - Permissions.cs code displayed
181
- - PermissionConfiguration.cs HasData displayed
182
- - Deterministic GUIDs (not placeholders)
183
- - Permission GUIDs stored for role assignment
184
- - Proceeded to step-03-roles.md
185
-
186
- ## FAILURE MODES
187
-
188
- - MCP call failed (display error, stop)
189
- - Invalid navRoute format (must be application.module)
190
- - Missing navigation entity (return to step-01)
191
-
192
- ---
193
-
194
- ## NEXT STEP
195
-
196
- After displaying permission code, proceed to `./step-03-roles.md`
1
+ ---
2
+ name: step-02-permissions
3
+ description: Generate RBAC permissions using MCP generate_permissions
4
+ prev_step: steps/step-01-navigation.md
5
+ next_step: steps/step-03-roles.md
6
+ ---
7
+
8
+ # Step 2: Permissions Generation
9
+
10
+ ## MANDATORY EXECUTION RULES
11
+
12
+ - ALWAYS use MCP `generate_permissions` tool - NEVER use templates
13
+ - ALWAYS generate BOTH Permissions.cs constants AND PermissionConfiguration.cs HasData
14
+ - NEVER skip this step - permissions are MANDATORY for security
15
+ - YOU ARE AN ORCHESTRATOR calling MCP, not a generator
16
+
17
+ ## YOUR TASK
18
+
19
+ Call the SmartStack MCP `generate_permissions` tool to generate:
20
+ 1. Permissions.cs nested class with constants
21
+ 2. PermissionConfiguration.cs HasData() entries
22
+
23
+ ---
24
+
25
+ ## AVAILABLE STATE
26
+
27
+ From previous steps:
28
+
29
+ | Variable | Description |
30
+ |----------|-------------|
31
+ | `{level}` | application, module, section, or resource |
32
+ | `{full_path}` | Complete navigation path (navRoute) |
33
+ | `{navigation_guid}` | GUID of the navigation entity |
34
+ | `{labels}` | Object with fr, en, it, de |
35
+ | `{project_type}` | "core" or "client" |
36
+ | `{seeding_strategy}` | "hasdata" or "provider" |
37
+
38
+ ---
39
+
40
+ ## EXECUTION SEQUENCE
41
+
42
+ ### 1. Determine NavRoute
43
+
44
+ For permissions, the navRoute is the `{full_path}`:
45
+
46
+ ```
47
+ navRoute = "{full_path}"
48
+ Example: "sales.products"
49
+ ```
50
+
51
+ ### 2. Call MCP generate_permissions
52
+
53
+ ```
54
+ Tool: mcp__smartstack__generate_permissions
55
+ Args:
56
+ navRoute: "{full_path}"
57
+ includeStandardActions: true
58
+ includeWildcard: true
59
+ ```
60
+
61
+ ### 3. Parse MCP Response
62
+
63
+ The tool returns:
64
+ - Permissions.cs nested class structure
65
+ - PermissionConfiguration.cs HasData() entries
66
+ - Deterministic GUIDs for each permission
67
+
68
+ ### 4. Present Permissions.cs Output
69
+
70
+ ```markdown
71
+ ## Permissions.cs Constants
72
+
73
+ Add to `Application/Common/Authorization/Permissions.cs`:
74
+
75
+ [Show Permissions.cs nested class from MCP response]
76
+
77
+ **Usage in Controller:**
78
+ ```csharp
79
+ [RequirePermission(Permissions.{Application}.{Module}.Read)]
80
+ public async Task<ActionResult> GetAll() { ... }
81
+ ```
82
+ ```
83
+
84
+ ### 5. Present PermissionConfiguration.cs Output
85
+
86
+ ```markdown
87
+ ## PermissionConfiguration.cs HasData
88
+
89
+ Add to `Infrastructure/Persistence/Configurations/PermissionConfiguration.cs`:
90
+
91
+ [Show HasData entries from MCP response]
92
+ ```
93
+
94
+ ### 6. Store Permission GUIDs
95
+
96
+ Store the permission GUIDs for use in step-03-roles:
97
+
98
+ ```
99
+ {permission_guids} = {
100
+ wildcard: "guid-for-wildcard",
101
+ read: "guid-for-read",
102
+ create: "guid-for-create",
103
+ update: "guid-for-update",
104
+ delete: "guid-for-delete"
105
+ }
106
+ ```
107
+
108
+ ---
109
+
110
+ ## CLIENT PROJECT HANDLING
111
+
112
+ > **Condition:** `{seeding_strategy}` = "provider"
113
+
114
+ ### 1. Call MCP generate_permissions normally
115
+
116
+ The tool always returns:
117
+ - Permissions.cs constants (Application layer) - **ALWAYS generated** (identical for core and client)
118
+ - PermissionConfiguration.cs HasData - **REDIRECT for client projects**
119
+
120
+ ### 2. Permissions.cs: IDENTICAL
121
+
122
+ The `Permissions.cs` file in the Application layer is generated identically regardless of project type.
123
+ Write it as usual.
124
+
125
+ ### 3. PermissionConfiguration.cs: REDIRECT
126
+
127
+ **For core (`{seeding_strategy}` = "hasdata"):** Write HasData() in `PermissionConfiguration.cs` (existing pattern)
128
+
129
+ **For client (`{seeding_strategy}` = "provider"):** DO NOT write in PermissionConfiguration.cs (does not exist in client projects).
130
+ Instead, create:
131
+ - `Infrastructure/Persistence/Seeding/Data/{Domain}/{Module}PermissionSeedData.cs`
132
+
133
+ Content: static class with deterministic GUIDs and method `GetPermissionEntries()`.
134
+ These entries will be consumed by the `IClientSeedDataProvider` at step 03b.
135
+
136
+ ### 4. Store Permission GUIDs
137
+
138
+ Identical to the existing pattern - store `{permission_guids}` for step-03.
139
+
140
+ ---
141
+
142
+ ## TWO-FILE REQUIREMENT
143
+
144
+ **CRITICAL:** SmartStack requires permissions in TWO files:
145
+
146
+ | File | Layer | Content |
147
+ |------|-------|---------|
148
+ | `Permissions.cs` | Application | Compile-time constants |
149
+ | `PermissionConfiguration.cs` | Infrastructure | EF Core HasData seeds |
150
+
151
+ Both MUST be kept in sync. Missing one = runtime 403 errors.
152
+
153
+ > **Client project exception:** For `{seeding_strategy}` = "provider", `PermissionConfiguration.cs` is replaced by
154
+ > `{Module}PermissionSeedData.cs` + `IClientSeedDataProvider`. The `Permissions.cs` constants file is still required.
155
+
156
+ ---
157
+
158
+ ## MCP RESPONSE HANDLING
159
+
160
+ ### Success Case
161
+
162
+ If MCP returns successfully:
163
+ - Display Permissions.cs code
164
+ - Display PermissionConfiguration.cs HasData code
165
+ - Store `{permission_guids}` for next step
166
+ - Proceed to step-03-roles.md
167
+
168
+ ### Error Case
169
+
170
+ If MCP call fails:
171
+ - Display error message
172
+ - Suggest checking navRoute format
173
+ - Do NOT proceed automatically
174
+
175
+ ---
176
+
177
+ ## SUCCESS METRICS
178
+
179
+ - MCP generate_permissions called successfully
180
+ - Permissions.cs code displayed
181
+ - PermissionConfiguration.cs HasData displayed
182
+ - Deterministic GUIDs (not placeholders)
183
+ - Permission GUIDs stored for role assignment
184
+ - Proceeded to step-03-roles.md
185
+
186
+ ## FAILURE MODES
187
+
188
+ - MCP call failed (display error, stop)
189
+ - Invalid navRoute format (must be application.module.section)
190
+ - Missing navigation entity (return to step-01)
191
+
192
+ ---
193
+
194
+ ## NEXT STEP
195
+
196
+ After displaying permission code, proceed to `./step-03-roles.md`