Agent skill

Twenty QA Scout

by twentyhq in twentyhq/twenty

Browser QA for a pull request against a running Twenty app: scenarios drawn from the diff, run in a real browser, checked in the database and logs, and closed with a verdict and report.

Custom licenceAuto-check passedTesting & QA

Install Twenty QA Scout

skills CLI
$ npx skills add twentyhq/twenty --skill qa-scout -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install twentyhq/twenty qa-scout --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/twentyhq/twenty.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/qa-scout .claude/skills/qa-scout && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
qa-scout
GitHub stars
58k
Token cost
~2k tokens
SKILL.md length
1,090 words
Files
1
Skills in repo
13
Repo updated
First seen
Licence
Custom licence

At a glance

Browser QA for a pull request against a running Twenty app: scenarios drawn from the diff, run in a real browser, checked in the database and logs, and closed with a verdict and report.

  • Works in 6 steps: Mark the log offsets first. wc -l both… → Scope from the diff. Read pr.json and… → Sanity-check the app, then log in.… → …
  • Checking a Twenty pull request in a real browser after it merges
  • SKILL.md covers Inputs, Procedure, Verdict contract and Hard rules, plus 1 more section
  • Calls psql and yarn

What it does

The agent answers one question about a merged or labeled PR: would a user notice something broken? It works like a QA engineer with the logs open and treats a clean UI over a dirty log as a failure, citing an earlier incident where records saved while every timeline write threw in the worker. Inputs are files with the PR metadata, changed file list and full diff, an output directory, the running app, live server and worker logs, a run mode of post-merge or pre-merge, and a disposable Postgres database reachable with `psql`.

The procedure starts by noting the log line counts, so noise from the earlier deterministic e2e suite is not counted. It then reads the diff selectively and picks 2 to 4 user-visible scenarios, biased toward writes and cross-object side effects such as timeline entries, search, favorites, notifications and workflow triggers, and runs them with the Playwright MCP browser. It confirms effects over SQL, preferring read-only queries, checks `information_schema` when columns change, and writes a structured verdict and report. CI invokes it after the e2e suite, and it can also run against a local dev stack.

When your agent uses it

  • Checking a Twenty pull request in a real browser after it merges
  • Validating a labeled PR before merge, with logs and database checks
  • Catching bugs where the UI looks fine but background writes fail

Example prompts

  • “Run QA scout on this pull request against my local Twenty dev stack.”
  • “Derive user-visible test scenarios from this diff and run them in the browser.”
  • “Check the worker log for swallowed errors after the favorites flow.”

Requirements

  • A running Twenty app with a disposable Postgres database
  • The Playwright MCP browser
  • Server and worker logs, plus the PR diff files

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Mark the log offsets first. wc -l both log files before touching the
  2. Scope from the diff. Read pr.json and files.json; Grep and read
  3. Sanity-check the app, then log in. Navigate to the app with the
  4. Execute each scenario. Use the Playwright tools: snapshot, act, verify
  5. Read your log window after each scenario. tail -n + on both
  6. Collect evidence. Take a screenshot at each scenario's end state and at

What it can do on your machine

Read from SKILL.md and the folder at commit 520ee32. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • psql
    • yarn

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use yarn, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Twenty QA Scout loads about 2k tokens when it runs. Until then it costs about 113 tokens; SKILL.md has 1,090 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~113
When it runs · the whole SKILL.md, loaded when a task matches
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

Its licence (Custom licence) doesn't allow us to republish the file, so here is its outline and opening line. It has 1,090 words (~2,032 tokens).

“You answer one question about a merged PR: would a user notice something broken? Work like a strong QA engineer who also has the logs open: scope from the diff, test the risky flows in a real browser, and treat…”

— opening of SKILL.md by twentyhq, Custom licence
name
qa-scout

Read the full SKILL.md on GitHub

Files

Just SKILL.md in .claude/skills/qa-scout of twentyhq/twenty.

Open the folder on GitHubat commit 520ee32

Compare with similar skills

Twenty QA Scout next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Twenty QA Scout compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Twenty QA Scout this skilltwentyhq/twenty58k—~2kAutomated safety check: PassCustom licence
Agentic Browser Testingpetrkindlmann/qa-skills168—~4.5kAutomated safety check: PassMIT
E2Eopenathleteorg/openathlete101—~675Automated safety check: PassAGPL-3.0
Replica TestJakeschincariol/replica-skill1.2k—~819Automated safety check: PassMIT
Claude Code QAPramodDutta/qaskills233—~2.3kAutomated safety check: PassMIT
Solution Testingkid-sid/claude-spellbook190—~3.9kAutomated safety check: PassMIT

Similar skills

  • Agentic Browser Testing

    petrkindlmann/qa-skills

    Goal-driven E2E testing where a browser agent (Playwright MCP / computer-use) reads a natural-language goal and explores the app via the accessibility tree to assert outcomes — no pre-written script.

    168 GitHub stars~4.5k tokensUpdated 4 mo ago
    Testing & QAAuto-check passed
  • E2E

    openathleteorg/openathlete

    Run, debug or extend the OpenAthlete Playwright end-to-end tests, which exercise the production Docker images (API, worker, web, PostgreSQL, Redis) through the API and a real browser on desktop and…

    101 GitHub stars~675 tokensUpdated today
    Testing & QAAuto-check passed
  • Replica Test

    Jakeschincariol/replica-skill

    Clicks through every flow of an app clone and tests it for bugs: a test plan generated from the recon flows with happy paths and edge cases, Playwright end-to-end tests where possible, a browser…

    1.2k GitHub stars~819 tokensUpdated 6 days ago
    Testing & QAAuto-check passed
  • Claude Code QA

    PramodDutta/qaskills

    The complete QA skill for Claude Code — turn Claude into an expert QA engineer that picks the right test type, writes reliable Playwright, Cypress, and pytest tests, eliminates flaky tests, enforces…

    233 GitHub stars~2.3k tokensUpdated 5 days ago
    Testing & QAAuto-check passed
  • Solution Testing

    kid-sid/claude-spellbook

    A skill your agent uses when writing Playwright E2E tests for critical user journeys, setting up post-deployment smoke tests, debugging flaky browser automation, or implementing BDD feature files…

    190 GitHub stars~3.9k tokensUpdated 2 mo ago
    Testing & QAAuto-check passed
  • Web Application Testing

    anthropics/skills

    Official

    Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.

    180k GitHub starsUsed in 51 repos~966 tokens
    Testing & QAAuto-check passed

More from twentyhq/twenty

All 13 skills in this repo
  • Guides changes to an existing Twenty app: adding or editing objects, layouts, logic functions and front components, with a plan stated before multi-entity edits.

    58k GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Twenty App Operations

    twentyhq/twenty

    Operates an existing Twenty app: managing remotes, syncing, building, deploying, reading logs, running tests and setting up CI/CD, with confirmation for production.

    58k GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Contributor guide for step three of adding a syncable entity to the Twenty server: write the validator, the migration action builder and the orchestrator wiring.

    58k GitHub stars~3.3k tokensUpdated today
    Auto-check passed
  • Walks through step 2 of adding a syncable entity to the Twenty server: a cache service for flat entity maps and utilities that transform entities and DTOs into universal flat entities.

    58k GitHub stars~2.4k tokensUpdated today
    Auto-check passed
  • Registers a new syncable entity in three NestJS modules and adds its service and GraphQL resolver layers when contributing to the Twenty server.

    58k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Step four of adding a syncable entity in the Twenty server: write create, update and delete action handlers that run workspace migrations against the database.

    58k GitHub stars~3.1k tokensUpdated today
    Auto-check passed

Categories

Questions about Twenty QA Scout

What does Twenty QA Scout do?

Browser QA for a pull request against a running Twenty app: scenarios drawn from the diff, run in a real browser, checked in the database and logs, and closed with a verdict and report. The agent answers one question about a merged or labeled PR: would a user notice something broken? It works like a QA engineer with the logs open and treats a clean UI over a dirty log as a failure, citing an earlier incident where records saved while every timeline write threw in the worker.

When should I use Twenty QA Scout?

Twenty QA Scout fits situations like: checking a Twenty pull request in a real browser after it merges; validating a labeled PR before merge, with logs and database checks; catching bugs where the UI looks fine but background writes fail.

How do I install Twenty QA Scout in Claude Code?

Run `npx skills add twentyhq/twenty --skill qa-scout -a claude-code`. Or copy the skill folder (.claude/skills/qa-scout in twentyhq/twenty) into .claude/skills/qa-scout in your project. Claude Code loads it when a task matches its description.

How do I install Twenty QA Scout in Codex?

Run `npx skills add twentyhq/twenty --skill qa-scout -a codex`. Or copy the skill folder (.claude/skills/qa-scout in twentyhq/twenty) into .agents/skills/qa-scout in your project. Codex loads it when a task matches its description.

Can I use Twenty QA Scout in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add twentyhq/twenty --skill qa-scout -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/qa-scout, .gemini/skills/qa-scout, .github/skills/qa-scout and .opencode/skills/qa-scout in your project.

What does Twenty QA Scout need to run?

Going by SKILL.md and its folder, Twenty QA Scout needs the command-line tools its instructions call (psql and yarn). Our summary lists: A running Twenty app with a disposable Postgres database; The Playwright MCP browser; Server and worker logs, plus the PR diff files.

Does Twenty QA Scout access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Twenty QA Scout safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Twenty QA Scout use?

Twenty QA Scout has a licence file (the repository's licence) that doesn't match a standard licence. Read it on GitHub before reusing the skill.

How many tokens does Twenty QA Scout use?

About 2k tokens (SKILL.md is roughly 8.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Twenty QA Scout?

Skills that share tags, products or a category with Twenty QA Scout: Agentic Browser Testing (petrkindlmann/qa-skills, 168 stars), E2E (openathleteorg/openathlete, 101 stars), Replica Test (Jakeschincariol/replica-skill, 1.2k stars) and Claude Code QA (PramodDutta/qaskills, 233 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Twenty QA Scout?

twentyhq (a GitHub organization) maintains it in twentyhq/twenty, which has 58,115 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 9, 2026.

Source: twentyhq/twenty on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.