skills/crew/test-task-factory/SKILL.md
Generates test task creation parameters from a detected change type and implementation task subject. Routes to the correct test type (visual/endpoint) and produces TaskCreate-ready subjects, descriptions, and metadata. Use when: creating test tasks after change-type detection, QE task generation, "test task factory", "create test tasks", "generate QE tasks", or after change-type-detector classifies files as ui/api/both.
npx skillsauth add mikeparcewski/wicked-garden test-task-factoryInstall 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.
Generate test task parameters from a change type. The output is ready for TaskCreate — no further processing needed.
| Input | Test Tasks Created |
|-------|--------------------|
| ui | 1 task — visual category |
| api | 1 task — endpoint category |
| both | 2 tasks — visual + endpoint |
| unknown | 0 tasks — emit warning, no tasks |
Remove leading phase label and optional project name from the implementation
task subject to get the clean impl_description.
Pattern to strip: ^(build|clarify|design|ideate|test-strategy|test|review|implement)\s*:\s*
(case-insensitive)
Then strip project prefix: If the result matches {project-name} - {description},
take only the part after -.
Examples:
"Build: my-project - Implement login form" → "Implement login form""Build: Implement login form" → "Implement login form""Implement login form" → "Implement login form" (unchanged)Convert impl_description to lowercase, replace non-alphanumeric runs with -,
strip leading/trailing dashes, cap at 50 characters. Used in screenshot path
templates in descriptions.
change_type == "unknown" → return empty test_tasks list + warning (see below)
change_type == "ui" → create 1 task using ui template
change_type == "api" → create 1 task using api template
change_type == "both" → create 2 tasks: ui template first, then api template
unrecognized value → return empty test_tasks list + warning
Test: {project} - {impl_description} ({test_category})
Where test_category is:
visual for ui tasksendpoint for api tasksSee Test Task Templates for full template text per test type.
{
"initiative": "{project}",
"priority": "P1",
"assigned_to": "acceptance-test-executor",
"test_type": "{ui|api}",
"evidence_required": [...],
"evidence_optional": [...],
"impl_subject": "{original impl_subject}"
}
See Test Evidence Taxonomy for evidence field values per test type.
{
"test_tasks": [
{
"subject": "Test: my-project - Implement login form (visual)",
"description": "...",
"metadata": { ... }
}
]
}
For unknown or unrecognized change types:
{
"test_tasks": [],
"suppressed": true,
"warning": "change_type is 'unknown' — no test tasks created for '...'. ..."
}
change_type is 'unknown' — no test tasks created for '{impl_description}'. No UI or API files were detected. If this task touches UI or API code, re-run change-type detection with the correct file paths.
Unrecognized change_type '{value}' — no test tasks created.
Input:
change_type: "both"impl_subject: "Build: checkout - Integrate payment flow"project: "checkout"Produces impl_description = "Integrate payment flow", then two tasks:
"Test: checkout - Integrate payment flow (visual)" with ui template"Test: checkout - Integrate payment flow (endpoint)" with api templateSee Test Task Templates for full template content and Test Evidence Taxonomy for evidence field values.
development
--- name: large-scale-migration description: How to execute a LARGE MECHANICAL change across any codebase with LEVERAGE instead of an agent-grind or hand-edits — a cross-cutting migration, refactor, rename, dialect/framework/DB port, library adoption, or bulk transform. The map→transform→gate pattern: a deterministic transform driven by a source-of-truth map, proven by a differential-equivalence gate. Use when the work is "migrate all X to Y", "rename Z everywhere", "port to a new DB/dialect/fra
testing
v11 LLM-based work-shape classifier. Replaces the regex archetype detector with the model's own reasoning. Reads the user's prompt, picks the right archetype(s) from the catalog, identifies signals (blast_radius, novelty, reversibility, etc.), and persists to SessionState so subsequent turns steer correctly. Use when: the prompt_submit hook emitted a `<wg classify-due />` directive, OR explicitly invoked at session start, OR when re-classifying after the user changes scope mid-session.
tools
v11 work-shape archetype runner. When a prompt has been routed to one of the 9 archetypes (triage, explore, specify, decide, ship, review, incident, build, migrate), this skill is the entry point. It picks the right per-archetype playbook from refs/ and executes the phase shape declared in `.claude-plugin/archetypes.json`. Use when: a `<wg archetype="X">` or `<wg archetypes>` system-reminder tag appears, an explicit "let's run the X archetype" request, or when one of the per-archetype slash commands resolves to this skill.
development
Show or set the session intent variable. Intent gates how loud the framework is — simple-edit (silent), feature/research (synthesis directive), rigor (full crew context). Auto-detected on turn 1; this skill overrides explicitly. Sticky for the session. Use when: "set intent", "intent override", "/wicked-garden:intent", "make the framework quiet", "force rigor", "what's my intent".