← Moda - Slides & DesignsCONTENT HISTORY
WHAT CHANGED
Update to Moda - Slides & Designs
Snapshot Oct 26, 2026 · 18:06 UTC · version 1.0.2
Collection source: downloaded plugin package.
First saved snapshot
No earlier snapshot is available to establish a change.
Save Moda - Slides & Designs and check future changes in Following.
Up to 10 plugins free · no card required.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "Moda brand kits — fetch, create, update, apply, and audit designs against them. Use for: brand kit, on-brand, brand colors/fonts/logo, \"use our brand\", \"match our site\", rebrand. Create from a website URL OR manual tokens, never both. Kits, not renders: the artifact skill leads and pulls the kit — a brand-led \"make a video\" → moda-video. Designing a NEW logo → moda-social.",
"included_files": [
{
"relative_path": "references/brand.md",
"size_in_bytes": 15284
},
{
"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/gotchas.md",
"size_in_bytes": 8693
},
{
"relative_path": "references/markup.md",
"size_in_bytes": 23958
},
{
"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/reading-and-verifying.md",
"size_in_bytes": 21129
}
],
"name": "moda-brand",
"skill_md_contents": "---\nname: moda-brand\ndescription: >-\n Moda brand kits — fetch, create, update, apply, and audit designs against\n them. Use for: brand kit, on-brand, brand colors/fonts/logo, \"use our\n brand\", \"match our site\", rebrand. Create from a website URL OR manual\n tokens, never both. Kits, not renders: the artifact skill leads and pulls\n the kit — a brand-led \"make a video\" → moda-video. Designing a NEW logo →\n moda-social.\n---\n\n# moda-brand\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## Kits, not renders\n\nThis skill owns the KIT — palette, fonts, logo files, and auditing a design\nagainst them. It does not lead artifact work: \"using our kit, make a video / a\ndeck / a post\" is that skill's job, and it pulls the kit itself. Designing a\nNEW mark is canvas work → moda-social; the kit stores the logo FILES.\n\n## Which kit — decide before anything is created\n\n`brand_list` first (one cheap call, never skipped), then exactly one of:\n\n- the user already answered — a kit the request names (\"the Acme deck\"), one\n named earlier in this chat, in the project's instructions or in your memory,\n or an explicit \"no brand\" → use that;\n- otherwise ASK which brand kit this NEW design uses, then wait — even with one\n kit or none (`canvas_create` refuses until you pass `brand_kit_id` or\n `skip_brand_kit=true`). Offer their kits (name + logo), a NEW kit\n (`brand_create` from their website, free), or no kit. A team default is not\n the user's answer, nor is being the only kit; topic fit is never a signal, and\n near-identical names (Acme, Acme 2) mean ask even when named;\n- none fits — a personal or off-topic ask among other people's brands → say so\n in one line when you ask, and offer a new kit or none. Never unbranded in\n silence.\n\n**No kit means you invent an identity**, never that you design plain: a\npalette with two color worlds, distinctive faces, a motif, all chosen for this\nsubject — references/no-brand-design.md. A generic blue-and-gray result is a\nfailed run, not a neutral one. With a kit, the latitude you have is the\nadherence dial in references/brand.md (Balanced by default).\n\nThen read it (`brand_show(brand_kit_ref='[KIT]')`) and BIND it:\n`canvas_create(brand_kit_id='[KIT]')`, or\n`canvas_update(brand_kit_id=…)` on a canvas that already exists. Name the kit\nat hand-over, and pass the kit on every later call — there is no local\npreference on this surface. An explicit \"no brand\" from the user wins.\n\n## Operations\n\n- **List / read**: `brand_list`, then `brand_show(brand_kit_ref)` — a\n model-safe summary: palette, font references, logo file references, never\n signed URLs; add `images=true` for the attachment roster with its `bki_`\n ids. The full kit document lives in the Moda app (its link rides the\n `brand_show` result).\n- **Apply** = author with kit tokens: kit palette hex values in markup (variables\n bind on the edit lane), kit font families, logos by file reference — never\n re-typed hex codes from memory; the kit owns colors. LOOK at the logo assets\n before placing one. Full rules: references/brand.md.\n- **Check** (audit a canvas against the kit): `canvas_read(canvas_ref)`\n + token comparison against `brand_show`, reporting pass/fail per\n element — off-kit colors (with node ids and nearest kit color), non-kit\n fonts, logo size/variant/contrast. Fix what the user asked via the\n smallest-change routing (references/design-quality.md).\n- **Create — ONE SOURCE, NEVER BOTH.** Either server-side extraction from a\n site, `brand_create(url='https://…')`, or the tokens the user described:\n `brand_create(name='Acme', colors=[{color:'#0F172A', label:'Primary'}], fonts=[{family:'Sora'}])`.\n Mixing the two in one call is the `conflicting_brand_source` error — `name`\n alongside `url` is the one legal overlap, where it titles the kit; attach\n logos afterwards with `brand_update(action='add_image')`. An identical\n repeat replays instead of minting a duplicate.\n- **Update / fix in place**: extraction got a value slightly wrong, or the\n brand evolved → `brand_update(brand_kit_ref, action='update', …)` (fields;\n `colors`/`fonts` REPLACE the whole list — re-send the full corrected set),\n `action='add_image'` / `'remove_image'` for logo and imagery attachments,\n `action='set_default'` to promote the kit for the team. Fix the kit rather\n than authoring around it; confirm destructive edits with the user first.\n\n## Directions, boards, and the app hand-off\n\nThe servable half stays here: palette boards and \"show me 3 directions in\ncontext\" are ordinary canvas graphics — build them (via moda-social) and hand\noff only the full identity engagement (a new mark, a guidelines document,\nmulti-concept brand-guide generation), which is creative work for the Moda app.\n\n**Strategy before pixels.** Develop **three** directions, discard the most\ngeneric, show the survivors. They must hold genuinely different strategic\nterritory — bold-maximalist against refined-minimal, technology against nature\n— never three colorways of one idea. Articulate each as its **positioning\ntension** (\"technical precision + human warmth\"), its **visual territory**\nnamed as real aesthetics (\"Swiss modernism meets Memphis\", \"1970s NASA\ntechnical manuals\"), and the **differentiation hook** that makes it\nunconfusable with competitors. The default failure is a safe, forgettable\nbrand: ground each in one unexpected specific and build outward — the geometry\nof terraced coffee farms, or 1960s Italian espresso-bar typography, not \"warm\nand inviting\". Inter/Helvetica in navy, a gradient blob, or a teal/coral/purple\n\"modern startup\" palette means you skipped this step.\n\n**The board wears the identity it proposes.** Each direction gets its own\npalette and type system, isolated from the others' — never one shared page\nstyle, and never the legacy kit. Set every specimen in the font it names: label\none \"Fraunces\" and that word is Fraunces. Use brand-relevant sample text (never\nLorem ipsum) and give one specimen a hero moment — a huge word that sells the\ntype system instantly; tiny restrained specimens are the failure mode unless\nsubtlety IS the direction. Present the palette as a **material board, not a\nchip stack** — one oversized hero swatch, supporting tall tiles, long tonal\nruns, small note cards, staggered and mixed in proportion — with CONTIGUOUS\nramps (a 10–12 step strip at near-zero gap, not isolated pills). Palette\nanatomy itself is references/no-brand-design.md. A rebrand keeps the business\nfacts and pushes only the VISUAL identity: an active kit is historical\nreference there, not the default.\n\n**Competitor style-match**: `brand_create(url=…)` extracts palette and\nfonts from any URL, but a kit carries NO layout — layout is rebuilt by the\nformat skill. Name the IP line before building: inspiration, not replication.\n\n\n\n## Delivering\n\nName the kit you used and what it bound to (canvas link first when one exists).\nOne adjacency offer at most: apply it to the team's other canvases, or audit an\nexisting design against it.\n\n## Errors\n\nAny typed error → moda-core's recovery reference. `conflicting_brand_source`:\nyou sent both a URL and manual tokens — re-run with one source.\n\nSee also: moda-core — contract, routing ladder, everything Moda can do.\n\n## References\n\n| Doc | Load when |\n|---|---|\n| references/brand.md | always — the apply/check/create contract, logo use, palette roles |\n| references/design-quality.md | typography, imagery routing, edit-vs-markup |\n| references/no-brand-design.md | no kit is active — inventing the identity: palette law, type, imagery, layout system |\n| references/markup.md, references/edit-code.md | authoring fills and colors; retokenizing an existing canvas |\n| references/reading-and-verifying.md, references/charts.md, references/gotchas.md, references/omni-and-media.md | reading a canvas to audit it; chart palettes; anything surprising |\n"
}SHA-256 of public snapshot: 24df217eb94c2c39d1b7230c4b1d40829b5ba9339a21985f274bc39051019b3a