Prepares a local git project for public release on GitHub in one pass: adds an MIT license if missing, verifies README and .gitignore, creates a GitHub remote if one doesn't exist, applies branch protection requiring pull requests, and cuts a tagged release.
- Idempotent — every step checks current state first and reports "already exists, skipping" rather than clobbering existing files or config
- Doesn't overreach on docs — if README.md is missing or a stub, it warns and points at
/make-readmerather than generating one itself - Sane branch protection defaults — requires 1 approving PR review, dismisses stale reviews on new pushes, blocks force-push and branch deletion, while leaving admin bypass on so the owner can still push directly
- Version-aware releases — suggests
v1.0.0for a first release, or the next patch/minor/major based on the latest existing tag - Full summary table — reports exactly what was done vs. skipped at each of the 9 steps
- Defers, doesn't duplicate — for both docs and its own help mechanism, this skill only checks and warns; generating either is
/make-readme's job
Invoke /git-release (or say "release this," "make this public," "set up GitHub for this project") from inside a git repository you want to prepare for public release. Run /git-release --help to print what it does, what it needs, and usage without making any changes. Run /git-release --marketplace on a skill/plugin project to add or update its listing in a marketplace.json (asks for its location the first time, then remembers it) — version-prefixes the description, points its source at this project's public repo, and updates the marketplace's README.md entry, linking to help.md/CHANGELOG.md if present. It also adds/updates a "from the marketplace" section at the top of this project's own README.md Installation section with the marketplace's registration and install commands. Otherwise the full workflow walks through, in order:
- Confirms the current directory is a git repo and identifies the default branch
- Adds an MIT
LICENSEif one doesn't exist - Checks
README.mdexists and has real content (warns and defers to/make-readmeif not) - For skill/plugin projects, checks for a
--help/:helpmechanism backed byhelp.md(warns and defers to/make-readmeif missing — this skill checks but never creates it) - Checks
.gitignoreexists (warns if missing) - Creates a GitHub remote via
gh repo create --public --source=. --pushif none exists, or confirms the existing one is up to date - Applies branch protection (PR required, 1 approval, stale reviews dismissed, force-push and deletion blocked) via the GitHub API
- Creates a tagged GitHub release with
gh release create --generate-notes --latest - Prints a summary table of what was done or skipped at each step
This skill's own --help follows the same convention it checks other skills for: SKILL.md has a short ## Flags section pointing at a help.md file in the same folder, which is read and displayed verbatim. /make-readme is what actually generates this pattern for a project that's missing it — see that skill's docs for details.
/plugin marketplace add keithmackay/mackayi
/plugin install git-release@mackayi
cp -r /path/to/git-release/ ~/.claude/skills/git-release/Or symlink:
ln -s /path/to/git-release/ ~/.claude/skills/git-releaseThen invoke with: /git-release
Place the plugin directory where Codex can find it, then add an entry to your marketplace:
~/.agents/plugins/marketplace.json (create if absent):
{
"name": "personal",
"interface": { "displayName": "Personal Plugins" },
"plugins": [
{
"name": "git-release",
"source": { "source": "local", "path": "/path/to/git-release/" },
"policy": { "installation": "AVAILABLE", "authentication": "ON_INSTALL" },
"category": "Productivity"
}
]
}Global install (all workspaces):
cp -r /path/to/git-release/ ~/.gemini/antigravity/skills/git-release/Workspace install (current project only):
cp -r /path/to/git-release/ .agents/skills/git-release/The root SKILL.md has no Claude Code-specific metadata, so it is used as-is — no separate Antigravity variant is needed.
Skills are auto-discovered. You can also mention the skill by name to force activation.
Gemini CLI installs extensions directly from GitHub:
gemini extensions install https://github.com/keithmackay/git-releaseTo update:
gemini extensions update git-releaseThe skill is auto-discovered from GEMINI.md after installation.
| Feature | Claude Code | Codex | Antigravity | Gemini CLI |
|---|---|---|---|---|
| Core skill | ✅ | ✅ | ✅ | ✅ |
No Claude Code-specific frontmatter (metadata, retrieval, tags), sub-documents, or subagent dispatch is used by this skill, so there are no platform gaps to document — it ports cleanly to all four platforms.
Legend: ✅ Supported · ❌ Not supported
- Claude Code Skills: https://code.claude.com/docs/en/skills
- Claude Code Complete Guide (PDF): https://resources.anthropic.com/hubfs/The-Complete-Guide-to-Building-Skill-for-Claude.pdf
- Codex Plugins: https://developers.openai.com/codex/plugins/build
- Antigravity Skills: https://antigravity.google/docs/skills
- Gemini CLI Extensions: https://github.com/google-gemini/gemini-cli/blob/main/docs/extension.md
- Agent Skills open standard: https://agentskills.io/home
This is a personal skill, but improvements are welcome — fork, branch, and open a pull request.
See CHANGELOG.md for release history.