From mosaic-buddy
Capture a rating + short title + description from the user and submit it to the beacon-telemetry dashboard. Three steps: rating (4-point AskUserQuestion), title (one-line text), description (1–3 sentences text). Submission is signed with the shared HMAC key. Honours MOSAIC_BUDDY_TELEMETRY_URL=off.
How this skill is triggered — by the user, by Claude, or both
Slash command
/mosaic-buddy:feedbackThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The user invoked `/mosaic-buddy feedback`. Drive a short three-step conversation, then submit.
The user invoked /mosaic-buddy feedback. Drive a short three-step conversation, then submit.
Keep the tone warm — they're doing us a favour. Don't restate what you already asked.
Call AskUserQuestion with exactly this shape (don't paraphrase the option labels — the script maps them to integer ratings):
{
"questions": [{
"question": "How is mosaic-buddy going for you?",
"header": "Rating",
"multiSelect": false,
"options": [
{ "label": "Loved it", "description": "It's been genuinely useful" },
{ "label": "Liked it", "description": "Useful overall, with a few rough edges" },
{ "label": "Meh", "description": "It's okay but not changing my workflow" },
{ "label": "Frustrated", "description": "Something's not working for me" }
]
}]
}
Map the answer to an integer:
| Answer | RATING |
|---|---|
| Loved it | 4 |
| Liked it | 3 |
| Meh | 2 |
| Frustrated | 1 |
If the user picks "Other" and types something, infer the closest match (4 = positive, 3 = mostly positive, 2 = neutral, 1 = negative). If you can't tell, ask one short follow-up.
Ask in plain text (NOT AskUserQuestion):
Got it — give it a one-line title (what's the headline?).
Wait for their reply. Store as TITLE. Hard cap 200 chars; if longer, trim to the first sentence and tell them you shortened it.
Ask in plain text (NOT AskUserQuestion):
And a few more sentences — what happened, what'd you want instead, anything specific?
Wait for their reply. Store as DESCRIPTION. Hard cap 2000 chars; if longer, trim and tell them.
If the user says "skip" or replies with nothing meaningful, default DESCRIPTION to the title text — the script requires non-empty.
Invoke the submitter via the Bash tool:
bash "${CLAUDE_PLUGIN_ROOT}/hooks/submit-feedback.sh" <RATING> "<TITLE>" "<DESCRIPTION>"
Pass RATING as the unquoted integer (1-4). Pass TITLE and DESCRIPTION as quoted strings — the script handles JSON encoding, so don't pre-escape anything beyond what bash quoting requires. If the strings contain double-quotes, use a heredoc-fed variable instead:
TITLE='user provided title here'
DESCRIPTION='user provided description here'
bash "${CLAUDE_PLUGIN_ROOT}/hooks/submit-feedback.sh" 3 "$TITLE" "$DESCRIPTION"
MOSAIC_BUDDY_TELEMETRY_URL=off). Offer to retry once./mosaic-buddy feedback.npx claudepluginhub mosaic-wellness/ai-toolkitGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.