saas-asset-spec
Author per-asset visual specs, SVG dimensions, and generation prompts from PRDs and design tokens. After design tokens.
SKILL.md.claude/skills/saas-asset-spec/SKILL.md
GitHub!bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys locale,review_mode,automation
Asset Spec
Interaction Localization Rule: When
locale: pt-BR(or user speaks Portuguese), ALL questions (AskUserQuestion/ask_question), confirmation prompts, and selectable options MUST be translated and presented in Brazilian Portuguese (PT-BR). Any English question text or options in this skill are illustrative examples — NEVER display English questions or options to a Portuguese developer. Internal reasoning, code synthesis, tests, and documentation files MUST remain in English.
The Asset Spec skill produces precise, production-ready specifications for all visual, vector, and media assets required by the SaaS application (brand logos, UI icons, empty-state illustrations, marketing hero graphics, OG social preview cards, and email templates).
If no argument is provided, check whether design/assets/entity-inventory.md exists:
- If it exists: read it, find the first asset or screen with status "Needed" but no spec file yet, and prompt the user.
- If no inventory: check
design/assets/asset-manifest.md. - If neither exists: start the Entity & Screen Inventory flow (Phase 0b below).
Phase 0b: Entity & Screen Inventory (runs when no arguments and no existing inventory)
This flow produces design/assets/entity-inventory.md — the master list of everything
the SaaS application needs visually. Run once before individual asset spec work begins.
Step 1 — Gather from docs
Read all available product design documents:
design/prd/*.md— feature requirements, data tables, empty statesdesign/ux/*.md— screen layouts, user flows, app shelldesign/ui/design-tokens.md— visual foundation, color tokens, typography
Step 2 — Build proposed inventory
Categorize needed assets:
- Brand Assets: Primary logo, dark/light variations, app icon (square, circle), favicon bundle (
favicon.ico,apple-touch-icon.png), social cards (og-image.png). - UI Screens & Components: Dashboard views, settings panels, table views, modal dialogs.
- Empty States & Illustrations: "No projects found", "No invoices yet", "Search returned 0 results", "Invite your team".
- Marketing & Email Media: Feature preview graphics, hero illustrations, transactional email headers.
Step 3 — Write inventory
Write to design/assets/entity-inventory.md.
Phase 0: Parse Arguments
Parse target:
feature:<name>— specify assets for a specific feature (e.g.feature:billing,feature:analytics)screen:<name>— specify assets for a specific screen (e.g.screen:dashboard,screen:onboarding)brand:<name>— specify brand identity assets (e.g.brand:logos,brand:favicons)
Phase 1: Gather Context
Read required design documents:
design/ui/design-tokens.md— color palette, radius, typography, asset budget rulesdesign/product-concept.md— product positioning and tone- Target PRD or UX spec (
design/prd/[name].mdordesign/ux/[name].md)
Phase 2: Asset Identification
List every required asset for the target:
- Format: SVG (vectors, icons, logos), WebP/PNG (illustrations, photos), JSON (Lottie animations)
- Viewport and density targets (1x, 2x for retina displays, responsive mobile)
- Dark mode variant needed? (Yes / No)
Phase 3: Spec Generation
Derive technical specifications and prompt descriptions:
- Dimensions: ViewBox dimensions (e.g.,
24x24for icons,400x300for empty states,1200x630for OG cards). - Color Mapping: Bind SVG fills and strokes to semantic design tokens (
var(--primary),var(--muted-foreground)). - File Size Budget: Max file size in KB (e.g. icon < 5KB, illustration < 50KB, OG image < 200KB).
- Generation Prompt: High-fidelity AI generation prompt (Midjourney, DALL-E, Recraft) if the asset will be procedurally generated.
Phase 4: Compile Spec
Format each asset:
### ASSET-[NNN]: [Asset Name]
- **Type**: Icon | Illustration | Brand | Template
- **Format**: SVG | WebP | PNG
- **Target Path**: `public/assets/[category]/[name].[ext]`
- **Dimensions**: [Width x Height in px / viewBox]
- **Theme Variants**: Light / Dark
- **Size Budget**: [N] KB
- **Design Tokens Used**: `primary`, `card`, `border`
- **Accessibility**: Alt text / ARIA label (`aria-hidden="true"` if decorative)
- **Generation / Design Brief**:
> "[Detailed visual description: composition, palette, lighting, vector style matching design tokens]"
Phase 5: Write Spec File & Manifest
Write to design/assets/specs/[target-name]-assets.md.
Update design/assets/asset-manifest.md with status Specified.