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 1bbbfc846f
Some checks failed
ci / check (push) Failing after 3s
ADR-0005 + CB-WP-0005: count assertions, not names
Decides the response to CB-RES-0004 and its adversarial review.

Decision 1 — a third coverage metric, M-D1-MUT: one mutation per
acceptance row, and the suite must go red. adapted:mutation-testing, with
the denominator deliberately changed from source lines to acceptance
rows, because the failure mode here is not an untested branch but a
headline number backed by nothing. A row for which no mutation can be
written is recorded unmutatable WITH THE REASON and counts against the
metric — a row nobody can invert asserts nothing.

Decision 2 — reimplement the log framing rather than assimilate it. This
is the deliberate exception to "own the semantics, assimilate the
implementation": that rule exists so we do not reimplement HARD things.
SHA-256 and ChaCha cost 12 crates and are kept. A length prefix is not in
that category. Budget attribution corrected per the review: the durable
log is shipped runtime (AM-4a, 1.5% headroom), the bundle writer is
dev-only behind the scenarios feature (AM-4b, 9.4%). The survey wanted it
both ways without saying so.

Decision 3 — a LogStore port with a real shared conformance suite, and
the same shape retro-fitted to KernelRng. M-D4-SWAP is a bool over "the
same conformance suite" and no suite exists, so AM-11 was never earned.

Decision 4 — correct three committed verdicts in evidence/CB-EV-0001:
AM-7 split (timing met, hash-identical withdrawn), AM-10 withdrawn as
written (no cb-*-api crate; a K6 determinism lint was reported under a D4
leak row), AM-11 downgraded to unmet. AM-1b is added to the scoreboard it
was missing from while the flattering half of the same command's output
was carried.

Decision 5 — widen the name check over every numbered spec and every
crate, reporting outside the exit code until 2026-08-31, with the date in
the tool rather than in prose. Open-ended "gate it later" is how AM-4's
targets went unratified for four workplans.

Decision 6 — replay is proven by re-execution in a fresh process, with
the reviewer's four controls adopted verbatim, including the two I had
not thought of: truncate-by-one-byte and mutated-seed.

Stated worse, not only better: own source grows and AM-4c moves against
us; CI gets slower by one rebuild per acceptance row. Both accepted — the
alternative is a smaller, faster codebase whose acceptance numbers mean
nothing.

CB-WP-0005 executes it in 8 tasks across four phases. The M-D1-MUT
prediction is 9 of 12 and is beatable in both directions: 12 of 12
refutes CB-RES-0004 outright, 3 of 12 means the pass is under-scoped and
must stop and re-plan rather than proceed to Phase C.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-31 14:25:26 +02:00
.forgejo/workflows T01: audit every InnerLoop rule, and make the checkable ones executable 2026-07-31 09:16:00 +02:00
benchmarks/baselines T11: dated rates and staleness become data, ahead of the 2026-08-31 flip 2026-07-31 09:23:29 +02:00
crates T08: give provisional defaults an owner, a date, and a visible age 2026-07-31 09:29:40 +02:00
decisions ADR-0005 + CB-WP-0005: count assertions, not names 2026-07-31 14:25:26 +02:00
evidence CB-WP-0004 T05: control loop — 6 points recovered, not 25-30 2026-07-31 10:27:09 +02:00
games/ground CI: enforce every gate; close the silent-skip holes 2026-07-31 04:02:33 +02:00
history CB-RES-0004: the instruments count names, not assertions 2026-07-31 14:19:30 +02:00
research CB-RES-0004: the instruments count names, not assertions 2026-07-31 14:19:30 +02:00
scenarios/ground T08: give provisional defaults an owner, a date, and a visible age 2026-07-31 09:29:40 +02:00
specs CB-WP-0004 T04: fact registry and make facts-check — DFD gets a gate 2026-07-31 10:24:39 +02:00
tools CB-WP-0004 T05: control loop — 6 points recovered, not 25-30 2026-07-31 10:27:09 +02:00
workplans ADR-0005 + CB-WP-0005: count assertions, not names 2026-07-31 14:25:26 +02:00
.custodian-brief.md chore(consistency): sync task status from DB [auto] 2026-07-31 03:11:56 +02:00
.gitignore 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
Cargo.lock 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
Cargo.toml AM-4: gate scenario YAML, retarget on audited source, re-measure 2026-07-31 03:35:41 +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-0004 T04: fact registry and make facts-check — DFD gets a gate 2026-07-31 10:24:39 +02:00
INTENT.md Adopt TRSL V1C1 license; link ground-game and target-revenue sister repos 2026-07-31 00:25:30 +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-0004 T04: fact registry and make facts-check — DFD gets a gate 2026-07-31 10:24:39 +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 chore: regenerate WORK-RECORDS.md (fix-consistency C-33) 2026-07-31 10:29:17 +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.