@hcmai/cli 0.3.9 → 0.3.10

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.
@@ -0,0 +1,100 @@
1
+ ---
2
+ name: hcm-delivery-triage
3
+ title: 需求分诊:判「产品做不到」之前,六条路先走完
4
+ description: 客户提一条需求,先穷举六类承载物——配置面 / 弹性模型 / JSON Model / GraalJS SPI / 弹性字段 / DataPackage。六格由命令现探现填,你跳不了步;结论与证据由你给,它只判两者打不打架。
5
+ category: cli-operations
6
+ stages:
7
+ - baseline
8
+ actionSurface: cli
9
+ requires:
10
+ - hcm-delivery-doctor
11
+ ---
12
+
13
+ # 需求分诊:判「产品做不到」之前,六条路先走完
14
+
15
+ 分诊最贵的失误是:看一眼觉得产品做不到,直接判「产品缺口」,六条承载路径**一条都没查**。
16
+ 这条命令把穷举那一步机械化。
17
+
18
+ ```
19
+ hcm delivery triage --requests <需求清单.json> --recon <基线产物目录> --out <产物根>
20
+ ```
21
+
22
+ ## 分工:机器干穷举,你干判断
23
+
24
+ | 谁 | 干什么 |
25
+ |---|---|
26
+ | 命令 | 六格**现探现填** —— 你在 `--requests` 里手写的 `cells` 一律不认 |
27
+ | 你 | 给 `verdict`(REUSE / CONFIG / EXTEND / GAP)与 `evidence` |
28
+ | 命令 | 只判**结论与证据打不打架**,不判结论对不对 |
29
+
30
+ 「结论对不对」无法机械验证,「有没有跳步」可以。这条命令只做后者。
31
+
32
+ ## `--requests` 的形状
33
+
34
+ 一个 JSON 数组,每条:
35
+
36
+ ```json
37
+ {
38
+ "request": "客户原话",
39
+ "verdict": "REUSE | CONFIG | EXTEND | GAP",
40
+ "evidence": "凭什么这么判",
41
+ "debtAction": "缺哪个 Action(判 GAP 时)",
42
+ "blindAcknowledged": true
43
+ }
44
+ ```
45
+
46
+ 🔴 **`cells` 不要写** —— 写了也会被覆盖。那是跳步唯一的入口,所以它被堵死了。
47
+
48
+ ## 六格与四档判词
49
+
50
+ | 承载物 | 判据来自 |
51
+ |---|---|
52
+ | `config-surface` | 基线里的模型元数据面 |
53
+ | `flex-model` | 基线里 `type=DYNAMIC` 的模型 |
54
+ | `json-model` | 三个写能力**全部**不允许(不看 `type` 字段 —— 产品的 ModelType 里根本没有 JSON 这一档) |
55
+ | `graaljs-spi` | `/api/tenant-extension/workspaces`(**六格里唯一要联网的一格**) |
56
+ | `flex-data` | 基线字段索引里 `isFlex` 的字段 |
57
+ | `data-package` | 🔴 **恒盲区**,且一次请求都不发 |
58
+
59
+ 四档判词,`blind` 与 `miss` **必须分开**:
60
+
61
+ - `hit` —— 看见了,这条路走得通
62
+ - `miss` —— 看了,这条路没有
63
+ - `blind` —— **这条路在 HTTP 面上看不见**,不是「没有」
64
+ - `unavailable` —— 本该看得见,这次没取到(带原始错误 + 下一步)
65
+
66
+ 🔴 **`data-package` 永远是 `blind`**:它在 HTTP 面上没有发现入口。把它渲染成「没有」,
67
+ 顾问就会漏掉一整条实施路径。要落地它得走产品团队。
68
+
69
+ ## 四条自洽规则
70
+
71
+ | 规则 | 什么时候拦你 |
72
+ |---|---|
73
+ | R1 | 四段(客户原话 / 六格 / 结论 / 证据)缺一段,或六格任一没结论 |
74
+ | R2 | 判了 GAP,但六格里有命中 —— 有路走通还判缺口 |
75
+ | R3 | 判了 CONFIG,但六格里零命中 —— 说得出配在哪,这个结论才立得住 |
76
+ | R4 | 判了 GAP、有盲区,却没有 `blindAcknowledged` |
77
+
78
+ 🔴 **R4 会拦下你写的每一条 GAP**,因为 `data-package` 恒盲区。这是刻意的:
79
+ 判「产品做不到」之前,必须先承认「有一条路我根本没看见」。盲区是「没看见」,不是「没有」。
80
+
81
+ ## 退出码与落盘
82
+
83
+ | rc | 含义 |
84
+ |---|---|
85
+ | `0` | 自洽,`work/triage.md` 已写出 |
86
+ | `1` | 打架,或前提不成立(`--requests` 没给 / 读不出来 / 不是数组) |
87
+
88
+ 🔴 **打架时不落盘。** 一份自相矛盾的分诊产物比没有更坏 —— 下游会把它当成走完全程的那份读,
89
+ 而它自己说不出自己是半截的。屏上会**逐条**印出是第几条、哪条规则、为什么。
90
+
91
+ ## GAP 会自动进产品的债务清单
92
+
93
+ 判 GAP 时产出物里落一行 `# DEBT: 缺 XxxAction`(ADR-303 §7 的格式,逐字)。
94
+ 说不出缺哪个 Action 也照样落一行 —— 否则这条 GAP 就从清单里消失了。
95
+
96
+ ## 什么时候跑
97
+
98
+ **客户提完需求、你准备回话之前。** 先跑一次 `hcm delivery recon` 拿基线,再跑这条。
99
+ `--recon` 指的是**产物目录本身**(`hcm delivery recon` 打出来的那一层),不是它的上级;
100
+ 不给它时命令会按爬取身份现算一份,但那要多打一发请求。
@@ -10,3 +10,4 @@
10
10
 
11
11
  - `hcm-delivery-doctor` — 到客户现场敲的第一条命令:连不上 / 身份不对 / 没权限 / 站错层,四件事分开问。 → `hcm-delivery-doctor/SKILL.md`
12
12
  - `hcm-delivery-gate0` — 写交付技能的成稿闸:七类环境事实 / 未登记的协议形态 / 产物路径,在写下的当时就判掉。 → `hcm-delivery-gate0/SKILL.md`
13
+ - `hcm-delivery-triage` — 需求分诊:判「产品做不到」之前,六条承载路径先走完;机器穷举,你判断。 → `hcm-delivery-triage/SKILL.md`
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "cliVersion": "0.3.9",
3
+ "cliVersion": "0.3.10",
4
4
  "commands": [
5
5
  {
6
6
  "path": "action",
@@ -195,6 +195,15 @@
195
195
  "--dir"
196
196
  ]
197
197
  },
198
+ {
199
+ "path": "delivery triage",
200
+ "options": [
201
+ "--capabilities",
202
+ "--out",
203
+ "--recon",
204
+ "--requests"
205
+ ]
206
+ },
198
207
  {
199
208
  "path": "describe",
200
209
  "options": [
@@ -735,6 +744,27 @@
735
744
  "sha256": "7d5f4e99ea951ad401d8a8dab8d85770d0d18ac28fddcd5f2bde124edd0879c1"
736
745
  }
737
746
  ]
747
+ },
748
+ {
749
+ "id": "hcm-delivery-triage",
750
+ "title": "需求分诊:判「产品做不到」之前,六条路先走完",
751
+ "description": "客户提一条需求,先穷举六类承载物——配置面 / 弹性模型 / JSON Model / GraalJS SPI / 弹性字段 / DataPackage。六格由命令现探现填,你跳不了步;结论与证据由你给,它只判两者打不打架。",
752
+ "category": "cli-operations",
753
+ "stages": [
754
+ "baseline"
755
+ ],
756
+ "actionSurface": "cli",
757
+ "requires": [
758
+ "hcm-delivery-doctor"
759
+ ],
760
+ "bytes": 4294,
761
+ "files": [
762
+ {
763
+ "path": "SKILL.md",
764
+ "bytes": 4294,
765
+ "sha256": "7a71d7917d73343d9c130f1d9248231c36c3abb3ebc342c3d3afe5abb9098b1a"
766
+ }
767
+ ]
738
768
  }
739
769
  ]
740
770
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hcmai/cli",
3
- "version": "0.3.9",
3
+ "version": "0.3.10",
4
4
  "description": "Official HCM Next CLI for business APIs, tenant delivery, workspaces, and AI agents.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -37,7 +37,7 @@
37
37
  "test": "vitest run"
38
38
  },
39
39
  "dependencies": {
40
- "@hcmai/sdk": "0.3.9",
40
+ "@hcmai/sdk": "0.3.10",
41
41
  "axios": "^1.6.0",
42
42
  "commander": "^12.0.0",
43
43
  "ink": "^7.0.5",