agentsclimarketplace

Repo geo

Skill BazingaOrg/repo-geo

Audit and optimize a code repository for AI/LLM discoverability (GEO). Use when the user asks to make a repo discoverable by AI, mentions GEO, llms.txt, AI visibility, "让 AI 搜到我的项目", "给这个仓库做 GEO", AI SEO for a project, or wants README/docs structured so ChatGPT, Claude, and Perplexity cite it accurately. Works on backend-only, frontend-only, and full-stack repos.From its SKILL.md

Install
npx -y skills add BazingaOrg/repo-geo

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

5.8 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it

repo-geo

Make a repository accurately findable and citable by AI search systems. Audit first, report, get confirmation, then edit.

Core principle

Every change must make it easier for a model to accurately understand what already exists. Never add content that restates information already on the page. If a proposed change does not add new information, drop it. Ranking tricks, padding, and score-chasing are out of scope and actively harmful.

Workflow

Run these phases in order. Do not skip to editing.

Phase 1 — Detect repo type

Inspect the repo root and classify into exactly one of:

  • backend — no site output. Signals: pyproject.toml, go.mod, Cargo.toml, package.json without a bundler/framework, presence of openapi.* / main.go / src/lib, absence of index.html / public/.
  • fullstack — both. Signals: next.config.*, nuxt.config.*, remix.config.*, or a web/ + server/ split, or package.json with both a server framework and a UI framework.
  • frontend — site or client app. Signals: index.html, public/, dist/, vite.config.*, static site generators (Hugo, Astro, Docusaurus, VitePress).

State the classification and the evidence you used before continuing. If ambiguous, ask.

Also determine: is there a published site (a domain this repo deploys to)? Site-level items only apply if yes. Read references/repo-types.md for the per-type action table.

Phase 2 — Audit (read-only)

Run the audit script:

python3 scripts/audit.py <repo-path>

For multiple repos, pass several paths — it emits a per-repo result plus a summary table.

The script emits JSON. It handles the mechanical checks (file presence, word counts, metadata fields, spec conformance). You must handle the judgment calls yourself by reading the files: whether the README opening is a genuine quotable definition, whether comparison content is substantive, whether an existing FAQ is padding. The script flags candidates; you decide.

Do not modify anything in this phase.

Phase 3 — Report

Present a table: check / status (OK, WEAK, MISSING) / where / what to do. Then a recommendation list sorted by value-to-effort, split into:

  • A — this skill can do it (files in the repo)
  • B — you must do it (GitHub web settings, Search Console, Bing Webmaster Tools, package registry pages)

Include a realistic expectation note (see references/evidence.md, "Expectation management"). Do not oversell.

Phase 4 — Confirm

Ask which A-items to apply. Default-select the high-value ones. Two decisions always need an explicit answer:

  1. Training crawlers (GPTBot, CCBot, Meta-ExternalAgent) — default is block, but this is the user's call, never yours. Blocking them does not affect AI search results; it only keeps content out of training data.
  2. Deletions — if the audit flagged padding (a redundant FAQ, a restated section), propose removal explicitly and get a yes.

Phase 5 — Apply

Rules:

  • Never overwrite human-written prose. Augment, or generate only where the file is absent.
  • One file at a time. Use templates in templates/ as a starting structure, not as literal output — fill them with facts read from the actual repo.
  • Facts must come from the repo (real version numbers, real install commands, real benchmarks). Never invent numbers.
  • Do not touch anything in references/dont-do.md.

Phase 6 — Verify

  • git diff --stat, and walk through the diff with the user.
  • Validate any generated llms.txt against the spec: required H1, blockquote summary, H2 sections containing only link lists.
  • Check every generated link resolves.
  • Re-read generated prose once, asking of each paragraph: does this say something not already said elsewhere? Delete it if not.

What good looks like

README opening. The first ~200 characters should be a self-contained definition a model can lift verbatim: what it is, what category, what it does. Pake is a Rust-based CLI that turns any webpage into a lightweight desktop app — not A cool little tool I built on weekends.

Specificity over generality. Pages with real data, clear definitions, and side-by-side comparison have >50% more measured influence than vague ones. Version numbers, sizes, benchmarks, explicit "unlike X, this does Y".

Length. High-citation pages average ~2000 words with 10+ headings; low-influence pages average 170 words. Target 1000–3000 words for a core doc page. But length must come from substance, never padding.

Natural-language URLs. /projects/pake tells a model what the page is before it reads a line. /page?id=47 says nothing.

English. Over 83% of global citation samples are English. An international project needs an English README, even if the primary one is Chinese.

Per-topic pages. Split a monolithic README into docs/ pages, each self-contained with a quotable summary, features, comparison, use cases, install command.

Reference files

  • references/crawlers.md — crawler taxonomy and robots.txt policy
  • references/evidence.md — what the research supports, and expectation management
  • references/dont-do.md — hard constraints, read before editing
  • references/repo-types.md — per-type action table

Templates

templates/ holds starting structures for llms.txt, llms-full.txt, robots.txt, a README skeleton, and a per-project knowledge page. Read the relevant one before generating that file.

What ships with it: 14 files

42.1 KB alongside SKILL.md, 1 of them executable

references/

scripts/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.