Slice #1: deterministic netrunner-vs-NET engine
Shipped as 15aa87a.
What Changed
This entry explains the architecture choice: a PHP/SQLite game surface on the multihost stack with Letta-backed NPC minds kept outside the request path unless explicitly called.
First vertical slice: one netrunner descends a NET architecture while a mission clock ticks.
Mechanics:
- Custom Park-Miller LCG — reproducible across PHP versions (no
rand()surprises). - JSON rules: ICE roster, programs, prebuilt 3-floor architecture.
- Stealth bypass, ICE combat, alarm/heat, black-ICE flatline = meat death.
- Structured run log for replay/audit.
Verify:
php tests/run-tests.php # 8/8 at this commit
php bin/netrun-demo.php --seed=1337
Repo public: github.com/decisionsciencecorp/the-last-job
The LLM netrunner "mind" layers on later — this slice proves outcomes are 100% engine-owned.
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:
The Last Job game engine, LEMP-deployable. Seeded RNG (Park-Miller) so a run
replays byte-identically; dice + rules decide all outcomes (the LLM/Letta layer
will only supply NPC intent, never outcomes).
- Canonical JSON rules in data/netrun (ICE roster, programs, a prebuilt
3-floor NET architecture) per Athena's ingestion schema.
- NetrunEngine: floor descent, stealth bypass, ICE combat, alarm/heat clock,
black-ice lethality, vault extraction; structured run log.
- Idempotent SQLite bootstrap (JSON -> tables, safe to re-run on deploy).
- Dependency-free determinism test suite (8 checks, all green).
Refs DSC Tasks project #16, design doc #344, architecture doc #345.
Files touched in this slice included:
.gitignoreREADME.mdbin/netrun-demo.phpdata/netrun/architectures/nightcity-apt-3floor.jsondata/netrun/ice.jsondata/netrun/programs.jsonincludes/Dice.phpincludes/Netrun/NetrunEngine.phpincludes/Netrun/Netrunner.phpincludes/Rng.phpincludes/Rules.phpincludes/autoload.php- plus 3 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
