@patricio0312rev/skillset 0.1.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.
- package/CHANGELOG.md +29 -0
- package/LICENSE +21 -0
- package/README.md +176 -0
- package/bin/cli.js +37 -0
- package/package.json +55 -0
- package/src/commands/init.js +301 -0
- package/src/index.js +168 -0
- package/src/lib/config.js +200 -0
- package/src/lib/generator.js +166 -0
- package/src/utils/display.js +95 -0
- package/src/utils/readme.js +196 -0
- package/src/utils/tool-specific.js +233 -0
- package/templates/ai-engineering/agent-orchestration-planner/ SKILL.md +266 -0
- package/templates/ai-engineering/cost-latency-optimizer/ SKILL.md +270 -0
- package/templates/ai-engineering/doc-to-vector-dataset-generator/ SKILL.md +239 -0
- package/templates/ai-engineering/evaluation-harness/ SKILL.md +219 -0
- package/templates/ai-engineering/guardrails-safety-filter-builder/ SKILL.md +226 -0
- package/templates/ai-engineering/llm-debugger/ SKILL.md +283 -0
- package/templates/ai-engineering/prompt-regression-tester/ SKILL.md +216 -0
- package/templates/ai-engineering/prompt-template-builder/ SKILL.md +393 -0
- package/templates/ai-engineering/rag-pipeline-builder/ SKILL.md +244 -0
- package/templates/ai-engineering/tool-function-schema-designer/ SKILL.md +219 -0
- package/templates/architecture/adr-writer/ SKILL.md +250 -0
- package/templates/architecture/api-versioning-deprecation-planner/ SKILL.md +331 -0
- package/templates/architecture/domain-model-boundaries-mapper/ SKILL.md +300 -0
- package/templates/architecture/migration-planner/ SKILL.md +376 -0
- package/templates/architecture/performance-budget-setter/ SKILL.md +318 -0
- package/templates/architecture/reliability-strategy-builder/ SKILL.md +286 -0
- package/templates/architecture/rfc-generator/ SKILL.md +362 -0
- package/templates/architecture/scalability-playbook/ SKILL.md +279 -0
- package/templates/architecture/system-design-generator/ SKILL.md +339 -0
- package/templates/architecture/tech-debt-prioritizer/ SKILL.md +329 -0
- package/templates/backend/api-contract-normalizer/ SKILL.md +487 -0
- package/templates/backend/api-endpoint-generator/ SKILL.md +415 -0
- package/templates/backend/auth-module-builder/ SKILL.md +99 -0
- package/templates/backend/background-jobs-designer/ SKILL.md +166 -0
- package/templates/backend/caching-strategist/ SKILL.md +190 -0
- package/templates/backend/error-handling-standardizer/ SKILL.md +174 -0
- package/templates/backend/rate-limiting-abuse-protection/ SKILL.md +147 -0
- package/templates/backend/rbac-permissions-builder/ SKILL.md +158 -0
- package/templates/backend/service-layer-extractor/ SKILL.md +269 -0
- package/templates/backend/webhook-receiver-hardener/ SKILL.md +211 -0
- package/templates/ci-cd/artifact-sbom-publisher/ SKILL.md +236 -0
- package/templates/ci-cd/caching-strategy-optimizer/ SKILL.md +195 -0
- package/templates/ci-cd/deployment-checklist-generator/ SKILL.md +381 -0
- package/templates/ci-cd/github-actions-pipeline-creator/ SKILL.md +348 -0
- package/templates/ci-cd/monorepo-ci-optimizer/ SKILL.md +298 -0
- package/templates/ci-cd/preview-environments-builder/ SKILL.md +187 -0
- package/templates/ci-cd/quality-gates-enforcer/ SKILL.md +342 -0
- package/templates/ci-cd/release-automation-builder/ SKILL.md +281 -0
- package/templates/ci-cd/rollback-workflow-builder/ SKILL.md +372 -0
- package/templates/ci-cd/secrets-env-manager/ SKILL.md +242 -0
- package/templates/db-management/backup-restore-runbook-generator/ SKILL.md +505 -0
- package/templates/db-management/data-integrity-auditor/ SKILL.md +505 -0
- package/templates/db-management/data-retention-archiving-planner/ SKILL.md +430 -0
- package/templates/db-management/data-seeding-fixtures-builder/ SKILL.md +375 -0
- package/templates/db-management/db-performance-watchlist/ SKILL.md +425 -0
- package/templates/db-management/etl-sync-job-builder/ SKILL.md +457 -0
- package/templates/db-management/multi-tenant-safety-checker/ SKILL.md +398 -0
- package/templates/db-management/prisma-migration-assistant/ SKILL.md +379 -0
- package/templates/db-management/schema-consistency-checker/ SKILL.md +440 -0
- package/templates/db-management/sql-query-optimizer/ SKILL.md +324 -0
- package/templates/foundation/changelog-writer/ SKILL.md +431 -0
- package/templates/foundation/code-formatter-installer/ SKILL.md +320 -0
- package/templates/foundation/codebase-summarizer/ SKILL.md +360 -0
- package/templates/foundation/dependency-doctor/ SKILL.md +163 -0
- package/templates/foundation/dev-environment-bootstrapper/ SKILL.md +259 -0
- package/templates/foundation/dev-onboarding-builder/ SKILL.md +556 -0
- package/templates/foundation/docs-starter-kit/ SKILL.md +574 -0
- package/templates/foundation/explaining-code/SKILL.md +13 -0
- package/templates/foundation/git-hygiene-enforcer/ SKILL.md +455 -0
- package/templates/foundation/project-scaffolder/ SKILL.md +65 -0
- package/templates/foundation/project-scaffolder/references/templates.md +126 -0
- package/templates/foundation/repo-structure-linter/ SKILL.md +0 -0
- package/templates/foundation/repo-structure-linter/references/conventions.md +98 -0
- package/templates/frontend/animation-micro-interaction-pack/ SKILL.md +41 -0
- package/templates/frontend/component-scaffold-generator/ SKILL.md +562 -0
- package/templates/frontend/design-to-component-translator/ SKILL.md +547 -0
- package/templates/frontend/form-wizard-builder/ SKILL.md +553 -0
- package/templates/frontend/frontend-refactor-planner/ SKILL.md +37 -0
- package/templates/frontend/i18n-frontend-implementer/ SKILL.md +44 -0
- package/templates/frontend/modal-drawer-system/ SKILL.md +377 -0
- package/templates/frontend/page-layout-builder/ SKILL.md +630 -0
- package/templates/frontend/state-ux-flow-builder/ SKILL.md +23 -0
- package/templates/frontend/table-builder/ SKILL.md +350 -0
- package/templates/performance/alerting-dashboard-builder/ SKILL.md +162 -0
- package/templates/performance/backend-latency-profiler-helper/ SKILL.md +108 -0
- package/templates/performance/caching-cdn-strategy-planner/ SKILL.md +150 -0
- package/templates/performance/capacity-planning-helper/ SKILL.md +242 -0
- package/templates/performance/core-web-vitals-tuner/ SKILL.md +126 -0
- package/templates/performance/incident-runbook-generator/ SKILL.md +162 -0
- package/templates/performance/load-test-scenario-builder/ SKILL.md +256 -0
- package/templates/performance/observability-setup/ SKILL.md +232 -0
- package/templates/performance/postmortem-writer/ SKILL.md +203 -0
- package/templates/performance/structured-logging-standardizer/ SKILL.md +122 -0
- package/templates/security/auth-security-reviewer/ SKILL.md +428 -0
- package/templates/security/dependency-vulnerability-triage/ SKILL.md +495 -0
- package/templates/security/input-validation-sanitization-auditor/ SKILL.md +76 -0
- package/templates/security/pii-redaction-logging-policy-builder/ SKILL.md +65 -0
- package/templates/security/rbac-policy-tester/ SKILL.md +80 -0
- package/templates/security/secrets-scanner/ SKILL.md +462 -0
- package/templates/security/secure-headers-csp-builder/ SKILL.md +404 -0
- package/templates/security/security-incident-playbook-generator/ SKILL.md +76 -0
- package/templates/security/security-pr-checklist-skill/ SKILL.md +62 -0
- package/templates/security/threat-model-generator/ SKILL.md +394 -0
- package/templates/testing/contract-testing-builder/ SKILL.md +492 -0
- package/templates/testing/coverage-strategist/ SKILL.md +436 -0
- package/templates/testing/e2e-test-builder/ SKILL.md +382 -0
- package/templates/testing/flaky-test-detective/ SKILL.md +416 -0
- package/templates/testing/integration-test-builder/ SKILL.md +525 -0
- package/templates/testing/mocking-assistant/ SKILL.md +383 -0
- package/templates/testing/snapshot-test-refactorer/ SKILL.md +375 -0
- package/templates/testing/test-data-factory-builder/ SKILL.md +449 -0
- package/templates/testing/test-reporting-triage-skill/ SKILL.md +469 -0
- package/templates/testing/unit-test-generator/ SKILL.md +548 -0
|
@@ -0,0 +1,455 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: git-hygiene-enforcer
|
|
3
|
+
description: Establishes git workflow guardrails including conventional commits, commit message hooks, branch naming conventions, PR templates, and code review processes. Provides hook configurations, workflow templates, and emergency bypass instructions. Use when users request "setup git hooks", "enforce commit conventions", "add PR templates", or "standardize git workflow".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Git Hygiene Enforcer
|
|
7
|
+
|
|
8
|
+
Enforce consistent, high-quality git practices across your team.
|
|
9
|
+
|
|
10
|
+
## Core Workflow
|
|
11
|
+
|
|
12
|
+
1. **Choose conventions**: Select commit format (Conventional Commits, Angular, etc.)
|
|
13
|
+
2. **Setup commit hooks**: Install commitlint with git hooks
|
|
14
|
+
3. **Configure branch rules**: Define naming patterns and protection
|
|
15
|
+
4. **Create PR templates**: Standardize pull request descriptions
|
|
16
|
+
5. **Add workflows**: GitHub Actions or GitLab CI for automated checks
|
|
17
|
+
6. **Document process**: Write CONTRIBUTING.md with git guidelines
|
|
18
|
+
7. **Provide bypasses**: Document emergency override procedures
|
|
19
|
+
|
|
20
|
+
## Conventional Commits
|
|
21
|
+
|
|
22
|
+
Format: `<type>(<scope>): <description>`
|
|
23
|
+
|
|
24
|
+
**Types:**
|
|
25
|
+
|
|
26
|
+
- `feat`: New feature
|
|
27
|
+
- `fix`: Bug fix
|
|
28
|
+
- `docs`: Documentation changes
|
|
29
|
+
- `style`: Code style changes (formatting, etc.)
|
|
30
|
+
- `refactor`: Code refactoring
|
|
31
|
+
- `test`: Test additions or changes
|
|
32
|
+
- `chore`: Build/tool changes
|
|
33
|
+
- `perf`: Performance improvements
|
|
34
|
+
- `ci`: CI/CD changes
|
|
35
|
+
|
|
36
|
+
**Examples:**
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
feat(auth): add OAuth2 login
|
|
40
|
+
fix(api): resolve race condition in user endpoint
|
|
41
|
+
docs(readme): update installation instructions
|
|
42
|
+
refactor(utils): simplify date formatting logic
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Commit Hook Setup
|
|
46
|
+
|
|
47
|
+
### Using Husky + Commitlint
|
|
48
|
+
|
|
49
|
+
1. Install dependencies:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npm install --save-dev @commitlint/cli @commitlint/config-conventional husky
|
|
53
|
+
npx husky init
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
2. Configure commitlint (commitlint.config.js):
|
|
57
|
+
|
|
58
|
+
```javascript
|
|
59
|
+
module.exports = {
|
|
60
|
+
extends: ["@commitlint/config-conventional"],
|
|
61
|
+
rules: {
|
|
62
|
+
"type-enum": [
|
|
63
|
+
2,
|
|
64
|
+
"always",
|
|
65
|
+
[
|
|
66
|
+
"feat",
|
|
67
|
+
"fix",
|
|
68
|
+
"docs",
|
|
69
|
+
"style",
|
|
70
|
+
"refactor",
|
|
71
|
+
"test",
|
|
72
|
+
"chore",
|
|
73
|
+
"perf",
|
|
74
|
+
"ci",
|
|
75
|
+
],
|
|
76
|
+
],
|
|
77
|
+
"subject-case": [2, "never", ["upper-case"]],
|
|
78
|
+
"subject-empty": [2, "never"],
|
|
79
|
+
"subject-full-stop": [2, "never", "."],
|
|
80
|
+
"header-max-length": [2, "always", 100],
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
3. Add commit-msg hook (.husky/commit-msg):
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
#!/bin/sh
|
|
89
|
+
npx --no -- commitlint --edit $1
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Using pre-commit (Python)
|
|
93
|
+
|
|
94
|
+
```yaml
|
|
95
|
+
# .pre-commit-config.yaml
|
|
96
|
+
repos:
|
|
97
|
+
- repo: https://github.com/compilerla/conventional-pre-commit
|
|
98
|
+
rev: v3.0.0
|
|
99
|
+
hooks:
|
|
100
|
+
- id: conventional-pre-commit
|
|
101
|
+
stages: [commit-msg]
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Branch Naming Conventions
|
|
105
|
+
|
|
106
|
+
**Pattern:** `<type>/<ticket-id>-<description>`
|
|
107
|
+
|
|
108
|
+
**Examples:**
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
feature/AUTH-123-oauth-login
|
|
112
|
+
bugfix/API-456-user-race-condition
|
|
113
|
+
hotfix/PROD-789-payment-error
|
|
114
|
+
refactor/DB-321-optimize-queries
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**Branch Protection Rules:**
|
|
118
|
+
|
|
119
|
+
- Require PR reviews (1-2 reviewers)
|
|
120
|
+
- Require status checks to pass
|
|
121
|
+
- Require branches to be up to date
|
|
122
|
+
- Enforce linear history (no merge commits)
|
|
123
|
+
- Require signed commits (optional)
|
|
124
|
+
|
|
125
|
+
## Pull Request Templates
|
|
126
|
+
|
|
127
|
+
### .github/pull_request_template.md
|
|
128
|
+
|
|
129
|
+
```markdown
|
|
130
|
+
## Description
|
|
131
|
+
|
|
132
|
+
<!-- Describe your changes in detail -->
|
|
133
|
+
|
|
134
|
+
## Type of Change
|
|
135
|
+
|
|
136
|
+
- [ ] Bug fix (non-breaking change which fixes an issue)
|
|
137
|
+
- [ ] New feature (non-breaking change which adds functionality)
|
|
138
|
+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
|
|
139
|
+
- [ ] Documentation update
|
|
140
|
+
|
|
141
|
+
## Related Issue
|
|
142
|
+
|
|
143
|
+
Closes #<!-- issue number -->
|
|
144
|
+
|
|
145
|
+
## How Has This Been Tested?
|
|
146
|
+
|
|
147
|
+
<!-- Describe the tests you ran to verify your changes -->
|
|
148
|
+
|
|
149
|
+
- [ ] Unit tests
|
|
150
|
+
- [ ] Integration tests
|
|
151
|
+
- [ ] Manual testing
|
|
152
|
+
|
|
153
|
+
## Checklist
|
|
154
|
+
|
|
155
|
+
- [ ] My code follows the style guidelines of this project
|
|
156
|
+
- [ ] I have performed a self-review of my own code
|
|
157
|
+
- [ ] I have commented my code, particularly in hard-to-understand areas
|
|
158
|
+
- [ ] I have made corresponding changes to the documentation
|
|
159
|
+
- [ ] My changes generate no new warnings
|
|
160
|
+
- [ ] I have added tests that prove my fix is effective or that my feature works
|
|
161
|
+
- [ ] New and existing unit tests pass locally with my changes
|
|
162
|
+
- [ ] Any dependent changes have been merged and published
|
|
163
|
+
|
|
164
|
+
## Screenshots (if applicable)
|
|
165
|
+
|
|
166
|
+
<!-- Add screenshots to help explain your changes -->
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Alternative: Simple Template
|
|
170
|
+
|
|
171
|
+
```markdown
|
|
172
|
+
## What
|
|
173
|
+
|
|
174
|
+
<!-- What does this PR do? -->
|
|
175
|
+
|
|
176
|
+
## Why
|
|
177
|
+
|
|
178
|
+
<!-- Why are we making this change? -->
|
|
179
|
+
|
|
180
|
+
## How
|
|
181
|
+
|
|
182
|
+
<!-- How did you implement it? -->
|
|
183
|
+
|
|
184
|
+
## Testing
|
|
185
|
+
|
|
186
|
+
<!-- How can reviewers verify this works? -->
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## GitHub Actions Workflow
|
|
190
|
+
|
|
191
|
+
### .github/workflows/pr-checks.yml
|
|
192
|
+
|
|
193
|
+
```yaml
|
|
194
|
+
name: PR Checks
|
|
195
|
+
|
|
196
|
+
on:
|
|
197
|
+
pull_request:
|
|
198
|
+
branches: [main, develop]
|
|
199
|
+
|
|
200
|
+
jobs:
|
|
201
|
+
validate:
|
|
202
|
+
runs-on: ubuntu-latest
|
|
203
|
+
steps:
|
|
204
|
+
- uses: actions/checkout@v4
|
|
205
|
+
with:
|
|
206
|
+
fetch-depth: 0
|
|
207
|
+
|
|
208
|
+
- name: Validate PR title
|
|
209
|
+
uses: amannn/action-semantic-pull-request@v5
|
|
210
|
+
env:
|
|
211
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
212
|
+
|
|
213
|
+
- name: Check branch naming
|
|
214
|
+
run: |
|
|
215
|
+
BRANCH="${{ github.head_ref }}"
|
|
216
|
+
if [[ ! $BRANCH =~ ^(feature|bugfix|hotfix|refactor|docs|chore)/.+ ]]; then
|
|
217
|
+
echo "Branch name doesn't follow convention: <type>/<description>"
|
|
218
|
+
exit 1
|
|
219
|
+
fi
|
|
220
|
+
|
|
221
|
+
- name: Lint commits
|
|
222
|
+
uses: wagoid/commitlint-github-action@v5
|
|
223
|
+
|
|
224
|
+
- name: Check for merge commits
|
|
225
|
+
run: |
|
|
226
|
+
if git log --merges origin/${{ github.base_ref }}..HEAD | grep -q 'Merge'; then
|
|
227
|
+
echo "Merge commits detected. Please rebase your branch."
|
|
228
|
+
exit 1
|
|
229
|
+
fi
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
## Git Configuration
|
|
233
|
+
|
|
234
|
+
### .gitattributes
|
|
235
|
+
|
|
236
|
+
```
|
|
237
|
+
# Auto detect text files and perform LF normalization
|
|
238
|
+
* text=auto
|
|
239
|
+
|
|
240
|
+
# Explicitly mark files as text
|
|
241
|
+
*.js text
|
|
242
|
+
*.ts text
|
|
243
|
+
*.json text
|
|
244
|
+
*.md text
|
|
245
|
+
*.yml text
|
|
246
|
+
|
|
247
|
+
# Binary files
|
|
248
|
+
*.png binary
|
|
249
|
+
*.jpg binary
|
|
250
|
+
*.gif binary
|
|
251
|
+
*.ico binary
|
|
252
|
+
*.woff binary
|
|
253
|
+
*.woff2 binary
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### .gitignore Best Practices
|
|
257
|
+
|
|
258
|
+
```
|
|
259
|
+
# Dependencies
|
|
260
|
+
node_modules/
|
|
261
|
+
vendor/
|
|
262
|
+
|
|
263
|
+
# Environment
|
|
264
|
+
.env
|
|
265
|
+
.env.local
|
|
266
|
+
|
|
267
|
+
# Build outputs
|
|
268
|
+
dist/
|
|
269
|
+
build/
|
|
270
|
+
*.log
|
|
271
|
+
|
|
272
|
+
# IDE
|
|
273
|
+
.vscode/
|
|
274
|
+
.idea/
|
|
275
|
+
*.swp
|
|
276
|
+
|
|
277
|
+
# OS
|
|
278
|
+
.DS_Store
|
|
279
|
+
Thumbs.db
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
## Code Review Guidelines
|
|
283
|
+
|
|
284
|
+
### CONTRIBUTING.md Section
|
|
285
|
+
|
|
286
|
+
```markdown
|
|
287
|
+
## Pull Request Process
|
|
288
|
+
|
|
289
|
+
1. **Create a branch** following naming convention: `type/description`
|
|
290
|
+
2. **Make commits** using conventional commit format
|
|
291
|
+
3. **Write tests** for new features or bug fixes
|
|
292
|
+
4. **Update documentation** if APIs change
|
|
293
|
+
5. **Ensure CI passes** before requesting review
|
|
294
|
+
6. **Request review** from 1-2 team members
|
|
295
|
+
7. **Address feedback** and update PR
|
|
296
|
+
8. **Squash and merge** when approved
|
|
297
|
+
|
|
298
|
+
## Code Review Checklist
|
|
299
|
+
|
|
300
|
+
**Reviewers should verify:**
|
|
301
|
+
|
|
302
|
+
- [ ] Code is clear and understandable
|
|
303
|
+
- [ ] Tests cover new/changed code
|
|
304
|
+
- [ ] No obvious bugs or security issues
|
|
305
|
+
- [ ] Follows project conventions
|
|
306
|
+
- [ ] Documentation is updated
|
|
307
|
+
- [ ] No unnecessary changes included
|
|
308
|
+
|
|
309
|
+
**Constructive feedback:**
|
|
310
|
+
|
|
311
|
+
- Be specific and actionable
|
|
312
|
+
- Assume good intent
|
|
313
|
+
- Ask questions instead of making demands
|
|
314
|
+
- Praise good solutions
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
## Commit Message Validation
|
|
318
|
+
|
|
319
|
+
### commit-msg Hook Example
|
|
320
|
+
|
|
321
|
+
```bash
|
|
322
|
+
#!/bin/bash
|
|
323
|
+
# .husky/commit-msg
|
|
324
|
+
|
|
325
|
+
commit_msg=$(cat "$1")
|
|
326
|
+
|
|
327
|
+
# Check conventional commit format
|
|
328
|
+
if ! echo "$commit_msg" | grep -qE '^(feat|fix|docs|style|refactor|test|chore|perf|ci)(\(.+\))?: .+'; then
|
|
329
|
+
echo "Error: Commit message doesn't follow Conventional Commits format"
|
|
330
|
+
echo "Format: <type>(<scope>): <description>"
|
|
331
|
+
echo "Example: feat(auth): add OAuth2 login"
|
|
332
|
+
exit 1
|
|
333
|
+
fi
|
|
334
|
+
|
|
335
|
+
# Check message length
|
|
336
|
+
if [ ${#commit_msg} -gt 100 ]; then
|
|
337
|
+
echo "Error: Commit message too long (max 100 characters)"
|
|
338
|
+
exit 1
|
|
339
|
+
fi
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
## Emergency Bypass Instructions
|
|
343
|
+
|
|
344
|
+
### Skipping Hooks (Use Sparingly)
|
|
345
|
+
|
|
346
|
+
```bash
|
|
347
|
+
# Skip commit message validation
|
|
348
|
+
git commit --no-verify -m "hotfix: critical production fix"
|
|
349
|
+
|
|
350
|
+
# Force push (use with caution)
|
|
351
|
+
git push --force-with-lease
|
|
352
|
+
|
|
353
|
+
# Override PR checks (requires admin)
|
|
354
|
+
# Use GitHub UI: "Merge without waiting for checks"
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
### When Bypass is Acceptable
|
|
358
|
+
|
|
359
|
+
- **Production hotfixes**: Critical bugs affecting users
|
|
360
|
+
- **Reverts**: Rolling back problematic changes
|
|
361
|
+
- **Emergency**: Infrastructure outages
|
|
362
|
+
|
|
363
|
+
### Bypass Documentation
|
|
364
|
+
|
|
365
|
+
Document in CONTRIBUTING.md:
|
|
366
|
+
|
|
367
|
+
```markdown
|
|
368
|
+
## Emergency Procedures
|
|
369
|
+
|
|
370
|
+
In rare cases, you may need to bypass git hooks:
|
|
371
|
+
|
|
372
|
+
1. **Commit without hooks**: `git commit --no-verify`
|
|
373
|
+
|
|
374
|
+
- Only for production hotfixes
|
|
375
|
+
- Fix commit message in follow-up PR
|
|
376
|
+
|
|
377
|
+
2. **Force push**: `git push --force-with-lease`
|
|
378
|
+
- After approved history rewrite
|
|
379
|
+
- Coordinate with team first
|
|
380
|
+
|
|
381
|
+
Always create a follow-up PR to fix any bypassed checks.
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
## Recommended Workflow
|
|
385
|
+
|
|
386
|
+
````markdown
|
|
387
|
+
## Development Workflow
|
|
388
|
+
|
|
389
|
+
1. **Start work**
|
|
390
|
+
```bash
|
|
391
|
+
git checkout main
|
|
392
|
+
git pull
|
|
393
|
+
git checkout -b feature/TICKET-123-new-feature
|
|
394
|
+
```
|
|
395
|
+
````
|
|
396
|
+
|
|
397
|
+
2. **Make changes**
|
|
398
|
+
|
|
399
|
+
```bash
|
|
400
|
+
# Make your changes
|
|
401
|
+
git add .
|
|
402
|
+
git commit -m "feat(api): add user search endpoint"
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
3. **Keep updated**
|
|
406
|
+
|
|
407
|
+
```bash
|
|
408
|
+
git fetch origin
|
|
409
|
+
git rebase origin/main
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
4. **Push and create PR**
|
|
413
|
+
|
|
414
|
+
```bash
|
|
415
|
+
git push origin feature/TICKET-123-new-feature
|
|
416
|
+
# Create PR via GitHub/GitLab
|
|
417
|
+
```
|
|
418
|
+
|
|
419
|
+
5. **Address feedback**
|
|
420
|
+
|
|
421
|
+
```bash
|
|
422
|
+
# Make changes
|
|
423
|
+
git add .
|
|
424
|
+
git commit -m "fix: address review feedback"
|
|
425
|
+
git push
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
6. **Merge**
|
|
429
|
+
- Squash and merge via UI
|
|
430
|
+
- Delete branch after merge
|
|
431
|
+
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
## Installation Checklist
|
|
435
|
+
|
|
436
|
+
- [ ] Commitlint config (commitlint.config.js)
|
|
437
|
+
- [ ] Git hooks (.husky/ or .git/hooks/)
|
|
438
|
+
- [ ] PR template (.github/pull_request_template.md)
|
|
439
|
+
- [ ] Branch protection rules (via GitHub settings)
|
|
440
|
+
- [ ] CI workflow for PR validation
|
|
441
|
+
- [ ] CONTRIBUTING.md with git guidelines
|
|
442
|
+
- [ ] .gitattributes for consistent line endings
|
|
443
|
+
- [ ] Emergency bypass documentation
|
|
444
|
+
|
|
445
|
+
## Best Practices
|
|
446
|
+
|
|
447
|
+
1. **Keep commits atomic**: One logical change per commit
|
|
448
|
+
2. **Write descriptive messages**: Explain why, not just what
|
|
449
|
+
3. **Reference tickets**: Include issue/ticket IDs
|
|
450
|
+
4. **Rebase before merging**: Keep history clean
|
|
451
|
+
5. **Review your own PR first**: Self-review catches many issues
|
|
452
|
+
6. **Respond to feedback promptly**: Don't leave PRs hanging
|
|
453
|
+
7. **Delete merged branches**: Keep repository tidy
|
|
454
|
+
8. **Use draft PRs**: For work-in-progress changes
|
|
455
|
+
```
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: project-scaffolder
|
|
3
|
+
description: Generates complete starter repositories for various tech stacks (Next.js, Vite, Nest, FastAPI, etc.) with best-practice conventions, folder structure, baseline code, configs, scripts, and setup documentation. Use when users request to "scaffold a project", "create a starter repo", "initialize a new project", or specify a tech stack to begin with.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Project Scaffolder
|
|
7
|
+
|
|
8
|
+
Generate production-ready starter repositories with best-practice conventions for any tech stack.
|
|
9
|
+
|
|
10
|
+
## Core Workflow
|
|
11
|
+
|
|
12
|
+
1. **Determine stack**: Ask user to specify or infer from context (Next.js, Vite, Nest, FastAPI, etc.)
|
|
13
|
+
2. **Select template**: Use references/templates.md to choose the appropriate project structure
|
|
14
|
+
3. **Generate structure**: Create complete folder tree with all necessary files
|
|
15
|
+
4. **Add baseline code**: Include working "hello world" route/page as proof of concept
|
|
16
|
+
5. **Configure tooling**: Add package.json/requirements.txt, tsconfig, linting, formatting configs
|
|
17
|
+
6. **Create scripts**: Include dev, build, test, and deployment scripts
|
|
18
|
+
7. **Document setup**: Generate comprehensive README with setup steps and next actions
|
|
19
|
+
|
|
20
|
+
## Key Deliverables
|
|
21
|
+
|
|
22
|
+
Every scaffolded project must include:
|
|
23
|
+
|
|
24
|
+
- **Folder tree**: Well-organized src/, lib/, config/, tests/ structure
|
|
25
|
+
- **Baseline code**: Working hello world endpoint or page
|
|
26
|
+
- **Package files**: package.json, requirements.txt, Cargo.toml, etc.
|
|
27
|
+
- **Configs**: TypeScript, ESLint, Prettier, environment files (.env.example)
|
|
28
|
+
- **Scripts**: npm scripts or Makefile for common tasks
|
|
29
|
+
- **README**: Setup instructions, tech stack overview, next steps
|
|
30
|
+
- **Git setup**: .gitignore configured for the stack
|
|
31
|
+
|
|
32
|
+
## Stack-Specific Patterns
|
|
33
|
+
|
|
34
|
+
See `references/templates.md` for detailed patterns per stack:
|
|
35
|
+
|
|
36
|
+
- Next.js App Router
|
|
37
|
+
- Vite + React
|
|
38
|
+
- NestJS
|
|
39
|
+
- FastAPI
|
|
40
|
+
- Express + TypeScript
|
|
41
|
+
- Vue + Vite
|
|
42
|
+
- SvelteKit
|
|
43
|
+
|
|
44
|
+
## Best Practices
|
|
45
|
+
|
|
46
|
+
- Use absolute imports (@/ alias) where supported
|
|
47
|
+
- Include environment variable templates
|
|
48
|
+
- Add basic error handling and logging setup
|
|
49
|
+
- Configure path mappings in tsconfig
|
|
50
|
+
- Include Docker files for containerization (optional)
|
|
51
|
+
- Add GitHub Actions or CI workflow templates (optional)
|
|
52
|
+
|
|
53
|
+
## Progressive Enhancement
|
|
54
|
+
|
|
55
|
+
Start with minimal viable structure, then add:
|
|
56
|
+
|
|
57
|
+
- Database setup (Prisma, TypeORM, SQLAlchemy)
|
|
58
|
+
- Auth scaffolding (NextAuth, Passport, JWT)
|
|
59
|
+
- API client setup (Axios, Fetch wrapper)
|
|
60
|
+
- State management (Zustand, Redux, Pinia)
|
|
61
|
+
- Testing setup (Jest, Vitest, Pytest)
|
|
62
|
+
|
|
63
|
+
## Output Structure
|
|
64
|
+
|
|
65
|
+
Present the complete project tree first, then create all files in proper locations. Always provide a summary of what was created and next steps to run the project.
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# Project Templates Reference
|
|
2
|
+
|
|
3
|
+
## Next.js App Router
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
project-name/
|
|
7
|
+
├── src/
|
|
8
|
+
│ ├── app/
|
|
9
|
+
│ │ ├── layout.tsx
|
|
10
|
+
│ │ ├── page.tsx
|
|
11
|
+
│ │ └── api/
|
|
12
|
+
│ │ └── hello/
|
|
13
|
+
│ │ └── route.ts
|
|
14
|
+
│ ├── components/
|
|
15
|
+
│ ├── lib/
|
|
16
|
+
│ └── types/
|
|
17
|
+
├── public/
|
|
18
|
+
├── .env.example
|
|
19
|
+
├── next.config.js
|
|
20
|
+
├── tsconfig.json
|
|
21
|
+
├── package.json
|
|
22
|
+
└── README.md
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Vite + React + TypeScript
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
project-name/
|
|
29
|
+
├── src/
|
|
30
|
+
│ ├── main.tsx
|
|
31
|
+
│ ├── App.tsx
|
|
32
|
+
│ ├── components/
|
|
33
|
+
│ ├── hooks/
|
|
34
|
+
│ ├── lib/
|
|
35
|
+
│ ├── types/
|
|
36
|
+
│ └── assets/
|
|
37
|
+
├── public/
|
|
38
|
+
├── index.html
|
|
39
|
+
├── vite.config.ts
|
|
40
|
+
├── tsconfig.json
|
|
41
|
+
├── package.json
|
|
42
|
+
└── README.md
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## NestJS
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
project-name/
|
|
49
|
+
├── src/
|
|
50
|
+
│ ├── main.ts
|
|
51
|
+
│ ├── app.module.ts
|
|
52
|
+
│ ├── app.controller.ts
|
|
53
|
+
│ ├── app.service.ts
|
|
54
|
+
│ └── modules/
|
|
55
|
+
├── test/
|
|
56
|
+
├── nest-cli.json
|
|
57
|
+
├── tsconfig.json
|
|
58
|
+
├── package.json
|
|
59
|
+
└── README.md
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## FastAPI
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
project-name/
|
|
66
|
+
├── app/
|
|
67
|
+
│ ├── main.py
|
|
68
|
+
│ ├── api/
|
|
69
|
+
│ │ └── v1/
|
|
70
|
+
│ │ └── endpoints/
|
|
71
|
+
│ ├── core/
|
|
72
|
+
│ │ └── config.py
|
|
73
|
+
│ ├── models/
|
|
74
|
+
│ ├── schemas/
|
|
75
|
+
│ └── services/
|
|
76
|
+
├── tests/
|
|
77
|
+
├── requirements.txt
|
|
78
|
+
├── .env.example
|
|
79
|
+
├── pyproject.toml
|
|
80
|
+
└── README.md
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Express + TypeScript
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
project-name/
|
|
87
|
+
├── src/
|
|
88
|
+
│ ├── index.ts
|
|
89
|
+
│ ├── app.ts
|
|
90
|
+
│ ├── routes/
|
|
91
|
+
│ ├── controllers/
|
|
92
|
+
│ ├── middleware/
|
|
93
|
+
│ ├── services/
|
|
94
|
+
│ └── types/
|
|
95
|
+
├── dist/
|
|
96
|
+
├── tsconfig.json
|
|
97
|
+
├── package.json
|
|
98
|
+
└── README.md
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Common Package Scripts
|
|
102
|
+
|
|
103
|
+
### Node.js Projects
|
|
104
|
+
|
|
105
|
+
```json
|
|
106
|
+
{
|
|
107
|
+
"scripts": {
|
|
108
|
+
"dev": "...",
|
|
109
|
+
"build": "...",
|
|
110
|
+
"start": "...",
|
|
111
|
+
"test": "...",
|
|
112
|
+
"lint": "eslint .",
|
|
113
|
+
"format": "prettier --write ."
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Python Projects
|
|
119
|
+
|
|
120
|
+
```toml
|
|
121
|
+
[tool.poetry.scripts]
|
|
122
|
+
dev = "uvicorn app.main:app --reload"
|
|
123
|
+
test = "pytest"
|
|
124
|
+
format = "black . && isort ."
|
|
125
|
+
lint = "flake8 . && mypy ."
|
|
126
|
+
```
|
|
File without changes
|