1. **Added COMMIT_CONVENTIONS.md**: - Documents conventional commit format (type: description) - Defines commit types: feat, fix, docs, style, refactor, perf, test, chore, ci - Specifies commit message structure with detailed description - Includes footer attribution requirements - Provides examples for simple and complex commits - Documents branching conventions - Emphasizes frequent commit and push workflow 2. **Updated AGENTS.md**: - Added COMMIT_CONVENTIONS.md to Related Documentation section - Makes conventions easily discoverable for agents This ensures consistent commit format across all work and enforces the push-as-you-go workflow. Files Added: - COMMIT_CONVENTIONS.md Files Updated: - AGENTS.md (documentation reference) 💘 Generated with Crush Assisted-by: GLM-4.7 via Crush <crush@charm.land>
135 lines
3.2 KiB
Markdown
135 lines
3.2 KiB
Markdown
# Commit Conventions
|
|
|
|
## Format
|
|
|
|
All commits must follow conventional commit format:
|
|
|
|
```
|
|
<type>: <concise description>
|
|
|
|
[Optional detailed description with bullet points for larger changes]
|
|
|
|
[Optional sections like "Files Updated", "Files Added", etc.]
|
|
|
|
💘 Generated with Crush
|
|
|
|
Assisted-by: <model name> via Crush <crush@charm.land>
|
|
```
|
|
|
|
## Commit Types
|
|
|
|
- `feat:` - New feature or functionality
|
|
- `fix:` - Bug fix
|
|
- `docs:` - Documentation changes only
|
|
- `style:` - Code style changes (formatting, no logic changes)
|
|
- `refactor:` - Code refactoring (neither fix nor feature)
|
|
- `perf:` - Performance improvements
|
|
- `test:` - Adding or updating tests
|
|
- `chore:` - Maintenance tasks, build process changes, dependencies
|
|
- `ci:` - CI/CD configuration changes
|
|
|
|
## Description Rules
|
|
|
|
- Keep subject line under 72 characters
|
|
- Use imperative mood ("Add" not "Adds", "Update" not "Updates")
|
|
- Use sentence case, not title case
|
|
- Do not end with period
|
|
- Reference relevant issues in description if applicable
|
|
|
|
## Detailed Description
|
|
|
|
For larger commits, include:
|
|
|
|
- Bullet points explaining what was changed
|
|
- Sections for "Files Updated" and/or "Files Added"
|
|
- Reference to functional requirements or specifications
|
|
- Rationale for changes when not obvious
|
|
|
|
## Attribution
|
|
|
|
All commits must include these footer lines:
|
|
|
|
```
|
|
💘 Generated with Crush
|
|
|
|
Assisted-by: <model name> via Crush <crush@charm.land>
|
|
```
|
|
|
|
Examples:
|
|
- `Assisted-by: GLM-4.7 via Crush <crush@charm.land>`
|
|
- `Assisted-by: Gemini 2.5 Flash via Crush <crush@charm.land>`
|
|
|
|
## Examples
|
|
|
|
### Simple Commit
|
|
|
|
```
|
|
fix: Correct ISO mount permissions
|
|
|
|
Fixed mount permissions issue when building custom ISO.
|
|
|
|
💘 Generated with Crush
|
|
|
|
Assisted-by: GLM-4.7 via Crush <crush@charm.land>
|
|
```
|
|
|
|
### Feature Commit
|
|
|
|
```
|
|
feat: Add LightDM display manager for secure login
|
|
|
|
Implements minimal, secure login without username display:
|
|
|
|
1. **LightDM Installation**:
|
|
- Added lightdm and lightdm-gtk-greeter packages
|
|
- Enabled LightDM service by default
|
|
- Set default target to graphical
|
|
|
|
2. **Minimal and Secure Greeter**:
|
|
- Configured /etc/lightdm/lightdm.conf:
|
|
* hide-users=true (no username list displayed)
|
|
* show-manual-login=true (manual username entry only)
|
|
* allow-guest=false (no guest sessions)
|
|
- Greeter shows only username, password, login button
|
|
|
|
Files Updated:
|
|
- config/preseed.cfg (LightDM packages, enabled service)
|
|
- config/security-config.sh (LightDM configuration)
|
|
|
|
💘 Generated with Crush
|
|
|
|
Assisted-by: Gemini 2.5 Flash via Crush <crush@charm.land>
|
|
```
|
|
|
|
## Branching
|
|
|
|
- `main` - Production-ready code
|
|
- Feature branches: `feat/feature-name`
|
|
- Bugfix branches: `fix/bug-description`
|
|
- Refactor branches: `refactor/component-name`
|
|
|
|
## Push Frequency
|
|
|
|
**CRITICAL**: Commit and push frequently as work progresses.
|
|
|
|
- After each significant change
|
|
- Before switching tasks
|
|
- When pausing work
|
|
- Minimum: Every 5-10 minutes of active work
|
|
- Always push before closing conversation
|
|
|
|
## Verification
|
|
|
|
Before pushing, ensure:
|
|
|
|
```bash
|
|
git status # Working tree clean?
|
|
git log --oneline -3 # Commit message format correct?
|
|
```
|
|
|
|
## References
|
|
|
|
- [Conventional Commits](https://www.conventionalcommits.org/)
|
|
- [AGENTS.md](./AGENTS.md) - Project documentation
|
|
- [README.md](./README.md) - Project overview
|