github-repo-audit
Skill2 starsChanged 6 months agoMITView on GitHub
Audit and rewrite a GitHub repo's README, About sentence, topic tags, and hero asset strategy. Spawns 5 specialist research agents in parallel (competitive landscape, target-user pain language, product positioning, README visual hierarchy + asset hygiene, SEO + AI-citation surface), synthesizes findings, drafts a severity-ranked issue list, gates on user approval, then applies fixes — rewriting README.md, updating GitHub About + topic tags via `gh repo edit`, and producing a hero-asset shotlist (handed to `claude-gif` if installed). Use whenever the user wants to audit, rewrite, reposition, or fix the public-facing surface of any open-source repo, including phrasings like "fix my readme", "rewrite my readme", "audit my github project", "my repo isn't getting stars", "open source positioning help", or pasting a repo URL and asking what's wrong with it. Also triggers on "/github-repo-audit", "repo audit", "readme audit", "repo positioning audit", "open source readme audit". Especially valuable when the repo name is legacy, when the README mixes product description with implementation detail, when competing against a SaaS incumbent and needing sharper anti-positioning, or when a human-in-the-loop project needs to distance itself from spam/automation tools in its category.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- andrew-abdelmalak/github-presence-skillstheir own version, first seen Oct 20, 2026
- techysy/yangyu-hermes-skillstheir own version, first seen Oct 13, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- techysy/yangyu-hermes-skills★ 8same name
- andrew-abdelmalak/github-presence-skills★ 0same 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.
The file
We split this skill into the rules it gives an agent
12 rules. About 0 are common, 7 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 48
Do not proceed past Step 1 without ground truth.
- Distinctive: line 73
Suggested new repo name: if and only if the current name is genuinely misleading
- Distinctive: line 75
If two agents return contradictory recommendations, flag the contradiction in the synthesis and ask the user to resolve before applying.
- Very specific: line 99
Do not write a single file or run a single gh command before this gate clears.
- Distinctive: line 123
Always emit the shotlist (frames, dimensions, end-frame static specs, captions).
- Very specific: line 124
If claude-gif skill is installed (check ~/.claude/skills/claude-gif/ or plugin equivalents): offer to invoke /claude-gif with the shotlist …
- Very specific: line 125
If not installed: output the shotlist as a standalone spec, point the user to install claude-gif, and continue without it.
- Distinctive: line 131
Before saving any README text, the writer must self-check against these.
- Distinctive: line 136
Implication of auto-publish, mass outreach, pods, spam: when the product is human-in-the-loop → rewrite
- Very specific: line 170
If 1 of 5 agents fails or times out, proceed to synthesis with the remaining 4 and note the gap explicitly in synthesis.md.
- Distinctive: line 176
If during synthesis the orchestrator notices a fact in the ground truth contradicts what agents independently found (e.g., user said "open …
- Very specific: line 185
Always fresh. The audit runs end-to-end every time.
≈ “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
GitHub Repo Audit
Orchestrate a multi-dimensional audit of a GitHub repo's public surface (README, About, topic tags, repo name, hero assets) and apply approved fixes. The audit phase is read-only; the apply phase is gated on explicit user approval per change.
When this skill fits
Use this skill when the user wants to improve how their repo is perceived — by humans browsing GitHub, by Google, and by AI engines (Perplexity, ChatGPT, Claude) summarizing the project. It is not a code audit, security audit, or test-coverage audit. It is a positioning + discoverability + first-impression audit.
Strong-fit signals:
- Repo has a working product but the README reads like commit notes or marketing fluff
- Repo name is legacy and no longer matches what the project does
- Project competes with a well-known SaaS and needs sharp anti-positioning
- Project is human-in-the-loop / responsible-tooling and risks being lumped in with spammy alternatives
- Star count or install rate feels low relative to product quality
Poor-fit signals (decline and redirect):
- User wants code review → suggest
code-reviewer - User wants security audit → suggest
security-revieworcybersecurity - User wants Google SEO for a marketing site, not a repo → suggest
seo
Core principles
Read first. Edit second. Push never (without approval). The 5 research agents run read-only. The synthesis is a draft. Every file write and every gh mutation requires explicit user sign-off.
Ground truth survives every step. Before any agent runs, capture a 1-paragraph "what this product actually is" from the user (or extract a draft and confirm). All downstream agents receive this verbatim. If ground truth shifts mid-audit, restart the relevant agents — don't paper over it.
Anti-positioning is a feature. Especially for human-in-the-loop, niche, or principled tools, what the project isn't matters as much as what it is. The audit actively looks for opportunities to name and reject the spammy adjacent category.
No filler. No growth-hack phrasing. No decorative emojis. The skill enforces hard rejection criteria on the writer's output (see below).
The 7-step flow
Step 1 — Intake
Collect:
- Repo location. GitHub URL or local path. If local, confirm the
originremote withgit remote -v. - Product ground truth. One paragraph: what the product actually does, who it's for, what it explicitly is NOT, what fear/pain the user feels around the category. If the user hasn't provided this, draft it from the existing README +
package.json/pyproject.toml/Cargo.toml+ last 20 commits, then show the draft and ask: "Is this accurate? Anything I got wrong or should add?" - Constraints. Any sections the user wants preserved verbatim? Any phrasing they hate? Any competitors they want named (or avoided)?
- Optional: target outcome. "More stars from solo developers" vs "enterprise inbound" vs "stop being mistaken for a spam tool" — the audit weights differently.
Do not proceed past Step 1 without ground truth. The 5 agents are useless without it.
Step 2 — Spawn 5 agents in parallel
Issue a single tool-call batch with these five Task tool invocations (one per subagent_type). Running them sequentially defeats the purpose — they're independent and should overlap.
Each agent receives the ground truth verbatim + the agent-specific brief from references/agent-briefs.md. Read that file for the exact prompts to use.
The five agents:
competitive-analyst— Adjacent-category OSS README surveymarket-researcher— Target-user pain vocabulary + objection mapproduct-strategist— Anti-positioning + comparison-table axesui-ux-designer— Above-fold blueprint + hero asset speccontent-marketer— GitHub SEO + Google SEO + AI-citation surface
Step 3 — Synthesis
Merge the five returns into a single synthesis document. Required fields:
- Final positioning sentence (one sentence, no more)
- Above-fold blueprint (H1, sub, hero asset, anti-positioning callout, primary CTA)
- Keyword → H2 assignment map
- Comparison-table rows and columns (with the axes chosen to flatter the project's actual differentiator)
- FAQ list (drawn from researcher objections + buyer-intent queries)
- Hero asset shotlist with static end-frame notes
- GitHub metadata (About sentence ≤350 chars, topic tags ≤20)
- Suggested new repo name if and only if the current name is genuinely misleading
If two agents return contradictory recommendations, flag the contradiction in the synthesis and ask the user to resolve before applying. Don't average — pick.
Step 4 — Issue list with severity
Convert the synthesis into a prioritized issue list. Each issue gets:
- Severity: Critical / High / Medium / Low
- Where: the part of the repo surface affected (README section, About, topic tags, repo name, hero asset)
- What's wrong: one sentence
- Proposed fix: the exact replacement text or action
Severity guide:
- Critical — anything that actively misleads users about what the product does or could damage trust (e.g., implies auto-publish when it's human-in-the-loop)
- High — first-impression failures (broken hero, no anti-positioning, legacy name, missing install)
- Medium — structural improvements (TOC, accordions, comparison table)
- Low — polish (badge cleanup, alt text, tag refinement)
Step 5 — Approval gate
Present the issue list to the user. Default selection: all Critical + High. The user can:
- Approve as-is
- Approve a subset
- Edit any proposed fix before applying
- Reject
Do not write a single file or run a single gh command before this gate clears.
Step 6 — Apply approved fixes
For each approved issue:
- README changes — rewrite the relevant section in the required section order (see below). Use the writer self-check before saving (see Hard Rejection Criteria).
- GitHub About —
gh repo edit <repo> --description "<sentence>" - Topic tags —
gh repo edit <repo> --add-topic <tag>per tag (and--remove-topicfor removals) - Repo rename — confirm again before this one specifically.
gh repo rename <new-name>is reversible but visible. Warn about redirect implications.
Required README section order:
- Hero (H1 + one-sentence sub + hero asset + primary CTA)
- Anti-positioning callout (what this is NOT, if applicable)
- How it works (3 steps, max)
- Install (3 commands, max — anything longer goes in an accordion)
- Config
<details>accordions for technical depth (architecture, advanced config, troubleshooting)- Comparison table (vs the named competitor + adjacent alternatives + manual)
- FAQ (Q&A blocks formatted for AI-engine citability)
- Honest TOS / user-responsibility framing (if the product touches a platform with terms — LinkedIn, X, Discord, etc.)
- License + Contributing
Step 7 — Hero asset shotlist
Always emit the shotlist (frames, dimensions, end-frame static specs, captions). Then:
- If
claude-gifskill is installed (check~/.claude/skills/claude-gif/or plugin equivalents): offer to invoke/claude-gifwith the shotlist as the brief. Don't auto-invoke — ask first. - If not installed: output the shotlist as a standalone spec, point the user to install
claude-gif, and continue without it.
The skill must complete end-to-end whether or not claude-gif is installed.
Hard rejection criteria (writer self-check)
Before saving any README text, the writer must self-check against these. If any trigger, rewrite:
- Growth-hack phrasing ("unlock", "supercharge", "10x", "game-changer", "next-level") → reject
- Emojis not earning pixels (decorative emojis at the start of every section header) → strip
- More than 3 functional badges OR any decorative badges → strip
- Implication of auto-publish, mass outreach, pods, spam when the product is human-in-the-loop → rewrite
- Filler verbs ("leverage", "empower", "transform") → rewrite with concrete verbs
- Jargon in the first 200 words (anything a non-technical target user wouldn't recognize) → rewrite
- Trailing "with ❤️ by [author]" or "made with caffeine" style signoffs → strip
- AI-generated tells ("In today's fast-paced world", "It's important to note", em-dash overuse) → rewrite
See references/rejection-examples.md for before/after examples.
Companion skills
claude-gif(optional) — Renders the hero asset shotlist. Skill works without it (emits spec only). Install via theclaude-gifskill bundle.seo(optional) — If the project has a marketing site beyond the repo,seoaudits that separately. This skill audits the repo surface only.code-reviewer(optional) — For code-level review, run separately. This skill does not look at code quality.
Reference files
references/agent-briefs.md— Exact prompts to send to each of the 5 specialist agentsreferences/rejection-examples.md— Before/after examples for each rejection criterionreferences/section-templates.md— Templates for hero, anti-positioning callout, comparison table, FAQ Q&A blocks
Output artifacts
The skill produces (and saves to <repo>/.audit/ by default, or wherever the user specifies):
synthesis.md— full synthesis document from Step 3issues.md— prioritized issue list from Step 4README.md— rewritten (applied to repo root if approved)github-metadata.md— About sentence + topic tags + suggested repo namehero-shotlist.md— asset spec forclaude-gifor manual rendering
Operational rules
These cover edge cases stress-testing surfaced. They're not optional — they're the difference between a clean audit and a stuck one.
Partial agent failure
If 1 of 5 agents fails or times out, proceed to synthesis with the remaining 4 and note the gap explicitly in synthesis.md. If 2+ agents fail, stop and tell the user — synthesis from 3-of-5 is unreliable, retry the failed agents instead.
Conflict resolution between agents
The five agents see the same ground truth but reach independent conclusions. Surface a conflict to the user only when it's load-bearing: contradictory positioning sentences, contradictory category decisions, or contradictory recommendations on whether to rename the repo. Stylistic differences (different word choices, different example competitors) get merged by the orchestrator without user input. Don't drown the user in micro-disagreements.
Ground-truth drift detection
If during synthesis the orchestrator notices a fact in the ground truth contradicts what agents independently found (e.g., user said "open source" but every agent treats it as SaaS), pause and reconfirm with the user before continuing. Don't paper over it.
gh auth and private repos
Before Step 6, check gh auth status. If unauthenticated, the README write still proceeds (file-only), but About/topic-tag/rename updates emit a copy-paste block of gh commands for the user to run after authenticating. Private repos work the same way — the audit doesn't need API access to read the local repo, only to push metadata.
Monorepos
Audit the root README.md only. If packages/*/README.md or similar exists, mention it in the issue list as "out of scope; re-run the skill from inside the package directory if needed." Don't recursively audit.
Re-runs
Always fresh. The audit runs end-to-end every time. Prior .audit/ artifacts are overwritten. If the user wants delta-only analysis, they can diff .audit/synthesis.md against git history manually.
Writer self-check
The rejection criteria are applied inline by the orchestrator before writing each README section. Read references/rejection-examples.md once at synthesis time; then for each section being written, scan against the 10 patterns before saving. No separate subagent — the cost isn't worth it for a pattern-match check the orchestrator can do in context.
Cost expectation
A full audit runs 5 parallel Task calls + 1 synthesis pass + 1 writer pass. On a typical OSS repo, expect $0.20–$0.50 in model spend depending on context size. Tell the user this up front if the repo is small or the audit is exploratory.
What this skill does NOT do
- Push commits or open PRs automatically — the user does that
- Modify code outside README/metadata
- Audit security, performance, or test coverage
- Generate the actual hero GIF without
claude-gifinstalled - Promise traffic, stars, or conversion outcomes — positioning is necessary but not sufficient
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.

