Skip to content

Add framecraft demo video generator plugin#506

Merged
jeremylongshore merged 4 commits intojeremylongshore:mainfrom
vaddisrinivas:add-framecraft
Apr 7, 2026
Merged

Add framecraft demo video generator plugin#506
jeremylongshore merged 4 commits intojeremylongshore:mainfrom
vaddisrinivas:add-framecraft

Conversation

@vaddisrinivas
Copy link
Copy Markdown
Contributor

Adds the framecraft plugin to plugins/community/.

What it does: Generate polished demo videos from a single prompt. Orchestrates Playwright, FFmpeg, and Edge TTS MCP servers to produce 1920x1080 videos with voiceover, transitions, and CSS animations.

Source repo: https://github.com/vaddisrinivas/framecraft

Includes:

  • plugin.json with required metadata fields
  • skills/demo-video/SKILL.md with 2026 schema frontmatter
  • README.md
  • Marketplace JSON entries in both marketplace.json and marketplace.extended.json

Install: claude plugin install framecraft or npx skills add vaddisrinivas/framecraft

MIT licensed.

@qodo-code-review
Copy link
Copy Markdown

Review Summary by Qodo

Add framecraft demo video generator plugin

✨ Enhancement

Grey Divider

Walkthroughs

Description
• Adds framecraft plugin for generating polished demo videos
• Includes plugin metadata, skill definition, and documentation
• Registers plugin in both marketplace.json and marketplace.extended.json
• Supports Playwright, FFmpeg, and Edge TTS MCP server orchestration
Diagram
flowchart LR
  A["framecraft Plugin"] --> B["plugin.json"]
  A --> C["SKILL.md"]
  A --> D["README.md"]
  B --> E["marketplace.json"]
  B --> F["marketplace.extended.json"]
  C --> G["Demo Video Generation"]
  G --> H["Playwright + FFmpeg + Edge TTS"]
Loading

Grey Divider

File Changes

1. plugins/community/framecraft/.claude-plugin/plugin.json ⚙️ Configuration changes +20/-0

Plugin metadata configuration file

• Creates plugin metadata file with name, version, and description
• Specifies author vaddisrinivas and MIT license
• Includes keywords for demo-video, video-generation, and MCP tools
• References source repository on GitHub

plugins/community/framecraft/.claude-plugin/plugin.json


2. plugins/community/framecraft/README.md 📝 Documentation +31/-0

Plugin documentation and installation guide

• Provides overview of framecraft capabilities and features
• Documents installation methods via claude plugin and npx
• Lists system requirements including Python 3.11+, FFmpeg, Playwright
• Includes links to source repository and license information

plugins/community/framecraft/README.md


3. plugins/community/framecraft/skills/demo-video/SKILL.md 📝 Documentation +72/-0

Skill definition with usage documentation

• Defines demo-video skill with 2026 schema frontmatter
• Documents prerequisites, installation, and workflow steps
• Explains MCP orchestration and CLI pipeline fallback mechanisms
• Provides quick start commands and output specifications

plugins/community/framecraft/skills/demo-video/SKILL.md


View more (2)
4. .claude-plugin/marketplace.json ⚙️ Configuration changes +19/-0

Marketplace registry entry

• Adds framecraft entry to marketplace registry
• Includes plugin metadata, version 1.0.0, and community category
• Specifies keywords and author information
• Provides source path and description for discovery

.claude-plugin/marketplace.json


5. .claude-plugin/marketplace.extended.json ⚙️ Configuration changes +23/-0

Extended marketplace registry entry

• Adds framecraft entry with extended marketplace metadata
• Includes component information showing 1 skill
• Specifies featured status and pricing information
• Contains full keyword set and author details

.claude-plugin/marketplace.extended.json


Grey Divider

Qodo Logo

@qodo-code-review
Copy link
Copy Markdown

qodo-code-review bot commented Apr 3, 2026

Code Review by Qodo

🐞 Bugs (1) 📘 Rule violations (0) 📎 Requirement gaps (0) 🎨 UX Issues (0)

Grey Divider


Action required

1. Direct edit marketplace.json📘 Rule violation ⚙ Maintainability
Description
This PR directly modifies .claude-plugin/marketplace.json, which is a listed auto-generated
marketplace artifact and should not be edited directly. This can cause drift from the generator
output and lead to CI failures.
Code

.claude-plugin/marketplace.json[R8007-8025]

+    },
+    {
+      "name": "framecraft",
+      "source": "./plugins/community/framecraft",
+      "description": "Generate polished demo videos from a single prompt. Orchestrates Playwright, FFmpeg, and Edge TTS MCP servers to produce 1920x1080 videos with voiceover, transitions, and CSS animations.",
+      "version": "1.0.0",
+      "category": "community",
+      "keywords": [
+        "demo-video",
+        "video-generation",
+        "playwright",
+        "ffmpeg",
+        "edge-tts",
+        "mcp"
+      ],
+      "author": {
+        "name": "vaddisrinivas",
+        "url": "https://github.com/vaddisrinivas"
+      }
Evidence
PR Compliance ID 2 forbids direct modifications to generated marketplace files, explicitly including
.claude-plugin/marketplace.json; the diff shows new plugin entries added to that generated file.

CLAUDE.md
.claude-plugin/marketplace.json[8007-8025]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The PR directly edits `.claude-plugin/marketplace.json`, which is a generated artifact and must not be hand-modified.
## Issue Context
Only the source-of-truth file should be edited, and generated marketplace artifacts should be updated via the documented generator scripts to avoid drift/CI failures.
## Fix Focus Areas
- .claude-plugin/marketplace.json[8007-8025]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Invalid allowed-tools values📘 Rule violation ≡ Correctness
Description
The allowed-tools frontmatter includes non-allowed tool identifiers like Bash(uv:*),
Bash(ffmpeg:*), and Bash(python:*), which are not in the permitted tool list. This will fail
skill schema validation and can break tooling that relies on the allowed tool set.
Code

plugins/community/framecraft/skills/demo-video/SKILL.md[8]

+allowed-tools: Read, Write, Edit, Bash(uv:*), Bash(ffmpeg:*), Bash(python:*), Glob
Evidence
PR Compliance ID 6 restricts allowed-tools values to a fixed set (including Bash but not
parameterized variants); the added SKILL frontmatter uses parameterized Bash(...) entries,
violating the allowed set requirement.

CLAUDE.md
plugins/community/framecraft/skills/demo-video/SKILL.md[8-8]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`allowed-tools` contains invalid tool identifiers (e.g., `Bash(uv:*)`) that are not part of the approved allowed-tools set.
## Issue Context
The compliance checklist allows only these tool names in `allowed-tools`: `Read`, `Write`, `Edit`, `Bash`, `Glob`, `Grep`, `WebFetch`, `WebSearch`, `Task`, `TodoWrite`, `NotebookEdit`, `AskUserQuestion`, `Skill`.
## Fix Focus Areas
- plugins/community/framecraft/skills/demo-video/SKILL.md[8-8]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


3. Skill missing required sections🐞 Bug ☼ Reliability
Description
plugins/community/framecraft/skills/demo-video/SKILL.md is missing enterprise-required headings
(e.g., "## Instructions", "## Error Handling", "## Examples", "## Resources"), which will fail
validation in CI because the validator auto-selects the enterprise tier and treats missing required
sections as errors.
Code

plugins/community/framecraft/skills/demo-video/SKILL.md[R15-72]

+# Demo Video Generator
+
+## Overview
+
+Generate 1920x1080 demo videos with voiceover, transitions, and CSS animations from a single prompt. Orchestrates Playwright (HTML-to-frame rendering), FFmpeg (compositing and transitions), and Edge TTS (neural voiceover) MCP servers.
+
+## Prerequisites
+
+- Python 3.11+ and `uv` package manager
+- FFmpeg installed (`ffmpeg -version`)
+- Playwright chromium browser (`uv run playwright install chromium`)
+- Internet connection for Edge TTS voice synthesis
+
+## Installation
+
+Install the full framecraft plugin for complete MCP integration:
+
+```bash
+claude plugin install framecraft
+```
+
+Or install directly from GitHub:
+
+```bash
+npx skills add vaddisrinivas/framecraft
+```
+
+## How It Works
+
+1. **Story design** -- Choose a narrative arc (problem-solution, hero journey, before-after)
+2. **Scene authoring** -- Write HTML scenes with CSS animations, or use built-in templates
+3. **Rendering** -- Playwright captures frames, Edge TTS generates voiceover, FFmpeg composites
+
+### Quick Start
+
+```bash
+uv run python framecraft.py init my-demo        # scaffold a project
+uv run python framecraft.py render scenes.json --auto-duration
+uv run python framecraft.py validate output.mp4  # quality check
+```
+
+### MCP Orchestration
+
+When Playwright, FFmpeg, and Edge TTS MCP servers are available, framecraft orchestrates them directly for maximum control over each frame and audio segment.
+
+### Pipeline Fallback
+
+When MCP servers are not available, framecraft runs an atomic CLI pipeline that handles everything in one call.
+
+## Output
+
+- 1920x1080 MP4 video with voiceover and transitions
+- Individual scene previews for iteration
+- Validation report for quality assurance
+
+## Repository
+
+Full source, templates, and examples: [github.com/vaddisrinivas/framecraft](https://github.com/vaddisrinivas/framecraft)
Evidence
In CI, the skills validator auto-selects the enterprise tier and enforces presence of the
RECOMMENDED_SECTIONS as errors; the added SKILL.md includes Overview/Prerequisites/Output but does
not include several required sections (Instructions, Error Handling, Examples, Resources).

scripts/validate-skills-schema.py[3020-3032]
scripts/validate-skills-schema.py[1486-1494]
plugins/community/framecraft/skills/demo-video/SKILL.md[15-72]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`plugins/community/framecraft/skills/demo-video/SKILL.md` fails enterprise-tier validation in CI because it is missing required body sections (enterprise tier treats missing sections as errors).
## Issue Context
The repository's skill validator auto-selects the enterprise tier in CI and requires specific headings to exist (H1 plus several `## ...` sections). The new skill currently has `## Installation`, `## How It Works`, and `## Repository`, but is missing `## Instructions`, `## Error Handling`, `## Examples`, and `## Resources`.
## Fix Focus Areas
- plugins/community/framecraft/skills/demo-video/SKILL.md[15-72]
- scripts/validate-skills-schema.py[1486-1494]
- scripts/validate-skills-schema.py[3020-3032]
## Suggested fix
1. Add the missing headings exactly as required by the validator:
- `## Instructions` (convert/merge content from Installation/How It Works into step-by-step instructions)
- `## Error Handling` (common failure modes: missing ffmpeg, playwright install issues, MCP server not running)
- `## Examples` (at least one concrete example invocation)
- `## Resources` (move the repository link here; include any docs links)
2. Keep the existing content but reorganize it under the required headings so the validator sees the exact section titles.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


View more (1)
4. Plugin LICENSE file missing 🐞 Bug ☼ Reliability
Description
The new plugin at plugins/community/framecraft is missing a root LICENSE file, but the repository
plugin validator requires LICENSE for every plugin and will fail validation.
Code

plugins/community/framecraft/.claude-plugin/plugin.json[R1-20]

+{
+  "name": "framecraft",
+  "version": "1.0.0",
+  "description": "Generate polished demo videos from a single prompt. Orchestrates Playwright, FFmpeg, and Edge TTS MCP servers to produce 1920x1080 videos with voiceover, transitions, and CSS animations.",
+  "author": {
+    "name": "vaddisrinivas",
+    "url": "https://github.com/vaddisrinivas"
+  },
+  "repository": "https://github.com/vaddisrinivas/framecraft",
+  "license": "MIT",
+  "keywords": [
+    "demo-video",
+    "video-generation",
+    "playwright",
+    "ffmpeg",
+    "edge-tts",
+    "mcp",
+    "agent-skills"
+  ]
+}
Evidence
The plugin validator explicitly checks for LICENSE as a required file. The new plugin manifest
declares an MIT license, but the PR adds no LICENSE file under the plugin root, so validation will
fail.

scripts/validate-plugin.js[509-514]
plugins/community/framecraft/.claude-plugin/plugin.json[1-20]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The new plugin `plugins/community/framecraft` is missing a `LICENSE` file, which is required by the repo's plugin validator.
## Issue Context
The validator checks for `README.md`, `LICENSE`, and `.claude-plugin/plugin.json` in every plugin directory.
## Fix Focus Areas
- scripts/validate-plugin.js[509-514]
- plugins/community/framecraft/.claude-plugin/plugin.json[1-20]
## Suggested fix
1. Add `plugins/community/framecraft/LICENSE` containing the MIT License text.
2. Ensure the copyright line is set appropriately (year + author/organization).
3. (Optional) Add a short "License" section in `plugins/community/framecraft/README.md` pointing to the local `LICENSE` file, not only an external link.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

5. Install docs omit marketplace slug🐞 Bug ⚙ Maintainability
Description
framecraft docs instruct claude plugin install framecraft (no marketplace slug), while other
marketplace plugins include @claude-code-plugins-plus; omitting the slug can cause installs to
fail or resolve the wrong source if the marketplace/slug isn’t already configured as expected.
Code

plugins/community/framecraft/README.md[R11-21]

+## Installation
+
+```bash
+claude plugin install framecraft
+```
+
+Or:
+
+```bash
+npx skills add vaddisrinivas/framecraft
+```
Evidence
Repository documentation and other plugins show install flows that include adding the marketplace
and using @claude-code-plugins-plus during install. framecraft’s README/SKILL omit the slug,
making the instructions inconsistent and potentially non-functional in a fresh environment.

plugins/community/framecraft/README.md[11-21]
plugins/community/framecraft/skills/demo-video/SKILL.md[28-40]
README.md[48-52]
plugins/packages/ai-ml-engineering-pack/README.md[39-48]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`plugins/community/framecraft/README.md` and the skill file instruct installation without a marketplace slug, which is inconsistent with the repo’s documented install flow and other plugin docs.
## Issue Context
Other plugins show:
- add marketplace: `claude plugin marketplace add jeremylongshore/claude-code-plugins`
- install with slug: `claude plugin install <name>@claude-code-plugins-plus`
## Fix Focus Areas
- plugins/community/framecraft/README.md[11-21]
- plugins/community/framecraft/skills/demo-video/SKILL.md[28-40]
- README.md[48-52]
- plugins/packages/ai-ml-engineering-pack/README.md[39-48]
## Suggested fix
1. Change the README and SKILL installation snippets to include the marketplace add step (if appropriate) and install using `framecraft@claude-code-plugins-plus`.
2. Optionally include the `/plugin install framecraft@claude-code-plugins-plus` form as well, since the root README documents that flow.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

ⓘ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

Comment on lines +1 to +20
{
"name": "framecraft",
"version": "1.0.0",
"description": "Generate polished demo videos from a single prompt. Orchestrates Playwright, FFmpeg, and Edge TTS MCP servers to produce 1920x1080 videos with voiceover, transitions, and CSS animations.",
"author": {
"name": "vaddisrinivas",
"url": "https://github.com/vaddisrinivas"
},
"repository": "https://github.com/vaddisrinivas/framecraft",
"license": "MIT",
"keywords": [
"demo-video",
"video-generation",
"playwright",
"ffmpeg",
"edge-tts",
"mcp",
"agent-skills"
]
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

4. Plugin license file missing 🐞 Bug ☼ Reliability

The new plugin at plugins/community/framecraft is missing a root LICENSE file, but the repository
plugin validator requires LICENSE for every plugin and will fail validation.
Agent Prompt
## Issue description
The new plugin `plugins/community/framecraft` is missing a `LICENSE` file, which is required by the repo's plugin validator.

## Issue Context
The validator checks for `README.md`, `LICENSE`, and `.claude-plugin/plugin.json` in every plugin directory.

## Fix Focus Areas
- scripts/validate-plugin.js[509-514]
- plugins/community/framecraft/.claude-plugin/plugin.json[1-20]

## Suggested fix
1. Add `plugins/community/framecraft/LICENSE` containing the MIT License text.
2. Ensure the copyright line is set appropriately (year + author/organization).
3. (Optional) Add a short "License" section in `plugins/community/framecraft/README.md` pointing to the local `LICENSE` file, not only an external link.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

@vaddisrinivas
Copy link
Copy Markdown
Contributor Author

All issues from the initial review have been addressed in commit 59fe66f:

  • Reverted marketplace.json (no longer directly edited)
  • Fixed allowed-tools to valid values: Read, Write, Edit, Bash, Glob
  • Added all required sections: Overview, Prerequisites, Instructions, Output, Error Handling, Examples, Resources
  • Added LICENSE (MIT) file

Copy link
Copy Markdown
Owner

@jeremylongshore jeremylongshore left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Framecraft Review

Good submission — structurally clean, skill content is substantive. Three items to fix:

Must Fix

  1. Update PR description — Remove the claim about editing marketplace.json. That file is auto-generated. Confirm pnpm run sync-marketplace was run after editing marketplace.extended.json.

  2. Unscoped Bash in allowed-tools — Currently Bash with no restriction. Since the skill runs uv, ffmpeg, and playwright, document in the README why broad shell access is needed. Ideally scope to Bash(uv:*), Bash(ffmpeg:*) if the validator accepts it.

  3. README install instructions — Currently shows claude plugin install framecraft but the correct pattern is:

    claude plugin marketplace add jeremylongshore/claude-code-plugins
    

    Then ccpi install framecraft or via the marketplace. Match the repo's canonical install pattern.

Nice to Have

  1. Author format in SKILL.md — vaddisrinivas <url> is unconventional. Standard is Name <email>.
  2. Document Edge TTS network dependency and fallback behavior.

Everything else passes: plugin.json fields are clean, LICENSE present, SKILL.md has all required frontmatter, content is substantive with good error handling table and examples.

vaddisrinivas and others added 4 commits April 6, 2026 08:17
- Revert hand-edited marketplace.json (auto-generated, kept extended.json)
- Fix allowed-tools: use valid tool names (Bash not Bash(uv:*))
- Add required sections: Instructions, Error Handling, Examples, Resources
- Add MIT LICENSE file to plugin directory
- Fix install docs to use marketplace slug (@claude-code-plugins-plus)
- Use full edge-tts voice names (en-US-AndrewNeural)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
**Must-fix items:**
- Update author format to standard 'Name <email>' in plugin.json and SKILL.md
- Fix README install instructions (correct repo path: jeremylongshore/claude-code-plugins)
- Add Permissions section documenting why scoped Bash access is needed

**Network dependency:**
- Document Edge TTS requires internet connectivity (no offline fallback)

**Details:**
- Author now: 'Srinivas Vaddisrinivas <vaddisrinivas@gmail.com>'
- Install path: 'claude plugin marketplace add jeremylongshore/claude-code-plugins'
- Permissions: Bash scopes documented (uv, ffmpeg, python)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
@jeremylongshore jeremylongshore merged commit 04ad593 into jeremylongshore:main Apr 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants