repo-description-polish
Skill2 starsChanged 6 months agoApache-2.0View on GitHub
Audit and polish the GitHub repo description — the pitch shown in search results, previews, and embeds. Proposes a stronger one from README + signals; applies via gh repo edit after approval. Sub-skill of repo-seo-curator.
In this repository43 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- break-glassSkill
- claim-ledgerSkill
- contract-parity-auditSkill
- counterfactual-auditSkill
- design-doc-reviewSkill
- diagram-gen-emergentSkill
- diagram-gen-specSkill
- doc-triageSkill
- explain-workSkill
- feature-implSkill
- finding-triageSkill
- first-party-auditSkill
- gh-token-rotateSkill
- handoffSkill
- implementSkill
- jj-stackSkill
- linear-escalation-triageSkill
- mache-usageSkill
- park-workSkill
- pr-boardSkill
- pr-bucketsSkill
- prior-art-cartographerSkill
- problem-decomposerSkill
- pr-review-kitSkill
- pr-reviewSkill
- pr-suggestionSkill
- readme-restructureSkill
- repo-homepage-setSkill
- repo-social-previewSkill
- repo-topic-taggerSkill
- review-prepSkill
- review-queueSkill
- reviewSkill
- self-auditSkill
- structural-pr-reviewSkill
- surveySkill
- taskfile-ci-paritySkill
- test-fidelitySkill
- workflow-auditSkill
- work-scopeSkill
- writing-pr-descriptionsSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 2 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
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 84
Read in this priority order:
- Distinctive: line 88
Tagline near top of CLAUDE.md / ARCHITECTURE.md: if present
- Very specific: line 145
Verify by re-reading with gh repo view <owner/repo> --json description.
- Very specific: line 176
One field per pass: Do not bundle description changes with topic or homepage changes — that's the parent repo-seo-curator's job to sequence.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
<!-- Author: jamestexas — drafted by claude-opus-4-7 (2026-05-16) -->/repo-description-polish — GitHub Repo Description
Audit the GitHub repository description field and propose a polished replacement.
Arguments
$ARGUMENTS
<owner/repo>— one or more target repos. Defaults to the repo containing the current working directory.--dry-run(default) — propose only.--apply— present proposal, prompt for approval, then write viagh repo edit.
What this solves
The description is the single sentence that decides whether a stranger clicks. It shows in:
- GitHub search results
- GitHub repo cards and "related repos"
- Hacker News, Slack, Discord link previews (OpenGraph)
- Package registries when the repo is linked from a package
- LLM-driven "what tools exist for X" recall
Bad descriptions are very common in the user's repos:
PRIVATE moat 🏰 M.O.A.T: Mixture of Adaptive Tokenizers
PRIVATE bread 🥖
PRIVATE smoge 🐉🤖
PRIVATE sushi 🍣
PUBLIC gh-weekly <no description>
PUBLIC papers <no description>
PUBLIC x-ray <no description>Emoji-only and empty descriptions kill discoverability for both humans and LLMs.
What a good description looks like
✅ "Workerd-based hypervisor with a declarative Cap'n Proto manifest. Substrate-level
identity, audit, and per-bundle credential scoping. Today's primary application:
hosting MCP servers behind one HTTP face." (cloister)
✅ "Open-source data plane primitives: arena storage, schema contracts, filesystem
projection, tree-sitter AST, LSP integration." (ley-line-open)Pattern:
- Category noun first — what kind of thing is this? (
hypervisor,library,protocol,CLI) - Defining trait — what distinguishes it from peers in that category?
- (Optional) Primary use case — what does someone actually do with it?
Length target: 120–250 chars. GitHub truncates around 350 in some surfaces.
Hard rules
- No emoji-only descriptions. They convey nothing in search results.
- No starting emoji decoration unless the project has a strong logo association already. If unsure, drop it.
- No promotional adjectives:
blazing fast,next-gen,revolutionary,cutting-edge. Search engines deprioritize, humans skip, LLMs ignore. - No initialisms without expansion in the first sentence. "BREAD" alone is opaque; "BREAD (Bidirectional Recurrent Encoder for Anchored Diffusion)" is searchable.
- Lead with the category noun, not the project name. GitHub already shows the name; you don't need to repeat it.
Workflow
Phase 1: Inventory
gh repo view <owner/repo> --json name,description,repositoryTopics,visibility,isFork,isArchived,homepageUrl,primaryLanguageSkip with a printed reason if isFork or isArchived. Continue on private repos only if explicitly named (private repo descriptions still affect search inside an org).
Phase 2: Signal gathering
Read in this priority order:
- README first 1000 chars — the value prop is almost always there if it exists anywhere
<h1>or first heading + first paragraph — often a usable seed- Tagline near top of CLAUDE.md / ARCHITECTURE.md if present
- Package manifest
descriptionfields —package.json,Cargo.toml,pyproject.toml - The repo name itself — what does the name suggest the project is?
Phase 3: Diagnose the current description
Classify the existing description into one of:
| Class | Example | Action |
empty | <no description> | Generate from scratch |
emoji-only | 🥖 | Replace |
vague | Some experiments | Replace with category noun + trait |
marketing | Blazing-fast revolutionary... | Rewrite, strip adjectives |
acronym-only | BREAD | Expand and contextualize |
working | Workerd-based hypervisor... | Leave alone |
working but stale | references removed features | Update narrowly |
For class working, skip the repo and report. Don't rewrite working content.
Phase 4: Proposal
Produce one proposal per repo:
## <owner/repo>
Current: <description or "(empty)">
Class: <empty|emoji-only|vague|marketing|acronym-only|working|working-but-stale>
Proposed: <new description>
Length: <N> chars
Rationale:
- <why this category noun>
- <what trait makes it distinct>
- <what was wrong with the old one>
Rejected alternatives:
- "<other phrasing>" — too vague / too marketing / etc.Phase 5: Approval
Print all proposals as one document. Then:
--dry-run(default): stop. Print a hint to re-run with--apply.--apply: print "Apply these N description changes? (yes/no)" and wait. Only proceed on explicit affirmative.
Phase 6: Apply
gh repo edit "<owner>/<repo>" --description "<new text>"Notes:
- Escape inner double quotes if any (rare — descriptions shouldn't have them).
- Verify by re-reading with
gh repo view <owner/repo> --json description.
Phase 7: Report
Applied:
agentic-research/mache — was: "🗂️ The Universal..."
now: "Graph-native code intelligence..."
jamestexas/bread — was: "🥖"
now: "BREAD (Bidirectional Recurrent..."
Skipped:
agentic-research/cloister — description already strong
jamestexas/papers — no README signal, needs human inputExamples
/repo-description-polish agentic-research/mache
→ dry-run proposal for mache
/repo-description-polish jamestexas/bread jamestexas/moat --apply
→ proposal for both, prompts for approval, writes via gh
/repo-description-polish
→ uses current working directory's repoImportant rules
- Default to
--dry-run. Descriptions are visible to anyone, including the org page. - One field per pass. Do not bundle description changes with topic or homepage changes — that's the parent
repo-seo-curator's job to sequence. - If a description is already strong, skip the repo. Churn hurts SEO.
- Don't touch forks or archived repos unless explicitly named.
- For private repos, ask before writing. Even private descriptions are visible to org members in some surfaces; the user may want different copy than for public.
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.

