Repository AI Discoverability Audit
Audit a repository’s visibility to AI coding agents and developer search.
Mindset: AI agents are becoming the primary way developers discover libraries. A functionally strong library that scores poorly on machine-readable signals will never get recommended. This command measures the gap between code quality and discoverability, and surfaces what polish can fix vs. what requires usage evidence that polish alone cannot create.
Resource Hint: sonnet - structured audit with concrete rubrics, optional content drafting
When to Use
- Before publishing or promoting a library
- Periodic audit of existing public repositories
- After
/pb-repo-enhanceto measure remaining discoverability gaps - When a library has low adoption despite solid code
- Fleet-wide audit across an org (
--statusmode)
Objective
Produce a scorecard measuring how well a repository converts when discovered by AI agents or developer search. Five scored dimensions (0-3 each, max 15) plus an informational usage evidence section that honestly surfaces what polish cannot fix.
Invocations
/pb-repo-polish owner/repo Full audit: scorecard + action items
/pb-repo-polish owner/repo --draft Audit + generate content drafts (llms.txt, README sections)
/pb-repo-polish --status Fleet view: which repos polished, scores
Review Checklist
Dimension 1: Search Term Alignment (0-3)
Does the description, README, and topics contain the words developers actually search?
| Score | Criteria |
|---|---|
| 0 | Description is generic or missing (“A Go library”) |
| 1 | Description names the category (“circuit breaker for Go”) |
| 2 | Description + README first line contain likely search terms |
| 3 | Description + README + topics all hit the search terms a developer would use |
How to assess: Think about what a developer would type into Google, pkg.go.dev, npm, or ask an AI agent. Compare those terms against the repo’s description, README opening paragraph, and GitHub topics. Misalignment here is the highest-ROI fix for small libraries.
Dimension 2: README Machine-Readability (0-3)
Can an AI agent extract what this library does, how to install it, and when to use it from the README alone?
| Score | Criteria |
|---|---|
| 0 | No README or stub |
| 1 | Has description and install command |
| 2 | Above + working example with imports within first 60 lines |
| 3 | Above + “when to use this” section and standalone first paragraph |
How to assess: Read the README as if you have zero context. Can you answer: what does it do, how do I install it, show me an example, when should I use this vs. alternatives? Each missing answer costs a point.
Dimension 3: Registry Presence (0-3)
Is the library findable and current on the expected package registry?
| Score | Criteria |
|---|---|
| 0 | Not on expected registry |
| 1 | Published but stale (local version ahead) or module path issue |
| 2 | Published, current, but no importers/downloads visible |
| 3 | Published, current, correct path, visible on registry search |
How to assess:
- Go: check
pkg.go.dev/{module}- is it indexed? Is the latest version shown? Is the module path correct (especially/v2suffixes)? - Node: check
npmjs.com/package/{name}- is it published? Is the latest version current? - Other: check the language-appropriate registry
Dimension 4: Metadata Completeness (0-3)
Does GitHub metadata make the repo discoverable and credible at a glance?
| Score | Criteria |
|---|---|
| 0 | No description or topics |
| 1 | Description exists, <3 topics |
| 2 | Description + 3-4 topics + license |
| 3 | Keyword-rich description + 5+ relevant topics + license + homepage |
How to assess: Run gh repo view owner/repo --json description,repositoryTopics,licenseInfo,homepageUrl and evaluate against the rubric. Topics should include the language, the problem domain, and the specific technique.
Dimension 5: Examples Quality (0-3)
Can a developer copy-paste a working example without reading the full source?
| Score | Criteria |
|---|---|
| 0 | No examples anywhere |
| 1 | README has inline examples but no examples/ directory |
| 2 | examples/ dir exists with 1+ example |
| 3 | examples/ dir with 3+ problem-oriented examples, all runnable with imports |
How to assess: Check for examples/ directory. If it exists, verify examples compile/run and have complete import statements. Problem-oriented means each example solves a specific use case, not just “basic usage.”
Dimension 6: Usage Evidence (informational, not scored)
Surface the signals that polish cannot create. This section is honest about what metadata improvements can and cannot do.
What to check:
- Dependents count (pkg.go.dev “Imported by” or npm dependents)
- Download stats (npm weekly downloads)
- External references (blog posts, Stack Overflow mentions, conference talks)
- Stars and forks (weak signal but still signal)
Scoring
Max score: 15 (5 dimensions x 3 points each)
| Tier | Score | Meaning |
|---|---|---|
| Ship-ready | 13-15 | Metadata is strong. Focus shifts to usage evidence. |
| Functional but invisible | 9-12 | Code works, but AI agents and search won’t find or recommend it. |
| Significant gaps | 5-8 | Missing basics. Fix before any promotion effort. |
| Not ready | 0-4 | Needs /pb-repo-enhance first. |
Deliverables
Scorecard (always produced)
## AI Discoverability Scorecard: {owner}/{repo}
| # | Dimension | Score | Notes |
|---|-----------|-------|-------|
| 1 | Search Term Alignment | X/3 | {specific finding} |
| 2 | README Machine-Readability | X/3 | {specific finding} |
| 3 | Registry Presence | X/3 | {specific finding} |
| 4 | Metadata Completeness | X/3 | {specific finding} |
| 5 | Examples Quality | X/3 | {specific finding} |
| | **Total** | **X/15** | **{tier}** |
## Usage Evidence
Dependents: N (pkg.go.dev) / N (npm)
Downloads: ~N/week (npm only)
External references: {found or "none found"}
Note: Metadata polish improves conversion but not discovery.
For this repo to be recommended by AI agents, it needs usage
evidence: blog posts, SO answers, or dependents that reference it.
Action Items (always produced)
Ordered by impact. Each item is concrete and actionable:
## Action Items (ordered by impact)
1. **[Dim X]** {Specific action} - {why this moves the score}
2. **[Dim X]** {Specific action} - {why this moves the score}
...
Content Drafts (–draft flag only)
When --draft is passed, produce these after the scorecard:
1. llms.txt draft (P2 - experimental format, not widely consumed yet):
# {name}
> {one-line from description}
## What it does
{2-3 sentences}
## Install
{install command}
## Quick start
{minimal working example}
## API
{key functions/types}
## When to use this
{use cases}
## When NOT to use this
{anti-use-cases, alternatives}
2. README “When to use this” section - comparison anchor against the dominant alternative. Format:
## When to Use This
Use {name} when you need {specific scenario}.
**Choose {name} over {alternative} when:**
- {differentiator 1}
- {differentiator 2}
**Choose {alternative} instead when:**
- {scenario where alternative wins}
3. Description improvement - if search terms are missing from the current description, draft a better one (max 160 chars).
4. Metadata fix commands - exact gh repo edit commands:
gh repo edit owner/repo --description "new description"
gh repo edit owner/repo --add-topic topic1 --add-topic topic2
Fleet View (–status mode)
## AI Discoverability Status: {org}
| Repo | Score | Tier | Last Audited | Top Gap |
|------|-------|------|-------------|---------|
| repo-1 | 12/15 | Functional | 2026-03-01 | Examples |
| repo-2 | 8/15 | Gaps | 2026-02-15 | Search terms |
| repo-3 | -- | Not audited | -- | -- |
Process
Step 1: Gather Data
# Repository metadata
gh repo view owner/repo --json description,repositoryTopics,licenseInfo,homepageUrl
# README content
gh api repos/owner/repo/readme --jq '.content' | base64 -d
# Check for examples directory
gh api repos/owner/repo/contents/examples 2>/dev/null
# Registry check (Go)
# Visit pkg.go.dev/{module-path}
# Registry check (Node)
# Visit npmjs.com/package/{name}
Step 2: Score Each Dimension
Walk through each dimension’s rubric. Be precise: score what exists, not what could exist.
Step 3: Identify Search Terms
Think like a developer searching for this type of library:
- What problem are they solving?
- What words would they type?
- Compare against description, README first paragraph, and topics
Step 4: Produce Scorecard + Action Items
Use the deliverable templates above. Action items ordered by score impact (biggest gaps first).
Step 5: Draft Content (–draft only)
Generate llms.txt, “When to use this” section, improved description, and gh repo edit commands.
Anti-Patterns to Avoid
| Problem | Solution |
|---|---|
| Scoring on vibes | Use the rubric criteria exactly |
| Inflating scores to be nice | A 2 is not a 3. Be honest. |
| Pretending polish fixes adoption | Usage evidence section exists for this reason |
| Auditing project health (CI, tests) | That’s /pb-review-hygiene territory |
| Writing final content in audit mode | Audit scores and suggests. --draft generates. |
| Generic action items (“improve README”) | Be specific: “Add install command before line 20” |
Related Commands
/pb-repo-enhance- Full repository polish (organize + docs + presentation)/pb-repo-about- Generate GitHub About section + tags/pb-repo-readme- Write or rewrite project README/pb-repo-organize- Clean up project root structure
Discoverable repo, discoverable library.