Document Pass 11 Phase 1 synthesis and close static archaeology.

Add executive summary and ability migration matrix; finalize evidence index, runtime validation plan, and Phase 1 handoff.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-16 23:40:52 -07:00
co-authored by Cursor
parent 48d7a75149
commit aa0058a018
15 changed files with 2368 additions and 359 deletions
@@ -2,46 +2,60 @@
**Status: Draft**
- **Scope:** Unresolved questions after Batches 14D (Passes 4, 710).
- **Inspection method:** Consolidation through Pass 10.
- **Scope:** Unresolved questions after Phase 1 static archaeology (Batches 15). Static defects are recorded; runtime validation is planned but **not executed**.
- **Inspection method:** Consolidation through Pass 11 synthesis.
- **Evidence classifications used:** Observed Implementation, Documented Intent, Observed Runtime Behavior, Inferred, Unknown.
- **Tool or visibility limitations:** Semantic Search unavailable; AnimGraph transition DSL empty; Sphere CDO collision unreadable; no PIE.
- **Tool or visibility limitations:** Semantic Search unavailable; AnimGraph transition DSL empty; Sphere CDO collision unreadable; CustomEvent Reliability unreadable; no PIE in Phase 1.
- **Last updated:** 2026-07-16
- **Current phase:** Phase 1 — Static Architecture
- **Last completed pass:** Pass 4 + Pass 10 (Batch 4D)
- **Next pass expected to contribute:** Pass 11 when authorized
- **Current phase:** Phase 1 — Static Architecture (complete); runtime validation deferred
- **Last completed pass:** Pass 11 (Batch 5 synthesis)
- **Next pass expected to contribute:** Phase 2A runtime-baseline when explicitly authorized
## Draft tracking
### Completed sections
- Batch 13 / Pass 7 / Pass 8 / Pass 9 resolutions
- **Pass 4 resolutions:** GI empty/unwired; session graphs Partial; OnlineSubsystem INI Missing; map/GameMode deps; char-select spawn
- **Pass 10 resolutions:** Overlay Health/Mana only; UpdatePlayerHUD/AddGold unimplemented; EffectActor authority risk; gold Partial; no stamina pickup/UI
- Batch 14D resolutions (Passes 010)
- Pass 11: bounded runtime validation plan (groups 112)
- Static vs runtime boundary clarified
### Pending sections
- Runtime test procedures (Pass 11 may list; PIE still unauthorized until requested)
- **All runtime test execution** (not authorized in Phase 1)
- Manual Editor notify trigger times / ABP Death pins / sphere GenerateOverlapEvents
### Evidence still required
- PIE possession / ApplyDamage feedback / Death state reachability
- Session create/find/join with OnlineSubsystem defaults
- Notify trigger times (Manual Editor)
- All rows in Runtime validation plan below
- FCanUseMana implementation body detail
- Client_Charge numeric timeline details
### Why Draft remains
Runtime execution has not begun. Static scope for Phase 1 unknowns is fully inventoried.
---
## Resolved in Batch 4D (Pass 4 + Pass 10)
## Static vs runtime boundary
| Question | Resolution | Classification | Doc |
|---|---|---|---|
| Where is session logic? | `PC_MainMenu` + `WBP_MainMenu` / `WBP_GameSlot` — not GI | Observed Implementation | 11 |
| Is GI used? | Empty; not in GameInstanceClass; 0 refs | Present but Unconnected | 11, 02 |
| OnlineSubsystem project INI? | Absent from Config/*.ini | Missing | 11, 02 |
| How DefaultPawn=None gets a pawn? | Char-select → ServerSpawnCharacter → PlayerFirstSpawn | Connected (static) | 11, 08 |
| Gunslinger in select UI? | No | Missing from select | 11, 08 |
| Does UpdatePlayerHUD update widgets? | Unimplemented on PC_Character; not in RIRPlayerController C++ | Present but Unconnected | 11, 03 |
| Stamina UI? | No Overlay child; no stamina widget asset | Present but Unconnected / Missing | 11, 06 |
| Pickup authority? | EffectActors: no SwitchHasAuthority; gold: has Authority | Authority Risk / Partial | 12 |
| Gold storage? | AddGold called but unimplemented | Present but Unconnected | 12 |
| Stamina / other currency pickups? | None found | Missing / negative inventory | 12 |
| Category | Examples | Phase 1 status |
|----------|----------|----------------|
| Confirmed static defects | Enemy chase missing; GetASC nullptr; AddGold unimplemented; Cleric 004 mana bypass | Closed as static findings |
| Active but Unverified connected paths | Overlay bars; EffectActor apply; session host/find | Require runtime |
| Unknown — Tool Limitation | CustomEvent Reliability; montage notify times | Manual Editor or MCP gap |
| Design decisions | Wizard orphan intent; whirlwind; Gunslinger kit | Defer pending design |
Do **not** treat runtime questions as confirmed defects until tested.
---
## Resolved in prior passes (summary)
| Pass/Batch | Examples resolved statically |
|------------|------------------------------|
| Batch 4D | Sessions in PC_MainMenu not GI; OSS INI Missing; char-select spawn; UpdatePlayerHUD/AddGold unimplemented; EffectActor authority risk; Overlay Health/Mana only |
| Pass 9 | Chase/attack Implementation Missing independent of GetASC |
| Pass 8 | UseAbility* callers = AN_Ability_*; AN_AttackComplete cleanup; montage pins unwired |
| Pass 7 | Dual resource boundary; no GA grant/activate; orphan default GEs |
| Pass 6 | Per-character ability statuses |
Full tables remain in docs `02``12`.
---
@@ -62,23 +76,124 @@
| OnlineSubsystem INI Missing | Missing | LAN/Steam sessions fail silently? |
| Char-select server-only create | Partial | Remote clients stuck without pawn UI? |
| Orphan default GEs / dual resources | Incomplete Refactor | Spawn Health/Mana vs Overlay |
| Montage completion pins unwired | Networking Risk | Interrupt leaves CurrentlyAttacking stuck? |
| Cleric 004 mana bypass + empty SpawnActor | Existing Baseline Defect | Confirm free cast + no projectile |
---
## Requires further inspection
## Runtime validation plan (do not execute in Phase 1)
| Question | Method | Priority |
|---|---|---|
| Controlled PIE — sessions, Overlay, potions, gold, enemy idle | PIE (explicit auth) | High |
| JoinSession travel internals | PIE / Manual Editor | High |
| ABP Death transition pins | Manual Editor | Low |
| Sphere GenerateOverlapEvents exact | Manual Editor / SCS | Medium |
For each test: distinguish **PIE**, **Listen-server**, **Dedicated-server**, **Two-client**, **Standalone**, **Manual Editor**.
### 1. Player attributes and HUD
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|------|---------------------|-------|-------------|----------------|---------------------|------|
| Spawn ASC Init values | Dual SoT documented | Standalone NewGame→Test01→select Paladin | Overlay Health/Mana at spawn | Match native Init (75/100, 25/50) or documented policy | Orphan GE / Init mismatch | Standalone / PIE |
| Potion updates Overlay | EffectActor path | Overlap HealthPotion | Overlay Health rises +25 | ASC Health changed; bar updates | Overlay or apply broken | PIE |
| Combat vs potion divergence | Dual resources | Take legacy damage then potion | DEPRECATED vs ASC values | Divergence documented or SoT enforced | Confirms P0 dual-resource risk | PIE |
### 2. Ability authority and replication
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|------|---------------------|-------|-------------|----------------|---------------------|------|
| Amazonian 001 listen-server | Implemented path | Host+client; Amazonian melee | Damage Authority; montage both | Authority damage once; clients see montage | Authority/replication defect | Listen-server + Two-client |
| Wizard stub | Stub | Activate Ability 001 | PrintString / no combat | Stub only | Unexpected child override | PIE |
### 3. Animation callback execution
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|------|---------------------|-------|-------------|----------------|---------------------|------|
| AN_Ability_001 fires UseAbility | AN wiring | Paladin/Amazonian 001 | Hit window applies damage | Damage at notify time | Notify not evaluated on server | PIE / Listen-server |
| Cleric 001 dead receiver | Unimplemented UseAbility001 | Cleric 001 | Montage plays; no hit | Partial confirmed | Unexpected hit path | PIE |
### 4. Ability interruption and cleanup
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|------|---------------------|-------|-------------|----------------|---------------------|------|
| Interrupt mid-montage | Pins unwired | Cancel/stun/move cancel mid-001 | CurrentlyAttacking state | Clears or stuck documented | P1 cleanup risk confirmed | PIE |
| AN_AttackComplete path | Connected notify | Complete full montage | CurrentlyAttacking false | Lockout released | Cleanup broken even on complete | PIE |
### 5. Player damage and death
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|------|---------------------|-------|-------------|----------------|---------------------|------|
| Amazonian AnyDamage death | Partial death path | Reduce health to ≤0 | PlayerDeath; ABP Death | Death reached | Death unreachable | PIE |
| Paladin lethal path | Inherited death | Apply lethal damage source | Death or no-op | Path documented | Missing inbound damage | PIE |
### 6. Enemy ASC compatibility
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|------|---------------------|-------|-------------|----------------|---------------------|------|
| Potion on enemy | GetASC nullptr | Overlap potion on skeleton | GE apply + destroy | Early-out no heal; actor may destroy | Confirms destroy-without-heal | PIE |
| Direct enemy ASC Health | ASC on self | Inspect ASC after spawn | Health Init present | Component alive despite GetASC defect | ASC missing entirely | PIE / Manual Editor |
### 7. Enemy damage reception and death
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|------|---------------------|-------|-------------|----------------|---------------------|------|
| Player hit skeleton | No ReceiveAnyDamage | Amazonian 001 on skeleton | Health/death response | No health change (expected today) | Unexpected consumer found | PIE |
| IsDead forced false | ABP Update | Force IsDead true then tick | Death state | Forced false prevents Death | Or Death somehow reachable | PIE / Manual Editor |
| AIController possession | PlacedInWorld | PIE possess check | Controller class | Possessed by AIController | Unpossessed | PIE |
### 8. Pickup authority and replication
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|------|---------------------|-------|-------------|----------------|---------------------|------|
| EffectActor listen-server | Authority Risk | Host+client overlap potion | GE apply count; destroy | Single authoritative apply | Double apply/destroy | Listen-server + Two-client |
| Gold authority | Authority gated | Overlap gold | SFX+destroy; AddGold | No score change (unimplemented) | Unexpected score store | PIE |
### 9. Character-selection networking
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|------|---------------------|-------|-------------|----------------|---------------------|------|
| Remote client select UI | Server-only create | Listen-server two clients | Widget on client | Client has UI and can spawn | Client stuck — P1 confirmed | Listen-server + Two-client |
| Gunslinger absence | Not in UI | Open select | Class buttons | No Gunslinger | Unexpected button | Standalone |
### 10. Session create/find/join/travel/destroy
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|------|---------------------|-------|-------------|----------------|---------------------|------|
| Host create | Partial host path | HostGame | Session + travel Dev_Island | Lands listen-server | OSS/config failure | Listen-server |
| Find sessions | Find connected | Refresh | Slot list | Rows appear | Find broken | Two-client |
| Join travel | No OnSuccess pin | JoinGame | Travel to host map | Client travels | Join travel broken | Two-client |
| Destroy/leave | Missing DestroySession | Return MainMenu mid-session | Session state | Document leak/orphan session | Confirms Missing cleanup | Listen-server |
### 11. Gold and currency
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|------|---------------------|-------|-------------|----------------|---------------------|------|
| AddGold no-op | Unimplemented | Pick gold | Score/UI | No persistent gold | Unexpected implementation elsewhere | PIE |
| No stamina pickup | Negative inventory | Search/play | No stamina collectible | Confirmed Missing | Asset found | Standalone |
### 12. Respawn and HUD recreation
| Test | Static prerequisite | Setup | Observation | Pass condition | Failure implication | Mode |
|------|---------------------|-------|-------------|----------------|---------------------|------|
| Respawn Overlay | Server_RespawnPlayer | Die → respawn | Overlay bars | HUD recreated; attrs reset per policy | HUD/attr stuck | PIE |
| Possessed Server_UpdateHUD | Delay 0.4 path | Possess | Legacy HUD call | No-op (expected) | Unexpected UpdatePlayerHUD impl | PIE |
---
## Requires Manual Editor Inspection
| Question | Priority |
|----------|----------|
| AnimNotify trigger times / track indices | Medium |
| Montage section / blend / root-motion flags | Low |
| ABP_Skeleton Death transition pin wiring | Low |
| Sphere GenerateOverlapEvents / collision profile on EffectActors | Medium |
| FCanUseMana function body | Medium |
| CommonUI content usage | Low |
---
## Priority order for later verification
1. **Pass 11** — synthesis / executive summary / migration matrix (when authorized)
2. Controlled PIE — menu→Test01 spawn, Overlay bars, potion GE, gold no-op, enemy idle
3. Multiplayer PIE — host Dev_Island, join travel, remote char-select
4. Manual Editor — collision templates, AnimGraph pins
1. Phase 2A design: canonical attribute/authority/cleanup contracts (**do not skip**)
2. Controlled PIE — menu→Test01 spawn, Overlay, potion GE, gold no-op, enemy idle, Amazonian 001
3. Interrupt cleanup + dual-resource divergence
4. Multiplayer PIE — host Dev_Island, join travel, remote char-select, EffectActor authority
5. Manual Editor — collision templates, AnimGraph pins, notify times
**Do not begin Phase 2 implementation until Phase 2A contracts are approved.**