@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
|
@@ -156,7 +156,8 @@ Never capture audio from the browser. Audio is a separate pass:
|
|
|
156
156
|
1. TTS generates audio → word-level timestamps from `scripts/transcribe.py`
|
|
157
157
|
2. Scene resolves animation anchors from those timestamps via `cuePhrase()`
|
|
158
158
|
3. `node scripts/render.mjs full` renders video frames (silent)
|
|
159
|
-
4. `uv run scripts/
|
|
159
|
+
4. `uv run scripts/mix_audio_pro.py --sfx-events --room broadcast --platform youtube` builds the final audio track
|
|
160
|
+
(reads out/sfx-events.json from window.__events() automatically; use `mix_audio.py` for the simple chain)
|
|
160
161
|
5. `node scripts/render.mjs mux` merges with `-c:v copy` (video stream untouched)
|
|
161
162
|
|
|
162
163
|
`cuePhrase(phrase)` **throws a fatal build error** if the phrase cannot be found
|
|
@@ -34,10 +34,14 @@ Use the right effort level at each stage — wrong effort wastes cost or quality
|
|
|
34
34
|
7. Run render.mjs sheet (one sheet per shot)
|
|
35
35
|
8. Review sheets, request patches from the responsible subagent
|
|
36
36
|
9. Run render.mjs full (full encode, all workers)
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
→ After full render, out/sfx-events.json is auto-generated from window.__events()
|
|
38
|
+
10. Run mix_audio_pro.py (professional signal chain):
|
|
39
|
+
uv run scripts/mix_audio_pro.py --room broadcast --platform youtube
|
|
40
|
+
(--sfx-events flag reads out/sfx-events.json automatically if present)
|
|
41
|
+
11. Run verify.py (7-gate QC)
|
|
42
|
+
12. If QC fails: identify the responsible chapter, re-assign to a fresh subagent
|
|
43
|
+
13. Mux audio: render.mjs mux --audio=out/audio_mix_pro.m4a
|
|
44
|
+
14. Final verify.py pass
|
|
41
45
|
```
|
|
42
46
|
|
|
43
47
|
## Subagent rules
|