Part of the Game Unification lane: all games become one game — different modes over one shared persistent universe (space → scan → hex-TD conquest → voxel base → satellite logistics → dungeon portals). Clients = Angular web + Godot (iOS/Android embed Godot). Full plan: ~/.claude/plans/i-want-a-plan-breezy-eclipse.md on the 4090.
Portals spawn deterministically in voxel worlds (rarity by planet difficulty). Entering opens the 5-character roster picker (cap added in P0) and routes through the existing EnterStrongholdCommand/DungeonZone path with planet-derived maze params. Dungeon loot flows back to the character; rare elements to the planet stockpile. Dungeon direct-entry menu dies.
Playable when done: fly → scan → conquer → land → build/mine → haul → portal → crawl, as one continuous game with zero standalone menu entries.
Checklist generated by the umbrella-tracker migration, 2026-08-07 — Opus 5 Agent
Part of the **Game Unification** lane: all games become one game — different modes over one shared persistent universe (space → scan → hex-TD conquest → voxel base → satellite logistics → dungeon portals). Clients = Angular web + Godot (iOS/Android embed Godot). Full plan: `~/.claude/plans/i-want-a-plan-breezy-eclipse.md` on the 4090.
Portals spawn deterministically in voxel worlds (rarity by planet difficulty). Entering opens the 5-character roster picker (cap added in P0) and routes through the existing `EnterStrongholdCommand`/`DungeonZone` path with planet-derived maze params. Dungeon loot flows back to the character; rare elements to the planet stockpile. Dungeon direct-entry menu dies.
**Playable when done**: fly → scan → conquer → land → build/mine → haul → portal → crawl, as one continuous game with zero standalone menu entries.
### Tickets
- [ ] #970
- [ ] #971
- [ ] #972
- [ ] #973
- [ ] #974
<!-- BEGIN MIGRATED-CHILDREN -->
---
## Child issues (per-repo, auto-close on merge)
This epic is complete when every box below is checked. Each child lives in the
repo that holds its fix, so `fixes #N` in a PR closes it automatically.
**Backend**
- [ ] spikerj/spikersoft-backend#604 — [BE] Portal generation + discovery + EnterPortal → DungeonZone <sub>(was #970)</sub>
- [ ] spikerj/spikersoft-backend#605 — [BE] Roster pick at portal entry + dungeon rewards flow back <sub>(was #971)</sub>
**Angular**
- [ ] spikerj/spikersoft-angular#672 — [NG] Portal rendering + discovery FX + roster picker <sub>(was #972)</sub>
- [ ] spikerj/spikersoft-angular#674 — [NG] Menu collapse 3/3: remove dungeon direct entry <sub>(was #973)</sub>
**Godot**
- [ ] spikerj/spikersoft-games-godot#16 — [GD] Dungeon interstitial <sub>(was #974)</sub>
<sub>Checklist generated by the umbrella-tracker migration, 2026-08-07 — Opus 5 Agent</sub>
<!-- END MIGRATED-CHILDREN -->
The unit is tracked by the shared [Unify P5] title prefix and by sibling
cross-links in each issue body. Closing here — the umbrella tracker is being
emptied.
— Opus 5 Agent
Dissolved into per-repo issues as part of the umbrella-tracker breakup.
This epic could never auto-close from a merge, because Gitea only resolves
`fixes #N` within a single repo. Its work now lives where the code is:
**Backend**
- spikerj/spikersoft-backend#604 — [BE] Portal generation + discovery + EnterPortal → DungeonZone
- spikerj/spikersoft-backend#605 — [BE] Roster pick at portal entry + dungeon rewards flow back
**Angular**
- spikerj/spikersoft-angular#672 — [NG] Portal rendering + discovery FX + roster picker
- spikerj/spikersoft-angular#674 — [NG] Menu collapse 3/3: remove dungeon direct entry
**Godot**
- spikerj/spikersoft-games-godot#16 — [GD] Dungeon interstitial
The unit is tracked by the shared `[Unify P5]` title prefix and by sibling
cross-links in each issue body. Closing here — the umbrella tracker is being
emptied.
— Opus 5 Agent
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Part of the Game Unification lane: all games become one game — different modes over one shared persistent universe (space → scan → hex-TD conquest → voxel base → satellite logistics → dungeon portals). Clients = Angular web + Godot (iOS/Android embed Godot). Full plan:
~/.claude/plans/i-want-a-plan-breezy-eclipse.mdon the 4090.Portals spawn deterministically in voxel worlds (rarity by planet difficulty). Entering opens the 5-character roster picker (cap added in P0) and routes through the existing
EnterStrongholdCommand/DungeonZonepath with planet-derived maze params. Dungeon loot flows back to the character; rare elements to the planet stockpile. Dungeon direct-entry menu dies.Playable when done: fly → scan → conquer → land → build/mine → haul → portal → crawl, as one continuous game with zero standalone menu entries.
Tickets
Child issues (per-repo, auto-close on merge)
This epic is complete when every box below is checked. Each child lives in the
repo that holds its fix, so
fixes #Nin a PR closes it automatically.Backend
Angular
Godot
Checklist generated by the umbrella-tracker migration, 2026-08-07 — Opus 5 Agent
Dissolved into per-repo issues as part of the umbrella-tracker breakup.
This epic could never auto-close from a merge, because Gitea only resolves
fixes #Nwithin a single repo. Its work now lives where the code is:Backend
Angular
Godot
The unit is tracked by the shared
[Unify P5]title prefix and by siblingcross-links in each issue body. Closing here — the umbrella tracker is being
emptied.
— Opus 5 Agent