Task Evidence Report
Why this exists
Built after a real, costly failure: presenting AI-assisted work in a way that
sounded complete, but that the person presenting it couldn't defend when
asked to explain or prove it themselves. The work may have been fine — the
explanation wasn't grounded in anything checkable, so it didn't survive
scrutiny, and the person delivering it paid for that, not the agent that
wrote it.
The standard this skill has to meet: every claim needs an attached piece of
evidence a skeptical person could check themselves — a file:line, a real
command and its real output, a specific test name and its actual result. Not
"tests pass" — the actual test run, right now, not a remembered one. Not "the
fix works" — the specific line that proves it, and what would have shown if
it didn't.
Do not write this for a reader who will take it at face value. Write it for
one who will ask "show me," and design every section so that when they do,
the answer is already there — not "let me check."
1. Gather real evidence — never from memory
Re-derive everything from source, right now, even if you (or an earlier
message in this conversation) already stated it. A claim repeated from
memory is not evidence, even if it was true when first observed.
git log, git diff, git show for the actual commits in scope — not a
paraphrase of what you intended to commit.
- Run the tests now. If a test suite exists, run it and quote real
output (pass/fail counts, the actual failing assertion if any) — never
reuse a result from earlier in the conversation without re-running it,
since a change since then could have broken it silently.
- For every "fixed X" claim, cite the specific file and line(s) that fix it.
If you can't point to one, the claim doesn't belong in the report as
"fixed" — say what's actually true instead (attempted, partially done,
unverified).
- If a build/compile/package step matters, actually run it and check the
output artifact contains the change (e.g. grep the compiled file) —
don't assume compiling succeeded because editing didn't error.
- Quote real command output, not a summary of it.
npm test: 958/958 passed
is evidence. "All tests pass" is a claim.
2. Check for leftover code from an earlier approach
This is the specific failure mode numerous commits can hide: the team (or
the agent) tried approach A, partially built it, then switched to approach
B — and A's remnants (an unused function, a dead branch, an orphaned file,
a config flag nothing reads anymore) are still sitting in the codebase,
invisible in a diff of the final state alone.
- List every commit in the task's scope (
git log --oneline over the
relevant range) and note anywhere the approach visibly changed direction
(a revert, a "actually let's do X instead" message, a rewritten function).
- For each such pivot, actively search for remnants of the abandoned
approach: grep for symbols/functions/files it introduced, check they were
actually removed or are still correctly wired into the final approach —
don't assume a later commit fully cleaned up after an earlier one just
because the task "looks done."
- Confirm the tests being run actually exercise the final approach, not
stale tests written against the earlier one that happen to still pass for
unrelated reasons.
- If you find leftover remnants, report them plainly as a finding — that is
exactly the kind of thing this report exists to surface, not to hide.
3. Build the explanation
Structure, in order:
- What was actually asked. Quote or closely paraphrase the real
request — not a cleaned-up version of it.
- What was tried, including dead ends. A wrong turn that was corrected
is honest history and usually proves more real engagement with the
problem than a straight line to success would. Don't edit failed
attempts out to make the story look cleaner than it was.
- What the final state is — each claim paired with its evidence from
step 1, inline, not batched into an unverified summary at the end.
- What was NOT done, or couldn't be verified. State this as plainly as
the successes. A report with no unresolved edges reads as unexamined,
not as complete — real work almost always has at least one open
question.
4. Diagrams — only when they carry real information
Use a diagram (Mermaid, via the artifact-diagramming skill if publishing
as an Artifact) when it shows a mechanism that would take several sentences
to describe accurately: a before/after architecture change, the actual
sequence of calls in a bug's reproduction, a timeline of the commits/pivots
from step 2. Do not add a diagram to make the report look more finished —
if it doesn't change what the reader understands, cut it.
5. Language and tone
- No inflated confidence words ("seamlessly", "robust", "production-ready",
"fully resolved") unless a specific check backs the exact claim being
made. If the check is partial, say partial.
- Short, plain sentences. No padding, no restating the same point in a
closing summary — if it was said once with evidence, it doesn't need to
be said again without it.
- Ground the framing in the actual conversation that happened — the real
back-and-forth, the user's own corrections, what they pushed back on —
not a generic templated project-report voice. If this conversation
disagreed with an approach and changed course, that's part of the honest
record, not something to smooth over.
- Never claim collaboration, agreement, or review that didn't happen. If
the human hasn't looked at something yet, say that, don't imply otherwise.
- This is one shared piece of work, not the agent's output being handed
across a wall to a human who's expected to just accept it. Write so the
person presenting it could defend every line themselves, in their own
words, if asked a follow-up question — that's the actual bar, not
"sounds finished."
6. Output format
Default to a plain in-chat explanation — most of the time that's what's
actually needed, and it's easier for the person to absorb and be able to
restate themselves. Only build a published Artifact (HTML, with diagrams)
when it genuinely needs to be shareable with someone else (a manager, a
reviewer, a teammate who wasn't in this conversation) — load the
artifact-design skill first per its own instructions, and keep it
evidence-first and visually calm, not a marketing-style slide deck.
7. Before showing it to the user — self-check
- Does every "done"/"fixed" claim have an attached, checkable piece of
evidence sitting right next to it?
- Is anything you couldn't verify labeled as such, instead of implied to be
fine?
- Did you actually check for leftover code from an earlier approach in this
same task, not just assume the latest commit cleaned everything up?
- If the person reading this re-ran the tests or the commands themselves
right now, would they get what this report says they'd get?
- Does the tone match how this conversation actually went, or does it read
like a generic AI-generated status report?
If any answer is no, fix that before sending it — that gap is exactly what
this skill exists to close.
Hand-offs
- Diagram mechanics (Mermaid syntax, layout, legibility in both themes) →
[[artifact-diagramming]].
- Page design calibration before publishing as an Artifact →
artifact-design (load per its own instructions).
- A parallel case of the same "recorded/claimed vs. actually observed"
discipline, applied to auditing whether a tool delivers real value rather
than to explaining a completed task → [[extension-value-audit]].
1---2name: task-evidence-report3description: Produce an evidence-based explanation of what was actually done on a task — real diffs, real test output, real command results, optionally with diagrams — instead of a confident-sounding summary built from memory or assumption. Use when the user needs to explain, defend, present, or hand off completed work to someone else (a reviewer, a manager, a teammate, themselves later), when asked for "proof", "докази", "презентацію що було зроблено", "explain what changed and why", or before closing out a task that involved several commits/approach changes. Explicitly built to survive a skeptical reviewer, not to look finished.4---56# Task Evidence Report78## Why this exists910Built after a real, costly failure: presenting AI-assisted work in a way that11sounded complete, but that the person presenting it couldn't defend when12asked to explain or prove it themselves. The work may have been fine — the13explanation wasn't grounded in anything checkable, so it didn't survive14scrutiny, and the person delivering it paid for that, not the agent that15wrote it.1617The standard this skill has to meet: **every claim needs an attached piece of18evidence a skeptical person could check themselves** — a file:line, a real19command and its real output, a specific test name and its actual result. Not20"tests pass" — the actual test run, right now, not a remembered one. Not "the21fix works" — the specific line that proves it, and what would have shown if22it didn't.2324Do not write this for a reader who will take it at face value. Write it for25one who will ask "show me," and design every section so that when they do,26the answer is already there — not "let me check."2728## 1. Gather real evidence — never from memory2930Re-derive everything from source, right now, even if you (or an earlier31message in this conversation) already stated it. A claim repeated from32memory is not evidence, even if it was true when first observed.3334- `git log`, `git diff`, `git show` for the actual commits in scope — not a35 paraphrase of what you intended to commit.36- **Run the tests now.** If a test suite exists, run it and quote real37 output (pass/fail counts, the actual failing assertion if any) — never38 reuse a result from earlier in the conversation without re-running it,39 since a change since then could have broken it silently.40- For every "fixed X" claim, cite the specific file and line(s) that fix it.41 If you can't point to one, the claim doesn't belong in the report as42 "fixed" — say what's actually true instead (attempted, partially done,43 unverified).44- If a build/compile/package step matters, actually run it and check the45 output artifact contains the change (e.g. grep the compiled file) —46 don't assume compiling succeeded because editing didn't error.47- Quote real command output, not a summary of it. `npm test: 958/958 passed`48 is evidence. "All tests pass" is a claim.4950## 2. Check for leftover code from an earlier approach5152This is the specific failure mode numerous commits can hide: the team (or53the agent) tried approach A, partially built it, then switched to approach54B — and A's remnants (an unused function, a dead branch, an orphaned file,55a config flag nothing reads anymore) are still sitting in the codebase,56invisible in a diff of the final state alone.5758- List every commit in the task's scope (`git log --oneline` over the59 relevant range) and note anywhere the approach visibly changed direction60 (a revert, a "actually let's do X instead" message, a rewritten function).61- For each such pivot, actively search for remnants of the abandoned62 approach: grep for symbols/functions/files it introduced, check they were63 actually removed or are still correctly wired into the final approach —64 don't assume a later commit fully cleaned up after an earlier one just65 because the task "looks done."66- Confirm the tests being run actually exercise the *final* approach, not67 stale tests written against the earlier one that happen to still pass for68 unrelated reasons.69- If you find leftover remnants, report them plainly as a finding — that is70 exactly the kind of thing this report exists to surface, not to hide.7172## 3. Build the explanation7374Structure, in order:75761. **What was actually asked.** Quote or closely paraphrase the real77 request — not a cleaned-up version of it.782. **What was tried**, including dead ends. A wrong turn that was corrected79 is honest history and usually proves more real engagement with the80 problem than a straight line to success would. Don't edit failed81 attempts out to make the story look cleaner than it was.823. **What the final state is** — each claim paired with its evidence from83 step 1, inline, not batched into an unverified summary at the end.844. **What was NOT done, or couldn't be verified.** State this as plainly as85 the successes. A report with no unresolved edges reads as unexamined,86 not as complete — real work almost always has at least one open87 question.8889## 4. Diagrams — only when they carry real information9091Use a diagram (Mermaid, via the `artifact-diagramming` skill if publishing92as an Artifact) when it shows a mechanism that would take several sentences93to describe accurately: a before/after architecture change, the actual94sequence of calls in a bug's reproduction, a timeline of the commits/pivots95from step 2. Do not add a diagram to make the report look more finished —96if it doesn't change what the reader understands, cut it.9798## 5. Language and tone99100- No inflated confidence words ("seamlessly", "robust", "production-ready",101 "fully resolved") unless a specific check backs the exact claim being102 made. If the check is partial, say partial.103- Short, plain sentences. No padding, no restating the same point in a104 closing summary — if it was said once with evidence, it doesn't need to105 be said again without it.106- Ground the framing in the *actual* conversation that happened — the real107 back-and-forth, the user's own corrections, what they pushed back on —108 not a generic templated project-report voice. If this conversation109 disagreed with an approach and changed course, that's part of the honest110 record, not something to smooth over.111- Never claim collaboration, agreement, or review that didn't happen. If112 the human hasn't looked at something yet, say that, don't imply otherwise.113- This is one shared piece of work, not the agent's output being handed114 across a wall to a human who's expected to just accept it. Write so the115 person presenting it could defend every line themselves, in their own116 words, if asked a follow-up question — that's the actual bar, not117 "sounds finished."118119## 6. Output format120121Default to a plain in-chat explanation — most of the time that's what's122actually needed, and it's easier for the person to absorb and be able to123restate themselves. Only build a published Artifact (HTML, with diagrams)124when it genuinely needs to be shareable with someone else (a manager, a125reviewer, a teammate who wasn't in this conversation) — load the126`artifact-design` skill first per its own instructions, and keep it127evidence-first and visually calm, not a marketing-style slide deck.128129## 7. Before showing it to the user — self-check130131- Does every "done"/"fixed" claim have an attached, checkable piece of132 evidence sitting right next to it?133- Is anything you couldn't verify labeled as such, instead of implied to be134 fine?135- Did you actually check for leftover code from an earlier approach in this136 same task, not just assume the latest commit cleaned everything up?137- If the person reading this re-ran the tests or the commands themselves138 right now, would they get what this report says they'd get?139- Does the tone match how this conversation actually went, or does it read140 like a generic AI-generated status report?141142If any answer is no, fix that before sending it — that gap is exactly what143this skill exists to close.144145## Hand-offs146147- Diagram mechanics (Mermaid syntax, layout, legibility in both themes) →148 [[artifact-diagramming]].149- Page design calibration before publishing as an Artifact →150 `artifact-design` (load per its own instructions).151- A parallel case of the same "recorded/claimed vs. actually observed"152 discipline, applied to auditing whether a tool delivers real value rather153 than to explaining a completed task → [[extension-value-audit]].