# Manual QA — NEO-130 (reward telemetry hook sites) Reference: [implementation plan](../plans/NEO-130-implementation-plan.md), [NEO-127 implementation plan](../plans/NEO-127-implementation-plan.md) (reward router), [NEO-128 implementation plan](../plans/NEO-128-implementation-plan.md) (quest-state 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**; reward delivery behavior matches NEO-127/128. ## Code review check - [ ] Open `server/NeonSprawl.Server/Game/Rewards/RewardRouterOperations.cs`. - [ ] Confirm **`unlock_granted`** stub comment block after item + skill XP apply loops, before **`RewardDeliveryEvent`** construction. - [ ] Confirm **`reward_delivery`** comment block immediately after **`deliveryStore.TryRecord`** returns **`true`** (inside the success branch). - [ ] Confirm **`TODO(E9.M1)`** markers and planned payload fields; **no** new `ILogger` or metrics calls. - [ ] Confirm **no** duplicate hook comments in **`QuestStateOperations`**, **`QuestAcceptApi`**, or **`QuestProgressApi`**. - [ ] Open `server/NeonSprawl.Server/Game/Rewards/RewardDeliveryEvent.cs` — xml summary cross-references **`reward_delivery`** hook site. - [ ] Open [server README — Reward telemetry hooks (NEO-130)](../../server/README.md#reward-telemetry-hooks-neo-130) — NEO-130 subsection present with event table. ## Regression (optional) ```bash cd server && dotnet test NeonSprawl.sln ``` Expect all tests pass (comments-only change). ## Bruno (optional sanity) From `bruno/neon-sprawl-server/quest-progress/` against a running server: - **Get quest progress after gather intro complete** — **`completionRewardSummary`** unchanged when quest completes via wiring. - **Health after quest complete reward wiring** — server health unchanged.