Skip to content

S7 — The missing lifecycles are written - #41

Merged
The-Running-Dev merged 1 commit into
mainfrom
slice/S7
Aug 24, 2026
Merged

S7 — The missing lifecycles are written#41
The-Running-Dev merged 1 commit into
mainfrom
slice/S7

Conversation

@The-Running-Dev

Copy link
Copy Markdown
Owner

Summary

Closes #14. Writes the lifecycle- region for every one of the 12 derived
concepts that S6 (#13) found missing one: RngState, GameStatus,
CalendarState, GameMetadata, WorldState, StatusEffect,
PendingEventResponse, GoalState, EconomyState, PlayerState,
HistoryEntry and LoggedAction.

Each region follows the two-boundary form §5.4.1/§5.4.2 already established
by Opportunity/ScheduledEvent — a creation paragraph naming each path in
that flows into existence, and a retirement paragraph naming each exit. For
the concepts that are whole-game-lifetime singletons of GameState (RngState,
CalendarState, GameMetadata, WorldState, EconomyState, PlayerState),
the honest retirement content is that no in-engine deletion path exists —
GameEngine's API (§11) has no operation that deletes a game — so each
persists for the life of the save and retires only when the save itself is
discarded outside the engine's own surface. GameStatus's "abandoned" value
is flagged as having no engine-side trigger anywhere in the specification,
rather than inventing one, matching the precedent §8.4 already sets for the
unused wisdom attribute.

Out of scope, per the slice: what any concept does. Nothing here changes a
mechanic — only the lifecycle prose was added.

Two existing tests hard-coded facts about the pre-S7 corpus and needed a
mechanical correction once the new regions landed:

  • Read-SpecSet.Tests.ps1's same-repo section-reference count (106 → 161 —
    the twelve new regions cite the sections their creation/retirement paths
    depend on).
  • Test-SpecSet.Tests.ps1's S6.3, which asserted the concept gate was still
    failing on the real corpus. That gap is reconstructed against a fixture with
    one region deleted (what S6.3 was actually testing), and a new S7.1 test
    asserts the real corpus is now Valid with zero concept findings.

Verified

Invoke-Pester -Path tools: 332 passed, 0 failed.

./tools/Test-SpecSet.ps1: Valid, 0 findings (was Invalid, 12 concept
findings before this change).

S7.3 spot-checked by deleting each of RngState, GameStatus, StatusEffect
and LoggedAction's region individually: each produces exactly one concept
finding naming that concept, and restoring the region clears it.

Test plan

  • ./tools/Test-SpecSet.ps1 reports Valid, zero concept findings (S7.1)
  • Every added region states both a creation and a retirement paragraph (S7.2)
  • Deleting any one added region produces exactly one concept finding, and restoring it clears the finding (S7.3)

Adds a lifecycle- region for each of the 12 derived concepts that had none:
RngState, GameStatus, CalendarState, GameMetadata, WorldState, StatusEffect,
PendingEventResponse, GoalState, EconomyState, PlayerState, HistoryEntry and
LoggedAction. Test-SpecSet.ps1 now reports Valid with zero concept findings.

Fixes the two tests that hard-coded the pre-S7 corpus: Read-SpecSet.Tests.ps1's
same-repo section-reference count (106 -> 161, from the new regions' own §
citations) and Test-SpecSet.Tests.ps1's S6.3, which asserted the concept gate
still failing — reconstructed against a fixture with one region removed, plus
a new S7.1 test asserting the real corpus is now Valid.
@The-Running-Dev
The-Running-Dev merged commit b5fb3f4 into main Aug 24, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

S7 — The missing lifecycles are written

1 participant