@fxri/toolkit 1.10.2 → 1.10.4
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 +27 -0
- package/README.md +1 -1
- package/TRADEMARK.md +41 -41
- package/dist/cli.cjs +37 -37
- package/dist/cli.js +37 -37
- package/package.json +2 -2
- package/skills/README.md +2 -2
- package/skills/fxri-plan-to-task/assets/active-task-template.md +13 -13
- package/skills/fxri-plan-to-task/references/conventions-spec.md +147 -147
- package/skills/fxri-plan-to-task/references/task-spec.md +2 -2
- package/skills/fxri-release-changelog/SKILL.md +5 -5
- package/skills/fxri-release-changelog/references/changelog-format.md +2 -2
- package/skills/fxri-session-recap/SKILL.md +2 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fxri/toolkit",
|
|
3
|
-
"version": "1.10.
|
|
3
|
+
"version": "1.10.4",
|
|
4
4
|
"description": "专为多人 + AI 跨项目协作打造:任务管理 + 多语言 CHANGELOG。",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"vitest": "^4.1.11"
|
|
67
67
|
},
|
|
68
68
|
"engines": {
|
|
69
|
-
"node": ">=20"
|
|
69
|
+
"node": ">=20.19.0"
|
|
70
70
|
},
|
|
71
71
|
"publishConfig": {
|
|
72
72
|
"registry": "https://registry.npmjs.org/",
|
package/skills/README.md
CHANGED
|
@@ -28,9 +28,9 @@ toolkit skills status # 查现场状态(悬空 / 指向错误 / 副本
|
|
|
28
28
|
toolkit skills remove # 卸载本包装的产物(只清自己装的,不碰用户自装技能)
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
- 真源唯一:技能取自已装 CLI 包内的 `skills
|
|
31
|
+
- 真源唯一:技能取自已装 CLI 包内的 `skills/`;软链锚在 pnpm 稳定入口,升级 CLI 后自动指向新版(副本形式需重跑 `toolkit skills install`)
|
|
32
32
|
- 目标三层:主目标 `~/.agents/skills/`(多家 agent 共读)→ 内置表内**已安装**的各 agent 全局技能目录 → `--dir <path>` 兜底(可多次指定,给表外 agent 用)
|
|
33
|
-
-
|
|
33
|
+
- 默认软链(锚在 pnpm 稳定入口,升级不失效);链接创建失败自动降级为副本并打印 ⚠️(如无权限建链);`--copy` 强制副本、`--dry-run` 预演、`--force` 覆盖同名非本包产物
|
|
34
34
|
- 产物记录在状态文件 `~/.agents/.toolkit-skills.json`;卸载 CLI 前先跑 `toolkit skills remove`,避免留下悬空链接
|
|
35
35
|
|
|
36
36
|
### 方式二:上游安装器 `npx skills`(需锁定文件或覆盖表外 agent 时)
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
---
|
|
2
|
-
owner: <负责人 git 用户名>
|
|
3
|
-
status: 待办
|
|
4
|
-
created: <创建日 YYYYMMDD>
|
|
5
|
-
updated: <创建日 YYYYMMDD,随每次修改同步>
|
|
6
|
-
completed: ''
|
|
7
|
-
depends_on: []
|
|
8
|
-
scope: <影响范围>
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# 任务标题
|
|
12
|
-
|
|
13
|
-
(方案正文:背景、实施方案、影响范围、验证方式)
|
|
1
|
+
---
|
|
2
|
+
owner: <负责人 git 用户名>
|
|
3
|
+
status: 待办
|
|
4
|
+
created: <创建日 YYYYMMDD>
|
|
5
|
+
updated: <创建日 YYYYMMDD,随每次修改同步>
|
|
6
|
+
completed: ''
|
|
7
|
+
depends_on: []
|
|
8
|
+
scope: <影响范围>
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# 任务标题
|
|
12
|
+
|
|
13
|
+
(方案正文:背景、实施方案、影响范围、验证方式)
|
|
@@ -1,147 +1,147 @@
|
|
|
1
|
-
# 规范载体规范(conventions)
|
|
2
|
-
|
|
3
|
-
> 面向多人 + AI 协作,任何语言项目可直接使用,仅依赖文件读写能力。本文件为 SKILL.md 的配套规范,定义 `.tasks/conventions/` 的目录结构、归属分类、读写判定与存量迁移;任务文件本身的规范见 `task-spec.md`。
|
|
4
|
-
|
|
5
|
-
## 1. 载体结构
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
.tasks/
|
|
9
|
-
├── active/ # 进行中的任务
|
|
10
|
-
├── archive/ # 已终结任务归档
|
|
11
|
-
└── conventions/ # 项目协作规范载体
|
|
12
|
-
├── index.md # 唯一入口与唯一权威(常驻读)
|
|
13
|
-
├── common.md # 全端通用条文(按需创建)
|
|
14
|
-
└── <端名>.md # 各端专有条文(按需创建)
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
- `index.md` 是唯一入口:端清单在此声明、每条规范在此留一行指针,读取时只读它即可掌握规范全貌
|
|
18
|
-
- 分册**按需创建**,判据是「该归属下有无需独立承载的条文」,不设条数阈值——溯源索引式项目可能始终只有 `index.md`
|
|
19
|
-
- 目录与任务目录同在 `.tasks/` 根层,纯 Markdown 随 git 走;默认 `.tasks` 目录名可随任务区自定而变,内部结构不变
|
|
20
|
-
- 非任务文件:`toolkit tasks` 各子命令不读其内容,`check` 不因内容告警;仅在**载体形态异常**时给软告警(旧单文件残留、缺 `index.md`)
|
|
21
|
-
|
|
22
|
-
## 2. index.md 结构
|
|
23
|
-
|
|
24
|
-
四节固定顺序:端清单 → 索引 → 演进记录 → 用法说明。
|
|
25
|
-
|
|
26
|
-
### 2.1 端清单(唯一权威)
|
|
27
|
-
|
|
28
|
-
```markdown
|
|
29
|
-
## 一、端清单
|
|
30
|
-
|
|
31
|
-
> 端名与任务 frontmatter 的 `scope` 取值共用同一套词表;保留字 `index` / `common` 不得作端名。
|
|
32
|
-
|
|
33
|
-
| 端名 | 说明 |
|
|
34
|
-
| --- | --- |
|
|
35
|
-
| web | 前端主站 |
|
|
36
|
-
| server | 后端服务 |
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
单端项目写一行或留空表并注明「本项目单端,规范全归 common」。
|
|
40
|
-
|
|
41
|
-
### 2.2 索引表
|
|
42
|
-
|
|
43
|
-
```markdown
|
|
44
|
-
| # | 规则 | 当前语义 | 归属 | 状态 | 确立来源任务 | 单一事实源 |
|
|
45
|
-
| --- | --- | --- | --- | --- | --- | --- |
|
|
46
|
-
| 1 | 四级时间源 | 时间取证优先级:当场打点 > 聊天记录时间戳 > git 提交时间 > 系统时间兜底 | common | 生效 | 20260906-会话收尾沉淀能力升级 | task-spec.md(口径随版本走) |
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
- **归属**:取值必须 ∈ {`common`} ∪ 端清单,否则为悬空指针(需修正)
|
|
50
|
-
- **状态**:`生效` / `已废弃`;废弃不删行,改状态即可(与「归档任务不可变」同哲学:留痕优于抹除)
|
|
51
|
-
- **单一事实源**:条文正文去哪看。已指向项目现有规则层(AGENTS / 全局规则 / skills)时填指向;条文就在本载体分册内时填分册名(如 `common.md`)
|
|
52
|
-
|
|
53
|
-
### 2.3 演进记录(修订留痕)
|
|
54
|
-
|
|
55
|
-
规则语义变更不覆盖丢史:先在演进记录追加一行(规则 → 旧语义 → 变更为 → 修订来源任务),再更新索引表当前语义。
|
|
56
|
-
|
|
57
|
-
```markdown
|
|
58
|
-
| 规则 | 修订内容 | 修订来源任务 |
|
|
59
|
-
| --- | --- | --- |
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### 2.4 用法说明
|
|
63
|
-
|
|
64
|
-
写明本项目采用哪种形态、读写判定要点、以及规则层源头变更时的同步纪律。
|
|
65
|
-
|
|
66
|
-
## 3. 分册结构
|
|
67
|
-
|
|
68
|
-
```markdown
|
|
69
|
-
# 全端通用规范(common)
|
|
70
|
-
|
|
71
|
-
> 归属:common(所有端适用)。条文全文见本节,索引见 index.md。
|
|
72
|
-
|
|
73
|
-
## 1. 四级时间源
|
|
74
|
-
|
|
75
|
-
(条文全文)
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
端分册同构,首部 `# {端名} 规范`、`> 归属:{端名}`。
|
|
79
|
-
|
|
80
|
-
## 4. 端名规则
|
|
81
|
-
|
|
82
|
-
- **与任务 frontmatter `scope` 取值逐字一致**:两者共用同一套词表,读取时才能机械匹配(任务写 `scope: web+server` → 加载 `web.md` + `server.md`)
|
|
83
|
-
- **形态约束**:非空、不含空格、不含路径分隔符(`/ \ : * ? " < > |`)
|
|
84
|
-
- **保留字**:`index`、`common` 不得作端名
|
|
85
|
-
- **风格**:随项目 `scope` 既有写法(`web` / `server` / `admin` / `前端` 均成立),无全局词表——工具无法预知项目端构成,故不硬编码取值
|
|
86
|
-
|
|
87
|
-
## 5. 读取判定(分层)
|
|
88
|
-
|
|
89
|
-
1. **常驻**:只读 `index.md`(端清单 + 索引),成本与规范条数成线性、不随分册增大
|
|
90
|
-
2. **按需**:取当前任务 `scope` 的每个值 → 命中端清单的加载对应分册,再叠加 `common.md`
|
|
91
|
-
3. **非端值**:`scope` 中不在端清单的值视为分类标签,静默跳过,不报错
|
|
92
|
-
4. **空 scope**:只加载 `common.md`(保守,不臆测端归属)
|
|
93
|
-
|
|
94
|
-
## 6. 写入判定(沉淀归属)
|
|
95
|
-
|
|
96
|
-
1. 先问「这条是否**所有端都适用**」→ 是则归 `common`
|
|
97
|
-
2. 否则逐端确认「适用于哪些端」→ 写入命中的端分册
|
|
98
|
-
3. **禁止跨端合并归属**:不得出现「web+server 共识」这类跨端条目——真全端升 `common`,只适用几端则各端各记一条
|
|
99
|
-
4. `common` 语义锁死为「所有端都适用」,**不得用作「不确定归哪端」的暂存区**,否则会退化为垃圾桶
|
|
100
|
-
5. 写入前须经用户确认;一次性决策不升格为规范,留在任务正文
|
|
101
|
-
|
|
102
|
-
## 7. 两种形态
|
|
103
|
-
|
|
104
|
-
形态差异体现在分册是否存在与「单一事实源」列取值,**不是结构二选一**:
|
|
105
|
-
|
|
106
|
-
| 形态 | 适用 | 表现 |
|
|
107
|
-
| --- | --- | --- |
|
|
108
|
-
| 溯源索引式 | 项目已有规则层(AGENTS / 全局规则 / skills) | 不复制条文,索引行「当前语义」写简版语义、「单一事实源」写指向;可能只有 `index.md` |
|
|
109
|
-
| 条文式 | 无其他规则文件的项目 | 条文全文写入对应归属分册,本载体即项目唯一规范载体 |
|
|
110
|
-
|
|
111
|
-
同一项目内可混用:部分规则指向外部规则层、部分条文落在本载体。
|
|
112
|
-
|
|
113
|
-
## 8. 内容修订
|
|
114
|
-
|
|
115
|
-
- 语义变更:先在「演进记录」留痕,再更新索引表当前语义;条文在分册内的同步改分册
|
|
116
|
-
- 规则作废:索引行状态改 `已废弃`,不删行、不删分册条目
|
|
117
|
-
- 规则层源头变更(AGENTS / 全局规则 / skills 条文改了):同步检查索引对应行当前语义是否需更新,随该变更同批落盘
|
|
118
|
-
|
|
119
|
-
## 9. 存量迁移(旧单文件 → 目录形态)
|
|
120
|
-
|
|
121
|
-
触发:`toolkit tasks check` 报旧 `conventions.md` 存在;或用户直接要求迁移。
|
|
122
|
-
|
|
123
|
-
**三段式**(可中断,中途停下不丢内容):
|
|
124
|
-
|
|
125
|
-
1. **机器搬骨架**:建 `conventions/`,旧文件**整体**搬为 `index.md`(原文一字不丢),删除旧文件——此刻 `index.md` 是原文快照,功能上与旧文件等价
|
|
126
|
-
2. **AI 提归属建议**:读原有条目,逐条给出「`common` / 某端」建议与理由(旧文件无端信息,语义分流无法机械完成),形成待确认清单
|
|
127
|
-
3. **用户逐条确认**:确认后写索引行 + 把条文全文拆入对应分册;**未确认的条目保持原样留在 `index.md`**,不强推
|
|
128
|
-
|
|
129
|
-
补充要求:
|
|
130
|
-
|
|
131
|
-
- 迁移与内容重排分开做:先完成形态迁移(结构到位),再谈条目归属调整,避免一次变更混合两种风险
|
|
132
|
-
- 端清单在迁移时同步建立:从项目已有 `scope` 取值与实际子项目构成归纳,经用户确认写入端清单节
|
|
133
|
-
- 旧文件已不存在时不重复迁移
|
|
134
|
-
|
|
135
|
-
## 10. 兼容读(迁移期)
|
|
136
|
-
|
|
137
|
-
读取时先找 `conventions/index.md`;不存在再看旧单文件 `conventions.md`,存在则按旧单文件内容读取并**在对话中提示可迁移**。两者并存时以目录形态为准,并提示旧文件待清理。
|
|
138
|
-
|
|
139
|
-
## 11. 自查清单
|
|
140
|
-
|
|
141
|
-
- [ ] `conventions/` 存在时必有 `index.md`(缺则为形态异常)
|
|
142
|
-
- [ ] 端清单非空且不含保留字 `index` / `common`
|
|
143
|
-
- [ ] 索引表「归属」列取值 ∈ {`common`} ∪ 端清单(无悬空指针)
|
|
144
|
-
- [ ] 「状态」列取值为 `生效` / `已废弃`
|
|
145
|
-
- [ ] 分册文件与端清单 + `common` 对应,无孤立文件
|
|
146
|
-
- [ ] 旧单文件 `conventions.md` 已迁移(不存在,或已提示待清理)
|
|
147
|
-
- [ ] 规范写入均经用户确认,且带「确立来源任务」
|
|
1
|
+
# 规范载体规范(conventions)
|
|
2
|
+
|
|
3
|
+
> 面向多人 + AI 协作,任何语言项目可直接使用,仅依赖文件读写能力。本文件为 SKILL.md 的配套规范,定义 `.tasks/conventions/` 的目录结构、归属分类、读写判定与存量迁移;任务文件本身的规范见 `task-spec.md`。
|
|
4
|
+
|
|
5
|
+
## 1. 载体结构
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
.tasks/
|
|
9
|
+
├── active/ # 进行中的任务
|
|
10
|
+
├── archive/ # 已终结任务归档
|
|
11
|
+
└── conventions/ # 项目协作规范载体
|
|
12
|
+
├── index.md # 唯一入口与唯一权威(常驻读)
|
|
13
|
+
├── common.md # 全端通用条文(按需创建)
|
|
14
|
+
└── <端名>.md # 各端专有条文(按需创建)
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
- `index.md` 是唯一入口:端清单在此声明、每条规范在此留一行指针,读取时只读它即可掌握规范全貌
|
|
18
|
+
- 分册**按需创建**,判据是「该归属下有无需独立承载的条文」,不设条数阈值——溯源索引式项目可能始终只有 `index.md`
|
|
19
|
+
- 目录与任务目录同在 `.tasks/` 根层,纯 Markdown 随 git 走;默认 `.tasks` 目录名可随任务区自定而变,内部结构不变
|
|
20
|
+
- 非任务文件:`toolkit tasks` 各子命令不读其内容,`check` 不因内容告警;仅在**载体形态异常**时给软告警(旧单文件残留、缺 `index.md`)
|
|
21
|
+
|
|
22
|
+
## 2. index.md 结构
|
|
23
|
+
|
|
24
|
+
四节固定顺序:端清单 → 索引 → 演进记录 → 用法说明。
|
|
25
|
+
|
|
26
|
+
### 2.1 端清单(唯一权威)
|
|
27
|
+
|
|
28
|
+
```markdown
|
|
29
|
+
## 一、端清单
|
|
30
|
+
|
|
31
|
+
> 端名与任务 frontmatter 的 `scope` 取值共用同一套词表;保留字 `index` / `common` 不得作端名。
|
|
32
|
+
|
|
33
|
+
| 端名 | 说明 |
|
|
34
|
+
| --- | --- |
|
|
35
|
+
| web | 前端主站 |
|
|
36
|
+
| server | 后端服务 |
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
单端项目写一行或留空表并注明「本项目单端,规范全归 common」。
|
|
40
|
+
|
|
41
|
+
### 2.2 索引表
|
|
42
|
+
|
|
43
|
+
```markdown
|
|
44
|
+
| # | 规则 | 当前语义 | 归属 | 状态 | 确立来源任务 | 单一事实源 |
|
|
45
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
46
|
+
| 1 | 四级时间源 | 时间取证优先级:当场打点 > 聊天记录时间戳 > git 提交时间 > 系统时间兜底 | common | 生效 | 20260906-会话收尾沉淀能力升级 | task-spec.md(口径随版本走) |
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
- **归属**:取值必须 ∈ {`common`} ∪ 端清单,否则为悬空指针(需修正)
|
|
50
|
+
- **状态**:`生效` / `已废弃`;废弃不删行,改状态即可(与「归档任务不可变」同哲学:留痕优于抹除)
|
|
51
|
+
- **单一事实源**:条文正文去哪看。已指向项目现有规则层(AGENTS / 全局规则 / skills)时填指向;条文就在本载体分册内时填分册名(如 `common.md`)
|
|
52
|
+
|
|
53
|
+
### 2.3 演进记录(修订留痕)
|
|
54
|
+
|
|
55
|
+
规则语义变更不覆盖丢史:先在演进记录追加一行(规则 → 旧语义 → 变更为 → 修订来源任务),再更新索引表当前语义。
|
|
56
|
+
|
|
57
|
+
```markdown
|
|
58
|
+
| 规则 | 修订内容 | 修订来源任务 |
|
|
59
|
+
| --- | --- | --- |
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 2.4 用法说明
|
|
63
|
+
|
|
64
|
+
写明本项目采用哪种形态、读写判定要点、以及规则层源头变更时的同步纪律。
|
|
65
|
+
|
|
66
|
+
## 3. 分册结构
|
|
67
|
+
|
|
68
|
+
```markdown
|
|
69
|
+
# 全端通用规范(common)
|
|
70
|
+
|
|
71
|
+
> 归属:common(所有端适用)。条文全文见本节,索引见 index.md。
|
|
72
|
+
|
|
73
|
+
## 1. 四级时间源
|
|
74
|
+
|
|
75
|
+
(条文全文)
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
端分册同构,首部 `# {端名} 规范`、`> 归属:{端名}`。
|
|
79
|
+
|
|
80
|
+
## 4. 端名规则
|
|
81
|
+
|
|
82
|
+
- **与任务 frontmatter `scope` 取值逐字一致**:两者共用同一套词表,读取时才能机械匹配(任务写 `scope: web+server` → 加载 `web.md` + `server.md`)
|
|
83
|
+
- **形态约束**:非空、不含空格、不含路径分隔符(`/ \ : * ? " < > |`)
|
|
84
|
+
- **保留字**:`index`、`common` 不得作端名
|
|
85
|
+
- **风格**:随项目 `scope` 既有写法(`web` / `server` / `admin` / `前端` 均成立),无全局词表——工具无法预知项目端构成,故不硬编码取值
|
|
86
|
+
|
|
87
|
+
## 5. 读取判定(分层)
|
|
88
|
+
|
|
89
|
+
1. **常驻**:只读 `index.md`(端清单 + 索引),成本与规范条数成线性、不随分册增大
|
|
90
|
+
2. **按需**:取当前任务 `scope` 的每个值 → 命中端清单的加载对应分册,再叠加 `common.md`
|
|
91
|
+
3. **非端值**:`scope` 中不在端清单的值视为分类标签,静默跳过,不报错
|
|
92
|
+
4. **空 scope**:只加载 `common.md`(保守,不臆测端归属)
|
|
93
|
+
|
|
94
|
+
## 6. 写入判定(沉淀归属)
|
|
95
|
+
|
|
96
|
+
1. 先问「这条是否**所有端都适用**」→ 是则归 `common`
|
|
97
|
+
2. 否则逐端确认「适用于哪些端」→ 写入命中的端分册
|
|
98
|
+
3. **禁止跨端合并归属**:不得出现「web+server 共识」这类跨端条目——真全端升 `common`,只适用几端则各端各记一条
|
|
99
|
+
4. `common` 语义锁死为「所有端都适用」,**不得用作「不确定归哪端」的暂存区**,否则会退化为垃圾桶
|
|
100
|
+
5. 写入前须经用户确认;一次性决策不升格为规范,留在任务正文
|
|
101
|
+
|
|
102
|
+
## 7. 两种形态
|
|
103
|
+
|
|
104
|
+
形态差异体现在分册是否存在与「单一事实源」列取值,**不是结构二选一**:
|
|
105
|
+
|
|
106
|
+
| 形态 | 适用 | 表现 |
|
|
107
|
+
| --- | --- | --- |
|
|
108
|
+
| 溯源索引式 | 项目已有规则层(AGENTS / 全局规则 / skills) | 不复制条文,索引行「当前语义」写简版语义、「单一事实源」写指向;可能只有 `index.md` |
|
|
109
|
+
| 条文式 | 无其他规则文件的项目 | 条文全文写入对应归属分册,本载体即项目唯一规范载体 |
|
|
110
|
+
|
|
111
|
+
同一项目内可混用:部分规则指向外部规则层、部分条文落在本载体。
|
|
112
|
+
|
|
113
|
+
## 8. 内容修订
|
|
114
|
+
|
|
115
|
+
- 语义变更:先在「演进记录」留痕,再更新索引表当前语义;条文在分册内的同步改分册
|
|
116
|
+
- 规则作废:索引行状态改 `已废弃`,不删行、不删分册条目
|
|
117
|
+
- 规则层源头变更(AGENTS / 全局规则 / skills 条文改了):同步检查索引对应行当前语义是否需更新,随该变更同批落盘
|
|
118
|
+
|
|
119
|
+
## 9. 存量迁移(旧单文件 → 目录形态)
|
|
120
|
+
|
|
121
|
+
触发:`toolkit tasks check` 报旧 `conventions.md` 存在;或用户直接要求迁移。
|
|
122
|
+
|
|
123
|
+
**三段式**(可中断,中途停下不丢内容):
|
|
124
|
+
|
|
125
|
+
1. **机器搬骨架**:建 `conventions/`,旧文件**整体**搬为 `index.md`(原文一字不丢),删除旧文件——此刻 `index.md` 是原文快照,功能上与旧文件等价
|
|
126
|
+
2. **AI 提归属建议**:读原有条目,逐条给出「`common` / 某端」建议与理由(旧文件无端信息,语义分流无法机械完成),形成待确认清单
|
|
127
|
+
3. **用户逐条确认**:确认后写索引行 + 把条文全文拆入对应分册;**未确认的条目保持原样留在 `index.md`**,不强推
|
|
128
|
+
|
|
129
|
+
补充要求:
|
|
130
|
+
|
|
131
|
+
- 迁移与内容重排分开做:先完成形态迁移(结构到位),再谈条目归属调整,避免一次变更混合两种风险
|
|
132
|
+
- 端清单在迁移时同步建立:从项目已有 `scope` 取值与实际子项目构成归纳,经用户确认写入端清单节
|
|
133
|
+
- 旧文件已不存在时不重复迁移
|
|
134
|
+
|
|
135
|
+
## 10. 兼容读(迁移期)
|
|
136
|
+
|
|
137
|
+
读取时先找 `conventions/index.md`;不存在再看旧单文件 `conventions.md`,存在则按旧单文件内容读取并**在对话中提示可迁移**。两者并存时以目录形态为准,并提示旧文件待清理。
|
|
138
|
+
|
|
139
|
+
## 11. 自查清单
|
|
140
|
+
|
|
141
|
+
- [ ] `conventions/` 存在时必有 `index.md`(缺则为形态异常)
|
|
142
|
+
- [ ] 端清单非空且不含保留字 `index` / `common`
|
|
143
|
+
- [ ] 索引表「归属」列取值 ∈ {`common`} ∪ 端清单(无悬空指针)
|
|
144
|
+
- [ ] 「状态」列取值为 `生效` / `已废弃`
|
|
145
|
+
- [ ] 分册文件与端清单 + `common` 对应,无孤立文件
|
|
146
|
+
- [ ] 旧单文件 `conventions.md` 已迁移(不存在,或已提示待清理)
|
|
147
|
+
- [ ] 规范写入均经用户确认,且带「确立来源任务」
|
|
@@ -102,6 +102,6 @@ scope: app # 影响范围;多值以半角加号分隔(toolkit+lxg
|
|
|
102
102
|
- **仓库文件改动口径**:需写入版本控制的工作区文件的增 / 改 / 删(源码、配置、文档、技能、任务区自身均计入);纯读取、纯执行、纯汇报不计入;拿不准时列出差异问用户,不猜
|
|
103
103
|
- **动作不算,改动才算**:收尾动作(提交、发版、推送、部署)本身及其固有产物(版本号、更新日志、标签)不构成任务、不单独建档;这些动作过程中若出现需改仓库文件才能解决的缺陷(如打包配置错误、发布渠道错误),该修复按普通任务建档
|
|
104
104
|
- **归档块不可变**:已归档块是终结记录(唯一键 + 完成时间已固定),不追加新的工作内容;延续 / 扩展需求走新任务并标注来源链。唯一例外是**事实更正**——后续核实推翻原块结论时,在其正文末尾追加「修订记录」(保留原结论、不动元数据行、附更正时刻与依据),与 conventions 载体「废弃不删行」同属留痕优于抹除
|
|
105
|
-
- **验收与 CI 同源,不手写清单**:项目的验收步骤清单只允许一份真源——一条聚合命令(如 `pnpm verify`)背后由脚本定义步骤,本地与全部 CI 流水线共用它;禁止在规则文件、CI 配置里另抄一份步骤枚举。多份手写清单必然漂移,征兆就是「本地自检通过、CI 才报错」,出现该征兆先查清单是否已经漂移
|
|
106
|
-
- 强制约束到**沉淀**为止:归档 + 规范沉淀即流程终点;提交、发版、推送不是必经步骤,是否执行取决于用户的全局 / 个人 / 项目规则;若提交代码,按「归档与沉淀 → 跑项目验收命令 → git commit」的顺序执行,任务记录(归档文件 + conventions 载体)与代码变更落在同一提交
|
|
105
|
+
- **验收与 CI 同源,不手写清单**:项目的验收步骤清单只允许一份真源——一条聚合命令(如 `pnpm verify`)背后由脚本定义步骤,本地与全部 CI 流水线共用它;禁止在规则文件、CI 配置里另抄一份步骤枚举。多份手写清单必然漂移,征兆就是「本地自检通过、CI 才报错」,出现该征兆先查清单是否已经漂移
|
|
106
|
+
- 强制约束到**沉淀**为止:归档 + 规范沉淀即流程终点;提交、发版、推送不是必经步骤,是否执行取决于用户的全局 / 个人 / 项目规则;若提交代码,按「归档与沉淀 → 跑项目验收命令 → git commit」的顺序执行,任务记录(归档文件 + conventions 载体)与代码变更落在同一提交
|
|
107
107
|
- **验收须晚于归档**:归档会改写任务区(写归档文件、删 active 源文件、清理空月份目录),而归档本身不做阻断式校验——早于归档跑验收就覆盖不到终态,归档产物等于无人校验。同理,归档块「完成情况」只记改动事实与所用验证命令,不逐条抄写验收输出(归档在前、验收在后,抄结果就成了先写结论后验证)
|
|
@@ -33,10 +33,10 @@ metadata:
|
|
|
33
33
|
|
|
34
34
|
1. 记录变更:`npx changeset`(或项目包管理器等价脚本)——**变更描述一律以 `类型:` 前缀开头**(如 `新增:` / `修复:` / `优化:`),并按类型选影响级别(重大→major、新增/修改→minor、优化/修复/清理/文档→patch,完整对照见 `references/changelog-format.md`)
|
|
35
35
|
2. 消费发版:`npx changeset version`——自动写版本号与 CHANGELOG
|
|
36
|
-
3. 格式化:按 `references/changelog-format.md` 的语义分组规则归类条目、转换分组标题、润色为项目语言风格(中文示例:`### Patch Changes` 下的 `- 修复:xxx` → `### 🐛 问题修复` 下的 `- xxx`——归类后类型前缀被剥离,类型由分组标题承接);分组维度与 bump 维度正交,条目归组只看类型前缀
|
|
36
|
+
3. 格式化:按 `references/changelog-format.md` 的语义分组规则归类条目、转换分组标题、润色为项目语言风格(中文示例:`### Patch Changes` 下的 `- 修复:xxx` → `### 🐛 问题修复` 下的 `- xxx`——归类后类型前缀被剥离,类型由分组标题承接);分组维度与 bump 维度正交,条目归组只看类型前缀
|
|
37
37
|
4. 归一:润色后跑一次 `toolkit changelog --history format`——人工润色(含补写历史块明细)容易在条目之间留空行,该命令按「同组顶层条目逐行相邻」重排历史块;项目另有更新日志镜像页(如 `docs/changelog.md`)时再跑一次同步脚本,否则镜像一致性校验会失败
|
|
38
38
|
5. 清理:删除已消费的 `.changeset/*.md`
|
|
39
|
-
6. 门禁:发布前跑一次项目的验收命令(如 `pnpm verify`)——**关卡设在发布前而非推送前**:发布到包仓库 / 制品库不可逆,推送失败重推即可,故必须拦在不可逆动作之前;任一步失败即中止发版,不进入提交、打标签、发布
|
|
39
|
+
6. 门禁:发布前跑一次项目的验收命令(如 `pnpm verify`)——**关卡设在发布前而非推送前**:发布到包仓库 / 制品库不可逆,推送失败重推即可,故必须拦在不可逆动作之前;任一步失败即中止发版,不进入提交、打标签、发布
|
|
40
40
|
7. 发布:提交版本与 CHANGELOG 改动 → 打 `vX.Y.Z` 标签 → 按项目渠道发布(如 `npm publish`)
|
|
41
41
|
|
|
42
42
|
⚠️ 自动生成的条目必须人工核对润色,与仓库既有 CHANGELOG 风格保持一致。
|
|
@@ -52,8 +52,8 @@ metadata:
|
|
|
52
52
|
| version 后 CHANGELOG 分组标题仍是英文 | 按 references 的映射表补一次格式化 |
|
|
53
53
|
| CHANGELOG 出现「- - 条目」双前缀伪影(变更集条目以 `- ` 开头) | `toolkit changelog version/format` 已自动还原为顶层条目;手工模式按 references 规则手动清理 |
|
|
54
54
|
| 条目与仓库既有风格不一致 | 人工润色为项目语言与句式,勿保留机器直译 |
|
|
55
|
-
| 变更集遗漏(发版后才发现功能未记录) | 补建变更集随下次发版;本次在发布说明中人工补充 |
|
|
56
|
-
| 改动已发布却无归档记录(有提交、无任务档) | 先补归档(fxri-session-recap 模式一)再继续发布后续步骤;发版本身不补建档 |
|
|
55
|
+
| 变更集遗漏(发版后才发现功能未记录) | 补建变更集随下次发版;本次在发布说明中人工补充 |
|
|
56
|
+
| 改动已发布却无归档记录(有提交、无任务档) | 先补归档(fxri-session-recap 模式一)再继续发布后续步骤;发版本身不补建档 |
|
|
57
57
|
| 发版后历史块内出现多余空行(`自举一致性` 类零改动用例失败) | 跑 `toolkit changelog --history format` 归一(**必须带 `--history`**,默认模式不动历史块),再补跑一次镜像页同步脚本 |
|
|
58
58
|
|
|
59
59
|
## 可选加速(不构成依赖)
|
|
@@ -62,7 +62,7 @@ metadata:
|
|
|
62
62
|
|
|
63
63
|
- `toolkit changelog`:创建变更集(等价 changeset)
|
|
64
64
|
- `toolkit changelog version`:发版并自动做中文分组标题格式化
|
|
65
|
-
- `toolkit changelog format`:仅格式化既有 CHANGELOG
|
|
65
|
+
- `toolkit changelog format`:仅格式化既有 CHANGELOG
|
|
66
66
|
- `toolkit changelog --history format`:连带追溯改写历史版本块(用户主动要求修正历史块时才加,默认不动)
|
|
67
67
|
- `toolkit changelog --lang <语言> …`:切换输出语言(内置 zh / en,其余可配置扩展)
|
|
68
68
|
- ⚠️ `changelog` 域开了选项透传,自有选项(`--lang` / `--history` / `--redact` / `--warn`)必须写在子命令**之前**:`toolkit changelog --history format` 生效,写成 `toolkit changelog format --history` 会被 changesets 静默忽略(表现为「无 CHANGELOG 需要更新」)
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
| `依赖:` / 源文本 `- Updated dependencies` | `deps` | `### 🔗 依赖变更` | `### 🔗 Dependency Updates` |
|
|
44
44
|
| 无前缀兜底 | `other` | `### 📦 其他变更` | `### 📦 Other` |
|
|
45
45
|
|
|
46
|
-
**无前缀条目的兜底规则**:按条目**所属源组标题**声明的影响级别归组——`### Major Changes` → `breaking`、`### Minor Changes` → `added`、`### Patch Changes` → `other`;不从版本号推导。
|
|
47
|
-
|
|
46
|
+
**无前缀条目的兜底规则**:按条目**所属源组标题**声明的影响级别归组——`### Major Changes` → `breaking`、`### Minor Changes` → `added`、`### Patch Changes` → `other`;不从版本号推导。
|
|
47
|
+
|
|
48
48
|
**追溯历史块的兜底规则**(`--history`):历史块没有英文源组标题,改按**所属既有组标题**查槽位——先查当前语言组标题,再查历史组标题表(如 `### 🐛 补丁修复` → `fixed`);两处都识别不出则整组连同标题原样保留。
|
|
49
49
|
|
|
50
50
|
**依赖条目不走前缀解析**:源组标题 `### Dependent Changes` 整块,以及源文本 `- Updated dependencies`(含缩进子项)一律归入 `deps` 槽位。
|
|
@@ -54,7 +54,7 @@ metadata:
|
|
|
54
54
|
- 归档是中间步骤,**规范沉淀才是流程终点**
|
|
55
55
|
- 沉淀时机固定:归档完成后、任何收尾动作(验收 / 提交 / 发版 / 推送)前,规范与归档文件同批落盘
|
|
56
56
|
- ⚠️ **验收须晚于归档**:归档会改写 `.tasks/`,且归档本身不做阻断式校验——早于归档跑验收就覆盖不到终态,归档产物等于无人校验;归档块「完成情况」只记改动事实与所用验证命令,不逐条抄写验收输出
|
|
57
|
-
- 提交、发版、推送**不是必经步骤**,是否执行取决于用户全局/个人/项目规则;若提交代码:先归档、后跑项目验收命令、再提交,归档文件与代码变更落在同一 git 提交
|
|
57
|
+
- 提交、发版、推送**不是必经步骤**,是否执行取决于用户全局/个人/项目规则;若提交代码:先归档、后跑项目验收命令、再提交,归档文件与代码变更落在同一 git 提交
|
|
58
58
|
- **动作不算、改动才算**:收尾动作(提交、发版、推送、部署)本身及其固有产物(版本号、更新日志、标签)不构成任务、不单独建档;其所依据的改动须有归档记录,缺则补档
|
|
59
59
|
|
|
60
60
|
### R3 规范落点:`.tasks/conventions/` 载体(两级沉淀同一载体)
|
|
@@ -86,7 +86,7 @@ metadata:
|
|
|
86
86
|
3. **逐条落盘**(先查后写;格式与目录规范见 `../fxri-plan-to-task/references/task-spec.md`;fxri-plan-to-task 未一并安装、该兄弟路径不存在时,改读包内真源——`toolkit skills status` 打印的「技能源」目录下 `fxri-plan-to-task/references/task-spec.md`):
|
|
87
87
|
- 会话工作有对应任务 → 更新原文件:正文追加结论与决策,时间字段按 R1 校准
|
|
88
88
|
- 无对应任务但有独立成果 → 按 fxri-plan-to-task 规范建档,created 取任务真实创建日
|
|
89
|
-
- 未尽事项 → 拆独立任务文件(status: 待办),不在正文留游离待办
|
|
89
|
+
- 未尽事项 → 拆独立任务文件(status: 待办),不在正文留游离待办
|
|
90
90
|
- 收尾动作(提交、发版、推送、部署)本身及其固有产物(版本号、更新日志、标签)不单独成档;其所依据的改动缺归档记录时须补档
|
|
91
91
|
4. **归档**:终结态任务按 task-spec「手工归档步骤」执行(合并归档块 → 降序重排 → 写回 → 删源文件 → 清理空月份目录),或 `toolkit tasks archive` 自动化
|
|
92
92
|
5. **规范沉淀(终点)**:按「规范提炼子流程」执行会话级提炼,写入 conventions 载体
|