addressing-findings
Skill1 starsChanged 30 days agoMITView on GitHub
Use when the user wants to work through review findings, PR review comments, audit results, or a list of issues, deciding on each before anything changes — "address the findings", "go through the report", "address the comments on PR #N", "let's fix these one at a time", or right after an analyze-code report or code review.
In this repository11 other files it gives its agents.
- analyze-codeSkill
- brainstormSkill
- coding-disciplineSkill
- designing-interfacesSkill
- guiding-manual-testingSkill
- knowledge-baseSkill
- researchSkill
- style-checkerSkill
- test-driven-developmentSkill
- using-software-specialistsSkill
- writing-unit-testsSkill
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 4 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 32
Write for a reader who has not opened the file.
- Distinctive: line 59
Never post to the PR — no replies, no resolved threads, no submitted reviews, even when asked to.
- Very specific: line 61
After each decided PR finding, give the suggested reply for that thread: #<comment id> (<author>): <text>.
- Distinctive: line 65
Every change traces to an approved option — no "while I'm here" edits.
- Distinctive: line 67
Never stage or commit.
- Very specific: line 79
After the last finding: a table # | Finding | Outcome (fixed / documented / answered / skipped / resolved by user / needs user action), the …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Addressing Findings
Walk a findings list one item at a time: explain, propose, stop. The user decides each one; nothing changes until they do.
One finding per message, always. Time pressure and "batch the obvious ones" change how long each message is, not how many findings it holds. Deciding which findings are "obvious" is the user's call.
Before the first finding
- Source the list.
- analyze-code report — use its findings in report order (already severity-ranked). Each finding's
Action: … → <specialist>names its specialist. - PR comments — if not already provided, fetch them:
gh api repos/{owner}/{repo}/pulls/N/comments(inline) andgh pr view N --comments(review bodies). Sort each comment:- requests a change → finding
- asks a question → finding; one option is "answer only, no code change"
- praise, acknowledgement, resolved thread → not a finding
- Order: severity you assess, then
file:line.
- Anything else — the list the user names; none exists → ask for it.
- Another list exists that the user didn't name (a report next to PR comments) → mention it in the orientation line; don't merge it.
- analyze-code report — use its findings in report order (already severity-ranked). Each finding's
- Re-check current state. Code may have changed since the list was made. Drop findings already resolved.
- One line of orientation: the source, M findings in the order you'll take them, what was dropped and why (resolved, praise). Then Finding 1.
Per finding
Load the specialist the finding names; if it names none, pick one through using-software-specialists. Put Using <specialist> specialist directly above the finding header.
Full form:
Write for a reader who has not opened the file. Use complete sentences. Say what each function, type or term is the first time it appears. Restate the finding in your own plain words. Do not copy the report's tags or wording.
## Finding N of M: <plain-language title>(PR comment: add— <author>, #<comment id>)- Context — one or two sentences: what this code does and who calls it.
- Issue — what is wrong, quoting the line(s) with
file:line. What it affects and when it bites. If an earlier claim about it was wrong, correct it here. - Fix options — usually two, each with its cost and the tests it adds. Show the recommended option as a short before/after snippet. Include "keep it and document why" when that is a real option. Steps only the user can do (rotate a key, change infra) are named as such.
- Recommendation — one option, one sentence why.
- One question, plain text, ending the message: "Apply A?" No option pickers, no second question.
Compact form — when the user signals time pressure ("move fast", "we're late", "batch these"): title, Issue in one line, recommended fix as a snippet with the tests it adds and any user-only step, "Apply?".
Then stop.
On the user's answer
| Answer | Do |
| Approve ("go ahead", "go with A") | Apply exactly that. Run the project's verification (lint, tests). Report the outcome in 1–3 lines with the results — say so when the verification never exercises the changed code — then present the next finding. |
| Approve several by number ("apply 1, 3, 5") | Apply exactly those, verify once, report, present the next undecided finding. |
| Approve + extra scope ("and tidy it while you're there") | Apply the approved option only. Extra scope that overlaps a later finding waits for that finding; anything else becomes a new finding at the end of the list. |
| Skip ("next", "later", "leave it") | Don't re-pitch. Record as skipped; present the next finding. |
| Confusion ("explain", "I didn't understand") | Re-explain the same finding in different words, with one concrete example: an input, what the code does with it now, and what it should do. No new options. Repeat the question. |
| Pushback on the premise | Accept the correction; drop or narrow the finding. Save the correction to memory if it should outlive the session. |
| "I made changes, check them" | Report-only: build, lint, tests, what is now resolved, what is still open. No edits. |
PR replies (never posted)
Never post to the PR — no replies, no resolved threads, no submitted reviews, even when asked to. The user posts; you write the text they can use.
After each decided PR finding, give the suggested reply for that thread: #<comment id> (<author>): <text>. Repeat them all in the closing.
Rules
- Every change traces to an approved option — no "while I'm here" edits.
- Docs, plan, and wiki edits are changes too: approve first.
- Never stage or commit.
- A finding made moot by an earlier fix: one line saying so, then move on.
| Rationalization | Reality |
| "The user is in a hurry, a batch is faster" | Use the compact form. The user can approve several by number. |
| "These fixes are all in the same function" | Same function, separate decisions. Mention the overlap and present them one after another. |
| "They said address the comments — that's approval" | Approval is per finding. A request to address is a request to start the walk. |
| "They told me to reply to alice, so posting is fine" | You never post. Give them the reply text. |
Closing
After the last finding: a table # | Finding | Outcome (fixed / documented / answered / skipped / resolved by user / needs user action), the current verification status, what is left uncommitted, and — for PR comments — the suggested reply text per thread, for the user to post.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

