Git flow release
Skill iktakahiro/python-fastapi-ddd-skill/.codex/skills/git-flow-release
A practical template for Building AI Agent Skills with Python, FastAPI, and Domain-Driven Design (DDD).
npx -y skills add iktakahiro/python-fastapi-ddd-skill --skill git-flow-releaseAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Create a release for this repository by tagging main with calendar versioning (optionally using git-flow if configured); use when the user asks to create a release or bump version.
SKILL.md
3.2 KB, as published. Nobody here has run it
Release
Communication
- Communicate with the developer in Japanese.
- Write commit messages and tag messages in English.
Prerequisites
Before starting the release process, verify:
- All changes are committed (
git statusshould show a clean working tree). - You are on the target branch (
mainunless the user specifies otherwise).
This repository does not have mandatory lint/test commands; do not run Node/bun/turbo checks here.
Version Format
Use calendar-based versioning with v prefix for git tags:
- Git tag:
vYYYY.MM.DD.N(e.g.,v2026.02.04.1)
Components:
- YYYY: 4-digit year (e.g., 2026)
- MM: 2-digit month (e.g., 02)
- DD: 2-digit day (e.g., 04)
- N: Daily release number starting from 1, incrementing for each subsequent release on the same day
Version Determination
-
Determine today's date in
YYYY.MM.DD:today=$(date +%Y.%m.%d) -
Check existing tags for today:
git tag --list "v${today}.*" -
Choose the next
N:- If no tags exist for today, use
N=1→vYYYY.MM.DD.1 - If tags exist for today (e.g.,
vYYYY.MM.DD.1), incrementN(e.g.,vYYYY.MM.DD.2)
- If no tags exist for today, use
Release Workflow (tag-based)
Execute the following steps in order:
-
Determine version
- Decide
YYYY.MM.DD.Nand prepare short release notes (bullet list)
- Decide
-
Commit changes (if needed)
git add -A git commit -m "chore: prepare release vYYYY.MM.DD.N" -
Create annotated tag
git tag -a vYYYY.MM.DD.N -m "Release vYYYY.MM.DD.N" -
Push main with tags
git push origin main --tags -
(Optional) Create a GitHub Release
If
ghis available and the user requests it:gh release create vYYYY.MM.DD.N --generate-notes
Git-flow (optional)
Only use this section if git-flow is configured for the repository (a develop branch exists and git flow init has been run).
-
Start release
git flow release start YYYY.MM.DD.N -
Finish release (macOS/BSD safe path)
Always finish without tagging and add the tag manually (avoids getopt errors with
-m).git flow release finish -n YYYY.MM.DD.N git switch main git tag -a vYYYY.MM.DD.N -m "Release vYYYY.MM.DD.N" -
Push branches and tags
git push origin develop git push origin main --tags
Post-release Report
After completing all steps, report:
- The released version number (e.g.,
2026.02.04.1) - The tag name created (e.g.,
v2026.02.04.1) - Confirmation that the tag was pushed
- (If created) Confirmation that the GitHub Release was published
Error Handling
- If tagging fails because there are no commits yet, create the initial commit first.
- If
git flowis not installed, inform the user and suggest installing it. - If merge conflicts occur during
git flow release finish, stop and report the conflict details. - If push fails, check remote status and report the issue.