Contributing
We welcome contributions to Dice Chess TV. Because this project is public, open source, and participates in hackathons and official competitions, all contributions must adhere to clear licensing and quality standards.
Contributor License Agreement (CLA)
Section titled “Contributor License Agreement (CLA)”All contributors must agree to the project’s Contributor License Agreement before contributions can be merged:
- You confirm that you have the right to submit your contribution under the GNU Affero General Public License v3.0 only (AGPL-3.0-only).
- You grant Fortemate the permissions necessary to distribute, publish, and relicense the project.
- Third-party assets or libraries must have compatible licenses (e.g. CC0, MIT, Apache 2.0) and be explicitly documented in
THIRD_PARTY_NOTICES.md.
Branch and Pull Request Conventions
Section titled “Branch and Pull Request Conventions”- Never commit directly to
main: All work happens on dedicated topic branches and entersmainvia pull requests reviewed by maintainers. - Branch naming:
feature/<issue-number>-<short-description>: New features (e.g.feature/99-dice-roll-tumble).fix/<issue-number>-<short-description>: Bug fixes and regressions.docs/<issue-number>-<short-description>: Documentation improvements.probe/<issue-number>-<short-description>: Throwaway experimental probes (not intended for merge).
- Commit Messages & PR Descriptions:
- Write clear, concise commit messages in English.
- Reference corresponding issue numbers (e.g.
Fixes #99orAddresses #92). - Explain what was changed, the rationale behind design choices, and how the change was tested.
Repository Standards
Section titled “Repository Standards”English-Only Enforcement
Section titled “English-Only Enforcement”The repository strictly enforces that all text files are written in English. An automated test (test/english.test.ts) scans every tracked and untracked file for Cyrillic characters:
# Run the check locallynpm test -- test/english.test.tsAny Cyrillic characters in code, comments, documentation, or commit messages will fail continuous integration.
Privacy & Infrastructure Guardrails
Section titled “Privacy & Infrastructure Guardrails”Never commit:
- API keys, tokens, or credentials.
- References to internal company systems, private server endpoints, or team chat logs.
- Unreleased proprietary assets or unverified audio files.
Verification Checklist Before Opening a PR
Section titled “Verification Checklist Before Opening a PR”Ensure all local checks pass cleanly before submitting your pull request:
# 1. Typecheck pure core and native applicationnpm run checknpm run check --prefix native
# 2. Run all 193 automated testsnpm testnpm test --prefix native
# 3. Verify code formattingnpm run format:check
# 4. Verify site documentation buildnpm run build --prefix site