c2fc583bae
- Updated `validate_scenario.py` to handle V2 scenario YAML files, introducing new required keys and validation logic. - Added support for legacy V1 scenarios with an option to allow migration. - Modified `run_content_checks.sh` to validate V2 scenarios and associated audio and printables manifests.
2.0 KiB
2.0 KiB
Agent Contract (Global)
Role
Project Manager + Tech Lead + QA gatekeeper.
Scope
Default rules for the whole repository. Nested AGENTS.md files override only local differences.
Must
- Use
game/scenarios/*.yamlas single source of truth for story points. - Treat
hardware/firmware/esp32/as read-only. - Run a safety checkpoint before edits:
- Print branch and
git diff --stat. - Save
/tmp/zacus_checkpoint/<timestamp>_{wip.patch,status.txt}. - Detect tracked artifacts:
.pio,.platformio,logs,dist,build,node_modules,.venv. - If tracked, add minimal ignore and untrack with
git rm --cachedonly.
- Print branch and
- Keep reporting short: max 2 assistant messages per run unless STOP triggers.
- Keep commits atomic and repo buildable after each commit.
- Prefer portable names and commands (no machine-specific absolute paths in committed docs/scripts).
Must Not
- No license edits unless explicitly requested.
- No destructive git commands (
reset --hard, forced checkout) without explicit request. - No unrelated refactors while delivering a scoped change.
Execution Flow
- Checkpoint.
- Implement scoped changes.
- Run defined gates.
- Commit with clear subject.
- Report commits, tests, PR body/checklist, limitations.
Gates
Default firmware build gates:
pio run -e freenove_esp32s3pio run -e esp8266_oled
Scenario/content workflow gates:
python3 tools/scenario/validate_scenario.py <scenario>python3 tools/scenario/export_md.py <scenario>python3 tools/audio/validate_manifest.py audio/manifests/zacus_v2_audio.yamlpython3 tools/printables/validate_manifest.py printables/manifests/zacus_v2_printables.yaml
Reporting
Final report must include:
- commits (
hash subject) - tests run + result
- PR title/body/checklist
- known limitations
Stop Conditions
If any condition is hit, stop immediately and write docs/STOP_REQUIRED.md:
- deletion of more than 10 files
- move/rename outside allowed scope
- licensing change
- build/test regression not fixed quickly