fnl-versioning
Skill4 starsChanged 14 days agoMITView on GitHub
Version and tag releases by SemVer. Use before any version bump, release tag, changelog entry, release notes, pre-release, or change to a manifest version, and when adopting the scheme in a repository that already has versions.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- finolabs/vibecodetheir own version, first seen Nov 15, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- finolabs/vibecode★ 4same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository19 other files it gives its agents.
- rules/AGENTS.mdAGENTS.md
- skills/fnl-delegate/references/agents.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- fnl-advisorSkill
- fnl-askSkill
- fnl-coding-routerSkill
- fnl-commit-messagesSkill
- fnl-delegateSkill
- fnl-handoffSkill
- fnl-open-source-reviewSkill
- fnl-plugin-packagingSkill
- fnl-restore-pointSkill
- fnl-review-gateSkill
- fnl-security-review-gateSkill
- fnl-session-hygieneSkill
- fnl-setupSkill
- fnl-statusSkill
- fnl-updateSkill
- fnl-verificationSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 45
Keep each entry to one or two sentences: the change and any consumer action.
- Distinctive: line 46
Every breaking entry names the consumer action needed.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Versioning and release tags
One standard for every repository: applications, libraries, CLIs, services, plugins and skill packages, API and tool contracts, and versioned governance documents (constitutions, policies). A repository's own documented policy or a hard ecosystem requirement may differ: expose the conflict and follow the stricter rule or ask.
Version numbers
- SemVer 2.0.0 for every released artifact; no date-based or arbitrary numbers unless the ecosystem requires them.
- Phase 0,
0.y.z, until the owner declares the first public stable release: MINOR for breaking or incompatible changes; PATCH for every compatible change (features, additions, fixes, wording). - Stable,
≥1.0.0: MAJOR for breaking changes; MINOR for backward-compatible features or additions; PATCH for backward-compatible fixes, clarifications and wording. 1.0.0and every later MAJOR need an explicit owner decision. Feature completeness, a template default or a skill's instruction never implies one.- Breaking is judged against the documented public surface: API and SDK signatures, CLI commands and flags, MCP tools and schemas, configuration keys, data and migration formats, wire protocols, and principles of a governance document. A change that needs consumers to act is breaking; deprecate first, remove at the next breaking bump.
- Skills or templates with their own bump rules (for example Spec Kit's constitution command) map onto these: in phase 0, MAJOR becomes MINOR and MINOR becomes PATCH.
Cadence
Advisory (agent judgment): Talk to the user in the language they are using, including questions and option labels; keep command names, flags, file paths, skill names and other technical names unchanged.
- One bump per release, never per commit, PR, task or amendment. Unreleased changes accumulate into one pending bump, and its release notes (or a Sync Impact Report for a governance document) list every change in it.
- An agent never cuts a release on its own. A release usually follows each finished spec: propose one when a spec is merged, summarizing what has accumulated, and let the owner decide. In phase 0 a spec's compatible changes bump the last digit; MINOR only when something breaks.
- A product release is a tag. A governance document is released when it merges to the default branch. A release is two pull requests: the release (version and dated changelog), then the bump to the next
-dev, so the default branch never carries a released version as its build. - Between releases, builds report the next expected version with
-dev(0.4.0-dev); build metadata such as+<short-sha>may follow and never affects precedence. - Pre-releases use
-alpha.N,-beta.N,-rc.N, N from 1. A release candidate is the final bytes except the version string; any other change makes a new candidate.
Single source of truth
- Each artifact has one authoritative version location: the git tag for Go modules;
package.json,pyproject.toml,Cargo.tomlor the plugin or skill manifest elsewhere. Every other copy (embedded constants, docs, catalogs, a second manifest) is derived from it or checked against it by CI or the release script. - The manifest version equals the tag without its leading
v.
Tags
- Format
vX.Y.Z, pre-releasevX.Y.Z-rc.1. A repository releasing several components prefixes the component path:<path>/vX.Y.Z, one tag per released component. - Annotated tags with the message
Release vX.Y.Zand a short summary; signed where signing is configured. - Tag only a commit on the default branch, or on a maintenance branch
release/X.Yfor older lines (created and fed asfnl-commit-messages"Branches" says), after required CI and release gates pass on that exact commit. - Published tags are immutable: never move, delete or reuse one. A bad release is superseded by a new version and marked (release note, Go
retract, npmdeprecate). - Go modules at major version 2 or later need the
/vNmodule path suffix; plan it with the MAJOR decision.
Release notes
CHANGELOG.mdin Keep a Changelog form, with anUnreleasedsection updated in each merged change that alters the public surface. A release moves those entries under the version heading with its date, in the date format the file already uses; a new file uses ISO 8601 (2026-11-01).- Keep each entry to one or two sentences: the change and any consumer action. The reasons live in the skill, the commit and the pull request.
- Every breaking entry names the consumer action needed.
- The forge release body comes from the same changelog section.
- Advisory (agent judgment): After the tag and GitHub release, and only with the owner's explicit go for that repository (name it and the fields it changes first; the target is read from the user's marketplace entry, so the owner confirms it), open a pull request in the catalog repository that entry points to, moving
refto the new tag and syncing name, description and keywords with the default-branch manifests. The catalog's CI enforces the content against the raw default-branch files, which can lag a few minutes.
Authority
Creating or pushing a tag, publishing a release or package, and changing a published version need explicit owner authority for that release. Preparing the bump, changelog and release notes for review needs none.
Adoption in existing repositories
A repository that used higher numbers without any public release renumbers once onto this scheme and records the old→new mapping in its changelog. Publicly released versions are never rewritten; the next release continues from them.
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.

