{"id":91138,"plugin_id":"plugin_asdk_app_6ad912b60470819189305676a512e914","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-11-11T13:32:03.433Z","digest":"a7c50683ba8beda13ab996d88e73b773b85da3e62d86d0f8abcd8a6a6eed00c3","against":null,"payload":{"description":"Design, duplicate, validate and preview Eye.Photo custom iris art drafts using the studio authoring reference and examples.","included_files":[],"name":"art-designer","skill_md_contents":"---\nname: art-designer\ndescription: Design, duplicate, validate and preview Eye.Photo custom iris art drafts using the studio authoring reference and examples.\n---\n\nFollow the shared [account connection and permissions](../../scripts/AUTHENTICATION.md) instructions. Determine the permissions needed for the current task before initial account setup, preserve the task through host-managed authorization, and use the get-started workflow to select an authorized studio.\n\nIf the account is disconnected or a startup connection call returns **Unknown tool**, **Tool not found**, or is unavailable, follow connection recovery immediately: show a real **Connect Eye.Photo** link from `../../scripts/CONNECTION.json` when present and validated by the shared instructions, otherwise [Connect Eye.Photo](https://chatgpt.com/settings/plugins-settings). Tell the user to open **Settings → Plugins → the installed Eye.Photo plugin → Connect**, sign in, approve their studio, then return and say **Connected** so this same request can continue. A connection-tool lookup failure alone does not establish a backend defect. Do not finish with only the error or repeatedly call missing tools.\n\nCheck the selected studio's art-designer capability. Before creating, updating, duplicating or rendering a draft, quietly check `plugin_connection_status` with required_scopes [\"studio:read\", \"templates:write\"]. If permissions_ready is false, use the shared native authorization flow for those scopes. A successful get_profile does not verify write consent. Explain this as granting art permissions to the existing connection, rather than a lost login or an owner-role restriction. Preserve the design request and resume after verification. Do not repeat analytics setup during this upgrade. Read `custom_art_template_reference` and relevant `custom_art_template_examples_list`/`custom_art_template_examples_get` before authoring. For a user-supplied inspiration image, use `custom_art_template_image_to_template_reference` and describe only visible features. Follow supported effects, canvas coordinates and example schemas; do not invent renderer options.\n\nUse `custom_art_template_list` and `custom_art_template_get` to resolve an existing design. Create or duplicate a draft with `custom_art_template_create` or `custom_art_template_duplicate`. Update editable draft JSON through `custom_art_template_update_json`. State that saving changes the draft; it does not publish the template.\n\nEye.Photo website links use `https://eye.photo`, without an `app.` subdomain. For saved art, preserve the editor path, template ID and query from the returned link. If an older result uses the legacy `https://app.eye.photo` hostname, correct that hostname to `https://eye.photo` without changing the path or query.\n\nRun `custom_art_template_validate`, fix reported errors, then call `custom_art_template_preview_create` with a unique idempotency key. Reuse identical arguments and key for uncertain retries. Poll `custom_art_template_preview_get` sparingly. Show the actual native image or returned image URL only when completed, unexpired and not stale. Failed previews must be reported as failures. If the draft changes, validate and create a new preview with a new key.\n\nIterate according to the user's feedback, and identify the saved draft and selected studio. Owners can publish through the management workflow below; otherwise return the dashboard link. Never claim a live artwork or published template changed unless a tool confirms that action, and never render unavailable effects as if supported.\n\nIn UI-capable hosts, create the artwork in Eye.Photo and queue its preview first, then call `custom_art_template_preview_show` with the saved design's `id` once to show its simple preview card. The card watches that same design for new preview images and provides an Open Eye.Photo designer button for manual changes. Do not open an editing workspace or create a new card for every correction. When the user sends a correction, get the current draft, update that same design through `custom_art_template_update_json`, validate, and queue a fresh preview with a new idempotency key. Read `custom_art_template_preview_get` to inspect the actual image and report success/failure; the existing card refreshes itself through its read-only `custom_art_template_preview_refresh` tool. Never say the corrected image is ready while the render is queued, failed or stale. The prior preview may remain visible with a clear updating label. Preview refreshes never generate artwork or publish it. In hosts without custom UI, show the actual native image from preview_get instead. Template previews use sample irises. Publication remains a separate explicitly approved management action.\n\nBefore a requested publication, quietly check studio:read and studio:write and use the shared native authorization flow if either is missing. Owners may publish a validated studio-owned draft with `studio_art_template_publish_preview`, then `studio_art_template_publish_apply` using that preview's token, confirmation and unique idempotency key, after reviewing the art and explicitly approving publication. Never publish a shared system template or assume an art preview approves publication.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}