editorbrain 0.34.0 → 0.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/README.md +2 -2
  2. package/bin/editorbrain.mjs +2431 -961
  3. package/package.json +1 -1
  4. package/skill/editorbrain/AGENTS.md +17 -6
  5. package/skill/editorbrain/SKILL.md +8 -4
  6. package/skill/editorbrain/references/audio-production.md +49 -1
  7. package/skill/editorbrain/references/editorial-evidence.md +4 -0
  8. package/skill/editorbrain/references/editorial-families.md +64 -0
  9. package/skill/editorbrain/references/family-animated.md +65 -0
  10. package/skill/editorbrain/references/family-demonstration.md +66 -0
  11. package/skill/editorbrain/references/family-essay.md +40 -0
  12. package/skill/editorbrain/references/family-personal.md +40 -0
  13. package/skill/editorbrain/references/family-presenter.md +67 -0
  14. package/skill/editorbrain/references/first-edit.md +1 -1
  15. package/skill/editorbrain/references/integrations.md +101 -0
  16. package/skill/editorbrain/references/local-production.md +72 -0
  17. package/skill/editorbrain/references/media-preferences.md +8 -6
  18. package/skill/editorbrain/references/onboarding.md +66 -4
  19. package/skill/editorbrain/references/production-and-review.md +45 -4
  20. package/skill/editorbrain/references/production-continuity.md +145 -4
  21. package/skill/editorbrain/references/real-media.md +27 -19
  22. package/skill/editorbrain/references/sfx-library.md +7 -0
  23. package/skill/editorbrain/references/storage-and-previews.md +24 -0
  24. package/skill/editorbrain/references/studio.md +86 -11
  25. package/skill/editorbrain/references/workspace-files.md +1 -1
  26. package/skill/editorbrain-formats/SKILL.md +4 -3
  27. package/skill/editorbrain-formats/references/cumulative-tier-list.md +58 -0
  28. package/skill/editorbrain-motion/SKILL.md +1 -1
  29. package/skill/editorbrain-motion/references/authored-scenes.md +55 -4
  30. package/skill/editorbrain-motion/references/component-library.md +20 -0
  31. package/skill/editorbrain-motion/references/motion-craft.md +166 -73
@@ -1,79 +1,172 @@
1
1
  # Motion craft
2
2
 
3
- Read when designing, adapting or reviewing an animated scene with any method. These starting values come from EditorBrain's own code-drawn library scenes and a few reference analyses, not yet validated on customer projects or phones; sound was checked only as data. They are judgment, not a template, effects checklist or quality score. The user's current request, effective media/audio preferences (including reduced or disabled motion and on-screen text density), the output profile, the selected style's `effects.md`, the approved direction, brand tokens and readability measured in this output override every number; a value outside a range is a reason to look, not an automatic defect.
4
-
5
- Pixels are per 1080 px short side at 30 fps; scale with resolution and halve per-frame values at 60 fps. Drift is the scale or position change over a hold, as a percentage of the frame.
3
+ Read when designing, adapting or reviewing animation. This is a method, not a house
4
+ style or a template. It draws on the authored library and reference analyses;
5
+ those examples do not validate every transfer to a customer's video. Use the
6
+ same resolved snapshot, scene decisions and timing as montage and sound. Current
7
+ user choices, required tokens, output, selected style and relevant inspected
8
+ references govern the work. Reduced/disabled motion, quiet pacing and negative
9
+ space can be deliberate. Do not turn one reference's numeric settings into
10
+ requirements for everyone.
6
11
 
7
12
  ## Intent before look
8
13
 
9
- State four lines per meaningful shot before choosing a component, effect or palette:
10
-
11
- 1. **Understand:** the sentence the viewer must get, with its real numbers.
12
- 2. **Action:** the visible action that demonstrates it, such as an object performing the comparison.
13
- 3. **Consequence:** what visibly changes because of it, in the same shot.
14
- 4. **Exit:** the final state and what carries into the next shot.
15
-
16
- They sharpen the intention and action of the motion skill's shot description (entry, hold and exit still apply) and fit the [code motion](code-motion.md) record; they are not a schema. If the viewer would understand the sentence equally without the action, reconsider whether the motion is decoration and restage.
17
-
18
- Explanatory mechanism comes before surface treatment (palette, texture, glow); the selected style's own mechanisms still apply. For code/compositing, derive geometry, counters, labels, camera targets and cues from one data model ([code motion](code-motion.md) covers deterministic time) and recompute every figure. When a beat reads weak, change travel, scale, composition or timing before adding effects.
19
-
20
- **Honest data.** The data must demonstrate the claim (a difference of about 10 % or more, a threshold actually crossed) or the payoff changes; keep the before state credible. Map quantity to the visible dimension (area by √value), compare on one scale, clock and cost basis, and declare exaggerated or non-linear scales on screen. Leaders end at measured endpoints, emphasis follows the message target rather than the maximum, and data-dependent wording follows the computed values.
21
-
22
- ## Starting values
23
-
24
- **Easing and springs.** No linear spatial motion: ease-out for entrances, in-out and arcs for travel; interpolate data values monotonically. Start springs from rest: no jump after a standstill (one fix capped that first step near 30 px) and no frame stepping several times its neighbors. A damping ratio ζ ≈ 0.8 gives about 1.5 % overshoot (convert to the engine's stiffness/damping/mass) over a 0.22–0.26 s main travel; large elements overshoot 2 % at most, and springs settle within their beat. Anticipate major moves with a 1–8 % counter-move (15–20 % for large rotations). Reveals take 0.18–0.45 s with a strong ease-out; related elements stagger 2–4 frames, secondary parts follow through 2–4 frames late, and edges on separate springs stretch and catch up. Squash only the hero, by 2 % at most. Large elements stay well under about 140 px per frame; above about 100 px per frame add directional blur (ghosts only on small objects, never over text). For exact endpoints, see [targeted motion review](../../editorbrain/references/motion-review.md).
25
-
26
- **Staging and holds.** One primary move and focal point at a time; dim the rest 40–60 % and start the next move at 80–90 % settled. Hold 0.4–0.8 s after intermediate payoffs and 1.5–2.5 s at the end of a standalone piece or before a hard end (under 1.2 s is a warning); a shot that hands off, or an insert under continuing voice, keeps its readable hold and designs its exit. Outside planned holds, over about 1 s with no readable change and nothing else carrying the beat (narration, action) is a dead-air candidate; keep holds alive with 0.5–2 % drift, never above 3 %, unless motion is reduced or disabled. Nothing appears, disappears or swaps for one unintended frame; deliberate cuts, stepped motion and reduced-motion states are exempt. Switch layers on time, never on a spring threshold. Keep full-frame flashes to three per second or fewer, timed in seconds; a count does not certify photosensitivity safety.
27
-
28
- **First and last frames.** Shots enter already in motion unless stillness is the design or motion is reduced. When the first frame may be seen alone (autoplay, preview, thumbnail), compose it with subject and title present. Do not reserve visible holes; bring later content in from an on-screen object or a motivated pull-back, and show an empty container only when its emptiness is the information (about 0.25–0.3 s). When a piece or beat closes, end on a designed state: scaffolding gone, deformations eased back.
29
-
30
- **Payoff.** Design a separate end-state layout, not the first layout minus elements: the answer at least as large as the setup figure, about twice its neighbors and legible at rest without a push. During action keep the protagonist near 25 % of frame height in 16:9 and 30–40 % in narrower ratios. A measuring gesture landing on the computed value makes a strong payoff; craft must not delay or shrink the answer.
31
-
32
- **Object-driven transitions.** Keep one protagonist and change its function: a row becomes a ticket, a total a stamp. Leave states accelerating: content out, container moves and settles, content in. Move the same object between layouts rather than fading one out and another in; replace busy crossfades and hue tweens with a wipe, mask or occluder starting at the cause. Causes precede effects: objects lead their labels, counters change when a visible carrier lands, a source shows the gap left behind, and a state a transition introduces persists until another removes it.
33
-
34
- **Camera.** Without style direction, push in on one subject and pull back to show the system; avoid moves that only add energy. Interpolate zoom in log space. Emphasis pushes start around 1.4–4.5 % and follows around 1.3–1.75×, lower in 9:16; if cropping would force a push below about 1.15×, dim the rest or scale the focal element instead. Pans stay under about 25 px per frame with continuous velocity and finish 0.15 s before cuts. At every hold, each label and title is wholly inside the safe margin or wholly off-frame; text that must not crop lives in screen space and crosses the frame edge only while moving. Start a beat once its element is framed.
35
-
36
- **Type as objects.** Unless the type is the action (kinetic type, beat-locked or word-synced words, line or letter mask reveals), move phrases or lines as blocks with one behavior each; text exits before its container moves and returns after it settles. Fit text at its final rendered size and font settings: shrink to the size floor (see Ratios), then two balanced lines, then a short alternate; never truncate a number. Same-role labels share the smallest fitted size, and anything placed or animated from a text block follows its measured line count. Size masks from measured ink with descender and accent room; test g, j, p, y, ¿, ¡, Á, É, Ñ and currency in the actual fonts, and never synthesize italics. Use tabular figures for changing numbers, one locale-aware formatter (no −0, singular and zero forms), no-break spaces before units, no orphaned units, and differences from the rounded values shown; rolling numbers show each value 0.25 s or more.
37
-
38
- **Text over imagery and color.** Choose the text color among the resolved brand text roles by measured contrast with the actual backdrop; if no permitted role passes, treat it as a project decision (see [component library](component-library.md)), never silent recoloring. Over footage or busy texture, small text gets a scrim, veil or knockout band, and HUD readouts or values in flight an opaque plate; a translucent plate must not show text behind it. Key text ends at 4.5:1 or more. Temporary dims, veils and ghosts exit before the hold; one accent per meaning. Derive shadows, highlights and flashes from the palette's luminance rather than fixed values.
39
-
40
- **Labels and drawn objects.** Place labels, stamps and resting props against everything printed (text, credit, HUD, moving props and their rest poses) at every beat and ratio. Anchor stamps to the object's drawn bounds, not a data level; no decorative impact covers primary text; leaders never cross text. Overlaps happen only in motion, for about 0.4 s or less. Name each hero object from a small grayscale still at its smallest size and ask what else it could be; give it defining cues (edge, binding, cap, sheen), one light direction and highlights that add light rather than desaturate; textures move with their object, and decorative strokes never look like data marks.
41
-
42
- **Copy and density.** About 3–4 words per beat, a new idea every 1.5–2 s, and each text fully visible 0.6 s plus 0.25 s per word beyond three; lengthen the shot, or cut copy when timing is locked to voice, rather than compress reading. These figures apply to graphic copy, not word-synced captions, and `onScreenText` sets the density. Leave 0.35 s between text events, let the outgoing line leave before the next enters, and give the last item of each sequence 0.4 s clean before a transition covers it. Individually read events need about 0.3 s each; when faster, or beyond about eight labeled items (about 35 anonymous tokens), show two or three slowly, then an aggregate. Text below the size floor is texture and carries no message. Scroll-first formats may need the answer within 1–2 s unless the brief's hook deliberately withholds it.
43
-
44
- **Sound-first timing.** When narration exists, lock it first (see [audio production](../../editorbrain/references/audio-production.md)) and anchor events to it; voice-synced text lands 0–5 frames after the word, never before (one measured reel). With SFX or music, derive cues from the motion's event list; for rhythmic or physical scenes without locked narration, a beat grid can lead, without every cut on a beat. Align each sample's measured peak or attack, not its file start: impacts on contact, whooshes at peak velocity, chimes and swells on the settle or resolve. Cluster trains above about 6–8 cues per second; gain follows magnitude. Respect exclusions; every SFX needs a visible cause, the scene must read muted, and aligned data still needs listening.
45
-
46
- **Ratios.** Recompose graphic layers per ratio from one model with identical beat times instead of cropping another ratio's render; reframing footage or cropping an asset inside the layout is fine. In 9:16, transpose the main axis rather than shrink; no band over about 15–20 % of the height stays empty beyond about 1 s. Carry moves under about 40 px in secondary cues (lean, tension, counters); a protagonist leaving a system travels about a third of the frame height. No hero state is a sliver beyond about 0.5 s, text never rotates 90° to fit, key actions stay in frame, and narrow ratios get gentler camera moves. The size floor is a font size at final on-screen scale of about 20 px in 16:9 and 1:1 and 22 px in 9:16 and other portrait ratios: a floor, not a target, confirmed at delivery size. Take platform UI zones from the output profile or destination.
47
-
48
- ## Failure modes
49
-
50
- | Failure | Detect with |
14
+ For a meaningful shot, capture four answers in the existing direction or shot
15
+ record; do not create a second plan:
16
+
17
+ 1. **Understand:** what the viewer must get, with the real words and numbers.
18
+ 2. **Action:** the visible behavior that explains it.
19
+ 3. **Consequence:** what changes because of that action.
20
+ 4. **Exit:** the readable result and what carries into the next beat.
21
+
22
+ A mechanism comes before glow, palette or decoration. For an ambitious explanation,
23
+ keep the inspected reference sequence and relevant implementation open while
24
+ adapting its action. Reuse useful source code, geometry and timing utilities; alter
25
+ the composition for this message and actual assets. A polished generic label reveal
26
+ is not an equivalent of an example that demonstrates a process. Conversely, a
27
+ simple reveal may be exactly right for a small identification cue.
28
+
29
+ Derive geometry, counters, labels and cues from one data model. Recompute claims
30
+ from the real values on a common unit/time/cost basis. Quantity encoded by area
31
+ needs area-proportional geometry, not radius-proportional sizing. Small differences
32
+ can matter: never change numbers or invent a minimum percentage to make an
33
+ animation dramatic. Disclose non-linear/exaggerated scales if used. If the data
34
+ does not support the claim, correct the claim or staging, not the facts.
35
+
36
+ ## Design the action
37
+
38
+ **Timing and easing.** Choose the behavior for its meaning: eased travel for a
39
+ settle, a controlled spring for a physical response, linear motion for a constant
40
+ rate, or stepped motion for an intentional graphic language. Do not apply the
41
+ same spring to every object. As a test value for a short, energetic entrance,
42
+ try roughly 0.2–0.45 s and a small stagger, then compare with the reference,
43
+ voice/action and delivery size. These are optional starting points, not limits.
44
+ Check continuous velocity, exact rest states and unintended frame jumps. Avoid
45
+ excessive overshoot or ghosting over readable text. Derive state from time rather
46
+ than playback history; see [code motion](code-motion.md).
47
+
48
+ **Staging.** Make the focal relationship clear. Simultaneous action, a grid or a
49
+ quiet hold can all work when the viewer can follow them. Control hierarchy through
50
+ placement, scale, contrast and occlusion rather than always dimming everything or
51
+ adding a plate. Hold long enough to perceive the result at delivery size; shorten
52
+ dead air that serves no voice, action or reading need. Do not add compulsory drift
53
+ to every hold. Measure rapid state changes when they matter; avoid unintended
54
+ flashes, pops or disappearing layers. A numeric flash count is not a photosafety
55
+ certification.
56
+
57
+ **Entry, payoff and exit.** Compose a meaningful first frame and a completed last
58
+ state for the actual use: a standalone demo, an insert and a scene under continuous
59
+ speech need different handles. A hook need not carry a title when the user wants
60
+ clean footage. Show the answer clearly, without a prescribed size ratio or long
61
+ outro pause. Empty space or an empty container is valid when it communicates the
62
+ setup or leaves room for UI; accidental blanks are not. Remove leftover scaffolding
63
+ and settle temporary deformation when the scene calls for a finished state.
64
+
65
+ **Transitions and camera.** Choose cuts, masks, continuity moves, dissolves or
66
+ object transformations according to the argument and style. When an object carries
67
+ between scenes, match its identity, crop, anchor, bounds and state. Cause-and-effect
68
+ animation must preserve logical order; objects should not claim to arrive before
69
+ they do. A camera move should reveal detail, contrast or a system, not merely add
70
+ energy. Check framing and readable states along the move, not only endpoints;
71
+ essential labels must remain visible when they need to be read. Keep user footage
72
+ and presenter treatment within the effective layout preference.
73
+
74
+ ## Typography, imagery and formats
75
+
76
+ **Typography is part of the composition.** Use the actual resolved font files,
77
+ weights and available italic faces. Fit the real copy at final scale, including
78
+ accents, descenders, currency and locale formatting. Rewrap, recompose or shorten
79
+ nonessential copy before making it too small. Never silently truncate a number,
80
+ claim or required CTA. Size reveal masks from measured glyph bounds. Changing
81
+ numbers can use tabular figures; align visible rounded values with the claim.
82
+
83
+ Move phrases as blocks when they must be read together. Use word/letter choreography
84
+ when kinetic type or spoken emphasis is the mechanism. Entrances and exits can
85
+ contrast across beats without every line spinning, bouncing or blurring. Captions
86
+ follow their actual word cues and language/treatment; graphic copy can anticipate
87
+ or summarize speech when intentional. Text density is not subtitle frequency.
88
+ Check the smallest important text on a phone-sized preview rather than relying
89
+ on a universal pixel floor.
90
+
91
+ **Text over images.** Inspect the actual changing backdrop. Use permitted brand
92
+ text roles with sufficient contrast; try position, selective shading, outline or
93
+ an appropriate plate according to style. No automatic opaque box, blanket blur or
94
+ recoloring of authentic footage, skin, logos or UI. If required roles cannot remain
95
+ legible, make a deliberate project decision under the shared precedence. Keep
96
+ essential graphics clear of faces, captions and platform controls during motion
97
+ and at rest. Decorative oversize/cropped type may be intentional; clipped essential
98
+ words are defects.
99
+
100
+ **Drawn objects.** Choose visual cues that make the object recognizable at its
101
+ smallest delivered size. Texture and light should follow its shape and movement.
102
+ Leaders, stamps and props should land on their intended target without hiding the
103
+ message. Inspect their paths as well as rest poses. Distinguish decorative marks
104
+ from quantitative marks. A real product demonstration needs authentic evidence;
105
+ clearly illustrative UI is not proof of a product feature.
106
+
107
+ **Formats.** Recompose graphic layers for each requested ratio using the same
108
+ message and appropriate timing, not a cropped wide render. Adjust axes, line
109
+ breaks, trajectory and asset crop. Portrait does not require filling every band;
110
+ negative space and platform UI reserves may be necessary. Use output safe areas
111
+ and the destination check in [production review](../../editorbrain/references/production-and-review.md).
112
+ A wide pass does not validate vertical readability. Reduced-motion versions can
113
+ use still states or restrained transitions without losing information.
114
+
115
+ ## Coordinate sound and timing
116
+
117
+ [Audio production](../../editorbrain/references/audio-production.md) owns the timing
118
+ anchor and mix: voice-led work uses final narration; music/action-led work can have
119
+ secondary narration without switching anchors. Motion consumes the montage's
120
+ current final timeline. If a shot's duration changes, retime dependent captions and
121
+ sound cues rather than keeping old absolute seconds.
122
+
123
+ When sound is chosen, expose meaningful events to the sound pass: contact, travel,
124
+ reveal, resolution or narrative emphasis. Align the sample's attack or intended
125
+ peak, not just its file start. Not every cut or word needs a sound; off-screen
126
+ sound and ambience can be purposeful too. Respect protected hooks and independent
127
+ music/SFX exclusions. A visual can carry a factual message without an SFX; a
128
+ voice-led piece need not explain every spoken detail through graphic text alone.
129
+ Listen to the encoded mix before claiming synchronization or audibility.
130
+
131
+ ## Review in proportion to risk
132
+
133
+ | Question | Evidence to inspect |
51
134
  |---|---|
52
- | Text overflows, wraps badly or sibling sizes differ | Longest copy and maximum counts in every ratio |
53
- | Numbers contradict each other, the copy or the claim | Recompute derived figures and differences from visible operands |
54
- | Narrow ratios inherit the wide layout | Empty bands and margins on mid and last frames |
55
- | Labels, stamps or props land on text | Stills at every beat and rest pose in each ratio |
56
- | Moving values or labels cross text | Dense 10–30 fps strips over each flight |
57
- | Camera crops text at a hold | Label boxes against the safe margin at every hold |
58
- | Empty opening or unfinished ending | First and last frames alone at thumbnail size |
59
- | Rushed events or one-frame pops | Shortest event interval; frame-exact grids at state changes |
60
- | Dead air | Freeze scan, e.g. ffmpeg `freezedetect`, against planned holds |
61
- | Under-weighted payoff or misread object | One dominant element in the last seconds; grayscale silhouette at phone size |
62
- | Unmotivated effects | Glow, particles, blur-in or stock dashboard card without a cause |
63
- | Sound drifting from picture | Retime one event, compare cue and event frames, listen |
64
- | File size balloons | Size after the first render; unsettled motion tails, per-frame grain |
65
-
66
- Those effects are fine when the style, the user or a fitting component calls for them.
67
-
68
- ## Self-review order
69
-
70
- 1. Four lines, recomputed numbers, density arithmetic (count × interval fits the beat).
71
- 2. Stills at every beat and mid-transition in each ratio, narrowest first, with zoomed crops of the smallest text.
72
- 3. For parameterized or reused scenes, stress inputs: longest copy, extreme counts, descenders and accents, each applicable brand theme.
73
- 4. Numeric checks where claims matter: text boxes, recomputed numbers, out-of-order seeks.
74
- 5. Dense strips around transitions; every frame for events under 0.2 s.
75
- 6. The whole export at delivery size, first and last frames included, listening to any audio.
76
- 7. A fresh-context second pass, or a separate reviewer, on the final export's strips (tiles of 480 px or more, times inside the duration). Edge-cropped text is blocking; fix self-noted legibility or payoff weaknesses before reporting.
77
- 8. Fix the cause (layout rule, data, timing) behind a defect; recheck that interval, the other ratios and the delivered whole.
78
-
79
- Record findings in the [code motion](code-motion.md) format and finish with [production and review](../../editorbrain/references/production-and-review.md). Clean engine diagnostics, where available, are necessary but not sufficient; passing checks is not artistic approval, and measured audio is not listened audio.
135
+ | Does this retain the adopted mechanism and explain this beat? | Reference interval beside the actual passage, not only palette or component ID |
136
+ | Are facts, text and hierarchy correct? | Recomputed values; longest copy and essential text at delivery size |
137
+ | Do objects move and hand off coherently? | Adjacent frames/strips around transitions, paths, crops and mattes |
138
+ | Are reading time, pace and continuity right? | Actual playback with the timing anchor; intentional holds distinguished from dead air |
139
+ | Do preferences still hold in every output? | Resolved constraints against actual ratio, fonts, captions, layout and sound |
140
+ | Did changes desynchronize something? | Updated cut map and dependent cue positions, then playback of the affected joins |
141
+
142
+ For new reusable components, stress meaningful extremes: longest copy, changing
143
+ counts, accents, selected palettes and each supported ratio. For temporal code,
144
+ check important states after out-of-order seeks. For a localized text correction,
145
+ reuse still-valid checks and inspect the affected layout/reading time; do not run
146
+ every stress case again. Use dense strips only where fast motion needs them.
147
+
148
+ Watch the final export and listen when that modality is available. A second review
149
+ can help uncertain or complex work; it does not require a second agent, paid call
150
+ or user approval on every edit. Record exact output/hash, interval, observed defect
151
+ and correction using [code motion](code-motion.md). Fix the underlying cause,
152
+ recheck affected events and the delivered whole. Uninspected audio or visuals stay
153
+ unverified; technical checks are not artistic approval. Finish with the shared
154
+ [production review](../../editorbrain/references/production-and-review.md).
155
+
156
+ ### V11 transfer guardrails
157
+
158
+ For explanatory titles, animate a whole word or line through a measured mask by
159
+ default. Do not split a normal word into independently displaced letters: the
160
+ reader must not see accidental fragments such as “Ciberseguri da d”. Deliberate
161
+ letter choreography remains an explicit editorial exception that must preserve
162
+ readability throughout; a catalog example cannot override the user's direction.
163
+ Use the optional [editorial primitives](component-library.md#editorial-primitives-next-release)
164
+ for implementation, then fit to the actual brand, voice and scene. An approved
165
+ example does not impose its palette, rhythm or montage on every user.
166
+
167
+ Before delivery use the [full-video review sheet](../../editorbrain/references/local-production.md#full-video-sheet-and-social-ui-review-next-release),
168
+ then inspect transitions and audio at finer resolution. Check important logos
169
+ as protected boxes as well as text. Prefer increasing their readable size and
170
+ moving them clear of platform UI over adding decorative objects. Use the
171
+ full-montage matte contract when cutting out a presenter. A one-second stillness
172
+ warning is diagnostic, not a requirement to animate every second of every genre.