mattrguerra/meridian-skillsmainPrivate on GitHub, published here in full

SKILL.md

Language Markdown14.7 KB242 lines

skills/kittl-ai-edit/SKILL.md

  1. ---
  2. name: kittl-ai-edit
  3. description: >-
  4. Drive Kittl's AI image tools through the Claude in Chrome connector to make targeted edits
  5. or regenerations of an image on a Kittl canvas (match a reference's perspective/angle, fix
  6. or soften a reflection, change a background, add/remove an element, reframe, upscale,
  7. vectorize) while preserving the original artwork, text, logos, and colors. Use whenever
  8. Matt or anyone at Meridian Display Co. wants to fix, correct, redo, restyle, or re-render an image
  9. inside Kittl with its AI features, especially product/box mockups like the M-SEG segment
  10. boxes. Trigger on "fix the perspective to match the reference," "the reflection is too
  11. sharp, soften it," "regenerate this mockup from the Halcyon angle," "redo the Terrace Dining
  12. box," "steer Kittl to correct this render," "edit this image in Kittl with AI," or any time
  13. a Kittl artboard image needs an AI-driven correction from reviewer feedback plus reference
  14. images. Also trigger when handed reviewer edit notes (e.g. from Nora) plus reference files
  15. to apply in Kittl.
  16. ---
  17. # Kittl AI Edit (via Chrome)
  18. Kittl is a browser-based design app with a suite of AI image tools. This skill drives those
  19. tools through the **Claude in Chrome** connector to make a *targeted* change to an image on
  20. a Kittl canvas (the kind of "the client/reviewer wants this one thing fixed" edit) while
  21. keeping the rest of the design intact.
  22. The whole game is: pick the smallest tool that does the job, feed it good references, write
  23. a prompt that protects the artwork, and **verify the result** before calling it done. AI
  24. regeneration is powerful but happy to quietly redraw text, drop elements, or crop the
  25. subject. Most of this skill is about not letting it.
  26. ## Before you start (hard requirements)
  27. - **You need the Claude in Chrome tools.** They're usually deferred, so load them with one
  28. ToolSearch 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`.
  29. - **Kittl must be open and logged in** in the connected browser (app.kittl.com). If a
  30. project is open, its editor lives at `app.kittl.com/project/<id>`.
  31. - **Reference and source images must be real files** in a connected folder (for Meridian, that's
  32. usually `/Users/you/Downloads/refs` or the active Cowork workspace). **Images pasted
  33. into chat do NOT land on the filesystem**, so `file_upload` can't reach them. If Matt pastes
  34. a reference in chat, ask him to drop the actual file into a connected folder (or add it to
  35. the Kittl canvas himself) before you can use it. Don't burn time hunting; just ask.
  36. - **If more than one Chrome is connected**, you'll be blocked until one is chosen. Call
  37. `switch_browser` (it pings every connected extension and lets the user click Connect in the
  38. right one) rather than guessing; you can't tell them apart from device IDs alone.
  39. ## Step 1: Map the request before touching anything
  40. Pin down four things, from the conversation and by *looking at the actual files*:
  41. 1. **Which image** is being edited (open it; don't assume from the name).
  42. 2. **What change**: perspective/angle, reflection, background, add/remove an element,
  43. reframe/aspect, upscale, or vectorize.
  44. 3. **Reference image(s)**, if any: the thing the result should match.
  45. 4. **The preserve list**: exactly what must survive unchanged (title, headlines, body text,
  46. logo, icons, colors, layout).
  47. **Flag contradictions instead of guessing.** Reviewer notes are often ambiguous or have the
  48. files crossed. If a note says "this reflection is the good one" but the file it names is the
  49. one the reviewer elsewhere called "too sharp," stop and reconcile it with Matt before
  50. spending tokens. Getting the direction backwards means regenerating the exact thing the
  51. reviewer rejected.
  52. ## Step 2: Pick the right Kittl AI tool
  53. Reach for the *smallest* tool that does the job. It's cheaper, faster, and less likely to
  54. disturb parts you wanted to keep.
  55. - **Remix / Generate Image (with reference images)**: whole-image regeneration. Use for
  56. perspective/angle changes, restyles, or any change to the box geometry itself. This is the
  57. main tool for "match this reference's angle." Give it the target as a second reference
  58. image; a text description alone is much weaker.
  59. - **Edit Area**: an AI brush. Paint a region, prompt it, and only that region regenerates.
  60. Use when just *part* of the image changes and the rest must stay pixel-identical (e.g.,
  61. soften only the reflection at the base, remove one object, fix one detail). It reads the
  62. whole image for lighting/style context, so edits blend in.
  63. - **Erase & Fill**: remove an object and fill the gap.
  64. - **Reframe**: change aspect ratio / extend the canvas.
  65. - **Background Remover / Upscale / Vectorize**: as named.
  66. **Key limits to remember:**
  67. - **Perspective/geometry cannot be done with Edit Area.** It needs a full Remix, because
  68. you're changing the whole 3D pose.
  69. - **Reflection softening** can go either way: Edit Area on just the reflection zone (keeps the
  70. box pixel-perfect), *or* baked into the Remix prompt if you're already regenerating for
  71. perspective. If you're doing a perspective Remix anyway, fold the reflection fix into the
  72. same prompt: one generation, both fixes.
  73. ## Step 3: The Remix-with-reference workflow (the common case)
  74. This is the path for "re-render this to match the reference's angle while keeping the
  75. design." The gotchas are inline because each one cost real time to learn.
  76. 1. **Connect.** Load the Chrome tools, `tabs_context_mcp` to see tabs, pick the browser if
  77. prompted (`switch_browser`).
  78. 2. **Work in a FRESH blank project, not the busy canvas.** In the menu (top-left
  79. hamburger) → **New Project** → pick Standard (1200×1200 is fine; the source images are
  80. square). The main working canvas (e.g. "Marco's Canvas") is a minefield of prior AI-gen
  81. nodes; a stray click selects one and stages its old prompt, and it's easy to trigger a
  82. generation you didn't mean to. A clean project gives you full control and overwrites
  83. nothing. You can move the finished image wherever it belongs afterward.
  84. 3. **Upload the files.** Open the **Uploads** panel (left sidebar; `find` "Uploads button").
  85. `find` the panel's hidden file input and `file_upload` the **source** image and the
  86. **reference** image (real paths under a connected folder; combined < 10 MB).
  87. 4. **Place the source on the canvas** by clicking its upload thumbnail (newest upload sits
  88. top-left of the grid). If it lands overlapping other art, drag it to a clear spot so you
  89. can select it cleanly later.
  90. 5. **Select the source → click "Remix"** in the contextual toolbar that appears above it.
  91. This stages it as **image 1** in the AI input bar at the bottom.
  92. 6. **Set the mode + model BEFORE typing the prompt.** The generation-mode picker offers
  93. *Agentic AI*, *Generate Image*, *Generate Video*; choose **Generate Image**. Then open
  94. the model picker and choose one suited to faithful mockups:
  95. - **Nano Banana 2**: "realistic imagery & graphic editing"; strong at re-posing while
  96. preserving the design. Good default, cheaper.
  97. - **Nano Banana 2 4K / Nano Banana Pro**: higher-fidelity mockups; use if base quality or
  98. text sharpness isn't good enough.
  99. - *ChatGPT Image 2* tends to redraw more and is more likely to alter text/layout, so avoid
  100. it for "preserve the artwork" jobs.
  101. Set aspect ratio to **Match** (matches the source).
  102. **Why order matters:** switching the mode (e.g., Agentic AI → Generate Image) **clears the
  103. prompt field.** If you type first and switch after, you lose the prompt. Mode and model
  104. first, prompt last.
  105. 7. **Add the reference as image 2.** `find` the hidden file input *inside the AI prompt
  106. toolbar* (distinct from the Uploads panel's input) and `file_upload` the reference to it.
  107. You should now see two thumbnails staged: 1 = source, 2 = reference.
  108. 8. **Write the prompt with `form_input`, not by typing.** `find` the prompt textbox element
  109. and set its value with `form_input`. **Do not rely on Cmd+A to clear it.** Kittl
  110. intercepts Cmd+A as "select all objects on the canvas," so it won't clear the field, and
  111. typing over leftover text garbles the prompt (this bites every time). `form_input`
  112. replaces the whole value cleanly in one shot. See the prompt pattern below.
  113. 9. **Verify the staged setup** (two thumbnails, correct model, "Match", prompt reads
  114. correctly with no leftover fragments), then click the **send / up-arrow** to generate.
  115. Each generation spends tokens (the count shows on the button), so confirm the setup is
  116. right before sending rather than firing repeatedly.
  117. 10. **Wait, then verify** (Step 5). Generations take ~15-45s; a purple "Generating Image"
  118. tile marks the pending result, which drops onto the canvas as a new object when done.
  119. ## Step 4: Prompt pattern (perspective match, preserve the design)
  120. Structure every "match a reference" prompt the same way:
  121. ```
  122. Re-render the [SUBJECT] box from image 1 at the exact camera angle and perspective of the
  123. box in image 2: [describe the target angle in words too, e.g. a three-quarter view with the
  124. front face turned slightly to the left, the right side panel clearly visible, seen at a
  125. slight downward angle]. Show the ENTIRE box fully in frame, centered, nothing cropped.
  126. [Reflection instruction: either "keep the existing soft, subtle, diffuse reflection" or
  127. "replace the sharp mirror reflection with a soft, diffuse faded glow, NOT a sharp mirror
  128. reflection."] Keep the [SUBJECT] front artwork, the [TITLE], all text and headlines, the
  129. [logo / feature icons / specific elements], and the [colors] exactly the same and undistorted.
  130. Photorealistic product box mockup, clean studio lighting.
  131. ```
  132. Two lines that repeatedly save the output:
  133. - **"Show the entire box fully in frame, centered, nothing cropped."** Without it, the model
  134. will happily crop the subject and leave dead space; in one run it dropped the entire
  135. right-hand column of feature icons. Name the elements you must keep so it can't quietly
  136. omit them.
  137. - **Describe the target angle in words in addition to the reference image.** The reference
  138. does the heavy lifting, but the words disambiguate.
  139. **Worked example (perspective + reflection, both fixed in one pass):**
  140. Input: Northwind "solution stack" box, reflection too sharp, wrong perspective; Halcyon blue
  141. box as the angle reference.
  142. Prompt: *"Re-render the Northwind product box from image 1 at the exact camera angle and
  143. perspective of the box in image 2: a three-quarter view with the front face turned slightly
  144. to the left, the right side panel clearly visible, seen at a slight downward angle, on a dark
  145. studio floor with a soft, subtle, diffuse reflection beneath it (a gentle faded glow, NOT a
  146. sharp mirror reflection). Keep the Northwind front artwork, the Northwind logo, all text and
  147. headlines, the feature icons, and the orange-and-yellow colors exactly the same and
  148. undistorted. Photorealistic product box mockup, clean studio lighting."*
  149. **Worked example (perspective only, keep the good reflection):**
  150. Input: Terrace Dining box, perspective wrong but reflection already good; Halcyon box as angle
  151. reference.
  152. Prompt: *"...Show the entire box fully in frame, centered, nothing cropped. Keep the existing
  153. soft, subtle, diffuse reflection on the dark studio floor (a gentle faded glow, NOT a sharp
  154. mirror reflection). Keep the Terrace Dining front artwork, the TERRACE DINING title, all text, the
  155. illustration, and the brand colors exactly the same and undistorted..."*
  156. ## Step 5: Verify before you call it done
  157. This is not optional: AI regeneration's failure modes are easy to miss at a glance. Zoom in
  158. on the result (`computer` action `zoom`) and check:
  159. - **Artwork integrity first, because that's the part AI breaks.** Is every text block present, legible, and
  160. spelled right? Are all logos and icons there and undistorted? Colors preserved? Compare
  161. against the source element-by-element (e.g., all eight feature icons still present).
  162. - **Perspective** matches the reference. Note honestly if it's slightly off (e.g., a touch
  163. more top-down than the reference) so Matt can decide if it's close enough.
  164. - **Reflection** is what was asked (soft/diffuse vs sharp).
  165. - **Composition:** nothing cropped, subject centered, no blank voids.
  166. If it failed (cropped, missing elements, garbled or misspelled text, distorted layout):
  167. regenerate with a sharper prompt (add/strengthen the "entire box, centered, nothing cropped"
  168. and preserve lines) or step up the model (Nano Banana 2 4K / Pro). Generating 2 variants at
  169. once (set count to 2×) is a reasonable hedge for a finicky, subjective fix.
  170. ## Gotchas: the expensive lessons, in one place
  171. - **Chat-pasted images aren't files.** Get the real file into a connected folder first.
  172. - **Multiple browsers → you must pick one.** Use `switch_browser`.
  173. - **New blank project, never the live canvas.** Avoids stray selections and accidental
  174. generations among the prior AI nodes.
  175. - **Set mode + model before typing**, because switching mode clears the prompt.
  176. - **Use `form_input` to set the prompt.** Cmd+A doesn't clear Kittl's prompt field; re-typing
  177. garbles it with leftover text.
  178. - **"Match" aspect + "entire subject, centered, nothing cropped"** to avoid crop/void
  179. failures and dropped elements.
  180. - **Perspective = Remix; local touch-ups = Edit Area.** Edit Area can't change geometry.
  181. - **Every generation costs tokens** (shown on the send button), so verify the staged setup
  182. before sending.
  183. - **The browser connection can blip.** If a tool returns "Claude in Chrome is not connected,"
  184. it's usually transient: re-run `tabs_context_mcp` and retry; a half-finished drag may need
  185. redoing.
  186. ## Meridian Display Co. reference conventions
  187. - **The house perspective reference is the Halcyon blue watch box** (`web_SEG_box_blue...`).
  188. When Matt says "match the perspective on the website" or "use the blue M-SEG box," that's
  189. the angle target.
  190. - **Segment box mockups are named `M-SEG*`**, e.g. `M-SEG1 (2).jpg` = the Terrace Dining box,
  191. `M-SEG2-2 (1).jpg` = the Northwind box. Reviewer notes reference these filenames; open them
  192. to confirm which is which, since the names aren't self-describing.
  193. - **Reference/source files usually live in `/Users/you/Downloads/refs`** or the active
  194. Cowork workspace.
  195. - **Reviewer feedback often comes from Nora** and is phrased loosely ("too sharp," "wrong
  196. perspective even though that's the website's"). Treat it as intent to interpret, reconcile
  197. ambiguities with Matt, and match a concrete reference image rather than a vague adjective.
  198. - **Deliverable:** the corrected image sits on the Kittl canvas as a new object. Offer to
  199. export it (download / into `refs`) and to place it back on the main canvas once approved.