triage-feedback
Use after an agent or reviewer has produced a batch of proposed changes to text files, such as a deep-quality review, Bugbot or code-review findings, a…
Skill by atrnh
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/atrnh-triage-feedback
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: data, productivity, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/triage-feedback
What's inside
- Skill name
triage-feedback- Description
- Use after an agent or reviewer has produced a batch of proposed changes to text files, such as a deep-quality review, Bugbot or code-review findings, a subagent's critique, or review notes pasted into the chat, and the user wants to decide what to act on. Builds a local dashboard where the user approves or rejects each change, seeing its problem, evidence, the case against it, the affected lines, and the exact replacement. Then applies the approved fixes or drafts a GitHub review. Use when the user asks for a triage dashboard, wants to go through feedback one item at a time, or asks which suggestions to accept. Do NOT use for triaging issues in an issue tracker, or for decisions that aren't tied to specific text in files.
- License
- MIT
- Instructions
- 237 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (7)
- SKILL.md
- apply.py · dashboard/
- build.py · dashboard/
- decisions.py · dashboard/
- review.py · dashboard/
- serve.py · dashboard/
- template.html · dashboard/
SKILL.md (first lines)
# Triage feedback
The dashboard turns a batch of feedback into a page where the user approves or rejects each
proposed fix. Each card shows the problem, its evidence, the case against changing it, the
affected lines in context, and the exact replacement. The scripts in this skill's `dashboard/`
folder need only Python 3 and Git; posting a review also needs `gh`.
| Script | Does |
|---|---|
| `build.py RUN/findings.json [--check]` | Checks every finding against the files and writes `index.html` and `resolved.json` |
| `serve.py start RUN` / `stop RUN` | Serves the page on localhost and saves decisions to `RUN/decisions.json` |
| `apply.py RUN [--dry-run] [--root PATH]` | Applies approved fixes to the files |
| `review.py RUN --summary TEXT` | Drafts a GitHub review from approved fixes as `RUN/review.json` (doesn't post) |
`apply.py` and `review.py` read approvals from `decisions.json`. When the user pasted their
decisions into the chat instead, pass `--approve F1,F3,...`.
## 1. Gather the feedback
The feedback can be a review you wrote in this session, another agent's output, a file, or
notes pasted into the chat. If a review skill produced it, follow that skill's guidance on IDs,
categories, and priorities.
Cards need a location in a file. Feedback about a design choice, a plan, or anything else
without one doesn't belong on the page. Leave it out, and tell the user which items you left
out so they can decide on them in the chat.
## 2. Make a run folder
Use `/tmp/feedback-triage/<slug>/`, for example `/tmp/feedback-triage/pr-42/` or
`/tmp/feedback-triage/launch-email/`. Everything for this triage lives there.
## 3. Point at the source
Line numbers must come from the exact text the user will judge.
- **Pull request.** Check out the PR's head commit in its own worktree, so local edits on
the user's branch can't shift lines:
```bash
gh pr view N --json headRefOid,baseRefName
git fetch origin <baseRefName> pull/N/head
git worktree add --detach /tmp/feedback-triage/pr-N/checkout <headRefOid>
```
Source: `{"kind": "pr", "root": "checkout", "url": "<PR URL>", "base": "origin/<baseRefName>"}`.
GitHub links to each snippet are added automatically.
- **The user's own changes.** Use their checkout as `root`. Set `base` to what the work
branched from (such as `origin/main`), or `HEAD` to cover only uncommitted changes. Kind
`changes`.
- **Plain files.** `root` is the folder that contains them. Kind `files`, and no `base`.
- **Pasted text** (an email, a draft in the chat). Save it verbatim to
`RUN/source/<name>.md` (or `.txt`, `.rst`, whatever fits), then treat it as plain files with
`"root": "source"`.
A relative `root` is resolved from the run folder.
## 4. Check each item before making a card
Treat feedback as claims to check, including feedback you wrote yourself. Reviewers, and
agents especially, cite lines that don't exist, flag problems the text doesn't have, and
report the same problem more than once.
- **Find the text.** If the quoted text or the cited lines aren't there, or the problem isn't
where the feedback says, drop the item.
- **Confirm the problem.** Check it against the source, the code, or the facts where you can.
If you can't confirm it, keep the card and begin its `problem` with "Unverified:".
- **Merge duplicates** into one card, and name every item it covers in `problem`.
- **Keep items you disagree with** when the user might still want them, and put your
disagreement in `counter`.
## 5. Write `findings.json`
Give each card an ID. Keep any IDs the feedback already uses, so the user can refer to items
the same way in the chat and on the page. If it has none, number the items `F1`, `F2`, and so
on, in the order they appear. Use the feedback's own categories when it has them. Otherwise,
pick a few plain ones, such as Bug, Accuracy, Clarity, and Style. Priority 1 breaks the work or
misleads its reader, 2 noticeably hurts it, and 3 is polish.
The cards are only as useful as their fields:
- **`counter`** is the strongest honest case against making the change: scope, audience,
intent, or cost. It's what lets the user reject with confidence. Don't leave it empty or
make it a straw man.
- **`replacement`** is the exact text of whole lines, with the file's indentation, that
replaces the lines from `start` to `end`. Use `""` to delete them. Prefer one tight fix per
problem. When a finding needs a structural move with no line-level edit, use `fixNote`
instead.
- **Anchor with `match`** (a phrase quoted from the file) rather than line numbers wherever
you can. The build finds the lines for you and fails if the quote is missing or matches
more than once. Use `occurrence` (1-based) only when repetition is unavoidable.
```json
{
"title": "PR #42 review",
"source": {
"kind": "pr",
"root": "checkout",
"label": "owner/repo#42",
"url": "https://github.com/owner/repo/pull/42",
"base": "origin/main"
},
"findings": [
{
"id": "F1",
"category": "Accuracy",
"priority": 1,
"title": "Install guide names the wrong minimum Python",
"problem": "The guide says Python 3.8 or later, but `pyproject.toml` requires 3.10.",
"evidence": [{"text": "pyproject.toml, requires-python", "url": "https://..."}],
"counter": "Older versions may still run the parts of the tool this guide covers.",
"comment": "",
"context": [
{"file": "docs/install.md", "match": "Python 3.8 or later"},
{"file": "pyproject.toml", "match": "requires-python", "around": 0,
"label": "What the package requires"}
],
"fixes": [
{"file": "docs/install.md", "match": "Python 3.8 or later",From atrnh/skills, MIT.
More from atrnh/skills
- 0.570score
review-fiction
atrnh
Reviews a chapter of the user's fiction and produces a two-column HTML critique page beside the manuscript, with the prose on the left and anchored comments…
SkillAFreshness: AClaude Code +9 - 0.570score
create-mcq
atrnh
Generates multiple choice questions (MCQs) from text or documents provided by the user.
SkillAFreshness: AClaude Code +9 - 0.570score
deep-quality-review
atrnh
Reviews any written material (docs, guides, lectures, labs, READMEs, essays, proposals, specs, emails) for both functional quality and deep quality, using the…
SkillAFreshness: AClaude Code +9 - 0.570score
create-lecture
atrnh
Generates a structured lecture from an unordered list of topics.
SkillAFreshness: AClaude Code +9 - 0.567score
story-bible
atrnh
Build, reconcile, and retrieve an internal fiction wiki from manuscripts and author notes, preserving evidence, canon status, chronology, and character…
SkillAFreshness: AClaude Code +9 - 0.565score
review-lab
atrnh
Reviews lab content drafts from subject matter experts and provides structured editorial feedback.
SkillAFreshness: AClaude Code +9 - 0.565score
beep
atrnh
Write and send communications on Ashley's behalf as Beep, her clearly identified robot assistant.
SkillAFreshness: AClaude Code +9 - 0.565score
line-editor
atrnh
Use when the author wants a line edit, prose notes, or sentence-level feedback on a fiction chapter, scene, or passage.
SkillAFreshness: AClaude Code +9 - 0.565score
vaultit
atrnh
Save an assistant response to Obsidian from supplied text, a chat link or message reference, or the immediately preceding response.
SkillAFreshness: AClaude Code +9 - 0.565score
student-question-pass
atrnh
Reviews curriculum material by roleplaying as a target learner, adding student questions as source comments, then interactively turning selected questions…
SkillAFreshness: AClaude Code +9 - 0.561score
grill-my-story
atrnh
Interview a fiction author to explore an uncertain story idea or pressure-test a premise, character choice, scene, or plot problem.
SkillAFreshness: AClaude Code +9 - 0.561score
developmental-editor
atrnh
Give candid developmental critique of fiction or a spoiler-bounded first-reader response, with feedback delivered in the author's chosen workflow.
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 23, 2026 (7 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/atrnh/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from atrnh
- 0.570score
create-lecture
atrnh
Generates a structured lecture from an unordered list of topics.
SkillAFreshness: AClaude Code +9 - 0.570score
deep-quality-review
atrnh
Reviews any written material (docs, guides, lectures, labs, READMEs, essays, proposals, specs, emails) for both functional quality and deep quality, using the…
SkillAFreshness: AClaude Code +9 - 0.570score
create-mcq
atrnh
Generates multiple choice questions (MCQs) from text or documents provided by the user.
SkillAFreshness: AClaude Code +9 - 0.570score
review-fiction
atrnh
Reviews a chapter of the user's fiction and produces a two-column HTML critique page beside the manuscript, with the prose on the left and anchored comments…
SkillAFreshness: AClaude Code +9 - 0.567score
story-bible
atrnh
Build, reconcile, and retrieve an internal fiction wiki from manuscripts and author notes, preserving evidence, canon status, chronology, and character…
SkillAFreshness: AClaude Code +9 - 0.565score
line-editor
atrnh
Use when the author wants a line edit, prose notes, or sentence-level feedback on a fiction chapter, scene, or passage.
SkillAFreshness: AClaude Code +9
Cite this page
triage-feedback skill. Agent Mart. https://agentmart.dev/skills/atrnh-triage-feedback (last updated 2026-10-24)