skills/design-to-drupal-paragraph/SKILL.md
Create Drupal paragraph types from Figma designs or screenshots using the design-specialist agent. Auto-activates when user provides a design reference and asks to create a Drupal paragraph type, content component, or layout section. Invoke when user says "create a Drupal paragraph from this design", "convert this mockup to a paragraph type", or provides a design with Drupal context.
npx skillsauth add kanopi/cms-cultivator design-to-drupal-paragraphInstall 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.
Create production-ready Drupal paragraph types from Figma designs or screenshots using the design-specialist agent.
Arguments: [design-source] [paragraph-name] [module-name]
When Task() is unavailable:
paragraphs.paragraph_type.{paragraph_name}.ymlfield.storage.paragraph.field_*.yml (per field)field.field.paragraph.{paragraph_name}.field_*.yml (per field)modules/custom/{module}/config/install/modules/custom/{module}/templates/paragraph--{paragraph_name}.html.twig
modules/custom/{module}/scss/_{paragraph_name}.scss
.paragraph--type--{paragraph_name} as rootWhen running in Claude Code with Task() available:
Step 2: Spawn design-specialist for code generation:
Agent(subagent_type="cms-cultivator:design-specialist:design-specialist",
prompt="Create a Drupal paragraph type from the provided design.
## Design Reference
{design source - Figma URL or screenshot path}
## Paragraph Details
- Paragraph name: {paragraph-name} (machine name: lowercase, underscores)
- Module: {module-name or 'custom_paragraphs'}
## Process
1. Analyze design using design-analyzer skill
- Extract colors, typography, spacing, layout
- Map to Drupal field types
2. Check Drupal MCP availability
- If available: create paragraph type via MCP
- If not: generate YAML configuration files
3. Generate Twig template (semantic HTML, BEM classes)
4. Create test node (if MCP available) or provide manual instructions
## Output Required
Return the structured report including:
- YAML and template file paths
- SCSS path section (component name, root class, file path)
- Design specifications section (colors, typography, spacing)
- Test node URL (or instructions) and screenshots directory")
Step 3: Spawn responsive-styling-specialist using the SCSS path and design specs from Step 2 output:
Agent(subagent_type="cms-cultivator:responsive-styling-specialist:responsive-styling-specialist",
prompt="Generate mobile-first responsive SCSS for the {paragraph_name} Drupal paragraph.
Component: {component from design-specialist output}
Root class: {root class from design-specialist output}
File path: {SCSS file path from design-specialist output}
Design specifications:
{colors, typography, spacing from design-specialist output}
Requirements:
- Mobile-first (base → 768px → 1024px)
- WCAG AA color contrast (4.5:1 normal text, 3:1 large text)
- Touch-friendly targets (44px minimum)
- Proper focus indicators (2px outline)
- Reduced motion support
- Use root class as BEM parent")
Step 4: Spawn browser-validator-specialist using the test node URL from Step 2 output:
Agent(subagent_type="cms-cultivator:browser-validator-specialist:browser-validator-specialist",
prompt="Validate the Drupal paragraph type implementation.
Test URL: {test node URL from design-specialist output, or skip if manual creation required}
Design reference: {original design source}
Validation requirements:
- Test responsive breakpoints: 320px, 768px, 1024px+
- Capture screenshots at each breakpoint
- Check WCAG AA accessibility
- Validate interactions
- Check JavaScript console
- Compare with original design
- Generate detailed technical report
Save screenshots to: {screenshots dir from design-specialist output}")
Step 5: Report — present the paragraph type file paths, SCSS path, and browser validation results to the user.
| Design Element | Drupal Field Type | |----------------|-------------------| | Short text, headings | Text (plain) | | Body content, descriptions | Text (formatted, long) | | CTAs, buttons, URLs | Link | | Images, videos | Entity reference (Media) | | Toggle features | Boolean | | Select dropdowns | List (text) | | Categories, tags | Entity reference (Taxonomy) |
modules/custom/{module}/config/install/{module}.info.yml# Enable module
drush en {module} -y
# Import configuration
drush config:import --partial --source=modules/custom/{module}/config/install
# Clear cache
drush cr
# Verify
drush cget paragraphs.paragraphs_type.{paragraph_name}
# paragraphs.paragraph_type.slideshow.yml
langcode: en
status: true
id: slideshow
label: 'Slideshow'
description: 'Image slideshow with captions'
ddev drush en {module} -y
ddev drush cim --partial --source=modules/custom/{module}/config/install
ddev drush cr
ddev theme-build
tools
Strategist-focused site audit for discovery and pre-discovery. Given a site URL and optional qualitative research data, navigates the site via CoWork, audits against all 21 UX Laws from lawsofux.com, reviews content hierarchy, synthesises qualitative data, runs Lighthouse, and produces two deliverables — a Project Knowledge Summary (Markdown for Claude Desktop Projects) and a polished, iterable HTML Artifact for client sharing. Use when a strategist, UX lead, or PM asks for a discovery audit, UX laws audit, content hierarchy review, pre-discovery site review, "audit this site for strategy", "strategist audit", "UX audit", or pastes a site URL with discovery context. Not for developer audits — use accessibility-audit, performance-audit, or live-site-audit for those.
development
Provide story point estimation guidance with hour calculations for software development tasks. Uses Fibonacci sequence (1, 2, 3, 5, 8, 13, 21, 34+) and converts story points to hours. Includes platform-specific adjustments and velocity calculations.
tools
Perform a full QA review of a Teamwork task by reading the task and all its comments for context, extracting the multi-dev URL, generating dynamic validation steps tailored to the task type, and using CoWork browser automation to execute those steps on the multi-dev environment. Produces a structured validation report with pass/fail per step, screenshots, internal notes, and a client-facing summary — all shown in chat. Use this skill whenever the user asks to QA, test, validate, or review a Teamwork task or multi-dev environment — even if they just say "can you QA this?" or paste a Teamwork link. Also triggers for phrases like "run QA on", "check the multi-dev", "validate this task", "test the dev link", or "review the ticket". Works across Drupal/CMS updates, WordPress/plugin updates, bug fixes, new feature development, and general web development tasks.
tools
Generate a client-facing project heartbeat / status update message for a Kanopi project, ready to be posted as a Teamwork message. Use this skill whenever the user asks to write, draft, generate, or send a project update, heartbeat, status update, or progress report to a client. Also triggers when the user says things like "time for a project update", "draft the heartbeat", "write up the update for [project]", or "it's been two weeks, let's send an update". Always use this skill — even if the user doesn't say "heartbeat" — whenever the intent is to summarise recent project activity for a client audience.