Deterministic guild-management simulation prototype with a Command → step(state, rng) → Events boundary.
- Testing:
core-test/TESTING.md - Coverage: https://asketmc.github.io/guilds-of-bash/kover/
- CI:
.github/workflows/ - Docs:
docs/
- Single authoritative state; changes only via commands.
- Pure core (no IO, clocks, platform randomness, side effects).
- Explicit RNG input; draw count is tracked.
- Events are the only observation channel for adapters.
- Invariants are checked after each step; violations are emitted as events.
- Determinism is test-enforced via canonical serialization + hashing (golden replays).
Modules
core/— state, commands/events, reducer, invariants, serialization, RNGcore-test/— deterministic unit/integration, golden replays, invariant checksadapter-console/— console adapter (IO/parsing/rendering)
./gradlew :adapter-console:run
./gradlew test
./gradlew koverHtmlReport
# -> build/reports/kover/html/index.htmlImplemented features
- Console loop: create/post contracts, day ticks, resolve outcomes, close returns.
- Autonomous hero pickup/refusal and contract execution.
- Economy: trophies, fee escrow, sales; rank progression; stability/threat scaling; weekly tax cycle.
- Fraud pipeline (warn/ban + rumor/reputation scheduling) as deterministic segment.
Prebuilt jar
Latest release artifacts: https://github.com/asketmc/guilds-of-bash/releases/latest
java -jar adapter-console-all.jarQuality automation
Workflows: .github/workflows/
- unit tests:
ci2_unit_tests.yml - mutation baseline:
ci3_pitest.yml - fast flaky detection:
ci4_fast_flaky.yml - full/nightly + quarantine:
ci8_nightly_full_quarantine.yml - static analysis:
ci6_detekt.yml,config/detekt/ - build artifact / release:
ci7_build_artifact.yml,ci9_release.yml - merged coverage + publication:
ci5_full_tests_coverage_badge.yml,ci1_docs.yml
GPL-3.0-only