
git
by petbrains
Document-Driven Development framework for Claude Code — structured specs, TDD cycles, feedback loops, and skills system
SKILL.md
name: git description: Git workflow with enforced branch naming, commit formatting, secret protection, and safety guards. Use when: creating branches, committing changes, pushing code, merging, resolving conflicts, creating PRs. Triggers: git operations, create branch, commit, push, merge, branch naming, commit message format. allowed-tools: Bash(git:*)
Git Workflow
Enforces repository conventions for branches, commits, and pushes.
Conventions: See @.claude/skills/git/references/conventions.md
Process
VALIDATE → EXECUTE → VERIFY
Decision Rules
Branch Type
- New functionality →
feature/<scope>/<desc> - Bug fix →
fix/<scope>/<desc> - Refactor →
refactor/<scope>/<desc> - Docs →
docs/<scope>/<desc> - Maintenance →
chore/<scope>/<desc> - Urgent fix →
hotfix/<desc> - Release →
release/<version>
Commit Type
- Feature →
feature(<scope>): ... - Fix →
fix(<scope>): ... - Refactor →
refactor(<scope>): ... - Test →
test(<scope>): ... - Docs →
docs(<scope>): ...
Source Branch
- feature/fix/refactor/docs/chore → from
main - hotfix → from
release/*ormain - release → from
main
Secret Protection
Protected Patterns
Files (block commit):
*.env
*.env.*
*.pem
*.key
*.p12
*.pfx
*.crt
credentials.*
secrets.*
*_secret.*
*.keystore
Directories (block commit):
.secrets/
.credentials/
Allowed exceptions:
*.env.example
*.example
Pre-Commit Check
Before any commit, scan staged files:
git diff --cached --name-only
If protected pattern detected:
⚠ Secret Protection
Detected secret file staged for commit:
[filename]
Action: Adding to .gitignore and unstaging file.
Then:
- Add pattern to .gitignore
- Unstage file:
git reset HEAD [file] - Continue commit without secret
.gitignore Management
If .gitignore doesn't exist:
ℹ Creating .gitignore
Project has no .gitignore. Creating with security patterns.
Create with standard security block:
# Secrets - NEVER COMMIT
.env
.env.*
!.env.example
*.pem
*.key
*.p12
*.secret
.secrets/
.credentials/
If .gitignore exists but missing pattern:
Append missing pattern to existing .gitignore.
Safety Guards
Block Operations
| Trigger | Action |
|---|---|
Push to main/master/release/*/prod/* | Block → suggest PR |
| Force-push on shared branch | Block |
| Amend after push | Block → suggest new commit |
| Secret file in staged changes | Block → update .gitignore |
| Binary >100MB | Block |
Warn Only
- Binary >10MB
Validation
Before commit/push:
- Branch name matches convention?
- Commit message format correct?
- No secrets in staged files?
- Not pushing to protected branch?
Interactive Mode
When ambiguous, ask:
"Possible actions:
1. Create branch
2. Commit changes
3. Push commits
Which matches your intent?"
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です

