15 KiB
Clean Slate Refactoring — Implementation Checklist
Source Plan: docs/architecture/CLEAN_SLATE_PLAN.md
Master Document: UE5_Modular_Game_Framework.md
Audit: docs/blueprints/AUDIT_REPORT.md
Template: docs/blueprints/TEMPLATE.md
Phase 0 — Setup
- 0.1 Verify current
git statusis clean (commit any pending changes first) - 0.2 Create branch
refactor/clean-slatefrommain - 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:
- 01-core/ → 01–12
- 02-player/ → 13–21
- 03-interaction/ → 22–32
- 04-inventory/ → 33–44
- 05-saveload/ → 45–53
- 06-ui/ → 54–66
- 07-narrative/ → 67–77
- 08-weapons/ → 78–89
- 09-ai/ → 90–98
- 10-adaptive/ → 99–107
- 11-meta/ → 108–113
- 12-settings/ → 114–118
- 13-polish/ → 119–128
- 14-data-assets/ → 129–141
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.mdstays01_.06-ui/files get54_through66_. -
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 → 13–21)
-
7.3 Renumber 03-interaction/ files (11 files → 22–32)
-
7.4 Renumber 04-inventory/ files (12 files → 33–44)
-
7.5 Renumber 05-saveload/ files (9 files → 45–53)
-
7.6 Renumber 06-ui/ files (13 files → 54–66)
-
7.7 Renumber 07-narrative/ files (11 files → 67–77)
-
7.8 Renumber 08-weapons/ files (12 files → 78–89)
-
7.9 Renumber 09-ai/ files (9 files → 90–98)
-
7.10 Renumber 10-adaptive/ files (9 files → 99–107)
-
7.11 Renumber 11-meta/ files (6 files → 108–113)
-
7.12 Renumber 12-settings/ files (5 files → 114–118)
-
7.13 Renumber 13-polish/ files (10 files → 119–128)
-
7.14 Renumber 14-data-assets/ files (13 files → 129–141)
Phase 8 — Update Cross-References
After renumbering, every internal cross-reference in every file must point to the correct filename.
- 8.1 Search all
.mdfiles 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_filesrecursively ondocs/blueprints/— verify 14 directories, ~141 files - 11.2 Cross-reference: every Master system (Section 1–12) 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
- Use
apply_difffor renaming file header lines — change the# XX_SystemNameline only - Use
write_to_filefor creating new files (always with complete content) - Use
delete_filefor removing obsolete files - NEVER use
sed,awk, orcat >for file operations - Read the Master document section for each new file before writing it to get accurate variable/function definitions
- Follow TEMPLATE.md religiously — every new file must have all required sections
- Commit after each Phase (not after every file) to keep git history reasonable
- 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