docs: update architecture gate progress

BUILD_IN_PUBLIC_PLAN.md:
- Mark systems gate items deterministic clock and headless checksum
  as complete; remaining gate work stays flagged as in-progress
- Rename TaskZone references to ActivityMarkers for consistency

LEARNING_ROADMAP.md:
- Add architecture gate progress note: first deterministic slice
  (SimulationClock, seeded streams, headless checksum) is implemented
- Update recommended implementation order to reflect shifted priorities

PROJECT_CONTEXT.md:
- Note that farm and forest markers have been deleted from main.tscn
- Update activity marker description (4 remaining: guard/study/rest/food)
- Add SimulationClock.gd and deterministic_simulation_test.gd to repo map
- Update technical debt: randomness is now seeded but RNG state is not
  yet serialized; clock is explicit but orchestration still lives on scene tree
- Gate status updated with completed first-slice summary

RESOURCE_NODE_MIGRATION.md:
- Mark Phase 4b (player parity) complete
- Phase 6 renamed from 'remove zone model' to 'replace activity markers'
  with progress note: TaskZone container and FarmZone/ForestZone deleted
- Update divergences to note farm/forest scene nodes have been removed
This commit is contained in:
2026-07-05 11:23:19 +02:00
parent 37610242bf
commit c690937afa
4 changed files with 73 additions and 45 deletions
+15 -7
View File
@@ -10,11 +10,11 @@
| **4a** | Wood target selection (NPC) | ✅ Complete |
| **4b** | Player parity (extraction contract) | ✅ Complete |
| **5** | Jajce world placement | 🔶 Scaffold/navigation proof complete |
| **6** | Remove remaining zone model | ❌ Not started |
| **6** | Replace remaining activity markers | 🔶 Resource zones removed; activity targets pending |
### Key divergences from the original plan
- **Zone fallback removed** (Phase 3): `gather_food`/`gather_wood` no longer fall back to `FarmZone`/`ForestZone` markers when no resource node is available. The original plan called for a logged fallback; instead, the NPC goes idle (via `navigation_failed` → wander) to guarantee resource conservation. Player harvesting also uses resource nodes; remaining zones serve only non-resource activities.
- **Zone fallback removed** (Phase 3): `gather_food`/`gather_wood` no longer fall back to `FarmZone`/`ForestZone` markers when no resource node is available. The original plan called for a logged fallback; instead, the NPC goes idle (via `navigation_failed` → wander) to guarantee resource conservation. The obsolete farm and forest scene nodes have now also been deleted. The remaining markers are temporary targets for eating, rest, study, and patrol—not resource fallbacks.
- **`navigation_failed` signal** (discovered during Phase 4): Added a separate signal pathway to distinguish genuine arrival from navigation failure. The original plan treated all "arrivals" uniformly.
- **Stale-path prevention** (discovered during Phase 4): Added `path_request_id` + `path_pending` to reject async path results that arrive after a new target was set or the NPC died.
- **Duplicate node_id detection** (discovered during Phase 4): Added startup validation that disables nodes with duplicate IDs and pushes an error.
@@ -58,8 +58,9 @@ environment is integrated. It is easier to debug target selection, reservation,
depletion, and task completion without terrain and navigation changes happening
at the same time.
The old zones remain only as a temporary fallback while actions are migrated.
They are not part of the target architecture.
The old resource zones have been removed. Temporary activity markers remain
only for actions whose real target type does not exist yet. They are not
fallbacks and are not part of the target architecture.
## Why this is the next systems step
@@ -172,7 +173,7 @@ Main
│ ├── BerryBush_02
│ ├── Tree_01
│ └── Tree_02
└── TaskZone temporary fallback
└── ActivityMarkers temporary eat/rest/study/patrol targets
```
When `JajceWorld` is integrated, move or recreate the world-object instances
@@ -493,7 +494,7 @@ deferred until after the architecture gate, so this phase is not yet complete.
**Exit:** the existing food and wood loops work after moving from the flat map
to Terrain3D.
### Phase 6 — Remove the remaining zone model
### Phase 6 — Replace the remaining activity-marker model
This is not part of the first ResourceNode implementation.
@@ -513,7 +514,14 @@ Remove each old zone only when its replacement has:
- debug visibility;
- save representation.
**Exit:** `TaskZone` and task-to-marker mapping are deleted, not merely unused.
**Progress:** the `TaskZone` container and obsolete `FarmZone`/`ForestZone`
nodes have been deleted from `main.tscn`. The surviving nodes live under
`ActivityMarkers` to make their transitional role explicit. Task-to-marker
mapping still exists for eating, rest, study, and patrol, so this phase is not
complete.
**Exit:** temporary activity markers and task-to-marker mapping are deleted,
not merely unused.
## Test scenarios