skill
This commit is contained in:
parent
cb13b29c9e
commit
6b15466a92
1 changed files with 26 additions and 8 deletions
|
|
@ -13,6 +13,22 @@ Always validate IdleSpectator changes with the in-game harness.
|
|||
Do not rely on OS mouse/keyboard automation (Wayland-flaky).
|
||||
Do not call `Application.Quit()` (can hang Steam on Linux).
|
||||
|
||||
Quality bar (also in `.cursor/rules/idle-spectator-quality.mdc`):
|
||||
|
||||
1. **Comprehensive / scales** - fix the class via discovery, not one logged example.
|
||||
2. **Long-term / maintainable** - no brittle shortcuts.
|
||||
3. **Always live-test** - open the game, spawn/drop entities, statuses, wars, plots; do not stop at code review or a single assert.
|
||||
|
||||
## Live playtest (required for features/fixes)
|
||||
|
||||
Harness scenarios are the gate, not a substitute for poking the world.
|
||||
|
||||
- Start or reuse WorldBox with `worldbox-ctl` / `harness-run.sh` (`all` permissions).
|
||||
- Use harness actions that actually seed the situation: `spawn`, `status_apply` / `status_apply_nearby`, combat sessions, war/plot/family/outbreak sessions, wire attack sides, etc.
|
||||
- When a bug was seen in a soak or Player.log, reproduce that shape in-world (same sticky kind, pair size, status class) before declaring fixed.
|
||||
- Prefer extending `HarnessScenarios.cs` so the live repro becomes a repeatable `--repeat 3` gate.
|
||||
- Watching the camera tip + dossier after drops counts; reading only the C# change does not.
|
||||
|
||||
## Sandbox / permissions (required)
|
||||
|
||||
**Never start, relaunch, or kill WorldBox / Steam from the Cursor sandbox.**
|
||||
|
|
@ -49,23 +65,25 @@ Vanilla `Tooltip` / `TooltipLibrary` (`tooltips/tooltip_actor`, etc.) may be reu
|
|||
|
||||
After any feature or bug fix in `IdleSpectator/`:
|
||||
|
||||
1. Bump `IdleSpectator/mod.json` version (NML recompiles on game load).
|
||||
2. If the game was already running, recompile with:
|
||||
1. Design for full coverage (discovery / class rules), not the single failing tip.
|
||||
2. Bump `IdleSpectator/mod.json` version (NML recompiles on game load).
|
||||
3. If the game was already running, recompile with:
|
||||
```bash
|
||||
./scripts/worldbox-ctl.sh restart
|
||||
```
|
||||
3. Extend or add a scenario in `IdleSpectator/HarnessScenarios.cs` when the change is new behavior.
|
||||
4. Day-to-day / PR gate:
|
||||
4. Live-test: spawn/drop the relevant entities and statuses in-world (via harness scenario or focused harness commands). Confirm tip/focus/dossier behavior matches the contract.
|
||||
5. Extend or add a scenario in `IdleSpectator/HarnessScenarios.cs` when the change is new behavior.
|
||||
6. Day-to-day / PR gate:
|
||||
```bash
|
||||
./scripts/harness-run.sh --repeat 3 critical_smoke
|
||||
```
|
||||
5. After larger changes (director, discovery, settings, input, tips, chronicle), also run:
|
||||
7. After larger changes (director, discovery, settings, input, tips, chronicle), also run:
|
||||
```bash
|
||||
./scripts/harness-run.sh regression
|
||||
```
|
||||
6. If you added a focused scenario, run it directly too.
|
||||
7. Iterate until **all repeats PASS**. Do not stop after one flaky pass.
|
||||
8. Report: scenario name(s), PASS/FAIL counts, and any new asserts.
|
||||
8. If you added a focused scenario, run it directly too with `--repeat 3`.
|
||||
9. Iterate until **all repeats PASS**. Do not stop after one flaky pass.
|
||||
10. Report: scenario name(s), PASS/FAIL counts, what you spawned/live-checked, and any new asserts.
|
||||
|
||||
### HUD / visual changes - screenshot gate (required)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue