@fxri/toolkit 1.11.6 → 1.11.8

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,33 @@
1
1
  # 方弦工具集
2
2
 
3
+ ## 1.11.8
4
+
5
+ > 2026-10-08 发布
6
+
7
+ ### 🔧 功能调整
8
+
9
+ - `toolkit conventions format` 归一表格时一并把按列宽补长的分隔行横线压为 `---`(保留对齐标记 `:---` / `---:` / `:---:`),`conventions status` 与 `tasks check` 同步检出此类偏离
10
+
11
+ ## 1.11.7
12
+
13
+ > 2026-10-08 发布
14
+
15
+ ### ✨ 新增功能
16
+
17
+ - 新增 `toolkit conventions format` 子命令,把格式化器为 GFM 表格填充出的空白层归一为紧凑形态——只动单元格间距与列对齐填充、不改语义,幂等、跳过 fenced code block,支持 `--dry-run` 预演与 `--format json`
18
+ - `toolkit init` 检测到宿主疑似使用 prettier 时幂等托管 `.prettierignore`,把任务区整目录排除,从源头避免表格被列对齐填充(本包源仓库、任务区外置或即仓库根、无 prettier 迹象三种情形跳过)
19
+ - `toolkit conventions status` 与 `toolkit tasks check` 检出表格列对齐填充并提示上述两种处置(软告警,不阻断)
20
+ - 新增「跨仓库改动各自归档」协作纪律——任务档为仓库自述、只记本仓的改动与动机,多仓会话各仓各自建档归档,不在一仓记录里承载另一仓的工作痕迹;`scope` 只标本仓内的端 / 面(落 `SPEC.md` §0 第 5 条、`docs/ai-rules.md` 稳定纪律与 `fxri-plan-to-task` / `fxri-session-recap` 技能)
21
+
22
+ ### ⚡ 优化改进
23
+
24
+ - 通用示例值去具体化——文档、技能、源码注释与测试中的示例端名统一为仓内端对 `web+server`,不再指涉具体接入方仓库
25
+ - 归档口径扩充——事实更正例外并入「口径变更引发的历史事实字段更正」,受影响的 `scope` 等事实字段可更正、唯一键 / 完成时间 / 状态 / 负责人仍冻结
26
+
27
+ ### 📝 文档更新
28
+
29
+ - 变更集 bump 判定口径改为按改动的能力量级(全新大功能 / 独立新能力 →minor,存量能力上的修补与增量 →patch),与条目前缀解耦(口径真源见 `skills/fxri-release-changelog/references/changelog-format.md`)
30
+
3
31
  ## 1.11.6
4
32
 
5
33
  > 2026-10-02 发布
@@ -443,7 +471,7 @@
443
471
 
444
472
  ### 🐛 问题修复
445
473
 
446
- - 范围字段多值口径落地——scope 多值以半角加号分隔(如 `toolkit+lxgl-web`),`--scope` 过滤改按任一段命中,`tasks stats` 按范围拆段统计
474
+ - 范围字段多值口径落地——scope 多值以半角加号分隔(如 `web+server`),`--scope` 过滤改按任一段命中,`tasks stats` 按范围拆段统计
447
475
  - `tasks check` 对范围含顿号/逗号/括号软告警并给修复指引
448
476
  - `tasks import` 对范围列含顿号/逗号/括号提示按单值写入(不自动转换)
449
477
  - `tasks normalize` 检出历史归档范围污染,顿号/逗号分隔可 `--fix` 自动归一为半角加号,括号注释仅提示人工确认
package/README.md CHANGED
@@ -39,7 +39,7 @@ pnpm exec toolkit tasks
39
39
  | --- | --- | --- |
40
40
  | 任务管理(tasks) | 方案落盘、总览过滤、校验归档、导入导出 CSV / XLSX / JSON | [CLI 参考](./docs/cli.md) · [任务文件规范](./docs/guide.md#任务文件规范) |
41
41
  | 多语言 CHANGELOG(changelog) | 封装 changesets 发版、分组标题本地化 | [CLI 参考](./docs/cli.md#changelog) |
42
- | 协作规范载体(conventions) | 把任务里提炼的规范收进 `.tasks/conventions/`,成为可检索、可校验的项目规范源;支持结构升级与只读体检 | [CLI 参考](./docs/cli.md) · [完整攻略](./docs/guide.md#conventions-规范沉淀地) |
42
+ | 协作规范载体(conventions) | 把任务里提炼的规范收进 `.tasks/conventions/`,成为可检索、可校验的项目规范源;支持结构升级、表格形态归一与只读体检 | [CLI 参考](./docs/cli.md) · [完整攻略](./docs/guide.md#conventions-规范沉淀地) |
43
43
  | Node API | 把上述能力嵌进脚本或平台 | [API 参考](./docs/api.md) |
44
44
  | 隐私脱敏 | 落盘前自动掩码邮箱、手机号、密钥等 | [配置参考](./docs/config.md) |
45
45
  | AI 技能包(skills) | 不装本工具也能让 AI 按同一套规范干活;装了可一键分发技能(`--scope project` 随仓库入库、队友 clone 即用) | [完整攻略](./docs/guide.md#ai-技能包-skills) · [FAQ](./docs/faq.md#工具和-skills-都得装吗) |
package/SPEC.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # 任务文件规范(SPEC)
2
2
 
3
- > 规范更新时间 2026-10-02 02:49。本规范内容变更时以变更时刻更新此值,实现方与规范快照据此对照是否失同步。
3
+ > 规范更新时间 2026-10-08 00:15。本规范内容变更时以变更时刻更新此值,实现方与规范快照据此对照是否失同步。
4
4
 
5
5
  > 本规范**全语言支持**,面向**多人 + AI 跨项目协作**,定义任务文件的目录结构、文件格式与归档规则。任何编程语言均可按本规范实现读写;@fxri/toolkit 的 `tasks` 域仅为参考实现。
6
6
  >
@@ -10,10 +10,11 @@
10
10
 
11
11
  任务区是**多写者共享**的:同一 `.tasks/` 可能被多人或多个 AI 参与。为避免互相覆盖,归档、归一化修复等工具内部写操作以排他锁(`.archive.lock`)防并发覆盖;人 / AI 的直接编辑遵循「先查后写」约定。约定:
12
12
 
13
- 1. **先查后写**:新建、更新或归档任务前,先 `toolkit tasks` 查看 active 总览,并核对 archive 是否已有同主题任务;active 已有同主题任务则更新原文件,禁止重复建档;已分叉成不同范围时问用户(拆新任务 or 合并更新)。archive 已有同主题任务(已归档完成)时按**改动判别**:本次不产生仓库文件改动(重复提议 / 重复执行)则不重复建档,仅提示「同主题任务已归档于 {日期}」;本次产生仓库文件改动(延续 / 扩展 / 重新实现)则重新建档,并在正文首行标注来源链 `延续 {原归档任务名}(见 archive/{YYYYMM}/{YYYYMMDD}.md)`;仅修正旧记录的时间或内容走历史修正(fxri-session-recap 模式三),不建档。**仓库文件改动口径**:需写入版本控制的工作区文件的增 / 改 / 删(源码、配置、文档、技能、任务区自身均计入),纯读取、纯执行、纯汇报不计入;拿不准时列出差异问用户,不猜。**归档块不可变**:已归档块不追加新的工作内容,延续需求一律走新任务;唯一例外是**事实更正**——后续核实推翻原块结论时,在其正文末尾追加「修订记录」(保留原结论、不动元数据行、附更正时刻与依据)。
13
+ 1. **先查后写**:新建、更新或归档任务前,先 `toolkit tasks` 查看 active 总览,并核对 archive 是否已有同主题任务;active 已有同主题任务则更新原文件,禁止重复建档;已分叉成不同范围时问用户(拆新任务 or 合并更新)。archive 已有同主题任务(已归档完成)时按**改动判别**:本次不产生仓库文件改动(重复提议 / 重复执行)则不重复建档,仅提示「同主题任务已归档于 {日期}」;本次产生仓库文件改动(延续 / 扩展 / 重新实现)则重新建档,并在正文首行标注来源链 `延续 {原归档任务名}(见 archive/{YYYYMM}/{YYYYMMDD}.md)`;仅修正旧记录的时间或内容走历史修正(fxri-session-recap 模式三),不建档。**仓库文件改动口径**:需写入版本控制的工作区文件的增 / 改 / 删(源码、配置、文档、技能、任务区自身均计入),纯读取、纯执行、纯汇报不计入;拿不准时列出差异问用户,不猜。**归档块不可变**:已归档块不追加新的工作内容,延续需求一律走新任务;唯一例外是**事实更正**——后续核实推翻原块结论、或协作口径变更导致历史事实字段需更正时,在其正文末尾追加「修订记录」(保留原结论、附更正时刻与依据);口径变更类更正可改受影响的**事实字段**(如 `scope`),但唯一键 / 完成时间 / 状态 / 负责人仍冻结。
14
14
  2. **任务唯一键**:`{YYYYMMDD}-{用户名}-{任务简述}` 唯一标识一个任务;多人对同一需求不得各自建档,应共用同一文件。
15
15
  3. **收尾边界到沉淀**:强制约束到「归档 + 规范沉淀」为止——终结态任务归档后做任务级规范沉淀(写入 conventions 载体),归档 + 沉淀即流程终点;提交、发版、推送不是必经步骤,是否执行取决于用户的全局 / 个人 / 项目规则。**动作不算,改动才算**:任务 = 已确认的方案 + 它落地的仓库文件改动;收尾动作(提交、发版、推送、部署)本身及其固有产物(版本号、更新日志、标签)不构成任务、不单独建档,但当这些动作过程中出现需改仓库文件才能解决的缺陷(如打包配置错误、发布渠道错误)时,该修复按普通任务建档。若提交代码,先归档与沉淀、后提交,任务记录与代码变更落在同一 git 提交。
16
16
  4. **可执行项必须落地为任务**:方案正文里的「待办 / 待实施 / 待核对」等子项,应拆分为独立 active 任务,不留游离待办;`toolkit tasks check` 会扫描此类未闭合标记。
17
+ 5. **跨仓库改动各自归档**:任务档是**仓库自述**,只记本仓的改动与动机;跨仓库是**会话属性而非仓库属性**,同一会话涉及多仓时各仓各自建档归档,不在一仓记录里承载另一仓的工作痕迹。判据取**视角**(描述的是不是本仓的改动与动机),非词表——依赖包名 / 被调接口名等属本仓事实者照写。故 `scope` 只标本仓内的端 / 面(见第 2 节)。通用裁剪版见技能包 `task-spec.md`。
17
18
 
18
19
  ## 1. 目录结构
19
20
 
@@ -70,7 +71,7 @@ scope: app
70
71
  | updated | string | 更新日 `YYYYMMDD` |
71
72
  | completed | string | 完成时间 `YYYY-MM-DD HH:mm`,`status` 为 `已完成`/`已放弃` 时必填;按四级时间源取证:当场打点(任务完成时取真实时间,首选)/ 聊天记录准确时间戳 / 任务改动 git 提交时间 / 系统当前时间兜底(须标注「收尾补记」);纯日期写法(`YYYY-MM-DD`)会被补齐 `00:00`,仅日期未补全完整时间会软告警 |
72
73
  | depends_on | array | 依赖任务文件名,引用可带 `.md` 扩展名(校验时自动归一为不含扩展名的 basename) |
73
- | scope | string | 影响范围;一任务多归属时以半角加号分隔(如 `toolkit+lxgl-web`),标签内不使用加号,顿号/逗号列表写法会被 check 软告警、`normalize --fix` 自动归一 |
74
+ | scope | string | 影响范围;只标本仓内的端 / 面(跨仓库改造时不含另一仓),一任务多归属时以半角加号分隔(如 `web+server`),标签内不使用加号,顿号/逗号列表写法会被 check 软告警、`normalize --fix` 自动归一 |
74
75
 
75
76
  ## 3. archive 归档文件
76
77