add-ecosystem
Add a new ecosystem and base model to basemodel.constants.ts. Use when onboarding a new model…
Wire an existing ecosystem into the generation system. Adds generation support to basemodel.constants.ts, creates graph and handler files, and wires them into the ecosystem discriminator, workflow config, and router. Use after add-ecosystem when you need the ecosystem to show up
$ npx -y skills add civitai/civitai --skill add-generation-support --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/add-generation-supportContext preview
The summary Claude sees to decide when to auto-load this skill.
Wire an existing ecosystem into the generation system. Adds generation support to basemodel.constants.ts, creates graph and handler files, and wires them into the ecosystem discriminator, workflow config, and router. Use after add-ecosystem when you need the ecosystem to show up
name: add-generation-support description: Wire an existing ecosystem into the generation system. Adds generation support to basemodel.constants.ts, creates graph and handler files, and wires them into the ecosystem discriminator, workflow config, and router. Use after add-ecosystem when you need the ecosystem to show up in the generation form. Always checks @civitai/orchestration-client for ecosystem-specific types before writing the handler.
Wires an existing ecosystem (already defined in [basemodel.constants.ts](src/shared/constants/basemodel.constants.ts)) into the generation form. Requires the ecosystem, base model, license, and family to already exist — use the **add-ecosystem** skill first if any of those are missing.
Before starting, confirm the ecosystem exists in [basemodel.constants.ts](src/shared/constants/basemodel.constants.ts):
If any are missing, stop and direct the user to run `add-ecosystem` first.
The orchestrator client package is **`@civitai/orchestration-client`**. It is the continuation of the old `@civitai/client`, which can no longer be published to and is frozen at `0.2.0-beta.98`; the version line carries on unbroken in the new package (`0.2.0-beta.101` and up). **The repo depends on both** — the new package for anything recent, the frozen one for the handlers and workflow types that still import it. New ecosystem types only ever land in the new package.
**Always** check the latest published client version, even if types aren't in the currently installed version.
# Check installed version (either package may be present) grep -E '@civitai/(orchestration-)?client' package.json # Check latest available — the 'latest' dist-tag lags 'beta', so read the version list npm view @civitai/orchestration-client versions --json | tail -20
Search the **latest** version's types for the ecosystem:
cd /tmp && npm pack @civitai/orchestration-client@<latest-version> 2>/dev/null tar -xzf civitai-orchestration-client-<latest-version>.tgz grep -n "<EcosystemName>\|<ecosystem-name>" /tmp/package/dist/generated/types.gen.d.ts
Note what you find (or don't find):
If the installed version is older than the latest and the latest has useful types, bump:
pnpm add @civitai/orchestration-client@<latest-version>
Import new types from `@civitai/orchestration-client` rather than hand-rolling them. Handlers already importing from `@civitai/client` keep working — leave them unless migrating them is the task you were asked to do.
If the user hasn't already pointed you at docs, check the HuggingFace or official model card for:
Based on research, pick the right shape:
Summarize:
Adding generation support for: <EcosystemName> Graph: src/shared/data-graph/generation/<name>-graph.ts - Versions: <list with IDs> - Aspect ratios: <list> - Sliders: cfgScale (<range>, default <n>), steps (<range>, default <n>) - Features: [resources, negativePrompt, images for I2V, etc.] - Structure: [single graph | discriminator with subgraphs | version-dependent defaults] Handler: src/server/services/orchestrator/ecosystems/<name>.handler.ts - Types: <from @civitai/orchestration-client, or generic> - Step type: <imageGen | videoGen> - Fixed params: sampler=<x>, scheduler=<y> (if applicable) Wiring: - basemodel.constants.ts: uncomment/add ecosystem support + settings - workflows.ts: add to <TXT2IMG_IDS | TXT2VID_IDS | etc.> - ecosystem-graph.ts: add to grouped discriminator - ecosystems/index.ts: import, type, export, router case
Wait for confirmation.
All files listed below are required edits. Make them in one pa
Repo: civitai/civitai
Add a new ecosystem and base model to basemodel.constants.ts. Use when onboarding a new model…
Author a prompt-enhancement system prompt for a new ecosystem and register/update it on the…
Add a new trainable base model to BOTH trainers end-to-end — the in-app trainer (main Next.js…
Wire an existing ecosystem into the LoRA training system so it appears as a trainable base…
Deterministically drive a first-party Civitai App Block in the operator's browser and produce…
Take a first-party Civitai App Block from functional to considered — the repeatable…