Skip to content

Latest commit

 

History

History
67 lines (46 loc) · 2.36 KB

File metadata and controls

67 lines (46 loc) · 2.36 KB

Contributing

Thanks for improving Balance Board Controller. This repo is structured for portfolio-quality engineering: clear layers, automated gates, and documented architecture.

Quick start

  1. Fork / branch from main

  2. Read docs/DEVELOPMENT.md and docs/testing/README.md

  3. Make focused changes

  4. Run the quality gate:

    .\scripts\ci\lint.ps1
  5. Open a PR (template provided)

main branch protection

main is protected on GitHub:

Rule Effect
CI must pass Merges require the Quality gate check (same as scripts/lint.ps1)
Up to date Branch must include latest main before merge
No force-push History on main cannot be rewritten
No deletion main cannot be deleted accidentally

Work on a feature branch, open a PR, wait for green CI, then merge. Repo admins can still bypass in an emergency (enforce_admins is off).

Quality requirements

All PRs must pass CI (same as scripts/ci/lint.ps1):

Step What it enforces
dotnet format --verify-no-changes Consistent style (.editorconfig)
dotnet build -warnaserror Roslyn analyzers + nullable (Release)
BalanceBoard.Core.Tests / BalanceBoard.Fuzz.Tests Unit + property tests
BalanceBoard.Integration.Tests Session/connect fakes
BalanceBoard.App.Ui.Tests Headless WPF UI tests
tools/Validate vJoy/HID diagnostics CLI
BalanceBoard.Automation Start/stop/single-instance lifecycle

SDK version is pinned in global.json.

For AI coding agents

  1. INSTRUCTIONS.md — every-pass checklist
  2. AGENTS.md — architecture and edit map
  3. llms.txt — machine-readable index

Scope guidelines

  • UI in BalanceBoard.App, logic in BalanceBoard.Core
  • One concern per PR when possible
  • Update docs/ROADMAP.md when completing planned items
  • Add docs/updates/ entry for meaningful commits (index)
  • Never commit logs, secrets, or personal data

Security

See SECURITY.md for vulnerability reporting.

Questions

GitHub Issues