diff --git a/plugins/canva/assets/canva-small.svg b/plugins/canva/assets/canva-small.svg new file mode 100644 index 00000000..76f52123 --- /dev/null +++ b/plugins/canva/assets/canva-small.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/canva/assets/canva.svg b/plugins/canva/assets/canva.svg new file mode 100644 index 00000000..5ac7ef33 --- /dev/null +++ b/plugins/canva/assets/canva.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/canva/skills/canva-branded-presentation/SKILL.md b/plugins/canva/skills/canva-branded-presentation/SKILL.md new file mode 100644 index 00000000..034830ed --- /dev/null +++ b/plugins/canva/skills/canva-branded-presentation/SKILL.md @@ -0,0 +1,50 @@ +--- +name: canva-branded-presentation +description: Create on-brand Canva presentations from a brief, outline, existing Canva doc, or design link. Use when the user wants a branded slide deck, wants to turn notes into a presentation, or needs a presentation generated in Canva with the right brand kit and a clear slide plan. +--- + +# Canva Branded Presentation + +## Overview + +Use this skill to turn a brief, outline, or existing Canva content into a branded presentation. Gather the source content first, choose the right brand kit, and generate presentation candidates before creating the editable deck. + +## Preferred Deliverables + +- A clear presentation brief with title, scope, key messages, and a narrative arc. +- A slide plan with concrete titles, goals, bullets, and visual guidance. +- A new editable Canva presentation created from the user's preferred candidate. + +## Workflow + +1. Identify the content source before generating. Accept direct text, a Canva design link, or a Canva document/design name that can be found through search. +2. Read the source content when it lives in Canva. Use the available Canva search and editing tools to locate the design, open it, and extract the material that should drive the deck. +3. List the available brand kits. If there is only one, use it automatically. If there are multiple, ask the user to choose before generating. +4. Build a strong generation prompt. Include a working title, topic, key messages, visual style, story arc, and a slide-by-slide plan. +5. Generate presentation candidates in Canva and show the options to the user before creating the final design. +6. Create the editable presentation from the selected candidate and return the Canva link. + +## Write Safety + +- Keep the original source design untouched unless the user explicitly asks to modify it. +- If multiple matching source designs or brand kits appear, identify the exact one before generating. +- Preserve specific names, dates, metrics, and claims from the source content unless the user asks to change them. +- If the brief is sparse, expand it thoughtfully, but call out major assumptions that shape the narrative. + +## Output Conventions + +- When helpful, summarize the deck direction before generation: title, audience, key message, and slide count. +- For larger decks, present a concise slide plan before or alongside candidate generation. +- When showing results, distinguish clearly between generated candidates and the final editable deck. +- Return the final Canva design link once the chosen candidate has been created. + +## Example Requests + +- "Create a branded presentation from this launch outline." +- "Turn this Canva doc into a polished deck using our brand kit." +- "Make an on-brand sales presentation from this brief." +- "Generate a presentation from this Canva design link." + +## Light Fallback + +If the source design or brand kit cannot be found, say that Canva access may be unavailable or pointed at the wrong account and ask the user to reconnect or identify the right design or brand kit. diff --git a/plugins/canva/skills/canva-branded-presentation/agents/openai.yaml b/plugins/canva/skills/canva-branded-presentation/agents/openai.yaml new file mode 100644 index 00000000..5cb3d6b5 --- /dev/null +++ b/plugins/canva/skills/canva-branded-presentation/agents/openai.yaml @@ -0,0 +1,7 @@ +interface: + display_name: "Canva Branded Presentation" + short_description: "Create on-brand decks from briefs" + icon_small: "./assets/canva-small.svg" + icon_large: "./assets/canva.svg" + brand_color: "#00C4CC" + default_prompt: "Use $canva-branded-presentation to turn my brief or Canva doc into an on-brand presentation." diff --git a/plugins/canva/skills/canva-branded-presentation/assets/canva-small.svg b/plugins/canva/skills/canva-branded-presentation/assets/canva-small.svg new file mode 100644 index 00000000..76f52123 --- /dev/null +++ b/plugins/canva/skills/canva-branded-presentation/assets/canva-small.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/canva/skills/canva-branded-presentation/assets/canva.svg b/plugins/canva/skills/canva-branded-presentation/assets/canva.svg new file mode 100644 index 00000000..5ac7ef33 --- /dev/null +++ b/plugins/canva/skills/canva-branded-presentation/assets/canva.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/canva/skills/canva-resize-for-all-social-media/SKILL.md b/plugins/canva/skills/canva-resize-for-all-social-media/SKILL.md new file mode 100644 index 00000000..60335995 --- /dev/null +++ b/plugins/canva/skills/canva-resize-for-all-social-media/SKILL.md @@ -0,0 +1,50 @@ +--- +name: canva-resize-for-all-social-media +description: Resize a Canva design into standard social media formats and prepare export-ready results. Use when the user wants one Canva design adapted across multiple social platforms such as Facebook, Instagram, and LinkedIn, especially when they want all variants produced in one pass. +--- + +# Canva Resize For Social Media + +## Overview + +Use this skill to take one Canva design and create a multi-platform set of resized variants. Identify the source design, generate the requested social formats, export each version, and present the results in a scan-friendly way. + +## Preferred Deliverables + +- A confirmed source design with the right title and edit context. +- Resized variants for the requested social platforms. +- Direct export links and Canva edit links for each successful output. + +## Workflow + +1. Identify the source design from a design ID, Canva URL, design name, or the current conversation context. +2. Confirm the source design exists and is accessible before starting any resize work. +3. Resize the design into the standard target formats for Facebook post, Facebook story, Instagram post, Instagram story, and LinkedIn post. Run independent resize operations in parallel when the tool flow supports it. +4. Continue with the formats that succeed even if one or more resize attempts fail. +5. Export each successful resized design as a high-quality PNG and collect the download links. +6. Present the finished set grouped by platform, including both the PNG download link and the Canva edit link. + +## Write Safety + +- Keep the original design unchanged and work from resized copies. +- If a name search returns multiple designs, identify the right one before resizing. +- Use exact target dimensions for each platform rather than approximations. +- Report partial failures clearly instead of hiding them behind a generic success message. + +## Output Conventions + +- Lead with a short summary of which formats were created successfully. +- List each platform separately with its dimensions, export link, and edit link. +- Mention when two outputs share the same dimensions, such as Facebook Story and Instagram Story. +- If some formats fail, separate successes from failures so the user can act quickly. + +## Example Requests + +- "Resize this Canva design for Facebook, Instagram, and LinkedIn." +- "Make all the social versions of this campaign graphic." +- "Take my flyer design and export all the social post sizes." +- "Resize this Canva link for every major social format." + +## Light Fallback + +If the source design cannot be found or exported, say that Canva access may be unavailable or scoped to the wrong design and ask the user to reconnect or identify the exact design to use. diff --git a/plugins/canva/skills/canva-resize-for-all-social-media/agents/openai.yaml b/plugins/canva/skills/canva-resize-for-all-social-media/agents/openai.yaml new file mode 100644 index 00000000..4a2bc52d --- /dev/null +++ b/plugins/canva/skills/canva-resize-for-all-social-media/agents/openai.yaml @@ -0,0 +1,7 @@ +interface: + display_name: "Canva Social Resize" + short_description: "Resize one design for social platforms" + icon_small: "./assets/canva-small.svg" + icon_large: "./assets/canva.svg" + brand_color: "#00C4CC" + default_prompt: "Use $canva-resize-for-all-social-media to turn one Canva design into Facebook, Instagram, and LinkedIn-ready versions." diff --git a/plugins/canva/skills/canva-resize-for-all-social-media/assets/canva-small.svg b/plugins/canva/skills/canva-resize-for-all-social-media/assets/canva-small.svg new file mode 100644 index 00000000..76f52123 --- /dev/null +++ b/plugins/canva/skills/canva-resize-for-all-social-media/assets/canva-small.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/canva/skills/canva-resize-for-all-social-media/assets/canva.svg b/plugins/canva/skills/canva-resize-for-all-social-media/assets/canva.svg new file mode 100644 index 00000000..5ac7ef33 --- /dev/null +++ b/plugins/canva/skills/canva-resize-for-all-social-media/assets/canva.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/canva/skills/canva-translate-design/SKILL.md b/plugins/canva/skills/canva-translate-design/SKILL.md new file mode 100644 index 00000000..acd5b194 --- /dev/null +++ b/plugins/canva/skills/canva-translate-design/SKILL.md @@ -0,0 +1,50 @@ +--- +name: canva-translate-design +description: Translate the text in a Canva design into another language while preserving the original layout as much as possible. Use when the user wants a localized or translated version of an existing Canva design and expects the original file to remain unchanged. +--- + +# Canva Translate Design + +## Overview + +Use this skill to create a translated copy of an existing Canva design. Find the source design, duplicate it safely, translate text elements into the target language, and save the localized version only after the user approves. + +## Preferred Deliverables + +- A translated copy of the original Canva design in the requested language. +- A concise note about any text-length or layout risks introduced by translation. +- A final Canva link to the saved translated design. + +## Workflow + +1. Locate the design from a Canva URL or by searching for its title. If multiple matches appear, identify the right design before continuing. +2. Create a copy of the design so the original stays untouched. +3. Start an editing transaction on the copied design and gather the text elements that need translation. +4. Translate each text element into the requested language while preserving meaning, line breaks, and important formatting cues. +5. Apply the translated text in a single batched edit when possible, and update the design title to reflect the target language. +6. Show the translated preview or summarize the pending result, ask for approval to save, then commit the transaction and return the new design link. + +## Write Safety + +- Always work on a copy rather than the original design. +- Preserve proper nouns, product names, and brand language unless the user asks for deeper localization. +- Warn the user when translation is likely to expand text enough to require layout cleanup in Canva. +- Treat the final save as an explicit action that follows user approval. + +## Output Conventions + +- State the source design and target language up front. +- Call out any translation assumptions, especially around brand names or ambiguous phrases. +- Mention likely layout risks before the final save when text expansion is significant. +- Return the saved translated design link after commit. + +## Example Requests + +- "Translate my Canva poster into Spanish." +- "Make a French version of this design." +- "Localize this Canva design for German." +- "Create a Portuguese copy of this brochure." + +## Light Fallback + +If the source design cannot be found or opened for editing, say that Canva access may be unavailable or pointed at the wrong account and ask the user to reconnect or identify the exact design to translate. diff --git a/plugins/canva/skills/canva-translate-design/agents/openai.yaml b/plugins/canva/skills/canva-translate-design/agents/openai.yaml new file mode 100644 index 00000000..360cb572 --- /dev/null +++ b/plugins/canva/skills/canva-translate-design/agents/openai.yaml @@ -0,0 +1,7 @@ +interface: + display_name: "Canva Translate Design" + short_description: "Create translated copies of designs" + icon_small: "./assets/canva-small.svg" + icon_large: "./assets/canva.svg" + brand_color: "#00C4CC" + default_prompt: "Use $canva-translate-design to create a translated copy of my Canva design in another language." diff --git a/plugins/canva/skills/canva-translate-design/assets/canva-small.svg b/plugins/canva/skills/canva-translate-design/assets/canva-small.svg new file mode 100644 index 00000000..76f52123 --- /dev/null +++ b/plugins/canva/skills/canva-translate-design/assets/canva-small.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/canva/skills/canva-translate-design/assets/canva.svg b/plugins/canva/skills/canva-translate-design/assets/canva.svg new file mode 100644 index 00000000..5ac7ef33 --- /dev/null +++ b/plugins/canva/skills/canva-translate-design/assets/canva.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file