{"id":6133,"plugin_id":"plugin_asdk_app_6a97af93ebc88191961039f177688fa9","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T22:47:43.639Z","digest":"f28dbac9996a5a6880a5063c9af6d7b1c5776d8b68c1b387a2fd1e08ae9e0ab4","against":null,"payload":{"name":"photoshop","description":"Generate or retouch assets with ImagineArt and build them into a layered Photoshop document — separate layers, masks, and editable type. Use when the user wants a working PSD rather than a flat image. Requires desktop access to Photoshop.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":494},{"relative_path":"assets/ATTRIBUTION.md","size_in_bytes":940},{"relative_path":"assets/icon.svg","size_in_bytes":419},{"relative_path":"references/errors.md","size_in_bytes":2325},{"relative_path":"references/models.md","size_in_bytes":3809},{"relative_path":"references/photoshop-ui.md","size_in_bytes":3151},{"relative_path":"references/qa.md","size_in_bytes":712}],"skill_md_contents":"---\nname: photoshop\ndescription: Generate or retouch assets with ImagineArt and build them into a layered Photoshop document — separate layers, masks, and editable type. Use when the user wants a working PSD rather than a flat image. Requires desktop access to Photoshop.\n---\n\n# Photoshop Finishing\n\nThe deliverable is a **layered, reopenable PSD**. A flattened JPEG is a failure — Social\nStudio and Product Studio already make flat images.\n\nRead `references/photoshop-ui.md` before touching the app and `references/models.md` before\ngenerating.\n\n## Tokens\n\n`/photoshop` `/psd` `/layers` `/composite` `/mask` `/retype`\n\n## Step 0 — check what you have\n\n1. **Is the official `@Adobe` connector available?** If it covers the task, **prefer it** —\n   it runs server-side with no desktop dependency. Driving the UI is the fallback.\n2. **Is computer use available**, with Photoshop actually open or installed? You cannot\n   switch computer use on yourself.\n3. **Is there an open document**, and does the user want to work in it or start fresh?\n\nIf none of this is available, generate the assets, state the layer structure you'd have\nbuilt, and hand off. **Never imply a PSD was created when it wasn't.**\n\n## Before anything else — is this an edit or a build?\n\n**Inspect first. Generate only what the requested change actually needs.**\n\n\"Change the headline\", \"trim this clip\", \"export this\", \"move that\" are **edits**. They must\nnot generate new artwork, footage or music. Open what exists, find the specific element, and\nchange it.\n\nOnly generate when something genuinely required is missing. A six-second clip asked to be\nfive seconds gets **trimmed**, not regenerated.\n\n## The preservation rule\n\nOne rule, applied consistently:\n\n> **Preserve unrelated work. Modify exactly the element the user asked about. Verify the\n> change landed and that nothing else moved.**\n\nThis is not \"never replace anything\" — the user may well want an element replaced. It means\nnever touch what they didn't ask about. And note that *adding* is not automatically safe:\na layer placed on top can hide what's beneath it, and a clip on a new track can duplicate\naudio. Check what your addition covers.\n\n## The workflow\n\n1. **Establish the composition.** What is the background, what is the subject, what type\n   goes on it, and what is the final output size.\n2. **Generate only what's missing** with ImagineArt. Use `remove_background` for a subject\n   that needs to sit on its own layer.\n3. **Place each asset on its own named layer** — File > Place Embedded, never Place Linked,\n   so the document travels.\n4. **Mask rather than erase.** A layer mask is reversible; erased pixels are not.\n5. **Add type as real editable type layers.** Never rasterize, never use generated text.\n6. **Verify by screenshot after each meaningful change** — read the Layers panel, don't\n   assume the click landed.\n7. **Save the PSD, then export** the flat file separately.\n8. **Report what you verified** and what you couldn't.\n\n## Hard rules\n\n- **Never flatten**, and never Save over the user's original — Save As a new file.\n- **Never use fixed screen coordinates.** Find panels and controls by what they look like.\n- **Never bake text into a generated image.** Diffusion can't render reliable letterforms,\n  and baked text isn't editable.\n- **Name every layer.** An unnamed stack of \"Layer 1, Layer 2\" is not a deliverable.\n- **If a step fails twice, stop** and describe what you see.\n\n## Done means reopened, not saved\n\n\"The file exists\" is too weak. Before reporting success, confirm:\n\n- The **PSD reopens**.\n- **Type layers are still editable type**, not rasterized.\n- **Masks are intact** and nothing was erased destructively.\n- Placed assets are still Smart Objects.\n- The user's original file is untouched.\n\nState explicitly what you verified and what you could not.\n\n## The follow-up edit test\n\n\"Change only the headline\" must edit the type layer and leave the image, the masks and\nevery other layer untouched. Find the existing type layer; don't rebuild the document.\n\n## When something fails\n\nRead `references/errors.md`. Identify the kind of failure before responding: pending jobs\nare waited on, technical errors retried at most twice, unsupported capabilities stated\nplainly, safety refusals never routed around, and every material change disclosed.\n\n## QA before delivery\n\nRun `references/qa.md` before calling this finished. Inspect the actual output — never\nclaim quality you have not observed, and say plainly what you could not verify.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}