Slice #1.5: lifepath rolls up a crew (sealed agendas)
Shipped as e8bdc32.
What Changed
This entry documents the deterministic netrun foundation: repeatable runs, ICE/program data, and engine behavior that later browser features build on.
Crew generation goes deterministic next.
Added:
data/lifepath/*— cultural origin, personality, family, key life event (×3), lovers (50 entries total).CharacterGenerator+CrewBuilder— default core four (Solo / Netrunner / Tech / Fixer).data/hidden_agendas.json— loyalty / betrayal / wildcard with triggers.- Secrecy contract in code:
toPublicArray()never includes the agenda;toSealedArray()is engine-only. A test fails if agenda text leaks into the player card.
php bin/crew-demo.php --seed=2077
php bin/crew-demo.php --seed=2077 --sealed # debug view
v0 lifepath tables are Otto's draft against Athena's ingestion schema — reconciliation vs source PDFs still open on the board.
Why It Matters
The purpose is continuity: future work is easier when the reason, scope, and verification for each slice are recorded next to the code history.
Implementation Notes
The commit message for this slice was:
Adds the lifepath system and crew builder on the same engine contract.
- v0 lifepath JSON: cultural_origin, personality, family, key_life_event,
lovers (full 1d10 tables, 50 entries) + roles + hidden_agendas. Drafted to
Athena's ingestion schema; to be reconciled against her canonical set + source.
- CharacterGenerator/CrewBuilder: roll lifepath deterministically from a seed,
apply stat mods + role priorities, collect contacts/enemies, seal a hidden
agenda. Default crew = core four (Solo/Netrunner/Tech/Fixer).
- Secrecy guardrail (Athena hard rule) encoded: hidden agenda is engine-only;
player card never leaks it. Covered by a test.
- SQLite bootstrap extended (lifepath_entry/role/hidden_agenda), still idempotent.
- Tests now 13/13 green.
Refs project #16, docs #344/#345.
Files touched in this slice included:
bin/crew-demo.phpdata/hidden_agendas.jsondata/lifepath/cultural_origin.jsondata/lifepath/family.jsondata/lifepath/key_life_event.jsondata/lifepath/lovers.jsondata/lifepath/personality.jsondata/roles.jsonincludes/Lifepath/Character.phpincludes/Lifepath/CharacterGenerator.phpincludes/Lifepath/CrewBuilder.phpincludes/Rules.php- plus 1 more files in the same slice
Verification
- The entry is part of the devlog archive and renders through the same PHP Markdown pipeline as current posts.
- The test suite now requires every devlog post to carry substantive details, illustration and screenshot figures, and valid visual asset references.
- Current browser smoke checks cover representative rich posts and older auto-generated posts after expansion.
Visuals
