test(tick): class-dynamics registration, declaration surface, world 1 and the frozen mirror (TickDynamics Task 2, PR A) - #696
Conversation
… and the frozen mirror Body can be brief; the task only requires the subject and the trailer. Co-Authored-By: Kimi Code <noreply@moonshot.cn>
… 1 (86 pinned) The Task 2 commit added two content files; the corpus pin table goes 84 → 86. Value-mismatch-free re-pin: every pre-existing row's digest is byte-identical, the two new rows are the additions. Co-Authored-By: Kimi Code <noreply@moonshot.cn>
There was a problem hiding this comment.
🟢 Approval recommended
The changes are additive and low-risk (content + registration + tests), with only minor doc/naming nits identified.
Pull request overview
Ports TickDynamics Feature-016’s class-dynamics “declaration + registration + world-1 conformance surface” into the Rust babylon-tick content/test estate, establishing a deterministic scenario and guardrails for subsequent rule-pack tasks in the port train (#669).
Changes:
- Register the new
class-dynamicssystem namespace and include it in the fuel-report enumeration. - Add “World 1” conformance scenario content (
.bscn) plus a frozen Python mirror script for arithmetic corroboration. - Add Rust conformance tests that validate scenario hydration, enum ordinal parity, canonical constants, and anti-pattern guards for the pack.
File summaries
| File | Description |
|---|---|
| rust/crates/babylon-tick/tests/class_dynamics_conformance.rs | New conformance/guard test suite for the class-dynamics world and pack. |
| rust/crates/babylon-tick/src/lib.rs | Registers class-dynamics in the system namespace set. |
| rust/crates/babylon-tick/src/bin/bsl_fuel_report.rs | Adds class-dynamics to SOLO_PACKS so fuel reporting/sentinels cover it. |
| rust/crates/babylon-tick/content/scenarios/class-dynamics-conformance.bscn | Introduces World 1 declaration surface (fields, consts, nodes/edges) for the pack. |
| rust/crates/babylon-tick/content/scenarios/class_dynamics_conformance.py | Frozen mirror/corroboration script for world-1 arithmetic and the F11 repair demonstration. |
| rust/crates/babylon-tick/content/rules/class-dynamics.bsl | Header-only rule pack placeholder carrying the recorded spike results. |
| rust/crates/babylon-bsl/tests/content_corpus_digests.rs | Re-pins corpus digests to include the new .bsl and .bscn files. |
Review details
- Files reviewed: 7/7 changed files
- Comments generated: 2
- Review effort level: Lite
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
| /// Cross-world constant-parity harness (Task 2 lands world 1 only; later | ||
| /// tasks extend the `scenarios` array). Every constant a world does not | ||
| /// deliberately vary must be byte-identical across worlds — a typo in one | ||
| /// world's canonical block cannot pass. | ||
| #[test] | ||
| fn the_constant_table_is_byte_identical_across_all_worlds() { |
There was a problem hiding this comment.
Fixed in 38d5f60: renamed to world1_constants_match_the_canonical_table_bit_exactly with the doc comment now stating the multi-world loop lands with later worlds.
| // The class-dynamics/* rule pack (Material Base @4.0's Feature-016 | ||
| // class-dynamics engine — NOT all of @4.0; TickDynamics port train, | ||
| // issue #669, plan `docs/superpowers/plans/2026-08-18-tickdynamics- | ||
| // port.md`). Genuinely NEW registration — the Task 0 surface-facts |
There was a problem hiding this comment.
Fixed in 38d5f60: the path now sits contiguous on one unbackticked comment line.
…tiguous plan path - the_constant_table_is_byte_identical_across_all_worlds → world1_constants_match_the_canonical_table_bit_exactly (the harness's multi-world loop lands with later worlds; the name now says what the test does today) - lib.rs's registration comment keeps the plan path on one unbackticked line (a backticked path split across lines renders as "tickdynamics- port.md") Co-Authored-By: Kimi Code <noreply@moonshot.cn>
…#696 CI) The manifest-sync gate (Python reference suite — not covered by the crate-scoped cargo loop) requires every content file claimed by a row: the class-dynamics Task 2 files now have one. The fuel-report bin stays OUT of `consumers` — the manifest's scanner is non-recursive by design (src/*.rs + tests/*.rs top-level only; src/bin/ is invisible to it). Co-Authored-By: Kimi Code <noreply@moonshot.cn>
Summary
Task 2 of the TickDynamics class-dynamics port train (#669; plan
docs/superpowers/plans/2026-08-18-tickdynamics-port.mdrev 2.1; Tasks 0/1 already landed in dev). Ports Feature 016 — the class-dynamics engine (src/babylon/domain/economics/dynamics/), explicitly NOT all of @4.0 (the plan §0.1 boundary).class-dynamicsin babylon-tick's systems set (genuinely new — zero prior hits, red-probed:E-LOAD-002before, green after)class-dynamics-conformance.bscn): the CrisisPhase defenum in landed order (ADR195 ordinal parity test), the §4.2 field roster, the §4.5 46-defconst canonical block with frozenfile:lineprovenance, six nodes incl. the D136 dual-membership vector and the orphan classclass_dynamics_conformance.py), run twice for F11: frozenwage·s²vs repairedwage·s— the 33.33× repair factor demonstrated on both counties;DefaultClassTransitionEnginecorroboration agrees silentlyclass-dynamics.bslpack carrying the SPIKE RESULTS block (the dossier §10's deferred copy)bsl_fuel_report.rs's SOLO_PACKS gains theclass-dynamicsentry (enumeration-sentinel parity)Drift noted
Plan §4.5 says "seven" amplifier multipliers exceed 1.0; the frozen table contains eight (1.2 twice). Documented in the scenario header.
Gates
rust:checkgreen (fmt/clippy/test/doc incl. the 28 pre-existing tick goldens, all byte-identical);qa:regression+ vault byte-identical; red-then-green observed per TDD.Co-Authored-By: Kimi Code noreply@moonshot.cn