create_critique_pin
Create a visual critique pin on a live page with concrete, actionable feedback. Specify the element, problem, and fix in under 40 words for AI-driven UI, copy, or accessibility review.
Instructions
Create a pin authored by Pincushion AI. ONLY call this from the pincushion-critic subagent or the /critique-latest-deploy flow — never from a regular user prompt, since the bot voice is reserved for AI-driven UI/copy/a11y feedback. Each call should produce one tasteful, high-signal pin (max 3 per page in a critique run). The body must be concrete and actionable: name the specific element + the specific problem + the suggested fix in <40 words. Forbidden: layout philosophy, business-model commentary, generic "consider improving hierarchy" advice. Always read the project's critique context (ai.critique.effectiveContext from get_project_context — falls back to brandContext when no compiled brief exists) before drafting the body so the critique is on-brand. If ai.critique.staleness is "stale" or "missing", suggest the user run /refresh-brand before continuing.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The critique itself. Concrete + actionable, <40 words, names the element and proposes a fix. This becomes the first thread message on the pin. | |
| tags | No | Optional tags. "pincushion-ai" is added automatically. Add domain tags like "a11y", "copy", "deploy:<hash>" for traceability. | |
| pageUrl | Yes | Full URL of the page being critiqued (e.g. "http://localhost:3000/dashboard"). | |
| selector | No | CSS selector for the element the critique targets. The Chrome extension uses this to position the pin since the bot has no live page coords. Be specific (e.g. 'main button[type="submit"]' not just 'button'). | |
| severity | No | "high" = ships-blocking (broken contrast, broken keyboard nav, misleading CTA copy). "medium" = worth-fixing (minor copy issues, cramped spacing, polish opportunities). 'low' is intentionally not allowed — bot pins must be worth acting on. | |
| pageTitle | No | Optional page title for the .feedback file header. Defaults to pageUrl if omitted. | |
| projectId | No | Project ID to associate the pin with. Defaults to the MCP server's configured project. | |
| componentName | No | Optional component name (e.g. LWC component, React component) for grouping. Used by get_component_feedback. |