name: mechanics-check description: Audit SENTINEL game data integrity. Validates regions, jobs, vehicles, and favors against schema enums. allowed-tools: Bash, Read, Glob, Grep user-invocable: true proactive: false
Mechanics Integrity Check
Validate SENTINEL game data consistency to catch bugs before they surface during play.
When to Use
- After modifying
regions.json, job templates, or favor costs - Before committing game data changes
- When adding new factions, regions, or mission types
- After updating schema enums
- Periodic health checks on game data
How to Run
Quick Check (Recommended)
Run the validation script directly:
python C:/dev/SENTINEL/sentinel-agent/scripts/check_mechanics.py
JSON Output (for CI/automation)
python C:/dev/SENTINEL/sentinel-agent/scripts/check_mechanics.py --json
Present Results
Format the output as an actionable checklist:
## Mechanics Health Report
### Status: [HEALTHY | NEEDS ATTENTION | BROKEN]
### Issues Found
- [ ] Issue 1 (ERROR) — must fix
- [ ] Issue 2 (WARNING) — should investigate
- [ ] Issue 3 (INFO) — informational
### Recommendations
- ...
What It Checks
Regions (data/regions.json)
- All 11 Region enum values have entries
primary_factionandcontested_byreference valid faction IDsadjacentlists contain valid region IDs- Adjacency is bidirectional (if A→B then B→A)
Jobs (data/jobs/*.json)
factionmatches FactionName enum (display names)typematches MissionType enumregion(if present) matches Region enumopposing_factionscontain valid faction namesrequires_vehicle_tagsexist in at least one vehiclerequires_vehicle_typematches actual vehicle types
Vehicles (tui_commands.py VEHICLE_DATA)
- All job-required tags exist in at least one vehicle
- Reports orphan tags (defined but not used by any job) as INFO
Favors (systems/favors.py)
- All FavorType values have costs defined
- All Disposition levels have favor mappings and cost modifiers
Severity Levels
| Severity | Meaning | Action |
|---|---|---|
| ERROR | Breaks game functionality | Must fix |
| WARNING | Inconsistency that may work | Should investigate |
| INFO | Suggestion or design note | Optional |
Exit Codes
| Code | Meaning |
|---|---|
| 0 | All checks passed (HEALTHY) |
| 1 | Warnings only (NEEDS ATTENTION) |
| 2 | Errors found (BROKEN) |
Tips
- Run after any
schema.pychanges that add/remove enum values - The check is read-only — it never modifies files
- JSON output can be filtered with jq:
python check_mechanics.py --json | jq '.issues[] | select(.severity == "error")' - Orphan vehicle tags (INFO) are not bugs — they're future-proofing for jobs not yet written
Data Sources
| Data | Location |
|---|---|
| Schema enums | src/state/schema.py |
| Regions | data/regions.json |
| Jobs | data/jobs/*.json |
| Vehicles | src/interface/tui_commands.py |
| Favors | src/systems/favors.py |