Просмотр исходного кода

docs(release): split npm publish doc into overview + per-package changelogs

NPM技能包发布管理.md is now the single source for current version numbers + managed skills/install/auth/flow; per-package history moves to 变更记录/<pkg>.md (append on each release).
gangvy 2 месяцев назад
Родитель
Сommit
56e0442c7e

+ 0 - 212
NPM技能包发布管理.md

@@ -1,212 +0,0 @@
-# NPM 技能包发布管理
-
-本文记录 Claude Code / OpenClaw 技能包的 npm 发布、下载、安装和验证方式。
-
-## 发布状态总览
-
-| 技能包 | npm 包名 | 当前版本 | 状态 | 本地目录 | npm 链接 |
-|---|---|---:|---|---|---|
-| Claude Code VOC Intelligence | `@vocmarket/voc-skill` | `0.3.15` | 已发布 | `claude-code/claude-code-voc-intelligence/` | https://www.npmjs.com/package/@vocmarket/voc-skill |
-| 提号 SOP 博主名单 | `@vocmarket/tihao` | `1.0.10` | 已发布 | `E:\workspace\tihao-ai\claude-code-tihao-sourcing\` | https://www.npmjs.com/package/@vocmarket/tihao |
-| 装修量尺图缺标记检查 | `@gangvy/claude-code-measurement-marker-check` | `0.1.2` | 已发布 | `claude-code-measurement-marker-check/` | https://www.npmjs.com/package/@gangvy/claude-code-measurement-marker-check |
-
-## VOC Intelligence 安装入口
-
-推荐给 VSCode Claude Code 插件使用工作区安装:
-
-```powershell
-npx --yes @vocmarket/voc-skill@latest workspace --smoke
-```
-
-工作区安装会写入:
-
-```text
-.\.mcp.json
-.\.claude\plugins\voc-intelligence
-.\.claude\skills\xiaohongshu-trend-intelligence\SKILL.md
-.\.claude\skills\douyin-trend-intelligence\SKILL.md
-```
-
-全局安装:
-
-```powershell
-npm install -g @vocmarket/voc-skill
-claude-voc install
-```
-
-npx 免全局安装:
-
-```powershell
-npx --yes @vocmarket/voc-skill@latest install
-```
-
-Claude Code 命令行加载:
-
-```powershell
-claude --plugin-dir "$env:USERPROFILE\.claude\plugins\voc-intelligence"
-```
-
-## 提号 SOP 安装入口
-
-推荐给 VSCode Claude Code 插件使用工作区安装:
-
-```powershell
-npx --yes @vocmarket/tihao@latest workspace --smoke
-```
-
-工作区安装会写入:
-
-```text
-.\.mcp.json
-.\.claude\plugins\tihao
-.\.claude\skills\tihao\SKILL.md
-```
-
-全局安装:
-
-```powershell
-npm install -g @vocmarket/tihao
-tihao install --smoke
-```
-
-使用全局 CLI 安装到当前项目工作区:
-
-```powershell
-tihao workspace --smoke
-```
-
-发布后验证:
-
-```powershell
-npm view @vocmarket/tihao name version dist-tags.latest --registry=https://registry.npmjs.org/
-npx --yes @vocmarket/tihao@latest workspace --smoke
-```
-
-### 数据库 `skills` 表记录
-
-| 字段 | 值 |
-|---|---|
-| `skillName` | `tihao` |
-| `displayName` | `提号` |
-| `status` | `published` |
-| `npmPackage` | `@vocmarket/tihao` |
-| `npmVersion` | `1.0.10` |
-| `installCommand` | `npx --yes @vocmarket/tihao@latest workspace --smoke` |
-| `globalInstallCommand` | `npm install -g @vocmarket/tihao && tihao install --smoke` |
-| `workspaceSkillPath` | `.claude/skills/tihao/SKILL.md` |
-| `globalSkillPath` | `%USERPROFILE%/.claude/skills/tihao/SKILL.md` |
-| `pluginName` | `tihao` |
-| `mcpServerName` | `tihao` |
-| `legacyNpmPackages` | `@vocmarket/tihao-sop` |
-| `legacyCliNames` | `tihao-sourcing` |
-| `legacyPluginNames` | `tihao-sourcing` |
-| `legacySkillNames` | `tihao-creator-sourcing` |
-
-包内同步记录:`E:\workspace\tihao-ai\claude-code-tihao-sourcing\docs\skill-database-record.json`。
-
-## 教学测试话术
-
-小红书趋势情报:
-
-```text
-帮我做一份家装全屋定制行业的小红书趋势情报。
-先用演示样例跑通流程,不要真实采集。
-在聊天里给我第一轮样本观察和待确认问题。
-```
-
-抖音趋势情报:
-
-```text
-帮我做一份家装全屋定制行业的抖音趋势情报。
-先用演示样例跑通流程,不要真实采集。
-在聊天里给我第一轮样本观察和待确认问题。
-```
-
-真实采集口径:
-
-```text
-请切到 live 模式,并先检查 token 和余额状态。
-```
-
-没有 token 或余额不足时,技能包必须返回充值/开通链接,不允许把底层 403、权限或余额接口报错直接展示给用户。
-
-## 发布流程
-
-发布前验证:
-
-```powershell
-npm --prefix claude-code/claude-code-voc-intelligence run mcp:smoke
-npm --prefix claude-code/claude-code-voc-intelligence run smoke:package
-npm --prefix claude-code/claude-code-voc-intelligence run xhs:sample
-npm --prefix claude-code/claude-code-voc-intelligence run dy:sample
-npm run claude-voc:acceptance
-```
-
-构建套件与 npm 包:
-
-```powershell
-npm run claude-voc:build
-npm run claude-voc:npm-pack
-```
-
-发布:
-
-```powershell
-npm run claude-voc:npm-publish
-```
-
-发布后验证:
-
-```powershell
-npm view @vocmarket/voc-skill name version dist-tags.latest --registry=https://registry.npmjs.org/
-$test = Join-Path $env:TEMP ("vocmarket-online-smoke-" + [guid]::NewGuid())
-New-Item -ItemType Directory -Path $test | Out-Null
-Push-Location $test
-npm exec --yes --package @vocmarket/voc-skill@latest -- claude-voc workspace --smoke
-Pop-Location
-```
-
-## 认证方式
-
-发布脚本支持临时读取 `NPM_TOKEN` 或 `NODE_AUTH_TOKEN`。本地建议放在:
-
-```text
-release\npm\claude-code-voc-intelligence\.env.local
-```
-
-只允许本地使用,不要提交 npm token、VOC session token、模型 API key 或任何真实用户 token。
-
-## 本次发布记录
-
-- 2026-06-15 已发布 `@vocmarket/tihao@1.0.8`,npm `latest` 已验证为 `1.0.8`;本版把对外包名、主 CLI、插件目录和 MCP server 统一改为 `tihao`。
-- 已完成线上安装验证:`npx --yes @vocmarket/tihao@latest workspace --smoke` 与 `npm exec --yes --package @vocmarket/tihao@latest -- tihao install --smoke`。
-- 旧包 `@vocmarket/tihao-sop`、旧 CLI alias `tihao-sourcing` 和旧插件目录 `tihao-sourcing` 仅作为迁移兼容;客户新安装统一使用 `@vocmarket/tihao`。
-- 2026-06-15 已发布 `@vocmarket/tihao-sop@1.0.7`,npm `latest` 已验证为 `1.0.7`;本版同步区分项目级安装 `workspace --smoke` 和用户级全局 skill 安装 `install --smoke`。
-- 已完成线上安装验证:`npx --yes @vocmarket/tihao-sop@latest workspace --smoke`。
-- 本次 skill 改名后,CLI 仍为 `tihao-sourcing`,插件目录仍为 `tihao-sourcing`,Claude Code skill 改为 `tihao`;安装器会清理同目标下的 legacy skill `tihao-creator-sourcing`。
-- 2026-06-15 已发布 `@vocmarket/tihao-sop@1.0.6`,发布时 npm `latest` 已验证为 `1.0.6`。
-- 2026-06-05 已发布 `@vocmarket/tihao-sop@0.1.15`,npm `latest` 当时已验证为 `0.1.15`。
-- 发布 `0.1.14` 时出现过一次 `PUT 200`、`dist-tag latest` 可见但 `npm view`/`npx` 短暂 404 的半可见状态;已用 `0.1.15` 重新发布并通过安装验证。
-- 2026-06-05 已发布 `@vocmarket/voc-skill@0.3.15`,npm `latest` 已验证为 `0.3.15`。
-- 已完成线上安装验证:`npm exec --yes --package @vocmarket/voc-skill@latest -- claude-voc workspace --smoke`。
-- 本次改名只改 npm 对外包名,CLI 仍为 `claude-voc`,插件目录仍为 `voc-intelligence`,避免破坏 Claude Code 工作区识别。
-- 已将旧包 `@gangvy/claude-code-voc-intelligence@*` 标记为 deprecated,安装旧包时会提示改用:`npx --yes @vocmarket/voc-skill@latest workspace --smoke`。
-- 已借鉴 `tihao-sop` 的验收方式新增 `npm run claude-voc:acceptance`:串联包级 smoke、MCP smoke、npm pack dry-run、临时 workspace 安装和 `.mcp.json` 绝对路径断言。
-- 发布过程中出现过一次“publish 已成功但后置 npm view 短暂 404”的假失败;确认方式是等待后重新执行 `npm view @vocmarket/voc-skill@0.3.15 version`。
-- 2026-05-25 已发布 `@gangvy/claude-code-voc-intelligence@0.3.0`,npm `latest` 已验证为 `0.3.0`。
-- `0.3.0` 新增抖音趋势情报能力:`douyin-trend-intelligence` skill、`voc_douyin_trend_run`、`voc_douyin_token_check`、`voc_douyin_preference_update`。
-- 保留小红书趋势情报能力,并让工作区安装同时生成小红书和抖音两个 skill 入口。
-- 统一 token / 充值体验:没有 token 返回开通链接,余额不足或业务 403 返回充值链接,不暴露底层接口报错。
-- 新增 `business-status recharge guard` smoke,用来防止 HTTP 200 但业务码 403 时误判为成功。
-- 已通过 `mcp:smoke`、`smoke:package`、`xhs:sample`、`dy:sample`、`claude-voc:build`、`claude-voc:npm-pack`、`claude-voc:npm-publish`。
-- 当前新包发布后已用 `npm exec --yes --package @vocmarket/voc-skill@latest -- claude-voc workspace --smoke` 从 npm registry 重新安装并验证通过。
-
-## 后续更新规则
-
-- 升级功能时先改 `claude-code/claude-code-voc-intelligence/package.json` 版本,再同步 `package-lock.json`、`skill-package-manifest.json`、`.claude-plugin/plugin.json` 和发布管理文档。
-- 保持输入简单:用户说自然语言即可,不要求理解 MCP schema。
-- 第一轮报告只输出“初步判断 / 机会假设 / 待校准”,不写成最终结论。
-- 新增平台能力优先作为并列 skill 和并列 MCP tool,不把完整业务闭环强塞进单一 skill。
-- 每次发布前必须跑 `npm run claude-voc:acceptance`,它会覆盖 sample、workspace 安装、no-token 充值提示、余额/业务码保护、MCP tool 发现和 npm pack dry-run。
-
-- 2026-06-17 已发布 `@vocmarket/tihao@1.0.10`,npm `latest` 已验证为 `1.0.10`;本版把首版报告默认改为 live + resultFirstMode 高质量首版,sample 仅在用户明确要演示时使用,token 缺失时主动要 sessionToken 而不退回 sample。

+ 194 - 0
release/npm发布管理文档/NPM技能包发布管理.md

@@ -0,0 +1,194 @@
+# NPM 技能包发布管理
+
+本目录管理 Claude Code / OpenClaw 全部 npm 技能包的发布、安装、验证与版本记录。
+
+## 文档结构与职责(拆分规则)
+
+本目录按「**一份总览 + 每包一份变更记录**」组织,职责严格分开,避免一处改、多处漏:
+
+| 文档 | 职责 | 维护时机 |
+|---|---|---|
+| `NPM技能包发布管理.md`(本文) | **管理总览 = 版本号唯一真源**:记录有哪些 npm 技能包、各自**当前版本/状态/目录/链接**、安装入口、认证方式、通用发布流程、教学话术、维护规则 | 每次发版后更新「发布状态总览」表里的当前版本号 |
+| `变更记录/<包名>.md` | **每个 npm 包一份变更记录(CHANGELOG)**:按版本号**倒序**记录每次更新的版本号 + 简要内容(改了什么、验证情况) | 每次发版后在对应包的变更记录**顶部追加**一条 |
+
+> 规则一句话:**「当前版本号」只看本文的总览表;「历次版本改了什么」只看 `变更记录/` 下对应包的文件。** 不要把逐版改动写进本文,也不要把当前版本号散落到变更记录里。
+
+### 变更记录索引
+
+- [`变更记录/voc-skill.md`](变更记录/voc-skill.md) — `@vocmarket/voc-skill`
+- [`变更记录/tihao.md`](变更记录/tihao.md) — `@vocmarket/tihao`(含 legacy `@vocmarket/tihao-sop`)
+- [`变更记录/fmode-vision-ffmpeg-listen.md`](变更记录/fmode-vision-ffmpeg-listen.md) — `fmode-vision` / `fmode-ffmpeg` / `fmode-listen`
+- [`变更记录/measurement-marker-check.md`](变更记录/measurement-marker-check.md) — `@gangvy/claude-code-measurement-marker-check`
+
+## 发布状态总览(版本号唯一真源)
+
+| 技能包 | npm 包名 | 当前版本 | 状态 | 本地目录 | npm 链接 |
+|---|---|---:|---|---|---|
+| Claude Code VOC Intelligence | `@vocmarket/voc-skill` | `0.3.26` | 已发布 | `claude-code/claude-code-voc-intelligence/` | https://www.npmjs.com/package/@vocmarket/voc-skill |
+| 提号 SOP 博主名单 | `@vocmarket/tihao` | `1.0.17` | 已发布 | `E:\workspace\tihao-ai\claude-code-tihao-sourcing\` | https://www.npmjs.com/package/@vocmarket/tihao |
+| fmode 视觉分析 | `fmode-vision` | `0.1.1` | 已发布 | `claude-code/fmode-vision/`(如有) | https://www.npmjs.com/package/fmode-vision |
+| fmode 音视频处理 | `fmode-ffmpeg` | `0.1.1` | 已发布 | `claude-code/fmode-ffmpeg/` | https://www.npmjs.com/package/fmode-ffmpeg |
+| fmode 录音转写 | `fmode-listen` | `0.1.1` | 已发布 | `claude-code/fmode-listen/`(如有) | https://www.npmjs.com/package/fmode-listen |
+| 装修量尺图缺标记检查 | `@gangvy/claude-code-measurement-marker-check` | `0.1.2` | 已发布 | `claude-code-measurement-marker-check/` | https://www.npmjs.com/package/@gangvy/claude-code-measurement-marker-check |
+
+## 安装入口
+
+### VOC Intelligence(`@vocmarket/voc-skill`)
+
+工作区安装(推荐给 VSCode Claude Code 插件):
+
+```powershell
+npx --yes @vocmarket/voc-skill@latest workspace --smoke
+```
+
+工作区安装会写入:
+
+```text
+.\.mcp.json
+.\.claude\plugins\voc-intelligence
+.\.claude\skills\xiaohongshu-trend-intelligence\SKILL.md
+.\.claude\skills\douyin-trend-intelligence\SKILL.md
+```
+
+全局安装 / npx 免全局 / 命令行加载:
+
+```powershell
+npm install -g @vocmarket/voc-skill
+claude-voc install
+npx --yes @vocmarket/voc-skill@latest install
+claude --plugin-dir "$env:USERPROFILE\.claude\plugins\voc-intelligence"
+```
+
+### 提号 SOP(`@vocmarket/tihao`)
+
+工作区安装:
+
+```powershell
+npx --yes @vocmarket/tihao@latest workspace --smoke
+```
+
+工作区安装会写入:
+
+```text
+.\.mcp.json
+.\.claude\plugins\tihao
+.\.claude\skills\tihao\SKILL.md
+```
+
+全局安装 / 安装到当前工作区 / 发布后验证:
+
+```powershell
+npm install -g @vocmarket/tihao
+tihao install --smoke
+tihao workspace --smoke
+npm view @vocmarket/tihao name version dist-tags.latest --registry=https://registry.npmjs.org/
+npx --yes @vocmarket/tihao@latest workspace --smoke
+```
+
+#### 提号数据库 `skills` 表记录
+
+| 字段 | 值 |
+|---|---|
+| `skillName` | `tihao` |
+| `displayName` | `提号` |
+| `status` | `published` |
+| `npmPackage` | `@vocmarket/tihao` |
+| `npmVersion` | `1.0.17` |
+| `installCommand` | `npx --yes @vocmarket/tihao@latest workspace --smoke` |
+| `globalInstallCommand` | `npm install -g @vocmarket/tihao && tihao install --smoke` |
+| `workspaceSkillPath` | `.claude/skills/tihao/SKILL.md` |
+| `globalSkillPath` | `%USERPROFILE%/.claude/skills/tihao/SKILL.md` |
+| `pluginName` | `tihao` |
+| `mcpServerName` | `tihao` |
+| `legacyNpmPackages` | `@vocmarket/tihao-sop` |
+| `legacyCliNames` | `tihao-sourcing` |
+| `legacyPluginNames` | `tihao-sourcing` |
+| `legacySkillNames` | `tihao-creator-sourcing` |
+
+包内同步记录:`E:\workspace\tihao-ai\claude-code-tihao-sourcing\docs\skill-database-record.json`。
+
+### fmode 三件套(`fmode-vision` / `fmode-ffmpeg` / `fmode-listen`)
+
+```powershell
+npx --yes fmode-vision@latest workspace      # 或 install(用户级)
+npx --yes fmode-ffmpeg@latest workspace      # 或 install
+npx --yes fmode-listen@latest workspace      # 或 install
+```
+
+## 认证方式
+
+发布脚本支持临时读取 `NPM_TOKEN` 或 `NODE_AUTH_TOKEN`。本地建议放在:
+
+```text
+release\npm\claude-code-voc-intelligence\.env.local
+```
+
+当前发布账号 `whoami=gangvy`(@vocmarket scope 的 granular token,已绕过 2FA 拦截;fmode-* 无 scope 包已授权 fmode 组织 read-write)。
+
+> 只允许本地使用,不要提交 npm token、VOC session token、模型 API key 或任何真实用户 token。
+
+## 通用发布流程(以 voc-skill 为例)
+
+发布前验证:
+
+```powershell
+npm --prefix claude-code/claude-code-voc-intelligence run mcp:smoke
+npm --prefix claude-code/claude-code-voc-intelligence run smoke:package
+npm --prefix claude-code/claude-code-voc-intelligence run xhs:sample
+npm --prefix claude-code/claude-code-voc-intelligence run dy:sample
+npm run claude-voc:acceptance
+```
+
+构建、打包、发布:
+
+```powershell
+npm run claude-voc:build
+npm run claude-voc:npm-pack
+npm run claude-voc:npm-publish
+```
+
+发布后验证:
+
+```powershell
+npm view @vocmarket/voc-skill name version dist-tags.latest --registry=https://registry.npmjs.org/
+$test = Join-Path $env:TEMP ("vocmarket-online-smoke-" + [guid]::NewGuid())
+New-Item -ItemType Directory -Path $test | Out-Null
+Push-Location $test
+npm exec --yes --package @vocmarket/voc-skill@latest -- claude-voc workspace --smoke
+Pop-Location
+```
+
+> 提号包用自带脚本:`npm run acceptance` → `npm publish --access public`(见 `package.json` 的 `publish:dry` / `publish:npm`)。
+
+## 维护规则
+
+- **发版后必须更新两处**:① 本文「发布状态总览」表的当前版本号;② `变更记录/<包名>.md` 顶部追加一条(版本号 + 简要内容 + 验证情况)。
+- 升级功能时先改包内 `package.json` 版本,再同步 `package-lock.json`、`skill-package-manifest.json`、`.claude-plugin/plugin.json`,最后更新本目录文档。
+- 版本号写入 JSON 文件时必须用 **UTF-8 无 BOM**,避免中文串被破坏导致 `JSON.parse` 失败。
+- 每次发布前必须跑该包的 acceptance(覆盖 sample、workspace 安装、no-token 充值提示、余额/业务码保护、MCP tool 发现、npm pack dry-run)。
+- 新增平台能力优先作为**并列 skill + 并列 MCP tool**,不把完整业务闭环强塞进单一 skill。
+- 保持输入简单:用户说自然语言即可,不要求理解 MCP schema;第一轮报告只输出「初步判断 / 机会假设 / 待校准」,不写成最终结论。
+
+## 教学测试话术
+
+小红书 / 抖音趋势情报(先演示样例跑通,不真实采集):
+
+```text
+帮我做一份 {你的行业/品类} 的小红书趋势情报。
+先用演示样例跑通流程,不要真实采集。
+在聊天里给我第一轮样本观察和待确认问题。
+```
+
+```text
+帮我做一份 {你的行业/品类} 的抖音趋势情报。
+先用演示样例跑通流程,不要真实采集。
+在聊天里给我第一轮样本观察和待确认问题。
+```
+
+真实采集口径:
+
+```text
+请切到 live 模式,并先检查 token 和余额状态。
+```
+
+> 缺 token(`needs_token`)时**先引导自救**(读 `~/.claude/settings.json` 等来源的 `sk-` token),不直接甩充值链接;只有真正 `402 余额不足` 才返回充值/开通链接(`sk-` 计费链 → `studio/?balance=fmodeapi`,`r:` 会话 token 链 → `apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF`)。任何情况下都不允许把底层 403、权限或余额接口报错直接展示给用户。

+ 43 - 0
release/npm发布管理文档/变更记录/fmode-vision-ffmpeg-listen.md

@@ -0,0 +1,43 @@
+# `fmode-vision` / `fmode-ffmpeg` / `fmode-listen` 变更记录
+
+> 当前版本号见 [`../NPM技能包发布管理.md`](../NPM技能包发布管理.md) 的「发布状态总览」。本文按版本号倒序记录三个 fmode 无 scope 包的更新简要内容。
+> 三个包均为 Claude Code 独立技能包,已授权 fmode 组织 read-write,并写入 Parse Skill 表。
+
+## fmode-ffmpeg
+
+### 0.1.1(2026-06-27)
+
+- 已发布并验证 npm `latest=0.1.1`(9 文件,shasum `e85f0401…`)。本版给「下载校验 + 重试」加固,解决 Windows 上 `ffmpeg-static` 二进制损坏问题:
+  - **校验**:`which/exec/version` 不再只看文件是否存在,而是真跑 `-version` 确认能启动(命中 banner 才算数)。
+  - **重试下载**:检测到坏二进制 → 删除 + 清 `ffmpeg-static` 下载缓存 → 重跑 `install.js` 重下 → 再校验。可用 `FMODE_FFMPEG_NO_REPAIR=1` 关闭、`FMODE_FFMPEG_REPAIR_TIMEOUT_MS` 调超时(默认 180s)。
+  - **兜底**:修不好回退系统 ffmpeg / `FFMPEG_PATH`,打印可操作中文提示。
+  - 顺手修真 bug:`fs.rmSync({force:true})` 在 Windows 对文件静默不删 → 改用 `unlinkSync`(+ rename 兜底)。
+- 根因记录:该机器 **Windows Defender 实时保护**会在 `ffmpeg.exe` 落盘后弄坏/锁住它(「刚下好能跑、过会儿又跑不了」/「不是有效的 Win32 应用程序」)。最稳办法:设 `FFMPEG_PATH` 指向受信任的 ffmpeg(代码已把它作为最高优先级,设了就跳过下载)。SKILL.md/README 顶部已补「Windows 被杀软干扰 → 设 `FFMPEG_PATH`」指引。
+
+### 0.1.0(2026-06-25)
+
+- 已发布(无 scope 包,写入 Parse Skill 表 objectId=`Z0ywetSAvw`,源码放入 `claude-code/`)。封装本地 ffmpeg/ffprobe 的音视频处理技能,**无 token 逻辑**(仅封装本地二进制,不涉及计费)。安装:`npx --yes fmode-ffmpeg@latest workspace` / `install`。
+
+## fmode-vision
+
+### 0.1.1(2026-06-26)
+
+- 已发布并验证 `latest=0.1.1`。**修复 token 解析死循环**:runner 的 `resolveApiToken` 新增直接读 `~/.claude/settings.json`(含 `settings.local.json` / 项目级 `.claude/`)的 `env.ANTHROPIC_AUTH_TOKEN`。取值优先级:`FMODE_API_TOKEN` > `~/.fmode/config.json` > 项目 `.fmode/config.json` > `~/.claude/settings.json` 的 `env.ANTHROPIC_AUTH_TOKEN`;仅当 `sk-` 开头(排除真 Anthropic `sk-ant-`)且 base 指向 fmode 才采纳。与 `@vocmarket/voc-skill@0.3.23` 取 token 修复对齐;SKILL.md/README/manifest 鉴权说明同步「缺 token ≠ 用不了,勿点付费弹窗」。
+
+### 0.1.0(2026-06-25)
+
+- 已发布(无 scope 包,写入 Parse Skill 表 objectId=`u2jVvH9007`)。通过 Fmode API 视觉模型分析图片/视频。安装:`npx --yes fmode-vision@latest workspace` / `install`。
+
+## fmode-listen
+
+### 0.1.1(2026-06-26)
+
+- 已发布并验证 `latest=0.1.1`。同 fmode-vision 0.1.1 的 token 解析死循环修复(`resolveApiToken` 读 `~/.claude/settings.json` 的 `env.ANTHROPIC_AUTH_TOKEN`,5 来源、仅 `sk-` 且 base 指向 fmode)。
+
+### 0.1.0(2026-06-25)
+
+- 已发布(无 scope 包,写入 Parse Skill 表 objectId=`K4sWkGNEg3`,apig 指针 → `45SRdc8YnC`)。讯飞录音转写网关技能,走 Fmode 网关 `POST /api/listen/transcribe`,newapi 计费按音频时长扣费,讯飞凭据仅服务端。安装:`npx --yes fmode-listen@latest workspace` / `install`。
+
+## 相关联动(非本包发布,记录备查)
+
+- 2026-06-26:转写技能 `openclaw-skills/douyin/douyin-video-transcript/SKILL.md`(v0.2.3)顶部新增引导——需要 ASR 时优先检测/安装独立技能 `fmode-listen`(检测 `./.claude/skills/fmode-listen/` 或 `~/.claude/skills/fmode-listen/`,缺则 `npx fmode-listen@latest workspace`/`install`),旧 `iflytek-gateway`(apig) provider 保留作兜底。

+ 9 - 0
release/npm发布管理文档/变更记录/measurement-marker-check.md

@@ -0,0 +1,9 @@
+# `@gangvy/claude-code-measurement-marker-check` 变更记录
+
+> 当前版本号见 [`../NPM技能包发布管理.md`](../NPM技能包发布管理.md) 的「发布状态总览」。本文按版本号倒序记录每次更新的简要内容。
+> 本地目录:`claude-code-measurement-marker-check/`。装修量尺图缺标记检查技能。
+
+## 0.1.2
+
+- 已发布并验证 npm `latest=0.1.2`。
+- (历史明细此前未在发布管理文档中单独记录;后续发版请在此处按版本倒序补充简要内容 + 验证情况。)

+ 32 - 0
release/npm发布管理文档/变更记录/tihao.md

@@ -0,0 +1,32 @@
+# `@vocmarket/tihao` 变更记录
+
+> 当前版本号见 [`../NPM技能包发布管理.md`](../NPM技能包发布管理.md) 的「发布状态总览」。本文按版本号倒序记录每次更新的简要内容。
+> 本地目录:`E:\workspace\tihao-ai\claude-code-tihao-sourcing\`。legacy 包 `@vocmarket/tihao-sop` 仅作迁移兼容,新安装统一用 `@vocmarket/tihao`。
+
+## 1.0.17(2026-06-27)
+
+- 已发布并验证 npm `latest=1.0.17`(193 文件,shasum `071d3da7…`,670.5 kB)。本版做 **token 口径适配**,与 `@vocmarket/voc-skill` 那批修复对齐:
+  - `mcp/src/core/credentials.js` 关键修复:`readNewApiToken` 新增读 `~/.claude/settings.json` 的 `env.ANTHROPIC_AUTH_TOKEN`(+ `~/.fmode/config.json`),带 fmode base 守卫(`sk-` 开头、排除 `sk-ant-`、`ANTHROPIC_BASE_URL` 指向 fmode 才采纳)。修复前只读 `voc-credentials.json`,有 SK 的机器会被误判缺 token、甩进老付费框。
+  - `mcp/src/core/payment-links.js`:`buildMissingTokenMessage` 改成「缺 token 先自救」口径——先引导从 settings.json 取 SK 重试 → 回退 `r:` sessionToken → 仅真 402 才充值,newapi 余额走 `studio/?balance=fmodeapi`(apig-pay 仅作 `r:` 会话 token 余额补充)。
+  - `skills/tihao/SKILL.md`:sk- token 来源清单补上 `~/.claude/settings.json` + `~/.fmode/config.json`;「No token」状态加「先自救」说明。
+- 验证:`npm run acceptance`(smoke:package + mcp:smoke + 跨场景 + workspace 安装 + npm pack)通过;功能测试确认 settings.json 的 SK 被正确采纳、非 fmode base 被拒;`leak-mojibake-audit` 扫 189 文件 0 命中。
+
+## 1.0.16(2026-06-25)
+
+- 已发布并验证 `latest=1.0.16`(193 文件,含 `error-codes.md`)。本版完成:NewAPI 计费迁移、401/402/403 错误码区分、错误码文档、小红书素人接口 voc 模式接口清单(`channel=social`);评论/用户路由修正——`note_comments`/`sub_comments` 改走 `xiaohongshu/app_v2/get_note_comments`、`get_note_sub_comments`,`user_info` 改用 24 位 hex `note.user.userid`(非数字 red_id);工具入参 schema 新增 `newapiToken`。
+- 已完成线上安装验证:`npx --yes @vocmarket/tihao@latest workspace --smoke`(返回 `tihao smoke ok`)。
+
+## 1.0.10(2026-06-17)
+
+- 已发布并验证 `latest=1.0.10`。首版报告默认改为 live + resultFirstMode 高质量首版,sample 仅在用户明确要演示时使用,token 缺失时主动要 sessionToken 而不退回 sample。
+
+## 1.0.8(2026-06-15,统一为 `@vocmarket/tihao`)
+
+- 已发布并验证 `latest=1.0.8`。本版把对外包名、主 CLI、插件目录和 MCP server 统一改为 `tihao`。旧包 `@vocmarket/tihao-sop`、旧 CLI alias `tihao-sourcing`、旧插件目录 `tihao-sourcing` 仅作迁移兼容。
+- 已完成线上安装验证:`npx --yes @vocmarket/tihao@latest workspace --smoke` 与 `npm exec --yes --package @vocmarket/tihao@latest -- tihao install --smoke`。
+
+## legacy `@vocmarket/tihao-sop` 历史
+
+- **1.0.7(2026-06-15)**:已发布并验证 `latest=1.0.7`。区分项目级安装 `workspace --smoke` 与用户级全局 skill 安装 `install --smoke`;skill 改名后 CLI/插件目录仍为 `tihao-sourcing`,Claude Code skill 改为 `tihao`,安装器清理 legacy skill `tihao-creator-sourcing`。
+- **1.0.6(2026-06-15)**:已发布并验证 `latest=1.0.6`。
+- **0.1.15(2026-06-05)**:已发布并验证 `latest=0.1.15`。发布 `0.1.14` 时出现过 `PUT 200`、`dist-tag latest` 可见但 `npm view`/`npx` 短暂 404 的半可见状态,已用 `0.1.15` 重发并通过安装验证。

+ 45 - 0
release/npm发布管理文档/变更记录/voc-skill.md

@@ -0,0 +1,45 @@
+# `@vocmarket/voc-skill` 变更记录
+
+> 当前版本号见 [`../NPM技能包发布管理.md`](../NPM技能包发布管理.md) 的「发布状态总览」。本文按版本号倒序记录每次更新的简要内容。
+> 本地目录:`claude-code/claude-code-voc-intelligence/`。
+
+## 0.3.26(2026-06-27)
+
+- 已发布并验证 npm `latest=0.3.26`(113 文件,shasum `20c51e48…`)。本版做**口径索引去重**:把 `douyin-/xiaohongshu-trend-intelligence` 的 `SKILL.md`(含 `references/live-mode.md`)里整段重复的充值/计费口径,从各自 13/12 处收敛成「简版 3 行摘要 + 一句指回 `voc-api-catalog` 错误码速查」,权威留在索引;同步改 `bin/claude-voc.js` 的 workspace 内嵌生成器(实际出货路径)。
+- 索引补缺口:`error-codes.md` 补上 ecommerce 通道(`voc-e-commerce`)说明 + 两条充值链(`studio/?balance=fmodeapi` 与 `apig-pay`)作为单一权威。
+- 修坑:上一次用 PowerShell 改版本号把 `package.json`/`skill-package-manifest.json` 的中文串写坏(JSON parse 失败,导致 0.3.26 当时没发出去);改用已发布 0.3.25 tarball 的干净文件、只 bump 版本号、重写为无 BOM UTF-8。
+- 验证:`npm run claude-voc:acceptance` + `publish.ps1`(pack + install smoke + npx smoke)通过;全量 grep 出货 `.md`:行业硬编码零命中。
+
+## 0.3.25(2026-06-26)
+
+- 已发布并验证 `latest=0.3.25`(113 文件,shasum `75087f5f…`)。本版两件事 + 安装器加固:① **全技能 SKILL.md 充值/计费口径统一**;② **去定制化启动话术 → 通用化**。
+- 口径统一(以 `voc-api-catalog` 为标杆):缺 token 先自救(读 `~/.claude/settings.json` 的 `env.ANTHROPIC_AUTH_TOKEN`、`~/.fmode/config.json`、`~/.claude/voc-credentials.json`),**只有真 402 才给充值链接**且走 `studio/?balance=fmodeapi`;`apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF` 仅作 `r:` 会话 token 余额补充。删除旧文案「必须看到 apig-pay」「workshop/99 套餐页」「`sk-` 是错的、需要 `r:`」。
+- 关键出货路径:用户安装走 `bin/claude-voc.js` 的 workspace 内嵌 SKILL 生成器(不是源 `skills/*/SKILL.md`),本版把内嵌生成器口径 + 话术一并改齐并清掉两段死代码;`printNextSteps` 示例话术同步去定制化。
+- 去定制化:全包零行业硬编码(`--industry/--category "家居定制"` → `<你的行业>/<你的品类>`;启动话术「家装全屋定制」→ `{你的行业/品类}`)。
+- fmode-image-analysis:顶部引导改用 `fmode-vision`;模型保留 `doubao-seed-2-0-pro-260215` 但改为「默认/推荐、不强制单一模型、入参 `model` 可覆盖」。
+- 安装器 EPERM 加固:`removeDirResilient()`——删不掉旧插件目录时改名挪开 `…\voc-intelligence.held-<时间戳>` + 重试 + 可操作中文提示。
+
+## 0.3.24(2026-06-26)
+
+- 已发布并验证 `latest=0.3.24`(113 文件,shasum `f94d075c…`)。修复 0.3.23 漏改的**检测/采集假阴性**:`voc_*_token_check` 与两个 trend runner 此前只读采集 token 链(`readVocToken`),漏读 newapi 计费 SK 链(`readNewApiToken`),导致只在 settings.json / FmodeStudio config / `voc-credentials.fmodeApiKey` 配了 `sk-` 的机器采集能跑、token_check 却误报缺 token。
+- 修复点:① token_check + trend runner 取值统一改为 `readNewApiToken(input) || readVocToken(input)`;② 删除「`sk-` 即类型错误、强制要 `r:`」过时逻辑(同网关接受 `Bearer sk-`,已实测);③ 缺 token 改用 `buildMissingNewApiTokenMessage` 先引导自救。
+- 充值链路修正:`buildMissingNewApiTokenMessage` 原误用 apig-pay,改为 fmode-api 余额入口 `studio/?balance=fmodeapi`。两条链:`sk-` 计费链 → `studio/?balance=fmodeapi`;`r:` 会话 token 链 → `apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF`。
+- 同版纳入 JustOne 电商集成(清单 1066 条 = 社媒 1018 + 电商 48),新增 `mcp/src/providers/ecommerce-gateway.js`(root `server.fmode.cn/api/voc-e-commerce`);全包扫描 `justone/justoneapi/实在` 零命中,对外不暴露上游供应商名。
+
+## 0.3.23(2026-06-26)
+
+- 已发布并验证 `latest=0.3.23`。修复 newapi 取 token 死循环(A+B,C 保留):`readNewApiToken` 与 `image-analysis.js` 新增读 `~/.claude/settings.json`(含 `settings.local.json`/项目级)的 `env.ANTHROPIC_AUTH_TOKEN`(仅 `sk-`、排除 `sk-ant-`、base 指向 fmode)+ `~/.fmode/config.json`;SKILL.md/error-codes.md 标注缺 token/401 为可恢复并给自救步骤,只有真 402 才提充值;apig 的 `r:` sessionToken 回退保留。
+
+## 0.3.22(2026-06-25)
+
+- 已发布并验证 `latest=0.3.22`(112 文件)。与提号同步:`voc_api_call` 优先用 `sk-` token(回退 `r:` session token),`note_comments`/`sub_comments` 主入口改走 `xiaohongshu/app_v2`,`user_info` 说明改为 24 位 hex `userid`,工具入参 schema 新增 `newapiToken`,工具描述改为「优先 sk-、回退 r:」;`scripts/smoke-mcp.js` 更新为新契约(无效 token → `needs_valid_token`)。
+
+## 0.3.15(2026-06-05,改名为 `@vocmarket/voc-skill`)
+
+- 已发布并验证 `latest=0.3.15`。本次改名只改 npm 对外包名,CLI 仍为 `claude-voc`、插件目录仍为 `voc-intelligence`;旧包 `@gangvy/claude-code-voc-intelligence@*` 标记 deprecated。新增 `npm run claude-voc:acceptance`(串联包级 smoke、MCP smoke、npm pack dry-run、临时 workspace 安装、`.mcp.json` 绝对路径断言)。
+- 发布过程出现过一次「publish 成功但后置 `npm view` 短暂 404」假失败,等待后重查确认。
+
+## 0.3.0(2026-05-25,旧包 `@gangvy/claude-code-voc-intelligence`)
+
+- 已发布并验证 `latest=0.3.0`。新增抖音趋势情报:`douyin-trend-intelligence` skill、`voc_douyin_trend_run`、`voc_douyin_token_check`、`voc_douyin_preference_update`;工作区安装同时生成小红书+抖音两个 skill 入口。
+- 统一 token/充值体验:无 token 返回开通链接,余额不足/业务 403 返回充值链接,不暴露底层报错;新增 `business-status recharge guard` smoke(防 HTTP 200 但业务码 403 误判成功)。