cue-ai 0.9.2 → 0.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (278) hide show
  1. package/CHANGELOG.md +4 -3
  2. package/README.md +148 -170
  3. package/bin/cue-learnings +30 -4
  4. package/bin/cue-review-progress +0 -0
  5. package/bin/cue-review-watch +0 -0
  6. package/dist/cue.js +4328 -3108
  7. package/package.json +1 -1
  8. package/plugins/cue/commands/cue-switch.md +1 -1
  9. package/plugins/cue/commands/cue.md +1 -1
  10. package/profiles/backend/profile.yaml +4 -0
  11. package/profiles/browser/profile.yaml +4 -0
  12. package/profiles/career/profile.yaml +2 -13
  13. package/profiles/commerce/profile.yaml +0 -2
  14. package/profiles/coolify/profile.yaml +0 -1
  15. package/profiles/core/profile.yaml +78 -11
  16. package/profiles/dash-merge-test/profile.yaml +6 -1
  17. package/profiles/designer/profile.yaml +9 -1
  18. package/profiles/dropshipping/profile.yaml +69 -0
  19. package/profiles/frontend/profile.yaml +4 -0
  20. package/profiles/google-ads/profile.yaml +34 -0
  21. package/profiles/google-analytics/profile.yaml +34 -0
  22. package/profiles/google-drive/profile.yaml +34 -0
  23. package/profiles/gstack/profile.yaml +117 -29
  24. package/profiles/marketing/profile.yaml +0 -1
  25. package/profiles/media/README.md +70 -0
  26. package/profiles/media/profile.yaml +104 -0
  27. package/profiles/nano-banana/profile.yaml +52 -0
  28. package/profiles/ops/profile.yaml +1 -2
  29. package/profiles/secops/profile.yaml +3 -0
  30. package/profiles/skill-writer/profile.yaml +15 -0
  31. package/profiles/video/profile.yaml +3 -0
  32. package/profiles/web-frontend-base/profile.yaml +6 -0
  33. package/profiles/webshop/profile.yaml +0 -1
  34. package/profiles/webshop-google/profile.yaml +1 -0
  35. package/profiles/x-growth-bot/profile.yaml +2 -0
  36. package/resources/icons/generate-icons.py +2 -128
  37. package/resources/mcps/configs/claude.sanitized.json +88 -20
  38. package/resources/mcps/configs/claude_runtime.sanitized.json +40 -1
  39. package/resources/mcps/configs/codex.sanitized.json +29 -0
  40. package/resources/skills/skills/career/job-hunter/LICENSE +21 -0
  41. package/resources/skills/skills/career/job-hunter/README.md +323 -0
  42. package/resources/skills/skills/career/job-hunter/SKILL.md +91 -0
  43. package/resources/skills/skills/career/job-hunter/agents/README.md +96 -0
  44. package/resources/skills/skills/career/job-hunter/agents/apply-assessment-prep.md +195 -0
  45. package/resources/skills/skills/career/job-hunter/agents/apply-ats-scan.md +155 -0
  46. package/resources/skills/skills/career/job-hunter/agents/apply-bias-audit.md +224 -0
  47. package/resources/skills/skills/career/job-hunter/agents/apply-cover-letter.md +69 -0
  48. package/resources/skills/skills/career/job-hunter/agents/apply-decode-jd.md +117 -0
  49. package/resources/skills/skills/career/job-hunter/agents/apply-fit-score.md +183 -0
  50. package/resources/skills/skills/career/job-hunter/agents/apply-linkedin-audit.md +74 -0
  51. package/resources/skills/skills/career/job-hunter/agents/apply-linkedin-scrape.md +255 -0
  52. package/resources/skills/skills/career/job-hunter/agents/apply-portfolio-brief.md +123 -0
  53. package/resources/skills/skills/career/job-hunter/agents/apply-reality-check.md +164 -0
  54. package/resources/skills/skills/career/job-hunter/agents/apply-reference-prep.md +150 -0
  55. package/resources/skills/skills/career/job-hunter/agents/apply-rejection-analysis.md +172 -0
  56. package/resources/skills/skills/career/job-hunter/agents/apply-resume.md +70 -0
  57. package/resources/skills/skills/career/job-hunter/agents/apply-skills-gap-filler.md +109 -0
  58. package/resources/skills/skills/career/job-hunter/agents/career-internal.md +94 -0
  59. package/resources/skills/skills/career/job-hunter/agents/career-linkedin-content.md +173 -0
  60. package/resources/skills/skills/career/job-hunter/agents/career-linkedin-scanner.md +262 -0
  61. package/resources/skills/skills/career/job-hunter/agents/career-network-message.md +108 -0
  62. package/resources/skills/skills/career/job-hunter/agents/career-promote.md +102 -0
  63. package/resources/skills/skills/career/job-hunter/agents/career-review.md +71 -0
  64. package/resources/skills/skills/career/job-hunter/agents/interview-debrief.md +117 -0
  65. package/resources/skills/skills/career/job-hunter/agents/interview-mock.md +171 -0
  66. package/resources/skills/skills/career/job-hunter/agents/interview-panel-decoder.md +152 -0
  67. package/resources/skills/skills/career/job-hunter/agents/interview-prep.md +184 -0
  68. package/resources/skills/skills/career/job-hunter/agents/interview-question-bank.md +133 -0
  69. package/resources/skills/skills/career/job-hunter/agents/interview-research.md +148 -0
  70. package/resources/skills/skills/career/job-hunter/agents/offer-compare.md +117 -0
  71. package/resources/skills/skills/career/job-hunter/agents/offer-counteroffer.md +144 -0
  72. package/resources/skills/skills/career/job-hunter/agents/offer-deadline-manager.md +148 -0
  73. package/resources/skills/skills/career/job-hunter/agents/offer-negotiate.md +126 -0
  74. package/resources/skills/skills/career/job-hunter/agents/offer-schedule.md +99 -0
  75. package/resources/skills/skills/career/job-hunter/agents/offer-thankyou.md +80 -0
  76. package/resources/skills/skills/career/job-hunter/agents/search-company-research.md +146 -0
  77. package/resources/skills/skills/career/job-hunter/agents/search-follow-up.md +129 -0
  78. package/resources/skills/skills/career/job-hunter/agents/search-ghost-job-detector.md +152 -0
  79. package/resources/skills/skills/career/job-hunter/agents/search-inbox-scan.md +193 -0
  80. package/resources/skills/skills/career/job-hunter/agents/search-interview-scorecard.md +164 -0
  81. package/resources/skills/skills/career/job-hunter/agents/search-jobs.md +149 -0
  82. package/resources/skills/skills/career/job-hunter/agents/search-momentum-check.md +194 -0
  83. package/resources/skills/skills/career/job-hunter/agents/search-outreach.md +85 -0
  84. package/resources/skills/skills/career/job-hunter/agents/search-referral-finder.md +124 -0
  85. package/resources/skills/skills/career/job-hunter/agents/search-salary.md +96 -0
  86. package/resources/skills/skills/career/job-hunter/agents/search-send-email.md +109 -0
  87. package/resources/skills/skills/career/job-hunter/agents/search-tracker-update.md +127 -0
  88. package/resources/skills/skills/career/job-hunter/inputs/README.md +26 -0
  89. package/resources/skills/skills/career/job-hunter/inputs/apply-linkedin-url.txt +8 -0
  90. package/resources/skills/skills/career/job-hunter/inputs/interview-context.md +24 -0
  91. package/resources/skills/skills/career/job-hunter/inputs/job-description.md +20 -0
  92. package/resources/skills/skills/career/job-hunter/inputs/job-search-criteria.md +36 -0
  93. package/resources/skills/skills/career/job-hunter/inputs/my-linkedin.md +24 -0
  94. package/resources/skills/skills/career/job-hunter/inputs/my-resume.md +28 -0
  95. package/resources/skills/skills/career/job-hunter/inputs/search-outreach-target.md +24 -0
  96. package/resources/skills/skills/career/job-hunter/rules/README.md +37 -0
  97. package/resources/skills/skills/career/job-hunter/rules/writing-rules.md +81 -0
  98. package/resources/skills/skills/design/banana/SKILL.md +375 -0
  99. package/resources/skills/skills/design/banana/references/cost-tracking.md +47 -0
  100. package/resources/skills/skills/design/banana/references/gemini-models.md +236 -0
  101. package/resources/skills/skills/design/banana/references/mcp-tools.md +145 -0
  102. package/resources/skills/skills/design/banana/references/post-processing.md +192 -0
  103. package/resources/skills/skills/design/banana/references/presets.md +69 -0
  104. package/resources/skills/skills/design/banana/references/prompt-engineering.md +481 -0
  105. package/resources/skills/skills/design/banana/scripts/batch.py +97 -0
  106. package/resources/skills/skills/design/banana/scripts/cost_tracker.py +191 -0
  107. package/resources/skills/skills/design/banana/scripts/edit.py +159 -0
  108. package/resources/skills/skills/design/banana/scripts/generate.py +168 -0
  109. package/resources/skills/skills/design/banana/scripts/presets.py +154 -0
  110. package/resources/skills/skills/design/banana/scripts/setup_mcp.py +151 -0
  111. package/resources/skills/skills/design/banana/scripts/validate_setup.py +133 -0
  112. package/resources/skills/skills/gstack/ship/SKILL.md +13 -0
  113. package/resources/skills/skills/media/3d-logo-animation/SKILL.md +59 -0
  114. package/resources/skills/skills/media/action-figure-generator/SKILL.md +48 -0
  115. package/resources/skills/skills/media/ad-creative/SKILL.md +79 -0
  116. package/resources/skills/skills/media/ai-clipping/SKILL.md +194 -0
  117. package/resources/skills/skills/media/ai-clipping/scripts/run-ai-clipping.sh +200 -0
  118. package/resources/skills/skills/media/ai-fight-scene/SKILL.md +132 -0
  119. package/resources/skills/skills/media/amazon-product-listing/SKILL.md +68 -0
  120. package/resources/skills/skills/media/animal-video-generator/SKILL.md +59 -0
  121. package/resources/skills/skills/media/award-ceremony-video/SKILL.md +87 -0
  122. package/resources/skills/skills/media/blog-header/SKILL.md +61 -0
  123. package/resources/skills/skills/media/brand-kit/SKILL.md +72 -0
  124. package/resources/skills/skills/media/brochures/SKILL.md +65 -0
  125. package/resources/skills/skills/media/cartoon-dance-animation/SKILL.md +62 -0
  126. package/resources/skills/skills/media/character-story-video/SKILL.md +84 -0
  127. package/resources/skills/skills/media/chibi-collage-effect/SKILL.md +63 -0
  128. package/resources/skills/skills/media/cinema-director/SKILL.md +93 -0
  129. package/resources/skills/skills/media/cinema-director/scripts/generate-film.sh +78 -0
  130. package/resources/skills/skills/media/color-analysis-board/SKILL.md +71 -0
  131. package/resources/skills/skills/media/core-edit/SKILL.md +48 -0
  132. package/resources/skills/skills/media/core-edit/edit-image.sh +54 -0
  133. package/resources/skills/skills/media/core-edit/enhance-image.sh +191 -0
  134. package/resources/skills/skills/media/core-edit/lipsync.sh +144 -0
  135. package/resources/skills/skills/media/core-edit/video-effects.sh +193 -0
  136. package/resources/skills/skills/media/core-media/SKILL.md +49 -0
  137. package/resources/skills/skills/media/core-media/create-music.sh +169 -0
  138. package/resources/skills/skills/media/core-media/generate-image.sh +161 -0
  139. package/resources/skills/skills/media/core-media/generate-video.sh +137 -0
  140. package/resources/skills/skills/media/core-media/image-to-video.sh +228 -0
  141. package/resources/skills/skills/media/core-media/schema_data.json +18708 -0
  142. package/resources/skills/skills/media/core-media/upload.sh +41 -0
  143. package/resources/skills/skills/media/core-platform/SKILL.md +41 -0
  144. package/resources/skills/skills/media/core-platform/check-result.sh +37 -0
  145. package/resources/skills/skills/media/core-platform/setup.sh +31 -0
  146. package/resources/skills/skills/media/couple-grid-creator/SKILL.md +47 -0
  147. package/resources/skills/skills/media/design-guide/SKILL.md +73 -0
  148. package/resources/skills/skills/media/drone-style-video/SKILL.md +61 -0
  149. package/resources/skills/skills/media/fashion-try-on/SKILL.md +61 -0
  150. package/resources/skills/skills/media/floor-plan-rendering/SKILL.md +56 -0
  151. package/resources/skills/skills/media/freeze-effect-video/SKILL.md +100 -0
  152. package/resources/skills/skills/media/giant-product-showcase/SKILL.md +61 -0
  153. package/resources/skills/skills/media/instagram-post/SKILL.md +58 -0
  154. package/resources/skills/skills/media/interior-design/SKILL.md +61 -0
  155. package/resources/skills/skills/media/interior-design-visualizer/SKILL.md +57 -0
  156. package/resources/skills/skills/media/jewelry-product-video/SKILL.md +61 -0
  157. package/resources/skills/skills/media/kdenlive/SKILL.md +106 -0
  158. package/resources/skills/skills/media/kdenlive/scripts/assemble.sh +57 -0
  159. package/resources/skills/skills/media/kdenlive/scripts/common.sh +30 -0
  160. package/resources/skills/skills/media/kdenlive/scripts/inspect.sh +19 -0
  161. package/resources/skills/skills/media/kdenlive/scripts/reframe.sh +22 -0
  162. package/resources/skills/skills/media/kdenlive/scripts/render.sh +16 -0
  163. package/resources/skills/skills/media/kdenlive/scripts/title-card.sh +25 -0
  164. package/resources/skills/skills/media/keyboard-art-maker/SKILL.md +44 -0
  165. package/resources/skills/skills/media/logo-branding/SKILL.md +70 -0
  166. package/resources/skills/skills/media/logo-creator/SKILL.md +80 -0
  167. package/resources/skills/skills/media/logo-creator/scripts/create-logo.sh +38 -0
  168. package/resources/skills/skills/media/logo-generator/SKILL.md +56 -0
  169. package/resources/skills/skills/media/multi-angle-reshoot/SKILL.md +70 -0
  170. package/resources/skills/skills/media/multi-angle-shots/SKILL.md +73 -0
  171. package/resources/skills/skills/media/music-video/SKILL.md +61 -0
  172. package/resources/skills/skills/media/nano-banana/SKILL.md +80 -0
  173. package/resources/skills/skills/media/nano-banana/scripts/generate-nano-art.sh +54 -0
  174. package/resources/skills/skills/media/one-shot-video/SKILL.md +56 -0
  175. package/resources/skills/skills/media/photo-pack-generator/SKILL.md +205 -0
  176. package/resources/skills/skills/media/photo-pack-generator/scripts/generate-pack.sh +241 -0
  177. package/resources/skills/skills/media/product-ad-cinematic/SKILL.md +78 -0
  178. package/resources/skills/skills/media/product-campaign/SKILL.md +76 -0
  179. package/resources/skills/skills/media/product-showcase-video/SKILL.md +60 -0
  180. package/resources/skills/skills/media/product-video-ad-maker/SKILL.md +59 -0
  181. package/resources/skills/skills/media/rednote-cover/SKILL.md +57 -0
  182. package/resources/skills/skills/media/seedance-2/SKILL.md +632 -0
  183. package/resources/skills/skills/media/seedance-2/scripts/generate-seedance.sh +701 -0
  184. package/resources/skills/skills/media/selfie-with-celebrities/SKILL.md +64 -0
  185. package/resources/skills/skills/media/social-media-video/SKILL.md +277 -0
  186. package/resources/skills/skills/media/social-media-video/scripts/run-social-video.sh +316 -0
  187. package/resources/skills/skills/media/social-pack/SKILL.md +58 -0
  188. package/resources/skills/skills/media/storyboard/SKILL.md +57 -0
  189. package/resources/skills/skills/media/storyboard-to-cooking-video/SKILL.md +143 -0
  190. package/resources/skills/skills/media/talking-baby-video/SKILL.md +57 -0
  191. package/resources/skills/skills/media/ugc-ads-workflow/SKILL.md +70 -0
  192. package/resources/skills/skills/media/ugc-lifestyle-try-on/SKILL.md +65 -0
  193. package/resources/skills/skills/media/ugc-video-factory/SKILL.md +134 -0
  194. package/resources/skills/skills/media/ui-design/SKILL.md +81 -0
  195. package/resources/skills/skills/media/ui-design/scripts/generate-mockup.sh +49 -0
  196. package/resources/skills/skills/media/url-to-design/SKILL.md +61 -0
  197. package/resources/skills/skills/media/workflow/SKILL.md +197 -0
  198. package/resources/skills/skills/media/workflow/scripts/discover-workflow.sh +18 -0
  199. package/resources/skills/skills/media/workflow/scripts/generate-workflow.sh +33 -0
  200. package/resources/skills/skills/media/workflow/scripts/interactive-run.sh +16 -0
  201. package/resources/skills/skills/media/workflow/scripts/list-workflows.sh +20 -0
  202. package/resources/skills/skills/media/workflow/scripts/run-workflow.sh +34 -0
  203. package/resources/skills/skills/media/youtube-shorts/SKILL.md +173 -0
  204. package/resources/skills/skills/media/youtube-shorts/scripts/run-youtube-shorts.sh +141 -0
  205. package/resources/skills/skills/media/youtube-thumbnail/SKILL.md +66 -0
  206. package/resources/skills/skills/meta/cue-developer/references/architecture.md +2 -2
  207. package/resources/skills/skills/meta/cue-usage/SKILL.md +1 -1
  208. package/resources/skills/skills/meta/profile-fit-monitor/SKILL.md +2 -2
  209. package/resources/skills/skills/meta/profile-optimizer/SKILL.md +1 -1
  210. package/resources/skills/skills/meta/profile-suggest/SKILL.md +7 -7
  211. package/resources/skills/skills/meta/profile-summon/SKILL.md +159 -0
  212. package/resources/skills/skills/meta/profile-summon/evals/evals.json +53 -0
  213. package/resources/skills/skills/meta/save-profile/SKILL.md +1 -1
  214. package/resources/skills/skills/meta/skill-reviewer/SKILL.md +3 -0
  215. package/resources/skills/skills/meta/skill-reviewer/references/tdd-for-skills.md +55 -0
  216. package/resources/skills/skills/research/find-skills/SKILL.md +1 -1
  217. package/resources/skills/skills/review/code-review-deep/SKILL.md +20 -0
  218. package/resources/skills/skills/security/trivy-scan/SKILL.md +139 -0
  219. package/resources/skills/skills/security/trivy-scan/scripts/ensure-trivy.sh +21 -0
  220. package/resources/skills/skills/tools/ccusage/SKILL.md +142 -0
  221. package/src/commands/_index.ts +8 -0
  222. package/src/commands/ai.ts +2 -2
  223. package/src/commands/auto-detect.test.ts +74 -0
  224. package/src/commands/auto-detect.ts +9 -7
  225. package/src/commands/cli.test.ts +20 -4
  226. package/src/commands/cli.ts +36 -20
  227. package/src/commands/create-profile.ts +2 -2
  228. package/src/commands/debug.ts +2 -2
  229. package/src/commands/discover.ts +14 -4
  230. package/src/commands/export-docker.ts +1 -1
  231. package/src/commands/features-batch1.test.ts +1 -1
  232. package/src/commands/gates.ts +1 -1
  233. package/src/commands/import-profile.ts +1 -1
  234. package/src/commands/init.ts +15 -11
  235. package/src/commands/install.test.ts +192 -0
  236. package/src/commands/install.ts +610 -0
  237. package/src/commands/launch-handoff.e2e.test.ts +33 -1
  238. package/src/commands/launch.e2e.test.ts +15 -10
  239. package/src/commands/launch.ts +73 -116
  240. package/src/commands/materialize.ts +2 -2
  241. package/src/commands/prune.ts +1 -1
  242. package/src/commands/security-audit.ts +1 -1
  243. package/src/commands/shell.ts +7 -7
  244. package/src/commands/skill-report.ts +1 -1
  245. package/src/commands/skills.ts +3 -3
  246. package/src/commands/snapshot.ts +2 -2
  247. package/src/commands/summon.test.ts +116 -0
  248. package/src/commands/summon.ts +338 -0
  249. package/src/commands/trigger-gaps.ts +1 -1
  250. package/src/commands/use.ts +47 -3
  251. package/src/commands/watch-live.ts +5 -5
  252. package/src/commands/watch.ts +8 -8
  253. package/src/index.ts +2 -0
  254. package/src/lib/active-sessions.test.ts +3 -3
  255. package/src/lib/active-sessions.ts +4 -4
  256. package/src/lib/auto-detect.test.ts +172 -8
  257. package/src/lib/auto-detect.ts +191 -136
  258. package/src/lib/codex-persona-parity.test.ts +58 -0
  259. package/src/lib/companion-detect.test.ts +43 -1
  260. package/src/lib/companion-detect.ts +35 -0
  261. package/src/lib/credentials-sync.test.ts +121 -1
  262. package/src/lib/credentials-sync.ts +95 -1
  263. package/src/lib/cwd-resolver.test.ts +8 -8
  264. package/src/lib/cwd-resolver.ts +2 -2
  265. package/src/lib/dashboard-merge.test.ts +9 -4
  266. package/src/lib/dashboard-server.ts +1 -1
  267. package/src/lib/picker.test.ts +1 -1
  268. package/src/lib/picker.ts +5 -5
  269. package/src/lib/profile-merge.test.ts +8 -0
  270. package/src/lib/profile-names.test.ts +3 -3
  271. package/src/lib/runtime-install.ts +166 -0
  272. package/src/lib/runtime-materializer.test.ts +137 -0
  273. package/src/lib/runtime-materializer.ts +105 -2
  274. package/src/lib/skill-router.test.ts +38 -0
  275. package/src/lib/skill-router.ts +65 -4
  276. package/profiles/eu-tender-research/README.md +0 -48
  277. package/profiles/eu-tender-research/logo.png +0 -0
  278. package/profiles/eu-tender-research/profile.yaml +0 -108
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: muapi-ui-design
3
+ version: 0.1.0
4
+ description: Generate high-fidelity UI/UX mockups for mobile and web apps using Atomic Design principles — creates wireframes and design systems via muapi.ai
5
+ ---
6
+
7
+ # 🎨 UI/UX Design Mockup Skill
8
+
9
+ **A specialized skill for AI Agents to architect high-fidelity digital interfaces.**
10
+ The UI/UX Design skill translates product requirements into technical design specifications for high-fidelity mockups, wireframes, and design systems.
11
+
12
+ ## Core Competencies
13
+
14
+ 1. **Atomic Design Orchestration**: Structuring interfaces from Atoms (buttons) to Organisms (headers) for system consistency.
15
+ 2. **Platform-Specific Layouts**: Designing for responsive breakpoints across Mobile (iOS/Android) and Web (SaaS/E-commerce).
16
+ 3. **Design System Integration**: Specifying typography scales, spacing tokens, and color palettes (Hex/HSL).
17
+ 4. **Heuristic Awareness**: Ensuring designs follow established usability principles (Nielsen's 10 Heuristics).
18
+
19
+ ---
20
+
21
+ ## 🏗️ Technical Specification
22
+
23
+ ### 1. Intent Mapping Table
24
+
25
+ | Creative Intent | Style | Layout Pattern | Focus |
26
+ | :--- | :--- | :--- | :--- |
27
+ | **Enterprise SaaS** | Modern/Clean | Dashboard/Grid | Data Density |
28
+ | **Consumer App** | Glassmorphism | F-Pattern / Cards | Visual Flair |
29
+ | **E-commerce** | Minimalist | Z-Pattern / Product Grid | Conversion |
30
+ | **Portfolio** | Brutalist | Asymmetric | Identity |
31
+ | **Utility/Tool** | Neomorphism | Control Panel | Tactile Feedback |
32
+
33
+ ### 2. Design Tokens & Variables
34
+ - `Typography`: Geometric Sans (Inter/Roboto) for tech; Serif (Playfair) for luxury.
35
+ - `Spacing`: 8pt grid system for consistent rhythmic spacing.
36
+ - `Color`: High-contrast accessible palettes (WCAG 2.1 compliant).
37
+ - `Elevation`: Shadow-based depth vs. Flat design layers.
38
+
39
+ ---
40
+
41
+ ## 🧠 Prompt Optimization Protocol (Agent Instruction)
42
+
43
+ **Before calling the script, the Agent MUST expand the user's requirements into a Design Specification:**
44
+
45
+ 1. **ATOMIC STRUCTURE**: Mention specific components (Atoms): *Glassmorphic buttons*, *Input fields with 4px radius*, *Iconic sidebars*.
46
+ 2. **HIERARCHY**: Use layout patterns: *F-Pattern* for content-heavy sites, *Z-Pattern* for landing pages, *Grid-based Dashboards*.
47
+ 3. **TYPOGRAPHY & TOKENS**: Injected design tokens: *Inter Sans-serif*, *8pt spacing system*, *WCAG high-contrast colors*.
48
+ 4. **NO SKEUOMORPHISM**: Ensure the prompt enforces *Flat Design* or *Glassmorphism* to avoid "photograph-of-screen" results.
49
+
50
+ ---
51
+
52
+ ## 🚀 Protocol: Using the UI Designer
53
+
54
+ ### Step 1: Define the Product Brief
55
+ Provide the agent with a feature list and target audience.
56
+
57
+ ### Step 2: Invoke the Script
58
+ The `generate-mockup.sh` script expands the brief using internal knowledge of design systems.
59
+
60
+ ```bash
61
+ # Designing a Fintech Mobile App
62
+ bash scripts/generate-mockup.sh \
63
+ --desc "crypto wallet home with price charts" \
64
+ --platform mobile \
65
+ --theme dark \
66
+ --style glassmorphism
67
+ ```
68
+
69
+ ---
70
+
71
+ ## ⚠️ Constraints & Guardrails
72
+
73
+ - **Device Realism**: **MANDATORY** - Do not show hands, physical phones, or desks. Generate pure UI/UX mockups only.
74
+ - **Accessibility**: Avoid low-contrast text on bright backgrounds.
75
+ - **Complexity**: Keep "Atoms" consistent across a single page generation.
76
+ - **Text Rendering**: Use Flux for legible headers; specify placeholder text for smaller body copy.
77
+
78
+ ---
79
+
80
+ ## ⚙️ Implementation Details
81
+ This skill translates a high-level `DESCRIPTION` into a `UX_BRIEF` that specifies layout patterns, design tokens, and aesthetic constraints for the `core/media/generate-image.sh` primitive.
@@ -0,0 +1,49 @@
1
+ #!/bin/bash
2
+ # Expert Skill: UI/UX Design Mockup Generator
3
+ # Translates product requirements into design system directives.
4
+
5
+ PLATFORM="mobile"
6
+ STYLE="modern"
7
+ THEME="light"
8
+ DESCRIPTION=""
9
+
10
+ while [[ $# -gt 0 ]]; do
11
+ case $1 in
12
+ --platform) PLATFORM="$2"; shift 2 ;;
13
+ --style) STYLE="$2"; shift 2 ;;
14
+ --theme) THEME="$2"; shift 2 ;;
15
+ --desc) DESCRIPTION="$2"; shift 2 ;;
16
+ *) shift ;;
17
+ esac
18
+ done
19
+
20
+ if [ -z "$DESCRIPTION" ]; then
21
+ echo "Usage: bash generate-mockup.sh --desc 'travel app' [--platform mobile|web] [--style glassmorphism|brutalist] [--theme light|dark]"
22
+ exit 1
23
+ fi
24
+
25
+ # Design System Logic
26
+ if [ "$PLATFORM" == "mobile" ]; then
27
+ AR_FLAG="--aspect-ratio 9:16"
28
+ LAYOUT="Card-based, bottom navigation bar, 8pt grid system"
29
+ SYSTEM="iOS Human Interface Guidelines style"
30
+ else
31
+ AR_FLAG="--aspect-ratio 16:9"
32
+ LAYOUT="Sidebar navigation, grid layout, F-pattern hierarchy"
33
+ SYSTEM="Modern SaaS Design System style"
34
+ fi
35
+
36
+ # Technical UX Brief
37
+ EXPERT_PROMPT="[UX_BRIEF]
38
+ PLATFORM: $PLATFORM
39
+ CONTEXT: $DESCRIPTION
40
+ DESIGN_SYSTEM: $SYSTEM, $THEME mode
41
+ STYLE_TOKENS: $STYLE aesthetic, geometric sans-serif (Inter), high-contrast accessibility
42
+ LAYOUT_PATTERN: $LAYOUT, professional whitespace, vector icons
43
+ [EXECUTE] Generate a high-fidelity flat UI mockup. NO hands, NO physical devices, NO background clutter. Pure digital interface only."
44
+
45
+ # Call Core Primitive
46
+ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
47
+ CORE_SCRIPT="$SCRIPT_DIR/../../core-media/generate-image.sh"
48
+
49
+ bash "$CORE_SCRIPT" --prompt "$EXPERT_PROMPT" --model flux-dev $AR_FLAG --json
@@ -0,0 +1,61 @@
1
+ ---
2
+ slug: muapi-url-to-design
3
+ name: muapi-url-to-design
4
+ version: "1.0.0"
5
+ description: Analyze a website URL and generate a redesigned, improved UI — recreate the visual design with modern aesthetics, better hierarchy, and fresh brand direction.
6
+ acceptLicenseTerms: true
7
+ ---
8
+
9
+
10
+ # URL to Design
11
+
12
+ **Analyze a website URL and generate a redesigned, improved UI — recreate the visual design with modern aesthetics, better hierarchy, and fresh brand direction.**
13
+
14
+ ## Inputs
15
+
16
+ | Name | Type | Required | Default | Description |
17
+ |:---|:---|:---|:---|:---|
18
+ | `url` | text | yes | — | The website URL to analyze and redesign (e.g. "https://example.com/pricing"). |
19
+ | `page_type` | text | no | landing page | Type of page — "landing page", "pricing page", "product page", "dashboard", "about page". |
20
+ | `redesign_style` | text | no | modern, minimal, premium, dark mode | The target visual style for the redesign (e.g. "glassmorphism, vibrant gradient", "clean corporate, light mode"). |
21
+ | `keep_brand` | text | no | yes | Whether to keep existing brand colors/logo — "yes" or "no" (fully reimagine). |
22
+ | `screenshot` | image_url | no | — | Optional screenshot of the current page if URL cannot be crawled. |
23
+
24
+
25
+ ## Steps
26
+
27
+ ### Phase A — Redesign Generation
28
+
29
+ Submit the plan with TWO parallel steps:
30
+
31
+
32
+ 1. **Full-page redesign mockup** — If `{{screenshot}}` is provided, use `muapi image edit` (model=`gpt4o-edit`); otherwise use `muapi image generate` (model=`gpt4o-text-to-image`):
33
+ - Prompt: `Professional UI/UX redesign of a {{page_type}} for the website at {{url}}. {{redesign_style}} design. Modern web design, 2025 aesthetic. Includes: hero section with clear headline and CTA button, features/benefits section, social proof, clean footer. Pixel-perfect, Figma-quality mockup. Desktop viewport, 1440px width design.`
34
+ - If `{{keep_brand}}` is "no", add: `Completely reimagined brand identity, new color palette.`
35
+ - Aspect ratio: 9:16 (tall to show full page sections)
36
+
37
+ 2. **Mobile version mockup** — `muapi image generate` (model=`bytedance-seedream-v4.5`):
38
+ - Prompt: `Mobile-first responsive redesign of the same {{page_type}} — {{redesign_style}} style. iPhone 15 Pro frame, scrollable layout. Clean mobile navigation, thumb-friendly CTAs, optimized for 390px width. Modern 2025 mobile UI design.`
39
+ - Aspect ratio: 9:19.5
40
+
41
+ After generation:
42
+ - Present both desktop and mobile mockups side by side
43
+ - Provide a written summary of design improvements made
44
+ - Offer to generate specific sections (hero, pricing cards, testimonials) as separate assets
45
+
46
+ ## Notes
47
+ - If the URL is unreachable, ask the user to provide a screenshot or describe the current design.
48
+ - Always improve: typography hierarchy, whitespace, CTA visibility, and mobile responsiveness.
49
+
50
+ ## Trigger Keywords
51
+
52
+ `url to design`, `redesign website`, `website redesign`, `ui redesign`, `landing page design`, `page redesign`, `website to design`, `convert url to design`
53
+
54
+
55
+ ---
56
+
57
+ ## Notes for the Executing Agent
58
+
59
+ - This recipe is LLM-orchestrated: read each phase, gather any missing inputs from the user, then call `muapi` CLI commands. Use `muapi auth configure` first if `MUAPI_API_KEY` is unset.
60
+ - For model IDs without a CLI alias yet, fall back to the raw endpoint via `curl -X POST https://api.muapi.ai/api/v1/<endpoint> -H "x-api-key: $MUAPI_API_KEY" -H 'content-type: application/json' -d '{...}'` and poll with `muapi predict wait <request_id>`.
61
+ - Substitute `{{input_name}}` placeholders with the user's actual inputs before issuing each call.
@@ -0,0 +1,197 @@
1
+ ---
2
+ name: muapi-workflow
3
+ version: 0.1.0
4
+ description: Build, run, and visualize multi-step AI generation workflows. The AI architect translates natural language descriptions into connected node graphs — chain image generation, video creation, enhancement, and editing into automated pipelines.
5
+ ---
6
+
7
+ # AI Workflow Builder
8
+
9
+ Chain any combination of muapi.ai generation steps into automated pipelines. The AI architect converts your plain-language description into a runnable node graph.
10
+
11
+ ## Prerequisites
12
+
13
+ Always ensure the `muapi` CLI is up-to-date before running any commands. Reinstall from source at the start of every session:
14
+
15
+ ```bash
16
+ pip install --upgrade /path/to/muapi-cli
17
+ ```
18
+
19
+ Replace `/path/to/muapi-cli` with the actual path to the `muapi-cli` directory in the workspace (the directory containing `pyproject.toml`).
20
+
21
+ ## Core Operations
22
+
23
+ 1. **Generate** (`generate-workflow.sh`) — AI architect creates a workflow from a description
24
+ 2. **Discover** (`discover-workflow.sh`) — Find a relevant existing workflow by natural language
25
+ 3. **Edit** (`generate-workflow.sh --workflow-id`) — Modify an existing workflow with a prompt
26
+ 4. **Interactive Run** (`interactive-run.sh`) — Prompt for inputs and execute a workflow
27
+ 5. **Run** (`run-workflow.sh`) — Execute a workflow, poll node-by-node, collect outputs
28
+ 6. **CLI** (`muapi workflow`) — Full CRUD + visualization directly from the terminal
29
+
30
+ ---
31
+
32
+ ## Agent Guided Discovery & Selection
33
+
34
+ As an AI agent, you have the ability to read and understand the purpose of available workflows to select the best one for the user's task (e.g., "create a UGC video").
35
+
36
+ 1. **Discover**: Fetch the catalog of available workflows and their descriptions in JSON format.
37
+ ```bash
38
+ muapi workflow discover --output-json
39
+ ```
40
+ 2. **Match (Internal Reasoning)**: Use your LLM capabilities to analyze the `name`, `category`, and `description` fields of the returned workflows. Find the best match for the user's intent.
41
+ 3. **Analyze**: If you find a promising candidate, inspect its structure to ensure it has the necessary nodes and parameters.
42
+ ```bash
43
+ muapi workflow get <workflow_id>
44
+ ```
45
+ **CRITICAL RULE**: The output of `muapi workflow get` will include an "API Inputs" table. You MUST read this table to understand what inputs are required.
46
+ 4. **Choose & Confirm & Prompt User**:
47
+ - If one workflow is a perfect match, you MUST ask the user to provide the exact values for the required API inputs before executing it. **Never invent or guess input values (like prompts, URLs, etc.) on your own.**
48
+ - If multiple workflows are highly relevant, present the options to the user with their descriptions and ask them to confirm which one to use, and also ask for the required inputs.
49
+ - If no workflow matches the user's complex request, offer to **architect** a new one using `muapi workflow create`.
50
+
51
+ ### Example Agent Reasoning
52
+ > "The user wants a product promo video. I fetched the catalog using `discover`. I see two potential workflows:
53
+ > 1. `wf_123`: 'Product promo with background music'
54
+ > 2. `wf_456`: 'Simple video gen'
55
+ > I will analyze `wf_123` with `get`. It has the required nodes. I will suggest `wf_123` or just run it if the match is precise."
56
+
57
+ ---
58
+
59
+ ## Protocol: Building a Workflow
60
+
61
+ ### Step 1 — Describe your pipeline
62
+
63
+ ```bash
64
+ muapi workflow create "take a text prompt, generate an image with flux-dev, then upscale it to 4K"
65
+ ```
66
+
67
+ The architect returns a workflow with a unique ID and a node graph. Save the ID.
68
+
69
+ ### Step 2 — Inspect and visualize
70
+
71
+ ```bash
72
+ # Rich ASCII node graph in the terminal
73
+ muapi workflow get <workflow_id>
74
+
75
+ # Or raw JSON
76
+ muapi workflow get <workflow_id> --output-json
77
+ ```
78
+
79
+ ### Step 3 — Run it
80
+
81
+ ```bash
82
+ # Run with specific inputs
83
+ muapi workflow execute <workflow_id> \
84
+ --input "node1.prompt=a glowing crystal cave at midnight"
85
+
86
+ # Use --download to pull results locally
87
+ muapi workflow execute <workflow_id> \
88
+ --input "node1.prompt=a sunset" \
89
+ --download ./outputs
90
+ ```
91
+
92
+ ### Step 4 — Discovery (Optional)
93
+ If you want to reuse an existing workflow instead of creating a new one:
94
+
95
+ ```bash
96
+ # Search by keywords
97
+ muapi workflow discover "ugc video"
98
+ ```
99
+
100
+ ### Step 5 — Interactive Execution
101
+ Run a workflow and have the CLI prompt you for each required input:
102
+
103
+ ```bash
104
+ muapi workflow run-interactive <workflow_id>
105
+ ```
106
+
107
+ ---
108
+
109
+ ## Workflow Examples
110
+
111
+ ### Image Pipelines
112
+
113
+ ```bash
114
+ # Text → Image → Upscale
115
+ muapi workflow create "take a text prompt, generate with flux-dev, upscale the result"
116
+
117
+ # Text → Image → Background removal → Product shot
118
+ muapi workflow create "generate a product image with hidream, remove background, create professional product shot"
119
+ ```
120
+
121
+ ### Video Pipelines
122
+
123
+ ```bash
124
+ # Text → Video
125
+ muapi workflow create "generate a 10-second cinematic video from a text prompt using kling-master"
126
+
127
+ # Image → Video → Lipsync
128
+ muapi workflow create "animate an input image with seedance, then apply lipsync from an audio file"
129
+ ```
130
+
131
+ ---
132
+
133
+ ## Editing an Existing Workflow
134
+
135
+ ```bash
136
+ # Add a step
137
+ muapi workflow edit <id> --prompt "add a face-swap step after the image generation"
138
+
139
+ # Swap a model
140
+ muapi workflow edit <id> --prompt "change the video model from kling to veo3"
141
+ ```
142
+
143
+ ---
144
+
145
+ ## CLI Reference
146
+
147
+ ```bash
148
+ # List all your workflows
149
+ muapi workflow list
150
+
151
+ # Browse templates
152
+ muapi workflow templates
153
+
154
+ # Generate new workflow
155
+ muapi workflow create "text → flux image → upscale → face swap"
156
+
157
+ # Visualize a workflow
158
+ muapi workflow get <id>
159
+
160
+ # Execute with inputs
161
+ muapi workflow execute <id> --input "node1.prompt=a sunset"
162
+
163
+ # Monitor a run
164
+ muapi workflow status <run_id>
165
+
166
+ # Get outputs
167
+ muapi workflow outputs <run_id> --download ./results
168
+
169
+ # Edit with AI
170
+ muapi workflow edit <id> --prompt "add lipsync at the end"
171
+
172
+ # Rename / delete
173
+ muapi workflow rename <id> --name "Product Pipeline v2"
174
+ muapi workflow delete <id>
175
+ ```
176
+
177
+ ---
178
+
179
+ ## MCP Tools (for AI agents)
180
+
181
+ | Tool | Description |
182
+ |------|-------------|
183
+ | `muapi_workflow_list` | List user's workflows |
184
+ | `muapi_workflow_create` | AI architect: prompt → workflow |
185
+ | `muapi_workflow_get` | Get workflow definition + node graph |
186
+ | `muapi_workflow_execute` | Run with specific inputs |
187
+ | `muapi_workflow_status` | Node-by-node run status |
188
+ | `muapi_workflow_outputs` | Final output URLs |
189
+
190
+ ---
191
+
192
+ ## Constraints
193
+
194
+ - Workflows can contain any combination of muapi.ai nodes (image, video, audio, enhance, edit)
195
+ - Node outputs are automatically wired as inputs to downstream nodes
196
+ - `--sync` mode waits up to 120s for generation; use `--async` for complex workflows and poll separately
197
+ - Run timeouts: 10 minutes maximum per workflow execution
@@ -0,0 +1,18 @@
1
+ #!/bin/bash
2
+ # Assistant Skill: Discover Relevant Workflow
3
+ # Thin wrapper around muapi CLI.
4
+
5
+ QUERY=""
6
+ LIMIT=5
7
+
8
+ while [[ $# -gt 0 ]]; do
9
+ case $1 in
10
+ --query|-q) QUERY="$2"; shift 2 ;;
11
+ --limit) LIMIT="$2"; shift 2 ;;
12
+ *) shift ;;
13
+ esac
14
+ done
15
+
16
+ if [ -z "$QUERY" ]; then echo "Error: --query is required" >&2; exit 1; fi
17
+
18
+ muapi workflow discover "$QUERY" --limit "$LIMIT"
@@ -0,0 +1,33 @@
1
+ #!/bin/bash
2
+ # Expert Skill: AI Workflow Architect
3
+ # Thin wrapper around muapi CLI.
4
+
5
+ PROMPT=""
6
+ WORKFLOW_ID="" # Set to edit an existing workflow
7
+ ASYNC=false
8
+ VIEW=false
9
+ JSON_ONLY=false
10
+
11
+ while [[ $# -gt 0 ]]; do
12
+ case $1 in
13
+ --prompt|-p) PROMPT="$2"; shift 2 ;;
14
+ --workflow-id|-w) WORKFLOW_ID="$2"; shift 2 ;;
15
+ --async) ASYNC=true; shift ;;
16
+ --view) VIEW=true; shift ;;
17
+ --json) JSON_ONLY=true; shift ;;
18
+ *) shift ;;
19
+ esac
20
+ done
21
+
22
+ if [ -z "$PROMPT" ]; then echo "Error: --prompt is required" >&2; exit 1; fi
23
+
24
+ ARGS=()
25
+ [ "$ASYNC" = true ] && ARGS+=("--async")
26
+ [ "$VIEW" = true ] && ARGS+=("--view")
27
+ [ "$JSON_ONLY" = true ] && ARGS+=("--output-json")
28
+
29
+ if [ -n "$WORKFLOW_ID" ]; then
30
+ muapi workflow edit "$WORKFLOW_ID" --prompt "$PROMPT" "${ARGS[@]}"
31
+ else
32
+ muapi workflow create "$PROMPT" "${ARGS[@]}"
33
+ fi
@@ -0,0 +1,16 @@
1
+ #!/bin/bash
2
+ # Assistant Skill: Interactive Workflow Runner
3
+ # Thin wrapper around muapi CLI.
4
+
5
+ WORKFLOW_ID=""
6
+
7
+ while [[ $# -gt 0 ]]; do
8
+ case $1 in
9
+ --workflow-id|-w) WORKFLOW_ID="$2"; shift 2 ;;
10
+ *) shift ;;
11
+ esac
12
+ done
13
+
14
+ if [ -z "$WORKFLOW_ID" ]; then echo "Error: --workflow-id is required" >&2; exit 1; fi
15
+
16
+ muapi workflow run-interactive "$WORKFLOW_ID"
@@ -0,0 +1,20 @@
1
+ #!/bin/bash
2
+ # Assistant Skill: List Workflows
3
+ # Thin wrapper around muapi CLI.
4
+
5
+ JSON_ONLY=false
6
+ LIMIT=20
7
+
8
+ while [[ $# -gt 0 ]]; do
9
+ case $1 in
10
+ --json) JSON_ONLY=true; shift ;;
11
+ --limit) LIMIT="$2"; shift 2 ;;
12
+ *) shift ;;
13
+ esac
14
+ done
15
+
16
+ if [ "$JSON_ONLY" = true ]; then
17
+ muapi workflow list --output-json
18
+ else
19
+ muapi workflow list | head -n $((LIMIT + 5))
20
+ fi
@@ -0,0 +1,34 @@
1
+ #!/bin/bash
2
+ # Expert Skill: Run & Visualize an AI Workflow
3
+ # Thin wrapper around muapi CLI.
4
+
5
+ WORKFLOW_ID=""
6
+ INPUT_ARGS=()
7
+ WEBHOOK=""
8
+ ASYNC=false
9
+ DOWNLOAD_DIR=""
10
+
11
+ while [[ $# -gt 0 ]]; do
12
+ case $1 in
13
+ --workflow-id|-w) WORKFLOW_ID="$2"; shift 2 ;;
14
+ --input|-i) INPUT_ARGS+=("$2"); shift 2 ;;
15
+ --webhook) WEBHOOK="$2"; shift 2 ;;
16
+ --async) ASYNC=true; shift ;;
17
+ --download|-d) DOWNLOAD_DIR="$2"; shift 2 ;;
18
+ *) shift ;;
19
+ esac
20
+ done
21
+
22
+ if [ -z "$WORKFLOW_ID" ]; then echo "Error: --workflow-id is required" >&2; exit 1; fi
23
+
24
+ ARGS=()
25
+ for ITEM in "${INPUT_ARGS[@]}"; do ARGS+=("--input" "$ITEM"); done
26
+ [ -n "$WEBHOOK" ] && ARGS+=("--webhook" "$WEBHOOK")
27
+ [ "$ASYNC" = true ] && ARGS+=("--no-wait")
28
+ [ -n "$DOWNLOAD_DIR" ] && ARGS+=("--download" "$DOWNLOAD_DIR")
29
+
30
+ if [ ${#INPUT_ARGS[@]} -gt 0 ]; then
31
+ muapi workflow execute "$WORKFLOW_ID" "${ARGS[@]}"
32
+ else
33
+ muapi workflow run "$WORKFLOW_ID" "${ARGS[@]}"
34
+ fi
@@ -0,0 +1,173 @@
1
+ ---
2
+ slug: muapi-youtube-shorts
3
+ name: muapi-youtube-shorts
4
+ version: "2.0.0"
5
+ description: Auto-generate viral 9:16 YouTube Shorts (or TikTok / Reels clips) from a long-form video. Thin platform-aware wrapper around the AI Clipping skill — picks sensible defaults for short-form social platforms (9:16, 30–60s sweet spot) and delegates the actual highlight extraction + crop to muapi.ai's `/ai-clipping` endpoint.
6
+ acceptLicenseTerms: true
7
+ ---
8
+
9
+ # YouTube Shorts Generator
10
+
11
+ **Long video → ranked vertical short clips, tuned for short-form social.**
12
+
13
+ This skill is a platform-aware preset over the [AI Clipping](../../edit/ai-clipping/) primitive. It picks the right aspect ratio and clip count for the target platform and delegates highlight extraction, dedupe, and face-tracked auto-crop to muapi.ai's managed `/ai-clipping` endpoint.
14
+
15
+ Reference implementation: https://github.com/SamurAIGPT/AI-Youtube-Shorts-Generator
16
+ Underlying API: https://muapi.ai/playground/ai-clipping
17
+
18
+ ---
19
+
20
+ ## When to Use This vs. AI Clipping
21
+
22
+ | Use this skill when… | Use [AI Clipping](../../edit/ai-clipping/) directly when… |
23
+ |:---|:---|
24
+ | Target is YouTube Shorts / TikTok / Reels | You want full control over aspect / count |
25
+ | You want platform-tuned defaults | You want raw timestamps (`--coords-only`) |
26
+ | You'd rather pass `--platform tiktok` than think about ratios | You're integrating into a custom renderer |
27
+
28
+ ---
29
+
30
+ ## Agent Execution Protocol
31
+
32
+ ### Step 1 — Collect Inputs
33
+
34
+ | Input | Default | Notes |
35
+ |:---|:---|:---|
36
+ | `--source` | — | YouTube URL, hosted mp4 URL, or local file |
37
+ | `--platform` | `shorts` | `shorts` \| `tiktok` \| `reels` \| `feed` (sets ratio + count defaults) |
38
+ | `--num-clips` | platform default | Override clip count |
39
+ | `--aspect-ratio` | platform default | Override aspect ratio |
40
+
41
+ If the user gave only a URL, run with platform defaults — don't block.
42
+
43
+ ---
44
+
45
+ ### Step 2 — Verify Prerequisites
46
+
47
+ - `muapi-cli` installed and authed (`muapi auth configure`)
48
+ - `MUAPI_API_KEY` available
49
+
50
+ That's it. Transcription, highlight ranking, dedupe, and cropping all run server-side — no `ffmpeg`, no Python, no Whisper, no LLM keys needed locally.
51
+
52
+ ---
53
+
54
+ ### Step 3 — Run the Pipeline
55
+
56
+ ```bash
57
+ bash library/social/youtube-shorts/scripts/run-youtube-shorts.sh \
58
+ --source "<YOUTUBE_URL>" \
59
+ --platform shorts \
60
+ --num-clips 5 \
61
+ --view
62
+ ```
63
+
64
+ The script:
65
+ 1. Resolves the source (uploads local files to muapi CDN if needed).
66
+ 2. Picks platform defaults if `--aspect-ratio` / `--num-clips` aren't passed.
67
+ 3. Calls `muapi edit clipping` (the `/ai-clipping` endpoint) with the chosen params.
68
+ 4. Polls until done, prints a ranked summary, optionally downloads / opens clips.
69
+
70
+ ---
71
+
72
+ ## What Happens Server-Side
73
+
74
+ The `/ai-clipping` endpoint runs the full pipeline:
75
+
76
+ - **Transcribes** the audio.
77
+ - **Ranks highlights** through a virality framework — hook moments, emotional peaks, opinion bombs, revelation moments, conflict, quotable lines, story peaks, practical value.
78
+ - **Dedupes** overlapping candidates by score.
79
+ - **Top-N selects** and **face-tracks** vertical crops.
80
+
81
+ Each clip ships with score (0–100), opening hook line, and a one-sentence "why it works" reason.
82
+
83
+ ---
84
+
85
+ ## Platform Defaults
86
+
87
+ | Platform | Flag | Aspect | Default clips | Notes |
88
+ |:---|:---|:---|:---|:---|
89
+ | YouTube Shorts | `--platform shorts` | `9:16` | 3 | Hook in first 1s |
90
+ | TikTok | `--platform tiktok` | `9:16` | 5 | Higher energy, longer ok |
91
+ | Instagram Reels | `--platform reels` | `9:16` | 3 | Hook in first 1s |
92
+ | Instagram Feed | `--platform feed` | `1:1` | 3 | Static-feel works well |
93
+
94
+ Override any default with `--aspect-ratio` / `--num-clips`.
95
+
96
+ ---
97
+
98
+ ## Quick Invocation Patterns
99
+
100
+ **Single video, defaults:**
101
+ ```bash
102
+ bash run-youtube-shorts.sh --source "https://youtube.com/watch?v=VIDEO_ID"
103
+ ```
104
+
105
+ **TikTok preset — 5 clips, view in player:**
106
+ ```bash
107
+ bash run-youtube-shorts.sh --source "<URL>" --platform tiktok --view
108
+ ```
109
+
110
+ **Square Instagram feed clips:**
111
+ ```bash
112
+ bash run-youtube-shorts.sh --source "<URL>" --platform feed --num-clips 3
113
+ ```
114
+
115
+ **Batch — `urls.txt` with one URL per line:**
116
+ ```bash
117
+ xargs -a urls.txt -I{} bash run-youtube-shorts.sh --source "{}"
118
+ ```
119
+
120
+ **Async submit (returns request_id, poll later):**
121
+ ```bash
122
+ REQUEST_ID=$(bash run-youtube-shorts.sh --source "<URL>" --async --output-json - | jq -r '.request_id')
123
+ muapi predict wait "$REQUEST_ID" --download ./outputs
124
+ ```
125
+
126
+ ---
127
+
128
+ ## Output Schema
129
+
130
+ ```json
131
+ {
132
+ "source_video_url": "...",
133
+ "shorts": [
134
+ {
135
+ "title": "The one mistake that cost me $50K",
136
+ "start_time": 124.3,
137
+ "end_time": 187.6,
138
+ "score": 92,
139
+ "hook_sentence": "Nobody talks about this, but it killed my first startup...",
140
+ "virality_reason": "Opens with a number + regret, peaks on a contrarian lesson",
141
+ "clip_url": "https://.../short_1.mp4"
142
+ }
143
+ ]
144
+ }
145
+ ```
146
+
147
+ When reporting back, surface for each clip: rank, score, time range, title, hook, and clip URL.
148
+
149
+ ---
150
+
151
+ ## Common Mistakes to Avoid
152
+
153
+ 1. **Wrong aspect ratio for the platform** — Shorts / TikTok / Reels are `9:16`. The platform preset handles this; only override if you know why.
154
+ 2. **Padding to hit `--num-clips`** — if the API returns fewer survivors, return what you have. Don't ship low-score filler.
155
+ 3. **Re-running on a 404'd clip URL** — re-fetch the same `request_id` with `muapi predict wait <id>` rather than re-clipping.
156
+
157
+ ---
158
+
159
+ ## Failure Modes
160
+
161
+ - **API key missing or rejected** — surface the error; don't fabricate a key.
162
+ - **Job timed out** — bump `--poll-timeout` and retry.
163
+ - **Source URL not reachable** — upload the file via `muapi upload file` and pass the returned URL.
164
+ - **Fewer clips returned than requested** — source had fewer rankable highlights. Return what came back with a note.
165
+
166
+ ---
167
+
168
+ ## Done Criteria
169
+
170
+ The skill is done when:
171
+ 1. `result.shorts` has up to `num_clips` entries, each with a working `clip_url`.
172
+ 2. The user has been shown the ranked list (score, time range, title, hook, URL).
173
+ 3. If `--output-json` was set, the file exists and parses.