# Manual QA — NEO-64 (gather telemetry hook sites) Reference: [implementation plan](../plans/NEO-64-implementation-plan.md), [NEO-62 implementation plan](../plans/NEO-62-implementation-plan.md) (gather engine), [NEO-63 implementation plan](../plans/NEO-63-implementation-plan.md) (interact wiring). ## Preconditions - Run `NeonSprawl.Server` (`dotnet run` from `server/NeonSprawl.Server`; default `http://localhost:5253`) if exercising Bruno; not required for code review only. - This story adds **comments only**; gather behavior matches NEO-62/NEO-63. ## Code review check - [ ] Open `server/NeonSprawl.Server/Game/Gathering/GatherOperations.cs`. - [ ] Confirm **`resource_gathered`** comment block on the successful gather path (after depletion commit, before **`GatherResult`** return). - [ ] Confirm **`gather_node_depleted`** comment block is inside `if (remainingAfterGather == 0)` (not on pre-gather **`node_depleted`** deny). - [ ] Confirm **`TODO(E9.M1)`** markers and planned payload fields; **no** new `ILogger` or metrics calls. - [ ] Confirm **no** duplicate hook comments in `InteractionApi.cs`. - [ ] Open `GatherResult.cs` — summary cross-references NEO-64 hook anchor in **`TryGather`**. - [ ] Open [server README — Gather telemetry hooks (NEO-64)](../../server/README.md#gather-telemetry-hooks-neo-64) — NEO-64 subsection present. ## Regression (optional) ```bash cd server && dotnet test NeonSprawl.sln ``` Expect all tests pass (comments-only change). ## Bruno (optional sanity) From `bruno/neon-sprawl-server/interaction/` against a running server: - **Post interact prototype resource node gather** — `allowed: true` unchanged. - **Post interact gather then get inventory** — scrap quantity increases unchanged. - **Post interact depleted node deny** — `allowed: false`, `reasonCode: node_depleted` unchanged.