canvas-component-metadata

Define and enforce valid component.yml metadata for Canvas components.

3|1|Updated Feb 11, 2026
One-click install
npx skills add https://github.com/drupal-canvas/skills --skill canvas-component-metadata-drupal-canvas
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: canvas-component-metadata
Source: https://github.com/drupal-canvas/skills/tree/main/skills/canvas-component-metadata
Command: npx skills add https://github.com/drupal-canvas/skills --skill canvas-component-metadata-drupal-canvas

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Canvas component metadata often lacks structure and validation, leading to inconsistent component.yml files that break tooling and degrade editor experience. This Skill provides a clear, centralized guideline to define, validate, and maintain a correct component.yml schema for Canvas components.

Core Features & Use Cases

  • Enforces required keys (name, machineName, status, required, props, slots) to ensure a complete contract.
  • Validates prop titles, IDs (camelCase), and enum definitions with human-readable labels to align UI controls with code.
  • Supports optional directories (scripts/, references/, assets/) to extend metadata with actionable assets and references.

Quick Start

Create a new component.yml for your Canvas component following the documented structure and save it at the component root.

Frequently Asked Questions about canvas-component-metadata

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I validate component.yml metadata for Canvas components?

To validate component.yml metadata for Canvas components, enforce required keys like name, machineName, status, props, and slots. This ensures a complete contract and prevents inconsistent files that degrade editor experience and break tooling across design-to-code lifecycles.

What are the required keys for a Canvas component.yml file?

The required keys for a Canvas component.yml file are name, machineName, status, required, props, and slots. Defining these keys correctly ensures a complete metadata contract, aligning UI controls with code and maintaining structural consistency.

How do I define props and enums in Canvas component metadata?

To define props and enums in Canvas component metadata, use proper prop titles and camelCase IDs. Enum definitions must include human-readable labels and meta mappings to accurately align UI controls with the underlying code structure.

Can I include additional directories for assets and scripts in Canvas components?

Yes, you can include optional directories such as scripts/, references/, and assets/ in Canvas components. These directories extend component.yml metadata by providing actionable assets and extended resources for your design-to-code workflows.

Why does my Canvas component metadata break tooling?

Canvas component metadata breaks tooling when component.yml files lack structure and validation. Missing required keys, improper camelCase IDs, or invalid enum definitions create inconsistent schemas that degrade the editor experience and disrupt the design-to-code lifecycle.