← SplitMetrics LyraCONTENT HISTORY

Update to SplitMetrics Lyra

Snapshot Nov 3, 2026 · 00:12 UTC · version 0.5.1

WHAT CHANGED

Product listing or positioning changed

Full description — Now says: short dramas, UI motion and store screenshots, competitor remakes, audience variations, concept angles, resizing and translation, plus Brand Kits, fixes,...

Observed in the public listing; claims come from the publisher.

Save SplitMetrics Lyra and check future changes in Following.

Up to 10 plugins free · no card required.

All fields and original values.

Full description

Before

Oct 29, 2026 · 19:07 UTC

UI motion and store screenshots, competitor remakes, audience variations, concept angles, resizing and translation.

After

Nov 3, 2026 · 00:12 UTC

short dramas, UI motion and store screenshots, competitor remakes, audience variations, concept angles, resizing and translation, plus Brand Kits, fixes, result checks and workflow reviews.

Long description

Before

Oct 29, 2026 · 19:07 UTC

Connects the Lyra MCP server and adds skills for mobile app ad creatives: static images and carousels, video ads, UGC and hooks, UI motion and store screenshots, competitor remakes, audience variations and new angles on a winning concept...

After

Nov 3, 2026 · 00:12 UTC

Make video and image ads for your mobile app with SplitMetrics Lyra in ChatGPT: UGC videos, short drama story ads, static banners and carousels, ready to test on TikTok, Meta, Google and other ad networks. Start from a brief, an idea or ...

Short description

Before

Oct 29, 2026 · 19:07 UTC

Create ad images and videos

After

Nov 3, 2026 · 00:12 UTC

Video and image ads for apps

Declared skills

Before

Oct 29, 2026 · 19:07 UTC

[{"description":"Ad concept multiplier for mobile app video ads in Lyra. Takes a concept (a winning ad, a Lyra workflow, a finished video, or a concept name like \"Authority figure\") and makes new ads on it with new angles, in one of tw...

After

Nov 3, 2026 · 00:12 UTC

[{"description":"Ad concept multiplier for mobile app video ads in Lyra. Takes a concept (a winning ad, a Lyra workflow, a finished video, or a concept name like \"Authority figure\") and makes new ads on it with new angles, in one of tw...

Compare saved observations

Download comparison JSON
Full technical diff · 12 changed fields

changed /release/description

BEFORE
"Mobile app ad creatives on the Lyra (Muse) MCP server: static images, carousels, video ads, UGC, hooks, UI motion and store screenshots, competitor remakes, audience variations, concept angles, resizing and translation."
AFTER
"Mobile app ad creatives on the Lyra (Muse) MCP server: static images, carousels, video ads, UGC, hooks, short dramas, UI motion and store screenshots, competitor remakes, audience variations, concept angles, resizing and translation, plus Brand Kits, fixes, result checks and workflow reviews."

changed /release/id

BEFORE
"pluginrel_68c12cb43bbc8191be386b374be3a24d"
AFTER
"pluginrel_284a7ce0ad0081918ee42b58c08bc4fa"

changed /release/interface/composer_icon_dark_url

BEFORE
"https://files.openai.com/content?id=file_00000000be2481f4b68fa2b2a7334f35"
AFTER
"https://files.openai.com/content?id=file_00000000aad882439a17570eec6ab047"

changed /release/interface/composer_icon_url

BEFORE
"https://files.openai.com/content?id=file_00000000bcf88243ab40d4e9d083c550"
AFTER
"https://files.openai.com/content?id=file_0000000013c481f481966f595acc68d4"

changed /release/interface/default_prompt

BEFORE
"Make a UGC video ad for my app from a Lyra template"
AFTER
"Make a UGC video ad for my app with a creator talking to camera"

changed /release/interface/default_prompts

BEFORE
[
  "Make a UGC video ad for my app from a Lyra template",
  "Generate a 9:16 image in Lyra and animate it into a video",
  "Show my Lyra workflows"
]
AFTER
[
  "Make a UGC video ad for my app with a creator talking to camera",
  "Make a short drama story ad for my app with a cliffhanger",
  "Remake a competitor’s video ad idea into a new video ad for my app"
]

changed /release/interface/logo_url

BEFORE
"https://files.openai.com/content?id=file_000000003d0081f498d55bac71c228c1"
AFTER
"https://files.openai.com/content?id=file_000000009f948210b589f85d3ef14684"

changed /release/interface/logo_url_dark

BEFORE
"https://files.openai.com/content?id=file_000000004974820aab82506ffa76e6ae"
AFTER
"https://files.openai.com/content?id=file_00000000e77481f486cb167937490bc9"

changed /release/interface/long_description

BEFORE
"Connects the Lyra MCP server and adds skills for mobile app ad creatives: static images and carousels, video ads, UGC and hooks, UI motion and store screenshots, competitor remakes, audience variations and new angles on a winning concept, resizing and translation. Generation spends your Lyra workspace's credits; the skills confirm before every run."
AFTER
"Make video and image ads for your mobile app with SplitMetrics Lyra in ChatGPT: UGC videos, short drama story ads, static banners and carousels, ready to test on TikTok, Meta, Google and other ad networks. Start from a brief, an idea or a simple prompt, and get finished ads built from your brand kit and app assets.\n\nFor example, you can:\n• Make video ads in any style: branded, engaging story-driven, UGC, short drama, or app UI motion with your real screens.\n• Remake a competitor’s ad for your app.\n• Turn a winning ad into new angles, hooks and audience versions.\n• Resize and translate creatives for every placement and language.\n\nEvery ad is an editable workflow in your SplitMetrics Lyra workspace. Generation spends your workspace credits, and you confirm before every run. Connect your SplitMetrics Lyra account to get started."

changed /release/interface/short_description

BEFORE
"Create ad images and videos"
AFTER
"Video and image ads for apps"

changed /release/skills

BEFORE
[
  {
    "description": "Ad concept multiplier for mobile app video ads in Lyra. Takes a concept (a winning ad, a Lyra workflow, a finished video, or a concept name like \"Authority figure\") and makes new ads on it with new angles, in one of two ways the user picks - A. Perspectives (the team framework, concept → angles → hooks: who else tells it and how they argue it, e.g. doctor, teacher, trainer, mom) or B. Reasons (the proven wrapper kept, a new reason to care: another pain, desire, objection, moment or feature from the Brand Kit, in the situation where it happens). Each angle is built as a Lyra variation. Use for \"more ads like this winner\", \"same concept, new angles\", \"multiply this concept\", \"1 concept, 4 angles, 20 hooks\", \"same format, different pain / story / setting\", \"the angle is tired, keep the format\", \"iterate on the winner\". Not for new openings only (lyra-video-hooks) or the same script for another person or market (lyra-audience-variations). Core video rules come from lyra-video-ad-generation.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-ad-concept-multiplier",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "bolt",
      "short_description": "Ad concept multiplier for mobile app video ads in Lyra. Takes a concept (a winning ad, a Lyra workflow, a finished video, or a concept name like \"Authority figure\") and makes new ads on it with new angles, in one of two ways the user picks - A. Perspectives (the team framework, concept → angles → hooks: who else tells it and how they argue it, e.g. doctor, teacher, trainer, mom) or B. Reasons (the proven wrapper kept, a new reason to care: another pain, desire, objection, moment or feature from the Brand Kit, in the situation where it happens). Each angle is built as a Lyra variation. Use for \"more ads like this winner\", \"same concept, new angles\", \"multiply this concept\", \"1 concept, 4 angles, 20 hooks\", \"same format, different pain / story / setting\", \"the angle is tired, keep the format\", \"iterate on the winner\". Not for new openings only (lyra-video-hooks) or the same script for another person or market (lyra-audience-variations). Core video rules come from lyra-video-ad-generation."
    },
    "name": "lyra-ad-concept-multiplier",
    "plugin_release_skill_id": "pluginrsk_6ae364aaa4048191900441fb1c702974"
  },
  {
    "description": "Audience variations of a mobile app video ad in Lyra. The same ad, message and edit, with the visible world changed for another part of the app's audience from the Brand Kit, one layer or a coherent bundle at a time - the person (character swap), wardrobe and styling, setting and background, props and vehicles, time and season, market markers, voice and language, polish - each built as a Lyra variation of the original workflow. Use for \"swap the character\", \"same video with another person / another outfit / another room / another car\", \"a version for moms / men / 40+ / nurses\", \"localize for Brazil\", \"new faces or a new look for this winner\", \"test personas or settings\", \"persona A/B test\". Not for a new angle or message on the concept (lyra-ad-concept-multiplier). Core video rules come from lyra-video-ad-generation; person, voice and speech from lyra-ugc-video.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-audience-variations",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "bolt",
      "short_description": "Audience variations of a mobile app video ad in Lyra. The same ad, message and edit, with the visible world changed for another part of the app's audience from the Brand Kit, one layer or a coherent bundle at a time - the person (character swap), wardrobe and styling, setting and background, props and vehicles, time and season, market markers, voice and language, polish - each built as a Lyra variation of the original workflow. Use for \"swap the character\", \"same video with another person / another outfit / another room / another car\", \"a version for moms / men / 40+ / nurses\", \"localize for Brazil\", \"new faces or a new look for this winner\", \"test personas or settings\", \"persona A/B test\". Not for a new angle or message on the concept (lyra-ad-concept-multiplier). Core video rules come from lyra-video-ad-generation; person, voice and speech from lyra-ugc-video."
    },
    "name": "lyra-audience-variations",
    "plugin_release_skill_id": "pluginrsk_6ae364abd85c8191891cb2a216eafb3f"
  },
  {
    "description": "Brand Kit skill for Lyra - builds a mobile app's Brand Kit from whatever the user sends (brand book, deck, PDF, notes, website, App Store / Google Play link, logo, screenshots, past ads, reviews), writes it in the team's Brand Kit standard, fills it into Lyra, creates the first workflow with the kit assigned and the brand assets on the canvas, and holds the rules every Lyra skill follows to read and use a Brand Kit (app card, pain map, field-by-field use, claims, conflicts, updates). Use for \"here's our brand kit\", \"fill the brand kit\", \"set up my brand in Lyra\", \"create a brand kit from our website / store page / deck\", \"onboard this app\", \"update the brand kit\", \"what's in our brand kit\", \"find the pains in the brand kit\", or before any ad when no kit exists yet. All other lyra skills read the Brand Kit by this file.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-brand-kit",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "hierarchy",
      "short_description": "Brand Kit skill for Lyra - builds a mobile app's Brand Kit from whatever the user sends (brand book, deck, PDF, notes, website, App Store / Google Play link, logo, screenshots, past ads, reviews), writes it in the team's Brand Kit standard, fills it into Lyra, creates the first workflow with the kit assigned and the brand assets on the canvas, and holds the rules every Lyra skill follows to read and use a Brand Kit (app card, pain map, field-by-field use, claims, conflicts, updates). Use for \"here's our brand kit\", \"fill the brand kit\", \"set up my brand in Lyra\", \"create a brand kit from our website / store page / deck\", \"onboard this app\", \"update the brand kit\", \"what's in our brand kit\", \"find the pains in the brand kit\", or before any ad when no kit exists yet. All other lyra skills read the Brand Kit by this file."
    },
    "name": "lyra-brand-kit",
    "plugin_release_skill_id": "pluginrsk_6ae364abda5c81919d5235f273aebfd7"
  },
  {
    "description": "Carousel ads for mobile apps in Lyra, 2 to 10 cards that tell one consistent story (same person, world, palette, type and layout grid on every card), written as one carousel script and cut into cards by Lyra's Text Split node. Use for \"a carousel for my app\", \"5 cards that tell a story\", \"swipe ad\", \"step by step carousel\", \"feature carousel\", \"before / after carousel\", \"photo dump / slideshow\", \"TikTok photo carousel\", \"split this text into cards\", or a story, article or script to turn into cards. Core image rules come from lyra-static-image-generation.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-carousel",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "pen",
      "short_description": "Carousel ads for mobile apps in Lyra, 2 to 10 cards that tell one consistent story (same person, world, palette, type and layout grid on every card), written as one carousel script and cut into cards by Lyra's Text Split node. Use for \"a carousel for my app\", \"5 cards that tell a story\", \"swipe ad\", \"step by step carousel\", \"feature carousel\", \"before / after carousel\", \"photo dump / slideshow\", \"TikTok photo carousel\", \"split this text into cards\", or a story, article or script to turn into cards. Core image rules come from lyra-static-image-generation."
    },
    "name": "lyra-carousel",
    "plugin_release_skill_id": "pluginrsk_6ae364af03008191ac1914026b6cb2ae"
  },
  {
    "description": "Copy a competitor's video ad for a mobile app in Lyra. Analyses the reference video in the team's video creative classification standard (Lyra's Creative Analysis node or Claude's own frame by frame teardown), takes every fact from the user's Brand Kit, offers ways to retell the reference, rewrites the script for the brand and the request, then generates the new video. Two modes, close remake (same beats, timing and shots) or free adaptation (same idea and structure). Use for \"copy this competitor ad\", \"make an ad like this one\", \"remake this video for my app\", \"do this TikTok / Reel for us\", \"analyse this ad and make ours\", a Meta Ad Library or TikTok link to a video, or any video reference to adapt. Static ads, banners and carousels go to lyra-copy-competitor-static. Core video rules come from lyra-video-ad-generation.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-copy-competitor-ad",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "bolt",
      "short_description": "Copy a competitor's video ad for a mobile app in Lyra. Analyses the reference video in the team's video creative classification standard (Lyra's Creative Analysis node or Claude's own frame by frame teardown), takes every fact from the user's Brand Kit, offers ways to retell the reference, rewrites the script for the brand and the request, then generates the new video. Two modes, close remake (same beats, timing and shots) or free adaptation (same idea and structure). Use for \"copy this competitor ad\", \"make an ad like this one\", \"remake this video for my app\", \"do this TikTok / Reel for us\", \"analyse this ad and make ours\", a Meta Ad Library or TikTok link to a video, or any video reference to adapt. Static ads, banners and carousels go to lyra-copy-competitor-static. Core video rules come from lyra-video-ad-generation."
    },
    "name": "lyra-copy-competitor-ad",
    "plugin_release_skill_id": "pluginrsk_6ae364ab3874819193eb05e4b2adc619"
  },
  {
    "description": "Copy a competitor's static ad (one image, a carousel, several statics, or a key frame of their video) for a mobile app in Lyra. Analyses the reference in the team's static creative analysis standard (Claude's own look at the image, or Lyra's Creative Analysis node), takes every fact from the user's Brand Kit, offers a close remake and a free adaptation with variations, writes the new layout, text and Nano Banana Pro prompt, then generates the new static and its variants. Use for \"copy this competitor static\", \"make a banner like this one\", \"remake this image ad for my app\", \"do this carousel for us\", \"analyse this static and make ours\", \"a static from this competitor video\", a Meta Ad Library screenshot, or several competitor statics to learn from. Core image rules come from lyra-static-image-generation.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-copy-competitor-static",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "pen",
      "short_description": "Copy a competitor's static ad (one image, a carousel, several statics, or a key frame of their video) for a mobile app in Lyra. Analyses the reference in the team's static creative analysis standard (Claude's own look at the image, or Lyra's Creative Analysis node), takes every fact from the user's Brand Kit, offers a close remake and a free adaptation with variations, writes the new layout, text and Nano Banana Pro prompt, then generates the new static and its variants. Use for \"copy this competitor static\", \"make a banner like this one\", \"remake this image ad for my app\", \"do this carousel for us\", \"analyse this static and make ours\", \"a static from this competitor video\", a Meta Ad Library screenshot, or several competitor statics to learn from. Core image rules come from lyra-static-image-generation."
    },
    "name": "lyra-copy-competitor-static",
    "plugin_release_skill_id": "pluginrsk_6ae364a937f88191aa0554810759a15c"
  },
  {
    "description": "Fix one part of a finished Lyra video or image ad without rebuilding it. Finds the node where the problem is born, changes only what was asked by editing the finished image on Nano Banana Pro instead of generating it again (for video: the fixed image, then the clip generated again from it), compares the new result with the old one so nothing else moved, reruns only what depends on it (image → clip → Video Editor), renders again and reports the new video or image, the workflow link and the credits the fix cost. Use for \"regenerate scene 3\", \"change her sweater\", \"another ending\", \"she has six fingers\", \"the logo is warped\", \"the screen text is wrong\", \"redo banner C2\", \"fix the headline on card 4\", \"louder music\", \"go back to the old one\", or a problem found by lyra-result-check. Not for another story, person, angle, audience, size or language (those are variations, handled by their own skills). Core rules come from lyra-video-ad-generation and lyra-static-image-generation.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-fix",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "bolt",
      "short_description": "Fix one part of a finished Lyra video or image ad without rebuilding it. Finds the node where the problem is born, changes only what was asked by editing the finished image on Nano Banana Pro instead of generating it again (for video: the fixed image, then the clip generated again from it), compares the new result with the old one so nothing else moved, reruns only what depends on it (image → clip → Video Editor), renders again and reports the new video or image, the workflow link and the credits the fix cost. Use for \"regenerate scene 3\", \"change her sweater\", \"another ending\", \"she has six fingers\", \"the logo is warped\", \"the screen text is wrong\", \"redo banner C2\", \"fix the headline on card 4\", \"louder music\", \"go back to the old one\", or a problem found by lyra-result-check. Not for another story, person, angle, audience, size or language (those are variations, handled by their own skills). Core rules come from lyra-video-ad-generation and lyra-static-image-generation."
    },
    "name": "lyra-fix",
    "plugin_release_skill_id": "pluginrsk_6ae364ae9c24819199a13b9809aa44bd"
  },
  {
    "description": "Adapt a finished app ad image in Lyra to other aspect ratios and ad placements (Meta Feed, Stories and Reels, TikTok, Google App campaigns, link ads, banners) without losing anything - every element, text, color and style kept, the layout recomposed for the new frame and its safe zones. Picks the build per image and ratio (Lyra's Image Resize node, a Nano Banana Pro recompose, a rebuild from the concept card, or a canvas extension or crop for the designer) and checks every element. Use for \"make this in 9:16 and 1:1\", \"resize for Stories / Reels\", \"the same banner for Feed and Stories\", \"a 1.91:1 version\", \"all sizes for Meta\", \"a full size set\", \"Google App campaign sizes\", \"a 728x90 banner from this\", or a winning static to roll out to every placement. Core image rules come from lyra-static-image-generation.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-image-resize",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "chart",
      "short_description": "Adapt a finished app ad image in Lyra to other aspect ratios and ad placements (Meta Feed, Stories and Reels, TikTok, Google App campaigns, link ads, banners) without losing anything - every element, text, color and style kept, the layout recomposed for the new frame and its safe zones. Picks the build per image and ratio (Lyra's Image Resize node, a Nano Banana Pro recompose, a rebuild from the concept card, or a canvas extension or crop for the designer) and checks every element. Use for \"make this in 9:16 and 1:1\", \"resize for Stories / Reels\", \"the same banner for Feed and Stories\", \"a 1.91:1 version\", \"all sizes for Meta\", \"a full size set\", \"Google App campaign sizes\", \"a 728x90 banner from this\", or a winning static to roll out to every placement. Core image rules come from lyra-static-image-generation."
    },
    "name": "lyra-image-resize",
    "plugin_release_skill_id": "pluginrsk_6ae364a9460c8191b31709bfbd3e1fd0"
  },
  {
    "description": "Translate and localize the text on finished app ad images in Lyra (statics, carousel cards, end cards, store screenshot captions) into other languages, keeping the design. Writes the copy for each market first (transcreation, glossary, length check), then picks the build per image - Lyra's Image Translation node, a Nano Banana Pro text-replace edit, a rebuild with localized screenshots, or a clean plate for the designer - and checks every letter. Use for \"translate this ad into German and Japanese\", \"localize the banner for Brazil\", \"the same static in 5 languages\", \"RU / ES / PT versions\", \"translate the carousel\", \"Arabic version\", \"translate the text on the creative\", or a winning static to roll out to new markets. Core image rules come from lyra-static-image-generation.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-image-translation",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "pen",
      "short_description": "Translate and localize the text on finished app ad images in Lyra (statics, carousel cards, end cards, store screenshot captions) into other languages, keeping the design. Writes the copy for each market first (transcreation, glossary, length check), then picks the build per image - Lyra's Image Translation node, a Nano Banana Pro text-replace edit, a rebuild with localized screenshots, or a clean plate for the designer - and checks every letter. Use for \"translate this ad into German and Japanese\", \"localize the banner for Brazil\", \"the same static in 5 languages\", \"RU / ES / PT versions\", \"translate the carousel\", \"Arabic version\", \"translate the text on the creative\", or a winning static to roll out to new markets. Core image rules come from lyra-static-image-generation."
    },
    "name": "lyra-image-translation",
    "plugin_release_skill_id": "pluginrsk_6ae364ae1a888191846a3668c0cdd64a"
  },
  {
    "description": "Check a finished Lyra video or image ad by looking at it, automatically after every final render. Opens the result file in a browser, takes frames at every spoken line and every cut (every card, size and language for images) at full resolution, checks faces, hands and fingers, phone screen text and the logo, captions over faces and warped text, measures the sound (levels, clipping, silence, hard end, music under the voice), then reports \"checked 14 frames, 2 problems\" with the problem frames as pictures and a fix for each through lyra-fix. No browser → a check list with timecodes for the user. Use after a render or a fix, and for \"check the video\", \"look at the result\", \"any defects?\", \"is it ready to launch\", \"check the statics\".",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-result-check",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "radar",
      "short_description": "Check a finished Lyra video or image ad by looking at it, automatically after every final render. Opens the result file in a browser, takes frames at every spoken line and every cut (every card, size and language for images) at full resolution, checks faces, hands and fingers, phone screen text and the logo, captions over faces and warped text, measures the sound (levels, clipping, silence, hard end, music under the voice), then reports \"checked 14 frames, 2 problems\" with the problem frames as pictures and a fix for each through lyra-fix. No browser → a check list with timecodes for the user. Use after a render or a fix, and for \"check the video\", \"look at the result\", \"any defects?\", \"is it ready to launch\", \"check the statics\"."
    },
    "name": "lyra-result-check",
    "plugin_release_skill_id": "pluginrsk_6ae364ad8b58819180d4fe1f58c6dc5b"
  },
  {
    "description": "Short drama video ads for mobile apps in Lyra - a 60 to 120 s mini-series story, animated (3D, 2D anime / storybook / kawaii, stop-motion and knitted worlds) or realistic (live-action sitcom, vertical mini-series, confession), where an underdog hero hits a chain of everyday disasters, meets the app at the turning point or through the plot, and ends happier or more successful, told with in-clip dialogue or a narrator. Offers several story concepts per app from the Brand Kit. Use for \"a short drama ad\", \"a mini-series / story ad\", \"a cartoon story for my app\", \"a realistic story ad\", \"a 1-2 minute story video\", \"drama like ReelShort but for my app\", \"an animated story where the app saves the day\", \"episodes with a cliffhanger\", or a story reference to adapt. Core video rules come from lyra-video-ad-generation.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-short-drama",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "chat",
      "short_description": "Short drama video ads for mobile apps in Lyra - a 60 to 120 s mini-series story, animated (3D, 2D anime / storybook / kawaii, stop-motion and knitted worlds) or realistic (live-action sitcom, vertical mini-series, confession), where an underdog hero hits a chain of everyday disasters, meets the app at the turning point or through the plot, and ends happier or more successful, told with in-clip dialogue or a narrator. Offers several story concepts per app from the Brand Kit. Use for \"a short drama ad\", \"a mini-series / story ad\", \"a cartoon story for my app\", \"a realistic story ad\", \"a 1-2 minute story video\", \"drama like ReelShort but for my app\", \"an animated story where the app saves the day\", \"episodes with a cliffhanger\", or a story reference to adapt. Core video rules come from lyra-video-ad-generation."
    },
    "name": "lyra-short-drama",
    "plugin_release_skill_id": "pluginrsk_6ae364a95818819197acc3e9c860f573"
  },
  {
    "description": "Base skill for images in Lyra. Builds static ads and images for mobile apps end to end (concept, layout, on-image text, realism, model choice, references, sizes, languages) with a clear concept and layout, photo-real realism on Nano Banana Pro, de-slop and error handling. Use for \"a static ad for my app\", \"an image ad / banner / creative\", \"4 statics to test\", \"a carousel\", \"a realistic photo of…\", \"a character / persona image\", \"a product or phone shot\", \"an illustration in our style\", or a layout or reference to produce. Holds the core image rules the smaller lyra image skills point to.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-static-image-generation",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "pen",
      "short_description": "Base skill for images in Lyra. Builds static ads and images for mobile apps end to end (concept, layout, on-image text, realism, model choice, references, sizes, languages) with a clear concept and layout, photo-real realism on Nano Banana Pro, de-slop and error handling. Use for \"a static ad for my app\", \"an image ad / banner / creative\", \"4 statics to test\", \"a carousel\", \"a realistic photo of…\", \"a character / persona image\", \"a product or phone shot\", \"an illustration in our style\", or a layout or reference to produce. Holds the core image rules the smaller lyra image skills point to."
    },
    "name": "lyra-static-image-generation",
    "plugin_release_skill_id": "pluginrsk_6ae364adadcc81918833829633526361"
  },
  {
    "description": "UGC style video ads for mobile apps in Lyra, a realistic person talking to the phone camera in a real place, with their own voice and a speech built from the audience's pain, usually opened with a hook from lyra-video-hooks. Use for \"a UGC video\", \"UGC ad for my app\", \"a creator / influencer style ad\", \"talking head\", \"testimonial style\", \"storytime\", \"car vlog\", \"street interview\", \"a skit\", \"day in my life\", \"honest review\", or a Lyra UGC or Talking Head template. Core video rules come from lyra-video-ad-generation.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-ugc-video",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "chat",
      "short_description": "UGC style video ads for mobile apps in Lyra, a realistic person talking to the phone camera in a real place, with their own voice and a speech built from the audience's pain, usually opened with a hook from lyra-video-hooks. Use for \"a UGC video\", \"UGC ad for my app\", \"a creator / influencer style ad\", \"talking head\", \"testimonial style\", \"storytime\", \"car vlog\", \"street interview\", \"a skit\", \"day in my life\", \"honest review\", or a Lyra UGC or Talking Head template. Core video rules come from lyra-video-ad-generation."
    },
    "name": "lyra-ugc-video",
    "plugin_release_skill_id": "pluginrsk_6ae364af7e208191ae08d200371e7c82"
  },
  {
    "description": "App UI creatives in Lyra with every UI text kept exactly as in the user's screenshots - UI motion video ads (real app screens, buttons, cards, logo and icon in motion), store-style end cards with an install button, and App Store / Google Play screenshot sets with variants. Use for \"animate my app screens\", \"UI animation / motion design ad\", \"floating phone video\", \"show the app in the video\", \"end card with install button\", \"packshot like the App Store\", \"store screenshots\", \"screenshot set for Google Play\", or screenshots to bring to life. Core video rules come from lyra-video-ad-generation.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-ui-motion-video",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "code",
      "short_description": "App UI creatives in Lyra with every UI text kept exactly as in the user's screenshots - UI motion video ads (real app screens, buttons, cards, logo and icon in motion), store-style end cards with an install button, and App Store / Google Play screenshot sets with variants. Use for \"animate my app screens\", \"UI animation / motion design ad\", \"floating phone video\", \"show the app in the video\", \"end card with install button\", \"packshot like the App Store\", \"store screenshots\", \"screenshot set for Google Play\", or screenshots to bring to life. Core video rules come from lyra-video-ad-generation."
    },
    "name": "lyra-ui-motion-video",
    "plugin_release_skill_id": "pluginrsk_6ae364ad13d881919d69776c3b56336d"
  },
  {
    "description": "Base skill for video ads in Lyra. Builds a mobile app video ad end to end (brief, script, scenes, keyframes, clips, voiceover, music, Video Editor assembly) with scene consistency, de-slop and error handling. Use for \"a 15-second video ad for my app\", \"a 30 s / 1 min ad\", \"a sequence of scenes\", \"stitch these clips\", or a script or storyboard to produce. Holds the core video rules the smaller lyra video skills point to.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-video-ad-generation",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "bolt",
      "short_description": "Base skill for video ads in Lyra. Builds a mobile app video ad end to end (brief, script, scenes, keyframes, clips, voiceover, music, Video Editor assembly) with scene consistency, de-slop and error handling. Use for \"a 15-second video ad for my app\", \"a 30 s / 1 min ad\", \"a sequence of scenes\", \"stitch these clips\", or a script or storyboard to produce. Holds the core video rules the smaller lyra video skills point to."
    },
    "name": "lyra-video-ad-generation",
    "plugin_release_skill_id": "pluginrsk_6ae364aa99dc819198388711b39d68d4"
  },
  {
    "description": "Lyra Video Editor: assembly, mix, end card, text, captions (asked first, size 80, 75% height), pacing, keywords, SFX, render check, and 59/30/15 s cutdowns. The assembly stage of every Lyra video skill.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-video-editor",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "bolt",
      "short_description": "Lyra Video Editor: assembly, mix, end card, text, captions (asked first, size 80, 75% height), pacing, keywords, SFX, render check, and 59/30/15 s cutdowns. The assembly stage of every Lyra video skill."
    },
    "name": "lyra-video-editor",
    "plugin_release_skill_id": "pluginrsk_6ae364ac4f008191af02099d85d19e0c"
  },
  {
    "description": "Hooks for mobile app video ads in Lyra, built from the Brand Kit and the audience's real pains, then turned into finished videos for an A/B test. Use for \"hooks for my app\", \"4 hook variants\", \"write hooks / a hook bank\", \"a visual hook\", \"a catchy / brainrot hook\", \"hook multiplier\", \"test new openings on this ad\", \"the hook is weak / hook rate dropped\", \"a stronger first 3 seconds\", or a Lyra Hook template. Core video rules come from lyra-video-ad-generation.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-video-hooks",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "bolt",
      "short_description": "Hooks for mobile app video ads in Lyra, built from the Brand Kit and the audience's real pains, then turned into finished videos for an A/B test. Use for \"hooks for my app\", \"4 hook variants\", \"write hooks / a hook bank\", \"a visual hook\", \"a catchy / brainrot hook\", \"hook multiplier\", \"test new openings on this ad\", \"the hook is weak / hook rate dropped\", \"a stronger first 3 seconds\", or a Lyra Hook template. Core video rules come from lyra-video-ad-generation."
    },
    "name": "lyra-video-hooks",
    "plugin_release_skill_id": "pluginrsk_6ae364aaa0c48191ad4d3b9c3ef2d270"
  },
  {
    "description": "Canvas layout for every Lyra workflow Claude builds or changes, in the house style of Lyra's templates - nodes grouped into sections in run order (a Section is a frame node), a small STEP sticky note above every section that says what happens there and what the user can change, the creative team's color code (lime the idea and script, pink the user's own app assets, violet generation, rose the result), a clear reading path (the idea on the left, the steps stacked in columns, the Video Editor on the right), clear node labels, no stray or empty nodes, and a final check. Use whenever a Lyra skill creates or edits a workflow (video, UGC, hooks, short drama, UI motion, statics, carousels, competitor copies, variations, concept multiplier, resize, translation, brand kit starter), and for \"make the workflow clear\", \"tidy up the canvas\", \"sign the sections\", \"add notes for the user\", \"the canvas is confusing\", \"lay it out like the templates\".",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-workflow-layout",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "hierarchy",
      "short_description": "Canvas layout for every Lyra workflow Claude builds or changes, in the house style of Lyra's templates - nodes grouped into sections in run order (a Section is a frame node), a small STEP sticky note above every section that says what happens there and what the user can change, the creative team's color code (lime the idea and script, pink the user's own app assets, violet generation, rose the result), a clear reading path (the idea on the left, the steps stacked in columns, the Video Editor on the right), clear node labels, no stray or empty nodes, and a final check. Use whenever a Lyra skill creates or edits a workflow (video, UGC, hooks, short drama, UI motion, statics, carousels, competitor copies, variations, concept multiplier, resize, translation, brand kit starter), and for \"make the workflow clear\", \"tidy up the canvas\", \"sign the sections\", \"add notes for the user\", \"the canvas is confusing\", \"lay it out like the templates\"."
    },
    "name": "lyra-workflow-layout",
    "plugin_release_skill_id": "pluginrsk_6ae364af86408191a7a84a8b5670fdad"
  },
  {
    "description": "Review any Lyra workflow and explain it in plain words - what it makes and in which order it runs, section by section - then find what is wrong (broken connections, invalid nodes, empty nodes, nodes with no result, dead ends, settings that don't match), price a full rerun and each part of it, and, if the user wants, fix the problems and tidy the canvas by lyra-workflow-layout. Read-only by default - in a workflow Claude did not build in this chat, nothing is deleted, moved or changed without the user's yes. Use for \"review my workflow\", \"explain this workflow\", \"what does this workflow do\", \"why doesn't it run\", \"check my canvas\", \"is anything broken here\", \"how much to rerun it\", \"how much does this template cost\", \"audit this workflow\", or a Lyra workflow link with a question about it.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-workflow-review",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "radar",
      "short_description": "Review any Lyra workflow and explain it in plain words - what it makes and in which order it runs, section by section - then find what is wrong (broken connections, invalid nodes, empty nodes, nodes with no result, dead ends, settings that don't match), price a full rerun and each part of it, and, if the user wants, fix the problems and tidy the canvas by lyra-workflow-layout. Read-only by default - in a workflow Claude did not build in this chat, nothing is deleted, moved or changed without the user's yes. Use for \"review my workflow\", \"explain this workflow\", \"what does this workflow do\", \"why doesn't it run\", \"check my canvas\", \"is anything broken here\", \"how much to rerun it\", \"how much does this template cost\", \"audit this workflow\", or a Lyra workflow link with a question about it."
    },
    "name": "lyra-workflow-review",
    "plugin_release_skill_id": "pluginrsk_6ae364ada2d0819196178ba8452e2d0c"
  }
]
AFTER
[
  {
    "description": "Ad concept multiplier for mobile app video ads in Lyra. Takes a concept (a winning ad, a Lyra workflow, a finished video, or a concept name like \"Authority figure\") and makes new ads on it with new angles, in one of two ways the user picks - A. Perspectives (the team framework, concept → angles → hooks: who else tells it and how they argue it, e.g. doctor, teacher, trainer, mom) or B. Reasons (the proven wrapper kept, a new reason to care: another pain, desire, objection, moment or feature from the Brand Kit, in the situation where it happens). Each angle is built as a Lyra variation. Use for \"more ads like this winner\", \"same concept, new angles\", \"multiply this concept\", \"1 concept, 4 angles, 20 hooks\", \"same format, different pain / story / setting\", \"the angle is tired, keep the format\", \"iterate on the winner\". Not for new openings only (lyra-video-hooks) or the same script for another person or market (lyra-audience-variations). Core video rules come from lyra-video-ad-generation.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-ad-concept-multiplier",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "bolt",
      "short_description": "Ad concept multiplier for mobile app video ads in Lyra. Takes a concept (a winning ad, a Lyra workflow, a finished video, or a concept name like \"Authority figure\") and makes new ads on it with new angles, in one of two ways the user picks - A. Perspectives (the team framework, concept → angles → hooks: who else tells it and how they argue it, e.g. doctor, teacher, trainer, mom) or B. Reasons (the proven wrapper kept, a new reason to care: another pain, desire, objection, moment or feature from the Brand Kit, in the situation where it happens). Each angle is built as a Lyra variation. Use for \"more ads like this winner\", \"same concept, new angles\", \"multiply this concept\", \"1 concept, 4 angles, 20 hooks\", \"same format, different pain / story / setting\", \"the angle is tired, keep the format\", \"iterate on the winner\". Not for new openings only (lyra-video-hooks) or the same script for another person or market (lyra-audience-variations). Core video rules come from lyra-video-ad-generation."
    },
    "name": "lyra-ad-concept-multiplier",
    "plugin_release_skill_id": "pluginrsk_6ae869ca7e288191847f36a4bcb6dae3"
  },
  {
    "description": "Audience variations of a mobile app video ad in Lyra. The same ad, message and edit, with the visible world changed for another part of the app's audience from the Brand Kit, one layer or a coherent bundle at a time - the person (character swap), wardrobe and styling, setting and background, props and vehicles, time and season, market markers, voice and language, polish - each built as a Lyra variation of the original workflow. Use for \"swap the character\", \"same video with another person / another outfit / another room / another car\", \"a version for moms / men / 40+ / nurses\", \"localize for Brazil\", \"new faces or a new look for this winner\", \"test personas or settings\", \"persona A/B test\". Not for a new angle or message on the concept (lyra-ad-concept-multiplier). Core video rules come from lyra-video-ad-generation; person, voice and speech from lyra-ugc-video.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-audience-variations",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "cursor",
      "short_description": "Audience variations of a mobile app video ad in Lyra. The same ad, message and edit, with the visible world changed for another part of the app's audience from the Brand Kit, one layer or a coherent bundle at a time - the person (character swap), wardrobe and styling, setting and background, props and vehicles, time and season, market markers, voice and language, polish - each built as a Lyra variation of the original workflow. Use for \"swap the character\", \"same video with another person / another outfit / another room / another car\", \"a version for moms / men / 40+ / nurses\", \"localize for Brazil\", \"new faces or a new look for this winner\", \"test personas or settings\", \"persona A/B test\". Not for a new angle or message on the concept (lyra-ad-concept-multiplier). Core video rules come from lyra-video-ad-generation; person, voice and speech from lyra-ugc-video."
    },
    "name": "lyra-audience-variations",
    "plugin_release_skill_id": "pluginrsk_6ae869cf4c8481918fb0062fbcbc13d4"
  },
  {
    "description": "Brand Kit skill for Lyra - builds a mobile app's Brand Kit from whatever the user sends (brand book, deck, PDF, notes, website, App Store / Google Play link, logo, screenshots, past ads, reviews), writes it in the team's Brand Kit standard, fills it into Lyra, creates the first workflow with the kit assigned and the brand assets on the canvas, and holds the rules every Lyra skill follows to read and use a Brand Kit (app card, pain map, field-by-field use, claims, conflicts, updates). Use for \"here's our brand kit\", \"fill the brand kit\", \"set up my brand in Lyra\", \"create a brand kit from our website / store page / deck\", \"onboard this app\", \"update the brand kit\", \"what's in our brand kit\", \"find the pains in the brand kit\", or before any ad when no kit exists yet. All other lyra skills read the Brand Kit by this file.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-brand-kit",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "hierarchy",
      "short_description": "Brand Kit skill for Lyra - builds a mobile app's Brand Kit from whatever the user sends (brand book, deck, PDF, notes, website, App Store / Google Play link, logo, screenshots, past ads, reviews), writes it in the team's Brand Kit standard, fills it into Lyra, creates the first workflow with the kit assigned and the brand assets on the canvas, and holds the rules every Lyra skill follows to read and use a Brand Kit (app card, pain map, field-by-field use, claims, conflicts, updates). Use for \"here's our brand kit\", \"fill the brand kit\", \"set up my brand in Lyra\", \"create a brand kit from our website / store page / deck\", \"onboard this app\", \"update the brand kit\", \"what's in our brand kit\", \"find the pains in the brand kit\", or before any ad when no kit exists yet. All other lyra skills read the Brand Kit by this file."
    },
    "name": "lyra-brand-kit",
    "plugin_release_skill_id": "pluginrsk_6ae869cbaba08191b966ffc2c7043cfa"
  },
  {
    "description": "Carousel ads for mobile apps in Lyra, 2 to 10 cards that tell one consistent story (same person, world, palette, type and layout grid on every card), written as one carousel script and cut into cards by Lyra's Text Split node. Use for \"a carousel for my app\", \"5 cards that tell a story\", \"swipe ad\", \"step by step carousel\", \"feature carousel\", \"before / after carousel\", \"photo dump / slideshow\", \"TikTok photo carousel\", \"split this text into cards\", or a story, article or script to turn into cards. Core image rules come from lyra-static-image-generation.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-carousel",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "pen",
      "short_description": "Carousel ads for mobile apps in Lyra, 2 to 10 cards that tell one consistent story (same person, world, palette, type and layout grid on every card), written as one carousel script and cut into cards by Lyra's Text Split node. Use for \"a carousel for my app\", \"5 cards that tell a story\", \"swipe ad\", \"step by step carousel\", \"feature carousel\", \"before / after carousel\", \"photo dump / slideshow\", \"TikTok photo carousel\", \"split this text into cards\", or a story, article or script to turn into cards. Core image rules come from lyra-static-image-generation."
    },
    "name": "lyra-carousel",
    "plugin_release_skill_id": "pluginrsk_6ae869c87d4c819188b592f0d887c2e0"
  },
  {
    "description": "Copy a competitor's video ad for a mobile app in Lyra. Analyses the reference video in the team's video creative classification standard (Lyra's Creative Analysis node or Claude's own frame by frame teardown), takes every fact from the user's Brand Kit, offers ways to retell the reference, rewrites the script for the brand and the request, then generates the new video. Two modes, close remake (same beats, timing and shots) or free adaptation (same idea and structure). Use for \"copy this competitor ad\", \"make an ad like this one\", \"remake this video for my app\", \"do this TikTok / Reel for us\", \"analyse this ad and make ours\", a Meta Ad Library or TikTok link to a video, or any video reference to adapt. Static ads, banners and carousels go to lyra-copy-competitor-static. Core video rules come from lyra-video-ad-generation.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-copy-competitor-ad",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "pen",
      "short_description": "Copy a competitor's video ad for a mobile app in Lyra. Analyses the reference video in the team's video creative classification standard (Lyra's Creative Analysis node or Claude's own frame by frame teardown), takes every fact from the user's Brand Kit, offers ways to retell the reference, rewrites the script for the brand and the request, then generates the new video. Two modes, close remake (same beats, timing and shots) or free adaptation (same idea and structure). Use for \"copy this competitor ad\", \"make an ad like this one\", \"remake this video for my app\", \"do this TikTok / Reel for us\", \"analyse this ad and make ours\", a Meta Ad Library or TikTok link to a video, or any video reference to adapt. Static ads, banners and carousels go to lyra-copy-competitor-static. Core video rules come from lyra-video-ad-generation."
    },
    "name": "lyra-copy-competitor-ad",
    "plugin_release_skill_id": "pluginrsk_6ae869cc045881919dfcaf712e373944"
  },
  {
    "description": "Copy a competitor's static ad (one image, a carousel, several statics, or a key frame of their video) for a mobile app in Lyra. Analyses the reference in the team's static creative analysis standard (Claude's own look at the image, or Lyra's Creative Analysis node), takes every fact from the user's Brand Kit, offers a close remake and a free adaptation with variations, writes the new layout, text and Nano Banana Pro prompt, then generates the new static and its variants. Use for \"copy this competitor static\", \"make a banner like this one\", \"remake this image ad for my app\", \"do this carousel for us\", \"analyse this static and make ours\", \"a static from this competitor video\", a Meta Ad Library screenshot, or several competitor statics to learn from. Core image rules come from lyra-static-image-generation.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-copy-competitor-static",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "pen",
      "short_description": "Copy a competitor's static ad (one image, a carousel, several statics, or a key frame of their video) for a mobile app in Lyra. Analyses the reference in the team's static creative analysis standard (Claude's own look at the image, or Lyra's Creative Analysis node), takes every fact from the user's Brand Kit, offers a close remake and a free adaptation with variations, writes the new layout, text and Nano Banana Pro prompt, then generates the new static and its variants. Use for \"copy this competitor static\", \"make a banner like this one\", \"remake this image ad for my app\", \"do this carousel for us\", \"analyse this static and make ours\", \"a static from this competitor video\", a Meta Ad Library screenshot, or several competitor statics to learn from. Core image rules come from lyra-static-image-generation."
    },
    "name": "lyra-copy-competitor-static",
    "plugin_release_skill_id": "pluginrsk_6ae869cde53081918abb3c54b960179b"
  },
  {
    "description": "Fix one part of a finished Lyra video or image ad without rebuilding it. Finds the node where the problem is born, changes only what was asked by editing the finished image on Nano Banana Pro instead of generating it again (for video: the fixed image, then the clip generated again from it), compares the new result with the old one so nothing else moved, reruns only what depends on it (image → clip → Video Editor), renders again and reports the new video or image, the workflow link and the credits the fix cost. Use for \"regenerate scene 3\", \"change her sweater\", \"another ending\", \"she has six fingers\", \"the logo is warped\", \"the screen text is wrong\", \"redo banner C2\", \"fix the headline on card 4\", \"louder music\", \"go back to the old one\", or a problem found by lyra-result-check. Not for another story, person, angle, audience, size or language (those are variations, handled by their own skills). Core rules come from lyra-video-ad-generation and lyra-static-image-generation.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-fix",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "bolt",
      "short_description": "Fix one part of a finished Lyra video or image ad without rebuilding it. Finds the node where the problem is born, changes only what was asked by editing the finished image on Nano Banana Pro instead of generating it again (for video: the fixed image, then the clip generated again from it), compares the new result with the old one so nothing else moved, reruns only what depends on it (image → clip → Video Editor), renders again and reports the new video or image, the workflow link and the credits the fix cost. Use for \"regenerate scene 3\", \"change her sweater\", \"another ending\", \"she has six fingers\", \"the logo is warped\", \"the screen text is wrong\", \"redo banner C2\", \"fix the headline on card 4\", \"louder music\", \"go back to the old one\", or a problem found by lyra-result-check. Not for another story, person, angle, audience, size or language (those are variations, handled by their own skills). Core rules come from lyra-video-ad-generation and lyra-static-image-generation."
    },
    "name": "lyra-fix",
    "plugin_release_skill_id": "pluginrsk_6ae869c85e548191ab93ebe3f1fdc5e9"
  },
  {
    "description": "Adapt a finished app ad image in Lyra to other aspect ratios and ad placements (Meta Feed, Stories and Reels, TikTok, Google App campaigns, link ads, banners) without losing anything - every element, text, color and style kept, the layout recomposed for the new frame and its safe zones. Picks the build per image and ratio (Lyra's Image Resize node, a Nano Banana Pro recompose, a rebuild from the concept card, or a canvas extension or crop for the designer) and checks every element. Use for \"make this in 9:16 and 1:1\", \"resize for Stories / Reels\", \"the same banner for Feed and Stories\", \"a 1.91:1 version\", \"all sizes for Meta\", \"a full size set\", \"Google App campaign sizes\", \"a 728x90 banner from this\", or a winning static to roll out to every placement. Core image rules come from lyra-static-image-generation.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-image-resize",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "cursor",
      "short_description": "Adapt a finished app ad image in Lyra to other aspect ratios and ad placements (Meta Feed, Stories and Reels, TikTok, Google App campaigns, link ads, banners) without losing anything - every element, text, color and style kept, the layout recomposed for the new frame and its safe zones. Picks the build per image and ratio (Lyra's Image Resize node, a Nano Banana Pro recompose, a rebuild from the concept card, or a canvas extension or crop for the designer) and checks every element. Use for \"make this in 9:16 and 1:1\", \"resize for Stories / Reels\", \"the same banner for Feed and Stories\", \"a 1.91:1 version\", \"all sizes for Meta\", \"a full size set\", \"Google App campaign sizes\", \"a 728x90 banner from this\", or a winning static to roll out to every placement. Core image rules come from lyra-static-image-generation."
    },
    "name": "lyra-image-resize",
    "plugin_release_skill_id": "pluginrsk_6ae869cdadf481919d098a31b31e08ce"
  },
  {
    "description": "Translate and localize the text on finished app ad images in Lyra (statics, carousel cards, end cards, store screenshot captions) into other languages, keeping the design. Writes the copy for each market first (transcreation, glossary, length check), then picks the build per image - Lyra's Image Translation node, a Nano Banana Pro text-replace edit, a rebuild with localized screenshots, or a clean plate for the designer - and checks every letter. Use for \"translate this ad into German and Japanese\", \"localize the banner for Brazil\", \"the same static in 5 languages\", \"RU / ES / PT versions\", \"translate the carousel\", \"Arabic version\", \"translate the text on the creative\", or a winning static to roll out to new markets. Core image rules come from lyra-static-image-generation.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-image-translation",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "pen",
      "short_description": "Translate and localize the text on finished app ad images in Lyra (statics, carousel cards, end cards, store screenshot captions) into other languages, keeping the design. Writes the copy for each market first (transcreation, glossary, length check), then picks the build per image - Lyra's Image Translation node, a Nano Banana Pro text-replace edit, a rebuild with localized screenshots, or a clean plate for the designer - and checks every letter. Use for \"translate this ad into German and Japanese\", \"localize the banner for Brazil\", \"the same static in 5 languages\", \"RU / ES / PT versions\", \"translate the carousel\", \"Arabic version\", \"translate the text on the creative\", or a winning static to roll out to new markets. Core image rules come from lyra-static-image-generation."
    },
    "name": "lyra-image-translation",
    "plugin_release_skill_id": "pluginrsk_6ae869cd5ab48191b35a659e89b61c6b"
  },
  {
    "description": "Check a finished Lyra video or image ad by looking at it, automatically after every final render. Opens the result file in a browser, takes frames at every spoken line and every cut (every card, size and language for images) at full resolution, checks faces, hands and fingers, phone screen text and the logo, captions over faces and warped text, measures the sound (levels, clipping, silence, hard end, music under the voice), then reports \"checked 14 frames, 2 problems\" with the problem frames as pictures and a fix for each through lyra-fix. No browser → a check list with timecodes for the user. Use after a render or a fix, and for \"check the video\", \"look at the result\", \"any defects?\", \"is it ready to launch\", \"check the statics\".",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-result-check",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "radar",
      "short_description": "Check a finished Lyra video or image ad by looking at it, automatically after every final render. Opens the result file in a browser, takes frames at every spoken line and every cut (every card, size and language for images) at full resolution, checks faces, hands and fingers, phone screen text and the logo, captions over faces and warped text, measures the sound (levels, clipping, silence, hard end, music under the voice), then reports \"checked 14 frames, 2 problems\" with the problem frames as pictures and a fix for each through lyra-fix. No browser → a check list with timecodes for the user. Use after a render or a fix, and for \"check the video\", \"look at the result\", \"any defects?\", \"is it ready to launch\", \"check the statics\"."
    },
    "name": "lyra-result-check",
    "plugin_release_skill_id": "pluginrsk_6ae869cbdf388191a3d57f98f8363465"
  },
  {
    "description": "Short drama video ads for mobile apps in Lyra - a 60 to 120 s mini-series story, animated (3D, 2D anime / storybook / kawaii, stop-motion and knitted worlds) or realistic (live-action sitcom, vertical mini-series, confession), where an underdog hero hits a chain of everyday disasters, meets the app at the turning point or through the plot, and ends happier or more successful, told with in-clip dialogue or a narrator. Offers several story concepts per app from the Brand Kit. Use for \"a short drama ad\", \"a mini-series / story ad\", \"a cartoon story for my app\", \"a realistic story ad\", \"a 1-2 minute story video\", \"drama like ReelShort but for my app\", \"an animated story where the app saves the day\", \"episodes with a cliffhanger\", or a story reference to adapt. Core video rules come from lyra-video-ad-generation.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-short-drama",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "pen",
      "short_description": "Short drama video ads for mobile apps in Lyra - a 60 to 120 s mini-series story, animated (3D, 2D anime / storybook / kawaii, stop-motion and knitted worlds) or realistic (live-action sitcom, vertical mini-series, confession), where an underdog hero hits a chain of everyday disasters, meets the app at the turning point or through the plot, and ends happier or more successful, told with in-clip dialogue or a narrator. Offers several story concepts per app from the Brand Kit. Use for \"a short drama ad\", \"a mini-series / story ad\", \"a cartoon story for my app\", \"a realistic story ad\", \"a 1-2 minute story video\", \"drama like ReelShort but for my app\", \"an animated story where the app saves the day\", \"episodes with a cliffhanger\", or a story reference to adapt. Core video rules come from lyra-video-ad-generation."
    },
    "name": "lyra-short-drama",
    "plugin_release_skill_id": "pluginrsk_6ae869cfb24c8191b72a9a3debe808de"
  },
  {
    "description": "Base skill for images in Lyra. Builds static ads and images for mobile apps end to end (concept, layout, on-image text, realism, model choice, references, sizes, languages) with a clear concept and layout, photo-real realism on Nano Banana Pro, de-slop and error handling. Use for \"a static ad for my app\", \"an image ad / banner / creative\", \"4 statics to test\", \"a carousel\", \"a realistic photo of…\", \"a character / persona image\", \"a product or phone shot\", \"an illustration in our style\", or a layout or reference to produce. Holds the core image rules the smaller lyra image skills point to.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-static-image-generation",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "pen",
      "short_description": "Base skill for images in Lyra. Builds static ads and images for mobile apps end to end (concept, layout, on-image text, realism, model choice, references, sizes, languages) with a clear concept and layout, photo-real realism on Nano Banana Pro, de-slop and error handling. Use for \"a static ad for my app\", \"an image ad / banner / creative\", \"4 statics to test\", \"a carousel\", \"a realistic photo of…\", \"a character / persona image\", \"a product or phone shot\", \"an illustration in our style\", or a layout or reference to produce. Holds the core image rules the smaller lyra image skills point to."
    },
    "name": "lyra-static-image-generation",
    "plugin_release_skill_id": "pluginrsk_6ae869cf1c6481918b03afb92937974a"
  },
  {
    "description": "UGC style video ads for mobile apps in Lyra, a realistic person talking to the phone camera in a real place, with their own voice and a speech built from the audience's pain, usually opened with a hook from lyra-video-hooks. Use for \"a UGC video\", \"UGC ad for my app\", \"a creator / influencer style ad\", \"talking head\", \"testimonial style\", \"storytime\", \"car vlog\", \"street interview\", \"a skit\", \"day in my life\", \"honest review\", or a Lyra UGC or Talking Head template. Core video rules come from lyra-video-ad-generation.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-ugc-video",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "chat",
      "short_description": "UGC style video ads for mobile apps in Lyra, a realistic person talking to the phone camera in a real place, with their own voice and a speech built from the audience's pain, usually opened with a hook from lyra-video-hooks. Use for \"a UGC video\", \"UGC ad for my app\", \"a creator / influencer style ad\", \"talking head\", \"testimonial style\", \"storytime\", \"car vlog\", \"street interview\", \"a skit\", \"day in my life\", \"honest review\", or a Lyra UGC or Talking Head template. Core video rules come from lyra-video-ad-generation."
    },
    "name": "lyra-ugc-video",
    "plugin_release_skill_id": "pluginrsk_6ae869cc112c8191a1e54acf1e0790ec"
  },
  {
    "description": "App UI creatives in Lyra with every UI text kept exactly as in the user's screenshots - UI motion video ads (real app screens, buttons, cards, logo and icon in motion), store-style end cards with an install button, and App Store / Google Play screenshot sets with variants. Use for \"animate my app screens\", \"UI animation / motion design ad\", \"floating phone video\", \"show the app in the video\", \"end card with install button\", \"packshot like the App Store\", \"store screenshots\", \"screenshot set for Google Play\", or screenshots to bring to life. Core video rules come from lyra-video-ad-generation.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-ui-motion-video",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "cursor",
      "short_description": "App UI creatives in Lyra with every UI text kept exactly as in the user's screenshots - UI motion video ads (real app screens, buttons, cards, logo and icon in motion), store-style end cards with an install button, and App Store / Google Play screenshot sets with variants. Use for \"animate my app screens\", \"UI animation / motion design ad\", \"floating phone video\", \"show the app in the video\", \"end card with install button\", \"packshot like the App Store\", \"store screenshots\", \"screenshot set for Google Play\", or screenshots to bring to life. Core video rules come from lyra-video-ad-generation."
    },
    "name": "lyra-ui-motion-video",
    "plugin_release_skill_id": "pluginrsk_6ae869cdd12881919e763c7ab526c904"
  },
  {
    "description": "Base skill for video ads in Lyra. Builds a mobile app video ad end to end (brief, script, scenes, keyframes, clips, voiceover, music, Video Editor assembly) with scene consistency, de-slop and error handling. Use for \"a 15-second video ad for my app\", \"a 30 s / 1 min ad\", \"a sequence of scenes\", \"stitch these clips\", or a script or storyboard to produce. Holds the core video rules the smaller lyra video skills point to.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-video-ad-generation",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "bolt",
      "short_description": "Base skill for video ads in Lyra. Builds a mobile app video ad end to end (brief, script, scenes, keyframes, clips, voiceover, music, Video Editor assembly) with scene consistency, de-slop and error handling. Use for \"a 15-second video ad for my app\", \"a 30 s / 1 min ad\", \"a sequence of scenes\", \"stitch these clips\", or a script or storyboard to produce. Holds the core video rules the smaller lyra video skills point to."
    },
    "name": "lyra-video-ad-generation",
    "plugin_release_skill_id": "pluginrsk_6ae869c867e88191aec8c423d46e8b93"
  },
  {
    "description": "Lyra Video Editor: assembly, mix, end card, text, captions (asked first, size 80, 75% height), pacing, keywords, SFX, render check, and 59/30/15 s cutdowns. The assembly stage of every Lyra video skill.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-video-editor",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "code",
      "short_description": "Lyra Video Editor: assembly, mix, end card, text, captions (asked first, size 80, 75% height), pacing, keywords, SFX, render check, and 59/30/15 s cutdowns. The assembly stage of every Lyra video skill."
    },
    "name": "lyra-video-editor",
    "plugin_release_skill_id": "pluginrsk_6ae869c8bea48191b72d73fba3119d00"
  },
  {
    "description": "Hooks for mobile app video ads in Lyra, built from the Brand Kit and the audience's real pains, then turned into finished videos for an A/B test. Use for \"hooks for my app\", \"4 hook variants\", \"write hooks / a hook bank\", \"a visual hook\", \"a catchy / brainrot hook\", \"hook multiplier\", \"test new openings on this ad\", \"the hook is weak / hook rate dropped\", \"a stronger first 3 seconds\", or a Lyra Hook template. Core video rules come from lyra-video-ad-generation.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-video-hooks",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "bolt",
      "short_description": "Hooks for mobile app video ads in Lyra, built from the Brand Kit and the audience's real pains, then turned into finished videos for an A/B test. Use for \"hooks for my app\", \"4 hook variants\", \"write hooks / a hook bank\", \"a visual hook\", \"a catchy / brainrot hook\", \"hook multiplier\", \"test new openings on this ad\", \"the hook is weak / hook rate dropped\", \"a stronger first 3 seconds\", or a Lyra Hook template. Core video rules come from lyra-video-ad-generation."
    },
    "name": "lyra-video-hooks",
    "plugin_release_skill_id": "pluginrsk_6ae869ca4b78819199a70d827a0789d9"
  },
  {
    "description": "Canvas layout for every Lyra workflow Claude builds or changes, in the house style of Lyra's templates - nodes grouped into sections in run order (a Section is a frame node), a small STEP sticky note above every section that says what happens there and what the user can change, the creative team's color code (lime the idea and script, pink the user's own app assets, violet generation, rose the result), a clear reading path (the idea on the left, the steps stacked in columns, the Video Editor on the right), clear node labels, no stray or empty nodes, and a final check. Use whenever a Lyra skill creates or edits a workflow (video, UGC, hooks, short drama, UI motion, statics, carousels, competitor copies, variations, concept multiplier, resize, translation, brand kit starter), and for \"make the workflow clear\", \"tidy up the canvas\", \"sign the sections\", \"add notes for the user\", \"the canvas is confusing\", \"lay it out like the templates\".",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-workflow-layout",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "hierarchy",
      "short_description": "Canvas layout for every Lyra workflow Claude builds or changes, in the house style of Lyra's templates - nodes grouped into sections in run order (a Section is a frame node), a small STEP sticky note above every section that says what happens there and what the user can change, the creative team's color code (lime the idea and script, pink the user's own app assets, violet generation, rose the result), a clear reading path (the idea on the left, the steps stacked in columns, the Video Editor on the right), clear node labels, no stray or empty nodes, and a final check. Use whenever a Lyra skill creates or edits a workflow (video, UGC, hooks, short drama, UI motion, statics, carousels, competitor copies, variations, concept multiplier, resize, translation, brand kit starter), and for \"make the workflow clear\", \"tidy up the canvas\", \"sign the sections\", \"add notes for the user\", \"the canvas is confusing\", \"lay it out like the templates\"."
    },
    "name": "lyra-workflow-layout",
    "plugin_release_skill_id": "pluginrsk_6ae869c9f5b48191a94676aec94d1c9b"
  },
  {
    "description": "Review any Lyra workflow and explain it in plain words - what it makes and in which order it runs, section by section - then find what is wrong (broken connections, invalid nodes, empty nodes, nodes with no result, dead ends, settings that don't match), price a full rerun and each part of it, and, if the user wants, fix the problems and tidy the canvas by lyra-workflow-layout. Read-only by default - in a workflow Claude did not build in this chat, nothing is deleted, moved or changed without the user's yes. Use for \"review my workflow\", \"explain this workflow\", \"what does this workflow do\", \"why doesn't it run\", \"check my canvas\", \"is anything broken here\", \"how much to rerun it\", \"how much does this template cost\", \"audit this workflow\", or a Lyra workflow link with a question about it.",
    "interface": {
      "brand_color": null,
      "default_prompt": null,
      "display_name": "lyra-workflow-review",
      "icon_large_url": null,
      "icon_small_url": null,
      "iconography": "search",
      "short_description": "Review any Lyra workflow and explain it in plain words - what it makes and in which order it runs, section by section - then find what is wrong (broken connections, invalid nodes, empty nodes, nodes with no result, dead ends, settings that don't match), price a full rerun and each part of it, and, if the user wants, fix the problems and tidy the canvas by lyra-workflow-layout. Read-only by default - in a workflow Claude did not build in this chat, nothing is deleted, moved or changed without the user's yes. Use for \"review my workflow\", \"explain this workflow\", \"what does this workflow do\", \"why doesn't it run\", \"check my canvas\", \"is anything broken here\", \"how much to rerun it\", \"how much does this template cost\", \"audit this workflow\", or a Lyra workflow link with a question about it."
    },
    "name": "lyra-workflow-review",
    "plugin_release_skill_id": "pluginrsk_6ae869ca14648191a59b6981c4fa4b5b"
  }
]

changed /release/version

BEFORE
"0.5.0"
AFTER
"0.5.1"
Full snapshot data
{
  "canonical_app_id": "asdk_app_6adf1d066ee48191a687af733ab287a3",
  "connector_id": "asdk_app_6adf1d066ee48191a687af733ab287a3",
  "created_at": "2026-10-26T13:06:27.243172Z",
  "discoverability": "LISTED",
  "id": "plugin_asdk_app_6adf1d066ee48191a687af733ab287a3",
  "is_template": false,
  "is_template_instance": false,
  "is_v2_template": false,
  "name": "lyra-mcp-skills",
  "release": {
    "app_ids": [
      "asdk_app_6adf1d066ee48191a687af733ab287a3"
    ],
    "app_manifest": {
      "apps": {
        "lyra": {
          "id": "asdk_app_6adf1d066ee48191a687af733ab287a3",
          "required": true
        }
      }
    },
    "app_templates": [],
    "description": "Mobile app ad creatives on the Lyra (Muse) MCP server: static images, carousels, video ads, UGC, hooks, short dramas, UI motion and store screenshots, competitor remakes, audience variations, concept angles, resizing and translation, plus Brand Kits, fixes, result checks and workflow reviews.",
    "display_name": "SplitMetrics Lyra",
    "id": "pluginrel_284a7ce0ad0081918ee42b58c08bc4fa",
    "interface": {
      "brand_color": "#F97316",
      "capabilities": [
        "Interactive",
        "Read",
        "Write"
      ],
      "category": "Creativity",
      "composer_icon_dark_url": "https://files.openai.com/content?id=file_00000000aad882439a17570eec6ab047",
      "composer_icon_url": "https://files.openai.com/content?id=file_0000000013c481f481966f595acc68d4",
      "default_prompt": "Make a UGC video ad for my app with a creator talking to camera",
      "default_prompts": [
        "Make a UGC video ad for my app with a creator talking to camera",
        "Make a short drama story ad for my app with a cliffhanger",
        "Remake a competitor’s video ad idea into a new video ad for my app"
      ],
      "developer_name": "SplitMetrics",
      "logo_url": "https://files.openai.com/content?id=file_000000009f948210b589f85d3ef14684",
      "logo_url_dark": "https://files.openai.com/content?id=file_00000000e77481f486cb167937490bc9",
      "long_description": "Make video and image ads for your mobile app with SplitMetrics Lyra in ChatGPT: UGC videos, short drama story ads, static banners and carousels, ready to test on TikTok, Meta, Google and other ad networks. Start from a brief, an idea or a simple prompt, and get finished ads built from your brand kit and app assets.\n\nFor example, you can:\n• Make video ads in any style: branded, engaging story-driven, UGC, short drama, or app UI motion with your real screens.\n• Remake a competitor’s ad for your app.\n• Turn a winning ad into new angles, hooks and audience versions.\n• Resize and translate creatives for every placement and language.\n\nEvery ad is an editable workflow in your SplitMetrics Lyra workspace. Generation spends your workspace credits, and you confirm before every run. Connect your SplitMetrics Lyra account to get started.",
      "plugin_category_id": "creativity",
      "privacy_policy_url": "https://splitmetrics.com/legal/privacy-policy/",
      "screenshot_urls": [],
      "short_description": "Video and image ads for apps",
      "terms_of_service_url": "https://splitmetrics.com/legal/terms-of-service/",
      "website_url": "https://lyra.splitmetrics.com/"
    },
    "keywords": [
      "lyra",
      "muse",
      "image-generation",
      "video-generation",
      "voiceover",
      "mcp"
    ],
    "mcp_servers": [
      {
        "key": "lyra",
        "metadata": {
          "extensions": {
            "com.openai": {
              "auth": {
                "client": {
                  "mode": "dcr"
                },
                "type": "oauth"
              }
            }
          },
          "headers": {},
          "type": "streamable-http",
          "url": "https://mcp-lyra.splitmetrics.com"
        }
      }
    ],
    "onboarding_skill_name": null,
    "requires_local_executor": false,
    "skills": [
      {
        "description": "Ad concept multiplier for mobile app video ads in Lyra. Takes a concept (a winning ad, a Lyra workflow, a finished video, or a concept name like \"Authority figure\") and makes new ads on it with new angles, in one of two ways the user picks - A. Perspectives (the team framework, concept → angles → hooks: who else tells it and how they argue it, e.g. doctor, teacher, trainer, mom) or B. Reasons (the proven wrapper kept, a new reason to care: another pain, desire, objection, moment or feature from the Brand Kit, in the situation where it happens). Each angle is built as a Lyra variation. Use for \"more ads like this winner\", \"same concept, new angles\", \"multiply this concept\", \"1 concept, 4 angles, 20 hooks\", \"same format, different pain / story / setting\", \"the angle is tired, keep the format\", \"iterate on the winner\". Not for new openings only (lyra-video-hooks) or the same script for another person or market (lyra-audience-variations). Core video rules come from lyra-video-ad-generation.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "lyra-ad-concept-multiplier",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "bolt",
          "short_description": "Ad concept multiplier for mobile app video ads in Lyra. Takes a concept (a winning ad, a Lyra workflow, a finished video, or a concept name like \"Authority figure\") and makes new ads on it with new angles, in one of two ways the user picks - A. Perspectives (the team framework, concept → angles → hooks: who else tells it and how they argue it, e.g. doctor, teacher, trainer, mom) or B. Reasons (the proven wrapper kept, a new reason to care: another pain, desire, objection, moment or feature from the Brand Kit, in the situation where it happens). Each angle is built as a Lyra variation. Use for \"more ads like this winner\", \"same concept, new angles\", \"multiply this concept\", \"1 concept, 4 angles, 20 hooks\", \"same format, different pain / story / setting\", \"the angle is tired, keep the format\", \"iterate on the winner\". Not for new openings only (lyra-video-hooks) or the same script for another person or market (lyra-audience-variations). Core video rules come from lyra-video-ad-generation."
        },
        "name": "lyra-ad-concept-multiplier",
        "plugin_release_skill_id": "pluginrsk_6ae869ca7e288191847f36a4bcb6dae3"
      },
      {
        "description": "Audience variations of a mobile app video ad in Lyra. The same ad, message and edit, with the visible world changed for another part of the app's audience from the Brand Kit, one layer or a coherent bundle at a time - the person (character swap), wardrobe and styling, setting and background, props and vehicles, time and season, market markers, voice and language, polish - each built as a Lyra variation of the original workflow. Use for \"swap the character\", \"same video with another person / another outfit / another room / another car\", \"a version for moms / men / 40+ / nurses\", \"localize for Brazil\", \"new faces or a new look for this winner\", \"test personas or settings\", \"persona A/B test\". Not for a new angle or message on the concept (lyra-ad-concept-multiplier). Core video rules come from lyra-video-ad-generation; person, voice and speech from lyra-ugc-video.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "lyra-audience-variations",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "cursor",
          "short_description": "Audience variations of a mobile app video ad in Lyra. The same ad, message and edit, with the visible world changed for another part of the app's audience from the Brand Kit, one layer or a coherent bundle at a time - the person (character swap), wardrobe and styling, setting and background, props and vehicles, time and season, market markers, voice and language, polish - each built as a Lyra variation of the original workflow. Use for \"swap the character\", \"same video with another person / another outfit / another room / another car\", \"a version for moms / men / 40+ / nurses\", \"localize for Brazil\", \"new faces or a new look for this winner\", \"test personas or settings\", \"persona A/B test\". Not for a new angle or message on the concept (lyra-ad-concept-multiplier). Core video rules come from lyra-video-ad-generation; person, voice and speech from lyra-ugc-video."
        },
        "name": "lyra-audience-variations",
        "plugin_release_skill_id": "pluginrsk_6ae869cf4c8481918fb0062fbcbc13d4"
      },
      {
        "description": "Brand Kit skill for Lyra - builds a mobile app's Brand Kit from whatever the user sends (brand book, deck, PDF, notes, website, App Store / Google Play link, logo, screenshots, past ads, reviews), writes it in the team's Brand Kit standard, fills it into Lyra, creates the first workflow with the kit assigned and the brand assets on the canvas, and holds the rules every Lyra skill follows to read and use a Brand Kit (app card, pain map, field-by-field use, claims, conflicts, updates). Use for \"here's our brand kit\", \"fill the brand kit\", \"set up my brand in Lyra\", \"create a brand kit from our website / store page / deck\", \"onboard this app\", \"update the brand kit\", \"what's in our brand kit\", \"find the pains in the brand kit\", or before any ad when no kit exists yet. All other lyra skills read the Brand Kit by this file.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "lyra-brand-kit",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "hierarchy",
          "short_description": "Brand Kit skill for Lyra - builds a mobile app's Brand Kit from whatever the user sends (brand book, deck, PDF, notes, website, App Store / Google Play link, logo, screenshots, past ads, reviews), writes it in the team's Brand Kit standard, fills it into Lyra, creates the first workflow with the kit assigned and the brand assets on the canvas, and holds the rules every Lyra skill follows to read and use a Brand Kit (app card, pain map, field-by-field use, claims, conflicts, updates). Use for \"here's our brand kit\", \"fill the brand kit\", \"set up my brand in Lyra\", \"create a brand kit from our website / store page / deck\", \"onboard this app\", \"update the brand kit\", \"what's in our brand kit\", \"find the pains in the brand kit\", or before any ad when no kit exists yet. All other lyra skills read the Brand Kit by this file."
        },
        "name": "lyra-brand-kit",
        "plugin_release_skill_id": "pluginrsk_6ae869cbaba08191b966ffc2c7043cfa"
      },
      {
        "description": "Carousel ads for mobile apps in Lyra, 2 to 10 cards that tell one consistent story (same person, world, palette, type and layout grid on every card), written as one carousel script and cut into cards by Lyra's Text Split node. Use for \"a carousel for my app\", \"5 cards that tell a story\", \"swipe ad\", \"step by step carousel\", \"feature carousel\", \"before / after carousel\", \"photo dump / slideshow\", \"TikTok photo carousel\", \"split this text into cards\", or a story, article or script to turn into cards. Core image rules come from lyra-static-image-generation.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "lyra-carousel",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "pen",
          "short_description": "Carousel ads for mobile apps in Lyra, 2 to 10 cards that tell one consistent story (same person, world, palette, type and layout grid on every card), written as one carousel script and cut into cards by Lyra's Text Split node. Use for \"a carousel for my app\", \"5 cards that tell a story\", \"swipe ad\", \"step by step carousel\", \"feature carousel\", \"before / after carousel\", \"photo dump / slideshow\", \"TikTok photo carousel\", \"split this text into cards\", or a story, article or script to turn into cards. Core image rules come from lyra-static-image-generation."
        },
        "name": "lyra-carousel",
        "plugin_release_skill_id": "pluginrsk_6ae869c87d4c819188b592f0d887c2e0"
      },
      {
        "description": "Copy a competitor's video ad for a mobile app in Lyra. Analyses the reference video in the team's video creative classification standard (Lyra's Creative Analysis node or Claude's own frame by frame teardown), takes every fact from the user's Brand Kit, offers ways to retell the reference, rewrites the script for the brand and the request, then generates the new video. Two modes, close remake (same beats, timing and shots) or free adaptation (same idea and structure). Use for \"copy this competitor ad\", \"make an ad like this one\", \"remake this video for my app\", \"do this TikTok / Reel for us\", \"analyse this ad and make ours\", a Meta Ad Library or TikTok link to a video, or any video reference to adapt. Static ads, banners and carousels go to lyra-copy-competitor-static. Core video rules come from lyra-video-ad-generation.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "lyra-copy-competitor-ad",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "pen",
          "short_description": "Copy a competitor's video ad for a mobile app in Lyra. Analyses the reference video in the team's video creative classification standard (Lyra's Creative Analysis node or Claude's own frame by frame teardown), takes every fact from the user's Brand Kit, offers ways to retell the reference, rewrites the script for the brand and the request, then generates the new video. Two modes, close remake (same beats, timing and shots) or free adaptation (same idea and structure). Use for \"copy this competitor ad\", \"make an ad like this one\", \"remake this video for my app\", \"do this TikTok / Reel for us\", \"analyse this ad and make ours\", a Meta Ad Library or TikTok link to a video, or any video reference to adapt. Static ads, banners and carousels go to lyra-copy-competitor-static. Core video rules come from lyra-video-ad-generation."
        },
        "name": "lyra-copy-competitor-ad",
        "plugin_release_skill_id": "pluginrsk_6ae869cc045881919dfcaf712e373944"
      },
      {
        "description": "Copy a competitor's static ad (one image, a carousel, several statics, or a key frame of their video) for a mobile app in Lyra. Analyses the reference in the team's static creative analysis standard (Claude's own look at the image, or Lyra's Creative Analysis node), takes every fact from the user's Brand Kit, offers a close remake and a free adaptation with variations, writes the new layout, text and Nano Banana Pro prompt, then generates the new static and its variants. Use for \"copy this competitor static\", \"make a banner like this one\", \"remake this image ad for my app\", \"do this carousel for us\", \"analyse this static and make ours\", \"a static from this competitor video\", a Meta Ad Library screenshot, or several competitor statics to learn from. Core image rules come from lyra-static-image-generation.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "lyra-copy-competitor-static",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "pen",
          "short_description": "Copy a competitor's static ad (one image, a carousel, several statics, or a key frame of their video) for a mobile app in Lyra. Analyses the reference in the team's static creative analysis standard (Claude's own look at the image, or Lyra's Creative Analysis node), takes every fact from the user's Brand Kit, offers a close remake and a free adaptation with variations, writes the new layout, text and Nano Banana Pro prompt, then generates the new static and its variants. Use for \"copy this competitor static\", \"make a banner like this one\", \"remake this image ad for my app\", \"do this carousel for us\", \"analyse this static and make ours\", \"a static from this competitor video\", a Meta Ad Library screenshot, or several competitor statics to learn from. Core image rules come from lyra-static-image-generation."
        },
        "name": "lyra-copy-competitor-static",
        "plugin_release_skill_id": "pluginrsk_6ae869cde53081918abb3c54b960179b"
      },
      {
        "description": "Fix one part of a finished Lyra video or image ad without rebuilding it. Finds the node where the problem is born, changes only what was asked by editing the finished image on Nano Banana Pro instead of generating it again (for video: the fixed image, then the clip generated again from it), compares the new result with the old one so nothing else moved, reruns only what depends on it (image → clip → Video Editor), renders again and reports the new video or image, the workflow link and the credits the fix cost. Use for \"regenerate scene 3\", \"change her sweater\", \"another ending\", \"she has six fingers\", \"the logo is warped\", \"the screen text is wrong\", \"redo banner C2\", \"fix the headline on card 4\", \"louder music\", \"go back to the old one\", or a problem found by lyra-result-check. Not for another story, person, angle, audience, size or language (those are variations, handled by their own skills). Core rules come from lyra-video-ad-generation and lyra-static-image-generation.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "lyra-fix",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "bolt",
          "short_description": "Fix one part of a finished Lyra video or image ad without rebuilding it. Finds the node where the problem is born, changes only what was asked by editing the finished image on Nano Banana Pro instead of generating it again (for video: the fixed image, then the clip generated again from it), compares the new result with the old one so nothing else moved, reruns only what depends on it (image → clip → Video Editor), renders again and reports the new video or image, the workflow link and the credits the fix cost. Use for \"regenerate scene 3\", \"change her sweater\", \"another ending\", \"she has six fingers\", \"the logo is warped\", \"the screen text is wrong\", \"redo banner C2\", \"fix the headline on card 4\", \"louder music\", \"go back to the old one\", or a problem found by lyra-result-check. Not for another story, person, angle, audience, size or language (those are variations, handled by their own skills). Core rules come from lyra-video-ad-generation and lyra-static-image-generation."
        },
        "name": "lyra-fix",
        "plugin_release_skill_id": "pluginrsk_6ae869c85e548191ab93ebe3f1fdc5e9"
      },
      {
        "description": "Adapt a finished app ad image in Lyra to other aspect ratios and ad placements (Meta Feed, Stories and Reels, TikTok, Google App campaigns, link ads, banners) without losing anything - every element, text, color and style kept, the layout recomposed for the new frame and its safe zones. Picks the build per image and ratio (Lyra's Image Resize node, a Nano Banana Pro recompose, a rebuild from the concept card, or a canvas extension or crop for the designer) and checks every element. Use for \"make this in 9:16 and 1:1\", \"resize for Stories / Reels\", \"the same banner for Feed and Stories\", \"a 1.91:1 version\", \"all sizes for Meta\", \"a full size set\", \"Google App campaign sizes\", \"a 728x90 banner from this\", or a winning static to roll out to every placement. Core image rules come from lyra-static-image-generation.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "lyra-image-resize",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "cursor",
          "short_description": "Adapt a finished app ad image in Lyra to other aspect ratios and ad placements (Meta Feed, Stories and Reels, TikTok, Google App campaigns, link ads, banners) without losing anything - every element, text, color and style kept, the layout recomposed for the new frame and its safe zones. Picks the build per image and ratio (Lyra's Image Resize node, a Nano Banana Pro recompose, a rebuild from the concept card, or a canvas extension or crop for the designer) and checks every element. Use for \"make this in 9:16 and 1:1\", \"resize for Stories / Reels\", \"the same banner for Feed and Stories\", \"a 1.91:1 version\", \"all sizes for Meta\", \"a full size set\", \"Google App campaign sizes\", \"a 728x90 banner from this\", or a winning static to roll out to every placement. Core image rules come from lyra-static-image-generation."
        },
        "name": "lyra-image-resize",
        "plugin_release_skill_id": "pluginrsk_6ae869cdadf481919d098a31b31e08ce"
      },
      {
        "description": "Translate and localize the text on finished app ad images in Lyra (statics, carousel cards, end cards, store screenshot captions) into other languages, keeping the design. Writes the copy for each market first (transcreation, glossary, length check), then picks the build per image - Lyra's Image Translation node, a Nano Banana Pro text-replace edit, a rebuild with localized screenshots, or a clean plate for the designer - and checks every letter. Use for \"translate this ad into German and Japanese\", \"localize the banner for Brazil\", \"the same static in 5 languages\", \"RU / ES / PT versions\", \"translate the carousel\", \"Arabic version\", \"translate the text on the creative\", or a winning static to roll out to new markets. Core image rules come from lyra-static-image-generation.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "lyra-image-translation",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "pen",
          "short_description": "Translate and localize the text on finished app ad images in Lyra (statics, carousel cards, end cards, store screenshot captions) into other languages, keeping the design. Writes the copy for each market first (transcreation, glossary, length check), then picks the build per image - Lyra's Image Translation node, a Nano Banana Pro text-replace edit, a rebuild with localized screenshots, or a clean plate for the designer - and checks every letter. Use for \"translate this ad into German and Japanese\", \"localize the banner for Brazil\", \"the same static in 5 languages\", \"RU / ES / PT versions\", \"translate the carousel\", \"Arabic version\", \"translate the text on the creative\", or a winning static to roll out to new markets. Core image rules come from lyra-static-image-generation."
        },
        "name": "lyra-image-translation",
        "plugin_release_skill_id": "pluginrsk_6ae869cd5ab48191b35a659e89b61c6b"
      },
      {
        "description": "Check a finished Lyra video or image ad by looking at it, automatically after every final render. Opens the result file in a browser, takes frames at every spoken line and every cut (every card, size and language for images) at full resolution, checks faces, hands and fingers, phone screen text and the logo, captions over faces and warped text, measures the sound (levels, clipping, silence, hard end, music under the voice), then reports \"checked 14 frames, 2 problems\" with the problem frames as pictures and a fix for each through lyra-fix. No browser → a check list with timecodes for the user. Use after a render or a fix, and for \"check the video\", \"look at the result\", \"any defects?\", \"is it ready to launch\", \"check the statics\".",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "lyra-result-check",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "radar",
          "short_description": "Check a finished Lyra video or image ad by looking at it, automatically after every final render. Opens the result file in a browser, takes frames at every spoken line and every cut (every card, size and language for images) at full resolution, checks faces, hands and fingers, phone screen text and the logo, captions over faces and warped text, measures the sound (levels, clipping, silence, hard end, music under the voice), then reports \"checked 14 frames, 2 problems\" with the problem frames as pictures and a fix for each through lyra-fix. No browser → a check list with timecodes for the user. Use after a render or a fix, and for \"check the video\", \"look at the result\", \"any defects?\", \"is it ready to launch\", \"check the statics\"."
        },
        "name": "lyra-result-check",
        "plugin_release_skill_id": "pluginrsk_6ae869cbdf388191a3d57f98f8363465"
      },
      {
        "description": "Short drama video ads for mobile apps in Lyra - a 60 to 120 s mini-series story, animated (3D, 2D anime / storybook / kawaii, stop-motion and knitted worlds) or realistic (live-action sitcom, vertical mini-series, confession), where an underdog hero hits a chain of everyday disasters, meets the app at the turning point or through the plot, and ends happier or more successful, told with in-clip dialogue or a narrator. Offers several story concepts per app from the Brand Kit. Use for \"a short drama ad\", \"a mini-series / story ad\", \"a cartoon story for my app\", \"a realistic story ad\", \"a 1-2 minute story video\", \"drama like ReelShort but for my app\", \"an animated story where the app saves the day\", \"episodes with a cliffhanger\", or a story reference to adapt. Core video rules come from lyra-video-ad-generation.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "lyra-short-drama",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "pen",
          "short_description": "Short drama video ads for mobile apps in Lyra - a 60 to 120 s mini-series story, animated (3D, 2D anime / storybook / kawaii, stop-motion and knitted worlds) or realistic (live-action sitcom, vertical mini-series, confession), where an underdog hero hits a chain of everyday disasters, meets the app at the turning point or through the plot, and ends happier or more successful, told with in-clip dialogue or a narrator. Offers several story concepts per app from the Brand Kit. Use for \"a short drama ad\", \"a mini-series / story ad\", \"a cartoon story for my app\", \"a realistic story ad\", \"a 1-2 minute story video\", \"drama like ReelShort but for my app\", \"an animated story where the app saves the day\", \"episodes with a cliffhanger\", or a story reference to adapt. Core video rules come from lyra-video-ad-generation."
        },
        "name": "lyra-short-drama",
        "plugin_release_skill_id": "pluginrsk_6ae869cfb24c8191b72a9a3debe808de"
      },
      {
        "description": "Base skill for images in Lyra. Builds static ads and images for mobile apps end to end (concept, layout, on-image text, realism, model choice, references, sizes, languages) with a clear concept and layout, photo-real realism on Nano Banana Pro, de-slop and error handling. Use for \"a static ad for my app\", \"an image ad / banner / creative\", \"4 statics to test\", \"a carousel\", \"a realistic photo of…\", \"a character / persona image\", \"a product or phone shot\", \"an illustration in our style\", or a layout or reference to produce. Holds the core image rules the smaller lyra image skills point to.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "lyra-static-image-generation",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "pen",
          "short_description": "Base skill for images in Lyra. Builds static ads and images for mobile apps end to end (concept, layout, on-image text, realism, model choice, references, sizes, languages) with a clear concept and layout, photo-real realism on Nano Banana Pro, de-slop and error handling. Use for \"a static ad for my app\", \"an image ad / banner / creative\", \"4 statics to test\", \"a carousel\", \"a realistic photo of…\", \"a character / persona image\", \"a product or phone shot\", \"an illustration in our style\", or a layout or reference to produce. Holds the core image rules the smaller lyra image skills point to."
        },
        "name": "lyra-static-image-generation",
        "plugin_release_skill_id": "pluginrsk_6ae869cf1c6481918b03afb92937974a"
      },
      {
        "description": "UGC style video ads for mobile apps in Lyra, a realistic person talking to the phone camera in a real place, with their own voice and a speech built from the audience's pain, usually opened with a hook from lyra-video-hooks. Use for \"a UGC video\", \"UGC ad for my app\", \"a creator / influencer style ad\", \"talking head\", \"testimonial style\", \"storytime\", \"car vlog\", \"street interview\", \"a skit\", \"day in my life\", \"honest review\", or a Lyra UGC or Talking Head template. Core video rules come from lyra-video-ad-generation.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "lyra-ugc-video",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "chat",
          "short_description": "UGC style video ads for mobile apps in Lyra, a realistic person talking to the phone camera in a real place, with their own voice and a speech built from the audience's pain, usually opened with a hook from lyra-video-hooks. Use for \"a UGC video\", \"UGC ad for my app\", \"a creator / influencer style ad\", \"talking head\", \"testimonial style\", \"storytime\", \"car vlog\", \"street interview\", \"a skit\", \"day in my life\", \"honest review\", or a Lyra UGC or Talking Head template. Core video rules come from lyra-video-ad-generation."
        },
        "name": "lyra-ugc-video",
        "plugin_release_skill_id": "pluginrsk_6ae869cc112c8191a1e54acf1e0790ec"
      },
      {
        "description": "App UI creatives in Lyra with every UI text kept exactly as in the user's screenshots - UI motion video ads (real app screens, buttons, cards, logo and icon in motion), store-style end cards with an install button, and App Store / Google Play screenshot sets with variants. Use for \"animate my app screens\", \"UI animation / motion design ad\", \"floating phone video\", \"show the app in the video\", \"end card with install button\", \"packshot like the App Store\", \"store screenshots\", \"screenshot set for Google Play\", or screenshots to bring to life. Core video rules come from lyra-video-ad-generation.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "lyra-ui-motion-video",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "cursor",
          "short_description": "App UI creatives in Lyra with every UI text kept exactly as in the user's screenshots - UI motion video ads (real app screens, buttons, cards, logo and icon in motion), store-style end cards with an install button, and App Store / Google Play screenshot sets with variants. Use for \"animate my app screens\", \"UI animation / motion design ad\", \"floating phone video\", \"show the app in the video\", \"end card with install button\", \"packshot like the App Store\", \"store screenshots\", \"screenshot set for Google Play\", or screenshots to bring to life. Core video rules come from lyra-video-ad-generation."
        },
        "name": "lyra-ui-motion-video",
        "plugin_release_skill_id": "pluginrsk_6ae869cdd12881919e763c7ab526c904"
      },
      {
        "description": "Base skill for video ads in Lyra. Builds a mobile app video ad end to end (brief, script, scenes, keyframes, clips, voiceover, music, Video Editor assembly) with scene consistency, de-slop and error handling. Use for \"a 15-second video ad for my app\", \"a 30 s / 1 min ad\", \"a sequence of scenes\", \"stitch these clips\", or a script or storyboard to produce. Holds the core video rules the smaller lyra video skills point to.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "lyra-video-ad-generation",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "bolt",
          "short_description": "Base skill for video ads in Lyra. Builds a mobile app video ad end to end (brief, script, scenes, keyframes, clips, voiceover, music, Video Editor assembly) with scene consistency, de-slop and error handling. Use for \"a 15-second video ad for my app\", \"a 30 s / 1 min ad\", \"a sequence of scenes\", \"stitch these clips\", or a script or storyboard to produce. Holds the core video rules the smaller lyra video skills point to."
        },
        "name": "lyra-video-ad-generation",
        "plugin_release_skill_id": "pluginrsk_6ae869c867e88191aec8c423d46e8b93"
      },
      {
        "description": "Lyra Video Editor: assembly, mix, end card, text, captions (asked first, size 80, 75% height), pacing, keywords, SFX, render check, and 59/30/15 s cutdowns. The assembly stage of every Lyra video skill.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "lyra-video-editor",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "code",
          "short_description": "Lyra Video Editor: assembly, mix, end card, text, captions (asked first, size 80, 75% height), pacing, keywords, SFX, render check, and 59/30/15 s cutdowns. The assembly stage of every Lyra video skill."
        },
        "name": "lyra-video-editor",
        "plugin_release_skill_id": "pluginrsk_6ae869c8bea48191b72d73fba3119d00"
      },
      {
        "description": "Hooks for mobile app video ads in Lyra, built from the Brand Kit and the audience's real pains, then turned into finished videos for an A/B test. Use for \"hooks for my app\", \"4 hook variants\", \"write hooks / a hook bank\", \"a visual hook\", \"a catchy / brainrot hook\", \"hook multiplier\", \"test new openings on this ad\", \"the hook is weak / hook rate dropped\", \"a stronger first 3 seconds\", or a Lyra Hook template. Core video rules come from lyra-video-ad-generation.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "lyra-video-hooks",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "bolt",
          "short_description": "Hooks for mobile app video ads in Lyra, built from the Brand Kit and the audience's real pains, then turned into finished videos for an A/B test. Use for \"hooks for my app\", \"4 hook variants\", \"write hooks / a hook bank\", \"a visual hook\", \"a catchy / brainrot hook\", \"hook multiplier\", \"test new openings on this ad\", \"the hook is weak / hook rate dropped\", \"a stronger first 3 seconds\", or a Lyra Hook template. Core video rules come from lyra-video-ad-generation."
        },
        "name": "lyra-video-hooks",
        "plugin_release_skill_id": "pluginrsk_6ae869ca4b78819199a70d827a0789d9"
      },
      {
        "description": "Canvas layout for every Lyra workflow Claude builds or changes, in the house style of Lyra's templates - nodes grouped into sections in run order (a Section is a frame node), a small STEP sticky note above every section that says what happens there and what the user can change, the creative team's color code (lime the idea and script, pink the user's own app assets, violet generation, rose the result), a clear reading path (the idea on the left, the steps stacked in columns, the Video Editor on the right), clear node labels, no stray or empty nodes, and a final check. Use whenever a Lyra skill creates or edits a workflow (video, UGC, hooks, short drama, UI motion, statics, carousels, competitor copies, variations, concept multiplier, resize, translation, brand kit starter), and for \"make the workflow clear\", \"tidy up the canvas\", \"sign the sections\", \"add notes for the user\", \"the canvas is confusing\", \"lay it out like the templates\".",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "lyra-workflow-layout",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "hierarchy",
          "short_description": "Canvas layout for every Lyra workflow Claude builds or changes, in the house style of Lyra's templates - nodes grouped into sections in run order (a Section is a frame node), a small STEP sticky note above every section that says what happens there and what the user can change, the creative team's color code (lime the idea and script, pink the user's own app assets, violet generation, rose the result), a clear reading path (the idea on the left, the steps stacked in columns, the Video Editor on the right), clear node labels, no stray or empty nodes, and a final check. Use whenever a Lyra skill creates or edits a workflow (video, UGC, hooks, short drama, UI motion, statics, carousels, competitor copies, variations, concept multiplier, resize, translation, brand kit starter), and for \"make the workflow clear\", \"tidy up the canvas\", \"sign the sections\", \"add notes for the user\", \"the canvas is confusing\", \"lay it out like the templates\"."
        },
        "name": "lyra-workflow-layout",
        "plugin_release_skill_id": "pluginrsk_6ae869c9f5b48191a94676aec94d1c9b"
      },
      {
        "description": "Review any Lyra workflow and explain it in plain words - what it makes and in which order it runs, section by section - then find what is wrong (broken connections, invalid nodes, empty nodes, nodes with no result, dead ends, settings that don't match), price a full rerun and each part of it, and, if the user wants, fix the problems and tidy the canvas by lyra-workflow-layout. Read-only by default - in a workflow Claude did not build in this chat, nothing is deleted, moved or changed without the user's yes. Use for \"review my workflow\", \"explain this workflow\", \"what does this workflow do\", \"why doesn't it run\", \"check my canvas\", \"is anything broken here\", \"how much to rerun it\", \"how much does this template cost\", \"audit this workflow\", or a Lyra workflow link with a question about it.",
        "interface": {
          "brand_color": null,
          "default_prompt": null,
          "display_name": "lyra-workflow-review",
          "icon_large_url": null,
          "icon_small_url": null,
          "iconography": "search",
          "short_description": "Review any Lyra workflow and explain it in plain words - what it makes and in which order it runs, section by section - then find what is wrong (broken connections, invalid nodes, empty nodes, nodes with no result, dead ends, settings that don't match), price a full rerun and each part of it, and, if the user wants, fix the problems and tidy the canvas by lyra-workflow-layout. Read-only by default - in a workflow Claude did not build in this chat, nothing is deleted, moved or changed without the user's yes. Use for \"review my workflow\", \"explain this workflow\", \"what does this workflow do\", \"why doesn't it run\", \"check my canvas\", \"is anything broken here\", \"how much to rerun it\", \"how much does this template cost\", \"audit this workflow\", or a Lyra workflow link with a question about it."
        },
        "name": "lyra-workflow-review",
        "plugin_release_skill_id": "pluginrsk_6ae869ca14648191a59b6981c4fa4b5b"
      }
    ],
    "version": "0.5.1"
  },
  "scope": "GLOBAL",
  "share_url": "https://chatgpt.com/plugins/plugin_asdk_app_6adf1d066ee48191a687af733ab287a3?open_in_app",
  "status": "ENABLED"
}

SHA-256 of public snapshot: 1ee7afbda55a4285dd453b9f6904d24b1c64f2a7808d20dc3f9c7d636a8573a1