- install.sh said "Installed supaspin supaspin 1.1.0." because --version now includes the name; it now says "Installed supaspin 1.1.1." - CLAUDE.md: tells AI agents to read Igor's global rules first, and states the versioning rule (number in VERSION, code and README together, semantic versioning, major bumps only with Igor's yes, a git tag vX.Y.Z after every merge) - version 1.1.0 -> 1.1.1 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
1.9 KiB
1.9 KiB
supaspin - rules for AI agents
Read and follow the global rules first. They are in Igor's global CLAUDE.md, which in turn pulls in
~/.agents/AGENTS.md:
@~/.claude/CLAUDE.md
The rules below are specific to this repository and add to the global ones.
Versioning
The number is MAJOR.MINOR.PATCH (semantic versioning: 1.1.1 is major 1, minor 1, patch 1).
- Pick the number. A bug fix or wording fix raises PATCH (1.1.0 -> 1.1.1). A new feature raises MINOR and resets
PATCH (1.1.1 -> 1.2.0). MAJOR is Igor's decision only: never raise it, never write
!after the commit type (feat!:) and never write aBREAKING CHANGE:line without asking him first (see the global rules). - Write it in all three places, in the same commit as the change. The file
VERSION, theVERSION = "x.y.z"line near the top ofsupaspin, and the lineVersion x.y.zat the top ofREADME.md. A unit test (tests/test_supaspin.py, classVersion) fails if they differ.supaspin --versionprintssupaspin x.y.z. - One plan = one branch = one commit = one pull request. The version bump is part of that one commit.
- Tag every release. After the pull request is merged, create the git tag
vX.Y.Z(for examplev1.1.1) on the commit onmainthat contains that number inVERSION. The tag name must equalVERSIONwith avin front. A version without a tag is not released. Never move or delete a tag that was already published; if a release is wrong, ship a new PATCH instead. With the Gitea API:POST /api/v1/repos/igor/supaspin/tagswithtag_name,target(the commit) andmessage. - Check the result. Reinstall from the merged
main(sudo bash install.sh), then runsupaspin --versionand compare it withVERSIONand the tag. - If you find a version in
VERSIONthat has no tag, or a tag that does not matchVERSION, tell Igor before doing anything else.