"100% of jobs completed" was true and almost useless: turning that lesson into agent skills
On one of my projects, CrediClip, a 780-link YouTube batch finished with every job completed. In the same batch, 759 of 780 results were flagged as low evidence. "All 780 jobs completed" was a true sentence. It also tol
On one of my projects, CrediClip, a 780-link YouTube batch finished with every job completed. In the same batch, 759 of 780 results were flagged as low evidence.
"All 780 jobs completed" was a true sentence. It also told a reader almost nothing about whether the product worked.
I keep seeing the same gap in AI-written product docs. Ask an agent for a launch page, a PRD, or a metrics slide and you get fluent, confident sentences, including numbers and outcomes that nothing supports. Those sentences then travel into decks, READMEs, and resumes.
So I wrote down the habit I use on my own work and turned it into six free agent skills. It's called Receipts.
The six skills
-
claim-receipts labels every claim in a doc as
SOURCED,MEASURED-WITH-SCOPE,ASSUMPTION, orUNSUPPORTED, and rewrites the weak ones. - metric-receipts pairs each metric with the decision it informs and what it cannot prove.
- ai-eval-receipts writes readiness gates for an AI feature: did it run, did it have enough evidence, and did it agree with an independent judgment.
- experiment-receipts plans A/B tests decision first, with sample size labeled as a planning assumption. It ships with a small sample-size script.
- prd-receipts keeps what users said apart from what the team inferred or assumed.
- plain-copy removes filler and AI-sounding phrasing without adding claims.
Install in one line:
npx skills add aliraza2025/receipts
It works with Claude Code, Codex, and Cursor. MIT licensed.
The one rule that matters most
Rewrites only narrow. A skill may cut a claim, attach its scope, or relabel it as an assumption. It may never add a number, a customer, or an outcome that a source does not contain.
Here is the difference on a deliberately bad draft:
Before: "CrediClip analyzed 780 videos with 97% reliability."
After: "In one 780-link YouTube batch, every job completed, but 759 of 780 results were flagged as low evidence."
The second sentence is less flattering. It is also the one a hiring manager, an investor, or your own team can act on.
It caught me first
Before launch, I had an agent run claim-receipts on the repo's own README, using only the repo and the pages it links to as sources. It checked eight claims and labeled one unsupported: I had written that every claim on my portfolio has an entry on its Sources page. The Sources page actually lists primary sources by topic. The README now says that. The full output is in the repo under examples/.
Three questions for any AI feature
The skill that comes most directly from my own work is ai-eval-receipts. It separates three questions that one number almost never answers together:
- Did it run? Completion, latency, retries.
- Did it have what it needed? Evidence or context coverage per input.
- Was it right? Agreement with an independent, labeled judgment.
On CrediClip, a 100-video readiness benchmark passed on queue reliability and failed badly on evidence. That moved my roadmap from tuning scores to fixing ingestion. A working queue did not fix missing evidence.
What it does not do
- It cannot verify a fact it was not given. It flags missing support; it does not find it.
- It does not replace labeled evaluation. It makes the absence of one visible.
- How and when each agent picks up a skill on its own varies. Naming the skill in your request is the most reliable trigger.
Try it
Repo: https://github.com/aliraza2025/receipts
Run claim-receipts on a real PRD or launch page and tell me what it flagged, or what it got wrong. Issues and examples from real (non-confidential) projects are very welcome.
I'm Ali Raza, a Bay Area product manager and AI builder. This article first appeared on my site. It was drafted with AI assistance and reviewed by me before publishing.
Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.