takomi 2.1.40 → 2.1.41

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 (68) hide show
  1. package/.agents/plugins/marketplace.json +22 -22
  2. package/README.md +3 -3
  3. package/assets/.agent/skills/remotion/rules/assets/charts-bar-chart.tsx +173 -173
  4. package/assets/.agent/skills/remotion/rules/assets/text-animations-typewriter.tsx +100 -100
  5. package/assets/.agent/skills/remotion/rules/text-animations.md +20 -20
  6. package/assets/.agent/skills/remotion/rules/videos.md +171 -171
  7. package/assets/.agent/skills/remotion-real-ui-video/SKILL.md +264 -0
  8. package/assets/.agent/skills/remotion-real-ui-video/references/anti-patterns.md +114 -0
  9. package/assets/.agent/skills/remotion-real-ui-video/references/completion-checklist.md +75 -0
  10. package/assets/.agent/skills/remotion-real-ui-video/references/real-ui-bridge-example.md +93 -0
  11. package/assets/.agent/skills/takomi-flow/SKILL.md +244 -244
  12. package/docs/features/TakomiFlow_Portable_Plugin.md +82 -82
  13. package/docs/takomi-flow-onboarding.md +86 -86
  14. package/docs/takomi-flow-public-distribution.md +94 -94
  15. package/package.json +1 -1
  16. package/plugins/takomi-flow/.mcp.json +11 -11
  17. package/plugins/takomi-flow/assets/capabilities.json +203 -203
  18. package/plugins/takomi-flow/assets/collection.schema.json +29 -29
  19. package/plugins/takomi-flow/assets/examples.json +94 -94
  20. package/plugins/takomi-flow/assets/request.schema.json +91 -91
  21. package/plugins/takomi-flow/assets/result.schema.json +46 -46
  22. package/plugins/takomi-flow/assets/templates/image-request.json +17 -17
  23. package/plugins/takomi-flow/assets/templates/video-request.json +19 -19
  24. package/plugins/takomi-flow/package.json +38 -38
  25. package/plugins/takomi-flow/pnpm-lock.yaml +813 -813
  26. package/plugins/takomi-flow/references/flow-provider-contract.md +349 -349
  27. package/plugins/takomi-flow/scripts/lib/agent-plan.mjs +140 -140
  28. package/plugins/takomi-flow/scripts/lib/api.mjs +113 -113
  29. package/plugins/takomi-flow/scripts/lib/args.mjs +66 -66
  30. package/plugins/takomi-flow/scripts/lib/audit.mjs +65 -65
  31. package/plugins/takomi-flow/scripts/lib/browser.mjs +78 -78
  32. package/plugins/takomi-flow/scripts/lib/capabilities.mjs +11 -11
  33. package/plugins/takomi-flow/scripts/lib/collect.mjs +53 -53
  34. package/plugins/takomi-flow/scripts/lib/commands.mjs +192 -192
  35. package/plugins/takomi-flow/scripts/lib/doctor.mjs +77 -77
  36. package/plugins/takomi-flow/scripts/lib/examples.mjs +17 -17
  37. package/plugins/takomi-flow/scripts/lib/flow-media.mjs +39 -39
  38. package/plugins/takomi-flow/scripts/lib/flow-outcome.mjs +115 -115
  39. package/plugins/takomi-flow/scripts/lib/flow-project-session.mjs +153 -153
  40. package/plugins/takomi-flow/scripts/lib/flow-ui.mjs +204 -204
  41. package/plugins/takomi-flow/scripts/lib/generation.mjs +190 -190
  42. package/plugins/takomi-flow/scripts/lib/inspect.mjs +81 -81
  43. package/plugins/takomi-flow/scripts/lib/mcp-prompts.mjs +39 -39
  44. package/plugins/takomi-flow/scripts/lib/mcp-resources.mjs +16 -16
  45. package/plugins/takomi-flow/scripts/lib/mcp-tools.mjs +165 -165
  46. package/plugins/takomi-flow/scripts/lib/media.mjs +78 -78
  47. package/plugins/takomi-flow/scripts/lib/observe.mjs +54 -54
  48. package/plugins/takomi-flow/scripts/lib/paths.mjs +37 -37
  49. package/plugins/takomi-flow/scripts/lib/playwright-loader.mjs +23 -23
  50. package/plugins/takomi-flow/scripts/lib/prompts.mjs +72 -72
  51. package/plugins/takomi-flow/scripts/lib/report.mjs +141 -141
  52. package/plugins/takomi-flow/scripts/lib/request-validator.mjs +73 -73
  53. package/plugins/takomi-flow/scripts/lib/request.mjs +66 -66
  54. package/plugins/takomi-flow/scripts/lib/resource-files.mjs +69 -69
  55. package/plugins/takomi-flow/scripts/lib/result.mjs +31 -31
  56. package/plugins/takomi-flow/scripts/lib/review.mjs +44 -44
  57. package/plugins/takomi-flow/scripts/lib/selftest.mjs +153 -153
  58. package/plugins/takomi-flow/scripts/lib/settings-plan.mjs +44 -44
  59. package/plugins/takomi-flow/scripts/lib/templates.mjs +37 -37
  60. package/plugins/takomi-flow/scripts/lib/trusted-chrome.mjs +67 -67
  61. package/plugins/takomi-flow/scripts/lib/workflow.mjs +56 -56
  62. package/plugins/takomi-flow/scripts/mcp-server.mjs +18 -18
  63. package/plugins/takomi-flow/scripts/mcp-smoke.mjs +144 -144
  64. package/plugins/takomi-flow/scripts/takomi-flow.mjs +17 -17
  65. package/plugins/takomi-flow/skills/takomi-flow/SKILL.md +244 -244
  66. package/plugins/takomi-flow/skills/takomi-flow/agents/openai.yaml +7 -7
  67. package/scripts/install-takomi-flow.ps1 +85 -85
  68. package/src/skills-catalog.js +10 -9
@@ -0,0 +1,114 @@
1
+ # Anti-Patterns
2
+
3
+ Use this reference before and during review. If any anti-pattern appears, stop and correct it before calling the work complete.
4
+
5
+ ## Anti-pattern 1: Pretty fake app screen
6
+
7
+ ### Symptom
8
+
9
+ The composition creates custom JSX that resembles an existing app screen:
10
+
11
+ - handmade dashboard
12
+ - handmade form
13
+ - handmade table/grid
14
+ - handmade score sheet
15
+ - handmade sidebar/header
16
+ - handmade report card
17
+
18
+ ### Why it is wrong
19
+
20
+ The video may look polished, but it no longer proves or showcases the real product UI. Future UI changes will not carry into the video, and the agent has violated the real-UI workflow.
21
+
22
+ ### Correct response
23
+
24
+ Find the actual app component and import/extract it. Replace only data/runtime boundaries.
25
+
26
+ ## Anti-pattern 2: Existing component ignored
27
+
28
+ ### Symptom
29
+
30
+ The codebase has components like:
31
+
32
+ ```txt
33
+ SelectionBar
34
+ RosterGrid
35
+ SaveActionBar
36
+ ReportPreview
37
+ WorkspaceShell
38
+ SettingsForm
39
+ BillingTable
40
+ ```
41
+
42
+ But the Remotion composition builds similar JSX itself.
43
+
44
+ ### Correct response
45
+
46
+ Use the existing components. If they are not exportable, export them or extract a presentational view.
47
+
48
+ ## Anti-pattern 3: Semantic targets without semantic measurement
49
+
50
+ ### Symptom
51
+
52
+ The agent adds `data-video-target`, but cursor/touch positions still come from hardcoded coordinates.
53
+
54
+ ### Correct response
55
+
56
+ Measure the target with `getBoundingClientRect()`, normalize to composition coordinates, and use fallback coordinates only when measurement is unavailable.
57
+
58
+ ## Anti-pattern 4: Raw bounding rect coordinates
59
+
60
+ ### Symptom
61
+
62
+ The code uses:
63
+
64
+ ```ts
65
+ x: targetRect.left - rootRect.left
66
+ ```
67
+
68
+ without compensating for Remotion Studio scaling.
69
+
70
+ ### Correct response
71
+
72
+ Use composition width/height from `useVideoConfig()`:
73
+
74
+ ```ts
75
+ const scaleX = rootRect.width / compositionWidth;
76
+ const scaleY = rootRect.height / compositionHeight;
77
+
78
+ x = (targetRect.left - rootRect.left) / scaleX;
79
+ y = (targetRect.top - rootRect.top) / scaleY;
80
+ ```
81
+
82
+ ## Anti-pattern 5: CSS transitions on frame-driven motion
83
+
84
+ ### Symptom
85
+
86
+ Frame-driven scroll/camera transforms use CSS `transition`.
87
+
88
+ ### Why it is wrong
89
+
90
+ The browser interpolates while Remotion samples exact frames, causing jitter or stutter.
91
+
92
+ ### Correct response
93
+
94
+ Use deterministic frame values only, e.g. `translate3d(...)`, and no CSS transition.
95
+
96
+ ## Anti-pattern 6: Registered but not renderable
97
+
98
+ ### Symptom
99
+
100
+ A composition is registered, but there are no scripts/commands for stills, debug stills, or final video.
101
+
102
+ ### Correct response
103
+
104
+ Add or document render commands before calling the work done.
105
+
106
+ ## Anti-pattern 7: Unreviewed production edits
107
+
108
+ ### Symptom
109
+
110
+ Shared/production components are changed to satisfy Remotion, but no one checks whether live behavior changed.
111
+
112
+ ### Correct response
113
+
114
+ Review every production edit. Prefer additive props, `data-video-target`, exports, or presentational extraction. Avoid changing live auth/data/routing/import behavior unless deliberately required.
@@ -0,0 +1,75 @@
1
+ # Completion Checklist
2
+
3
+ Use this checklist before saying a Remotion real-UI video task is complete.
4
+
5
+ ## Pre-implementation report
6
+
7
+ - [ ] Listed real UI source files for every app-screen scene.
8
+ - [ ] Listed real components imported or extracted.
9
+ - [ ] Listed runtime/data/provider boundaries replaced with demo/local equivalents.
10
+ - [ ] Identified which scenes are marketing overlays only.
11
+ - [ ] Asked the user before creating any video-only mockup of an existing app screen.
12
+
13
+ ## Real UI compliance
14
+
15
+ For each app-screen scene:
16
+
17
+ - [ ] Scene imports/extracts real app UI components.
18
+ - [ ] Scene does not hand-build a lookalike dashboard/form/table/screen.
19
+ - [ ] Demo data enters through props/providers/boundaries, not by rewriting visual JSX.
20
+ - [ ] Any production/shared component changes are additive and low-risk.
21
+
22
+ ## Timeline and interaction compliance
23
+
24
+ - [ ] Interactions are centralized in a timeline/action object.
25
+ - [ ] Every action has `targetId`, fallback coordinates, `downFrame`, `upFrame`, and `commitFrame`.
26
+ - [ ] UI/route/data changes happen at `commitFrame`, after click/tap release.
27
+ - [ ] Desktop uses cursor indicators; mobile uses touch indicators.
28
+ - [ ] Mobile scroll is frame-driven and deterministic, with no CSS transitions.
29
+
30
+ ## Target measurement compliance
31
+
32
+ - [ ] Click/tap targets use `data-video-target`.
33
+ - [ ] DOM measurements use `getBoundingClientRect()`.
34
+ - [ ] Measurements are normalized from viewport/Studio-scaled pixels into composition coordinates.
35
+ - [ ] Debug overlays use the same normalized coordinate space as the cursor/touch indicator.
36
+ - [ ] Fallback hardcoded coordinates are used only if measurement is unavailable.
37
+
38
+ ## Render and artifact compliance
39
+
40
+ - [ ] Final composition canvas uses full HD by default: 1920×1080 for landscape or 1080×1920 for portrait/mobile, unless the user explicitly requested a smaller/different size.
41
+ - [ ] Typechecked every touched package.
42
+ - [ ] Rendered stills at key scene/action frames.
43
+ - [ ] Rendered at least one debug-overlay still per composition.
44
+ - [ ] Added or documented still/debug/final video render commands.
45
+ - [ ] Rendered final video artifact unless user requested stills only.
46
+ - [ ] Compared output scene-by-scene against the user's script.
47
+ - [ ] Checked that UI is not cramped, clipped, or too small on the chosen canvas.
48
+
49
+ ## Required final report
50
+
51
+ When reporting completion, include:
52
+
53
+ ```txt
54
+ Real UI reused:
55
+ - Scene <n>: <component> from <path>
56
+
57
+ Demo boundaries:
58
+ - <boundary>: <demo/local replacement>
59
+
60
+ Verification:
61
+ - typecheck command(s)
62
+ - still/debug artifact(s)
63
+ - final video artifact
64
+
65
+ Known gaps:
66
+ - <none or explicit caveat>
67
+ ```
68
+
69
+ ## Golden task mental test
70
+
71
+ Before implementation, ask:
72
+
73
+ > If the product team changes the real app screen tomorrow, would this video scene naturally inherit that change?
74
+
75
+ If the answer is no because the screen was recreated in Remotion, the implementation has failed this skill unless the user explicitly requested a mockup/redesign.
@@ -0,0 +1,93 @@
1
+ # Real UI Bridge Reference
2
+
3
+ Use this reference when implementing a Remotion composition for an existing app screen.
4
+
5
+ ## Required pattern
6
+
7
+ ```txt
8
+ Existing app route/page
9
+ -> live container/hooks/providers
10
+ -> RealFeatureView props
11
+
12
+ Remotion composition
13
+ -> imports RealFeatureView
14
+ -> supplies deterministic demo props
15
+ -> drives route/state from timeline commit frames
16
+ -> overlays cursor/touch/highlights around the real UI
17
+ ```
18
+
19
+ ## Good example shape
20
+
21
+ ```tsx
22
+ // app/admin/scores/page.tsx
23
+ export default function ScoresPage() {
24
+ const session = useLiveSession();
25
+ const data = useScoresQuery(session.schoolId);
26
+ return <ScoresWorkspaceView data={data} onSave={saveScores} />;
27
+ }
28
+
29
+ // app/admin/scores/ScoresWorkspaceView.tsx
30
+ export function ScoresWorkspaceView({ data, onSave }: Props) {
31
+ return (
32
+ <WorkspaceShell>
33
+ <ScoreSelector value={data.selection} />
34
+ <ScoreGrid rows={data.rows} onSave={onSave} />
35
+ <PreviewAction />
36
+ </WorkspaceShell>
37
+ );
38
+ }
39
+
40
+ // remotion/compositions/ScoresDemo.tsx
41
+ export function ScoresDemo() {
42
+ const frame = useCurrentFrame();
43
+ const scene = getScene(frame);
44
+ return (
45
+ <AbsoluteFill data-video-coordinate-root>
46
+ <ScoresWorkspaceView
47
+ data={getDemoScoresData(scene)}
48
+ onSave={() => undefined}
49
+ />
50
+ <TimelineCursor />
51
+ </AbsoluteFill>
52
+ );
53
+ }
54
+ ```
55
+
56
+ ## Bad example shape
57
+
58
+ ```tsx
59
+ // remotion/compositions/ScoresDemo.tsx
60
+ // BAD: This redraws the app screen from scratch even though real components exist.
61
+ function FakeScoreGrid() {
62
+ return <table>{/* handmade lookalike rows */}</table>;
63
+ }
64
+ ```
65
+
66
+ This is unacceptable unless the user explicitly approved a video-only mockup/redesign after being told real UI reuse is not being attempted.
67
+
68
+ ## Refactor rule
69
+
70
+ If the real screen is coupled to live hooks/auth/API calls, do not clone the JSX. Extract a presentational view:
71
+
72
+ ```txt
73
+ Before:
74
+ ScoresPage contains hooks + full JSX
75
+
76
+ After:
77
+ ScoresPage contains hooks and passes props
78
+ ScoresWorkspaceView contains the existing JSX
79
+ Remotion imports ScoresWorkspaceView
80
+ ```
81
+
82
+ ## Marketing overlay rule
83
+
84
+ New Remotion-only JSX is allowed for:
85
+
86
+ - hook cards
87
+ - captions
88
+ - CTA/end cards
89
+ - spotlights/highlights
90
+ - cursor/touch indicators
91
+ - camera masks/backgrounds
92
+
93
+ It is not allowed for replacing existing app screens.