.agents/skills/product-design/SKILL.md
Decide what to build and why before arguing about spacing.
Two rules are non-negotiable:
Never design from the surface. Establish what the business actually models first.
Never turn the business model into the information architecture. The domain constrains what the surface may claim; the user's retrieval and decision task determines how the surface is organized. (
P-14)
This skill handles product meaning first. It may hand a grounded frame to ux or
design-prototype, but discovery does not require implementation or a prototype.
Strip out every framework, table and component name: if no product insight remains,
the finding belongs in an engineering skill.
| Skill | Question | When |
|---|---|---|
| product-design | What should this surface be, and why? | Before or during framing |
| ux | How should the interaction behave and feel? | While designing or building |
| ux-audit | Does the built surface honor those rules? | After it exists |
| design-prototype | How can a materialized interaction be tested? | When a prototype is useful |
| Mode | Finish line |
|---|---|
| Discover | Evidence map, business model, user-model hypotheses and structural diagnosis |
| Frame | Discover + view model, information architecture, scope and open decisions |
| Materialize | Frame + a requested spec and/or prototype |
Do not create or modify artifacts unless the user asked for a design artifact, prototype or repository change.
For a substantial run, read references/pattern-base.md and references/layer-model.md in full. For a narrow question, inspect only the relevant patterns and state what scope was checked.
Establish what is true before diagnosing the surface. For broad repositories, parallelize independent evidence areas when delegation is available and useful; the primary agent remains responsible for reconciling contradictions.
Produce:
P-04).P-12).P-01).P-02).P-06).Treat domain types and state machines as strong evidence, not the sole source of truth. Check relevant service behavior, permissions, policy, production facts and user evidence when available. Code can be stale, accidental or incomplete.
Never proceed from the team's assumed model of the product. Treat it as a hypothesis until checked against domain and user evidence.
Grounding constrains what the product may claim; it does not determine how a person should see it. Separate observed user evidence from design hypotheses:
| Model | Role in design |
|---|---|
| Business/domain model | Defines truth, validity, completeness and red lines |
| User view model | Defines grouping, ordering, labels and default expansion |
| Execution model | Supplies provenance and audit detail; never gets the page for free |
Do not proceed while proposed top-level sections are merely domain or execution
nouns such as runs, reports, evidence versions or table names. Rewrite them in
the objects the user is trying to find (P-14).
Name something wrong regardless of taste, for example:
P-04).P-05).P-07).If no structural error can be supported by evidence, report that instead of manufacturing a diagnosis.
Surface only decisions that change the shape of the answer. For each, give a recommendation, evidence and consequence. Resolve upstream decisions before the downstream ones they constrain.
Ask a blocking question separately when its answer would materially change the work; group independent decisions in one memo. When the user authorizes autonomous progress, proceed with the recommended default and label the assumption. Never ask the user for something available through grounding.
For review, approval or acceptance surfaces, establish first whether the system or
a human decision closes the lifecycle (P-12).
Use design-prototype only when the user requests a prototype or interaction, density or hierarchy cannot be resolved honestly in a written frame. This belongs to Materialize mode.
NEW on the mock.| Bucket | Meaning |
|---|---|
| ✅ Already modeled and exposed | Rearranging an existing capability |
| ⚠️ Modeled, not exposed | Lower domain risk; engineering cost still needs validation |
| ❌ Not modeled | Requires domain expansion and explicit cost/risk assessment |
Prefer a coherent ✅ + ⚠️ slice when it solves a complete user job. Do not ship an
incomplete or misleading slice merely because its concepts already exist. A ❌
capability may be the right first investment when required for value, safety or
semantic completeness (P-10).
Name every ❌ item and its likely cost drivers in the spec (P-11). Do not silently
drop it, but do not pretend its cost can be inferred from the domain model alone.
Close at the level authorized by the user:
Zero new gaps means only that none were found within the inspected scope. It does not prove that the implementation or mental model is exhausted.
| Artifact | When | Template/location |
|---|---|---|
| Design spec | Requested in Materialize mode | templates/design-spec.md; use a user-specified path or ask |
| Interactive prototype | Requested or needed to resolve uncertainty | Beside the spec, via design-prototype |
| Reality-check log | Inside a produced spec | references/trace-schema.md |
| Pattern candidate | A general, unexpected lesson emerges | In the spec/response; append only after review and authorization |
For a complete example, read references/worked-example.md.