Thank you for your interest in contributing! This document explains our development process.
- Be respectful and inclusive
- Focus on constructive feedback
- Assume good intent
Configure git to work correctly with this repository's line ending settings:
# Let .gitattributes handle all line ending conversions
git config --local core.autocrlf false
# Verify configuration
git config core.autocrlf # Should output: falseWhy this matters:
- The repository uses
.gitattributesto enforce LF line endings for all text files - Setting
core.autocrlf = falseprevents git from converting line endings automatically - This eliminates CRLF warnings and ensures consistent line endings across platforms
After configuring git, verify your setup:
# Build should succeed with zero warnings
dotnet build --warnaserror
# All tests should pass
dotnet test
# No line ending warnings when committing
git add <file> && git statusEvery contribution requires a GitHub issue.
- Check for existing issues before starting
- Create an issue if none exists
- Reference the issue in all commits and PRs
main (protected)
└── feature/42-description (your work)
└── PR → main
Never commit directly to main.
feature/<issue-number>-<short-description>
fix/<issue-number>-<short-description>
docs/<issue-number>-<short-description>
- Ensure all tests pass
- Build with zero warnings
- Update documentation if needed
- Rebase on latest
main
- Clear description of changes
- Reference to GitHub issue (
Closes #42) - Appropriate labels
- Tests for new functionality
PRs are reviewed using a multi-persona approach:
| Persona | Reviews |
|---|---|
| Fantasy Author | Narrative content, lore consistency |
| Casual Game Expert | UX, mobile patterns, accessibility |
| .NET Specialist | Code quality, architecture, performance |
| Tech Lead | Final approval, issue follow-up |
| Role | Actions |
|---|---|
| Contributor | Write code, open PRs from feature branches |
| Maintainer | Review PRs, enable auto-merge, manage issues |
| Owner | Architecture decisions, repository configuration |
For AI Agents: Configure your GitHub accounts in
CLAUDE.local.md.
- Use modern C# 14 features appropriately
- File-scoped namespaces
- Primary constructors where suitable
- Collection expressions
- Pattern matching
- Zero compiler warnings
- 80% test coverage minimum
- XML documentation on public APIs
- No TODO comments in merged code
<type>(<scope>): <description>
<body>
Refs #<issue-number>
Types: feat, fix, docs, refactor, test, chore, style, perf, ci, build, revert
Enforcement: Commit messages are validated by commitlint on commit.
- Write failing test first
- Implement to pass
- Refactor
| Category | Purpose | Speed |
|---|---|---|
| Unit | Isolated logic | Fast |
| Integration | System interactions | Medium |
| Acceptance | User scenarios | Slow |
If you're an AI agent contributing:
- Complete onboarding in CLAUDE.md
- Follow rules in AGENTS.md
- Use appropriate persona from docs/roles/
- Invoke skills as documented
/brainstorming- Before creative work/writing-plans- For multi-step tasks/test-driven-development- For implementations/verification-before-completion- Before claiming done
- Workflow questions: See AGENTS.md
- Technical questions: Open a discussion
- Bug reports: Open an issue with reproduction steps
Contributors are recognized in:
- PR merge messages
- Release notes
- Project documentation
Thank you for contributing!