A rebuild from scratch simulation and games engine framework set up to assimilate and optimize techniques and implementations useful for games, simulations, robotics.
Find a file
tegwick b27aa14df0 CB-WP-0025 T04: specs/RetrospectiveAnalysis.md, and a benchmark that
caught me repeating C1

specs/RetrospectiveAnalysis.md v1.0 plus games/ground/benches/search.rs,
which exists because ADR-0013 D7 refused to let the spec quote either
disputed figure.

THE BENCHMARK'S OWN FIRST FIXTURE WAS DEFECTIVE, and it is the same defect
class the review caught one layer up. Stopping at a fixed step 20 put 2p
and 4p in states where seat 0 had NO legal commands, so it timed an empty
Vec (~120 ns) and silently skipped validate_fold because there was nothing
to validate. It now advances until the seat has a real branch and ASSERTS
it. A clone benchmark was added too: a search must copy state per branch,
and iter_batched excludes setup from timing, so without it the budget
would again rest on an unmeasured span.

Measured at real decision points: legal_commands 4.06-4.76 us, clone
378-639 ns, validate+fold 0.5-3.8 us. Per-child cost is NOT uniform --
some commands resolve cascades -- so budgets use the upper end (~5
us/child).

That settles D3 with real numbers. Joint branching over the last two
rounds is ~5x10^2 / 1.6x10^5 / 5.7x10^5 at 2/3/4 seats, so K=2 costs
negligible / 0.8 s / 2.9 s and holds at two to four seats. It does NOT
hold at five or six, where the tool must reduce K and say that it did
rather than silently searching less.

§4.1 is a normative prohibition, not a preference: a single policy's win
rate MAY NOT be reported as a difficulty. The spec carries the measured
reason -- greedy 100% against first-legal 0% on identical deals -- because
this project already made that error and nearly exported it to a repo that
is blocked waiting on the number.

§2.3 makes the empty-result wording normative: "no winning line found in
the last K rounds", never "unwinnable". A bounded search cannot establish
unwinnability and that sentence is what a player who just lost reads.

Also corrected: the T01 completion record still asserted all three
withdrawn claims as fact. It now carries claimed / withdrawn / survives
explicitly rather than being rewritten -- a retraction that does not
propagate to every place the claim lives is how the earlier ones survived.

make all: exit 0. loop-lint clean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-05 18:59:46 +02:00
.forgejo/workflows T01: audit every InnerLoop rule, and make the checkable ones executable 2026-07-31 09:16:00 +02:00
benchmarks CB-WP-0006 T07: implement K18, amend K14 2026-08-01 12:47:16 +02:00
crates CB-WP-0024: the table you can watch 2026-08-05 17:32:48 +02:00
decisions CB-WP-0025 T03: ADR-0013 -- one world after the game, and difficulty that 2026-08-05 18:47:07 +02:00
editions/ground-darvo-r0 CB-WP-0021 T01/T02/T05: the engine plays its own data — AM-7 blocks 2026-08-04 00:47:56 +02:00
evidence CB-WP-0024: the table you can watch 2026-08-05 17:32:48 +02:00
games/ground CB-WP-0025 T04: specs/RetrospectiveAnalysis.md, and a benchmark that 2026-08-05 18:59:46 +02:00
history CB-WP-0025 T02: the review withdrew the finding, and the fifth wrong 2026-08-05 18:06:03 +02:00
research CB-WP-0025 T02: the review withdrew the finding, and the fifth wrong 2026-08-05 18:06:03 +02:00
scenarios CB-WP-0026: collect the rulings -- ten answers that arrived and were never applied 2026-08-05 16:13:37 +02:00
specs CB-WP-0025 T04: specs/RetrospectiveAnalysis.md, and a benchmark that 2026-08-05 18:59:46 +02:00
tools CB-WP-0024: the table you can watch 2026-08-05 17:32:48 +02:00
workplans CB-WP-0025 T04: specs/RetrospectiveAnalysis.md, and a benchmark that 2026-08-05 18:59:46 +02:00
.custodian-brief.md chore(consistency): sync task status from DB [auto] 2026-08-05 18:06:30 +02:00
.gitignore chore: stop tracking tools/__pycache__ 2026-08-01 12:49:17 +02:00
Cargo.lock CB-WP-0016: the drop target that was never there 2026-08-02 20:48:18 +02:00
Cargo.toml CB-WP-0012-T04: cb-render-html — stage 1 draws, and the browser is the toolkit 2026-08-02 04:27:25 +02:00
clippy.toml T07: Cargo workspace scaffold — cb-kernel/cb-events/cb-game-runtime/games-ground/cb-sim, HashMap deny-lint, scenario format + runner stub, Criterion skeleton, Makefile, CI 2026-07-31 01:57:13 +02:00
facts.toml CB-WP-0023: SOLVE is legal only where it can do something 2026-08-04 00:18:40 +02:00
gates.toml CB-WP-0021 T01/T02/T05: the engine plays its own data — AM-7 blocks 2026-08-04 00:47:56 +02:00
INTENT.md CB-WP-0022 T03: ADR-0012 -- the register already existed, and the rule was 2026-08-05 15:05:51 +02:00
LICENSE Adopt TRSL V1C1 license; link ground-game and target-revenue sister repos 2026-07-31 00:25:30 +02:00
Makefile CB-WP-0026: collect the rulings -- ten answers that arrived and were never applied 2026-08-05 16:13:37 +02:00
README.md CB-WP-0004 T01: fix environment friction at the root 2026-07-31 10:13:52 +02:00
rust-toolchain.toml T07: Cargo workspace scaffold — cb-kernel/cb-events/cb-game-runtime/games-ground/cb-sim, HashMap deny-lint, scenario format + runner stub, Criterion skeleton, Makefile, CI 2026-07-31 01:57:13 +02:00
WORK-RECORDS.md Sync hub state for CB-WP-0025 T01/T02 2026-08-05 18:06:35 +02:00

clay-borg

A rebuild from scratch simulation and games engine framework set up to assimilate and optimize techniques and implementations useful for games, simulations, robotics.

Licensed under the Target Revenue Source License (TRSL V1C1) — see LICENSE; canonical text lives in the org's target-revenue repository.

Running the gates

make all                      # every gate, from a clean shell
make -C /path/to/clay-borg all   # …or from any other directory

There is no environment setup step. No cd, no export PATH, no activation script. make locates the repo from its own path and cargo from the standard rustup locations; the Python tools do the same via tools/repo.py. The only prerequisites are a rustup toolchain and Python 3.11+.

This is deliberate and enforced: make env-test runs every tool from / with a PATH containing no cargo, and make all includes it. CB-RES-0003 measured 84 agent turns and $15.33 spent prefixing commands with cd and export PATH before that friction was fixed at the root (CB-WP-0004 T01).

Other useful targets: make cost (spend per task), make cost-budget (spend since the last commit), make cost-mix (mechanical vs judgment turns), make loop-lint (executable InnerLoop rules), make self-tests (every tool's positive control).

GROUND

The first product vertical is a virtual tabletop implementation of GROUND — A Game of Bonds and Rivalry: DARVO Edition. The boardgame itself (rules, editions, content) is at home in the sister repository ground-game — that repo is authoritative for what GROUND is; clay-borg implements the engine that runs it.