@atlashub/smartstack-cli 1.13.2 → 1.14.1

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 (214) hide show
  1. package/.documentation/agents.html +1 -1
  2. package/.documentation/apex.html +1 -1
  3. package/.documentation/business-analyse.html +1 -1
  4. package/.documentation/cli-commands.html +3 -3
  5. package/.documentation/commands.html +1 -1
  6. package/.documentation/efcore.html +1 -1
  7. package/.documentation/gitflow.html +231 -236
  8. package/.documentation/hooks.html +1 -1
  9. package/.documentation/index.html +1 -1
  10. package/.documentation/init.html +3 -3
  11. package/.documentation/installation.html +1075 -351
  12. package/.documentation/ralph-loop.html +1 -1
  13. package/.documentation/test-web.html +1 -1
  14. package/README.md +88 -20
  15. package/config/default-config.json +10 -1
  16. package/dist/index.js +276 -85
  17. package/dist/index.js.map +1 -1
  18. package/package.json +1 -1
  19. package/templates/agents/code-reviewer.md +163 -0
  20. package/templates/agents/efcore/db-deploy.md +25 -7
  21. package/templates/agents/efcore/db-reset.md +31 -10
  22. package/templates/agents/efcore/db-status.md +22 -5
  23. package/templates/agents/efcore/migration.md +70 -20
  24. package/templates/agents/gitflow/cleanup.md +8 -1
  25. package/templates/agents/gitflow/commit.md +7 -5
  26. package/templates/agents/gitflow/finish.md +6 -4
  27. package/templates/agents/gitflow/pr.md +8 -1
  28. package/templates/agents/gitflow/start.md +1 -1
  29. package/templates/commands/check-version.md +267 -0
  30. package/templates/commands/efcore/_shared.md +31 -2
  31. package/templates/commands/efcore/db-reset.md +18 -6
  32. package/templates/commands/efcore/migration.md +1 -1
  33. package/templates/commands/efcore/rebase-snapshot.md +1 -1
  34. package/templates/commands/efcore/squash.md +1 -0
  35. package/templates/commands/refactor.md +164 -0
  36. package/templates/project/DependencyInjection.Application.cs.template +25 -0
  37. package/templates/project/DependencyInjection.Infrastructure.cs.template +61 -0
  38. package/templates/project/DesignTimeExtensionsDbContextFactory.cs.template +70 -0
  39. package/templates/project/ExampleEntity.cs.template +116 -0
  40. package/templates/project/ExampleEntityConfiguration.cs.template +64 -0
  41. package/templates/project/ExampleService.cs.template +146 -0
  42. package/templates/project/ExtensionsDbContext.cs.template +41 -0
  43. package/templates/project/IExtensionsDbContext.cs.template +22 -0
  44. package/templates/project/Program.cs.template +47 -0
  45. package/templates/project/README.md +79 -0
  46. package/templates/ralph/README.md +10 -8
  47. package/templates/ralph/ralph.config.yaml +2 -2
  48. package/templates/skills/_shared.md +44 -44
  49. package/templates/skills/ai-prompt/SKILL.md +55 -55
  50. package/templates/skills/apex/SKILL.md +235 -0
  51. package/templates/skills/apex/steps/step-00-init.md +203 -0
  52. package/templates/skills/apex/steps/step-01-analyze.md +210 -0
  53. package/templates/skills/apex/steps/step-02-plan.md +217 -0
  54. package/templates/skills/apex/steps/step-03-execute.md +178 -0
  55. package/templates/skills/apex/steps/step-04-validate.md +217 -0
  56. package/templates/skills/apex/steps/step-05-examine.md +207 -0
  57. package/templates/skills/apex/steps/step-06-resolve.md +181 -0
  58. package/templates/skills/apex/steps/step-07-tests.md +206 -0
  59. package/templates/skills/apex/steps/step-08-run-tests.md +207 -0
  60. package/templates/skills/apex/templates/00-context.md +46 -0
  61. package/templates/skills/apex/templates/01-analyze.md +63 -0
  62. package/templates/skills/apex/templates/02-plan.md +63 -0
  63. package/templates/skills/apex/templates/03-execute.md +34 -0
  64. package/templates/skills/apex/templates/04-validate.md +61 -0
  65. package/templates/skills/apex/templates/05-examine.md +58 -0
  66. package/templates/skills/apex/templates/06-resolve.md +39 -0
  67. package/templates/skills/apex/templates/07-tests.md +56 -0
  68. package/templates/skills/apex/templates/08-run-tests.md +41 -0
  69. package/templates/skills/apex/templates/README.md +69 -0
  70. package/templates/skills/application/SKILL.md +50 -50
  71. package/templates/skills/application/templates-backend.md +25 -25
  72. package/templates/skills/application/templates-frontend.md +43 -43
  73. package/templates/skills/application/templates-i18n.md +29 -29
  74. package/templates/skills/application/templates-seed.md +77 -77
  75. package/templates/skills/business-analyse/SKILL.md +223 -0
  76. package/templates/skills/business-analyse/_shared.md +258 -0
  77. package/templates/skills/business-analyse/questionnaire/01-context.md +33 -0
  78. package/templates/skills/business-analyse/questionnaire/02-stakeholders.md +35 -0
  79. package/templates/skills/business-analyse/questionnaire/03-scope.md +35 -0
  80. package/templates/skills/business-analyse/questionnaire/04-data.md +36 -0
  81. package/templates/skills/business-analyse/questionnaire/05-integrations.md +36 -0
  82. package/templates/skills/business-analyse/questionnaire/06-security.md +40 -0
  83. package/templates/skills/business-analyse/questionnaire/07-ui.md +36 -0
  84. package/templates/skills/business-analyse/questionnaire/08-performance.md +35 -0
  85. package/templates/skills/business-analyse/questionnaire/09-constraints.md +35 -0
  86. package/templates/skills/business-analyse/questionnaire/10-documentation.md +35 -0
  87. package/templates/skills/business-analyse/questionnaire.md +177 -177
  88. package/templates/skills/business-analyse/react/components.md +340 -0
  89. package/templates/skills/business-analyse/react/i18n-template.md +245 -0
  90. package/templates/skills/business-analyse/react/schema.md +151 -0
  91. package/templates/skills/business-analyse/steps/step-00-init.md +293 -0
  92. package/templates/skills/business-analyse/steps/step-01-discover.md +267 -0
  93. package/templates/skills/business-analyse/steps/step-02-analyse.md +243 -0
  94. package/templates/skills/business-analyse/steps/step-03-specify.md +317 -0
  95. package/templates/skills/business-analyse/steps/step-04-validate.md +239 -0
  96. package/templates/skills/business-analyse/steps/step-05-handoff.md +336 -0
  97. package/templates/skills/business-analyse/steps/step-06-doc-html.md +261 -0
  98. package/templates/skills/business-analyse/templates/00-context.md +105 -0
  99. package/templates/skills/business-analyse/templates/frd-brd.md +97 -0
  100. package/templates/skills/business-analyse/templates/frd-discovery.md +78 -0
  101. package/templates/skills/business-analyse/templates/frd-handoff.md +118 -0
  102. package/templates/skills/business-analyse/templates/frd-spec.md +168 -0
  103. package/templates/skills/business-analyse/templates-frd.md +217 -217
  104. package/templates/skills/business-analyse/templates-react.md +26 -26
  105. package/templates/skills/controller/SKILL.md +141 -92
  106. package/templates/skills/controller/postman-templates.md +15 -15
  107. package/templates/skills/controller/steps/step-00-init.md +191 -0
  108. package/templates/skills/controller/steps/step-01-analyze.md +146 -0
  109. package/templates/skills/controller/steps/step-02-plan.md +176 -0
  110. package/templates/skills/controller/steps/step-03-generate.md +219 -0
  111. package/templates/skills/controller/steps/step-04-perms.md +219 -0
  112. package/templates/skills/controller/steps/step-05-validate.md +107 -0
  113. package/templates/skills/controller/templates.md +77 -77
  114. package/templates/skills/documentation/SKILL.md +79 -79
  115. package/templates/skills/feature-full/SKILL.md +38 -38
  116. package/templates/skills/gitflow/SKILL.md +277 -0
  117. package/templates/{commands → skills}/gitflow/_shared.md +20 -20
  118. package/templates/skills/gitflow/phases/abort.md +173 -0
  119. package/templates/skills/gitflow/phases/cleanup.md +226 -0
  120. package/templates/skills/gitflow/phases/status.md +178 -0
  121. package/templates/skills/gitflow/steps/step-commit.md +255 -0
  122. package/templates/skills/gitflow/steps/step-finish.md +255 -0
  123. package/templates/skills/gitflow/steps/step-init.md +209 -0
  124. package/templates/skills/gitflow/steps/step-merge.md +225 -0
  125. package/templates/skills/gitflow/steps/step-plan.md +208 -0
  126. package/templates/skills/gitflow/steps/step-pr.md +235 -0
  127. package/templates/skills/gitflow/steps/step-start.md +334 -0
  128. package/templates/skills/gitflow/steps/step-sync.md +200 -0
  129. package/templates/skills/gitflow/templates/config.json +53 -0
  130. package/templates/skills/notification/SKILL.md +51 -51
  131. package/templates/skills/ralph-loop/SKILL.md +228 -0
  132. package/templates/skills/ralph-loop/steps/step-00-init.md +201 -0
  133. package/templates/skills/ralph-loop/steps/step-01-task.md +169 -0
  134. package/templates/skills/ralph-loop/steps/step-02-execute.md +173 -0
  135. package/templates/skills/ralph-loop/steps/step-03-commit.md +170 -0
  136. package/templates/skills/ralph-loop/steps/step-04-check.md +162 -0
  137. package/templates/skills/ralph-loop/steps/step-05-report.md +181 -0
  138. package/templates/skills/review-code/SKILL.md +219 -0
  139. package/templates/skills/review-code/references/clean-code-principles.md +140 -0
  140. package/templates/skills/review-code/references/code-quality-metrics.md +174 -0
  141. package/templates/skills/review-code/references/feedback-patterns.md +149 -0
  142. package/templates/skills/review-code/references/security-checklist.md +127 -0
  143. package/templates/skills/ui-components/SKILL.md +54 -54
  144. package/templates/skills/workflow/SKILL.md +46 -46
  145. package/templates/commands/ai-prompt.md +0 -315
  146. package/templates/commands/apex/1-analyze.md +0 -100
  147. package/templates/commands/apex/2-plan.md +0 -145
  148. package/templates/commands/apex/3-execute.md +0 -171
  149. package/templates/commands/apex/4-examine.md +0 -116
  150. package/templates/commands/apex/5-tasks.md +0 -209
  151. package/templates/commands/apex.md +0 -76
  152. package/templates/commands/application/create.md +0 -362
  153. package/templates/commands/application/templates-backend.md +0 -463
  154. package/templates/commands/application/templates-frontend.md +0 -517
  155. package/templates/commands/application/templates-i18n.md +0 -478
  156. package/templates/commands/application/templates-seed.md +0 -362
  157. package/templates/commands/application.md +0 -303
  158. package/templates/commands/business-analyse/0-orchestrate.md +0 -156
  159. package/templates/commands/business-analyse/1-init.md +0 -99
  160. package/templates/commands/business-analyse/2-discover.md +0 -143
  161. package/templates/commands/business-analyse/3-analyse.md +0 -106
  162. package/templates/commands/business-analyse/4-specify.md +0 -133
  163. package/templates/commands/business-analyse/5-validate.md +0 -132
  164. package/templates/commands/business-analyse/6-handoff.md +0 -157
  165. package/templates/commands/business-analyse/7-doc-html.md +0 -103
  166. package/templates/commands/business-analyse/_shared.md +0 -176
  167. package/templates/commands/business-analyse/bug.md +0 -118
  168. package/templates/commands/business-analyse/change-request.md +0 -144
  169. package/templates/commands/business-analyse/hotfix.md +0 -116
  170. package/templates/commands/business-analyse.md +0 -121
  171. package/templates/commands/controller/create.md +0 -216
  172. package/templates/commands/controller/postman-templates.md +0 -528
  173. package/templates/commands/controller/templates.md +0 -600
  174. package/templates/commands/controller.md +0 -337
  175. package/templates/commands/create/agent.md +0 -138
  176. package/templates/commands/create/command.md +0 -166
  177. package/templates/commands/create/hook.md +0 -234
  178. package/templates/commands/create/plugin.md +0 -329
  179. package/templates/commands/create/project.md +0 -508
  180. package/templates/commands/create/skill.md +0 -199
  181. package/templates/commands/create.md +0 -220
  182. package/templates/commands/documentation/module.md +0 -202
  183. package/templates/commands/documentation/templates.md +0 -432
  184. package/templates/commands/documentation.md +0 -190
  185. package/templates/commands/epct.md +0 -69
  186. package/templates/commands/explain.md +0 -186
  187. package/templates/commands/feature-full.md +0 -267
  188. package/templates/commands/gitflow/1-init.md +0 -188
  189. package/templates/commands/gitflow/10-start.md +0 -190
  190. package/templates/commands/gitflow/11-finish.md +0 -382
  191. package/templates/commands/gitflow/12-cleanup.md +0 -103
  192. package/templates/commands/gitflow/13-sync.md +0 -216
  193. package/templates/commands/gitflow/14-rebase.md +0 -251
  194. package/templates/commands/gitflow/2-status.md +0 -122
  195. package/templates/commands/gitflow/3-commit.md +0 -209
  196. package/templates/commands/gitflow/4-plan.md +0 -174
  197. package/templates/commands/gitflow/5-exec.md +0 -202
  198. package/templates/commands/gitflow/6-abort.md +0 -121
  199. package/templates/commands/gitflow/7-pull-request.md +0 -176
  200. package/templates/commands/gitflow/8-review.md +0 -113
  201. package/templates/commands/gitflow/9-merge.md +0 -157
  202. package/templates/commands/gitflow.md +0 -128
  203. package/templates/commands/implement.md +0 -663
  204. package/templates/commands/init.md +0 -567
  205. package/templates/commands/mcp-integration.md +0 -330
  206. package/templates/commands/notification.md +0 -129
  207. package/templates/commands/oneshot.md +0 -57
  208. package/templates/commands/quickstart.md +0 -154
  209. package/templates/commands/ralph-loop/cancel-ralph.md +0 -18
  210. package/templates/commands/ralph-loop/help.md +0 -126
  211. package/templates/commands/ralph-loop/ralph-loop.md +0 -120
  212. package/templates/commands/review.md +0 -106
  213. package/templates/commands/workflow.md +0 -193
  214. package/templates/gitflow/config.json +0 -138
@@ -0,0 +1,255 @@
1
+ ---
2
+ name: step-commit
3
+ description: Commit with EF Core migration validation
4
+ next_step: null
5
+ ---
6
+
7
+ # Step: COMMIT - Migration-Aware Commits
8
+
9
+ ## YOUR TASK:
10
+
11
+ Validate changes, check EF Core migrations, and create commit with proper message.
12
+
13
+ **ULTRA THINK about migration safety.**
14
+
15
+ ---
16
+
17
+ ## INPUT PARSING:
18
+
19
+ ```
20
+ {commit_message} = optional message from args
21
+ {validate_only} = --validate flag (check without committing)
22
+ {dry_run} = --dry-run flag (simulate)
23
+ ```
24
+
25
+ ---
26
+
27
+ ## EXECUTION SEQUENCE:
28
+
29
+ ### 0. Pre-commit Guards
30
+
31
+ **0.1 Branch Protection:**
32
+ ```bash
33
+ CURRENT=$(git rev-parse --abbrev-ref HEAD)
34
+
35
+ # BLOCK: main
36
+ [[ "$CURRENT" == "main" ]] && {
37
+ echo "⛔ COMMIT BLOCKED - main is protected"
38
+ echo "→ Use: /gitflow start hotfix <name>"
39
+ STOP
40
+ }
41
+
42
+ # WARNING: develop
43
+ [[ "$CURRENT" == "develop" ]] && {
44
+ echo "⚠️ Direct commits to develop are discouraged"
45
+ # Offer RESCUE TO FEATURE
46
+ }
47
+ ```
48
+
49
+ **0.2 Rescue to Feature (if on develop):**
50
+ ```bash
51
+ git fetch origin --quiet
52
+ STAGED=$(git diff --cached --name-only | wc -l)
53
+ MODIFIED=$(git diff --name-only | wc -l)
54
+ UNTRACKED=$(git ls-files --others --exclude-standard | wc -l)
55
+ LOCAL_COMMITS=$(git rev-list --count origin/develop..HEAD 2>/dev/null || echo "0")
56
+
57
+ # If there are changes or commits, offer rescue
58
+ [ "$STAGED" -gt 0 ] || [ "$MODIFIED" -gt 0 ] || [ "$LOCAL_COMMITS" -gt 0 ] && {
59
+ # Ask to rescue to feature branch
60
+ RESCUE_BRANCH="feature/rescue-$(date +%Y%m%d-%H%M%S)"
61
+ # Execute rescue flow...
62
+ }
63
+ ```
64
+
65
+ **0.3 Check Sync Status:**
66
+ ```bash
67
+ BEHIND=$(git rev-list --count HEAD..origin/$CURRENT 2>/dev/null || echo "0")
68
+ [ "$BEHIND" -gt 0 ] && echo "⚠️ Branch is $BEHIND commits behind → /gitflow sync"
69
+ ```
70
+
71
+ ### 1. Analyze Changes
72
+
73
+ ```bash
74
+ STAGED=$(git diff --cached --name-only)
75
+ MODIFIED=$(git diff --name-only)
76
+ UNTRACKED=$(git ls-files --others --exclude-standard)
77
+
78
+ # Nothing to commit?
79
+ [ -z "$STAGED" ] && [ -z "$MODIFIED" ] && [ -z "$UNTRACKED" ] && {
80
+ echo "✓ Nothing to commit"
81
+ exit 0
82
+ }
83
+ ```
84
+
85
+ ### 2. Detect EF Core Migrations
86
+
87
+ ```bash
88
+ # Find migration files in changes
89
+ MIGRATIONS=$(echo "$STAGED $MODIFIED $UNTRACKED" | tr ' ' '\n' | grep -E "Migrations/.*\.cs$")
90
+ HAS_MIGRATIONS=$([ -n "$MIGRATIONS" ] && echo "true" || echo "false")
91
+
92
+ if [ "$HAS_MIGRATIONS" = "true" ]; then
93
+ # Check for the 3 required files
94
+ MIGRATION_NAME=$(echo "$MIGRATIONS" | grep -v "Designer\|Snapshot" | head -1 | sed 's/.*\///' | sed 's/\.cs$//')
95
+
96
+ HAS_MAIN=$(echo "$MIGRATIONS" | grep -c "${MIGRATION_NAME}.cs")
97
+ HAS_DESIGNER=$(echo "$MIGRATIONS" | grep -c "${MIGRATION_NAME}.Designer.cs")
98
+ HAS_SNAPSHOT=$(echo "$MIGRATIONS" | grep -c "ModelSnapshot.cs")
99
+
100
+ [ "$HAS_MAIN" -eq 0 ] || [ "$HAS_DESIGNER" -eq 0 ] || [ "$HAS_SNAPSHOT" -eq 0 ] && {
101
+ echo "❌ INCOMPLETE MIGRATION"
102
+ echo "Required: Migration.cs + Designer.cs + ModelSnapshot.cs"
103
+ echo "Found: Main=$HAS_MAIN, Designer=$HAS_DESIGNER, Snapshot=$HAS_SNAPSHOT"
104
+ STOP
105
+ }
106
+ fi
107
+ ```
108
+
109
+ ### 3. Check Destructive Operations (BLOCKING)
110
+
111
+ ```bash
112
+ if [ "$HAS_MIGRATIONS" = "true" ]; then
113
+ DESTRUCTIVE=$(grep -l "DropTable\|DropColumn\|DeleteData" $MIGRATIONS 2>/dev/null)
114
+
115
+ [ -n "$DESTRUCTIVE" ] && {
116
+ echo "⚠️ DESTRUCTIVE OPERATIONS DETECTED"
117
+ grep -n "DropTable\|DropColumn\|DeleteData" $DESTRUCTIVE
118
+
119
+ # Require explicit confirmation
120
+ AskUserQuestion:
121
+ header: "Confirm"
122
+ question: "Destructive migration detected. Continue?"
123
+ options:
124
+ - label: "Yes, I understand the risks"
125
+ - label: "No, let me review"
126
+
127
+ # Log to audit trail
128
+ echo "$(date) - DESTRUCTIVE: $DESTRUCTIVE - User: $USER" >> .claude/gitflow/logs/audit.log
129
+ }
130
+ fi
131
+ ```
132
+
133
+ ### 4. Stage All Changes
134
+
135
+ ```bash
136
+ # Stage all changes
137
+ git add -A
138
+
139
+ # Show what will be committed
140
+ echo "Files to commit:"
141
+ git diff --cached --stat
142
+ ```
143
+
144
+ ### 5. Generate Commit Message
145
+
146
+ **If no message provided:**
147
+
148
+ ```bash
149
+ # Determine commit type from branch
150
+ BRANCH_TYPE=$(echo $CURRENT | cut -d'/' -f1)
151
+ case "$BRANCH_TYPE" in
152
+ feature) PREFIX="feat" ;;
153
+ hotfix) PREFIX="fix" ;;
154
+ release) PREFIX="chore" ;;
155
+ *) PREFIX="chore" ;;
156
+ esac
157
+
158
+ # Determine scope from branch name
159
+ SCOPE=$(echo $CURRENT | cut -d'/' -f2 | cut -d'-' -f1)
160
+
161
+ # If migrations present
162
+ [ "$HAS_MIGRATIONS" = "true" ] && PREFIX="db(migrations)"
163
+
164
+ # Generate message from diff analysis
165
+ SUMMARY=$(git diff --cached --stat | tail -1 | sed 's/^ *//')
166
+ ```
167
+
168
+ **Message format:**
169
+ ```
170
+ {type}({scope}): {summary - 50 chars max}
171
+
172
+ **CHANGE**
173
+ PROBLEM: {what was wrong}
174
+ SOLUTION: {what was done}
175
+ IMPACT: {benefit}
176
+
177
+ Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
178
+ ```
179
+
180
+ ### 6. Create Commit
181
+
182
+ ```bash
183
+ git commit -m "$(cat <<'EOF'
184
+ {generated_message}
185
+ EOF
186
+ )"
187
+
188
+ COMMIT_HASH=$(git rev-parse --short HEAD)
189
+ ```
190
+
191
+ ### 7. Auto-Push (based on config)
192
+
193
+ ```bash
194
+ PUSH_MODE=$(grep -oP '"afterCommit":\s*"\K[^"]+' .claude/gitflow/config.json 2>/dev/null || echo "ask")
195
+
196
+ case "$PUSH_MODE" in
197
+ always)
198
+ git push origin $CURRENT
199
+ PUSHED="yes"
200
+ ;;
201
+ worktree)
202
+ # Push if in worktree
203
+ [ -n "$(git worktree list | grep $(pwd))" ] && git push origin $CURRENT && PUSHED="yes"
204
+ ;;
205
+ ask)
206
+ # Ask user
207
+ ;;
208
+ never)
209
+ PUSHED="no"
210
+ ;;
211
+ esac
212
+ ```
213
+
214
+ ### 8. Summary
215
+
216
+ ```
217
+ ╔══════════════════════════════════════════════════════════════════╗
218
+ ║ COMMIT CREATED ║
219
+ ╠══════════════════════════════════════════════════════════════════╣
220
+ ║ Branch: {CURRENT} ║
221
+ ║ Commit: {COMMIT_HASH} ║
222
+ ║ Message: {first line of message} ║
223
+ ╠══════════════════════════════════════════════════════════════════╣
224
+ ║ Files: {N} changed ║
225
+ ║ EF Core: {✅ Valid | ⚠️ Destructive confirmed | N/A} ║
226
+ ║ Pushed: {yes | no | pending} ║
227
+ ╠══════════════════════════════════════════════════════════════════╣
228
+ ║ NEXT: /gitflow pr ║
229
+ ╚══════════════════════════════════════════════════════════════════╝
230
+ ```
231
+
232
+ ---
233
+
234
+ ## ERROR HANDLING:
235
+
236
+ | Error | Solution |
237
+ |-------|----------|
238
+ | Incomplete migration | Add missing files |
239
+ | Build fails | `dotnet ef migrations remove` + fix |
240
+ | Pre-commit hook fails | Fix issues, stage again, NEW commit |
241
+ | Destructive operation | Confirm or modify migration |
242
+
243
+ ---
244
+
245
+ ## SUCCESS CRITERIA:
246
+
247
+ - All files staged
248
+ - Migrations validated (if present)
249
+ - Destructive operations confirmed
250
+ - Commit created with proper message
251
+ - Pushed (if configured)
252
+
253
+ ## NEXT STEP:
254
+
255
+ User continues coding or runs `/gitflow pr`.
@@ -0,0 +1,255 @@
1
+ ---
2
+ name: step-finish
3
+ description: Finalize branch - tag, merge back, cleanup
4
+ next_step: null
5
+ ---
6
+
7
+ # Step: FINISH - Finalize Branch
8
+
9
+ ## YOUR TASK:
10
+
11
+ Create tags for releases/hotfixes, merge back to develop, clean up worktree and branch.
12
+
13
+ **ULTRA THINK about version tagging.**
14
+
15
+ ---
16
+
17
+ ## EXECUTION SEQUENCE:
18
+
19
+ ### 1. Determine Branch Context
20
+
21
+ ```bash
22
+ # Get current or specified branch
23
+ BRANCH=${1:-$(git rev-parse --abbrev-ref HEAD)}
24
+ BRANCH_TYPE=$(echo $BRANCH | cut -d'/' -f1)
25
+ BRANCH_NAME=$(echo $BRANCH | cut -d'/' -f2)
26
+
27
+ # Validate branch type
28
+ case "$BRANCH_TYPE" in
29
+ feature|release|hotfix) ;;
30
+ main|develop)
31
+ echo "❌ Cannot finish main or develop branch"
32
+ STOP
33
+ ;;
34
+ *)
35
+ echo "❌ Unknown branch type: $BRANCH_TYPE"
36
+ STOP
37
+ ;;
38
+ esac
39
+ ```
40
+
41
+ ### 2. Verify Merge Status
42
+
43
+ ```bash
44
+ git fetch origin
45
+
46
+ # Check if branch was merged
47
+ case "$BRANCH_TYPE" in
48
+ feature)
49
+ MERGED=$(git branch -r --merged origin/develop | grep "$BRANCH" | wc -l)
50
+ TARGET="develop"
51
+ ;;
52
+ release|hotfix)
53
+ MERGED=$(git branch -r --merged origin/main | grep "$BRANCH" | wc -l)
54
+ TARGET="main"
55
+ ;;
56
+ esac
57
+
58
+ [ "$MERGED" -eq 0 ] && {
59
+ echo "⚠️ Branch $BRANCH not yet merged to $TARGET"
60
+ echo "→ Run /gitflow merge first"
61
+
62
+ if [ "$auto_mode" != true ]; then
63
+ AskUserQuestion:
64
+ header: "Continue"
65
+ question: "Branch not merged. Continue anyway?"
66
+ options:
67
+ - label: "No, merge first"
68
+ - label: "Yes, finish anyway"
69
+ fi
70
+ }
71
+ ```
72
+
73
+ ### 3. Create Tag (Release/Hotfix only)
74
+
75
+ ```bash
76
+ if [ "$BRANCH_TYPE" = "release" ] || [ "$BRANCH_TYPE" = "hotfix" ]; then
77
+ # Get version
78
+ VERSION=$(grep -oP '"current":\s*"\K[^"]+' .claude/gitflow/config.json 2>/dev/null)
79
+
80
+ # For hotfix, increment patch
81
+ if [ "$BRANCH_TYPE" = "hotfix" ]; then
82
+ MAJOR=$(echo $VERSION | cut -d'.' -f1)
83
+ MINOR=$(echo $VERSION | cut -d'.' -f2)
84
+ PATCH=$(echo $VERSION | cut -d'.' -f3)
85
+ VERSION="$MAJOR.$MINOR.$((PATCH + 1))"
86
+ fi
87
+
88
+ TAG_NAME="v$VERSION"
89
+
90
+ # Check if tag exists
91
+ TAG_EXISTS=$(git tag -l "$TAG_NAME")
92
+ [ -n "$TAG_EXISTS" ] && {
93
+ echo "⚠️ Tag $TAG_NAME already exists"
94
+ # Options: overwrite, different version, skip
95
+ }
96
+
97
+ # Create tag on main
98
+ git checkout main
99
+ git pull origin main
100
+ git tag -a "$TAG_NAME" -m "$BRANCH_TYPE: $BRANCH_NAME"
101
+ git push origin "$TAG_NAME"
102
+
103
+ echo "✅ Created tag: $TAG_NAME"
104
+ fi
105
+ ```
106
+
107
+ ### 4. Merge Back to Develop (Release/Hotfix only)
108
+
109
+ ```bash
110
+ if [ "$BRANCH_TYPE" = "release" ] || [ "$BRANCH_TYPE" = "hotfix" ]; then
111
+ echo "Merging $TAG_NAME back to develop..."
112
+
113
+ git checkout develop
114
+ git pull origin develop
115
+
116
+ # Merge with merge commit (preserve history)
117
+ git merge main -m "Merge $TAG_NAME back to develop"
118
+
119
+ # Handle conflicts
120
+ CONFLICTS=$(git diff --name-only --diff-filter=U | wc -l)
121
+ [ "$CONFLICTS" -gt 0 ] && {
122
+ echo "⚠️ Merge conflicts detected"
123
+ git diff --name-only --diff-filter=U
124
+
125
+ # Options: resolve, abort
126
+ }
127
+
128
+ git push origin develop
129
+ echo "✅ Merged back to develop"
130
+ fi
131
+ ```
132
+
133
+ ### 5. Update Version (Release only)
134
+
135
+ ```bash
136
+ if [ "$BRANCH_TYPE" = "release" ]; then
137
+ # Increment minor version for next development
138
+ MAJOR=$(echo $VERSION | cut -d'.' -f1)
139
+ MINOR=$(echo $VERSION | cut -d'.' -f2)
140
+ NEXT_VERSION="$MAJOR.$((MINOR + 1)).0"
141
+
142
+ # Update config
143
+ sed -i "s/\"current\": \"$VERSION\"/\"current\": \"$NEXT_VERSION\"/" .claude/gitflow/config.json
144
+
145
+ # Update source files
146
+ # csproj, package.json, etc.
147
+
148
+ git add -A
149
+ git commit -m "chore: bump version to $NEXT_VERSION for development"
150
+ git push origin develop
151
+
152
+ echo "✅ Version bumped to $NEXT_VERSION"
153
+ fi
154
+ ```
155
+
156
+ ### 6. Clean Up Worktree
157
+
158
+ ```bash
159
+ # Find worktree for this branch
160
+ WORKTREE_PATH=$(git worktree list | grep "$BRANCH" | awk '{print $1}')
161
+
162
+ if [ -n "$WORKTREE_PATH" ] && [ -d "$WORKTREE_PATH" ]; then
163
+ echo "Removing worktree: $WORKTREE_PATH"
164
+
165
+ # Make sure we're not in the worktree
166
+ cd $(git rev-parse --show-toplevel)
167
+
168
+ git worktree remove "$WORKTREE_PATH" --force 2>/dev/null || {
169
+ rm -rf "$WORKTREE_PATH"
170
+ }
171
+
172
+ git worktree prune
173
+ echo "✅ Worktree removed"
174
+ fi
175
+ ```
176
+
177
+ ### 7. Delete Remote Branch
178
+
179
+ ```bash
180
+ # Check if remote branch still exists
181
+ REMOTE_EXISTS=$(git branch -r --list "origin/$BRANCH")
182
+
183
+ if [ -n "$REMOTE_EXISTS" ]; then
184
+ echo "Deleting remote branch: $BRANCH"
185
+ git push origin --delete "$BRANCH" 2>/dev/null || {
186
+ echo "⚠️ Could not delete remote branch (may already be deleted by PR)"
187
+ }
188
+ fi
189
+
190
+ # Delete local branch
191
+ git branch -D "$BRANCH" 2>/dev/null || echo "Local branch already deleted"
192
+ ```
193
+
194
+ ### 8. Archive Plan (if exists)
195
+
196
+ ```bash
197
+ PLAN_FILE=$(ls .claude/gitflow/plans/*${BRANCH_NAME}*.md 2>/dev/null | head -1)
198
+
199
+ if [ -f "$PLAN_FILE" ]; then
200
+ ARCHIVE_NAME="${PLAN_FILE%.md}_DONE_$(date +%Y%m%d-%H%M%S).md"
201
+ mv "$PLAN_FILE" "$ARCHIVE_NAME"
202
+ echo "✅ Plan archived: $ARCHIVE_NAME"
203
+ fi
204
+ ```
205
+
206
+ ### 9. Summary
207
+
208
+ ```
209
+ ╔══════════════════════════════════════════════════════════════════╗
210
+ ║ BRANCH FINALIZED ║
211
+ ╠══════════════════════════════════════════════════════════════════╣
212
+ ║ Branch: {BRANCH} ║
213
+ ║ Type: {BRANCH_TYPE} ║
214
+ ╠══════════════════════════════════════════════════════════════════╣
215
+ ║ Actions: ║
216
+ {if release or hotfix}
217
+ ║ ✅ Tag created: {TAG_NAME} ║
218
+ ║ ✅ Merged back to develop ║
219
+ {endif}
220
+ {if release}
221
+ ║ ✅ Version bumped to {NEXT_VERSION} ║
222
+ {endif}
223
+ ║ ✅ Worktree removed ║
224
+ ║ ✅ Branch deleted (local + remote) ║
225
+ ╠══════════════════════════════════════════════════════════════════╣
226
+ ║ Current branch: {main|develop} ║
227
+ ╠══════════════════════════════════════════════════════════════════╣
228
+ ║ Ready for next: /gitflow start feature <name> ║
229
+ ╚══════════════════════════════════════════════════════════════════╝
230
+ ```
231
+
232
+ ---
233
+
234
+ ## ERROR HANDLING:
235
+
236
+ | Error | Solution |
237
+ |-------|----------|
238
+ | Branch not merged | Merge first or force finish |
239
+ | Tag exists | Overwrite or use different version |
240
+ | Merge back conflicts | Resolve manually |
241
+ | Worktree in use | Exit worktree first |
242
+
243
+ ---
244
+
245
+ ## SUCCESS CRITERIA:
246
+
247
+ - Tag created (for release/hotfix)
248
+ - Merged back to develop (for release/hotfix)
249
+ - Worktree removed
250
+ - Branch deleted
251
+ - Plan archived
252
+
253
+ ## COMPLETION:
254
+
255
+ GitFlow cycle complete. Ready for next feature/release/hotfix.