SKILL.md
Language Markdown14.7 KB242 lines
---name: kittl-ai-editdescription: >-Drive Kittl's AI image tools through the Claude in Chrome connector to make targeted editsor regenerations of an image on a Kittl canvas (match a reference's perspective/angle, fixor soften a reflection, change a background, add/remove an element, reframe, upscale,vectorize) while preserving the original artwork, text, logos, and colors. Use wheneverMatt or anyone at Meridian Display Co. wants to fix, correct, redo, restyle, or re-render an imageinside Kittl with its AI features, especially product/box mockups like the M-SEG segmentboxes. Trigger on "fix the perspective to match the reference," "the reflection is toosharp, soften it," "regenerate this mockup from the Halcyon angle," "redo the Terrace Diningbox," "steer Kittl to correct this render," "edit this image in Kittl with AI," or any timea Kittl artboard image needs an AI-driven correction from reviewer feedback plus referenceimages. Also trigger when handed reviewer edit notes (e.g. from Nora) plus reference filesto apply in Kittl.---# Kittl AI Edit (via Chrome)Kittl is a browser-based design app with a suite of AI image tools. This skill drives thosetools through the **Claude in Chrome** connector to make a *targeted* change to an image ona Kittl canvas (the kind of "the client/reviewer wants this one thing fixed" edit) whilekeeping the rest of the design intact.The whole game is: pick the smallest tool that does the job, feed it good references, writea prompt that protects the artwork, and **verify the result** before calling it done. AIregeneration is powerful but happy to quietly redraw text, drop elements, or crop thesubject. Most of this skill is about not letting it.## Before you start (hard requirements)- **You need the Claude in Chrome tools.** They're usually deferred, so load them with oneToolSearch call, e.g. `select:mcp__claude-in-chrome__tabs_context_mcp,mcp__claude-in-chrome__navigate,mcp__claude-in-chrome__computer,mcp__claude-in-chrome__find,mcp__claude-in-chrome__file_upload,mcp__claude-in-chrome__form_input,mcp__claude-in-chrome__browser_batch,mcp__claude-in-chrome__switch_browser`.- **Kittl must be open and logged in** in the connected browser (app.kittl.com). If aproject is open, its editor lives at `app.kittl.com/project/<id>`.- **Reference and source images must be real files** in a connected folder (for Meridian, that'susually `/Users/you/Downloads/refs` or the active Cowork workspace). **Images pastedinto chat do NOT land on the filesystem**, so `file_upload` can't reach them. If Matt pastesa reference in chat, ask him to drop the actual file into a connected folder (or add it tothe Kittl canvas himself) before you can use it. Don't burn time hunting; just ask.- **If more than one Chrome is connected**, you'll be blocked until one is chosen. Call`switch_browser` (it pings every connected extension and lets the user click Connect in theright one) rather than guessing; you can't tell them apart from device IDs alone.## Step 1: Map the request before touching anythingPin down four things, from the conversation and by *looking at the actual files*:1. **Which image** is being edited (open it; don't assume from the name).2. **What change**: perspective/angle, reflection, background, add/remove an element,reframe/aspect, upscale, or vectorize.3. **Reference image(s)**, if any: the thing the result should match.4. **The preserve list**: exactly what must survive unchanged (title, headlines, body text,logo, icons, colors, layout).**Flag contradictions instead of guessing.** Reviewer notes are often ambiguous or have thefiles crossed. If a note says "this reflection is the good one" but the file it names is theone the reviewer elsewhere called "too sharp," stop and reconcile it with Matt beforespending tokens. Getting the direction backwards means regenerating the exact thing thereviewer rejected.## Step 2: Pick the right Kittl AI toolReach for the *smallest* tool that does the job. It's cheaper, faster, and less likely todisturb parts you wanted to keep.- **Remix / Generate Image (with reference images)**: whole-image regeneration. Use forperspective/angle changes, restyles, or any change to the box geometry itself. This is themain tool for "match this reference's angle." Give it the target as a second referenceimage; a text description alone is much weaker.- **Edit Area**: an AI brush. Paint a region, prompt it, and only that region regenerates.Use when just *part* of the image changes and the rest must stay pixel-identical (e.g.,soften only the reflection at the base, remove one object, fix one detail). It reads thewhole image for lighting/style context, so edits blend in.- **Erase & Fill**: remove an object and fill the gap.- **Reframe**: change aspect ratio / extend the canvas.- **Background Remover / Upscale / Vectorize**: as named.**Key limits to remember:**- **Perspective/geometry cannot be done with Edit Area.** It needs a full Remix, becauseyou're changing the whole 3D pose.- **Reflection softening** can go either way: Edit Area on just the reflection zone (keeps thebox pixel-perfect), *or* baked into the Remix prompt if you're already regenerating forperspective. If you're doing a perspective Remix anyway, fold the reflection fix into thesame prompt: one generation, both fixes.## Step 3: The Remix-with-reference workflow (the common case)This is the path for "re-render this to match the reference's angle while keeping thedesign." The gotchas are inline because each one cost real time to learn.1. **Connect.** Load the Chrome tools, `tabs_context_mcp` to see tabs, pick the browser ifprompted (`switch_browser`).2. **Work in a FRESH blank project, not the busy canvas.** In the menu (top-lefthamburger) → **New Project** → pick Standard (1200×1200 is fine; the source images aresquare). The main working canvas (e.g. "Marco's Canvas") is a minefield of prior AI-gennodes; a stray click selects one and stages its old prompt, and it's easy to trigger ageneration you didn't mean to. A clean project gives you full control and overwritesnothing. You can move the finished image wherever it belongs afterward.3. **Upload the files.** Open the **Uploads** panel (left sidebar; `find` "Uploads button").`find` the panel's hidden file input and `file_upload` the **source** image and the**reference** image (real paths under a connected folder; combined < 10 MB).4. **Place the source on the canvas** by clicking its upload thumbnail (newest upload sitstop-left of the grid). If it lands overlapping other art, drag it to a clear spot so youcan select it cleanly later.5. **Select the source → click "Remix"** in the contextual toolbar that appears above it.This stages it as **image 1** in the AI input bar at the bottom.6. **Set the mode + model BEFORE typing the prompt.** The generation-mode picker offers*Agentic AI*, *Generate Image*, *Generate Video*; choose **Generate Image**. Then openthe model picker and choose one suited to faithful mockups:- **Nano Banana 2**: "realistic imagery & graphic editing"; strong at re-posing whilepreserving the design. Good default, cheaper.- **Nano Banana 2 4K / Nano Banana Pro**: higher-fidelity mockups; use if base quality ortext sharpness isn't good enough.- *ChatGPT Image 2* tends to redraw more and is more likely to alter text/layout, so avoidit for "preserve the artwork" jobs.Set aspect ratio to **Match** (matches the source).**Why order matters:** switching the mode (e.g., Agentic AI → Generate Image) **clears theprompt field.** If you type first and switch after, you lose the prompt. Mode and modelfirst, prompt last.7. **Add the reference as image 2.** `find` the hidden file input *inside the AI prompttoolbar* (distinct from the Uploads panel's input) and `file_upload` the reference to it.You should now see two thumbnails staged: 1 = source, 2 = reference.8. **Write the prompt with `form_input`, not by typing.** `find` the prompt textbox elementand set its value with `form_input`. **Do not rely on Cmd+A to clear it.** Kittlintercepts Cmd+A as "select all objects on the canvas," so it won't clear the field, andtyping over leftover text garbles the prompt (this bites every time). `form_input`replaces the whole value cleanly in one shot. See the prompt pattern below.9. **Verify the staged setup** (two thumbnails, correct model, "Match", prompt readscorrectly with no leftover fragments), then click the **send / up-arrow** to generate.Each generation spends tokens (the count shows on the button), so confirm the setup isright before sending rather than firing repeatedly.10. **Wait, then verify** (Step 5). Generations take ~15-45s; a purple "Generating Image"tile marks the pending result, which drops onto the canvas as a new object when done.## Step 4: Prompt pattern (perspective match, preserve the design)Structure every "match a reference" prompt the same way:```Re-render the [SUBJECT] box from image 1 at the exact camera angle and perspective of thebox in image 2: [describe the target angle in words too, e.g. a three-quarter view with thefront face turned slightly to the left, the right side panel clearly visible, seen at aslight downward angle]. Show the ENTIRE box fully in frame, centered, nothing cropped.[Reflection instruction: either "keep the existing soft, subtle, diffuse reflection" or"replace the sharp mirror reflection with a soft, diffuse faded glow, NOT a sharp mirrorreflection."] Keep the [SUBJECT] front artwork, the [TITLE], all text and headlines, the[logo / feature icons / specific elements], and the [colors] exactly the same and undistorted.Photorealistic product box mockup, clean studio lighting.```Two lines that repeatedly save the output:- **"Show the entire box fully in frame, centered, nothing cropped."** Without it, the modelwill happily crop the subject and leave dead space; in one run it dropped the entireright-hand column of feature icons. Name the elements you must keep so it can't quietlyomit them.- **Describe the target angle in words in addition to the reference image.** The referencedoes the heavy lifting, but the words disambiguate.**Worked example (perspective + reflection, both fixed in one pass):**Input: Northwind "solution stack" box, reflection too sharp, wrong perspective; Halcyon bluebox as the angle reference.Prompt: *"Re-render the Northwind product box from image 1 at the exact camera angle andperspective of the box in image 2: a three-quarter view with the front face turned slightlyto the left, the right side panel clearly visible, seen at a slight downward angle, on a darkstudio floor with a soft, subtle, diffuse reflection beneath it (a gentle faded glow, NOT asharp mirror reflection). Keep the Northwind front artwork, the Northwind logo, all text andheadlines, the feature icons, and the orange-and-yellow colors exactly the same andundistorted. Photorealistic product box mockup, clean studio lighting."***Worked example (perspective only, keep the good reflection):**Input: Terrace Dining box, perspective wrong but reflection already good; Halcyon box as anglereference.Prompt: *"...Show the entire box fully in frame, centered, nothing cropped. Keep the existingsoft, subtle, diffuse reflection on the dark studio floor (a gentle faded glow, NOT a sharpmirror reflection). Keep the Terrace Dining front artwork, the TERRACE DINING title, all text, theillustration, and the brand colors exactly the same and undistorted..."*## Step 5: Verify before you call it doneThis is not optional: AI regeneration's failure modes are easy to miss at a glance. Zoom inon the result (`computer` action `zoom`) and check:- **Artwork integrity first, because that's the part AI breaks.** Is every text block present, legible, andspelled right? Are all logos and icons there and undistorted? Colors preserved? Compareagainst the source element-by-element (e.g., all eight feature icons still present).- **Perspective** matches the reference. Note honestly if it's slightly off (e.g., a touchmore top-down than the reference) so Matt can decide if it's close enough.- **Reflection** is what was asked (soft/diffuse vs sharp).- **Composition:** nothing cropped, subject centered, no blank voids.If it failed (cropped, missing elements, garbled or misspelled text, distorted layout):regenerate with a sharper prompt (add/strengthen the "entire box, centered, nothing cropped"and preserve lines) or step up the model (Nano Banana 2 4K / Pro). Generating 2 variants atonce (set count to 2×) is a reasonable hedge for a finicky, subjective fix.## Gotchas: the expensive lessons, in one place- **Chat-pasted images aren't files.** Get the real file into a connected folder first.- **Multiple browsers → you must pick one.** Use `switch_browser`.- **New blank project, never the live canvas.** Avoids stray selections and accidentalgenerations among the prior AI nodes.- **Set mode + model before typing**, because switching mode clears the prompt.- **Use `form_input` to set the prompt.** Cmd+A doesn't clear Kittl's prompt field; re-typinggarbles it with leftover text.- **"Match" aspect + "entire subject, centered, nothing cropped"** to avoid crop/voidfailures and dropped elements.- **Perspective = Remix; local touch-ups = Edit Area.** Edit Area can't change geometry.- **Every generation costs tokens** (shown on the send button), so verify the staged setupbefore sending.- **The browser connection can blip.** If a tool returns "Claude in Chrome is not connected,"it's usually transient: re-run `tabs_context_mcp` and retry; a half-finished drag may needredoing.## Meridian Display Co. reference conventions- **The house perspective reference is the Halcyon blue watch box** (`web_SEG_box_blue...`).When Matt says "match the perspective on the website" or "use the blue M-SEG box," that'sthe angle target.- **Segment box mockups are named `M-SEG*`**, e.g. `M-SEG1 (2).jpg` = the Terrace Dining box,`M-SEG2-2 (1).jpg` = the Northwind box. Reviewer notes reference these filenames; open themto confirm which is which, since the names aren't self-describing.- **Reference/source files usually live in `/Users/you/Downloads/refs`** or the activeCowork workspace.- **Reviewer feedback often comes from Nora** and is phrased loosely ("too sharp," "wrongperspective even though that's the website's"). Treat it as intent to interpret, reconcileambiguities with Matt, and match a concrete reference image rather than a vague adjective.- **Deliverable:** the corrected image sits on the Kittl canvas as a new object. Offer toexport it (download / into `refs`) and to place it back on the main canvas once approved.