[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M70H97M9PRCM5BJ3K9HM65K4":3,"skill-same:01M70H97M9PRCM5BJ3K9HM65K4":80},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":26,"publishedAt":46,"linkOnly":47,"markdownContent":48,"markdownBody":49,"frontMatter":50,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":6,"ownerHtmlUrl":57,"ownerBlogUrl":6,"ownerDescription":58,"updatedAt":59,"install":60,"resources":73},"01M70H97M9PRCM5BJ3K9HM65K4","taste",null,"Creative-direction layer for music videos and short-form edits in the angelcore \u002F cloud-trance \u002F hyperpop family — a named-genre aesthetic vocabulary, mood + color + light system, beat-synced editing grammar, and a pipeline chaining ECC's video skills from b-roll generation to distribution. Use when a video must feel intentional rather than merely functional — music videos, fancams, moodboard-driven reels, or giving AI-generated b-roll a coherent visual direction.","mdnaimul22\u002Fhuman-skills","mdnaimul22","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F64520358?v=4","01M70FH95MH2H796Q01TYSFZ03","Naimul","01M70FH96798CQR4YHA13F17GA",3,"MIT","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Faffaan-m_ECC\u002Ftaste\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[5,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"direction","when","synced","video skills","for","layer","short-form","functional","color","form","pipeline","distribution","coherent","generated","short","grammar","chaining","music","Video","2026-11-10 10:12:30",false,"---\nname: taste\ndescription: Creative-direction layer for music videos and short-form edits in the angelcore \u002F cloud-trance \u002F hyperpop family — a named-genre aesthetic vocabulary, mood + color + light system, beat-synced editing grammar, and a pipeline chaining ECC's video skills from b-roll generation to distribution. Use when a video must feel intentional rather than merely functional — music videos, fancams, moodboard-driven reels, or giving AI-generated b-roll a coherent visual direction.\norigin: ECC\n---\n\n# Taste\n\nMost AI video advice stops at *how to render frames*. This skill is the layer above\nthat: **what the frames should look like, in what order, cut to what rhythm, so the\nresult reads as one intentional thing instead of a pile of generations.**\n\nIt encodes a specific taste — the **angelcore \u002F cloud-trance \u002F hyperpop** family\n(Bladee \"Silver Surfer\"-era ethereal trance crossed with heavy angelcore) — distilled\nfrom a corpus of saved Reels and a tour through a ~70-entry visual-genre library. It\nis opinionated on purpose. Taste is a point of view, not a menu.\n\n> The companion file `references\u002Fgenre-taxonomy.md` holds the full named-genre catalog.\n> This file is the actionable layer: mood, grammar, pipeline, and a beat-mapped shot plan.\n\n## When to Activate\n\n- Building a **music video**, lyric video, fancam, or visualizer.\n- Making a short-form **edit \u002F reel** where the *feel* matters more than the information.\n- Driving **AI b-roll generation** (fal.ai, Veo, Kling, etc.) and the prompts need a\n  coherent direction instead of one-off vibes.\n- Assembling a **moodboard** or choosing a visual genre before any rendering.\n- The user says \"taste\", \"make it feel like X\", \"give it a direction\", \"angelcore\",\n  \"cloud trance\", \"hyperpop edit\", \"Bladee\", \"dreamcore\", or names a saved reference.\n- The current edit works but reads as flat, generic, AI-slop, or stylistically incoherent.\n\nThis skill sits **on top of** `video-editing` (the mechanics) and `remotion-video-creation`\n(the renderer). Use those for *how*. Use this for *what and why*.\n\n## Core Thesis\n\n1. **Taste is the last layer, and it must be decided first.** `video-editing` correctly\n   says taste is the final human pass. The trap: if you only decide taste at the end, every\n   generation and cut upstream was a guess. Pick the direction *before* the first prompt,\n   then let it constrain everything.\n2. **Coherence beats novelty.** One look executed across 30 shots beats 30 looks. A named\n   genre (below) is a constraint that buys coherence for free.\n3. **Cut to the song, not to the footage.** In a music video the timeline is the waveform.\n   Every hard cut lands on a beat or a transient. Frame math is in the pipeline section.\n4. **Generate selectively, edit ruthlessly.** AI makes b-roll that does not exist; it does\n   not make taste. You still throw away 80%.\n\n## The Aesthetic Vocabulary (distilled)\n\nThe reference corpus tours a large library of *named* visual genres. The full list lives in\n`references\u002Fgenre-taxonomy.md`. The useful move is not memorizing 70 names — it is seeing\nthat **a genre name is a complete prompt-and-grade preset.** When you pick one, you inherit\nits palette, texture, lighting, and subject matter as a unit.\n\nThe genres cluster into families. Pick a **primary** family and at most **one accent**:\n\n| Family | Genres in it | Reads as |\n|--------|-------------|----------|\n| **Ethereal \u002F divine** | spiritualism, glacial folk, beacons, zen core, fairy tale | weightless, holy, glowing, soft |\n| **Hyperpop \u002F Y2K-cyber** | cyberdelia, acid house, acid nora, neo aggressano, new liquid | glossy, chrome, neon, kawaii-cyber |\n| **Dark \u002F occult** | dark academia, smoke nostalgia, communist core, abstract tech | high-contrast, ominous, grain |\n| **Retro \u002F print** | retro surfers, art deco, adventure pulp, classic advertising, magazine collage, bumper stickers | flat, graphic, halftone, nostalgic |\n| **Organic \u002F textural** | microbiology core, weaving patterns, fruitage retro, cozy blanket, pacific punk wave | tactile, macro, woven, wet |\n| **Systemic \u002F data** | numbers, mazes, code web, heatmap, pixel, 8-bit | gridded, generative, schematic |\n\n**For the current project**, the primary is **Ethereal \u002F divine** with a **Hyperpop \u002F Y2K-cyber**\naccent — i.e. holy light and crystalline bloom, punctuated by chrome and neon. That pairing\n*is* the angelcore × cloud-trance brief.\n\n## The Mood System — angelcore × cloud-trance\n\nDistilled directly from the strongest reference reels. This is the concrete grade.\n\n### Palette\n- **Base:** near-black void (#05060a) and bone white (#f4f1ea). Most frames are one or the other.\n- **Divine accent:** molten gold \u002F ember orange (#ffb24d → #ff7a18) — the *one warm light* in the dark.\n- **Crystalline accent:** iridescent violet→cyan→magenta bokeh (#8a6bff, #4fc3ff, #ff6ad5) — the\n  hyperpop bloom, used in bright frames.\n- **Danger accent (sparingly):** a single glowing red (#ff2a2a) on monochrome — for one or two\n  shock cuts only.\n- **Hyperpop subject:** candy pink hair \u002F chrome \u002F glossy white against blue sky.\n\nRule: **one accent per shot.** Gold lives in dark frames; iridescence lives in light frames;\nnever both in one shot.\n\n### Light & texture\n- Darkness pierced by a single warm source (ember bloom, divine shaft). High contrast, deep blacks.\n- Crystalline \u002F glitter bokeh, lens flares, bloom, light leaks — *heavenly*, not dirty.\n- Film grain + subtle chromatic aberration on the dark frames; clean gloss on the bright frames.\n- Macro detail on negative space: a hero object centered on black (key, eye, gear, petal, water).\n- Subjects: winged figures, clouds, halos, angels, crystalline structures, candy-cyber portraits.\n\n### Motion\n- Slow, floating, weightless camera (drift, slow push, slow orbit) — *cloud* trance.\n- Bursts of speed only at the drop. Otherwise everything breathes.\n- Particles rising (embers, dust, glitter) — upward motion = ascension.\n\n## The Editing Grammar (distilled)\n\nFrom the reference edits, the techniques that recur and define the style:\n\n1. **Beat-locked hard cuts.** No dissolves in the verse\u002Fdrop. Cut on the kick. The eye should\n   feel the BPM.\n2. **Hero-on-black macro inserts.** A single sharp object centered in black negative space,\n   held for 1–2 beats, then cut. Rhythmic montage of these = the cloud-trance signature.\n3. **Bloom \u002F explosion reveal.** A white or ember bloom that blows out the frame on a transient,\n   then resolves into the next shot. The \"divine flash\" transition.\n4. **Color-pop on monochrome.** Run a passage in B&W, then a single colored element (red eye,\n   gold flame, pink hair) punches through on the downbeat.\n5. **Speed-ramp into the drop.** Ramp footage from slow to fast across the last bar before the\n   drop, hard-cut to tempo on the one.\n6. **Caption keyword highlight (for talking-head \u002F lyric sections only).** All-caps, one or two\n   words highlighted in the accent color, synced to the vocal. Use for lyric video, not for the\n   pure visualizer.\n7. **Reaction PiP (for explainer\u002Fedit-commentary only).** Picture-in-picture talking head over\n   b-roll. Out of scope for the music video itself; documented because the corpus uses it heavily.\n\n**Do-nots:** crossfade transitions in tempo sections; more than one accent color per shot; a\nshot held past its musical phrase; readable on-screen UI chrome (crop it out); mixed aspect\nratios in one timeline.\n\n## The Pipeline — mixing the ECC video skills\n\nThis skill is the conductor. Each ECC skill is an instrument. Do not skip layers.\n\n```\n0. TASTE (this skill)        decide genre + mood + grammar BEFORE anything renders\n1. STRUCTURE (video-editing) map the song: timestamps for intro\u002Fverse\u002Fdrop\u002Fbridge\u002Foutro\n2. GENERATE (fal-ai-media)   make b-roll per genre prompt-presets; throw away 80%\n3. CUT (video-editing\u002FFFmpeg) beat-cut + reframe to 9:16; assemble selects on the grid\n4. COMPOSE (remotion-video-creation) overlays, blooms, lyric text, beat-synced sequencing\n5. MOTION (motion-* skills)  easing curves, light-leak\u002Fparticle motion, transition timing\n6. AUDIO (fal-ai-media)      transition risers\u002Fimpacts to sell the cuts (track itself is in Ableton)\n7. POLISH                    grade to the palette above, final pacing pass, export\n8. DISTRIBUTE (content-engine) platform-native versions + caption\u002Fcover\n```\n\n| Step | ECC skill to load | What it does here |\n|------|-------------------|-------------------|\n| Structure & cut | `video-editing` | FFmpeg cut\u002Fconcat\u002Freframe, EDL, scene\u002Fsilence detection |\n| Generate b-roll | `fal-ai-media` | image\u002Fvideo models per genre preset |\n| Compose & overlay | `remotion-video-creation` | beat-synced `\u003CSequence>`s, text, blooms, masks |\n| Motion timing | `motion-foundations`, `motion-patterns`, `motion-advanced` | easing, springs, light\u002Fparticle motion |\n| Server-side video | `videodb` | smart reframe, indexing if footage is large |\n| Distribution | `content-engine` | per-platform cuts, covers, captions |\n| Voice\u002Flyric VO | `video-editing` (ElevenLabs section) | only if a spoken layer is needed |\n\n## Beat Math (lock cuts to the song)\n\nThe current track is **138 BPM, B minor**. Constants:\n\n- `seconds_per_beat = 60 \u002F 138 = 0.43478s`\n- `frames_per_beat   = fps × 0.43478`  →  **24fps: 10.43**, **30fps: 13.04**, **60fps: 26.09**\n- `1 bar (4 beats)   = 1.7391s`  →  30fps: **52.17 frames**\n- `8-bar phrase      = 13.913s`  →  the loop length from the track\n\nIn Remotion, snap every `from={}` to a beat:\n```ts\nconst FPS = 30;\nconst BPM = 138;\nconst beat = (n: number) => Math.round(n * (60 \u002F BPM) * FPS); \u002F\u002F beat(n) → frame\n\u002F\u002F cut on beats 0,4,8,... :  \u003CSequence from={beat(0)} durationInFrames={beat(4)}> ...\n```\n\n## Beat-Mapped Shot Plan (this music video)\n\nThe song arrangement (from the project's own notes) is\n**Intro → Verse → Drop → Bridge → Drop → Outro (~2:05)**. Map taste to each section:\n\n| Section | Genre\u002Fmood lean | Grammar | Shot ideas |\n|---------|-----------------|---------|------------|\n| **Intro** | Ethereal\u002Fdivine, near-black | slow push, no cuts | ember bloom in the void; a single shaft of gold; dust rising |\n| **Verse** | Dark + macro hero-on-black | hard cuts every 2 beats | key, eye, gear, water drop, petal — rhythmic macro montage |\n| **Drop** | Hyperpop bloom + crystalline | speed-ramp in, cut on the one, fast | candy-pink figure, chrome, iridescent bokeh, winged ascension |\n| **Bridge** | Spiritualism, weightless | one long held shot, color-pop | clouds + halo; single red accent punches once |\n| **Drop 2** | as Drop, intensify | add divine-flash blooms on transients | wings open, glitter burst, light leaks maxed |\n| **Outro** | Glacial folk, cold calm | slow fade to black | crystalline structure dissolving; ember dies out |\n\n## fal.ai Prompt Presets (per mood)\n\nUse with `fal-ai-media`. Each preset is the genre rendered to the project palette. Append\n`9:16, vertical, cinematic, film grain, volumetric light, no text, no watermark` to all.\n\n- **Divine void:** \"a single molten-gold ember bloom rising in an infinite near-black void,\n  deep shadow, one warm light source, weightless dust particles, holy, high contrast\"\n- **Macro hero:** \"extreme macro of an antique brass key \u002F a human eye \u002F interlocking gears,\n  centered on pure black negative space, razor-sharp detail, single rim light\"\n- **Crystalline bloom:** \"iridescent violet-cyan-magenta crystalline bokeh, glittering light\n  refraction, dreamy lens flares, heavenly glow, soft focus, hyperpop angelcore\"\n- **Candy-cyber portrait:** \"candy-pink-haired figure, glossy chrome accents, bright blue sky,\n  Y2K hyperpop, clean gloss, saturated, kawaii-cyber\"\n- **Winged ascension:** \"a winged figure ascending into clouds, halo of light, bone-white and\n  gold, volumetric god-rays, ethereal, religious iconography, soft\"\n- **Cold outro:** \"pale crystalline ice structure slowly dissolving, glacial folk, cold blue\n  and bone white, minimal, calm, fading to black\"\n\nGenerate 6–10 per preset, keep 2–3. For motion, animate stills with an image-to-video model\nor generate short clips directly; keep camera moves slow per the Motion rules.\n\n## FFmpeg Recipes (cut + reframe)\n\n```bash\n# Reframe any landscape\u002Fraw clip to 9:16 (center crop)\nffmpeg -i in.mp4 -vf \"crop=ih*9\u002F16:ih,scale=1080:1920\" v.mp4\n\n# Beat-cut a clip to exactly N beats at 138 BPM (e.g. 2 beats = 0.8696s)\nffmpeg -i in.mp4 -t 0.8696 -c copy beat2.mp4\n\n# Concatenate beat-selects into the verse montage\nfor f in selects\u002F*.mp4; do echo \"file '$f'\"; done > concat.txt\nffmpeg -f concat -safe 0 -i concat.txt -c copy verse.mp4\n\n# Strip UI chrome \u002F status bar from a screen-recorded reference (crop top+bottom)\nffmpeg -i reel.mp4 -vf \"crop=iw:ih-300:0:150\" clean.mp4\n```\n\n## Remotion Composition Skeleton (beat-synced)\n\n```tsx\nimport { AbsoluteFill, Sequence, Video, Img, useCurrentFrame, interpolate } from \"remotion\";\n\nconst FPS = 30, BPM = 138;\nconst beat = (n: number) => Math.round(n * (60 \u002F BPM) * FPS);\n\nconst Bloom: React.FC = () => {\n  const f = useCurrentFrame();\n  const o = interpolate(f, [0, 3, 12], [0, 1, 0], { extrapolateRight: \"clamp\" }); \u002F\u002F divine flash on a transient\n  return \u003CAbsoluteFill style={{ background: \"radial-gradient(#fff,#ffb24d)\", opacity: o, mixBlendMode: \"screen\" }} \u002F>;\n};\n\nexport const AngelcoreMV: React.FC = () => (\n  \u003CAbsoluteFill style={{ background: \"#05060a\" }}>\n    {\u002F* Verse: macro hero-on-black, hard cut every 2 beats *\u002F}\n    \u003CSequence from={beat(0)} durationInFrames={beat(2)}>\u003CVideo src=\"\u002Fselects\u002Fkey.mp4\" \u002F>\u003C\u002FSequence>\n    \u003CSequence from={beat(2)} durationInFrames={beat(2)}>\u003CVideo src=\"\u002Fselects\u002Feye.mp4\" \u002F>\u003C\u002FSequence>\n    \u003CSequence from={beat(4)} durationInFrames={beat(2)}>\u003CVideo src=\"\u002Fselects\u002Fgear.mp4\" \u002F>\u003C\u002FSequence>\n    {\u002F* Drop: crystalline bloom + flash on the one *\u002F}\n    \u003CSequence from={beat(8)} durationInFrames={beat(16)}>\u003CVideo src=\"\u002Fselects\u002Fcrystalline.mp4\" \u002F>\u003C\u002FSequence>\n    \u003CSequence from={beat(8)} durationInFrames={beat(1)}>\u003CBloom \u002F>\u003C\u002FSequence>\n  \u003C\u002FAbsoluteFill>\n);\n```\nRender: `npx remotion render src\u002Findex.ts AngelcoreMV out.mp4`. See `remotion-video-creation`\nfor project setup, audio track binding, and render flags.\n\n## Key Principles\n\n1. **Decide the genre before the first generation.** Pick one primary family + one accent.\n2. **One accent color per shot.** Gold in the dark, iridescence in the light, red once.\n3. **Every hard cut lands on a beat.** Use the beat math; no transitions in tempo sections.\n4. **Hero-on-black macro is the signature move.** Master it; it carries the verses.\n5. **Generate 10, keep 2.** Coherence comes from rejection, not from prompting harder.\n6. **Crop the chrome.** No status bars, captions, or UI in the final frame.\n7. **Taste is decided first and judged last.** Set the direction, then defend it on every cut.\n\n## Related Skills\n\n- `video-editing` — the mechanical pipeline (FFmpeg, reframe, EDL, polish) this sits on top of\n- `remotion-video-creation` — programmable beat-synced composition and rendering\n- `fal-ai-media` — generate the b-roll, transition SFX, and risers\n- `motion-foundations`, `motion-patterns`, `motion-advanced` — easing and motion timing\n- `videodb` — server-side smart reframe and indexing for large footage\n- `content-engine` — platform-native distribution, covers, captions\n- `frontend-design-direction` — the same \"decide a direction first\" discipline, for UI\n","# Taste\n\nMost AI video advice stops at *how to render frames*. This skill is the layer above\nthat: **what the frames should look like, in what order, cut to what rhythm, so the\nresult reads as one intentional thing instead of a pile of generations.**\n\nIt encodes a specific taste — the **angelcore \u002F cloud-trance \u002F hyperpop** family\n(Bladee \"Silver Surfer\"-era ethereal trance crossed with heavy angelcore) — distilled\nfrom a corpus of saved Reels and a tour through a ~70-entry visual-genre library. It\nis opinionated on purpose. Taste is a point of view, not a menu.\n\n> The companion file `references\u002Fgenre-taxonomy.md` holds the full named-genre catalog.\n> This file is the actionable layer: mood, grammar, pipeline, and a beat-mapped shot plan.\n\n## When to Activate\n\n- Building a **music video**, lyric video, fancam, or visualizer.\n- Making a short-form **edit \u002F reel** where the *feel* matters more than the information.\n- Driving **AI b-roll generation** (fal.ai, Veo, Kling, etc.) and the prompts need a\n  coherent direction instead of one-off vibes.\n- Assembling a **moodboard** or choosing a visual genre before any rendering.\n- The user says \"taste\", \"make it feel like X\", \"give it a direction\", \"angelcore\",\n  \"cloud trance\", \"hyperpop edit\", \"Bladee\", \"dreamcore\", or names a saved reference.\n- The current edit works but reads as flat, generic, AI-slop, or stylistically incoherent.\n\nThis skill sits **on top of** `video-editing` (the mechanics) and `remotion-video-creation`\n(the renderer). Use those for *how*. Use this for *what and why*.\n\n## Core Thesis\n\n1. **Taste is the last layer, and it must be decided first.** `video-editing` correctly\n   says taste is the final human pass. The trap: if you only decide taste at the end, every\n   generation and cut upstream was a guess. Pick the direction *before* the first prompt,\n   then let it constrain everything.\n2. **Coherence beats novelty.** One look executed across 30 shots beats 30 looks. A named\n   genre (below) is a constraint that buys coherence for free.\n3. **Cut to the song, not to the footage.** In a music video the timeline is the waveform.\n   Every hard cut lands on a beat or a transient. Frame math is in the pipeline section.\n4. **Generate selectively, edit ruthlessly.** AI makes b-roll that does not exist; it does\n   not make taste. You still throw away 80%.\n\n## The Aesthetic Vocabulary (distilled)\n\nThe reference corpus tours a large library of *named* visual genres. The full list lives in\n`references\u002Fgenre-taxonomy.md`. The useful move is not memorizing 70 names — it is seeing\nthat **a genre name is a complete prompt-and-grade preset.** When you pick one, you inherit\nits palette, texture, lighting, and subject matter as a unit.\n\nThe genres cluster into families. Pick a **primary** family and at most **one accent**:\n\n| Family | Genres in it | Reads as |\n|--------|-------------|----------|\n| **Ethereal \u002F divine** | spiritualism, glacial folk, beacons, zen core, fairy tale | weightless, holy, glowing, soft |\n| **Hyperpop \u002F Y2K-cyber** | cyberdelia, acid house, acid nora, neo aggressano, new liquid | glossy, chrome, neon, kawaii-cyber |\n| **Dark \u002F occult** | dark academia, smoke nostalgia, communist core, abstract tech | high-contrast, ominous, grain |\n| **Retro \u002F print** | retro surfers, art deco, adventure pulp, classic advertising, magazine collage, bumper stickers | flat, graphic, halftone, nostalgic |\n| **Organic \u002F textural** | microbiology core, weaving patterns, fruitage retro, cozy blanket, pacific punk wave | tactile, macro, woven, wet |\n| **Systemic \u002F data** | numbers, mazes, code web, heatmap, pixel, 8-bit | gridded, generative, schematic |\n\n**For the current project**, the primary is **Ethereal \u002F divine** with a **Hyperpop \u002F Y2K-cyber**\naccent — i.e. holy light and crystalline bloom, punctuated by chrome and neon. That pairing\n*is* the angelcore × cloud-trance brief.\n\n## The Mood System — angelcore × cloud-trance\n\nDistilled directly from the strongest reference reels. This is the concrete grade.\n\n### Palette\n- **Base:** near-black void (#05060a) and bone white (#f4f1ea). Most frames are one or the other.\n- **Divine accent:** molten gold \u002F ember orange (#ffb24d → #ff7a18) — the *one warm light* in the dark.\n- **Crystalline accent:** iridescent violet→cyan→magenta bokeh (#8a6bff, #4fc3ff, #ff6ad5) — the\n  hyperpop bloom, used in bright frames.\n- **Danger accent (sparingly):** a single glowing red (#ff2a2a) on monochrome — for one or two\n  shock cuts only.\n- **Hyperpop subject:** candy pink hair \u002F chrome \u002F glossy white against blue sky.\n\nRule: **one accent per shot.** Gold lives in dark frames; iridescence lives in light frames;\nnever both in one shot.\n\n### Light & texture\n- Darkness pierced by a single warm source (ember bloom, divine shaft). High contrast, deep blacks.\n- Crystalline \u002F glitter bokeh, lens flares, bloom, light leaks — *heavenly*, not dirty.\n- Film grain + subtle chromatic aberration on the dark frames; clean gloss on the bright frames.\n- Macro detail on negative space: a hero object centered on black (key, eye, gear, petal, water).\n- Subjects: winged figures, clouds, halos, angels, crystalline structures, candy-cyber portraits.\n\n### Motion\n- Slow, floating, weightless camera (drift, slow push, slow orbit) — *cloud* trance.\n- Bursts of speed only at the drop. Otherwise everything breathes.\n- Particles rising (embers, dust, glitter) — upward motion = ascension.\n\n## The Editing Grammar (distilled)\n\nFrom the reference edits, the techniques that recur and define the style:\n\n1. **Beat-locked hard cuts.** No dissolves in the verse\u002Fdrop. Cut on the kick. The eye should\n   feel the BPM.\n2. **Hero-on-black macro inserts.** A single sharp object centered in black negative space,\n   held for 1–2 beats, then cut. Rhythmic montage of these = the cloud-trance signature.\n3. **Bloom \u002F explosion reveal.** A white or ember bloom that blows out the frame on a transient,\n   then resolves into the next shot. The \"divine flash\" transition.\n4. **Color-pop on monochrome.** Run a passage in B&W, then a single colored element (red eye,\n   gold flame, pink hair) punches through on the downbeat.\n5. **Speed-ramp into the drop.** Ramp footage from slow to fast across the last bar before the\n   drop, hard-cut to tempo on the one.\n6. **Caption keyword highlight (for talking-head \u002F lyric sections only).** All-caps, one or two\n   words highlighted in the accent color, synced to the vocal. Use for lyric video, not for the\n   pure visualizer.\n7. **Reaction PiP (for explainer\u002Fedit-commentary only).** Picture-in-picture talking head over\n   b-roll. Out of scope for the music video itself; documented because the corpus uses it heavily.\n\n**Do-nots:** crossfade transitions in tempo sections; more than one accent color per shot; a\nshot held past its musical phrase; readable on-screen UI chrome (crop it out); mixed aspect\nratios in one timeline.\n\n## The Pipeline — mixing the ECC video skills\n\nThis skill is the conductor. Each ECC skill is an instrument. Do not skip layers.\n\n```\n0. TASTE (this skill)        decide genre + mood + grammar BEFORE anything renders\n1. STRUCTURE (video-editing) map the song: timestamps for intro\u002Fverse\u002Fdrop\u002Fbridge\u002Foutro\n2. GENERATE (fal-ai-media)   make b-roll per genre prompt-presets; throw away 80%\n3. CUT (video-editing\u002FFFmpeg) beat-cut + reframe to 9:16; assemble selects on the grid\n4. COMPOSE (remotion-video-creation) overlays, blooms, lyric text, beat-synced sequencing\n5. MOTION (motion-* skills)  easing curves, light-leak\u002Fparticle motion, transition timing\n6. AUDIO (fal-ai-media)      transition risers\u002Fimpacts to sell the cuts (track itself is in Ableton)\n7. POLISH                    grade to the palette above, final pacing pass, export\n8. DISTRIBUTE (content-engine) platform-native versions + caption\u002Fcover\n```\n\n| Step | ECC skill to load | What it does here |\n|------|-------------------|-------------------|\n| Structure & cut | `video-editing` | FFmpeg cut\u002Fconcat\u002Freframe, EDL, scene\u002Fsilence detection |\n| Generate b-roll | `fal-ai-media` | image\u002Fvideo models per genre preset |\n| Compose & overlay | `remotion-video-creation` | beat-synced `\u003CSequence>`s, text, blooms, masks |\n| Motion timing | `motion-foundations`, `motion-patterns`, `motion-advanced` | easing, springs, light\u002Fparticle motion |\n| Server-side video | `videodb` | smart reframe, indexing if footage is large |\n| Distribution | `content-engine` | per-platform cuts, covers, captions |\n| Voice\u002Flyric VO | `video-editing` (ElevenLabs section) | only if a spoken layer is needed |\n\n## Beat Math (lock cuts to the song)\n\nThe current track is **138 BPM, B minor**. Constants:\n\n- `seconds_per_beat = 60 \u002F 138 = 0.43478s`\n- `frames_per_beat   = fps × 0.43478`  →  **24fps: 10.43**, **30fps: 13.04**, **60fps: 26.09**\n- `1 bar (4 beats)   = 1.7391s`  →  30fps: **52.17 frames**\n- `8-bar phrase      = 13.913s`  →  the loop length from the track\n\nIn Remotion, snap every `from={}` to a beat:\n```ts\nconst FPS = 30;\nconst BPM = 138;\nconst beat = (n: number) => Math.round(n * (60 \u002F BPM) * FPS); \u002F\u002F beat(n) → frame\n\u002F\u002F cut on beats 0,4,8,... :  \u003CSequence from={beat(0)} durationInFrames={beat(4)}> ...\n```\n\n## Beat-Mapped Shot Plan (this music video)\n\nThe song arrangement (from the project's own notes) is\n**Intro → Verse → Drop → Bridge → Drop → Outro (~2:05)**. Map taste to each section:\n\n| Section | Genre\u002Fmood lean | Grammar | Shot ideas |\n|---------|-----------------|---------|------------|\n| **Intro** | Ethereal\u002Fdivine, near-black | slow push, no cuts | ember bloom in the void; a single shaft of gold; dust rising |\n| **Verse** | Dark + macro hero-on-black | hard cuts every 2 beats | key, eye, gear, water drop, petal — rhythmic macro montage |\n| **Drop** | Hyperpop bloom + crystalline | speed-ramp in, cut on the one, fast | candy-pink figure, chrome, iridescent bokeh, winged ascension |\n| **Bridge** | Spiritualism, weightless | one long held shot, color-pop | clouds + halo; single red accent punches once |\n| **Drop 2** | as Drop, intensify | add divine-flash blooms on transients | wings open, glitter burst, light leaks maxed |\n| **Outro** | Glacial folk, cold calm | slow fade to black | crystalline structure dissolving; ember dies out |\n\n## fal.ai Prompt Presets (per mood)\n\nUse with `fal-ai-media`. Each preset is the genre rendered to the project palette. Append\n`9:16, vertical, cinematic, film grain, volumetric light, no text, no watermark` to all.\n\n- **Divine void:** \"a single molten-gold ember bloom rising in an infinite near-black void,\n  deep shadow, one warm light source, weightless dust particles, holy, high contrast\"\n- **Macro hero:** \"extreme macro of an antique brass key \u002F a human eye \u002F interlocking gears,\n  centered on pure black negative space, razor-sharp detail, single rim light\"\n- **Crystalline bloom:** \"iridescent violet-cyan-magenta crystalline bokeh, glittering light\n  refraction, dreamy lens flares, heavenly glow, soft focus, hyperpop angelcore\"\n- **Candy-cyber portrait:** \"candy-pink-haired figure, glossy chrome accents, bright blue sky,\n  Y2K hyperpop, clean gloss, saturated, kawaii-cyber\"\n- **Winged ascension:** \"a winged figure ascending into clouds, halo of light, bone-white and\n  gold, volumetric god-rays, ethereal, religious iconography, soft\"\n- **Cold outro:** \"pale crystalline ice structure slowly dissolving, glacial folk, cold blue\n  and bone white, minimal, calm, fading to black\"\n\nGenerate 6–10 per preset, keep 2–3. For motion, animate stills with an image-to-video model\nor generate short clips directly; keep camera moves slow per the Motion rules.\n\n## FFmpeg Recipes (cut + reframe)\n\n```bash\n# Reframe any landscape\u002Fraw clip to 9:16 (center crop)\nffmpeg -i in.mp4 -vf \"crop=ih*9\u002F16:ih,scale=1080:1920\" v.mp4\n\n# Beat-cut a clip to exactly N beats at 138 BPM (e.g. 2 beats = 0.8696s)\nffmpeg -i in.mp4 -t 0.8696 -c copy beat2.mp4\n\n# Concatenate beat-selects into the verse montage\nfor f in selects\u002F*.mp4; do echo \"file '$f'\"; done > concat.txt\nffmpeg -f concat -safe 0 -i concat.txt -c copy verse.mp4\n\n# Strip UI chrome \u002F status bar from a screen-recorded reference (crop top+bottom)\nffmpeg -i reel.mp4 -vf \"crop=iw:ih-300:0:150\" clean.mp4\n```\n\n## Remotion Composition Skeleton (beat-synced)\n\n```tsx\nimport { AbsoluteFill, Sequence, Video, Img, useCurrentFrame, interpolate } from \"remotion\";\n\nconst FPS = 30, BPM = 138;\nconst beat = (n: number) => Math.round(n * (60 \u002F BPM) * FPS);\n\nconst Bloom: React.FC = () => {\n  const f = useCurrentFrame();\n  const o = interpolate(f, [0, 3, 12], [0, 1, 0], { extrapolateRight: \"clamp\" }); \u002F\u002F divine flash on a transient\n  return \u003CAbsoluteFill style={{ background: \"radial-gradient(#fff,#ffb24d)\", opacity: o, mixBlendMode: \"screen\" }} \u002F>;\n};\n\nexport const AngelcoreMV: React.FC = () => (\n  \u003CAbsoluteFill style={{ background: \"#05060a\" }}>\n    {\u002F* Verse: macro hero-on-black, hard cut every 2 beats *\u002F}\n    \u003CSequence from={beat(0)} durationInFrames={beat(2)}>\u003CVideo src=\"\u002Fselects\u002Fkey.mp4\" \u002F>\u003C\u002FSequence>\n    \u003CSequence from={beat(2)} durationInFrames={beat(2)}>\u003CVideo src=\"\u002Fselects\u002Feye.mp4\" \u002F>\u003C\u002FSequence>\n    \u003CSequence from={beat(4)} durationInFrames={beat(2)}>\u003CVideo src=\"\u002Fselects\u002Fgear.mp4\" \u002F>\u003C\u002FSequence>\n    {\u002F* Drop: crystalline bloom + flash on the one *\u002F}\n    \u003CSequence from={beat(8)} durationInFrames={beat(16)}>\u003CVideo src=\"\u002Fselects\u002Fcrystalline.mp4\" \u002F>\u003C\u002FSequence>\n    \u003CSequence from={beat(8)} durationInFrames={beat(1)}>\u003CBloom \u002F>\u003C\u002FSequence>\n  \u003C\u002FAbsoluteFill>\n);\n```\nRender: `npx remotion render src\u002Findex.ts AngelcoreMV out.mp4`. See `remotion-video-creation`\nfor project setup, audio track binding, and render flags.\n\n## Key Principles\n\n1. **Decide the genre before the first generation.** Pick one primary family + one accent.\n2. **One accent color per shot.** Gold in the dark, iridescence in the light, red once.\n3. **Every hard cut lands on a beat.** Use the beat math; no transitions in tempo sections.\n4. **Hero-on-black macro is the signature move.** Master it; it carries the verses.\n5. **Generate 10, keep 2.** Coherence comes from rejection, not from prompting harder.\n6. **Crop the chrome.** No status bars, captions, or UI in the final frame.\n7. **Taste is decided first and judged last.** Set the direction, then defend it on every cut.\n\n## Related Skills\n\n- `video-editing` — the mechanical pipeline (FFmpeg, reframe, EDL, polish) this sits on top of\n- `remotion-video-creation` — programmable beat-synced composition and rendering\n- `fal-ai-media` — generate the b-roll, transition SFX, and risers\n- `motion-foundations`, `motion-patterns`, `motion-advanced` — easing and motion timing\n- `videodb` — server-side smart reframe and indexing for large footage\n- `content-engine` — platform-native distribution, covers, captions\n- `frontend-design-direction` — the same \"decide a direction first\" discipline, for UI\n",{"name":5,"origin":51,"description":7},"ECC","main","74715deacdc69119d739f38916f8ee4f0f979ebf","skills\u002Fstorage\u002Faffaan-m_ECC\u002Ftaste",0,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills","https:\u002F\u002Fgithub.com\u002Fmdnaimul22","AI Agents Workflows Automation | Specializing in Python, FastAPI, MCP Agents & Custom ERP.","2026-11-11 21:16:57",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add mdnaimul22\u002Fhuman-skills --skill taste",{"tool":66,"command":67},"bunx","bunx skills add mdnaimul22\u002Fhuman-skills --skill taste",{"tool":69,"command":70},"pnpm","pnpm dlx skills add mdnaimul22\u002Fhuman-skills --skill taste","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Faffaan-m_ECC\u002Ftaste\u002FSKILL.md",true,[74],{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002Fgenre-taxonomy.md","REFERENCE","参考文档",4869,"https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Faffaan-m_ECC\u002Ftaste\u002Freferences\u002Fgenre-taxonomy.md",[81,89,116,137,156,171],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":88},"01M72JT3YP1SQHD0MANGDXQ4RT","higgsfield-websites","Build, edit, and deploy full-stack websites, apps and games via the Higgsfield CLI (`higgsfield website …`). Each is a React 19 + TanStack Start SSR app in one Cloudflare Worker (D1\u002FR2\u002FKV\u002FDO\u002FContainers). THREE product types, picked via `--type` on create: `website` (standalone, no Higgsfield integration — references\u002Fwebsite-flow.md), `app` (Sign in with Higgsfield + fnf SDK, Quanta — references\u002Fapp-flow.md), `game` (realtime multiplayer rooms — references\u002Fgame-flow.md). Routes to the right flow; each carries its own rules and deploy\u002Fpublish gates.\nUse when: \"build me a website\", \"make a landing page\", \"create a web app\", \"build a SaaS dashboard \u002F portfolio\", \"make me a game\", \"deploy this site\", \"publish\". Also owns GAME ART: \"make a spritesheet\", \"tileable texture\", \"animate a 3D character\", game music\u002FSFX — see the game-* references.\nNOT for: single image\u002Fvideo\u002Faudio generation (higgsfield-generate), product photos (higgsfield-product-photoshoot), marketplace cards (higgsfield-marketplace-cards).","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fhiggsfield-ai_skills\u002Fhiggsfield-websites\u002FSKILL.md",[],[],"2026-11-10 22:39:42",{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":107,"publishedAt":46},"01M70JPK8HAXXA85P7Q8NKZZYG","writing-skills","Use when creating new skills, editing existing skills, or verifying skills work before deployment","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fobra_superpowers\u002Fwriting-skills\u002FSKILL.md",[95,98,103,104],{"categoryNo":96,"categoryName":97,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":99,"categoryName":100,"taxonomyType":101,"taxonomyTypeDesc":102},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":105,"categoryName":106,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[108,109,110,111,112,113,114,28,115],"writing","writing skills","editing","deployment","use","Existing","new","work",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":127,"publishedAt":46},"01M70JP4PHBH1CQVVDWZ94W159","writing-plans","Use when you have a spec or requirements for a multi-step task, before touching code","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fobra_superpowers\u002Fwriting-plans\u002FSKILL.md",[122,123,124],{"categoryNo":96,"categoryName":97,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":99,"categoryName":100,"taxonomyType":101,"taxonomyTypeDesc":102},{"categoryNo":125,"categoryName":126,"taxonomyType":101,"taxonomyTypeDesc":102},"01JBSEEDCAT000000000000030","开发工程师",[108,128,129,130,28,131,31,112,132,133,134,135,136],"writing plans","plans","you","code","requirements","task","multi","spec","multi-step task",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":143,"publishedAt":46},"01M70JNTYVGXFZT8PASZ844TH8","verification-before-completion","Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fobra_superpowers\u002Fverification-before-completion\u002FSKILL.md",[],[144,145,146,147,148,149,112,150,151,152,28,153,115,154,155],"verification","verification before completion","complete","about","output","assertions","prs","evidence","claim","claims","commands","running",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":163,"publishedAt":46},"01M70JNGVSQDESWN0Q5BPJ875V","using-superpowers","Use when starting any conversation - establishes how to find and use skills, requiring skill invocation before ANY response including clarifying questions","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fobra_superpowers\u002Fusing-superpowers\u002FSKILL.md",[162],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[164,165,166,167,112,28,168,169,170],"using superpowers","superpowers","conversation","how to","how","find","questions",{"skillNo":172,"name":173,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":175,"categories":176,"keywords":177,"publishedAt":46},"01M70JN57CE588NPYPYTWH1DWG","using-git-worktrees","Use when starting feature work that needs isolation from current workspace or before executing implementation plans - ensures an isolated workspace exists via native tools or git worktree fallback","https:\u002F\u002Fgithub.com\u002Fmdnaimul22\u002Fhuman-skills\u002Fblob\u002Fmain\u002Fskills\u002Fstorage\u002Fobra_superpowers\u002Fusing-git-worktrees\u002FSKILL.md",[],[178,179,180,181,182,183,28,115,184,185,186,187,188,189,190,129,112,191,192],"using git worktrees","Using git","git","worktrees","git worktrees","implementation","git worktree","worktree","native","Tools","isolation","fallback","feature","via","workspace"]