diff --git a/AGENTS.md b/AGENTS.md index 0d60601..c1aa11c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -10,6 +10,7 @@ For comprehensive functional requirements and artifact properties, see: - `docs/FUNCTIONAL-REQUIREMENTS.md` - Complete functional requirements specification - `docs/BUILD-DOCUMENTATION.md` - Build system documentation - `docs/SECURITY-BASELINES.md` - Security hardening guide +- `COMMIT_CONVENTIONS.md` - Git commit message format and conventions ### Project Overview diff --git a/COMMIT_CONVENTIONS.md b/COMMIT_CONVENTIONS.md new file mode 100644 index 0000000..6310398 --- /dev/null +++ b/COMMIT_CONVENTIONS.md @@ -0,0 +1,134 @@ +# Commit Conventions + +## Format + +All commits must follow conventional commit format: + +``` +: + +[Optional detailed description with bullet points for larger changes] + +[Optional sections like "Files Updated", "Files Added", etc.] + +💘 Generated with Crush + +Assisted-by: via Crush +``` + +## 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: via Crush +``` + +Examples: +- `Assisted-by: GLM-4.7 via Crush ` +- `Assisted-by: Gemini 2.5 Flash via Crush ` + +## 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 +``` + +### 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 +``` + +## 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