.agents/skills/git-release/SKILL.md
Guides the release lifecycle for the Skill System Foundry repository — version bumping, changelog preparation, GitHub release creation, and post-release verification. Triggers when asked to prepare a release, bump a version, create a changelog, tag a release, publish a GitHub release, verify a release artifact, or update the version in SKILL.md frontmatter. Also triggers on questions about semver conventions, release workflows, the release.yml GitHub Action, or distributing skill bundles. Use this skill whenever version numbers, releases, tags, or distribution are mentioned.
npx skillsauth add milanhorvatovic/skill-system-foundry git-releaseInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Guides the full release lifecycle for the Skill System Foundry — from version bumping through GitHub release creation, automated bundling, and post-release verification.
The repository uses semver (MAJOR.MINOR.PATCH) tracked in the metadata.version field of skill-system-foundry/SKILL.md frontmatter:
metadata:
author: Milan Horvatovič
version: 1.0.2
spec: agentskills.io
This is the single source of truth for the current version. Git tags mirror it as v1.0.2.
Run validation and tests to confirm the codebase is clean:
# Self-validate the meta-skill
cd skill-system-foundry
python scripts/validate_skill.py . --allow-nested-references
# Audit (expect one warning about missing skills/ directory — this is normal
# for the distribution repository)
python scripts/audit_skill_system.py .
# Run full test suite with coverage
cd ..
python -m coverage run -m unittest discover -s tests -p "test_*.py" -v
python -m coverage report
All validation checks must pass (zero failures). Coverage must meet the 70% threshold configured in .coveragerc.
Update metadata.version in skill-system-foundry/SKILL.md:
metadata:
author: Milan Horvatovič
version: 1.1.0 # ← update this
spec: agentskills.io
This is the only file where the version lives. There is no pyproject.toml, setup.py, or package.json to synchronize.
git add skill-system-foundry/SKILL.md
git commit -m "Update version to 1.1.0"
git push origin main
Use the commit message format: Update version to X.Y.Z.
Create a tag and release via the GitHub CLI or web UI:
gh release create v1.1.0 \
--title "v1.1.0" \
--notes "Release notes here" \
--target main
Or through the GitHub web UI: Releases → Draft a new release → Tag: v1.1.0 → Target: main.
The release.yml workflow triggers automatically on release publication. It:
dist/skill-system-foundry-v1.1.0.zipgh release upload --clobberThe zip contains the entire skill-system-foundry/ directory — SKILL.md, references, assets, and scripts. This is the distribution artifact for manual installation.
No manual intervention is needed after creating the release.
After the workflow completes:
unzip skill-system-foundry-v1.1.0.zip
cd skill-system-foundry
python scripts/validate_skill.py . --allow-nested-references
npx skills add milanhorvatovic/skill-system-foundry
Structure release notes by change type:
## What's Changed
### Added
- New validation check for X (#15)
- Reference document for Y
### Fixed
- False positive in name validation for single-character names (#12)
- Broken cross-reference in architecture-patterns.md
### Changed
- Increased max_body_lines from 400 to 500 in configuration.yaml
Keep entries concise — one line per change, with issue/PR references where applicable.
The full CI pipeline for a release involves multiple workflows:
| Workflow | Trigger | What It Does |
|---|---|---|
| python-tests.yaml | Push to main, PRs | Tests + coverage + badge update |
| shellcheck.yaml | Changes to .github/scripts/*.sh | Lints shell scripts |
| codex-code-review.yaml | PRs (non-draft) | AI-assisted code review |
| release.yml | Release published | Bundles zip + uploads asset |
The coverage badge updates automatically on pushes to main via the update-badge job. It writes coverage.json to an orphan badges branch, which shields.io reads.
After a release, the skill is available through:
npx skills add milanhorvatovic/skill-system-foundry/plugin marketplace add milanhorvatovic/skill-system-foundrygemini skills link milanhorvatovic/skill-system-foundryskill-system-foundry/ directoryChannels 1-3 pull from the repository directly (latest main). Channel 4 is versioned and immutable. Channel 5 is unversioned.
For testing distribution before creating a release, use the bundle script:
cd skill-system-foundry
python scripts/bundle.py . --output ../dist/skill-system-foundry.zip
The bundle script applies stricter validation than the release workflow — it checks description length against platform-specific limits (Claude enforces 200 chars vs the spec's 1024).
metadata.version in SKILL.md before tagging1.1.0 vs v1.1.0)mainmaintools
Greets a recipient through one of two registered tones — formal or casual — by dispatching to a dedicated capability. Activates when the conversation asks for a tone-specific welcome or a switch between formal and casual greetings; use when comparing the two styles. Demonstrates the router pattern in the Skill System Foundry — a thin SKILL.md entry point routing to capability files, with allowed-tools declared in frontmatter so capability shell fences pass validation.
testing
Greets a single recipient with a friendly welcome message rendered in a formal or casual tone. Activates when the conversation asks to say hello or welcome someone; use when a minimal standalone skill is needed. Demonstrates the smallest valid standalone skill in the Skill System Foundry — required name and description frontmatter plus an optional metadata block — and how its layout passes validation.
testing
Designs and evolves AI-agnostic skill systems. Triggers on skill/capability creation, role definition, or router migration; use when auditing consistency or improving token efficiency.
development
Governs the configuration.yaml file that serves as the single source of truth for all validation rules in the Skill System Foundry. Triggers when adding, modifying, or reviewing validation rules, limits, patterns, or reserved words. Also triggers when working with constants.py, yaml_parser.py, or any code that reads from configuration.yaml. Use this skill when asked to add a new validation check, change a limit or threshold, update reserved word lists, add SPDX license identifiers, modify regex patterns, or troubleshoot why a validation rule is not working as expected. Activates on mentions of configuration, validation rules, constants, thresholds, or pattern definitions.