papercuts
Skill1.2k starsChanged 21 days agoMITView on GitHub
Log genuine, recurring repository friction to .agents/PAPERCUTS.md — confusing setup, a flaky repo command or script, a misleading in-repo error, stale generated files, or a non-obvious gotcha that will cost the next contributor time. Also use to review, deduplicate, and resolve existing entries. Gate hard before logging: only friction the repository itself can fix counts. Never log the agent's own sandbox/permission errors, shell-scripting mistakes, transient flakiness, or third-party tool quirks the repo can't change.
We split this skill into the rules it gives an agent
9 rules. 0 are common, 7 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 6 edited versions we read keep these.
7
Distinctive
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 25
If either answer is "no," push through it and move on — do not log it.
- Distinctive: line 45
When something fails, first ask "is this the repo, or is this me/my environment?" Only the former is a papercut.
- Distinctive: line 46
Only the former is a papercut.
- Very specific: line 50
Search .agents/PAPERCUTS.md for an equivalent entry and avoid duplicates.
- Distinctive: line 57
Keep it to one or two sentences: what got in the way, and the likely repo-side fix.
- Very specific: line 61
Use UTC timestamps and a short agent label (codex, claude, human).
- Distinctive: line 66
Only mine a whole session or do a broad review when the user explicitly asks.
- Distinctive: line 68
When asked to review the file:
- Distinctive: line 73
Verify each surviving papercut still reproduces.
“Common” is measured: kept by at least 6 in 10 of the 6 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Papercuts
Capture small friction in the moment without derailing the current task. Aggregated entries show where the repository needs sanding down — so the bar is that a different contributor would hit the same thing, and the repository can do something about it.
The two-question test
Log it only if both are true:
- Reproducible for anyone. A different person, on a fresh checkout, working in this repo would hit the same friction. It is not specific to your sandbox, shell config, machine, network, or a one-time hiccup.
- Fixable in the repo. A change to the repo's code, config, scripts, or docs would prevent or reduce it.
If either answer is "no," push through it and move on — do not log it.
Do NOT log
- Your environment's failures. Sandbox
EPERM/listen/ IPC-socket errors, blocked network orfetch failed, permission denials, missing system tools. That is the runner, not the repo. - Your own shell mistakes. Reserved or special variable names (
status,path), unquoted globs, a broken login-shell hook. Fix the command — there is nothing in the repo to sand down. - Transient flakiness. A command that succeeded on retry with no repo-side cause (a network blip, a hung push, a slow mirror).
- Local state you corrupted. A partial
node_modulesafter branch-switching, a stale dev-server port, a dirty cache. Re-run the install or cleanup. - Third-party or beta-tool limitations the repo can't change — unless the fix is a repo-side workaround worth writing down (then log that workaround).
- Product or code correctness bugs (fix now or track as real work), and what you accomplished (that belongs in the task summary).
- Secrets, credentials, personal data, raw customer payloads, or sensitive paths.
When something fails, first ask "is this the repo, or is this me/my environment?" Only the former is a papercut.
Log proactively
- Search
.agents/PAPERCUTS.mdfor an equivalent entry and avoid duplicates. Append one unchecked item under
## Openusing this format:- [ ] `YYYY-MM-DDTHH:MM:SSZ` — `agent` — <friction, and the smallest useful fix or workaround>.- Keep it to one or two sentences: what got in the way, and the likely repo-side fix. Lead with the friction, not with what you were doing.
- Continue the original task. Do not expand a papercut into unrelated work.
Use UTC timestamps and a short agent label (codex, claude, human). Add a
PR or task identifier only when it helps future triage.
Review or resolve
Only mine a whole session or do a broad review when the user explicitly asks.
When asked to review the file:
- Re-run the two-question test on every open entry; delete any that fail it (environment/shell/flake noise that slipped in).
- Deduplicate and group related entries.
- Verify each surviving papercut still reproduces.
- Fix the smallest safe, high-leverage entries first.
- Move fixed items to
## Resolved, check them, and append the resolving date or commit. Route real bugs to normal issue/fix work; route recurring review-policy gaps throughmaintain-greptile-rules.
Preserve useful history for genuinely-resolved papercuts; do not delete them merely to make the file shorter. (Noise that never belonged — see step 1 — is different: remove it.)
Trending
More talk lately.thin dataabout the whole repository
Who's talking about jwuthri-cloud/Tracely-ai
The biggest 1 of 1 mention linking to the repository that our crawl found. Each line is their own headline.
Other versions7 projects use a version of this.
Word for word · 1
- Jwuthri/Tracely-ai★ 1.5k100% same
Edited · 2
- every-app/open-seo★ 26k77% same
- matijagrcic/skills★ 133% same
Wrote their own version · 4
- ten9876/AetherSDR★ 251same name
- standardagents/skills★ 7same name
- AndyMelnykov/TeamOSTemplate★ 2same name
- nikhil-vytla/skills★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository43 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- canvas-generativeSkill
- castSkill
- compose-graphicsSkill
- compose-motionSkill
- compose-multiplatformSkill
- css-nativeSkill
- design-auditSkill
- desktop-principlesSkill
- framer-motionSkill
- gsap-coreSkill
- gsap-frameworksSkill
- gsap-performanceSkill
- gsap-pluginsSkill
- gsap-reactSkill
- gsap-scrolltriggerSkill
- gsapSkill
- gsap-timelineSkill
- gsap-utilsSkill
- mobile-principlesSkill
- motion-designSkill
- motion-principlesSkill
- paintSkill
- swiftui-graphicsSkill
- swiftui-motionSkill
- threejs-r3fSkill
- ui-ux-pro-maxSkill
- ai-observability-langchain-pythonSkill
- competitive-landscapeSkill
- competitor-analysisSkill
- deslopSkill
- keyword-clusteringSkill
- keyword-researchSkill
- link-prospectingSkill
- maintain-greptile-rulesSkill
- merge-readySkill
- openseo-release-notesSkill
- openseo-review-web-contentSkill
- seo-auditSkill
- seo-coachSkill
- seo-project-setupSkill
- simple-issue-descriptionSkill
- tracelySkill
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.

