@fxri/toolkit 1.14.7 → 1.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,36 @@
1
1
  # 方弦工具集
2
2
 
3
+ ## 1.15.0
4
+
5
+ > 2026-11-04 发布
6
+
7
+ ### ✨ 新增功能
8
+
9
+ - `fxri-plan-review` 技能(core),复核已落档任务拆分,输出新增疏漏、建议与修订计划表
10
+ - 复核结果按 `无需确认` / `需要确认` / `仅作提示` 标记默认处置,支持语义化接受后自动落档,未标记项不写入
11
+ - `references/review-checklist.md` 与 `references/trigger-examples.md`,提供清单、反例与触发回归样例
12
+ - 技能版本提示支持内置技能与第三方来源分别配置,内置默认 `inherit`,第三方支持 `channels.externalSkills` 与 `sources.<name>` 逐源覆盖
13
+ - `skills sources` 展示来源版本与生效提示频率;`skills sources notify <name> <频率>` 支持 `--scope global|project` 与 `--format json`
14
+ - `skills sources refresh [name]` 刷新来源缓存与版本,支持 `--dry-run` 与 `--format json`,只更新元数据、不自动安装
15
+ - `skills status` 的 `versionStatus` 增加 `channels`、`sources` 与两面 `skillsOutdated`
16
+ - 统一版本提示器,命令成功时按 `updateCheck.notify`(默认 `always`)在结尾输出一句话,TTY 走 stderr、非 TTY 走 stdout
17
+ - `updateCheck` 支持 `notify` / `channels.cli.notify` / `registry` 配置,registry 按配置 > 环境变量 > 项目 / 家目录 `.npmrc` > 默认解析,支持 `NPM_TOKEN` 与 `_authToken`
18
+ - `skills status` 文本与 `--format json` 增加版本检查块 / `versionStatus`,展示 CLI 当前版本、最新版本、registry 来源与提示频率
19
+
20
+ ### 🐛 问题修复
21
+
22
+ - 升级提示仅在命令成功时输出,帮助、业务失败、解析失败、`skills path`、`skills status`、JSON 与 changelog 透传不再产生额外文本
23
+ - 明确任务粒度只约束任务与提交单元,不约束发版范围;一次发版可包含多个任务与多个变更集
24
+ - 同步 `SPEC.md`、`task-spec.md`、`docs/ai-rules.md` 与 `fxri-plan-to-task` 四处口径,并新增条款一致性测试
25
+
26
+ ## 1.14.8
27
+
28
+ > 2026-11-03 发布
29
+
30
+ ### ⚡ 优化改进
31
+
32
+ - 统一 package.json 元数据(author、repository、homepage、keywords 与字段顺序)
33
+
3
34
  ## 1.14.7
4
35
 
5
36
  > 2026-11-03 发布
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright © 2026 唐启云
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright © 2026 唐启云
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/NOTICE CHANGED
@@ -1,9 +1,9 @@
1
- @fxri/toolkit
2
- Copyright © 2026 唐启云. All rights reserved.
3
-
4
- 出品方:方弦研究所(唐启云个人项目品牌,非独立法人实体)
5
-
6
- 商标声明:
7
- "方弦®"为第42类注册商标(注册号89648411),核定服务项目:计算机出租、计算机软件设计、为他人研究和开发新产品、计算机软件维护、把有形的数据或文件转换成电子媒体、为他人创建和维护网站、网络服务器出租、提供互联网搜索引擎、托管计算机站(网站)、云计算。
8
- 本开源许可(MIT License)不授予商标使用权。
9
- 详见 TRADEMARK.md 了解完整商标信息。
1
+ @fxri/toolkit
2
+ Copyright © 2026 唐启云. All rights reserved.
3
+
4
+ 出品方:方弦研究所(唐启云个人项目品牌,非独立法人实体)
5
+
6
+ 商标声明:
7
+ "方弦®"为第42类注册商标(注册号89648411),核定服务项目:计算机出租、计算机软件设计、为他人研究和开发新产品、计算机软件维护、把有形的数据或文件转换成电子媒体、为他人创建和维护网站、网络服务器出租、提供互联网搜索引擎、托管计算机站(网站)、云计算。
8
+ 本开源许可(MIT License)不授予商标使用权。
9
+ 详见 TRADEMARK.md 了解完整商标信息。
package/README.md CHANGED
@@ -6,8 +6,9 @@
6
6
 
7
7
  [![CI](https://github.com/fxri-net/toolkit/actions/workflows/ci.yml/badge.svg)](https://github.com/fxri-net/toolkit/actions/workflows/ci.yml)
8
8
  [![npm version](https://img.shields.io/npm/v/@fxri/toolkit)](https://www.npmjs.com/package/@fxri/toolkit)
9
- [![Node](https://img.shields.io/badge/node-%E2%89%A520-brightgreen)](./docs/getting-started.md#安装)
9
+ [![Node](https://img.shields.io/badge/node-%E2%89%A520.19-brightgreen)](./docs/getting-started.md#安装)
10
10
  [![License: MIT](https://img.shields.io/badge/license-MIT-blue)](./LICENSE)
11
+ [![文档站](https://img.shields.io/badge/docs-fxri--net.github.io%2Ftoolkit-blueviolet)](https://fxri-net.github.io/toolkit/)
11
12
 
12
13
  > 国内网络建议优先 [Gitee 镜像](https://gitee.com/fxri/toolkit)(与 GitHub 同源同步,仓库/文档/issues/skills 全渠道可用);问题反馈走 [GitHub Issues](https://github.com/fxri-net/toolkit/issues) 或 [Gitee Issues](https://gitee.com/fxri/toolkit/issues)。
13
14
 
@@ -70,11 +71,12 @@ toolkit skills install --scope project # 项目面分发:真源
70
71
  pnpm dlx skills add fxri-net/toolkit # 也可用上游安装器(npm 用户:npx skills add fxri-net/toolkit)
71
72
  ```
72
73
 
73
- 技能随包分发(真源为包内 `skills/`),与 CLI 同一发布批次(技能内容版本独立编号);`toolkit skills install` 默认软链,链接创建失败自动降级副本,`toolkit skills status` 查现场,`toolkit skills remove` 卸载。安装分两步交互:先按 `metadata.tier` 选技能(`fxri-plan-to-task`、`fxri-session-recap` 为 `core`,`skills` 模式必装、`package` 模式可选;`fxri-release-changelog`、`fxri-text-encoding` 为 `optional`),再选目标(`canonical` 主目标 + 已检测 agent;项目面为候选薄壳目录);`--skills` / `--all` / `--no-optional` / `--agent` / `--all-agents` / `--yes` 可跳过交互,首次按模式默认(`skills` 装 `core`、`package` 零装)与全部可用目标,`--no-save-agents` 只影响本次;`--mode package` 切纯包管理器模式(core 也可不装、允许零选),`--no-skills` 仅本次零装。选择集分别写入 `~/.toolkitrc.json` 的 `skillsInstall` 与项目层 `.toolkitrc.json` 的 `projectSkills`。外部技能源用 `--from <path|url>` 临时纳入(副本、只写本次),加 `--save [name]` 登记为永久来源(默认软链);`toolkit skills sources` 查看 / 注销来源。`--scope project` 换项目面——真源落 `<仓库根>/.agents/skills/`、其余候选目录落入口薄壳,随 git 入库后队友 clone 靠 `toolkit init` 写入的 `prepare` 钩子自动补齐。
74
+ 技能随包分发(真源为包内 `skills/`),与 CLI 同一发布批次(技能内容版本独立编号);`toolkit skills install` 默认软链,链接创建失败自动降级副本,`toolkit skills status` 查现场,`toolkit skills remove` 卸载。安装分两步交互:先按 `metadata.tier` 选技能(`fxri-plan-to-task`、`fxri-session-recap`、`fxri-plan-review` 为 `core`,`skills` 模式必装、`package` 模式可选;`fxri-release-changelog`、`fxri-text-encoding` 为 `optional`),再选目标(`canonical` 主目标 + 已检测 agent;项目面为候选薄壳目录);`--skills` / `--all` / `--no-optional` / `--agent` / `--all-agents` / `--yes` 可跳过交互,首次按模式默认(`skills` 装 `core`、`package` 零装)与全部可用目标,`--no-save-agents` 只影响本次;`--mode package` 切纯包管理器模式(core 也可不装、允许零选),`--no-skills` 仅本次零装。选择集分别写入 `~/.toolkitrc.json` 的 `skillsInstall` 与项目层 `.toolkitrc.json` 的 `projectSkills`。外部技能源用 `--from <path|url>` 临时纳入(副本、只写本次),加 `--save [name]` 登记为永久来源(默认软链);`toolkit skills sources` 查看 / 注销来源。`--scope project` 换项目面——真源落 `<仓库根>/.agents/skills/`、其余候选目录落入口薄壳,随 git 入库后队友 clone 靠 `toolkit init` 写入的 `prepare` 钩子自动补齐。
74
75
 
75
76
  - [fxri-plan-to-task](./skills/fxri-plan-to-task/SKILL.md):方案确认后落盘为任务文件(任务分解与纯展示计划表、逐仓逐任务建档、check、归档 + 任务级规范沉淀为强制终点)
76
77
  - [fxri-release-changelog](./skills/fxri-release-changelog/SKILL.md):发版时创建变更集、格式化多语言 CHANGELOG
77
78
  - [fxri-session-recap](./skills/fxri-session-recap/SKILL.md):会话收尾全量沉淀、新会话三层恢复、历史任务时间批量修正(1.7.0 新增技能)
79
+ - [fxri-plan-review](./skills/fxri-plan-review/SKILL.md):复核已落档任务拆分,输出新增疏漏、建议与修订计划表,按默认处置标记落档
78
80
  - [fxri-text-encoding](./skills/fxri-text-encoding/SKILL.md):文本字节形态基线(文件、管道、命令行、API 请求体,含临时脚本与一次性命令),非 ASCII 文本丢失 / 乱码与首行报错的定位与修复
79
81
 
80
82
  skills 与工具的关系、只在公司项目激活等说明见 [FAQ](./docs/faq.md) 与 [完整攻略](./docs/guide.md#ai-技能包-skills)。
package/SPEC.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # 任务文件规范
2
2
 
3
- > 规范更新时间 2026-11-03 02:30。本规范内容变更时以变更时刻更新此值,实现方与规范快照据此对照是否失同步。
3
+ > 规范更新时间 2026-11-04 13:02。本规范内容变更时以变更时刻更新此值,实现方与规范快照据此对照是否失同步。
4
4
 
5
5
  > 本规范**全语言支持**,面向**多人 + AI 跨项目协作**,定义任务文件的目录结构、文件格式与归档规则。任何编程语言均可按本规范实现读写;@fxri/toolkit 的 `tasks` 域仅为参考实现。
6
6
  >
@@ -17,7 +17,7 @@
17
17
  3. **收尾边界到沉淀**:强制约束到「归档 + 规范沉淀」为止——终结态任务归档后做任务级规范沉淀(写入 conventions 载体),归档 + 沉淀即流程终点;提交、发版、推送不是必经步骤,是否执行取决于用户的全局 / 个人 / 项目规则。**动作不算,改动才算**:任务 = 已确认的方案 + 它落地的仓库文件改动;收尾动作(提交、发版、推送、部署)本身及其固有产物(版本号、更新日志、标签)不构成任务、不单独建档,但当这些动作过程中出现需改仓库文件才能解决的缺陷(如打包配置错误、发布渠道错误)时,该修复按普通任务建档。若提交代码,先归档与沉淀、后提交,任务记录与代码变更落在同一 git 提交。**逐任务交付**:一个任务至少一次提交、允许多次;不得把多个任务攒成一个提交,也不得为凑一次提交塞入无关改动。
18
18
  4. **可执行项必须落地为任务**:方案正文里的「待办 / 待实施 / 待核对」等子项,应拆分为独立 active 任务,不留游离待办;`toolkit tasks check` 会扫描此类未闭合标记。
19
19
  5. **跨仓库改动各自归档**:任务档是**仓库自述**,只记本仓的改动与动机;跨仓库是**会话属性而非仓库属性**,同一会话涉及多仓时各仓各自建档归档,不在一仓记录里承载另一仓的工作痕迹。判据取**视角**(描述的是不是本仓的改动与动机),非词表——依赖包名 / 被调接口名等属本仓事实者照写。故 `scope` 只标本仓内的端 / 面(见第 2 节)。通用裁剪版见技能包 `task-spec.md`。
20
- 6. **开工门槛与任务分解**:方案确认后、动手前先做任务分解——一个任务 = 可独立验收、可独立回滚、单独提交后仓库自洽的最小交付单元,且不跨仓库。涉及两个及以上任务时,先给出一张**纯展示的开发计划表**(跨端、跨仓同表,标明所属仓库与执行先后);表只作展示与排序,不落档、不写入任务正文。随后**逐仓逐任务建档**:每个将产生仓库文件改动的仓库按任务清单各自独立建档,只读参与的仓库不建档,全部建档后再改第一处文件。按表顺序推进,前置未完成或阻塞未解除时下游不开工;计划调整先更新展示表再继续。任务粒度判据、表结构与反例见技能包 `task-spec.md`;状态以任务 frontmatter 为唯一真源。
20
+ 6. **开工门槛与任务分解**:方案确认后、动手前先做任务分解——一个任务 = 可独立验收、可独立回滚、单独提交后仓库自洽的最小交付单元,且不跨仓库。涉及两个及以上任务时,先给出一张**纯展示的开发计划表**(跨端、跨仓同表,标明所属仓库与执行先后);表只作展示与排序,不落档、不写入任务正文。随后**逐仓逐任务建档**:每个将产生仓库文件改动的仓库按任务清单各自独立建档,只读参与的仓库不建档,全部建档后再改第一处文件。按表顺序推进,前置未完成或阻塞未解除时下游不开工;计划调整先更新展示表再继续。任务粒度判据、表结构与反例见技能包 `task-spec.md`;任务粒度只约束任务与提交单元,不约束发版范围——一次发版可包含多个任务与多个变更集,但每个任务仍按逐任务提交;状态以任务 frontmatter 为唯一真源。
21
21
 
22
22
  ## 1. 目录结构
23
23
 
package/TRADEMARK.md CHANGED
@@ -1,41 +1,41 @@
1
- # 商标声明
2
-
3
- ## 基本信息
4
-
5
- | 项目 | 内容 |
6
- |---|---|
7
- | 商标名称 | 方弦® |
8
- | 商标类型 | 文字商标 |
9
- | 商标说明 | 商标由文字"方弦"组成 |
10
- | 商标类别 | 第42类(共10项) |
11
- | 注册号 | 89648411 |
12
- | 申请人 | 唐启云 |
13
- | 递交商标局 | 2026-01-12 |
14
- | 版本 | 基础版 |
15
-
16
- ## 第42类服务项目
17
-
18
- 计算机出租;计算机软件设计;为他人研究和开发新产品;计算机软件维护;把有形的数据或文件转换成电子媒体;为他人创建和维护网站;网络服务器出租;提供互联网搜索引擎;托管计算机站(网站);云计算。
19
-
20
- ## 权利状态
21
-
22
- "方弦®"商标(注册号89648411)已获中国国家知识产权局商标局核准注册,核定使用于第42类上述服务项目,现为注册商标。
23
-
24
- ## 授权范围
25
-
26
- 本仓库的开源许可证(MIT License)仅授予代码的使用、修改和分发权利,**不构成对任何商标、服务标记或品牌名称的授权许可**。
27
-
28
- 任何派生作品、修改版本、商业产品均不得使用"方弦"名称、Logo 或相关标识,除非获得书面授权。
29
-
30
- ## 使用规范
31
-
32
- - 在开源社区讨论、文档引用中提及本项目时,可使用"方弦®"指代本项目名称
33
- - 未经书面授权,不得在任何商业产品、服务或宣传材料中使用"方弦"标识
34
-
35
- ## 获取授权
36
-
37
- 如需将"方弦"商标用于商业用途,请联系:唐启云 <tqy@fxri.net>
38
-
39
- ## 侵权处理
40
-
41
- 如发现未经授权使用"方弦®"商标的行为,请通过上述联系方式举报。
1
+ # 商标声明
2
+
3
+ ## 基本信息
4
+
5
+ | 项目 | 内容 |
6
+ |---|---|
7
+ | 商标名称 | 方弦® |
8
+ | 商标类型 | 文字商标 |
9
+ | 商标说明 | 商标由文字"方弦"组成 |
10
+ | 商标类别 | 第42类(共10项) |
11
+ | 注册号 | 89648411 |
12
+ | 申请人 | 唐启云 |
13
+ | 递交商标局 | 2026-01-12 |
14
+ | 版本 | 基础版 |
15
+
16
+ ## 第42类服务项目
17
+
18
+ 计算机出租;计算机软件设计;为他人研究和开发新产品;计算机软件维护;把有形的数据或文件转换成电子媒体;为他人创建和维护网站;网络服务器出租;提供互联网搜索引擎;托管计算机站(网站);云计算。
19
+
20
+ ## 权利状态
21
+
22
+ "方弦®"商标(注册号89648411)已获中国国家知识产权局商标局核准注册,核定使用于第42类上述服务项目,现为注册商标。
23
+
24
+ ## 授权范围
25
+
26
+ 本仓库的开源许可证(MIT License)仅授予代码的使用、修改和分发权利,**不构成对任何商标、服务标记或品牌名称的授权许可**。
27
+
28
+ 任何派生作品、修改版本、商业产品均不得使用"方弦"名称、Logo 或相关标识,除非获得书面授权。
29
+
30
+ ## 使用规范
31
+
32
+ - 在开源社区讨论、文档引用中提及本项目时,可使用"方弦®"指代本项目名称
33
+ - 未经书面授权,不得在任何商业产品、服务或宣传材料中使用"方弦"标识
34
+
35
+ ## 获取授权
36
+
37
+ 如需将"方弦"商标用于商业用途,请联系:唐启云 <tqy@fxri.net>
38
+
39
+ ## 侵权处理
40
+
41
+ 如发现未经授权使用"方弦®"商标的行为,请通过上述联系方式举报。