بنقرة واحدة
submit-feedback
Read a UI feedback markdown file exported by designer-notes and apply targeted code revisions
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Read a UI feedback markdown file exported by designer-notes and apply targeted code revisions
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Read a UI feedback markdown file exported by designer-notes and apply targeted code revisions
Wire designer-notes into the current project — adds the script tag, starts the dev server, and opens in browser for Figma-style feedback commenting
Wire designer-notes into the current project — adds the script tag, starts the dev server, and opens in browser for Figma-style feedback commenting
| name | submit-feedback |
| description | Read a UI feedback markdown file exported by designer-notes and apply targeted code revisions |
| user-invocable | true |
| argument-hint | [path/to/feedback.md] |
Read structured UI feedback exported by designer-notes.js and make targeted revisions to the source code.
Locate the feedback file. If a path argument is provided, use it. Otherwise:
feedback-*.md files~/Downloads/ for feedback-*.md files, sorted by most recentRead and parse the feedback file. The file is grouped by page. Extract from each ### Comment N block:
**Element:** line — content inside backticks)**Tag:** line)**Position:** line)> lines)## Page: header)Identify the source files. Map each ## Page: section to the actual HTML file in the project. The page value is the URL path (e.g., test.html, test-pricing.html). Find these files in the project directory.
For each comment, locate the code:
Present a summary table:
| # | Page | Element | Feedback | Proposed Action |
|---|---|---|---|---|
| 1 | test.html | h1 "Welcome..." | Too generic | Revise heading text |
| 2 | test-pricing.html | .price "$49/mo" | Not prominent | Increase font-size |
Ask how to proceed. First check dn-config.json for preferences.autoApply. If true, skip this step and apply all comments automatically. Otherwise ask:
Check for repeat comments. Before applying changes, read feedback-archive.md (if it exists) and check whether any current comments target the same CSS selector as a previously archived comment. If a match is found:
Apply changes for each selected comment:
/skill-name reference (preceded by whitespace or at start of text, matching a known skill), invoke that skill on the targeted element's source file after applying any text-based changes from the same comment. The skill invocation is automatic — the user gave permission by including it. Strip the /skill-name from the comment text before treating the rest as literal feedback. Known skills can be found in dn-config.json in the project directory.#directive references (preceded by whitespace or at start of text) that control execution. Parse these and apply them per-comment:
#opus, #sonnet, #haiku): Spawn a subagent with the specified model to handle this comment's entire processing — both the literal feedback changes AND any skill invocations. Use the Agent tool with model: "sonnet" (or opus/haiku). The subagent prompt must include all context: the file path, the CSS selector, the comment text (with directives stripped), and what skills to invoke. This is mandatory — do NOT process the comment yourself if a model directive is present.#model directive is present on a comment, check dn-config.json for preferences.defaultModel. If set, use that model (spawn a subagent). If not set, process the comment with your current model. This is mandatory — you MUST spawn a subagent with the configured default model. Do NOT process comments directly if a defaultModel is configured, even if your current model matches. The user chose this setting for cost and speed control.#high-effort, #medium-effort, #low-effort): Set the reasoning effort level for this comment's processing. If no effort directive is present, check preferences.defaultEffort in the config.#opus #sonnet), use the last one.dn-config.json.After all changes, present an action log. This is mandatory. Format:
| # | Comment | Model | What Changed | File:Line |
|---|---|---|---|---|
| 1 | "add a line break" | opus | Added <br> before <em> in hero heading | test.html:482 |
| 2 | "fix padding /arrange #sonnet" | sonnet | Ran /arrange on nav section; restructured padding | test.html:100 |
For each row: the original comment text (including any skill invocations and directives), which model processed it (default to current model if no #model directive), a plain-language description of the change, and the file + approximate line number.
Write changelog HTML. Before archiving, update the cumulative .designer-notes/changelog.html file. Create the .designer-notes/ directory if it doesn't exist. This is an append-to-top file — each round adds a new section.
~/.claude/skills/designer-notes/changelog-template.html for the HTML shell (styles, layout, filter bar). If the template exists, use it as the wrapper — replace the <!-- SECTIONS --> comment with the section elements. This ensures consistent styling across sessions. If the template doesn't exist, create a minimal HTML page with system font stack, light background, centered 720px max-width layout, and a filter input.<section> elements from inside <main><section> for this round with an <h2> heading (timestamp) and a simple table (columns: #, Comment, What Changed, File). Each table row cell for File should have class="file".Archive feedback. After all changes are applied:
curl -s -X POST http://localhost:3847/archive-feedback
feedback-archive.md (appending if it already exists) and signals the browser client to automatically clear all pins, comments, undo history, dismiss the panel, and scroll to top.After the action log, let the user know changes are live and the browser will reset automatically.
Check for updates. Run the update checker:
node ~/.claude/skills/designer-notes/check-update.js
If it produces JSON output, mention at the end of your message: designer-notes v{latest} is available (you have v{installed}). Run {command} to update. If no output, skip this — the user is up to date. Only run this check once per session — if you've already shown an update nudge in this conversation, skip it on subsequent runs.
The file follows this structure (generated by designer-notes.js):
# UI Feedback
Generated: [timestamp]
Total comments: [N]
Viewport: [width]x[height]
---
## Page: [page-path]
### Comment 1
**Element:** `[CSS selector]`
**Tag:** [TAG] | **Text:** "[preview]"
**Position:** click at (x, y) on page; offset (x, y) within element
**Element bounds:** WxH at (x, y)
> [The actual feedback text]
---
## Page: [another-page-path]
### Comment 2
...
@media query, not the base styles)