用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/tomevault-io/skills-registry --skill refill命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
| Use when this capability is needed.
> Use when this capability is needed.
Review architecture and API design for the vfs-s3 project. Use when the user mentions @architect, asks to review an issue's design, discuss module boundaries, API shape, or architectural decisions for vfs-s3. Also trigger when the user wants to create an ADR (Architecture Decision Record) or evaluate a technical approach for the project. Intended for dispatch from Codex automation or Claude routines; GitHub trigger phrase: @vfs-s3-bot please prepare design doc Use when this capability is needed.
基于 SOC 职业分类
正在显示 SKILL.md
| name | refill |
| description | Rotate Mystery Box image models from available providers Use when this capability is needed. |
| metadata | {"author":"api-haus"} |
Refresh the Mystery Box image family by selecting new models from all available image providers.
/refill
Fetch the KIE.ai model catalog:
WebFetch https://docs.kie.ai/llms.txt
Extract all image-to-image / edit model IDs. Text-to-image-only models are not eligible for Mystery Box (which requires editing support).
Read the config files for all integrated image providers to see what's already implemented and tested:
src/providers/kie-ai/models.ts — KIE_AI_IMAGE_MODELS array: KIE model definitions with kieModelId, capabilities, costssrc/providers/runware/image-models.ts — RUNWARE_IMAGE_MODELS array: Runware model definitions with runwareModel AIR identifiers, capabilities, costssrc/providers/image-models.ts — IMAGE_MODELS array: all user-facing model entries including the 4 Mystery Box entries (family: "mystery")Currently integrated image providers:
src/providers/kie-ai/) — primary source, many models via API. Mystery Box models use KIE provider IDs (prefix kie/).src/providers/runware/) — 12 image models including Flux 2, Wan2.6, Riverflow, Z-Image, Kandinsky, P-Image, Bria FIBO, and NanoBanana Pro (Google Imagen 3) via google:4@2. Models with supportsEditing: true can do i2i via public URL as seedImage. Provider IDs use prefix runware/.src/providers/vertex-ai/) — Gemini image generation (used for NanoBanana fallback). Not eligible for Mystery Box.Runware hosts Google models that can participate in latency-based fallback. Currently implemented:
runware/nano-banana-pro — Google Imagen 3 (google:4@2), $0.138/image, t2i only (no seedImage support)Check the Runware models page for any new Google models that could be added.
Note the current Mystery Box assignment:
Also note which models are already exposed to users through other families (NanoBanana, Flux). These should be deprioritized for Mystery Box — the whole point is to give users access to models they can't already pick directly.
Compare the fetched KIE catalog + existing Runware models against what's already configured:
KIE_AI_IMAGE_MODELS or RUNWARE_IMAGE_MODELS?Prioritization rules (most important first):
supportsEditing: true). Skip text-to-image-only models.KIE_AI_IMAGE_MODELS or RUNWARE_IMAGE_MODELS with supportsEditing: true are proven to work. New unimplemented models need API doc lookup and smoke testing.Eligible Runware models for Mystery Box (i2i-capable):
runware/wan2-6-image — Wan2.6 ($0.03), seedImage via URL, no strengthrunware/bria-fibo-edit — Bria FIBO ($0.04), edit-only (requires image input), uses inputs.imagerunware/flux-2-flex — Flux 2 Flex ($0.06), seedImage via URL, no strengthrunware/flux-2-pro — Flux 2 Pro ($0.06), seedImage via URL, no strengthrunware/flux-2-max — Flux 2 Max ($0.07), seedImage via URL, no strengthNote: Runware Flux models are the same architecture as KIE Flux models but via a different API. Using Runware Flux in Mystery Box still overlaps with the user-facing Flux family.
For any new candidate model from the KIE catalog that doesn't already have an entry in KIE_AI_IMAGE_MODELS, fetch its API documentation to determine the correct field names:
WebFetch https://docs.kie.ai/market/<vendor>/<model-slug>.md
Where the path mirrors the KIE model ID hierarchy (e.g., seedream/4.5-edit.md for seedream/4.5-edit, qwen/image-edit.md for qwen/image-edit). Fetch the full URL list from https://docs.kie.ai/llms.txt to find exact paths.
Check specifically for:
image_input, image_urls, input_urls, image_url). This maps to imageFieldName in config.imageFieldSingle in config.quality: "basic"). This maps to extraInput in config.Skip this step for models that already have entries in KIE_AI_IMAGE_MODELS — their field names are already known and tested.
Use AskUserQuestion to present 2-4 curated presets, each being a complete set of 4 models for the Mystery Box tiers.
Design presets considering:
Format each preset clearly showing:
Preset Name:
fast -> model-name ($X.XX) [kie/runware] [new/existing] [also in: NanoBanana]
good -> model-name ($X.XX) [kie/runware] [new/existing]
good+ -> model-name ($X.XX) [kie/runware] [new/existing]
best -> model-name ($X.XX) [kie/runware] [new/existing]
Flag any model that overlaps with regular families so the user can make an informed choice. Also indicate which provider (KIE vs Runware) each model comes from.
Use your knowledge of the models (architecture quality, generation speed, typical output quality) to create sensible groupings. If pricing info isn't in the catalog, use fallbackCredits from existing config or reasonable estimates based on similar models.
After the user picks a preset, update the config files:
src/providers/kie-ai/models.tsFor any KIE model in the chosen preset that doesn't already have an entry in KIE_AI_IMAGE_MODELS, add a new entry. Use the API docs fetched in step 4 to set correct field names:
{
id: "kie/<short-name>",
kieModelId: "<kie-api-model-id>",
name: "<Display Name>",
maxResolution: <number>,
supportsEditing: true,
supportsResolution: <boolean>,
fallbackCredits: <number>,
supportedAspectRatios: [...],
supportsNativeAutoAspect: <boolean>,
imageFieldName: "<field-name>", // from API docs, omit if default "image_input"
imageFieldSingle: <boolean>, // omit if false (array is default)
extraInput: { ... }, // omit if no extra fields required
},
For new models where API docs are unclear, use conservative defaults:
maxResolution: 1024supportsEditing: true (required for Mystery Box)supportsResolution: falsesupportsNativeAutoAspect: falsesupportedAspectRatios: ["1:1", "16:9", "9:16", "3:4", "4:3"] (safe default)imageFieldName: "image_urls" (most common for edit models)Runware models are already defined in src/providers/runware/image-models.ts. No changes needed there — just reference their existing id in the Mystery Box entries.
src/providers/image-models.tsUpdate the 4 Mystery Box entries (the ones with family: "mystery") to point to the new models. For each entry update:
id — must match a provider model id (e.g., "kie/seedream-4.5-edit" or "runware/wan2-6-image")providerId — same as idcostUsd — appropriate cost for the tiersupportedResolutions — from the provider model config (maxResolution determines available resolutions)supportedAspectRatios — from the provider model configsupportsNativeAutoAspect — from the provider model configsupportsEditing — must be true for Mystery BoxKeep unchanged: name, family, quality, supportsChat: false, modelConfig (if any).
pnpm exec tsc --noEmit
Run the E2E smoke test filtered to just the new models to verify they actually work with the API:
SMOKE_MODELS=<comma-separated-model-tokens> pnpm test:e2e:smoke
Where <comma-separated-model-tokens> are substring matches against model IDs. For example:
SMOKE_MODELS=seedream-4.5-edit,wan2-6 pnpm test:e2e:smoke
The smoke test covers both KIE and Runware providers. Each model should:
usage.costUsd > 0If any model fails, investigate the error and either fix the config (wrong field name, missing extra input) or replace with another candidate.
Show the user a summary of what changed, including:
family: "mystery"). Never touch NanoBanana or Flux entries.id and providerId fields in IMAGE_MODELS Mystery Box entries must exactly match a model id in either KIE_AI_IMAGE_MODELS or RUNWARE_IMAGE_MODELS.google/nano-banana / nano-banana-pro from Mystery Box candidates (it's our own model, used in the NanoBanana family).supportsEditing: true). Skip text-to-image-only models when building presets.supportsChat: false.SMOKE_MODELS=<tokens> pnpm test:e2e:smoke to verify just the new models.These KIE market models failed smoke testing (2025-02) and should be skipped:
qwen/image-to-image — "broken data stream when reading image file". Image field: image_url (single). The model can't read images uploaded via KIE's file upload proxy.qwen/image-edit — Same "broken data stream" error. Image field: image_url (single). Same upload proxy incompatibility.grok-imagine/image-to-image — "no image URL found in response". Image field: image_urls (array). Task completes but returns no output URL.ideogram/character-edit — Requires mask_url + reference_image_urls (too complex for Mystery Box).ideogram/character-remix — Requires reference_image_urls (too complex for Mystery Box).4o-image — Uses dedicated /4o-image-api/ endpoint with different field structure (filesUrl), not compatible with market /createTask API.flux-kontext — Uses dedicated /flux-kontext-api/ endpoint with inputImage field, not compatible with market /createTask API.Converted and distributed by TomeVault — claim your Tome and manage your conversions.