git-hygiene

This skill should be used for commit strategy, branch naming, conventional commits, PR workflow, and merge decisions in devloop

6 stars

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

$curl -o ~/.claude/skills/git-hygiene/SKILL.md --create-dirs "https://raw.githubusercontent.com/Zate/cc-plugins/main/plugins/devloop/skills/git-hygiene/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/git-hygiene/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How git-hygiene Compares

Feature / Agentgit-hygieneStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/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

6
from Zate/cc-plugins

Brief description of what this skill does and the domain expertise it provides.

vulnerability-patterns

6
from Zate/cc-plugins

Index of vulnerability detection pattern skills. Routes to core patterns (universal) and language-specific patterns for security scanning.

vuln-patterns-languages

6
from Zate/cc-plugins

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

6
from Zate/cc-plugins

Universal vulnerability detection patterns applicable across all programming languages. Includes hardcoded secrets, SQL/command injection, path traversal, and configuration file patterns.

scan

6
from Zate/cc-plugins

Run a security assessment using deterministic static analysis tools with LLM-powered triage

results

6
from Zate/cc-plugins

View the most recent security scan results without re-running the scan

remediation-library

6
from Zate/cc-plugins

Index of security remediation skills. Routes to specialized skills for injection, cryptography, authentication, and configuration vulnerabilities.

remediation-injection

6
from Zate/cc-plugins

Security fix patterns for injection vulnerabilities (SQL, Command, XSS). Provides language-specific code examples showing vulnerable and secure implementations.

remediation-crypto

6
from Zate/cc-plugins

Security fix patterns for cryptographic vulnerabilities (weak algorithms, insecure randomness, TLS issues). Provides language-specific secure implementations.

remediation-config

6
from Zate/cc-plugins

Security fix patterns for configuration and deployment vulnerabilities (path traversal, debug mode, security headers). Provides language-specific secure implementations.

remediation-auth

6
from Zate/cc-plugins

Security fix patterns for authentication and authorization vulnerabilities (credentials, JWT, deserialization, access control). Provides language-specific secure implementations.

fix

6
from Zate/cc-plugins

Fix or guide remediation for a specific security finding from the latest scan report