ai-project-manage-cli 4.0.20 → 4.0.21

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": "4.0.20",
3
+ "version": "4.0.21",
4
4
  "description": "命令行工具:后续用于调用平台后端 API 完成运维与自动化操作",
5
5
  "type": "module",
6
6
  "private": false,
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  name: apm-deploy
3
- description: 路径相对仓库根 `<repoRoot>`;`.apm` 常被 gitignore,须直接 Read 或用 Shell 验磁盘,勿仅靠索引/搜索。用户仅提供需求 ID,读 deploy README 与 workitems(常用 requirement-status.yaml 的 env)后按 README 执行并汇总;不足则终止;@ 本技能、自动部署或「apm-deploy」时使用。
3
+ description: 路径相对仓库根 `<repoRoot>`;`.apm` 常被 gitignore,须直接 Read 或用 Shell 验磁盘,勿仅靠索引/搜索。用户仅提供需求 ID;目标部署环境从当前任务说明读取(勿读 requirement-status.yaml 的 env);读 deploy README 与 workitems 后按 README 执行并汇总;不足则终止;@ 本技能、自动部署或「apm-deploy」时使用。
4
4
  ---
5
5
 
6
6
  # APM 自动部署(按 `.apm/deploy/README.md`)
7
7
 
8
8
  - **部署怎么做**:**唯一**以仓库 **`.apm/deploy/README.md`** 为准(用户/团队维护)。文档有问题时**不得**猜着部署或绕过文档擅自执行生产级危险操作。
9
- - **参数从哪来**:用户**只需提供需求 ID**(`requirementId`);其余上下文从 **`.apm/workitems/<requirementId>/`** 内按需 **Read**,**不向用户追问**环境名、分支等部署参数。
9
+ - **参数从哪来**:用户**只需提供需求 ID**(`requirementId`);**目标部署环境**(如 `test` / `online`)从**当前任务说明/指令**中解析(平台自动部署节点会在指令中写明「部署到 XX 环境」);其余上下文从 **`.apm/workitems/<requirementId>/`** 内按需 **Read**,**不向用户追问**分支等 README 未写明的部署参数。
10
10
 
11
11
  ---
12
12
 
@@ -34,24 +34,25 @@ description: 路径相对仓库根 `<repoRoot>`;`.apm` 常被 gitignore,须
34
34
 
35
35
  ## 输入与前置
36
36
 
37
- | 字段 | 规则 |
38
- | --- | --- |
39
- | **`requirementId`** | **必填**。与 **`<repoRoot>/.apm/workitems/<requirementId>/`** 目录名一致;**缺则索要,不猜测**。 |
40
- | **`<repoRoot>`** | 见上节「路径基准」;所有 `.apm` 路径均锚定于此。 |
41
- | **工作项上下文** | 路径 **`<repoRoot>/.apm/workitems/<requirementId>/`**(工具里写相对路径则为 `.apm/workitems/<requirementId>/`)。README 需要何种信息(目标环境、命名空间、标签等),**优先在该目录下找对应文件**;**一般**阅读 **`requirement-status.yaml`** 中的 **`env`** 字段即可与 README 对齐(具体键名以仓库内实际 YAML 为准)。若 README 指向其它文件名(如任务状态、发布说明),在同一目录 **Read** 即可。 |
42
- | **参数仍不足** | README 要求某信息且在工作项目录与 README 附属文档中**仍无法取得**:**不得**向用户口头凑参数;**终止**并列出「README 要什么 / 已查了哪些路径 / 缺什么」。 |
37
+ | 字段 | 规则 |
38
+ | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
39
+ | **`requirementId`** | **必填**。与 **`<repoRoot>/.apm/workitems/<requirementId>/`** 目录名一致;**缺则索要,不猜测**。 |
40
+ | **`<repoRoot>`** | 见上节「路径基准」;所有 `.apm` 路径均锚定于此。 |
41
+ | **`deployEnv`(目标部署环境)** | **从当前任务说明/指令解析**(例如「将项目部署到 online 环境」→ `deployEnv=online`)。**禁止**从 **`requirement-status.yaml`** 读取 `env`——该文件由 `apm pull` 生成,**不含**部署环境字段。若任务说明未给出目标环境:**终止**,说明「任务说明未指定部署环境」。 |
42
+ | **工作项上下文** | 路径 **`<repoRoot>/.apm/workitems/<requirementId>/`**。README 需要何种信息(命名空间、标签、产物说明等),**优先在该目录下找对应文件**;**`requirement-status.yaml`** 仅含 `id` / `status` / `title`,用于核对需求身份,**不作为部署环境来源**。若 README 指向其它文件名(如任务状态、发布说明),在同一目录 **Read** 即可。 |
43
+ | **参数仍不足** | 若 README 要求某信息且在工作项目录、任务说明与 README 附属文档中**仍无法取得**:**不得**向用户口头凑参数;**终止**并列出「README 要什么 / 已查了哪些路径 / 缺什么」。 |
43
44
 
44
45
  ---
45
46
 
46
47
  ## 流程总览
47
48
 
48
- | 序号 | 步骤 | 说明 |
49
- | --- | --- | --- |
50
- | 1 | **阅读部署文档** | **Read** 全文:`.apm/deploy/README.md`(及 README 明确要求阅读的附属文档)。 |
51
- | 2 | **文档验收(门禁)** | 判定 README 是否足以执行;不足则**终止**(见「文档验收」)。 |
52
- | 3 | **加载工作项上下文** | 门禁通过后:按 README 所需,**Read** `.apm/workitems/<requirementId>/` 下文件(**优先** `requirement-status.yaml` → **`env`**);仍缺参数则**终止**(见「输入与前置」)。 |
53
- | 4 | **按文档执行** | **严格**按 README 的步骤、顺序与命令执行,并用上一步解析出的参数(如替换占位符、导出环境变量);不添加 README 未要求的步骤。 |
54
- | 5 | **对用户回复** | 用** Markdown 表格**汇总各步与命令结果(见文末模板);简述阻塞或跳过原因。 |
49
+ | 序号 | 步骤 | 说明 |
50
+ | ---- | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
51
+ | 1 | **阅读部署文档** | **Read** 全文:`.apm/deploy/README.md`(及 README 明确要求阅读的附属文档)。 |
52
+ | 2 | **文档验收(门禁)** | 判定 README 是否足以执行;不足则**终止**(见「文档验收」)。 |
53
+ | 3 | **解析部署环境并加载工作项上下文** | 门禁通过后:从**任务说明**解析 `deployEnv`;按 README 所需 **Read** `.apm/workitems/<requirementId>/` 下其它文件;仍缺参数则**终止**(见「输入与前置」)。 |
54
+ | 4 | **按文档执行** | **严格**按 README 的步骤、顺序与命令执行,并用上一步解析出的参数(含 `deployEnv`、替换占位符、导出环境变量);不添加 README 未要求的步骤。 |
55
+ | 5 | **对用户回复** | 用**Markdown 表格**汇总各步与命令结果(见文末模板);简述阻塞或跳过原因。 |
55
56
 
56
57
  ---
57
58
 
@@ -67,12 +68,12 @@ description: 路径相对仓库根 `<repoRoot>`;`.apm` 常被 gitignore,须
67
68
 
68
69
  在阅读完成后、加载工作项上下文与执行任何部署命令前,必须自检下列项。**任一条不满足**:**不得执行部署**;在对话中**逐条列出问题**(引用 README 片段或章节标题即可),然后**终止本技能流程**。
69
70
 
70
- | 验收项 | 不满足时的表现(示例) |
71
- | --- | --- |
71
+ | 验收项 | 不满足时的表现(示例) |
72
+ | ------------ | --------------------------------------------------------------------------------------- |
72
73
  | **可执行性** | 缺少前置条件(账号、CLI、密钥、目标环境)、缺少具体命令或顺序混乱到无法唯一确定下一步。 |
73
- | **一致性** | 前后矛盾(例如同一环境两套冲突命令)、版本/工具要求互相打架。 |
74
- | **完整性** | 引用不存在的脚本/配置文件、Broken link、关键占位符未替换说明。 |
75
- | **清晰性** | 读完仍**不知道**该如何在本仓库完成一次部署(步骤含糊到无法落地)。 |
74
+ | **一致性** | 前后矛盾(例如同一环境两套冲突命令)、版本/工具要求互相打架。 |
75
+ | **完整性** | 引用不存在的脚本/配置文件、Broken link、关键占位符未替换说明。 |
76
+ | **清晰性** | 读完仍**不知道**该如何在本仓库完成一次部署(步骤含糊到无法落地)。 |
76
77
 
77
78
  **特别约定(用户维护文档)**
78
79
 
@@ -82,13 +83,14 @@ description: 路径相对仓库根 `<repoRoot>`;`.apm` 常被 gitignore,须
82
83
 
83
84
  ---
84
85
 
85
- ## 步骤 3:加载工作项上下文
86
+ ## 步骤 3:解析部署环境并加载工作项上下文
86
87
 
87
88
  仅在「文档验收」**全部通过**后执行。
88
89
 
89
- 1. 确认目录 **`<repoRoot>/.apm/workitems/<requirementId>/`**(工具相对路径:`.apm/workitems/<requirementId>/`)存在;不存在则**终止**(不要假想 ID)。
90
- 2. 根据 README 描述的占位符或变量(如「目标环境」「部署 env」),**Read** 该目录内相应文件(路径同样锚定 `<repoRoot>`);**默认优先** **`requirement-status.yaml`**,提取 **`env`**(及 README 明确要求的其它字段)。
91
- 3. README 需要的某项信息在工作项内**不存在或未填写**:**终止**,说明缺失字段与文件路径;**不**请用户在对话里补充(用户约定仅提供需求 ID)。
90
+ 1. **解析 `deployEnv`**:从**当前任务说明/指令**提取目标部署环境(如 `test`、`online`)。平台自动部署节点典型表述为「将项目部署到 {环境} 环境」。**不得**打开 `requirement-status.yaml` 找 `env` 字段。
91
+ 2. 确认目录 **`<repoRoot>/.apm/workitems/<requirementId>/`**(工具相对路径:`.apm/workitems/<requirementId>/`)存在;不存在则**终止**(不要假想 ID)。
92
+ 3. 根据 README 描述的占位符或变量,**Read** 该目录内相应文件(路径锚定 `<repoRoot>`);**`requirement-status.yaml`** 可用于核对 `id` / `status` / `title`,**不含**部署环境。
93
+ 4. 若 README 需要的某项信息在任务说明、工作项目录与 README 附属文档中**不存在或未填写**:**终止**,说明缺失字段与已查路径;**不**请用户在对话里补充(用户约定仅提供需求 ID 与任务说明中的环境)。
92
94
 
93
95
  ---
94
96
 
@@ -96,7 +98,7 @@ description: 路径相对仓库根 `<repoRoot>`;`.apm` 常被 gitignore,须
96
98
 
97
99
  仅在「工作项上下文」**已满足 README 对参数的要求**后执行。
98
100
 
99
- 1. **严格对照** README:顺序、工作目录(若文档指定 `cd`)、环境变量、所用 CLI(如 `rush`、`docker`、`kubectl` 等)均以文档为准;将步骤 3 得到的 **`env` 等**按 README 约定注入命令或环境(禁止凭猜测填值)。**默认在 `<repoRoot>` 执行**;遵守本仓库 **AGENTS.md**(如 Rush 安装/构建约定),但**不**执行 README **未写出**的额外构建/发布步骤。
101
+ 1. **严格对照** README:顺序、工作目录(若文档指定 `cd`)、环境变量、所用 CLI(如 `rush`、`docker`、`kubectl`、`apm deploy-frontend` 等)均以文档为准;将步骤 3 得到的 **`deployEnv` 等**按 README 约定注入命令或环境(禁止凭猜测填值)。**默认在 `<repoRoot>` 执行**;遵守本仓库 **AGENTS.md**(如 Rush 安装/构建约定),但**不**执行 README **未写出**的额外构建/发布步骤。
100
102
  2. **每条命令**记录:是否成功、退出码或关键输出摘要、失败时的 stderr(可截断至可读长度)。
101
103
  3. **失败处理**:与 **Guardrails** 一致——默认**失败即终止**后续部署步骤,在表格与摘要中写明失败命令与原因;**不因网络抖动等做无文档依据的多轮重试**(除非 README **明确**要求重试策略)。
102
104
  4. **安全**:若 README 要求确认交互(如 `Are you sure?`),按文档处理;文档要求人工审批而 Agent 无法完成时,执行到该步即停止,并标明「需人工完成」。
@@ -107,13 +109,13 @@ description: 路径相对仓库根 `<repoRoot>`;`.apm` 常被 gitignore,须
107
109
 
108
110
  回复中**必须包含**一张汇总表,建议结构:
109
111
 
110
- | 阶段 | 内容 | 结果 |
111
- | --- | --- | --- |
112
- | 阅读 | `.apm/deploy/README.md`(及 README 要求阅读的附属文档) | 成功 / 失败(原因) |
113
- | 验收 | 文档是否足以执行 | 通过 / **未通过**(列具体问题) |
114
- | 上下文 | `.apm/workitems/<requirementId>/`(含 `requirement-status.yaml` / `env` 等) | 成功 / **失败**(缺文件或缺字段) |
115
- | 执行 | 按 README 执行的命令或步骤摘要(可按行拆分) | 每步 成功 / 失败 / 跳过 / 需人工 |
116
- | 结论 | 部署是否完成 README 所述目标 | 是 / 否 / 未执行(门禁或上下文未过) |
112
+ | 阶段 | 内容 | 结果 |
113
+ | ------ | ------------------------------------------------------------ | ------------------------------------- |
114
+ | 阅读 | `.apm/deploy/README.md`(及 README 要求阅读的附属文档) | 成功 / 失败(原因) |
115
+ | 验收 | 文档是否足以执行 | 通过 / **未通过**(列具体问题) |
116
+ | 上下文 | 任务说明中的 `deployEnv` + `.apm/workitems/<requirementId>/` | 成功 / **失败**(缺环境或未找到文件) |
117
+ | 执行 | 按 README 执行的命令或步骤摘要(可按行拆分) | 每步 成功 / 失败 / 跳过 / 需人工 |
118
+ | 结论 | 部署是否完成 README 所述目标 | 是 / 否 / 未执行(门禁或上下文未过) |
117
119
 
118
120
  若门禁或上下文未通过:**不要**出现「已尝试部署」的误导性表述;表格中「执行」阶段填 **未执行(原因)**。
119
121
 
@@ -126,7 +128,8 @@ description: 路径相对仓库根 `<repoRoot>`;`.apm` 常被 gitignore,须
126
128
  - **gitignore 不等于不存在**:`.apm` 下文件可能不入 Git 索引;**禁止**用「搜索无结果」代替 **Read** 或磁盘校验。
127
129
  - **路径锚定 `<repoRoot>`**:凡 `.apm/deploy`、`.apm/workitems` 等路径**仅**相对仓库根;**禁止**因当前焦点在 monorepo 内某一子目录而在错误基底上拼路径。
128
130
  - **文档优先**:无合格 `.apm/deploy/README.md` 解读结果,**不部署**。
129
- - **用户只给 ID**:除 **`requirementId`** 外,**不依赖**用户在对话中口头提供环境、密钥说明等;这些信息须来自 **工作项目录** README 已写明的本地/CI 约定。缺数据则**终止并写明缺口**,而非让用户「现场补一句」。
131
+ - **部署环境来源**:`deployEnv` **只**来自当前任务说明/指令;**禁止**从 `requirement-status.yaml` 读取 `env`(该字段已不再由 `apm pull` 写入)。
132
+ - **用户只给 ID + 任务环境**:除 **`requirementId`** 与任务说明中的**目标环境**外,**不依赖**用户在对话中口头补充密钥、分支等;这些信息须来自 **工作项目录** 或 README 已写明的本地/CI 约定。缺数据则**终止并写明缺口**,而非让用户「现场补一句」。
130
133
  - **失败即终止**:在文档与上下文明确的前提下,任一步骤失败 → 停止后续步骤,仅记录状态;**例外**仅允许 Agent **自身**错误(如错目录)纠正后对**同一步**再试一次,仍失败则终止。
131
- - **不臆造**:README 未写的命令、环境、目标集群/命名空间,**不补充**;工作项 YAML **未提供**的字段**不得**编造。
134
+ - **不臆造**:README 未写的命令、环境、目标集群/命名空间,**不补充**;任务说明与工作项 **未提供**的字段**不得**编造。
132
135
  - **不报假成功**:命令失败或未完成 README 目标时,结论必须为「否」或等价表述。