Claude-skill-registry-data mechanics-check
Audit SENTINEL game data integrity. Validates regions, jobs, vehicles, and favors against schema enums.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry-data
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry-data "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/mechanics-check" ~/.claude/skills/majiayu000-claude-skill-registry-data-mechanics-check && rm -rf "$T"
manifest:
data/mechanics-check/SKILL.mdsource content
Mechanics Integrity Check
Validate SENTINEL game data consistency to catch bugs before they surface during play.
When to Use
- After modifying
, job templates, or favor costsregions.json - 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
)
data/regions.json- All 11 Region enum values have entries
andprimary_faction
reference valid faction IDscontested_by
lists contain valid region IDsadjacent- Adjacency is bidirectional (if A→B then B→A)
Jobs (data/jobs/*.json
)
data/jobs/*.json
matches FactionName enum (display names)faction
matches MissionType enumtype
(if present) matches Region enumregion
contain valid faction namesopposing_factions
exist in at least one vehiclerequires_vehicle_tags
matches actual vehicle typesrequires_vehicle_type
Vehicles (tui_commands.py
VEHICLE_DATA)
tui_commands.py- 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
)
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
changes that add/remove enum valuesschema.py - 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 | |
| Regions | |
| Jobs | |
| Vehicles | |
| Favors | |