# Codebase Readiness Review

Date: 2026-05-21

Scope: source code, build scripts, verification scripts, config files, and the
roadmap after completion of `0.1.S` and migration to the Ubuntu Unreal build
VM.

## 2026-05-21 Restart Audit Summary

- Active game checkout is clean on `main` at
  `/home/nathan/UnrealProjects/AgrarianGame`.
- Active remote is self-hosted Gitea:
  `http://192.168.5.21:3000/nathan/agrarian-game.git`.
- Repository currently tracks 723 files, including 300 Git LFS assets.
- `git lfs fsck` passes.
- Ignored Unreal-generated folders exist locally from verification builds:
  `Binaries/`, `Intermediate/`, `Saved/`, and `DerivedDataCache/`.
- Those generated folders are ignored by `.gitignore` and are not part of the
  repository state.
- Unreal Engine `5.7.4-release` is built from source at
  `/opt/UnrealEngine-5.7`.
- `AgrarianGameEditor Linux Development` builds successfully on the Ubuntu VM;
  the latest incremental check reported `Target is up to date` and
  `Result: Succeeded`.
- Headless project load through the Linux source-built editor succeeds in
  `NullRHI` mode with `0 error(s)`.
- The old roadmap project-location block was stale and has been reset to the
  Ubuntu Unreal VM plus Gitea workflow.
- The next coding phase should begin with exactly
  `0.2.0 Investor Visual Credibility Baseline`, then move to
  `0.2.A Land And Claiming` after the investor-facing world no longer reads as
  placeholder-heavy.

## 0.1 Completion Check

All `0.1.A` through `0.1.S` roadmap checkboxes are complete. The remaining
unchecked roadmap items before `Version 0.2` are North Star and philosophy
statements, not incomplete `0.1` implementation tasks.

## Current Strengths

- Core gameplay systems are separated into recognizable Unreal classes:
  character, controller, game state, survival, inventory, crafting, building,
  persistence, weather, resource nodes, wildlife, shelter, campfire, water, UI,
  and automation.
- Server-authoritative paths are already present for core multiplayer actions
  such as crafting, item use/drop/splitting, travel, save/load, respawn, fire,
  resource depletion, wildlife state, world actors, and weather state.
- Persistence has a central subsystem and explicit world actor/resource/player
  capture paths, which is the right base for 0.2 homesteading.
- The project now has broad verifier coverage for roadmap promises and MVP
  guardrails. This is useful for preventing accidental regression while the team
  moves into larger systems.
- The Windows build pipeline, package script, visual QA gate, and Linux server
  target are established enough to keep milestone work shippable.
- The Ubuntu source-built Unreal lane now gives Codex a headless, local-disk
  development path that is better suited to automated C++ work than the old
  mapped-drive Windows workflow.

## Cleanup Findings

- `AgrarianEditorAutomationLibrary.cpp` is doing too much. It contains map
  import, gameplay smoke tests, persistence tests, and setup helpers in one
  large file. It should be split by responsibility before 0.2 adds claiming,
  farming, storage, and household tests.
- The MVP frontend is still implemented as runtime-created widget trees. This
  has been effective for fast iteration, but 0.2 should move toward reusable
  UMG widgets, shared styling, and a cleaner input/navigation model.
- Placeholder/proxy meshes are intentionally still present for resources,
  shelters, campfires, water, wildlife, and characters. 0.2 should replace the
  highest-impact placeholders with durable realistic assets while preserving
  data-driven class behavior.
- Several systems use hard-coded Ground Zero, MVP, and automation constants.
  These are acceptable for 0.1 but should move toward data assets, config, or
  tile metadata as 0.2 introduces claims, crops, animals, storage, and
  homestead state.
- Admin/dev console commands currently share runtime controller paths. Before
  broader testing, privileged commands need a clearer authority, role, and
  audit boundary so tester tools do not become gameplay exploits.
- Verifier scripts are useful but numerous. 0.2 should add a grouped verifier
  runner so milestone verification is one command with explicit categories.
- Some status docs predate the automated setup passes and should be treated as
  historical unless their claims are repeated in the main roadmap or this
  readiness review.
- `ripgrep` is not installed on the Ubuntu Unreal VM. This is not blocking, but
  adding it would make future audits and code search faster.

## Low-Risk Cleanup Applied

- Removed duplicate `SavingAndQuit` branch logic from the MVP frontend continue
  flow. Behavior is unchanged, but the control path is now easier to read.

## 0.2 Engineering Priorities

- Start with `0.2.0 Investor Visual Credibility Baseline`: terrain material,
  grasses/shrubs/trees, water, character bodies/clothing, resource objects,
  fire/smoke, shelter pieces, and wildlife, in that order.
- Then finish `0.2.A Land And Claiming` before moving to farming,
  domestication, storage, or economy work.
- Keep land claims, farming, storage, household tasks, and future economy state
  server-authoritative from the first implementation pass.
- Add schema/version fields when introducing new persistent records.
- Use data assets for claim rules, crop definitions, animal definitions,
  storage container definitions, and early profession/knowledge topics.
- Create focused automation helpers by domain instead of expanding the current
  monolithic editor automation file.
- Replace placeholder visuals in the order investors and testers notice them:
  terrain material, grasses/shrubs/trees, water, character bodies/clothing,
  resource objects, fire/smoke, shelter pieces, and wildlife.
- Keep ray tracing optional. The default non-ray-traced path must remain the
  baseline for demo readability and remote testing.
