No description
  • Python 88.4%
  • C# 8.7%
  • Shell 2.9%
Find a file
0xrsydn 8fae007e50 feat(dataset): migrate game history and captures into a trainable corpus
Turn the data we already have into an open, educational dataset, so the trace we
are about to start collecting has somewhere to go.

`migrate.py` produces:
  * runs.jsonl          37 runs with outcome, killer, seed and final deck
  * decisions.jsonl     1052 decisions, each with its own outcome attached
  * states_index.jsonl  346 unique observations
  * states/             content-addressed gzipped blobs

Content addressing matters: measured, only 56% of captures are unique, so 44% of
storage is duplicates. 3.28 MB raw -> 0.42 MB stored.

The card-reward rows keep the REJECTED options, so this is a ranking dataset
rather than a classification one, and the per-fight `damage_taken` /
`turns_taken` pair is the dense reward signal a combat policy is judged on.

What it deliberately does NOT do: reconstruct per-step combat state/action pairs.
The session logs record the action but not the observation, and captures exist
only for combat, so a step has a state with no action or an action with no state
-- never both. Inventing them would poison the corpus. The gap is declared in
manifest.json instead, and collect.py will close it going forward.

Integrity checking is a separate entry point (`--check-only`) because `--verify`
alone rebuilds first and so can only ever see data that is correct by
construction -- a smoke test pretending to be a check. All six invariants were
verified by deliberately breaking the dataset and confirming the checker fails.
2026-09-22 06:09:16 +07:00
capture Add reference game-state captures 2026-09-22 00:02:24 +07:00
dataset feat(dataset): migrate game history and captures into a trainable corpus 2026-09-22 06:09:16 +07:00
docs feat(dataset): migrate game history and captures into a trainable corpus 2026-09-22 06:09:16 +07:00
utils Migrate docdump tool from sts2-re 2026-09-22 00:01:37 +07:00
vendor Vendor STS2MCP mod source and 0.4.0 release DLL 2026-09-22 00:01:30 +07:00
.gitignore Ignore run artifacts and trace logs 2026-09-22 00:02:31 +07:00
ab_card_skip.sh fix(eval): end each A/B session with its run, and attribute runs to arms 2026-09-22 06:09:16 +07:00
brain.py fix(combat): block on projected fight damage, and three lethal-search defects 2026-09-22 06:09:16 +07:00
capture.py Add STS2MCP HTTP client and state capture tool 2026-09-22 00:01:44 +07:00
eval_batch.sh Add batch eval and card-skip A/B scripts 2026-09-22 00:02:18 +07:00
facts.py fix(combat): block on projected fight damage, and three lethal-search defects 2026-09-22 06:09:16 +07:00
jev.py feat(jev): structured question shapes, Score primitive, per-call answer record 2026-09-22 06:06:06 +07:00
migrate.py feat(dataset): migrate game history and captures into a trainable corpus 2026-09-22 06:09:16 +07:00
run.py feat(run): log every decision with the answers and the run outcome 2026-09-22 06:06:06 +07:00
sts2.py Add STS2MCP HTTP client and state capture tool 2026-09-22 00:01:44 +07:00
test_brain.py fix(combat): block on projected fight damage, and three lethal-search defects 2026-09-22 06:09:16 +07:00
test_facts.py fix(combat): block on projected fight damage, and three lethal-search defects 2026-09-22 06:09:16 +07:00
test_run.py feat(run): log every decision with the answers and the run outcome 2026-09-22 06:06:06 +07:00