Skip to main content
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 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

SkillPurpose
tester-queue-handlerEnd-to-end ticket verification — reviews PRs, runs tests, reports results
pr-review-resolverParse 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:
FileWhat It Does
SOUL.mdCore personality — approach, values, superpowers, boundaries. Defines who Scout is as a QA tester.
IDENTITY.mdName, role label, emoji, avatar metadata.
HEARTBEAT.mdPeriodic checklist — bootstrap detection and PR review comment resolution.
TOOLS.mdTool-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:
- 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
FieldDefaultNotes
identityarmy-identities#testerBuilt-in QA tester identity
volumeSize30 GBPersistent storage — Scout checks out PR branches but doesn’t need as much space
modelClaude Opus 4.6Set in identity.yaml
codingAgentclaude-codeSet in identity.yaml

Customization

You can customize Scout by forking the army-identities repo and modifying the tester/ directory, or by creating a new identity from scratch. Point your manifest at the new identity source:
identity: "https://github.com/your-org/your-identities#tester"
See Identities & Customization for details.