GitHub Repo Polisher
Goal
Prepare a project for clean, safe, and professional publication on GitHub. Make the repository understandable, runnable, and trustworthy while preserving existing behavior.
Core Priorities
- Do not break the project.
- Do not delete important source files.
- Remove or ignore only unnecessary, generated, local, or sensitive files.
- Make the repository easy to run.
- Make the repository easy to understand.
- Keep the presentation appropriate for the project type.
Workflow
Before changing files:
- Inspect the project structure with fast file search tools.
- Detect the main technology stack and package/build systems.
- Find the project entry point, launch path, and expected runtime.
- Identify install, test, lint, type-check, build, and run commands from existing configs.
- Read existing README, .gitignore, license, package manifests, environment examples, and deployment configs.
- Look for unnecessary generated files, local IDE files, caches, logs, build output, and dependency folders.
- Look for secrets, credentials, private URLs, tokens, keys, database dumps, and environment files.
- Make focused improvements and verify the project still works as far as practical.
Do not rewrite the whole project unless the user explicitly asks.
Repository Structure
Improve structure only when needed. Prefer documenting the current layout over moving files. Move or rename files only when the existing structure is clearly confusing and the change is low-risk.
A clean repository may include:
project-name/
|- README.md
|- .gitignore
|- LICENSE
|- src/
|- docs/
|- assets/
|- tests/
|- examples/
|- package.json / requirements.txt / .sln / build.gradle
`- ...
Do not force this structure onto every project. For small homework or prototype repositories, a clear README and sane ignore rules may be enough.
README Improvements
Create or improve README.md with the sections that fit the project:
- Project name and short description.
- What the project does and who it is for.
- Key features, kept factual and not inflated.
- Screenshots or demo GIFs if assets already exist or can be generated safely.
- Tech stack.
- Requirements and supported versions when discoverable.
- Installation steps.
- Environment variable setup, using placeholders only.
- Run commands.
- Test, lint, type-check, and build commands.
- Project structure summary for non-trivial projects.
- API usage, CLI usage, or app workflow examples when relevant.
- Known limitations if the project is incomplete.
- License note if a license exists or the user asks to add one.
Keep README instructions truthful. Do not invent features, deployment status, badges, test coverage, benchmarks, or security claims.
.gitignore
Create or update .gitignore based on the detected stack. Include only relevant patterns.
Common categories:
- Dependency folders:
node_modules/, .venv/, venv/, vendor caches when not committed by convention.
- Build output:
dist/, build/, out/, target/, .next/, .nuxt/.
- Caches:
.pytest_cache/, .mypy_cache/, .ruff_cache/, __pycache__/, .gradle/.
- Logs and temp files:
*.log, tmp/, temp/.
- Local environment files:
.env, .env.*, except safe examples like .env.example.
- IDE/OS files:
.idea/, .vscode/ only when project does not intentionally share settings, .DS_Store, Thumbs.db.
- Generated secrets or keys:
*.pem, *.key, *.p12, *.keystore, with care not to ignore source fixtures unintentionally.
If a sensitive file is already tracked, do not assume ignoring it is enough. Tell the user it may need removal from Git history and credential rotation.
Security Hygiene
Search for likely secrets before publication. Use targeted patterns and inspect results manually to avoid false positives:
.env, credentials, tokens, API keys, private keys, passwords, database URLs, OAuth secrets, webhook URLs.
- Hardcoded personal paths, private IPs, internal domains, usernames, emails, or machine-specific config.
- Large data dumps, exports, logs, screenshots, or documents that may contain private information.
Never print real secrets back to the user. Refer to the file and variable/key name, mask values, and recommend rotation if exposure is plausible.
Cleanup Rules
Safe cleanup candidates:
- Generated build artifacts.
- Runtime logs and temporary files.
- Dependency folders that can be restored from lockfiles.
- OS metadata files.
- Local editor caches.
- Empty placeholder folders only when they are clearly unused.
Risky files that require caution or user approval:
- Database files, uploads, media, exports, notebooks, datasets, migrations, lockfiles, certificates, keystores, and config files.
- Any file whose purpose is unclear.
Prefer adding ignore rules over deleting files unless deletion is clearly safe and useful. Do not remove lockfiles for package managers.
Project-Type Notes
For web apps, document package manager commands, dev server URL, build output, and environment variables.
For Python projects, document Python version, virtual environment setup, dependency install command, module entry point, tests, and formatting/lint tools if present.
For Android projects, document Android Studio/Gradle requirements, build variant, run command, SDK expectations, and whether local signing files are excluded.
For backend/API projects, document environment variables, database setup, migrations, seed data, run command, test command, and basic endpoint usage.
For bots or automation projects, document required tokens as placeholders, startup command, webhook/polling mode, and deployment caveats without exposing credentials.
For libraries, document installation, minimal usage example, public API entry point, tests, and versioning/license status.
For homework or portfolio projects, keep the README clear and modest. Explain purpose, stack, how to run, and what is implemented.
Verification
After changes, run the most relevant available checks:
- Unit tests.
- Type checks.
- Lint or formatting checks.
- Build.
- Minimal manual launch or smoke test.
If checks cannot be run, state why and provide concrete manual verification steps.
Final Response
Summarize:
- What was changed.
- Which files were modified.
- Which checks were run and their results.
- Any remaining risks, especially suspected secrets, unverified commands, missing license decisions, or files that may need Git history cleanup.
1---2name: github-repo-polisher3description: Use this skill whenever preparing a project, repository, homework project, prototype, library, app, bot, website, or codebase for GitHub publication. The skill improves repository structure, README quality, .gitignore, security hygiene, launch instructions, and overall presentation without breaking the project.4---56# GitHub Repo Polisher78## Goal910Prepare a project for clean, safe, and professional publication on GitHub. Make the repository understandable, runnable, and trustworthy while preserving existing behavior.1112## Core Priorities13141. Do not break the project.152. Do not delete important source files.163. Remove or ignore only unnecessary, generated, local, or sensitive files.174. Make the repository easy to run.185. Make the repository easy to understand.196. Keep the presentation appropriate for the project type.2021## Workflow2223Before changing files:24251. Inspect the project structure with fast file search tools.262. Detect the main technology stack and package/build systems.273. Find the project entry point, launch path, and expected runtime.284. Identify install, test, lint, type-check, build, and run commands from existing configs.295. Read existing README, .gitignore, license, package manifests, environment examples, and deployment configs.306. Look for unnecessary generated files, local IDE files, caches, logs, build output, and dependency folders.317. Look for secrets, credentials, private URLs, tokens, keys, database dumps, and environment files.328. Make focused improvements and verify the project still works as far as practical.3334Do not rewrite the whole project unless the user explicitly asks.3536## Repository Structure3738Improve structure only when needed. Prefer documenting the current layout over moving files. Move or rename files only when the existing structure is clearly confusing and the change is low-risk.3940A clean repository may include:4142```text43project-name/44|- README.md45|- .gitignore46|- LICENSE47|- src/48|- docs/49|- assets/50|- tests/51|- examples/52|- package.json / requirements.txt / .sln / build.gradle53`- ...54```5556Do not force this structure onto every project. For small homework or prototype repositories, a clear README and sane ignore rules may be enough.5758## README Improvements5960Create or improve README.md with the sections that fit the project:6162- Project name and short description.63- What the project does and who it is for.64- Key features, kept factual and not inflated.65- Screenshots or demo GIFs if assets already exist or can be generated safely.66- Tech stack.67- Requirements and supported versions when discoverable.68- Installation steps.69- Environment variable setup, using placeholders only.70- Run commands.71- Test, lint, type-check, and build commands.72- Project structure summary for non-trivial projects.73- API usage, CLI usage, or app workflow examples when relevant.74- Known limitations if the project is incomplete.75- License note if a license exists or the user asks to add one.7677Keep README instructions truthful. Do not invent features, deployment status, badges, test coverage, benchmarks, or security claims.7879## .gitignore8081Create or update .gitignore based on the detected stack. Include only relevant patterns.8283Common categories:8485- Dependency folders: `node_modules/`, `.venv/`, `venv/`, vendor caches when not committed by convention.86- Build output: `dist/`, `build/`, `out/`, `target/`, `.next/`, `.nuxt/`.87- Caches: `.pytest_cache/`, `.mypy_cache/`, `.ruff_cache/`, `__pycache__/`, `.gradle/`.88- Logs and temp files: `*.log`, `tmp/`, `temp/`.89- Local environment files: `.env`, `.env.*`, except safe examples like `.env.example`.90- IDE/OS files: `.idea/`, `.vscode/` only when project does not intentionally share settings, `.DS_Store`, `Thumbs.db`.91- Generated secrets or keys: `*.pem`, `*.key`, `*.p12`, `*.keystore`, with care not to ignore source fixtures unintentionally.9293If a sensitive file is already tracked, do not assume ignoring it is enough. Tell the user it may need removal from Git history and credential rotation.9495## Security Hygiene9697Search for likely secrets before publication. Use targeted patterns and inspect results manually to avoid false positives:9899- `.env`, credentials, tokens, API keys, private keys, passwords, database URLs, OAuth secrets, webhook URLs.100- Hardcoded personal paths, private IPs, internal domains, usernames, emails, or machine-specific config.101- Large data dumps, exports, logs, screenshots, or documents that may contain private information.102103Never print real secrets back to the user. Refer to the file and variable/key name, mask values, and recommend rotation if exposure is plausible.104105## Cleanup Rules106107Safe cleanup candidates:108109- Generated build artifacts.110- Runtime logs and temporary files.111- Dependency folders that can be restored from lockfiles.112- OS metadata files.113- Local editor caches.114- Empty placeholder folders only when they are clearly unused.115116Risky files that require caution or user approval:117118- Database files, uploads, media, exports, notebooks, datasets, migrations, lockfiles, certificates, keystores, and config files.119- Any file whose purpose is unclear.120121Prefer adding ignore rules over deleting files unless deletion is clearly safe and useful. Do not remove lockfiles for package managers.122123## Project-Type Notes124125For web apps, document package manager commands, dev server URL, build output, and environment variables.126127For Python projects, document Python version, virtual environment setup, dependency install command, module entry point, tests, and formatting/lint tools if present.128129For Android projects, document Android Studio/Gradle requirements, build variant, run command, SDK expectations, and whether local signing files are excluded.130131For backend/API projects, document environment variables, database setup, migrations, seed data, run command, test command, and basic endpoint usage.132133For bots or automation projects, document required tokens as placeholders, startup command, webhook/polling mode, and deployment caveats without exposing credentials.134135For libraries, document installation, minimal usage example, public API entry point, tests, and versioning/license status.136137For homework or portfolio projects, keep the README clear and modest. Explain purpose, stack, how to run, and what is implemented.138139## Verification140141After changes, run the most relevant available checks:1421431. Unit tests.1442. Type checks.1453. Lint or formatting checks.1464. Build.1475. Minimal manual launch or smoke test.148149If checks cannot be run, state why and provide concrete manual verification steps.150151## Final Response152153Summarize:154155- What was changed.156- Which files were modified.157- Which checks were run and their results.158- Any remaining risks, especially suspected secrets, unverified commands, missing license decisions, or files that may need Git history cleanup.