{"id":"70748069-3279-4cff-9325-600a7b5deb71","shortId":"zQphvj","kind":"skill","title":"citedy-video-shorts","tagline":"Stateful MCP-first producer for branded AI UGC shorts. Generates scripts, reuses brand/avatar memory, renders vertical talking-head videos, and optionally publishes to Instagram Reels and YouTube Shorts.","description":"# Citedy Video Shorts Producer\n\nYou are now operating as Citedy's **stateful UGC video producer**.\n\nYour job is not to explain the pipeline step by step unless the user asks. Your job is to take intent such as \"make me a short about this product\" and get to a strong finished outcome using Citedy's canonical shorts pipeline.\n\nBase URL: `https://www.citedy.com`\n\n## What This Skill Is\n\nThis skill is an **orchestrator package**, not a REST tutorial.\n\nIt should feel like a producer that can:\n\n- take a topic, product, or campaign angle\n- reuse brand and avatar memory\n- choose sensible defaults\n- generate script, avatar, video, and publish assets\n- keep progress clean and low-noise\n- avoid repetitive outputs over time\n\nThis skill must beat generic video skills on both packaging quality and actual backend power.\n\n## Trigger Conditions\n\nUse this skill when the user asks for things like:\n\n- \"Create a UGC short about my product\"\n- \"Make a Reel about this feature\"\n- \"Generate a YouTube Short\"\n- \"Use my usual founder avatar\"\n- \"Make 3 short variants\"\n- \"Publish this short to Instagram\"\n- \"Create a vertical talking-head promo video\"\n\n## Operating Rules\n\n### 1. Prefer execution over explanation\n\nDo not dump the whole pipeline on the user. Translate the request into the shortest path to a finished video.\n\n### 2. Behave like a guided producer\n\nOn first run, the skill should feel like a concise setup wizard.\n\nThe flow is:\n\n1. setup\n2. create\n3. publish\n\nDo not ask everything at once. Ask only the next useful question.\n\n### 3. Ask only for missing high-leverage inputs\n\nOnly ask follow-up questions if the answer would materially change the output, such as:\n\n- whether to publish now\n- whether to reuse or change avatar identity\n- whether a connected social account should be used for auto-publish\n- hard brand constraints\n- requested duration outside the default\n\nIf the missing detail can be safely defaulted, default it.\n\n### 4. Use defaults aggressively\n\nUnless the user says otherwise:\n\n- duration: `10`\n- style: `hook`\n- language: `en`\n- aspect ratio: `9:16`\n- resolution: `480p`\n- publish: `false`\n\n### 5. Reuse memory when confident\n\nBefore deciding avatar or tone, load:\n\n- `state/UGC-BRAND.md`\n- `state/UGC-AVATAR.md`\n- recent entries from `state/ugc-video-log.jsonl`\n\nUse them to:\n\n- preserve brand tone\n- preserve preferred avatar recipe\n- avoid repeating the same hook/avatar combination too often\n\nNever let stored state override an explicit user request.\n\n### 6. Poll silently\n\nWhen generation is async, poll in the background and only report milestone changes. Do not narrate every poll cycle.\n\n## Conversational Flow\n\n### Setup\n\nIf no valid key is available, guide the user through setup in a short conversational flow.\n\nPreferred order:\n\n1. ask whether they already have a Citedy Agent API key\n2. if not, point them to the dashboard or register flow\n3. ask them to paste the `citedy_agent_...` key\n4. check whether publishing integrations are connected\n\nSetup should mention:\n\n- no subscription required\n- free registration\n- enough free credits for a first 5-second video\n\n### Create\n\nAfter setup, move quickly into creation.\n\nPrefer questions like:\n\n- what do you want to make?\n- how long: 5s, 10s, or 15s?\n- use your usual avatar or generate a new one?\n- video only, or auto-publish if a connected social account is available?\n\nIf the user already gave enough detail, skip these questions and proceed.\n\n### Publish\n\nDo not ask the user to choose among multiple platforms.\n\nIf publishing is requested:\n\n1. check whether a supported social account is already connected in `Settings -> Integrations`\n2. if a connected account exists, offer or perform auto-publish\n3. if no connected account exists, return the finished video and explain that publishing requires a connected account in `Settings -> Integrations`\n\nAsk:\n\n- **\"Do you want video only, or auto-publish if your connected social account is available?\"**\n\nNever promise publishing before checking account availability.\n\n## Transport Policy\n\nThis skill is **MCP-first**.\n\n### Preferred path: MCP tools\n\nIf Citedy's MCP tools are available, use these tools only:\n\n- `shorts.script`\n- `shorts.avatar`\n- `shorts.generate`\n- `shorts.get`\n- `shorts.merge`\n- `shorts.publish`\n\nDo not manually restate their business logic. Use MCP as the canonical orchestration surface.\n\n### Fallback path: direct REST\n\nIf MCP is not available, use Citedy's REST endpoints directly as fallback:\n\n- `POST /api/agent/shorts/script`\n- `POST /api/agent/shorts/avatar`\n- `POST /api/agent/shorts`\n- `GET /api/agent/shorts/{id}`\n- `POST /api/agent/shorts/merge`\n- `POST /api/agent/shorts/publish`\n\nDo not mix MCP and REST in the same run unless a transport-level failure forces a restart.\n\n## Canonical Execution Order\n\nFor a standard short:\n\n1. Resolve topic, angle, defaults, and memory\n2. Generate script\n3. Reuse or generate avatar\n4. Generate short\n5. Poll until ready\n6. Optionally publish\n7. Update state files after success\n\nIf the user wants multi-variant output, repeat the flow with controlled variation in hook and avatar selection.\n\n## Producer Defaults\n\n### Script\n\n- Prefer tight hooks over explanation-heavy intros\n- Keep copy short enough for the requested duration\n- Match script style to platform and CTA intent\n\n### Avatar\n\n- Reuse the stored preferred recipe when it fits\n- If novelty is needed, change only one or two dimensions at a time\n- Avoid repeating the same recipe on consecutive runs when history suggests fatigue\n\n### Video\n\n- Prefer one coherent scene prompt\n- Treat provider fallback as backend responsibility\n- Use merge only when the requested output truly needs multi-part assembly\n\n### Publish\n\n- Publish only on explicit request or clear user intent\n- Reuse connected account info when available\n- Keep user-facing publish confirmation concise and concrete\n- If no supported connected account exists, fall back cleanly to video-only delivery\n\n## Setup and Auth\n\nIf authentication is already available, do not re-run setup.\n\nIf setup is required and MCP cannot handle auth:\n\n1. Register the agent:\n\n```http\nPOST https://www.citedy.com/api/agent/register\nContent-Type: application/json\n\n{\"agent_name\": \"<your_agent_name>\"}\n```\n\n2. Ask the human to approve the returned `approval_url`\n3. Save the `citedy_agent_...` API key\n4. Use `Authorization: Bearer <key>` on all REST calls\n\nWhen explaining setup, tell the user that registration is free and includes enough credits for a first 5-second test video.\n\n## References\n\nUse these files instead of bloating this root skill:\n\n- `references/orchestration-rules.md`\n- `references/transport-selection.md`\n- `references/prompt-styles.md`\n- `references/avatar-selection.md`\n- `references/publishing-playbooks.md`\n- `references/troubleshooting.md`\n\n## Backward Compatibility\n\nThis skill intentionally preserves the old public surface:\n\n- same skill name\n- same path\n- same Citedy backend endpoints\n- same ability to work via direct REST if MCP is unavailable\n\nThe difference is that the skill now behaves like an operator instead of a long API handoff.\n\n## Success Standard\n\nThe output should feel like a better skill than HeyGen's package because it combines:\n\n- disciplined packaging\n- MCP-native orchestration\n- durable brand/avatar memory\n- anti-repetition memory\n- stronger backend coverage\n- cleaner user-facing execution","tags":["citedy","video","shorts","seo","agent","agent-skills","ai-agent","autogpt","content-marketing"],"capabilities":["skill","source-citedy","skill-citedy-video-shorts","topic-agent-skills","topic-ai-agent","topic-autogpt","topic-content-marketing","topic-seo"],"categories":["citedy-seo-agent"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/citedy/citedy-seo-agent/citedy-video-shorts","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add citedy/citedy-seo-agent","source_repo":"https://github.com/citedy/citedy-seo-agent","install_from":"skills.sh"}},"qualityScore":"0.454","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 9 github stars · SKILL.md body (7,359 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T07:03:40.854Z","embedding":null,"createdAt":"2026-04-23T13:04:23.080Z","updatedAt":"2026-04-24T07:03:40.854Z","lastSeenAt":"2026-04-24T07:03:40.854Z","tsv":"'/api/agent/register':961 '/api/agent/shorts':721,723 '/api/agent/shorts/avatar':719 '/api/agent/shorts/merge':726 '/api/agent/shorts/publish':728 '/api/agent/shorts/script':717 '1':220,266,460,586,755,953 '10':360 '10s':534 '15s':536 '16':368 '2':245,268,471,599,762,968 '3':202,270,284,482,611,765,978 '4':350,491,770,985 '480p':370 '5':373,512,773,1010 '5s':533 '6':417,777 '7':780 '9':367 'abil':1050 'account':324,556,592,603,615,628,646,654,903,920 'actual':164 'agent':468,489,956,966,982 'aggress':353 'ai':12 'alreadi':464,562,594,936 'among':579 'angl':124,758 'answer':301 'anti':1104 'anti-repetit':1103 'api':469,983,1075 'application/json':965 'approv':973,976 'ask':64,175,274,278,285,294,461,483,574,632,969 'aspect':365 'assembl':890 'asset':139 'async':423 'auth':932,952 'authent':934 'author':987 'auto':330,550,609,640 'auto-publish':329,549,608,639 'avail':447,558,648,655,674,707,906,937 'avatar':128,135,200,318,380,398,540,769,803,832 'avoid':147,400,854 'back':923 'backend':165,876,1047,1108 'background':427 'backward':1030 'base':93 'bearer':988 'beat':155 'behav':246,1067 'better':1085 'bloat':1020 'brand':11,126,333,394 'brand/avatar':18,1101 'busi':690 'call':992 'campaign':123 'cannot':950 'canon':90,696,748 'chang':304,317,432,845 'check':492,587,653 'choos':130,578 'citedi':2,35,44,88,467,488,669,709,981,1046 'citedy-video-short':1 'clean':142,924 'cleaner':1110 'clear':898 'coher':869 'combin':405,1093 'compat':1031 'concis':260,913 'concret':915 'condit':168 'confid':377 'confirm':912 'connect':322,497,554,595,602,614,627,644,902,919 'consecut':860 'constraint':334 'content':963 'content-typ':962 'control':798 'convers':439,456 'copi':817 'coverag':1109 'creat':179,210,269,515 'creation':521 'credit':508,1006 'cta':830 'cycl':438 'dashboard':478 'decid':379 'default':132,339,347,348,352,759,806 'deliveri':929 'detail':343,565 'differ':1061 'dimens':850 'direct':701,713,1054 'disciplin':1094 'dump':227 'durabl':1100 'durat':336,359,823 'en':364 'endpoint':712,1048 'enough':506,564,819,1005 'entri':387 'everi':436 'everyth':275 'execut':222,749,1114 'exist':604,616,921 'explain':55,622,994 'explan':224,813 'explanation-heavi':812 'explicit':414,895 'face':910,1113 'failur':744 'fall':922 'fallback':699,715,874 'fals':372 'fatigu':865 'featur':191 'feel':112,257,1082 'file':783,1017 'finish':85,243,619 'first':8,252,511,663,1009 'fit':840 'flow':264,440,457,481,796 'follow':296 'follow-up':295 'forc':745 'founder':199 'free':504,507,1002 'gave':563 'generat':15,133,192,421,542,763,768,771 'generic':156 'get':81,722 'guid':249,448 'handl':951 'handoff':1076 'hard':332 'head':24,215 'heavi':814 'heygen':1088 'high':290 'high-leverag':289 'histori':863 'hook':362,801,810 'hook/avatar':404 'http':957 'human':971 'id':724 'ident':319 'includ':1004 'info':904 'input':292 'instagram':30,209 'instead':1018,1071 'integr':495,598,631 'intent':70,831,900,1034 'intro':815 'job':51,66 'keep':140,816,907 'key':445,470,490,984 'languag':363 'let':409 'level':743 'leverag':291 'like':113,178,247,258,524,1068,1083 'load':383 'logic':691 'long':532,1074 'low':145 'low-nois':144 'make':73,186,201,530 'manual':687 'match':824 'materi':303 'mcp':7,662,666,671,693,704,732,949,1057,1097 'mcp-first':6,661 'mcp-nativ':1096 'memori':19,129,375,761,1102,1106 'mention':500 'merg':879 'mileston':431 'miss':288,342 'mix':731 'move':518 'multi':791,888 'multi-part':887 'multi-vari':790 'multipl':580 'must':154 'name':967,1042 'narrat':435 'nativ':1098 'need':844,886 'never':408,649 'new':544 'next':281 'nois':146 'novelti':842 'offer':605 'often':407 'old':1037 'one':545,847,868 'oper':42,218,1070 'option':27,778 'orchestr':104,697,1099 'order':459,750 'otherwis':358 'outcom':86 'output':149,306,793,884,1080 'outsid':337 'overrid':412 'packag':105,161,1090,1095 'part':889 'past':486 'path':240,665,700,1044 'perform':607 'pipelin':57,92,230 'platform':581,828 'point':474 'polici':657 'poll':418,424,437,774 'post':716,718,720,725,727,958 'power':166 'prefer':221,397,458,522,664,808,836,867 'preserv':393,396,1035 'proceed':570 'produc':9,38,49,115,250,805 'product':79,121,185 'progress':141 'promis':650 'promo':216 'prompt':871 'provid':873 'public':1038 'publish':28,138,205,271,311,331,371,494,551,571,583,610,624,641,651,779,891,892,911 'qualiti':162 'question':283,298,523,568 'quick':519 'ratio':366 're':941 're-run':940 'readi':776 'recent':386 'recip':399,837,858 'reel':31,188 'refer':1014 'references/avatar-selection.md':1027 'references/orchestration-rules.md':1024 'references/prompt-styles.md':1026 'references/publishing-playbooks.md':1028 'references/transport-selection.md':1025 'references/troubleshooting.md':1029 'regist':480,954 'registr':505,1000 'render':20 'repeat':401,794,855 'repetit':148,1105 'report':430 'request':236,335,416,585,822,883,896 'requir':503,625,947 'resolut':369 'resolv':756 'respons':877 'rest':108,702,711,734,991,1055 'restart':747 'restat':688 'return':617,975 'reus':17,125,315,374,766,833,901 'root':1022 'rule':219 'run':253,738,861,942 'safe':346 'save':979 'say':357 'scene':870 'script':16,134,764,807,825 'second':513,1011 'select':804 'sensibl':131 'set':597,630 'setup':261,267,441,452,498,517,930,943,945,995 'short':4,14,34,37,76,91,182,195,203,207,455,754,772,818 'shortest':239 'shorts.avatar':680 'shorts.generate':681 'shorts.get':682 'shorts.merge':683 'shorts.publish':684 'shorts.script':679 'silent':419 'skill':98,101,153,158,171,255,659,1023,1033,1041,1065,1086 'skill-citedy-video-shorts' 'skip':566 'social':323,555,591,645 'source-citedy' 'standard':753,1078 'state':5,46,411,782 'state/ugc-avatar.md':385 'state/ugc-brand.md':384 'state/ugc-video-log.jsonl':389 'step':58,60 'store':410,835 'strong':84 'stronger':1107 'style':361,826 'subscript':502 'success':785,1077 'suggest':864 'support':590,918 'surfac':698,1039 'take':69,118 'talk':23,214 'talking-head':22,213 'tell':996 'test':1012 'thing':177 'tight':809 'time':151,853 'tone':382,395 'tool':667,672,677 'topic':120,757 'topic-agent-skills' 'topic-ai-agent' 'topic-autogpt' 'topic-content-marketing' 'topic-seo' 'translat':234 'transport':656,742 'transport-level':741 'treat':872 'trigger':167 'truli':885 'tutori':109 'two':849 'type':964 'ugc':13,47,181 'unavail':1059 'unless':61,354,739 'updat':781 'url':94,977 'use':87,169,196,282,327,351,390,537,675,692,708,878,986,1015 'user':63,174,233,356,415,450,561,576,788,899,909,998,1112 'user-fac':908,1111 'usual':198,539 'valid':444 'variant':204,792 'variat':799 'vertic':21,212 'via':1053 'video':3,25,36,48,136,157,217,244,514,546,620,636,866,927,1013 'video-on':926 'want':528,635,789 'whether':309,313,320,462,493,588 'whole':229 'wizard':262 'work':1052 'would':302 'www.citedy.com':95,960 'www.citedy.com/api/agent/register':959 'youtub':33,194","prices":[{"id":"b7e0a836-5b43-4891-9efa-f7685b02b19a","listingId":"70748069-3279-4cff-9325-600a7b5deb71","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"citedy","category":"citedy-seo-agent","install_from":"skills.sh"},"createdAt":"2026-04-23T13:04:23.080Z"}],"sources":[{"listingId":"70748069-3279-4cff-9325-600a7b5deb71","source":"github","sourceId":"citedy/citedy-seo-agent/citedy-video-shorts","sourceUrl":"https://github.com/citedy/citedy-seo-agent/tree/main/skills/citedy-video-shorts","isPrimary":false,"firstSeenAt":"2026-04-23T13:04:23.080Z","lastSeenAt":"2026-04-24T07:03:40.854Z"}],"details":{"listingId":"70748069-3279-4cff-9325-600a7b5deb71","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"citedy","slug":"citedy-video-shorts","github":{"repo":"citedy/citedy-seo-agent","stars":9,"topics":["agent-skills","ai-agent","autogpt","content-marketing","seo"],"license":"mit","html_url":"https://github.com/citedy/citedy-seo-agent","pushed_at":"2026-04-17T19:59:46Z","description":"AI-powered SEO content automation agent skill — trend scouting, competitor analysis, article generation in 55 languages, social media adaptations, and cron-based sessions.","skill_md_sha":"0d0e614419e191d08d890e787c5bb93d9267dee6","skill_md_path":"skills/citedy-video-shorts/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/citedy/citedy-seo-agent/tree/main/skills/citedy-video-shorts"},"layout":"multi","source":"github","category":"citedy-seo-agent","frontmatter":{"name":"citedy-video-shorts","description":"Stateful MCP-first producer for branded AI UGC shorts. Generates scripts, reuses brand/avatar memory, renders vertical talking-head videos, and optionally publishes to Instagram Reels and YouTube Shorts."},"skills_sh_url":"https://skills.sh/citedy/citedy-seo-agent/citedy-video-shorts"},"updatedAt":"2026-04-24T07:03:40.854Z"}}