# Feel-Test CI Runbook

The nightly V5 Gauntlet plan runs `V5.Tests.GoldenReplay` first, then every
scenario returned by `UV5_Test_FeelTestCatalog::BuildFeelTestScenarios`.
Failures block the affected cell release gate because the scenarios cover the
cell-specific feel promises in features section "Cell Feel Tests".

## Failure Modes

| Signal                        | Likely cause                                                                 | Required triage                                                                                           |
| ----------------------------- | ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| Missing scenario record       | `FeelTests/*.feeltest.json` and the C++ catalog no longer match              | Add or remove both records in the same change, then rerun `validate-cells.py` and `V5.Tests.Feel.Catalog` |
| Golden replay output mismatch | Deterministic input stream changed without updating expected outputs         | Confirm the gameplay change is intended, update expected outputs, and rerun `V5.Tests.GoldenReplay`       |
| Gauntlet entry missing        | `UV5_Test_GauntletDriver::BuildNightlyRun` stopped wiring a catalog scenario | Restore the entry before the nightly gate can pass                                                        |
| Runtime timeout               | The authored scenario exceeded its expected duration plus buffer             | Inspect automation capture, tighten the scenario path, or raise the timeout with producer approval        |
| Criteria regression           | One or more scenario success criteria did not emit a pass signal             | Fix the owning system or update the criteria only when the feature promise changed                        |

## Local Verification

Run the focused Unreal automation before pushing a feel-test change:

```bash
runuser -u ueagent -- /root/workspace/UnrealEngine-5.5/Engine/Binaries/Linux/UnrealEditor-Cmd \
  /root/workspace/oshun-nisaba/V5/ue/V5.uproject \
  -NullRHI -NoSound -Unattended -NoSplash -NoP4 \
  -TestExit="Automation Test Queue Empty" \
  -ExecCmds="Automation RunTests V5.Tests; Quit"
```

Also run the docs and cell validators because the JSON scenario records are
release-gate inputs:

```bash
python3 V5/tools/validate-v5-docs.py
python3 V5/tools/validate-cells.py
pytest -q V5/tools/test_validate_v5_docs.py V5/tools/test_validate_cells.py
```
