.github/skills/mapper-verification-roms/SKILL.md
Create and update mapper verification ROMs in roms/automated_tests/mapper_verification using shared tests, per-mapper defs/configs, and specification-driven behavior.
npx skillsauth add rmstdope/neser mapper-verification-romsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill every time you create or update a ROM under roms/automated_tests/mapper_verification/. This ROM suite is configuration-driven: shared test behavior belongs in tests/ and common/, while mapper-specific behavior belongs in defs/ and configs/. Treat these ROMs as hardware-verification artifacts, not emulator-behavior snapshots.
Start from specification, never from implementation.
nes-hardware-research.Reuse before adding new assembly.
tests/test_*.s already covers the behavior.Keep responsibilities separated.
common/ or tests/.defs/mNNN.S_defs.inc.configs/mNNN.S.cfg.Prefer generic mapper-family helpers.
mmc3_core_macros.inc, vrc4_core_macros.inc, taito_core_macros.inc, and jy_company_macros.inc when the mapper fits those families.Use the right verification channel.
$6000 status-byte protocol.$6000-$7FFF is used for registers, PRG-ROM, or other unsafe accesses, set CONSOLE_VERIFICATION = 1 and keep the ROM console-verifiable instead.Follow the repository build wiring.
ROM_RULE targets for single-aspect ROMs.COMBINED_RULE targets for combined ROMs.mNNN.S_aspect.nes and mNNN.S.nes conventions.If you add a new test aspect, make it reusable.
tests/test_<aspect>.s using the same single-ROM and combined-ROM pattern as existing aspects.tests/test_combined.s so the new aspect can be imported and called behind HAS_TEST_<ASPECT> gates.Keep Rust runner wiring in sync.
src/integration_tests/mapper_tests.rs with setup_rom_test! or setup_rom_console_test! when ROM coverage changes.bin/ outputs up to date for CI.Bias toward reusable assembly.
Update architecture.md if new test infrastructure, build wiring, or verification approaches change the documented directory structure or testing strategy.
references/repo-architecture.md: repository layout, build flow, extension points, and file-level guidance for adding mappers or aspects.Adding coverage for a mapper that already fits test_prg_banking.s:
create defs/mNNN.S_defs.inc, create configs/mNNN.S.cfg, add Makefile targets, and wire Rust integration tests. Do not clone test_prg_banking.s.
Adding a new reusable aspect such as a new write-protection behavior:
add tests/test_<aspect>.s, hook it into test_combined.s, expose mapper-specific control through defs macros, and opt mappers in through Makefile aspect lists.
Adding a mapper that cannot safely use $6000:
keep the shared shell and test flow, but set CONSOLE_VERIFICATION = 1 in the defs file and use setup_rom_console_test! in Rust.
documentation
Research Game Boy/Game Boy Color hardware details from Pan Docs first, with curl and mirror fallbacks, and SameBoy implementation only when specs are incomplete.
development
Research NES/Famicom hardware details from NESdev first, with curl and mirror fallbacks, and Mesen implementation only when specs are incomplete.
testing
Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like "create a skill", "author a skill", "tidy up a skill", "improve this skill", "review the skill", "clean up the skill", "audit the skill".
testing
Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, OpenClaw cron scheduling for periodic checks, or version status checks on a machine running OpenClaw (laptop, workstation, Pi, VPS).