{"id":67712,"plugin_id":"plugin_asdk_app_6aca33a416588191b9ee30c231d41940","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-28T13:10:43.524Z","digest":"5acaaf5a18c1e8a3da240758beb5f0e4899bf1dc655e1b8c3b2d5bd7eedbc05e","against":null,"payload":{"description":"Run the full Givon AI generation lifecycle through MCP or CLI: select an active model, build schema-valid input, upload references, launch the job and deliver the finished asset.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":394},{"relative_path":"references/mcp-workflow.md","size_in_bytes":3759},{"relative_path":"references/model-prompting-alibaba.md","size_in_bytes":1337},{"relative_path":"references/model-prompting-beeble.md","size_in_bytes":521},{"relative_path":"references/model-prompting-byteplus.md","size_in_bytes":1063},{"relative_path":"references/model-prompting-google.md","size_in_bytes":1417},{"relative_path":"references/model-prompting-heygen.md","size_in_bytes":625},{"relative_path":"references/model-prompting-kling.md","size_in_bytes":647},{"relative_path":"references/model-prompting-minimax.md","size_in_bytes":487},{"relative_path":"references/model-prompting-openai.md","size_in_bytes":848},{"relative_path":"references/model-prompting-xai.md","size_in_bytes":877},{"relative_path":"references/model-prompting.md","size_in_bytes":1199},{"relative_path":"references/prompt-craft.md","size_in_bytes":4860}],"name":"givon-ai-create","skill_md_contents":"---\nname: givon-ai-create\ndescription: \"Run the full Givon AI generation lifecycle through MCP or CLI: select an active model, build schema-valid input, upload references, launch the job and deliver the finished asset.\"\nmetadata:\n  version: skill-render-ea6bd93365667f6d\n---\n\n# Givon AI Create\n\nCreate the first useful result with the smallest valid request. Keep MCP\nmechanics, raw schemas, job ids and JSON internal unless the user asks for them.\n\n## Default Route\n\n1. Infer the modality (`image`, `video`, `music` or `voiceover`) from the user\n   request. A voiceover needs a voice: list them with `givon_list_voices` (CLI:\n   `givon voice list`) and pass the chosen id as `input.voice`.\n2. Classify the requested result and the input media it depends on.\n3. Call `givon_list_models` and choose an active model from live guidance, the\n   user's priorities and the required input type.\n4. Call `givon_get_model_schema` for that model before building `input`.\n5. Build only schema-supported fields. Use schema defaults instead of inventing\n   extra options.\n6. If the request needs local/reference media, upload or import it first and\n   keep the returned `assetUri`.\n7. Confirm the price in the chat. Quote the exact request with\n   `givon_quote_generation` (CLI: `givon generate quote`), tell the user the\n   token cost and wait for their go-ahead before running. Skip the question only\n   when the user said in this conversation to run without confirmations; that\n   choice lasts until they take it back. Either way pass the quoted price as\n   `maxTokens` (CLI: `--max-tokens`). A `price_above_limit` error means the\n   price changed: re-quote and ask again. If quoting is unavailable, say the\n   price is unknown and ask before running.\n8. Call `givon_generate_content` with `wait: true` and a stable\n   `idempotencyKey` for this exact request, then poll\n   `givon_get_generation_status` until `succeeded`, `failed`, or `canceled`.\n   Reuse that key after an uncertain response; do not launch a second job just\n   because a wait timed out. Use a new key for a changed or intentional new request.\n\n## CLI or MCP\n\nUse one route for the whole task. On a computer with shell access, prefer the\n`givon` CLI: if it is on PATH, run `givon whoami` once and use it when sign-in\nsucceeds. If the CLI is unavailable or cannot reach the service, use connected\nGivon MCP tools. When neither route exists, ask the user to connect Givon MCP\nthrough the host settings. CLI installation is a separate local setup action;\nthis generation skill does not download or execute an installer.\n\nIn a web chat without shell access, use MCP directly. If its tools are absent\nor authentication fails, ask the user to connect or reconnect Givon through\nthe host's plugin/connector settings and browser sign-in. Do not ask a web user\nto install a CLI or run terminal diagnostics. Both routes use the same account,\ncatalog, schemas, prices, assets and generation lifecycle.\n\n## Model Selection\n\nLive catalog guidance and schema own model availability, supported inputs,\ndefaults, selection guidance and cost. Match them to the user's goal and\npriorities, then validate the chosen route against the live schema.\n\n## Asset Route\n\n- Local file with shell access: use `givon asset upload <path>\n  --kind <image|video|audio>` and keep the returned `assetUri`. In ChatGPT, use\n  `givon_upload_file_asset` when the host provides a native file parameter.\n- Remote media: use `givon_import_asset` in MCP, or `givon asset import\n<https-url|data-uri>` in CLI/API.\n- Existing media: use `givon_list_assets` / `givon_get_asset`, or\n  `givon asset list` / `givon asset get`.\n- After upload/import, inspect the selected model schema. Pass `assetUri`,\n  `https://` URL, or data URI only through fields that the schema supports\n  (`sourceImage`, `referenceAssetUris`, `referenceAssets`, `assetInputs`, or\n  model-specific asset slots). If the schema has no media field, the model is\n  prompt-only for this request.\n- Use `givon_archive_asset` or `givon asset archive` only when the user\n  explicitly wants to hide an owned asset from active lists. It is a soft\n  archive; audit links and existing project links remain intact.\n- For image-to-video, source/start image goes into the schema-backed start image\n  field; the prompt should describe motion and camera behavior.\n\n## Prompt Craft\n\nPreserve the user's creative facts and use the selected model's guide or the\nrelevant specialist skill for craft. The live schema filters fields and limits.\nKeep the prompt complete, concrete and model-appropriate; never trade useful\ncontrol for brevity.\n\n## UX Rules\n\n- Ask only for information required to make the next action executable when it\n  cannot be inferred from the current context or live schema defaults. Collect\n  all such missing inputs together.\n- Authentication stays in the browser or CLI credential flow; chat receives no\n  API keys.\n- For CLI authentication, use `givon login`; for a configured local MCP client,\n  use `givon mcp doctor --client <client>`. In a web chat, reconnect through\n  the host settings and browser sign-in instead.\n- When using the CLI, prefer `givon generate create --wait` so the user gets\n  the final asset, not only a job id.\n- Prefer a host-native file parameter for chat attachments. If unavailable,\n  upload actual bytes with `givon_upload_asset` only when the host can read\n  them, or ask for an accessible HTTPS media link or an existing Givon asset.\n  Never invent a download URL. With shell access, CLI upload is also available;\n  the remote MCP server cannot read local files directly.\n- Respect server polling guidance and use backoff. If the host cannot continue\n  waiting, report the running job and retain its id for a status follow-up.\n- Balance or entitlement failures may be explained, but do not initiate credit\n  purchases, promote upgrades, or link to checkout from the plugin.\n\nRead [references/mcp-workflow.md](references/mcp-workflow.md) when you need the\nexact tool flow or error playbook.\nRead [references/model-prompting.md](references/model-prompting.md) for the\nuniversal model-guidance contract. After selecting a model, read only its family\nfile: [OpenAI](references/model-prompting-openai.md),\n[Google](references/model-prompting-google.md),\n[BytePlus](references/model-prompting-byteplus.md),\n[xAI](references/model-prompting-xai.md),\n[Alibaba](references/model-prompting-alibaba.md),\n[Kling](references/model-prompting-kling.md),\n[MiniMax](references/model-prompting-minimax.md),\n[HeyGen](references/model-prompting-heygen.md), or\n[Beeble](references/model-prompting-beeble.md).\nRead [references/prompt-craft.md](references/prompt-craft.md) when shaping a\nprompt, repairing a failed prompt, or handling image-to-video/design/brand\ncreative requests.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}