Git Conventions
Verb Mapping
This skill implements:
- [COMMIT] - Create conventional commits
- [MERGE] - Merge branches following conventions
Phases: IMPLEMENT, DELIVER
MUST-NOT-FORGET
- Use Conventional Commits:
<type>(<scope>): <description>
- Types: feat, fix, docs, refactor, test, chore, style, perf
- Imperative mood, <72 chars, no period
- NEVER commit secrets: .env, *.cer, *.pfx, *.pem, *.key
Commit Message Format
Use Conventional Commits: <type>(<scope>): <description>
Types
- feat: New feature
- fix: Bug fix
- docs: Documentation only
- refactor: Code change that neither fixes a bug nor adds a feature
- test: Adding or updating tests
- chore: Maintenance tasks, dependencies, build changes
- style: Formatting, whitespace (no code logic change)
- perf: Performance improvement
Guidelines
- Use imperative mood ("add" not "added" or "adds")
- Keep description under 72 characters
- No period at the end
- Scope should match module/folder name when applicable
Examples
feat(crawler): add incremental crawl mode
fix(auth): handle expired tokens
docs: update README installation steps
refactor(domains): simplify source validation logic
chore: update dependencies to latest versions
.gitignore Rules
- NEVER commit secrets:
.env files, certificates (*.cer, *.pfx, *.pem, *.key), API keys
- Exclude large binaries: Reinstallable tools (poppler, node_modules, .venv/) - save repo size
- Exclude build artifacts: Generated files (dist/, pycache/, *.pyc)
- Track shared config:
.vscode/, Set-*-Env.bat (environment setup scripts)
- Use negation pattern: Keep specific files with
! prefix when excluding folders
- Add comments: Document non-obvious exclusions in .gitignore
Template
# Secrets (NEVER commit)
*.env
.env.*
*.cer
*.pfx
*.pem
*.key
# Python
.venv/
__pycache__/
*.pyc
.pytest_cache/
.mypy_cache/
# Node.js
node_modules/
dist/
lib/
*.log
# IDE (keep .vscode/)
.vs/
bin/
obj/
# OS
.DS_Store
# Tools (reinstallable)
.tools/poppler/
# Temporary
*.tmp
.tmp_*
*.bak
1---2name: git-conventions-43description: Apply when committing code, writing commit messages, or configuring .gitignore4---56# Git Conventions78## Verb Mapping910This skill implements:11- [COMMIT] - Create conventional commits12- [MERGE] - Merge branches following conventions1314**Phases**: IMPLEMENT, DELIVER1516## MUST-NOT-FORGET1718- Use Conventional Commits: `<type>(<scope>): <description>`19- Types: feat, fix, docs, refactor, test, chore, style, perf20- Imperative mood, <72 chars, no period21- NEVER commit secrets: .env, *.cer, *.pfx, *.pem, *.key2223## Commit Message Format2425Use **Conventional Commits**: `<type>(<scope>): <description>`2627### Types2829- **feat**: New feature30- **fix**: Bug fix31- **docs**: Documentation only32- **refactor**: Code change that neither fixes a bug nor adds a feature33- **test**: Adding or updating tests34- **chore**: Maintenance tasks, dependencies, build changes35- **style**: Formatting, whitespace (no code logic change)36- **perf**: Performance improvement3738### Guidelines39401. Use imperative mood ("add" not "added" or "adds")412. Keep description under 72 characters423. No period at the end434. Scope should match module/folder name when applicable4445### Examples4647```48feat(crawler): add incremental crawl mode49fix(auth): handle expired tokens50docs: update README installation steps51refactor(domains): simplify source validation logic52chore: update dependencies to latest versions53```5455## .gitignore Rules56571. **NEVER commit secrets**: `.env` files, certificates (*.cer, *.pfx, *.pem, *.key), API keys582. **Exclude large binaries**: Reinstallable tools (poppler, node_modules, .venv/) - save repo size593. **Exclude build artifacts**: Generated files (dist/, __pycache__/, *.pyc)604. **Track shared config**: `.vscode/`, `Set-*-Env.bat` (environment setup scripts)615. **Use negation pattern**: Keep specific files with `!` prefix when excluding folders626. **Add comments**: Document non-obvious exclusions in .gitignore6364## Template6566```gitignore67# Secrets (NEVER commit)68*.env69.env.*70*.cer71*.pfx72*.pem73*.key7475# Python76.venv/77__pycache__/78*.pyc79.pytest_cache/80.mypy_cache/8182# Node.js83node_modules/84dist/85lib/86*.log8788# IDE (keep .vscode/)89.vs/90bin/91obj/9293# OS94.DS_Store9596# Tools (reinstallable)97.tools/poppler/9899# Temporary100*.tmp101.tmp_*102*.bak103```