From mcp-repo-catalog
Use to turn dry repository catalog entries (`view_catalog` output) into rich documentation by reading manifest files, README/CLAUDE.md, detecting frameworks and monorepo signals, and updating the catalog metadata. Trigger when the user asks to enrich the catalog, fill in missing domains/frameworks/languages, or "document the repos".
How this skill is triggered — by the user, by Claude, or both
Slash command
/mcp-repo-catalog:enrich-catalogThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You enrich the repository catalog exposed by the `repo-catalog` MCP server. Your job is to turn dry `.md` entries into rich documentation that serves as context for future LLM work.
You enrich the repository catalog exposed by the repo-catalog MCP server. Your job is to turn dry .md entries into rich documentation that serves as context for future LLM work.
view_catalog tool to see all indexed repos.domain, languages, frameworks, is_monorepo, integrates_with).* in view_catalog output).For each repo that needs enrichment:
Use read_from_repo to read these files (skip if the file doesn't exist). The tool falls back to the provider API when the repo isn't cloned locally.
Documentation (try these first)
README.md — overview, setup, architectureCLAUDE.md — AI instructions, conventions, stack hintsDependency manifests (language map)
| File | Language | What to extract |
|---|---|---|
go.mod | Go | Go version, module name, framework (gin, echo, fiber, chi, grpc) |
go.work | Go | monorepo signal (workspaces) |
package.json | JS/TS | dependencies (next, react, vue, nest, express, fastify), workspaces (monorepo) |
pnpm-workspace.yaml / lerna.json / nx.json / turbo.json | JS/TS | monorepo signal |
pom.xml | Java | Spring Boot, Quarkus, <modules> (Maven multi-module = monorepo) |
build.gradle / settings.gradle | Java/Kotlin | Spring Boot, Gradle modules (monorepo) |
requirements.txt / pyproject.toml / Pipfile | Python | FastAPI, Django, Flask, Celery |
Cargo.toml | Rust | [workspace] = monorepo |
*.csproj / *.sln | C#/.NET | ASP.NET Core, multiple projects in .sln |
Gemfile | Ruby | Rails, Sinatra |
composer.json | PHP | Laravel, Symfony |
mix.exs | Elixir | Phoenix |
pubspec.yaml | Dart/Flutter | Flutter |
Config and build (optional, skim if available)
internal/config/config.go or application.yaml or .env.example — env varsMakefile or Dockerfile or docker-compose.yml — build, deployMark is_monorepo: true when ANY of the following is true:
go.work exists at the repo rootpackage.json has a workspaces fieldpnpm-workspace.yaml, lerna.json, nx.json, or turbo.json existspom.xml declares <modules> with more than one modulesettings.gradle includes multiple include directivesCargo.toml has a [workspace] section.sln references multiple .csproj filesWhen marking as monorepo, list each subproject in the body of the catalog entry under a ## Modules section (one line per module: language + responsibility).
Capture ONLY frameworks/runtimes that define the repo's stack. Do NOT list auxiliary libraries.
Spring Boot, Quarkus, Gin, Echo, NestJS, Next.js, FastAPI, Django, Express, React, Vue, Flutter, Rails, Phoenix, ASP.NET CoreSet frameworks: [...] in the frontmatter with the detected names.
Use update_catalog_entry to set the fields you collected. One call per field:
update_catalog_entry repo=<name> field=domain value=<domain>update_catalog_entry repo=<name> field=languages value="Go, TypeScript"update_catalog_entry repo=<name> field=frameworks value="Gin, gRPC"update_catalog_entry repo=<name> field=is_monorepo value=trueupdate_catalog_entry repo=<name> field=description value="<one-or-two-sentence summary>"If the catalog is in remote mode (synced from a markdown repo), update the upstream .md files directly instead — the next sync_remote call will pull your changes back. The fields above map directly to YAML frontmatter keys.
url, clone_url, project) — only add or update.Begin by saying: "Let me scan the catalog for repos that need enrichment."
Then list the first 5 candidates and start with the one that has the most context available (cloned locally + has README).
This skill is generic. To tune it for your org:
CLAUDE.md at the catalog root, then have the skill reference it (replace step 4's domain value with a lookup against that table).npx claudepluginhub heidiks/mcp-repo-catalog --plugin mcp-repo-catalogGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.