Files
UE5-Modular-Game-Framework/docs/checklists/clean-slate-refactor.md
2026-05-19 10:18:28 +00:00

346 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Clean Slate Refactoring — Implementation Checklist
**Source Plan:** [`docs/architecture/CLEAN_SLATE_PLAN.md`](../architecture/CLEAN_SLATE_PLAN.md)
**Master Document:** [`UE5_Modular_Game_Framework.md`](../../UE5_Modular_Game_Framework.md)
**Audit:** [`docs/blueprints/AUDIT_REPORT.md`](../../docs/blueprints/AUDIT_REPORT.md)
**Template:** [`docs/blueprints/TEMPLATE.md`](../../docs/blueprints/TEMPLATE.md)
---
## Phase 0 — Setup
- [ ] 0.1 Verify current `git status` is clean (commit any pending changes first)
- [ ] 0.2 Create branch `refactor/clean-slate` from `main`
- [ ] 0.3 Confirm all 83 blueprint files are readable and not corrupted
---
## Phase 1 — Rename 18 Files to Match Master Naming
Each task: delete old file, create new file at same location with corrected name, update internal header line.
### 03-interaction/
- [ ] 1.1 Rename `20_BPC_InteractableDoorComponent.md``BP_DoorActor.md`
### 04-inventory/
- [ ] 1.2 Rename `22_BPC_InventoryComponent.md``BPC_InventorySystem.md`
- [ ] 1.3 Rename `25_BPC_EquipmentSystem.md``BPC_EquipmentSlotSystem.md`
### 05-saveload/
- [ ] 1.4 Rename `30_BPC_CheckpointSystem.md``BP_Checkpoint.md` (if Master uses BP_ prefix; verify against Master line)
### 06-ui/
- [ ] 1.5 Rename `33_WBP_HUD.md``WBP_HUDController.md`
- [ ] 1.6 Rename `34_WBP_InventoryUI.md``WBP_InventoryMenu.md`
- [ ] 1.7 Rename `35_WBP_InteractionUI.md``WBP_InteractionPromptDisplay.md`
### 07-narrative/
- [ ] 1.8 Rename `45_BPC_EndingAccumulatorSystem.md``BPC_EndingAccumulator.md`
- [ ] 1.9 Rename `47_BPC_NarrativeTriggerVolume.md``BP_NarrativeTriggerVolume.md`
### 08-weapons/
- [ ] 1.10 Rename `50_BP_RangedWeapon.md``BPC_FirearmSystem.md`
- [ ] 1.11 Rename `51_BP_MeleeWeapon.md``BPC_MeleeSystem.md`
- [ ] 1.12 Rename `53_BPC_DamageHandlerComponent.md``BPC_DamageReceptionSystem.md`
### 09-ai/
- [ ] 1.13 Rename `55_BPC_AIControllerBase.md``AI_BaseAgentController.md`
- [ ] 1.14 Rename `56_BPC_PerceptionComponent.md``BPC_AIPerceptionSystem.md`
### 10-adaptive/
- [ ] 1.15 Rename `64_BPC_AtmosphereController.md``BPC_AtmosphereStateController.md`
- [ ] 1.16 Rename `65_BPC_LightingManager.md``BPC_LightEventController.md`
- [ ] 1.17 Rename `66_BPC_AudioManager.md``BPC_AudioAtmosphereController.md`
### Verify
- [ ] 1.18 Verify all 18 renamed files exist and old files are deleted
---
## Phase 2 — Split Two Bundled Files
### 2.1 Split DeathHandlingSystem (1 file → 5 files)
**Read source:** `05-saveload/31_BPC_DeathHandlingSystem.md` (311 lines)
- [ ] 2.1.1 Create `05-saveload/BPC_DeathHandlingSystem.md` — Core orchestrator content (lines 1-64 enums/structs + 206-311 core vars/fns/flow/matrix + header section)
- [ ] 2.1.2 Create `05-saveload/BPC_AltDeathSpaceSystem.md` — Alt death space sub-system (lines 65-99)
- [ ] 2.1.3 Create `05-saveload/BPC_PersistentCorpseSystem.md` — Corpse sub-system (lines 102-132)
- [ ] 2.1.4 Create `05-saveload/BPC_PlayerRespawnSystem.md` — Respawn sub-system (lines 136-167)
- [ ] 2.1.5 Create `05-saveload/BPC_RunHistoryTracker.md` — Run history sub-system (lines 171-203)
**Each split file must:**
- Include a `Depends On:` section referencing the orchestrator and relevant systems
- Include a `Purpose:` header describing its standalone role
- Follow TEMPLATE.md format with complete sections
- [ ] 2.1.6 Delete original `05-saveload/31_BPC_DeathHandlingSystem.md`
- [ ] 2.1.7 Verify all 5 new files are self-contained and valid
### 2.2 Split MenuWidgets (1 file → 7 files)
**Read source:** `06-ui/36_WBP_MenuWidgets.md` (353 lines)
- [ ] 2.2.1 Create `06-ui/WBP_MainMenu.md` — Main menu widget (lines 15-48)
- [ ] 2.2.2 Create `06-ui/WBP_PauseMenu.md` — Pause menu widget (lines 51-94)
- [ ] 2.2.3 Create `06-ui/WBP_SettingsMenu.md` — Settings menu widget (lines 99-188)
- [ ] 2.2.4 Create `06-ui/WBP_NotificationToast.md` — Toast notification widget (lines 191-230)
- [ ] 2.2.5 Create `06-ui/WBP_ScreenEffectController.md` — Screen effects widget (lines 233-261)
- [ ] 2.2.6 Create `06-ui/WBP_MenuFlowController.md` — Menu flow widget (lines 264-353)
- [ ] 2.2.7 Create `06-ui/WBP_ObjectiveDisplay.md` — New file (not in bundled source; Master Sec 6.6)
**Note for 2.2.7:** `WBP_ObjectiveDisplay` is listed in Master Section 6.6 but was NOT in the bundled `WBP_MenuWidgets.md`. Create from scratch using TEMPLATE.md. It displays current objectives as an overlay.
- [ ] 2.2.8 Delete original `06-ui/36_WBP_MenuWidgets.md`
- [ ] 2.2.9 Verify all 7 new files are self-contained and valid
---
## Phase 3 — Create 12 Data Asset Spec Files (new `14-data-assets/` directory)
All DA files should follow this structure:
```
# DA_<Name> — Data Asset
**Parent Class:** `UDataAsset`
**Dependencies:** (systems that consume this data)
**Purpose:** (what content this data asset defines)
## Variables / Structure
(complete row structure definition)
## Gameplay Tags
(tag namespace this DA operates in)
## Validation Rules
(editor-time validation logic)
## Example Data
(1-2 example rows)
## Consumed By
(systems that read this DA)
## Reuse Notes
```
- [ ] 3.0 Create directory `docs/blueprints/14-data-assets/`
- [ ] 3.1 Create `14-data-assets/DA_DataAssetArchitecture.md` — overview of all 20 DA types, naming conventions, dependency rules
- [ ] 3.2 Create `14-data-assets/DA_InteractionData.md`
- [ ] 3.3 Create `14-data-assets/DA_ObjectiveData.md`
- [ ] 3.4 Create `14-data-assets/DA_EncounterData.md`
- [ ] 3.5 Create `14-data-assets/DA_AtmosphereProfile.md`
- [ ] 3.6 Create `14-data-assets/DA_ScareEvent.md`
- [ ] 3.7 Create `14-data-assets/DA_RoomMutation.md`
- [ ] 3.8 Create `14-data-assets/DA_BehaviourVariant.md`
- [ ] 3.9 Create `14-data-assets/DA_HapticProfile.md`
- [ ] 3.10 Create `14-data-assets/DA_AdaptationRule.md`
- [ ] 3.11 Create `14-data-assets/DA_EquipmentConfig.md`
- [ ] 3.12 Create `14-data-assets/DA_PuzzleData.md`
- [ ] 3.13 Create `14-data-assets/DA_RareEvent.md`
---
## Phase 4 — Create 30 Runtime System Spec Files
### 03-interaction/ (4 files)
- [ ] 4.1 Create `03-interaction/BPC_PhysicsDragSystem.md`
- [ ] 4.2 Create `03-interaction/BPC_ContextualTraversalSystem.md`
- [ ] 4.3 Create `03-interaction/BP_PuzzleDeviceActor.md`
- [ ] 4.4 Create `03-interaction/BPC_UsableWorldObjectSystem.md`
### 04-inventory/ (7 files)
- [ ] 4.5 Create `04-inventory/BPC_ActiveItemSystem.md`
- [ ] 4.6 Create `04-inventory/BPC_ItemCombineSystem.md`
- [ ] 4.7 Create `04-inventory/BPC_DocumentArchiveSystem.md`
- [ ] 4.8 Create `04-inventory/BPC_JournalSystem.md`
- [ ] 4.9 Create `04-inventory/BPC_CollectibleTracker.md`
- [ ] 4.10 Create `04-inventory/BPC_ConsumableSystem.md`
- [ ] 4.11 Create `04-inventory/BPC_KeyItemSystem.md`
### 05-saveload/ (1 file)
- [ ] 4.12 Create `05-saveload/BPC_PersistentWorldStateRecorder.md`
### 06-ui/ (3 files)
- [ ] 4.13 Create `06-ui/WBP_DiegeticHUDFrame.md`
- [ ] 4.14 Create `06-ui/WBP_JournalDocumentViewer.md`
- [ ] 4.15 Create `06-ui/WBP_ObjectiveDisplay.md` (already created in Phase 2.2.7)
### 08-weapons/ (5 files)
- [ ] 4.16 Create `08-weapons/BPC_RecoilSystem.md`
- [ ] 4.17 Create `08-weapons/BPC_ReloadSystem.md`
- [ ] 4.18 Create `08-weapons/BPC_ShieldDefenseSystem.md`
- [ ] 4.19 Create `08-weapons/BPC_HitReactionSystem.md`
- [ ] 4.20 Create `08-weapons/BPC_DeathCauseTracker.md`
### 09-ai/ (3 files)
- [ ] 4.21 Create `09-ai/BB_AgentBoard.md`
- [ ] 4.22 Create `09-ai/BPC_AIMemorySystem.md`
- [ ] 4.23 Create `09-ai/BPC_BehaviourVariantSelector.md`
### 10-adaptive/ (6 files)
- [ ] 4.24 Create `10-adaptive/BPC_PlaystyleClassifier.md`
- [ ] 4.25 Create `10-adaptive/BPC_AdaptiveEnvironmentDirector.md`
- [ ] 4.26 Create `10-adaptive/BPC_MemoryDriftSystem.md`
- [ ] 4.27 Create `10-adaptive/BPC_ScareEventSystem.md`
- [ ] 4.28 Create `10-adaptive/BPC_PacingDirector.md`
- [ ] 4.29 Create `10-adaptive/BPC_RareEventSystem.md`
---
## Phase 5 — Reorganize 11-polish/ into 3 New Directories
### 5.1 Create new directories
- [ ] 5.1.1 Create `docs/blueprints/11-meta/`
- [ ] 5.1.2 Create `docs/blueprints/12-settings/`
- [ ] 5.1.3 Create `docs/blueprints/13-polish/`
### 5.2 Move files to 11-meta/ (3 files)
- [ ] 5.2.1 Move `11-polish/74_BPC_AchievementManager.md``11-meta/SS_AchievementSystem.md`
- [ ] 5.2.2 Move `11-polish/75_BPC_StatsTracker.md``11-meta/BPC_ProgressStatTracker.md`
- [ ] 5.2.3 Create `11-meta/BPC_EndingCompletionTracker.md` (new)
- [ ] 5.2.4 Create `11-meta/BPC_MetaProgressionSystem.md` (new)
- [ ] 5.2.5 Create `11-meta/BPC_RunSummarySystem.md` (new)
### 5.3 Move files to 12-settings/ (4 files)
- [ ] 5.3.1 Move `11-polish/71_SS_SettingsManager.md``12-settings/SS_SettingsSystem.md`
- [ ] 5.3.2 Move `11-polish/72_BPC_AccessibilitySettings.md``12-settings/BPC_AccessibilitySettings.md`
- [ ] 5.3.3 Create `12-settings/BPC_HapticsController.md` (new)
- [ ] 5.3.4 Create `12-settings/BPC_PlatformServiceAbstraction.md` (new)
### 5.4 Move remaining files to 13-polish/ (9 files)
- [ ] 5.4.1 Move `11-polish/73_BPC_TutorialSystem.md``13-polish/BPC_TutorialSystem.md`
- [ ] 5.4.2 Move `11-polish/76_BPC_LoadingScreen.md``13-polish/BPC_LoadingScreen.md`
- [ ] 5.4.3 Move `11-polish/77_WBP_CreditsScreen.md``13-polish/WBP_CreditsScreen.md`
- [ ] 5.4.4 Move `11-polish/78_WBP_SplashScreen.md``13-polish/WBP_SplashScreen.md`
- [ ] 5.4.5 Move `11-polish/79_BPC_FPSCounter.md``13-polish/BPC_FPSCounter.md`
- [ ] 5.4.6 Move `11-polish/80_BPC_DevCheatManager.md``13-polish/BPC_DevCheatManager.md`
- [ ] 5.4.7 Move `11-polish/81_WBP_DebugMenu.md``13-polish/WBP_DebugMenu.md`
- [ ] 5.4.8 Move `11-polish/82_BPC_AnalyticsTracker.md``13-polish/BPC_AnalyticsTracker.md`
- [ ] 5.4.9 Move `11-polish/83_BPC_ErrorHandler.md``13-polish/BPC_ErrorHandler.md`
### 5.5 Clean up
- [ ] 5.5.1 Delete empty `11-polish/` directory
---
## Phase 6 — Delete Extra/Unmatched Files (7 files)
These files define systems not present in the Master document or are replaced by split/new files:
- [ ] 6.1 Delete `03-interaction/17_BPC_PickupComponent.md` (covered by ItemPickup + InteractionExecutor)
- [ ] 6.2 Delete `03-interaction/19_BPC_LeverPuzzleComponent.md` (covered by BP_PuzzleDeviceActor)
- [ ] 6.3 Delete `04-inventory/23_BPC_InventoryWeightSystem.md` (sub-feature of InventorySystem)
- [ ] 6.4 Delete `04-inventory/24_BPC_InventoryQuickSlot.md` (sub-feature of ActiveItemSystem)
- [ ] 6.5 Delete `09-ai/57_BPC_BehaviorTreeManager.md` (covered by BB_AgentBoard + BehaviourVariantSelector)
- [ ] 6.6 Delete `10-adaptive/68_BP_DynamicEvent.md` (covered by BPC_RareEventSystem)
- [ ] 6.7 Delete `10-adaptive/67_BPC_VFXManager.md` (not in Master; VFX controlled by AtmosphereController)
---
## Phase 7 — Renumber All Files Sequentially
After all renames/splits/creates/moves/deletes, renumber every file prefixed with `XX_` (where XX is the existing number).
**New numbering order:**
1. 01-core/ → 0112
2. 02-player/ → 1321
3. 03-interaction/ → 2232
4. 04-inventory/ → 3344
5. 05-saveload/ → 4553
6. 06-ui/ → 5466
7. 07-narrative/ → 6777
8. 08-weapons/ → 7889
9. 09-ai/ → 9098
10. 10-adaptive/ → 99107
11. 11-meta/ → 108113
12. 12-settings/ → 114118
13. 13-polish/ → 119128
14. 14-data-assets/ → 129141
**Renumbering rules:**
- Each file gets prefix `XX_` where XX is zero-padded to 2 digits
- The prefix matches the directory's slot in the numbering order
- Example: `01-core/01_GI_GameFramework.md` stays `01_`. `06-ui/` files get `54_` through `66_`.
- Internal cross-references in each file must be updated to new filenames
- [ ] 7.1 Renumber 01-core/ files (7 files → verify, may need expansion to 12)
- [ ] 7.2 Renumber 02-player/ files (9 files → 1321)
- [ ] 7.3 Renumber 03-interaction/ files (11 files → 2232)
- [ ] 7.4 Renumber 04-inventory/ files (12 files → 3344)
- [ ] 7.5 Renumber 05-saveload/ files (9 files → 4553)
- [ ] 7.6 Renumber 06-ui/ files (13 files → 5466)
- [ ] 7.7 Renumber 07-narrative/ files (11 files → 6777)
- [ ] 7.8 Renumber 08-weapons/ files (12 files → 7889)
- [ ] 7.9 Renumber 09-ai/ files (9 files → 9098)
- [ ] 7.10 Renumber 10-adaptive/ files (9 files → 99107)
- [ ] 7.11 Renumber 11-meta/ files (6 files → 108113)
- [ ] 7.12 Renumber 12-settings/ files (5 files → 114118)
- [ ] 7.13 Renumber 13-polish/ files (10 files → 119128)
- [ ] 7.14 Renumber 14-data-assets/ files (13 files → 129141)
---
## Phase 8 — Update Cross-References
After renumbering, every internal cross-reference in every file must point to the correct filename.
- [ ] 8.1 Search all `.md` files for `](XX_` patterns
- [ ] 8.2 Verify each link target exists at the referenced path
- [ ] 8.3 Fix any broken or stale links
---
## Phase 9 — Update AUDIT_REPORT.md
- [ ] 9.1 Update all status columns to ✅ for previously missing/bundled systems
- [ ] 9.2 Update file counts (final: ~141 files, 0 missing)
- [ ] 9.3 Remove "Recommendations" section (all completed)
- [ ] 9.4 Add "Resolved" section documenting what was done
---
## Phase 10 — Update CONTEXT.md
- [ ] 10.1 Update directory structure to reflect all 14 directories
- [ ] 10.2 Update file count to ~141
- [ ] 10.3 Update build order to 14 phases
- [ ] 10.4 Update naming conventions reference
- [ ] 10.5 Mark Clean Slate refactoring as complete
---
## Phase 11 — Final Verification
- [ ] 11.1 Run `list_files` recursively on `docs/blueprints/` — verify 14 directories, ~141 files
- [ ] 11.2 Cross-reference: every Master system (Section 112) should have exactly 1 file
- [ ] 11.3 Cross-reference: all 20 Data Asset types from Section 13 have a spec
- [ ] 11.4 Verify no duplicate system names across directories
- [ ] 11.5 Verify all files follow TEMPLATE.md format (header, enums, structs, variables, functions, dispatchers, flow, communications, reuse)
- [ ] 11.6 Verify sequential numbering from 01 to 141
- [ ] 11.7 Run `git status` — should show renames, new files, deleted files, no orphaned files
---
## Phase 12 — Git Commit
- [ ] 12.1 Stage all changes
- [ ] 12.2 Commit with message: `refactor: clean slate — 1:1 master-to-file mapping for all 141 systems`
- [ ] 12.3 Verify commit is clean
- [ ] 12.4 (Optional) Create PR to main
---
## Notes for Execution Agent
1. **Use `apply_diff` for renaming file header lines** — change the `# XX_SystemName` line only
2. **Use `write_to_file` for creating new files** (always with complete content)
3. **Use `delete_file` for removing obsolete files**
4. **NEVER use `sed`, `awk`, or `cat >`** for file operations
5. **Read the Master document section** for each new file before writing it to get accurate variable/function definitions
6. **Follow TEMPLATE.md religiously** — every new file must have all required sections
7. **Commit after each Phase** (not after every file) to keep git history reasonable
8. **If a Master section is unclear on a detail**, use the conventions from nearby systems and document the assumption in Reuse Notes
---
*Checklist created 2026-05-18*