Ghostlight/crates
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens 0f21a4900c Soul: falsify pass-4 bands, the shared catalog id, and journal-side forgery
Four test-only additions, plus one two-slot fixture entry:

- `soul_only_the_selected_bands_effects_are_committed` closes verification
  contract 10's discriminating case. The existing tests prove an empty band
  commits nothing and a one-slot entry lowers what it declares; neither
  separates a slot the proposer offered from a slot the draw admitted. The new
  `carry_split` entry declares two slots on disjoint bands, both proposed
  within ceiling, and each band is reached by searching for a command id
  before the envelope is built rather than by retrying commits.
- `soul_a_forged_band_or_effect_in_the_journal_dies_at_replay` names the layer.
  `verify_state_shape` bounds a band index and refuses effects under an empty
  band; it does not re-derive the draw. The forgery is re-digested into a
  contiguous chain and dies at `apply_committed_command`'s effect equality.
- `soul_a_shared_catalog_id_is_gated_by_the_scope_grant` pins that an
  affordance id names a catalog entry every grantee shares, so grant
  membership per scope is what gates: the same `convene` id commits for its
  grantee and is denied for a controller-driven scope that does not hold it.
- `soul_a_stored_role_spec_over_an_optional_subject_kind_round_trips` proves
  the adjacently tagged `RefKind` survives the `to_vec_named` path that a
  stored `RoleSpec { kind: Subject(None) }` writes through.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-04 20:40:41 +02:00
..
ghostlight-dungeon Soul: falsify pass-4 bands, the shared catalog id, and journal-side forgery 2026-09-04 20:40:41 +02:00
ghostlight-persona-projection Pass-2 follow-ups: dead presence check, RefKind derives, stamped world_id, stale imports and comment 2026-09-04 19:03:59 +02:00