ai-project-manage-cli 4.0.22 → 5.0.1
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/README.md +23 -12
- package/dist/index.js +360 -1345
- package/package.json +4 -11
- package/template/apm.config.json +1 -24
- package/template/deploy/README.md +0 -3
- package/template/skills/apm-apply-change/SKILL.md +0 -191
- package/template/skills/apm-deploy/SKILL.md +0 -135
- package/template/skills/apm-dev/SKILL.md +0 -161
- package/template/skills/apm-propose/SKILL.md +0 -123
- package/template/skills/apm-propose/design-instruction.md +0 -94
- package/template/skills/apm-propose/propose-instruction.md +0 -81
- package/template/skills/apm-propose/specs-instruction.md +0 -114
- package/template/skills/apm-propose/tasks-instruction.md +0 -90
- package/template/skills/apm-refine/SKILL.md +0 -99
- package/template/skills/apm-refine/apm-refine-template.md +0 -73
- package/template/skills/apm-review/SKILL.md +0 -111
- package/template/skills/apm-review/output-template.md +0 -60
- package/template/theater-skills/README.md +0 -13
- package/template/theater-skills/apm-theater-backend/SKILL.md +0 -115
- package/template/theater-skills/apm-theater-backend/apm-theater-api-template.md +0 -146
- package/template/theater-skills/apm-theater-backend/apm-theater-backend-template.md +0 -132
- package/template/theater-skills/apm-theater-dev/SKILL.md +0 -174
- package/template/theater-skills/apm-theater-prd/SKILL.md +0 -98
- package/template/workitems/README.md +0 -20
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: apm-theater-dev
|
|
3
|
-
description: 按剧场会话 ID 全自动编码:切分支、读会话 PRD(及 backend/api 文档)、按改动规模选择 Quick 或 Spec、提交并推送、同步 docs 产物;子 Agent 承担编码与规划落地;当用户 @ 本技能、提及剧场全自动开发或「apm-theater-dev」时使用。
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# 剧场全自动开发(按会话 ID)
|
|
7
|
-
|
|
8
|
-
用户给出 **剧场会话 ID**(`sessionId`,与 `.apm/theater-sessions/<sessionId>/` 目录名一致)。**缺 ID 时索要,不猜测。**
|
|
9
|
-
|
|
10
|
-
`THEATER_JOB` 开始时会自动 pull 平台文档到本地。Agent **对话日志不上传**;`docs/` 等业务文档在变更后须 `sync-session-document`。
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## 输入
|
|
15
|
-
|
|
16
|
-
| 字段 | 规则 |
|
|
17
|
-
| --------------- | -------------------------------------------------------------------------------------- |
|
|
18
|
-
| **`sessionId`** | **必填**。与 `.apm/theater-sessions/<sessionId>/` 目录名一致。 |
|
|
19
|
-
| **会话上下文** | 若由 `THEATER_JOB` 触发,`theaterSessionId` 即 `sessionId`;缺省时向用户索要,不猜测。 |
|
|
20
|
-
|
|
21
|
-
**会话根目录**:`.apm/theater-sessions/<sessionId>/`
|
|
22
|
-
**PRD**:`.apm/theater-sessions/<sessionId>/docs/prd.md`
|
|
23
|
-
**可选参考**:`docs/backend.md`、`docs/api.md`
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## 技能文件定位(apm-propose / apm-apply-change)
|
|
28
|
-
|
|
29
|
-
Spec 路径依赖的技能**仅**来自 **`.apm/skills/`**。执行前父 Agent **须 Read**:
|
|
30
|
-
|
|
31
|
-
| 技能 | 路径 |
|
|
32
|
-
| -------------------- | --------------------------------------- |
|
|
33
|
-
| **apm-propose** | `.apm/skills/apm-propose/SKILL.md` |
|
|
34
|
-
| **apm-apply-change** | `.apm/skills/apm-apply-change/SKILL.md` |
|
|
35
|
-
|
|
36
|
-
instruction 子文件随该目录类推(如 `.apm/skills/apm-propose/propose-instruction.md`)。若上述 `SKILL.md` **不存在或不可读**:**不得**进入 Spec 子流程;在表格中标记失败原因(例如需先 `apm init` 或 `apm update-skills`),并停止步骤 4。
|
|
37
|
-
|
|
38
|
-
委派子 Agent 时须说明:本轮为**剧场会话**,**`sessionId`** 替代需求 ID;PRD 在 **`docs/prd.md`**;Spec 工件落在 **`.apm/theater-sessions/<sessionId>/`**(非 `workitems`)。
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
## 流程总览
|
|
43
|
-
|
|
44
|
-
| 序号 | 步骤 | 说明 |
|
|
45
|
-
| ---- | --------------------- | ---------------------------------------------------------------------------------------- |
|
|
46
|
-
| 1 | **切分支** | 检出或创建 `feat/theater-<sessionId>`(git,无 `apm branch` 剧场命令) |
|
|
47
|
-
| 2 | **读 PRD + 成本评估** | **Read** `docs/prd.md`(及需要的 `backend.md` / `api.md`),判定 Quick / Spec |
|
|
48
|
-
| 3 | **Quick 开发** | 仅当判定为「改动成本较小」时执行;由 **子 Agent** 写代码 |
|
|
49
|
-
| 4 | **Spec 开发** | 仅当判定为「改动成本较大」时执行;先 **apm-propose** 再 **apm-apply-change**(子 Agent) |
|
|
50
|
-
| 5 | **提交与推送** | `git` 提交并 `push`,工作区干净 |
|
|
51
|
-
| 6 | **同步会话文档** | 对本轮有改动的 `.md` 逐一 `apm sync-session-document`(仅 `docs/` 等业务文档,不含日志) |
|
|
52
|
-
| 7 | **对用户回复** | **一张 Markdown 表格**汇总各步执行结果(见文末模板) |
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## 步骤 1:切分支
|
|
57
|
-
|
|
58
|
-
1. 在**仓库/工作区根目录**执行(分支名固定为 `feat/theater-<sessionId>`):
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
git fetch origin
|
|
62
|
-
git switch feat/theater-<sessionId> 2>/dev/null || git switch -c feat/theater-<sessionId>
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
若远端已有该分支:`git switch feat/theater-<sessionId>` 后 `git pull --no-edit`(按需)。
|
|
66
|
-
|
|
67
|
-
2. 记录:是否成功、当前分支名、简要输出或错误(写入最终表格)。**失败则按「Guardrails → 失败即终止」处理**。
|
|
68
|
-
|
|
69
|
-
---
|
|
70
|
-
|
|
71
|
-
## 步骤 2:读取 PRD 并评估改动成本
|
|
72
|
-
|
|
73
|
-
1. **Read** 全文:`.apm/theater-sessions/<sessionId>/docs/prd.md`。
|
|
74
|
-
2. 若实现涉及后端/接口,按需 **Read** `docs/backend.md`、`docs/api.md`。
|
|
75
|
-
3. 若 `prd.md` 读失败则**停止后续实现**,仅在表格中标记失败原因。
|
|
76
|
-
4. **不**为评估向用户发起追问;信息不足时倾向 **Spec**(保守)。
|
|
77
|
-
|
|
78
|
-
### Quick(较小)与 Spec(较大)判定参考
|
|
79
|
-
|
|
80
|
-
**倾向 Quick**(满足越多越适用):
|
|
81
|
-
|
|
82
|
-
- 影响范围局部:少量文件或单一层次(例如仅前端组件、或仅一个后端模块小改)。
|
|
83
|
-
- 无新表结构/大规模迁移/权限模型变更。
|
|
84
|
-
- PRD 验收点清晰且数量少(经验上 **≤3** 条独立验收维度)。
|
|
85
|
-
- 不需要跨多服务的架构裁定即可开工。
|
|
86
|
-
|
|
87
|
-
**倾向 Spec**(命中任一条即可):
|
|
88
|
-
|
|
89
|
-
- 前后端联动、多包改造或新公共抽象。
|
|
90
|
-
- 新数据模型、迁移、或安全/审计/权限相关。
|
|
91
|
-
- PRD 范围大、条款多,或存在明显「待确认/多方案」需先规划。
|
|
92
|
-
- 评估认为不先产出 **proposal / design / specs / tasks** 则难以保证实现与验收对齐。
|
|
93
|
-
|
|
94
|
-
在表格「步骤 2」中写明结论:**Quick** 或 **Spec**,以及**一行内**理由(关键词即可)。
|
|
95
|
-
|
|
96
|
-
---
|
|
97
|
-
|
|
98
|
-
## 步骤 3:Quick 开发模式(子 Agent)
|
|
99
|
-
|
|
100
|
-
**条件**:步骤 2 判定为 **Quick**。
|
|
101
|
-
|
|
102
|
-
1. 父 Agent 已通过 **Read** 掌握 `prd.md`(及需要的 backend/api);委派时在提示中写明 **`sessionId`**、会话根路径、以及「实现须严格对照 PRD,改动范围最小化」。
|
|
103
|
-
2. 使用 **Task** 工具,`subagent_type: generalPurpose`,**readonly: false**,委派子 Agent:
|
|
104
|
-
- 自行 **Read** `.apm/theater-sessions/<sessionId>/docs/prd.md`(及需要的 `backend.md` / `api.md`)。
|
|
105
|
-
- 按 PRD 直接改代码;遵守本仓库构建与依赖约定(AGENTS.md)。
|
|
106
|
-
- 完成后在返回中说明:改了哪些路径、如何对照验收、是否通过本地可执行的检查(若跑了 `rushx build` / 测试等则写明结果)。
|
|
107
|
-
3. 父 Agent 根据子 Agent 返回在表格中填写步骤 3 **状态**;本模式下步骤 4 填 **跳过**。
|
|
108
|
-
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
## 步骤 4:Spec 开发模式(子 Agent)
|
|
112
|
-
|
|
113
|
-
**条件**:步骤 2 判定为 **Spec**。
|
|
114
|
-
|
|
115
|
-
1. 父 Agent **Read** **apm-propose**、**apm-apply-change** 的 `SKILL.md`(**仅** `.apm/skills/` 下路径,见上节)。
|
|
116
|
-
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 为准)。
|
|
117
|
-
3. **子 Agent B(实现)**:待 A 成功落盘后,再 Task `generalPurpose`,提示其自行 **Read** `.apm/skills/apm-apply-change/SKILL.md` 并遵循:按 **`.apm/theater-sessions/<sessionId>/tasks.md`** 驱动实现与勾选。
|
|
118
|
-
4. 若未产出可用 **`tasks.md`**,不得强行进入 **apm-apply-change**;表格中标记阻塞原因。
|
|
119
|
-
5. 表格中步骤 3 填 **跳过**;步骤 4 分两行或合并一行写清 propose / apply 状态。
|
|
120
|
-
|
|
121
|
-
---
|
|
122
|
-
|
|
123
|
-
## 步骤 5:提交并推送
|
|
124
|
-
|
|
125
|
-
在仓库根目录执行:
|
|
126
|
-
|
|
127
|
-
1. `git status`:确认变更范围。
|
|
128
|
-
2. 若有未提交变更:`git add -A`,然后 `git commit -m "feat(theater-<sessionId>): <简短说明>"`(说明应概括本轮实现;若子 Agent 已多次 commit,以 `status` 为准)。
|
|
129
|
-
3. `git push`:推送到当前分支对应远程(首次必要时 `-u origin feat/theater-<sessionId>`)。
|
|
130
|
-
4. 再次 `git status`:**须为干净工作区**。
|
|
131
|
-
|
|
132
|
-
将命令结果、最终分支名、是否已 push、工作区是否干净写入表格。
|
|
133
|
-
|
|
134
|
-
---
|
|
135
|
-
|
|
136
|
-
## 步骤 6:同步会话文档
|
|
137
|
-
|
|
138
|
-
对本轮**有内容变更**的 Markdown(通常在 `docs/`,Spec 模式可能含会话根目录下的 `proposal.md` 等),在仓库根目录逐一执行:
|
|
139
|
-
|
|
140
|
-
```bash
|
|
141
|
-
apm sync-session-document <sessionId> --file docs/prd.md
|
|
142
|
-
apm sync-session-document <sessionId> --file <其他相对路径>
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
- **仅同步业务文档**;**不要**同步 Agent 对话日志(`sessions/` 等)。
|
|
146
|
-
- 若本轮未改动任何需上平台的文档,表格步骤 6 填 **跳过**。
|
|
147
|
-
- 同步失败时如实记录,不假装成功。
|
|
148
|
-
|
|
149
|
-
---
|
|
150
|
-
|
|
151
|
-
## 步骤 7:对用户回复(表格)
|
|
152
|
-
|
|
153
|
-
对用户回复 **必须包含一张 Markdown 表格**,汇总 **步骤 1 ~ 6**。表头建议:
|
|
154
|
-
|
|
155
|
-
| 步骤 | 内容 | 结果 |
|
|
156
|
-
| ---- | ------------------------------------------------ | ------------------------------ |
|
|
157
|
-
| 1 | 切分支 `feat/theater-<sessionId>` | 成功 / 失败(原因) |
|
|
158
|
-
| 2 | 读 PRD + 成本评估 | Quick 或 Spec;一行理由 / 失败 |
|
|
159
|
-
| 3 | Quick 开发(子 Agent) | 成功 / 失败 / **跳过** |
|
|
160
|
-
| 4 | Spec:apm-propose → apm-apply-change(子 Agent) | 成功 / 失败 / **跳过** |
|
|
161
|
-
| 5 | commit & push;工作区干净 | 成功 / 失败(原因) |
|
|
162
|
-
| 6 | `sync-session-document`(有改动的文档) | 成功 / 失败 / **跳过** |
|
|
163
|
-
|
|
164
|
-
**可选**:表格外增加**简短**摘要(当前分支、阻塞点)。
|
|
165
|
-
|
|
166
|
-
---
|
|
167
|
-
|
|
168
|
-
## Guardrails
|
|
169
|
-
|
|
170
|
-
- **失败即终止**:在用户提供的 **`sessionId`** 等参数合法、命令与路径按本技能书写的前提下,任一步骤(含切分支、读文件、子 Agent、`git`、同步文档)**一旦失败**:**停止后续所有步骤**,仅在表格中记录失败步骤与原因;**不要**为登录、依赖、网络等做**多次**重试。
|
|
171
|
-
- **例外(Agent 自身失误)**:若失败明显由执行 Agent **用错工作目录、读错/漏写路径** 等导致,**允许**纠正后**仅对该失败步骤再执行一次**;纠正后仍失败则**立即终止**。
|
|
172
|
-
- **不要**在无 `prd.md` 的情况下编造需求实现。
|
|
173
|
-
- **不要**上传或同步 Agent 对话日志。
|
|
174
|
-
- **子 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/`
|