fit-framework: Command for Claude Code

.codex/commands/fit-release.md

fit-release is a command for Claude Code, Codex from ModelEngine-Group/fit-framework. It costs 25 tokens per session (1,805 once invoked), scanned A, original, MIT.

A local release command that changes a project from a SNAPSHOT version to a numbered release, creates a Git commit and tag, and prepares the next SNAPSHOT version. Git tags are labels attached to specific points in a project’s history.

In plain words
What is it for?
It is for releasing versions such as 1.2.3 in projects that use SNAPSHOT version numbers and Git-based release workflows.
Why use it?
It removes repetitive version editing and keeps the release steps consistent. It stops when the working folder has uncommitted changes and does not push anything to a remote repository.

Command for Claude CodeCodex

Written for Codex and Claude Code: installed under .codex/, but also a Claude Code command (commands/*.md). Also seen: mentions Claude Code; mentions Codex; mentions Gemini CLI.

This is ModelEngine-Group/fit-framework's own configuration. It tells Claude Code and Codex how to work on fit-framework itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything fit-framework configures →

About the project

FIT is an enterprise AI development framework with a multilingual function engine, a flow orchestration engine, and Java tools for connecting language models, knowledge bases, and external tools. It is for Java-oriented teams building AI applications that can run locally or in distributed deployments with plugins. The catalogue add-ons provide commands, skills, instructions, and settings for working with FIT.

ModelEngine-Group/fit-framework · 2,117 stars · on GitHub · modelengine-ai.net

Reuse

Borrowing it

Nothing to install: this file belongs to ModelEngine-Group/fit-framework. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/ModelEngine-Group/fit-framework/main/.codex/commands/fit-release.md
Clone the repo
git clone --depth 1 https://github.com/ModelEngine-Group/fit-framework

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for fit-release

README.md
[![agentmods](https://agentmods.dev/badge/commands/modelengine-group/fit-framework/fit-release/github.svg)](https://agentmods.dev/commands/modelengine-group/fit-framework/fit-release)
Your own site
<a href="https://agentmods.dev/commands/modelengine-group/fit-framework/fit-release"><img src="https://agentmods.dev/badge/commands/modelengine-group/fit-framework/fit-release/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for fit-release

Your own site · 80×15
<a href="https://agentmods.dev/commands/modelengine-group/fit-framework/fit-release"><img src="https://agentmods.dev/badge/commands/modelengine-group/fit-framework/fit-release.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 25 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,805 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00025 $0.01805
Opus 5.5 $0.00010 $0.00722
Sonnet 5.5 $0.00005 $0.00361
Haiku 4.5 $0.00003 $0.00180

Measured 1mo ago against content hash 27818a63b44f, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

fit-release scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.codex/commands/fit-release.md · 210 lines

How it starts

The opening of the file, as written. The whole thing — 210 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Release Command

执行标准化的版本发布流程。

不含构建验证:仅做版本号替换和 Git 操作。 不含自动推送:仅做本地操作,推送由用户手动完成。

用法:

  • /prompts:fit-release 1.2.3 - 发布 1.2.3 版本

参数说明:

  • <version>: 发布版本号,格式为 X.Y.Z(必需),例如 1.2.3

执行步骤

步骤 1:解析并验证参数

从命令参数中提取版本号。

版本号格式验证:

  • 必须匹配 X.Y.Z 格式(X、Y、Z 均为非负整数)
  • 如果格式不正确,报错退出:错误:版本号格式不正确,期望格式为 X.Y.Z(例如 1.2.3)

解析版本组件:

  • 主版本号 MAJOR = X
  • 次版本号 MINOR = Y
  • 修订版本号 PATCH = Z
  • 下一修订版本号 NEXT_PATCH = Z + 1
  • SNAPSHOT 版本 = X.Y.Z-SNAPSHOT
  • 发布版本 = X.Y.Z
  • 下一 SNAPSHOT 版本 = X.Y.(Z+1)-SNAPSHOT

确认 SNAPSHOT 存在:

全局搜索 X.Y.Z-SNAPSHOT:

  • 如果没有找到任何匹配,报错退出:错误:未找到 X.Y.Z-SNAPSHOT,请确认当前代码版本是否正确
  • 如果找到匹配,列出所有包含 SNAPSHOT 的文件,告知用户即将替换的范围

步骤 2:确认工作区状态

git status --short
  • 如果有未提交的更改,报错退出:错误:工作区有未提交的更改,请先提交或暂存(git stash)后再执行发布
  • 工作区必须是干净的才能继续

步骤 3:全局替换 SNAPSHOT → Release

搜索所有包含 X.Y.Z-SNAPSHOT 的文件,将 X.Y.Z-SNAPSHOT 替换为 X.Y.Z。

覆盖的文件范围(由全局搜索决定,包括但不限于):

  • **/pom.xml — Maven 版本号和 <fit.version> 属性
  • README.md — 版本标题
  • docs/**/*.md — 文档中的版本引用
  • *.java — 源码中硬编码的版本字符串
  • *.js — fit.js 中的 VERSION 常量
  • package.json — Node.js 版本号

必须排除的目录(这些目录包含 AI 工具配置、命令模板和示例,不应被版本替换影响):

  • .agents/
  • .ai-workspace/
  • .claude/
  • .codex/
  • .gemini/
  • .opencode/

替换后验证:

再次搜索 X.Y.Z-SNAPSHOT,确认没有残留。如果仍有残留,继续替换直到全部清除。

步骤 4:创建 Release commit

git add -A && git commit -m "Release X.Y.Z"

步骤 5:创建轻量标签

git tag vX.Y.Z

步骤 6:创建发布分支

git branch release-X.Y.Z

步骤 7:回退当前分支到 Release commit 之前

Release commit 和 tag 已经通过 release-X.Y.Z 分支保留,现在需要将当前开发分支回退到 Release commit 之前的状态,使下一个 SNAPSHOT commit 与 Release commit 成为兄弟关系(共享同一个父节点),而非父子关系。

git reset --hard HEAD~1

执行后,当前分支 HEAD 回到 Release commit 的父节点,而 release-X.Y.Z 分支和 vX.Y.Z tag 仍然指向 Release commit。

步骤 8:全局替换当前 SNAPSHOT → 下一 SNAPSHOT

由于步骤 7 已将工作区回退到 Release commit 之前,文件中的版本号已恢复为 X.Y.Z-SNAPSHOT。

只替换步骤 3 中已知的文件列表(避免误匹配),将 X.Y.Z-SNAPSHOT 替换为 X.Y.(Z+1)-SNAPSHOT。

替换后验证:

抽查几个关键文件(如根 pom.xml),确认版本号已正确更新为 X.Y.(Z+1)-SNAPSHOT。

Read the full file on GitHub · 210 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 1mo ago First seen · 210 lines · 25 tokens per session scan A 27818a63b44f

Subscribe to this mod's changes

fit-release is a command published in the GitHub repository ModelEngine-Group/fit-framework (2,117 stars, last pushed 7mo ago), licensed MIT. It adds 25 tokens to every session and 1,805 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.