@double-codeing/flow2spec 3.0.13 → 3.0.15
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/LICENSE +21 -0
- package/README.en.md +15 -15
- package/README.md +15 -15
- package/cli.js +2 -2
- package/docs/.mermaid-cache.json +49 -0
- package/docs/.sync-mapping.json +59 -0
- package/docs/en/README.md +12 -0
- package/docs/{architecture.en.md → en/architecture.md} +57 -20
- package/docs/{commands-reference.en.md → en/commands-reference.md} +14 -16
- package/docs/{design-principles.en.md → en/design-principles.md} +36 -10
- package/docs/{directory-conventions.en.md → en/directory-conventions.md} +18 -13
- package/docs/{usage-guide.en.md → en/usage-guide.md} +23 -35
- package/docs/{usage-scenarios.en.md → en/usage-scenarios.md} +8 -34
- package/docs/images/flow-1.png +0 -0
- package/docs/images/process-1.png +0 -0
- package/docs/{README- → }/344/275/223/347/263/273/344/270/216/345/216/237/347/220/206.md +60 -19
- package/docs/{Flow2Spec- → }/344/275/277/347/224/250/346/241/210/344/276/213-/346/250/241/346/213/237/345/257/271/350/257/235.md +9 -33
- package/docs/{Flow2Spec → }/344/275/277/347/224/250/350/257/264/346/230/216.md +24 -34
- package/docs/{README- → }/345/221/275/344/273/244/350/257/264/346/230/216.md +15 -15
- package/docs/{README- → }/347/233/256/345/275/225/344/270/216/350/267/257/345/276/204/347/272/246/345/256/232.md +19 -12
- package/docs/{Flow2Spec- → }/350/256/276/350/256/241/350/257/264/346/230/216.md +79 -9
- package/package.json +1 -1
- package/templates/knowledge/template//345/220/216/347/253/257/346/212/200/346/234/257/346/250/241/347/211/210.md +1 -1
- package/templates/knowledge/template//347/273/210/347/250/277/346/250/241/347/211/210.md +1 -2
- package/templates/knowledge/template//351/241/271/347/233/256/351/207/214/347/250/213/347/242/221/346/250/241/347/211/210.md +29 -0
- package/templates/knowledge/topics/f2s-req-plan.md +1 -1
- package/templates/knowledge/topics/f2s-task.md +1 -1
- package/templates/rules/f2s-flow2spec-unified-entry.mdc +1 -0
- package/templates/rules/f2s-stock-docs-vs-req-docs.mdc +1 -1
- package/templates/rules/f2s-task.mdc +5 -5
- package/templates/skills/f2s-ctx-build/SKILL.md +3 -3
- package/templates/skills/f2s-ctx-rm/SKILL.md +1 -1
- package/templates/skills/f2s-doc-add/SKILL.md +1 -1
- package/templates/skills/f2s-doc-milestone/SKILL.md +139 -0
- package/templates/skills/f2s-git-commit/SKILL.md +1 -1
- package/templates/skills/f2s-kb-fix/SKILL.md +1 -1
- package/templates/skills/f2s-kb-sync/SKILL.md +1 -1
- package/templates/skills/stock-docs-vs-req-docs/SKILL.md +1 -1
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
# 目录与路径约定
|
|
2
2
|
|
|
3
|
+
[English](./en/directory-conventions.md)
|
|
4
|
+
|
|
3
5
|
## 核心边界
|
|
4
6
|
|
|
5
|
-
- `.Knowledge
|
|
6
|
-
-
|
|
7
|
+
- `.Knowledge/`:**知识环**——业务知识文档与机读路由(见 [体系与原理 §2 多层记忆](./体系与原理.md))
|
|
8
|
+
- `.task/`:**任务环**——变更追踪与跨会话续作(不在 `.Knowledge/` 内)
|
|
9
|
+
- `配置根`(`.cursor/.claude/.codex`):**规则环 + 技能环**入口
|
|
10
|
+
|
|
11
|
+
Memory Coding 四环总览见 [体系与原理 §1](./体系与原理.md)。
|
|
7
12
|
|
|
8
13
|
---
|
|
9
14
|
|
|
@@ -11,13 +16,15 @@
|
|
|
11
16
|
|
|
12
17
|
| 路径 | 职责 |
|
|
13
18
|
| --- | --- |
|
|
14
|
-
|
|
|
15
|
-
|
|
|
16
|
-
| `.Knowledge/
|
|
19
|
+
| `docs/` | 产品说明(**中文**):使用说明、命令说明、设计说明等 |
|
|
20
|
+
| `docs/en/` | 产品说明(**英文**):与上表一一对应的 6 篇文档,见 [en/README.md](./en/README.md) |
|
|
21
|
+
| `.Knowledge/stock-docs/` | **L3** 架构、终稿、沉淀长文档 |
|
|
22
|
+
| `.Knowledge/req-docs/` | **L3** 需求澄清、技术方案长文档 |
|
|
23
|
+
| `.Knowledge/topics/` | **L2** 主题摘要(硬约束、边界、路由指针) |
|
|
17
24
|
| `.Knowledge/template/` | 终稿/技术方案模板 |
|
|
18
25
|
| `.Knowledge/index.md` | 人类可读索引 |
|
|
19
|
-
| `.Knowledge/manifest-routing.json` |
|
|
20
|
-
| `.Knowledge/matchers/*.json` | 关键词分片(`id/includeAny`),由 `
|
|
26
|
+
| `.Knowledge/manifest-routing.json` | **L0** 机读路由骨架(task/topic/`topicDependencies`) |
|
|
27
|
+
| `.Knowledge/matchers/*.json` | **L1** 关键词分片(`id/includeAny`),由 `matcherPath` 直链;**match** 只读一片 |
|
|
21
28
|
| `.Knowledge/migration-report.md` | `f2s-kb-migrate` 落盘的迁移对照表与拟删除路径列表 |
|
|
22
29
|
| `.task/` | 变更追踪任务清单目录(`active/` 进行中,`completed/` 已归档且目录名为 **`<YYYYMMDD>-<task-name>`**(日期在前),`todo.json` 活跃任务索引);仅当 `changeTracking.*` 为 `true` 或显式调用 `f2s-req-plan` 时创建 |
|
|
23
30
|
| `配置根/rules/` | 规则文件(Cursor `.mdc`,Claude `.md`) |
|
|
@@ -26,7 +33,7 @@
|
|
|
26
33
|
| `.codex/AGENTS.md` | Codex 统一入口与加载说明 |
|
|
27
34
|
| `flow2spec.config.json` | 项目根配置,控制 `subAgent`、`switchAgentVerification`、`changeTracking`(嵌套对象,含 `feat` / `fix` / `implement` 三个子项) |
|
|
28
35
|
|
|
29
|
-
> 多端提示与路径表见 [
|
|
36
|
+
> 多端提示与路径表见 [使用说明 § 一](./使用说明.md)(详表单点维护);**权威仍为 Read(`flow2spec.config.json`)**。
|
|
30
37
|
|
|
31
38
|
---
|
|
32
39
|
|
|
@@ -41,7 +48,7 @@
|
|
|
41
48
|
|
|
42
49
|
## 相关文档
|
|
43
50
|
|
|
44
|
-
- [
|
|
45
|
-
- [
|
|
46
|
-
- [
|
|
47
|
-
- [
|
|
51
|
+
- [使用说明](./使用说明.md)
|
|
52
|
+
- [命令说明](./命令说明.md)
|
|
53
|
+
- [体系与原理](./体系与原理.md)
|
|
54
|
+
- [使用案例-模拟对话](./使用案例-模拟对话.md)
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Flow2Spec 设计说明
|
|
2
2
|
|
|
3
|
+
[English](./en/design-principles.md)
|
|
4
|
+
|
|
3
5
|
## 解决的问题
|
|
4
6
|
|
|
5
7
|
```
|
|
@@ -19,6 +21,67 @@
|
|
|
19
21
|
|
|
20
22
|
## 核心设计
|
|
21
23
|
|
|
24
|
+
### 0. Memory Coding 与仓内四环
|
|
25
|
+
|
|
26
|
+
**Memory Coding**:把必须长期记住的上下文**编码进可提交仓库**(可 PR、可 review),而不是押在模型 Memory 或聊天里。
|
|
27
|
+
|
|
28
|
+
仓内 **四环**(规则环与技能环分列,勿合并为「规则+技能」):
|
|
29
|
+
|
|
30
|
+
| 环 | 落点 | 职责 |
|
|
31
|
+
| --- | --- | --- |
|
|
32
|
+
| 知识环 | `.Knowledge/` | 路由 + 主题 + 存量/需求文档 |
|
|
33
|
+
| 任务环 | `.task/` | 跨会话续作、用户代办 |
|
|
34
|
+
| 规则环 | 各工具 `rules` / `AGENTS.md` | 怎么读、怎么做(缺口闸门、路由顺序) |
|
|
35
|
+
| 技能环 | `f2s-*` / `skills/` | 维护知识、触发 feat/fix/sync 等 |
|
|
36
|
+
|
|
37
|
+
```mermaid
|
|
38
|
+
graph TB
|
|
39
|
+
subgraph MC["Memory Coding · 仓内四环"]
|
|
40
|
+
KR["知识环 .Knowledge/"]
|
|
41
|
+
TR["任务环 .task/"]
|
|
42
|
+
RR["规则环 rules"]
|
|
43
|
+
SR["技能环 f2s-*"]
|
|
44
|
+
end
|
|
45
|
+
SR -->|"维护 ↑"| KR
|
|
46
|
+
RR -->|"读与做 ↓"| KR
|
|
47
|
+
TR -.->|"并列,不在 .Knowledge 内"| KR
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Flow2Spec 提供的是 **Memory Coding 的落盘与维护闭环**,不是「又一个 RAG 知识库」。
|
|
51
|
+
|
|
52
|
+
### 0.1 知识环:多层记忆结构
|
|
53
|
+
|
|
54
|
+
知识环内部是 **横读 + 纵链** 的多层结构(与下文「渐进式路由」「topicDependencies」对应):
|
|
55
|
+
|
|
56
|
+
```mermaid
|
|
57
|
+
graph TB
|
|
58
|
+
subgraph H["横读 · 渐进式收窄"]
|
|
59
|
+
L0["L0 manifest-routing"]
|
|
60
|
+
L1["L1 matchers 分片"]
|
|
61
|
+
L2["L2 topics 摘要"]
|
|
62
|
+
L3["L3 stock-docs / req-docs"]
|
|
63
|
+
L0 --> L1 --> L2 --> L3
|
|
64
|
+
end
|
|
65
|
+
subgraph V["纵链 · topicDependencies"]
|
|
66
|
+
T1["通用约定"]
|
|
67
|
+
T2["子域边界"]
|
|
68
|
+
T3["端上白名单"]
|
|
69
|
+
T4["本域细则"]
|
|
70
|
+
T1 --> T2 --> T3 --> T4
|
|
71
|
+
end
|
|
72
|
+
L2 --- V
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
| 层级 | 路径 | 作用 |
|
|
76
|
+
| --- | --- | --- |
|
|
77
|
+
| L0 | `manifest-routing.json` | 机读路由、依赖声明 |
|
|
78
|
+
| L1 | `matchers/*.json` | 关键词命中,**match** 只读一片 |
|
|
79
|
+
| L2 | `topics/*.md` | 硬约束摘要;**expand** 拉依赖 |
|
|
80
|
+
| L3 | `stock-docs/`、`req-docs/` | 长文档,按需下钻 |
|
|
81
|
+
| 纵链 | `topicDependencies` | 主题级前置,所有任务共享 |
|
|
82
|
+
|
|
83
|
+
读取流水线:`match → expand → verify → act`(详见 [体系与原理 §4](./体系与原理.md))。
|
|
84
|
+
|
|
22
85
|
### 1. 知识与规则分离
|
|
23
86
|
|
|
24
87
|
```mermaid
|
|
@@ -61,29 +124,36 @@ graph LR
|
|
|
61
124
|
|
|
62
125
|
### 3. 技能维护闭环
|
|
63
126
|
|
|
127
|
+
<p><img src="./images/flow-1.png" alt="技能维护闭环" style="max-width:100%;" /></p>
|
|
128
|
+
|
|
129
|
+
<details>
|
|
130
|
+
<summary>Mermaid 源码</summary>
|
|
131
|
+
|
|
64
132
|
```mermaid
|
|
65
133
|
graph LR
|
|
66
134
|
K[".Knowledge/"] --> AI["下次会话\n的 AI"]
|
|
67
|
-
AI --> C["
|
|
135
|
+
AI --> C["功能迭代"]
|
|
68
136
|
|
|
69
137
|
C -->|"修复 Bug"| FIX["f2s-kb-fix"] --> K
|
|
70
138
|
C -->|"新增能力"| FEAT["f2s-kb-feat"] --> K
|
|
71
139
|
C -->|"会话结束"| SYNC["f2s-kb-sync"] --> K
|
|
72
140
|
C -->|"提交代码"| CMT["f2s-git-commit\n收口检查"]
|
|
73
|
-
CMT -->|"未入库则提醒\n
|
|
141
|
+
CMT -->|"未入库则提醒\n-> kb-sync/kb-feat"| K
|
|
74
142
|
|
|
75
143
|
D1["架构文档"] -->|f2s-doc-arch| FIN["f2s-doc-final"]
|
|
76
|
-
D2["PDF
|
|
144
|
+
D2["PDF/初稿"] -->|f2s-doc-final| FIN
|
|
77
145
|
FIN --> CTX["f2s-ctx-build"] --> K
|
|
78
146
|
|
|
79
147
|
OLD["存量代码/文档"] -->|f2s-doc-add| K
|
|
80
148
|
|
|
81
149
|
NR["新需求"] --> CL["f2s-req-clarify"] --> BE["f2s-req-backend"]
|
|
82
|
-
BE --> IMPL["implement-tech-design
|
|
150
|
+
BE --> IMPL["实现xxx技术方案"] -->|自动触发implement-tech-design规则| K
|
|
83
151
|
|
|
84
152
|
GIT["Git 合并后"] -->|f2s-kb-merge| K
|
|
85
153
|
```
|
|
86
154
|
|
|
155
|
+
</details>
|
|
156
|
+
|
|
87
157
|
七条入口 · `f2s-git-commit` 是提交时的知识纪律收口 · `.Knowledge/` 是唯一汇聚点 · 知识驱动 AI,AI 驱动下轮开发
|
|
88
158
|
|
|
89
159
|
|
|
@@ -439,7 +509,7 @@ f2s-kb-sync 三种输入方式
|
|
|
439
509
|
| **Codex `AGENTS.md` + `renderProjectConfigBlock`** | 顶部 **Read** 硬约束 + **init 快照表**(与磁盘不一致时以 Read 为准)。 |
|
|
440
510
|
| **知识库 `config-precheck` 主题** | 路由命中时只提供**摘要**与链向 Codex 长文,**不**替代 Read JSON。 |
|
|
441
511
|
|
|
442
|
-
**权威仍为**项目根 JSON 的 **Read** 结果;各层为提示而非第二份真值源。操作侧完整表格与路径见 **[
|
|
512
|
+
**权威仍为**项目根 JSON 的 **Read** 结果;各层为提示而非第二份真值源。操作侧完整表格与路径见 **[使用说明 § 一、`f2s-*` 与 `flow2spec.config.json`](./使用说明.md)**;口述节奏见 **[Flow2Spec-演讲稿 Slide 13b](./Flow2Spec-演讲稿.md)**。
|
|
443
513
|
|
|
444
514
|
#### 6. 技能不复述统一入口规则,只引用
|
|
445
515
|
|
|
@@ -566,9 +636,9 @@ flow2spec.config.json
|
|
|
566
636
|
|
|
567
637
|
## 相关文档
|
|
568
638
|
|
|
569
|
-
- [
|
|
570
|
-
- [
|
|
571
|
-
- [
|
|
572
|
-
- [
|
|
639
|
+
- [使用说明](./使用说明.md)
|
|
640
|
+
- [命令说明](./命令说明.md)
|
|
641
|
+
- [体系与原理](./体系与原理.md)
|
|
642
|
+
- [使用案例-模拟对话](./使用案例-模拟对话.md)
|
|
573
643
|
- [Flow2Spec-演讲稿](./Flow2Spec-演讲稿.md)
|
|
574
644
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@double-codeing/flow2spec",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.15",
|
|
4
4
|
"description": "在业务仓库初始化「文档驱动、可写回知识库」的 AI 协作骨架:项目根 .Knowledge 承载 stock-docs/req-docs 与机读路由,.cursor/.claude/.codex 写入 f2s-* 规则与技能(含 Karpathy 式编码行为准则 f2s-karpathy-guidelines,init 同步 rules / Codex topics / skills);init 只落结构与模板,业务内容由各 f2s-* 技能在对话中维护。",
|
|
5
5
|
"homepage": "https://github.com/Lands-1203/Flow2Spec#readme",
|
|
6
6
|
"repository": {
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
> **主口径**:模板在 `.Knowledge/template/项目里程碑模版.md`(由 `flow2spec init` 落地);生成物在 `.Knowledge/stock-docs/<范围名>里程碑.md`。
|
|
2
|
+
> **执行 `f2s-doc-milestone`**:结构以本模版为准;内容仅来自 **req-docs、git log、.task** 与知识库主题,禁止臆造。
|
|
3
|
+
> **阶段**:Mx **仅**功能/能力变更;**不得**单独成阶段的联调、测试、验收或纯环境运维;工程性改动并入对应功能阶段。
|
|
4
|
+
|
|
5
|
+
# (范围名)里程碑
|
|
6
|
+
|
|
7
|
+
> **范围**:(用户语义说明;未指定时写「整个项目」)
|
|
8
|
+
> **生成时间**:`YYYY-MM-DD`
|
|
9
|
+
> **索源**:req-docs · git 命令/tag · `.task` 路径 · 知识库主题(`manifest-routing` / `index.md` 主题一览及本轮所读 `topics/*.md`)
|
|
10
|
+
|
|
11
|
+
## 总览
|
|
12
|
+
|
|
13
|
+
| 阶段 | 时间 | 一句话 |
|
|
14
|
+
| --- | --- | --- |
|
|
15
|
+
| M1 (功能变更摘要) | YYYY-MM | (可验证的功能交付,须可被索源支撑;非联调/测试/验收) |
|
|
16
|
+
| M2 … | … | … |
|
|
17
|
+
|
|
18
|
+
## M1 · (阶段标题)
|
|
19
|
+
|
|
20
|
+
- **交付**:(列表,可验证)
|
|
21
|
+
- **依据**:(可选)req `…` · commit `hash` · task `…`
|
|
22
|
+
|
|
23
|
+
## M2 · …
|
|
24
|
+
|
|
25
|
+
(结构同 M1;总览表中每一行 Mx 须有对应二级标题。)
|
|
26
|
+
|
|
27
|
+
## 待确认
|
|
28
|
+
|
|
29
|
+
- (三源不一致或缺记录时列出;无则写「无」)
|
|
@@ -81,6 +81,7 @@ alwaysApply: true
|
|
|
81
81
|
|
|
82
82
|
## 禁止项
|
|
83
83
|
|
|
84
|
+
- **`templates/` 可下发约束**(经 `init` 会克隆到任意业务仓):技能/规则/知识模板正文中的示例须**中性**——勿写特定业务域名称、单一组织 npm 包名、仅 Flow2Spec 产品仓存在的 `docs/` 路径;用 `<能力>`、`src/<模块>/` 等占位。
|
|
84
85
|
- 使用 `git worktree` 或隔离目录跑子任务后,**禁止**在未 `git worktree remove` / 未交接删除命令的情况下结束会话(见上文「Git worktree 与子任务工作目录卫生」)。
|
|
85
86
|
- 未查看 `.Knowledge/manifest-routing.json` 前,禁止进行全仓无范围扫描;`.Knowledge/index.md` 在需确认主题语义时再读,禁止与 manifest 交替重复读取以代替决策。
|
|
86
87
|
- 禁止把 `stock-docs` 作为直接编码输入文档;按方案实现应使用 `req-docs`。
|
|
@@ -13,4 +13,4 @@ alwaysApply: false
|
|
|
13
13
|
- **`.Knowledge/stock-docs/`**:PDF/初稿/终稿/架构说明等**存量源文档**;`f2s-ctx-build`、`f2s-doc-final`、`f2s-doc-arch`、`f2s-doc-add` 的文档落盘优先在此。`sourceDoc` 统一写 `.Knowledge/stock-docs/<文件名>.md`。
|
|
14
14
|
- **`.Knowledge/req-docs/`**:需求澄清、技术方案(前后端/数据/任务等)、`f2s-doc-pdf` 输出的「按方案实现」MD;`implement-tech-design` 的触发范围为 `.Knowledge/req-docs/**/*.md`。
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
完整约定见本规则与 **`skills/stock-docs-vs-req-docs/SKILL.md`**;`.Knowledge/topics/f2s-stock-docs-vs-req-docs.md` 为路由摘要。
|
|
@@ -138,12 +138,12 @@ alwaysApply: true
|
|
|
138
138
|
# <任务名> 上下文
|
|
139
139
|
|
|
140
140
|
## 涉及文件
|
|
141
|
-
- `src
|
|
142
|
-
- `src
|
|
141
|
+
- `src/<模块>/callback.js`
|
|
142
|
+
- `src/<模块>/retry.js`
|
|
143
143
|
|
|
144
144
|
## 相关资料
|
|
145
|
-
- `.Knowledge/req-docs
|
|
146
|
-
- `.Knowledge/stock-docs
|
|
145
|
+
- `.Knowledge/req-docs/<能力>-spec.md`
|
|
146
|
+
- `.Knowledge/stock-docs/<能力>-arch.md`
|
|
147
147
|
|
|
148
148
|
## 用户代办清单
|
|
149
149
|
- 见同目录 `user-todos.md`(须用户执行的项统一写在该文件,勿仅在对话中罗列)
|
|
@@ -175,7 +175,7 @@ alwaysApply: true
|
|
|
175
175
|
|
|
176
176
|
## 2026-05-09
|
|
177
177
|
|
|
178
|
-
- [ ]
|
|
178
|
+
- [ ] 在目标环境执行:`.Knowledge/req-docs/xxx.sql`(先备份)
|
|
179
179
|
- [ ] 在配置中心打开功能开关 `feature.foo.enabled`
|
|
180
180
|
|
|
181
181
|
## 2026-05-10
|
|
@@ -89,10 +89,10 @@ description: 根据 .Knowledge/stock-docs 文档生成知识路由主题与索
|
|
|
89
89
|
|
|
90
90
|
## 复杂场景示例
|
|
91
91
|
|
|
92
|
-
用户输入:`f2s-ctx-build .Knowledge/stock-docs
|
|
92
|
+
用户输入:`f2s-ctx-build .Knowledge/stock-docs/回调改造_终稿.md`,且现有 `topics/callback.md` 已存在。
|
|
93
93
|
|
|
94
|
-
- 若新文档与现有 `
|
|
95
|
-
-
|
|
94
|
+
- 若新文档与现有 `callback` 主题高度重合:原位更新 `topics/callback.md`,不要新建 `callback-v2.md`。
|
|
95
|
+
- 若新文档新增「重试补偿」子能力:可新增 `topics/callback-retry.md`,并在 `manifest-routing.topicDependencies` 中声明 `callback-retry -> callback`。
|
|
96
96
|
- 更新后同步 `index` 与路由清单,确保 `topicPaths`、`fallbackTopic`、`matcherId` 仍有效。
|
|
97
97
|
|
|
98
98
|
## 完成后自检
|
|
@@ -88,7 +88,7 @@ description: 工作中把已落地能力解析进知识库(多文件聚合)
|
|
|
88
88
|
用户输入 6 个文件(代码、配置、旧文档混合),其中 2 个路径不可读。
|
|
89
89
|
|
|
90
90
|
- 先继续处理可读文件,初稿中明确列出不可读路径和缺口,不因部分失败中断全流程。
|
|
91
|
-
- 若发现已有 `.Knowledge/stock-docs
|
|
91
|
+
- 若发现已有 `.Knowledge/stock-docs/<能力名>_终稿.md`:优先在该终稿上修订,而不是新建重复终稿。
|
|
92
92
|
- 用户要求“先审初稿”:必须停在初稿,等待确认后再生成终稿并进入 `f2s-ctx-build` 同步。
|
|
93
93
|
|
|
94
94
|
## 约束
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: f2s-doc-milestone
|
|
3
|
+
description: 据 req-docs、git log、.task 与知识库主题语义生成里程碑(《项目里程碑模版》);触发:f2s-doc-milestone、生成项目里程碑、里程碑。命令后可附语义化范围。本技能固定子 agent 生成、主 agent 验证,不受 flow2spec.config 编排开关影响
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
> 执行口径:读 `.Knowledge/template/项目里程碑模版.md`;落盘 **仅** `.Knowledge/stock-docs/<范围名>里程碑.md`(无第二路径参数)。
|
|
7
|
+
|
|
8
|
+
## 编排(固定,不受项目配置影响)
|
|
9
|
+
|
|
10
|
+
**本技能不受** `flow2spec.config.json` 中 **`subAgent`**、**`switchAgentVerification`**(及旧键 `subAgentVerification`)**影响**:无论其为 `true` 或 `false`,**一律**按下述分工执行,**禁止**因配置改为「全主会话」或「子 agent 自验即结束」。
|
|
11
|
+
|
|
12
|
+
| 角色 | 步骤 | 职责 |
|
|
13
|
+
| --- | --- | --- |
|
|
14
|
+
| **主 agent** | 0、3、4 | 读模版与知识库主题索引、解析范围、派子、**验证**、必要时修订、回复用户 |
|
|
15
|
+
| **子 agent** | 1、2 | 采集四源、套模版、**Write 初稿** |
|
|
16
|
+
|
|
17
|
+
1. **主 agent**:步骤 0 → 下发「采集契约」→ 子 agent 步骤 1–2 落盘初稿。
|
|
18
|
+
2. **主 agent**:步骤 3 对照四源与「重要节点清单」验证(不全文重写;补缺、纠偏、「待确认」)→ 步骤 4 回复。
|
|
19
|
+
3. 子 agent **禁止**宣称「里程碑已验收完成」;终稿以主 agent 验证后为准。
|
|
20
|
+
|
|
21
|
+
> 步骤 0 仍 **`Read("flow2spec.config.json")`**(满足 `f2s-config-check` 前置),但**不得**用其中的 `subAgent` / `switchAgentVerification` 改变本技能编排。
|
|
22
|
+
|
|
23
|
+
**子 agent 采集契约(主 agent 派子前写入 prompt)**
|
|
24
|
+
|
|
25
|
+
| 字段 | 内容 |
|
|
26
|
+
| --- | --- |
|
|
27
|
+
| `scope` | 用户语义范围一句 |
|
|
28
|
+
| `outputPath` | `stock-docs/<范围名>里程碑.md` |
|
|
29
|
+
| `sources` | 见下文「四源」;**须含知识库主题语义** |
|
|
30
|
+
| `template` | `.Knowledge/template/项目里程碑模版.md`(不写模版顶部说明 blockquote) |
|
|
31
|
+
| `delivery` | 完整 Markdown,可直接 `Write` 至 `outputPath` |
|
|
32
|
+
| `stagePolicy` | 见下文「阶段粒度」;契约中须复述一句 |
|
|
33
|
+
|
|
34
|
+
## 阶段粒度(必须,写入契约)
|
|
35
|
+
|
|
36
|
+
里程碑 **Mx 仅记录功能/能力变更**:当前仓库(或用户指定范围内)**已落地或可核验**的交付,例如模块/接口/数据模型/领域行为/知识库路由等,且须在四源中有依据。
|
|
37
|
+
|
|
38
|
+
**不得**单独占一行总览或独立 `## Mx ·` 的阶段类型(无四源交付支撑时禁止臆造;有交付也不得拆成「纯测试/纯联调」阶段):
|
|
39
|
+
|
|
40
|
+
- 联调、集成测试、UAT、回归、验收、提测、上线检查(仅过程、无功能 diff)
|
|
41
|
+
- 仅环境/运维动作(执行 DDL、填配置、发版窗口、跨仓排期)且**无**本范围功能交付
|
|
42
|
+
- 以「稳定化 / 工程化 / 收尾」为名、实质仅为上述过程性工作的阶段
|
|
43
|
+
|
|
44
|
+
**合并规则**:同一次能力迭代内的工程性改动(如 id 类型对齐、分页格式、锁与并发)**并入**对应功能阶段正文,不另起「联调 / 测试 / 验收」阶段。
|
|
45
|
+
|
|
46
|
+
**缺口处理**:四源仅提及待联调、待验收、环境待补齐而无本范围功能交付 → **不写**对应 Mx;可在 **待确认** 列一句,**禁止**用「计划项」填充总览表。
|
|
47
|
+
|
|
48
|
+
## 四源(采集与验证均须覆盖)
|
|
49
|
+
|
|
50
|
+
| 源 | 读什么 | 里程碑里怎么用 |
|
|
51
|
+
| --- | --- | --- |
|
|
52
|
+
| **req-docs** | 范围内 `.Knowledge/req-docs/*.md` | 需求/方案节点、交付摘要 |
|
|
53
|
+
| **git** | `git log --no-merges`、`git tag -l`、`package.json` 版本 | 时间线、大版本/tag、提交锚点 |
|
|
54
|
+
| **`.task`** | `todo.json`、`active/`、`completed/` 下 `task.md` 等 | 任务闭环、已交付步骤 |
|
|
55
|
+
| **知识库主题(语义)** | 见下「主题索源」 | 与 index/manifest 已登记能力对齐,避免漏写「库里已有语义」的阶段 |
|
|
56
|
+
|
|
57
|
+
### 主题索源(知识库语义,主 agent 步骤 0 须读;子 agent 步骤 1 须读)
|
|
58
|
+
|
|
59
|
+
1. **`Read(".Knowledge/manifest-routing.json")`**:提取 `topicPaths`、`taskToTopicRules`(及与范围相关的 `topicDependencies`)。
|
|
60
|
+
2. **`Read(".Knowledge/index.md")`**:至少「**主题一览**」表(主题 id、适用场景、关联文档摘要)。
|
|
61
|
+
3. **按需 `Read` `.Knowledge/topics/<topic>.md`**:与范围或 manifest 命中相关的摘要(**禁止**为枚举遍历整个 `topics/`;仅读 manifest/index 已点名的主题,通常 ≤ 全表行数)。
|
|
62
|
+
4. 将主题语义归纳为「能力/场景节点」列表,供子 agent 写入契约;里程碑阶段须能覆盖或于「待确认」说明与某主题相关的缺口。
|
|
63
|
+
|
|
64
|
+
文首 **「索源」** 一行须写明:本轮读了哪些 topic(id 或 `topics/*.md` 路径),或「无 `.Knowledge` 路由」。
|
|
65
|
+
|
|
66
|
+
## 入参(仅一个,可选)
|
|
67
|
+
|
|
68
|
+
命令名之后可跟**一段语义化范围**(自然语言):
|
|
69
|
+
|
|
70
|
+
| 用户意图 | 示例 | 落盘文件名 |
|
|
71
|
+
| --- | --- | --- |
|
|
72
|
+
| 整个项目(默认) | 不传 / `整个项目` / `全项目` | `项目里程碑.md` |
|
|
73
|
+
| 某一需求或能力 | `回调改造` / `登录模块` | `<简述>里程碑.md` |
|
|
74
|
+
|
|
75
|
+
**文件名规则**:后缀 `里程碑.md`;整个项目 → 前缀 `项目`;单一需求 → 语义或 req 标题简述(≤ 20 字)。
|
|
76
|
+
|
|
77
|
+
**范围收窄**:在四源上按关键词、路径、日期过滤;未传范围则四源全量可追溯(主题索源读 index 全表 + manifest,topics 按需展开)。
|
|
78
|
+
|
|
79
|
+
## 步骤 0:前置(主 agent)
|
|
80
|
+
|
|
81
|
+
1. **`Read("flow2spec.config.json")`**(不采纳其 `subAgent` / `switchAgentVerification` 编排本技能)
|
|
82
|
+
2. **`Read(".Knowledge/template/项目里程碑模版.md")`**
|
|
83
|
+
3. **主题索源**(见上:manifest → index 主题一览 → 按需 topics 摘要)
|
|
84
|
+
4. 解析范围 → 确定默认路径 **`stock-docs/<范围名>里程碑.md`**。
|
|
85
|
+
5. **相似文件检查(落盘前必做)**:列出 `.Knowledge/stock-docs/` 下已有 `*里程碑*.md`(含 `*里程碑.md`)。若存在与本次**目标路径相同**或**语义相近**的文件(例如同为「整个项目」的 `项目里程碑.md` 与另一份全项目里程碑、或前缀/范围关键词高度重叠),**须先询问用户**,**禁止**静默覆盖或擅自另存:
|
|
86
|
+
- **覆盖**:沿用原路径,子 agent 写入时覆盖该文件(验证后仍以该路径为终稿)。
|
|
87
|
+
- **另生成一份**:改用新路径(建议:范围简述 + `_YYYYMMDD` + `里程碑.md`,或用户指定的 `<简述>里程碑.md`),并在契约中更新 `outputPath`。
|
|
88
|
+
- 无相似文件,或仅有一个且与目标路径完全一致且用户本轮已明确要「重新生成/覆盖」→ 可不再追问,按默认路径继续。
|
|
89
|
+
6. 向用户复述:范围、**最终** `outputPath`、已读主题数量;若做了相似文件询问,待用户选择后再继续。
|
|
90
|
+
7. 组装「采集契约」(含最终 `outputPath`、主题节点列表)并 **派子 agent** 执行步骤 1–2
|
|
91
|
+
|
|
92
|
+
## 步骤 1:采集索源(子 agent)
|
|
93
|
+
|
|
94
|
+
- 按契约完成 **四源** 采集;git **须** 对照 tag 与主版本/semver 跃迁(以本仓库 `git tag` / `package.json` 为准)。
|
|
95
|
+
- 主题语义:核对 manifest/index 中能力与 git/req/task 是否同窗出现;暂无法对齐的记入内部备注供「待确认」。
|
|
96
|
+
|
|
97
|
+
索源为空:仍生成文档,「待确认」说明缺口;**禁止**训练数据填交付。
|
|
98
|
+
|
|
99
|
+
## 步骤 2:套模版并落盘(子 agent)
|
|
100
|
+
|
|
101
|
+
1. `# (范围名)里程碑`;文首范围、时间、**索源(含本轮 topics)**。
|
|
102
|
+
2. 时间升序 **M1、M2…**;总览表与各 `## Mx ·` 一一对应;**每阶段标题与一句话须体现功能变更**,不得用「联调 / 测试 / 验收」作阶段名(见「阶段粒度」)。
|
|
103
|
+
3. 不写模版顶部说明 blockquote。
|
|
104
|
+
4. **`Write`** 至 `outputPath`。
|
|
105
|
+
|
|
106
|
+
## 步骤 3:验证(主 agent,须执行)
|
|
107
|
+
|
|
108
|
+
子 agent 落盘后 **必须**验证:**重要节点**是否错误、遗漏或合并过度。
|
|
109
|
+
|
|
110
|
+
1. **重读四源要点**:git tag/commit、req/task、**index 主题一览 + 已读 topics** 与文稿对照。
|
|
111
|
+
2. **对照「重要节点清单」**:
|
|
112
|
+
|
|
113
|
+
| 类别 | 检查什么 |
|
|
114
|
+
| --- | --- |
|
|
115
|
+
| 版本 / tag | 四源中的 major tag、`package.json` 版本跃迁是否在总览或 Mx 中体现 |
|
|
116
|
+
| 路线/架构转折 | 四源中出现的目录重组、技术路线替换等重大变更是否单独或合并体现 |
|
|
117
|
+
| 功能交付 | req/git/task 中可核验的能力是否在 Mx 中有对应阶段 |
|
|
118
|
+
| **知识库主题** | 若存在 manifest/index:与范围相关的主题是否覆盖或列入「待确认」 |
|
|
119
|
+
| 任务闭环 | 若存在 `.task/`:已归档任务是否在相关 Mx 中体现 |
|
|
120
|
+
| 依据可追溯 | 每 Mx 交付能否在四源中找到 |
|
|
121
|
+
| 时间线 | 先后合理;同窗多版本是否需拆分 |
|
|
122
|
+
| **阶段粒度** | 是否存在仅联调/测试/验收/环境而无功能交付的 Mx;若有 **删除或并入** 相邻功能阶段 |
|
|
123
|
+
|
|
124
|
+
3. 遗漏 → 补 Mx(**须为功能变更**);错误 → 按四源修正;无法确认 → 「待确认」(**禁止**用假 Mx 代替)。
|
|
125
|
+
4. 验证或修订完成后方可步骤 4。
|
|
126
|
+
|
|
127
|
+
## 步骤 4:回复(主 agent)
|
|
128
|
+
|
|
129
|
+
落盘路径、阶段数、验证结论(一句)、「待确认」摘要。
|
|
130
|
+
|
|
131
|
+
## 禁止项
|
|
132
|
+
|
|
133
|
+
- 禁止用 `subAgent` / `switchAgentVerification` 跳过子生成或跳过主验证。
|
|
134
|
+
- 禁止在 `stock-docs/` 已存在**相似里程碑**且用户未选择「覆盖 / 另生成一份」前派子 agent 或 `Write`。
|
|
135
|
+
- 禁止第二参数改输出路径(路径由范围 + 相似文件询问结果确定);禁止写入 `req-docs`。
|
|
136
|
+
- 禁止未读四源写交付;禁止子 agent 未经验证即宣称完成。
|
|
137
|
+
- 禁止遍历整个 `matchers/` 或全仓 topics 代替「manifest + index + 按需 topics」。
|
|
138
|
+
- 禁止用训练数据或其它项目的里程碑结构替代**当前仓库**四源;禁止代写与本次 `outputPath` 无关的其它 `stock-docs` 文档。
|
|
139
|
+
- 禁止单独设立联调 / 集成测试 / UAT / 验收 / 纯环境运维类 Mx;禁止在无四源功能交付时写「计划项」阶段。
|
|
@@ -46,7 +46,7 @@ git diff HEAD
|
|
|
46
46
|
|
|
47
47
|
**存在时执行覆盖检查:**
|
|
48
48
|
|
|
49
|
-
1. 从 `git diff HEAD` 及 untracked
|
|
49
|
+
1. 从 `git diff HEAD` 及 untracked 文件路径推断本次变更涉及的**功能模块**(以仓库内目录/包名为准,勿臆测未出现的业务名)。
|
|
50
50
|
2. 读取 `.Knowledge/topics/` 目录列表与 `.Knowledge/stock-docs/` 目录列表。
|
|
51
51
|
3. 对比步骤 1 推断出的功能模块,判断对应文档是否已在知识库中登记。
|
|
52
52
|
4. 得出结论:**已覆盖 / 部分覆盖 / 未覆盖**。
|
|
@@ -88,7 +88,7 @@ description: 可显式给出能力或零输入推断;先输出知识库更新
|
|
|
88
88
|
|
|
89
89
|
用户仅说“/f2s-kb-sync 同步一下”,未给能力清单。
|
|
90
90
|
|
|
91
|
-
- 步骤 1
|
|
91
|
+
- 步骤 1 先做最小推断(例如从 `git diff` / 目录名归纳 1~2 个能力域),并给出推断依据。
|
|
92
92
|
- 步骤 2 必须输出大纲并等待“确认”;未确认前禁止写入任何 `.Knowledge` 文件。
|
|
93
93
|
- 用户确认后只执行大纲内条目;若用户中途缩小范围,未执行项写入收尾摘要。
|
|
94
94
|
|
|
@@ -32,4 +32,4 @@ description: 文档目录 stock-docs 与 req-docs 分工;触发词:stock-doc
|
|
|
32
32
|
|
|
33
33
|
## 详细约定
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
以本技能对照表与配置根 **`skills/<技能名>/SKILL.md`**(如 **f2s-ctx-build**、**f2s-doc-add**、**f2s-doc-arch**)为准;`.Knowledge/topics/f2s-stock-docs-vs-req-docs.md` 为路由摘要。
|