CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

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.

Quality

79%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./.claude-plugin/plugins/qa-personality-builder/skills/qa-personality-builder/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

67%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is well-organized and highly actionable for the guided Q&A flow, with tight tables, verbatim prompts, exact paths, and a thorough troubleshooting section. The main defect is that the critical personality-structure template (`rules/std-structure.md`) is referenced but absent from the bundle, making the generation step incomplete as written, and no post-write validation step is specified.

Suggestions

Ship `rules/std-structure.md` in the bundle (or inline the personality file structure in SKILL.md) so the generation step 'Generate SKILL.md following the structure in rules/std-structure.md' is actually executable — this file is marked CRITICAL but does not exist.

Add a validation checkpoint after writing the personality file and updating .qa/config.yml (e.g., re-read the config to confirm valid YAML and that qa-<name> appears under personalities.custom, and re-read the generated SKILL.md to confirm it matches the structure) before showing the confirmation message.

Merge the 'Workflow' and 'Examples' sections into the Mode A/B/C sections they restate to trim the small amount of duplicated guidance.

DimensionReasoningScore

Conciseness

The body is lean and assumes Claude's competence: mode detection as a table, verbatim question scripts, a numbered generation checklist, and a structured troubleshooting section with no explanations of concepts Claude already knows. Not 5 because the 'Workflow' section largely restates the Mode A/B/C sections and the Examples section repeats them again, so a few tokens could be trimmed.

4 / 5

Actionability

Most guidance is concrete — verbatim question prompts, an explicit tool mapping (a → Playwright tools, b → WebFetch, c → Bash, d → Read), exact paths (.claude/skills/qa-<name>/SKILL.md, .qa/config.yml → personalities.custom), and a confirmation template. However, the core generation step says "Generate SKILL.md following the structure in `rules/std-structure.md`" and that file does not exist in the bundle, so the skill's primary output cannot actually be produced as written — matching the 'some concrete guidance but incomplete; missing key details' anchor rather than the minor-gaps level.

3 / 5

Workflow Clarity

Modes are clearly detected, questions are sequenced ONE AT A TIME with explicit wait instructions, generation is a numbered 6-step list with a confirmation output, and troubleshooting covers error/cause/solution including the name-collision case. Not 5 because there is no explicit validation step after writing the personality file or editing .qa/config.yml (e.g., re-reading the config to confirm valid YAML and successful registration); not 3 because the sequence and key checkpoints (ambiguity handling, collision handling) are present.

4 / 5

Progressive Disclosure

Good structure against the actual bundle: the body is an overview with clearly signaled one-level-deep references — `references/slack-impersonator.md` and `references/stripe-webhook.md` (both real files) with descriptions of what each contains. Not 5 because the referenced `rules/std-structure.md`, marked CRITICAL in the Shared Standards table, is not present in the bundle, leaving a dangling pointer alongside otherwise well-placed content.

4 / 5

Total

15

/

20

Passed

Description

83%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is strong: it states concrete capabilities in third person, includes an explicit trigger clause with multiple natural user phrases and a slash command, and carves out a distinct niche. Minor room to broaden trigger synonyms and enumerate the output more fully.

DimensionReasoningScore

Specificity

Names the domain ("Create custom QA agent personalities") and several concrete actions — "asks about the specialty, tools, and test scenarios", "generates a personality file and registers it in the QA config" — which matches the 'several specific actions; minor gaps in coverage' anchor. Not 5 because coverage is not comprehensive (e.g., what kinds of personalities or what the generated file contains is not enumerated); not 3 because more than 1-2 actions are explicitly stated.

4 / 5

Completeness

Explicitly answers both: WHAT — "Guided builder that asks about the specialty, tools, and test scenarios, then generates a personality file and registers it in the QA config" — and WHEN — "Trigger on 'create a QA personality' ... or when the user needs a project-specific QA agent", matching the anchor for clear what AND when with concrete trigger phrases. Third-person voice is used throughout, so no voice penalty applies.

5 / 5

Trigger Term Quality

Provides natural trigger phrases users would actually say — "create a QA personality", "add a custom test agent", "build a webhook tester", "project-specific QA agent" — plus the slash command /qa-create-personality, giving good keyword coverage. Not 5 because common synonyms and variations (e.g., "custom tester", "test persona", "QA agent setup") are missing and the terms cluster narrowly around 'QA personality'.

4 / 5

Distinctiveness Conflict Risk

A clear niche (building custom QA agent personalities for this project's QA config) with distinct, specific triggers; matches 'mostly distinct; minor overlap risk'. Not 5 because phrases like "build a webhook tester" could overlap with a generic webhook-testing skill; not 3 because the core trigger set is specific and unlikely to fire for unrelated skills.

4 / 5

Total

17

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

14

/

16

Passed

Repository

ravnhq/ai-toolkit

Path

.claude-plugin/plugins/qa-personality-builder/skills/qa-personality-builder/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.