ai-project-manage-cli 6.0.64 → 7.0.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-project-manage-cli",
3
- "version": "6.0.64",
3
+ "version": "7.0.2",
4
4
  "description": "命令行工具:后续用于调用平台后端 API 完成运维与自动化操作",
5
5
  "type": "module",
6
6
  "private": false,
@@ -6,24 +6,22 @@
6
6
 
7
7
  #### 轻量回复(被 @ 询问、确认、同步进展)
8
8
 
9
- 1. 读取 `.apm/sessions/<会话ID>/session.yaml`
10
- 2. 读取 `.apm/rules/reply.md`
11
- 3. **立即**用 `append_message` 工具回复(可先简短确认,再补充)
12
- 4. 按需阅读 `docs/` 下的文档,有进展继续调用 `append_message`
9
+ 1. 读取 `.apm/rules/reply.md`
10
+ 2. **立即**回复(可先简短确认,再补充)
11
+ 3. 按需阅读 `.apm/project/` 下的文档,有进展继续回复
13
12
 
14
13
  #### 重任务(开发、写方案、评审、部署)
15
14
 
16
- 1. 读取 `.apm/sessions/<会话ID>/session.yaml`,必要时读取 `messages.xml` 了解历史
17
- 2. 根据你的名字从 `session.yaml` 的 `members` 中找到你对应的 **description**(智能体描述,非人设提示词)
18
- 3. 根据角色描述完成用户指定的任务
19
- 4. 任务有阶段性进展或者任务完成后必须回复消息(具体见规则 `reply.md`)
20
- 5. 写工作日志(具体见规则 `write_doc.md`)
15
+ 1. 按需阅读 `.apm/project/manifest.json` 与相关项目文档
16
+ 2. 根据角色描述完成用户指定的任务
17
+ 3. 任务有阶段性进展或者任务完成后必须回复消息(具体见规则 `reply.md`)
18
+ 4. 写工作日志(具体见规则 `write_doc.md`)
21
19
 
22
- **禁止**在未回复前先读完所有 docs。有进展就先调用 `append_message`。
20
+ **禁止**在未回复前先读完所有 docs。有进展就先回复。
23
21
 
24
22
  ### 目录指引
25
23
 
26
- - 全局文档指引(.apm/\*)
24
+ - 全局文档指引(`.apm/*`)
27
25
 
28
26
  - 技能: `.apm/skills/<技能名称>/SKILL.md`,一些常用的工作方法,根据你当前的角色按需阅读
29
27
  - 规则: `.apm/rules/*`
@@ -32,14 +30,5 @@
32
30
 
33
31
  - 仓库项目上下文(`.apm/project/`):
34
32
  - 索引: `.apm/project/manifest.json` — 本仓库在平台登记的文档列表
35
- - 文档文件: `.apm/project/{path}` — 与 manifest 中 path 对应;`apm pull` 自动同步,`apm connect` 消息结束后自动推回平台
33
+ - 文档文件: `.apm/project/{path}` — 与 manifest 中 path 对应
36
34
  - 任务涉及菜单名、路由、业务术语等时,**先 Read manifest 与相关文档**,禁止猜测路径
37
-
38
- - 本轮任务需要关注的文档指引(.apm/sessions/<会话 ID>/\*):
39
- - 本轮会话状态: `session.yaml`,从这里可以看到每个成员的信息,找到可以协助你一起解决问题的人,可以结合 `RULE.md`一起看
40
- - 群文档: `docs/xxxx.md`,当需要相关上下文可以在这里查找,按需阅读
41
- - 附件列表: `attachments/*`,当有文档中提及附件时,从这里查找
42
- - 协作规则: `RULE.md`,在这里可以看到不同成员的协作规则,从而找其他成员协助你一起解决问题,按需阅读
43
- - 协作 TODO: `TODO.md`,跨轮次任务清单(待办与已完成项),按需阅读
44
- - 历史消息记录: `messages.xml`,历史消息列表,数据量很大,按需阅读
45
- - 初始目标: `TASK.md`,最初的目标,不一定具体,团队成员会有人负责让这个任务变得具体,仅供参考。如果你是相关的角色,则你需要先读取这个目标,然后规划接下来的动作。
@@ -1,7 +1,7 @@
1
1
  ## 写工作日志
2
2
 
3
3
  命名方式: <你的名字>-工作日志.md
4
- 保存位置: .apm/sessions/<会话 ID>/docs/<文件名>
4
+ 保存位置: `.apm/project/docs/<文件名>`
5
5
  日志格式:见如下 markdown 中间的内容
6
6
 
7
7
  ```markdown
@@ -13,13 +13,13 @@
13
13
  ## 写其他文件
14
14
 
15
15
  命名方式: <你的名字>-<主题>.md
16
- 保存位置: .apm/sessions/<会话 ID>/docs/<文件名>
16
+ 保存位置: `.apm/project/docs/<文件名>`
17
17
  文档内容格式: 根据你的主题来,不限制,禁止记流水账。
18
18
 
19
19
  ## SQL 变更文档(仅后端)
20
20
 
21
21
  固定文件名: `SQL.md`
22
- 保存位置: `.apm/sessions/<会话 ID>/docs/SQL.md`
22
+ 保存位置: `.apm/project/docs/SQL.md`
23
23
  适用场景: 后端开发涉及 SQL 改动(DDL/DML、表结构、Mapper/XML 中 SQL 等)时必须产出或追加更新,详见 `.apm/skills/apm-dev/SKILL.md` 中「后端 SQL 变更文档」章节。
24
24
  格式要求:
25
25
 
@@ -29,7 +29,7 @@
29
29
 
30
30
  ## 文档同步
31
31
 
32
- 保存到 `docs/` 后,`apm connect` 会在每轮 Agent 结束时自动推送到平台,无需额外操作。
32
+ 保存到 `.apm/project/` 后,`apm connect` 会在每轮 Agent 结束时自动推送到平台,无需额外操作。
33
33
 
34
34
  ## 注意事项
35
35
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  按工作项中的 **`plans/tasks.md`** 驱动实现:**读规划 → 写代码 → 对账元数据 → 勾选 → 单独 commit**,直至全部完成、**停止执行**或硬阻塞。
4
4
 
5
- **工作项根目录**:`.apm/sessions/<sessionId>/`(下文路径均相对该目录)
5
+ **工作项根目录**:`.apm/project/`(下文路径均相对该目录)
6
6
 
7
7
  | 文件 | 路径 | 用途 |
8
8
  | ----------------- | ------------------- | ----------------------------------------------------------------------------------------- |
@@ -14,8 +14,6 @@
14
14
 
15
15
  **前置**:`plans/tasks.md` 须由 **apm-propose** 生成,格式见 `.apm/skills/apm-propose/tasks.md`(`- [ ]`、元数据子列表等)。
16
16
 
17
- **sessionId**:若本轮未提供——对话中能**唯一**确定 `.apm/sessions/` 下目录名则用之,否则**停止**(不 AskUserQuestion)。确定后于**首次回复**写明 **使用工作项:`<sessionId>`** 即可,不必单独成步。
18
-
19
17
  **单任务循环**:说明当前项 → 最小实现 → 对账(需求编号 / 预期与实际路径 / 完成标准)→ `- [x]` → **一项待办 = 一个 commit**。
20
18
 
21
19
  ---
@@ -48,16 +46,16 @@
48
46
 
49
47
  开始**第一个**未勾选任务前,至少 **Read** `docs/PRD.md` 及当前项所需的 `plans/design.md` / `plans/specs/` 片段(见任务 **需求编号**)。不要求每项任务重读全部规划;以**当前任务行** + 缺口再 Read 为准。
50
48
 
51
- #### 单会话读取策略
49
+ #### 单轮读取策略
52
50
 
53
51
  | 文件 | 建议 |
54
52
  | ---------------------------------- | -------------------------------------------------------------------------------- |
55
- | `docs/PRD.md` | 本会话首次实现前至少读一次 |
53
+ | `docs/PRD.md` | 本轮首次实现前至少读一次 |
56
54
  | `plans/design.md` / `plans/specs/` | 连续多项时,已读过且无疑虑可不重复全文;按任务元数据 **Read(偏移)** 或再读全文 |
57
55
 
58
56
  ### 步骤 3:展示进度并开始循环
59
57
 
60
- 展示 **工作项**、**N/M 已完成**(由勾选统计)、**当前将处理**的下一条 `- [ ]`(含编号如 `2.1`)。
58
+ 展示 **N/M 已完成**(由勾选统计)、**当前将处理**的下一条 `- [ ]`(含编号如 `2.1`)。
61
59
 
62
60
  对每条未勾选任务(建议自上而下):
63
61
 
@@ -70,17 +68,17 @@
70
68
 
71
69
  ### 步骤 4:收尾
72
70
 
73
- - **全部完成**:进度 N/M、本会话已完成项摘要;**不**建议 MR/发布等后续流程。
71
+ - **全部完成**:进度 N/M、本轮已完成项摘要;**不**建议 MR/发布等后续流程。
74
72
  - **暂停**:按 **停止执行** 三节输出;无「可选后续」。
75
73
 
76
74
  ---
77
75
 
78
- ## 会话输出(示例)
76
+ ## 输出示例
79
77
 
80
78
  **进行中**
81
79
 
82
80
  ```
83
- ## 正在实施:<sessionId>
81
+ ## 正在实施
84
82
 
85
83
  处理任务 3/7:2.1 实现导出接口
86
84
  ✓ 任务完成 · commit <short-sha> <subject>
@@ -90,7 +88,7 @@
90
88
 
91
89
  ```
92
90
  ## 实现完成
93
- **工作项:** <sessionId> · **进度:** 7/7 ✓
91
+ **进度:** 7/7 ✓
94
92
  (每项待办均已对应独立 commit。)
95
93
  ```
96
94
 
@@ -113,4 +111,4 @@
113
111
  - 未读清当前任务依赖前**不要**盲改;未对账前**不要**勾选完成。
114
112
  - 验证失败或依据不足时保持 `- [ ]` 并写明缺口;元数据缺失时在实现前尽量补全或按 tasks 模板推断并注明。
115
113
  - **不要**因发现规划与代码不符而主动改 `plans/` 下规划文件或建议改哪份;**停止**并交还用户。
116
- - **可分段调用**:部分完成后结束会话,下次同一工作项继续;规划修订由用户在流程外完成后再运行本技能。
114
+ - **可分段调用**:部分完成后结束本轮,下次同一工作项继续;规划修订由用户在流程外完成后再运行本技能。
@@ -4,12 +4,11 @@
4
4
 
5
5
  ### 步骤 1: 获取实现计划与协作内容
6
6
 
7
- 1. 用 **Read** 工具阅读本端计划:前端读 `.apm/sessions/<会话ID>/docs/FRONTEND-PLAN.md`,后端读 `docs/BACKEND-PLAN.md`;计划不存在则退出流程并回复说明(兼容旧流程:若存在 `PRD.md` + `FRONTEND.md` / `BACKEND.md` + `API.md`,按旧文档执行)。
8
- 2. 前端涉及接口对接时,以 `docs/API.md` 为唯一契约来源,**不等后端部署完成**;`API.md` 不存在或字段没写清时 `@后端` 补充,禁止自行猜测或在计划中重复编写接口定义。
7
+ 1. 用 **Read** 工具阅读本端计划:前端读 `.apm/project/docs/FRONTEND-PLAN.md`,后端读 `.apm/project/docs/BACKEND-PLAN.md`;计划不存在则退出流程并回复说明(兼容旧流程:若存在 `PRD.md` + `FRONTEND.md` / `BACKEND.md` + `API.md`,按旧文档执行)。
8
+ 2. 前端涉及接口对接时,以 `.apm/project/docs/API.md` 为唯一契约来源,**不等后端部署完成**;`API.md` 不存在或字段没写清时 `@后端` 补充,禁止自行猜测或在计划中重复编写接口定义。
9
9
  3. **假设门禁(开发前必须检查)**:查看计划「依据与假设」章节——
10
- - 「假设」仍有未确认项:**Read** `.apm/sessions/<会话ID>/messages.xml`,查找项目经理是否已回复确认;
11
- - 项目经理已回复:先按 `.apm/skills/apm-write-plan/SKILL.md` 步骤 5 把确认结果**回填进计划文档并同步**(确认的假设移入「依据」,否定的修订实现步骤与白名单),然后再开发;
12
- - 项目经理未回复:`@项目经理` 列出待确认假设,**停止本次开发**。
10
+ - 「假设」仍有未确认项:`@项目经理` 列出待确认假设,**停止本次开发**;
11
+ - 项目经理已回复:先按 `.apm/skills/apm-write-plan/SKILL.md` 步骤 5 把确认结果**回填进计划文档并同步**(确认的假设移入「依据」,否定的修订实现步骤与白名单),然后再开发。
13
12
  严禁带着未回填的澄清直接开发——项目经理在聊天里给过的口径若没落进计划,开发与 diff 评审都不会认。
14
13
 
15
14
  ### 步骤 2: 明确开发模式
@@ -30,25 +29,25 @@
30
29
 
31
30
  ### 步骤 3: 如果前一步判定为 **Quick 开发** 才(在子 Agent 中)执行本步骤,否则执行下一步:
32
31
 
33
- - 父 Agent 已通过 **Read** 掌握本端计划;若启动新子 Agent,在委派提示中写明会话 ID、消息 ID、工作项路径、以及「实现须严格对照计划,**只允许改动计划『改动文件白名单』中列出的文件**;完成后若有代码改动须单独 `git commit`」。
32
+ - 父 Agent 已通过 **Read** 掌握本端计划;若启动新子 Agent,在委派提示中写明工作项路径(`.apm/project/`)、以及「实现须严格对照计划,**只允许改动计划『改动文件白名单』中列出的文件**;完成后若有代码改动须单独 `git commit`」。
34
33
  - 使用 **Task** 工具,`subagent_type: generalPurpose`,**readonly: false**,委派子 Agent:
35
34
  - 按需 **Read** 本端计划文档。
36
35
  - 按计划直接改代码;遵守本仓库构建与依赖约定(AGENTS.md)。
37
36
  - **白名单约束**:只改计划白名单内的文件。开发中确需新增文件或改动白名单外文件,先更新计划文档的白名单(写明原因),再动手;**禁止悄悄越界**。
38
- - **Git**:实现与自洽验收通过后,若有代码改动,**立即 `git add` + `git commit` 一次**(Quick 通常为单次交付,**一次实现 = 一个 commit**;勿拆成无意义碎 commit)。提交信息建议包含 `sessionId`(可从 `session.yaml` 获取)与需求摘要。
39
- - **后端 SQL 文档**(仅后端):改动涉及 SQL 时,须 **Write** `docs/SQL.md`(见下文「后端 SQL 变更文档」)。
37
+ - **Git**:实现与自洽验收通过后,若有代码改动,**立即 `git add` + `git commit` 一次**(Quick 通常为单次交付,**一次实现 = 一个 commit**;勿拆成无意义碎 commit)。提交信息建议包含需求摘要。
38
+ - **后端 SQL 文档**(仅后端):改动涉及 SQL 时,须 **Write** `.apm/project/docs/SQL.md`(见下文「后端 SQL 变更文档」)。
40
39
  - 完成后在返回中说明:改了哪些路径、与白名单的对账结果(逐文件列出)、是否产出/更新 `SQL.md`、是否通过本地可执行的检查(若子 Agent 跑了构建/测试则写明结果);若有 commit,写明 **short-sha** 与 **subject**,无代码改动则注明跳过 commit。
41
40
 
42
41
  ### 步骤 4: 如果前一步判定为 **Spec 开发** 才(在子 Agent 中)执行本步骤,否则执行下一步:
43
42
 
44
43
  1. 父 Agent **Read** `.apm/skills/apm-propose/SKILL.md` 和 `.apm/skills/apm-apply-change/SKILL.md`
45
- 2. **子 Agent A(规划)**:Task `generalPurpose`,提示其自行 **Read** `.apm/skills/apm-propose/SKILL.md` 并完整遵循:在 `plans/` 下生成 **proposal、design、specs、tasks** 等工件。
46
- 3. **子 Agent B(实现)**:待 A 成功落盘后,再 Task `generalPurpose`,提示其自行 **Read** `.apm/skills/apm-apply-change/SKILL.md` 并完整遵循:按 **`plans/tasks.md`** 驱动实现与勾选;遵守该技能中的停止条件与 commit 约定;同样遵守计划「改动文件白名单」;**后端**改动涉及 SQL 时须产出 `docs/SQL.md`(见下文「后端 SQL 变更文档」)。
44
+ 2. **子 Agent A(规划)**:Task `generalPurpose`,提示其自行 **Read** `.apm/skills/apm-propose/SKILL.md` 并完整遵循:在 `.apm/project/plans/` 下生成 **proposal、design、specs、tasks** 等工件。
45
+ 3. **子 Agent B(实现)**:待 A 成功落盘后,再 Task `generalPurpose`,提示其自行 **Read** `.apm/skills/apm-apply-change/SKILL.md` 并完整遵循:按 **`.apm/project/plans/tasks.md`** 驱动实现与勾选;遵守该技能中的停止条件与 commit 约定;同样遵守计划「改动文件白名单」;**后端**改动涉及 SQL 时须产出 `.apm/project/docs/SQL.md`(见下文「后端 SQL 变更文档」)。
47
46
  4. 若 **apm-propose** 未产出可用 **`plans/tasks.md`**,不得强行进入 **apm-apply-change**;表格中标记阻塞原因。
48
47
 
49
48
  ### 后端 SQL 变更文档(仅后端工程师)
50
49
 
51
- 若本次改动涉及 SQL(DDL/DML、表结构、索引、数据修复、Mapper/XML 中新增或修改 SQL 语句等),开发阶段必须 **Write** `.apm/sessions/<会话ID>/docs/SQL.md`,内容包括:
50
+ 若本次改动涉及 SQL(DDL/DML、表结构、索引、数据修复、Mapper/XML 中新增或修改 SQL 语句等),开发阶段必须 **Write** `.apm/project/docs/SQL.md`,内容包括:
52
51
 
53
52
  - **目标数据库**(库名/实例名、类型如 MySQL;同一变更涉及多库时分别标注)
54
53
  - 变更摘要(改了什么表/数据、为什么)
@@ -74,7 +73,7 @@ ALTER TABLE inspection_class ADD COLUMN is_project_add VARCHAR(1) DEFAULT '0';
74
73
  ```
75
74
  ````
76
75
 
77
- `BACKEND-PLAN.md` 中不写大段 SQL,只可在实现步骤中注明「须产出 SQL.md」。若会话 `docs/` 下已有 `SQL.md`,在其上追加本次变更,勿另建其他 SQL 文档。
76
+ `BACKEND-PLAN.md` 中不写大段 SQL,只可在实现步骤中注明「须产出 SQL.md」。若 `.apm/project/docs/` 下已有 `SQL.md`,在其上追加本次变更,勿另建其他 SQL 文档。
78
77
 
79
78
  ### 步骤 5: 提交并 push 代码,保证工作区干净
80
79
 
@@ -86,7 +85,7 @@ ALTER TABLE inspection_class ADD COLUMN is_project_add VARCHAR(1) DEFAULT '0';
86
85
  开发完成的定义是以下三项**全部满足**,缺一不可:
87
86
 
88
87
  1. **构建通过**:执行本仓库的构建/检查命令(见 AGENTS.md 或部署文档),失败必须修复后重试。
89
- 2. **发布测试环境**:**Read** `.apm/skills/apm-deploy/SKILL.md` 并按其流程部署;**后端**涉及 SQL 变更时,须在回复中引用 `docs/SQL.md`,并写明待执行的 SQL 文件名或执行顺序。
88
+ 2. **发布测试环境**:**Read** `.apm/skills/apm-deploy/SKILL.md` 并按其流程部署;**后端**涉及 SQL 变更时,须在回复中引用 `.apm/project/docs/SQL.md`,并写明待执行的 SQL 文件名或执行顺序。
90
89
  3. **白名单对账**:在回复中逐文件列出本次改动与计划白名单的对应关系。
91
90
 
92
91
  **注意:不做联调。** 前后端各自按 `API.md` 交付,接口对不上属于契约或实现问题,由 diff 评审与人工验收暴露后打回修复;禁止自行发起「联调」「接口实测」类的开放式动作。
@@ -12,8 +12,8 @@
12
12
 
13
13
  ### 步骤 1:定位本次任务的改动
14
14
 
15
- 1. **Read** `.apm/sessions/<会话ID>/docs/` 下的 `BACKEND-PLAN.md` / `FRONTEND-PLAN.md`,拿到「改动文件白名单」。
16
- 2. 在工作目录执行 `git log --oneline -20`,找到本任务相关的 commit(提交信息中含会话 ID 或需求关键词)。
15
+ 1. **Read** `.apm/project/docs/` 下的 `BACKEND-PLAN.md` / `FRONTEND-PLAN.md`,拿到「改动文件白名单」。
16
+ 2. 在工作目录执行 `git log --oneline -20`,找到本任务相关的 commit(提交信息中含需求关键词)。
17
17
  3. `git diff <基线>..HEAD --stat` 与 `git diff <基线>..HEAD` 查看完整改动。
18
18
 
19
19
  ### 步骤 2:四项检查
@@ -23,7 +23,7 @@
23
23
  | **白名单对账** | diff 中出现白名单之外的文件,且计划未更新说明 → **不通过** |
24
24
  | **需求相关性** | 存在与本需求无关的改动(顺手重构、改格式、动了无关逻辑)→ **不通过** |
25
25
  | **计划落实** | 计划「实现步骤」中的关键点在 diff 中找不到对应实现 → **不通过** |
26
- | **SQL 文档** | **仅后端**:diff 涉及 SQL 改动(DDL/DML、表结构、Mapper/XML 中 SQL 等),但 `docs/SQL.md` 缺失、未标注目标数据库、与改动不一致、或 SQL 代码块含 `...`/「省略」占位 → **不通过** |
26
+ | **SQL 文档** | **仅后端**:diff 涉及 SQL 改动(DDL/DML、表结构、Mapper/XML 中 SQL 等),但 `.apm/project/docs/SQL.md` 缺失、未标注目标数据库、与改动不一致、或 SQL 代码块含 `...`/「省略」占位 → **不通过** |
27
27
 
28
28
  注意事项:
29
29
 
@@ -32,10 +32,10 @@
32
32
 
33
33
  ### 步骤 3:评审通过后创建 PR
34
34
 
35
- 评审**通过**后,先在工作目录执行(创建/更新本会话特性分支对应的 PR):
35
+ 评审**通过**后,先在工作目录执行(创建/更新本任务特性分支对应的 PR):
36
36
 
37
37
  ```bash
38
- apm create-pr --session <会话ID> --title "<需求摘要>" --content "<计划摘要 + 白名单对账 + 评审结论 + 测试环境地址>"
38
+ apm create-pr --title "<需求摘要>" --content "<计划摘要 + 白名单对账 + 评审结论 + 测试环境地址>"
39
39
  ```
40
40
 
41
41
  - 标题会自动加上 `[AI]` 标识,表明该 PR 由 AI 创建;同一分支已有开启的 PR 时会改为更新,不会重复创建。
@@ -2,7 +2,7 @@
2
2
 
3
3
  从 **PRD** 为事实来源,在 `plans/` 下产出四份规划工件(`docs/PRD.md` 除外),供 **apm-apply-change** 按 `plans/tasks.md` 勾选推进实现。
4
4
 
5
- **工作项根目录**:`.apm/sessions/<sessionId>/`(下文路径均相对该目录)
5
+ **工作项根目录**:`.apm/project/`(下文路径均相对该目录)
6
6
 
7
7
  | 工件 | 落盘路径 | 作用 | 依赖 | 撰写规范 |
8
8
  | ----------- | ----------------------- | ---------------------------------------------------------------------------------- | ----------------------------------------------- | ------------------------ |
@@ -33,14 +33,14 @@
33
33
  2. 撰写前 **Read** 依赖项及该工件**撰写规范**列中的 `./*.md`;写 `tasks` 前必要时 **SemanticSearch** / **Read** 仓库代码,使**预期改动路径**可落地。
34
34
  3. 全部完成后汇总:工作项路径、已创建文件、PRD 与各工件对应关系(一两句);回复含各工件一句话用途。
35
35
 
36
- #### 单会话读取策略
36
+ #### 单轮读取策略
37
37
 
38
- 同一会话连续跑完时可省略重复 Read,但**不得**省略依赖关系;断点续写或新会话须按上表**依赖**列重新 Read 磁盘文件。
38
+ 同一轮连续跑完时可省略重复 Read,但**不得**省略依赖关系;断点续写或新轮次须按上表**依赖**列重新 Read 磁盘文件。
39
39
 
40
40
  | 文件 | 建议 |
41
41
  | ---------------------------------- | ----------------------------------------------------- |
42
42
  | `docs/PRD.md` | 进入流程时至少读一次全文 |
43
- | `plans/proposal.md` | 写 design/specs 时,若本会话刚写入全文可不重复 Read |
43
+ | `plans/proposal.md` | 写 design/specs 时,若本轮刚写入全文可不重复 Read |
44
44
  | `plans/design.md` / `plans/specs/` | 写 `plans/tasks.md` 时若无可靠记忆须 Read;以落盘为准 |
45
45
 
46
46
  ---
@@ -2,31 +2,25 @@
2
2
 
3
3
  ### 步骤 1:确认身份
4
4
 
5
- 1. **Read** 工具阅读 `.apm/sessions/<会话ID>/session.yaml`
6
- 2. 从 `members` 中找到与**当前角色**对应的 `name` 和 `agent`(以 session.yaml 为准,不要猜)
7
- 3. 若无法确定自己的 `name`,停止流程并在回复中说明
5
+ 1. 根据 AGENTS.md 与当前对话上下文,确认自己的**角色**(agent)与**名字**(member)。
6
+ 2. 若无法确定,停止流程并在回复中说明。
8
7
 
9
- ### 步骤 2:提取本人发言
8
+ ### 步骤 2:收集本人贡献材料
10
9
 
11
- 1. **Read** 工具阅读 `.apm/sessions/<会话ID>/messages.xml`
12
- 2. 只保留 `name="<本人 name>"` 的 `<message>` 条目
13
- 3. 跳过 `content` 为空或仅有空白的内容
14
- 4. 按 `round` 属性升序排列(无 `round` 的放在最后)
15
- 5. 若有效消息少于 1 条,停止流程并在回复中说明「消息不足,无法复盘」及缺什么
16
-
17
- **messages.xml 过大时**:优先保留带 `round` 的消息;单条 `content` 超过 3000 字时,保留开头结论段与结尾总结段,中间用「…(已省略)…」代替,不要丢弃关键口径。
10
+ 1. **Read** `.apm/project/docs/` 下本人撰写的工作日志与相关文档(文件名含本人名字或本轮产出)。
11
+ 2. 结合当前对话中本人的回复与决策,提取可复用的口径与做法。
12
+ 3. 若有效材料少于 1 条,停止流程并在回复中说明「材料不足,无法复盘」及缺什么。
18
13
 
19
14
  ### 步骤 3:补充任务背景(按需)
20
15
 
21
- 1. **Read** 工具阅读 `.apm/sessions/<会话ID>/TASK.md`
22
- 2. 若存在 `docs/PRD.md`,Read 它,用于锚定「这次在解决什么业务问题」
23
- 3. 按需 Read `docs/` 下与本人产出相关的文档(如技术方案、评审意见),**不要**把全文复制进复盘
16
+ 1. **Read** `.apm/project/docs/PRD.md`(若存在),锚定「这次在解决什么业务问题」。
17
+ 2. 按需 **Read** `.apm/project/manifest.json` 及其他相关项目文档,**不要**把全文复制进复盘。
24
18
 
25
19
  ### 步骤 4:生成经验 Skill 草稿
26
20
 
27
21
  1. 用 **Read** 工具阅读 `.apm/skills/apm-recap/recap-template.md`
28
- 2. 严格按模板结构撰写,Write 到 `.apm/sessions/<会话ID>/docs/<name>-复盘技能.md`
29
- 3. 文件名中的 `<name>` session.yaml 中的 `name` 完全一致(含中文)
22
+ 2. 严格按模板结构撰写,**Write** 到 `.apm/project/docs/<name>-复盘技能.md`
23
+ 3. 文件名中的 `<name>` 与当前 member 名字完全一致(含中文)
30
24
 
31
25
  **内容原则**:
32
26
 
@@ -39,11 +33,11 @@
39
33
 
40
34
  在草稿文件**最顶部**写入元数据块(格式见 recap-template.md),包含:
41
35
 
42
- - `skill_name`:建议 `recap-<agent-key>-<topic-slug>`(英文小写、连字符;topic 取自任务主题,非 sessionId)
36
+ - `skill_name`:建议 `recap-<agent-key>-<topic-slug>`(英文小写、连字符;topic 取自任务主题)
43
37
  - `skill_description`:第三人称,说明适用场景与触发词,便于下次任务时被发现
44
38
  - `merge_strategy`:同业务域已有 Skill 时填 `upsert`,全新领域填 `create`
45
39
 
46
- **agent-key 参考**(按 session.yaml 的 agent 映射):
40
+ **agent-key 参考**(按当前角色映射):
47
41
 
48
42
  | agent | agent-key |
49
43
  | ---------- | --------- |
@@ -57,10 +51,10 @@
57
51
 
58
52
  回复中须包含:
59
53
 
60
- 1. 草稿路径:`.apm/sessions/<会话ID>/docs/<name>-复盘技能.md`
54
+ 1. 草稿路径:`.apm/project/docs/<name>-复盘技能.md`
61
55
  2. 建议的 `skill_name` 与 `skill_description`(与元数据块一致)
62
56
  3. 本次复盘摘要(3 ~ 5 条 bullet,概括解决了哪些口径/问题)
63
- 4. 发布提醒:草稿需由管理员发布到平台 **Skills** 后,执行 `apm update-skills`,其他会话中的同角色成员方可 Read 该经验技能
57
+ 4. 发布提醒:草稿需由管理员发布到平台 **Skills** 后,执行 `apm update-skills`,其他成员方可 Read 该经验技能
64
58
 
65
59
  ---
66
60
 
@@ -68,10 +62,9 @@
68
62
 
69
63
  - 本技能只生成**草稿**;Agent 无法直接写入平台 Skill 库或 `.apm/skills/`
70
64
  - 不得修改他人已写的 `docs/*-复盘技能.md`
71
- - 若 TASK/PRD 与 messages 矛盾,以**本人实际发言**为准,并在「已知踩坑」中注明口径尚未统一
65
+ - 若 PRD 与项目文档矛盾,以**本人实际产出与发言**为准,并在「已知踩坑」中注明口径尚未统一
72
66
 
73
67
  ## 何时使用本技能
74
68
 
75
69
  - 用户或项目经理要求复盘、总结、沉淀经验
76
- - 会话即将归档,需要将本次贡献转化为可复用技能
77
70
  - 任务阶段性完成,角色主动沉淀领域知识
@@ -1,6 +1,6 @@
1
1
  ## 复盘技能模板
2
2
 
3
- 生成 `.apm/sessions/<会话ID>/docs/<name>-复盘技能.md` 时,**完整文件**须包含下方「元数据块 + 正文」两部分。
3
+ 生成 `.apm/project/docs/<name>-复盘技能.md` 时,**完整文件**须包含下方「元数据块 + 正文」两部分。
4
4
 
5
5
  ---
6
6
 
@@ -10,9 +10,9 @@
10
10
  ---
11
11
  skill_name: recap-<agent-key>-<topic-slug>
12
12
  skill_description: <第三人称描述:谁在什么业务域的经验;什么需求场景下应阅读本技能。含 2~4 个触发关键词。>
13
- agent: <session.yaml 中的 agent,如「后端工程师」>
14
- member: <session.yaml 中的 name,如「医务小朱」>
15
- source_session: <会话 ID>
13
+ agent: <当前角色,如「后端工程师」>
14
+ member: <当前名字,如「医务小朱」>
15
+ source_project: <仓库或任务主题简述>
16
16
  merge_strategy: upsert
17
17
  generated_at: <YYYY-MM-DD>
18
18
  ---
@@ -77,11 +77,11 @@ generated_at: <YYYY-MM-DD>
77
77
 
78
78
  <!-- 只列文件名,不贴全文 -->
79
79
 
80
- - `PRD.md` / `TASK.md` / `<角色>-技术方案.md` / …
80
+ - `PRD.md` / `<角色>-技术方案.md` / …
81
81
 
82
82
  ## 来源
83
83
 
84
- - 会话:<source_session>
84
+ - 项目:<source_project>
85
85
  - 角色:<member>(<agent>)
86
86
  - 生成:<generated_at>
87
87
  ```
@@ -102,7 +102,7 @@ generated_at: <YYYY-MM-DD>
102
102
 
103
103
  - [ ] 元数据块完整,`skill_name` 为英文 slug
104
104
  - [ ] 「适用场景」陌生人能判断要不要读
105
- - [ ] 「已解决的口径与决策」至少 1 条,且来自本人 messages 或 docs
105
+ - [ ] 「已解决的口径与决策」至少 1 条,且来自本人产出或 docs
106
106
  - [ ] 全文无「第 N 轮」字样
107
107
  - [ ] 无编造:材料中没有的内容未写入
108
108
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  ### 步骤 1: 获取当前版本 PRD 的内容
4
4
 
5
- 先用 **Read** 工具阅读 `.apm/sessions/<会话ID>/docs/PRD.md`,如果存在则这个目录下的内容为需求文档,否则用 **Read** 工具阅读 `.apm/sessions/<会话ID>/TASK.md`,并把这个文件里面的内容视为需求文档
5
+ 先用 **Read** 工具阅读 `.apm/project/docs/PRD.md`,如果存在则这个目录下的内容为需求文档,否则 **Read** `.apm/project/manifest.json` 与相关项目文档,或 `@项目经理` 确认需求来源。
6
6
 
7
7
  ### 步骤 2: 理解代码,给出评审意见,具体要求如下:
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## 适用范围
4
4
 
5
- 测试智能体在前后端计划(`BACKEND-PLAN.md` / `FRONTEND-PLAN.md`)就绪后,编写 `docs/CHECKLIST.md`。
5
+ 测试智能体在前后端计划(`BACKEND-PLAN.md` / `FRONTEND-PLAN.md`)就绪后,编写 `.apm/project/docs/CHECKLIST.md`。
6
6
 
7
7
  这份清单是**给人做回归验收用的**,不是自动化测试用例:把需求的关键点过一遍即可,一条一行,人拿着它在测试环境点一遍就能判断需求做没做对。
8
8
 
@@ -12,8 +12,8 @@
12
12
 
13
13
  ### 步骤 1:读需求与计划
14
14
 
15
- 1. **Read** `.apm/sessions/<会话ID>/TASK.md` —— **以需求原文为准出题**,不要只从计划推导(计划理解错了,照着计划出的题也会跟着错)。
16
- 2. **Read** `docs/BACKEND-PLAN.md`、`docs/FRONTEND-PLAN.md`(存在哪份读哪份)。
15
+ 1. **Read** `.apm/project/docs/PRD.md`(或 manifest 指向的需求文档)—— **以需求原文为准出题**,不要只从计划推导(计划理解错了,照着计划出的题也会跟着错)。
16
+ 2. **Read** `.apm/project/docs/BACKEND-PLAN.md`、`.apm/project/docs/FRONTEND-PLAN.md`(存在哪份读哪份)。
17
17
 
18
18
  ### 步骤 2:交叉校验(这一步是打回机制)
19
19
 
@@ -25,7 +25,7 @@
25
25
 
26
26
  ### 步骤 3:按模板写清单
27
27
 
28
- **Read** `.apm/skills/apm-write-checklist/checklist-template.md`,按模板 **Write** `docs/CHECKLIST.md`。
28
+ **Read** `.apm/skills/apm-write-checklist/checklist-template.md`,按模板 **Write** `.apm/project/docs/CHECKLIST.md`。
29
29
 
30
30
  要求:
31
31
 
@@ -1,6 +1,6 @@
1
1
  ## 适用范围
2
2
 
3
- 前端工程师在 `API.md` 就绪后,编写 `.apm/sessions/<会话ID>/docs/FRONTEND.md`。
3
+ 前端工程师在 `API.md` 就绪后,编写 `.apm/project/docs/FRONTEND.md`。
4
4
 
5
5
  这是一份 **Plan**(实现计划),不是技术方案:说清楚改什么、分几步做、动哪些文件;接口细节读 `API.md`,代码细节留给 `apm-dev`。
6
6
 
@@ -8,9 +8,9 @@
8
8
 
9
9
  ## 工作流程
10
10
 
11
- 1. **Read** `docs/PRD.md`、`docs/API.md`;`API.md` 不存在则退出并 @ 后端。
11
+ 1. **Read** `.apm/project/docs/PRD.md`、`.apm/project/docs/API.md`;`API.md` 不存在则退出并 @ 后端。
12
12
  2. 按需调研代码库,确认改动入口。
13
- 3. **Read** `.apm/skills/apm-write-frontend-plan/plan-template.md`,按模板 **Write** `docs/FRONTEND.md`。
13
+ 3. **Read** `.apm/skills/apm-write-frontend-plan/plan-template.md`,按模板 **Write** `.apm/project/docs/FRONTEND.md`。
14
14
  4. 回复消息通知可进入开发。
15
15
 
16
16
  ---
@@ -6,10 +6,10 @@
6
6
 
7
7
  本技能合并了原 `apm-write-prd`、`apm-review`、`apm-write-frontend-plan`、`apm-write-backend-api` 四个技能的职能:评审(判断是否参与、发现口径缺口)和方案(怎么改、改哪些文件)一步完成。
8
8
 
9
- | 角色 | 产出文档 | 路径 |
10
- | ---- | ------------------------------------------------------------- | ------------------------------------- |
11
- | 后端 | `BACKEND-PLAN.md`(实现计划)+ `API.md`(联调契约,单独产出) | `docs/BACKEND-PLAN.md`、`docs/API.md` |
12
- | 前端 | `FRONTEND-PLAN.md` | `docs/FRONTEND-PLAN.md` |
9
+ | 角色 | 产出文档 | 路径 |
10
+ | ---- | ------------------------------------------------------------- | -------------------------------------------------------------------- |
11
+ | 后端 | `BACKEND-PLAN.md`(实现计划)+ `API.md`(联调契约,单独产出) | `.apm/project/docs/BACKEND-PLAN.md`、`.apm/project/docs/API.md` |
12
+ | 前端 | `FRONTEND-PLAN.md` | `.apm/project/docs/FRONTEND-PLAN.md` |
13
13
 
14
14
  **两份后端文档禁止合并**:`BACKEND-PLAN.md` 不写完整参数表 / JSON 示例;`API.md` 不写 Service / SQL 等实现细节。
15
15
 
@@ -19,18 +19,18 @@
19
19
 
20
20
  ### 步骤 1:判断本端是否需要参与
21
21
 
22
- **Read** `.apm/sessions/<会话ID>/TASK.md`(必要时结合群消息中项目经理的补充说明)。
22
+ **Read** `.apm/project/manifest.json` 与 `.apm/project/docs/` 下的需求文档(如 `PRD.md`);必要时 `@项目经理` 确认需求范围。
23
23
 
24
24
  - **不涉及本端改动**:立即用 `append_message` 回复「本需求与前端/后端无关,理由:xxx」(一句话说明理由),**流程到此结束,禁止写任何文档、禁止改任何代码**。
25
25
  - **涉及本端改动**:进入步骤 2。
26
26
 
27
27
  ### 步骤 2:有限调研(必须遵守预算)
28
28
 
29
- 1. **优先读现成结论**:先读 `docs/` 下已有的模块档案、历史工作日志、其他成员已同步的文档,能复用就不要重新调研。
29
+ 1. **优先读现成结论**:先读 `.apm/project/docs/` 下已有的模块档案、历史工作日志、其他成员已同步的文档,能复用就不要重新调研。
30
30
  2. **再调研代码**:只看与需求直接相关的页面 / 接口 / 表。**调研预算:最多读 15 个代码文件**,禁止全库考古、禁止顺藤摸瓜阅读无关模块。
31
31
  3. **口径不清不要自己拍板**:调研中发现需求没写清的业务口径(例如字段含义、互斥规则、历史数据兼容),一律记入计划的「依据与假设」章节,禁止编造业务规则。
32
32
 
33
- **前端额外要求**:若本次涉及接口对接,**Read** `docs/API.md`;不存在则先 `@后端` 产出 `API.md`,**禁止在计划中自行编写或抄写接口定义**。
33
+ **前端额外要求**:若本次涉及接口对接,**Read** `.apm/project/docs/API.md`;不存在则先 `@后端` 产出 `API.md`,**禁止在计划中自行编写或抄写接口定义**。
34
34
 
35
35
  ### 步骤 3:按模板写计划
36
36
 
@@ -38,8 +38,8 @@
38
38
 
39
39
  1. **依据与假设**:每条关键口径标注来源(需求原文第几条 / 现有代码行为 / 已有文档);标不出来源的就是「假设」,单独列出。
40
40
  2. **改动文件白名单**:本次允许改动的文件完整列表。后续开发与 diff 评审都以此为准,**开发时改了白名单之外的文件会被打回**。
41
- 3. **后端专属——同步产出 API.md**(涉及接口变更时):**Read** `.apm/skills/apm-write-plan/api-template.md`,按模板 **Write** `docs/API.md`。这是前端联调的唯一契约来源,前端直接阅读本文档,禁止各写一份。
42
- 4. **后端专属——SQL 变更声明**(仅当涉及表结构/数据变更时):在「实现步骤」中注明开发须产出 `docs/SQL.md`;计划本身不写大段 SQL,完整语句由后端开发阶段写入该文档。
41
+ 3. **后端专属——同步产出 API.md**(涉及接口变更时):**Read** `.apm/skills/apm-write-plan/api-template.md`,按模板 **Write** `.apm/project/docs/API.md`。这是前端联调的唯一契约来源,前端直接阅读本文档,禁止各写一份。
42
+ 4. **后端专属——SQL 变更声明**(仅当涉及表结构/数据变更时):在「实现步骤」中注明开发须产出 `.apm/project/docs/SQL.md`;计划本身不写大段 SQL,完整语句由后端开发阶段写入该文档。
43
43
  5. **前端专属——接口对接要点**:只写「何时调、关键点」,引用 `API.md` 章节,**禁止复制参数表 / JSON 示例**。
44
44
 
45
45
  ### 步骤 4:回复
@@ -55,12 +55,12 @@
55
55
 
56
56
  当你被安排「根据项目经理的确认更新计划」,或发现项目经理已回复假设确认时:
57
57
 
58
- 1. **Read** `.apm/sessions/<会话ID>/messages.xml`,找到项目经理针对假设的最新回复,**逐条对照你列出的假设**,不要只看 speakContext 的转述。
58
+ 1. 根据项目经理在对话中的确认回复,**逐条对照你列出的假设**。
59
59
  2. 更新计划文档:
60
- - 被确认的假设 → **移入「依据」表格**,来源写「项目经理确认(第 N 轮)」;
60
+ - 被确认的假设 → **移入「依据」表格**,来源写「项目经理确认」;
61
61
  - 被否定或修正的假设 → 按项目经理给出的口径**修订「实现步骤」与「改动文件白名单」**;
62
62
  - 项目经理没有回应的假设 → 保留在「假设」中,再次 `@项目经理` 追问。
63
- 3. **后端**:假设修订涉及接口口径时,同步更新 `docs/API.md`。
63
+ 3. **后端**:假设修订涉及接口口径时,同步更新 `.apm/project/docs/API.md`。
64
64
  4. 重新执行 `apm sync-document` 同步计划与 API 文档。
65
65
  5. 回复消息:逐条说明每个假设的处理结果(确认采纳 / 按口径修订了什么),全部解决则声明「假设已清零,可进入测试要点编写」。
66
66
 
@@ -70,7 +70,7 @@
70
70
 
71
71
  ## 写作要求
72
72
 
73
- - 篇幅 **40 ~ 100 行**,宁可少写;不要伪代码、不要大段 SQL(完整语句写入 `docs/SQL.md`,由后端开发阶段产出)。
73
+ - 篇幅 **40 ~ 100 行**,宁可少写;不要伪代码、不要大段 SQL(完整语句写入 `.apm/project/docs/SQL.md`,由后端开发阶段产出)。
74
74
  - 用产品语言描述行为,文件路径只出现在「改动文件白名单」。
75
75
  - 前后端可同轮并行编写计划;前端接口部分依赖 `API.md`,后端须先或同步产出。
76
76
 
@@ -2,11 +2,11 @@
2
2
 
3
3
  ### 步骤 1: 获取当前版本 PRD 的内容
4
4
 
5
- 先用 **Read** 工具阅读 `.apm/sessions/<会话ID>/docs/PRD.md`,如果存在,则这个目录下的内容为需求文档,否则用 **Read** 工具阅读 `.apm/sessions/<会话ID>/TASK.md`,并把这个文件里面的内容视为需求文档
5
+ 先用 **Read** 工具阅读 `.apm/project/docs/PRD.md`,如果存在,则这个目录下的内容为需求文档,否则 **Read** `.apm/project/manifest.json` 与相关项目文档,或 `@项目经理` 确认需求来源。
6
6
 
7
7
  ### 步骤 2: 按照下面的模板要求编写 PRD
8
8
 
9
- 用 **Read** 工具阅读 `.apm/skills/apm-write-prd/template.md`,按照模板来写,写完保存到 `.apm/sessions/<会话ID>/docs/PRD.md` 。
9
+ 用 **Read** 工具阅读 `.apm/skills/apm-write-prd/template.md`,按照模板来写,写完保存到 `.apm/project/docs/PRD.md` 。
10
10
 
11
11
  内容要求如下:
12
12
  **不管是第几版需求,都要当成第一版来看,禁止有历史版本或者修订版本或者第几版更新的字样**
File without changes