luckiest-co 1.0.32 → 1.0.34
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.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/commands/plan.md +1 -0
- package/package.json +1 -1
- package/skills/luckiest-plan/SKILL.md +1 -0
- package/skills/luckiest-research/CHANGELOG.md +5 -0
- package/skills/luckiest-research/SKILL.md +8 -4
- package/skills/luckiest-video-studio/ATTRIBUTION.md +11 -0
- package/skills/luckiest-video-studio/CHANGELOG.md +56 -0
- package/skills/luckiest-video-studio/SKILL.md +35 -7
- package/skills/luckiest-video-studio/references/audio.md +61 -10
- package/skills/luckiest-video-studio/references/lessons.md +44 -0
- package/skills/luckiest-video-studio/references/step-2-plan.md +32 -1
- package/skills/luckiest-video-studio/references/step-3-compose.md +28 -0
- package/skills/luckiest-video-studio/references/step-4-deliver.md +24 -1
- package/skills/luckiest-video-studio/references/storyboard.md +24 -3
- package/skills/luckiest-video-studio/scripts/qa.mjs +167 -5
- package/skills/luckiest-video-studio/scripts/qa.test.mjs +99 -1
- package/skills/luckiest-video-studio/scripts/render-scenes.mjs +196 -71
- package/skills/luckiest-video-studio/scripts/render-scenes.test.mjs +109 -0
- package/skills/luckiest-video-studio/scripts/sfx-cues.mjs +116 -0
- package/skills/luckiest-video-studio/scripts/sfx-cues.test.mjs +76 -0
- package/skills/luckiest-video-studio/scripts/stamp-format.mjs +26 -0
- package/skills/luckiest-video-studio/scripts/storyboard.schema.json +23 -0
- package/skills/luckiest-video-studio/templates/logo-line-draw.html +12 -5
- package/skills/luckiest-video-studio-art-director/ATTRIBUTION.md +1 -0
- package/skills/luckiest-video-studio-art-director/CHANGELOG.md +8 -0
- package/skills/luckiest-video-studio-art-director/SKILL.md +18 -5
- package/skills/luckiest-video-studio-cards/CHANGELOG.md +18 -0
- package/skills/luckiest-video-studio-cards/SKILL.md +22 -7
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-agenda.html +17 -6
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-bigtype.html +15 -5
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-board.html +20 -6
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-checklist.html +27 -6
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-compare.html +40 -9
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-deck.html +26 -6
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-dossier.html +28 -9
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-filmstrip.html +36 -5
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-grid6.html +24 -6
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-indexset.html +34 -6
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-maplegend.html +39 -8
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-matrix.html +35 -7
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-numlist.html +26 -7
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-outline.html +26 -6
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-phases.html +34 -7
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-quad.html +41 -10
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-roadmap.html +66 -17
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-stepper.html +42 -7
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-toc.html +26 -8
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-overview-vtimeline.html +35 -9
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-bracket.html +16 -4
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-circle.html +21 -5
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-classified.html +25 -7
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-collage.html +27 -9
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-correction.html +19 -7
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-crt.html +15 -4
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-cutout.html +18 -8
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-fullbleed.html +18 -5
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-highlight.html +15 -5
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-indexcard.html +18 -5
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-map.html +20 -8
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-markerbox.html +12 -5
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-numeral.html +21 -7
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-split.html +25 -9
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-stacked.html +26 -10
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-stamp.html +14 -5
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-ticker.html +26 -9
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-section-tornstrip.html +13 -4
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-annotated.html +29 -9
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-arc.html +25 -7
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-axis.html +34 -14
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-bar.html +17 -8
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-bracket.html +24 -8
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-calendar.html +24 -9
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-callout.html +24 -5
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-columns.html +27 -9
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-corner.html +22 -9
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-dots.html +27 -8
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-engraving.html +30 -8
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-footnote.html +20 -8
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-frac.html +24 -8
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-heat.html +22 -8
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-isotype.html +29 -8
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-ledger.html +18 -6
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-left.html +27 -10
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-magnifier.html +21 -8
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-map.html +21 -9
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-meter.html +26 -9
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-multiplier.html +27 -12
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-odo.html +18 -5
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-pack.html +41 -17
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-photo.html +18 -7
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-pie.html +25 -8
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-postage.html +24 -8
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-pricetag.html +25 -11
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-quote.html +21 -8
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-ranking.html +25 -10
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-receipt.html +24 -12
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-ribbon.html +34 -12
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-semi.html +22 -7
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-spotlight.html +23 -9
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-stamp.html +24 -7
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-steps.html +30 -9
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-tape.html +33 -12
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-torn.html +22 -9
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-trend.html +23 -9
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-vs.html +30 -10
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat-window.html +38 -25
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-stat.html +23 -4
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier1/t1-timeline.html +41 -6
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-label.html +10 -3
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-bracket.html +9 -2
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-caption.html +12 -5
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-circle.html +10 -3
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-definition.html +10 -3
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-footnote.html +11 -4
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-magnify.html +9 -2
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-pin.html +9 -2
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-pullquote.html +10 -3
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-spotlight.html +15 -2
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-sticky.html +9 -2
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-tag.html +10 -3
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lb-underline.html +9 -2
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lower-third.html +9 -2
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-badge.html +10 -3
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-barslab.html +26 -7
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-bracket.html +9 -2
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-clapper.html +9 -2
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-highlight.html +9 -2
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-indextab.html +10 -3
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-rail.html +9 -2
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-ribbon.html +9 -2
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-stacked.html +9 -2
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-stamp.html +9 -2
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-sticky.html +9 -2
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/cards/tier2/t2-lt-typecard.html +9 -2
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/style.json +1 -1
- package/skills/luckiest-video-studio-cards/packs/01-paper-collage/tokens.css +18 -8
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-agenda.html +23 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-beforeafter.html +30 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-bento.html +34 -8
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-bigleft.html +28 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-callouts.html +36 -7
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-cardrow5.html +17 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-checklist.html +11 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-cycle.html +30 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-dashboard.html +32 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-deck2.html +21 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-deck3.html +18 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-duallist.html +24 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-featurecompare.html +19 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-featuregrid.html +25 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-flashcards.html +22 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-flow.html +23 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-funnel.html +19 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-gantt.html +22 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-grid6.html +17 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-grid9.html +15 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-iconlist.html +18 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-journey.html +41 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-kpirow.html +24 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-layers.html +20 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-legend.html +19 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-levels.html +19 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-logowall.html +18 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-mappoints.html +18 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-matrix.html +24 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-milestones.html +38 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-mindmap.html +35 -12
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-nested.html +13 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-network.html +76 -31
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-notifs.html +21 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-numlist.html +16 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-orgchart.html +36 -16
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-outline.html +17 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-phases.html +23 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-pipeline.html +25 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-pricing.html +36 -8
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-profiles.html +20 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-proscons.html +21 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-pyramid.html +17 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-quad.html +13 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-quotegrid.html +19 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-ranked.html +19 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-roadmap.html +27 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-spectrum.html +29 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-split3.html +24 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-spotlightcard.html +34 -8
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-statgrid.html +17 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-steps.html +25 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-summary.html +22 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-tiercompare.html +29 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-timeline.html +26 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-toc.html +15 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-tree.html +40 -15
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-tricards.html +22 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-venn.html +34 -9
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-overview-vstable.html +24 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-ascend.html +10 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-aurora-bars.html +12 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-beam.html +11 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-boxed.html +26 -13
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-breath.html +14 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-chaptercard.html +13 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-column-light.html +17 -9
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-constellation.html +15 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-countdown.html +10 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-curtain.html +9 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-dawn.html +13 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-depth.html +18 -12
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-divider.html +10 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-drift-grid.html +11 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-duotone.html +16 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-eclipse.html +11 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-emblem.html +12 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-flare-sweep.html +14 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-glow-rule.html +22 -13
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-gradient-word.html +15 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-gridfloor.html +16 -2
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-halo.html +16 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-horizon.html +16 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-index.html +25 -9
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-kinetic.html +10 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-lensflare.html +10 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-liquid.html +12 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-marquee.html +34 -25
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-mesh.html +13 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-monolith.html +9 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-node-title.html +17 -1
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-numeral.html +13 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-orb.html +12 -2
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-orbit.html +9 -1
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-particles.html +7 -1
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-pill.html +7 -1
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-portal.html +14 -2
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-prism.html +15 -2
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-question.html +14 -2
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-quoteopen.html +11 -2
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-reveal-mask.html +6 -1
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-ribbon.html +12 -1
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-ripple.html +8 -1
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-searchbar.html +15 -2
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-slab.html +9 -2
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-sphere-top.html +12 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-split-reveal.html +24 -7
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-splitpanel.html +27 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-spotlight-cone.html +16 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-spotlight.html +10 -2
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-stack.html +17 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-stacked-words.html +14 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-starfield.html +7 -1
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-sweep.html +11 -2
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-tunnel.html +14 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-type-scale.html +9 -2
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-typed.html +9 -2
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-underline-grow.html +13 -1
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-waveform.html +11 -2
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-section-wordmark.html +11 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-annot.html +22 -7
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-beforeafter.html +23 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-bigpercent.html +10 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-bracketstat.html +13 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-bubble.html +7 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-cbars.html +8 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-clockface.html +8 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-column.html +12 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-compass.html +7 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-counterpill.html +11 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-curve.html +22 -10
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-delta.html +13 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-dial.html +9 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-donut.html +15 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-dotgrid.html +14 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-figure.html +9 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-fillshape.html +11 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-fraction.html +11 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-funnel.html +24 -8
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-growtharrow.html +18 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-heatcell.html +8 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-isotype.html +16 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-layered.html +10 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-mega.html +9 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-meter.html +9 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-milestone.html +9 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-money.html +16 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-multiplier.html +12 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-multiring.html +10 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-needle.html +10 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-nodes.html +50 -9
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-odometer.html +9 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-orbitmoons.html +21 -8
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-orbitstat.html +9 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-pair.html +18 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-percentile.html +11 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-pictobar.html +11 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-polar.html +12 -2
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-quotestat.html +15 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-radialbars.html +18 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-range.html +12 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-rank.html +13 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-ratio.html +10 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-ring.html +10 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-risewall.html +18 -2
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-score.html +11 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-segbar.html +9 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-semigauge.html +9 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-sparkline.html +9 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-spectrum.html +9 -2
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-split.html +14 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-stackedbars.html +9 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-tickerstat.html +18 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-tiles.html +18 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-timer.html +14 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-trendline.html +18 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-underscore.html +9 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-versus.html +18 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-waffle.html +18 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier1/t1-stat-waterfall.html +9 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-badge.html +13 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-brace.html +13 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-bracket.html +13 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-bubble.html +16 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-byline.html +17 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-callout.html +13 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-category.html +14 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-checkmark.html +13 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-chipstat.html +13 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-comparemini.html +14 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-coord.html +26 -8
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-counter.html +17 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-crosshair.html +18 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-dashed.html +19 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-definition.html +14 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-deltachip.html +15 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-eyebrow.html +14 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-fact.html +14 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-flag.html +20 -7
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-formula.html +17 -7
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-hash.html +17 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-highlightbox.html +13 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-iconchip.html +13 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-info.html +14 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-infocard.html +13 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-keycap.html +13 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-keyword.html +12 -3
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-leader.html +16 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-legend.html +14 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-measure.html +14 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-meterchip.html +16 -7
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-metric.html +15 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-micropie.html +15 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-minibar.html +15 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-node.html +28 -18
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-note.html +14 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-numbercallout.html +18 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-percent.html +15 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-pointer.html +31 -22
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-price.html +20 -8
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-progress.html +15 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-pulse.html +14 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-qmark.html +15 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-quote.html +16 -7
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-rating.html +14 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-ribbon.html +19 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-ringmark.html +27 -17
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-search.html +14 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-sparkchip.html +15 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-spec.html +25 -13
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-status.html +15 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-step.html +16 -7
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-tag.html +14 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-takeaway.html +13 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-tcode.html +18 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-timestamp.html +15 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-toast.html +15 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-tooltip.html +14 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-underline.html +14 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lb-warning.html +16 -7
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-avatar.html +12 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-badgecard.html +12 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-barslide.html +11 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-bracket.html +20 -7
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-brandbar.html +13 -7
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-bug.html +12 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-capsule.html +14 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-chapterbar.html +12 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-chip.html +11 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-cinemastrip.html +20 -8
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-cite.html +12 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-clockname.html +11 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-coordbar.html +16 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-corner.html +11 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-cornerframe.html +16 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-countbar.html +13 -7
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-dividername.html +26 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-dotline.html +11 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-doublecard.html +12 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-dual.html +12 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-edgebar.html +11 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-flipcard.html +15 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-geopin.html +11 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-glasscard.html +11 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-gradient.html +11 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-gradientbar.html +12 -4
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-handlebar.html +11 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-infochips.html +11 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-lensbar.html +25 -12
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-live.html +12 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-location.html +14 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-logolock.html +14 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-micname.html +14 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-minicard.html +13 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-minimal.html +13 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-nameplate3d.html +13 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-neonframe.html +14 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-neonpill.html +13 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-nowplaying.html +15 -7
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-orbitbadge.html +13 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-pill.html +14 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-portraitframe.html +14 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-progressname.html +13 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-quote.html +15 -7
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-ratingname.html +14 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-ribbon.html +13 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-sidebracket.html +13 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-slidetab.html +15 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-social.html +14 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-spotlightname.html +14 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-stacked.html +13 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-statline.html +13 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-tagrow.html +14 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-thinstrip.html +18 -8
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-ticker.html +29 -7
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-titlebar.html +19 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-trust.html +16 -8
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-typedname.html +13 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-underbar.html +13 -5
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/cards/tier2/t2-lt-waveband.html +14 -6
- package/skills/luckiest-video-studio-cards/packs/02-aurora-glass/tokens.css +18 -8
- package/skills/luckiest-video-studio-cards/packs/_blueprint/cards/tier1/t1-stat.html +4 -2
- package/skills/luckiest-video-studio-cards/packs/_blueprint/cards/tier2/t2-list.html +5 -2
- package/skills/luckiest-video-studio-cards/packs/_blueprint/tokens.css +12 -4
- package/skills/luckiest-video-studio-cards/references/card-contract.md +15 -1
- package/skills/luckiest-video-studio-cards/scripts/qa-cards.mjs +14 -8
- package/skills/luckiest-video-studio-cards/templates/glass-popout/index.html +35 -11
- package/skills/luckiest-video-studio-cards/templates/glass-popout/meta.json +6 -1
- package/skills/luckiest-video-studio-cards/templates/graph-paper/index.html +15 -10
- package/skills/luckiest-video-studio-cards/templates/graph-paper/meta.json +7 -2
- package/skills/luckiest-video-studio-motion/ATTRIBUTION.md +4 -0
- package/skills/luckiest-video-studio-motion/CHANGELOG.md +9 -0
- package/skills/luckiest-video-studio-motion/SKILL.md +7 -3
- package/skills/luckiest-video-studio-motion/references/vocabulary.md +21 -0
- package/skills/luckiest-video-studio-motion/templates/spring.js +50 -0
- package/skills/luckiest-video-studio-motion/templates/spring.test.mjs +51 -0
- package/skills/luckiest-video-studio-recreate/ATTRIBUTION.md +2 -0
- package/skills/luckiest-video-studio-recreate/CHANGELOG.md +11 -0
- package/skills/luckiest-video-studio-recreate/SKILL.md +46 -7
- package/skills/luckiest-video-studio-reel/CHANGELOG.md +6 -0
- package/skills/luckiest-video-studio-reel/SKILL.md +9 -4
- package/skills/luckiest-video-studio-reel/templates/reel.html +36 -18
- package/skills/luckiest-video-studio-reference/CHANGELOG.md +4 -0
- package/skills/luckiest-video-studio-reference/SKILL.md +10 -3
- package/skills/luckiest-video-studio-review/ATTRIBUTION.md +4 -0
- package/skills/luckiest-video-watcher/ATTRIBUTION.md +37 -0
- package/skills/luckiest-video-watcher/CHANGELOG.md +90 -0
- package/skills/luckiest-video-watcher/LICENSE-claude-video +21 -0
- package/skills/luckiest-video-watcher/SKILL.md +201 -0
- package/skills/luckiest-video-watcher/references/watch-guide.md +159 -0
- package/skills/luckiest-video-watcher/scripts/config.py +174 -0
- package/skills/luckiest-video-watcher/scripts/download.py +207 -0
- package/skills/luckiest-video-watcher/scripts/frames.py +758 -0
- package/skills/luckiest-video-watcher/scripts/gemini.py +162 -0
- package/skills/luckiest-video-watcher/scripts/local_whisperx.py +147 -0
- package/skills/luckiest-video-watcher/scripts/runtime.py +35 -0
- package/skills/luckiest-video-watcher/scripts/setup.py +338 -0
- package/skills/luckiest-video-watcher/scripts/transcribe.py +113 -0
- package/skills/luckiest-video-watcher/scripts/watch.py +430 -0
- package/skills/luckiest-video-watcher/scripts/whisper.py +425 -0
|
@@ -14,10 +14,15 @@
|
|
|
14
14
|
--font-body: "FontName", system-ui, sans-serif;
|
|
15
15
|
--font-mono: "FontName", ui-monospace, monospace;
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
--
|
|
19
|
-
--
|
|
20
|
-
--
|
|
17
|
+
/* format: landscape defaults; render-scenes.mjs stamps the real values per format */
|
|
18
|
+
--w: 1920px; --h: 1080px; --u: 10.8px;
|
|
19
|
+
--safe-t: 54px; --safe-b: 54px; --safe-l: 96px; --safe-r: 96px;
|
|
20
|
+
--type: 1; /* 1.2 in vertical, below */
|
|
21
|
+
|
|
22
|
+
--size-display: calc(96px * var(--type));
|
|
23
|
+
--size-headline: calc(48px * var(--type));
|
|
24
|
+
--size-body: calc(28px * var(--type));
|
|
25
|
+
--size-label: calc(20px * var(--type));
|
|
21
26
|
|
|
22
27
|
/* motion - easings as the style's signature (used in GSAP and CSS) */
|
|
23
28
|
--ease-in: cubic-bezier(0.4, 0, 1, 1);
|
|
@@ -30,3 +35,6 @@
|
|
|
30
35
|
--radius: 16px;
|
|
31
36
|
--pad: 48px;
|
|
32
37
|
}
|
|
38
|
+
|
|
39
|
+
/* The phone shows the whole vertical frame smaller, so type runs 20% larger there. */
|
|
40
|
+
:root[data-format="vertical"] { --type: 1.2; }
|
|
@@ -27,7 +27,8 @@ packs/NN-slug/
|
|
|
27
27
|
|
|
28
28
|
1. A standalone HyperFrames composition: a root `<div>` with `id`,
|
|
29
29
|
`data-composition-id`, `data-start="0"`, `data-width="1920"`,
|
|
30
|
-
`data-height="1080"
|
|
30
|
+
`data-height="1080"` (the master size; the renderer rewrites them per format),
|
|
31
|
+
directly in `<body>`, with its own pinned GSAP script tag.
|
|
31
32
|
2. Exactly one paused GSAP timeline, registered on
|
|
32
33
|
`window.__timelines["<data-composition-id>"]`.
|
|
33
34
|
3. Colors, fonts, and easings come from `tokens.css` variables, linked as
|
|
@@ -40,6 +41,15 @@ packs/NN-slug/
|
|
|
40
41
|
5. All text sits in elements with `data-slot="<name>"`, and every slot is declared
|
|
41
42
|
in `style.json` with its name and type.
|
|
42
43
|
6. Deterministic: no `Math.random()`, no `Date.now()`, no network calls.
|
|
44
|
+
7. One file renders in every format. The canvas is `var(--w)` by `var(--h)`, never
|
|
45
|
+
px. Text positions are offsets from the safe insets (`left: calc(var(--safe-l) +
|
|
46
|
+
24px)`), so every slot sits inside the safe area in landscape, vertical, and
|
|
47
|
+
square. Literal font sizes are `calc(Npx * var(--type))` so vertical runs 20%
|
|
48
|
+
larger. Layout changes go in `[data-format="vertical"]` and
|
|
49
|
+
`[data-format="square"]` rules at the end of the card's style: tier1 stacks inside
|
|
50
|
+
the safe area, tier2 moves to the bottom of the safe area. The pack's
|
|
51
|
+
`tokens.css` holds the landscape defaults; the renderer's stamp overrides them
|
|
52
|
+
per format (coordinator `step-3-compose.md`, "Build once, render every format").
|
|
43
53
|
|
|
44
54
|
## Mounting a card inside another scene
|
|
45
55
|
|
|
@@ -75,3 +85,7 @@ two lines and jumps back.
|
|
|
75
85
|
|
|
76
86
|
Keep new cards to the same rules: no CSS `transform` on anything GSAP tweens,
|
|
77
87
|
plain-string selectors, and motion through transforms only.
|
|
88
|
+
|
|
89
|
+
Check a new card in all three formats with
|
|
90
|
+
`node scripts/qa-cards.mjs sample <run-dir> --pack <id> --tier <tier> --all --format all`,
|
|
91
|
+
then the coordinator's `render-scenes.mjs` and `qa.mjs safe` on that run.
|
|
@@ -8,9 +8,11 @@
|
|
|
8
8
|
// `npx --no-install hyperframes@0.8.84` (it never downloads).
|
|
9
9
|
// node qa-cards.mjs mark <status> <card-id>...
|
|
10
10
|
// Sets qa by hand, for example "render-ok" after a rendered card was inspected.
|
|
11
|
-
// node qa-cards.mjs sample <run-dir> [--pack <id>]
|
|
12
|
-
// Writes a run folder with one tier1 and one tier2 card per purpose per pack
|
|
13
|
-
// motion scenes, ready for render-scenes.mjs.
|
|
11
|
+
// node qa-cards.mjs sample <run-dir> [--pack <id>] [--tier <tier>] [--all] [--format <name,...|all>]
|
|
12
|
+
// Writes a run folder with one tier1 and one tier2 card per purpose per pack (every
|
|
13
|
+
// card with --all) as motion scenes, ready for render-scenes.mjs. --format lists the
|
|
14
|
+
// storyboard formats (landscape, vertical, square) so each card renders in each one.
|
|
15
|
+
// tier2 cards get a mid-gray backdrop in the sample so ink and paper both show.
|
|
14
16
|
|
|
15
17
|
import { cpSync, existsSync, mkdirSync, mkdtempSync, readFileSync, readdirSync, rmSync, writeFileSync } from "node:fs";
|
|
16
18
|
import { tmpdir } from "node:os";
|
|
@@ -99,23 +101,27 @@ function sample(runDir) {
|
|
|
99
101
|
const run = resolve(runDir), comp = join(run, "composition");
|
|
100
102
|
mkdirSync(join(comp, "compositions"), { recursive: true });
|
|
101
103
|
const scenes = [];
|
|
104
|
+
const fmt = flag("--format");
|
|
105
|
+
const formats = fmt && (fmt === "all" ? ["landscape", "vertical", "square"] : fmt.split(","));
|
|
106
|
+
for (const f of formats ?? []) if (!["landscape", "vertical", "square"].includes(f)) { console.error(`unknown format "${f}"`); process.exit(1); }
|
|
102
107
|
for (const d of packDirs()) {
|
|
103
108
|
const m = readManifest(d), id = m.id;
|
|
104
109
|
cpSync(join(PACKS, d), join(comp, "cards", id), { recursive: true });
|
|
105
110
|
const seen = new Set();
|
|
106
111
|
for (const c of m.cards) {
|
|
107
|
-
const key = `${c.tier}.${c.purpose}`;
|
|
108
|
-
if (seen.has(key) || c.qa === "broken") continue;
|
|
112
|
+
const key = args.includes("--all") ? c.id : `${c.tier}.${c.purpose}`;
|
|
113
|
+
if (seen.has(key) || c.qa === "broken" || (flag("--tier") && c.tier !== flag("--tier"))) continue;
|
|
109
114
|
seen.add(key);
|
|
110
115
|
const sceneId = c.id.replace(/\./g, "-");
|
|
111
116
|
const dur = c.duration?.min ?? 5;
|
|
112
|
-
|
|
117
|
+
let html = readFileSync(join(PACKS, d, c.file), "utf8");
|
|
118
|
+
if (c.tier === "tier2") html = html.replace("</head>", "<style>html { background: #808080 !important; }</style></head>");
|
|
113
119
|
writeFileSync(join(comp, "compositions", `${sceneId}.html`), html);
|
|
114
120
|
scenes.push({ id: sceneId, kind: "motion", duration: dur, composition: `compositions/${sceneId}.html`, line: c.id });
|
|
115
121
|
}
|
|
116
122
|
}
|
|
117
123
|
writeFileSync(join(run, "storyboard.json"), JSON.stringify({ version: 1, title: "Card QA sample", mode: "launch",
|
|
118
|
-
hyperframes: HF_VERSION, format: { width: 1920, height: 1080, fps: 30 }, scenes }, null, 2) + "\n");
|
|
124
|
+
hyperframes: HF_VERSION, format: { width: 1920, height: 1080, fps: 30 }, ...(formats && { formats }), scenes }, null, 2) + "\n");
|
|
119
125
|
console.log(JSON.stringify({ run, scenes: scenes.map((s) => s.line) }, null, 2));
|
|
120
126
|
}
|
|
121
127
|
|
|
@@ -123,4 +129,4 @@ const [cmd, ...rest] = args;
|
|
|
123
129
|
if (cmd === "lint") await lintAll();
|
|
124
130
|
else if (cmd === "mark" && rest.length > 1) mark(rest[0], rest.slice(1));
|
|
125
131
|
else if (cmd === "sample" && rest[0]) sample(rest[0]);
|
|
126
|
-
else { console.error("Usage: qa-cards.mjs lint [--pack id] [--jobs n] [--bin path] | mark <status> <id>... | sample <run-dir>"); process.exit(1); }
|
|
132
|
+
else { console.error("Usage: qa-cards.mjs lint [--pack id] [--jobs n] [--bin path] | mark <status> <id>... | sample <run-dir> [--pack id] [--tier t] [--all] [--format name,...|all]"); process.exit(1); }
|
|
@@ -2,10 +2,15 @@
|
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
|
-
<meta name="viewport" content="width=1920, height=1080" />
|
|
6
5
|
<title>Left Glass Popout</title>
|
|
7
6
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
|
|
8
7
|
<style>
|
|
8
|
+
/* Master size defaults. render-scenes.mjs appends the real --w, --h, --u and safe tokens for each format. */
|
|
9
|
+
:root {
|
|
10
|
+
--w: 1920px; --h: 1080px; --u: 10.8px;
|
|
11
|
+
--safe-t: 54px; --safe-b: 54px; --safe-l: 96px; --safe-r: 96px;
|
|
12
|
+
}
|
|
13
|
+
|
|
9
14
|
* {
|
|
10
15
|
margin: 0;
|
|
11
16
|
padding: 0;
|
|
@@ -14,8 +19,8 @@
|
|
|
14
19
|
|
|
15
20
|
html,
|
|
16
21
|
body {
|
|
17
|
-
width:
|
|
18
|
-
height:
|
|
22
|
+
width: var(--w);
|
|
23
|
+
height: var(--h);
|
|
19
24
|
overflow: hidden;
|
|
20
25
|
background: #000000;
|
|
21
26
|
color: #ffffff;
|
|
@@ -24,8 +29,8 @@
|
|
|
24
29
|
|
|
25
30
|
#root {
|
|
26
31
|
position: relative;
|
|
27
|
-
width:
|
|
28
|
-
height:
|
|
32
|
+
width: var(--w);
|
|
33
|
+
height: var(--h);
|
|
29
34
|
overflow: hidden;
|
|
30
35
|
background: #000000;
|
|
31
36
|
}
|
|
@@ -33,8 +38,8 @@
|
|
|
33
38
|
#video-stage {
|
|
34
39
|
position: absolute;
|
|
35
40
|
inset: 0;
|
|
36
|
-
width:
|
|
37
|
-
height:
|
|
41
|
+
width: var(--w);
|
|
42
|
+
height: var(--h);
|
|
38
43
|
overflow: hidden;
|
|
39
44
|
transform-origin: 0% 50%;
|
|
40
45
|
will-change: transform;
|
|
@@ -107,7 +112,7 @@
|
|
|
107
112
|
}
|
|
108
113
|
|
|
109
114
|
.glass-card.left-popout {
|
|
110
|
-
left:
|
|
115
|
+
left: var(--safe-l);
|
|
111
116
|
right: auto;
|
|
112
117
|
top: 50%;
|
|
113
118
|
bottom: auto;
|
|
@@ -175,6 +180,20 @@
|
|
|
175
180
|
line-height: 1.18;
|
|
176
181
|
}
|
|
177
182
|
|
|
183
|
+
/* Phones: no room beside the speaker, so the card sits at the bottom of the safe area, full safe width. */
|
|
184
|
+
[data-format="vertical"] .glass-card.left-popout,
|
|
185
|
+
[data-format="square"] .glass-card.left-popout {
|
|
186
|
+
left: var(--safe-l);
|
|
187
|
+
right: var(--safe-r);
|
|
188
|
+
top: auto;
|
|
189
|
+
bottom: var(--safe-b);
|
|
190
|
+
width: auto;
|
|
191
|
+
transform: none;
|
|
192
|
+
}
|
|
193
|
+
[data-format="vertical"] .glass-headline { font-size: 56px; }
|
|
194
|
+
[data-format="vertical"] .glass-sub { font-size: 30px; }
|
|
195
|
+
[data-format="vertical"] .glass-list li { font-size: 28px; }
|
|
196
|
+
|
|
178
197
|
.glass-sheen {
|
|
179
198
|
position: absolute;
|
|
180
199
|
inset: 0;
|
|
@@ -271,9 +290,13 @@
|
|
|
271
290
|
window.__timelines = window.__timelines || {};
|
|
272
291
|
const DURATION = 52.67;
|
|
273
292
|
const tl = gsap.timeline({ paused: true });
|
|
293
|
+
// Landscape pushes the shot right and slides the card in from the left. Stacked formats keep the
|
|
294
|
+
// face at the top and raise the card from below.
|
|
295
|
+
const stacked = ["vertical", "square"].includes(document.documentElement.dataset.format);
|
|
296
|
+
const origin = stacked ? "50% 0%" : "0% 50%";
|
|
274
297
|
|
|
275
|
-
gsap.set("#video-stage", { scale: 1, x: 0, y: 0, transformOrigin:
|
|
276
|
-
gsap.set("#left-popout-card", { opacity: 0, x: -92 });
|
|
298
|
+
gsap.set("#video-stage", { scale: 1, x: 0, y: 0, transformOrigin: origin });
|
|
299
|
+
gsap.set("#left-popout-card", { opacity: 0, ...(stacked ? { y: 92 } : { x: -92 }) });
|
|
277
300
|
gsap.set("#left-popout-card .glass-content > *", { opacity: 0, y: 14 });
|
|
278
301
|
|
|
279
302
|
tl.to(
|
|
@@ -291,6 +314,7 @@
|
|
|
291
314
|
{
|
|
292
315
|
opacity: 1,
|
|
293
316
|
x: 0,
|
|
317
|
+
y: 0,
|
|
294
318
|
duration: 0.52,
|
|
295
319
|
ease: "power3.out"
|
|
296
320
|
},
|
|
@@ -325,7 +349,7 @@
|
|
|
325
349
|
"#left-popout-card",
|
|
326
350
|
{
|
|
327
351
|
opacity: 0,
|
|
328
|
-
x: -60,
|
|
352
|
+
...(stacked ? { y: 60 } : { x: -60 }),
|
|
329
353
|
duration: 0.34,
|
|
330
354
|
ease: "power2.in"
|
|
331
355
|
},
|
|
@@ -2,10 +2,15 @@
|
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
|
-
<meta name="viewport" content="width=1920, height=1080" />
|
|
6
5
|
<title>Dark Graph Paper Template</title>
|
|
7
6
|
<script src="https://cdn.jsdelivr.net/npm/gsap@3.14.2/dist/gsap.min.js"></script>
|
|
8
7
|
<style>
|
|
8
|
+
/* Master size defaults. render-scenes.mjs appends the real --w, --h, --u and safe tokens for each format. */
|
|
9
|
+
:root {
|
|
10
|
+
--w: 1920px; --h: 1080px; --u: 10.8px;
|
|
11
|
+
--safe-t: 54px; --safe-b: 54px; --safe-l: 96px; --safe-r: 96px;
|
|
12
|
+
}
|
|
13
|
+
|
|
9
14
|
* {
|
|
10
15
|
margin: 0;
|
|
11
16
|
padding: 0;
|
|
@@ -14,8 +19,8 @@
|
|
|
14
19
|
html,
|
|
15
20
|
body {
|
|
16
21
|
margin: 0;
|
|
17
|
-
width:
|
|
18
|
-
height:
|
|
22
|
+
width: var(--w);
|
|
23
|
+
height: var(--h);
|
|
19
24
|
overflow: hidden;
|
|
20
25
|
background: #030507;
|
|
21
26
|
color: #dff8ff;
|
|
@@ -23,8 +28,8 @@
|
|
|
23
28
|
|
|
24
29
|
#root {
|
|
25
30
|
position: relative;
|
|
26
|
-
width:
|
|
27
|
-
height:
|
|
31
|
+
width: var(--w);
|
|
32
|
+
height: var(--h);
|
|
28
33
|
overflow: hidden;
|
|
29
34
|
background: #030507;
|
|
30
35
|
isolation: isolate;
|
|
@@ -33,8 +38,8 @@
|
|
|
33
38
|
#root .clip {
|
|
34
39
|
position: absolute;
|
|
35
40
|
inset: 0;
|
|
36
|
-
width:
|
|
37
|
-
height:
|
|
41
|
+
width: var(--w);
|
|
42
|
+
height: var(--h);
|
|
38
43
|
pointer-events: none;
|
|
39
44
|
}
|
|
40
45
|
|
|
@@ -81,8 +86,8 @@
|
|
|
81
86
|
}
|
|
82
87
|
|
|
83
88
|
#perspective-grid {
|
|
84
|
-
top:
|
|
85
|
-
height:
|
|
89
|
+
top: calc(var(--h) * 0.1944);
|
|
90
|
+
height: calc(var(--h) * 1.0185);
|
|
86
91
|
opacity: 0.26;
|
|
87
92
|
transform-origin: 50% 72%;
|
|
88
93
|
transform: perspective(920px) rotateX(58deg) translateY(86px) scale(1.18);
|
|
@@ -95,7 +100,7 @@
|
|
|
95
100
|
|
|
96
101
|
#scan-band {
|
|
97
102
|
inset: -22% 0 auto 0;
|
|
98
|
-
height:
|
|
103
|
+
height: calc(var(--h) * 0.3889);
|
|
99
104
|
opacity: 0.24;
|
|
100
105
|
background: linear-gradient(
|
|
101
106
|
180deg,
|
|
@@ -16,3 +16,7 @@
|
|
|
16
16
|
- Review output reshaped to one verdict per storyboard scene.
|
|
17
17
|
- Not used: `write-swift`, `ask-sonner`, `mobile-native`, `pick-ui-library`,
|
|
18
18
|
`prototype`, `animate-expo`, and `improve-animations`' multi-agent audit.
|
|
19
|
+
|
|
20
|
+
`templates/spring.js` (1.1.0) follows the closed-form, retarget-by-summing spring
|
|
21
|
+
practice described in the 0xMovez course "How to build motion design studio with
|
|
22
|
+
Opus 5.5" (x.com/0xMovez/status/2104216919033192746). The code is new.
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog — luckiest-video-studio-motion
|
|
2
2
|
|
|
3
|
+
## 1.1.0 — 2026-10-08
|
|
4
|
+
- `templates/spring.js`: closed-form springs computed from the time alone, with
|
|
5
|
+
`track()` for values that change target (one spring per change, summed, so a
|
|
6
|
+
retarget never stops dead), `settleTime()`, and four presets (snappy, default,
|
|
7
|
+
heavy, playful). Tested in `templates/spring.test.mjs`.
|
|
8
|
+
- Springs section in `references/vocabulary.md` and a "springs for things with
|
|
9
|
+
mass" rule in section 4.
|
|
10
|
+
- Practice studied from the 0xMovez course "How to build motion design studio with Opus 5.5" (x.com/0xMovez/status/2104216919033192746) and the PD House motion guide (pdhouse.notion.site/motion-guide). Ideas only, no code copied.
|
|
11
|
+
|
|
3
12
|
## 1.0.0 — 2026-10-02
|
|
4
13
|
- New sub-skill: motion purpose, GSAP easing, video durations, physicality and
|
|
5
14
|
origin, masked transitions, stagger, and type rules, adapted from Emil Kowalski's
|
|
@@ -16,7 +16,7 @@ user-invocable: true
|
|
|
16
16
|
license: MIT. See ATTRIBUTION.md
|
|
17
17
|
allowed-tools: Bash, Read, Write, Edit, Glob, Grep
|
|
18
18
|
metadata:
|
|
19
|
-
version: "1.
|
|
19
|
+
version: "1.1.0"
|
|
20
20
|
listing_id: luckiest-video-studio-motion
|
|
21
21
|
author: luckiest
|
|
22
22
|
---
|
|
@@ -32,11 +32,11 @@ interruption, and how often a user triggers something.
|
|
|
32
32
|
## Staying current
|
|
33
33
|
|
|
34
34
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
35
|
-
`{ listingId: "luckiest-video-studio-motion", installedSemver: "1.
|
|
35
|
+
`{ listingId: "luckiest-video-studio-motion", installedSemver: "1.1.0" }`. If
|
|
36
36
|
`upToDate: false`, surface the `notice` once and continue. Never block on it.
|
|
37
37
|
|
|
38
38
|
When done, call `report_usage` once with
|
|
39
|
-
`{ listing_id: "luckiest-video-studio-motion", skill_version: "1.
|
|
39
|
+
`{ listing_id: "luckiest-video-studio-motion", skill_version: "1.1.0", matched: true, success: <true|false> }`.
|
|
40
40
|
Metadata only, never prompt text. Skip silently if unavailable.
|
|
41
41
|
|
|
42
42
|
## Modes
|
|
@@ -111,6 +111,10 @@ short hold.
|
|
|
111
111
|
annotates (`transformOrigin` at that point). Full-frame cards stay centered.
|
|
112
112
|
- **Exit the way it came.** A card that slides in from the right leaves to the
|
|
113
113
|
right, or cuts.
|
|
114
|
+
- **Springs for things with mass.** Cards, cursors, containers, and logos
|
|
115
|
+
settle on a spring from `templates/spring.js` (presets and the retarget rule in
|
|
116
|
+
[references/vocabulary.md](references/vocabulary.md#springs)). Keep GSAP eases
|
|
117
|
+
for fades, wipes, and linear fills.
|
|
114
118
|
- **Transform, not layout.** Animate `x`, `y`, `scale`, `rotate`, `autoAlpha`,
|
|
115
119
|
`clipPath`, and `filter`. `width`, `height`, `top`, and `left` snap to whole
|
|
116
120
|
pixels and shimmer in the render.
|
|
@@ -69,6 +69,27 @@ scene. Adapted from Emil Kowalski's animation-vocabulary (MIT).
|
|
|
69
69
|
| Follow-through | Parts keep moving briefly after the main move stops | trailing child tweens |
|
|
70
70
|
| Squash and stretch | Deforms while moving to show weight and speed | `scaleX`/`scaleY` against each other |
|
|
71
71
|
|
|
72
|
+
### Springs
|
|
73
|
+
|
|
74
|
+
A spring has mass: it speeds up, settles, and overshoots only as much as its preset
|
|
75
|
+
allows. `templates/spring.js` computes it straight from the time, so any frame
|
|
76
|
+
renders alone. Copy it to `composition/assets/js/`, load it once in `index.html`,
|
|
77
|
+
and read values in the scene's clock tween `onUpdate`.
|
|
78
|
+
|
|
79
|
+
| Preset | Overshoot | Settles in | Use on |
|
|
80
|
+
|---|---|---|---|
|
|
81
|
+
| `snappy` | about 0.2% | 0.4s | Buttons, toggles, cursors, leading edges |
|
|
82
|
+
| `default` | none | 0.7s | Cards, containers, the camera |
|
|
83
|
+
| `heavy` | none | 1.05s | Big type, 3D objects, logo lockups |
|
|
84
|
+
| `playful` | about 30% | 1.05s | Mascots and stickers only. Never type, prices, or security |
|
|
85
|
+
|
|
86
|
+
- **Retarget, never restart.** When a value changes target mid-move (a cursor, a
|
|
87
|
+
container growing twice), use `Spring.track(t, keys, preset)` with one key per
|
|
88
|
+
target. Starting a new spring from the current value at rest makes the element
|
|
89
|
+
stop dead for a frame.
|
|
90
|
+
- **Size the beat from the spring.** Use `Spring.settleTime(preset)` for the
|
|
91
|
+
move's duration in the storyboard, then hold.
|
|
92
|
+
|
|
72
93
|
## Ambient and loops
|
|
73
94
|
|
|
74
95
|
| Term | What it looks like | GSAP |
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// Closed-form springs for HyperFrames scenes. Every value is a pure function of time,
|
|
2
|
+
// so any frame renders alone and seeking works in both directions.
|
|
3
|
+
// Copy into composition/assets/js/ and load once in index.html: <script src="assets/js/spring.js"></script>
|
|
4
|
+
//
|
|
5
|
+
// Spring.spring(t, { from: 0, to: 1, ...Spring.PRESETS.default }) value t seconds after the move starts
|
|
6
|
+
// Spring.track(t, [{ t: 0, value: 0 }, { t: 1.2, value: 80 }, { t: 1.5, value: 20 }], Spring.PRESETS.snappy)
|
|
7
|
+
// a value that changes target: one spring per change, summed, so it never jumps or stops dead
|
|
8
|
+
// Spring.settleTime(Spring.PRESETS.heavy) seconds until within 0.1% of the move
|
|
9
|
+
//
|
|
10
|
+
// Drive it from the scene's clock tween: tl.to(clock, { t: dur, ease: "none", onUpdate: () => el.style.transform = ... }, 0)
|
|
11
|
+
(function (g) {
|
|
12
|
+
// stiffness and damping per unit mass. Overshoot: snappy ~0.2%, default none, heavy none, playful ~30%.
|
|
13
|
+
const PRESETS = {
|
|
14
|
+
snappy: { stiffness: 500, damping: 40 }, // UI: buttons, toggles, leading edges
|
|
15
|
+
default: { stiffness: 170, damping: 26 }, // cards, containers, camera
|
|
16
|
+
heavy: { stiffness: 120, damping: 24 }, // big type, 3D objects, logo lockups
|
|
17
|
+
playful: { stiffness: 300, damping: 12 }, // mascots, stickers; never on type, money, or security
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
// Unit step response: 0 at t <= 0, settling at 1.
|
|
21
|
+
function unit(t, { stiffness = 170, damping = 26, mass = 1 } = {}) {
|
|
22
|
+
if (t <= 0) return 0;
|
|
23
|
+
const w0 = Math.sqrt(stiffness / mass), z = damping / (2 * Math.sqrt(stiffness * mass));
|
|
24
|
+
if (z < 1) {
|
|
25
|
+
const wd = w0 * Math.sqrt(1 - z * z);
|
|
26
|
+
return 1 - Math.exp(-z * w0 * t) * (Math.cos(wd * t) + ((z * w0) / wd) * Math.sin(wd * t));
|
|
27
|
+
}
|
|
28
|
+
if (z === 1) return 1 - Math.exp(-w0 * t) * (1 + w0 * t);
|
|
29
|
+
const s = Math.sqrt(z * z - 1), r1 = -w0 * (z - s), r2 = -w0 * (z + s);
|
|
30
|
+
const c2 = r1 / (r2 - r1), c1 = -1 - c2; // starts at 0, at rest
|
|
31
|
+
return 1 + c1 * Math.exp(r1 * t) + c2 * Math.exp(r2 * t);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const spring = (t, cfg) => (t <= 0 ? cfg.from : cfg.from + (cfg.to - cfg.from) * unit(t, cfg));
|
|
35
|
+
|
|
36
|
+
// keys sorted by t; the first key is the starting value.
|
|
37
|
+
function track(t, keys, cfg) {
|
|
38
|
+
let x = keys[0].value;
|
|
39
|
+
for (let i = 1; i < keys.length; i++) x += (keys[i].value - keys[i - 1].value) * unit(t - keys[i].t, cfg);
|
|
40
|
+
return x;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function settleTime(cfg, eps = 0.001) {
|
|
44
|
+
// ponytail: scans backward at 1 ms over 10 s; closed-form envelopes would be exact but longer.
|
|
45
|
+
for (let t = 10; t > 0; t -= 0.001) if (Math.abs(1 - unit(t, cfg)) > eps) return Number((t + 0.001).toFixed(3));
|
|
46
|
+
return 0;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
g.Spring = { PRESETS, unit, spring, track, settleTime };
|
|
50
|
+
})(globalThis);
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// spring.js stays a pure function of time: any frame renders alone, in any order,
|
|
2
|
+
// and a value that changes target keeps moving without a jump.
|
|
3
|
+
import test from "node:test";
|
|
4
|
+
import assert from "node:assert/strict";
|
|
5
|
+
await import("./spring.js");
|
|
6
|
+
const { spring, track, settleTime, PRESETS } = globalThis.Spring;
|
|
7
|
+
|
|
8
|
+
const sample = (f, dur, fps = 60) => Array.from({ length: Math.round(dur * fps) + 1 }, (_, i) => f(i / fps));
|
|
9
|
+
|
|
10
|
+
test("spring starts at from, ends at to, and every damping case converges", () => {
|
|
11
|
+
for (const cfg of [PRESETS.snappy, PRESETS.default, PRESETS.heavy, PRESETS.playful, { stiffness: 170, damping: 2 * Math.sqrt(170) }]) {
|
|
12
|
+
assert.equal(spring(0, { ...cfg, from: 10, to: 110 }), 10);
|
|
13
|
+
assert.equal(spring(-1, { ...cfg, from: 10, to: 110 }), 10);
|
|
14
|
+
assert.ok(Math.abs(spring(5, { ...cfg, from: 10, to: 110 }) - 110) < 0.01, JSON.stringify(cfg));
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
test("presets: heavy never overshoots, playful visibly does, snappy barely does", () => {
|
|
19
|
+
const peak = (p) => Math.max(...sample((t) => spring(t, { ...PRESETS[p], from: 0, to: 100 }), 2));
|
|
20
|
+
assert.ok(peak("heavy") <= 100);
|
|
21
|
+
assert.ok(peak("playful") > 110);
|
|
22
|
+
assert.ok(peak("snappy") < 102);
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
test("track: retargeting keeps velocity continuous; restarting from rest would not", () => {
|
|
26
|
+
const keys = [{ t: 0, value: 0 }, { t: 0.15, value: 100 }, { t: 0.3, value: -40 }];
|
|
27
|
+
const x = (t) => track(t, keys, PRESETS.default);
|
|
28
|
+
const v = (t) => (x(t + 1e-4) - x(t - 1e-4)) / 2e-4;
|
|
29
|
+
const vBefore = (x(0.3) - x(0.3 - 1e-4)) / 1e-4, vAfter = (x(0.3 + 1e-4) - x(0.3)) / 1e-4;
|
|
30
|
+
assert.ok(Math.abs(vBefore) > 100, "the value is moving when the target changes");
|
|
31
|
+
assert.ok(Math.abs(vAfter - vBefore) < Math.abs(vBefore) * 0.02, `velocity ${vBefore} -> ${vAfter}`);
|
|
32
|
+
// A restart (new spring from the current value at zero speed) stops dead: the jump this test guards against.
|
|
33
|
+
const restart = (t) => (t < 0.3 ? x(t) : spring(t - 0.3, { ...PRESETS.default, from: x(0.3), to: -40 }));
|
|
34
|
+
const rAfter = (restart(0.3 + 1e-4) - restart(0.3)) / 1e-4;
|
|
35
|
+
assert.ok(Math.abs(rAfter - vBefore) > Math.abs(vBefore) * 0.5);
|
|
36
|
+
assert.ok(Math.abs(x(4) + 40) < 0.01);
|
|
37
|
+
assert.ok(Number.isFinite(v(0.15)));
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
test("track: frames rendered out of order match frames rendered in order", () => {
|
|
41
|
+
const keys = [{ t: 0, value: 0 }, { t: 0.2, value: 50 }, { t: 0.5, value: 20 }];
|
|
42
|
+
const times = Array.from({ length: 60 }, (_, i) => i / 60);
|
|
43
|
+
const inOrder = times.map((t) => track(t, keys, PRESETS.snappy));
|
|
44
|
+
const shuffled = [...times].sort((a, b) => Math.sin(a * 999) - Math.sin(b * 999));
|
|
45
|
+
for (const t of shuffled) assert.equal(track(t, keys, PRESETS.snappy), inOrder[times.indexOf(t)]);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
test("settleTime: heavier springs take longer to settle", () => {
|
|
49
|
+
assert.ok(settleTime(PRESETS.snappy) < settleTime(PRESETS.heavy));
|
|
50
|
+
assert.ok(settleTime(PRESETS.default) > 0.2 && settleTime(PRESETS.default) < 2);
|
|
51
|
+
});
|
|
@@ -6,3 +6,5 @@
|
|
|
6
6
|
`luckiest-video-studio-reference/scripts/shots.mjs` (ffmpeg scene score). URL
|
|
7
7
|
downloads use `yt-dlp` (Unlicense), installed by the user. Generation and
|
|
8
8
|
analysis run through the user's connected creative MCP.
|
|
9
|
+
|
|
10
|
+
The identity lock and draft-then-finalize steps (1.2.0) were informed by the PD House motion guide (pdhouse.notion.site/motion-guide); no prompts were copied.
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog — luckiest-video-studio-recreate
|
|
2
2
|
|
|
3
|
+
## 1.3.0 — 2026-10-08
|
|
4
|
+
- Step 1 runs `luckiest-video-watcher` in study mode for the transcript and sound
|
|
5
|
+
notes that feed each shot's audio and on-screen text.
|
|
6
|
+
|
|
7
|
+
## 1.2.0 — 2026-10-08
|
|
8
|
+
- Step 4a locks repeated people and sets before any video: a character sheet, an
|
|
9
|
+
empty set plate, one approved first look, then start frames per shot on a
|
|
10
|
+
contact sheet. Shots animate from their start frames with the sheet as reference.
|
|
11
|
+
- Step 4c drafts every clip cheaply and finalizes only approved, on-screen takes.
|
|
12
|
+
- Practice studied from the PD House motion guide (pdhouse.notion.site/motion-guide). Ideas only, no prompts copied.
|
|
13
|
+
|
|
3
14
|
## 1.1.0 — 2026-10-05
|
|
4
15
|
- Carries the art director's look into every shot prompt when installed.
|
|
5
16
|
|
|
@@ -16,7 +16,7 @@ user-invocable: true
|
|
|
16
16
|
license: MIT. See ATTRIBUTION.md
|
|
17
17
|
allowed-tools: Bash, Read, Write, Glob, AskUserQuestion
|
|
18
18
|
metadata:
|
|
19
|
-
version: "1.
|
|
19
|
+
version: "1.3.0"
|
|
20
20
|
listing_id: luckiest-video-studio-recreate
|
|
21
21
|
author: luckiest
|
|
22
22
|
---
|
|
@@ -30,11 +30,11 @@ camera language, and look.
|
|
|
30
30
|
## Staying current
|
|
31
31
|
|
|
32
32
|
On activation, call the Luckiest MCP `check_updates` tool with
|
|
33
|
-
`{ listingId: "luckiest-video-studio-recreate", installedSemver: "1.
|
|
33
|
+
`{ listingId: "luckiest-video-studio-recreate", installedSemver: "1.3.0" }`. If
|
|
34
34
|
`upToDate: false`, surface the `notice` once and continue. Never block on it.
|
|
35
35
|
|
|
36
36
|
When done, call `report_usage` once with
|
|
37
|
-
`{ listing_id: "luckiest-video-studio-recreate", skill_version: "1.
|
|
37
|
+
`{ listing_id: "luckiest-video-studio-recreate", skill_version: "1.3.0", matched: true, success: <true|false> }`.
|
|
38
38
|
Metadata only, never prompt text. Skip silently if unavailable.
|
|
39
39
|
|
|
40
40
|
## Standing rules
|
|
@@ -71,6 +71,11 @@ bytes, `creations_finalize_upload`) and call `video_analyze` with
|
|
|
71
71
|
`mode: "shot_breakdown"`. It handles about 5 minutes per call; use
|
|
72
72
|
`timeRangeSeconds` for longer sources.
|
|
73
73
|
|
|
74
|
+
For sound and speech, run `luckiest-video-watcher` in study mode on the same
|
|
75
|
+
source with `--out-dir <run-dir>/recreate/watch`. Its transcript and sound notes
|
|
76
|
+
feed each shot's audio and on-screen text. If the watcher is not installed, say
|
|
77
|
+
so in one line and continue.
|
|
78
|
+
|
|
74
79
|
## Step 2: Analyze each shot
|
|
75
80
|
|
|
76
81
|
Read `contact.jpg` for rhythm, then each shot's frames. Compare in and out frames
|
|
@@ -116,6 +121,31 @@ Show the shot table and wait for approval. With `--prompts-only`, stop here.
|
|
|
116
121
|
|
|
117
122
|
## Step 4: Generate
|
|
118
123
|
|
|
124
|
+
### 4a. Lock people and places first
|
|
125
|
+
|
|
126
|
+
When the same person or the same set appears in more than one shot, video models
|
|
127
|
+
forget them between shots. Lock them as stills before any video, each with
|
|
128
|
+
`simulate_cost` and a yes first (rule 3):
|
|
129
|
+
|
|
130
|
+
1. **Character sheet** per person: one image, plain white background, a full-body
|
|
131
|
+
panel and a chest-up panel side by side, the outfit spelled out, real unretouched
|
|
132
|
+
skin. This is the only reference for their face, hair, and clothes from here on.
|
|
133
|
+
2. **Set plate** per location: the empty set, framed for the main shot, with the
|
|
134
|
+
light source, palette, and props named. Empty, so people can be placed in it.
|
|
135
|
+
3. **First look**: the person in the set for the main shot, made from the sheet
|
|
136
|
+
and the plate together. Get the user's yes on this one frame. Every other
|
|
137
|
+
angle copies its light and look.
|
|
138
|
+
4. **Start frames**: one per remaining shot, made from the sheet, the plate, and the
|
|
139
|
+
first look, with lens and camera height per shot. Show them on one contact
|
|
140
|
+
sheet and wait for a yes.
|
|
141
|
+
|
|
142
|
+
Then animate each shot from its start frame with the character sheet as a second
|
|
143
|
+
reference (image to video), so every clip has the same person, set, and light and
|
|
144
|
+
they cut together like one shoot. Write the sheet, plate, and frames to
|
|
145
|
+
`<run-dir>/recreate/locks/`.
|
|
146
|
+
|
|
147
|
+
### 4b. Generate the shots
|
|
148
|
+
|
|
119
149
|
1. `video_models_list`, then pick a model. Default to one with `multishot.allowed`
|
|
120
150
|
so up to 6 shots share one call and stay consistent. Honor `--model`.
|
|
121
151
|
2. Group shots into calls of at most 6. Pass them as `multi_prompt`, with the
|
|
@@ -123,13 +153,21 @@ Show the shot table and wait for approval. With `--prompts-only`, stop here.
|
|
|
123
153
|
fixed where the model honors it.
|
|
124
154
|
3. Run `simulate_cost` with the same arguments for every call, show the total,
|
|
125
155
|
and wait for a yes (rule 3).
|
|
126
|
-
4. Generate, wait with `creations_wait`, and call
|
|
127
|
-
results.
|
|
128
|
-
5.
|
|
156
|
+
4. Generate as drafts (4c), wait with `creations_wait`, and call
|
|
157
|
+
`creations_show` with the results.
|
|
158
|
+
5. After 4c, with more than one clip, `video_concatenate` the finalized clips in
|
|
159
|
+
shot order.
|
|
129
160
|
|
|
130
161
|
If the creative MCP is not connected, say so in one line, hand over
|
|
131
162
|
`prompts.md` and `prompts.json`, and stop.
|
|
132
163
|
|
|
164
|
+
### 4c. Draft, then finalize
|
|
165
|
+
|
|
166
|
+
Render every clip at the model's cheapest draft setting first, show the drafts,
|
|
167
|
+
and finalize (`video_finalize_draft`, or a re-render at full resolution with the
|
|
168
|
+
same seed) only the takes the user approves and that stay on screen. A voice or
|
|
169
|
+
audio-only take stays a draft.
|
|
170
|
+
|
|
133
171
|
## Step 5: Check against the source
|
|
134
172
|
|
|
135
173
|
Call `video_analyze` with the source and the result together (when the source was
|
|
@@ -143,4 +181,5 @@ Write the per-shot verdicts to `<run-dir>/recreate/review.md`.
|
|
|
143
181
|
|
|
144
182
|
`prompts.md` and `prompts.json` exist with one prompt per source shot. Unless
|
|
145
183
|
`--prompts-only`, the stitched video exists, `review.md` lists a verdict per shot,
|
|
146
|
-
|
|
184
|
+
every repeated person or set was locked and approved in 4a, only approved takes
|
|
185
|
+
were finalized, and no source footage, likeness, or logo is in the output.
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog: luckiest-video-studio-reel
|
|
2
2
|
|
|
3
|
+
## 1.3.0 — 2026-10-08
|
|
4
|
+
- `templates/reel.html` renders landscape, vertical, and square from one file:
|
|
5
|
+
laid out from the safe-area center, phrase wraps between words, grid 16x9, 7x8,
|
|
6
|
+
or 8x8, HUD on the safe edges with the real size printed. In landscape the HUD
|
|
7
|
+
moves in to the 5% safe area.
|
|
8
|
+
|
|
3
9
|
## 1.2.0 — 2026-10-05
|
|
4
10
|
- Follows `art-direction.json` and runs the director's score loop when installed.
|
|
5
11
|
|