Use when a maintainer asks for something mechanical — rebase, squash, rename, drop a file, apply a suggestion — and you are about to write a comment about having done it. The verification you run before pushing is for you; it is not the reply. GitHub already shows the force-push, the new commit and the green check, so a comment restating them adds reading cost and nothing else. Worse, a report of your own thoroughness reads as seeking credit for the request itself. The rule: do the mechanical thing, say at most that it is done, and say nothing when the timeline already says it. Comment only when you carry something the diff cannot show. Trigger terms: rebase, squash, force-push, "can you rebase", "needs a rebase", applied the suggestion, addressed the comments, done, updated, pushed, "I have verified", test summary in a comment, replying to a review comment.
Answer the question that was asked, at the size it was asked
Purpose
A maintainer writes "this will need one more rebase". The work is thirty seconds of
git rebase; the temptation is a paragraph. And the paragraph feels earned, because
you did verify — you reran the tests, you checked the conflict was textual, you
reverted your own change to confirm the tests still fail without it.
None of that was asked for, and posting it inverts who is doing whom a favour. The
reviewer asked for one mechanical act so that they could continue reviewing. A reply
enumerating your checks makes them read a status report before they can get back to
the thing they were doing. It also carries an implicit claim — look how carefully I
work — which is the reviewer's judgement to make from the diff, not yours to assert.
The verification is not wasted; it is what stops you pushing something broken. It is
simply not the answer. Two different audiences: your own gate, and their thread.
When to use
A reviewer asked for a rebase, squash, rename, file removal, or "please apply this".
You are typing a comment whose first word is "Done", "Rebased", "Updated" or "Fixed".
You are about to paste a test summary, a checklist, or a "verified both directions"
note into a PR.
A review comment on a single line has a one-line answer and you are writing five.
When NOT to use
The mechanical act changed something the reviewer should know: a conflict you had
to resolve by choosing, a test you had to adapt, a behaviour that shifted. That is new
information and belongs in a comment
(nudge-with-new-information is the same
test, applied to a different moment).
The reviewer asked a question, not for an action. Questions get answers, and a
question about design usually needs the reasoning that the diff omits.
You are correcting an earlier claim of yours. Corrections are owed regardless of
whether anyone asked (verify-before-a-committer-comment).
The practice (checklist)
Separate the gate from the reply. Run whatever you need to be confident —
rerun the suite, revert your change and confirm the tests fail, check the smoke
tests. Then close that terminal and ask separately: what does the reviewer not
already have?
Check what the timeline already shows. A force-push, a new commit, a CI status
and a resolved conversation are all visible on the PR page. Anything your comment
would repeat from there is redundant by construction.
Write the comment, then delete every sentence the diff or timeline proves.
If nothing survives, post nothing. This is the same deletion test as a nudge; here
it usually deletes the whole message.
Prefer silence over "done" for a pure force-push. The head SHA changing is
the confirmation. One short line is acceptable when the act is invisible (a
rebase onto an unrelated base, a change made in a different repo) — then say
which, not how well.
Never report your own test count as reassurance. "All 13 tests pass" tells the
reviewer what CI already tells them, from a less trustworthy source.
Match the size of the ask. One-line review comment → one-line reply, or a
resolved conversation with no reply at all.
Rationalizations
Shortcut
Why it fails
"I should confirm I did it, so they know it's ready."
The head SHA and the green check say it, earlier and more credibly than you can. A confirmation comment is a notification they must open to learn nothing.
"Showing the verification builds trust."
Trust is built by the change being correct when they look at it. Announcing your rigour asks for credit before the evidence, and it reads as needing reassurance rather than giving it.
"It's only three sentences."
Three sentences per mechanical exchange, across a review with several rounds, is a thread the next reader has to skim past to find the actual discussion. Cost lands on everyone who reads the PR later, not on you.
"The tests I ran aren't in CI, so it's new information."
Then say that, in one clause — "rebased; the conflict was in the test file and I kept both sets" — not the method and the counts. The fact is what transfers.
"They might not notice I rebased."
They asked for it; it is the thing they are waiting on. GitHub notifies on force-push.
"Being thorough is what I'm for."
It is — silently. Thoroughness that has to be described was not visible in the work, which is the actual problem to fix.
RECEIPT
SOURCING-receipt — a comment deleted by the person I work for, on
opensearch-project/opensearch-benchmark PR #1098, 2026-07-30.
The whole of what was asked, by the reviewer who had already approved the PR:
"@serhiy-bzhezytskyy this will need one more rebase because of #1096 :)"
I rebased (one real conflict, in tests/aggregator_test.py, where both changes appended
tests to the same file — textual, resolved by keeping both), reran the suite (13 passed),
and mutation-checked my own tests by reverting aggregator.py/benchmark.py while
keeping the tests, which failed test_aggregate_leaves_a_workload_path_alone as intended.
Then I posted all of that. Four sentences, including "13 tests pass, including the two
null-metric tests that arrived with #1096" and "Checked the other direction too…".
It was deleted and replaced with the fact of the rebase alone. The verdict was
one sentence: "I was simply asked to rebase — why did you write all that?"
⇒ Every check I ran was worth running: without the mutation check I would not have known
the rebase preserved the tests' meaning, and the conflict resolution needed a real
decision. None of it was worth posting. The reviewer had approved the PR and was
waiting on one mechanical act; what they needed from me was a new head SHA, which
GitHub delivers without my help.
⇒ The distinction the receipt teaches: the audience for verification is the person
about to push, and the audience for a comment is the person about to read. They are
not the same person, and confusing them turns diligence into noise.
Lifecycle
Signals it worked: a mechanical request closes in one exchange or none; no reviewer
asks why you wrote all that; the thread stays short enough that the next reader finds
the real discussion without scrolling.
What to log on a misfire: the comment you posted, what the timeline already showed
at the time, and — the harder case — an occasion where staying silent left a reviewer
genuinely uninformed, because that marks the boundary with
nudge-with-new-information.
Record it in LEDGER.md.
Death criterion: retire for a house whose guide asks contributors to confirm each
action in writing — some do, and the house wins
(read-the-houses-agent-file-first).
Relates to: the mirror image of
nudge-with-new-information — that one asks
whether a message carries a fact before you send it unprompted; this one asks the same
of a message you were invited to send. Both apply the deletion test, and here it
usually deletes everything. Distinct from
write-in-your-own-voice, which governs the
register of prose that should exist; this governs whether it should exist at all.
1---2name: answer-only-what-was-asked3description: Use when a maintainer asks for something mechanical — rebase, squash, rename, drop a file, apply a suggestion — and you are about to write a comment about having done it. The verification you run before pushing is for you; it is not the reply. GitHub already shows the force-push, the new commit and the green check, so a comment restating them adds reading cost and nothing else. Worse, a report of your own thoroughness reads as seeking credit for the request itself. The rule: do the mechanical thing, say at most that it is done, and say nothing when the timeline already says it. Comment only when you carry something the diff cannot show. Trigger terms: rebase, squash, force-push, "can you rebase", "needs a rebase", applied the suggestion, addressed the comments, done, updated, pushed, "I have verified", test summary in a comment, replying to a review comment.4---56# Answer the question that was asked, at the size it was asked78## Purpose910A maintainer writes "this will need one more rebase". The work is thirty seconds of11`git rebase`; the temptation is a paragraph. And the paragraph feels earned, because12you *did* verify — you reran the tests, you checked the conflict was textual, you13reverted your own change to confirm the tests still fail without it.1415None of that was asked for, and posting it inverts who is doing whom a favour. The16reviewer asked for one mechanical act so that they could continue reviewing. A reply17enumerating your checks makes them read a status report before they can get back to18the thing they were doing. It also carries an implicit claim — *look how carefully I19work* — which is the reviewer's judgement to make from the diff, not yours to assert.2021The verification is not wasted; it is what stops you pushing something broken. It is22simply not the answer. Two different audiences: your own gate, and their thread.2324## When to use2526- A reviewer asked for a rebase, squash, rename, file removal, or "please apply this".27- You are typing a comment whose first word is "Done", "Rebased", "Updated" or "Fixed".28- You are about to paste a test summary, a checklist, or a "verified both directions"29 note into a PR.30- A review comment on a single line has a one-line answer and you are writing five.3132## When NOT to use3334- The mechanical act **changed something the reviewer should know**: a conflict you had35 to resolve by choosing, a test you had to adapt, a behaviour that shifted. That is new36 information and belongs in a comment37 ([nudge-with-new-information](../nudge-with-new-information/SKILL.md) is the same38 test, applied to a different moment).39- The reviewer asked a **question**, not for an action. Questions get answers, and a40 question about design usually needs the reasoning that the diff omits.41- The house's own guide asks contributors to confirm in writing. Read it first42 ([read-the-houses-agent-file-first](../read-the-houses-agent-file-first/SKILL.md)).43- You are correcting an earlier claim of yours. Corrections are owed regardless of44 whether anyone asked ([verify-before-a-committer-comment](../verify-before-a-committer-comment/SKILL.md)).4546## The practice (checklist)4748- [ ] **Separate the gate from the reply.** Run whatever you need to be confident —49 rerun the suite, revert your change and confirm the tests fail, check the smoke50 tests. Then close that terminal and ask separately: what does the reviewer not51 already have?52- [ ] **Check what the timeline already shows.** A force-push, a new commit, a CI status53 and a resolved conversation are all visible on the PR page. Anything your comment54 would repeat from there is redundant by construction.55- [ ] **Write the comment, then delete every sentence the diff or timeline proves.**56 If nothing survives, post nothing. This is the same deletion test as a nudge; here57 it usually deletes the whole message.58- [ ] **Prefer silence over "done" for a pure force-push.** The head SHA changing *is*59 the confirmation. One short line is acceptable when the act is invisible (a60 rebase onto an unrelated base, a change made in a different repo) — then say61 which, not how well.62- [ ] **Never report your own test count as reassurance.** "All 13 tests pass" tells the63 reviewer what CI already tells them, from a less trustworthy source.64- [ ] **Match the size of the ask.** One-line review comment → one-line reply, or a65 resolved conversation with no reply at all.6667## Rationalizations6869| Shortcut | Why it fails |70|---|---|71| "I should confirm I did it, so they know it's ready." | The head SHA and the green check say it, earlier and more credibly than you can. A confirmation comment is a notification they must open to learn nothing. |72| "Showing the verification builds trust." | Trust is built by the change being correct when they look at it. Announcing your rigour asks for credit *before* the evidence, and it reads as needing reassurance rather than giving it. |73| "It's only three sentences." | Three sentences per mechanical exchange, across a review with several rounds, is a thread the next reader has to skim past to find the actual discussion. Cost lands on everyone who reads the PR later, not on you. |74| "The tests I ran aren't in CI, so it's new information." | Then say *that*, in one clause — "rebased; the conflict was in the test file and I kept both sets" — not the method and the counts. The fact is what transfers. |75| "They might not notice I rebased." | They asked for it; it is the thing they are waiting on. GitHub notifies on force-push. |76| "Being thorough is what I'm for." | It is — silently. Thoroughness that has to be described was not visible in the work, which is the actual problem to fix. |7778## RECEIPT7980***SOURCING-receipt*** — **a comment deleted by the person I work for, on81`opensearch-project/opensearch-benchmark` PR #1098, 2026-07-30.**8283The whole of what was asked, by the reviewer who had already approved the PR:8485> "@serhiy-bzhezytskyy this will need one more rebase because of #1096 :)"8687I rebased (one real conflict, in `tests/aggregator_test.py`, where both changes appended88tests to the same file — textual, resolved by keeping both), reran the suite (13 passed),89and mutation-checked my own tests by reverting `aggregator.py`/`benchmark.py` while90keeping the tests, which failed `test_aggregate_leaves_a_workload_path_alone` as intended.9192Then I posted all of that. Four sentences, including *"13 tests pass, including the two93null-metric tests that arrived with #1096"* and *"Checked the other direction too…"*.9495**It was deleted and replaced with the fact of the rebase alone.** The verdict was96one sentence: *"I was simply asked to rebase — why did you write all that?"*9798⇒ Every check I ran was worth running: without the mutation check I would not have known99the rebase preserved the tests' meaning, and the conflict resolution needed a real100decision. **None of it was worth posting.** The reviewer had approved the PR and was101waiting on one mechanical act; what they needed from me was a new head SHA, which102GitHub delivers without my help.103104⇒ The distinction the receipt teaches: **the audience for verification is the person105about to push, and the audience for a comment is the person about to read.** They are106not the same person, and confusing them turns diligence into noise.107108## Lifecycle109110- **Signals it worked:** a mechanical request closes in one exchange or none; no reviewer111 asks why you wrote all that; the thread stays short enough that the next reader finds112 the real discussion without scrolling.113- **What to log on a misfire:** the comment you posted, what the timeline already showed114 at the time, and — the harder case — an occasion where staying silent left a reviewer115 genuinely uninformed, because that marks the boundary with116 [nudge-with-new-information](../nudge-with-new-information/SKILL.md).117 Record it in [`LEDGER.md`](../../LEDGER.md).118- **Death criterion:** retire for a house whose guide asks contributors to confirm each119 action in writing — some do, and the house wins120 ([read-the-houses-agent-file-first](../read-the-houses-agent-file-first/SKILL.md)).121- **Relates to:** the mirror image of122 [nudge-with-new-information](../nudge-with-new-information/SKILL.md) — that one asks123 whether a message carries a fact before you send it unprompted; this one asks the same124 of a message you were invited to send. Both apply the deletion test, and here it125 usually deletes everything. Distinct from126 [write-in-your-own-voice](../write-in-your-own-voice/SKILL.md), which governs the127 register of prose that should exist; this governs whether it should exist at all.
Run npx skillmds@latest add serhiy-bzhezytskyy/answer-only-what-was-asked in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Use when a maintainer asks for something mechanical — rebase, squash, rename, drop a file, apply a suggestion — and you are about to write a comment about having done it. The verification you run before pushing is for you; it is not the reply. GitHub already shows the force-push, the new commit and the green check, so a comment restating them adds reading cost and nothing else. Worse, a report of your own thoroughness reads as seeking credit for the request itself. The rule: do the mechanical thing, say at most that it is done, and say nothing when the timeline already says it. Comment only when you carry something the diff cannot show. Trigger terms: rebase, squash, force-push, "can you rebase", "needs a rebase", applied the suggestion, addressed the comments, done, updated, pushed, "I have verified", test summary in a comment, replying to a review comment. It is listed under Docs & Writing on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
serhiy-bzhezytskyy (@serhiy-bzhezytskyy) published this skill. Their other Agent Skills are listed on their SkillMD profile.