@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,170 +1,170 @@
1
- ---
2
- name: step-01-navigation
3
- description: Generate navigation entity seeds using MCP scaffold_navigation (with fallback)
4
- prev_step: steps/step-00-init.md
5
- next_step: steps/step-02-permissions.md
6
- ---
7
-
8
- # Step 1: Navigation Generation
9
-
10
- ## MANDATORY EXECUTION RULES
11
-
12
- - PREFER MCP `scaffold_navigation` tool as the primary method
13
- - If MCP is unavailable (`{mcp_available}` = false) or the call fails, use the FALLBACK PROCEDURE below
14
- - ALWAYS verify the output includes translations for 4 languages (fr, en, it, de)
15
- - ALWAYS WRITE generated code to the actual Configuration files (not just display)
16
- - Store navigation GUID for use in subsequent steps
17
-
18
- ## YOUR TASK
19
-
20
- Generate navigation entity seeds:
21
- 1. Navigation entity HasData() code in the appropriate Configuration.cs
22
- 2. NavigationTranslation entries (4 languages) in NavigationTranslationConfiguration.cs
23
-
24
- ---
25
-
26
- ## AVAILABLE STATE
27
-
28
- From step-00-init:
29
-
30
- | Variable | Description |
31
- |----------|-------------|
32
- | `{level}` | application, module, or section |
33
- | `{code}` | kebab-case identifier |
34
- | `{full_path}` | Complete navigation path |
35
- | `{parent_path}` | Parent path (null for context) |
36
- | `{labels}` | Object with fr, en, it, de |
37
- | `{descriptions}` | Object with fr, en, it, de |
38
- | `{icon}` | Lucide icon name |
39
- | `{display_order}` | Numeric display order |
40
- | `{mcp_available}` | Boolean - MCP connectivity status |
41
- | `{project_type}` | "core" or "client" |
42
- | `{seeding_strategy}` | "hasdata" or "provider" |
43
-
44
- ---
45
-
46
- ## EXECUTION SEQUENCE (MCP Primary)
47
-
48
- > **Branch:** If `{seeding_strategy}` = "provider", jump to **CLIENT PROJECT HANDLING** section below.
49
- > The MCP and FALLBACK sections apply only when `{seeding_strategy}` = "hasdata" (core projects).
50
-
51
- ### 1. Call MCP scaffold_navigation
52
-
53
- ```
54
- Tool: mcp__smartstack__scaffold_navigation
55
- Args:
56
- level: "{level}"
57
- code: "{code}"
58
- parentPath: "{parent_path}" # Omit if level is "application" (top-level)
59
- labels:
60
- fr: "{labels.fr}"
61
- en: "{labels.en}"
62
- it: "{labels.it}"
63
- de: "{labels.de}"
64
- descriptions:
65
- fr: "{descriptions.fr}"
66
- en: "{descriptions.en}"
67
- it: "{descriptions.it}"
68
- de: "{descriptions.de}"
69
- icon: "{icon}"
70
- displayOrder: {display_order}
71
- ```
72
-
73
- ### 2. Parse MCP Response
74
-
75
- The tool returns:
76
- - Navigation entity GUID (deterministic)
77
- - HasData() code for NavigationXxxConfiguration.cs
78
- - HasData() code for NavigationTranslationConfiguration.cs
79
- - SeedData class template (optional)
80
-
81
- ### 3. Write Code to Files
82
-
83
- **CRITICAL:** WRITE the generated code to the actual Configuration files.
84
-
85
- 1. Update `Navigation{Level}Configuration.cs` with the new HasData entry
86
- 2. Update `NavigationTranslationConfiguration.cs` with the 4 translation entries
87
-
88
- ### 4. Store Generated GUID
89
-
90
- ```
91
- {navigation_guid} = [GUID from MCP response]
92
- ```
93
-
94
- ---
95
-
96
- ## MCP RESPONSE HANDLING
97
-
98
- ### Success Case
99
-
100
- If MCP returns successfully:
101
- - Write HasData code to Configuration files
102
- - Store `{navigation_guid}` for next step
103
- - Proceed to step-02-permissions.md
104
-
105
- ### Error Case
106
-
107
- If MCP call fails or `{mcp_available}` = false:
108
- - Log the error for reference
109
- - Proceed to FALLBACK PROCEDURE below
110
- - Do NOT stop the workflow
111
-
112
- ---
113
-
114
- ## CLIENT PROJECT HANDLING
115
-
116
- > **Condition:** `{seeding_strategy}` = "provider"
117
-
118
- For client projects, navigation is NOT seeded via HasData() in Configuration files.
119
- It will be seeded at runtime via `IClientSeedDataProvider` generated at step 03b.
120
-
121
- ### Actions for a client project:
122
-
123
- 1. **Generate the navigation GUID** (deterministic, same method as core)
124
- 2. **Create the SeedData file** (same pattern as existing)
125
- - `Infrastructure/Persistence/Seeding/Data/{Domain}/{Module}NavigationSeedData.cs`
126
- - Contains static GUIDs and `GetNavigationEntries()`
127
- 3. **Create the translations file**
128
- - `Infrastructure/Persistence/Seeding/Data/{Domain}/{Module}NavigationTranslationSeedData.cs`
129
- 4. **DO NOT search for** `NavigationModuleConfiguration.cs` (does not exist in client projects)
130
- 5. **DO NOT write** HasData() in Configuration files
131
- 6. **Store** `{navigation_guid}` for subsequent steps
132
-
133
- The SeedData files will be consumed by the `IClientSeedDataProvider` generated at step 03b.
134
-
135
- **After creating SeedData files:** Store `{navigation_guid}` and proceed to step-02-permissions.md.
136
-
137
- ---
138
-
139
- ## FALLBACK PROCEDURE (When MCP Unavailable)
140
-
141
- See [references/nav-fallback-procedure.md](../references/nav-fallback-procedure.md) for the complete 8-step fallback:
142
- - **F1:** Read existing Configuration/SeedData files to determine state
143
- - **F2:** Determine parent GUID by level
144
- - **F3:** Generate deterministic GUID (SHA256, never NewGuid())
145
- - **F4:** Write navigation entity seed (SeedData class or inline HasData)
146
- - **F5:** Write 4 translation entries (continue existing index sequence)
147
- - **F6-F8:** Store result, validation checklist, summary
148
-
149
- ---
150
-
151
- ## SUCCESS METRICS
152
-
153
- - Navigation entity GUID obtained (via MCP or fallback)
154
- - HasData code WRITTEN to Configuration files
155
- - Translation code WRITTEN (4 languages)
156
- - `{navigation_guid}` stored for step-02
157
- - Proceeded to step-02-permissions.md
158
-
159
- ## FAILURE MODES
160
-
161
- - Missing parent path for non-application level (return to step-00)
162
- - Invalid level (return to step-00)
163
- - Parent entity not found in existing seeds (ask user for parent GUID)
164
-
165
- ---
166
-
167
- ## NEXT STEP
168
-
169
- After navigation seeds are generated (via MCP or fallback) and written to files,
170
- proceed to `./step-02-permissions.md`
1
+ ---
2
+ name: step-01-navigation
3
+ description: Generate navigation entity seeds using MCP scaffold_navigation (with fallback)
4
+ prev_step: steps/step-00-init.md
5
+ next_step: steps/step-02-permissions.md
6
+ ---
7
+
8
+ # Step 1: Navigation Generation
9
+
10
+ ## MANDATORY EXECUTION RULES
11
+
12
+ - PREFER MCP `scaffold_navigation` tool as the primary method
13
+ - If MCP is unavailable (`{mcp_available}` = false) or the call fails, use the FALLBACK PROCEDURE below
14
+ - ALWAYS verify the output includes translations for 4 languages (fr, en, it, de)
15
+ - ALWAYS WRITE generated code to the actual Configuration files (not just display)
16
+ - Store navigation GUID for use in subsequent steps
17
+
18
+ ## YOUR TASK
19
+
20
+ Generate navigation entity seeds:
21
+ 1. Navigation entity HasData() code in the appropriate Configuration.cs
22
+ 2. NavigationTranslation entries (4 languages) in NavigationTranslationConfiguration.cs
23
+
24
+ ---
25
+
26
+ ## AVAILABLE STATE
27
+
28
+ From step-00-init:
29
+
30
+ | Variable | Description |
31
+ |----------|-------------|
32
+ | `{level}` | application, module, section, or resource |
33
+ | `{code}` | kebab-case identifier |
34
+ | `{full_path}` | Complete navigation path |
35
+ | `{parent_path}` | Parent path (null for context) |
36
+ | `{labels}` | Object with fr, en, it, de |
37
+ | `{descriptions}` | Object with fr, en, it, de |
38
+ | `{icon}` | Lucide icon name |
39
+ | `{display_order}` | Numeric display order |
40
+ | `{mcp_available}` | Boolean - MCP connectivity status |
41
+ | `{project_type}` | "core" or "client" |
42
+ | `{seeding_strategy}` | "hasdata" or "provider" |
43
+
44
+ ---
45
+
46
+ ## EXECUTION SEQUENCE (MCP Primary)
47
+
48
+ > **Branch:** If `{seeding_strategy}` = "provider", jump to **CLIENT PROJECT HANDLING** section below.
49
+ > The MCP and FALLBACK sections apply only when `{seeding_strategy}` = "hasdata" (core projects).
50
+
51
+ ### 1. Call MCP scaffold_navigation
52
+
53
+ ```
54
+ Tool: mcp__smartstack__scaffold_navigation
55
+ Args:
56
+ level: "{level}"
57
+ code: "{code}"
58
+ parentPath: "{parent_path}" # Omit if level is "application" (top-level)
59
+ labels:
60
+ fr: "{labels.fr}"
61
+ en: "{labels.en}"
62
+ it: "{labels.it}"
63
+ de: "{labels.de}"
64
+ descriptions:
65
+ fr: "{descriptions.fr}"
66
+ en: "{descriptions.en}"
67
+ it: "{descriptions.it}"
68
+ de: "{descriptions.de}"
69
+ icon: "{icon}"
70
+ displayOrder: {display_order}
71
+ ```
72
+
73
+ ### 2. Parse MCP Response
74
+
75
+ The tool returns:
76
+ - Navigation entity GUID (deterministic)
77
+ - HasData() code for NavigationXxxConfiguration.cs
78
+ - HasData() code for NavigationTranslationConfiguration.cs
79
+ - SeedData class template (optional)
80
+
81
+ ### 3. Write Code to Files
82
+
83
+ **CRITICAL:** WRITE the generated code to the actual Configuration files.
84
+
85
+ 1. Update `Navigation{Level}Configuration.cs` with the new HasData entry
86
+ 2. Update `NavigationTranslationConfiguration.cs` with the 4 translation entries
87
+
88
+ ### 4. Store Generated GUID
89
+
90
+ ```
91
+ {navigation_guid} = [GUID from MCP response]
92
+ ```
93
+
94
+ ---
95
+
96
+ ## MCP RESPONSE HANDLING
97
+
98
+ ### Success Case
99
+
100
+ If MCP returns successfully:
101
+ - Write HasData code to Configuration files
102
+ - Store `{navigation_guid}` for next step
103
+ - Proceed to step-02-permissions.md
104
+
105
+ ### Error Case
106
+
107
+ If MCP call fails or `{mcp_available}` = false:
108
+ - Log the error for reference
109
+ - Proceed to FALLBACK PROCEDURE below
110
+ - Do NOT stop the workflow
111
+
112
+ ---
113
+
114
+ ## CLIENT PROJECT HANDLING
115
+
116
+ > **Condition:** `{seeding_strategy}` = "provider"
117
+
118
+ For client projects, navigation is NOT seeded via HasData() in Configuration files.
119
+ It will be seeded at runtime via `IClientSeedDataProvider` generated at step 03b.
120
+
121
+ ### Actions for a client project:
122
+
123
+ 1. **Generate the navigation GUID** (deterministic, same method as core)
124
+ 2. **Create the SeedData file** (same pattern as existing)
125
+ - `Infrastructure/Persistence/Seeding/Data/{Domain}/{Module}NavigationSeedData.cs`
126
+ - Contains static GUIDs and `GetNavigationEntries()`
127
+ 3. **Create the translations file**
128
+ - `Infrastructure/Persistence/Seeding/Data/{Domain}/{Module}NavigationTranslationSeedData.cs`
129
+ 4. **DO NOT search for** `NavigationModuleConfiguration.cs` (does not exist in client projects)
130
+ 5. **DO NOT write** HasData() in Configuration files
131
+ 6. **Store** `{navigation_guid}` for subsequent steps
132
+
133
+ The SeedData files will be consumed by the `IClientSeedDataProvider` generated at step 03b.
134
+
135
+ **After creating SeedData files:** Store `{navigation_guid}` and proceed to step-02-permissions.md.
136
+
137
+ ---
138
+
139
+ ## FALLBACK PROCEDURE (When MCP Unavailable)
140
+
141
+ See [references/nav-fallback-procedure.md](../references/nav-fallback-procedure.md) for the complete 8-step fallback:
142
+ - **F1:** Read existing Configuration/SeedData files to determine state
143
+ - **F2:** Determine parent GUID by level
144
+ - **F3:** Generate deterministic GUID (SHA256, never NewGuid())
145
+ - **F4:** Write navigation entity seed (SeedData class or inline HasData)
146
+ - **F5:** Write 4 translation entries (continue existing index sequence)
147
+ - **F6-F8:** Store result, validation checklist, summary
148
+
149
+ ---
150
+
151
+ ## SUCCESS METRICS
152
+
153
+ - Navigation entity GUID obtained (via MCP or fallback)
154
+ - HasData code WRITTEN to Configuration files
155
+ - Translation code WRITTEN (4 languages)
156
+ - `{navigation_guid}` stored for step-02
157
+ - Proceeded to step-02-permissions.md
158
+
159
+ ## FAILURE MODES
160
+
161
+ - Missing parent path for non-application level (return to step-00)
162
+ - Invalid level (return to step-00)
163
+ - Parent entity not found in existing seeds (ask user for parent GUID)
164
+
165
+ ---
166
+
167
+ ## NEXT STEP
168
+
169
+ After navigation seeds are generated (via MCP or fallback) and written to files,
170
+ proceed to `./step-02-permissions.md`