start-vibing 2.0.11 → 2.0.13
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.
- package/README.md +177 -177
- package/dist/cli.js +19 -2
- package/package.json +42 -42
- package/template/.claude/CLAUDE.md +174 -174
- package/template/.claude/agents/01-orchestration/agent-selector.md +130 -130
- package/template/.claude/agents/01-orchestration/checkpoint-manager.md +142 -142
- package/template/.claude/agents/01-orchestration/context-manager.md +138 -138
- package/template/.claude/agents/01-orchestration/error-recovery.md +182 -182
- package/template/.claude/agents/01-orchestration/orchestrator.md +114 -114
- package/template/.claude/agents/01-orchestration/parallel-coordinator.md +141 -141
- package/template/.claude/agents/01-orchestration/task-decomposer.md +121 -121
- package/template/.claude/agents/01-orchestration/workflow-router.md +114 -114
- package/template/.claude/agents/02-typescript/bun-runtime-expert.md +197 -197
- package/template/.claude/agents/02-typescript/esm-resolver.md +193 -193
- package/template/.claude/agents/02-typescript/import-alias-enforcer.md +158 -158
- package/template/.claude/agents/02-typescript/ts-generics-helper.md +183 -183
- package/template/.claude/agents/02-typescript/ts-migration-helper.md +238 -238
- package/template/.claude/agents/02-typescript/ts-strict-checker.md +180 -180
- package/template/.claude/agents/02-typescript/ts-types-analyzer.md +199 -199
- package/template/.claude/agents/02-typescript/type-definition-writer.md +187 -187
- package/template/.claude/agents/02-typescript/zod-schema-designer.md +212 -212
- package/template/.claude/agents/02-typescript/zod-validator.md +158 -158
- package/template/.claude/agents/03-testing/playwright-assertions.md +265 -265
- package/template/.claude/agents/03-testing/playwright-e2e.md +247 -247
- package/template/.claude/agents/03-testing/playwright-fixtures.md +234 -234
- package/template/.claude/agents/03-testing/playwright-multi-viewport.md +256 -256
- package/template/.claude/agents/03-testing/playwright-page-objects.md +247 -247
- package/template/.claude/agents/03-testing/test-cleanup-manager.md +248 -248
- package/template/.claude/agents/03-testing/test-data-generator.md +254 -254
- package/template/.claude/agents/03-testing/tester-integration.md +278 -278
- package/template/.claude/agents/03-testing/tester-unit.md +207 -207
- package/template/.claude/agents/03-testing/vitest-config.md +287 -287
- package/template/.claude/agents/04-docker/container-health.md +255 -255
- package/template/.claude/agents/04-docker/deployment-validator.md +225 -225
- package/template/.claude/agents/04-docker/docker-compose-designer.md +281 -281
- package/template/.claude/agents/04-docker/docker-env-manager.md +235 -235
- package/template/.claude/agents/04-docker/docker-multi-stage.md +241 -241
- package/template/.claude/agents/04-docker/dockerfile-optimizer.md +208 -208
- package/template/.claude/agents/05-database/database-seeder.md +273 -273
- package/template/.claude/agents/05-database/mongodb-query-optimizer.md +230 -230
- package/template/.claude/agents/05-database/mongoose-aggregation.md +306 -306
- package/template/.claude/agents/05-database/mongoose-index-optimizer.md +182 -182
- package/template/.claude/agents/05-database/mongoose-schema-designer.md +267 -267
- package/template/.claude/agents/06-security/auth-session-validator.md +68 -68
- package/template/.claude/agents/06-security/input-sanitizer.md +80 -80
- package/template/.claude/agents/06-security/owasp-checker.md +97 -97
- package/template/.claude/agents/06-security/permission-auditor.md +100 -100
- package/template/.claude/agents/06-security/security-auditor.md +84 -84
- package/template/.claude/agents/06-security/sensitive-data-scanner.md +83 -83
- package/template/.claude/agents/07-documentation/api-documenter.md +136 -136
- package/template/.claude/agents/07-documentation/changelog-manager.md +105 -105
- package/template/.claude/agents/07-documentation/documenter.md +76 -76
- package/template/.claude/agents/07-documentation/domain-updater.md +81 -81
- package/template/.claude/agents/07-documentation/jsdoc-generator.md +114 -114
- package/template/.claude/agents/07-documentation/readme-generator.md +135 -135
- package/template/.claude/agents/08-git/branch-manager.md +58 -58
- package/template/.claude/agents/08-git/commit-manager.md +63 -63
- package/template/.claude/agents/08-git/pr-creator.md +76 -76
- package/template/.claude/agents/09-quality/code-reviewer.md +71 -71
- package/template/.claude/agents/09-quality/quality-checker.md +67 -67
- package/template/.claude/agents/10-research/best-practices-finder.md +89 -89
- package/template/.claude/agents/10-research/competitor-analyzer.md +106 -106
- package/template/.claude/agents/10-research/pattern-researcher.md +93 -93
- package/template/.claude/agents/10-research/research-cache-manager.md +76 -76
- package/template/.claude/agents/10-research/research-web.md +98 -98
- package/template/.claude/agents/10-research/tech-evaluator.md +101 -101
- package/template/.claude/agents/11-ui-ux/accessibility-auditor.md +136 -136
- package/template/.claude/agents/11-ui-ux/design-system-enforcer.md +125 -125
- package/template/.claude/agents/11-ui-ux/skeleton-generator.md +118 -118
- package/template/.claude/agents/11-ui-ux/ui-desktop.md +132 -132
- package/template/.claude/agents/11-ui-ux/ui-mobile.md +98 -98
- package/template/.claude/agents/11-ui-ux/ui-tablet.md +110 -110
- package/template/.claude/agents/12-performance/api-latency-analyzer.md +156 -156
- package/template/.claude/agents/12-performance/bundle-analyzer.md +113 -113
- package/template/.claude/agents/12-performance/memory-leak-detector.md +137 -137
- package/template/.claude/agents/12-performance/performance-profiler.md +115 -115
- package/template/.claude/agents/12-performance/query-optimizer.md +124 -124
- package/template/.claude/agents/12-performance/render-optimizer.md +154 -154
- package/template/.claude/agents/13-debugging/build-error-fixer.md +207 -207
- package/template/.claude/agents/13-debugging/debugger.md +149 -149
- package/template/.claude/agents/13-debugging/error-stack-analyzer.md +141 -141
- package/template/.claude/agents/13-debugging/network-debugger.md +208 -208
- package/template/.claude/agents/13-debugging/runtime-error-fixer.md +181 -181
- package/template/.claude/agents/13-debugging/type-error-resolver.md +185 -185
- package/template/.claude/agents/14-validation/final-validator.md +93 -93
- package/template/.claude/agents/_backup/analyzer.md +134 -134
- package/template/.claude/agents/_backup/code-reviewer.md +279 -279
- package/template/.claude/agents/_backup/commit-manager.md +219 -219
- package/template/.claude/agents/_backup/debugger.md +280 -280
- package/template/.claude/agents/_backup/documenter.md +237 -237
- package/template/.claude/agents/_backup/domain-updater.md +197 -197
- package/template/.claude/agents/_backup/final-validator.md +169 -169
- package/template/.claude/agents/_backup/orchestrator.md +149 -149
- package/template/.claude/agents/_backup/performance.md +232 -232
- package/template/.claude/agents/_backup/quality-checker.md +240 -240
- package/template/.claude/agents/_backup/research.md +315 -315
- package/template/.claude/agents/_backup/security-auditor.md +192 -192
- package/template/.claude/agents/_backup/tester.md +566 -566
- package/template/.claude/agents/_backup/ui-ux-reviewer.md +247 -247
- package/template/.claude/config/README.md +30 -30
- package/template/.claude/config/mcp-config.json +344 -344
- package/template/.claude/config/project-config.json +53 -53
- package/template/.claude/config/quality-gates.json +46 -46
- package/template/.claude/config/security-rules.json +45 -45
- package/template/.claude/config/testing-config.json +164 -164
- package/template/.claude/hooks/SETUP.md +126 -126
- package/template/.claude/hooks/run-hook.ts +176 -176
- package/template/.claude/hooks/stop-validator.ts +914 -824
- package/template/.claude/hooks/user-prompt-submit.ts +886 -886
- package/template/.claude/scripts/mcp-quick-install.ts +151 -151
- package/template/.claude/scripts/setup-mcps.ts +651 -651
- package/template/.claude/settings.json +275 -275
- package/template/.claude/skills/bun-runtime/SKILL.md +430 -430
- package/template/.claude/skills/codebase-knowledge/domains/claude-system.md +431 -431
- package/template/.claude/skills/codebase-knowledge/domains/mcp-integration.md +295 -295
- package/template/.claude/skills/debugging-patterns/SKILL.md +485 -485
- package/template/.claude/skills/docker-patterns/SKILL.md +555 -555
- package/template/.claude/skills/git-workflow/SKILL.md +454 -454
- package/template/.claude/skills/mongoose-patterns/SKILL.md +499 -499
- package/template/.claude/skills/nextjs-app-router/SKILL.md +327 -327
- package/template/.claude/skills/performance-patterns/SKILL.md +547 -547
- package/template/.claude/skills/playwright-automation/SKILL.md +438 -438
- package/template/.claude/skills/react-patterns/SKILL.md +389 -389
- package/template/.claude/skills/research-cache/SKILL.md +222 -222
- package/template/.claude/skills/shadcn-ui/SKILL.md +511 -511
- package/template/.claude/skills/tailwind-patterns/SKILL.md +465 -465
- package/template/.claude/skills/test-coverage/SKILL.md +467 -467
- package/template/.claude/skills/trpc-api/SKILL.md +434 -434
- package/template/.claude/skills/typescript-strict/SKILL.md +367 -367
- package/template/.claude/skills/zod-validation/SKILL.md +403 -403
- package/template/CLAUDE.md +117 -117
|
@@ -1,454 +1,454 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: git-workflow
|
|
3
|
-
description: Git workflow patterns and best practices. Branch management, conventional commits, PR creation, hooks. Use when working with git operations.
|
|
4
|
-
allowed-tools: Bash, Read, Grep, Glob
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Git Workflow - Version Control Best Practices
|
|
8
|
-
|
|
9
|
-
## Purpose
|
|
10
|
-
|
|
11
|
-
Expert guidance for Git:
|
|
12
|
-
|
|
13
|
-
- **Branch Management** - Feature, fix, release branches
|
|
14
|
-
- **Conventional Commits** - Standardized commit messages
|
|
15
|
-
- **Pull Requests** - Well-formatted PRs with gh CLI
|
|
16
|
-
- **Git Hooks** - Automated quality gates
|
|
17
|
-
- **Merge Strategies** - Rebase, squash, merge
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## Branch Naming Conventions
|
|
22
|
-
|
|
23
|
-
### Format
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
<type>/<description>
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### Types
|
|
30
|
-
|
|
31
|
-
| Type | Use Case |
|
|
32
|
-
| ----------- | ---------------------- |
|
|
33
|
-
| `feature/` | New functionality |
|
|
34
|
-
| `fix/` | Bug fixes |
|
|
35
|
-
| `refactor/` | Code restructuring |
|
|
36
|
-
| `test/` | Test additions/changes |
|
|
37
|
-
| `docs/` | Documentation only |
|
|
38
|
-
| `chore/` | Maintenance tasks |
|
|
39
|
-
|
|
40
|
-
### Examples
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
feature/user-authentication
|
|
44
|
-
feature/add-dark-mode
|
|
45
|
-
fix/login-validation-error
|
|
46
|
-
fix/memory-leak-dashboard
|
|
47
|
-
refactor/api-client-structure
|
|
48
|
-
test/e2e-checkout-flow
|
|
49
|
-
docs/api-documentation
|
|
50
|
-
chore/update-dependencies
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## Branch Workflow
|
|
56
|
-
|
|
57
|
-
### Create Feature Branch
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
# From main branch
|
|
61
|
-
git checkout main
|
|
62
|
-
git pull origin main
|
|
63
|
-
|
|
64
|
-
# Create and switch to new branch
|
|
65
|
-
git checkout -b feature/my-feature
|
|
66
|
-
|
|
67
|
-
# Alternative
|
|
68
|
-
git switch -c feature/my-feature
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### Keep Branch Updated
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
# Fetch latest changes
|
|
75
|
-
git fetch origin
|
|
76
|
-
|
|
77
|
-
# Rebase on main
|
|
78
|
-
git rebase origin/main
|
|
79
|
-
|
|
80
|
-
# If conflicts, resolve and continue
|
|
81
|
-
git add .
|
|
82
|
-
git rebase --continue
|
|
83
|
-
|
|
84
|
-
# Or abort if needed
|
|
85
|
-
git rebase --abort
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
### Push Branch
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
# First push (set upstream)
|
|
92
|
-
git push -u origin feature/my-feature
|
|
93
|
-
|
|
94
|
-
# Subsequent pushes
|
|
95
|
-
git push
|
|
96
|
-
|
|
97
|
-
# After rebase (force with lease is safer)
|
|
98
|
-
git push --force-with-lease
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
## Conventional Commits
|
|
104
|
-
|
|
105
|
-
### Format
|
|
106
|
-
|
|
107
|
-
```
|
|
108
|
-
<type>(<scope>): <description>
|
|
109
|
-
|
|
110
|
-
[optional body]
|
|
111
|
-
|
|
112
|
-
[optional footer]
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
### Types
|
|
116
|
-
|
|
117
|
-
| Type | Description |
|
|
118
|
-
| ---------- | --------------------------- |
|
|
119
|
-
| `feat` | New feature for the user |
|
|
120
|
-
| `fix` | Bug fix for the user |
|
|
121
|
-
| `docs` | Documentation only |
|
|
122
|
-
| `style` | Formatting, no code change |
|
|
123
|
-
| `refactor` | Code change, no feature/fix |
|
|
124
|
-
| `perf` | Performance improvement |
|
|
125
|
-
| `test` | Adding/updating tests |
|
|
126
|
-
| `chore` | Maintenance, deps update |
|
|
127
|
-
| `ci` | CI/CD changes |
|
|
128
|
-
| `build` | Build system changes |
|
|
129
|
-
|
|
130
|
-
### Examples
|
|
131
|
-
|
|
132
|
-
```bash
|
|
133
|
-
# Feature
|
|
134
|
-
git commit -m "feat(auth): add OAuth2 Google login"
|
|
135
|
-
|
|
136
|
-
# Fix
|
|
137
|
-
git commit -m "fix(cart): prevent duplicate items on rapid click"
|
|
138
|
-
|
|
139
|
-
# With body (use HEREDOC for multi-line)
|
|
140
|
-
git commit -m "$(cat <<'EOF'
|
|
141
|
-
feat(api): add rate limiting middleware
|
|
142
|
-
|
|
143
|
-
- Implement token bucket algorithm
|
|
144
|
-
- Add configurable limits per endpoint
|
|
145
|
-
- Include bypass for authenticated users
|
|
146
|
-
|
|
147
|
-
Closes #123
|
|
148
|
-
EOF
|
|
149
|
-
)"
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
### Scopes (Project-Specific)
|
|
153
|
-
|
|
154
|
-
```
|
|
155
|
-
api, auth, cart, checkout, dashboard, db, docker, ui, tests
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
---
|
|
159
|
-
|
|
160
|
-
## Commit Message Template
|
|
161
|
-
|
|
162
|
-
```bash
|
|
163
|
-
# Set up template
|
|
164
|
-
git config commit.template .gitmessage
|
|
165
|
-
|
|
166
|
-
# .gitmessage file
|
|
167
|
-
# <type>(<scope>): <description>
|
|
168
|
-
#
|
|
169
|
-
# [body - explain what and why]
|
|
170
|
-
#
|
|
171
|
-
# [footer - issue references]
|
|
172
|
-
#
|
|
173
|
-
# Types: feat, fix, docs, style, refactor, perf, test, chore, ci, build
|
|
174
|
-
# Scopes: api, auth, ui, db, tests, docker, etc.
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
---
|
|
178
|
-
|
|
179
|
-
## Pull Request Creation
|
|
180
|
-
|
|
181
|
-
### Using GitHub CLI
|
|
182
|
-
|
|
183
|
-
```bash
|
|
184
|
-
# Create PR with title and body
|
|
185
|
-
gh pr create --title "feat(auth): add OAuth2 Google login" --body "$(cat <<'EOF'
|
|
186
|
-
## Summary
|
|
187
|
-
- Implements Google OAuth2 authentication
|
|
188
|
-
- Adds login button to auth page
|
|
189
|
-
- Stores OAuth tokens securely
|
|
190
|
-
|
|
191
|
-
## Changes
|
|
192
|
-
- `src/auth/oauth.ts` - OAuth client implementation
|
|
193
|
-
- `src/pages/login.tsx` - UI integration
|
|
194
|
-
- `src/types/auth.ts` - New auth types
|
|
195
|
-
|
|
196
|
-
## Test Plan
|
|
197
|
-
- [ ] Login with Google account
|
|
198
|
-
- [ ] Verify session persists
|
|
199
|
-
- [ ] Test logout flow
|
|
200
|
-
- [ ] Check token refresh
|
|
201
|
-
|
|
202
|
-
## Screenshots
|
|
203
|
-
[If applicable]
|
|
204
|
-
EOF
|
|
205
|
-
)"
|
|
206
|
-
|
|
207
|
-
# Create draft PR
|
|
208
|
-
gh pr create --draft --title "WIP: feature name"
|
|
209
|
-
|
|
210
|
-
# Create PR with specific base branch
|
|
211
|
-
gh pr create --base develop --title "feat: ..."
|
|
212
|
-
|
|
213
|
-
# Create PR and assign reviewers
|
|
214
|
-
gh pr create --title "feat: ..." --reviewer user1,user2
|
|
215
|
-
|
|
216
|
-
# Create PR with labels
|
|
217
|
-
gh pr create --title "feat: ..." --label "enhancement,priority:high"
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
### PR Template
|
|
221
|
-
|
|
222
|
-
```markdown
|
|
223
|
-
## Summary
|
|
224
|
-
|
|
225
|
-
[Brief description of changes]
|
|
226
|
-
|
|
227
|
-
## Type of Change
|
|
228
|
-
|
|
229
|
-
- [ ] Feature (new functionality)
|
|
230
|
-
- [ ] Bug fix (fixes an issue)
|
|
231
|
-
- [ ] Refactor (code change, no feature/fix)
|
|
232
|
-
- [ ] Documentation
|
|
233
|
-
- [ ] Tests
|
|
234
|
-
|
|
235
|
-
## Changes Made
|
|
236
|
-
|
|
237
|
-
- [Change 1]
|
|
238
|
-
- [Change 2]
|
|
239
|
-
|
|
240
|
-
## Test Plan
|
|
241
|
-
|
|
242
|
-
- [ ] Unit tests pass
|
|
243
|
-
- [ ] E2E tests pass
|
|
244
|
-
- [ ] Manual testing done
|
|
245
|
-
|
|
246
|
-
## Screenshots
|
|
247
|
-
|
|
248
|
-
[If UI changes]
|
|
249
|
-
|
|
250
|
-
## Checklist
|
|
251
|
-
|
|
252
|
-
- [ ] Code follows project style
|
|
253
|
-
- [ ] Self-review completed
|
|
254
|
-
- [ ] Documentation updated
|
|
255
|
-
- [ ] Tests added/updated
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
---
|
|
259
|
-
|
|
260
|
-
## Git Hooks (Husky)
|
|
261
|
-
|
|
262
|
-
### Setup
|
|
263
|
-
|
|
264
|
-
```bash
|
|
265
|
-
# Install Husky
|
|
266
|
-
bun add -D husky lint-staged
|
|
267
|
-
|
|
268
|
-
# Initialize
|
|
269
|
-
bunx husky init
|
|
270
|
-
|
|
271
|
-
# Create hooks
|
|
272
|
-
echo "bun run lint-staged" > .husky/pre-commit
|
|
273
|
-
echo "bun run typecheck" > .husky/pre-push
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
### lint-staged Configuration
|
|
277
|
-
|
|
278
|
-
```json
|
|
279
|
-
// package.json
|
|
280
|
-
{
|
|
281
|
-
"lint-staged": {
|
|
282
|
-
"*.{ts,tsx}": ["eslint --fix", "prettier --write"],
|
|
283
|
-
"*.{json,md}": ["prettier --write"]
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
### Commit Message Hook
|
|
289
|
-
|
|
290
|
-
```bash
|
|
291
|
-
# .husky/commit-msg
|
|
292
|
-
#!/usr/bin/env sh
|
|
293
|
-
. "$(dirname -- "$0")/_/husky.sh"
|
|
294
|
-
|
|
295
|
-
bunx --no -- commitlint --edit "$1"
|
|
296
|
-
```
|
|
297
|
-
|
|
298
|
-
### commitlint Configuration
|
|
299
|
-
|
|
300
|
-
```javascript
|
|
301
|
-
// commitlint.config.js
|
|
302
|
-
export default {
|
|
303
|
-
extends: ['@commitlint/config-conventional'],
|
|
304
|
-
rules: {
|
|
305
|
-
'type-enum': [
|
|
306
|
-
2,
|
|
307
|
-
'always',
|
|
308
|
-
['feat', 'fix', 'docs', 'style', 'refactor', 'perf', 'test', 'chore', 'ci', 'build'],
|
|
309
|
-
],
|
|
310
|
-
'scope-enum': [1, 'always', ['api', 'auth', 'ui', 'db', 'tests', 'docker']],
|
|
311
|
-
'subject-case': [2, 'always', 'lower-case'],
|
|
312
|
-
'body-max-line-length': [2, 'always', 100],
|
|
313
|
-
},
|
|
314
|
-
};
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
---
|
|
318
|
-
|
|
319
|
-
## Merge Strategies
|
|
320
|
-
|
|
321
|
-
### Squash Merge (Recommended for Features)
|
|
322
|
-
|
|
323
|
-
```bash
|
|
324
|
-
# Combines all commits into one
|
|
325
|
-
gh pr merge --squash
|
|
326
|
-
|
|
327
|
-
# Result: Clean main history
|
|
328
|
-
```
|
|
329
|
-
|
|
330
|
-
### Rebase Merge (For Clean History)
|
|
331
|
-
|
|
332
|
-
```bash
|
|
333
|
-
# Replays commits on top of base
|
|
334
|
-
gh pr merge --rebase
|
|
335
|
-
|
|
336
|
-
# Result: Linear history, individual commits preserved
|
|
337
|
-
```
|
|
338
|
-
|
|
339
|
-
### Merge Commit (For Preserving History)
|
|
340
|
-
|
|
341
|
-
```bash
|
|
342
|
-
# Creates merge commit
|
|
343
|
-
gh pr merge --merge
|
|
344
|
-
|
|
345
|
-
# Result: Preserves full branch history
|
|
346
|
-
```
|
|
347
|
-
|
|
348
|
-
### Recommendation
|
|
349
|
-
|
|
350
|
-
| Branch Type | Strategy |
|
|
351
|
-
| ----------- | -------- |
|
|
352
|
-
| feature/\* | Squash |
|
|
353
|
-
| fix/\* | Squash |
|
|
354
|
-
| release/\* | Merge |
|
|
355
|
-
| hotfix/\* | Merge |
|
|
356
|
-
|
|
357
|
-
---
|
|
358
|
-
|
|
359
|
-
## Useful Git Commands
|
|
360
|
-
|
|
361
|
-
### Status & Diff
|
|
362
|
-
|
|
363
|
-
```bash
|
|
364
|
-
# Status
|
|
365
|
-
git status
|
|
366
|
-
|
|
367
|
-
# Diff unstaged
|
|
368
|
-
git diff
|
|
369
|
-
|
|
370
|
-
# Diff staged
|
|
371
|
-
git diff --staged
|
|
372
|
-
|
|
373
|
-
# Diff between branches
|
|
374
|
-
git diff main..feature/my-feature
|
|
375
|
-
```
|
|
376
|
-
|
|
377
|
-
### History
|
|
378
|
-
|
|
379
|
-
```bash
|
|
380
|
-
# Recent commits
|
|
381
|
-
git log --oneline -10
|
|
382
|
-
|
|
383
|
-
# Commits in branch not in main
|
|
384
|
-
git log main..HEAD --oneline
|
|
385
|
-
|
|
386
|
-
# Files changed in last commit
|
|
387
|
-
git diff-tree --no-commit-id --name-only -r HEAD
|
|
388
|
-
|
|
389
|
-
# Who changed a file
|
|
390
|
-
git blame src/file.ts
|
|
391
|
-
```
|
|
392
|
-
|
|
393
|
-
### Undo Changes
|
|
394
|
-
|
|
395
|
-
```bash
|
|
396
|
-
# Unstage file
|
|
397
|
-
git reset HEAD file.ts
|
|
398
|
-
|
|
399
|
-
# Discard local changes
|
|
400
|
-
git checkout -- file.ts
|
|
401
|
-
|
|
402
|
-
# Undo last commit (keep changes)
|
|
403
|
-
git reset --soft HEAD~1
|
|
404
|
-
|
|
405
|
-
# Undo last commit (discard changes)
|
|
406
|
-
git reset --hard HEAD~1
|
|
407
|
-
```
|
|
408
|
-
|
|
409
|
-
### Stash
|
|
410
|
-
|
|
411
|
-
```bash
|
|
412
|
-
# Stash changes
|
|
413
|
-
git stash
|
|
414
|
-
|
|
415
|
-
# Stash with message
|
|
416
|
-
git stash push -m "WIP: feature X"
|
|
417
|
-
|
|
418
|
-
# List stashes
|
|
419
|
-
git stash list
|
|
420
|
-
|
|
421
|
-
# Apply latest stash
|
|
422
|
-
git stash pop
|
|
423
|
-
|
|
424
|
-
# Apply specific stash
|
|
425
|
-
git stash apply stash@{2}
|
|
426
|
-
```
|
|
427
|
-
|
|
428
|
-
---
|
|
429
|
-
|
|
430
|
-
## Agent Integration
|
|
431
|
-
|
|
432
|
-
This skill is used by:
|
|
433
|
-
|
|
434
|
-
- **commit-manager** agent
|
|
435
|
-
- **branch-manager** agent
|
|
436
|
-
- **pr-creator** agent
|
|
437
|
-
- **quality-checker** for pre-commit validation
|
|
438
|
-
|
|
439
|
-
---
|
|
440
|
-
|
|
441
|
-
## FORBIDDEN
|
|
442
|
-
|
|
443
|
-
1. **Force push to main/master** - Never without explicit permission
|
|
444
|
-
2. **Commit directly to main** - Use feature branches
|
|
445
|
-
3. **Skip hooks** - Don't use `--no-verify` unless absolutely necessary
|
|
446
|
-
4. **Vague commit messages** - Be specific and descriptive
|
|
447
|
-
5. **Large unrelated changes in one commit** - Keep commits focused
|
|
448
|
-
6. **Committing secrets** - Never commit .env, tokens, passwords
|
|
449
|
-
|
|
450
|
-
---
|
|
451
|
-
|
|
452
|
-
## Version
|
|
453
|
-
|
|
454
|
-
- **v1.0.0** - Initial implementation based on 2024-2025 Git workflow patterns
|
|
1
|
+
---
|
|
2
|
+
name: git-workflow
|
|
3
|
+
description: Git workflow patterns and best practices. Branch management, conventional commits, PR creation, hooks. Use when working with git operations.
|
|
4
|
+
allowed-tools: Bash, Read, Grep, Glob
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Git Workflow - Version Control Best Practices
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
Expert guidance for Git:
|
|
12
|
+
|
|
13
|
+
- **Branch Management** - Feature, fix, release branches
|
|
14
|
+
- **Conventional Commits** - Standardized commit messages
|
|
15
|
+
- **Pull Requests** - Well-formatted PRs with gh CLI
|
|
16
|
+
- **Git Hooks** - Automated quality gates
|
|
17
|
+
- **Merge Strategies** - Rebase, squash, merge
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Branch Naming Conventions
|
|
22
|
+
|
|
23
|
+
### Format
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
<type>/<description>
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Types
|
|
30
|
+
|
|
31
|
+
| Type | Use Case |
|
|
32
|
+
| ----------- | ---------------------- |
|
|
33
|
+
| `feature/` | New functionality |
|
|
34
|
+
| `fix/` | Bug fixes |
|
|
35
|
+
| `refactor/` | Code restructuring |
|
|
36
|
+
| `test/` | Test additions/changes |
|
|
37
|
+
| `docs/` | Documentation only |
|
|
38
|
+
| `chore/` | Maintenance tasks |
|
|
39
|
+
|
|
40
|
+
### Examples
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
feature/user-authentication
|
|
44
|
+
feature/add-dark-mode
|
|
45
|
+
fix/login-validation-error
|
|
46
|
+
fix/memory-leak-dashboard
|
|
47
|
+
refactor/api-client-structure
|
|
48
|
+
test/e2e-checkout-flow
|
|
49
|
+
docs/api-documentation
|
|
50
|
+
chore/update-dependencies
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Branch Workflow
|
|
56
|
+
|
|
57
|
+
### Create Feature Branch
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# From main branch
|
|
61
|
+
git checkout main
|
|
62
|
+
git pull origin main
|
|
63
|
+
|
|
64
|
+
# Create and switch to new branch
|
|
65
|
+
git checkout -b feature/my-feature
|
|
66
|
+
|
|
67
|
+
# Alternative
|
|
68
|
+
git switch -c feature/my-feature
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Keep Branch Updated
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# Fetch latest changes
|
|
75
|
+
git fetch origin
|
|
76
|
+
|
|
77
|
+
# Rebase on main
|
|
78
|
+
git rebase origin/main
|
|
79
|
+
|
|
80
|
+
# If conflicts, resolve and continue
|
|
81
|
+
git add .
|
|
82
|
+
git rebase --continue
|
|
83
|
+
|
|
84
|
+
# Or abort if needed
|
|
85
|
+
git rebase --abort
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Push Branch
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
# First push (set upstream)
|
|
92
|
+
git push -u origin feature/my-feature
|
|
93
|
+
|
|
94
|
+
# Subsequent pushes
|
|
95
|
+
git push
|
|
96
|
+
|
|
97
|
+
# After rebase (force with lease is safer)
|
|
98
|
+
git push --force-with-lease
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Conventional Commits
|
|
104
|
+
|
|
105
|
+
### Format
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
<type>(<scope>): <description>
|
|
109
|
+
|
|
110
|
+
[optional body]
|
|
111
|
+
|
|
112
|
+
[optional footer]
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Types
|
|
116
|
+
|
|
117
|
+
| Type | Description |
|
|
118
|
+
| ---------- | --------------------------- |
|
|
119
|
+
| `feat` | New feature for the user |
|
|
120
|
+
| `fix` | Bug fix for the user |
|
|
121
|
+
| `docs` | Documentation only |
|
|
122
|
+
| `style` | Formatting, no code change |
|
|
123
|
+
| `refactor` | Code change, no feature/fix |
|
|
124
|
+
| `perf` | Performance improvement |
|
|
125
|
+
| `test` | Adding/updating tests |
|
|
126
|
+
| `chore` | Maintenance, deps update |
|
|
127
|
+
| `ci` | CI/CD changes |
|
|
128
|
+
| `build` | Build system changes |
|
|
129
|
+
|
|
130
|
+
### Examples
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
# Feature
|
|
134
|
+
git commit -m "feat(auth): add OAuth2 Google login"
|
|
135
|
+
|
|
136
|
+
# Fix
|
|
137
|
+
git commit -m "fix(cart): prevent duplicate items on rapid click"
|
|
138
|
+
|
|
139
|
+
# With body (use HEREDOC for multi-line)
|
|
140
|
+
git commit -m "$(cat <<'EOF'
|
|
141
|
+
feat(api): add rate limiting middleware
|
|
142
|
+
|
|
143
|
+
- Implement token bucket algorithm
|
|
144
|
+
- Add configurable limits per endpoint
|
|
145
|
+
- Include bypass for authenticated users
|
|
146
|
+
|
|
147
|
+
Closes #123
|
|
148
|
+
EOF
|
|
149
|
+
)"
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### Scopes (Project-Specific)
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
api, auth, cart, checkout, dashboard, db, docker, ui, tests
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Commit Message Template
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
# Set up template
|
|
164
|
+
git config commit.template .gitmessage
|
|
165
|
+
|
|
166
|
+
# .gitmessage file
|
|
167
|
+
# <type>(<scope>): <description>
|
|
168
|
+
#
|
|
169
|
+
# [body - explain what and why]
|
|
170
|
+
#
|
|
171
|
+
# [footer - issue references]
|
|
172
|
+
#
|
|
173
|
+
# Types: feat, fix, docs, style, refactor, perf, test, chore, ci, build
|
|
174
|
+
# Scopes: api, auth, ui, db, tests, docker, etc.
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Pull Request Creation
|
|
180
|
+
|
|
181
|
+
### Using GitHub CLI
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
# Create PR with title and body
|
|
185
|
+
gh pr create --title "feat(auth): add OAuth2 Google login" --body "$(cat <<'EOF'
|
|
186
|
+
## Summary
|
|
187
|
+
- Implements Google OAuth2 authentication
|
|
188
|
+
- Adds login button to auth page
|
|
189
|
+
- Stores OAuth tokens securely
|
|
190
|
+
|
|
191
|
+
## Changes
|
|
192
|
+
- `src/auth/oauth.ts` - OAuth client implementation
|
|
193
|
+
- `src/pages/login.tsx` - UI integration
|
|
194
|
+
- `src/types/auth.ts` - New auth types
|
|
195
|
+
|
|
196
|
+
## Test Plan
|
|
197
|
+
- [ ] Login with Google account
|
|
198
|
+
- [ ] Verify session persists
|
|
199
|
+
- [ ] Test logout flow
|
|
200
|
+
- [ ] Check token refresh
|
|
201
|
+
|
|
202
|
+
## Screenshots
|
|
203
|
+
[If applicable]
|
|
204
|
+
EOF
|
|
205
|
+
)"
|
|
206
|
+
|
|
207
|
+
# Create draft PR
|
|
208
|
+
gh pr create --draft --title "WIP: feature name"
|
|
209
|
+
|
|
210
|
+
# Create PR with specific base branch
|
|
211
|
+
gh pr create --base develop --title "feat: ..."
|
|
212
|
+
|
|
213
|
+
# Create PR and assign reviewers
|
|
214
|
+
gh pr create --title "feat: ..." --reviewer user1,user2
|
|
215
|
+
|
|
216
|
+
# Create PR with labels
|
|
217
|
+
gh pr create --title "feat: ..." --label "enhancement,priority:high"
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### PR Template
|
|
221
|
+
|
|
222
|
+
```markdown
|
|
223
|
+
## Summary
|
|
224
|
+
|
|
225
|
+
[Brief description of changes]
|
|
226
|
+
|
|
227
|
+
## Type of Change
|
|
228
|
+
|
|
229
|
+
- [ ] Feature (new functionality)
|
|
230
|
+
- [ ] Bug fix (fixes an issue)
|
|
231
|
+
- [ ] Refactor (code change, no feature/fix)
|
|
232
|
+
- [ ] Documentation
|
|
233
|
+
- [ ] Tests
|
|
234
|
+
|
|
235
|
+
## Changes Made
|
|
236
|
+
|
|
237
|
+
- [Change 1]
|
|
238
|
+
- [Change 2]
|
|
239
|
+
|
|
240
|
+
## Test Plan
|
|
241
|
+
|
|
242
|
+
- [ ] Unit tests pass
|
|
243
|
+
- [ ] E2E tests pass
|
|
244
|
+
- [ ] Manual testing done
|
|
245
|
+
|
|
246
|
+
## Screenshots
|
|
247
|
+
|
|
248
|
+
[If UI changes]
|
|
249
|
+
|
|
250
|
+
## Checklist
|
|
251
|
+
|
|
252
|
+
- [ ] Code follows project style
|
|
253
|
+
- [ ] Self-review completed
|
|
254
|
+
- [ ] Documentation updated
|
|
255
|
+
- [ ] Tests added/updated
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## Git Hooks (Husky)
|
|
261
|
+
|
|
262
|
+
### Setup
|
|
263
|
+
|
|
264
|
+
```bash
|
|
265
|
+
# Install Husky
|
|
266
|
+
bun add -D husky lint-staged
|
|
267
|
+
|
|
268
|
+
# Initialize
|
|
269
|
+
bunx husky init
|
|
270
|
+
|
|
271
|
+
# Create hooks
|
|
272
|
+
echo "bun run lint-staged" > .husky/pre-commit
|
|
273
|
+
echo "bun run typecheck" > .husky/pre-push
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
### lint-staged Configuration
|
|
277
|
+
|
|
278
|
+
```json
|
|
279
|
+
// package.json
|
|
280
|
+
{
|
|
281
|
+
"lint-staged": {
|
|
282
|
+
"*.{ts,tsx}": ["eslint --fix", "prettier --write"],
|
|
283
|
+
"*.{json,md}": ["prettier --write"]
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
### Commit Message Hook
|
|
289
|
+
|
|
290
|
+
```bash
|
|
291
|
+
# .husky/commit-msg
|
|
292
|
+
#!/usr/bin/env sh
|
|
293
|
+
. "$(dirname -- "$0")/_/husky.sh"
|
|
294
|
+
|
|
295
|
+
bunx --no -- commitlint --edit "$1"
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### commitlint Configuration
|
|
299
|
+
|
|
300
|
+
```javascript
|
|
301
|
+
// commitlint.config.js
|
|
302
|
+
export default {
|
|
303
|
+
extends: ['@commitlint/config-conventional'],
|
|
304
|
+
rules: {
|
|
305
|
+
'type-enum': [
|
|
306
|
+
2,
|
|
307
|
+
'always',
|
|
308
|
+
['feat', 'fix', 'docs', 'style', 'refactor', 'perf', 'test', 'chore', 'ci', 'build'],
|
|
309
|
+
],
|
|
310
|
+
'scope-enum': [1, 'always', ['api', 'auth', 'ui', 'db', 'tests', 'docker']],
|
|
311
|
+
'subject-case': [2, 'always', 'lower-case'],
|
|
312
|
+
'body-max-line-length': [2, 'always', 100],
|
|
313
|
+
},
|
|
314
|
+
};
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
---
|
|
318
|
+
|
|
319
|
+
## Merge Strategies
|
|
320
|
+
|
|
321
|
+
### Squash Merge (Recommended for Features)
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
# Combines all commits into one
|
|
325
|
+
gh pr merge --squash
|
|
326
|
+
|
|
327
|
+
# Result: Clean main history
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### Rebase Merge (For Clean History)
|
|
331
|
+
|
|
332
|
+
```bash
|
|
333
|
+
# Replays commits on top of base
|
|
334
|
+
gh pr merge --rebase
|
|
335
|
+
|
|
336
|
+
# Result: Linear history, individual commits preserved
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
### Merge Commit (For Preserving History)
|
|
340
|
+
|
|
341
|
+
```bash
|
|
342
|
+
# Creates merge commit
|
|
343
|
+
gh pr merge --merge
|
|
344
|
+
|
|
345
|
+
# Result: Preserves full branch history
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
### Recommendation
|
|
349
|
+
|
|
350
|
+
| Branch Type | Strategy |
|
|
351
|
+
| ----------- | -------- |
|
|
352
|
+
| feature/\* | Squash |
|
|
353
|
+
| fix/\* | Squash |
|
|
354
|
+
| release/\* | Merge |
|
|
355
|
+
| hotfix/\* | Merge |
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
359
|
+
## Useful Git Commands
|
|
360
|
+
|
|
361
|
+
### Status & Diff
|
|
362
|
+
|
|
363
|
+
```bash
|
|
364
|
+
# Status
|
|
365
|
+
git status
|
|
366
|
+
|
|
367
|
+
# Diff unstaged
|
|
368
|
+
git diff
|
|
369
|
+
|
|
370
|
+
# Diff staged
|
|
371
|
+
git diff --staged
|
|
372
|
+
|
|
373
|
+
# Diff between branches
|
|
374
|
+
git diff main..feature/my-feature
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
### History
|
|
378
|
+
|
|
379
|
+
```bash
|
|
380
|
+
# Recent commits
|
|
381
|
+
git log --oneline -10
|
|
382
|
+
|
|
383
|
+
# Commits in branch not in main
|
|
384
|
+
git log main..HEAD --oneline
|
|
385
|
+
|
|
386
|
+
# Files changed in last commit
|
|
387
|
+
git diff-tree --no-commit-id --name-only -r HEAD
|
|
388
|
+
|
|
389
|
+
# Who changed a file
|
|
390
|
+
git blame src/file.ts
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
### Undo Changes
|
|
394
|
+
|
|
395
|
+
```bash
|
|
396
|
+
# Unstage file
|
|
397
|
+
git reset HEAD file.ts
|
|
398
|
+
|
|
399
|
+
# Discard local changes
|
|
400
|
+
git checkout -- file.ts
|
|
401
|
+
|
|
402
|
+
# Undo last commit (keep changes)
|
|
403
|
+
git reset --soft HEAD~1
|
|
404
|
+
|
|
405
|
+
# Undo last commit (discard changes)
|
|
406
|
+
git reset --hard HEAD~1
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
### Stash
|
|
410
|
+
|
|
411
|
+
```bash
|
|
412
|
+
# Stash changes
|
|
413
|
+
git stash
|
|
414
|
+
|
|
415
|
+
# Stash with message
|
|
416
|
+
git stash push -m "WIP: feature X"
|
|
417
|
+
|
|
418
|
+
# List stashes
|
|
419
|
+
git stash list
|
|
420
|
+
|
|
421
|
+
# Apply latest stash
|
|
422
|
+
git stash pop
|
|
423
|
+
|
|
424
|
+
# Apply specific stash
|
|
425
|
+
git stash apply stash@{2}
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
---
|
|
429
|
+
|
|
430
|
+
## Agent Integration
|
|
431
|
+
|
|
432
|
+
This skill is used by:
|
|
433
|
+
|
|
434
|
+
- **commit-manager** agent
|
|
435
|
+
- **branch-manager** agent
|
|
436
|
+
- **pr-creator** agent
|
|
437
|
+
- **quality-checker** for pre-commit validation
|
|
438
|
+
|
|
439
|
+
---
|
|
440
|
+
|
|
441
|
+
## FORBIDDEN
|
|
442
|
+
|
|
443
|
+
1. **Force push to main/master** - Never without explicit permission
|
|
444
|
+
2. **Commit directly to main** - Use feature branches
|
|
445
|
+
3. **Skip hooks** - Don't use `--no-verify` unless absolutely necessary
|
|
446
|
+
4. **Vague commit messages** - Be specific and descriptive
|
|
447
|
+
5. **Large unrelated changes in one commit** - Keep commits focused
|
|
448
|
+
6. **Committing secrets** - Never commit .env, tokens, passwords
|
|
449
|
+
|
|
450
|
+
---
|
|
451
|
+
|
|
452
|
+
## Version
|
|
453
|
+
|
|
454
|
+
- **v1.0.0** - Initial implementation based on 2024-2025 Git workflow patterns
|