← ClaudeAtlas

resolve-ai-noteslisted

Resolve every "@AI" instruction left on a sketch-learn canvas page. A human leaves a note like "@AI tighten this section" as ordinary text anywhere on the page; this skill finds each one via the sketch-learn MCP server, edits the section it points at, clears the note, and loops until none remain. Use when the user says "check/resolve/address the @AI comments/notes on page X", "review page X for @AI notes and update it", or names this skill directly.
MohanTn/mohan-dotfiles · ★ 1 · AI & Automation · score 64
Install: claude install-skill MohanTn/mohan-dotfiles
# resolve-ai-notes: close every @AI note on a sketch-learn page, end to end A human never asks the app itself to change a diagram — they write `@AI: ...` as a plain text element on the canvas, in or near the part they want changed, and hand the page name to the attached agent. This skill is the loop that turns that into a finished, note-free page. ## Prime directive: MCP tools only, never the file `data/pages/*.excalidraw` is the MCP server's storage. Never `Read`/`Edit`/`cat`/`jq`/shell-redirect it — the frontend has the same page open and autosaves, so a direct write gets silently clobbered or clobbers what the human just typed. Every read and write below goes through an MCP tool. ## Tools | Tool | Use | |---|---| | `find_ai_notes` | The worklist. Scans the named page's text elements for `/@ai\b/i` and returns each match's `elementId`, `text`, `x`, `y`. Cheap — no geometry. **Call this first, and again after every fix, until it returns empty.** | | `get_page` | Full elements (with `x`/`y`, and `customData.sl` when the page is a design doc). Needed once per pass to find what a note is *about* — nothing in `find_ai_notes`'s output tells you that on its own. | | `get_section` / `set_section` | If the note's element carries `customData.sl.key`, this page is a `create_design_doc` board — read/replace that section's text directly, keep its `status`. Prefer this over `edit_element` whenever `sl.key` is present. | | `edit_element` | For a freeform page (no `sl` tag): update th