tldrpr
Generate plain-text TLDR for PRs (for Slack, copied to clipboard).
Skill by lexfrei
Chalk Labs
Need help deploying tldrpr?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/lexfrei-tldrpr
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: productivity, finance
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/tldrpr
What's inside
- Skill name
tldrpr- Description
- Generate plain-text TLDR for PRs (for Slack, copied to clipboard). Each entry includes change scope (+N/-M lines, K files), a 1-5 star review-effort rating (time to review) and a 1-5 star outcome rating whose axis depends on the change — Pain relieved for fixes, Joy for features, Impact for internal work — so the reader can both budget time and prioritise before opening the PR.
- License
- BSD-3-Clause
- Instructions
- 138 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
Generate a plain-text TLDR summary of one or more Pull Requests for pasting into Slack. No markdown formatting — just plain text. Result is copied to clipboard by default; pass `--no-copy` to print the text only and leave the clipboard untouched (useful when another tool consumes the output).
## Arguments
Parse `$ARGUMENTS` for:
- One or more PR references in any of these formats:
- Full URL: `https://github.com/owner/repo/pull/123`
- Short ref: `owner/repo#123`
- `--lang <language>` — language for the TLDR line (e.g. `en`, `ru`, `de`). If omitted, use the same language the user communicates in during this conversation.
- `--no-copy` — do not copy the result to the clipboard; print the text only. Default (flag absent) copies to clipboard as before.
If no PR references provided, look in the conversation context for recently mentioned PR URLs or refs.
## For each PR
1. Fetch PR metadata, scope, and file list:
```bash
gh pr view <NUMBER> --repo <OWNER>/<REPO> --json title,body --jq '{title, body: .body[:2000]}'
gh api "repos/<OWNER>/<REPO>/pulls/<NUMBER>" --jq '{additions, deletions, changed_files, commits}'
gh api "repos/<OWNER>/<REPO>/pulls/<NUMBER>/files" --jq '.[] | "\(.status) +\(.additions)/-\(.deletions) \(.filename)"'
```
2. Compute the **scope** line from the metadata: `+N/-M lines, K files, C commits` (one space between fields, no rounding).
3. Assign a **review-effort** rating from 1 to 5 stars (`★` filled, `☆` empty — render as `★★★☆☆`). The rating is a judgment call informed by the file list and diff, NOT a pure mechanical line count. Use the heuristic below:
### Review-effort scale
- **★ trivial** — docs-only, comments, version bump, single-line fix, generated-file regeneration. Reviewer needs ~5 minutes.
- **★★ small** — localized bug fix, single-component change, mechanical refactor with no behavior change. Reviewer needs ~15 minutes.
- **★★★ medium** — bounded feature or refactor in one component, multi-file but contained scope. Reviewer needs ~30-60 minutes.
- **★★★★ large** — cross-cutting change touching multiple subsystems, non-trivial refactor, breaking-change candidate, OR security-sensitive (auth, RBAC, secrets, crypto). Reviewer needs 1-2 hours.
- **★★★★★ huge** — architectural reshape, new subsystem, major API/contract change, runtime-critical (controllers, schedulers, storage paths). Reviewer needs ≥ 2 hours and may need follow-up sessions.
### Review-effort signals
Apply these adjustments on top of a baseline derived from line count:
- Baseline by net code lines (additions + deletions, excluding lockfiles, vendored deps, generated code):
- `< 20` → ★
- `20-100` → ★★
- `100-500` → ★★★
- `500-2000` → ★★★★
- `≥ 2000` → ★★★★★
- **+1 star** if the PR touches RBAC manifests (`*.rbac.yaml`, `clusterrolebinding-*.yaml`, anything granting permissions to groups/SAs), authentication code, secrets handling, crypto, or admission webhooks.
- **+1 star** if the PR touches Go controllers, reconcilers, REST registries, schedulers, or other runtime-critical paths in `pkg/` / `internal/` / `cmd/`.
- **+1 star** if the PR is marked breaking (`feat!:`, `fix!:`, `BREAKING CHANGE:` footer, or a labeled major-version bump).
- **−1 star** (cap at ★) if the PR is purely docs (`*.md`, `docs/`), generated regeneration (`zz_generated.*`, `*.pb.go`), or vendored-dependency deletion.
- Cap the result at ★★★★★. Never go below ★.
When in doubt between two adjacent ratings, pick the higher one — the rating is meant to budget review time, and over-budgeting is cheaper than under-budgeting.
4. Assign the **outcome** rating — a 1-5 star score on a single axis whose *label* depends on what the PR does for the people who use the product. First pick the axis, then rate on it. The outcome axis is orthogonal to review effort: a one-line fix can relieve ★★★★★ pain while being ★ to review; a 2000-line refactor can be ★ internal Impact while being ★★★★ to review. Judge by user-facing outcome, not size.
### Pick the axis
Default to the PR's Conventional-Commit type in the title, then override by the actual diff when the title lies — a `feat:` whose diff only fixes a regression is Pain; a `fix:` that mostly ships a new capability is Joy. The type is a signal, not a verdict.
- **Pain relieved** — `fix`, `revert`, a `perf` that removes a regression or slowness users feel, a `docs` change that documents a footgun or silent-failure prerequisite. Rates how much hurt the PR takes away.
- **Joy** — `feat`, a `perf` that delivers a wanted speedup, a `docs` change that ships a genuinely new guide or capability. Rates how much the PR delights or empowers users.
- **Impact (internal)** — `chore`, `ci`, `test`, `build`, `refactor`, `style`. Maintainer-only plumbing a user cannot observe; almost always ★.
### Pain-relieved scale (how strong a painkiller the fix is)
- **★ aspirin** — a trivial, barely-felt annoyance; an edge case almost no one hits.
- **★★ ibuprofen** — a small but real irritation a modest slice of users feel.
- **★★★ codeine** — a genuine bug a meaningful subset of users hit or have reported.
- **★★★★ oxycodone** — a frequent, painful blocker; most active users feel the relief.
- **★★★★★ morphine** — severe or widespread agony: a security / data-loss fix users are exposed to, or a crash / outage / hang many hit.
### Joy scale
- **★ negligible** — a capability almost no one will notice.
- **★★ nice** — a pleasant quality-of-life or DX nicety.
- **★★★ useful** — a useful, wanted feature a meaningful subset of users will reach for.
- **★★★★ wanted** — a widely-wanted capability most active users benefit from.
- **★★★★★ delight** — a long-requested or workflow-unlocking capability that makes a previously-impossible thing possible.
### Impact (internal) scale
- **★ internal** — invisible plumbing (refactor, CI, tests, build, chore). The default for this axis.
- **★★ internal+** — internal work with an indirect user upside (reliability or maintainability that unblocks later fixes). Use sparingly; never higher — if a user can observe it, it belongs on Pain or Joy instead.
### Outcome signals
- **Up** on Pain when the PR fixes a crash / hang / data-loss / security issue users actually hit, resolves a (repeatedly-)reported community issue, or removes a documented footgun. User-facing docs that prevent a silent hang count as real Pain relief even though they are ★ to review.
- **Up** on Joy when the PR ships a capability users asked for, removes a long-standing limitation, or unlocks a workflow that was impossible before.
- **Down** to Impact ★ for internal refactors, test-only changes, CI/build, generated-file regeneration, or dependency bumps with no behavior change — regardless of size.
- Judge for the product's *users*, not its maintainers. When in doubt between two adjacent ratings, pick the **lower** one — over-claiming outcome is noisier than under-claiming (the opposite bias from review effort, where you round up).
- Cap at ★★★★★, never below ★ (Impact caps at ★★).
5. Generate the TLDR block in this exact format (plain text, no markdown):
```text
https://github.com/owner/repo/pull/123 -- PR title as-is
Scope: +N/-M lines, K files, C commits
Review effort: ★★★☆☆ (medium) | Pain relieved: ★★★★☆ (oxycodone)
TLDR: one sentence explaining WHY this PR exists (motivation, not technical details). Written in the resolved language.
```
Guidelines for TLDR line:
- Focus on WHY (motivation), not WHAT (implementation details)
- One sentence, concise
- No markdown, no formatting, no emoji
- Do not repeat the PR title — add context beyond it
Guidelines for the Scope and ratings lines:
- Put the scope on its own line and the two ratings on the next line — keeps each line short and scannable in Slack.
- Always render the scope as `+<additions>/-<deletions> lines, <files> files, <commits> commits` even when one of the numbers is 0 — the consistent shape is easier to scan in Slack.
- On the ratings line render `Review effort: <stars> (<word>) | <outcome-axis>: <stars> (<word>)`, where `<outcome-axis>` is exactly one of `Pain relieved`, `Joy`, or `Impact` per the axis picked in step 4. Review-effort words are `(trivial)`, `(small)`, `(medium)`, `(large)`, `(huge)`; Pain-relieved words are `(aspirin)`, `(ibuprofen)`, `(codeine)`, `(oxycodone)`, `(morphine)`; Joy words are `(negligible)`, `(nice)`, `(useful)`, `(wanted)`, `(delight)`; Impact words are `(internal)`, `(internal+)`.
- Always include the literal-word bucket in parentheses after each star group — the stars communicate at a glance; the word is for screen-reader and search-friendliness.
- The stars and words are in English regardless of `--lang`; only the TLDR sentence follows `--lang`, and the scope counts are locale-neutral.
- The two axes are independent: a one-line `fix` can be `★☆☆☆☆ (trivial)` to review yet `★★★★★ (morphine)` Pain relieved, and a huge `refactor` can be `★★★★☆ (large)` to review yet `★☆☆☆☆ (internal)` Impact. Rate each on its own merits, never copy one onto the other.
Example ratings lines, one per outcome axis:From lexfrei/ccc, BSD-3-Clause.
More from lexfrei/ccc
- 0.637score
infostyle
lexfrei
Edit Russian prose into информационный стиль (Ilyahov/Sarycheva): strip meaningless words, unfold abstractions into facts and examples, rebuild sentences…
SkillAFreshness: A★ 11Claude Code +9 - 0.637score
taguchi
lexfrei
Plan a minimal set of debugging or testing runs with a Taguchi orthogonal array instead of changing one factor at a time.
SkillAFreshness: A★ 11Claude Code +9 - 0.637score
pairwise
lexfrei
Generate a minimal pairwise covering array for factors with arbitrary mixed level counts, using the bundled deterministic generator.
SkillAFreshness: A★ 11Claude Code +9 - 0.637score
pore-analysis
lexfrei
Measure porosity, pore size/shape, lattice period and ordering (psi6, Voronoi coordination, radial g(r) and orientational correlation length) from a top-view…
SkillAFreshness: A★ 11Claude Code +9 - 0.632score
lore
lexfrei
Read, search, and monitor Linux kernel mailing-list threads on lore.kernel.org.
SkillAFreshness: A★ 11Claude Code +9 - 0.632score
brew-cleanup
lexfrei
Reclaim Homebrew disk by removing old formula/cask versions, pruning the download cache, and uninstalling orphaned dependencies (brew autoremove).
SkillAFreshness: A★ 11Claude Code +9 - 0.632score
address-pr-comments
lexfrei
End-to-end closeout of unresolved review feedback across one or more GitHub PRs.
SkillAFreshness: A★ 11Claude Code +9 - 0.632score
go-cache
lexfrei
Reclaim Go disk by clearing the build, test, fuzz, and module caches.
SkillAFreshness: A★ 11Claude Code +9 - 0.632score
stale-forks
lexfrei
Find personal forks that no longer carry value — their unique commits are already merged upstream, or they hold no unique commits at all — and remove the…
SkillAFreshness: A★ 11Claude Code +9 - 0.632score
worktree-sweep
lexfrei
Find and remove stale git worktrees across one or many repositories.
SkillAFreshness: A★ 11Claude Code +9 - 0.632score
docker-prune
lexfrei
Reclaim Docker disk by pruning unused images, containers, networks, build cache, optionally volumes, and the build cache of non-default buildx builders; on…
SkillAFreshness: A★ 11Claude Code +9 - 0.632score
cleanup-all
lexfrei
Run the full local cleanup pipeline — stale git worktrees, dead personal forks, Docker prune, Go caches, and Homebrew — in one pass, each stage report →…
SkillAFreshness: A★ 11Claude Code +9
Signals
- Stars
- 11
- Forks
- 3
- Open issues
- 2
- Last commit (this folder)
- Jul 8, 2026 (3 months ago)
- Last release
- Oct 4, 2026 (26 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- BSD-3-Clause
- Repository
- github.com/lexfrei/ccc
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from lexfrei
- 0.637score
infostyle
lexfrei
Edit Russian prose into информационный стиль (Ilyahov/Sarycheva): strip meaningless words, unfold abstractions into facts and examples, rebuild sentences…
SkillAFreshness: A★ 11Claude Code +9 - 0.637score
pore-analysis
lexfrei
Measure porosity, pore size/shape, lattice period and ordering (psi6, Voronoi coordination, radial g(r) and orientational correlation length) from a top-view…
SkillAFreshness: A★ 11Claude Code +9 - 0.637score
pairwise
lexfrei
Generate a minimal pairwise covering array for factors with arbitrary mixed level counts, using the bundled deterministic generator.
SkillAFreshness: A★ 11Claude Code +9 - 0.637score
taguchi
lexfrei
Plan a minimal set of debugging or testing runs with a Taguchi orthogonal array instead of changing one factor at a time.
SkillAFreshness: A★ 11Claude Code +9 - 0.632score
cleanup-all
lexfrei
Run the full local cleanup pipeline — stale git worktrees, dead personal forks, Docker prune, Go caches, and Homebrew — in one pass, each stage report →…
SkillAFreshness: A★ 11Claude Code +9 - 0.632score
docker-prune
lexfrei
Reclaim Docker disk by pruning unused images, containers, networks, build cache, optionally volumes, and the build cache of non-default buildx builders; on…
SkillAFreshness: A★ 11Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get tldrpr running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
tldrpr skill. Agent Mart. https://agentmart.dev/skills/lexfrei-tldrpr (last updated 2026-10-24)