{"id":56037,"plugin_id":"plugin_asdk_app_6ada7bec545881919206a8cf89db59f8","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-26T18:06:28.357Z","digest":"922a745d0c7e33c385b074753025a7f4fe3dfcc69a7ff69be1b25474529a9a27","against":null,"payload":{"description":"Social creative and one-off graphics on Moda: social post, carousel, story, quote card, profile header, logo/icon design, \"a simple graphic of/for X\"; platform-sized pages on a live canvas (carousel → zip). Platform named? Its child: moda-social-instagram, -linkedin, -tiktok, -youtube; ads and banner sets, platform-native included (an Instagram ad) → moda-social-ads. X/Facebook and platformless one-offs stay here. NOT: animated or gif/mp4 → moda-video; print → moda-document-print.","included_files":[{"relative_path":"references/charts.md","size_in_bytes":5659},{"relative_path":"references/design-quality.md","size_in_bytes":22265},{"relative_path":"references/edit-code.md","size_in_bytes":16488},{"relative_path":"references/export.md","size_in_bytes":7949},{"relative_path":"references/gotchas.md","size_in_bytes":8693},{"relative_path":"references/logo-design.md","size_in_bytes":6419},{"relative_path":"references/markup.md","size_in_bytes":23958},{"relative_path":"references/multi-unit-workflow.md","size_in_bytes":13300},{"relative_path":"references/no-brand-design.md","size_in_bytes":14257},{"relative_path":"references/omni-and-media.md","size_in_bytes":7338},{"relative_path":"references/social-craft.md","size_in_bytes":12086}],"name":"moda-social","skill_md_contents":"---\nname: moda-social\ndescription: >-\n  Social creative and one-off graphics on Moda: social post, carousel, story,\n  quote card, profile header, logo/icon design, \"a simple graphic of/for X\";\n  platform-sized pages on a live canvas (carousel → zip). Platform named? Its\n  child: moda-social-instagram, -linkedin, -tiktok, -youtube; ads and banner\n  sets, platform-native included (an Instagram ad) → moda-social-ads.\n  X/Facebook and platformless one-offs stay here. NOT: animated or gif/mp4 →\n  moda-video; print → moda-document-print.\n---\n\n# moda-social\n\n**PREREQUISITE — `load_skill(\"moda-core\")` once per session** (step-0, write\ncontract, free/metered map). Already loaded? Skip ahead. If you cannot load\nit, the non-negotiables: call `moda_bootstrap` before anything; `brand_list`\nbefore creating; revision-guarded writes use `expected_revision` from your last read.\n`canvas_edit_image` captures its own target state and has no revision argument.\nOn `stale_revision`, re-read and retry once; send the canvas link\nthe moment it exists; stuck or failed? `ask_expert(\"<question>\")` — free and\nfast, never guess.\n\n## Recipes\n\n| Recipe | When it owns the ask |\n|---|---|\n| `moda-social-instagram` | Instagram creative: feed posts, stories, reel covers, carousels — IG sizes and safe areas built in. Stills only; animated → moda-video. |\n| `moda-social-linkedin` | LinkedIn creative: posts, document carousels (exported as ONE multi-page PDF), banners, company-page art. |\n| `moda-social-tiktok` | TikTok stills: video covers and photo-mode posts — 9:16 sizing and safe areas. |\n| `moda-social-youtube` | YouTube art: thumbnails (readable at 320px) and channel banners. |\n| `moda-social-ads` | Static ads: platform-native single ads and multi-size display banner sets (IAB) — one message across sizes, exported together. |\n\nTie-breakers at this fork:\n\n- \"a poster for Instagram\" → moda-social-instagram (platform wins over print\n  words); \"a poster to print\" → moda-document-print.\n- \"an animated LinkedIn ad\" → moda-video (render format outranks platform;\n  nothing in this family ships mp4/gif).\n- Any ad, platform-named or not → moda-social-ads (the ad noun beats the\n  platform noun); \"a LinkedIn banner\" is profile art → moda-social-linkedin.\n- X, Facebook, a logo, or no platform named → stay here.\n\n## Workflow — X, Facebook, and platformless one-offs\n\n1. Settle size: square post 1080x1080; X header 1500x500; X/LinkedIn\n   landscape link image 1200x627; platformless one-off (quote card, simple\n   graphic) → 1080x1080 with `category='other'`.\n2. Recurring type (launch, hiring, quote series)? Check moda-templates first —\n   a fitting team template beats scratch.\n3. `canvas_create(name='[Topic]', intent='[one-line brief]', width=[W], height=[H], category='social', brand_kit_id='[KIT]')` — send the link immediately.\n4. Hero imagery via `canvas_edit_image` unless the design deliberately\n   goes vector/type-only — state that choice.\n5. One page per `canvas_apply_markup` apply, then `canvas_screenshot`; fix\n   what you see. Applies to ONE canvas stay serial.\n6. Deliver: live link first; platform creative implies the file\n   (`export(canvas_ref, format='png', pixel_ratio=2)`); a platformless\n   one-off gets the link + ONE file offer.\n\nPost-in-platform-frame pages (creative shown \"in situ\"): compose the raw\ncreative inside a hand-built platform frame — recipe in\nreferences/social-craft.md; moda-mockup owns real app UIs, not these.\n\n## Logo, icon, and mark design\n\nA new logo/wordmark/icon/favicon is canvas work and belongs here. **Explore before\nyou deliver**: references/logo-design.md owns the 15–20-concept exploration across\nvector paths, geometric shapes and generated marks, the single-page comparison grid,\nand the refinement protocol — load it first, and never animate a logo. Delivery, once\na direction is picked: one square canvas (1024x1024, `category='other'`), the mark\nauthored as vector shapes and type so it stays editable and recolorable — the\ndelivered mark is authored, never a raster hand-off. Ship the set on one canvas, a\npage each (primary lockup, stacked/short form, 1:1 icon); export pdf — vector, crisp\nat any size — plus png at `pixel_ratio=4`. Directions shown in context (mark on a\ncard, a header, an avatar) are ordinary canvas pages: build them. Kit files and\nidentity engagements → moda-brand.\n\n## Carousel theory (all platforms — the children apply it)\n\n- One design system across N pages: lock 2–4 colors, exactly two fonts, one\n  grid, one repeating motif; vary composition per slide so adjacent slides\n  never repeat a layout.\n- Slide 1 is the hook (5–9 words, no logo); the last slide carries the one ask\n  and the brand. Prove slide 1 alone — author, screenshot, fix — before\n  `canvas_edit` code (`create('page', …)`) for the rest.\n- Delivery is per-platform: IG/TikTok → zip of pngs; LinkedIn → ONE multi-page\n  PDF. Sizes and safe areas live in the child.\n\n\n\n## Delivering\n\nLive link first; exports on format words or an accepted offer\n(references/export.md). Then at most one adjacency offer where it genuinely\nfits: an animated version (moda-video), or a recurring set (moda-automate).\n\n## Errors\n\nAny typed error → moda-core's recovery reference. `stale_revision`: re-read and\nretry once — it heals.\n\nSee also: moda-core — contract, routing ladder, everything Moda can do.\n\n## References\n\n| Doc | Load when |\n|---|---|\n| references/social-craft.md | concept directions, generated backgrounds, style references, resizing to another platform, the post-in-platform-frame recipe |\n| references/logo-design.md | a logo, wordmark, brand mark, icon, or favicon — always, before exploring |\n| references/markup.md | before any markup apply |\n| references/design-quality.md | type ladder, imagery, shaders, AI-slop list |\n| references/no-brand-design.md | no kit is active — inventing the identity: palette law, type, imagery, layout system |\n| references/edit-code.md | resize in place / duplicate to a second size |\n| references/export.md, references/charts.md, references/gotchas.md, references/omni-and-media.md | delivering; a stat page with a real chart; anything surprising; metered-lane semantics |\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}