qa-personality-builder
Create custom QA agent personalities for project-specific testing needs. Guided builder that asks about the specialty, tools, and test scenarios, then generates a personality file and registers it in the QA config. Trigger on "create a QA personality", "add a custom test agent", "build a webhook tester", or when the user needs a project-specific QA agent. Also triggered by /qa-create-personality.
Best use case
qa-personality-builder is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Create custom QA agent personalities for project-specific testing needs. Guided builder that asks about the specialty, tools, and test scenarios, then generates a personality file and registers it in the QA config. Trigger on "create a QA personality", "add a custom test agent", "build a webhook tester", or when the user needs a project-specific QA agent. Also triggered by /qa-create-personality.
Teams using qa-personality-builder should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/qa-personality-builder/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How qa-personality-builder Compares
| Feature / Agent | qa-personality-builder | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Create custom QA agent personalities for project-specific testing needs. Guided builder that asks about the specialty, tools, and test scenarios, then generates a personality file and registers it in the QA config. Trigger on "create a QA personality", "add a custom test agent", "build a webhook tester", or when the user needs a project-specific QA agent. Also triggered by /qa-create-personality.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# QA Personality Builder
You help users create custom QA agent personalities for project-specific testing needs. You guide them through defining the specialty, tools, test scenarios, and persona, then generate a complete personality skill file.
## Mode Detection
| User intent | Mode |
|---|---|
| Create a new custom QA personality from scratch | **A — Guided Build** |
| Modify an existing custom personality | **B — Edit Existing** |
| List available personality examples for reference | **C — Browse Examples** |
If ambiguous, ask: "Are you looking to (A) create a new QA personality, (B) edit an existing one, or (C) browse example personalities?"
## Shared Standards
| Rule | File | Impact |
|---|---|---|
| Personality file structure | `rules/std-structure.md` | CRITICAL |
## Reference Personalities
See `references/` for complete example personalities:
- `references/slack-impersonator.md` — Slack webhook event simulation
- `references/stripe-webhook.md` — Stripe payment webhook testing
## Mode A — Guided Build
Ask the following questions ONE AT A TIME. Wait for each response before proceeding.
### Question 1: Specialty
```
What kind of QA testing does this personality specialize in?
Examples:
- Webhook simulation (Slack, Stripe, GitHub)
- Load/performance testing
- Accessibility testing
- Email notification verification
- File upload/download testing
- Multi-user interaction testing
Describe the specialty:
```
### Question 2: Tools
```
What tools does this personality need?
a) Browser automation (Playwright) — for UI interaction
b) HTTP requests (WebFetch) — for API calls
c) Shell commands (Bash) — for signing, scripting, CLI tools
d) File access (Read) — for reading config and test data
Select all that apply (e.g., "b, c, d"):
```
### Question 3: Test Scenarios
```
Define 3-5 specific test scenarios this personality should run.
For each, provide:
- Name
- Action to take
- Expected outcome
- How to verify
Example:
1. "Send checkout.session.completed webhook → verify order created → check GET /api/orders"
```
### Question 4: Name
```
What name should this personality have? (lowercase, hyphens, no spaces)
It will be saved as: .claude/skills/qa-<your-name>/SKILL.md
Example: "stripe-webhook-tester", "email-verifier", "load-tester"
```
### Generation
After all questions answered:
1. Map tools from Question 2:
- a → Playwright browser tools (navigate, click, fill_form, snapshot, screenshot, wait_for, network_requests)
- b → WebFetch
- c → Bash
- d → Read
2. Generate SKILL.md following the structure in `rules/std-structure.md`
3. Read `.qa/config.yml` to determine issue tracker — add appropriate bug reporting section
4. Write to `.claude/skills/qa-<name>/SKILL.md` (create directory)
5. Add `qa-<name>` to `.qa/config.yml → personalities.custom`
6. Confirm:
```
Custom QA personality created!
Skill: .claude/skills/qa-<name>/SKILL.md
Registered in: .qa/config.yml
It will be included in future /qa-run sessions.
Edit the SKILL.md directly to refine test scenarios.
```
## Mode B — Edit Existing
1. List custom personalities from `.qa/config.yml → personalities.custom`
2. Ask which to edit
3. Read the personality file
4. Ask what to change
5. Apply edits
## Mode C — Browse Examples
1. Read and display `references/slack-impersonator.md` and `references/stripe-webhook.md`
2. Explain the pattern: persona, test scenarios, signing, output format, bug reporting
3. Offer to use one as a starting point for Mode A
## Workflow
1. **Detect mode** — match to A/B/C; ask if ambiguous
2. **Execute** — guided questions (A), targeted edits (B), or reference display (C)
3. **Generate/update** — write the personality file and update config
4. **Confirm** — show the user what was created and next steps
## Examples
- **Build:** "I need a QA agent that simulates GitHub webhook events" → Mode A walks through specialty, tools, scenarios, name, then generates the personality.
- **Edit:** "Update the Slack impersonator to also test reaction_removed events" → Mode B reads the file, adds the new scenario.
- **Browse:** "Show me example QA personalities" → Mode C displays the reference examples.
### Positive Trigger
User: "Create a custom QA personality for testing our Stripe webhooks"
### Non-Trigger
User: "Write a Stripe webhook handler in my application"
## Troubleshooting
- Error: No .qa/config.yml found
- Cause: QA agents have not been set up in this project
- Solution: Run the setup script first, or create `.qa/config.yml` manually from the template
- Expected behavior: Config file exists and custom personalities can be registered
- Error: Personality name already exists
- Cause: A personality with the same name is already registered
- Solution: Choose a different name or use Mode B to edit the existing personality
- Expected behavior: Each personality has a unique name in the config
- Error: User cannot describe test scenarios clearly
- Cause: User is unsure what specific tests the personality should run
- Solution: Show reference examples from Mode C to inspire scenario design
- Expected behavior: User sees concrete examples and can adapt them to their needsRelated Skills
agent-skills-manager
Manage AI skills from the Ravn AI Toolkit via corvus CLI — install, update, remove, search, and configure skills for any project. Use when: (1) Installing AI skills into a project, (2) Updating installed skills to latest versions, (3) Browsing or searching available skills, (4) Configuring global or per-project skill sets, (5) Troubleshooting corvus setup. Triggers on: "install skills", "add skills", "update skills", "corvus", "skill manager", "browse skills", "set up AI rules".
type-system-audit
Audit a repository for type-system weaknesses using recent bug-fix commits as hard evidence. Produces prioritized findings tied to specific commits showing which types allowed real bugs. Use when: reviewing type safety, auditing types, analyzing type bugs. Triggers on: type audit, type system review, audit types, type safety audit.
ts-linter
Set up and enforce a strict, production-grade ESLint configuration for TypeScript projects, then systematically fix all linting issues. Use this skill whenever the user asks to add a linter or ESLint, enforce code quality rules, fix linting errors, clean up code style, or add type-aware linting. Trigger on: "lint", "eslint", "code quality", "static analysis", "strict linting", "make it stricter", "make the code stricter", "add better rules", "clean up the codebase", "enforce standards", "fix all the warnings", or "ShadCN lint errors". Handles detection, config generation, dependency installation, auto-fix, and manual remediation. Do NOT use for Biome or Rome projects, Prettier-only formatting, non-TypeScript/JavaScript projects, writing custom ESLint rules or plugins, husky/lint-staged/pre-commit hook setup, or when the user just wants to run an existing linter without changing its configuration.
transcript-notes
Convert meeting transcript .txt files into structured .md notes with metadata, TL;DR, key topics, action items, and quotes. Use when processing raw transcripts into formatted notes. Triggers on: "process transcript", "generate notes from transcript", "transcript to notes", "/transcript-notes".
test-plan-gen
Generate professional QA Test Plan documents (.docx or .pdf) from a structured interview. Trigger on "create/write a test plan", "I need a test plan", "prepare QA documentation", /testplan, or when a user uploads a PRD/requirements and wants a test plan generated.
test-case-gen
Generate, evaluate, audit, and normalize QA test cases to RAVN standards. Trigger on "generate/write/create test cases", "evaluate/score my test cases", "audit my test suite", "review test coverage", "normalize/reformat test cases", or when a user wants test design help. Also triggered by /testcases.
tech-react
React 19 patterns for components, hooks, Server Components, and data fetching. Use when writing React components, managing state with hooks, implementing Suspense boundaries, optimizing renders with proper memoization, or building Server/Client component hierarchies.
tech-drizzle
Drizzle ORM typesafe schema design, relational queries, prepared statements, migrations, and transactions. Use when working with Drizzle ORM, writing database queries, managing migrations, or optimizing query performance with prepared statements.
tech-android
Android and Kotlin development patterns — Compose, architecture, coroutines, Room, navigation, Hilt. Use when building Android apps, writing Jetpack Compose UI, or reviewing Android-specific code.
swift-concurrency
Swift Concurrency patterns — async/await, actors, tasks, Sendable conformance. Use when writing async/await code, implementing actors, working with structured concurrency, or ensuring data race safety.
rewrite-commit-history
Rewrite a feature branch's commit history into clean conventional commits that tell a progressive, linear story. Handles backup, soft reset, and atomic recommit. Use when: (1) Cleaning up messy WIP commits before PR, (2) Reorganizing commits into logical units, (3) Converting commits to conventional commit format. Triggers on: "rewrite history", "clean up commits", "rewrite commits", "conventional commits", "squash and rewrite", "reorganize commits".
qa-orchestrator
Orchestrate QA agent workflows — spawn test agents in parallel, collect results, triage bugs, trigger the bug fixer, and generate QA reports. The main entry point for running a QA session. Trigger on "run QA", "start QA session", "test the PR", "orchestrate QA agents", or when the user wants to run multiple QA agents together. Also triggered by /qa-orchestrator.