drift-release
Skill14 starsChanged 7 months agoMITView on GitHub
Complete release workflow: Validate → Version → Changelog → Commit → Tag → Publish. Use after successful code changes to src/drift/. Single command: `python scripts/release_automation.py --full-release`
In this repository41 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .github/AGENTS.mdAGENTS.md
- .github/copilot-instructions.mdCopilot instructions
- llms.txtllms.txt
- brainstormingSkill
- drift-adr-workflowSkill
- drift-agent-prompt-authoringSkill
- drift-commit-pushSkill
- drift-dependency-updateSkill
- drift-docs-gap-fixSkill
- drift-evidence-artifact-authoringSkill
- drift-finding-message-authoringSkill
- drift-ground-truth-fixture-developmentSkill
- drift-mcp-repo-ops-usageSkill
- drift-pr-review-loopSkill
- drift-pr-reviewSkill
- drift-risk-audit-artifact-updatesSkill
- drift-security-triageSkill
- drift-session-handover-authoringSkill
- drift-signal-development-full-lifecycleSkill
- fix-failing-actionsSkill
- grill-meSkill
- guard-src-drift-apiSkill
- guard-src-drift-commandsSkill
- guard-src-drift-ingestionSkill
- guard-src-drift-outputSkill
- guard-src-drift-signalsSkill
- guard-src-driftSkill
- improve-codebase-architectureSkill
- prd-to-issuesSkill
- self-improving-agentSkill
- simplify-and-hardenSkill
- skill-creatorSkill
- subagent-driven-developmentSkill
- systematic-debuggingSkill
- tddSkill
- test-driven-developmentSkill
- verification-before-completionSkill
- workspace-automation-orchestratorSkill
- write-a-prdSkill
- writing-plansSkill
The file
Files
Drift Release Skill (python-semantic-release)
Releases are fully automated via python-semantic-release (PSR) in CI.
Executive Summary
Agents no longer need to run a manual release command.
Workflow: .github/workflows/release.yml runs on every push to main.
PSR parses conventional commits and handles version bump, changelog, tag, GitHub Release, and PyPI publish.
When to Use This Skill
✅ Know this after:
- Feature complete (
feat: ...commit) - Bug fixed (
fix: ...commit) - Breaking change (
BREAKING: ...commit) - All tests pass
- Code committed + pushed to main
The CI release workflow handles everything else automatically.
What Agents Must Do
Step 1: Use Conventional Commits
feat: add new detector for X → MINOR bump (0.X.0)
fix: false alarm in signal Y → PATCH bump (0.0.X)
BREAKING: remove deprecated API → MAJOR bump (X.0.0)Step 2: Run Tests Locally
make test-fastStep 3: Commit and Push
PSR in CI handles the rest after push to main.
What PSR Does Automatically (in CI)
- Commits analyzed — from last tag to HEAD
- Version calculated — based on commit types (feat → minor, fix → patch, BREAKING → major)
- Files updated:
pyproject.toml(version field)CHANGELOG.md(new entry)
- Release commit created —
chore: Release X.Y.Z - Git tag created —
vX.Y.Z - GitHub Release created
- Built and published to PyPI
Troubleshooting
| Problem | Solution |
| No release after push | Check commit messages use conventional prefixes (feat:, fix:, BREAKING:). Commits without these don't trigger releases. |
| Tests fail during release | Fix code first. PSR only runs when there are releasable commits. |
| Version looks wrong | Verify recent commit messages. PSR Priority: BREAKING > feat > fix. |
| PyPI publish fails | GitHub Release exists. Re-trigger with publish.yml workflow_dispatch. |
| CI unavailable | Local fallback: python scripts/release_automation.py --full-release |
Important Details
- 🔐 PyPI token:
PYPI_RELEASEsecret in GitHub environmentpypi - 📊 CHANGELOG: Auto-generated by PSR from commit history
- 🏷️ Tag format:
vX.Y.Z(e.g., v1.4.2) - ⚙️ Workflow:
.github/workflows/release.yml - 📝 Config:
pyproject.toml→[tool.semantic_release] - 🔄 Major tag:
v1auto-updated to latest patch (e.g., v1 → v1.4.3)
DO NOT DO THIS
❌ Forget to release after code changes
❌ Skip tests to "speed up" the release
❌ Manually create git tags/commits for releases
❌ Edit version numbers outside of pyproject.toml
❌ Push without running the full release workflow
Quick Reference
# Full release (recommended)
python scripts/release_automation.py --full-release
# Just calculate version
python scripts/release_automation.py --calc-version
# Just update changelog
python scripts/release_automation.py --update-changelog
# Skip tests (NOT recommended)
python scripts/release_automation.py --full-release --skip-testsNeed Full Details?
Reference documentation: .github/instructions/drift-release-automation.instructions.md
For questions about releases → Check that file first.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

