ai-project-manage-cli 4.0.23 → 5.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.
@@ -1,149 +0,0 @@
1
- ---
2
- name: apm-theater-dev
3
- description: 按剧场会话 ID 全自动编码:按需读会话 PRD(及 backend/api 文档)、按改动规模选择 Quick 或 Spec、推送代码;子 Agent 承担编码与规划落地;当用户 @ 本技能、提及剧场全自动开发或「apm-theater-dev」时使用。
4
- ---
5
-
6
- # 剧场全自动开发(按会话 ID)
7
-
8
- 用户给出 **剧场会话 ID**(`sessionId`,与 `.apm/theater-sessions/<sessionId>/` 目录名一致)。**缺 ID 时索要,不猜测。**
9
-
10
- 由 **`THEATER_JOB` / `apm connect`** 自动完成(**无需在本技能中切分支**):
11
-
12
- - 检出或创建 **`feat/req-<sessionId>`** 并拉取最新
13
- - **pull** 平台会话文档到 `.apm/theater-sessions/<sessionId>/docs/`
14
- - Agent 结束后若有未提交变更,CLI 自动 **`git add` & `commit`**
15
-
16
- Agent **对话日志不上传**。**不要**执行 `apm sync-session-document`(会话文档由网页或其他角色维护)。
17
-
18
- ---
19
-
20
- ## 输入
21
-
22
- | 字段 | 规则 |
23
- | --------------- | -------------------------------------------------------------------------------------- |
24
- | **`sessionId`** | **必填**。与 `.apm/theater-sessions/<sessionId>/` 目录名一致。 |
25
- | **会话上下文** | 若由 `THEATER_JOB` 触发,`theaterSessionId` 即 `sessionId`;缺省时向用户索要,不猜测。 |
26
-
27
- **会话根目录**:`.apm/theater-sessions/<sessionId>/`
28
- **PRD(按需)**:`docs/prd.md`
29
- **可选参考(按需)**:`docs/backend.md`、`docs/api.md`
30
-
31
- ---
32
-
33
- ## 技能文件定位(apm-propose / apm-apply-change)
34
-
35
- Spec 路径依赖的技能**仅**来自 **`.apm/skills/`**。进入 Spec 子流程前父 Agent **须 Read**:
36
-
37
- | 技能 | 路径 |
38
- | -------------------- | --------------------------------------- |
39
- | **apm-propose** | `.apm/skills/apm-propose/SKILL.md` |
40
- | **apm-apply-change** | `.apm/skills/apm-apply-change/SKILL.md` |
41
-
42
- instruction 子文件随该目录类推(如 `.apm/skills/apm-propose/propose-instruction.md`)。若上述 `SKILL.md` **不存在或不可读**:**不得**进入 Spec 子流程;在表格中标记失败原因(例如需先 `apm init` 或 `apm update-skills`),并停止步骤 3。
43
-
44
- 委派子 Agent 时须说明:本轮为**剧场会话**,**`sessionId`** 替代需求 ID;PRD 在 **`docs/prd.md`**(按需阅读);Spec 工件落在 **`.apm/theater-sessions/<sessionId>/`**(非 `workitems`)。
45
-
46
- ---
47
-
48
- ## 流程总览
49
-
50
- | 序号 | 步骤 | 说明 |
51
- | ---- | ------------------------- | ----------------------------------------------------------------------------------------- |
52
- | 1 | **按需读文档 + 成本评估** | 按本轮任务**按需 Read** `docs/prd.md` 及需要的 `backend.md` / `api.md`,判定 Quick / Spec |
53
- | 2 | **Quick 开发** | 仅当判定为「改动成本较小」时执行;由 **子 Agent** 写代码 |
54
- | 3 | **Spec 开发** | 仅当判定为「改动成本较大」时执行;先 **apm-propose** 再 **apm-apply-change**(子 Agent) |
55
- | 4 | **推送** | `git push`;确认工作区干净(提交通常已由 CLI 在 Agent 结束时完成) |
56
-
57
- 流程**仅以上 4 步**,**无**同步会话文档环节(不执行 `apm sync-session-document`)。
58
-
59
- ---
60
-
61
- ## 步骤 1:按需读文档并评估改动成本
62
-
63
- 1. **不要**无差别全文 Read `prd.md`;根据主持委派任务、已有对话与实现范围,**按需**阅读:
64
- - 需要理解需求范围或验收时 → **Read** `docs/prd.md`(全文或相关章节)
65
- - 涉及后端实现思路 → **Read** `docs/backend.md`
66
- - 涉及接口联调 → **Read** `docs/api.md`
67
- 2. 若任务明确只需改代码、且上下文已足够,可**跳过**读 PRD,但在表格中注明依据(例如「主持任务已说明改 X 文件」)。
68
- 3. 若判定需要 PRD/backend/api 但文件不存在或读失败,**停止后续实现**,仅在表格中标记失败原因。
69
- 4. **不**为评估向用户发起追问;信息不足时倾向 **Spec**(保守)。
70
-
71
- ### Quick(较小)与 Spec(较大)判定参考
72
-
73
- **倾向 Quick**(满足越多越适用):
74
-
75
- - 影响范围局部:少量文件或单一层次(例如仅前端组件、或仅一个后端模块小改)。
76
- - 无新表结构/大规模迁移/权限模型变更。
77
- - 验收点清晰且数量少(经验上 **≤3** 条独立验收维度)。
78
- - 不需要跨多服务的架构裁定即可开工。
79
-
80
- **倾向 Spec**(命中任一条即可):
81
-
82
- - 前后端联动、多包改造或新公共抽象。
83
- - 新数据模型、迁移、或安全/审计/权限相关。
84
- - 范围大、条款多,或存在明显「待确认/多方案」需先规划。
85
- - 评估认为不先产出 **proposal / design / specs / tasks** 则难以保证实现与验收对齐。
86
-
87
- 在表格「步骤 1」中写明结论:**Quick** 或 **Spec**,以及**一行内**理由(关键词即可);若读了哪些文档也一并注明。
88
-
89
- ---
90
-
91
- ## 步骤 2:Quick 开发模式(子 Agent)
92
-
93
- **条件**:步骤 1 判定为 **Quick**。
94
-
95
- 1. 父 Agent 已按需掌握必要文档;委派时在提示中写明 **`sessionId`**、会话根路径、以及「实现须对照已读文档与主持任务,改动范围最小化」。
96
- 2. 使用 **Task** 工具,`subagent_type: generalPurpose`,**readonly: false**,委派子 Agent:
97
- - **按需 Read** `docs/prd.md` 及需要的 `backend.md` / `api.md`。
98
- - 按任务与文档直接改代码;遵守本仓库构建与依赖约定(AGENTS.md)。
99
- - 完成后在返回中说明:改了哪些路径、如何对照验收、是否通过本地可执行的检查(若跑了 `rushx build` / 测试等则写明结果)。
100
- 3. 父 Agent 根据子 Agent 返回在表格中填写步骤 2 **状态**;本模式下步骤 3 填 **跳过**。
101
-
102
- ---
103
-
104
- ## 步骤 3:Spec 开发模式(子 Agent)
105
-
106
- **条件**:步骤 1 判定为 **Spec**。
107
-
108
- 1. 父 Agent **Read** **apm-propose**、**apm-apply-change** 的 `SKILL.md`(**仅** `.apm/skills/` 下路径,见上节)。
109
- 2. **子 Agent A(规划)**:Task `generalPurpose`,提示其自行 **Read** `.apm/skills/apm-propose/SKILL.md` 并遵循,但将工件目录改为 **`.apm/theater-sessions/<sessionId>/`**,PRD 来源为 **`docs/prd.md`**(按需阅读),上下文使用 **`sessionId`** 而非 `requirementId`;生成 **proposal、design、specs、tasks** 等(顺序以 SKILL 为准)。
110
- 3. **子 Agent B(实现)**:待 A 成功落盘后,再 Task `generalPurpose`,提示其自行 **Read** `.apm/skills/apm-apply-change/SKILL.md` 并遵循:按 **`.apm/theater-sessions/<sessionId>/tasks.md`** 驱动实现与勾选。
111
- 4. 若未产出可用 **`tasks.md`**,不得强行进入 **apm-apply-change**;表格中标记阻塞原因。
112
- 5. 表格中步骤 2 填 **跳过**;步骤 3 分两行或合并一行写清 propose / apply 状态。
113
-
114
- ---
115
-
116
- ## 步骤 4:推送
117
-
118
- 在仓库根目录执行:
119
-
120
- 1. `git status`:确认变更范围;若仍有未提交变更(例如子 Agent 在 CLI 自动 commit 之后又改了文件),执行 `git add -A` 与 `git commit -m "feat(req-<sessionId>): <简短说明>"`。
121
- 2. `git push`:推送到当前分支 **`feat/req-<sessionId>`**(首次必要时 `-u origin feat/req-<sessionId>`)。
122
- 3. 再次 `git status`:**须为干净工作区**。
123
-
124
- 将命令结果、当前分支名、是否已 push、工作区是否干净写入表格(见下节「回复格式」)。
125
-
126
- ---
127
-
128
- ## 回复格式
129
-
130
- 完成步骤 4 后,对用户回复 **必须包含一张 Markdown 表格**,汇总 **步骤 1 ~ 4**:
131
-
132
- | 步骤 | 内容 | 结果 |
133
- | ---- | ------------------------------------------------ | ------------------------------ |
134
- | 1 | 按需读文档 + 成本评估 | Quick 或 Spec;读了哪些 / 失败 |
135
- | 2 | Quick 开发(子 Agent) | 成功 / 失败 / **跳过** |
136
- | 3 | Spec:apm-propose → apm-apply-change(子 Agent) | 成功 / 失败 / **跳过** |
137
- | 4 | push;工作区干净 | 成功 / 失败(原因) |
138
-
139
- **可选**:表格外增加**简短**摘要(当前分支、阻塞点)。
140
-
141
- ---
142
-
143
- ## Guardrails
144
-
145
- - **失败即终止**:在用户提供的 **`sessionId`** 等参数合法、命令与路径按本技能书写的前提下,任一步骤(含读文件、子 Agent、`git`)**一旦失败**:**停止后续所有步骤**,仅在表格中记录失败步骤与原因;**不要**为登录、依赖、网络等做**多次**重试。
146
- - **例外(Agent 自身失误)**:若失败明显由执行 Agent **用错工作目录、读错/漏写路径** 等导致,**允许**纠正后**仅对该失败步骤再执行一次**;纠正后仍失败则**立即终止**。
147
- - **不要**在无依据的情况下编造需求实现;需要 PRD 时须先 Read,读不到则停止。
148
- - **不要**上传或同步 Agent 对话日志。
149
- - **子 Agent** 提示中须带 **`sessionId`** 与会话根路径,避免改错工作树。
@@ -1,98 +0,0 @@
1
- ---
2
- name: apm-theater-prd
3
- description: 剧场会话 PRD 文档:在 .apm/theater-sessions/<sessionId>/docs/prd.md 新增、编辑、查阅需求正文,落盘后同步到平台会话文档。仅当用户 @ 本技能时使用。
4
- disable-model-invocation: true
5
- ---
6
-
7
- # 剧场会话 PRD
8
-
9
- 在剧场会话上下文中维护 **产品需求文档(PRD)**。本地权威路径为 **`.apm/theater-sessions/<sessionId>/docs/prd.md`**;落盘后须通过 CLI 同步到平台「会话文档」。
10
-
11
- `THEATER_JOB` 开始时会自动 pull 平台文档到本地。Agent **对话日志不上传**;仅 `docs/` 下业务文档在变更后同步。
12
-
13
- ---
14
-
15
- ## 输入
16
-
17
- | 字段 | 规则 |
18
- | --------------- | -------------------------------------------------------------------------------------- |
19
- | **`sessionId`** | **必填**。剧场会话 ID,与 `.apm/theater-sessions/<sessionId>/` 目录名一致。 |
20
- | **会话上下文** | 若由 `THEATER_JOB` 触发,`theaterSessionId` 即 `sessionId`;缺省时向用户索要,不猜测。 |
21
-
22
- ---
23
-
24
- ## 文件路径
25
-
26
- | 操作 | 路径 / 方式 |
27
- | -------- | ----------------------------------------------------------------------------------- |
28
- | **新增** | 创建 `.apm/theater-sessions/<sessionId>/docs/prd.md`(`docs` 目录不存在时一并创建) |
29
- | **编辑** | 更新上述文件(Write / StrReplace) |
30
- | **查阅** | 使用 **Read** 工具阅读上述文件 |
31
- | **删除** | **不支持**。不要删除该文件,也不要尝试从平台删除对应文档。 |
32
-
33
- ---
34
-
35
- ## 同步到平台(新增 / 编辑后必做)
36
-
37
- 本地 `prd.md` **新增或内容变更后**执行:
38
-
39
- ```bash
40
- apm sync-session-document <sessionId>
41
- ```
42
-
43
- - 默认同步 `docs/prd.md`;若同步其他相对路径,加 `--file <相对路径>`(相对于 `.apm/theater-sessions/<sessionId>/`)。
44
- - 命令会调用平台接口 **新增或更新** 该会话的产物文档(按 `fileName` 幂等)。
45
- - **查阅**(Read)**不需要**执行同步。
46
- - **不要**同步 Agent 对话日志(`sessions/` 等);仅同步 `docs/` 业务文档。
47
- - 同步失败时:在回复中说明错误,**不要**声称已写入平台。
48
-
49
- ---
50
-
51
- ## 撰写要求(PRD 正文)
52
-
53
- 撰写或修订 `prd.md` 前,须 **Read** [apm-refine-template.md](../../skills/apm-refine/apm-refine-template.md),按其中正文骨架、需求点写法、示例与落盘自检组织正文。
54
-
55
- 在此基础上补充:
56
-
57
- - **可验收**:产品、测试、开发不读代码也能写用例。
58
- - **业务化**:写界面、流程、规则与系统表现;避免堆砌实现细节。
59
- - **术语统一**:同一概念全文同一叫法。
60
-
61
- ---
62
-
63
- ## 流程
64
-
65
- ### 1. 锚定会话
66
-
67
- 确认 **`sessionId`**。根目录:`.apm/theater-sessions/<sessionId>/docs/`。
68
-
69
- ### 2. 查阅(只读)
70
-
71
- **Read** `.apm/theater-sessions/<sessionId>/docs/prd.md`。
72
-
73
- - 文件不存在:说明尚未创建,询问是否新建;**不要**编造正文。
74
-
75
- ### 3. 新增
76
-
77
- 1. **Read** [apm-refine-template.md](../../skills/apm-refine/apm-refine-template.md),按模板撰写完整 PRD 正文。
78
- 2. **Write** 落盘至 `.apm/theater-sessions/<sessionId>/docs/prd.md`。
79
- 3. 执行 **`apm sync-session-document <sessionId>`**。
80
- 4. 简要确认:本地路径、已同步到会话文档。
81
-
82
- ### 4. 编辑
83
-
84
- 1. **Read** 现有 `prd.md`(若本会话尚未读过)。
85
- 2. 按需 **Read** [apm-refine-template.md](../../skills/apm-refine/apm-refine-template.md);按用户或场景要求修订;**Write** 或 **StrReplace** 落盘。
86
- 3. 执行 **`apm sync-session-document <sessionId>`**。
87
- 4. 简要说明变更要点。
88
-
89
- ---
90
-
91
- ## Guardrails
92
-
93
- - **不要删除** `prd.md`,也不要删除平台会话文档。
94
- - **不要**在无 `sessionId` 时写入任意目录。
95
- - **新增或编辑后必须同步** `docs/` 文档;仅 Read 时不同步。
96
- - **不要**上传或同步 Agent 对话日志。
97
- - 同步失败时如实报告,不假装成功。
98
- - 向用户澄清范围时,歧义写入 PRD 的「待确认」或「假设」,避免阻塞整篇文档。
@@ -1,20 +0,0 @@
1
- ## 需求文档
2
-
3
- 在这里保存需求相关文件
4
-
5
- ## 目录
6
-
7
- workitems/<需求 ID>
8
-
9
- ## 文件清单
10
-
11
- - `status.yaml`: 需求的状态(包含当前的分支名称,需求状态,缺陷列表及状态)
12
- - `prd.md`: pull 后写入的需求聚合正文
13
- - `attachments/`: pull 后从平台同步的需求附件(本地已存在则跳过下载)
14
- - `reviews.xml`: pull 后写入的评论与回复
15
- - `defect.xml`: 缺陷信息
16
- - `testcase.xml`: 测试用例占位数据
17
- - `change.md`: 代码变更信息
18
- - `specs/proposal.md`: 提议
19
- - `specs/tasks.md`: 任务
20
- - `specs/`