> ## Documentation Index
> Fetch the complete documentation index at: https://docs.clawup.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Scout — QA Tester

> How Scout reviews PRs, tests changes against acceptance criteria, and files bugs

Scout is the **QA Tester** of your Clawup. He reviews pull requests, tests changes against acceptance criteria from Linear tickets, files bugs when something doesn't pass, and can auto-fix simple build and test failures.

## What Scout Does

* Receives tickets via the [Linear plugin queue](/integrations/linear#linear-plugin) when they enter "Started"
* Reviews PRs against Linear ticket acceptance criteria
* Runs builds and test suites to validate changes
* Auto-fixes simple build or test failures and retries
* Reports results back to Linear — approves PRs or requests changes with specific gaps
* Resolves PR review comments by parsing, applying fixes, and pushing (via heartbeat)

## How Work Gets Triggered

Scout's work comes from two sources:

### Queue Handler (Linear Plugin)

When a ticket moves to "Started" in Linear, the plugin adds it to Scout's queue and triggers the `tester-queue-handler` skill:

1. **View the ticket** — read acceptance criteria, definition of done, test cases, and linked PR
2. **Find and checkout the PR** — if no PR is linked, ask the assignee to link one
3. **Review against acceptance criteria** — if requirements are unmet, request changes on the PR with specific gaps and return
4. **Run build and tests** — auto-detect package manager, run install, build, test (and e2e if present)
   * **Pass** — approve the PR and confirm on the ticket
   * **Fail** — invoke Claude Code to apply a minimal fix, re-run once
5. **Handle persistent failure** — if still failing after retry, request changes with an error summary

### Heartbeat (Polling)

Scout's heartbeat fires every minute and handles **PR review comment resolution** — scanning open PRs for unresolved review comments and using the `pr-review-resolver` skill to parse comments, apply fixes via Claude Code, and push.

## Skills

| Skill                  | Purpose                                                                   |
| ---------------------- | ------------------------------------------------------------------------- |
| `tester-queue-handler` | End-to-end ticket verification — reviews PRs, runs tests, reports results |
| `pr-review-resolver`   | Parse PR review comments, apply fixes via Claude Code, and push           |

## Workspace Files

Scout's behavior is defined by workspace files injected into `~/.openclaw/workspace/` during bootstrap:

| File           | What It Does                                                                                         |
| -------------- | ---------------------------------------------------------------------------------------------------- |
| `SOUL.md`      | Core personality — approach, values, superpowers, boundaries. Defines who Scout *is* as a QA tester. |
| `IDENTITY.md`  | Name, role label, emoji, avatar metadata.                                                            |
| `HEARTBEAT.md` | Periodic checklist — bootstrap detection and PR review comment resolution.                           |
| `TOOLS.md`     | Tool-specific notes and common commands for Scout's workflow.                                        |

He also receives the shared base files (`USER.md`, `AGENTS.md`, `BOOTSTRAP.md`) that all agents share.

## Configuration

Scout uses the `tester` identity:

```yaml theme={null}
- name: agent-tester
  displayName: Scout
  role: tester
  identity: "https://github.com/stepandel/army-identities#tester"
  volumeSize: 30
  plugins:
    - openclaw-linear
    - slack
  deps:
    - gh
    - brave-search
```

| Field         | Default                  | Notes                                                                            |
| ------------- | ------------------------ | -------------------------------------------------------------------------------- |
| `identity`    | `army-identities#tester` | Built-in QA tester identity                                                      |
| `volumeSize`  | 30 GB                    | Persistent storage — Scout checks out PR branches but doesn't need as much space |
| `model`       | Claude Opus 4.6          | Set in `identity.yaml`                                                           |
| `codingAgent` | `claude-code`            | Set in `identity.yaml`                                                           |

## Customization

You can customize Scout by forking the [army-identities](https://github.com/stepandel/army-identities) repo and modifying the `tester/` directory, or by creating a new identity from scratch with [`army-create`](https://github.com/stepandel/army-create) (`npx army-create`). Point your manifest at the new identity source:

```yaml theme={null}
identity: "https://github.com/your-org/your-identities#tester"
```

See [Identities & Customization](/architecture/identities) for details.
