Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Turn a product brief and optional references into three distinct creative directions, a human-selected StyleSeed interaction plan, generated image/video asset jobs, a working UI prototype, and a verified prototype-first showcase reel. Use for client concepts, app interaction exploration, trendy but coherent UI direction, reference discovery and synthesis, or any request that needs more than one static screen.
.claude/skills/bitjaru-ss-studio/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 138% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 48% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 22% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -7% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 58% | 0% |
When .styleseed/project.json and .styleseed/artifacts/index.json exist, resolve the requested artifact ID first, then read only .styleseed/bundles/<artifact-id>.md and .styleseed/manifests/<artifact-id>.json. Never fall back to the global legacy bundle for a registry project. Legacy projects may use .styleseed/effective-rules.md only when no registry exists.
Run the full Studio pipeline. Do not reduce it to a moodboard, a static image, or a set of arbitrary motion effects.
Read STUDIO-PIPELINE.md, PRODUCT-PRINCIPLES.md, and the resolved project rules first. If the project has no valid STYLESEED.md, run setup and resolve before Studio.
Initialize a durable run:
bashnode <skill-dir>/scripts/studio-run.mjs init \ --project-root . \ --artifact <artifact-id> \ --name "<project or concept>" \ --brief "<product job and desired interaction>" \ --surface mobile-app \ --platform web
The command prints the run directory under .styleseed/studio/. Use the artifact schemas in references/artifact-contract.md. Use references/provider-adapters.md only when media generation or recording is required.
If the project uses the artifact registry, --artifact is required and the run binds the current artifact manifest and method hash at init time.
Classify supplied and discovered references as structure, navigation, signature, motion, or asset-language. Capture source URL/path, date, visible observation, transferable principle, confidence, and rights note. Never claim visual evidence for a reference that was not actually seen.
Do not ask the user to collect a generic moodboard. Find only the missing roles. Keep product UI, marketing presentation, and generated media separate unless the brief explicitly connects them.
Write exactly three entries in directions.json: native, signature, and experimental. Keep the product job and content fixed; vary at least two structural axes. Every direction must include:
Advance only after the directions validate:
bashnode <skill-dir>/scripts/studio-run.mjs advance --project-root . --run <id> --stage directed
Show the three directions together. Record the user's selection and rationale. Do not average them or quietly choose the easiest one.
bashnode <skill-dir>/scripts/studio-run.mjs select \ --project-root . --run <id> --direction <direction-id> \ --by "<reviewer>" --rationale "<decision>"
Write scenes.json, assets.json, and video.json from the selected direction.
reduced-motion behavior, and renderer targets.
consuming scene.
them to fake an interaction that does not work.
Map capability to an available provider only at execution time. If the needed provider is absent, leave the job blocked and report the exact missing capability.
Record provider execution without hand-editing the run:
bashnode <skill-dir>/scripts/studio-run.mjs media \ --project-root . --run <id> --job <job-id> --status complete \ --provider <tool/model> --output <project-relative-path> \ --provenance "<model · date · source inputs>"
Generate raster assets only for imagery, texture, illustration, footage, or product material. Keep UI geometry, icons, and final copy code-native and accessible. Copy final generated files into the run directory and preserve prompts and provenance.
Build the selected direction as a working prototype. Implement its primary navigation, signature scene, cancel/back behavior, and reduced-motion fallback. Record the actual prototype after it passes the code and pixel gates. Optional generated footage may be composited as labeled media.
Store prototype and recording paths through the CLI, then advance to built:
bashnode <skill-dir>/scripts/studio-run.mjs output \ --project-root . --run <id> --prototype <route-or-path> node <skill-dir>/scripts/studio-run.mjs advance \ --project-root . --run <id> --stage built node <skill-dir>/scripts/studio-run.mjs output \ --project-root . --run <id> --recording <project-relative-path>
Run StyleSeed score and visual verification, then derive Studio verification from the evidence gate. The Studio evidence command stores only the computed verifier summary, and advance --stage verified reruns verification instead of trusting an earlier stored pass.
bashnode <skill-dir>/scripts/studio-run.mjs evidence \ --project-root . --run <id> --evidence-run <gate-run-id>
bashnode <skill-dir>/scripts/studio-run.mjs advance --project-root . --run <id> --stage verified node <skill-dir>/scripts/studio-run.mjs status --project-root . --run <id>
fail and blocked remain useful progress states:
bashnode <skill-dir>/scripts/studio-run.mjs gate \ --project-root . --run <id> --gate temporal --status blocked \ --note "recording still missing"
Do not use gate --status pass. Only the evidence verifier may derive pass. A prototype URL can locate the built prototype, but it is not evidence. When temporal verification is required, the recording must be a local hashed file.
Deliver the complete run folder, runnable prototype, actual recording, and unresolved risks. A polished reel by itself is not a completed Studio run.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 45,744 | 10,314 | -77% | 1 | 1 | 0% | 8,279 | 1,848 | -78% | 0 | 0 | — |
case-02 | fail→fail | 53,415 | 16,098 | -70% | 1 | 1 | 0% | 8,282 | 1,886 | -77% | 0 | 0 | — |
case-03 | fail→fail | 45,076 | 10,088 | -78% | 1 | 1 | 0% | 8,263 | 1,874 | -77% | 0 | 0 | — |
case-04 | fail→pass | 5,203 | 8,398 | +61% | 1 | 1 | 0% | 928 | 2,208 | +138% | 0 | 0 | — |
case-05 | pass→pass | 17,394 | 3,216 | -82% | 1 | 1 | 0% | 2,129 | 2,082 | -2% | 0 | 0 | — |
case-06 | fail→pass | 14,306 | 9,535 | -33% | 1 | 1 | 0% | 1,944 | 2,885 | +48% | 0 | 0 | — |
case-07 | fail→pass | 11,890 | 4,452 | -63% | 1 | 1 | 0% | 1,785 | 2,182 | +22% | 0 | 0 | — |
case-08 | fail→pass | 15,501 | 7,435 | -52% | 1 | 1 | 0% | 2,181 | 2,035 | -7% | 0 | 0 | — |
case-09 | fail→pass | 18,483 | 14,182 | -23% | 1 | 1 | 0% | 1,799 | 2,837 | +58% | 0 | 0 | — |
case-10 | fail→pass | 8,285 | 8,031 | -3% | 1 | 1 | 0% | 1,338 | 2,103 | +57% | 0 | 0 | — |
case-11 | fail→fail | 10,342 | 4,547 | -56% | 1 | 1 | 0% | 1,783 | 2,378 | +33% | 0 | 0 | — |
case-12 | pass→pass | 10,468 | 7,417 | -29% | 1 | 1 | 0% | 1,512 | 2,016 | +33% | 0 | 0 | — |
case-13 | fail→pass | 15,241 | 6,170 | -60% | 1 | 1 | 0% | 1,818 | 2,647 | +46% | 0 | 0 | — |
case-14 | fail→pass | 16,378 | 3,866 | -76% | 1 | 1 | 0% | 2,795 | 2,313 | -17% | 0 | 0 | — |
case-15 | fail→pass | 13,396 | 6,115 | -54% | 1 | 1 | 0% | 2,028 | 2,577 | +27% | 0 | 0 | — |
case-16 | fail→pass | 21,095 | 3,567 | -83% | 1 | 1 | 0% | 1,788 | 2,229 | +25% | 0 | 0 | — |
case-17 | fail→pass | 15,470 | 5,726 | -63% | 1 | 1 | 0% | 2,107 | 2,428 | +15% | 0 | 0 | — |
case-18 | fail→pass | 7,194 | 5,529 | -23% | 1 | 1 | 0% | 1,216 | 2,402 | +98% | 0 | 0 | — |
case-19 | fail→pass | 11,591 | 3,797 | -67% | 1 | 1 | 0% | 1,689 | 2,192 | +30% | 0 | 0 | — |
case-24 | fail→fail | 30,385 | 4,083 | -87% | 1 | 1 | 0% | 4,958 | 1,745 | -65% | 0 | 0 | — |
case-20 | fail→pass | 12,122 | 3,840 | -68% | 1 | 1 | 0% | 1,941 | 2,178 | +12% | 0 | 0 | — |
case-21 | pass→pass | 10,701 | 3,138 | -71% | 1 | 1 | 0% | 1,602 | 2,068 | +29% | 0 | 0 | — |
case-22 | fail→fail | 47,091 | 7,197 | -85% | 1 | 1 | 0% | 8,184 | 1,921 | -77% | 0 | 0 | — |
case-23 | fail→pass | 39,657 | 18,351 | -54% | 1 | 1 | 0% | 8,236 | 3,991 | -52% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted, and 19 counted toward the lift figure. The other 5 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +63 percentage points is the difference between those two pass rates over the 19 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.