# Validate Hardcoded

> Validate our hardcoded commands against code generated variants

- Skill: `arm-software/validate-hardcoded` (Agent Skill)
- Install (CLI): `npx skillmds@latest add arm-software/validate-hardcoded`
- Raw SKILL.md: https://api.skillmd.com/api/skills/arm-software/validate-hardcoded/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: arm-software (https://skillmd.com/u/arm-software)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/arm-software/validate-hardcoded

---


1. The generated code is not version controlled. You can make a temporary copy of the generated code
   to diff the new code against. It can be done like this:
```
  tmpdir=$(mktemp -d /tmp/validate_hardcoded.XXXXXX)
  cp generated/read_auto.cpp generated/read_auto.h \
     generated/write_auto.cpp generated/write_auto.h \
     generated/struct_read_auto.cpp generated/struct_write_auto.cpp \
     "$tmpdir"/
```
   Code diffs can now be created with eg `diff -u "$tmpdir/write_auto.cpp" generated/write_auto.cpp`.
3. In `scripts/vkconfig.py` set the lists `hardcoded`, `hardcoded_write`, `hardcoded_read` to empty (or if
   a specific command is requested for validation, simply remove this command from the list).
4. In `scripts/util.py` set the variable `bypass_checks` to `True`
5. Rerun the script `scripts/lava.py`. This will generate code generated variants of these hardcoded commands.
6. Revert the changes made to the above scripts.
7. In `scripts/vkconfig.py`, for each command in the lists `hardcoded`, `hardcoded_write`, `hardcoded_read`
   compare their hardcoded implementation in `src/hardcode_read.cpp` and `src/hardcode_write` with their
   autogenerated variants in the `generated/` folder. Assume that the hardcoded variant is older, and look for
   things it may be missing compared to generated variant. It is hardcoded because we want to deviate from the
   behaviour of this particular command, but we want it still to be a well-behaved member of the same family of
   commands. So behaviour common to all commands should still be present, such as callbacks for replay and `thaw`
   calls for capture.
8. Rerun `scripts/lava.py` to restore everything back to normal.

