ai-project-manage-cli 1.0.17 → 1.0.18

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": "1.0.17",
3
+ "version": "1.0.18",
4
4
  "private": false,
5
5
  "description": "CLI / SDK for AI项目管理",
6
6
  "main": "./dist/index.js",
@@ -5,7 +5,7 @@ description: 按分支 ID、分支名、基准分支、需求 ID、版本序号
5
5
 
6
6
  # APM 全自动开发(编排技能)
7
7
 
8
- **角色**:主 Agent 只做参数传递、**串行**启动子 Agent、校验上一步产物、失败则停止并汇总;**禁止**在同一对话里自己执行完整 propose+apply 长流程而不用子 Agent。
8
+ **角色**:主 Agent 只做参数传递、**串行**启动子 Agent、校验上一步产物、失败则停止并汇总(**例外见步骤 8/9**);**禁止**在同一对话里自己执行完整 propose+apply 长流程而不用子 Agent。
9
9
 
10
10
  **输入(必填)**
11
11
 
@@ -21,7 +21,7 @@ description: 按分支 ID、分支名、基准分支、需求 ID、版本序号
21
21
 
22
22
  ## 子 Agent 强制隔离
23
23
 
24
- - 下列步骤 **1~8** 各对应一次 **Task 子 Agent**(或等价:独立子会话),**严格串行**:仅当上一步子 Agent **明确结束**且主 Agent **已校验产物**后,再启动下一步。
24
+ - 下列步骤 **1~9** 各对应一次 **Task 子 Agent**(或等价:独立子会话),**严格串行**:仅当上一步子 Agent **明确结束**且主 Agent **已校验产物**后,再启动下一步(**步骤 8 发布失败时仍须启动步骤 9**,见步骤 8 说明)。
25
25
  - **禁止**并行启动多个子 Agent 执行本流程中的步骤。
26
26
  - 子 Agent 需执行完毕:读 SKILL、跑命令、写文件、回报结构化结果(路径、变更名、成功/失败)。
27
27
 
@@ -52,7 +52,7 @@ apm requirement version content --requirement-id <ID> --version-seq <SEQ>
52
52
  ```
53
53
 
54
54
  2. 解析 **stdout** JSON:取版本对象中的 **`content`** 字段(字符串)作为 PRD 正文。
55
- 3. 由正文推导目录名 `<name>`(**kebab-case**):优先取第一行 Markdown 标题(去 `#`)、否则取首行摘要;小写、空格与下划线改为 `-`,移除非 URL/路径安全字符;过长则截断至约 48 字符。若 `.apm/workitems/<name>` 已存在则加后缀 `-2`、`-3`… 直至不冲突。
55
+ 3. 由正文推导目录名 `<name>`(**kebab-case**):优先取第一行 Markdown 标题(去 `#`)、否则取首行摘要;小写、空格与下划线改为 `-`,移除非 URL/路径安全字符;过长则截断至约 48 字符。若 `.apm/workitems/<name>/prd.md` **已存在**,才加后缀 `-2`、`-3`… 直至找到一个 `prd.md` 不存在的目录;若仅目录存在但 `prd.md` 不存在,则直接使用该目录。
56
56
  4. 创建目录并**覆盖写入**:
57
57
 
58
58
  `.apm/workitems/<name>/prd.md`
@@ -69,7 +69,7 @@ apm requirement version content --requirement-id <ID> --version-seq <SEQ>
69
69
  2. 调用 CLI 更新分支状态为“开发中”,命令形如:
70
70
 
71
71
  ```bash
72
- apm requirement branch set-status --branch-id <BRANCH_ID> --status 开发中
72
+ apm requirement branch set-status --branch-id <BRANCH_ID> --status IN_DEVELOPMENT
73
73
  ```
74
74
 
75
75
  3. 子 Agent 需检查命令退出码,非 0 时读取 stderr,返回失败原因并终止全流程(不要静默继续后续步骤)。
@@ -91,7 +91,7 @@ apm requirement branch set-status --branch-id <BRANCH_ID> --status 开发中
91
91
  ## 步骤 5 — 子 Agent:openspec-apply-change
92
92
 
93
93
  1. 读取并遵循:`.cursor/skills/openspec-apply-change/SKILL.md`。
94
- 2. **输入(必须)**:上一步回报的变更目录路径或 **`<change-name>`**(与 openspec-propose 产出一致);主 Agent 必须将步骤 3 的结构化结果传入本子 Agent。
94
+ 2. **输入(必须)**:上一步回报的变更目录路径或 **`<change-name>`**(与 openspec-propose 产出一致);主 Agent 必须将步骤 4 的结构化结果传入本子 Agent。
95
95
  3. 按该 SKILL 执行任务直至完成或**硬阻塞**(硬阻塞时停止全流程,汇总原因)。
96
96
 
97
97
  **完成判定**:该 SKILL 定义的完成/暂停语义达成;代码与任务勾选与仓库状态一致。
@@ -124,9 +124,25 @@ apm requirement branch set-status --branch-id <BRANCH_ID> --status 开发中
124
124
 
125
125
  1. 本步骤必须在“全部代码提交完成”后执行(即步骤 7 完成后)。
126
126
  2. 调用技能 `frontend-test-env-release`,执行前端测试环境发布(构建 + 上传产物)。
127
- 3. 若发布失败,输出失败原因并将全流程标记为失败,不得宣称完成。
127
+ 3. **若发布失败**:必须输出失败原因并记录;**不得因此跳过或终止步骤 9**(仍须继续执行「待测试」状态更新)。
128
128
 
129
- **完成判定**:`frontend-test-env-release` 执行成功,前端测试环境发布完成。
129
+ **完成判定(本步骤自身)**:发布成功为理想结果;发布失败亦视为本步骤已结束(带失败信息),并进入步骤 9。
130
+
131
+ ---
132
+
133
+ ## 步骤 9 — 子 Agent:更新需求分支状态为待测试
134
+
135
+ 1. 在步骤 7 完成后执行;**与步骤 8 的成败无关**(步骤 8 即使失败也必须执行本步)。
136
+ 2. 在仓库根目录或任意目录执行(只依赖 apm 配置,不依赖当前 cwd):确保已通过 `apm login`,并已配置 `base-url`。
137
+ 3. 使用**必填输入**中的 `--branch-id`(`<BRANCH_ID>`),调用 CLI 将分支状态更新为「待测试」:
138
+
139
+ ```bash
140
+ apm requirement branch set-status --branch-id <BRANCH_ID> --status PENDING_TEST
141
+ ```
142
+
143
+ 4. 子 Agent 需检查命令退出码,非 0 时读取 stderr,返回失败原因并终止全流程(不要静默继续后续汇总)。
144
+
145
+ **完成判定**:命令成功返回(退出码 0),且无错误输出。
130
146
 
131
147
  ---
132
148
 
@@ -136,6 +152,8 @@ apm requirement branch set-status --branch-id <BRANCH_ID> --status 开发中
136
152
 
137
153
  - 分支名、`.apm/workitems/<name>/` 路径、`openspec/changes/<change-name>/`
138
154
  - 各子步骤成功/失败
155
+ - 步骤 8 前端测试环境发布结果(成功或失败原因;失败不阻断步骤 9)
156
+ - 步骤 9 分支是否已置为「待测试」
139
157
  - 最终 commit SHA(若有)、远程推送结果
140
158
  - 若有 stash:提醒用户在其他分支上 `git stash pop` 时注意冲突
141
159
 
@@ -143,6 +161,6 @@ apm requirement branch set-status --branch-id <BRANCH_ID> --status 开发中
143
161
 
144
162
  ## 护栏
145
163
 
146
- - 任一步子 Agent 失败:**不要**静默跳过;停止后续步骤,输出失败步骤与可复现命令。
164
+ - 任一步子 Agent 失败:**不要**静默跳过;停止后续步骤,输出失败步骤与可复现命令(**例外**:步骤 8 发布失败**不**停止步骤 9)。
147
165
  - 全程**不向用户追问**澄清需求;歧义按 openspec / apply 技能中的「合理假设、不反问」处理。
148
- - 步骤 8 未完成前,不得宣称全流程完成。
166
+ - **全流程交付完成**以步骤 9(分支已置为待测试)成功为准;步骤 8 发布失败仅作为告警项写入汇总,**不**单独阻断「交付完成」判定(但若步骤 9 失败,仍不得宣称全流程完成)。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: frontend-test-env-release
3
- description: 执行客户端前端产物发布:先构建并在失败时立即终止,再自动识别分支名与产物目录并调用 apm publish 上传。Use when 用户提到“上传产物/发布前端产物/minio 上传/一键发布客户端前端”。
3
+ description: 执行客户端前端产物发布:先从 README 识别构建方式(找不到立即终止,不猜测),再自动识别分支名与产物目录并调用 apm publish 上传。Use when 用户提到“上传产物/发布前端产物/minio 上传/一键发布客户端前端”。
4
4
  ---
5
5
 
6
6
  # 发布测试环境
@@ -9,7 +9,7 @@ description: 执行客户端前端产物发布:先构建并在失败时立即
9
9
 
10
10
  在客户端机器执行一次可中断、可复现的发布流程:
11
11
 
12
- 1. `npm run build`(失败立即终止)
12
+ 1. 根据项目文档识别并执行构建命令(找不到构建方式立即终止,不猜测)
13
13
  2. 自动识别分支名和产物目录后上传到服务端
14
14
 
15
15
  ## 输入
@@ -19,15 +19,21 @@ description: 执行客户端前端产物发布:先构建并在失败时立即
19
19
 
20
20
  ## 执行流程
21
21
 
22
- ### 1) 构建(失败即终止)
22
+ ### 1) 构建(找不到构建方式即终止,不猜测)
23
23
 
24
- 1. 在目标项目根目录执行:
24
+ 1. 先阅读目标项目根目录下的 `README.md`,识别该项目推荐的构建方式:
25
+
26
+ - 优先使用 README 中明确写出的构建命令(如 `rush build`、`rushx build`、`pnpm build`、`npm run build` 等)。
27
+ - 若 README 中包含“在某子目录执行构建”的说明,需先进入对应子目录再执行。
28
+ - 若 README 未提供可执行的构建命令:立即终止并提示“未在 README.md 中找到构建方式,请补充文档”;不要猜测或兜底尝试 `npm run build`、`pnpm build` 等命令。
29
+
30
+ 2. 在识别到的目录执行识别到的构建命令(不要写死 `npm run build`):
25
31
 
26
32
  ```bash
27
- npm run build
33
+ <build-command-from-readme>
28
34
  ```
29
35
 
30
- 2. 若退出码非 0:立即终止,不执行上传步骤,并输出失败原因。
36
+ 3. 若退出码非 0:立即终止,不执行上传步骤,并输出失败原因。
31
37
 
32
38
  ### 2) 自动识别并上传
33
39
 
@@ -63,7 +69,7 @@ apm publish --branch-name "<branchLastSegment>" --dir "<artifactDir>"
63
69
 
64
70
  ## 成功判定
65
71
 
66
- - `npm run build` 成功
72
+ - README 指定的构建命令执行成功
67
73
  - `apm publish` 成功返回 `ok: true`
68
74
  - MinIO 目录满足:`<branchLastSegment>/<artifactDir>/...`
69
75
 
@@ -39,6 +39,7 @@ description: 依据用户提供的补充信息(如对评审的回复、澄清
39
39
  4. **消除重复**:同一议题在原文与补充信息中多处出现时,合并为**一处**表述。
40
40
  5. **可追溯(轻量)**:可选「修订说明」概括相对原文的变化,且**只写补充信息实际带来的变化**,不罗列未采纳的评审。
41
41
  6. **与仓库一致**:对照 `AGENTS.md`、`.apm/product-capability-inventory` 等,避免修订稿与用户已确认表述冲突;**禁止**用代码路径当需求论据。
42
+ 7. **图片引用保持原样**:若原文含图片(如 `<img ...>`),在修订稿中直接保留对应 `img` 标签原文;不要改写成“图片见原始文档”等占位说明。
42
43
 
43
44
  ## 输出
44
45