Agent instructions SKILL.md
---
name: wiggly-light-silhouette
description: Apply the exact gathered SKAI Light Silhouette prompt to one photograph.
---
# Light Silhouette
Use the packaged runner and exact prompt. Do not call Replicate separately or
create another render path.
Ask one short question:
> Which photo should I turn into a Light Silhouette?
Then run:
```bash
npm run format:skai-image -- init --format=light-silhouette --run=<id> --input=<absolute-image-path>
npm run format:skai-image -- validate --format=light-silhouette --run=<id>
npm run format:skai-image -- estimate --format=light-silhouette --run=<id>
npm run format:skai-image -- render --format=light-silhouette --run=<id> --approve-paid
npm run format:skai-image -- inspect --format=light-silhouette --run=<id>
npm run format:skai-image -- inspect --format=light-silhouette --run=<id> --visual-pass --review-notes="<specific observations>"
npm run format:skai-image -- finalize --format=light-silhouette --run=<id> --approve-final
```
Hard rules:
- Keep the exact gathered prompt unless the user explicitly requests a change.
- Use Nano Banana 2 by default, Lite for economy, or Pro for premium.
- Treat GPT Image 2 as creator provenance, not as the packaged Replicate route.
- Validate before spending and never render without `--approve-paid`.
- Persist and resume the prediction ID.
- Never exceed three attempts.
- View the output and record specific visual-review notes before finalizing.
- Never print, store, or commit `REPLICATE_API_TOKEN`.
Replicate BYOK requirements requirements.json
{
"runtime": {
"node": ">=22",
"commands": ["npm"]
},
"providers": [
{
"name": "Replicate",
"models": [
"google/nano-banana-2-lite",
"google/nano-banana-2",
"google/nano-banana-pro"
]
}
],
"environment": [
{
"name": "REPLICATE_API_TOKEN",
"secret": true,
"requiredFor": ["render", "resume"]
}
],
"notes": [
"All smoke and validation commands are local.",
"The creator guide labels its examples GPT Image 2. That remains source provenance; the packaged Replicate runtime uses Nano Banana 2 by default, Lite for economy, and Pro for premium.",
"No proof generation was purchased for this package.",
"One render attempt is one paid prediction.",
"Paid generation requires explicit approval and is capped at three attempts."
]
}
Input contract and model routing inputs.json
{
"required": [
{
"id": "photo",
"type": "image",
"formats": ["jpg", "png", "webp"],
"minimumWidth": 512,
"minimumHeight": 512,
"maximumBytes": 26214400
}
],
"question": "Which photo should I turn into a Light Silhouette?",
"defaults": {
"model": "nano-banana-2",
"aspectRatio": "3:4",
"outputCount": 1
},
"modelRoutes": {
"economy": "google/nano-banana-2-lite",
"default": "google/nano-banana-2",
"premium": "google/nano-banana-pro",
"creatorShown": "GPT Image 2"
}
}
Paid-call and resume contract pipeline.json
{
"progress": "Prepare -> Validate -> Transform -> Inspect",
"attemptCap": 3,
"stages": [
{
"id": "prepare",
"output": "One run pinned to the photo, exact gathered prompt, and selected model route.",
"paid": false,
"approvalRequired": false
},
{
"id": "validate",
"output": "The photo and prompt contract checked locally.",
"paid": false,
"approvalRequired": false
},
{
"id": "transform",
"output": "One Light Silhouette photograph from one approved prediction.",
"paid": true,
"approvalRequired": true
},
{
"id": "inspect",
"output": "Automatic file checks plus an actual visual review.",
"paid": false,
"approvalRequired": true
}
]
}
Exact gathered prompt prompts/transform.txt
Transform only the subject into a glowing white human silhouette with smooth edges, no facial details, soft golden light trails, and a subtle aura glow. Preserve the exact pose, proportions, identity, expression, background, lighting, shadows, composition, and environment with absolutely no changes. Render in a premium cinematic editorial style as if shot on a Sony A1 with an 85mm f /1.4 GM lens at f/1.6, ISO 100, and 1/200s. Match the original lighting direction and mood while enhancing with soft directional light, warm highlights, cool shadows, deeper contrast, expanded dynamic range, natural textures, subtle film grain, and premium 4K realism. Enhance the background with a refined, naturally smoother cinematic look by reducing visual harshness, digital noise, and distracting micro-details while preserving all original scenery, depth, perspective, textures, and realism. Apply gentle atmospheric depth, soft optical rendering, and realistic lens separation to create a clean, premium, high-end photographic background without making it look artificial, over-blurred, painted, or AI-generated. Maintain the original scene exactly, with improved depth, clarity, and cinematic quality.
Automatic and visual gates quality.json
{
"automatic": [
"Exactly 1 decodable JPG, JPEG, PNG, or WebP output",
"At least 640x800 pixels",
"Aspect ratio matches the selected route within 0.02",
"At least 50 KB"
],
"visual": [
"Only the subject becomes a glowing white silhouette",
"The original pose, proportions, background, composition, and environment remain recognizable",
"Smooth edges, warm highlights, soft golden trails, and a subtle aura feel cinematic",
"The background has natural depth without looking artificial, painted, or over-blurred",
"The result remains premium and photographic without facial detail, warped anatomy, stray text, or watermarks"
],
"finalization": {
"automaticPassRequired": true,
"visualPassRequired": true,
"reviewNotesRequired": true,
"explicitApprovalFlag": "--approve-final"
}
}