| name | creative-review |
| description | Meta-review skill for validating generated creative assets (videos, images, designs) against a reference style brief. Extracts frames, compares against style criteria, scores adherence, and produces actionable feedback for iteration. Self-improving feedback loop: each review refines the style brief for the next generation. Use when: (1) reviewing a generated video against a reference style, (2) validating visual quality of AI-generated content, (3) scoring style adherence of a Remotion composition, (4) comparing before/after creative iterations, (5) building a self-improving creative pipeline. Triggers on: 'review video', 'check style', 'creative review', 'style adherence', 'compare to reference', 'validate video', 'review reel', 'quality check'. |
Creative Review — Style Adherence & Feedback Loop
Validate generated creative assets against a reference style brief. Score adherence, produce actionable feedback, and feed improvements back into the generation pipeline.
Compounding Skills
| Skill | Role |
|---|
/agent-browser | Watch generated videos, take screenshots, visual comparison |
/launch-video | Style brief and quality checklist to validate against |
/content-creation | Reference extraction, visual analysis with Gemini |
/blog-post | Distribution quality gates |
Review Pipeline
REFERENCE → EXTRACT BRIEF → GENERATE ASSET → REVIEW → SCORE → FEEDBACK → ITERATE
Phase 1: Reference Extraction
When given a reference video or image:
- Download the reference (
yt-dlp for URLs, direct path for local files)
- Extract frames at 1fps:
ffmpeg -i ref.mp4 -vf "fps=1" frames/frame_%03d.png
- Analyze each frame for:
- Color palette (dominant colors, background, accent)
- Typography (font style, size, placement, weight)
- Composition (layout, perspective, depth)
- Motion style (cuts, transitions, pacing)
- Material treatment (glass, shadow, glow, reflection)
- Produce a style brief — structured document capturing all visual attributes
Style Brief Format
## Style Brief: {Reference Name}
### Palette
- Background: {hex}
- Panel fill: {rgba}
- Text primary: {hex}
- Accent: {hex}
### Typography
- Font: {family}
- Weight: {bold/regular}
- Placement: {center/left/overlay}
- Max words per card: {N}
### Composition
- Panel perspective: {degrees}
- Panel material: {glass/solid/wireframe}
- Depth technique: {shadow/glow/parallax}
- Background treatment: {void/gradient/particles}
### Motion
- Entrance style: {spring/fade/slide}
- Scene duration: {N-N seconds}
- Transition type: {cut/crossfade/spring}
- Pacing: {fast/confident/slow}
### Audio
- Style: {ambient/narration/music}
- Sync points: {beat drops/scene changes}
Phase 2: Asset Review
When given a generated asset to review:
Video Review Process
- Extract frames at 1fps from the generated video
- Compare frame-by-frame against the style brief criteria
- Score each dimension (0-10):
| Dimension | What to Check | Weight |
|---|
| Color adherence | Does the palette match the brief? Dark void bg? Accent colors? | 15% |
| Typography | Font style, size, placement, word count per card | 10% |
| 3D perspective | Are panels tilted? Proper perspective depth? | 15% |
| Glass material | Border glow, shadow, rounded corners, semi-transparency | 15% |
| Motion quality | Spring animations? Organic movement? No CSS transitions? | 15% |
| Pacing | Scene duration 3-5s? No rapid cuts? Confident rhythm? | 10% |
| Particle/depth | Background particles? Depth layering? | 5% |
| Hook effectiveness | Does the first 3s grab attention? | 10% |
| Overall polish | Does it feel professional? Would you stop scrolling? | 5% |
- Overall score: Weighted average (0-100)
Scoring Bands
| Score | Rating | Action |
|---|
| 90-100 | Excellent | Ship it |
| 75-89 | Good | Minor tweaks, optional iteration |
| 50-74 | Needs work | Specific feedback, iterate before shipping |
| 0-49 | Redo | Major issues, regenerate with updated prompts |
Phase 3: Feedback Generation
For each dimension scoring below 8/10, generate specific, actionable feedback:
Feedback Format
## Creative Review: {Asset Name}
**Overall Score**: {N}/100 ({Rating})
**Reference**: {Brief Name}
### Scores
| Dimension | Score | Notes |
|-----------|-------|-------|
| Color adherence | {N}/10 | {specific note} |
| Typography | {N}/10 | {specific note} |
| ... | ... | ... |
### Must Fix (score < 6)
1. {Specific issue} → {Specific fix with code/prompt change}
2. ...
### Should Fix (score 6-7)
1. {Issue} → {Fix}
### Nice to Have (score 8-9)
1. {Polish suggestion}
### What Worked Well
- {Positive observation}
- {Pattern to keep}
Phase 4: Self-Evolution
After Each Review Cycle
- If the fix worked → Add the technique to the style brief as a confirmed pattern
- If the fix didn't work → Document why and what was tried, update guidance
- If a new technique emerged → Capture it and add to the relevant skill's references
Style Brief Evolution
The style brief is a living document. After each review cycle:
Initial brief (from reference extraction)
→ Review #1 feedback applied
→ Review #2: new patterns discovered
→ Brief updated with confirmed patterns
→ Next generation starts from improved brief
Cross-Skill Feedback
When review findings affect other skills, propagate:
| Finding | Update Target |
|---|
| "Veo prompts produce static shots" | /launch-video Veo prompt patterns |
| "Subtitles are unreadable on mobile" | /blog-post reel-production.md |
| "Hook doesn't grab in 3 seconds" | /blog-post reel-production.md hook formulas |
| "Glass panels look flat" | /launch-video GlassPanel component |
| "Pacing too fast" | /launch-video scene duration guidance |
Agent Behavior
On Review Invocation
- Identify the asset — video file path, URL, or generated content package
- Identify the reference — style brief, reference URL, or skill defaults (e.g.,
/launch-video checklist)
- Extract frames from both (if video)
- Score each dimension against the brief
- Generate feedback with specific fixes
- Report — overall score, must-fix items, what worked
Using /agent-browser for Video Review
When the asset is a deployed video (hosted URL):
npm install -g @anthropic-ai/agent-browser
agent-browser open "https://broomva.tech/images/writing/slug/reel.mp4"
agent-browser screenshot --output review-frame.png
For local files, use ffmpeg frame extraction instead.
Quick Review Command
/creative-review /path/to/video.mp4 --against launch-video
This automatically:
- Extracts frames from the video
- Loads the
/launch-video quality checklist
- Scores each dimension
- Reports findings with specific fixes
Quality Gate Integration
The creative review can be wired as a gate in the /blog-post pipeline:
Phase 6 (Media) → Generate video
→ /creative-review scores the output
→ Score ≥ 75? → Proceed to Phase 7
→ Score < 75? → Iterate with feedback → Re-generate → Re-review
This creates an automatic quality loop — no substandard creative ships.