How to contribute
Pale Jack is a solo-dev project, but the wiki, the dealer corpus, and the arcana catalog are all hand-authored and deliberately collaboration-friendly. PRs are welcome.
github.com/brentvincent/palejack
The basics
Section titled “The basics”- Fork.
- Create a branch off
main. Branch names should be descriptive but short (add-foggy-bottom-arcanum,voice-typo-cleanup, etc.). - Make your change.
- Run
flutter testandflutter analyze. Both must pass. - PR against
main. The CI workflow runs the full suite (1869+ tests). - After merge,
.github/workflows/deploy.ymlauto-deploys to palejack.com (game) orwiki-deploy.ymlto wiki.palejack.com (this wiki).
Tests are the contract
Section titled “Tests are the contract”Every shipped feature has tests. The catalog floor, the corpus floor, the cascade math, the campaign state — all assert their invariants in the suite. If you change one of these, expect the corresponding test to need an update.
| Surface | Test |
|---|---|
| Catalog count | test/sim/arcana_test.dart |
| Per-charm fire rules | test/sim/<feature>_test.dart |
| Voice corpus floor | test/sim/dealer_corpus_floor_test.dart |
| Voice tone | test/sim/dealer_voice_test.dart |
| Book of Hours | test/data/book_of_hours_test.dart |
| Campaign state | test/data/campaign_state_test.dart |
| Decision impact (Monte Carlo) | test/sim/decision_impact_test.dart |
Commit message style
Section titled “Commit message style”Conventional-commits with feat: / fix: / chore: / docs: /
test: prefixes. Subject under 72 chars; body explains the why in
the same register as the rest of the project.
What gets accepted, broadly
Section titled “What gets accepted, broadly”| Welcome | Comment first |
|---|---|
| Bug reports + repros | Major design changes |
| Voice-line additions | New build identities |
| Wiki page edits + new pages | Engine refactors |
| Test additions / coverage | Cross-cutting type changes |
| Typo / grammar fixes | New cascade rules |
| Per-charm tuning data | Changes to the dealer’s tone |
The dealer’s tone is sacred
Section titled “The dealer’s tone is sacred”Per CLAUDE.md:
Don’t make it whimsical. Dungeons & Degenerate Gamblers owns the comedic blackjack-roguelike lane. We ship the opposite tone.
The dealer is never campy, never quippy, never breaks frame. Voice-line PRs that drift toward casino-Vegas, snark, or pop-culture references will get pushed back. The Aziraphale-Crowley register is the brief.
Filing bugs vs. proposing features
Section titled “Filing bugs vs. proposing features”| You have… | Go to |
|---|---|
| A bug repro | Filing bugs |
| A new dealer line | Writing dealer lines |
| A new arcanum idea | Proposing arcana |
| A wiki edit | Click the Edit this page link in the page footer |
Maintainer cadence
Section titled “Maintainer cadence”Replies usually within 2-3 days. The project is solo-dev so PRs may sit longer when the maintainer is heads-down on a feature, but the queue is reviewed every weekend at minimum.