Agent skill

mechanics-check

Audit SENTINEL game data integrity. Validates regions, jobs, vehicles, and favors against schema enums.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/mechanics-check

SKILL.md

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:

bash
python C:/dev/SENTINEL/sentinel-agent/scripts/check_mechanics.py

JSON Output (for CI/automation)

bash
python C:/dev/SENTINEL/sentinel-agent/scripts/check_mechanics.py --json

Present Results

Format the output as an actionable checklist:

markdown
## 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_faction and contested_by reference valid faction IDs
  • adjacent lists contain valid region IDs
  • Adjacency is bidirectional (if A→B then B→A)

Jobs (data/jobs/*.json)

  • faction matches FactionName enum (display names)
  • type matches MissionType enum
  • region (if present) matches Region enum
  • opposing_factions contain valid faction names
  • requires_vehicle_tags exist in at least one vehicle
  • requires_vehicle_type matches 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.py changes that add/remove enum values
  • The check is read-only — it never modifies files
  • JSON output can be filtered with jq:
    bash
    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

Didn't find tool you were looking for?

Be as detailed as possible for better results