moicle 1.2.0 → 1.3.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.
@@ -0,0 +1,297 @@
1
+ ---
2
+ name: ship
3
+ description: Ship workflow for versioning, changelog, tagging, and creating PR. Use when releasing, shipping versions, or when user says "release", "ship", "publish", "new version", "cut release", "bump version".
4
+ ---
5
+
6
+ # Release Workflow
7
+
8
+ Workflow for shipping releases with versioning, changelog, tagging, and PR creation.
9
+
10
+ ## IMPORTANT: Read Architecture First
11
+
12
+ **Before starting any phase, you MUST read the appropriate architecture reference:**
13
+
14
+ ### Global Architecture Files
15
+ ```
16
+ ~/.claude/architecture/
17
+ ├── clean-architecture.md # Core principles for all projects
18
+ ├── flutter-mobile.md # Flutter + Riverpod
19
+ ├── react-frontend.md # React + Vite + TypeScript
20
+ ├── go-backend.md # Go + Gin
21
+ ├── laravel-backend.md # Laravel + PHP
22
+ ├── remix-fullstack.md # Remix fullstack
23
+ └── monorepo.md # Monorepo structure
24
+ ```
25
+
26
+ ### Project-specific (if exists)
27
+ ```
28
+ .claude/architecture/ # Project overrides
29
+ ```
30
+
31
+ **Understand the project's release process and conventions before proceeding.**
32
+
33
+ ## Recommended Agents
34
+
35
+ | Phase | Agent | Purpose |
36
+ |-------|-------|---------|
37
+ | PRE-CHECK | `@code-reviewer` | Final code review |
38
+ | PRE-CHECK | `@test-writer` | Verify test coverage |
39
+ | PRE-CHECK | `@security-audit` | Security scan before release |
40
+ | CHANGELOG | `@docs-writer` | Generate changelog & release notes |
41
+
42
+ ## Workflow Overview
43
+
44
+ ```
45
+ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
46
+ │1.PRE-CHECK──▶│2.VERSION │──▶│3.CHANGELOG──▶│4.TAG+COMMIT──▶│5.CREATE PR│
47
+ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘
48
+ ```
49
+
50
+ ---
51
+
52
+ ## Phase 1: PRE-CHECK
53
+
54
+ **Goal**: Ensure codebase is release-ready
55
+
56
+ ### Actions
57
+ 1. **Identify project stack and read architecture doc**
58
+ 2. Verify branch state:
59
+ ```bash
60
+ git status
61
+ git log --oneline -20
62
+ git diff main..HEAD --stat # or master
63
+ ```
64
+
65
+ 3. Run full test suite:
66
+ ```bash
67
+ flutter test # Flutter
68
+ go test ./... # Go
69
+ bun test # React/Remix
70
+ php artisan test # Laravel
71
+ ```
72
+
73
+ 4. Check for:
74
+ - [ ] All tests passing
75
+ - [ ] No uncommitted changes
76
+ - [ ] No pending PRs that should be included
77
+ - [ ] No known critical bugs
78
+
79
+ 5. Review what's being released:
80
+ ```bash
81
+ git log $(git describe --tags --abbrev=0 2>/dev/null || git rev-list --max-parents=0 HEAD)..HEAD --oneline
82
+ ```
83
+
84
+ ### Output
85
+ ```markdown
86
+ ## Pre-Release Check
87
+
88
+ **Stack**: [Flutter/React/Go/Laravel/Remix]
89
+ **Branch**: [branch name]
90
+ **Last Release**: [tag/version]
91
+
92
+ ### Tests: [PASS/FAIL]
93
+ ### Commits Since Last Release: [count]
94
+
95
+ ### Changes Summary
96
+ - feat: [list features]
97
+ - fix: [list fixes]
98
+ - breaking: [list breaking changes]
99
+ ```
100
+
101
+ ### Gate
102
+ - [ ] All tests pass
103
+ - [ ] Clean working tree
104
+ - [ ] Changes catalogued
105
+
106
+ ---
107
+
108
+ ## Phase 2: VERSION
109
+
110
+ **Goal**: Determine and apply the correct version number
111
+
112
+ ### Versioning Strategy
113
+
114
+ Follow [Semantic Versioning](https://semver.org/):
115
+ ```
116
+ MAJOR.MINOR.PATCH
117
+
118
+ MAJOR - Breaking changes (incompatible API changes)
119
+ MINOR - New features (backwards compatible)
120
+ PATCH - Bug fixes (backwards compatible)
121
+ ```
122
+
123
+ ### Actions
124
+ 1. Determine version bump based on commits:
125
+ ```
126
+ feat!: / BREAKING CHANGE: → MAJOR
127
+ feat: → MINOR
128
+ fix: / perf: / refactor: → PATCH
129
+ ```
130
+
131
+ 2. Check current version:
132
+ ```bash
133
+ # Node.js
134
+ node -e "console.log(require('./package.json').version)"
135
+
136
+ # Flutter
137
+ grep 'version:' pubspec.yaml
138
+
139
+ # Go
140
+ git describe --tags --abbrev=0
141
+
142
+ # Laravel
143
+ grep "'version'" config/app.php
144
+ ```
145
+
146
+ 3. Apply version bump:
147
+ ```bash
148
+ # Node.js
149
+ npm version [major|minor|patch] --no-git-tag-version
150
+
151
+ # Flutter - update pubspec.yaml version field
152
+
153
+ # Go - version via git tags only
154
+
155
+ # Laravel - update config/app.php version
156
+ ```
157
+
158
+ 4. Ask user to confirm the new version number
159
+
160
+ ### Gate
161
+ - [ ] Version number confirmed by user
162
+ - [ ] Version applied to project files
163
+ - [ ] Bump type matches changes
164
+
165
+ ---
166
+
167
+ ## Phase 3: CHANGELOG
168
+
169
+ **Goal**: Generate clear, useful release notes
170
+
171
+ ### Actions
172
+ 1. Collect commits since last release:
173
+ ```bash
174
+ git log $(git describe --tags --abbrev=0 2>/dev/null || git rev-list --max-parents=0 HEAD)..HEAD --pretty=format:"- %s (%h)" --reverse
175
+ ```
176
+
177
+ 2. Categorize changes:
178
+ ```markdown
179
+ ## [x.y.z] - YYYY-MM-DD
180
+
181
+ ### Breaking Changes
182
+ - description (#PR)
183
+
184
+ ### Features
185
+ - description (#PR)
186
+
187
+ ### Bug Fixes
188
+ - description (#PR)
189
+
190
+ ### Performance
191
+ - description (#PR)
192
+
193
+ ### Other
194
+ - description (#PR)
195
+ ```
196
+
197
+ 3. Update CHANGELOG.md (prepend new version at top)
198
+
199
+ ### Gate
200
+ - [ ] CHANGELOG.md updated
201
+ - [ ] All significant changes documented
202
+
203
+ ---
204
+
205
+ ## Phase 4: TAG & COMMIT
206
+
207
+ **Goal**: Create release commit and tag
208
+
209
+ ### Actions
210
+ 1. Stage and commit version + changelog:
211
+ ```bash
212
+ git add -A
213
+ git commit -m "chore(release): bump version to [x.y.z]"
214
+ ```
215
+
216
+ 2. Create annotated tag:
217
+ ```bash
218
+ git tag -a v[x.y.z] -m "Release v[x.y.z]"
219
+ ```
220
+
221
+ ### Gate
222
+ - [ ] Version commit created
223
+ - [ ] Tag created
224
+
225
+ ---
226
+
227
+ ## Phase 5: CREATE PR
228
+
229
+ **Goal**: Push and create PR to master
230
+
231
+ ### Actions
232
+ 1. Push branch and tag:
233
+ ```bash
234
+ git push origin [branch] -u
235
+ git push origin v[x.y.z]
236
+ ```
237
+
238
+ 2. Create PR:
239
+ ```bash
240
+ gh pr create --base master --title "chore(release): v[x.y.z]" --body "$(cat <<'EOF'
241
+ ## Release v[x.y.z]
242
+
243
+ ### Changes
244
+ [paste categorized changelog here]
245
+
246
+ ### Checklist
247
+ - [ ] Tests passing
248
+ - [ ] Version bumped
249
+ - [ ] CHANGELOG updated
250
+ - [ ] Tag created
251
+ EOF
252
+ )"
253
+ ```
254
+
255
+ ### Gate
256
+ - [ ] Branch pushed
257
+ - [ ] Tag pushed
258
+ - [ ] PR created to master
259
+
260
+ ---
261
+
262
+ ## Quick Reference
263
+
264
+ ### Architecture Docs
265
+ | Stack | Doc |
266
+ |-------|-----|
267
+ | All | `clean-architecture.md` |
268
+ | Flutter | `flutter-mobile.md` |
269
+ | React | `react-frontend.md` |
270
+ | Go | `go-backend.md` |
271
+ | Laravel | `laravel-backend.md` |
272
+ | Remix | `remix-fullstack.md` |
273
+ | Monorepo | `monorepo.md` |
274
+
275
+ ### Version Bump Decision
276
+ | Commit Type | Bump | Example |
277
+ |-------------|------|---------|
278
+ | `feat!:` / `BREAKING CHANGE:` | MAJOR | API removed |
279
+ | `feat:` | MINOR | New endpoint |
280
+ | `fix:` / `perf:` | PATCH | Bug fix |
281
+
282
+ ### Commit Message Format
283
+ ```
284
+ chore(release): bump version to x.y.z
285
+ ```
286
+
287
+ ### Tag Format
288
+ ```
289
+ v[MAJOR].[MINOR].[PATCH]
290
+ ```
291
+
292
+ ### Release Checklist
293
+ - [ ] Tests pass
294
+ - [ ] Version bumped
295
+ - [ ] CHANGELOG updated
296
+ - [ ] Committed & tagged
297
+ - [ ] PR created to master