Stripo API integration — sync your saved modules and compose emails directly into your workspace
Orbit now talks to Stripo's REST API. Connect once, and Orbit pulls every custom module you've saved, documents your modular design system as a markdown brief, and lets you compose on-brand emails from a sequence of modules — with an HTML preview rendered inline in Claude before you push the result back to your Stripo workspace as an editable email. The paste-driven Stripo flow still works; this is the API-driven sibling for users who want a tighter loop.
What shipped
•New tool orbit_setup_stripo walks you through connecting Stripo. Stripo uses two separate credentials (Plugin ID + Secret Key for the editor, plus a per-project REST API token for the API itself) — the setup tool reports which are present, runs live probes to confirm they work, and returns a step-by-step markdown checklist with ✅/⬜ ticks that update each time you re-run it.
•New tool orbit_sync_stripo_modules pulls every custom saved module from your Stripo workspace into Orbit's local library. Classification is automatic via Stripo's own category taxonomy (header → header, banners → hero, footer → footer, content_canvas → content). Modules deleted in Stripo are tagged archived locally, never hard-deleted.
•New tool orbit_list_stripo_modules reads the synced library without re-hitting Stripo's API. Filter by classification (header / hero / content / footer) or free-text search.
•New tool orbit_document_stripo_design_system generates a markdown brief covering your module inventory, detected brand tokens (colours, fonts, button padding) with consensus + outliers, inferred composition rules (e.g. 'all headers are full-width STRIPE blocks'), and risks (duplicate names, footers missing the unsubscribe Liquid var, unclassified modules). Saves to ~/Orbit/outputs/stripo-design-system/ as a single readable doc Claude consumes before composing.
•New tool orbit_compose_stripo_email assembles an email from an ordered module sequence. Validates the one-header-one-footer rule programmatically (the LLM cannot accidentally build an email with two footers; the tool rejects with an actionable error). Returns a full HTML email document with CSS deduped across modules and every esd-custom-block-id attribute preserved so the result round-trips into Stripo's editor cleanly. Claude renders the assembled HTML as an artifact preview immediately — no extra step from you to see the result.
•Pushing the composed email into your Stripo workspace via the generateemail endpoint is wired through the same compose tool with push: true — completion of that half is pending a one-time master template setup in Stripo (the setup tool walks you through it).
•New skill stripo-integration tells Claude when to apply the canonical sequence (setup → sync → document → compose → push) and how to recover from common failure modes (missing REST token, plan-tier gating, zero saved modules).
•Six new credential fields in extension settings: Stripo Plugin ID, Stripo Secret Key, Stripo REST API Token, Stripo Workspace ID (optional), Stripo Master Template ID (optional), Stripo Default Folder ID (optional). All sensitive credentials marked as such; never logged.
•Improved the Stripo Liquid-variable parser used by both the existing learn flow and the new sync flow — Stripo's nested ${...} content-block syntax inside {{ }} no longer truncates the variable name.
•The existing orbit_learn_email_template paste-driven flow is unchanged — use it for one-off HTML imports. Use the new orbit_*_stripo_* tools when you want the API-driven loop.