原始内容
name: hmm description: Send LLM output to a browser-based feedback and commenting UI for review. Use when the user wants to annotate, comment on, or edit an LLM response with inline track changes and structured feedback export. license: MIT metadata: author: ryanlchan version: "1.1" allowed-tools: Bash Read
Send your last response to the llm-feedback commenting UI for review, then wait for the user to send feedback back.
Steps
- Determine the skill root directory (the directory containing this
SKILL.mdfile). - Check for a saved mode preference:
MODE="$(bash "$SKILL_ROOT/scripts/mode-preference.sh" get || true)" - If there is no saved preference, ask:
Do you want to use the local hmm UI with direct send-back, or the hosted web UI at https://hmm.saddlepeaks.com? I can remember that choice for later.After the user answers, save it:
If the user explicitly asks to switch modes later, update the saved preference.bash "$SKILL_ROOT/scripts/mode-preference.sh" set local # or bash "$SKILL_ROOT/scripts/mode-preference.sh" set web - Write your last response to a temporary file:
TMPDIR=$(mktemp -d) cat > "$TMPDIR/.hmm_preload.txt" << 'PRELOAD_EOF' <your last response here> PRELOAD_EOF - If
MODE=local, run the local server and poll for feedback:
Tell the user the feedback UI is open at http://localhost:8723. Let them know they can click "Send to Claude" in the summary modal to send feedback directly back. Then poll:FEEDBACK_FILE=$(bash "$SKILL_ROOT/scripts/serve.sh" "$TMPDIR/.hmm_preload.txt")while [ ! -f "$FEEDBACK_FILE" ]; do sleep 2; done cat "$FEEDBACK_FILE" - If
MODE=web, open the hosted app with the response preloaded:
The preload is encoded in the URL fragment, so it stays out of query params and referer headers, and the app removes it from the address bar after load. Tell the user the feedback UI is open atWEB_URL="$(node "$SKILL_ROOT/scripts/build-web-url.js" "https://hmm.saddlepeaks.com" "$TMPDIR/.hmm_preload.txt")" open "$WEB_URL"https://hmm.saddlepeaks.com, and that in web mode they should use Copy to Clipboard or Download Markdown and paste the feedback back into chat when ready. - When feedback arrives, read it and act on it. The feedback is structured markdown containing the user's comments and edits.
What the UI does
- Displays the text in an editable view with inline track changes
- Users can select text and add comments
- The "Summarize" button exports all comments and edits as structured markdown
- Local mode includes "Send to Claude" and posts feedback back so Claude can act on it
- Hosted web mode supports copy/download export instead of direct send-back
- Supports both desktop (sidebar comments) and mobile (bottom sheet) layouts