Skip to main content

repomatic-topics

Optimize a repository's GitHub topics. Analyze the competition on each topic page, then pick the topics that make the project easier to find.

Source facts

Repository
kdeldycke/dotfiles
Last source activity
August 28, 2026 at 05:16
Detected SKILL.md language
English
Stars
173
Forks
22

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
repomatic-topics
description
Optimize a repository's GitHub topics. Analyze the competition on each topic page, then pick the topics that make the project easier to find.
compatibility
Designed for Claude Code. Recommended model: Sonnet.
allowed-tools
Bash Read Grep Glob WebFetch WebSearch Agent Edit
argument-hint
[audit|apply]
## Context !`grep -A1 '^\[project\]' pyproject.toml 2>/dev/null | tail -1` !`gh api repos/{owner}/{repo} --jq '.topics | join(", ")' 2>/dev/null || echo "NO_GH_ACCESS"` ## Instructions You help users optimize their GitHub repository topics (tags) for maximum discoverability, balancing accuracy with competitive positioning on GitHub topic pages. ### Determine repository - Read `pyproject.toml` for the project name, description, and `keywords` list. - Use `gh api` to fetch the current GitHub topics from the repo. ### Argument handling - `audit` (default when `$ARGUMENTS` is empty): Analyze current topics and recommend changes. Do not apply. - `apply`: Analyze, confirm with the user, then apply via `gh api --method PUT repos/{owner}/{repo}/topics`. ### Analysis process 1. **Inventory features.** Read the codebase (CLI commands, workflows, config options) to understand what the project actually does. 2. **Assess current topics.** For each existing topic, fetch `https://github.com/topics/{topic}` and evaluate: - How many repos use the topic. - What star count is needed to appear on page 1 (above the fold). - Whether this repo can realistically rank there. 3. **Classify competitiveness.** For each topic: - **High competition** (page 1 requires 10k+ stars): effectively invisible. Drop unless the topic is core identity. - **Medium** (page 1 requires 1k-10k stars): keep only if the repo is borderline viable. - **Low/niche** (page 1 requires \<1k stars or few total repos): high ROI — keep or add. 4. **Propose candidate topics.** Search for niche topics where the repo could rank in the top 3. Look for: - Feature-specific topics (e.g., `github-labels`, `reusable-workflows`) over generic ones (e.g., `labels`, `ci-cd`). - Compound topics that narrow the audience (e.g., `python-automation` vs `automation`). - Topics with few repos where claiming them gives instant #1 ranking. 5. **Present recommendations.** Show a table with: - Topics to keep (with rank assessment). - Topics to drop (with reason: too competitive, inaccurate, etc.). - Topics to add (with repo count and expected rank). GitHub allows up to 20 topics. Fill all 20 slots — unused slots are wasted discoverability. ### Required topics for awesome lists If the repository name starts with `awesome-`, it must have both the `awesome` and `awesome-list` topics. This is enforced by [awesome-lint](https://github.com/sindresorhus/awesome-lint/blob/main/rules/github.js). Flag any missing required topic during audit, and add them during apply. ### After analysis - Confirm changes with the user before applying. - When applying, update both GitHub topics (`gh api --method PUT repos/{owner}/{repo}/topics`) and `pyproject.toml` keywords to stay in sync. - The `pyproject.toml` keywords serve PyPI search — keep them aligned with GitHub topics. ### Next steps Push the change: `lint.yaml` validates the updated `pyproject.toml`, and the new GitHub topics take effect immediately.
View on GitHub