@amg555/frameforge-mcp 2.7.1 → 2.7.3
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 +63 -63
- package/CHANGELOG.md +42 -0
- package/README.md +426 -426
- package/package.json +1 -1
- package/plugins/video-pipeline/.claude-plugin/plugin.json +25 -25
- package/plugins/video-pipeline/skills/.upstream-skills.json +143 -143
- package/plugins/video-pipeline/skills/html-renderer/references/procedural-sfx.md +15 -3
- package/plugins/video-pipeline/skills/video-pipeline/SKILL.md +384 -384
- package/plugins/video-pipeline/skills/video-pipeline/assets/project/ANIMATION_GUIDE.md +2 -1
- package/plugins/video-pipeline/skills/video-pipeline/assets/project/pipeline/briefings/orchestrator.md +8 -4
- package/plugins/video-pipeline/skills/video-pipeline/references/mcp-tools.md +441 -291
- package/scripts/deep-validate.js +403 -388
- package/scripts/html-renderer/new-project.mjs +7 -3
- package/src/mcp-server/server.js +2999 -2999
- package/src/skills/sync-upstream.js +290 -290
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amg555/frameforge-mcp",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.3",
|
|
4
4
|
"description": "FrameForge — AI video production engine for agentic IDEs. npx @amg555/frameforge-mcp. FFmpeg + TTS on your machine. 28 MCP tools. Whisper, yt-dlp, broadcast-grade audio, 13-type SFX library, 24 film styles, ClaudeAnimationBase full guide, onetake 39-move library + OM motion primitives, HyperFrames beat-grid, earshot forge DSP, J/L-cut editing, lemo-opuscar TREATMENT.md, upstream auto-update changelog.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "video-pipeline",
|
|
3
|
-
"displayName": "FrameForge Video Pipeline",
|
|
4
|
-
"version": "2.7.
|
|
5
|
-
"description": "End-to-end AI video production. IDE writes scenes → FrameForge renders. Or: scaffold a Playwright+ffmpeg code-driven animation. Or: auto-research and script the video.",
|
|
6
|
-
"skills": [
|
|
7
|
-
{
|
|
8
|
-
"name": "video-pipeline",
|
|
9
|
-
"path": "skills/video-pipeline/SKILL.md",
|
|
10
|
-
"displayName": "Video Pipeline",
|
|
11
|
-
"description": "28 MCP tools: create_video_from_script, edit_video, plan_video_edit, preview_scene, verify_scene_quality, scaffold_animation_project, render_animation, validate_storyboard, mix_audio_pro, transcribe_media, ingest_url, sync_upstream_skills, check_upstream_updates, and more."
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
"name": "html-renderer",
|
|
15
|
-
"path": "skills/html-renderer/SKILL.md",
|
|
16
|
-
"displayName": "HTML Renderer",
|
|
17
|
-
"description": "HTML-as-compositor rendering engine: pure function of time t, virtual clock, Playwright headless capture, and FFmpeg broadcast-standard encoding."
|
|
18
|
-
}
|
|
19
|
-
],
|
|
20
|
-
"mcpServer": {
|
|
21
|
-
"command": "npx",
|
|
22
|
-
"args": ["--yes", "--package=@amg555/frameforge-mcp", "frameforge-mcp"],
|
|
23
|
-
"description": "Starts the FrameForge MCP server. No install needed — npx pulls from npm."
|
|
24
|
-
}
|
|
25
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "video-pipeline",
|
|
3
|
+
"displayName": "FrameForge Video Pipeline",
|
|
4
|
+
"version": "2.7.3",
|
|
5
|
+
"description": "End-to-end AI video production. IDE writes scenes → FrameForge renders. Or: scaffold a Playwright+ffmpeg code-driven animation. Or: auto-research and script the video.",
|
|
6
|
+
"skills": [
|
|
7
|
+
{
|
|
8
|
+
"name": "video-pipeline",
|
|
9
|
+
"path": "skills/video-pipeline/SKILL.md",
|
|
10
|
+
"displayName": "Video Pipeline",
|
|
11
|
+
"description": "28 MCP tools: create_video_from_script, edit_video, plan_video_edit, preview_scene, verify_scene_quality, scaffold_animation_project, render_animation, validate_storyboard, mix_audio_pro, transcribe_media, ingest_url, sync_upstream_skills, check_upstream_updates, and more."
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"name": "html-renderer",
|
|
15
|
+
"path": "skills/html-renderer/SKILL.md",
|
|
16
|
+
"displayName": "HTML Renderer",
|
|
17
|
+
"description": "HTML-as-compositor rendering engine: pure function of time t, virtual clock, Playwright headless capture, and FFmpeg broadcast-standard encoding."
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"mcpServer": {
|
|
21
|
+
"command": "npx",
|
|
22
|
+
"args": ["--yes", "--package=@amg555/frameforge-mcp", "frameforge-mcp"],
|
|
23
|
+
"description": "Starts the FrameForge MCP server. No install needed — npx pulls from npm."
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -1,143 +1,143 @@
|
|
|
1
|
-
{
|
|
2
|
-
"lastSync": "2026-11-11T19:56:18.351Z",
|
|
3
|
-
"repos": {
|
|
4
|
-
"hyperframes": {
|
|
5
|
-
"repo": "heygen-com/hyperframes",
|
|
6
|
-
"category": "compositor",
|
|
7
|
-
"desc": "Agent-native HTML/GSAP declarative video compositor",
|
|
8
|
-
"capabilities": [
|
|
9
|
-
"scaffold_animation_project",
|
|
10
|
-
"render_animation"
|
|
11
|
-
],
|
|
12
|
-
"userImpact": "New compositor patterns or GSAP animation primitives available for HTML-rendered video",
|
|
13
|
-
"sha": "a243169",
|
|
14
|
-
"lastChecked": "2026-11-11T19:56:16.487Z",
|
|
15
|
-
"status": "synced"
|
|
16
|
-
},
|
|
17
|
-
"opuscar": {
|
|
18
|
-
"repo": "lemomo-ai/lemo-opuscar",
|
|
19
|
-
"category": "styles",
|
|
20
|
-
"desc": "Frontier cinematic and viral film styles catalog (12 styles)",
|
|
21
|
-
"capabilities": [
|
|
22
|
-
"plan_video_edit",
|
|
23
|
-
"edit_video",
|
|
24
|
-
"render_from_scenes"
|
|
25
|
-
],
|
|
26
|
-
"userImpact": "New color grades or film styles available in plan_video_edit style parameter",
|
|
27
|
-
"sha": "9eb7739",
|
|
28
|
-
"lastChecked": "2026-11-11T19:56:16.692Z",
|
|
29
|
-
"status": "synced"
|
|
30
|
-
},
|
|
31
|
-
"onetake": {
|
|
32
|
-
"repo": "feitangyuan/onetake",
|
|
33
|
-
"category": "camera",
|
|
34
|
-
"desc": "Continuous single-shot camera choreography (zero-cut spline)",
|
|
35
|
-
"capabilities": [
|
|
36
|
-
"generate_scene_code",
|
|
37
|
-
"scaffold_animation_project"
|
|
38
|
-
],
|
|
39
|
-
"userImpact": "New onetake camera transition patterns available for code-driven animation",
|
|
40
|
-
"sha": "abb6d17",
|
|
41
|
-
"lastChecked": "2026-11-11T19:56:16.855Z",
|
|
42
|
-
"status": "synced"
|
|
43
|
-
},
|
|
44
|
-
"collage-broll": {
|
|
45
|
-
"repo": "pyang5166/gbro-collage-broll",
|
|
46
|
-
"category": "broll",
|
|
47
|
-
"desc": "Editorial paper collage, halftone textures, 2.5D tilt",
|
|
48
|
-
"capabilities": [
|
|
49
|
-
"generate_scene_code",
|
|
50
|
-
"create_video_from_script"
|
|
51
|
-
],
|
|
52
|
-
"userImpact": "New editorial collage / halftone visual templates available",
|
|
53
|
-
"sha": "a1a4ee2",
|
|
54
|
-
"lastChecked": "2026-11-11T19:56:17.057Z",
|
|
55
|
-
"status": "synced"
|
|
56
|
-
},
|
|
57
|
-
"remotion-skills": {
|
|
58
|
-
"repo": "remotion-dev/skills",
|
|
59
|
-
"category": "motion",
|
|
60
|
-
"desc": "First-party Remotion composition skills (spring physics)",
|
|
61
|
-
"capabilities": [
|
|
62
|
-
"scaffold_animation_project",
|
|
63
|
-
"render_animation"
|
|
64
|
-
],
|
|
65
|
-
"userImpact": "New Remotion motion patterns or spring physics presets available",
|
|
66
|
-
"sha": "7e541aa",
|
|
67
|
-
"lastChecked": "2026-11-11T19:56:17.403Z",
|
|
68
|
-
"status": "synced"
|
|
69
|
-
},
|
|
70
|
-
"earshot": {
|
|
71
|
-
"repo": "Leonxlnx/earshot",
|
|
72
|
-
"category": "audio",
|
|
73
|
-
"desc": "Procedural CPU SFX synthesis and timeline sync (13-type library)",
|
|
74
|
-
"capabilities": [
|
|
75
|
-
"mix_audio_pro",
|
|
76
|
-
"create_video_from_script"
|
|
77
|
-
],
|
|
78
|
-
"userImpact": "New procedural SFX cue types or audio sync patterns available in mix_audio_pro",
|
|
79
|
-
"sha": "4ac3d2a",
|
|
80
|
-
"lastChecked": "2026-11-11T19:56:17.839Z",
|
|
81
|
-
"status": "synced"
|
|
82
|
-
},
|
|
83
|
-
"claude-anim-base": {
|
|
84
|
-
"repo": "JohnHeibel/ClaudeAnimationBase",
|
|
85
|
-
"category": "animation",
|
|
86
|
-
"desc": "12fps hand-drawn cel boil, character emotions (Opus 5.5 patterns)",
|
|
87
|
-
"capabilities": [
|
|
88
|
-
"generate_scene_code",
|
|
89
|
-
"scaffold_animation_project"
|
|
90
|
-
],
|
|
91
|
-
"userImpact": "New ClaudeAnimationBase patterns for 12fps organic boil or character emotion scenes",
|
|
92
|
-
"sha": "0ac8bf2",
|
|
93
|
-
"lastChecked": "2026-11-11T19:56:18.012Z",
|
|
94
|
-
"status": "synced"
|
|
95
|
-
},
|
|
96
|
-
"claude-remotion": {
|
|
97
|
-
"repo": "haidrrrry/claude-remotion-skill",
|
|
98
|
-
"category": "motion",
|
|
99
|
-
"desc": "10 hard motion craft rules, review loop, Opus 5.5 closed-loop QA",
|
|
100
|
-
"capabilities": [
|
|
101
|
-
"scaffold_animation_project",
|
|
102
|
-
"render_animation",
|
|
103
|
-
"verify_scene_quality"
|
|
104
|
-
],
|
|
105
|
-
"userImpact": "Updated motion craft rules or QA patterns for the Opus 5.5 closed-loop correction pipeline",
|
|
106
|
-
"sha": "1dcbe5e",
|
|
107
|
-
"lastChecked": "2026-11-11T19:56:18.180Z",
|
|
108
|
-
"status": "synced"
|
|
109
|
-
},
|
|
110
|
-
"ffmpeg-skill": {
|
|
111
|
-
"repo": "kajisho5/ffmpeg-skill",
|
|
112
|
-
"category": "ffmpeg",
|
|
113
|
-
"desc": "42 typed-argparse FFmpeg tools, machine-readable contract, visual linter",
|
|
114
|
-
"capabilities": [
|
|
115
|
-
"edit_video",
|
|
116
|
-
"plan_video_edit",
|
|
117
|
-
"mix_audio_pro"
|
|
118
|
-
],
|
|
119
|
-
"userImpact": "New FFmpeg filter patterns or video editing operations available",
|
|
120
|
-
"sha": "532cbe3",
|
|
121
|
-
"lastChecked": "2026-11-11T19:56:18.351Z",
|
|
122
|
-
"status": "synced"
|
|
123
|
-
}
|
|
124
|
-
},
|
|
125
|
-
"version": "2.7.
|
|
126
|
-
"updatedCount": 2,
|
|
127
|
-
"pendingUpdates": [
|
|
128
|
-
{
|
|
129
|
-
"id": "hyperframes",
|
|
130
|
-
"repo": "heygen-com/hyperframes",
|
|
131
|
-
"sha": "a243169",
|
|
132
|
-
"category": "compositor",
|
|
133
|
-
"userImpact": "New compositor patterns or GSAP animation primitives available for HTML-rendered video"
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
"id": "remotion-skills",
|
|
137
|
-
"repo": "remotion-dev/skills",
|
|
138
|
-
"sha": "7e541aa",
|
|
139
|
-
"category": "motion",
|
|
140
|
-
"userImpact": "New Remotion motion patterns or spring physics presets available"
|
|
141
|
-
}
|
|
142
|
-
]
|
|
143
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"lastSync": "2026-11-11T19:56:18.351Z",
|
|
3
|
+
"repos": {
|
|
4
|
+
"hyperframes": {
|
|
5
|
+
"repo": "heygen-com/hyperframes",
|
|
6
|
+
"category": "compositor",
|
|
7
|
+
"desc": "Agent-native HTML/GSAP declarative video compositor",
|
|
8
|
+
"capabilities": [
|
|
9
|
+
"scaffold_animation_project",
|
|
10
|
+
"render_animation"
|
|
11
|
+
],
|
|
12
|
+
"userImpact": "New compositor patterns or GSAP animation primitives available for HTML-rendered video",
|
|
13
|
+
"sha": "a243169",
|
|
14
|
+
"lastChecked": "2026-11-11T19:56:16.487Z",
|
|
15
|
+
"status": "synced"
|
|
16
|
+
},
|
|
17
|
+
"opuscar": {
|
|
18
|
+
"repo": "lemomo-ai/lemo-opuscar",
|
|
19
|
+
"category": "styles",
|
|
20
|
+
"desc": "Frontier cinematic and viral film styles catalog (12 styles)",
|
|
21
|
+
"capabilities": [
|
|
22
|
+
"plan_video_edit",
|
|
23
|
+
"edit_video",
|
|
24
|
+
"render_from_scenes"
|
|
25
|
+
],
|
|
26
|
+
"userImpact": "New color grades or film styles available in plan_video_edit style parameter",
|
|
27
|
+
"sha": "9eb7739",
|
|
28
|
+
"lastChecked": "2026-11-11T19:56:16.692Z",
|
|
29
|
+
"status": "synced"
|
|
30
|
+
},
|
|
31
|
+
"onetake": {
|
|
32
|
+
"repo": "feitangyuan/onetake",
|
|
33
|
+
"category": "camera",
|
|
34
|
+
"desc": "Continuous single-shot camera choreography (zero-cut spline)",
|
|
35
|
+
"capabilities": [
|
|
36
|
+
"generate_scene_code",
|
|
37
|
+
"scaffold_animation_project"
|
|
38
|
+
],
|
|
39
|
+
"userImpact": "New onetake camera transition patterns available for code-driven animation",
|
|
40
|
+
"sha": "abb6d17",
|
|
41
|
+
"lastChecked": "2026-11-11T19:56:16.855Z",
|
|
42
|
+
"status": "synced"
|
|
43
|
+
},
|
|
44
|
+
"collage-broll": {
|
|
45
|
+
"repo": "pyang5166/gbro-collage-broll",
|
|
46
|
+
"category": "broll",
|
|
47
|
+
"desc": "Editorial paper collage, halftone textures, 2.5D tilt",
|
|
48
|
+
"capabilities": [
|
|
49
|
+
"generate_scene_code",
|
|
50
|
+
"create_video_from_script"
|
|
51
|
+
],
|
|
52
|
+
"userImpact": "New editorial collage / halftone visual templates available",
|
|
53
|
+
"sha": "a1a4ee2",
|
|
54
|
+
"lastChecked": "2026-11-11T19:56:17.057Z",
|
|
55
|
+
"status": "synced"
|
|
56
|
+
},
|
|
57
|
+
"remotion-skills": {
|
|
58
|
+
"repo": "remotion-dev/skills",
|
|
59
|
+
"category": "motion",
|
|
60
|
+
"desc": "First-party Remotion composition skills (spring physics)",
|
|
61
|
+
"capabilities": [
|
|
62
|
+
"scaffold_animation_project",
|
|
63
|
+
"render_animation"
|
|
64
|
+
],
|
|
65
|
+
"userImpact": "New Remotion motion patterns or spring physics presets available",
|
|
66
|
+
"sha": "7e541aa",
|
|
67
|
+
"lastChecked": "2026-11-11T19:56:17.403Z",
|
|
68
|
+
"status": "synced"
|
|
69
|
+
},
|
|
70
|
+
"earshot": {
|
|
71
|
+
"repo": "Leonxlnx/earshot",
|
|
72
|
+
"category": "audio",
|
|
73
|
+
"desc": "Procedural CPU SFX synthesis and timeline sync (13-type library)",
|
|
74
|
+
"capabilities": [
|
|
75
|
+
"mix_audio_pro",
|
|
76
|
+
"create_video_from_script"
|
|
77
|
+
],
|
|
78
|
+
"userImpact": "New procedural SFX cue types or audio sync patterns available in mix_audio_pro",
|
|
79
|
+
"sha": "4ac3d2a",
|
|
80
|
+
"lastChecked": "2026-11-11T19:56:17.839Z",
|
|
81
|
+
"status": "synced"
|
|
82
|
+
},
|
|
83
|
+
"claude-anim-base": {
|
|
84
|
+
"repo": "JohnHeibel/ClaudeAnimationBase",
|
|
85
|
+
"category": "animation",
|
|
86
|
+
"desc": "12fps hand-drawn cel boil, character emotions (Opus 5.5 patterns)",
|
|
87
|
+
"capabilities": [
|
|
88
|
+
"generate_scene_code",
|
|
89
|
+
"scaffold_animation_project"
|
|
90
|
+
],
|
|
91
|
+
"userImpact": "New ClaudeAnimationBase patterns for 12fps organic boil or character emotion scenes",
|
|
92
|
+
"sha": "0ac8bf2",
|
|
93
|
+
"lastChecked": "2026-11-11T19:56:18.012Z",
|
|
94
|
+
"status": "synced"
|
|
95
|
+
},
|
|
96
|
+
"claude-remotion": {
|
|
97
|
+
"repo": "haidrrrry/claude-remotion-skill",
|
|
98
|
+
"category": "motion",
|
|
99
|
+
"desc": "10 hard motion craft rules, review loop, Opus 5.5 closed-loop QA",
|
|
100
|
+
"capabilities": [
|
|
101
|
+
"scaffold_animation_project",
|
|
102
|
+
"render_animation",
|
|
103
|
+
"verify_scene_quality"
|
|
104
|
+
],
|
|
105
|
+
"userImpact": "Updated motion craft rules or QA patterns for the Opus 5.5 closed-loop correction pipeline",
|
|
106
|
+
"sha": "1dcbe5e",
|
|
107
|
+
"lastChecked": "2026-11-11T19:56:18.180Z",
|
|
108
|
+
"status": "synced"
|
|
109
|
+
},
|
|
110
|
+
"ffmpeg-skill": {
|
|
111
|
+
"repo": "kajisho5/ffmpeg-skill",
|
|
112
|
+
"category": "ffmpeg",
|
|
113
|
+
"desc": "42 typed-argparse FFmpeg tools, machine-readable contract, visual linter",
|
|
114
|
+
"capabilities": [
|
|
115
|
+
"edit_video",
|
|
116
|
+
"plan_video_edit",
|
|
117
|
+
"mix_audio_pro"
|
|
118
|
+
],
|
|
119
|
+
"userImpact": "New FFmpeg filter patterns or video editing operations available",
|
|
120
|
+
"sha": "532cbe3",
|
|
121
|
+
"lastChecked": "2026-11-11T19:56:18.351Z",
|
|
122
|
+
"status": "synced"
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
"version": "2.7.3",
|
|
126
|
+
"updatedCount": 2,
|
|
127
|
+
"pendingUpdates": [
|
|
128
|
+
{
|
|
129
|
+
"id": "hyperframes",
|
|
130
|
+
"repo": "heygen-com/hyperframes",
|
|
131
|
+
"sha": "a243169",
|
|
132
|
+
"category": "compositor",
|
|
133
|
+
"userImpact": "New compositor patterns or GSAP animation primitives available for HTML-rendered video"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"id": "remotion-skills",
|
|
137
|
+
"repo": "remotion-dev/skills",
|
|
138
|
+
"sha": "7e541aa",
|
|
139
|
+
"category": "motion",
|
|
140
|
+
"userImpact": "New Remotion motion patterns or spring physics presets available"
|
|
141
|
+
}
|
|
142
|
+
]
|
|
143
|
+
}
|
|
@@ -48,13 +48,25 @@ mix_audio_pro({
|
|
|
48
48
|
})
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
Or in `edit.js` for render-time visual sync (engine.js `cue()`
|
|
51
|
+
Or in `edit.js` for render-time visual sync (engine.js `cue()` and `event()` functions):
|
|
52
52
|
```javascript
|
|
53
|
-
import { cue } from './reel/engine.js';
|
|
54
|
-
|
|
53
|
+
import { cue, event, ROOM_SFX } from './reel/engine.js';
|
|
54
|
+
|
|
55
|
+
// cue() — registers in window.__cues (legacy, render.mjs live preview)
|
|
56
|
+
cue('whoosh', 2.5, 0.8);
|
|
55
57
|
cue('impact', 8.0, 1.0);
|
|
56
58
|
cue('riser', 18.0, 0.7);
|
|
57
59
|
cue('deep_boom',30.0, 0.9);
|
|
60
|
+
|
|
61
|
+
// event() — registers in window.__events() and is written to out/sfx-events.json
|
|
62
|
+
// by render.mjs after probe. mix_audio_pro.py reads it automatically.
|
|
63
|
+
event('sfx', 2.5, { sfxName: 'whoosh', vol: 0.8 });
|
|
64
|
+
event('sfx', 8.0, { sfxName: 'impact', vol: 1.0 });
|
|
65
|
+
event('sfx', 30.0, { material: 'sub', vol: 0.9 }); // OneTake ROOM_SFX → deep_boom
|
|
66
|
+
|
|
67
|
+
// Then: render.mjs writes out/sfx-events.json
|
|
68
|
+
// mix_audio_pro.py reads it automatically (no --sfx flags needed):
|
|
69
|
+
// uv run scripts/mix_audio_pro.py --music assets/bg.mp3 --platform youtube --room broadcast
|
|
58
70
|
```
|
|
59
71
|
|
|
60
72
|
---
|