@atlashub/smartstack-cli 3.36.0 → 3.38.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 (219) hide show
  1. package/dist/index.js +16 -24
  2. package/dist/index.js.map +1 -1
  3. package/dist/mcp-entry.mjs +201 -256
  4. package/dist/mcp-entry.mjs.map +1 -1
  5. package/package.json +3 -2
  6. package/scripts/extract-api-endpoints.ts +325 -0
  7. package/scripts/extract-business-rules.ts +440 -0
  8. package/scripts/generate-doc-with-mock-ui.ts +804 -0
  9. package/scripts/health-check.sh +168 -0
  10. package/scripts/postinstall.js +18 -0
  11. package/templates/agents/ba-reader.md +9 -9
  12. package/templates/agents/ba-writer.md +12 -15
  13. package/templates/agents/code-reviewer.md +1 -1
  14. package/templates/agents/docs-context-reader.md +1 -1
  15. package/templates/agents/gitflow/merge.md +0 -4
  16. package/templates/agents/gitflow/pr.md +0 -4
  17. package/templates/agents/gitflow/start.md +30 -5
  18. package/templates/mcp-scaffolding/frontend/nav-routes.ts.hbs +20 -20
  19. package/templates/mcp-scaffolding/frontend/routes.tsx.hbs +16 -24
  20. package/templates/mcp-scaffolding/migrations/seed-roles.cs.hbs +2 -2
  21. package/templates/skills/_resources/mcp-validate-documentation-spec.md +3 -3
  22. package/templates/skills/_shared.md +15 -17
  23. package/templates/skills/ai-prompt/SKILL.md +1 -1
  24. package/templates/skills/ai-prompt/steps/step-00-init.md +47 -0
  25. package/templates/skills/apex/SKILL.md +3 -4
  26. package/templates/skills/apex/_shared.md +10 -20
  27. package/templates/skills/apex/references/analysis-methods.md +141 -0
  28. package/templates/skills/apex/references/challenge-questions.md +1 -21
  29. package/templates/skills/apex/references/core-seed-data.md +35 -57
  30. package/templates/skills/apex/references/examine-build-validation.md +87 -0
  31. package/templates/skills/apex/references/execution-frontend-gates.md +177 -0
  32. package/templates/skills/apex/references/execution-frontend-patterns.md +105 -0
  33. package/templates/skills/apex/references/execution-layer1-rules.md +96 -0
  34. package/templates/skills/apex/references/initialization-challenge-flow.md +110 -0
  35. package/templates/skills/apex/references/planning-layer-mapping.md +151 -0
  36. package/templates/skills/apex/references/post-checks.md +145 -40
  37. package/templates/skills/apex/references/smartstack-api.md +35 -51
  38. package/templates/skills/apex/references/smartstack-frontend.md +17 -17
  39. package/templates/skills/apex/references/smartstack-layers.md +38 -62
  40. package/templates/skills/apex/steps/step-00-init.md +14 -26
  41. package/templates/skills/apex/steps/step-01-analyze.md +10 -143
  42. package/templates/skills/apex/steps/step-02-plan.md +10 -92
  43. package/templates/skills/apex/steps/step-03-execute.md +47 -249
  44. package/templates/skills/apex/steps/step-04-examine.md +14 -78
  45. package/templates/skills/apex/steps/step-05-deep-review.md +2 -2
  46. package/templates/skills/apex/steps/step-08-run-tests.md +2 -0
  47. package/templates/skills/application/SKILL.md +6 -7
  48. package/templates/skills/application/references/backend-controller-hierarchy.md +16 -16
  49. package/templates/skills/application/references/backend-seeding-and-dto-output.md +83 -0
  50. package/templates/skills/application/references/backend-table-prefix-mapping.md +79 -0
  51. package/templates/skills/application/references/backend-verification.md +1 -1
  52. package/templates/skills/application/references/frontend-i18n-and-output.md +67 -0
  53. package/templates/skills/application/references/frontend-route-naming.md +117 -0
  54. package/templates/skills/application/references/frontend-route-wiring-app-tsx.md +107 -0
  55. package/templates/skills/application/references/frontend-verification.md +12 -12
  56. package/templates/skills/application/references/init-parameter-detection.md +120 -0
  57. package/templates/skills/application/references/migration-checklist-troubleshooting.md +100 -0
  58. package/templates/skills/application/references/nav-fallback-procedure.md +5 -6
  59. package/templates/skills/application/references/provider-template.md +2 -6
  60. package/templates/skills/application/references/roles-client-project-handling.md +55 -0
  61. package/templates/skills/application/references/roles-fallback-procedure.md +149 -0
  62. package/templates/skills/application/references/test-coverage-requirements.md +213 -0
  63. package/templates/skills/application/references/test-frontend.md +3 -3
  64. package/templates/skills/application/steps/step-00-init.md +11 -141
  65. package/templates/skills/application/steps/step-01-navigation.md +3 -3
  66. package/templates/skills/application/steps/step-02-permissions.md +4 -4
  67. package/templates/skills/application/steps/step-03-roles.md +18 -175
  68. package/templates/skills/application/steps/step-03b-provider.md +1 -2
  69. package/templates/skills/application/steps/step-04-backend.md +19 -110
  70. package/templates/skills/application/steps/step-05-frontend.md +17 -143
  71. package/templates/skills/application/steps/step-06-migration.md +12 -60
  72. package/templates/skills/application/steps/step-07-tests.md +9 -76
  73. package/templates/skills/application/templates-backend.md +29 -27
  74. package/templates/skills/application/templates-frontend.md +48 -48
  75. package/templates/skills/application/templates-seed.md +57 -131
  76. package/templates/skills/business-analyse/SKILL.md +27 -30
  77. package/templates/skills/business-analyse/_architecture.md +6 -6
  78. package/templates/skills/business-analyse/_shared.md +60 -88
  79. package/templates/skills/business-analyse/questionnaire/04-data.md +3 -3
  80. package/templates/skills/business-analyse/questionnaire/06-security.md +1 -1
  81. package/templates/skills/business-analyse/questionnaire/13-cross-module.md +1 -1
  82. package/templates/skills/business-analyse/react/application-viewer.md +12 -12
  83. package/templates/skills/business-analyse/react/components.md +8 -12
  84. package/templates/skills/business-analyse/react/schema.md +11 -11
  85. package/templates/skills/business-analyse/references/agent-module-prompt.md +2 -3
  86. package/templates/skills/business-analyse/references/analysis-semantic-checks.md +190 -0
  87. package/templates/skills/business-analyse/references/cache-warming-strategy.md +2 -2
  88. package/templates/skills/business-analyse/references/cadrage-challenge-patterns.md +41 -0
  89. package/templates/skills/business-analyse/references/cadrage-coverage-matrix.md +74 -0
  90. package/templates/skills/business-analyse/references/cadrage-shared-modules.md +69 -0
  91. package/templates/skills/business-analyse/references/cadrage-structure-cards.md +1 -1
  92. package/templates/skills/business-analyse/references/compilation-structure-cards.md +297 -0
  93. package/templates/skills/business-analyse/references/consolidation-structural-checks.md +2 -2
  94. package/templates/skills/business-analyse/references/deploy-modes.md +5 -5
  95. package/templates/skills/business-analyse/references/detection-strategies.md +7 -7
  96. package/templates/skills/business-analyse/references/handoff-file-templates.md +14 -22
  97. package/templates/skills/business-analyse/references/handoff-mappings.md +4 -4
  98. package/templates/skills/business-analyse/references/handoff-seeddata-generation.md +312 -0
  99. package/templates/skills/business-analyse/references/init-schema-deployment.md +3 -3
  100. package/templates/skills/business-analyse/references/naming-conventions.md +22 -24
  101. package/templates/skills/business-analyse/references/prd-generation.md +2 -2
  102. package/templates/skills/business-analyse/references/review-data-mapping.md +2 -2
  103. package/templates/skills/business-analyse/references/robustness-checks.md +1 -1
  104. package/templates/skills/business-analyse/references/spec-auto-inference.md +3 -3
  105. package/templates/skills/business-analyse/references/team-orchestration.md +49 -6
  106. package/templates/skills/business-analyse/references/ui-dashboard-spec.md +1 -1
  107. package/templates/skills/business-analyse/references/ui-resource-cards.md +18 -18
  108. package/templates/skills/business-analyse/references/validate-incremental-html.md +2 -2
  109. package/templates/skills/business-analyse/references/validation-checklist.md +2 -2
  110. package/templates/skills/business-analyse/schemas/application-schema.json +4 -5
  111. package/templates/skills/business-analyse/schemas/project-schema.json +1 -6
  112. package/templates/skills/business-analyse/schemas/sections/metadata-schema.json +2 -3
  113. package/templates/skills/business-analyse/schemas/sections/specification-schema.json +4 -4
  114. package/templates/skills/business-analyse/steps/step-00-init.md +8 -17
  115. package/templates/skills/business-analyse/steps/step-01-cadrage.md +35 -198
  116. package/templates/skills/business-analyse/steps/step-01b-applications.md +16 -20
  117. package/templates/skills/business-analyse/steps/step-02-decomposition.md +1 -1
  118. package/templates/skills/business-analyse/steps/step-03a1-setup.md +4 -4
  119. package/templates/skills/business-analyse/steps/step-03a2-analysis.md +1 -1
  120. package/templates/skills/business-analyse/steps/step-03b-ui.md +4 -4
  121. package/templates/skills/business-analyse/steps/step-03c-compile.md +66 -140
  122. package/templates/skills/business-analyse/steps/step-03d-validate.md +2 -2
  123. package/templates/skills/business-analyse/steps/step-04a-collect.md +2 -2
  124. package/templates/skills/business-analyse/steps/step-04b-analyze.md +42 -160
  125. package/templates/skills/business-analyse/steps/step-04c-decide.md +1 -1
  126. package/templates/skills/business-analyse/steps/step-05a-handoff.md +74 -104
  127. package/templates/skills/business-analyse/steps/step-05b-deploy.md +13 -11
  128. package/templates/skills/business-analyse/steps/step-06-review.md +3 -3
  129. package/templates/skills/business-analyse/templates/tpl-frd.md +13 -13
  130. package/templates/skills/business-analyse/templates/tpl-handoff.md +12 -12
  131. package/templates/skills/business-analyse/templates-frd.md +25 -25
  132. package/templates/skills/business-analyse/templates-react.md +15 -21
  133. package/templates/skills/controller/SKILL.md +1 -1
  134. package/templates/skills/controller/postman-templates.md +1 -1
  135. package/templates/skills/controller/references/controller-code-templates.md +2 -2
  136. package/templates/skills/controller/references/mcp-scaffold-workflow.md +209 -0
  137. package/templates/skills/controller/references/permission-sync-templates.md +13 -16
  138. package/templates/skills/controller/steps/step-00-init.md +11 -11
  139. package/templates/skills/controller/steps/step-03-generate.md +64 -103
  140. package/templates/skills/controller/templates.md +67 -71
  141. package/templates/skills/debug/SKILL.md +13 -218
  142. package/templates/skills/debug/steps/step-00-init.md +57 -0
  143. package/templates/skills/debug/steps/step-01-analyze.md +219 -0
  144. package/templates/skills/debug/steps/step-02-resolve.md +85 -0
  145. package/templates/skills/documentation/SKILL.md +49 -345
  146. package/templates/skills/documentation/data-schema.md +11 -8
  147. package/templates/skills/documentation/steps/step-00-init.md +70 -0
  148. package/templates/skills/documentation/steps/step-01-scan.md +113 -0
  149. package/templates/skills/documentation/steps/step-02-generate.md +231 -0
  150. package/templates/skills/documentation/steps/step-03-validate.md +238 -0
  151. package/templates/skills/documentation/templates.md +480 -322
  152. package/templates/skills/efcore/references/both-contexts.md +32 -0
  153. package/templates/skills/efcore/references/database-operations.md +67 -0
  154. package/templates/skills/efcore/references/destructive-operations.md +38 -0
  155. package/templates/skills/efcore/references/reset-operations.md +81 -0
  156. package/templates/skills/efcore/references/seed-methods.md +86 -0
  157. package/templates/skills/efcore/references/shared-init-functions.md +250 -0
  158. package/templates/skills/efcore/references/sql-objects-injection.md +61 -0
  159. package/templates/skills/efcore/references/troubleshooting.md +81 -0
  160. package/templates/skills/efcore/steps/db/step-deploy.md +1 -32
  161. package/templates/skills/efcore/steps/db/step-reset.md +7 -103
  162. package/templates/skills/efcore/steps/db/step-seed.md +10 -132
  163. package/templates/skills/efcore/steps/db/step-status.md +5 -44
  164. package/templates/skills/efcore/steps/migration/step-03-validate.md +8 -62
  165. package/templates/skills/efcore/steps/rebase-snapshot/step-03-create.md +1 -57
  166. package/templates/skills/efcore/steps/shared/step-00-init.md +11 -254
  167. package/templates/skills/efcore/steps/squash/step-03-create.md +1 -58
  168. package/templates/skills/feature-full/SKILL.md +1 -1
  169. package/templates/skills/feature-full/steps/step-00-init.md +57 -0
  170. package/templates/skills/feature-full/steps/step-01-implementation.md +1 -1
  171. package/templates/skills/gitflow/SKILL.md +1 -1
  172. package/templates/skills/gitflow/_shared.md +23 -0
  173. package/templates/skills/gitflow/references/commit-message-generation.md +58 -0
  174. package/templates/skills/gitflow/references/commit-migration-validation.md +49 -0
  175. package/templates/skills/gitflow/references/finish-cleanup.md +51 -0
  176. package/templates/skills/gitflow/references/finish-version-bumping.md +45 -0
  177. package/templates/skills/gitflow/references/init-environment-detection.md +41 -0
  178. package/templates/skills/gitflow/references/init-questions.md +185 -0
  179. package/templates/skills/gitflow/references/init-structure-creation.md +71 -0
  180. package/templates/skills/gitflow/references/init-version-detection.md +21 -0
  181. package/templates/skills/gitflow/references/init-workspace-detection.md +43 -0
  182. package/templates/skills/gitflow/references/merge-ci-status.md +36 -0
  183. package/templates/skills/gitflow/references/merge-execution.md +62 -0
  184. package/templates/skills/gitflow/references/merge-pr-context.md +76 -0
  185. package/templates/skills/gitflow/references/pr-build-checks.md +60 -0
  186. package/templates/skills/gitflow/references/pr-generation.md +58 -0
  187. package/templates/skills/gitflow/references/start-branch-normalization.md +28 -0
  188. package/templates/skills/gitflow/references/start-worktree-creation.md +50 -0
  189. package/templates/skills/gitflow/references/sync-push-verify.md +44 -0
  190. package/templates/skills/gitflow/references/sync-rebase-conflicts.md +38 -0
  191. package/templates/skills/gitflow/steps/step-commit.md +12 -91
  192. package/templates/skills/gitflow/steps/step-finish.md +15 -159
  193. package/templates/skills/gitflow/steps/step-init.md +24 -326
  194. package/templates/skills/gitflow/steps/step-merge.md +17 -176
  195. package/templates/skills/gitflow/steps/step-pr.md +10 -116
  196. package/templates/skills/gitflow/steps/step-start.md +16 -109
  197. package/templates/skills/gitflow/steps/step-sync.md +6 -69
  198. package/templates/skills/ralph-loop/SKILL.md +6 -0
  199. package/templates/skills/ralph-loop/references/category-completeness.md +185 -0
  200. package/templates/skills/ralph-loop/references/compact-loop.md +1 -1
  201. package/templates/skills/ralph-loop/references/init-resume-recovery.md +127 -0
  202. package/templates/skills/ralph-loop/references/module-transition.md +151 -0
  203. package/templates/skills/ralph-loop/references/multi-module-queue.md +171 -0
  204. package/templates/skills/ralph-loop/references/parallel-execution.md +246 -0
  205. package/templates/skills/ralph-loop/references/task-transform-legacy.md +6 -9
  206. package/templates/skills/ralph-loop/references/team-orchestration.md +45 -3
  207. package/templates/skills/ralph-loop/steps/step-00-init.md +36 -109
  208. package/templates/skills/ralph-loop/steps/step-01-task.md +15 -163
  209. package/templates/skills/ralph-loop/steps/step-02-execute.md +8 -154
  210. package/templates/skills/ralph-loop/steps/step-04-check.md +21 -73
  211. package/templates/skills/review-code/references/owasp-api-top10.md +5 -5
  212. package/templates/skills/review-code/references/smartstack-conventions.md +11 -11
  213. package/templates/skills/validate-feature/references/api-smoke-tests.md +140 -0
  214. package/templates/skills/validate-feature/references/db-validation-checks.md +180 -0
  215. package/templates/skills/validate-feature/steps/step-01-compile.md +5 -2
  216. package/templates/skills/validate-feature/steps/step-04-api-smoke.md +34 -145
  217. package/templates/skills/validate-feature/steps/step-05-db-validation.md +74 -260
  218. package/templates/skills/workflow/SKILL.md +1 -1
  219. package/templates/skills/workflow/steps/step-00-init.md +57 -0
@@ -35,253 +35,26 @@ Set up GitFlow configuration with bare repository, worktrees, and branches.
35
35
 
36
36
  ### 1. Detect Environment (for defaults only)
37
37
 
38
- ```bash
39
- # PLATFORM DETECTION (required for correct path handling on WSL/Windows/macOS/Linux)
40
- if [ -f /proc/version ] && grep -qi "microsoft\|wsl" /proc/version 2>/dev/null; then
41
- GF_PLATFORM="wsl"; GF_SHELL="bash"
42
- elif [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "mingw"* ]] || [[ "$OSTYPE" == "cygwin" ]]; then
43
- GF_PLATFORM="windows"; GF_SHELL="gitbash"
44
- elif [[ -n "$WINDIR" ]] || [[ -n "$SystemRoot" ]]; then
45
- GF_PLATFORM="windows"; GF_SHELL="powershell"
46
- elif [[ "$OSTYPE" == "darwin"* ]]; then
47
- GF_PLATFORM="macos"; GF_SHELL="zsh"
48
- elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
49
- GF_PLATFORM="linux"; GF_SHELL="bash"
50
- else
51
- GF_PLATFORM="unknown"; GF_SHELL="bash"
52
- fi
53
- echo "Platform: $GF_PLATFORM ($GF_SHELL)"
54
-
55
- # Check if we're in a git repository
56
- IS_GIT_REPO=$(git rev-parse --git-dir 2>/dev/null && echo "true" || echo "false")
57
-
58
- # Auto-detect values for defaults (will be confirmed by user)
59
- DETECTED_URL=$(git remote get-url origin 2>/dev/null || echo "")
60
- DETECTED_FOLDER=$(dirname "$(pwd)")
61
- DETECTED_NAME=$(basename -s .git "$DETECTED_URL" 2>/dev/null || basename "$(pwd)")
62
-
63
- # Detect git provider
64
- if [[ "$DETECTED_URL" == *"github.com"* ]]; then
65
- GIT_PROVIDER="github"
66
- elif [[ "$DETECTED_URL" == *"dev.azure.com"* ]]; then
67
- GIT_PROVIDER="azuredevops"
68
- else
69
- GIT_PROVIDER="unknown"
70
- fi
71
-
72
- # Check if already initialized
73
- ALREADY_INITIALIZED=$([ -f ".claude/gitflow/config.json" ] && echo "true" || echo "false")
74
- ```
38
+ See [references/init-environment-detection.md](../references/init-environment-detection.md) for:
39
+ - Platform detection (WSL/Windows/macOS/Linux)
40
+ - Git provider detection
41
+ - Auto-detect defaults (URL, folder, project name)
75
42
 
76
43
  ### 2. Detect Workspace (multi-project context)
77
44
 
78
- **Scan the parent directory for sibling projects already using GitFlow:**
79
-
80
- ```bash
81
- WORKSPACE_DIR=$(dirname "$(pwd)")
82
- SIBLING_PROJECTS=()
83
-
84
- for dir in "$WORKSPACE_DIR"/*/; do
85
- [ -d "$dir/.bare" ] || [ -d "$dir/01-Main" ] || [ -d "$dir/02-Develop" ] && {
86
- PROJECT_NAME_SIBLING=$(basename "$dir")
87
- SIBLING_PROJECTS+=("$PROJECT_NAME_SIBLING")
88
- }
89
- done
90
- ```
91
-
92
- **Display workspace context:**
45
+ See [references/init-workspace-detection.md](../references/init-workspace-detection.md) for:
46
+ - Sibling project scanning
47
+ - Workspace context display
48
+ - Per-repository GitFlow principle
93
49
 
94
- ```
95
- ┌─────────────────────────────────────────────────────────────┐
96
- │ WORKSPACE: {WORKSPACE_DIR} │
97
- ├─────────────────────────────────────────────────────────────┤
98
- │ Each project has its OWN independent GitFlow configuration. │
99
- │ This init configures only: {DETECTED_NAME} │
100
- ├─────────────────────────────────────────────────────────────┤
101
- {if SIBLING_PROJECTS not empty}
102
- │ Existing GitFlow projects: │
103
- │ {for each SIBLING} ✅ {SIBLING_NAME}/ │
104
- │ ├── .bare/ 01-Main/ 02-Develop/ │
105
- │ └── features/ releases/ hotfixes/ │
106
- │ {end for} │
107
- │ │
108
- │ New project to initialize: │
109
- │ ⬜ {DETECTED_NAME}/ │
110
- │ └── (same structure will be created) │
111
- {else}
112
- │ No existing GitFlow projects detected. │
113
- │ This will be the first project in this workspace. │
114
- {endif}
115
- └─────────────────────────────────────────────────────────────┘
116
- ```
117
-
118
- **Key principle:** GitFlow is **per-repository**. Each project has its own `config.json`, its own worktree structure, and its own version history. Projects do not share configuration.
119
-
120
- ### 3. Handle Existing Configuration
121
-
122
- **If `ALREADY_INITIALIZED` = true:**
123
-
124
- Display current configuration and ask what to do:
125
-
126
- ```yaml
127
- AskUserQuestion:
128
- - header: "Existing"
129
- question: "GitFlow is already initialized. Current config will be shown. What do you want to do?"
130
- options:
131
- - label: "Reconfigure (Recommended)"
132
- description: "Review and update all settings"
133
- - label: "Repair"
134
- description: "Fix missing directories only"
135
- - label: "View only"
136
- description: "Display current config and exit"
137
- - label: "Cancel"
138
- description: "Exit without changes"
139
- multiSelect: false
140
- ```
141
-
142
- **Handle choices:**
143
- - **Reconfigure**: Continue to step 4 (will ask all questions again)
144
- - **Repair**: Check directories, fix missing ones, exit
145
- - **View only**: Display config, exit
146
- - **Cancel**: Exit immediately
147
-
148
- ### 4. MANDATORY: Ask Repository URL
149
-
150
- **⛔ ALWAYS ask, even if URL was detected:**
151
-
152
- ```yaml
153
- AskUserQuestion:
154
- - header: "Repository"
155
- question: "Repository URL? (detected: {DETECTED_URL})"
156
- options:
157
- - label: "Use detected URL (Recommended)"
158
- description: "{DETECTED_URL}"
159
- - label: "Enter GitHub URL"
160
- description: "https://github.com/org/repo.git"
161
- - label: "Enter Azure DevOps URL"
162
- description: "https://dev.azure.com/org/project/_git/repo"
163
- - label: "Local only (no remote)"
164
- description: "Initialize without remote (limited features)"
165
- multiSelect: false
166
- ```
50
+ ### 3-7. MANDATORY User Questions
167
51
 
168
- **⛔ FOLLOW-UP: If user selects "Enter GitHub URL" or "Enter Azure DevOps URL":**
169
-
170
- The selected option is just a choice, NOT the actual URL. You MUST ask a follow-up question:
171
-
172
- ```yaml
173
- AskUserQuestion:
174
- - header: "URL"
175
- question: "Enter the repository URL:"
176
- options:
177
- - label: "https://github.com/org/repo.git"
178
- description: "Example GitHub format"
179
- - label: "https://dev.azure.com/org/project/_git/repo"
180
- description: "Example Azure DevOps format"
181
- multiSelect: false
182
- ```
183
-
184
- The user will type the actual URL via "Other". Then:
185
- - Validate format
186
- - Update `{REPO_URL}` and `{GIT_PROVIDER}`
187
-
188
- ### 5. MANDATORY: Ask Root Folder
189
-
190
- **⛔ ALWAYS ask where to create THIS project's structure:**
191
-
192
- **If sibling projects exist, show where it fits:**
193
-
194
- ```
195
- {WORKSPACE_DIR}/
196
- ├── SmartStack.app/ ✅ (gitflow)
197
- ├── SmartStack.mcp/ ✅ (gitflow)
198
- ├── SmartStack.cli/ ✅ (gitflow)
199
- └── NewProject/ ← THIS PROJECT
200
- ├── .bare/
201
- ├── 01-Main/
202
- ├── 02-Develop/
203
- ├── features/
204
- ├── releases/
205
- └── hotfixes/
206
- ```
207
-
208
- ```yaml
209
- AskUserQuestion:
210
- - header: "Location"
211
- question: "Root folder for THIS project? (worktrees will be created here)"
212
- options:
213
- - label: "Use parent folder (Recommended)"
214
- description: "{DETECTED_FOLDER}/ - consistent with {#SIBLING_PROJECTS} sibling project(s)"
215
- - label: "Use current folder"
216
- description: "$(pwd)/ - Will create subfolders here"
217
- - label: "Custom path"
218
- description: "Specify a different location"
219
- multiSelect: false
220
- ```
221
-
222
- **⛔ FOLLOW-UP: If user selects "Custom path":**
223
-
224
- You MUST ask a follow-up question to get the actual path:
225
-
226
- ```yaml
227
- AskUserQuestion:
228
- - header: "Path"
229
- question: "Enter the full path for the project root folder:"
230
- options:
231
- - label: "{DETECTED_FOLDER}/"
232
- description: "Parent of current directory"
233
- - label: "{WORKSPACE_DIR}/"
234
- description: "Workspace root"
235
- multiSelect: false
236
- ```
237
-
238
- The user will type the actual path via "Other". Validate the path exists or can be created.
239
-
240
- **Explain the structure that will be created for this project:**
241
-
242
- ```
243
- {ROOT_FOLDER}/
244
- ├── .bare/ # Git bare repository (this repo only)
245
- ├── 01-Main/ # Worktree: main branch
246
- ├── 02-Develop/ # Worktree: develop branch
247
- ├── features/ # Feature branch worktrees
248
- ├── releases/ # Release branch worktrees
249
- └── hotfixes/ # Hotfix branch worktrees
250
- ```
251
-
252
- ### 6. MANDATORY: Ask Project Name
253
-
254
- **⛔ ALWAYS ask to confirm project name:**
255
-
256
- ```yaml
257
- AskUserQuestion:
258
- - header: "Project"
259
- question: "Project name? (detected: {DETECTED_NAME})"
260
- options:
261
- - label: "Use detected name (Recommended)"
262
- description: "Project: {DETECTED_NAME}"
263
- - label: "Custom name"
264
- description: "Specify a different project name"
265
- multiSelect: false
266
- ```
267
-
268
- **⛔ FOLLOW-UP: If user selects "Custom name":**
269
-
270
- You MUST ask a follow-up question to get the actual name:
271
-
272
- ```yaml
273
- AskUserQuestion:
274
- - header: "Name"
275
- question: "Enter the project name:"
276
- options:
277
- - label: "{DETECTED_NAME}"
278
- description: "Detected from repository"
279
- - label: "{DETECTED_NAME}-v2"
280
- description: "Variant of detected name"
281
- multiSelect: false
282
- ```
283
-
284
- The user will type the actual name via "Other". Use this raw input for step 6b.
52
+ See [references/init-questions.md](../references/init-questions.md) for all 5 mandatory questions in order:
53
+ 1. Handle existing configuration (if already initialized)
54
+ 2. Repository URL with provider detection
55
+ 3. Root folder for project structure
56
+ 4. Project name confirmation
57
+ 5. Worktree mode (organized/simple/disabled)
285
58
 
286
59
  ### 6b. Normalize Project Name (INTELLIGENT)
287
60
 
@@ -294,80 +67,15 @@ See [references/init-name-normalization.md](../references/init-name-normalizatio
294
67
  4. Ask user to choose PRIMARY format
295
68
  5. Store all derived names in `PROJECT_VARIANTS`
296
69
 
297
- ### 7. Ask Worktree Mode
298
-
299
- ```yaml
300
- AskUserQuestion:
301
- - header: "Worktrees"
302
- question: "How should worktrees be organized?"
303
- options:
304
- - label: "Organized (Recommended)"
305
- description: "01-Main, 02-Develop, features/, releases/, hotfixes/"
306
- - label: "Simple"
307
- description: "main/, develop/, features/, releases/, hotfixes/"
308
- - label: "Disabled"
309
- description: "No worktrees, use git checkout (not recommended)"
310
- multiSelect: false
311
- ```
312
70
 
313
71
  ### 8. Create Directory Structure
314
72
 
315
- **⛔ CRITICAL: Use ABSOLUTE PATHS for ALL operations. NEVER use `cd` (it does not persist between Bash calls).**
316
- **⛔ Use `git -C <path>` or `GIT_DIR=<path>` instead of `cd` + `git`.**
317
-
318
- **Path normalization for WSL:**
319
- ```bash
320
- # If on WSL, translate Windows paths to /mnt/ format
321
- # normalize_path_for_platform() from _shared.md handles this
322
- # Example: D:/projects/MyApp → /mnt/d/projects/MyApp
323
- PROJECT_BASE="{ROOT_FOLDER}" # Must be already normalized for current platform
324
- ```
325
-
326
- **⛔ Create the COMPLETE structure with absolute paths:**
327
-
328
- ```bash
329
- PROJECT_BASE="{ROOT_FOLDER}"
330
-
331
- # Create subdirectories (absolute paths)
332
- mkdir -p "$PROJECT_BASE/features" "$PROJECT_BASE/releases" "$PROJECT_BASE/hotfixes"
333
-
334
- # Create bare repository if not exists (absolute path, no cd)
335
- if [ ! -d "$PROJECT_BASE/.bare" ]; then
336
- git clone --bare "{REPO_URL}" "$PROJECT_BASE/.bare"
337
-
338
- # Configure bare repo for worktrees (using git -C, no cd)
339
- git -C "$PROJECT_BASE/.bare" config core.bare false
340
- git -C "$PROJECT_BASE/.bare" config core.worktree ..
341
- fi
342
-
343
- # Create .git pseudo-file pointing to .bare
344
- echo "gitdir: ./.bare" > "$PROJECT_BASE/.git"
345
-
346
- # Organized mode: numbered main folders (absolute paths, GIT_DIR instead of cd)
347
- if [ "$WORKTREE_MODE" = "organized" ]; then
348
- [ ! -d "$PROJECT_BASE/01-Main" ] && \
349
- GIT_DIR="$PROJECT_BASE/.bare" git worktree add "$PROJECT_BASE/01-Main" main
350
-
351
- [ ! -d "$PROJECT_BASE/02-Develop" ] && \
352
- GIT_DIR="$PROJECT_BASE/.bare" git worktree add "$PROJECT_BASE/02-Develop" develop
353
- fi
354
-
355
- # Simple mode: named folders (absolute paths)
356
- if [ "$WORKTREE_MODE" = "simple" ]; then
357
- [ ! -d "$PROJECT_BASE/main" ] && \
358
- GIT_DIR="$PROJECT_BASE/.bare" git worktree add "$PROJECT_BASE/main" main
359
-
360
- [ ! -d "$PROJECT_BASE/develop" ] && \
361
- GIT_DIR="$PROJECT_BASE/.bare" git worktree add "$PROJECT_BASE/develop" develop
362
- fi
363
-
364
- # Create gitflow config directory (absolute paths)
365
- DEVELOP_DIR=$([ "$WORKTREE_MODE" = "organized" ] && echo "02-Develop" || echo "develop")
366
- mkdir -p "$PROJECT_BASE/$DEVELOP_DIR/.claude/gitflow/plans"
367
- mkdir -p "$PROJECT_BASE/$DEVELOP_DIR/.claude/gitflow/logs"
368
- mkdir -p "$PROJECT_BASE/$DEVELOP_DIR/.claude/gitflow/cache"
369
- mkdir -p "$PROJECT_BASE/$DEVELOP_DIR/.claude/gitflow/backup"
370
- ```
73
+ See [references/init-structure-creation.md](../references/init-structure-creation.md) for:
74
+ - Path normalization for WSL
75
+ - Complete directory structure creation with absolute paths
76
+ - Bare repository setup
77
+ - Worktree creation (organized and simple modes)
78
+ - GitFlow config directory creation
371
79
 
372
80
  ### 9. Create Configuration
373
81
 
@@ -381,19 +89,9 @@ See [references/init-config-template.md](../references/init-config-template.md)
381
89
 
382
90
  ### 10. Detect Version
383
91
 
384
- **⛔ Use absolute paths with `git -C`, no `cd`.**
385
-
386
- ```bash
387
- DEVELOP_FULL_PATH="$PROJECT_BASE/$DEVELOP_DIR"
388
-
389
- # Priority: csproj > Directory.Build.props > package.json > VERSION > tag
390
- VERSION=$(grep -oP '<Version>\K[^<]+' "$DEVELOP_FULL_PATH"/*.csproj 2>/dev/null | head -1)
391
- [ -z "$VERSION" ] && VERSION=$(grep -oP '<Version>\K[^<]+' "$DEVELOP_FULL_PATH/Directory.Build.props" 2>/dev/null)
392
- [ -z "$VERSION" ] && VERSION=$(grep -oP '"version":\s*"\K[^"]+' "$DEVELOP_FULL_PATH/package.json" 2>/dev/null)
393
- [ -z "$VERSION" ] && VERSION=$(cat "$DEVELOP_FULL_PATH/VERSION" 2>/dev/null)
394
- [ -z "$VERSION" ] && VERSION=$(git -C "$DEVELOP_FULL_PATH" describe --tags --abbrev=0 2>/dev/null | sed 's/^v//')
395
- [ -z "$VERSION" ] && VERSION="0.1.0"
396
- ```
92
+ See [references/init-version-detection.md](../references/init-version-detection.md) for:
93
+ - Version detection with priority (csproj, package.json, tags, etc.)
94
+ - Platform-agnostic path handling
397
95
 
398
96
  ### 10b. Post-Init Validation
399
97
 
@@ -16,189 +16,30 @@ Run through review checklist and merge the pull request with appropriate strateg
16
16
 
17
17
  ## EXECUTION SEQUENCE:
18
18
 
19
- ### 1. Load Config and PR Context
20
-
21
- ```bash
22
- # Load GitFlow config (sets GF_* variables)
23
- read_gitflow_config || { echo "❌ Run /gitflow init first."; exit 1; }
24
-
25
- CURRENT=$(git rev-parse --abbrev-ref HEAD)
26
- GIT_PROVIDER="$GF_PROVIDER"
27
-
28
- # Try loading persisted PR state first
29
- CONFIG_DIR=$(dirname "$GF_CONFIG_FILE")
30
- PR_STATE_FILE="$CONFIG_DIR/cache/pr-state.json"
31
- if [ -f "$PR_STATE_FILE" ]; then
32
- PR_NUMBER=$(grep -oP '"pr_number":\s*"\K[^"]+' "$PR_STATE_FILE" | head -1)
33
- TARGET_BRANCH=$(grep -oP '"target_branch":\s*"\K[^"]+' "$PR_STATE_FILE" | head -1)
34
- echo "✓ Loaded PR state from cache: PR #$PR_NUMBER → $TARGET_BRANCH"
35
- fi
36
-
37
- # Fallback: query provider if no cached state
38
- if [ -z "$PR_NUMBER" ]; then
39
- if [ "$GIT_PROVIDER" = "github" ]; then
40
- PR_NUMBER=$(gh pr list --head "$CURRENT" --json number --jq '.[0].number')
41
- PR_STATUS=$(gh pr view $PR_NUMBER --json state,mergeable,reviews --jq '.')
42
- elif [ "$GIT_PROVIDER" = "azuredevops" ]; then
43
- PR_NUMBER=$(az repos pr list --source-branch "$CURRENT" --query "[0].pullRequestId" -o tsv)
44
- PR_STATUS=$(az repos pr show --id $PR_NUMBER --query "{status:status,mergeStatus:mergeStatus}")
45
- fi
46
- fi
47
-
48
- [ -z "$PR_NUMBER" ] && {
49
- echo "❌ No PR found for branch $CURRENT"
50
- echo "→ Run /gitflow pr first"
51
- STOP
52
- }
53
- ```
54
-
55
- ### 2. Display Review Checklist
56
-
57
- ```
58
- ╔══════════════════════════════════════════════════════════════════╗
59
- ║ PR REVIEW CHECKLIST ║
60
- ╠══════════════════════════════════════════════════════════════════╣
61
- ║ PR #${PR_NUMBER}: ${PR_TITLE} ║
62
- ╠══════════════════════════════════════════════════════════════════╣
19
+ ### 1-2. Load Config and Display Review Checklist
63
20
 
64
- ## Code Quality
65
- - [ ] Code follows project conventions
66
- - [ ] No unnecessary complexity
67
- - [ ] No code duplication
68
- - [ ] Variable/function names are clear
69
-
70
- ## Security
71
- - [ ] No hardcoded secrets
72
- - [ ] Input validation present
73
- - [ ] Authentication/authorization correct
74
- - [ ] No SQL injection risks
75
-
76
- ## Testing
77
- - [ ] Unit tests added/updated
78
- - [ ] Integration tests pass
79
- - [ ] Manual testing completed
80
-
81
- ## EF Core (if applicable)
82
- - [ ] Migration files complete (3 files)
83
- - [ ] No destructive operations (or confirmed)
84
- - [ ] Snapshot synced with base
85
-
86
- ## Documentation
87
- - [ ] Code comments where needed
88
- - [ ] API docs updated (if applicable)
89
- - [ ] README updated (if applicable)
21
+ See [references/merge-pr-context.md](../references/merge-pr-context.md) for:
22
+ - Load GitFlow config and PR context
23
+ - Load PR state from cache or query provider
24
+ - Display review checklist
90
25
 
91
- ╚══════════════════════════════════════════════════════════════════╝
92
- ```
26
+ ### 3-4. Check CI and Review Status
93
27
 
94
- ### 3. Check CI Status
95
-
96
- ```bash
97
- if [ "$GIT_PROVIDER" = "github" ]; then
98
- CI_STATUS=$(gh pr checks $PR_NUMBER --json state --jq '.[].state' | sort -u)
99
-
100
- [[ "$CI_STATUS" == *"FAILURE"* ]] && {
101
- echo "❌ CI checks failing"
102
- gh pr checks $PR_NUMBER
103
-
104
- if [ "$auto_mode" != true ]; then
105
- AskUserQuestion:
106
- header: "CI"
107
- question: "CI checks are failing. Continue anyway?"
108
- options:
109
- - label: "Wait for fix"
110
- - label: "Merge anyway (not recommended)"
111
- fi
112
- }
113
- fi
114
- ```
28
+ See [references/merge-ci-status.md](../references/merge-ci-status.md) for:
29
+ - CI status checking (GitHub)
30
+ - Review status checking (GitHub)
31
+ - User confirmation if CI failing or reviews insufficient
115
32
 
116
- ### 4. Check Review Status
33
+ ### 5-8. Merge Execution and Verification
117
34
 
118
- ```bash
119
- if [ "$GIT_PROVIDER" = "github" ]; then
120
- REVIEWS=$(gh pr view $PR_NUMBER --json reviews --jq '.reviews | map(select(.state == "APPROVED")) | length')
121
- REQUIRED_REVIEWS=$(gh api repos/:owner/:repo --jq '.default_branch_protection.required_pull_request_reviews.required_approving_review_count // 0')
35
+ See [references/merge-execution.md](../references/merge-execution.md) for:
36
+ - Merge strategy determination (squash for features, merge for release/hotfix)
37
+ - Execution on GitHub and Azure DevOps
38
+ - Merge verification with tracking ref update
122
39
 
123
- [ "$REVIEWS" -lt "$REQUIRED_REVIEWS" ] && {
124
- echo "⚠️ Needs $REQUIRED_REVIEWS approvals, has $REVIEWS"
125
- }
126
- fi
127
- ```
40
+ ### Final Confirmation
128
41
 
129
- ### 5. Determine Merge Strategy
130
-
131
- ```bash
132
- BRANCH_TYPE=$(echo $CURRENT | cut -d'/' -f1)
133
-
134
- case "$BRANCH_TYPE" in
135
- feature)
136
- MERGE_STRATEGY="squash"
137
- DELETE_BRANCH=true
138
- ;;
139
- release|hotfix)
140
- MERGE_STRATEGY="merge"
141
- DELETE_BRANCH=true
142
- MERGE_BACK="$GF_DEVELOP_BRANCH"
143
- ;;
144
- esac
145
- ```
146
-
147
- ### 6. Final Confirmation
148
-
149
- ```yaml
150
- AskUserQuestion:
151
- header: "Merge"
152
- question: "Ready to merge PR #$PR_NUMBER?"
153
- options:
154
- - label: "Yes, merge now"
155
- description: "Strategy: $MERGE_STRATEGY, Delete branch: $DELETE_BRANCH"
156
- - label: "No, wait"
157
- description: "Cancel merge"
158
- ```
159
-
160
- ### 7. Execute Merge
161
-
162
- **GitHub:**
163
- ```bash
164
- case "$MERGE_STRATEGY" in
165
- squash)
166
- gh pr merge $PR_NUMBER --squash --delete-branch
167
- ;;
168
- merge)
169
- gh pr merge $PR_NUMBER --merge --delete-branch
170
- ;;
171
- esac
172
- ```
173
-
174
- **Azure DevOps:**
175
- ```bash
176
- case "$MERGE_STRATEGY" in
177
- squash)
178
- az repos pr update --id $PR_NUMBER --status completed --squash true --delete-source-branch true
179
- ;;
180
- merge)
181
- az repos pr update --id $PR_NUMBER --status completed --squash false --delete-source-branch true
182
- ;;
183
- esac
184
- ```
185
-
186
- ### 8. Verify Merge
187
-
188
- ```bash
189
- # CRITICAL: Force update tracking refs to get accurate state
190
- git fetch origin $TARGET_BRANCH:refs/remotes/origin/$TARGET_BRANCH --force --quiet
191
- git fetch origin --prune --quiet
192
-
193
- MERGED=$(git branch -r --merged origin/$TARGET_BRANCH | grep "$CURRENT" | wc -l)
194
-
195
- [ "$MERGED" -eq 0 ] && {
196
- echo "⚠️ Merge verification failed - branch may not be merged"
197
- echo " → Check PR status on remote"
198
- } || {
199
- echo "✅ Merge verified - branch merged to $TARGET_BRANCH"
200
- }
201
- ```
42
+ Ask user to confirm merge strategy before execution.
202
43
 
203
44
  ### 9. Summary
204
45