npx skills add ...
npx skills add sentdm/sent-plugin --skill template-builder-ui
Designs and audits tenant-facing Sent template builders, previews, validation, lifecycle UX, and API payload mapping. Use for template editor forms, variables, channel overrides, WhatsApp review, RCS suggestion chips, authentication templates, and safe submission flows.
npx skills add sentdm/sent-plugin --skill template-builder-ui
Design the interface around Sent's v3 definition contract. The UI may import Meta material, but its canonical saved and submitted model must never be Meta's components[] payload.
Use one draft object with:
category and language;definition.body.multiChannel;sms, whatsapp, and rcs;definition.header, footer, buttons, definitionVersion, and authenticationConfig;creation_source, submit_for_review, and sandbox.Do not expose top-level create fields named name, channels, body, header, or buttons. If the product needs an internal display label, keep it outside the Sent create payload.
multiChannel body.sandbox: true.Category should not block the first keystroke, but it must be visible before submission because it affects authentication rules and WhatsApp policy review.
Inserting a variable creates both:
{{0:variable}}; andid, name, type, and props.sample.Renumber atomically when variables move. Never let users edit placeholder syntax independently of the entity table. Show a clear error for naked {{1}} or IDs without definitions.
Apply the exact rules in references/template-validation-matrix.md, including:
QUICK_REPLY, URL, VOICE_CALL, PHONE_NUMBER, and COPY_CODE with their per-type limits;authenticationConfig and authentication restrictions;Run the bundled waba-template-author linter against serialized JSON. Server validation remains authoritative.
Preview plain text and estimated GSM/UCS-2 segments. Make clear that segment estimates affect billing and are not template body limits.
Preview header, body, footer, and buttons. Show sample values, category, language, and provider-review impact.
Current Sent RCS guidance supports text plus up to four suggestion chips. Rich cards, carousels, and media attachments are roadmap capabilities, not current Sent builder controls. Do not generate capability declarations for unavailable features.
Channel routing belongs to the send flow, not the template editor. If routing is shown in a simulator:
channel or ["sent"] means automatic routing and fallback;["rcs"] pins RCS with no cross-channel fallback;Never describe an explicit RCS-plus-SMS array as ordered fallback.
Use sandbox: true for validation. Save with submit_for_review: false. Before switching it to true, show:
Do not autosubmit on save.
Resource status values currently include DRAFT, PENDING, APPROVED, REJECTED, and PAUSED. Keep an unknown-state renderer.
WhatsApp template webhook events use field: "templates", no sub_type, and no event; the status is payload.status. Provider values can include CATEGORY_UPDATED, DISABLED, and other future strings. See references/template-status-handling.md.
Use references/template-ui-wireflows.md for state transitions. Use waba-template-author for copy and policy judgment, sent-templates for existing-resource operations, and rcs-agent-onboarding for RCS launch readiness.