← 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": "Start from a team template: list templates, LOOK first (screenshot — a template IS a canvas), then instantiate. Use for: \"start from our QBR template\", \"use our usual layout\", flagging a canvas as a team template.",
"included_files": [],
"name": "moda-templates",
"skill_md_contents": "---\nname: moda-templates\ndescription: >-\n Start from a team template: list templates, LOOK first (screenshot — a\n template IS a canvas), then instantiate. Use for: \"start from our QBR\n template\", \"use our usual layout\", flagging a canvas as a team template.\n---\n\n# moda-templates\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\nA team template is the canvas someone approved as the starting point for\nrecurring work — the QBR deck, the launch post, the customer one-pager. It\ncarries layout and structure, one level up from what a brand kit carries.\n\n## Check before designing (one cheap read)\n\nThe ask names a recurring artifact type (QBR or board deck, launch post,\ncustomer one-pager) or the user says \"our template\", \"our usual format\", \"what\ndo we have\" → check first. Skip it for genuine one-offs.\n\n## Instantiate\n\n1. `template_list` — the team's flagged templates: name, category, page count,\n tags, cursor-paginated. An empty list is a normal answer: say it in one line\n and design fresh.\n2. **LOOK before choosing.** Names do not tell you what a template looks like,\n and a template IS a canvas: `canvas_screenshot` renders a candidate inline\n (up to 3 pages per call). Judge 2–4 candidates with your own vision;\n category and page count do the cheap narrowing first.\n3. `canvas_create(template_canvas_id=…, name=…)` — a full server-side copy that\n keeps the source's brand kit. The source defines dimensions, pages and\n category, so those fields and `intent` are rejected alongside it, and so are\n `folder` and `visibility`: create the copy first, then place it with\n `drive_organize(action='move')` and rebind its kit with\n `canvas_update(brand_kit_id=…)` when the user's kit differs.\n4. The copy is an ordinary canvas — `canvas_read` it, then author or edit it\n the normal way. Send the link, and name which template you started from:\n that is a decision the user may want to correct.\n5. None fit? One line (\"no team template matched, so I designed this fresh\")\n and build from scratch. Never force a bad-fit template.\n\n`canvas_create(template_canvas_id=…)` copies any canvas in the ACTING team, not\nonly flagged ones — it is also the plain \"duplicate this canvas\" move. A share\ntoken names a canvas but grants nothing, so it is never a copy source; pulling\npages out of someone else's canvas is `canvas_import_pages`.\n\n## Flag a canvas as the team's template\n\n`canvas_update(template_type='template')` publishes it to the whole team's\n`template_list`; `clear_template_type=true` un-flags it.\n\n- Team-visible curation, not a local preference. Offer it when the user calls\n something reusable (\"we do this every quarter\"); never flag a one-off, never\n flag unasked, and tell them once you have.\n- Should the original stay an ordinary canvas? Copy it first\n (`canvas_create(template_canvas_id=…, name=…)`) and flag the copy.\n- `template_list` hides canvases the viewer cannot see, so flagging a private\n canvas yields a template only you can find:\n `drive_organize(action='set_visibility', visibility='team')` shares it — or\n say plainly that you could not.\n- Some organizations restrict template management to admins. There the call is\n refused: say an admin has to flag this one, in one line, and move on.\n\n## `theme` is a different thing — don't reach for it\n\n`template_type='theme'` is a slides-only layout source applied through a brand\nkit, and it deliberately does NOT appear in `template_list`. Moving a canvas\nOFF `theme` — to `template` or by clearing it, both count — detaches every deck\nand every brand kit that used it, and re-flagging restores none of those links.\nNo read on this surface reports the current flag, so on a canvas you did not\nflag yourself, ASK before you write. \"Make this our standard template\" aimed at\nthe team's theme is the request that quietly breaks every deck using it.\n\n## Examples\n\n- \"start from our QBR template\" → list, screenshot the QBR candidates,\n `canvas_create(template_canvas_id=…)`, then author into the copy.\n- \"use our usual layout for this one-pager\" → same flow, narrowed to 1–2 page\n document templates.\n- \"make this our standard deck\" → flag it, after asking if it is not yours.\n- \"do we have anything for launches?\" → list plus screenshots, and an honest\n \"no\" if the answer is no.\n\n## Errors\n\nAny typed error → `load_skill(\"moda-core\")` and read its recovery reference.\nA 404 on this lane means it is not enabled on this account: treat it exactly\nlike \"no templates\" — do not retry it, and do not mention it to the user.\n\n## Make it recurring\n\nEvery instantiation is a return visit — that is the point. Pair it with\n`load_skill(\"moda-automate\")` when the cadence is fixed.\n\nSee also: moda-core — the contract, recovery, everything Moda can do.\n"
}SHA-256 of public snapshot: 7e81702ad4b449cf577b5bd72be1d9b21aab4e7de5c09f70f1a1ff4fa60ffad0