The Crimsonland project follows strict commit guidelines to maintain a clear, reviewable, and useful git history.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/banteg/crimson/llms.txt
Use this file to discover all available pages before exploring further.
Commit Message Format
All commits must follow the Conventional Commits format:Types
- feat
- fix
- refactor
- perf
- test
- docs
- chore
- style
New feature - A wholly new capability added to the codebase.
Description Guidelines
Use Imperative Mood
Write as if giving a command: “add”, “fix”, “refactor” (not “added”, “fixes”, “refactoring”).
Commit Body (Optional)
For complex changes, add a body explaining why (not what):When to Include a Body
Parity Fixes
Parity Fixes
Always include evidence and session references for parity-related changes.
Non-Obvious Changes
Non-Obvious Changes
Explain surprising or counter-intuitive decisions.
Breaking Changes
Breaking Changes
Document what breaks and migration path (also use
BREAKING CHANGE: footer).Complex Refactors
Complex Refactors
Explain the refactoring strategy and why it’s safe.
Commit Size
Good Commit Sizes
✅ Single logical change:Bad Commit Sizes
❌ Too large (multiple unrelated changes):Commit Atomicity
Each commit should:Pass All Checks
Every commit should pass
just check (tests, linting, type checking).Be Self-Contained
Changes should be complete and not depend on future commits.
Be Revertable
Should be safe to revert without breaking the codebase.
Have Clear Intent
Purpose should be obvious from message and changes.
Pre-Commit Verification
Before committing, verify your changes:ruff check(linting)ty check(type checking)lint-imports(import contracts)sg scan(structural rules)
Pull Request Guidelines
When usinggh CLI for pull requests:
PR Title Format
PR titles must follow the same conventional commit format:Creating PRs
Use body files to avoid escaping issues:Updating PRs
Merging PRs
Use squash merge to maintain clean history:Squash merging combines all commits into one, so the PR title becomes the commit message.
Git Hygiene
Keep Changes Small
Prefer multiple small PRs over one large PR: ✅ Good:- PR #123:
refactor: extract weapon damage helpers - PR #124:
feat: add plasma rifle weapon - PR #125:
test: add weapon damage parity tests
- PR #123:
feat: complete weapon system overhaul(300 files changed)
Avoid Merge Commits
Use rebase or squash to keep history linear:Interactive Rebase for Cleanup
Before pushing, clean up commit history:Commit Message Examples
Good Examples
Simple Fix
Simple Fix
Feature with Context
Feature with Context
Parity Fix with Evidence
Parity Fix with Evidence
Breaking Change
Breaking Change
Bad Examples
Too Vague
Too Vague
❌
fix: bug fixes✅ fix: correct zombie spawn rate calculationWhat, Not Why
What, Not Why
❌
fix: change constant to 0.6000000238418579✅ fix: preserve native f32 constant in turn rate calculationMultiple Unrelated Changes
Multiple Unrelated Changes
Wrong Type
Wrong Type
❌
feat: fix zombie spawn bug (should be fix:)✅ fix: correct zombie spawn rate calculationCommit Workflow
Recommended workflow:Resources
Conventional Commits
conventionalcommits.org - Full specification
gh CLI
cli.github.com - GitHub CLI documentation
Next Steps
Development Workflow
Learn the full contribution workflow
Verification Process
Ensure commits pass all checks
Code Style
Follow project coding standards
Parity Workflow
Understand parity-first development