Agent skill

Iterating With AI And MCP

by rosuH in rosuH/EasyWatermark

A skill your agent uses to drive Compose HotSwan from an AI agent (Claude Code, Cursor, any MCP client) so the agent can edit a Kotlin file, trigger a hot reload, capture a device screenshot…

Apache-2.0Auto-check passedAgent Workflows

Install Iterating With AI And MCP

skills CLI
$ npx skills add rosuH/EasyWatermark --skill iterating-with-ai-and-mcp -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install rosuH/EasyWatermark iterating-with-ai-and-mcp --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/rosuH/EasyWatermark.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/iterating-with-ai-and-mcp .claude/skills/iterating-with-ai-and-mcp && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
iterating-with-ai-and-mcp
GitHub stars
1.9k
Used in
1 other repo
Token cost
~2.7k tokens
SKILL.md length
1,122 words
Files
1
Skills in repo
28
Repo updated
First seen
Licence
Apache-2.0

At a glance

A skill your agent uses to drive Compose HotSwan from an AI agent (Claude Code, Cursor, any MCP client) so the agent can edit a Kotlin file, trigger a hot reload, capture a device screenshot…

  • Works in 7 steps: Check status before issuing any edit → Open a snapshot session → Edit the target file → …
  • Drive Compose HotSwan from an AI agent (Claude Code
  • SKILL.md covers When to use this skill, When NOT to use this skill, Prerequisites and MCP tools (verbatim names), plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Iterating With AI And MCP is an agent skill from rosuH/EasyWatermark. Use this skill to drive Compose HotSwan from an AI agent (Claude Code, Cursor, any MCP client) so the agent can edit a Kotlin file, trigger a hot reload, capture a device screenshot, evaluate the result against a design intent, and iterate without a human in the loop. Covers the seven HotSwan MCP tools (hotswangetstatus, hotswanreload, hotswantakescreenshot, hotswanstartsnapshot, hotswanstopsnapshot, hotswanselectvariant, hotswanbuildandinstall), the canonical edit-reload-screenshot loop, snapshot-based rollback…

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering MCP servers. It works with Model Context Protocol and Kotlin. The repository describes itself as: 🔒 🖼 Securely, easily add a watermark to your sensitive photos. 安全、简单地为你的敏感照片添加水印,防止被人泄露、利用. The licence is Apache-2.0.

When your agent uses it

  • Drive Compose HotSwan from an AI agent (Claude Code
  • Any MCP client) so the agent can edit a Kotlin file
  • Trigger a hot reload
  • Capture a device screenshot

Example prompts

  • “get the AI to tune this screen until it matches a mock”
  • “can the AI see what changed?”
  • “can the AI screenshot the device?”
  • “/iterating-with-ai-and-mcp”

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Check status before issuing any edit
  2. Open a snapshot session
  3. Edit the target file
  4. Trigger reload and read the tier
  5. Screenshot and evaluate
  6. Fall back for schema changes
  7. Close the loop

What it can do on your machine

Read from SKILL.md and the folder at commit 61223db. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com
    • plugins.jetbrains.com
    • modelcontextprotocol.io

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Iterating With AI And MCP loads about 2.7k tokens when it runs. Until then it costs about 221 tokens; SKILL.md has 1,122 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~221
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from rosuH/EasyWatermark at commit 61223db, republished under its Apache-2.0 licence (© rosuH). 1,122 words, ~2,725 tokens.

Download SKILL.mdSave it as .claude/skills/iterating-with-ai-and-mcp/SKILL.md (or your agent's skills folder).
name
iterating-with-ai-and-mcp
description
Use this skill to drive Compose HotSwan from an AI agent (Claude Code, Cursor, any MCP client) so the agent can edit a Kotlin file, trigger a hot reload, capture a device screenshot, evaluate the result against a design intent, and iterate without a human in the loop. Covers the seven HotSwan MCP tools (hotswan_get_status, hotswan_reload, hotswan_take_screenshot, hotswan_start_snapshot, hotswan_stop_snapshot, hotswan_select_variant, hotswan_build_and_install), the canonical edit-reload-screenshot loop, snapshot-based rollback, and when to fall back to a full install for schema changes. Use when the developer says "get the AI to tune this screen until it matches a mock", asks "can the AI see what changed?" or "can the AI screenshot the device?", sets up a Claude Code or Cursor workflow that needs MCP tool access, or wants AI-driven UI iteration.
license
Apache-2.0. See LICENSE for complete terms.
metadata.author
Jaewoong Eum (skydoves)
metadata.keywords
jetpack-compose, performance, hot-reload, hotswan, mcp, ai-agent, claude-code, cursor, snapshot

Iterating with AI and MCP: let the agent edit, reload, screenshot, and iterate

Compose HotSwan ships an embedded HTTP MCP server inside the IntelliJ plugin. Any MCP-compatible AI client (Claude Code, Cursor, any tool that speaks Model Context Protocol) can call its tools to drive the iteration loop. The agent edits a Kotlin file, calls hotswan_reload, captures a screenshot of the running device, evaluates the result against the design intent, and decides the next change. Cycle time is comparable to the human loop, a few seconds per iteration, so the agent can converge on a UI tweak without a human steering each step.

This skill teaches the canonical agent loop, the seven MCP tools (verbatim names), and the safety habits (status check first, snapshot wrapping for rollback, fallback to full install for schema changes) that keep the loop reliable.

When to use this skill

  • The developer wants AI-driven UI iteration: "tune this screen until it matches the mock", "let the agent pick a colour".
  • The developer wants the AI to verify its own edits visually instead of guessing whether the change worked.
  • The developer is wiring up a Claude Code or Cursor workflow that needs MCP tool access to a running app.
  • The user asks "can the AI see what changed?", "can the AI screenshot the device?", "how does Claude Code drive HotSwan?".
  • The user mentions "MCP server", "hotswan_reload", "hotswan_take_screenshot", "agent loop", or "snapshot rollback".

When NOT to use this skill

  • Pure code review without runtime feedback (no need for MCP tools at all).
  • Release-grade visual regression testing. Use Macrobenchmark plus a screenshot diff harness, not HotSwan snapshots. Cross-link ../../measurement/generating-baseline-profiles/SKILL.md.
  • The change in question would force a full rebuild (parameter add, constructor change, new resource ID). Read ../understanding-hot-reload-limits/SKILL.md first to classify the edit before reaching for the MCP loop.
  • The reload keeps escalating to tier 2 or tier 3 and losing state. Fix that with ../preserving-state-across-reloads/SKILL.md before adding an autonomous loop on top.

Prerequisites

  • Compose HotSwan installed and the IDE plugin active. Setup lives in ../setting-up-compose-hotswan/SKILL.md.
  • The target app is already running on a connected device or emulator with the HotSwan watcher state reported as WATCHING.
  • An MCP-capable AI client (Claude Code, Cursor) with MCP server discovery enabled and pointed at the HotSwan plugin's HTTP MCP endpoint.

MCP tools (verbatim names)

The HotSwan MCP server exposes exactly these seven tools. The agent MUST NOT invent additional tool names.

  • hotswan_get_status(): returns device, app, and watcher state. Call once at the start of every loop to confirm the agent has a connected target and that the watcher is WATCHING.
  • hotswan_reload(filePaths): explicit reload trigger for the listed file paths. Returns the tier (1 / 2 / 3) that ran. The agent reads the tier to decide whether the previous edit kept the loop fast.
  • hotswan_take_screenshot(): capture the current device screen. Returns image bytes or a path the agent can read back and inspect.
  • hotswan_start_snapshot(): begin a snapshot session. After this call, HotSwan auto-captures a screenshot and source state after every reload, so the agent can roll back to any intermediate variant.
  • hotswan_stop_snapshot(): end the current snapshot session and finalise the history.
  • hotswan_select_variant(): pick a preferred snapshot from the recorded history. Used to roll the source code back to the chosen variant when the agent decides an earlier iteration was the best one.
  • hotswan_build_and_install(): fall back to a full install. Used when the agent detects a schema change (new parameter, constructor change, new resource ID) that the hot reload pipeline cannot handle. Treat this as a fallback, not a default.

Workflow

The canonical agent loop:

1. Check status before issuing any edit

Call hotswan_get_status(). If watcher is not WATCHING, surface the issue back to the human and stop. The reload tool will silently no-op if the watcher is not running and the agent will burn cycles wondering why nothing changed on screen.

2. Open a snapshot session

Call hotswan_start_snapshot() so the loop has a visual record. Each reload inside the session auto-captures, which lets the agent (or the human reviewing afterwards) compare iterations and roll back to any variant.

Show full SKILL.md (449 more words)Show less
3. Edit the target file

Edit the Kotlin file using whatever file-edit tool the agent has. Keep the change inside one composable scope when possible so the reload stays in tier 1 (cross-link ../preserving-state-across-reloads/SKILL.md).

4. Trigger reload and read the tier

Call hotswan_reload(["app/src/main/kotlin/com/example/Foo.kt"]). Read the returned tier. Tier 1 means the loop stayed fast; tier 2 or tier 3 means state was likely lost and the agent should expect to re-establish navigation or transient UI state before the next screenshot.

5. Screenshot and evaluate

Call hotswan_take_screenshot(). Compare the returned image to the design intent. If acceptable, exit the loop. If not, return to step 3 with a refined edit.

6. Fall back for schema changes

If the planned next edit changes a function signature, constructor, interface, or adds a new resource ID, call hotswan_build_and_install() to do a full install before continuing. Do not hammer hotswan_reload on a schema-violating edit; the reload tool will report failure and the loop will stall.

7. Close the loop

When the iteration is acceptable, call hotswan_stop_snapshot(). Optionally call hotswan_select_variant() to roll the source back to a preferred intermediate variant if the final state was not the best one.

Patterns

Pattern: skipping the status check
text
// WRONG
1. Edit file
2. Call hotswan_reload
3. Wonder why nothing happened
// WRONG because: HotSwan needs the app running and the watcher in WATCHING state. If neither is true the reload silently no-ops. Always call hotswan_get_status first.
text
// RIGHT
1. status = hotswan_get_status()
2. require(status.watcher == "WATCHING")
3. edit, reload, screenshot, iterate
Pattern: reloading without a snapshot session
text
// WRONG (for visual iteration)
edit -> reload -> screenshot -> discard -> repeat
// WRONG because: the agent loses the ability to roll back to a previous variant. Always wrap visual iteration loops in hotswan_start_snapshot / hotswan_stop_snapshot.
text
// RIGHT
hotswan_start_snapshot()
repeat { edit; hotswan_reload([target]); hotswan_take_screenshot() }
hotswan_stop_snapshot()
Pattern: schema change inside a tight loop
text
// WRONG
Edit a composable to add a new parameter, then call hotswan_reload.
// WRONG because: parameter additions are a class-schema change. ART rejects the swap and hotswan_reload reports failure. The agent must detect the schema change first and call hotswan_build_and_install instead.
text
// RIGHT
if (editChangesSchema(plannedEdit)) {
    applyEdit(target)
    hotswan_build_and_install()
} else {
    applyEdit(target)
    hotswan_reload([target])
}

Cross-link ../understanding-hot-reload-limits/SKILL.md for the full list of schema-violating edits.

Pattern: full canonical loop
text
// RIGHT
status = hotswan_get_status()
require(status.watcher == "WATCHING")
hotswan_start_snapshot()
repeat {
    edit_file(target)
    result = hotswan_reload([target])
    screenshot = hotswan_take_screenshot()
    if (accepts(screenshot, intent)) break
}
hotswan_stop_snapshot()

The loop has exactly four moving parts: edit, reload, screenshot, evaluate. Everything else is bookkeeping (status check, snapshot wrapping, optional rollback).

Mandatory rules

  • MUST call hotswan_get_status() at the start of every loop and confirm the watcher state before issuing edits.
  • MUST wrap visual iteration loops in hotswan_start_snapshot() and hotswan_stop_snapshot() so the agent can revert.
  • MUST NOT invent MCP tool names. Only use the seven names listed in the MCP tools section: hotswan_get_status, hotswan_reload, hotswan_take_screenshot, hotswan_start_snapshot, hotswan_stop_snapshot, hotswan_select_variant, hotswan_build_and_install.
  • MUST NOT call hotswan_build_and_install() inside a tight inner loop. It is a fallback for schema changes, not a default; using it as the default destroys the speed advantage of HotSwan.
  • PREFERRED: combine with ../understanding-hot-reload-limits/SKILL.md so the agent classifies the planned edit before reaching for hotswan_reload.
  • PREFERRED: combine with ../preserving-state-across-reloads/SKILL.md so the agent recognises when a reload escalated to tier 2 or tier 3 and loses transient UI state.

Verification

  • hotswan_get_status() returns WATCHING before the loop runs
  • Each hotswan_reload call reports the tier (1, 2, or 3)
  • hotswan_take_screenshot() returns image bytes the agent can inspect
  • Snapshot history is non-empty after the loop and hotswan_stop_snapshot() finalises the session
  • Schema-violating edits route through hotswan_build_and_install() instead of hotswan_reload

References

© rosuH, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/iterating-with-ai-and-mcp of rosuH/EasyWatermark.

Open the folder on GitHubat commit 61223db

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in rosuH/EasyWatermark, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Iterating With AI And MCP next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Iterating With AI And MCP compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Iterating With AI And MCP this skillrosuH/EasyWatermark1.9k1 repos~2.7kAutomated safety check: PassApache-2.0
Burp Scansix2dez/burp-ai-agent1.5k—~6.4kAutomated safety check: WarnMIT
Healthmd CLI QACodyBontecou/health-md230—~4kAutomated safety check: PassAGPL-3.0
Kotlin MCP Server Generatorgithub/awesome-copilot40k1 repos~2.7kAutomated safety check: PassMIT
MCP Server Builderanthropics/skills180k63 repos~2.3kAutomated safety check: PassApache-2.0
MCP Server BuildershareAI-lab/learn-claude-code78k4 repos~1.2kAutomated safety check: PassMIT

Similar skills

  • Burp Scan

    six2dez/burp-ai-agent

    Burp Suite scanning via MCP tools — passive traffic analysis, active payload testing, OOB verification, and vulnerability reporting using Burp's proxy, HTTP sender, Collaborator, and scanner APIs.

    1.5k GitHub stars~6.4k tokensUpdated yesterday
    SecurityAuto-check: warnings
  • Healthmd CLI QA

    CodyBontecou/health-md

    Test the standalone Health.md CLI, portable healthmd-mcp server, and direct mobile paths.

    230 GitHub stars~4k tokensUpdated yesterday
    MobileAuto-check passed
  • Kotlin MCP Server Generator

    github/awesome-copilot

    Official

    Generate a complete Kotlin MCP server project with proper structure, dependencies, and implementation using the official io.modelcontextprotocol:kotlin-sdk library.

    40k GitHub starsUsed in 1 repo~2.7k tokens
    MobileAuto-check passed
  • MCP Server Builder

    anthropics/skills

    Official

    Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.

    180k GitHub starsUsed in 63 repos~2.3k tokens
    Agent WorkflowsAuto-check passed
  • MCP Server Builder

    shareAI-lab/learn-claude-code

    Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.

    78k GitHub starsUsed in 4 repos~1.2k tokens
    Agent WorkflowsAuto-check passed
  • MCP Integration for Plugins

    anthropics/claude-plugins-official

    Official

    Explains how to bundle Model Context Protocol servers in a Claude Code plugin, covering config files, stdio, SSE, HTTP and WebSocket server types, and authentication.

    38k GitHub starsUsed in 11 repos~3.1k tokens
    Agent WorkflowsAuto-check passed

More from rosuH/EasyWatermark

All 23 skills in this repo
  • Deferring State Reads

    rosuH/EasyWatermark

    A skill your agent uses to push frequently-changing Jetpack Compose state reads (scroll position, animation values, drag offsets) out of the Composition phase and down into Layout or Draw using…

    1.9k GitHub starsUsed in 1 repo~3.8k tokens
    Auto-check passed
  • Diagnosing Compose Stability

    rosuH/EasyWatermark

    A skill your agent uses to diagnose Jetpack Compose stability problems by enabling and reading the Compose Compiler Reports (classes.txt, composables.txt, composables.csv, module.json).

    1.9k GitHub starsUsed in 1 repo~3.3k tokens
    Auto-check passed
  • Generating Baseline Profiles

    rosuH/EasyWatermark

    A skill your agent uses to generate and measure Jetpack Compose Baseline Profiles end-to-end with the AGP 8.2+ Baseline Profile Generator module and the Macrobenchmark harness.

    1.9k GitHub starsUsed in 1 repo~5k tokens
    Auto-check passed
  • Migrating To Modifier Node

    rosuH/EasyWatermark

    A skill your agent uses to author new custom Jetpack Compose modifiers and migrate legacy ones from Modifier.composed { } to Modifier.Node + ModifierNodeElement<T.

    1.9k GitHub starsUsed in 1 repo~5k tokens
    Auto-check passed
  • Stabilizing Compose Types

    rosuH/EasyWatermark

    A skill your agent uses to fix unstable Jetpack Compose types once a stability diagnosis has identified them.

    1.9k GitHub starsUsed in 1 repo~4.4k tokens
    Auto-check passed
  • A skill your agent uses to explain why the Compose compiler classified a class or composable parameter as stable, runtime, unknown, or unstable.

    1.9k GitHub starsUsed in 1 repo~4.3k tokens
    Auto-check passed

Categories

Questions about Iterating With AI And MCP

What does Iterating With AI And MCP do?

A skill your agent uses to drive Compose HotSwan from an AI agent (Claude Code, Cursor, any MCP client) so the agent can edit a Kotlin file, trigger a hot reload, capture a device screenshot…. Iterating With AI And MCP is an agent skill from rosuH/EasyWatermark. Use this skill to drive Compose HotSwan from an AI agent (Claude Code, Cursor, any MCP client) so the agent can edit a Kotlin file, trigger a hot reload, capture a device screenshot, evaluate the result against a design intent, and iterate without a human in the loop.

When should I use Iterating With AI And MCP?

Iterating With AI And MCP fits situations like: drive Compose HotSwan from an AI agent (Claude Code; any MCP client) so the agent can edit a Kotlin file; trigger a hot reload; capture a device screenshot.

How do I install Iterating With AI And MCP in Claude Code?

Run `npx skills add rosuH/EasyWatermark --skill iterating-with-ai-and-mcp -a claude-code`. Or copy the skill folder (.agents/skills/iterating-with-ai-and-mcp in rosuH/EasyWatermark) into .claude/skills/iterating-with-ai-and-mcp in your project. Claude Code loads it when a task matches its description.

How do I install Iterating With AI And MCP in Codex?

Run `npx skills add rosuH/EasyWatermark --skill iterating-with-ai-and-mcp -a codex`. Or copy the skill folder (.agents/skills/iterating-with-ai-and-mcp in rosuH/EasyWatermark) into .agents/skills/iterating-with-ai-and-mcp in your project. Codex loads it when a task matches its description.

Can I use Iterating With AI And MCP in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add rosuH/EasyWatermark --skill iterating-with-ai-and-mcp -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/iterating-with-ai-and-mcp, .gemini/skills/iterating-with-ai-and-mcp, .github/skills/iterating-with-ai-and-mcp and .opencode/skills/iterating-with-ai-and-mcp in your project.

What does Iterating With AI And MCP need to run?

SKILL.md names no scripts, command-line tools or credentials: Iterating With AI And MCP is instructions for the agent only.

Does Iterating With AI And MCP access the network?

SKILL.md names 3 domains. As links in the text: github.com, plugins.jetbrains.com and modelcontextprotocol.io. This is read from the text; nothing was executed.

Is Iterating With AI And MCP safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Iterating With AI And MCP use?

Iterating With AI And MCP is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Iterating With AI And MCP use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Iterating With AI And MCP?

Skills that share tags, products or a category with Iterating With AI And MCP: Burp Scan (six2dez/burp-ai-agent, 1.5k stars), Healthmd CLI QA (CodyBontecou/health-md, 230 stars), Kotlin MCP Server Generator (github/awesome-copilot, 40k stars) and MCP Server Builder (anthropics/skills, 180k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Iterating With AI And MCP?

rosuH (a GitHub user) maintains it in rosuH/EasyWatermark, which has 1,895 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 10, 2026.

Source: rosuH/EasyWatermark on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.