Zebrafish
Entry skill for Zebrafish product and production work. Follow it as an operating protocol, not a suggestion: run the setup, route the request, then execute the routed skill's phases in order. Load only the focused action skill or reference the request needs.
Setup (MUST, before any production work)#
Run
node scripts/context.mjs --json --auto-update(path relative to this skill directory). Read the result: project root,.zebrafish/config.jsonsettings, context docs, installed skill versions, and auto-update status. IfautoUpdate.updatedis true, restart this setup once so the refreshed instructions are active. If auto-update is skipped for local edits or an error, continue only after noting the recommendation. SetZEBRAFISH_SKILLS_AUTO_UPDATE=0before running the setup to disable the automatic update check for a session.Load product/brand context before writing prompts, scripts, claims, or visual direction:
get_campaign_knowledgefor the campaign when one exists, plusPRODUCT.md/CAMPAIGN.mdwhen present.If there is no campaign, no product doc, and no brief with product facts: STOP and ask for product context. Do not invent product facts to proceed.
Read
references/tool-belt.mdbefore first use of Zebrafish MCP/API/Studio/workflow tools in a session. Hosted:https://zebrafish.dev/skills/zebrafish/references/tool-belt.md.
Route (pick exactly one)#
| Request looks like | Use |
|---|---|
| Create, set up, import, refresh, audit, or manage a Project and its source context | zebrafish-project-manager |
| Long animated explainer, campaign film, multi-scene narrative | zebrafish-long-form-animated-video |
| Consistent character, mascot, setting continuity, image-to-video sequence | zebrafish-character-scene-video |
| Product launch film, SaaS walkthrough, app demo, feature explainer | zebrafish-product-demo-film |
| TikTok/Reels/Shorts, UGC variants, hook testing, short paid-social ads | zebrafish-ugc-ad-pack |
| Amazon/Shopify/Etsy listing images, A+ content, product infographics | zebrafish-marketplace-listing-pack |
| Check a delivery doc, debug a run, plan providers, one-off generation | stay in this router |
Announce the route in one line before executing. If no focused skill fits, continue here with the shared references and the same gates below.
Gates (apply in every route, including this router)#
Spend gate. Before any
purchase_credits,create_studio_generation,run_workflow, ortest_run_draftthat costs money: state model/workflow or credit top-up, unit count or credit amount, estimated cost fromlist_modelspricing or the purchase request, then get explicit user approval. Forpurchase_credits, state the credit amount, USD amount, rail, and idempotency key; use it only when the user asks/approves a top-up or an approved task is blocked on credits. Never rotate theidempotencyKeyfor a retry. One approval can cover a stated batch; it does not cover scope growth (more variants, higher resolution, new asset types, or a larger top-up) — re-ask.Claim gate. Every product, compliance, or brand claim traces to a supplied source or carries the literal
[unverified]label. Never invent product claims, marketplace compliance facts, customer quotes, metrics, or brand rules.Identity gate. No real-person likeness, voice, or persona work without explicit consent, retention, and deletion rules. STOP and ask.
Publish gate.
publish_workflow_revisionand answeringrespond_run_approvalhappen only after an explicit user decision.
Operating Loop#
Intake brief, goal, audience, platform, aspect ratio, duration, brand and product references, constraints, and approval needs. Restate them; get confirmation before spending.
Plan route, production workflow, outputs, and required tools.
Prepare references: upload or fetch assets, extract campaign knowledge, record source URLs and asset IDs.
Produce with Studio generation or workflow tools through the spend gate. Poll every generation and run to a terminal state.
Track status, costs, run IDs, generation IDs, prompts, references, and output URLs as you go — these become the Provenance section.
Verify against
references/verification.mdgates. Inspect actual media, not just metadata.Deliver using the delivery template. This step is mandatory and checked.
Delivery (MUST)#
Write the delivery document in the exact format of
references/delivery.md(hosted:https://zebrafish.dev/skills/zebrafish/references/delivery.md), starting with a# Delivery:title line.Run
node scripts/verify.mjs --strict <delivery file>on it. A non-zero exit means the gate failed: fix findings or move them to## Unverifiedwith a reason, then re-run until it exits clean. Do not present results while fixable findings remain.Final answer shape: output URLs first, then provenance summary, verification summary, unverified gaps, and next action only when useful.
References#
references/tool-belt.md— Zebrafish tool usage. Read before tool work.references/verification.md— verification gates per output type. Read before the verify step of any production.references/delivery.md— the required delivery document format.Inside this repo only:
docs/media-planning.md,docs/zebrafish-skills.md, andshared/media-planningfor product taxonomy and boundaries.
Scripts#
Installed copies of this skill ship deterministic helpers under scripts/
(paths relative to this skill directory):
scripts/context.mjs --json— project/campaign context and config. Part of mandatory setup.scripts/verify.mjs <files...>— deterministic checks: delivery-document structure, unverified claims, provider names leaking into copy, missing provenance, leftover TODO/UNVERIFIED markers. Part of mandatory delivery.scripts/hook.mjs— backs the optional post-edit hooks installed bynpx zebrafish-skills install; surfaces the same verify findings after file edits and never blocks a turn.
Policy#
Use Zebrafish/FAL production paths for integrated generation today.
Treat Higgsfield, RunComfy, HyperFrames, Remotion, GPT Image 2, Nano Banana, and Seedance-style workflows as provider candidates unless the runtime already exposes them through approved Zebrafish tools.
Provider and model names live in provenance, never in user-facing copy.
Never hide provider/model choice from provenance.
Prefer repeatable workflows for reusable multi-step work; prefer one-off Studio generations for exploratory or single-asset work.