skills/product/SKILL.md
Product domain skill: 13 user-invokable actions — a11y | acceptance | align | analyze | elicit | listen | mockup | screenshot | strategy | synthesize | ux | ux-review | visual-direction — backed by the rubrics in refs/ and this domain's knowledge-module sub-skills. Use when: "accessibility audit", "WCAG compliance", "define acceptance criteria", "stakeholder alignment", "build consensus", "analyze customer feedback", "elicit requirements", "write user stories", "aggregate customer feedback", "ASCII wireframe or HTML mockup", "review this screenshot", "strategic analysis", "ROI / value proposition / market / competitive", "synthesize feedback into recommendations", "design a user flow", "UX review", "design audit", "visual direction", or any former /wicked-garden:product:{action} invocation.
npx skillsauth add mikeparcewski/wicked-garden wicked-garden-productInstall 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.
One entry point for the product domain. Pick the action, parse its args, load its ref, apply it inline. Only strategy --focus all and ux-review --focus all dispatch.
| Action | Use for | Args | Ref |
|--------|---------|------|-----|
| a11y | Accessibility audit: WCAG 2.1 AA, keyboard, screen reader, contrast | <target> [--level A\|AA\|AAA] [--quick] | refs/a11y.md |
| acceptance | Define testable acceptance criteria from requirements/design | <path> [--story US-ID] [--feature name] [--format gherkin\|table\|markdown] [--scenarios] | refs/acceptance.md |
| align | Stakeholder alignment: surface concerns, map trade-offs, build consensus | [target-doc] [--stakeholders] [--focus concerns\|tradeoffs\|conflicts] [--conflict] | refs/align.md |
| analyze | Customer-voice pipeline 2/3: themes, sentiment, trends | [--theme X] [--sentiment pos\|neg] [--trend period] [--segment] | refs/analyze.md |
| elicit | Turn a vague ask into user stories + AC | [target-doc] [--interactive] [--personas] [--scope] | refs/elicit.md |
| listen | Customer-voice pipeline 1/3: aggregate feedback from sources | [--capability type] [--days N] [--since] [--tags x,y] [--limit N] | refs/listen.md |
| mockup | ASCII wireframe / HTML mockup / annotated spec | <description-or-target> [--format ascii\|html\|spec] [--fidelity low\|medium\|high] | refs/mockup.md |
| screenshot | Multimodal UI review from image files | <image-path> [<reference-path>] | refs/screenshot.md |
| strategy | Strategic analysis: ROI, value, market, competitive | <target> [--focus roi\|value\|market\|competitive\|all] [--quick] | refs/strategy.md |
| synthesize | Customer-voice pipeline 3/3: prioritized recommendations | [--priority high\|medium\|low\|critical] [--feature X] [--format brief\|detailed] | refs/synthesize.md |
| ux | Create or analyze user flows / IA / interaction patterns | <target-or-description> [--mode create\|analyze] | refs/ux.md |
| ux-review | Broad design audit: flows + UI + a11y + research, score 1-5 per lens | <target> [--focus flows\|ui\|a11y\|research\|all] [--quick] | refs/ux-review.md |
| visual-direction | Reason from content structure to visual form (five questions) | <section-or-description> [--skip-to N] | visual-direction/SKILL.md |
Accessibility audit for UI code/components: WCAG 2.1 AA, keyboard nav, screen reader support, color contrast, semantic structure. Inline, no dispatch.
<target>, --level (default AA), --quick.Read("${CLAUDE_PLUGIN_ROOT}/skills/product/refs/a11y.md") — the POUR rubric, checklist, common violations, and output format. Read the target file(s), apply the rubric directly, emit the audit.accessibility skill (skills/product/accessibility/). Track remediation via TaskCreate/TaskUpdate (metadata.event_type="task"); pair with the ux-review action for visual consistency.Generate testable acceptance criteria from requirements/design. acceptance
defines criteria; to run tests against them, use /wicked-testing:execution.
--story, --feature, --format, --scenarios.Read("${CLAUDE_PLUGIN_ROOT}/skills/product/refs/acceptance.md") — the Given/When/Then process, output format, and the --scenarios wicked-scenarios conversion (priority->difficulty, AC-type->category/tools, stub format). For full requirements-graph AC nodes, see the acceptance-criteria skill.--scenarios, also emit wicked-scenarios stubs.AC feed into /wicked-testing:plan. Persist on the active clarify task via TaskCreate/TaskUpdate (metadata={event_type:"task", chain_id:"{project}.clarify", source_agent:"requirements-analyst", phase:"clarify"}) for QE traceability.
Facilitate stakeholder alignment, surface concerns, and build consensus. NOT requirements elicitation (elicit) or UX design (ux).
--stakeholders, --focus (concerns/tradeoffs/conflicts), --conflict.Read("${CLAUDE_PLUGIN_ROOT}/skills/product/refs/align.md") — the process, facilitation checklist, questions to ask, and output format.Persist status via TaskCreate/TaskUpdate (metadata.event_type="task"); store stakeholder patterns via wicked-brain:memory. Heavyweight facilitation (value design + alignment in one worker): the wicked-garden-product-value-strategist fork skill — its Part B is the facilitation version of this rubric.
Analyze aggregated customer feedback for themes, sentiment patterns, and trends. Pipeline step 2 of 3: listen -> analyze -> synthesize. Inline, no dispatch.
PRODUCT_ROOT=$(sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/_run.py" scripts/resolve_path.py wicked-garden:product)
ls "${PRODUCT_ROOT}/voice/feedback/"
If empty, tell the user to run the listen action first and stop.Read("${CLAUDE_PLUGIN_ROOT}/skills/product/refs/analyze.md") — sentiment classes, theme extraction, trend detection, segment analysis, techniques, rules, and output format. Tier-3 depth: skills/product/analyze/SKILL.md + its refs (algorithms.md, sentiment-patterns.md).--theme/--sentiment/--trend/--segment. Emit the analysis report, then point to the synthesize action.Elicit requirements and write user stories with acceptance criteria.
outcome.md, brief, docs/requirements/), or accept --interactive. Honor --personas and --scope.Read("${CLAUDE_PLUGIN_ROOT}/skills/product/refs/elicit.md") — the process, INVEST quality criteria, completeness check, traceability, and output format.TaskUpdate.For complexity >= 3 or compliance signals, produce a requirements graph instead — load the requirements-analysis / requirements-graph skills. Dedicated worker: the wicked-garden-product-requirements-analyst fork skill.
Aggregate customer feedback from discovered sources (support, surveys, social, direct). Pipeline step 1 of 3: listen -> analyze -> synthesize.
PRODUCT_ROOT=$(sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/_run.py" scripts/resolve_path.py wicked-garden:product)
ls "${PRODUCT_ROOT}/voice/feedback/" 2>/dev/null
find . -name "*feedback*" -o -name "*survey*" -o -name "*tickets*" 2>/dev/null | head -10
gh issue list --label "customer-reported" 2>/dev/null | head -5
Read("${CLAUDE_PLUGIN_ROOT}/skills/product/refs/listen.md") — normalization, tagging, prioritization, storage, and output format. Capability-integration detail: skills/product/listen/SKILL.md + refs/channels.md.--days/--since/--tags/--capability/--limit. Emit the listening report, then hand off to the analyze action.Generate wireframes, mockups, and component specs at the right fidelity — ASCII for ideation, HTML/CSS for stakeholder review, annotated spec for developer handoff.
<description-or-target>, --format (ascii/html/spec), --fidelity (low/medium/high). Auto-select format: bare description / low -> ascii; high / stakeholder context -> html; file path -> spec.wicked-brain:memory.Read("${CLAUDE_PLUGIN_ROOT}/skills/product/refs/mockup.md") — fidelity selection, ASCII/HTML/spec formats, generation process, and output format. Tier-3 depth: skills/product/mockup/.ux action (flows) and the screenshot action (compare to built UI).Review UI design from screenshot images using Claude's multimodal vision — layout, spacing, color, typography, consistency — no source code. PNG/JPG/JPEG/WEBP/GIF.
<image-path> (required) and optional <reference-path>.Read(file_path="{image-path}") (and the reference if provided) — the Read tool renders images visually.Read("${CLAUDE_PLUGIN_ROOT}/skills/product/refs/screenshot.md") — the evaluation rubric (layout/color/typography/components), comparison mode, and output format. Tier-3 depth: skills/product/screenshot/SKILL.md.a11y action; compare against a mockup action spec when relevant.Strategic business analysis: ROI, value proposition, market sizing/timing,
competitive landscape. --quick = go/no-go signal only. strategy evaluates an
idea; elicit converts a chosen direction into requirements. Tier-3 depth: skills/product/strategy/ + its refs.
Read target + parse focus. Read <target> (proposal/feature doc). Determine focus(es) from --focus (default all).
Single focus -> inline. For one lens, Read("${CLAUDE_PLUGIN_ROOT}/skills/product/refs/strategy.md") and apply that lens's rubric directly — market lens for roi|market|competitive, value lens for value. No dispatch.
--focus all -> dispatch value lens; run market lens inline.
Skill(skill="wicked-garden-product-value-strategist",
args="""Target: {target_content} Quick: {--quick}
Design value proposition: customer JTBD, pain relievers, gain creators, differentiation, value statement.""")
This dispatches the wicked-garden-product-value-strategist fork skill. The market lens (ROI / TAM-SAM-SOM / SWOT / Five Forces) runs inline — Read("${CLAUDE_PLUGIN_ROOT}/skills/product/refs/strategy.md") and apply its market rubric directly: investment/returns/payback for roi, TAM/SAM/SOM + timing for market, SWOT/positioning for competitive. No separate dispatch.
Synthesis (always inline). Render the verdict inline — Proceed / Caution / Defer / Do-Not-Proceed + confidence + assumptions + metrics (refs/strategy.md output format). Never delegate the synthesis.
Translate customer-feedback analysis into prioritized, evidence-backed action items. Pipeline step 3 of 3: listen -> analyze -> synthesize.
PRODUCT_ROOT=$(sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/_run.py" scripts/resolve_path.py wicked-garden:product)
ls "${PRODUCT_ROOT}/voice/analysis/"
If empty, tell the user to run the analyze action first and stop.Read("${CLAUDE_PLUGIN_ROOT}/skills/product/refs/synthesize.md") — the impact x frequency x trend x effort x risk-of-inaction prioritization model, per-recommendation fields, and output format. Tier-3 depth: skills/product/synthesize/SKILL.md + refs (prioritization.md, journey-mapping.md).--priority/--feature/--format. Emit prioritized recommendations, quick wins, strategic initiatives, and metrics to track.Design and analyze user flows, interaction patterns, and information
architecture. For a broad design audit (UI + a11y + research), use ux-review.
<target> (path or description) and --mode. Auto-detect: description string -> create; file/dir path -> analyze.Read("${CLAUDE_PLUGIN_ROOT}/skills/product/refs/ux.md") — create/analyze steps, flow checklist, Nielsen heuristics, interaction patterns, diagram + output formats.mockup action for wireframes.Broad design audit across four lenses — flows, visual consistency (UI), WCAG
accessibility, user-research quality. Each lens returns score 1-5 + findings.
--quick = critical-only. ux-review evaluates existing UI; ux generates flows.
Determine focus. Parse --focus. Auto-detect: .tsx/.jsx/.vue -> flows+ui+a11y; .css/.scss -> ui; requirements .md -> research; directory -> all.
Single focus -> inline. For one lens, Read("${CLAUDE_PLUGIN_ROOT}/skills/product/refs/ux-review.md"), apply that lens's rubric directly to the target, and emit the score + findings. No dispatch.
--focus all -> dispatch the lenses in parallel. Genuine multi-lens concurrency on a large surface earns the hop. Common preamble: Target: {target_content} Quick: {--quick}. Each fork worker returns score 1-5 + findings.
Skill(skill="wicked-garden-product-ux-designer",
args="""<preamble> Two lenses. (1) Flows: clarity, error/empty/loading states, interaction patterns, IA. (2) Research: personas, journeys, JTBD, validation status. Issues with severity + file:line + impact + fix; plus a research-gap list.""")
Skill(skill="wicked-garden-product-ui-reviewer",
args="""<preamble> Eval design-system adherence, color/typography/spacing, component patterns, responsive + visual states. Issues with severity + fix.""")
Skill(skill="wicked-garden-product-a11y-expert",
args="""<preamble> Audit WCAG 2.1 AA (POUR): semantic HTML, ARIA, keyboard, screen reader, contrast, focus. Report WCAG level + issues with criterion + fix.""")
These dispatch the wicked-garden-product-ux-designer, wicked-garden-product-ui-reviewer, and wicked-garden-product-a11y-expert fork skills. The research lens (personas / journeys / JTBD) is folded into the ux-designer dispatch — flow and research evaluation share the same artifact and reviewer skill. Merge the three returns inline into the combined report (refs/ux-review.md output format).
Stop before proposing any visual form. Reason from what the content is to what it should look like — not from what the nearest project used.
<section-name-or-description>. Read any file path given. --skip-to <N> starts at that question.Read("${CLAUDE_PLUGIN_ROOT}/skills/product/visual-direction/SKILL.md") — five questions, anti-patterns, visual brief format.Reference knowledge lives beside this skill, loaded on demand: acceptance-criteria/,
accessibility/, analyze/, imagery/, listen/, mockup/, requirements-analysis/,
requirements-graph/, requirements-migrate/, requirements-navigate/, screenshot/,
strategy/, synthesize/, ux-review/, visual-direction/, visual-review/, plus
the per-action rubrics in refs/. Standalone fork workers (top-level
skills/product-<role>/, dispatchable via Task): a11y-expert,
requirements-analyst, ui-reviewer, ux-designer, value-strategist — all
prefixed wicked-garden-product-.
development
Pattern-conformance agent-half: evaluates a produced artifact or diff against a set of architectural/design pattern rules from the conformance-rule store (wicked_governance schema). Returns structured findings with rule ID, severity, and rationale — the deterministic half (mechanical rule recall) is done by the guard pipeline; this is the semantic evaluation step. Triggered by: the guard_pipeline `outgov_pattern` check (session-close), or explicitly by an engineering review when WICKED_OUTGOV_RULES_DIR is populated. NOT a replacement for the full `engineering` review skill — focuses only on conformance to stored Pattern rules; architecture and code-quality checks live in the `engineering` skill. Semantic evaluation reuses `wicked-garden-qe-semantic-reviewer` as the designated agent-half evaluator (per garden#983 spec). This skill is the orchestrating wrapper that loads applicable Pattern rules and delegates the per-rule semantic judgment to qe-semantic-reviewer.
tools
The FOUNDATIONAL domain-model capability: extract a codebase's domain — testable business rules (with confidence + provenance), entities, requirements — as a schema-conformant model on the estate graph. The workers annotate the store; wicked-core reads it and builds the requirements graph, coverage-gating fail-closed. Steers three fork workers. A shared substrate, not a modernization tool. The `modernize` archetype DERIVES from it; build / migrate / review / specify / explore consume the SAME domain model — none OWN it. Understanding a codebase's domain is upstream of almost everything else garden does. Use when: "extract the business rules / domain model from this codebase", "build a requirements graph from the code", "what does this system actually require", "reverse-engineer the domain before we build/port/migrate". Works on ANY codebase (modern or legacy) — the value is the domain model, not the porting. NOT the code transform itself (that is the archetype consuming this model). This skill produces the DOMAIN MODEL, not new code.
development
Domain-graph fork worker for the modernize archetype. Groups the estate's Louvain communities into business domains, attaches each requirement to its cluster (advisory cluster_id provenance), and invokes wicked-core's domain-graph build (which reads the annotated estate store, recomputes coverage fail-closed, and builds the requirements graph) — then validates core's output against the vendored schema. Use when: dispatched by wicked-garden-domain after rule extraction to turn a flat rule set into cluster-keyed domains; "group these into domains", "build the requirements graph", "translate clusters into a domain model". NOT for mining the rules themselves (that is domain-extractor) or threat-modeling (that is domain-coverage).
tools
Rule-extraction fork worker for the FOUNDATIONAL domain-model capability. Mines testable business rules from a codebase — each with a numeric confidence and a provenance{source, ref, source_kinds} — and annotates them into the estate store so wicked-core can build the domain-model requirements graph (coverage-gated). This is a substrate, not a modernization tool: the `modernize` archetype DERIVES from it, and build / migrate / review / specify / explore can consume the same domain model — none OWN it. Use when: dispatched by wicked-garden-domain to mine the business_rules of a codebase (or a module); "extract the domain rules", "what does this system require", building the requirements half of a domain model. NOT for grouping into domains (that is domain-modeler) or judging coverage (that is domain-coverage — a seat-distinct evaluator).