---
name: commit-style
description: Conventional commit types, Co-Authored-By for Claude commits, files never to commit
applies-to: all
---

# Git Commit Style

## Commit types

Use conventional commit prefixes:

| Prefix | When to use |
|--------|-------------|
| `feat` | New feature or capability |
| `fix` | Bug fix |
| `refactor` | Code change with no behavior change |
| `docs` | Documentation only |
| `test` | Tests only |
| `config` | Config/settings change |
| `build` | Build pipeline, Dockerfile, Cargo.toml |
| `chore` | Maintenance (submodule pointer updates, sync commits) |
| `sync` | Auto-sync commit from a machine |

## Co-Authored-By

All commits made by or with Claude include the co-author trailer:

```
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
```

Place it at the end of the commit body, after a blank line:

```
feat(agent): add temperature collection via /sys/class/thermal

Reads millidegrees from thermal_zone*/temp, classifies by type label.
Correct approach for Linux where sysinfo Components returns empty.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
```

## Files never to commit

- `.env` — environment files
- `credentials.json`, `*.pem`, `*.p12`, `*.pfx` — key material
- `venv/`, `.venv/` — Python virtual environments
- `__pycache__/`, `*.pyc` — Python bytecode
- `*.log` — log files
- `node_modules/` — npm dependencies
- `target/` — Rust build output
- Any SOPS plaintext file before encryption (`.sops.yaml` without encryption headers)

## Commit authorship

- `git config user.name` and `git config user.email` are set per-machine based on `.claude/identity.json`
- Mike: `Mike Swanson <mike@azcomputerguru.com>`
- Howard: `Howard Enos <howard@azcomputerguru.com>`
- Commits pushed via the shared Gitea push account `azcomputerguru`, but authorship in `git log` tracks the actual person

## Submodule commits

When the gururmm submodule pointer is advanced:

```
chore: update guru-rmm submodule pointer (v0.6.22 watchdog fix)
```

Always include a brief reason — "session log" or the version + feature that advanced it.
