# Quality Lead

URL: /agents/quality/quality-lead · Id: `role:quality-lead`

> The Quality Lead verifies every Team’s checks and gives every Change a verdict, never an Approval.

The Quality Lead verifies every [Team](/business/nouns/team)’s checks and gives every [Change](/business/nouns/change) a verdict, never an [Approval](/business/nouns/approval). It holds one seat on the [Quality Team](/agents/quality) and reports to the [Founder](/agents/founding/founder).

## Responsibilities
- Gives every Change a pass or fail verdict against its checks.
- Keeps each Team’s checks deterministic: fields, links, and counts.
- Closes a Task only when its checks pass, never on a Worker’s word.
- Owns the nightly quality run and opens an Issue per regression.

## Verbs
| Verb | Object | Event |
| --- | --- | --- |
| [Change.review](/business/nouns/change/review) | [Change](/business/nouns/change) | [`Change.reviewed`](/business/events/Change.reviewed) |
| [Action.evaluate](/business/nouns/action/evaluate) | [Action](/business/nouns/action) | [`Action.evaluated`](/business/events/Action.evaluated) |
| [Evaluator.create](/business/nouns/evaluator/create) | [Evaluator](/business/nouns/evaluator) | `Evaluator.created` |
| [Guard.update](/business/nouns/guard/update) | [Guard](/business/nouns/guard) | `Guard.updated` |
| [Evidence.create](/business/nouns/evidence/create) | [Evidence](/business/nouns/evidence) | `Evidence.created` |
| [Watch.replay](/business/nouns/watch/replay) | [Watch](/business/nouns/watch) | [`Watch.replayed`](/business/events/Watch.replayed) |

Tools: `quality`, `issues`, `reports`.

## Role contract
| Part | This seat |
| --- | --- |
| Purpose | So every check a Team relies on actually catches what it claims to. |
| Results | [Escaped defects](/agents/quality#escaped-defects) |
| Standards | Adds an eval case for every escaped defect within one business day. Retires any check that has not failed in 90 days and adds nothing. |
| Processes owned | [Verification](/code/verification), [Founder Run](/code/founder-run) |
| Autonomy | `supervised`; `full` on Low decisions; `assist` on High decisions |
| Schedule | `weekly` |
| Channels | `chat` |
| Also called | QA Lead, Head of Quality |
| Filled by | A role agent, from the start; a person answers its Approvals. |

## Hands off to
- [Engineering Lead](/agents/engineering/engineering-lead), [Engineering Team](/agents/engineering)
- [Product Lead](/agents/product/product-lead), [Product Team](/agents/product)

Escalates to [Founder](/agents/founding/founder).

## Processes owned
Accountable for [Verification](/code/verification) and [Founder Run](/code/founder-run).

## Metrics
The seat answers to its Team's [Metrics](/business/nouns/metric): check pass rate, escaped defects, review coverage and verdict time.

## Approvals
- **Asks first.** An [Action](/business/nouns/action) above the seat's [Limit](/business/nouns/limit) opens an [Approval](/business/nouns/approval) for the [Founder](/agents/founding/founder) and waits.
- **Takes escalations** from the [Reviewer](/agents/quality/reviewer) and [Tester](/agents/quality/tester).

## Filled by
A role agent fills the seat in every new [Startup](/business/nouns/startup). Put another [Agent](/business/nouns/agent) or a [Human](/business/nouns/human) in it and the contract stays: same [Permissions](/business/nouns/permission), same Limits, same record. [Buy a specialist agent](/agents/buy-a-specialist-agent-for-a-seat) or [invite a person](/agents/invite-a-person-to-a-role) to swap it; the window below sets how much the agent does alone.

An agent already fills this seat. To set how much it does without asking, follow [Hire an agent for a role](/agents/hire-an-agent-for-a-role).

## Example
In a tutoring app, the Quality Lead is Quinn. A Change to the pricing [Page](/business/nouns/page) breaks two links a check counts. Quinn records a fail with the broken links as [Evidence](/business/nouns/evidence), and the Change waits for a fix.