Update to Orshot
Snapshot Oct 24, 2026 · 12:51 UTC · version 3.3.0
Collection source: downloaded plugin package. These snapshots do not have a confirmed matching collection source. Differences in file lists alone do not establish changes to the package.
Instructions updated for orshot-design
Full description — Now says: thumbnails, and animated/narrated video templates. Applies the craft rules (clear hierarchy, 2-font typography, 60-30-10 color, restrained motion),
Observed in instructions or declared skills. Runtime behavior has not been tested.
Up to 3 plugins free · no card required.
All fields and original values.
Full description
Sep 30, 2026 · 22:48 UTC
thumbnails. Applies the craft rules (clear hierarchy, 2-font typography, 60-30-10 color),
Oct 24, 2026 · 12:51 UTC
thumbnails, and animated/narrated video templates. Applies the craft rules (clear hierarchy, 2-font typography, 60-30-10 color, restrained motion),
Skill instructions
Sep 30, 2026 · 22:48 UTC
thumbnails. Applies the craft rules (clear hierarchy, 2-font typography, 60-30-10 color), consults the brand kit first, varies layouts so designs never repeat by type, and runs a render-and-critique loop. Pairs with the orshot MCP create...
Oct 24, 2026 · 12:51 UTC
thumbnails, and animated/narrated video templates. Applies the craft rules (clear hierarchy, 2-font typography, 60-30-10 color, restrained motion), consults the brand kit first, varies layouts so designs never repeat by type, and runs a ...
Compare saved observations
Download comparison JSONSKILL.md text changes
− removed · + added
--- before +++ after @@ -1,9 +1,9 @@ --- name: orshot-design -description: Design trendy, professional, on-brand Orshot studio templates. Use when creating or refining a template design via the Orshot MCP — social posts, ads, stories, carousels, banners, thumbnails. Applies the craft rules (clear hierarchy, 2-font typography, 60-30-10 color), consults the brand kit first, varies layouts so designs never repeat by type, and runs a render-and-critique loop. Pairs with the orshot MCP create/update/patch tools. +description: Design trendy, professional, on-brand Orshot studio templates. Use when creating or refining a template design via the Orshot MCP — social posts, ads, stories, carousels, banners, thumbnails, and animated/narrated video templates. Applies the craft rules (clear hierarchy, 2-font typography, 60-30-10 color, restrained motion), consults the brand kit first, varies layouts so designs never repeat by type, and runs a render-and-critique loop. Pairs with the orshot MCP create/update/patch tools. metadata: author: Rishi Mohan - version: "1.0.0" + version: "1.1.0" mcp-server: orshot --- @@ -22,7 +22,7 @@ ## Boundaries - This is design guidance — it does NOT replace the schema spec. Style values are always strings with units; `position`/`dimensions` are nested objects. See Compatibility below. -- It composes with the `orshot` skill (API/generation mechanics) — use that to render. +- To render, use the Orshot MCP render tools (`orshot_render_template`, or `orshot_verify_design` to render and check in one call). ## Operating principle **Design serves the task.** Decide the ONE thing the viewer must take away, then make @@ -82,6 +82,25 @@ canvas/container→"backgroundColor"). - Shapes with transparent fill + a border render nothing; SVG `content` must be a data-URI. +## Motion & audio (video templates) +Making video look designed, not generated: +- **Reveal in sections over ~4–5s.** Elements that form one unit (icon+label, a spec row, + the footer) share the SAME `enter` type and `showAt`; stagger ~0.3–0.5s BETWEEN sections in + reading order. `showAt`/`hideAt` are siblings of `enter`/`exit` — never nested inside them. +- **Every full-bleed photo gets a `kenBurns` ambient** (zoom 1.08–1.15). A still photo held + 3 seconds reads as a dead frame; a slow push reads as footage. Alternate `panX` direction + between pages. +- **Ambient stays subtle and SLOW** — 6–10s cycles against a 0.5s enter. If the viewer can + name the motion it is too strong, unless it is a deliberate accent (a badge that wiggles). + `shake`/`slowRotate` need `easing: "linear"` or the loop seam shows. +- **One `pageTransition` for the whole video**, 0.3–0.5s. A different transition per cut is + the clearest tell of an auto-generated edit. +- **Sound default**: narration track at volume 1 + a restrained generated ambient bed + (`sfx`, volume 0.08–0.18, loop) + `page.subtitle { source: "auto-audio" }` with a caption + preset (`karaoke`/`bold`) and strokeWidth 2–3 over busy footage. Budget narration at + ~2 words/second with 1s headroom. Call `orshot_get_audio_authoring_options` before + authoring generated audio; give `tts.parameterId` so spoken copy stays a render parameter. + ## Anti-patterns (the AI-slop tells — avoid) - Everything centered and stacked; no focal point. - 3+ fonts, or random sizes with no hierarchy.
Full technical diff · 2 changed fields
changed /description
"Design trendy, professional, on-brand Orshot studio templates. Use when creating or refining a template design via the Orshot MCP — social posts, ads, stories, carousels, banners, thumbnails. Applies the craft rules (clear hierarchy, 2-font typography, 60-30-10 color), consults the brand kit first, varies layouts so designs never repeat by type, and runs a render-and-critique loop. Pairs with the orshot MCP create/update/patch tools."
"Design trendy, professional, on-brand Orshot studio templates. Use when creating or refining a template design via the Orshot MCP — social posts, ads, stories, carousels, banners, thumbnails, and animated/narrated video templates. Applies the craft rules (clear hierarchy, 2-font typography, 60-30-10 color, restrained motion), consults the brand kit first, varies layouts so designs never repeat by type, and runs a render-and-critique loop. Pairs with the orshot MCP create/update/patch tools."
changed /skill_md_contents
"---\nname: orshot-design\ndescription: Design trendy, professional, on-brand Orshot studio templates. Use when creating or refining a template design via the Orshot MCP — social posts, ads, stories, carousels, banners, thumbnails. Applies the craft rules (clear hierarchy, 2-font typography, 60-30-10 color), consults the brand kit first, varies layouts so designs never repeat by type, and runs a render-and-critique loop. Pairs with the orshot MCP create/update/patch tools.\nmetadata:\n author: Rishi Mohan\n version: \"1.0.0\"\n mcp-server: orshot\n---\n\n# Orshot Design — the craft layer\n\nMake Orshot studio templates that look trendy and professionally designed, not the\ngeneric centered-text \"AI\" look. This skill is the knowledge layer on top of the Orshot\nMCP server's design tools (`orshot_create_template_design`, `orshot_update_template_design`,\n`orshot_patch_template_elements`, `orshot_get_brand_kit`).\n\n## When to use\nUse whenever you are designing or refining a visual template: a social post/story/carousel,\nan ad creative, a banner, a thumbnail, a launch graphic. For the studio element schema and\nrender gotchas, also consult the MCP resource `orshot://template-design-spec`.\n\n## Boundaries\n- This is design guidance — it does NOT replace the schema spec. Style values are always\n strings with units; `position`/`dimensions` are nested objects. See Compatibility below.\n- It composes with the `orshot` skill (API/generation mechanics) — use that to render.\n\n## Operating principle\n**Design serves the task.** Decide the ONE thing the viewer must take away, then make\neverything support it. Respect the brand and the platform over generic prettiness. Prefer\nthe deterministic rules below over subjective iteration.\n\n## Required workflow (in order)\n1. **Shape** — restate the goal, audience, and the single key message before placing anything.\n2. **Inherit the brand (when on-brand)** — IF the design should match the user's\n brand/product (the prompt implies it, or asks for \"our\" style), call `orshot_get_brand_kit`\n (tag-filter to the purpose) and map brand colors/fonts/logo onto the roles in Systems. If\n the prompt asks for a generic/standalone look, use the pack defaults — don't force brand in.\n3. **Pick the vertical pack** — read the matching file in `references/` (e.g.\n `references/social-media.md`) for format, safe areas, archetypes, and a concrete recipe.\n Choose a DIFFERENT archetype from recent templates of this type.\n4. **Build** — establish one focal element, then support it. Keep the design simple on the\n first create; refine in a follow-up update.\n5. **Critique** — create/update with `includeThumbnails:true`, READ the thumbnail, and fix\n issues with `orshot_update_template_design` / `orshot_patch_template_elements`. Never ship\n the first pass unseen. (The create tool also returns a \"🎨 Design check\" — resolve its ⚠s.)\n\n## Systems\n- **Hierarchy** — one clear focal point via size, weight, and position. Not everything centered.\n- **Typography** — exactly **2 font families** (display + body). Hierarchy from scale/weight.\n Tight `lineHeight` (1.0–1.15) and slightly negative `letterSpacing` on large display type.\n Heaviest brand font → display, lighter → body.\n- **Color — 60-30-10** — 60% dominant, 30% secondary, 10% accent. Cohesive palette beats more\n colors. Clear WCAG AA contrast. Map brand colors to roles by USAGE, not by \"primary\" label.\n- **Composition & space** — generous margins (≥ ~6% of canvas per edge), align to an implied\n grid, prefer off-center over dead-center stacking.\n- **Imagery** — full-bleed or intentionally framed; `objectFit:\"cover\"` for photos; add a\n gradient scrim under text over busy photos.\n\n## Brand (contextual — not mandatory)\nUse the brand kit WHEN the design should be on-brand (the prompt references the user's brand,\nproduct, or identity): colors → 60-30-10 roles, fonts → display/body, logo → a small\ncorner/footer mark, images → hero/product. For a generic/exploratory/standalone look, the\npack palette is fine — don't force brand assets in.\n\n## Variety\n**Never repeat a layout for the same content type.** Vary archetype, focal placement, and\ncolor emphasis between designs of the same kind.\n\n## Compatibility (get these right or the render silently breaks)\n- ALL style values are **strings with units**: `\"48px\"`, `\"700\"`, `\"12px\"` — never bare numbers.\n- `position` and `dimensions` are **nested objects** (`{x,y}`, `{width,height}`).\n- **Set `textMode:\"fit\"` + `minFontSize` on EVERY text element** (floors: headline 48,\n subtitle 28, body 24, kicker 18, caption 14). The default `\"overflow\"` does not shrink or\n reflow — long/parameterized text spills out of its box.\n- Line breaks: use `\\n`, **NEVER `<br>`**; avoid multiple `<p>` blocks (they overlap). For a\n multi-line headline with one accent-colored word, use one text element per line.\n- A **background-highlight `<span>` (colored pill) forces the whole element to one line**\n (`white-space: nowrap`) → overflow on long text. Highlight only 1–3 words; for long\n headlines use `color` emphasis (no background) or split per line.\n- Parameterizable fields need `parameterizable:true`, a unique snake_case `parameterId`, and a\n `parameterType` matching the element (text→\"text\", image→\"imageUrl\", shape→\"fill\",\n canvas/container→\"backgroundColor\").\n- Shapes with transparent fill + a border render nothing; SVG `content` must be a data-URI.\n\n## Anti-patterns (the AI-slop tells — avoid)\n- Everything centered and stacked; no focal point.\n- 3+ fonts, or random sizes with no hierarchy.\n- Low-contrast text on a busy photo with no scrim.\n- Forcing brand assets when the prompt didn't ask for an on-brand design (or ignoring the kit when it clearly did).\n- A tiny headline above a paragraph of body copy (a template is not a document).\n- Re-emitting the previous layout for the same content type.\n\n## Vertical packs (progressive disclosure)\nRead the one matching the task — each adds format/safe-areas, archetypes, and a recipe:\n- `references/social-media.md` — posts, stories, carousels.\n- (more verticals — ads, real-estate, e-commerce — added here over time.)\n\n## Examples\n\n### Example 1 — \"Make an Instagram post announcing our new feature\"\n1. `orshot_get_brand_kit` (tags: \"social-media\") → brand colors/fonts/logo.\n2. Read `references/social-media.md` → default 4:5 portrait 1080×1350; pick the `type-hero`\n archetype (different from the last post).\n3. `orshot_create_template_design` with brand display font for an oversized headline, brand\n dominant color as background, accent color on one word, logo + @handle footer,\n `includeThumbnails:true`.\n4. Read the thumbnail + \"🎨 Design check\"; patch contrast/spacing as needed.\n\n### Example 2 — \"Refine this template, it looks generic\"\n1. `orshot_get_studio_template` to inspect the current design.\n2. Diagnose against Anti-patterns (centered? 3+ fonts? no focal point? brand ignored?).\n3. `orshot_patch_template_elements` to set one focal headline, trim to 2 fonts, apply brand\n 60-30-10, left/bottom-align. Re-render with `includeThumbnails:true` and verify.\n\n## Troubleshooting\n\n**Headline shows on one line / `<br>` ignored.** Use `\\n`, not `<br>`. For a colored word on\na multi-line headline, split into one text element per line.\n\n**Colors/fonts look off-brand.** You skipped step 2 — call `orshot_get_brand_kit` and map the\nreturned `value` (colors) and `name` (fonts) onto the design.\n\n**\"🎨 Design check\" warns about repetition.** This layout matches a recent same-type template.\nSwitch archetype and move the focal point.\n""---\nname: orshot-design\ndescription: Design trendy, professional, on-brand Orshot studio templates. Use when creating or refining a template design via the Orshot MCP — social posts, ads, stories, carousels, banners, thumbnails, and animated/narrated video templates. Applies the craft rules (clear hierarchy, 2-font typography, 60-30-10 color, restrained motion), consults the brand kit first, varies layouts so designs never repeat by type, and runs a render-and-critique loop. Pairs with the orshot MCP create/update/patch tools.\nmetadata:\n author: Rishi Mohan\n version: \"1.1.0\"\n mcp-server: orshot\n---\n\n# Orshot Design — the craft layer\n\nMake Orshot studio templates that look trendy and professionally designed, not the\ngeneric centered-text \"AI\" look. This skill is the knowledge layer on top of the Orshot\nMCP server's design tools (`orshot_create_template_design`, `orshot_update_template_design`,\n`orshot_patch_template_elements`, `orshot_get_brand_kit`).\n\n## When to use\nUse whenever you are designing or refining a visual template: a social post/story/carousel,\nan ad creative, a banner, a thumbnail, a launch graphic. For the studio element schema and\nrender gotchas, also consult the MCP resource `orshot://template-design-spec`.\n\n## Boundaries\n- This is design guidance — it does NOT replace the schema spec. Style values are always\n strings with units; `position`/`dimensions` are nested objects. See Compatibility below.\n- To render, use the Orshot MCP render tools (`orshot_render_template`, or `orshot_verify_design` to render and check in one call).\n\n## Operating principle\n**Design serves the task.** Decide the ONE thing the viewer must take away, then make\neverything support it. Respect the brand and the platform over generic prettiness. Prefer\nthe deterministic rules below over subjective iteration.\n\n## Required workflow (in order)\n1. **Shape** — restate the goal, audience, and the single key message before placing anything.\n2. **Inherit the brand (when on-brand)** — IF the design should match the user's\n brand/product (the prompt implies it, or asks for \"our\" style), call `orshot_get_brand_kit`\n (tag-filter to the purpose) and map brand colors/fonts/logo onto the roles in Systems. If\n the prompt asks for a generic/standalone look, use the pack defaults — don't force brand in.\n3. **Pick the vertical pack** — read the matching file in `references/` (e.g.\n `references/social-media.md`) for format, safe areas, archetypes, and a concrete recipe.\n Choose a DIFFERENT archetype from recent templates of this type.\n4. **Build** — establish one focal element, then support it. Keep the design simple on the\n first create; refine in a follow-up update.\n5. **Critique** — create/update with `includeThumbnails:true`, READ the thumbnail, and fix\n issues with `orshot_update_template_design` / `orshot_patch_template_elements`. Never ship\n the first pass unseen. (The create tool also returns a \"🎨 Design check\" — resolve its ⚠s.)\n\n## Systems\n- **Hierarchy** — one clear focal point via size, weight, and position. Not everything centered.\n- **Typography** — exactly **2 font families** (display + body). Hierarchy from scale/weight.\n Tight `lineHeight` (1.0–1.15) and slightly negative `letterSpacing` on large display type.\n Heaviest brand font → display, lighter → body.\n- **Color — 60-30-10** — 60% dominant, 30% secondary, 10% accent. Cohesive palette beats more\n colors. Clear WCAG AA contrast. Map brand colors to roles by USAGE, not by \"primary\" label.\n- **Composition & space** — generous margins (≥ ~6% of canvas per edge), align to an implied\n grid, prefer off-center over dead-center stacking.\n- **Imagery** — full-bleed or intentionally framed; `objectFit:\"cover\"` for photos; add a\n gradient scrim under text over busy photos.\n\n## Brand (contextual — not mandatory)\nUse the brand kit WHEN the design should be on-brand (the prompt references the user's brand,\nproduct, or identity): colors → 60-30-10 roles, fonts → display/body, logo → a small\ncorner/footer mark, images → hero/product. For a generic/exploratory/standalone look, the\npack palette is fine — don't force brand assets in.\n\n## Variety\n**Never repeat a layout for the same content type.** Vary archetype, focal placement, and\ncolor emphasis between designs of the same kind.\n\n## Compatibility (get these right or the render silently breaks)\n- ALL style values are **strings with units**: `\"48px\"`, `\"700\"`, `\"12px\"` — never bare numbers.\n- `position` and `dimensions` are **nested objects** (`{x,y}`, `{width,height}`).\n- **Set `textMode:\"fit\"` + `minFontSize` on EVERY text element** (floors: headline 48,\n subtitle 28, body 24, kicker 18, caption 14). The default `\"overflow\"` does not shrink or\n reflow — long/parameterized text spills out of its box.\n- Line breaks: use `\\n`, **NEVER `<br>`**; avoid multiple `<p>` blocks (they overlap). For a\n multi-line headline with one accent-colored word, use one text element per line.\n- A **background-highlight `<span>` (colored pill) forces the whole element to one line**\n (`white-space: nowrap`) → overflow on long text. Highlight only 1–3 words; for long\n headlines use `color` emphasis (no background) or split per line.\n- Parameterizable fields need `parameterizable:true`, a unique snake_case `parameterId`, and a\n `parameterType` matching the element (text→\"text\", image→\"imageUrl\", shape→\"fill\",\n canvas/container→\"backgroundColor\").\n- Shapes with transparent fill + a border render nothing; SVG `content` must be a data-URI.\n\n## Motion & audio (video templates)\nMaking video look designed, not generated:\n- **Reveal in sections over ~4–5s.** Elements that form one unit (icon+label, a spec row,\n the footer) share the SAME `enter` type and `showAt`; stagger ~0.3–0.5s BETWEEN sections in\n reading order. `showAt`/`hideAt` are siblings of `enter`/`exit` — never nested inside them.\n- **Every full-bleed photo gets a `kenBurns` ambient** (zoom 1.08–1.15). A still photo held\n 3 seconds reads as a dead frame; a slow push reads as footage. Alternate `panX` direction\n between pages.\n- **Ambient stays subtle and SLOW** — 6–10s cycles against a 0.5s enter. If the viewer can\n name the motion it is too strong, unless it is a deliberate accent (a badge that wiggles).\n `shake`/`slowRotate` need `easing: \"linear\"` or the loop seam shows.\n- **One `pageTransition` for the whole video**, 0.3–0.5s. A different transition per cut is\n the clearest tell of an auto-generated edit.\n- **Sound default**: narration track at volume 1 + a restrained generated ambient bed\n (`sfx`, volume 0.08–0.18, loop) + `page.subtitle { source: \"auto-audio\" }` with a caption\n preset (`karaoke`/`bold`) and strokeWidth 2–3 over busy footage. Budget narration at\n ~2 words/second with 1s headroom. Call `orshot_get_audio_authoring_options` before\n authoring generated audio; give `tts.parameterId` so spoken copy stays a render parameter.\n\n## Anti-patterns (the AI-slop tells — avoid)\n- Everything centered and stacked; no focal point.\n- 3+ fonts, or random sizes with no hierarchy.\n- Low-contrast text on a busy photo with no scrim.\n- Forcing brand assets when the prompt didn't ask for an on-brand design (or ignoring the kit when it clearly did).\n- A tiny headline above a paragraph of body copy (a template is not a document).\n- Re-emitting the previous layout for the same content type.\n\n## Vertical packs (progressive disclosure)\nRead the one matching the task — each adds format/safe-areas, archetypes, and a recipe:\n- `references/social-media.md` — posts, stories, carousels.\n- (more verticals — ads, real-estate, e-commerce — added here over time.)\n\n## Examples\n\n### Example 1 — \"Make an Instagram post announcing our new feature\"\n1. `orshot_get_brand_kit` (tags: \"social-media\") → brand colors/fonts/logo.\n2. Read `references/social-media.md` → default 4:5 portrait 1080×1350; pick the `type-hero`\n archetype (different from the last post).\n3. `orshot_create_template_design` with brand display font for an oversized headline, brand\n dominant color as background, accent color on one word, logo + @handle footer,\n `includeThumbnails:true`.\n4. Read the thumbnail + \"🎨 Design check\"; patch contrast/spacing as needed.\n\n### Example 2 — \"Refine this template, it looks generic\"\n1. `orshot_get_studio_template` to inspect the current design.\n2. Diagnose against Anti-patterns (centered? 3+ fonts? no focal point? brand ignored?).\n3. `orshot_patch_template_elements` to set one focal headline, trim to 2 fonts, apply brand\n 60-30-10, left/bottom-align. Re-render with `includeThumbnails:true` and verify.\n\n## Troubleshooting\n\n**Headline shows on one line / `<br>` ignored.** Use `\\n`, not `<br>`. For a colored word on\na multi-line headline, split into one text element per line.\n\n**Colors/fonts look off-brand.** You skipped step 2 — call `orshot_get_brand_kit` and map the\nreturned `value` (colors) and `name` (fonts) onto the design.\n\n**\"🎨 Design check\" warns about repetition.** This layout matches a recent same-type template.\nSwitch archetype and move the focal point.\n"Full snapshot data
{
"description": "Design trendy, professional, on-brand Orshot studio templates. Use when creating or refining a template design via the Orshot MCP — social posts, ads, stories, carousels, banners, thumbnails, and animated/narrated video templates. Applies the craft rules (clear hierarchy, 2-font typography, 60-30-10 color, restrained motion), consults the brand kit first, varies layouts so designs never repeat by type, and runs a render-and-critique loop. Pairs with the orshot MCP create/update/patch tools.",
"included_files": [
{
"relative_path": "references/social-media.md",
"size_in_bytes": 4811
}
],
"name": "orshot-design",
"skill_md_contents": "---\nname: orshot-design\ndescription: Design trendy, professional, on-brand Orshot studio templates. Use when creating or refining a template design via the Orshot MCP — social posts, ads, stories, carousels, banners, thumbnails, and animated/narrated video templates. Applies the craft rules (clear hierarchy, 2-font typography, 60-30-10 color, restrained motion), consults the brand kit first, varies layouts so designs never repeat by type, and runs a render-and-critique loop. Pairs with the orshot MCP create/update/patch tools.\nmetadata:\n author: Rishi Mohan\n version: \"1.1.0\"\n mcp-server: orshot\n---\n\n# Orshot Design — the craft layer\n\nMake Orshot studio templates that look trendy and professionally designed, not the\ngeneric centered-text \"AI\" look. This skill is the knowledge layer on top of the Orshot\nMCP server's design tools (`orshot_create_template_design`, `orshot_update_template_design`,\n`orshot_patch_template_elements`, `orshot_get_brand_kit`).\n\n## When to use\nUse whenever you are designing or refining a visual template: a social post/story/carousel,\nan ad creative, a banner, a thumbnail, a launch graphic. For the studio element schema and\nrender gotchas, also consult the MCP resource `orshot://template-design-spec`.\n\n## Boundaries\n- This is design guidance — it does NOT replace the schema spec. Style values are always\n strings with units; `position`/`dimensions` are nested objects. See Compatibility below.\n- To render, use the Orshot MCP render tools (`orshot_render_template`, or `orshot_verify_design` to render and check in one call).\n\n## Operating principle\n**Design serves the task.** Decide the ONE thing the viewer must take away, then make\neverything support it. Respect the brand and the platform over generic prettiness. Prefer\nthe deterministic rules below over subjective iteration.\n\n## Required workflow (in order)\n1. **Shape** — restate the goal, audience, and the single key message before placing anything.\n2. **Inherit the brand (when on-brand)** — IF the design should match the user's\n brand/product (the prompt implies it, or asks for \"our\" style), call `orshot_get_brand_kit`\n (tag-filter to the purpose) and map brand colors/fonts/logo onto the roles in Systems. If\n the prompt asks for a generic/standalone look, use the pack defaults — don't force brand in.\n3. **Pick the vertical pack** — read the matching file in `references/` (e.g.\n `references/social-media.md`) for format, safe areas, archetypes, and a concrete recipe.\n Choose a DIFFERENT archetype from recent templates of this type.\n4. **Build** — establish one focal element, then support it. Keep the design simple on the\n first create; refine in a follow-up update.\n5. **Critique** — create/update with `includeThumbnails:true`, READ the thumbnail, and fix\n issues with `orshot_update_template_design` / `orshot_patch_template_elements`. Never ship\n the first pass unseen. (The create tool also returns a \"🎨 Design check\" — resolve its ⚠s.)\n\n## Systems\n- **Hierarchy** — one clear focal point via size, weight, and position. Not everything centered.\n- **Typography** — exactly **2 font families** (display + body). Hierarchy from scale/weight.\n Tight `lineHeight` (1.0–1.15) and slightly negative `letterSpacing` on large display type.\n Heaviest brand font → display, lighter → body.\n- **Color — 60-30-10** — 60% dominant, 30% secondary, 10% accent. Cohesive palette beats more\n colors. Clear WCAG AA contrast. Map brand colors to roles by USAGE, not by \"primary\" label.\n- **Composition & space** — generous margins (≥ ~6% of canvas per edge), align to an implied\n grid, prefer off-center over dead-center stacking.\n- **Imagery** — full-bleed or intentionally framed; `objectFit:\"cover\"` for photos; add a\n gradient scrim under text over busy photos.\n\n## Brand (contextual — not mandatory)\nUse the brand kit WHEN the design should be on-brand (the prompt references the user's brand,\nproduct, or identity): colors → 60-30-10 roles, fonts → display/body, logo → a small\ncorner/footer mark, images → hero/product. For a generic/exploratory/standalone look, the\npack palette is fine — don't force brand assets in.\n\n## Variety\n**Never repeat a layout for the same content type.** Vary archetype, focal placement, and\ncolor emphasis between designs of the same kind.\n\n## Compatibility (get these right or the render silently breaks)\n- ALL style values are **strings with units**: `\"48px\"`, `\"700\"`, `\"12px\"` — never bare numbers.\n- `position` and `dimensions` are **nested objects** (`{x,y}`, `{width,height}`).\n- **Set `textMode:\"fit\"` + `minFontSize` on EVERY text element** (floors: headline 48,\n subtitle 28, body 24, kicker 18, caption 14). The default `\"overflow\"` does not shrink or\n reflow — long/parameterized text spills out of its box.\n- Line breaks: use `\\n`, **NEVER `<br>`**; avoid multiple `<p>` blocks (they overlap). For a\n multi-line headline with one accent-colored word, use one text element per line.\n- A **background-highlight `<span>` (colored pill) forces the whole element to one line**\n (`white-space: nowrap`) → overflow on long text. Highlight only 1–3 words; for long\n headlines use `color` emphasis (no background) or split per line.\n- Parameterizable fields need `parameterizable:true`, a unique snake_case `parameterId`, and a\n `parameterType` matching the element (text→\"text\", image→\"imageUrl\", shape→\"fill\",\n canvas/container→\"backgroundColor\").\n- Shapes with transparent fill + a border render nothing; SVG `content` must be a data-URI.\n\n## Motion & audio (video templates)\nMaking video look designed, not generated:\n- **Reveal in sections over ~4–5s.** Elements that form one unit (icon+label, a spec row,\n the footer) share the SAME `enter` type and `showAt`; stagger ~0.3–0.5s BETWEEN sections in\n reading order. `showAt`/`hideAt` are siblings of `enter`/`exit` — never nested inside them.\n- **Every full-bleed photo gets a `kenBurns` ambient** (zoom 1.08–1.15). A still photo held\n 3 seconds reads as a dead frame; a slow push reads as footage. Alternate `panX` direction\n between pages.\n- **Ambient stays subtle and SLOW** — 6–10s cycles against a 0.5s enter. If the viewer can\n name the motion it is too strong, unless it is a deliberate accent (a badge that wiggles).\n `shake`/`slowRotate` need `easing: \"linear\"` or the loop seam shows.\n- **One `pageTransition` for the whole video**, 0.3–0.5s. A different transition per cut is\n the clearest tell of an auto-generated edit.\n- **Sound default**: narration track at volume 1 + a restrained generated ambient bed\n (`sfx`, volume 0.08–0.18, loop) + `page.subtitle { source: \"auto-audio\" }` with a caption\n preset (`karaoke`/`bold`) and strokeWidth 2–3 over busy footage. Budget narration at\n ~2 words/second with 1s headroom. Call `orshot_get_audio_authoring_options` before\n authoring generated audio; give `tts.parameterId` so spoken copy stays a render parameter.\n\n## Anti-patterns (the AI-slop tells — avoid)\n- Everything centered and stacked; no focal point.\n- 3+ fonts, or random sizes with no hierarchy.\n- Low-contrast text on a busy photo with no scrim.\n- Forcing brand assets when the prompt didn't ask for an on-brand design (or ignoring the kit when it clearly did).\n- A tiny headline above a paragraph of body copy (a template is not a document).\n- Re-emitting the previous layout for the same content type.\n\n## Vertical packs (progressive disclosure)\nRead the one matching the task — each adds format/safe-areas, archetypes, and a recipe:\n- `references/social-media.md` — posts, stories, carousels.\n- (more verticals — ads, real-estate, e-commerce — added here over time.)\n\n## Examples\n\n### Example 1 — \"Make an Instagram post announcing our new feature\"\n1. `orshot_get_brand_kit` (tags: \"social-media\") → brand colors/fonts/logo.\n2. Read `references/social-media.md` → default 4:5 portrait 1080×1350; pick the `type-hero`\n archetype (different from the last post).\n3. `orshot_create_template_design` with brand display font for an oversized headline, brand\n dominant color as background, accent color on one word, logo + @handle footer,\n `includeThumbnails:true`.\n4. Read the thumbnail + \"🎨 Design check\"; patch contrast/spacing as needed.\n\n### Example 2 — \"Refine this template, it looks generic\"\n1. `orshot_get_studio_template` to inspect the current design.\n2. Diagnose against Anti-patterns (centered? 3+ fonts? no focal point? brand ignored?).\n3. `orshot_patch_template_elements` to set one focal headline, trim to 2 fonts, apply brand\n 60-30-10, left/bottom-align. Re-render with `includeThumbnails:true` and verify.\n\n## Troubleshooting\n\n**Headline shows on one line / `<br>` ignored.** Use `\\n`, not `<br>`. For a colored word on\na multi-line headline, split into one text element per line.\n\n**Colors/fonts look off-brand.** You skipped step 2 — call `orshot_get_brand_kit` and map the\nreturned `value` (colors) and `name` (fonts) onto the design.\n\n**\"🎨 Design check\" warns about repetition.** This layout matches a recent same-type template.\nSwitch archetype and move the focal point.\n"
}SHA-256 of public snapshot: 16159decb1b52eac82ed770b0fcc05f1b8a5695d6cde4212064373e18872c065