Skip to main content

Droost: Canvas Component Lint

droost_canvas_component_lint Read-only

Module: Droost Canvas

Checks one SDC (or all) against Canvas's real placement requirements — prop schema types, required-prop examples, reserved groups. Run it on every component you scaffold before trying to place it; 0 blockers / 0 advisories is the bar.

Example call
{
    "tool": "droost_canvas_component_lint",
    "arguments": {
        "component": "droost_tailwind:code"
    }
}
Example response — captured live on this site
{
    "success": true,
    "message": "droost_tailwind:code: passes Canvas's requirements. 0 blocker(s), 0 advisory(ies).",
    "data": {
        "component": "droost_tailwind:code",
        "meets_requirements": true,
        "blockers": [],
        "advisories": [],
        "placeable": true,
        "component_entity": {
            "id": "sdc.droost_tailwind.code",
            "exists": true,
            "enabled": true
        }
    }
}

Lints Single Directory Components against Canvas's own requirements checker (the one its discovery runs on cache rebuild), plus Droost advisories for editing/AI quality (missing group, missing prop/slot descriptions, bare object props without $ref). Each result cross-references the live Component entity: an SDC failing requirements may STILL be placeable (Canvas keeps existing components, disabled). Pass "component" (an SDC id like "droost_examples:example_card") for one, or omit to sweep every discoverable SDC. Read-only.

Input schema (JSON Schema)
{
    "type": "object",
    "properties": {
        "component": {
            "type": "string",
            "description": "An SDC plugin id (\"module_or_theme:component\"). Omit to lint all discoverable SDCs."
        },
        "only_problems": {
            "type": "boolean",
            "description": "Sweep mode: only return components with blockers or advisories (default true)."
        }
    }
}