im-not-ai 发布工程详解:版本字符串全量清点、SSOT 校验与“最后才打标签“策略

发布时间:2026/10/10 9:05:42

im-not-ai 发布工程详解:版本字符串全量清点、SSOT 校验与“最后才打标签“策略 【免费下载链接】im-not-aiAI가 쓴 한글을 사람 글처럼 윤문하는 Claude 스킬 — Korean AI-text humanizer: detects and rewrites translationese, mechanical parallelism, and 71 other AI tells项目地址https://gitcode.com/gh_mirrors/im/im-not-ai点击查看免费下载RELEASING.md是 im-not-ai韩文 AI 痕迹去除/润色 Claude 技能的发布操作手册。它源于两次真实事故v1.6.1 与 v2.0 连续两次漏更新SKILL.md版本导致 clone 用户在 v2.0 名义下实际运行 v1.5 的编排逻辑以及v2.0.0标签先于发布说明和缩略图提交打上致使 GitHub 发布归档中缺失 v2.0 发布说明。本文完整继承该文档的 13 项版本字符串位置清单、发布前检查项与打标签时机规则并结合tests/test_version_sync.py、install.sh等仓库源码说明把人的检查清单变成 CI 里的一段代码这一防回归设计。1. 事故背景为什么需要一份发布清单两次事故的机制值得先厘清版本字符串漏更新——用户 clone 仓库后运行时读到的版本号frontmatter 与运行横幅落后于实际代码。由于版本号在用户侧既是展示信息也是你拿到的到底是哪一代编排的判断依据漏更新等同于发布了一个身份错位的包。标签打早了——v2.0.0标签在发布说明、缩略图所在的提交文档记载为 PR #20~#23进入 main 之前就已打上main 比标签落后 8 个提交。GitHub 的 zip/tarball 归档按标签指向的提交打包因此发布说明被永久排除在归档之外。文档给出的结构性对策只有两条§1 维护一张版本字符串出现位置的全量清单每次发布逐一更新§3 规定标签只能在全部提交发布说明、缩略图、文档合入 main 之后打。§2 的发布前检查项和 §4 的顺序摘要则是把这两条落到可执行流程上。2. 版本字符串出现位置13 项全量清单以下是 RELEASING.md §1 依据 2026-07-17 以 v2.0.1 为基准做的 grep 全量清点结果。表中 #1~#13 在每次发布时全部需要更新#8/#9 为例外见下文#文件位置格式1skills/humanize-korean/SKILL.mdfrontmatterversion:X.Y.Z—运行时 SSOT。漏更这一项用户就跑的是旧版本2skills/humanize-korean/SKILL.md标题(H1) 顶部版本摘要块vX.Y3skills/humanize-korean/SKILL.mdPhase 0 运行横幅humanize-korean vX.Y — {fast\|strict} 모드 …vX.Y— 执行时原样输出给用户4README.md标题(H1) 架构标题vX.Y.Z/vX.Y5README.md新发布说明节## vX.Y — …追加一节6CLAUDE.md标题(H1)vX.Y.Z7commands/humanize.toml横幅示例humanize-korean vX.Y — …vX.Y8references/ai-tell-taxonomy.md标题(H1) 版本管理节分类体系版本 — 与技能版本分轨仅在分类发生变化的发布中更新9references/quick-rules.md标题(H1)与分类体系版本轨同步10.claude-plugin/plugin.jsonversiondescriptionX.Y.Z—市场安装用户看到的版本。由tests/test_version_sync.py与 SKILL.md 对账11.claude-plugin/marketplace.jsonmetadata.versionplugins[].versionplugins[].descriptionX.Y.Z— 同一测试对账12plugin.jsonversiondescriptionX.Y.Z— GitHub Copilot CLI 读取的根清单。同一测试对账13git tagvX.Y.Z遵循下文 §4 的时机规则注原文表格中 #8~#11 写作references/…在当前仓库中这些文件位于技能目录skills/humanize-korean/references/下技能插件在 v2.3.2 中已迁回惯例位置见 skills/humanize-korean/SKILL.md 顶部版本摘要本文按实际路径理解。#10~#12 不需要靠人记——tests/test_version_sync.py 以 SKILL.md frontmatter 为 SSOT对三份清单做对账不一致就在 CI 拦截。description里残留已退役的结构化描述如5인 파이프라인也会被同一测试抓住。2.1 运行时 SSOT 是怎么定的#1 被指定为运行时 SSOT不是口号而是有代码依据的humanize-korean v2.3 — 경로: {light|standard|heavy} …这类横幅在 skills/humanize-korean/SKILL.md 的 Phase 0 中要求工作开始时最先输出这一行——也就是说#3 这串版本字符串是用户每次执行时肉眼可见的#1 的 frontmatterversion:则是编排逻辑被加载的身份标识。两者落后于实际代码时就是那次v2.0 名义跑 v1.5事故的直接形态。tests/test_version_sync.py 的做法见源码用正则^version:\s*?([0-9]\.[0-9]\.[0-9])?\s*$直接从 SKILL.md frontmatter 中抠出版本号为保持 stdlib-only 不引入 PyYAML然后断言.claude-plugin/plugin.json、根plugin.json的version以及marketplace.json的metadata.version与plugins[].version全部与它相等。任一不一致即测试失败报错信息直接写明按 RELEASING.md §1 表格一起更新。同一测试文件里的ManifestDescriptionTests维护了一份RETIRED_TERMS (5인 파이프라인, strict 5인)黑名单v2.1 退役了5 人流水线架构改为 route_hint 三路径市场描述文案是安装用户第一眼看到的文案如果还写着已退役架构就与实际行为不符。这对应文档中description 残留已退役结构描述的也会被同一测试抓住一句。当前仓库中.claude-plugin/plugin.json、.claude-plugin/marketplace.json、plugin.json 三份清单的version均为2.3.2与 skills/humanize-korean/SKILL.md frontmatter 的version: 2.3.2一致是这套对账机制在正常状态的直接体现。2.2 单独版本轨与无需更新清单三类内容不跟随技能版本是清单中容易被误伤的部分Gemini 独立发行物gemini-extension.jsonGEMINI.md是内嵌了自包含规则手册47 条规则的独立发行物与技能版本分轨只在内容更新的发布回合里一起升。分类体系版本轨#8ai-tell-taxonomy.md与 #9quick-rules.md的标题用的是分类体系版本号不是技能版本号仅在分类变化的发布中更新。从 skills/humanize-korean/references/quick-rules.md 文件头可以看到它标注为v2.0分类体系轨而 SKILL.md 已是 v2.3——两条轨的编号差异本身就是证据。引入时的历史描述scripts/prepare_monolith_input.pydocstring 里的v1.6、agents/humanize-monolith.mddescription 里的v1.6.1、README 的历史发布说明节——这些都是功能引入时的历史记录一律不动。唯一的例外如果某次发布改变了代理的行为契约工具调用上限、产出物形态则对应代理定义的 description 需要一并更新。2.3 发布分支上的全量核查命令文档给出了在发布分支上执行的旧版本字符串残留检查命令可直接复制使用grep -rn v[0-9]\.[0-9] \ skills/humanize-korean/SKILL.md \ commands/ CLAUDE.md \ | grep -v 역사\|이력\|변경 고지\|버전 요약 # README.md 历史发布说明多只看标题·架构头部肉检 sed -n 1,40p README.md排除正则滤掉了历史/履历/变更通知/版本摘要等允许保留旧版本字样的区块README 因为要承载全部历史发布说明无法整体 grep只能肉检前 40 行的标题区。3. 发布前检查项§2 逐项原文检查项共 10 条逐条说明其验证对象与背后的事故教训全局代理符号链接同步仅在新增/退役代理的发布回合~/.claude/agents/是到项目agents/*.md的逐文件符号链接。新增代理用ln -sf挂链接退役代理删掉死链——链接不存在会话就加载不到该代理文档原话精确 3 次调用流程就跑不起来。验证方式ls -la ~/.claude/agents/ | grep humanize检查链接目标是否真实存在。测试python3 -m pytest tests/ -q全量通过未装 pytest 的环境先pip install pytest。这包含 §2.1 提到的版本同步测试与 tests/ 目录下的全部回归用例。shim 冒烟python3 scripts/prepare_monolith_input.py --text 테스트 문장입니다. --genre essay应生成00_metrics.json01_input_with_metrics.txt生成的临时 run 目录用完删除。这是 Phase 1 定量 shim 的最小执行路径scripts/prepare_monolith_input.py 也是 §1 中 docstring 保留v1.6历史字样的那个文件。版本字符串按 §1 表全量更新 #1~#12重点是SKILL.md frontmatter 与横幅历史两次漏更点#10~#12 三份清单交给python3 -m pytest tests/test_version_sync.py -q对账。Codex 包验证codex/skills/humanize-korean结构、执行包装层冒烟、codex/skills/humanize-korean/agents/openai.yaml 一致性。Codex copy 安装在临时CODEX_HOME下执行./install.sh --codex-only --copy然后在仓库外的 cwd 中跑 shim 与 gate。install.sh 对--codex-only的处理是仅装 Codex 侧DO_CLAUDEno; DO_GEMINIno对--copy模式会打印一条来自 issue #144 的警示./install.sh --copy 会破坏 SKILL_ROOT 推导scripts/ 的 gate 将不工作——所以这条检查项专门用仓库外 cwd 验证正是为了暴露安装根与运行根不一致这类问题。Codex 全路径用 E2E 确认 light·standard·heavy 三条路径及后续重跑的产出物契约。Copilot 包确认根 plugin.json 只暴露copilot/skills/humanize-korean单一调用技能其skills: [./copilot/skills/]字段即是此约定与 Codex 三路径技能分离。文档一致性工具调用上限、产出物清单fastfinal.md1 个strictfinal.mdsummary.md在 SKILL.md、README、CLAUDE.md、代理定义中表述一致。发布说明在 README 写## vX.Y节验证结果只允许填实测数值禁止估算。附属物缩略图、social preview 如有更新必须先于标签合入。4. 什么时候打标签§3文档规则原文标签打在该次发布的所有提交含发布说明、缩略图、文档合入 main 之后打在 main 上的合并提交上。事故复盘v2.0.0标签在 main 之后停留 8 个提交PR #20~#23 的发布说明、缩略图打在标签之后才合入导致 GitHub 发布归档zip/tarball里没有 v2.0 发布说明。已公开的标签永不移动——移动标签会污染所有已 clone 用户的提交历史。补救方式是按规则补打一个补丁标签如v2.0.1让归档恢复正常。标签之后创建 GitHub Release正文直接复用 README 的发布说明节。5. 顺序摘要§41. 发布分支按 §1 全量更新版本字符串 通过 §2 检查清单 2. PR → review → 合入 main含发布说明、附属物在内的全部内容 3. 在 main 上执行 git tag vX.Y.Z git push origin vX.Y.Z 4. 创建 GitHub Release正文 README 发布说明节6. 这套发布设计的要点从源码结构看RELEASING.md 的工程含义可以归纳为三层全量清点代替记忆——版本字符串散落 13 处、跨 5 个不同角色运行时 SSOT、用户可见横幅、市场清单、分轨的分类体系版本、git 标签靠人脑维护必然漏清单把记得更新哪里变成查表。能用代码挡的不用人挡——清单中最机械的部分#10~#12 三份 JSON 清单与 SSOT 对账、description 退役术语残留已经沉淀为 tests/test_version_sync.pyCI 上永远跑人只需要处理表格前 9 行里无法自动化的 Markdown 文字。文档自述的动机与此一致这个测试用代码而非人的检查清单来挡住这类漏更。标签是发布动作的终点而非起点——归档完整性取决于标签指向的提交包含什么因此发布说明、附属物必须全部先行合入 main标签永远最后打标签打早不移动而是用下一个补丁标签修正。对维护多发行面Claude 市场、Copilot、Codex、Gemini的技能型仓库这三条组合起来的成本很低收益则是clone 的用户拿到的版本号、横幅与编排逻辑严格对齐。7. 相关仓库位置速查内容路径发布清单正文RELEASING.md运行时 SSOT 与发布说明skills/humanize-korean/SKILL.md、README.md版本/描述对账测试tests/test_version_sync.py三份市场清单.claude-plugin/plugin.json、.claude-plugin/marketplace.json、plugin.json安装脚本--codex-only/--copyinstall.sh分类体系与规则手册分轨版本skills/humanize-korean/references/ai-tell-taxonomy.md、skills/humanize-korean/references/quick-rules.mdshim 冒烟目标脚本scripts/prepare_monolith_input.py适用前提本文描述的流程基于当前仓库状态技能版本 2.3.2、10 大类 × 85 个 AI 痕迹模式。§1 清单本身也是发布时点敏感的——若仓库新增了携带版本字符串的文件例如新的发行清单需要按文档开头的做法重新执行一次 grep 全量清点并更新表格。赞分享【免费下载链接】im-not-aiAI가 쓴 한글을 사람 글처럼 윤문하는 Claude 스킬 — Korean AI-text humanizer: detects and rewrites translationese, mechanical parallelism, and 71 other AI tells项目地址https://gitcode.com/gh_mirrors/im/im-not-ai点击查看免费下载相关推荐OpenAPI Specification 仓库贡献指南详解分支策略、本地校验与版本发布全流程OpenAPI Specification 仓库贡献指南详解分支策略、本地校验与版本发布全流程 本篇技术指南以 OpenAPI Specification 仓API设计文档后端jevgrep 发布流程全解从版本标识、归档校验到 npm 发布与安装后验证jevgrep 发布流程全解从版本标识、归档校验到 npm 发布与安装后验证 导读 本文围绕 jevgrep 仓库的 发布文档 https://link.gi文档教程Vibe Coding示例工程NumPy 2.2.6 维护版本发布详解字符串安全修复、类型标注与线程安全改进NumPy 2.2.6 维护版本发布详解字符串安全修复、类型标注与线程安全改进 本篇文章基于 NumPy 官方仓库中的 2.2.6 版本发布说明 doc/c科学计算数据分析上一篇Glances Docker 镜像构建与运行指南从 make docker 到多阶段 Dockerfile 全解析下一篇OpenTelemetry Collector Connector 深度解析跨管道数据连接的配置与源码实现创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/10 9:05:42

Java SpringBoot宠物领养系统设计与实现:从CRUD到业务状态机

1. 项目概述与核心价值做毕业设计或者接外包项目时,我一直觉得“宠物领养”这个方向被低估了。表面上看它是一个普通的CRUD管理系统,但实际上它承载了真实业务场景中非常典型的双向信息匹配、流程审批和多角色权限控制,从技术锻炼的角度来看&…

2026/10/10 9:05:42

2025年6月GESP C++八级客观题解析:核心算法考点与备考指南

2025年6月的GESP认证,C八级依然是很多选手关注度最高的一组。我在考场外等朋友的时候,顺手把选择题和判断题按回忆整理了一遍。说实话,这张卷子的客观题部分没有特别偏的题,但对基础概念的精细程度要求很高:树状数组的…

2026/10/10 10:06:10

SQL单表查询必备:算术与比较运算符深度解析

1. 项目解读:单表查询里最不起眼却最要命的两个运算符先聊点实在的。很多人学SQL,SELECT和FROM写完就觉得自己会查数据了,结果一到实际需求就卡住:什么“查价格打了八折后还大于一百的商品”“找库存低于五十的畅销书”“把订单金…

2026/10/10 10:06:10

基于机器学习的日化产品销量影响因素分析与预测

“基于机器学习的日化产品销量影响因素的分析与预测”——这是我近期带过的一个毕业设计项目的完整复盘,也是我建议正在选题的同学认真考虑的毕设题目。先把一句话说透:这个题目表面挂的是“机器学习”和“深度学习”两个热门标签,但真正做题…

2026/10/10 10:06:10

高校资产管理系统建设方案:从状态机设计到实施避坑全指南

简介:《高校资产管理系统建设方案》是一份面向高校信息化建设人员、资产管理专员及系统规划者的方案文档,聚焦高校资产管理数字化转型中的系统设计与实施路径。文档以资产设备管理为核心,参照《事业单位国有资产管理暂行办法》和《高等学校固…

2026/10/10 10:06:10

微前端容器标准化:渐进式改造存量基座架构指南

说个我自己的真实经历。去年年中,我们部门接手了一套运行了三年的“微前端”系统,名义上早就完成了微前端改造。结果翻开代码仓库一看,光基座容器就有五个互相不兼容的版本:有的基于 qiankun,有的拿 iframe 简单包了一…

2026/10/10 10:01:09

Java毕设教研室管理系统:从需求拆解到Spring Boot落地实战

每年到了毕设季,“Java毕设教研室管理系统”这个组合就会出现得特别频繁。说实话,这个题目看起来平平无奇,但真要做得像个能上台面的信息化平台,而不是一个凑数的CRUD Demo,里面可以挖的细节比很多同学想象中要多。先把…

2026/10/10 7:31:36

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/9 20:15:56

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/8 6:05:44

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 0:04:53

从逻辑门到计算机:数字电路核心原理与全加器搭建实战

如果你拆过一台旧电脑的主板,盯着那些黑乎乎的小芯片看上一会儿,可能会冒出同一个疑问:这堆引脚密集的元件,到底是怎么“变”出那么复杂的应用的?答案并不在某个神秘的部件里,而是在所有芯片内部都在反复使…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑