--- 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 ``` 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 ``` ## 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 ` - Howard: `Howard Enos ` - 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.