Skip to main content
skill CX Codex

agent-qa-authoring — Claude Code skill: tests and setup

This skill guides agents through creating, checking, and running agent-qa tests, suites, and hooks. Use it when you want changes to follow agent-qa’s schema and workflow.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add vostride/agent-qa --skill agent-qa-authoring -a claude-code
Open on GitHub

What agent-qa-authoring does

The skill lays out an agent-qa workflow: inspect the available MCP tools and workspace posture, consult the bundled contracts when exact fields matter, then verify a draft before writing it. It routes new tests and suites through agent_qa_write_test, test edits through agent_qa_refine_test, and configuration changes through agent_qa_change_config. Each write takes effect during the tool call.

IDs must come from the host system; the agent should read them from the returned entity rather than inventing or checking them by hand. Runs start with agent_qa_start_run and file patterns passed as patterns. The local server rejects scope, so leave it out. A run targeting environment: production is blocked unless agent-qa.config.yaml has top-level allowProduction: true. Deleting tests and editing an existing hook remain manual repository changes.

Only values from the file named by workspace.secretsFile are masked. Environment variables, workspace.envFile values, cookies, and screenshots are not, so use temporary credentials with limited access. Test and suite paths must also match workspace.testMatch or workspace.suiteMatch.

What it helps with

  • author an agent-qa test or suite
  • verify a draft before writing it
  • change configuration to add a hook
  • run tests using file paths or globs
  • inspect recent runs and retrieve a digest

Example prompts for the agent

  • Create an agent-qa test for the login flow and place it in a suitable suite.
  • Check this test draft against the agent-qa contract, then write it if verification passes.
  • Run the agent-qa tests matching tests/login* and report the run result.

How to install agent-qa-authoring

1Skills CLI (Vercel)

npx skills add vostride/agent-qa --skill agent-qa-authoring -a claude-code

2Manually: put the files in place

~/.claude/skills/agent-qa-authoring/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/agent-qa-authoring/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about agent-qa-authoring

How do I install agent-qa-authoring in Claude Code?

Run npx skills add vostride/agent-qa --skill agent-qa-authoring -a claude-code. The skill file is placed at ~/.claude/skills/agent-qa-authoring/SKILL.md.

What does agent-qa-authoring do?

It guides agents in authoring, verifying, and running agent-qa tests, suites, and hooks. It directs changes through agent-qa MCP tools and the bundled schema contracts.

Which values does agent-qa mask as secrets?

It masks only values from the file named by workspace.secretsFile. Environment variables, workspace.envFile values, cookies, and screenshots are not masked.

Source text

SKILL.md · Apache-2.0
---
name: agent-qa-authoring
description: Use when creating, editing, validating, or running agent-qa tests, suites, or hooks. Prefer agent-qa MCP tools, enforce canonical agent-qa IDs, and use the bundled schema reference to avoid hallucinated config keys or YAML fields.
metadata:
  short-description: Author agent-qa tests safely
---

# agent-qa Authoring

## Workflow

1. Discover the surface from the protocol itself: `tools/list` names every tool, and every caller
   sees and may call the same set. For the full picture — the capability catalog, the v1 to v2
   tool-name migration map, and this workspace's posture — run `npx agent-qa init --agent`, which
   prints one JSON document and writes nothing.
2. Read the workspace posture from that same manifest: whether this workspace has a configuration
   that reads. No MCP tool reads configuration.
3. Load `references/agent-qa-contracts.json` when you need exact schema fields or ID contracts.
4. Never mint an ID and never hand-write one. IDs are minted host-side where the entity is written:
   name what you want, then read the id back off the entity card `agent_qa_get_entity` returns.
5. Never validate an ID by hand either. The one URI codec validates every `agentqa://` reference as
   it is parsed, including the one `agent_qa_get_entity` resolves — a reference that comes back
   resolved is a reference that was well-formed.
6. Validate before you write. `agent_qa_refine_test`'s verify arm returns the same verdict that
   gates the write; there is no standalone linter over pasted text, on purpose, because a second
   validator can disagree with the one that gates.
7. Authoring changes apply in the call, and each answer names what it wrote:
   - A new test or suite file: `agent_qa_write_test`, which names the suite file the draft joins and
     writes it unless a keep-gate rejected it. Its `written` receipt names the file it wrote, or why
     none was written, with the draft's disposition and the four keep-gate results: that is how well
     the written test was verified.
     - If it answers `refused` with `statedValueRefusal`, the draft lost a value the request stated
       (a quoted string, number, price or date): show the user its `stage` and each of its
       `missingValues`, and stop. Never reword the request to get past the check; asking again in
       their own words is the user's call.
   - An edit to a test: `agent_qa_refine_test`.
   - A new hook or another configuration change: `agent_qa_change_config`, which writes the change
     and answers the files and fields it changed.
   - Each change is on disk when the call answers; nothing waits for a second call. `git status`
     and `git diff` show what changed, and `git restore` reverts a file.
8. There is no delete verb on any surface, by rule rather than by omission. Removing a test, a suite
   or a hook is a repository edit a person makes.
9. Editing an existing hook has no tool yet: it is an edit to `workspace.hooksFile` in the workspace
   until the owning milestone rules on the verb.
10. Keep file paths matched by `workspace.testMatch` or `workspace.suiteMatch`.

## Required ID Contracts

- Test IDs: `t_` + 10 id-agent words.
- Suite IDs: `s_` + 10 id-agent words.
- Hook IDs: `h_` + 10 id-agent words.
- Run IDs: `r_` + 10 id-agent words.
- Observation IDs: `obs_` + 10 id-agent words.

## Before Running

- Verify the draft first (step 6).
- Start runs with `agent_qa_start_run` rather than shelling out, and name the test files to run
  with `patterns` (paths or globs). Its input also lists `scope`, which the local agent-qa server
  refuses, so never pass it.
- A run starts in the call, with no prompt. A run that drives a target declared
  `environment: production` is refused, naming the target, unless `agent-qa.config.yaml` has
  `allowProduction: true` at the top level. No argument or flag allows it.
- `agent_qa_list_runs` enumerates recent runs; `agent_qa_get_run_digest` reports one.

## Secrets

- Only the values in the file `workspace.secretsFile` names are secrets. agent-qa replaces each one
  with `[secret:<name>]` in the text it sends to a model and in the records, logs and output it
  writes, and never restores it.
- To type a secret in a step, write `{{secret:<name>}}`. Never write `[secret:<name>]` in a step: it
  would type the placeholder, so the action is refused.
- Nothing else is masked: not `workspace.envFile` values, environment variables, cookies, saved auth
  state or emails, and not screenshots or recordings. The one exception: the dashboard's model
  connection check keeps the key or header value it is testing out of the provider's error message.
  Use temporary, limited test credentials.

## Do Not

- Do not invent config keys.
- Do not use legacy root config buckets.
- Do not hand-write IDs.
- Do not mutate files outside the configured workspace patterns.
- Do not call a v1 tool name. Every retired name and what answers its need instead is carried by the
  migration map in `npx agent-qa init --agent`; calling one returns that ruling rather than a
  result.

© vostride · Apache-2.0 · vostride/agent-qa

Similar skills

All skills for Testing and QA →

From the same set3

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor