assay
Helps your agent test web pages. It checks if the page works as expected and finds errors automatically. Useful for ensuring websites function well.
What it does
Assay is a tool that automatically checks if buttons and other controls on a web page you just created or modified are working correctly. It opens the page in a real browser, interacts with all elements, and reports any inconsistencies.
When to use it
- ✓After creating a new HTML page and wanting to see if its controls work.
- ✓After modifying a web page, its JavaScript, or CSS, to ensure everything still holds together.
- ✓When asked to check, QA, or smoke-test a local web page.
Example of what to ask your AI
“Check my 'index.html' page and tell me if the buttons work.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
You install the 'assay' tool on your computer. Then, you run a simple command pointing to your web page file. The tool opens the page, clicks on everything, and gives you a one-line summary of what it found.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add sickn33/agentic-awesome-skills --skill assayOr download just the file:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/assay/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
Assay
Overview
A page you have just written has no tests yet. assay serves the page locally, opens it in a real Chromium browser through Playwright, finds every control on it, uses all of them, and reports where the page contradicts itself. There are no tests to write, no LLM, no API key, and no network. The same page gives the same result every time.
Use this skill after you create or change a web page, to run assay on that page and report the one line it prints. The skill reports the result and does not change code because of it unless you ask.
When to Use This Skill
- Use when you have just created an HTML page and want to know whether its controls work before you move on.
- Use when you changed a page, or the JavaScript or CSS that a page loads, and want to confirm the page still holds together.
- Use when the user asks you to check, QA, or smoke-test a local web page.
- Run it once at the end, after the last edit, on each page you changed. Do not run it while you are still making changes.
How It Works
Step 1: Install the CLI once
Install assay from PyPI. The package is named assay-ui and the command it installs is assay.
pip install assay-ui
It needs Python 3.10 or newer. On the first run assay downloads the Chromium build Playwright uses.
Step 2: Run assay on the page you changed
Point assay at the page itself and ask for the one-line summary.
assay <the page you changed> --one-line
Point it at a file such as todo.html or dist/index.html. A folder also works and opens the index.html inside it. The page is often a folder or two above the file you edited, so a change to a script or stylesheet still means running assay on the page that loads it. assay needs no key, network, or configuration. A small page takes seconds, and a busy one can take a minute or more.
Step 3: Report the one line assay printed, verbatim
Put assay's output, word for word, as the last thing in your reply. It is already one line, or one line and a short list. Do not summarize it, reformat it, add to it, or write your own version.
A clean run looks like this, with assay's own numbers and wording.
assay: checked todo/todo.html, 8 checks, nothing flagged.
A run that flagged something looks like this, followed by a short list.
assay: checked notes/index.html, 12 checks, 4 flagged:
Report the line whether it flagged anything or not. Without it, the reader cannot tell a clean page from a check that never ran.
If the command did not run, say so in your own words, name the page, and quote what the shell actually printed. Never describe a check that did not happen as one that passed, and never guess at a cause.
Step 4: Report the finding and stop
Report what assay found and stop. Do not edit code in response to a finding in the same reply. If the user then asks you to fix it, fix it.
Examples
Example 1: A page that checks out clean
User: I added a to-do list at todo/todo.html. Does it work?
assay todo/todo.html --one-line
assay: checked todo/todo.html, 8 checks, nothing flagged.
Report that line as the last thing in the reply, and do not change the page.
Example 2: A page where assay flagged something
assay notes/ --one-line
assay: checked notes/index.html, 12 checks, 4 flagged:
- draw on canvas twice, then press Undo twice: it reacted one press late
Report the whole line and its short list, say that a finding is a place to look rather than a confirmed bug, and wait for the user to ask before changing anything.
Example 3: The command did not run
assay dist/index.html --one-line
assay: error: dist/index.html does not exist
Say that assay did not run, name the page, and quote the message. Do not report a check that never happened as one that passed.
Best Practices
- ✅ Run assay once, at the end, on each page you changed.
- ✅ Point it at the built page, such as
dist/index.html, not at a source template. - ✅ Print assay's one line exactly as it came out, as the last thing in your reply.
- ✅ When assay flags something, treat it as a place to look and wait to be asked before changing code.
- ❌ Do not run assay while you are still editing the page.
- ❌ Do not summarize, reword, or invent the result, and never report a check that did not run as one that passed.
Limitations
…
FAQ
Do I need to write tests?
No, Assay does everything on its own without you needing to write any test code.
Does it need internet or an API key?
No, Assay runs locally, does not use the internet, and requires no keys.
What does 'flagged' mean?
It means Assay found something that might need attention, like a button that didn't react as expected. It's a place for you to look, not necessarily a bug.
Details
Original description by the author
Run assay on a web page you just wrote or changed. It opens the page in a real browser, drives every control, and reports where the page contradicts itself. Deterministic, no API key, no network.
Popularity
- GitHub stars
- 48k
- Ranking position
- #2211
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
00-andruia-consultant
Helps your agent start or improve AI projects. It analyzes code, suggests tools, and creates action plans in Spanish.
sickn33/agentic-awesome-skills
007
Lets your agent perform security audits and threat modeling. It's useful for protecting projects against attacks and vulnerabilities.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Helps your agent create or improve AI tools. It defines how tools work, writes documentation, and validates the structure.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Lets your agent create a summary about a specific industry. It's useful for understanding the context, rules, usage patterns, and risks of a project, using reliable sources.
sickn33/agentic-awesome-skills
Similar skills
angular-developer
Helps your agent create Angular code and give project structure advice. Useful for starting new projects, creating code parts, or improving performance and accessibility.
affaan-m/ECC
frontend-a11y
Helps your agent make web interfaces accessible to everyone. It ensures websites and apps work well with screen readers and keyboard navigation.
affaan-m/ECC
frontend-patterns
Has your agent apply modern patterns in frontend development. It optimizes performance, manages state, and follows best practices in React and Next.js.
affaan-m/ECC