Installs into .claude/skills of the current project.
Are you the author of Validate As Consumer?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/niksavis-validate-as-consumer)
---
name: validate-as-consumer
description: Runs a verified change the way a consumer does, against its requirement. Use at VALIDATE or before a README claims a capability.
---
<!-- Generated by `basicly skills-build` from skill.yaml. Do not edit; edit the source. -->
# Validate as a consumer
This skill checks a verified change as a consumer uses it.
Read existing verification evidence; repeating deterministic checks alone is not consumer validation.
## Rules
- **Ask: could this transcript exist without the change?** If yes, you ran the suite again and validated nothing.
- **Check the whole task contract.** Assess Context, every Acceptance criterion and any distinct Requirements together; the builder's summary alone can drift from the user need.
- **Paste the output, never describe it.** A description is a claim about a result.
- **Preserve findings and responsibility.** An independent validator reports defects to the owner before repair. An owner doing consumer checks fixes demonstrated in-scope causes and retains the failing evidence; no new refinement pass is needed.
## Three questions, in order
1. **Does the demonstration do what the child claimed?** Type the command or make the request. Read what it prints.
2. **Does it meet the acceptance criterion, or does it only run with no error?**
A criterion that passes without the behaviour is the failure to find.
3. **What does a consumer hit that a builder does not?**
Look for a missing prerequisite, an error that names an internal path, or an instruction that assumes this repository.
## Use the operational environment
A consumer has no worktree, no fixtures and no knowledge of the implementation.
When the change ships to a consumer, run it there: a new directory, an install, and the documented command.
Some defects are visible only there, for example a file over a budget that the local config raised.
## Rendered pages
A rendered page is an image. A page can pass every check and still be unreadable, so look at the picture:
- Render the page and open the screenshot before you call it done. On WSL, drive Windows Chrome over a UNC path:
```sh
chrome.exe --headless=new --disable-gpu --window-size=1920,1080 --screenshot=<win-path> "file://\\\\wsl.localhost\\<distro>\\<path>"
```
- Check each acceptance criterion against the picture.
- Render from real data as well as the fixture. A fixture with fewer rows hides an overflow.
- When the repository supplies an overflow checker, run it and read both of its signals, `render-overflow` and `render-overlap`. A clipped box shows no scrollbar.
```sh
uv run python .scripts/check_render_overflow.py <page.html>
```
- Shoot every viewport width the layout claims.