[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M714E2QPMKVJJS7QTG1WN4FW":3,"skill-same:01M714E2QPMKVJJS7QTG1WN4FW":84},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":34,"publishedAt":55,"linkOnly":56,"markdownContent":57,"markdownBody":58,"frontMatter":59,"refName":60,"commitSha":61,"skillDirectory":62,"forksCount":63,"repositoryHtmlUrl":64,"repositoryHomepageUrl":65,"ownerHtmlUrl":66,"ownerBlogUrl":67,"ownerDescription":68,"updatedAt":69,"install":70,"resources":83},"01M714E2QPMKVJJS7QTG1WN4FW","admakeai-api",null,"Design, edit, and ship ad creative with AdMakeAI — finished ad designs, edits, batch ad sets, ad copy, UGC video ads, competitor ad research, Meta campaign drafts and Meta Ads reporting. Use it when a request is about making, publishing, researching, or reporting on ads. Default to read and list calls; confirm every write or credit-spending action with the user. Trigger words: create, generate, make, design, produce, brainstorm, batch, vary, mock up, upload, publish, push, ship, draft, list, browse, find, get, fetch, look up, audit, or recap ads, ad creatives, product photos, lifestyle shots, UGC, ad copy, hooks, headlines, ad sets, campaigns, competitor ads, competitor research, Meta ads, Facebook ads, or ad analytics. Also use when the user mentions AdMakeAI, admakeai, or wants to know their AdMakeAI credit balance.","hashgraph-online\u002Fawesome-codex-plugins","hashgraph-online","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F160371962?v=4","01M6CNB6NRJVNNGN14TR01Q6D3","HOL (Hashgraph Online)","01M6JT1HSKKG9V68KQAQGBA7XP",1559,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fmesmerlord\u002Fadmakeai-claude-plugin\u002Fskills\u002Fadmakeai-api\u002FSKILL.md",[18,23,26,29],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":30,"categoryName":31,"taxonomyType":32,"taxonomyTypeDesc":33},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54],"admakeai api","api","recap","ad research","when","get","default","hooks","campaign","up","fetch","design","brainstorm","ugc video","ad creative","Video","Meta","publish","batch","create","2026-11-10 10:12:30",false,"---\nname: admakeai-api\ndescription: >-\n  Design, edit, and ship ad creative with AdMakeAI — finished ad designs,\n  edits, batch ad sets, ad copy, UGC video ads, competitor ad research, Meta\n  campaign drafts and Meta Ads reporting. Use it when a request is about\n  making, publishing, researching, or reporting on ads. Default to read and\n  list calls; confirm every write or credit-spending action with the user.\n  Trigger words: create, generate, make, design, produce, brainstorm, batch,\n  vary, mock up, upload, publish, push, ship, draft, list, browse, find, get,\n  fetch, look up, audit, or recap ads, ad creatives, product photos,\n  lifestyle shots, UGC, ad copy, hooks, headlines, ad sets, campaigns,\n  competitor ads, competitor research, Meta ads, Facebook ads, or ad\n  analytics. Also use when the user mentions AdMakeAI, admakeai, or wants to\n  know their AdMakeAI credit balance.\n---\n\n# AdMakeAI\n\nAd-creative design, competitor ad research, Meta campaign drafting, and Meta Ads reporting through the **AdMakeAI connector** (`https:\u002F\u002Fadmakeai.com\u002Fapi\u002Fmcp`). The user signs in to their AdMakeAI account through OAuth when they connect it; never ask them for an API key or password.\n\nIf AdMakeAI tools aren't available, or a call fails with an authorization error, ask the user to connect (or reconnect) the AdMakeAI connector. They need an AdMakeAI account at https:\u002F\u002Fadmakeai.com.\n\nTool names below are the connector's tool names, e.g. `adGeneration__create`.\n\n## The one thing to get right: projects\n\nEvery ad design is scoped to a **project** — the brand record holding the product summary, audience, value proposition and logo. `adGeneration__create` expands your short brief into a full design prompt using that brief, which is why ads come back looking like ads (headline, badge, CTA baked in) instead of stock photos.\n\nSo `projectId` is required on `adGeneration__create`, and the rule is always the same:\n\n1. Call `adResearch__listProjects` before the first design of a session.\n2. One project? Use it. Several? Pick the one the user's request is clearly about (brand name, product, URL they mentioned) and say which one you picked. Still ambiguous? **Ask.** Never guess an id and never design into the wrong brand — that spends their credits on the wrong product.\n3. No projects at all? It's a new account. Ask the user for their brand's website (never guess it), call `project__createFirst` with it (free, about 10-15 seconds: it reads the site and fills in the brand brief and logo), then carry on with what they asked. It only works while the account has no projects; later brands are set up at https:\u002F\u002Fadmakeai.com\u002Fdashboard.\n\n`adResearch__getProject` gives you the full brief; read it when the user's request depends on brand details (audience, positioning, what they actually sell).\n\n`adGeneration__generateImage` and `videoGeneration__start` also take a `projectId` — for `generateImage` it is credit scoping only, nothing from the brief reaches the prompt.\n\n## Intent routing\n\nPick the right tool from natural-language intent. **Read tables top-to-bottom; first match wins.**\n\n### Account & credits\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"what's my balance \u002F credits\" | `user__getCredits` | Cheapest read. Returns `{ credits }`. |\n| \"show my profile \u002F plan\" | `user__me` | Includes credits, subscription, plan name. |\n\n### Design ad creatives\n\nTwo renderers, same credit cost, very different output. Choose deliberately:\n\n| Tool | What it renders |\n| --- | --- |\n| `adGeneration__create` | **A finished ad design.** A creative-director model rewrites your brief into the real design prompt using the project's brand brief, and that rewrite always adds a headline, a subline, a CTA button, and the project logo when the project has one. Negative instructions in the prompt (\"no text\", \"no logo\", \"nothing but the product\") **cannot** suppress them. |\n| `adGeneration__generateImage` | **Exactly your prompt.** It goes to the image model verbatim — no creative-director rewrite, no brand brief, no added headline\u002Fsubline\u002FCTA, no logo. The image contains only what the prompt stipulates. |\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"make \u002F create \u002F design an ad\", \"design a product ad\" | `adGeneration__create` | Single design. Required: `projectId`, `prompt` (a brief, not a finished prompt). Optional: `adType`, `aspectRatio`, `quality`, `referenceImageUrls`, `inputImageId` (uploaded photo), `referenceAdId` \u002F `referenceInspirationId` to remix. |\n| \"no text on it\", \"just the product\", \"a clean product \u002F lifestyle photo\", \"put exactly this headline on it\" | `adGeneration__generateImage` | Required: `projectId` (credit scoping only), `prompt` (used verbatim — write the full prompt yourself). Optional: `aspectRatio`, `quality`, `referenceImageUrls`, `inputImageId`. |\n| \"edit \u002F change \u002F restyle this ad\", \"swap the background\", \"make it 9:16\" | `adGeneration__edit` | Source is `sourceAdId` (one of their ads) or `sourceImageUrl` (any URL). `editInstructions` reaches the model close to literally. |\n| \"remix this competitor ad\" | `adGeneration__create` with `referenceInspirationId` | Save the competitor ad first with `adResearch__saveInspiration`. |\n| \"give me 5 variations\", \"batch\", \"test different hooks\" | `adSet__create` then `adSet__generateBatch` | The set holds the shared brief; the batch call holds the per-variation direction. `adSet__suggestDirections` will invent the angles for you. |\n| \"use my product photo \u002F logo as reference\" | `upload__uploadImageBase64` → pass the returned id as `inputImageId` | Accepts JPEG\u002FPNG\u002FWebP base64. Already uploaded? `upload__getUserImages`. Brand assets already in the project? `project__getAssets`. |\n\nDesigns render in the background. After queueing one, **tell the user** it takes a minute and offer to check on it.\n\n### Ad copy\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"write copy \u002F headlines \u002F hooks for this ad\" | `adCopyGeneration__generate` | Needs the finished `imageUrl`. Pass `projectId` so it uses the brand brief. Returns up to 5 variations with hook angles. |\n| \"what copy styles are there\" | `adCopyGeneration__getMessagingStyles` | clickbait \u002F professional \u002F UGC \u002F direct response \u002F storytelling \u002F ... |\n\n### Video ads\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"make a UGC video ad\", \"video version of this\" | `videoGeneration__start` | Needs `projectId` and an active subscription. Costs 5 \u002F 15 \u002F 50 credits for low \u002F medium \u002F high. |\n| \"is my video done\" | `videoGeneration__getStatus` | Poll until COMPLETED. Videos take minutes, not seconds. |\n| \"show my videos\" | `videoGeneration__list` \u002F `videoGeneration__listPending` | |\n\n### Competitor research\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"what ads is \u003Cbrand> running\" | `adResearch__searchCompanies` then `adResearch__getCompanyAds` | Live Meta Ad Library. Works for any advertiser, no project needed. |\n| \"add \u003Cbrand> as a competitor\" | `adResearch__addCompetitors` | Scrapes their ads into the project. |\n| \"show competitor ads for my project\" | `adResearch__getScrapedAds` | Sort by `longest_running` to find their proven winners. |\n| \"what have we got on competitor X\" | `adResearch__getCompetitorPreview` | Quick preview of the ads already scraped for one competitor. |\n| \"details of that competitor ad\" | `adResearch__getAdDetails` | Needs `projectId` + `scrapedAdId`. |\n| \"save that one for inspiration\" | `adResearch__saveInspiration` | Returns an inspiration ID for `adGeneration__create`. |\n| \"what have we saved as inspiration\" | `adResearch__getSavedInspirations` | Lists saved ads with their inspiration IDs. |\n| \"re-scrape \u002F refresh competitor ads\" | `adResearch__scrapeCompetitor` | Async; poll `adResearch__pollStatus`. |\n\n### Find existing ads\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"show my recent ads\" | `adGeneration__getRecent` | Default 12. Returns image URLs + prompts. |\n| \"list \u002F browse \u002F paginate my ads\" | `adGeneration__list` | Cursor-paginated. |\n| \"search my ads for X\" | `adGeneration__searchAll` | Full-text on prompts. |\n| \"what's still rendering\" | `adGeneration__listPending` | Only PENDING status. |\n| \"show the details of ad \u003Cid>\" | `adGeneration__getById` | Returns the full record. |\n| \"star \u002F favorite that one\", \"this is the winner\" | `adGeneration__toggleFavorite` | Free toggle. Good way to mark the pick of a batch. |\n\n### Ad sets\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"list my ad sets\" | `adSet__list` | Page-paginated. |\n| \"show ad set \u003Cid>\" | `adSet__get` | Includes `generalInstructions`. |\n| \"what's in this ad set\" | `adSet__getGenerations` | Ads in that set. |\n| \"create an ad set\" | `adSet__create` | Free. Holds project + shared brief + ad type + quality + aspect ratio. |\n| \"change the brief \u002F quality of the set\" | `adSet__update` | Overwrites the set's settings. |\n| \"generate a batch in ad set X\" | `adSet__generateBatch` | See the design table. |\n| \"what angles should we test\" | `adSet__suggestDirections` | Free. Model-written creative directions to feed back in as per-variation instructions. |\n\n### Projects\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"list my projects\" | `adResearch__listProjects` | One entry per brand\u002Fproduct. Start here, every session. |\n| \"set up my brand\" (no projects yet) | `project__createFirst` | Free. From the brand's website; ask for the URL. Only the account's first project. |\n| \"set up another brand \u002F project\" | *(none)* | Not available through the connector. Point the user at https:\u002F\u002Fadmakeai.com\u002Fdashboard. |\n| \"show the brand brief\" | `adResearch__getProject` | Brief + competitors + research jobs + ad counts. |\n| \"fix \u002F update the brief, audience, industry\" | `project__updateBrief` | Overwrites the brief fields you pass. A sharper brief improves every later design. |\n| \"what product photos do we have\" | `project__getAssets` | Asset URLs usable as `referenceImageUrls`. |\n| \"upload this photo\" | `upload__uploadImageBase64` | Returns an image ID + public URL for designs or campaign drafts. |\n| \"what have I uploaded before\" | `upload__getUserImages` | Newest first, paginated. |\n| \"is the research done\" | `adResearch__pollStatus` | Pipeline stage + running scrape jobs. |\n\n### Facebook ad accounts\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"show my connected fb accounts\" | `facebookConnection__list` | Returns ad accounts + Pages with cached identity. |\n| \"list campaigns\" | `facebookUpload__getCampaigns` | Needs `connectionId` + `adAccountId`. Cold cache triggers a Meta refresh. |\n| \"list ad sets in campaign X\" | `facebookUpload__getAdSets` | Needs `connectionId` + `campaignId`. |\n\n### Upload ads to Meta\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"preflight \u002F validate this for fb\" | `facebookUpload__runPreflight` | Checks image dims, copy length. Free, no live action. |\n| \"upload \u002F publish \u002F push this ad to meta\" | `facebookUpload__request` | **Live action — creates a real ad on Meta. Costs 3 credits.** Always confirm with the user first. |\n| \"show my uploaded ads\" | `facebookUpload__list` | Filterable by account + state. |\n| \"status of upload \u003Cid>\" | `facebookUpload__get` | Returns Meta IDs + state. |\n\n### Meta campaign drafts\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"what creatives can we reuse from past uploads\" | `facebookCampaignDraft__sourceAssets` | Read-only. Resolves previously-uploaded Meta ads into reusable creative assets for a draft. |\n| \"show me the draft before we push it\" | `facebookCampaignDraft__getAgentDraft` | Read-only. Fetch a saved draft by draft ID. |\n| \"push that draft to meta\" | `facebookCampaignDraft__pushAgentDraft` | **Live action.** Pushes a saved draft to Meta as draft campaigns \u002F ad sets \u002F ads. Confirm first. |\n| \"build a whole campaign from these images\" | `facebookCampaignDraft__pushDraftCampaign` | **Live action.** Creates Meta draft campaigns \u002F ad sets \u002F ads from explicit campaign data, ad sets, ad copy and image URLs. Confirm first. |\n\nBoth push tools create real objects inside the user's Meta ad account. They land as drafts rather than live ads, but they are still writes to Meta — read the plan back to the user and get an explicit yes before calling.\n\n### Meta analytics\n\nAll read-only and free.\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"how did the account do last month\", \"total spend \u002F ROAS\" | `zernioAnalytics__accountOverview` | Account-level spend, impressions, clicks, CTR, CPC, conversions, ROAS for a range like `last_30_days`, with previous-period comparison. Best first call. |\n| \"campaign tree\", \"what's the structure\" | `zernioAnalytics__tree` | Campaign → ad set → ad hierarchy. |\n| \"performance over time\", \"timeline\" | `zernioAnalytics__timeline` | Time-series for an ad account. |\n| \"list \u002F recap campaigns\" | `zernioAnalytics__listCampaigns` | Includes rolled-up metrics. |\n| \"list ads in campaign X\" | `zernioAnalytics__listAds` | Filterable by campaign \u002F ad set. |\n| \"details of ad \u003Cid>\" | `zernioAnalytics__getAd` | Metadata + creative. |\n| \"daily analytics for ad \u003Cid>\" | `zernioAnalytics__getAdAnalytics` | Spend, CTR, CPC, conversions. |\n| \"what are people saying about this ad\" | `zernioAnalytics__getAdComments` | Public comments on the boosted post behind a Meta ad (Facebook or Instagram placement). |\n\n## Credit costs\n\nDesign tools and Meta uploads spend credits from the user's plan. Every read (list \u002F get \u002F analytics) is free.\n\n| Tool | Cost |\n| --- | --- |\n| `adGeneration__create`, `adGeneration__generateImage`, `adGeneration__edit` | 2 (low) \u002F 8 (high) \u002F 20 (ultra) credits |\n| `adSet__generateBatch` | `count × per-design cost`. A batch of 10 high-quality designs = 80 credits. |\n| `videoGeneration__start` | 5 (low) \u002F 15 (medium) \u002F 50 (high) credits per video |\n| `facebookUpload__request` | 3 credits per upload (`facebookUpload__runPreflight` is free) |\n| `adCopyGeneration__generate`, `adSet__create` \u002F `__update` \u002F `__suggestDirections`, `adGeneration__toggleFavorite`, `project__*`, `upload__*`, `adResearch__*` | Free |\n\nFailed designs are refunded automatically.\n\n**Always call `user__getCredits` before a batch of more than 10 designs** and warn the user if the balance is close.\n\n## Pagination\n\nList tools use one of three patterns:\n\n| Pattern | Used by | How to advance |\n| --- | --- | --- |\n| `{ page, perPage }` | `adSet__list`, `adSet__getGenerations`, `videoGeneration__list`, `zernioAnalytics__listAds`, `zernioAnalytics__listCampaigns` | Increment `page`. |\n| `{ limit, cursor }` | `adGeneration__list`, `adGeneration__searchAll`, `adResearch__listProjects`, `upload__getUserImages` | Pass the `nextCursor` from the previous response. |\n| `{ limit, offset }` | `adResearch__getScrapedAds`, `adResearch__getSavedInspirations` | Increment `offset` by `limit`. |\n\nStop paginating when you have what the user asked for.\n\n## Common optional params\n\nThese appear on multiple tools and mean the same thing everywhere:\n\n- `projectId`: the brand to design for. Required on `adGeneration__create`, `adGeneration__generateImage`, `adSet__create`, `videoGeneration__start`.\n- `aspectRatio`: `\"1:1\" | \"4:5\" | \"9:16\" | \"16:9\"`. Defaults to `\"1:1\"`. Use `\"4:5\"` for Instagram feed, `\"9:16\"` for Reels\u002FStories, `\"16:9\"` for YouTube\u002Fdesktop.\n- `quality`: `\"low\" | \"high\" | \"ultra\"`. Defaults to `\"low\"`. Use `\"low\"` while exploring angles, `\"high\"` for the one they'll actually run.\n- `adType`: `\"product_showcase\" | \"promotional\" | \"testimonial\" | \"lifestyle\" | \"comparison\" | \"announcement\"`. Defaults to `\"product_showcase\"`. Only meaningful on `adGeneration__create` and `adSet__create`.\n- `inputImageId`: ID of an uploaded product photo (from `upload__uploadImageBase64`) to use as a reference.\n\n## Brief patterns for `adGeneration__create`\n\n`prompt` is a **creative brief, not a finished prompt** — the renderer expands it with the project's brand brief, then lays on headline, badge and CTA. Describe the scene and the angle; don't hand-write the whole prompt.\n\nGood briefs are concrete and visual. Bad ones are abstract or list-y.\n\n| User intent | Good brief template |\n| --- | --- |\n| Product on lifestyle background | `\"\u003CProduct> placed on \u003Csurface> with \u003Cprop>, soft natural light, \u003Cstyle> aesthetic\"` |\n| Selfie-style UGC | `\"First-person selfie of a \u003Cdemo> holding \u003Cproduct>, casual \u003Csetting>, iPhone photo aesthetic\"` |\n| Before\u002Fafter | `\"Split-screen: left side \u003Cbefore state>, right side \u003Cafter state with product>, clean comparison\"` |\n| Bold statement | `\"\u003CProduct> on \u003Cbg color>, oversized typography reading '\u003Cheadline>', minimalist composition\"` |\n\nIf the user gives only a tagline (\"matcha for tired founders\") and no visual, **ask them one clarifying question** about setting\u002Fmood before designing.\n\nFor `adGeneration__generateImage` the opposite applies: you are writing the final prompt, so be fully specific about subject, lighting, lens, background and any on-image text — nothing is added for you.\n\n## Known limitations\n\n- Designs are **async**. `adGeneration__create` returns immediately with `{ id, status: \"PENDING\", creditCost, ... }`. Poll `adGeneration__getById` every few seconds until `status === \"COMPLETED\"`. Typical completion: 20-60s low quality, 60-120s high quality. The record's `prompt` field stays empty until the brief has been expanded.\n- The connector creates only an account's first project (`project__createFirst`). Further projects are made in the dashboard, so an existing brand is never duplicated by mistake.\n- **Pausing, resuming, or launching Meta ads isn't available.** Tell the user to change ad status in Meta Ads Manager.\n- The free plan has a **daily design cap**. The error says `Daily generation limit reached`. Tell the user to upgrade at https:\u002F\u002Fadmakeai.com\u002Fpricing.\n- Facebook tools need a **paid AdMakeAI plan** (free accounts get `FORBIDDEN: The Facebook Ads integration is available on paid plans`) and a **connected Facebook account**. If `facebookConnection__list` returns empty, point them to https:\u002F\u002Fadmakeai.com\u002Fdashboard\u002Fintegrations\u002Ffacebook.\n- Nothing is ever **deleted** through the connector — not AdMakeAI ads or ad sets, and not Meta resources. If the user asks to delete something, tell them to do it in the AdMakeAI web app or Meta Ads Manager.\n","# AdMakeAI\n\nAd-creative design, competitor ad research, Meta campaign drafting, and Meta Ads reporting through the **AdMakeAI connector** (`https:\u002F\u002Fadmakeai.com\u002Fapi\u002Fmcp`). The user signs in to their AdMakeAI account through OAuth when they connect it; never ask them for an API key or password.\n\nIf AdMakeAI tools aren't available, or a call fails with an authorization error, ask the user to connect (or reconnect) the AdMakeAI connector. They need an AdMakeAI account at https:\u002F\u002Fadmakeai.com.\n\nTool names below are the connector's tool names, e.g. `adGeneration__create`.\n\n## The one thing to get right: projects\n\nEvery ad design is scoped to a **project** — the brand record holding the product summary, audience, value proposition and logo. `adGeneration__create` expands your short brief into a full design prompt using that brief, which is why ads come back looking like ads (headline, badge, CTA baked in) instead of stock photos.\n\nSo `projectId` is required on `adGeneration__create`, and the rule is always the same:\n\n1. Call `adResearch__listProjects` before the first design of a session.\n2. One project? Use it. Several? Pick the one the user's request is clearly about (brand name, product, URL they mentioned) and say which one you picked. Still ambiguous? **Ask.** Never guess an id and never design into the wrong brand — that spends their credits on the wrong product.\n3. No projects at all? It's a new account. Ask the user for their brand's website (never guess it), call `project__createFirst` with it (free, about 10-15 seconds: it reads the site and fills in the brand brief and logo), then carry on with what they asked. It only works while the account has no projects; later brands are set up at https:\u002F\u002Fadmakeai.com\u002Fdashboard.\n\n`adResearch__getProject` gives you the full brief; read it when the user's request depends on brand details (audience, positioning, what they actually sell).\n\n`adGeneration__generateImage` and `videoGeneration__start` also take a `projectId` — for `generateImage` it is credit scoping only, nothing from the brief reaches the prompt.\n\n## Intent routing\n\nPick the right tool from natural-language intent. **Read tables top-to-bottom; first match wins.**\n\n### Account & credits\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"what's my balance \u002F credits\" | `user__getCredits` | Cheapest read. Returns `{ credits }`. |\n| \"show my profile \u002F plan\" | `user__me` | Includes credits, subscription, plan name. |\n\n### Design ad creatives\n\nTwo renderers, same credit cost, very different output. Choose deliberately:\n\n| Tool | What it renders |\n| --- | --- |\n| `adGeneration__create` | **A finished ad design.** A creative-director model rewrites your brief into the real design prompt using the project's brand brief, and that rewrite always adds a headline, a subline, a CTA button, and the project logo when the project has one. Negative instructions in the prompt (\"no text\", \"no logo\", \"nothing but the product\") **cannot** suppress them. |\n| `adGeneration__generateImage` | **Exactly your prompt.** It goes to the image model verbatim — no creative-director rewrite, no brand brief, no added headline\u002Fsubline\u002FCTA, no logo. The image contains only what the prompt stipulates. |\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"make \u002F create \u002F design an ad\", \"design a product ad\" | `adGeneration__create` | Single design. Required: `projectId`, `prompt` (a brief, not a finished prompt). Optional: `adType`, `aspectRatio`, `quality`, `referenceImageUrls`, `inputImageId` (uploaded photo), `referenceAdId` \u002F `referenceInspirationId` to remix. |\n| \"no text on it\", \"just the product\", \"a clean product \u002F lifestyle photo\", \"put exactly this headline on it\" | `adGeneration__generateImage` | Required: `projectId` (credit scoping only), `prompt` (used verbatim — write the full prompt yourself). Optional: `aspectRatio`, `quality`, `referenceImageUrls`, `inputImageId`. |\n| \"edit \u002F change \u002F restyle this ad\", \"swap the background\", \"make it 9:16\" | `adGeneration__edit` | Source is `sourceAdId` (one of their ads) or `sourceImageUrl` (any URL). `editInstructions` reaches the model close to literally. |\n| \"remix this competitor ad\" | `adGeneration__create` with `referenceInspirationId` | Save the competitor ad first with `adResearch__saveInspiration`. |\n| \"give me 5 variations\", \"batch\", \"test different hooks\" | `adSet__create` then `adSet__generateBatch` | The set holds the shared brief; the batch call holds the per-variation direction. `adSet__suggestDirections` will invent the angles for you. |\n| \"use my product photo \u002F logo as reference\" | `upload__uploadImageBase64` → pass the returned id as `inputImageId` | Accepts JPEG\u002FPNG\u002FWebP base64. Already uploaded? `upload__getUserImages`. Brand assets already in the project? `project__getAssets`. |\n\nDesigns render in the background. After queueing one, **tell the user** it takes a minute and offer to check on it.\n\n### Ad copy\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"write copy \u002F headlines \u002F hooks for this ad\" | `adCopyGeneration__generate` | Needs the finished `imageUrl`. Pass `projectId` so it uses the brand brief. Returns up to 5 variations with hook angles. |\n| \"what copy styles are there\" | `adCopyGeneration__getMessagingStyles` | clickbait \u002F professional \u002F UGC \u002F direct response \u002F storytelling \u002F ... |\n\n### Video ads\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"make a UGC video ad\", \"video version of this\" | `videoGeneration__start` | Needs `projectId` and an active subscription. Costs 5 \u002F 15 \u002F 50 credits for low \u002F medium \u002F high. |\n| \"is my video done\" | `videoGeneration__getStatus` | Poll until COMPLETED. Videos take minutes, not seconds. |\n| \"show my videos\" | `videoGeneration__list` \u002F `videoGeneration__listPending` | |\n\n### Competitor research\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"what ads is \u003Cbrand> running\" | `adResearch__searchCompanies` then `adResearch__getCompanyAds` | Live Meta Ad Library. Works for any advertiser, no project needed. |\n| \"add \u003Cbrand> as a competitor\" | `adResearch__addCompetitors` | Scrapes their ads into the project. |\n| \"show competitor ads for my project\" | `adResearch__getScrapedAds` | Sort by `longest_running` to find their proven winners. |\n| \"what have we got on competitor X\" | `adResearch__getCompetitorPreview` | Quick preview of the ads already scraped for one competitor. |\n| \"details of that competitor ad\" | `adResearch__getAdDetails` | Needs `projectId` + `scrapedAdId`. |\n| \"save that one for inspiration\" | `adResearch__saveInspiration` | Returns an inspiration ID for `adGeneration__create`. |\n| \"what have we saved as inspiration\" | `adResearch__getSavedInspirations` | Lists saved ads with their inspiration IDs. |\n| \"re-scrape \u002F refresh competitor ads\" | `adResearch__scrapeCompetitor` | Async; poll `adResearch__pollStatus`. |\n\n### Find existing ads\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"show my recent ads\" | `adGeneration__getRecent` | Default 12. Returns image URLs + prompts. |\n| \"list \u002F browse \u002F paginate my ads\" | `adGeneration__list` | Cursor-paginated. |\n| \"search my ads for X\" | `adGeneration__searchAll` | Full-text on prompts. |\n| \"what's still rendering\" | `adGeneration__listPending` | Only PENDING status. |\n| \"show the details of ad \u003Cid>\" | `adGeneration__getById` | Returns the full record. |\n| \"star \u002F favorite that one\", \"this is the winner\" | `adGeneration__toggleFavorite` | Free toggle. Good way to mark the pick of a batch. |\n\n### Ad sets\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"list my ad sets\" | `adSet__list` | Page-paginated. |\n| \"show ad set \u003Cid>\" | `adSet__get` | Includes `generalInstructions`. |\n| \"what's in this ad set\" | `adSet__getGenerations` | Ads in that set. |\n| \"create an ad set\" | `adSet__create` | Free. Holds project + shared brief + ad type + quality + aspect ratio. |\n| \"change the brief \u002F quality of the set\" | `adSet__update` | Overwrites the set's settings. |\n| \"generate a batch in ad set X\" | `adSet__generateBatch` | See the design table. |\n| \"what angles should we test\" | `adSet__suggestDirections` | Free. Model-written creative directions to feed back in as per-variation instructions. |\n\n### Projects\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"list my projects\" | `adResearch__listProjects` | One entry per brand\u002Fproduct. Start here, every session. |\n| \"set up my brand\" (no projects yet) | `project__createFirst` | Free. From the brand's website; ask for the URL. Only the account's first project. |\n| \"set up another brand \u002F project\" | *(none)* | Not available through the connector. Point the user at https:\u002F\u002Fadmakeai.com\u002Fdashboard. |\n| \"show the brand brief\" | `adResearch__getProject` | Brief + competitors + research jobs + ad counts. |\n| \"fix \u002F update the brief, audience, industry\" | `project__updateBrief` | Overwrites the brief fields you pass. A sharper brief improves every later design. |\n| \"what product photos do we have\" | `project__getAssets` | Asset URLs usable as `referenceImageUrls`. |\n| \"upload this photo\" | `upload__uploadImageBase64` | Returns an image ID + public URL for designs or campaign drafts. |\n| \"what have I uploaded before\" | `upload__getUserImages` | Newest first, paginated. |\n| \"is the research done\" | `adResearch__pollStatus` | Pipeline stage + running scrape jobs. |\n\n### Facebook ad accounts\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"show my connected fb accounts\" | `facebookConnection__list` | Returns ad accounts + Pages with cached identity. |\n| \"list campaigns\" | `facebookUpload__getCampaigns` | Needs `connectionId` + `adAccountId`. Cold cache triggers a Meta refresh. |\n| \"list ad sets in campaign X\" | `facebookUpload__getAdSets` | Needs `connectionId` + `campaignId`. |\n\n### Upload ads to Meta\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"preflight \u002F validate this for fb\" | `facebookUpload__runPreflight` | Checks image dims, copy length. Free, no live action. |\n| \"upload \u002F publish \u002F push this ad to meta\" | `facebookUpload__request` | **Live action — creates a real ad on Meta. Costs 3 credits.** Always confirm with the user first. |\n| \"show my uploaded ads\" | `facebookUpload__list` | Filterable by account + state. |\n| \"status of upload \u003Cid>\" | `facebookUpload__get` | Returns Meta IDs + state. |\n\n### Meta campaign drafts\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"what creatives can we reuse from past uploads\" | `facebookCampaignDraft__sourceAssets` | Read-only. Resolves previously-uploaded Meta ads into reusable creative assets for a draft. |\n| \"show me the draft before we push it\" | `facebookCampaignDraft__getAgentDraft` | Read-only. Fetch a saved draft by draft ID. |\n| \"push that draft to meta\" | `facebookCampaignDraft__pushAgentDraft` | **Live action.** Pushes a saved draft to Meta as draft campaigns \u002F ad sets \u002F ads. Confirm first. |\n| \"build a whole campaign from these images\" | `facebookCampaignDraft__pushDraftCampaign` | **Live action.** Creates Meta draft campaigns \u002F ad sets \u002F ads from explicit campaign data, ad sets, ad copy and image URLs. Confirm first. |\n\nBoth push tools create real objects inside the user's Meta ad account. They land as drafts rather than live ads, but they are still writes to Meta — read the plan back to the user and get an explicit yes before calling.\n\n### Meta analytics\n\nAll read-only and free.\n\n| User says... | Tool | Notes |\n| --- | --- | --- |\n| \"how did the account do last month\", \"total spend \u002F ROAS\" | `zernioAnalytics__accountOverview` | Account-level spend, impressions, clicks, CTR, CPC, conversions, ROAS for a range like `last_30_days`, with previous-period comparison. Best first call. |\n| \"campaign tree\", \"what's the structure\" | `zernioAnalytics__tree` | Campaign → ad set → ad hierarchy. |\n| \"performance over time\", \"timeline\" | `zernioAnalytics__timeline` | Time-series for an ad account. |\n| \"list \u002F recap campaigns\" | `zernioAnalytics__listCampaigns` | Includes rolled-up metrics. |\n| \"list ads in campaign X\" | `zernioAnalytics__listAds` | Filterable by campaign \u002F ad set. |\n| \"details of ad \u003Cid>\" | `zernioAnalytics__getAd` | Metadata + creative. |\n| \"daily analytics for ad \u003Cid>\" | `zernioAnalytics__getAdAnalytics` | Spend, CTR, CPC, conversions. |\n| \"what are people saying about this ad\" | `zernioAnalytics__getAdComments` | Public comments on the boosted post behind a Meta ad (Facebook or Instagram placement). |\n\n## Credit costs\n\nDesign tools and Meta uploads spend credits from the user's plan. Every read (list \u002F get \u002F analytics) is free.\n\n| Tool | Cost |\n| --- | --- |\n| `adGeneration__create`, `adGeneration__generateImage`, `adGeneration__edit` | 2 (low) \u002F 8 (high) \u002F 20 (ultra) credits |\n| `adSet__generateBatch` | `count × per-design cost`. A batch of 10 high-quality designs = 80 credits. |\n| `videoGeneration__start` | 5 (low) \u002F 15 (medium) \u002F 50 (high) credits per video |\n| `facebookUpload__request` | 3 credits per upload (`facebookUpload__runPreflight` is free) |\n| `adCopyGeneration__generate`, `adSet__create` \u002F `__update` \u002F `__suggestDirections`, `adGeneration__toggleFavorite`, `project__*`, `upload__*`, `adResearch__*` | Free |\n\nFailed designs are refunded automatically.\n\n**Always call `user__getCredits` before a batch of more than 10 designs** and warn the user if the balance is close.\n\n## Pagination\n\nList tools use one of three patterns:\n\n| Pattern | Used by | How to advance |\n| --- | --- | --- |\n| `{ page, perPage }` | `adSet__list`, `adSet__getGenerations`, `videoGeneration__list`, `zernioAnalytics__listAds`, `zernioAnalytics__listCampaigns` | Increment `page`. |\n| `{ limit, cursor }` | `adGeneration__list`, `adGeneration__searchAll`, `adResearch__listProjects`, `upload__getUserImages` | Pass the `nextCursor` from the previous response. |\n| `{ limit, offset }` | `adResearch__getScrapedAds`, `adResearch__getSavedInspirations` | Increment `offset` by `limit`. |\n\nStop paginating when you have what the user asked for.\n\n## Common optional params\n\nThese appear on multiple tools and mean the same thing everywhere:\n\n- `projectId`: the brand to design for. Required on `adGeneration__create`, `adGeneration__generateImage`, `adSet__create`, `videoGeneration__start`.\n- `aspectRatio`: `\"1:1\" | \"4:5\" | \"9:16\" | \"16:9\"`. Defaults to `\"1:1\"`. Use `\"4:5\"` for Instagram feed, `\"9:16\"` for Reels\u002FStories, `\"16:9\"` for YouTube\u002Fdesktop.\n- `quality`: `\"low\" | \"high\" | \"ultra\"`. Defaults to `\"low\"`. Use `\"low\"` while exploring angles, `\"high\"` for the one they'll actually run.\n- `adType`: `\"product_showcase\" | \"promotional\" | \"testimonial\" | \"lifestyle\" | \"comparison\" | \"announcement\"`. Defaults to `\"product_showcase\"`. Only meaningful on `adGeneration__create` and `adSet__create`.\n- `inputImageId`: ID of an uploaded product photo (from `upload__uploadImageBase64`) to use as a reference.\n\n## Brief patterns for `adGeneration__create`\n\n`prompt` is a **creative brief, not a finished prompt** — the renderer expands it with the project's brand brief, then lays on headline, badge and CTA. Describe the scene and the angle; don't hand-write the whole prompt.\n\nGood briefs are concrete and visual. Bad ones are abstract or list-y.\n\n| User intent | Good brief template |\n| --- | --- |\n| Product on lifestyle background | `\"\u003CProduct> placed on \u003Csurface> with \u003Cprop>, soft natural light, \u003Cstyle> aesthetic\"` |\n| Selfie-style UGC | `\"First-person selfie of a \u003Cdemo> holding \u003Cproduct>, casual \u003Csetting>, iPhone photo aesthetic\"` |\n| Before\u002Fafter | `\"Split-screen: left side \u003Cbefore state>, right side \u003Cafter state with product>, clean comparison\"` |\n| Bold statement | `\"\u003CProduct> on \u003Cbg color>, oversized typography reading '\u003Cheadline>', minimalist composition\"` |\n\nIf the user gives only a tagline (\"matcha for tired founders\") and no visual, **ask them one clarifying question** about setting\u002Fmood before designing.\n\nFor `adGeneration__generateImage` the opposite applies: you are writing the final prompt, so be fully specific about subject, lighting, lens, background and any on-image text — nothing is added for you.\n\n## Known limitations\n\n- Designs are **async**. `adGeneration__create` returns immediately with `{ id, status: \"PENDING\", creditCost, ... }`. Poll `adGeneration__getById` every few seconds until `status === \"COMPLETED\"`. Typical completion: 20-60s low quality, 60-120s high quality. The record's `prompt` field stays empty until the brief has been expanded.\n- The connector creates only an account's first project (`project__createFirst`). Further projects are made in the dashboard, so an existing brand is never duplicated by mistake.\n- **Pausing, resuming, or launching Meta ads isn't available.** Tell the user to change ad status in Meta Ads Manager.\n- The free plan has a **daily design cap**. The error says `Daily generation limit reached`. Tell the user to upgrade at https:\u002F\u002Fadmakeai.com\u002Fpricing.\n- Facebook tools need a **paid AdMakeAI plan** (free accounts get `FORBIDDEN: The Facebook Ads integration is available on paid plans`) and a **connected Facebook account**. If `facebookConnection__list` returns empty, point them to https:\u002F\u002Fadmakeai.com\u002Fdashboard\u002Fintegrations\u002Ffacebook.\n- Nothing is ever **deleted** through the connector — not AdMakeAI ads or ad sets, and not Meta resources. If the user asks to delete something, tell them to do it in the AdMakeAI web app or Meta Ads Manager.\n",{"name":5,"description":7},"main","f620abaff09061f8c8b1f1559dca3fdd031a32e5","plugins\u002Fmesmerlord\u002Fadmakeai-claude-plugin\u002Fskills\u002Fadmakeai-api",474,"https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins","https:\u002F\u002Fhol.org\u002Fplugins\u002Fbest-codex-plugins","https:\u002F\u002Fgithub.com\u002Fhashgraph-online","https:\u002F\u002Fhol.org","Open-source standards and developer tools for interoperable AI agents: discovery, identity, communication, payments, privacy and security.","2026-11-11 14:40:14",{"source":8,"skillName":5,"commands":71,"prompt":81,"zipAvailable":82},[72,75,78],{"tool":73,"command":74},"npx","npx skills add hashgraph-online\u002Fawesome-codex-plugins --skill admakeai-api",{"tool":76,"command":77},"bunx","bunx skills add hashgraph-online\u002Fawesome-codex-plugins --skill admakeai-api",{"tool":79,"command":80},"pnpm","pnpm dlx skills add hashgraph-online\u002Fawesome-codex-plugins --skill admakeai-api","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fmesmerlord\u002Fadmakeai-claude-plugin\u002Fskills\u002Fadmakeai-api\u002FSKILL.md",true,[],[85,93,100,107,132,157],{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":92},"01M746ZWACVKMZ1BJXJZHYJSSX","migrate-to-e2e","Moves an existing Playwright, Cypress, Selenium, Appium, Detox, Maestro, or TesterArmy suite to e2e one slice at a time, with the old suite running beside the new one until each ported test is proven. Keeps a MIGRATION.md progress file so any later session resumes where the last stopped. Optionally plants a defect to show both suites catch it. Use for \u002Fmigrate-to-e2e, \"migrate our tests to e2e\", \"port these Maestro flows\", \"move our TesterArmy tests\", or when a project has an e2e config and an older suite still running.","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Ftester-army\u002Fe2e\u002Fskills\u002Fmigrate-to-e2e\u002FSKILL.md",[],[],"2026-11-11 15:11:14",{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":92},"01M746ZPTAX1Q0FBKAB1CYND7E","e2e","Writes, runs, and debugs end-to-end tests for web and mobile apps with e2e, the agentic test runner, which mixes agent.act goals with exact locator assertions on a Playwright browser or an iOS or Android device. Also drives a project's running app live over the e2e MCP server to look at a screen, check a UI change, take a screenshot or record a video, and try a locator; and runs bug bashes, parallel e2e explore runs with each bug proven by a repro test. Use when a project depends on e2e or has an e2e.config.ts, when asked for end-to-end, browser, mobile, or agentic UI tests, to check a change in the running app, to QA or bug bash an app or branch, or when an e2e run fails.","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Ftester-army\u002Fe2e\u002Fskills\u002Fe2e\u002FSKILL.md",[],[],{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":106,"publishedAt":92},"01M746ZJN784HVHMDP9MQGCSGG","create-verification-skill","Generate a project-local verify-\u003Capp> skill on top of e2e, so any coding agent can launch the app, check it is worth driving, exercise a feature the way a user does, keep evidence, and bug bash it. Writes the skill, a feature map with one explore charter per feature, and proves it once. Use for \u002Fcreate-verification-skill, \"make a verification skill for this repo\", or when a project has no scripted way to prove UI behavior.","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Ftester-army\u002Fe2e\u002Fskills\u002Fcreate-verification-skill\u002FSKILL.md",[],[],{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":113,"publishedAt":55},"01M716A6ETNB9B1SQ3GXZC75VR","deja-search","deja-vu memory — search the user's past AI coding sessions with the deja CLI. Holds what they already settled and never wrote into the repo (naming rules, banned or already-tried tools, required checks before merge, preferred values, who owns what). Use before your first edit in a task, before you call a change done or ready to merge, before you recommend a tool, library, design or reviewer, before re-debugging an error that may already be solved, when they say 'didn't we fix this before', 'what did we decide about X' or 'I already have that', and before telling them something on this machine does not exist.","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fvshulcz\u002Fdeja-vu\u002Fskills\u002Fdeja-search\u002FSKILL.md",[],[114,115,116,117,118,119,120,121,122,46,123,39,124,125,126,127,128,129,130,131],"search","deja search","never","error","ready","memory","re","decide","fix","debugging","you","done","reviewer","io","change","cli","merge","past",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":138,"publishedAt":55},"01M716A3J2W5SENSE9VGMXB375","deja-reflect","End-of-session reflection and memory curation with deja-vu. Review what was decided, what commands broke and what repaired them, and record durable project rules or decisions with deja remember so the next session starts with them.","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Fvshulcz\u002Fdeja-vu\u002Fskills\u002Fdeja-reflect\u002FSKILL.md",[],[139,140,141,127,142,143,144,145,146,147,148,149,150,151,119,152,153,154,155,156],"deja reflect","reflect","review","with","record","github","next","https","node","Rules","decisions","brew","remember","project rules","project","session","end","reflection",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":170,"publishedAt":55},"01M715T3RR4BAYSR57HPPTJ0PF","revid","Make, edit, export and post AI videos with Revid (revid.ai) through the Revid MCP server. Use whenever the user wants a short-form or long-form video made (from an idea, a script, a URL, an article, a PDF, a tweet, a product page, their own clips, or a song), wants to find what is going viral on TikTok, YouTube, Instagram or X before making something, wants to edit or re-export an existing Revid project, generate a standalone AI image or clip, make a series episode, or publish and schedule a finished video to connected social accounts. Covers setup (hosted MCP with OAuth, or an API key), the 36 tools, credits, polling and the rules for publishing. Routes to the more specific revid-* skills when one fits.","https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002Ftmakersas\u002Frevid-skills\u002Fskills\u002Frevid\u002FSKILL.md",[163,164,167],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":165,"categoryName":166,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":168,"categoryName":169,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",[159,171,50,172,173,174,175,153,176,120,177,178,179,180,39,181,182,183,36,52],"URL","short-form","standalone","PDF","viral","tiktok","short","social","MCP","song","image","mcp server","schedule"]