/compose-creative
Core creative engine. Generates images and video using 4 modes with brand assets, AI compositing, and platform resizing.
$ npx -y skills add indranilbanerjee/socialforge --skill compose-creative --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/compose-creative
Context preview
The summary Claude sees to decide when to auto-load this skill.
Core creative engine. Generates images and video using 4 modes with brand assets, AI compositing, and platform resizing.
SKILL.md
compose-creative.SKILL.mdname: compose-creative
description: Core creative engine. Generates images and video using 4 modes with brand assets, AI compositing, and platform resizing.
argument-hint: "[--post <id>] [--all] [--variant b]"
effort: max
user-invocable: true
/socialforge:compose-creative — Creative Production Engine
The core production skill. Takes asset matching results and produces visual and video assets for each post according to its assigned creative mode, using a staged human-in-the-loop approval flow.
Context efficiency
Asset-heavy skill. **Grep before Read** the asset catalog (`${CLAUDE_PLUGIN_DATA}/socialforge/brands/<brand>/asset-index.json`) — never list the asset directory. Reference generated images / videos by path, not by loading metadata. Brand profile loads once per session.
The 4 Creative Modes
MODE 1: ANCHOR_COMPOSE
Brand asset is the untouchable center. AI generates scene around it. 1. Remove background from brand asset (rembg) 2. Generate surrounding scene via AI using brand style references 3. Composite asset onto generated scene (Pillow) 4. Add shadow/reflection for natural placement 5. Add text overlay + logo 6. Resize per platform
MODE 2: ENHANCE_EXTEND
Brand asset is the foundation. AI modifies periphery only. 1. Feed real image to AI edit endpoint 2. AI extends/enhances while preserving core subject 3. Verify core subject preservation 4. Add overlay + resize
MODE 3: STYLE_REFERENCED
No brand asset composited. Style reference photos guide AI generation. 1. Load 2-8 brand style reference images 2. Construct 5-layer prompt (brand identity, post context, creative direction, image rules, technical) 3. Feed references + prompt to AI generation 4. Quality review — does output match brand DNA? 5. Add overlay + resize
MODE 4: PURE_CREATIVE
Full AI generation with only text prompt + brand colors/mood. 1. Construct prompt from brief + brand-config visual style 2. Generate (text-only, no reference images) 3. Quality review 4. Add overlay + resize
Prerequisites
- `asset-matches.json` must exist (generated by `/socialforge:match-assets` -> match_assets.py)
- `calendar-data.json` must exist (generated by `/socialforge:parse-calendar`)
- `brand-config.json` must exist for active brand
- `cost-log.json` initialized (via status_manager.py --action init-month)
- Valid credentials for Gemini via Vertex AI (images) and WaveSpeed / Kling v3.0 (video) via credential_manager.py
If any prerequisite is missing: "Run `/socialforge:match-assets` first — creative production needs asset matching results."
Process (For Each IMAGE Post) — 4-Stage Approval Flow
Stage 1: Creative Direction (No API Call)
Present 2-3 creative direction options to the user. Each option includes:
- A description of the visual concept
- Mood, color palette, and composition approach
- How the brand asset will be used (per the assigned creative mode)
- Rough reference to style/tone
No image generation happens here. The user picks a direction before any credits are spent.
Stage 2: Confirm Details
Once the user selects a direction, confirm the specifics before generating:
- Final prompt details and any refinements the user wants
- Aspect ratio and platform targets
- Text overlay copy and placement preferences
- Any special instructions (e.g., "warmer tones", "more negative space")
User explicitly approves to proceed to generation.
Stage 3: Generate and Select (Gemini via Vertex AI)
- Generate 2-3 image versions based on the confirmed direction
- Show all versions inline via the Read tool so the user can compare
- User picks their preferred version (or requests another round with adjustments)
- Max 3 generation rounds per post before escalating
Stage 4: Post-Process and Save
After the user selects their preferred image: 1. Apply text overlay via compose_text_overlay.py 2. Apply logo per brand-config.json (position, opacity, size, platform exclusions) 3. Resize per platform via resize_image.py 4. Save final assets to the post-specific folder: `{post_folder}/final/` 5. Update status-tracker.json 6. Log prompt to `shared/prompt-logs/` 7. Track API cost in cost-log.json
Process (For Each VIDEO Post) — 5-Stage Approval Flow
Stage 1: Video Concept (No API Call)
Present 2-3 video concept ideas to the user. Each option includes:
- A narrative arc or visual concept for the short-form video
- Description of the opening frame, motion/transition, and closing frame
- Mood, pacing, and style notes
- How brand assets or style references will be incorporated
User picks a concept before any generation begins.
Stage 2: First Frame Generation (Gemini via Vertex AI)
- Generate 2 first-frame options based on the selected concept
- Show both inline via the Read tool
- User picks their preferred first frame (or requests adjustments)
Stage 3: Last Frame Generation (Gemini via Vertex AI)
- Generate 2 last-frame options that complement the approved first frame
- Show both inline via the Read tool
- User picks their preferred last frame (or requests adjustments)
Stage 4: Video Generation (WaveSpeed / Kling v3.0)
- Generate 2 video versions using the approved first and last frames as keyframes
- Use WaveSpeed or Kling v3.0 via generate_video.py
- Show both versions for user review
- User picks their preferred video (or requests another round)
- Max 3 generation rounds before escalating
Stage 5: Post-Process + Save
After the user picks the final video, post-processing runs before saving: 1. **Watermark:** Logo overlay is automatically added to the video via video_postprocess.py 2. **Subtitles:** User is asked whether to burn subtitles into the video (optional). SRT was already generated from the script and is saved separately regardless. 3. **Background music:** If the video has no audio (sound=False in Kling config), user is asked whether to add background music (optional). 4. **Platform resize:** Video is automatically resized for each target platform (letterbox
Read more
name: compose-creative description: Core creative engine. Generates images and video using 4 modes with brand assets, AI compositing, and platform resizing. argument-hint: "[--post <id>] [--all] [--variant b]" effort: max user-invocable: true
/socialforge:compose-creative — Creative Production Engine
The core production skill. Takes asset matching results and produces visual and video assets for each post according to its assigned creative mode, using a staged human-in-the-loop approval flow.
Context efficiency
Asset-heavy skill. **Grep before Read** the asset catalog (`${CLAUDE_PLUGIN_DATA}/socialforge/brands/<brand>/asset-index.json`) — never list the asset directory. Reference generated images / videos by path, not by loading metadata. Brand profile loads once per session.
The 4 Creative Modes
MODE 1: ANCHOR_COMPOSE
Brand asset is the untouchable center. AI generates scene around it. 1. Remove background from brand asset (rembg) 2. Generate surrounding scene via AI using brand style references 3. Composite asset onto generated scene (Pillow) 4. Add shadow/reflection for natural placement 5. Add text overlay + logo 6. Resize per platform
MODE 2: ENHANCE_EXTEND
Brand asset is the foundation. AI modifies periphery only. 1. Feed real image to AI edit endpoint 2. AI extends/enhances while preserving core subject 3. Verify core subject preservation 4. Add overlay + resize
MODE 3: STYLE_REFERENCED
No brand asset composited. Style reference photos guide AI generation. 1. Load 2-8 brand style reference images 2. Construct 5-layer prompt (brand identity, post context, creative direction, image rules, technical) 3. Feed references + prompt to AI generation 4. Quality review — does output match brand DNA? 5. Add overlay + resize
MODE 4: PURE_CREATIVE
Full AI generation with only text prompt + brand colors/mood. 1. Construct prompt from brief + brand-config visual style 2. Generate (text-only, no reference images) 3. Quality review 4. Add overlay + resize
Prerequisites
- `asset-matches.json` must exist (generated by `/socialforge:match-assets` -> match_assets.py)
- `calendar-data.json` must exist (generated by `/socialforge:parse-calendar`)
- `brand-config.json` must exist for active brand
- `cost-log.json` initialized (via status_manager.py --action init-month)
- Valid credentials for Gemini via Vertex AI (images) and WaveSpeed / Kling v3.0 (video) via credential_manager.py
If any prerequisite is missing: "Run `/socialforge:match-assets` first — creative production needs asset matching results."
Process (For Each IMAGE Post) — 4-Stage Approval Flow
Stage 1: Creative Direction (No API Call)
Present 2-3 creative direction options to the user. Each option includes:
- A description of the visual concept
- Mood, color palette, and composition approach
- How the brand asset will be used (per the assigned creative mode)
- Rough reference to style/tone
No image generation happens here. The user picks a direction before any credits are spent.
Stage 2: Confirm Details
Once the user selects a direction, confirm the specifics before generating:
- Final prompt details and any refinements the user wants
- Aspect ratio and platform targets
- Text overlay copy and placement preferences
- Any special instructions (e.g., "warmer tones", "more negative space")
User explicitly approves to proceed to generation.
Stage 3: Generate and Select (Gemini via Vertex AI)
- Generate 2-3 image versions based on the confirmed direction
- Show all versions inline via the Read tool so the user can compare
- User picks their preferred version (or requests another round with adjustments)
- Max 3 generation rounds per post before escalating
Stage 4: Post-Process and Save
After the user selects their preferred image: 1. Apply text overlay via compose_text_overlay.py 2. Apply logo per brand-config.json (position, opacity, size, platform exclusions) 3. Resize per platform via resize_image.py 4. Save final assets to the post-specific folder: `{post_folder}/final/` 5. Update status-tracker.json 6. Log prompt to `shared/prompt-logs/` 7. Track API cost in cost-log.json
Process (For Each VIDEO Post) — 5-Stage Approval Flow
Stage 1: Video Concept (No API Call)
Present 2-3 video concept ideas to the user. Each option includes:
- A narrative arc or visual concept for the short-form video
- Description of the opening frame, motion/transition, and closing frame
- Mood, pacing, and style notes
- How brand assets or style references will be incorporated
User picks a concept before any generation begins.
Stage 2: First Frame Generation (Gemini via Vertex AI)
- Generate 2 first-frame options based on the selected concept
- Show both inline via the Read tool
- User picks their preferred first frame (or requests adjustments)
Stage 3: Last Frame Generation (Gemini via Vertex AI)
- Generate 2 last-frame options that complement the approved first frame
- Show both inline via the Read tool
- User picks their preferred last frame (or requests adjustments)
Stage 4: Video Generation (WaveSpeed / Kling v3.0)
- Generate 2 video versions using the approved first and last frames as keyframes
- Use WaveSpeed or Kling v3.0 via generate_video.py
- Show both versions for user review
- User picks their preferred video (or requests another round)
- Max 3 generation rounds before escalating
Stage 5: Post-Process + Save
After the user picks the final video, post-processing runs before saving: 1. **Watermark:** Logo overlay is automatically added to the video via video_postprocess.py 2. **Subtitles:** User is asked whether to burn subtitles into the video (optional). SRT was already generated from the script and is saved separately regardless. 3. **Background music:** If the video has no audio (sound=False in Kling config), user is asked whether to add background music (optional). 4. **Platform resize:** Video is automatically resized for each target platform (letterbox
Showing the first part of this file.
Your client wants 30 days of social content across six platforms with brand-faithful imagery, AI-generated video, and provenance signed for EU markets. You have five days.
Other skills on socialforge.
- /adapt-copy
Adapt post copy per platform — character limits, hashtags, CTAs, tone, and compliance checking.
Open skill - /assemble-document
Assemble the final calendar delivery manifest (structured JSON) with all posts, copy, and metadata.
Open skill - /brand-manager
Set up and manage brand profiles. Use when: configuring a new brand, updating brand config, or switching brands.
Open skill - /build-review-gallery
Build an interactive HTML review gallery with all generated posts for team review.
Open skill - /c2pa-sign
Embed C2PA (Content Authenticity Initiative) provenance manifests into SocialForge AI-generated assets — images, video, audio. Use when: preparing AI-generated social posts for EU markets to comply with EU AI Act Article 50 (applicable 2 Aug 2026); making AI generation
Open skill - /create-previews
Generate platform mockup previews showing how posts will look on each social platform.
Open skill

