@kolbo/kolbo-code-linux-arm64-musl 2.2.4 → 2.3.0

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 (26) hide show
  1. package/bin/kolbo +0 -0
  2. package/package.json +1 -1
  3. package/skills/kolbo/SKILL.md +177 -1651
  4. package/skills/kolbo/VERSION +1 -0
  5. package/skills/kolbo/references/models/creative-director.md +106 -0
  6. package/skills/kolbo/references/models/gpt-image.md +111 -0
  7. package/skills/kolbo/references/models/html-presentation.md +139 -0
  8. package/skills/kolbo/references/models/landing-page.md +135 -0
  9. package/skills/kolbo/references/models/music.md +120 -0
  10. package/skills/kolbo/references/models/nano-banana.md +97 -0
  11. package/skills/kolbo/references/models/prompt-copilot.md +133 -0
  12. package/skills/kolbo/references/models/seedance.md +90 -0
  13. package/skills/kolbo/references/models/veo.md +110 -0
  14. package/skills/kolbo/references/models/visual-code.md +80 -0
  15. package/skills/kolbo/references/workflows/app-builder.md +41 -0
  16. package/skills/kolbo/references/workflows/cost-and-validation.md +138 -0
  17. package/skills/kolbo/references/workflows/dtc-ads.md +126 -0
  18. package/skills/kolbo/references/workflows/marketing-studio.md +157 -0
  19. package/skills/kolbo/references/workflows/marketplace-cards.md +146 -0
  20. package/skills/kolbo/references/workflows/media-library.md +76 -0
  21. package/skills/kolbo/references/workflows/product-photoshoot.md +199 -0
  22. package/skills/kolbo/references/workflows/production-log.md +155 -0
  23. package/skills/kolbo/references/workflows/research-first.md +174 -0
  24. package/skills/kolbo/references/workflows/transcription.md +163 -0
  25. package/skills/kolbo/references/workflows/troubleshooting.md +73 -0
  26. package/skills/kolbo/references/workflows/visual-dna.md +233 -0
@@ -0,0 +1 @@
1
+ 0.4.0
@@ -0,0 +1,106 @@
1
+ <!-- PARITY: this file mirrors getCreativeDirectorPromptSystemPrompt() in
2
+ kolbo-api/src/config/systemPrompt.js (lines ~1062–1155).
3
+ When that function changes, update this file in the same session. -->
4
+
5
+ # Creative Director — Multi-Scene Prompt Rules
6
+
7
+ Load this file when the user wants **2–8 related outputs from one brief** — storyboards, ad campaigns, character lookbooks, multi-angle/multi-pose sets, scene variations. For single-image work see `models/gpt-image.md` / `models/nano-banana.md`. For single-clip video see `models/seedance.md` / `models/veo.md`.
8
+
9
+ **Kolbo MCP routing:** always call `generate_creative_director` (NEVER fire ≥2 `generate_image` calls in a loop). Pass `scene_count: 1–8`, optional `visual_dna_ids`, `reference_images`, `moodboard_id`, `workflow_type: "video"` for clips, `model` to pin a specific image/video model.
10
+
11
+ ## What the Creative Director Tool Is
12
+
13
+ A multi-scene batch generator. Submit 1–8 scenes in one go and the tool fans them out in parallel into images or videos, optionally locked to a character/product (Visual DNA) and a mood/style (Moodboard). Total wall time = slowest scene, not the sum.
14
+
15
+ ### The Three Modes
16
+ - **Photo Auto Pilot** — each scene = one image. Optional reference images for style/subject. Best for: campaign batches, product shoots, character lookbooks, ad variants. Pass `workflow_type: "image"` (or omit — image is default).
17
+ - **Video Auto Pilot** — each scene = one short video clip. Optional reference image per scene anchors the starting frame. Best for: storyboards, mood reels, ad teasers, character action sequences. Pass `workflow_type: "video"`.
18
+ - **Cinema Manual** — per-scene **first frame + last frame** + per-scene prompt. Full cinematic control over composition transitions. Best for: hero shots, controlled camera moves, deliberate edits.
19
+
20
+ ### Identity & Style Locks
21
+ - **Visual DNA** — attach a character/product preset via `visual_dna_ids` to lock identity across all scenes. Up to **8 Visual DNAs** can be active at once (e.g. main character + product + side character). See `workflows/visual-dna.md` for the `@name` syntax — every DNA must be tagged inside the prompt.
22
+ - **Moodboard** — attach `moodboard_id` (or `moodboard_ids`) for a curated mood/style reference that anchors the aesthetic of the whole batch.
23
+ - When the user mentions a recurring character/product, **ask** if they want to use a Visual DNA and recommend it. Same for a consistent aesthetic → recommend a Moodboard.
24
+
25
+ ## CRITICAL Kolbo Platform Rules
26
+
27
+ - **Aspect ratio and resolution are MCP-tool params** (`aspect_ratio`, `resolution`) — NEVER include "16:9", "9:16", "1024x1536", "2K", or any size syntax inside the scene prompts.
28
+ - **Model selection is the `model` param** — never hardcode "Nano Banana", "Veo", "Seedance", "Flux" inside the scene text.
29
+ - Output scenes in the exact format below — anything else breaks the parser.
30
+ - **Never pass `num_images` to `generate_creative_director`** — use `scene_count` (1–8). `num_images` is for `generate_image` (same prompt, different seeds).
31
+
32
+ ## The Output Format (non-negotiable)
33
+
34
+ All scenes go in **ONE fenced code block** in this exact shape:
35
+ ```
36
+ Scene 1: <prompt for scene 1>
37
+ Scene 2: <prompt for scene 2>
38
+ Scene 3: <prompt for scene 3>
39
+ ...
40
+ ```
41
+ - One scene per line. Each line starts with `Scene N:` followed by a single concise prompt.
42
+ - **No meta-commentary inside the block**: no "Output:", "Tips:", "Notes:", resolution, dimensions, or "this scene…" preamble.
43
+ - Number sequentially from 1. Hard cap at 8 scenes.
44
+
45
+ ## How to Build the Batch
46
+
47
+ ### Step 1 — Pick the right mode
48
+ - Single static asset per scene → **Photo Auto Pilot**
49
+ - Motion / camera moves → **Video Auto Pilot**
50
+ - Controlled first→last frame transitions → **Cinema Manual**
51
+
52
+ ### Step 2 — Decide the narrative arc
53
+ A great batch isn't 8 random shots — it's a sequence with intent. Pick one structure:
54
+ - **Campaign**: establishing → product hero → lifestyle → detail → close
55
+ - **Storyboard**: setup → inciting action → escalation → climax → resolution
56
+ - **Character lookbook**: full body → 3/4 → portrait → action → environment
57
+ - **Ad concept**: hook → tension → reveal → CTA
58
+ - **Variant exploration**: same concept, varying angle/lighting/mood/palette
59
+
60
+ ### Step 3 — Write each scene under the right framework
61
+
62
+ **Photo Auto Pilot scene prompt** (image instruction):
63
+ - Vary at least one axis between scenes: angle, lighting, mood, framing, palette.
64
+ - Concise: 1–3 sentences. Concept-led, not keyword soup.
65
+ - Subject + Action + Setting + Style cue.
66
+ - If a Visual DNA is attached, refer to the subject by `@<dna-name>` — the DNA does identity work, don't re-describe it every scene.
67
+
68
+ **Video Auto Pilot scene prompt** (motion instruction):
69
+ - The model can see the reference image — **describe what happens, not what's already there**.
70
+ - Always name a **camera move** per scene: `dolly in`, `pull-back`, `arc orbit`, `tracking shot`, `handheld natural lag`, `crane up`, `static drift`, `crash zoom`.
71
+ - Format: `<action> + <camera move>`. Short and action-led.
72
+ - Don't re-describe what the image already shows; describe the verb.
73
+
74
+ **Cinema Manual scene prompt** (transition instruction):
75
+ - The user provides first frame + last frame. Describe what bridges them: motion, time-passage, camera move, transformation.
76
+ - Be explicit about the transition type: `smooth dolly between`, `time-lapse`, `match cut`, `whip pan reveal`.
77
+
78
+ ### Step 4 — Apply consistency rules
79
+ - If recurring subject: keep description anchored to the same noun across scenes ("the woman", "the bottle") or use a single `@<dna-name>` consistently. Don't rename her in scene 4.
80
+ - If recurring location: same world descriptors throughout (don't switch "Tel Aviv rooftop" to "downtown LA" mid-batch unless that's the arc).
81
+ - Vary lighting/angle/composition between scenes — never two consecutive identical setups.
82
+
83
+ ## Output Discipline
84
+
85
+ - Final scenes in ONE fenced code block in `Scene N:` format. **No model names, no resolutions, no aspect ratios inside scenes.**
86
+ - When summarizing the call to the user, state separately:
87
+ - **Mode:** Photo Auto Pilot / Video Auto Pilot / Cinema Manual — one-line why
88
+ - **Recommended model:** (Nano Banana 2 / Nano Banana Pro / GPT Image 2 for photo; Veo / Seedance 2 / Kling for video) — one-line why
89
+ - **Aspect / Resolution preset:** what to pass — one-line why
90
+ - **Visual DNA / Moodboard:** recommend if applicable, or "—" if not
91
+ - **Why this arc works:** 1 line on the narrative choice
92
+ - Reply explanations in the user's language; scenes themselves in English.
93
+
94
+ ## After Generation
95
+
96
+ **Share results as individual URLs, one per scene. Do NOT create an HTML grid artifact or any combined layout.** Just list each scene's title and its image URL on separate lines — the desktop canvas already renders them as a gallery. See SKILL.md "Generated URLs in chat".
97
+
98
+ ## Character-Driven Video — Frames First
99
+
100
+ For any ad / story / scene-based video **created from scratch** featuring a Visual DNA character, do NOT jump straight from DNA to per-shot video. The right flow is:
101
+
102
+ 1. **Generate the shot frames first** as still images via `generate_creative_director` with `scene_count` + `visual_dna_ids` + `workflow_type: "image"`. DNA is strongest in image generation; the user can approve cheaply before any expensive video runs.
103
+ 2. **Confirm the frames with the user** if there are more than ~3 shots, or if the user hasn't said "go straight to video."
104
+ 3. **Animate each frame** with `generate_video_from_image`, passing each approved frame as `image_url`.
105
+
106
+ Skip frames-first only when the user says "go straight to video / skip the storyboard", on single-shot quick experiments, or when the user supplies their own approved frames.
@@ -0,0 +1,111 @@
1
+ <!-- PARITY: this file mirrors getGptImagePromptSystemPrompt() in
2
+ kolbo-api/src/config/systemPrompt.js (lines ~858–965).
3
+ When that function changes, update this file in the same session. -->
4
+
5
+ # GPT Image 2 — Prompt Rules
6
+
7
+ Load this file when the user wants a **GPT Image 2 / gpt-image-2** image (OpenAI). For other image models see `models/nano-banana.md`, `models/creative-director.md`, or `models/prompt-copilot.md`.
8
+
9
+ **Kolbo MCP routing:** call `generate_image` (text-to-image) or `generate_image_edit` (edits with `source_images`). Pass `model: "gpt-image-2"` when the user named it; otherwise consult `list_models({ type: "text_to_img" })`.
10
+
11
+ ## CRITICAL Kolbo Platform Rules
12
+
13
+ - **Resolution and aspect ratio are MCP-tool params** (`aspect_ratio`, `resolution`) — NEVER include `size=`, `1024x1536`, aspect-ratio tags, or any resolution syntax inside the `prompt` field.
14
+ - Pass aspect / resolution as separate tool parameters. Quality (`low` / `medium` / `high`) is its own param too — never bake it into the prompt text.
15
+ - Do not write Python, `client.images.generate`, OpenAI SDK code, or `size=` keyword arguments. The user is generating through Kolbo's MCP tools.
16
+
17
+ ## Universal Prompting Rules (apply to EVERY prompt)
18
+
19
+ - **Structure + goal**: write prompts in a consistent order — background/scene → subject → key details → constraints → declared intended use (ad / UI mock / infographic / poster / logo / etc.). The "intended use" line sets the mode and polish level.
20
+ - **Format**: prefer skimmable templates over clever syntax. Use short labeled segments or line breaks for complex requests. Minimal, descriptive paragraph, JSON-like, instruction-style, or tag-based all work — pick whichever is most maintainable for that asset.
21
+ - **Specificity + quality cues**: be concrete about materials, shapes, textures, and medium (photo / watercolor / 3D render / vector). Add targeted quality levers only when needed (`film grain`, `textured brushstrokes`, `macro detail`).
22
+ - **Photorealism trigger**: include the literal word **"photorealistic"** to engage the model's photorealistic mode. Supporting phrases: "real photograph", "taken on a real camera", "professional photography", "iPhone photo", "35mm film". Camera specs (lens mm, aperture) work for high-level look but are loosely interpreted — use for vibe, not physics.
23
+ - **Composition**: specify framing/viewpoint (close-up, wide, top-down), perspective (eye-level, low-angle), lighting/mood (soft diffuse, golden hour, high-contrast). If layout matters, call out placement ("logo top-right", "subject centered, negative space on left").
24
+ - **People, pose, action**: describe scale, body framing, gaze, object interactions ("full body visible, feet included", "looking down at the open book, not at the camera", "hands naturally gripping the handlebar").
25
+ - **Constraints — what changes vs what stays**: state exclusions and invariants explicitly. For edits use **"change only X" + "keep everything else the same"**, and re-state the preserve list on every iteration to prevent drift. Common invariants: identity, geometry, layout, brand elements, camera angle, saturation, contrast, labels, surrounding objects. Always include "no watermark, no extra text, no logos/trademarks" unless the brief specifies otherwise.
26
+ - **Text in images**: put literal text in **quotes** or **ALL CAPS**, specify typography (font style, size, color, placement). For tricky words / brand names, spell letter-by-letter. Recommend quality **high** when text is small, dense, or multi-font.
27
+ - **Multi-image inputs**: reference each input by number with a short description ("Image 1: product photo… Image 2: style reference…") and describe the interaction ("apply Image 2's style to Image 1", "place the dog from Image 2 next to the woman in Image 1"). Use `@image1` / `@image2` tags — see `workflows/visual-dna.md`.
28
+ - **Iterate, don't overload**: prefer a clean base prompt + single-change follow-ups ("make lighting warmer", "remove the extra tree", "restore the original background") over one giant prompt.
29
+
30
+ ## Latency vs Fidelity (recommend `quality` param)
31
+
32
+ - **low**: high-volume batches, drafts, ideation, latency-sensitive cases. Often "good enough" — default for variant exploration.
33
+ - **medium**: balanced. Style probing, normal exploration.
34
+ - **high**: final assets, small/dense text, multi-font layouts, close-up portraits, identity-sensitive edits, infographics, diagrams, posters, UI with labels, scientific visuals, slides with charts/footnotes.
35
+
36
+ ## Use Cases (text → image)
37
+
38
+ ### Infographics, diagrams, scientific visuals, slides/charts
39
+ - Treat as artifact spec, not illustration request. Name exact deliverable. Define hierarchy. Provide real text/data verbatim in quotes.
40
+ - Demand: readable typography, polished spacing, no decorative clutter, no stock-photo treatment.
41
+ - Recommend: `quality: "high"`, landscape `aspect_ratio` for deck/slide outputs.
42
+
43
+ ### Photorealism
44
+ - Prompt as if a real photo is being captured in the moment. Use photography language (lens, lighting, framing). Explicitly ask for **real texture** — pores, wrinkles, fabric wear, imperfections.
45
+ - Avoid words that imply studio polish ("glamorized", "heavily retouched") unless that's the brief.
46
+
47
+ ### Logos
48
+ - Brand personality + use case + clean, original mark + strong silhouette + balanced negative space + scales from small to large. Flat design, minimal strokes, no gradients unless essential. Plain background, generous padding, centered. "Original, non-infringing".
49
+ - Recommend: `quality: "medium"`, square or portrait `aspect_ratio`; pass `num_images: 4` for variants.
50
+
51
+ ### Ads / marketing creatives
52
+ - Write like a creative brief: brand, audience, culture, concept, composition, exact copy. Let the model make taste decisions inside boundaries.
53
+ - Quote the tagline verbatim, demand exactly one rendering, integrated into the layout.
54
+
55
+ ### Story-to-comic / multi-panel
56
+ - Define the narrative as a sequence of clear visual beats — one per panel. Number each panel and describe action concretely. For multi-panel sets, prefer `generate_creative_director` with `scene_count` — see `models/creative-director.md`.
57
+
58
+ ### UI mockups
59
+ - Describe the product **as if it already exists**. Focus on layout, hierarchy, spacing, real interface elements. Avoid concept-art language. Place inside a device frame when relevant ("iPhone frame").
60
+
61
+ ### Translation in images (edit)
62
+ - "Translate the text to <lang>. Do not change any other aspect of the image. Preserve typography style, placement, spacing, and hierarchy. Translate verbatim. No reflow unless necessary. Do not edit logos, icons, or imagery."
63
+
64
+ ## Use Cases (text + image → image, edits)
65
+
66
+ For edits, the prompt should be tight and constraint-heavy. Call `generate_image_edit` with `source_images: [...]`.
67
+
68
+ ### Style transfer
69
+ - "Use the same style from the input image. Generate <new subject/scene>. Keep <palette/texture/brushwork> consistent. Background: <X>. Framing: <Y>. No extra elements."
70
+
71
+ ### Virtual try-on
72
+ - Lock the person (face, body shape, pose, hair, expression). Change garments only. Demand realistic fit (draping, folds, occlusion), consistent lighting and shadows so it doesn't look pasted on. No accessories/text/logos unless asked.
73
+
74
+ ### Drawing → photoreal render
75
+ - "Preserve exact layout, proportions, perspective. Add realism via plausible materials, lighting, environment. Do not add new elements or text."
76
+
77
+ ### Product mockup / extraction
78
+ - Plain opaque background, centered product, crisp silhouette, no halos/fringing. Preserve geometry and label legibility exactly. Only light polishing + subtle contact shadow. No restyling.
79
+
80
+ ### Marketing creative with in-image text
81
+ - Quote copy exactly. Demand "verbatim, no extra characters, exactly once". Specify font style, contrast, kerning, placement.
82
+
83
+ ### Lighting / weather transformation
84
+ - Change ONLY environmental conditions (lighting direction/quality, shadows, atmosphere, precipitation, wetness). Preserve identity, geometry, camera angle, object placement.
85
+
86
+ ### Object removal
87
+ - "Remove the <X>. Do not change anything else." Keep edits surgical. Re-state every invariant.
88
+
89
+ ### Person → scene compositing
90
+ - Ground realism: natural lighting, believable detail, no cinematic grading unless asked. Lock subject identity, expression, body. Higher input fidelity helps likeness across larger scene edits.
91
+
92
+ ### Multi-image referencing / compositing
93
+ - Specify which input to transplant ("the dog from `@image2`"), where it goes ("right next to the woman in `@image1`"), and what stays ("scene, background, framing"). Match lighting, perspective, scale, and shadows.
94
+
95
+ ### Interior design swap (precision edit)
96
+ - "Replace ONLY <object> with <new object>. Preserve camera angle, room lighting, floor shadows, surrounding objects. Photorealistic contact shadows and fabric texture."
97
+
98
+ ### Character consistency across pages (children's book / story art)
99
+ - Step 1: establish a **character anchor** — lock appearance, proportions, outfit, palette, personality on a plain background. Better yet: create a Visual DNA (see `workflows/visual-dna.md`).
100
+ - Step 2+: feed the anchor (or DNA via `visual_dna_ids`) as input. "Continue the story using `@<dna-name>`. Do not redesign. Same <outfit/features/palette>. New scene: <X>."
101
+
102
+ ## Output Discipline
103
+
104
+ - Pass the prompt as the `prompt` field on `generate_image` / `generate_image_edit`.
105
+ - **NEVER** include resolution/size/aspect/ratio strings inside the prompt body.
106
+ - When summarizing the call to the user, mention 3 things separately from the prompt:
107
+ - **Aspect / Resolution preset:** `<portrait | landscape | square | wide / 2K>` with a one-line why
108
+ - **Quality:** `<low | medium | high>` with a one-line why
109
+ - **Why this works:** 1 line on the key prompting choice (constraint clarity / text fidelity / identity lock / etc.)
110
+ - If the user asks in any language other than English, write explanations in their language but keep the prompt itself English.
111
+ - Suggest small, single-change iterations for follow-ups rather than re-writing the whole prompt.
@@ -0,0 +1,139 @@
1
+ <!-- PARITY: this file mirrors getHtmlPresentationSystemPrompt() + HTML_ARTIFACT_BOILERPLATE
2
+ in kolbo-api/src/config/systemPrompt.js (lines ~1377–1515).
3
+ When that function changes, update this file in the same session. -->
4
+
5
+ # HTML Presentation — Build Rules
6
+
7
+ Load this file when the user wants to **build / create / generate an HTML presentation, slide deck, or pitch deck**. For landing pages see `models/landing-page.md`; for any other interactive HTML artifact (dashboard, game, chart, widget) see `models/visual-code.md`.
8
+
9
+ **Kolbo Code routing:** write the artifact as a single HTML block in your reply. The Kolbo Code panel renders it as a previewable artifact card. Optionally call `publish_html_artifact({ title, content })` afterward to get a public `sites.kolbo.ai` URL.
10
+
11
+ ## 🚨 NON-NEGOTIABLE: Viewport Fitting
12
+
13
+ Every single slide MUST fit exactly within 100vh. **No scrolling within a slide, ever.** If content doesn't fit, SPLIT into multiple slides. This is the #1 rule, no exceptions.
14
+
15
+ Apply these invariants to EVERY slide in EVERY deck:
16
+ - Every `.slide` element has: `height: 100vh; height: 100dvh; overflow: hidden;` and a centered flex/grid layout.
17
+ - ALL font sizes and spacing use `clamp(min, preferred, max)` — **never fixed px/rem**. Example: `font-size: clamp(2.5rem, 5vw, 5rem);`.
18
+ - Content containers need explicit `max-height` constraints.
19
+ - Images: `max-height: min(50vh, 400px); object-fit: contain;`.
20
+ - Include short-viewport breakpoints: `@media (max-height: 700px)`, `(max-height: 600px)`, `(max-height: 500px)` — reduce font sizes / hide decoration / tighten gaps at each.
21
+ - Add `@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } }`.
22
+ - Never negate CSS functions directly. `-clamp()` is silently ignored. Use `calc(-1 * clamp(...))`.
23
+
24
+ ## 🚨 NON-NEGOTIABLE: Content Density Limits per Slide
25
+
26
+ | Slide Type | Maximum Content |
27
+ | -------------- | --------------- |
28
+ | Title slide | 1 heading + 1 subtitle + optional tagline |
29
+ | Content slide | 1 heading + 4–6 bullets OR 1 heading + 2 short paragraphs |
30
+ | Feature grid | 1 heading + max 6 cards (2×3 or 3×2) |
31
+ | Code slide | 1 heading + 8–10 lines of code max |
32
+ | Quote slide | 1 quote (≤3 lines) + attribution |
33
+ | Image slide | 1 heading + 1 image (max 60vh height) |
34
+
35
+ **Content exceeds limits? Split into more slides. Never cram, never shrink fonts to fit, never enable scrolling.**
36
+
37
+ ## Deck Length & Structure
38
+
39
+ - **Default 8–12 slides** unless the user specifies otherwise. **Hard cap 16 slides** — bigger decks become unwieldy.
40
+ - Pick a structure based on the purpose:
41
+ - **Pitch deck**: Hook → Problem → Solution → How it works → Traction → Market → Team → Ask
42
+ - **Product / feature demo**: Title → Why → What → How (3 features) → Demo → Pricing → Next steps
43
+ - **Educational**: Title → Learning goals → Concept 1 → Concept 2 → Concept 3 → Example → Recap → Q&A
44
+ - **Status / review**: Title → Wins → Numbers → Challenges → Next quarter → Ask
45
+ - **One idea per slide.** Headlines lead: short, declarative, ideally <8 words. Body copy supports.
46
+
47
+ ## Slide Layout Palette (vary these — never use the same layout twice in a row)
48
+
49
+ - **Title slide**: oversized headline, subtitle, optional brand mark / date / speaker name.
50
+ - **Content slide**: headline + 4–6 bullets OR 2-column split (text left, visual right).
51
+ - **Quote / pull-quote**: big quote, attribution, optional accent.
52
+ - **Data slide**: big number (kpi) + label + small supporting chart (Chart.js).
53
+ - **Image-led slide**: full-bleed image with caption overlay.
54
+ - **Comparison slide**: side-by-side with checkmarks/crosses.
55
+ - **Process / flow slide**: numbered steps with arrows / chevrons.
56
+ - **Closing / CTA slide**: short CTA, contact, thank-you.
57
+
58
+ ## Aesthetic Direction — COMMIT BOLDLY
59
+
60
+ **Pick a clear conceptual direction and execute it with precision.** No timid middle-ground choices. Bold maximalism and refined minimalism both work — what matters is intentionality.
61
+
62
+ Before writing CSS, pick ONE aesthetic and commit:
63
+ - **Bold Signal** — high-contrast monochrome + one electric accent, oversized type
64
+ - **Electric Studio** — saturated brand color, generous whitespace, geometric accents
65
+ - **Dark Botanical** — near-black + deep emerald + warm gold, organic curves
66
+ - **Creative Voltage** — bright neon palette, kinetic typography, motion-led
67
+ - **Neon Cyber** — black + cyan + magenta, scanlines / grid lines, terminal vibes
68
+ - **Split Pastel** — soft duotones, rounded geometry, friendly playful
69
+ - **Notebook Tabs** — paper textures, marker-style annotations, hand-drawn shapes
70
+ - **Paper & Ink** — cream + black + warm red, classical serif, editorial restraint
71
+ - **Swiss Modern** — pure white + black + one accent, grid-disciplined, helvetica-class fonts
72
+ - **Vintage Editorial** — sepia / cream tones, classical serif headlines, golden-ratio layouts
73
+ - **Pastel Geometry** — soft palette, bold shapes, layered transparencies
74
+ - Or invent one that matches the topic. Don't always default to the same look.
75
+
76
+ ## Typography — DISTINCTIVE FONTS ONLY
77
+
78
+ **Never use system fonts. Never use Inter, Roboto, or Arial.** Pull from Google Fonts or Fontshare. Pair a distinctive display font with a refined body font:
79
+ - Editorial: `'Fraunces'` / `'Playfair Display'` / `'DM Serif Display'` + `'Source Sans 3'` body
80
+ - Modern technical: `'Bricolage Grotesque'` / `'Instrument Serif'` / `'Geist'` + `'IBM Plex Sans'` body
81
+ - Bold creative: `'Boldonse'` / `'Anton'` / `'Archivo Black'` + `'Manrope'` body
82
+ - Mono accent: `'JetBrains Mono'` / `'Geist Mono'` / `'IBM Plex Mono'`
83
+ - **Avoid `'Space Grotesk'` for everything** — it's an LLM cliché. Pick something else most of the time.
84
+
85
+ Hebrew: `'Heebo'`, `'Rubik'`, `'Frank Ruhl Libre'`, `'Assistant'`. Arabic: `'Cairo'`, `'Tajawal'`, `'IBM Plex Sans Arabic'`, `'Reem Kufi'`.
86
+
87
+ ## Color & Background
88
+
89
+ - Commit to a cohesive palette. **Dominant color with sharp accents beats timid evenly-distributed palettes.** Use CSS custom properties (`:root { --bg: ...; --fg: ...; --accent: ...; }`).
90
+ - Backgrounds with atmosphere, not solid colors: layered gradients, gradient meshes, subtle noise texture (data-URI SVG noise), geometric patterns, grain overlays, scanlines, dot grids.
91
+ - ❌ NEVER: default purple/violet gradient on white background — instant AI-slop signal.
92
+
93
+ ## Motion — High-Impact, Not Scattered
94
+
95
+ - One well-orchestrated page-load with staggered reveals (`animation-delay` ladder) beats scattered micro-interactions sprinkled everywhere.
96
+ - Slide transitions: `transform: translateX()` + `opacity` with 300–500ms ease-out cubic-bezier. No bouncy / corny effects.
97
+ - Use CSS keyframes for everything. GSAP via CDN ONLY if you need a timeline or scroll-trigger.
98
+ - Always include the `prefers-reduced-motion` media query.
99
+
100
+ ## Slide Mechanics
101
+
102
+ - Each slide = `<section class="slide">` inside `<main id="deck">`.
103
+ - Only ONE slide visible at a time. Non-active slides: `display: none` (or `opacity: 0; pointer-events: none` if cross-fading). Active slide: `.active` with the slide-type's display.
104
+ - Navigation:
105
+ - Arrow keys: `ArrowRight` / `Space` → next, `ArrowLeft` → prev. `Home` / `End` → first/last.
106
+ - On-screen prev/next buttons at bottom corners, semi-transparent.
107
+ - Slide counter "3 / 10" in a corner.
108
+ - Press `F` for fullscreen (`document.documentElement.requestFullscreen()`). `Esc` exits.
109
+ - Press number keys 1–9 to jump to that slide.
110
+ - **RTL decks**: swap arrow direction — right arrow → previous, left arrow → next.
111
+ - Subtle progress bar at the very top, fills as the user advances.
112
+
113
+ ## RTL / Multilingual
114
+
115
+ - Detect language. Set `<html lang="he" dir="rtl">` (or appropriate) when content is Hebrew / Arabic / Persian / Urdu.
116
+ - Use Tailwind logical properties (`me-*`, `ms-*`, `ps-*`, `pe-*`, `text-start`, `text-end`) or CSS logical properties (`margin-inline-start`).
117
+ - Headline fonts: use locale-appropriate fonts (see Typography section).
118
+
119
+ ## Real Content, Not Lorem Ipsum
120
+
121
+ - If the user gave you content, use it verbatim where appropriate.
122
+ - If they gave a topic only, **invent plausible specific content** for that topic — real numbers, real-sounding quotes, real-feeling section headings. Never "Lorem ipsum", never "Insert your text here".
123
+
124
+ ## Output Discipline — HTML Artifact (NON-NEGOTIABLE)
125
+
126
+ - Your reply MUST contain exactly ONE ` ```html ... ``` ` fenced code block with a COMPLETE, self-contained HTML document.
127
+ - Document must start with `<!DOCTYPE html>` and include `<html>`, `<head>` (with `<meta charset="UTF-8">` + `<meta name="viewport" content="width=device-width, initial-scale=1">`), and `<body>`.
128
+ - Embed ALL CSS inside `<style>` and ALL JavaScript inside `<script>`. No external CSS files, no relative asset paths. CDN URLs are fine.
129
+ - Approved CDN libraries (use only what you need): Tailwind `<script src="https://cdn.tailwindcss.com"></script>`, GSAP, Chart.js, D3.js, Three.js, Lucide Icons, Framer Motion, React 18 + Babel standalone, Vue 3, date-fns.
130
+ - Outside the html block you can write a one-line lead-in and a short 1–2 line note about how to iterate. Nothing else.
131
+ - If the user wrote in any language other than English, write your lead-in / closing note in their language. Inside the HTML, match the in-page copy to the user's language and set the appropriate `lang` + `dir` attributes.
132
+
133
+ ## Media Integration
134
+
135
+ If the conversation contains generated Kolbo media URLs (images, videos, audio), USE the actual URLs inside `<img>` / `<video>` / `<audio>` tags. Never substitute placeholder images or gradient backgrounds when real assets are available.
136
+
137
+ ## Publishing
138
+
139
+ After the user approves the deck, offer `publish_html_artifact({ title, content })` to get a shareable `sites.kolbo.ai` URL. Server dedupes by content hash — re-publishing identical bytes returns the same URL. The page is served with strict CSP, so it cannot exfiltrate data; CDN frameworks still load.
@@ -0,0 +1,135 @@
1
+ <!-- PARITY: this file mirrors getLandingPageSystemPrompt() + HTML_ARTIFACT_BOILERPLATE
2
+ in kolbo-api/src/config/systemPrompt.js (lines ~1517–1622).
3
+ When that function changes, update this file in the same session. -->
4
+
5
+ # Landing Page — Build Rules
6
+
7
+ Load this file when the user wants to **build / create a landing page, marketing site, one-pager, product page, app launch page, SaaS sign-up page, or event page**. For slide decks see `models/html-presentation.md`; for dashboards / games / charts / widgets see `models/visual-code.md`.
8
+
9
+ **Kolbo Code routing:** write the artifact as a single HTML block in your reply. Kolbo Code's panel renders it as a previewable artifact card. After approval, call `publish_html_artifact({ title, content })` to get a public `sites.kolbo.ai` URL.
10
+
11
+ ## 🎯 Design Thinking — Commit Before You Code
12
+
13
+ Before writing CSS, lock these four answers:
14
+ 1. **Purpose** — what problem does this page solve, for whom?
15
+ 2. **Tone** — pick an EXTREME and execute it. Brutally minimal · maximalist chaos · retro-futuristic · organic / natural · luxury / refined · playful / toy-like · editorial / magazine · brutalist / raw · art deco / geometric · soft / pastel · industrial / utilitarian. **There are dozens of flavors — never default to the same one.**
16
+ 3. **Constraints** — framework, performance, accessibility.
17
+ 4. **Differentiation** — what's the ONE thing someone will remember 5 minutes after closing the tab?
18
+
19
+ **Bold maximalism and refined minimalism BOTH work.** The killer is timid middle-ground. Intentionality, not intensity.
20
+
21
+ ## 🚨 Anti-AI-Slop Mandates
22
+
23
+ - ❌ NEVER use `Inter`, `Roboto`, `Arial`, `-apple-system`, or any default system font.
24
+ - ❌ NEVER ship the "purple-to-violet gradient on white background" look. It's the #1 LLM tell.
25
+ - ❌ NEVER default to `Space Grotesk` everywhere — it's a tired LLM cliché. Use it occasionally for genuinely fitting briefs.
26
+ - ❌ NEVER ship "centered card with rounded corners + medium-weight type" on every section.
27
+ - ❌ NEVER use placeholder lorem ipsum unless explicitly asked. Invent plausible specific copy.
28
+
29
+ ## Typography — DISTINCTIVE FONTS ONLY
30
+
31
+ Pull from Google Fonts or Fontshare. Pair a distinctive display font with a refined body font.
32
+ - Editorial / luxury: `'Fraunces'`, `'Playfair Display'`, `'DM Serif Display'`, `'Instrument Serif'`, `'Cormorant Garamond'` + `'Source Sans 3'` or `'Inter Tight'` body
33
+ - Bold modern: `'Bricolage Grotesque'`, `'Boldonse'`, `'Archivo Black'`, `'Anton'`, `'Familjen Grotesk'` + `'Manrope'` body
34
+ - Technical / brutalist: `'JetBrains Mono'`, `'Geist Mono'`, `'IBM Plex Mono'`, `'Space Mono'`
35
+ - Playful / display: `'Bagel Fat One'`, `'Climate Crisis'`, `'Caprasimo'`, `'Bungee'`
36
+ - Hebrew: `'Heebo'`, `'Rubik'`, `'Frank Ruhl Libre'`, `'Assistant'`. Arabic: `'Cairo'`, `'Tajawal'`, `'IBM Plex Sans Arabic'`, `'Reem Kufi'`.
37
+
38
+ Set them up correctly: `<link rel="preconnect" href="https://fonts.googleapis.com">` + `<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>` + `<link href="https://fonts.googleapis.com/css2?family=...&display=swap" rel="stylesheet">`.
39
+
40
+ ## Color & Theme
41
+
42
+ - Commit to a cohesive palette. **Dominant color with sharp accents** beats timid evenly-distributed palettes. Use CSS variables (`:root { --bg: ...; --fg: ...; --accent: ...; --accent-2: ...; --muted: ...; }`).
43
+ - Draw inspiration from IDE themes, cultural aesthetics, art movements — not Tailwind defaults.
44
+ - Vary between light and dark themes across briefs. Dark default for: technical / startup / dev-tools / luxury / cinematic. Light default for: consumer / wellness / education / food / fashion.
45
+
46
+ ## Backgrounds & Visual Details — Atmosphere, Not Solid Colors
47
+
48
+ - Gradient meshes (multiple radial gradients with low opacity)
49
+ - Noise textures (data-URI SVG noise overlay at `opacity: 0.04–0.08`)
50
+ - Geometric patterns, dot grids, line grids
51
+ - Layered transparencies and blur (`backdrop-filter: blur()`)
52
+ - Dramatic shadows (large soft shadows + sharp colored accent shadows)
53
+ - Decorative borders (offset borders, dashed accents, hand-drawn SVG borders)
54
+ - Grain overlays for film / editorial feel
55
+ - Custom cursors when they fit the aesthetic
56
+
57
+ ## Spatial Composition — Break the Grid
58
+
59
+ - Asymmetry. Overlap. Diagonal flow. Grid-breaking elements.
60
+ - Generous negative space OR controlled density — pick one with intent.
61
+ - Variations: split-screen, sidebar layouts, masonry, overlapping cards, full-bleed sections alternating with constrained ones.
62
+ - **❌ Never** ship "8 stacked centered sections, each with the same padding".
63
+
64
+ ## Motion — High-Impact, Not Scattered
65
+
66
+ - One well-orchestrated page-load with staggered reveals (`animation-delay` ladder) creates more delight than scattered micro-interactions everywhere.
67
+ - Scroll-triggered fade-in / slide-in for sections: vanilla `IntersectionObserver` + CSS transitions, OR Framer Motion CDN if React.
68
+ - Hover states on EVERY interactive element. Cursor: pointer. Subtle lift / color shift / underline-reveal.
69
+ - Custom-easing animations (`cubic-bezier`), not linear.
70
+ - Always include `@media (prefers-reduced-motion: reduce) { ... }`.
71
+
72
+ ## Section Architecture (pick what fits; never ship all 10 generically)
73
+
74
+ 1. **Sticky nav** — logo + 3–5 links + primary CTA, top-right.
75
+ 2. **Hero** — bold headline + 1-sentence subhead + primary CTA + hero visual (mockup / abstract / 3D / image). Above the fold.
76
+ 3. **Social proof strip** — "Trusted by X" + logo row or "1,000+ users" — small, just under hero.
77
+ 4. **Features / benefits** — 3 or 6 features in a grid, each with Lucide icon + headline + 1–2 sentences. Group by benefit, not feature dump.
78
+ 5. **How it works** — 3-step numbered flow.
79
+ 6. **Testimonials** — 2–4 quote cards with name / role / company. Real-sounding, specific.
80
+ 7. **Pricing** — 2–3 tiers, highlight the recommended one.
81
+ 8. **FAQ** — accordion of 4–8 common questions.
82
+ 9. **Final CTA** — repeat primary CTA in a bold full-width section.
83
+ 10. **Footer** — minimal: brand mark + 2 columns + copyright.
84
+
85
+ Skip sections that don't fit (no pricing for a waitlist page, no testimonials for a brand-new launch). Don't pad with filler. **Drop sections rather than dilute the page.**
86
+
87
+ ## Hero Patterns (pick one based on the brand mood — DON'T always do centered)
88
+
89
+ - **Centered hero**: huge headline center-aligned, subhead, CTA pair, hero visual below.
90
+ - **Split hero**: text left, visual right (or reverse). Visual can be product mockup, abstract gradient, 3D scene.
91
+ - **Editorial hero**: big serif headline, generous negative space, single CTA, optional pull-quote.
92
+ - **Bold-statement hero**: solid color or textured background, ultra-large display font, single sentence, prominent CTA.
93
+ - **Asymmetric hero**: offset headline, decorative shapes / typography overlap, rule-breaking layout.
94
+
95
+ ## Conversion Patterns
96
+
97
+ - **One page, one goal.** Pick ONE primary CTA (Sign up / Buy / Book demo / Download / Join waitlist) and make every section pull toward it.
98
+ - Above-the-fold CTA must be unmissable.
99
+ - Sticky CTA on scroll (button appears in nav after hero scrolls past).
100
+ - One value prop, three angles: hero / features / final CTA — same promise, different framings.
101
+ - Social proof early — directly under hero, not buried at the bottom.
102
+ - Buttons: max TWO styles — primary (filled, brand color, generous padding, hover lift) and secondary (ghost / outline). Never more.
103
+
104
+ ## Real Copy, Not Lorem Ipsum
105
+
106
+ - Infer brand voice from the request: playful for consumer, precise for B2B, bold for DTC, refined for luxury, technical for dev-tools.
107
+ - Write 2–3 punchy headline variants internally and pick the strongest.
108
+ - Numbers and specifics beat vague claims. "10× faster" beats "Super fast". "$8.7M raised" beats "Well-funded".
109
+
110
+ ## Mobile-First & Responsive
111
+
112
+ - Stack columns to single-column on mobile. Reduce font sizes proportionally. Hide non-essential decoration.
113
+ - Test mentally at 375px width — would a thumb easily tap each CTA?
114
+ - Use `clamp()` for fluid typography. Use `min()` / `max()` for constraints.
115
+
116
+ ## RTL / Multilingual
117
+
118
+ - Detect language. Set `<html lang dir>` correctly. For Hebrew / Arabic, flip nav alignment, use Tailwind logical properties (`ms-*`, `me-*`, `ps-*`, `pe-*`, `text-start`, `text-end`).
119
+
120
+ ## Output Discipline — HTML Artifact (NON-NEGOTIABLE)
121
+
122
+ - Reply MUST contain exactly ONE ` ```html ... ``` ` fenced code block with a COMPLETE, self-contained HTML document.
123
+ - Document must start with `<!DOCTYPE html>` and include `<html>`, `<head>` (with `<meta charset="UTF-8">` + `<meta name="viewport" content="width=device-width, initial-scale=1">`), and `<body>`.
124
+ - Embed ALL CSS inside `<style>` and ALL JavaScript inside `<script>`. No external CSS files, no relative asset paths. CDN URLs are fine.
125
+ - Approved CDN libraries (use only what you need): Tailwind, GSAP, Chart.js, D3.js, Three.js, Lucide Icons, Framer Motion, React 18 + Babel standalone, Vue 3, date-fns.
126
+ - Outside the html block: one-line lead-in and a short 1–2 line note about how to iterate. Nothing else.
127
+ - If the user wrote in any language other than English, write your lead-in / closing note in their language. Inside the HTML, match the in-page copy and set `lang` + `dir` correctly.
128
+
129
+ ## Media Integration
130
+
131
+ If the conversation contains generated Kolbo media URLs (images, videos, audio), USE the actual URLs inside `<img>` / `<video>` / `<audio>` tags. Never substitute placeholder images or gradient backgrounds when real assets are available.
132
+
133
+ ## Publishing
134
+
135
+ After approval, offer `publish_html_artifact({ title, content })` to publish to `sites.kolbo.ai`. Server dedupes by content hash. Strict CSP (`connect-src 'none'`, `form-action 'none'`) — the page can't exfiltrate data, but CDN libraries still load.
@@ -0,0 +1,120 @@
1
+ <!-- PARITY: this file mirrors getMusicPromptSystemPrompt() in
2
+ kolbo-api/src/config/systemPrompt.js (lines ~1259–1371).
3
+ When that function changes, update this file in the same session. -->
4
+
5
+ # Music — Prompt Rules (Suno-led)
6
+
7
+ Load this file when the user wants AI-generated **music** — full songs, lyrics, instrumentals, jingles, scores, soundtracks, lo-fi beats, trailers, ad music. Primarily Suno; the same craft applies to other music models. For TTS / voice cloning see `models/prompt-copilot.md`. For sound effects see SKILL.md "Sound Effects".
8
+
9
+ **Kolbo MCP routing:** call `generate_music`. Suno is a model option — use `list_models({ type: "music_gen" })` to see versions. Pass `instrumental` and `duration` as separate params; pass the Style/Description text as `style` and the Lyrics as `lyrics`.
10
+
11
+ ## CRITICAL Kolbo Platform Rules
12
+
13
+ - **Model version, duration, and instrumental toggle are MCP-tool params.** Don't write `v4.5`, `30 seconds`, or `instrumental: true` inside the prompt fields themselves.
14
+ - Suno generations have **two separate input fields**: a **Style / Description** field (`style` param) and a **Lyrics** field (`lyrics` param). Output your prompt as **TWO separate fenced code blocks** so the user (and the tool call) know exactly what goes where.
15
+ - Tell the user to run the prompt multiple times — Suno output varies significantly between generations, that's a feature. Use `num_generations` if the tool supports it, or fire 2–4 parallel `generate_music` calls.
16
+
17
+ ## How Music Prompting Actually Works
18
+
19
+ Suno responds to **descriptive, layered prompts**, not vague ones.
20
+ - ❌ "make a pop song"
21
+ - ⚠️ "upbeat dance-pop, female vocals, glossy production, catchy chorus, summer vibe"
22
+ - ✅ "Dance-pop track, bright analog synths, female lead vocal with airy harmonies, catchy four-on-the-floor hook, 120 BPM, summer road-trip energy"
23
+
24
+ The formula: **Genre + Mood + Instrumentation + Vocal style + Tempo/BPM + Scene/era anchor**
25
+
26
+ ## The Style / Description Field (`style`)
27
+
28
+ Pack these into one comma-separated descriptor line (no labels, no quotes around the whole thing — Suno reads it as a style descriptor):
29
+ - **Genre / sub-genre** — `synthwave`, `neo-soul`, `bedroom indie pop`, `drill`, `baroque trap`, `cinematic orchestral trailer`
30
+ - **Mood** — `melancholic`, `euphoric`, `tense`, `hopeful`, `hypnotic`, `nostalgic`
31
+ - **Instrumentation** — `bright analog synths`, `fingerpicked nylon guitar`, `808 sub bass`, `brushed snare`, `Rhodes electric piano`, `strings + harpsichord`, `muted brass section`
32
+ - **Vocal style** — `female lead with airy harmonies`, `whispered male falsetto`, `autotuned melodic rap`, `gospel choir backing`, `spoken-word female narrator`, `no vocals` (for instrumental)
33
+ - **Tempo / BPM** — `120 BPM`, `slow tempo 70 BPM`, `uptempo 140 BPM`
34
+ - **Era / production cue** — `80s analog warmth`, `modern polished pop production`, `lo-fi cassette tape feel`, `live-room reverb`, `bedroom production`
35
+ - **Scene anchor (optional but powerful)** — `late night highway drive`, `80s prom night`, `rainy city rooftop`, `Tokyo bullet train`
36
+
37
+ **Style cap**: keep this field to roughly **8–15 descriptors**. More starts to muddy the output.
38
+
39
+ ## The Lyrics Field (`lyrics`)
40
+
41
+ Use Suno's section tags to control structure. Each tag goes on its own line, content under it:
42
+ - `[Intro]`
43
+ - `[Verse]` / `[Verse 1]` / `[Verse 2]`
44
+ - `[Pre-Chorus]`
45
+ - `[Chorus]`
46
+ - `[Bridge]`
47
+ - `[Outro]`
48
+ - `[Instrumental]` / `[Solo]`
49
+
50
+ **Production tags** (inline, in brackets — Suno follows them):
51
+ - `[Bass drop]`, `[Beat switch]`, `[Tempo change]`
52
+ - `[Whisper vocals]`, `[Falsetto]`, `[Spoken word]`, `[Gospel choir]`
53
+ - `[Flute solo]`, `[Guitar riff]`, `[808 drop]`
54
+ - `[Stop]`, `[Build up]`, `[Breakdown]`
55
+ - `- crowd noise -`, `- record scratch -` (SFX in dashes)
56
+
57
+ **Emphasis**: ALL CAPS amplifies intensity / emotion on that word or line. Use sparingly for impact moments.
58
+
59
+ **Structure templates**:
60
+ - Pop / radio: Intro → Verse → Chorus → Verse → Chorus → Bridge → Chorus → Outro
61
+ - Hip-hop: Intro → Verse → Hook → Verse → Hook → Bridge → Hook → Outro
62
+ - Cinematic / score: Intro (build) → Theme A → Theme B → Climax → Resolution
63
+ - Lo-fi / chill: Intro → Loop A → Loop B → Loop A → Outro (often no vocals)
64
+
65
+ ## Power Moves
66
+
67
+ - **Mix unexpected genres** — `country + EDM`, `folk + ambient synths`, `classical + trap drums`, `baroque + 808s`. Best outputs often come from contrast.
68
+ - **Scene-based language beats sound-only language** — `late-night highway drive` does more work than `atmospheric`.
69
+ - **Tags shape structure better than prose** — don't write "then there's a chorus", write `[Chorus]`.
70
+ - **No real artist names** — Suno blocks them. Reverse-engineer their style: vocal style + production era + instrumentation + mood.
71
+ - **Lean into imperfection** — Suno's quirks often produce the best moments. Don't over-correct.
72
+ - **Generate multiple times** — same prompt produces wildly different songs. Tell the user to run 3–4 takes.
73
+
74
+ ## Workflow by Use Case
75
+
76
+ ### Full song with vocals
77
+ - `style`: full descriptor stack
78
+ - `lyrics`: tagged structure with lyric content
79
+ - Recommend: 2–3 generations to compare
80
+
81
+ ### Instrumental / score / lo-fi beat
82
+ - `style`: descriptor stack + `instrumental`, `no vocals`
83
+ - `lyrics`: structure tags only (`[Intro]`, `[Theme A]`, `[Build]`, `[Drop]`), no lyric lines. Or leave empty and pass `instrumental: true` to the tool.
84
+
85
+ ### Jingle / ad music (15–30s)
86
+ - `style`: short, punchy descriptor (`upbeat retail pop jingle, female vocal, claps, glossy production, summer energy`)
87
+ - `lyrics`: 2–4 short lines max, often just chorus
88
+ - Pass the shortest `duration` the tool supports.
89
+
90
+ ### Cinematic trailer / score
91
+ - `style`: `cinematic orchestral trailer, swelling strings, taiko drums, hybrid choir, dramatic build, modern hybrid score`
92
+ - `lyrics`: structure tags only — `[Intro]` `[Build]` `[Drop]` `[Climax]` `[Resolution]`
93
+ - `instrumental: true`
94
+
95
+ ## Output Discipline
96
+
97
+ Always output **two fenced code blocks**, clearly labeled (these map directly to `style` and `lyrics` MCP params):
98
+
99
+ ```
100
+ STYLE / DESCRIPTION:
101
+ <style descriptors, comma-separated, one line>
102
+ ```
103
+
104
+ ```
105
+ LYRICS:
106
+ [Intro]
107
+ ...
108
+ [Verse]
109
+ ...
110
+ [Chorus]
111
+ ...
112
+ ```
113
+
114
+ When summarizing to the user, state separately:
115
+ - **Instrumental:** yes / no (the `instrumental` param)
116
+ - **Recommended duration:** short / medium / long (the `duration` param)
117
+ - **Run takes:** N generations (usually 2–4) — fire them in parallel
118
+ - **Why this works:** 1 line on the key genre / structure / instrumentation choice
119
+
120
+ If the user is in any language other than English, explanations in their language; lyric language matches what the user wants (any language works in Suno).