Skip to content
Back to skills

Oss Polish

ASecurity

Use when polishing an open source project's GitHub presence — README, topics/About description, commit-history narrative story, and trending-repo positioning. Triggers on "polish my repo", "beautify open source project", "开源项目美化", "优化项目展示".

  • 3 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 4, 2026
ai-agentspythongobashgitapidocumentation

Works with

  • cli
  • api
  • mcp

Security analysis

A100/100

Pro scans all 8 files and shows the line behind each finding

Scanned September 4, 2026

npx -y skills add int2t05/engineering-skills --skill oss-polish --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Oss Polish?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Oss Polish
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/int2t05-oss-polish/badge)](https://www.skillsdirectory.com/skills/int2t05-oss-polish)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: oss-polish
description: Use when polishing an open source project's GitHub presence — README, topics/About description, commit-history narrative story, and trending-repo positioning. Triggers on "polish my repo", "beautify open source project", "开源项目美化", "优化项目展示".
---

# Open Source Project Polish

One-pass workflow to turn a bare repo into a professional, discoverable open source
project. Four phases: README → topics/About → commit-history narrative → trending-repo
positioning.

## When to use

- Preparing a project for public release or first launch
- Repo has working code but a bare README, missing topics, or no About description
- Want a commit-history narrative (`REPOSITORY_SUMMARY.md` + `THE_STORY_OF_THIS_REPO.md`)
- Researching trending repos in a domain for positioning benchmarking

**Not for:** open source business model or commercialization strategy (use `oss-strategy`), or general project documentation (use `documentation-audit`).

## Steps

### 1. Analyze project

1. Read entry files (`package.json`, `go.mod`, `Cargo.toml`, `requirements.txt`, `mkdocs.yml`).
2. Scan source dirs for architecture and key features; note tech stack, target users, unique value.
3. Check existing `README.md` and repo metadata.
4. If `README.md` exists, ask: update in place or back up to `README-backup.md` first?

Result: a one-paragraph summary of what the project does, who it's for, and what's special.

### 2. Generate README

Produce a professional `README.md` with sections in this order:

1. **Title (H1)** — repository name.
2. **Badges** — shields.io format. Order: build status → tech stack → hosting → license.
   Pick templates from `references/badges.md`. Limit 5–10 for readability. Do NOT add a
   self-link "GitHub repo" badge — readers are already on GitHub.
3. **Live site link** — if deployed (GitHub Pages, Netlify, Vercel).
4. **Overview** — 1–3 paragraphs answering what / who / why / unique. Hook a visitor in <15s.
5. **Site metrics (documentation/educational repos)** — for content-heavy repos (docs sites,
   courses), run `python references/scripts/collect-site-metrics.py <repo-path>`; emit a
   `| Metric | Count |` table (markdown files, words, chapters, glossary…). For code-focused
   repos, skip this step — `github_fetcher.py` covers repo metrics instead.
6. **Getting Started** — prerequisites, clone, install, build/serve, deploy.
7. **Repository Structure** — concise ASCII tree (10–20 lines), representative not exhaustive.
8. **Reporting Issues** — link to GitHub Issues + bug-report template.
9. **License** — match `LICENSE` file / `mkdocs.yml` copyright; default CC BY 4.0 for
   educational content (CC BY-SA if share-alike is desired); reserve NC (NonCommercial) only for
   projects that explicitly restrict commercial use, MIT or Apache-2.0 for code.
10. **Acknowledgements** — key dependencies only.
11. **Contact** — maintainer info.
12. **Optional** — Contributing, Citation (BibTeX), Changelog.

Formatting: ATX headers, blank line before lists, code fences with a language tag, lines <120 chars.

### 3. Topics & About description

1. Research trending repos in the same domain — what topics do they use? Run
   `python references/scripts/github_fetcher.py` with `TOPIC=<domain>` env var to list repos
   by stars; inspect each repo's `topics` field.
2. Identify 8–15 highly relevant topics; rank by discoverability × relevance × search volume.
3. Select the final list (max 20 — GitHub limit).
4. Write the **About description** (GitHub allows ≤350 chars): one compelling sentence
   covering what + who + why.

Present the final list + rationale to the user before applying. Apply via GitHub API
(`PUT /repos/:owner/:repo/topics`) and repo settings (description).

### 4. Commit-history narrative story

Generate two files in the repo root using git data as evidence — write the files directly,
do NOT paste markdown to chat.

- **`REPOSITORY_SUMMARY.md`** — overview, architecture, key components, technologies, data
  flow, team/ownership.
- **`THE_STORY_OF_THIS_REPO.md`** — chronicles (year in numbers), cast of characters
  (contributors + specialties), seasonal patterns, great themes (feat/fix/refactor),
  plot twists/turning points, current chapter.

Git commands to run systematically (POSIX forms for Git Bash):

- `git rev-list --all --count` — total commits
- `git shortlog -sn --since="1 year ago" | head -20` — top contributors
- `git log --since="1 year ago" --format="%ai" | cut -c1-7 | sort | uniq -c | sort -rn | head -12` — monthly activity
- `git log --since="1 year ago" --oneline --grep="feat\|fix\|update\|add\|remove" | head -50` — change themes
- `git log --since="1 year ago" --name-only --oneline` — hotspot files
- `git log --since="1 year ago" --merges --oneline | head -20` — collaboration patterns

Be specific: actual file names, commit messages, contributor names. Evidence-based — explain
why patterns exist (holidays, releases, incidents).

### 5. Trending-repo positioning

1. Run `python references/scripts/github_fetcher.py` with `TOPIC=<your-domain>` to fetch top
   repos by stars.
2. Run `python references/scripts/readme_fetcher.py` (or the batch helper) to pull competitor
   README summaries.
3. Benchmark: how does this project compare on stars, README quality, topic coverage, positioning?
4. Produce: a 5–10 word **tagline**, recommended **launch channels** (HN / Reddit / Dev.to /
   DevHunt by domain), and a short positioning paragraph noting differentiators.

`GH_TOKEN` env var is optional but recommended (5000 req/hr authenticated vs 60 unauthenticated).

### 6. Consolidated report

Output a single report:

```
# [Project Name] Open Source Polish
## Analysis Summary    — what / stack / audience
## README              — full content or diff
## Topics & About      — About (≤350 chars), topics list, rationale
## Narrative           — links to the two generated .md files
## Positioning         — tagline, launch plan, differentiators
## Next Steps          — apply checklist (README, topics, About, LICENSE)
```

After user approval, apply changes via your available GitHub tooling — the `gh`
CLI or GitHub MCP (`create_or_update_file` for README/LICENSE; GitHub API
`PUT /repos/:owner/:repo/topics` for topics; repo settings for the About
description).

**Output:** `README.md` (polished) + `REPOSITORY_SUMMARY.md` + `THE_STORY_OF_THIS_REPO.md` (commit-history narrative), plus topics/About applied via GitHub API.

## Verify

- [ ] README conforms to best practices — run
      `python references/scripts/validate-readme.py README.md`; score ≥75/100 and no missing
      required sections (overview, getting started, license, contact).
- [ ] Topics set on the repo (1–20 topics, all relevant to the project's domain).
- [ ] About description set (≤350 chars, covers what + who + why).
- [ ] Both narrative files (`REPOSITORY_SUMMARY.md`, `THE_STORY_OF_THIS_REPO.md`) exist in repo
      root with complete content (not chat output).
- [ ] Badge URLs resolve; no self-link GitHub-repo badge; all README links work.
- [ ] Positioning report includes tagline, launch channels, and ≥1 differentiator vs trending repos.

## References

- [${CLAUDE_PLUGIN_ROOT}/references/engineering-principles.md](${CLAUDE_PLUGIN_ROOT}/references/engineering-principles.md) — discipline every skill shares.
- [references/badges.md](references/badges.md) — shields.io templates by category (languages, hosting, license, status, custom).
- [references/scripts/](references/scripts/) — `collect-site-metrics.py` (README metrics), `validate-readme.py` (README linter, scores 0–100), `github_fetcher.py` + `readme_fetcher.py` + `config.py` (trending-repo research via GitHub API).

Files in this skill

  • SKILL.md7.6 KB
  • agents/openai.yaml154 B
  • references/badges.md10 KB
  • references/scripts/collect-site-metrics.py12.6 KB
  • references/scripts/config.py1.2 KB
  • references/scripts/github_fetcher.py8.7 KB
  • references/scripts/readme_fetcher.py6.3 KB
  • references/scripts/validate-readme.py11.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.