aitask-gate-templatelisted
Install: claude install-skill beyondeye/aitasks
## Purpose
A **gate verifier** is the command the gate orchestrator
(`lib/gate_orchestrator.py`) runs to decide whether a machine gate passes. This
skill is the authoring scaffold: it documents the contract every verifier must
honor and gives you a copy-me script. Use it when adding a project- or
framework-specific gate (e.g. `build_verified`, `tests_pass`, `docs_updated`,
`license_check`).
A gate is one of two kinds:
- a **command verifier** (default) — a shell command the headless orchestrator
runs (exit codes); use for programmatic checks (build, tests, lint, state
inspection). Documented next.
- a **procedure-backed** gate (`kind: procedure`) — an agent **skill** that does
work and confirms with the user, run by the attended task-workflow / aitask-resume
(the headless engine defers it). Use when the gate verifies *work an agent must
do* (e.g. `docs_updated`). See "Procedure-backed (agent) verifier" below.
Authoring a **command** gate is two steps:
1. Write a verifier command that honors the contract below.
2. Point a gate at it in `aitasks/metadata/gates.yaml`: set the gate's
`verifier:` to the command (and `max_retries:` / `timeout_seconds:` /
`unlocks:` as needed).
## Verifier contract
**Invocation** (positional args, in order):
```
<verifier> <task-id> <attempt> <run-id>
```
- `<task-id>` — e.g. `42` or `42_3`. Read the task file for context (plan, scope).
- `<attempt>` — the attempt number the orchestrator already wrote on the
`running` block.