4.7 KiB
4.7 KiB
0. Pre-flight (non-negotiable)
- 0.1 Confirm clean working tree (
git statusreports nothing) and no in-flight worktrees with uncommitted work (git worktree listthengit statusin each) - 0.2 If any worktrees exist under
.claude/worktrees/, account for each one: still-active agent, work-pending-merge, or stale-and-prune. Stale worktrees MUST be removed (git worktree remove) before opening a new one — code that has been lost twice on main is the failure mode this guards against. - 0.3 Confirm the package set in
MANIFEST.mdmatchesfind packages -maxdepth 3 -name package.jsoncount. Drift here means a prior change archived without regenerating the manifest.
1. gaming-universe — Game Clock Wrapper
- 1.1 Scaffold
@suaveplan/gaming-universepackage inpackages/universal/gaming/gaming-universewithpackage.json,tsconfig.json,vitest.config.ts(100/100/100/100 thresholds) - 1.2 Implement
GamingUniverseOptionsandGamingUniverseclass - 1.3 Integrate
@suaveplan/timingAsyncSchedulerfor tick driving - 1.4 Implement
setTimeScale,setGameTime,pause,resume,isPaused,getGameTime - 1.5 Implement
getScenedelegating toUniverseClientat current game time - 1.6 Implement event emission via
@suaveplan/eventsforhourChanged,dayChanged,seasonChanged,sunriseStarted,sunsetStarted,moonriseStarted,moonsetStarted,eclipseStarted - 1.7 Implement
disposestopping scheduler and cancelling in-flight queries (idempotent) - 1.8 Expose readonly
universeproperty - 1.9 Add Zod schemas for all public option types
- 1.10 Add OTel spans on all public entrypoints
- 1.11 Add
AbortSignalongetScene - 1.12 Write tests achieving 100% coverage
- 1.13 Write sibling
.mddocs for every implementation file - 1.14 Write
README.mdwith install, quick-start, and module links - 1.15 Configure explicit named barrel exports for all subpaths (no
export *) - 1.16 Run
bunx turbo lint typecheck test build --filter=@suaveplan/gaming-universeand fix all errors - 1.17 Run
bunx turbo test:coverage --filter=@suaveplan/gaming-universeand verify 100%
2. gaming-environment-lighting — Physical Lighting
- 2.1 Scaffold
@suaveplan/gaming-environment-lightingpackage inpackages/universal/gaming/gaming-environment-lighting - 2.2 Implement Rayleigh/Mie scattering sky colour computation from
sunAltitudeandAtmosphereConfig - 2.3 Implement twilight star visibility thresholds (civil/nautical/astronomical/full dark)
- 2.4 Implement vacuum collapse (no atmosphere → always full dark)
- 2.5 Implement multi-satellite moonlight sum (
moonLight ∝ phaseIllumination × angularDiameter² × albedo) - 2.6 Implement
EnvironmentModifiers:totalAmbientLight,stealthBonus,visibilityRangeMetres,npcSleepProbability - 2.7 Export plain ECS component interfaces:
DayNightClock,LightState,DayNightAffected - 2.8 Implement
RenderPayloadgeneration per tick - 2.9 Pass
PlanetTextureManifestidentifiers through verbatim - 2.10 Handle optional
WeatherStatepass-through without breaking - 2.11 Add Zod schemas for all public option types
- 2.12 Add OTel spans on all public entrypoints
- 2.13 Write tests achieving 100% coverage
- 2.14 Write sibling
.mddocs for every implementation file - 2.15 Write
README.mdwith install, quick-start, and module links - 2.16 Configure explicit named barrel exports for all subpaths (no
export *) - 2.17 Run
bunx turbo lint typecheck test build --filter=@suaveplan/gaming-environment-lightingand fix all errors - 2.18 Run
bunx turbo test:coverage --filter=@suaveplan/gaming-environment-lightingand verify 100%
3. Cross-cutting and Archive
- 3.1 Update
STATUS.md: markgaming-universeandgaming-environment-lightingas completed - 3.2 Update
SUMMARY.mdwith per-package paragraphs - 3.3 Update
MANIFEST.mdviabun scripts/folder-reorg/generate-manifest.ts - 3.4 Update
MISSING.ymlviabun scripts/generate-missing.ts - 3.5 Run
bunx markdownlint-cli2 --fixon all touched root docs - 3.6 Run
bunx turbo lint typecheck testacross the full gaming-universe filter set - 3.7 Verify zero banned patterns in all new package
src/directories - 3.8 Verify zero
export *in feature barrels - 3.9 Verify zero direct
vitest/bun:testimports in non-exempt packages - 3.10 Verify every
.tshas a sibling.md - 3.11 Verify every package has a
README.md - 3.12 Verify no bare version strings in any new
package.json - 3.13 Archive change: move
openspec/changes/enterprise-gaming-universetoopenspec/archive/2026-04-25-enterprise-gaming-universe