Skill2.2k estrellas del repoactualizado 2d ago
skillshare-release
The skillshare-release skill automates the complete release workflow for the skillshare project, from validation through tagging. It runs the full test suite, generates changelog entries and release notes, updates the version in the skill manifest, creates a git commit and tag, and prepares GitHub release announcements. Use this skill when preparing a new skillshare version for distribution to ensure all quality checks pass and documentation is properly updated before release.
Instalar en Claude Code
Copiargit clone --depth 1 https://github.com/runkids/skillshare /tmp/skillshare-release && cp -r /tmp/skillshare-release/.skillshare/skills/skillshare-release ~/.claude/skills/skillshare-releaseDespués abre una sesión nueva de Claude Code; el skill carga automáticamente.
Definición
SKILL.md
End-to-end release workflow for skillshare. $ARGUMENTS specifies the version (e.g., `v0.19.0`). ## Prerequisites - All feature work merged to current branch - Working directory clean (`git status` shows no uncommitted changes) ## Workflow ### Phase 1: Validate Run full test suite and code quality checks. Fix any failures before proceeding. ```bash make check # fmt-check + lint + test (builds binary first) ``` If tests fail: fix them, don't skip. Do not ask the user — fix and re-run. ### Phase 2: Changelog Invoke `/changelog $VERSION` to generate the changelog entry. This handles: - Collecting commits since last tag - Categorizing by conventional commit type - Writing user-facing CHANGELOG.md entry - Syncing website changelog (`website/src/pages/changelog.md`) Review the output before proceeding. ### Phase 3: Release Notes (Maintainer Only) Check if running as maintainer: ```bash git config user.name # Should match "Willie" or maintainer identity ``` **If maintainer**: Read the most recent `specs/RELEASE_NOTES_*.md` as a style reference, then generate `specs/RELEASE_NOTES_<version>.md` (no `v` prefix, e.g., `RELEASE_NOTES_0.19.0.md`). Structure: - Title: `# skillshare vX.Y.Z Release Notes` - TL;DR section with numbered highlights - One `##` section per feature/fix — describe **what changed** in plain language, with a CLI example or code block if relevant - Include migration guide if breaking changes exist **Wording rules** (same user-facing standard as CHANGELOG): - Describe **what changed** from the user's perspective, not how the code changed - **Never mention**: function names, variable names, struct fields, file paths, Go syntax, internal APIs - ✅ Good: "Sync now auto-creates missing target directories and shows what it did" - ❌ Bad: "upgraded `Server.mu` from `sync.Mutex` to `sync.RWMutex` and applied a snapshot pattern across 30 handlers" - Keep it concise — a short paragraph per feature is enough **If not maintainer**: Skip this phase. ### Phase 4: Version Bump Update the version in `skills/skillshare/SKILL.md` frontmatter: ```yaml metadata: version: vX.Y.Z ``` This ensures `skillshare upgrade --skill` detects the new version correctly. ### Phase 5: Commit & Tag ```bash git add -A git commit -m "chore: release vX.Y.Z" git tag vX.Y.Z ``` Do NOT push yet — wait for user confirmation. ### Phase 6: Draft Announcements Prepare two drafts for user review: 1. **GitHub Release Notes** — concise, user-facing summary suitable for the GitHub release page. Shorter than RELEASE_NOTES, highlight top 3-5 changes with one-liners. 2. **Social media post** — 2-3 sentences max, casual tone, mention the version and 1-2 headline features. No hashtag spam. **Tone**: short, direct. Don't oversell. The user will edit before posting. ### Phase 7: Present & Confirm Show the user: - [ ] Test results (pass/fail) - [ ] CHANGELOG.md diff - [ ] RELEASE_NOTES file (if generated) - [ ] Version bump diff - [ ] GitHub release draft - [ ] Social media draft Wait for user approval before pushing: ```bash git push origin HEAD --tags ``` ## Rules - **Fix, don't skip** — if tests fail, fix them before continuing - **User perspective** — all written output is for users, not developers - **Short drafts** — announcements default to concise; user will ask for more detail if needed - **No fabricated links** — never invent URLs or references - **Verify before claiming** — grep source before stating a feature exists - **Ask before push** — never push or publish without explicit user confirmation - **Commit message** — always `chore: release vX.Y.Z` - **No competitive references** — never mention competitor repos in commit messages or notes