git-hygiene
This skill should be used for commit strategy, branch naming, conventional commits, PR workflow, and merge decisions in devloop
Best use case
git-hygiene is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
This skill should be used for commit strategy, branch naming, conventional commits, PR workflow, and merge decisions in devloop
Teams using git-hygiene should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/git-hygiene/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How git-hygiene Compares
| Feature / Agent | git-hygiene | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
This skill should be used for commit strategy, branch naming, conventional commits, PR workflow, and merge decisions in devloop
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Git Hygiene
Branching, commit, and merge practices wired to the devloop workflow.
## Devloop Integration
Configure git behavior in `.devloop/local.md`:
```yaml
---
git:
auto-branch: true # Create branch when plan starts
branch-pattern: "feat/{slug}"
pr-on-complete: ask # ask | always | never
commits:
style: conventional # conventional | simple
---
```
**Related commands:**
- `/devloop:ship` — commit with plan context, create PR
- `/devloop:pr-feedback` — integrate PR review comments into plan.md
**Plan tasks map to commits.** `/devloop:ship` offers:
- **Single commit** — squash all completed tasks into one.
- **Atomic commits** — one commit per task, using the task description as the message subject.
Plan task example:
```markdown
- [x] Task 1.1: Create config skill
- [x] Task 1.2: Add parsing script
- [x] Task 1.3: Update session hook
```
Atomic equivalent:
```
feat(devloop): create local-config skill
feat(devloop): add config parsing script
feat(devloop): update session-start hook
```
## Commit Principles
1. **One logical change per commit** — a reviewer should understand the diff in isolation.
2. **Commit compiles and tests pass** — never check in broken WIP on a shared branch.
3. **Message explains "why"**, not "what" — the diff already shows what.
### Size guidelines
| Size | Lines | When |
|------|-------|------|
| XS | <50 | Single fix, config change |
| S | 50–200 | One feature, one refactor |
| M | 200–500 | Feature with tests |
| L | >500 | Consider splitting |
Devloop tasks typically land in the S–M range.
### Split strategy for large changes
Rather than one mega-commit:
1. Refactor / preparation commit
2. Core implementation commit
3. Tests commit
4. Docs commit
Or, inside devloop: one commit per phase.
### Anti-patterns
- WIP commits with broken code on shared branches
- Mixing refactor + feature + fix in one commit
- "fix everything" catch-all commits
- Unrelated changes bundled
## Conventional Commits
```
<type>(<scope>): <subject>
feat(auth): add OAuth2 login
fix(api): handle null response body
refactor(utils): extract date formatting
```
| Type | Description | Version bump |
|----------|---------------------|--------------|
| feat | New feature | MINOR |
| fix | Bug fix | PATCH |
| refactor | Internal change | PATCH |
| docs | Documentation only | PATCH |
| test | Tests | PATCH |
| chore | Maintenance | PATCH |
`/devloop:ship` auto-generates conventional-format messages from plan tasks.
## Branch Naming
```
<type>/<ticket>-<description>
feat/AUTH-123-add-oauth
fix/BUG-456-null-pointer
feat/add-authentication # devloop default when no ticket
```
## Trunk-Based Development
Favoured default for fast-shipping teams:
1. Short-lived feature branches (hours to days).
2. Frequent merges to `main` via PRs.
3. Strong CI/CD pipeline catches regressions.
4. Feature flags hide incomplete work.
Devloop fit: plan → branch → implement → `/devloop:ship` → PR.
## PR Workflow
1. Create a branch when the plan starts.
2. Commit as you complete tasks (atomic or phase-squashed).
3. `/devloop:ship` when ready to open the PR.
4. Address feedback via `/devloop:pr-feedback` — it pulls the review comments into plan.md as new tasks.
5. Push fixes, re-request review, merge.
## Merge Strategies
| Strategy | When |
|----------------|--------------------------------------------------|
| Merge commit | Preserve full history, multi-contributor branches |
| Squash merge | Clean linear history (recommended for feature PRs) |
| Rebase merge | Linear history but preserve individual commits |
## Safety Rules
Never on shared / remote branches:
- `git push --force` (use `--force-with-lease` if you must, and confirm first)
- Rebase after push
- Reset after push
Never on `main` / `master`:
- Force push, period.
## When to Commit in a Devloop Session
- After completing a plan phase
- Before running `/devloop:fresh` (preserves progress across a `/clear`)
- At any checkpoint before switching context
- Before context-heavy operations (large refactors, multi-file edits)
## Parallel Development (run-swarm)
`run-swarm` can isolate workers in git worktrees to prevent conflicts. That behavior is documented inline in `run-swarm/SKILL.md` — see Step 4b-4c there. Key rule: design `[parallel:X]` task groups so each task owns distinct files; this eliminates merge conflicts entirely.Related Skills
Example Skill
Brief description of what this skill does and the domain expertise it provides.
vulnerability-patterns
Index of vulnerability detection pattern skills. Routes to core patterns (universal) and language-specific patterns for security scanning.
vuln-patterns-languages
Language-specific vulnerability detection patterns for JavaScript/TypeScript, Python, Go, Java, Ruby, and PHP. Provides regex patterns and grep commands for common security vulnerabilities.
vuln-patterns-core
Universal vulnerability detection patterns applicable across all programming languages. Includes hardcoded secrets, SQL/command injection, path traversal, and configuration file patterns.
scan
Run a security assessment using deterministic static analysis tools with LLM-powered triage
results
View the most recent security scan results without re-running the scan
remediation-library
Index of security remediation skills. Routes to specialized skills for injection, cryptography, authentication, and configuration vulnerabilities.
remediation-injection
Security fix patterns for injection vulnerabilities (SQL, Command, XSS). Provides language-specific code examples showing vulnerable and secure implementations.
remediation-crypto
Security fix patterns for cryptographic vulnerabilities (weak algorithms, insecure randomness, TLS issues). Provides language-specific secure implementations.
remediation-config
Security fix patterns for configuration and deployment vulnerabilities (path traversal, debug mode, security headers). Provides language-specific secure implementations.
remediation-auth
Security fix patterns for authentication and authorization vulnerabilities (credentials, JWT, deserialization, access control). Provides language-specific secure implementations.
fix
Fix or guide remediation for a specific security finding from the latest scan report