From olko-agent-skills
Prepare an open-source repository for polished public publishing. Use when a user asks to publish, open-source, launch, polish, package, brand, or make a GitHub project presentable with a minimal project icon, social preview image, GitHub Pages landing page, standardized README, essential shields, CI/CD quality gates, release automation checks, and optional donation setup. Prefer the external `logo-generator` skill for icon generation when available.
How this skill is triggered — by the user, by Claude, or both
Slash command
/olko-agent-skills:open-source-publisherThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill to audit whether an OSS repository is ready to publish, then help only with missing or weak pieces: recognizable icon, shareable social image, GitHub Pages site, standardized README, CI/CD hygiene, release readiness, and optional donation links.
Use this skill to audit whether an OSS repository is ready to publish, then help only with missing or weak pieces: recognizable icon, shareable social image, GitHub Pages site, standardized README, CI/CD hygiene, release readiness, and optional donation links.
go.mod, package.json, pyproject.toml, Cargo.toml, Makefile, etc.Ready: publish-critical pieces that already exist and look usableWeak: existing pieces that are present but incomplete, stale, broken, inconsistent, or below the house standardMissing: publish-critical pieces that do not existOptional: nice-to-have pieces such as donations or extra badgeslibrary, CLI, web app, framework, docs site, or otherhomepage, author, or org metadata already exists and looks current, do not ask againoldschool linux, terminal, modern, brutalist, glassmorphism, y2k, hacker, or custom.none, GitHub Sponsors, Ko-fi, Buy Me a Coffee, Open Collective, Thanks.dev, or custom URL.Treat this skill as an OSS publishing readiness checker first and an implementer second. The first response after inspection should be a concise audit with concrete evidence from the repo.
Publish-critical checklist:
LICENSE, CONTRIBUTING.md, SECURITY.md, CODE_OF_CONDUCT.md, support policy, issue/PR templates, changelog or release notes pathAudit output format:
## OSS Publish Readiness
Ready
- README uses the house top block with test, Go Report Card, and OpenSSF shields.
- Release workflow builds darwin arm64/amd64 binaries and updates the Homebrew tap.
Weak
- Direct download examples point at a fixed release tag; latest-release URLs would age better.
Missing
- No `.github/FUNDING.yml`; donations are not configured.
Questions
- You already have a terminal-style GitHub Pages site. Keep it, or restyle it?
- What is the GitHub handle or org name for public attribution?
- What is the canonical website or homepage URL, if any?
- Donations are not configured. Enable them or leave them off?
Rules:
Create a simple, recognizable SVG logo from the repository's essence. Prefer logo.svg and also render logo.png so the icon can be reused in README assets, release artifacts, and platform-specific previews.
Use the external logo-generator skill first for icon generation when it is installed (see logo-generator Installation below). If it is not installed, follow the manual SVG guidance below and commit both the editable SVG and rendered PNG when practical.
logo-generator InstallationThe logo-generator skill is external and is not bundled with this repository. Install it separately from https://github.com/op7418/logo-generator-skill before relying on it:
npx skills add https://github.com/op7418/logo-generator-skill.git
If automatic installation is unavailable, clone it into the Claude skills directory:
git clone https://github.com/op7418/logo-generator-skill.git ~/.claude/skills/logo-generator
cd ~/.claude/skills/logo-generator
pip install -r requirements.txt
cp .env.example .env
Then add GEMINI_API_KEY to .env and restart the agent runtime so the skill is discoverable.
Icon rules:
Good icon pattern for sync/migration tools:
<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512" role="img" aria-labelledby="title desc">
<title id="title">Project logo</title>
<desc id="desc">Clean sync icon made from two circular arrows.</desc>
<defs>
<linearGradient id="topArrow" x1="142" y1="118" x2="392" y2="250" gradientUnits="userSpaceOnUse">
<stop offset="0%" stop-color="#22c55e"/>
<stop offset="100%" stop-color="#38bdf8"/>
</linearGradient>
<linearGradient id="bottomArrow" x1="370" y1="394" x2="120" y2="262" gradientUnits="userSpaceOnUse">
<stop offset="0%" stop-color="#fb7185"/>
<stop offset="100%" stop-color="#f59e0b"/>
</linearGradient>
</defs>
<rect width="512" height="512" rx="112" fill="#0d1117"/>
<rect x="42" y="42" width="428" height="428" rx="96" fill="#111827" stroke="#1f2937" stroke-width="8"/>
<g fill="none" stroke-linecap="round" stroke-linejoin="round">
<path d="M142 234c13-70 74-122 147-122 52 0 99 27 126 69" stroke="url(#topArrow)" stroke-width="42"/>
<path d="M389 118l35 67-75 4" stroke="url(#topArrow)" stroke-width="42"/>
<path d="M370 278c-13 70-74 122-147 122-52 0-99-27-126-69" stroke="url(#bottomArrow)" stroke-width="42"/>
<path d="M123 394l-35-67 75-4" stroke="url(#bottomArrow)" stroke-width="42"/>
</g>
</svg>
Adapt the geometry and metaphor. Do not reuse the sync arrows for unrelated projects.
Create a 1200x630 social preview image for GitHub, Twitter/X, Slack, and link unfurls.
Recommended files:
social-card.svg as the editable sourcesocial-card.png rendered from the SVG when render tooling is availableSocial image rules:
og:image, twitter:image, width/height meta tags, and meaningful alt text.Render checks:
rsvg-convert -w 1200 -h 630 social-card.svg -o social-card.png
file social-card.png
Use magick or another renderer when rsvg-convert is unavailable.
Shape the README like the house standard used for Go packages such as slow-query-detector and dcli.
Top block:
<p align="center">
<a href="..."><img src="..." alt="tests"></a>
<a href="..."><img src="..." alt="Go Report Card"></a>
<a href="..."><img src="..." alt="OpenSSF Scorecard"></a>
</p>
<p align="center">
<img src="./logo.svg" width="120" height="120" alt="project icon">
</p>
<h1 align="center">project-name</h1>
<p align="center">
Short product description<br>
<strong>One-line promise</strong>
</p>
---
Choose shields from the repo's tech:
Recommended README sections:
Rules:
/releases/latest/download/... when stable asset names exist.LICENSE before saying MIT/Apache/etc.Treat governance files as first-class publishing work, not optional paperwork.
Check for, or add when appropriate:
LICENSECONTRIBUTING.mdSECURITY.mdCODE_OF_CONDUCT.mdSUPPORT.md.github/ISSUE_TEMPLATE/*.github/PULL_REQUEST_TEMPLATE.mdCHANGELOG.md or a release notes workflowRules:
Ready and move on.Create a simple essential GitHub Pages site when the project lacks one or the existing one is weak.
Ask the user to choose one style first:
oldschool linuxterminalmodernbrutalistglassmorphismy2khackerRequired page content:
Implementation defaults:
index.html unless the repo already has a site framework.CNAME only when the user gives a domain..github/workflows/pages.yml when Pages uses GitHub Actions or no deploy path exists.Add basic analytics to track site visitor patterns and user behavior when the project has a GitHub Pages site.
Setup options:
<head>Minimal Google Analytics setup for static sites:
<script async src="https://www.googletagmanager.com/gtag/js?id=G-YOUR_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-YOUR_ID');
</script>
Track these essential events:
Optional custom events for OSS projects:
Rules:
Check whether the repository has:
mainFor Go projects, prefer:
- go test ./... -race
- go vet ./...
- gofmt check
- staticcheck ./...
- go build ./...
For Node projects, prefer existing package manager scripts:
npm ci
npm run lint
npm test
npm run build
Release automation rules:
Ask whether the user wants donations enabled.
If yes:
.github/FUNDING.yml for GitHub-supported providers.Provider hints:
github: username
ko_fi: handle
custom:
- https://example.com/support
Run the checks that match the edits:
xmllint --noout logo.svg social-card.svgrsvg-convert -w 1200 -h 630 social-card.svg -o social-card.pngcurl -Iruby -e 'require "yaml"; YAML.load_file(".github/workflows/ci.yml")'git diff --checkBefore final response, state:
npx claudepluginhub oleg-koval/agent-skills --plugin olko-agent-skillsGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.