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):
# Install if needed
npm install -g @anthropic-ai/agent-browser
# Open and screenshot for review
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.
1---2name: creative-review3description: 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'.4---56# Creative Review — Style Adherence & Feedback Loop78Validate generated creative assets against a reference style brief. Score adherence, produce actionable feedback, and feed improvements back into the generation pipeline.910## Compounding Skills1112| Skill | Role |13|-------|------|14| `/agent-browser` | Watch generated videos, take screenshots, visual comparison |15| `/launch-video` | Style brief and quality checklist to validate against |16| `/content-creation` | Reference extraction, visual analysis with Gemini |17| `/blog-post` | Distribution quality gates |1819## Review Pipeline2021```22REFERENCE → EXTRACT BRIEF → GENERATE ASSET → REVIEW → SCORE → FEEDBACK → ITERATE23```2425## Phase 1: Reference Extraction2627When given a reference video or image:28291. **Download** the reference (`yt-dlp` for URLs, direct path for local files)302. **Extract frames** at 1fps: `ffmpeg -i ref.mp4 -vf "fps=1" frames/frame_%03d.png`313. **Analyze** each frame for:32 - Color palette (dominant colors, background, accent)33 - Typography (font style, size, placement, weight)34 - Composition (layout, perspective, depth)35 - Motion style (cuts, transitions, pacing)36 - Material treatment (glass, shadow, glow, reflection)374. **Produce a style brief** — structured document capturing all visual attributes3839### Style Brief Format4041```markdown42## Style Brief: {Reference Name}4344### Palette45- Background: {hex}46- Panel fill: {rgba}47- Text primary: {hex}48- Accent: {hex}4950### Typography51- Font: {family}52- Weight: {bold/regular}53- Placement: {center/left/overlay}54- Max words per card: {N}5556### Composition57- Panel perspective: {degrees}58- Panel material: {glass/solid/wireframe}59- Depth technique: {shadow/glow/parallax}60- Background treatment: {void/gradient/particles}6162### Motion63- Entrance style: {spring/fade/slide}64- Scene duration: {N-N seconds}65- Transition type: {cut/crossfade/spring}66- Pacing: {fast/confident/slow}6768### Audio69- Style: {ambient/narration/music}70- Sync points: {beat drops/scene changes}71```7273## Phase 2: Asset Review7475When given a generated asset to review:7677### Video Review Process78791. **Extract frames** at 1fps from the generated video802. **Compare frame-by-frame** against the style brief criteria813. **Score each dimension** (0-10):8283| Dimension | What to Check | Weight |84|-----------|---------------|--------|85| **Color adherence** | Does the palette match the brief? Dark void bg? Accent colors? | 15% |86| **Typography** | Font style, size, placement, word count per card | 10% |87| **3D perspective** | Are panels tilted? Proper perspective depth? | 15% |88| **Glass material** | Border glow, shadow, rounded corners, semi-transparency | 15% |89| **Motion quality** | Spring animations? Organic movement? No CSS transitions? | 15% |90| **Pacing** | Scene duration 3-5s? No rapid cuts? Confident rhythm? | 10% |91| **Particle/depth** | Background particles? Depth layering? | 5% |92| **Hook effectiveness** | Does the first 3s grab attention? | 10% |93| **Overall polish** | Does it feel professional? Would you stop scrolling? | 5% |94954. **Overall score**: Weighted average (0-100)9697### Scoring Bands9899| Score | Rating | Action |100|-------|--------|--------|101| 90-100 | Excellent | Ship it |102| 75-89 | Good | Minor tweaks, optional iteration |103| 50-74 | Needs work | Specific feedback, iterate before shipping |104| 0-49 | Redo | Major issues, regenerate with updated prompts |105106## Phase 3: Feedback Generation107108For each dimension scoring below 8/10, generate specific, actionable feedback:109110### Feedback Format111112```markdown113## Creative Review: {Asset Name}114115**Overall Score**: {N}/100 ({Rating})116**Reference**: {Brief Name}117118### Scores119| Dimension | Score | Notes |120|-----------|-------|-------|121| Color adherence | {N}/10 | {specific note} |122| Typography | {N}/10 | {specific note} |123| ... | ... | ... |124125### Must Fix (score < 6)1261. {Specific issue} → {Specific fix with code/prompt change}1272. ...128129### Should Fix (score 6-7)1301. {Issue} → {Fix}131132### Nice to Have (score 8-9)1331. {Polish suggestion}134135### What Worked Well136- {Positive observation}137- {Pattern to keep}138```139140## Phase 4: Self-Evolution141142### After Each Review Cycle1431441. **If the fix worked** → Add the technique to the style brief as a confirmed pattern1452. **If the fix didn't work** → Document why and what was tried, update guidance1463. **If a new technique emerged** → Capture it and add to the relevant skill's references147148### Style Brief Evolution149150The style brief is a living document. After each review cycle:151152```153Initial brief (from reference extraction)154 → Review #1 feedback applied155 → Review #2: new patterns discovered156 → Brief updated with confirmed patterns157 → Next generation starts from improved brief158```159160### Cross-Skill Feedback161162When review findings affect other skills, propagate:163164| Finding | Update Target |165|---------|--------------|166| "Veo prompts produce static shots" | `/launch-video` Veo prompt patterns |167| "Subtitles are unreadable on mobile" | `/blog-post` reel-production.md |168| "Hook doesn't grab in 3 seconds" | `/blog-post` reel-production.md hook formulas |169| "Glass panels look flat" | `/launch-video` GlassPanel component |170| "Pacing too fast" | `/launch-video` scene duration guidance |171172## Agent Behavior173174### On Review Invocation1751761. **Identify the asset** — video file path, URL, or generated content package1772. **Identify the reference** — style brief, reference URL, or skill defaults (e.g., `/launch-video` checklist)1783. **Extract frames** from both (if video)1794. **Score each dimension** against the brief1805. **Generate feedback** with specific fixes1816. **Report** — overall score, must-fix items, what worked182183### Using /agent-browser for Video Review184185When the asset is a deployed video (hosted URL):186187```bash188# Install if needed189npm install -g @anthropic-ai/agent-browser190191# Open and screenshot for review192agent-browser open "https://broomva.tech/images/writing/slug/reel.mp4"193agent-browser screenshot --output review-frame.png194```195196For local files, use `ffmpeg` frame extraction instead.197198### Quick Review Command199200```201/creative-review /path/to/video.mp4 --against launch-video202```203204This automatically:2051. Extracts frames from the video2062. Loads the `/launch-video` quality checklist2073. Scores each dimension2084. Reports findings with specific fixes209210## Quality Gate Integration211212The creative review can be wired as a **gate** in the `/blog-post` pipeline:213214```215Phase 6 (Media) → Generate video216 → /creative-review scores the output217 → Score ≥ 75? → Proceed to Phase 7218 → Score < 75? → Iterate with feedback → Re-generate → Re-review219```220221This creates an automatic quality loop — no substandard creative ships.