# Zerocheck agent instructions

Zerocheck turns a team's manual release checklist into browser tests. Tests are plain-English YAML files in the repository. They run in Zerocheck's hosted browser, on the developer's machine, or in GitHub Actions, and every run captures screenshots of every step; runs without credentials also record video.

## When to use Zerocheck

- Turning a manual release checklist into repeatable checks that run on every pull request.
- Gating pull requests on end-to-end web flows such as signup, checkout, and billing.
- Replacing or supplementing a stale Playwright or Cypress suite.
- Reading why a check failed: failing step, screenshot, recording, every attempt, and any healed target.

Not suitable for unit tests, load tests, or backend-only assertions without a UI.

## Commands

- `npm install --save-dev zerocheck@0.1.0` adds the CLI.
- `npx zerocheck login` authorizes the machine, or set `ZEROCHECK_TOKEN` to a project token in CI.
- `npx zerocheck init --url http://localhost:3000 --github-actions` writes `zerocheck.yaml` and a workflow.
- `npx zerocheck install` installs Chromium for local runs.
- `npx zerocheck import release-checklist.md --env dev` drafts and verifies one check per checklist item.
- `npx zerocheck import --draft <id>` saves reviewed drafts as YAML in the repo.
- `npx zerocheck run --env staging --json .zerocheck/latest-run.json --junit .zerocheck/junit.xml` runs the checks and writes reports.
- `npx zerocheck report --file .zerocheck/latest-run.json` updates one pull request comment.
- `npx zerocheck mcp --project-dir /absolute/path` starts the stdio MCP server with `list_checks`, `read_check`, `save_check`, `import_checklist`, `answer_import`, `adopt_import`, `verify_check`, `run_checks`, `get_results`, and `cancel`.

## Rules for agents

- Repository YAML is authoritative. Save drafts explicitly; verification of an unsaved draft never replaces a saved check.
- Do not weaken an expected outcome to make a check pass. A failed check stays failed.
- Reference test credentials by name (`${NAME}`); never write secret values into a test file.
- Exit codes: 0 completed within the merge policy, 1 blocking failure, 2 setup or incomplete execution.

## Resources

- Docs: https://tryzerocheck.com/docs/
- CLI: https://tryzerocheck.com/cli/
- Developers: https://tryzerocheck.com/developers/
- Site index for language models: https://tryzerocheck.com/llms.txt
- npm: https://www.npmjs.com/package/zerocheck
