skills/qa/qa-personality-builder/SKILL.md
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.
npx skillsauth add ravnhq/ai-toolkit qa-personality-builderInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
| 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?"
| Rule | File | Impact |
|---|---|---|
| Personality file structure | rules/std-structure.md | CRITICAL |
See references/ for complete example personalities:
references/slack-impersonator.md — Slack webhook event simulationreferences/stripe-webhook.md — Stripe payment webhook testingAsk the following questions ONE AT A TIME. Wait for each response before proceeding.
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:
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"):
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"
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"
After all questions answered:
Map tools from Question 2:
Generate SKILL.md following the structure in rules/std-structure.md
Read .qa/config.yml to determine issue tracker — add appropriate bug reporting section
Write to .claude/skills/qa-<name>/SKILL.md (create directory)
Add qa-<name> to .qa/config.yml → personalities.custom
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.
.qa/config.yml → personalities.customreferences/slack-impersonator.md and references/stripe-webhook.mdUser: "Create a custom QA personality for testing our Stripe webhooks"
User: "Write a Stripe webhook handler in my application"
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 needs
testing
Transform user requests into detailed, precise prompts for AI models. Use when users say 'promptify', 'promptify this', 'rewrite this prompt', 'make this prompt better/more specific', or explicitly request prompt engineering or improvement of their request for better AI responses.
tools
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".
development
Generate a gallery of design variations for a UI component. Takes an existing component (referenced by name, pasted code, or screenshot) and produces N distinct rendered alternatives in a single comparison page. Use when exploring visual directions, generating mockups, comparing design approaches for a component, creating A/B candidates, or when anyone says "show me options" or "give me variations" for a UI element.
testing
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.