skill-family-engineering-kit 0.11.0 → 0.12.0

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/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # Changelog
2
2
 
3
+ <!-- release-skill:changelog:start version=0.12.0 locale=en baseline=sha256:6000579dc8b473dbeda1832274d971df0c4f3a62a90c973184dd70e59ffc8602 -->
4
+ ## [0.12.0] - 2026-08-26
5
+
6
+ Engineering Kit 0.12.0 extends bounded real-host verification from two to five fixed built-in drivers.
7
+
8
+ ### Added
9
+
10
+ - Extends runHostVerification with three fixed built-in drivers while retaining the Kimi and WorkBuddy raw-byte behavior.
11
+
12
+ ### Changed
13
+
14
+ - Uses the classic plugin-root/skills/skill-id layout for the plugin-directory driver and validates complete JSONL event streams before accepting execution.
15
+ - Keeps output meaning with consumers and applies strict text decoding only to the three new text-protocol drivers.
16
+ - Registers Qoder as manual for host support and descriptor maturity, while its real-host verification capability remains candidate.
17
+
18
+ ### Fixed
19
+
20
+ - Rejects malformed protocol tails, invalid UTF-8 in text-protocol drivers, and version suffixes outside each driver's fixed format before they can support a successful public result.
21
+
22
+ ### Upgrade Notes
23
+
24
+ Pin all three Foundation packages to 0.12.0. Existing runHostVerification and verifyHostVerificationBindings entrypoints and request identities remain unchanged. Reuse the host's existing login state; Foundation does not isolate authentication, freeze model identity, disable host tools, or decide domain PASS/FAIL. Qoder verification grants no build, plan, apply, install, update, uninstall, or rollback capability. The executable digest is a preflight observation and member snapshots cover only the declared members at the two observed times.
25
+ <!-- release-skill:changelog:end version=0.12.0 locale=en -->
26
+
27
+
3
28
  <!-- release-skill:changelog:start version=0.11.0 locale=en baseline=sha256:108e261312b0838af53184710453fe19f369a9ea10ac5d1fc3e829e919d0f99d -->
4
29
  ## [0.11.0] - 2026-08-25
5
30
 
@@ -1,5 +1,30 @@
1
1
  # 变更日志
2
2
 
3
+ <!-- release-skill:changelog:start version=0.12.0 locale=zh-CN baseline=sha256:f2a68cdeac0b2a44d7a4cc64df8e8f371795b4150719d821a31866a6e8873e2f -->
4
+ ## [0.12.0] - 2026-08-26
5
+
6
+ Engineering Kit 0.12.0 将受约束真实宿主验证从两个固定内置驱动扩展为五个。
7
+
8
+ ### 新增
9
+
10
+ - 为 runHostVerification 增加三个固定的内置驱动,保留 Kimi 与 WorkBuddy 的原始字节行为。
11
+
12
+ ### 变更
13
+
14
+ - 插件目录驱动使用 plugin-root/skills/skill-id 经典插件布局;JSONL 驱动必须扫描完整事件流后才接受执行结果。
15
+ - 输出的业务含义由消费者判断,严格文本解码仅用于三个新增的文本协议驱动。
16
+ - Qoder 的宿主支持和 Descriptor 成熟度登记为 manual,真实宿主验证能力继续标为 candidate。
17
+
18
+ ### 修复
19
+
20
+ - 拒绝畸形协议尾部、文本协议中的非法 UTF-8,以及驱动固定格式之外的版本后缀,避免产生错误的公共成功结果。
21
+
22
+ ### 升级说明
23
+
24
+ 三个 Foundation 包须精确锁定到同一 0.12.0 版本。runHostVerification、verifyHostVerificationBindings 入口与请求身份不变。验证复用宿主现有登录态;Foundation 不隔离认证、不固定模型身份、不关闭宿主工具,也不判定领域 PASS/FAIL。Qoder 验证不授予 build、plan、apply、install、update、uninstall 或 rollback 能力。可执行文件摘要仅是启动前观察,成员快照仅覆盖已声明成员的两个观察时点。
25
+ <!-- release-skill:changelog:end version=0.12.0 locale=zh-CN -->
26
+
27
+
3
28
  <!-- release-skill:changelog:start version=0.11.0 locale=zh-CN baseline=sha256:5d5852f3fa3c970b4d277600a0886d533e3c883fc72ce144a85a071d1e270771 -->
4
29
  ## [0.11.0] - 2026-08-25
5
30
 
package/README.md CHANGED
@@ -4,28 +4,32 @@
4
4
 
5
5
  # skill-family-engineering-kit
6
6
 
7
- <!-- release-skill:release-version: 0.11.0 -->
7
+ <!-- release-skill:release-version: 0.12.0 -->
8
8
 
9
9
  An engineering toolkit used in development and CI. There are **exactly four** top-level commands, and no fifth:
10
10
 
11
11
  <!-- release-skill:managed:start id=latest-release -->
12
- **0.11.0** (2026-08-25)
12
+ **0.12.0** (2026-08-26)
13
13
 
14
- Engineering Kit 0.11.0 adds a candidate real-host verification API and ships the registered host Profile closure.
14
+ Engineering Kit 0.12.0 extends bounded real-host verification from two to five fixed built-in drivers.
15
15
 
16
16
  **Added**
17
17
 
18
- - Adds runHostVerification for one fresh, bounded Kimi or WorkBuddy invocation reusing the caller's existing login state, and verifyHostVerificationBindings for pure result composition.
19
- - Recomputes closure and stream digests from raw bytes and keeps private evidence outside the public result.
20
- - Ships the registered host Profile closure through bundledHostProfilesRoot().
18
+ - Extends runHostVerification with three fixed built-in drivers while retaining the Kimi and WorkBuddy raw-byte behavior.
21
19
 
22
20
  **Changed**
23
21
 
24
- - Manual Profiles retain their lifecycle restrictions; host verification does not grant build, plan, apply, install, update, uninstall, or rollback support.
22
+ - Uses the classic plugin-root/skills/skill-id layout for the plugin-directory driver and validates complete JSONL event streams before accepting execution.
23
+ - Keeps output meaning with consumers and applies strict text decoding only to the three new text-protocol drivers.
24
+ - Registers Qoder as manual for host support and descriptor maturity, while its real-host verification capability remains candidate.
25
+
26
+ **Fixed**
27
+
28
+ - Rejects malformed protocol tails, invalid UTF-8 in text-protocol drivers, and version suffixes outside each driver's fixed format before they can support a successful public result.
25
29
 
26
30
  **Upgrade Notes**
27
31
 
28
- The 0.11.0 host-verification API is candidate-only. It does not own domain PASS/FAIL, release state, or automatic login, and it claims no authentication isolation, unchanged credentials, fixed model identity, or disabled host tool capability. executableSha256 is a point-in-time preflight observation, not proof of the executed image; the caller exclusively controls that namespace. Foundation retains session directories, and the caller cleans its outer temporaryRoot after inspection.
32
+ Pin all three Foundation packages to 0.12.0. Existing runHostVerification and verifyHostVerificationBindings entrypoints and request identities remain unchanged. Reuse the host's existing login state; Foundation does not isolate authentication, freeze model identity, disable host tools, or decide domain PASS/FAIL. Qoder verification grants no build, plan, apply, install, update, uninstall, or rollback capability. The executable digest is a preflight observation and member snapshots cover only the declared members at the two observed times.
29
33
  <!-- release-skill:managed:end id=latest-release -->
30
34
 
31
35
  | Command | Purpose | Side effects |
@@ -46,7 +50,7 @@ Kit is the "engineering stage" layer, depending on the Harness and Contracts. It
46
50
  ## Installation and Minimal Example
47
51
 
48
52
  ```sh
49
- npm install --save-dev skill-family-engineering-kit@0.11.0
53
+ npm install --save-dev skill-family-engineering-kit@0.12.0
50
54
  npm exec -- skill-family-kit --help
51
55
  npm exec -- skill-family-kit scaffold --root <empty-dir> --project-id my-project
52
56
  npm exec -- skill-family-kit adopt-plan --root <repo>
@@ -54,7 +58,7 @@ npm exec -- skill-family-kit projection --root <repo>
54
58
  npm exec -- skill-family-kit check --root <repo>
55
59
  ```
56
60
 
57
- The four commands above cover skeleton generation, read-only inventory, managed projection, and diagnostics respectively; a zero-install form is available via `npm exec --package=skill-family-engineering-kit@0.11.0 -- skill-family-kit --help`.
61
+ The four commands above cover skeleton generation, read-only inventory, managed projection, and diagnostics respectively; a zero-install form is available via `npm exec --package=skill-family-engineering-kit@0.12.0 -- skill-family-kit --help`.
58
62
 
59
63
  ### Public Profile SPI
60
64
 
@@ -108,13 +112,13 @@ npm exec -- skill-family-kit scaffold host-build --root <workspace> --host <id>
108
112
  npm exec -- skill-family-kit adopt-plan host-plan --root <workspace> --host <id> --path-category <id> --build-manifest <relpath> --probe-facts <relpath> --hosts-root <dir>
109
113
  ```
110
114
 
111
- The Profile must be provided explicitly; Kit does not bind a specific host by default. Canonical host IDs may resolve only aliases declared by the finite registered Profile set. Probe starts no process by default; only when both `--allow-host-spawn --host-executable <absolute-path>` are given is the frozen version vector executed. Local install and update use an explicit authorization reference plus the existing contained publication primitives; uninstall is rejected with `manual-recovery-required` because Foundation has no safe bound deletion primitive. Two registered hosts have trusted version drivers; Kimi Code, WorkBuddy, CodeBuddy, and DeepSeek Harness expose independent manual facts; Qoder is `unsupported`. Adapter source only accepts declared text closures; binary projection is not supported; see the [host capability matrix](../../docs/reference/host-capability-matrix.md) and registered Profiles.
115
+ The Profile must be provided explicitly; Kit does not bind a specific host by default. Canonical host IDs may resolve only aliases declared by the finite registered Profile set. Probe starts no process by default; only when both `--allow-host-spawn --host-executable <absolute-path>` are given is the frozen version vector executed. Local install and update use an explicit authorization reference plus the existing contained publication primitives; uninstall is rejected with `manual-recovery-required` because Foundation has no safe bound deletion primitive. Two registered hosts have trusted version drivers; Kimi Code, WorkBuddy, CodeBuddy, and DeepSeek Harness expose independent manual facts. Qoder is `manual` from 0.12.0; its candidate real-host verification grants no lifecycle support. Adapter source only accepts declared text closures; binary projection is not supported; see the [host capability matrix](../../docs/reference/host-capability-matrix.md) and registered Profiles.
112
116
 
113
117
  ### Candidate real-host verification library API
114
118
 
115
- `runHostVerification({ request, bindings, hostsRoot })` and `verifyHostVerificationBindings({ results, expectedCommon, expectedRequestDigestByHost })` are library APIs, not a fifth Kit command. The first runs one bounded candidate verification against caller-bound roots using an admitted built-in driver (`kimi-code-print-v1` or `workbuddy-codebuddy-print-v1`, both bound to `existing-user-state + host-managed`) and returns a Contracts-validated, redacted four-state result. The second is pure and combines only `observed` results with the exact common fields and per-host request digest expected by the caller.
119
+ `runHostVerification({ request, bindings, hostsRoot })` and `verifyHostVerificationBindings({ results, expectedCommon, expectedRequestDigestByHost })` are library APIs, not a fifth Kit command. The first runs one bounded candidate verification against caller-bound roots using a fixed built-in driver and returns a Contracts-validated, redacted four-state result. All five drivers use `existing-user-state + host-managed`; their exact identities and limitations are listed in the [host capability matrix](../../docs/reference/host-capability-matrix.md). The second API is pure and combines only `observed` results with the exact common fields and per-host request digest expected by the caller.
116
120
 
117
- The API keeps consumer workload, domain output checks, domain PASS/FAIL, release freshness, and release state outside Foundation. The caller supplies a canonical `existingUserStateRoot` that is projected into the child environment but never read, digested, modified or cleaned by Foundation; it does not grant manual Profiles any build, plan, apply, install, update, or uninstall capability. The Kimi and WorkBuddy real-host publication gates remain a hard publication requirement for 0.11.0.
121
+ The API keeps consumer workload, domain output checks, domain PASS/FAIL, release freshness, and release state outside Foundation. The caller supplies a canonical `existingUserStateRoot` that is projected into the child environment but never read, digested, modified or cleaned by Foundation; it does not grant manual Profiles any build, plan, apply, install, update, or uninstall capability. Version 0.12.0 requires real-host verification of all five fixed drivers before publication; the API does not own that release decision.
118
122
 
119
123
  `executableSha256` binds only the bytes observed by the strict preflight read; the actual process is still spawned by pathname, so the caller must exclusively control the executable namespace through probe and invocation. Foundation retains the call's `session-*` directory and never deletes it by pathname. After inspection, the caller cleans its exclusively owned outer `temporaryRoot`.
120
124
 
package/README.zh-CN.md CHANGED
@@ -5,28 +5,32 @@
5
5
 
6
6
  # skill-family-engineering-kit
7
7
 
8
- <!-- release-skill:release-version: 0.11.0 -->
8
+ <!-- release-skill:release-version: 0.12.0 -->
9
9
 
10
10
  开发与 CI 阶段使用的工程工具包。**恰好四个**顶层命令,没有第五个:
11
11
 
12
12
  <!-- release-skill:managed:start id=latest-release -->
13
- **0.11.0** (2026-08-25)
13
+ **0.12.0** (2026-08-26)
14
14
 
15
- Engineering Kit 0.11.0 增加候选真实宿主验证 API,并随包携带已登记宿主 Profile 闭包。
15
+ Engineering Kit 0.12.0 将受约束真实宿主验证从两个固定内置驱动扩展为五个。
16
16
 
17
17
  **新增**
18
18
 
19
- - 新增 runHostVerification,执行一次 fresh、受约束的 Kimi WorkBuddy 调用(复用调用方现有登录态);新增 verifyHostVerificationBindings,组合结果时只做纯校验。
20
- - 从原始字节重算闭包和流摘要,并把私有证据留在公共结果之外。
21
- - 通过 bundledHostProfilesRoot() 携带已登记宿主 Profile 闭包。
19
+ - runHostVerification 增加三个固定的内置驱动,保留 Kimi WorkBuddy 的原始字节行为。
22
20
 
23
21
  **变更**
24
22
 
25
- - manual Profile 继续保留生命周期限制;宿主验证不会授予 build、plan、apply、install、update、uninstall 或 rollback 能力。
23
+ - 插件目录驱动使用 plugin-root/skills/skill-id 经典插件布局;JSONL 驱动必须扫描完整事件流后才接受执行结果。
24
+ - 输出的业务含义由消费者判断,严格文本解码仅用于三个新增的文本协议驱动。
25
+ - Qoder 的宿主支持和 Descriptor 成熟度登记为 manual,真实宿主验证能力继续标为 candidate。
26
+
27
+ **修复**
28
+
29
+ - 拒绝畸形协议尾部、文本协议中的非法 UTF-8,以及驱动固定格式之外的版本后缀,避免产生错误的公共成功结果。
26
30
 
27
31
  **升级说明**
28
32
 
29
- 0.11.0 宿主验证 API 仍为候选能力,不拥有领域 PASS/FAIL、发布状态或自动登录;不宣称认证状态隔离、凭证未变化、模型身份固定或宿主工具能力已关闭。executableSha256 只是启动前的点时观察,不证明实际执行映像;调用方独占对应命名空间。Foundation 保留 session 目录,调用方检查后清理外层 temporaryRoot。
33
+ 三个 Foundation 包须精确锁定到同一 0.12.0 版本。runHostVerification、verifyHostVerificationBindings 入口与请求身份不变。验证复用宿主现有登录态;Foundation 不隔离认证、不固定模型身份、不关闭宿主工具,也不判定领域 PASS/FAIL。Qoder 验证不授予 build、plan、apply、install、update、uninstall rollback 能力。可执行文件摘要仅是启动前观察,成员快照仅覆盖已声明成员的两个观察时点。
30
34
  <!-- release-skill:managed:end id=latest-release -->
31
35
 
32
36
  | 命令 | 用途 | 副作用 |
@@ -47,7 +51,7 @@ Kit 是「工程阶段」层,依赖 Harness 与 Contracts。它只做四件事
47
51
  ## 安装和最小示例
48
52
 
49
53
  ```sh
50
- npm install --save-dev skill-family-engineering-kit@0.11.0
54
+ npm install --save-dev skill-family-engineering-kit@0.12.0
51
55
  npm exec -- skill-family-kit --help
52
56
  npm exec -- skill-family-kit scaffold --root <empty-dir> --project-id my-project
53
57
  npm exec -- skill-family-kit adopt-plan --root <repo>
@@ -55,7 +59,7 @@ npm exec -- skill-family-kit projection --root <repo>
55
59
  npm exec -- skill-family-kit check --root <repo>
56
60
  ```
57
61
 
58
- 以上四条命令分别覆盖生成骨架、只读盘点、受管投影与诊断;零安装形式可用 `npm exec --package=skill-family-engineering-kit@0.11.0 -- skill-family-kit --help`。
62
+ 以上四条命令分别覆盖生成骨架、只读盘点、受管投影与诊断;零安装形式可用 `npm exec --package=skill-family-engineering-kit@0.12.0 -- skill-family-kit --help`。
59
63
 
60
64
  ### 公共 Profile SPI
61
65
 
@@ -109,7 +113,15 @@ npm exec -- skill-family-kit scaffold host-build --root <workspace> --host <id>
109
113
  npm exec -- skill-family-kit adopt-plan host-plan --root <workspace> --host <id> --path-category <id> --build-manifest <relpath> --probe-facts <relpath> --hosts-root <dir>
110
114
  ```
111
115
 
112
- Profile 必须显式提供,Kit 不默认绑定具体宿主。规范宿主 ID 只能解析已登记有限 Profile 中声明的 alias。probe 默认不启动进程;只有同时给出 `--allow-host-spawn --host-executable <绝对路径>` 才执行冻结版本向量。本地 install/update 通过显式授权引用和既有受收容发布原语执行;uninstall 因没有安全的绑定删除原语而返回 `manual-recovery-required`,不删除文件。Claude/Codex 使用受信版本 driver;Kimi Code、WorkBuddy、CodeBuddy 和 DeepSeek Harness 只提供独立手动事实;Qoder `unsupported`。adapter source 只接受已声明的文本闭包,不支持二进制投影;精确宿主支持矩阵见 [宿主能力矩阵](../../docs/reference/host-capability-matrix.md) 与已登记 Profile。
116
+ Profile 必须显式提供,Kit 不默认绑定具体宿主。规范宿主 ID 只能解析已登记有限 Profile 中声明的 alias。probe 默认不启动进程;只有同时给出 `--allow-host-spawn --host-executable <绝对路径>` 才执行冻结版本向量。本地 install/update 通过显式授权引用和既有受收容发布原语执行;uninstall 因没有安全的绑定删除原语而返回 `manual-recovery-required`,不删除文件。Claude/Codex 使用受信版本 driver;Kimi Code、WorkBuddy、CodeBuddy 和 DeepSeek Harness 只提供独立手动事实。Qoder 0.12.0 起为 `manual`,候选真实验证不授予生命周期能力。adapter source 只接受已声明的文本闭包,不支持二进制投影;精确宿主支持矩阵见 [宿主能力矩阵](../../docs/reference/host-capability-matrix.md) 与已登记 Profile。
117
+
118
+ ### 候选真实宿主验证 API
119
+
120
+ `runHostVerification({ request, bindings, hostsRoot })` 使用固定内置驱动执行一次受约束验证,返回经过 Contracts 校验和脱敏的四态结果。五个驱动覆盖 Kimi、WorkBuddy、Claude Code、Codex exec 和 Qoder CLI,均复用 `existing-user-state + host-managed` 登录态。`verifyHostVerificationBindings({ results, expectedCommon, expectedRequestDigestByHost })` 只组合校验 `observed` 结果,公共字段与请求摘要必须匹配调用方预期。两者都是库 API,不增加第五个 Kit 命令。
121
+
122
+ 调用方保留工作负载、领域输出检查、领域 PASS/FAIL、发布新鲜度和发布状态。规范路径 `existingUserStateRoot` 仅投影到子进程环境,Foundation 自身不读取、摘要、修改或清理其中内容,也不授予手动宿主生命周期能力。0.12.0 发布前须完成五个固定驱动的真实验证,发布决定不归该 API。
123
+
124
+ `executableSha256` 只绑定启动前严格读取的字节,进程仍按路径启动;调用方须在版本观察和执行期间独占可执行文件命名空间。Foundation 保留 `session-*` 目录,调用方检查后清理独占的外层 `temporaryRoot`。
113
125
 
114
126
  ### 候选真实宿主验证库 API
115
127
 
@@ -10,6 +10,11 @@
10
10
  ],
11
11
  "driverId": "claude-version-v1",
12
12
  "adapterFormat": "skill-directory-v1",
13
+ "verification": {
14
+ "driverId": "claude-code-print-v1",
15
+ "authStrategy": "existing-user-state",
16
+ "credentialMutation": "host-managed"
17
+ },
13
18
  "pathCategories": [
14
19
  {
15
20
  "id": "claude-user-skills",
@@ -10,6 +10,11 @@
10
10
  ],
11
11
  "driverId": "codex-version-v1",
12
12
  "adapterFormat": "skill-directory-v1",
13
+ "verification": {
14
+ "driverId": "codex-exec-v1",
15
+ "authStrategy": "existing-user-state",
16
+ "credentialMutation": "host-managed"
17
+ },
13
18
  "pathCategories": [
14
19
  {
15
20
  "id": "codex-user-skills",
@@ -3,10 +3,24 @@
3
3
  "kind": "skill-family.host-descriptor",
4
4
  "hostId": "qoder",
5
5
  "displayName": "Qoder",
6
- "support": "unsupported",
7
- "maturity": "unsupported",
6
+ "support": "manual",
7
+ "maturity": "manual",
8
8
  "sourceAliases": [],
9
- "unsupportedReason": "No auditable non-interactive host driver is frozen for this release.",
9
+ "verification": {
10
+ "driverId": "qodercli-print-v1",
11
+ "authStrategy": "existing-user-state",
12
+ "credentialMutation": "host-managed"
13
+ },
10
14
  "pathCategories": [],
11
- "probeCapabilities": []
15
+ "probeCapabilities": [
16
+ "cli",
17
+ "version",
18
+ "payload",
19
+ "registry",
20
+ "discover",
21
+ "enabled",
22
+ "reload",
23
+ "smoke",
24
+ "uninstall"
25
+ ]
12
26
  }
@@ -1274,7 +1274,7 @@
1274
1274
  "doNotUseWhen": [
1275
1275
  "Need remote host publication, automatic trust, or uninstall deletion",
1276
1276
  "Need peer verification to decide domain semantics or to grant install/apply lifecycle support",
1277
- "Need a full Qoder driver (that host is unsupported)"
1277
+ "Need a Qoder lifecycle driver (that host is manual and grants no lifecycle capability)"
1278
1278
  ],
1279
1279
  "prerequisites": [
1280
1280
  "The host Profile is registered in profiles/hosts and aliases are finite; npm consumers may explicitly select the Kit's packaged projection root",
@@ -1292,7 +1292,7 @@
1292
1292
  "verifyHostPeers reads caller-owned peer roots and writes no peer directory"
1293
1293
  ],
1294
1294
  "failureSemantics": [
1295
- "An unsupported host (e.g. qoder) returns an unsupported result",
1295
+ "Hosts without a bound verification driver (e.g. codebuddy) are rejected before spawn with preflight-rejected",
1296
1296
  "Uninstall returns manual-recovery-required without deleting files",
1297
1297
  "Missing probe facts, unknown projection categories, identity spoofing, or scope/anchor conflicts fail closed"
1298
1298
  ],
@@ -1305,7 +1305,7 @@
1305
1305
  ],
1306
1306
  "routeElsewhere": [
1307
1307
  "Remote host publication and automatic trust: explicitly unsupported",
1308
- "Full Qoder driver: unsupported"
1308
+ "Qoder lifecycle driver: unsupported"
1309
1309
  ]
1310
1310
  },
1311
1311
  {
@@ -1601,7 +1601,7 @@
1601
1601
  "Need to provide declarative data for host integration"
1602
1602
  ],
1603
1603
  "doNotUseWhen": [
1604
- "Need to register a full Qoder driver (that host is unsupported)"
1604
+ "Need to register a Qoder lifecycle driver (that host is manual and registers only a verification driver)"
1605
1605
  ],
1606
1606
  "prerequisites": [
1607
1607
  "The host descriptor is bound to a trusted driverId"
@@ -1616,16 +1616,16 @@
1616
1616
  "No side effects (declared data)"
1617
1617
  ],
1618
1618
  "failureSemantics": [
1619
- "qoder is marked unsupported and manual hosts never acquire an implicit driver"
1619
+ "qoder is marked manual and manual hosts never acquire an implicit lifecycle driver"
1620
1620
  ],
1621
1621
  "invariants": [
1622
- "claude/codex have support=supported and are bound to a driverId; manual hosts have no driver; qoder has support=unsupported"
1622
+ "claude/codex have support=supported and are bound to a driverId; qoder has support=manual and binds only the verification driver (qodercli-print-v1), with no lifecycle driver"
1623
1623
  ],
1624
1624
  "ownedByCaller": [
1625
1625
  "Host business semantics"
1626
1626
  ],
1627
1627
  "routeElsewhere": [
1628
- "Full Qoder driver: unsupported"
1628
+ "Qoder lifecycle driver: unsupported"
1629
1629
  ]
1630
1630
  },
1631
1631
  {
@@ -1692,38 +1692,6 @@
1692
1692
  "Host lifecycle: external tools or a later version"
1693
1693
  ]
1694
1694
  },
1695
- {
1696
- "id": "foundation.unsupported.qoder-driver",
1697
- "intent": "The full driver for the Qoder host is not frozen (No auditable non-interactive host driver is frozen), marked unsupported, referenced for structure only.",
1698
- "useWhen": [],
1699
- "doNotUseWhen": [
1700
- "Any scenario requiring actual execution on Qoder"
1701
- ],
1702
- "prerequisites": [
1703
- "none"
1704
- ],
1705
- "inputs": [
1706
- "none"
1707
- ],
1708
- "outputs": [
1709
- "none (unsupported)"
1710
- ],
1711
- "sideEffects": [
1712
- "none"
1713
- ],
1714
- "failureSemantics": [
1715
- "Referencing the qoder driver throws"
1716
- ],
1717
- "invariants": [
1718
- "HOST_DRIVER_IDS contains only claude-version-v1 / codex-version-v1"
1719
- ],
1720
- "ownedByCaller": [
1721
- "Qoder integration"
1722
- ],
1723
- "routeElsewhere": [
1724
- "Qoder support: a later version or external"
1725
- ]
1726
- },
1727
1695
  {
1728
1696
  "id": "foundation.unsupported.binary-adapter-source",
1729
1697
  "intent": "The adapter source content supports only string (utf8 text closure); binary projection is out of scope.",
@@ -1916,6 +1884,40 @@
1916
1884
  "Git write operations: the Git lifecycle guide"
1917
1885
  ]
1918
1886
  },
1887
+ {
1888
+ "id": "foundation.kit.qoder-verification",
1889
+ "intent": "Qoder has been a manual host (descriptor maturity=manual) since 0.12.0: one constrained real-host verification runs through the frozen qodercli-print-v1 verification driver (capability stability=candidate) in a fresh workspace",
1890
+ "useWhen": [
1891
+ "Need to request Qoder candidate real-host verification for upgraded consumers"
1892
+ ],
1893
+ "doNotUseWhen": [
1894
+ "Need Qoder build, plan, apply, generic install/update/uninstall, or rollback lifecycle capability"
1895
+ ],
1896
+ "prerequisites": [
1897
+ "The qoder executable exists and is logged in; qoder static preflight and fresh-workspace layout checks pass"
1898
+ ],
1899
+ "inputs": [
1900
+ "Qoder host Profile and verification driver binding"
1901
+ ],
1902
+ "outputs": [
1903
+ "A single constrained real-execution observed, failed, or rejected result (quota and error-code details stay out of the public result)"
1904
+ ],
1905
+ "sideEffects": [
1906
+ "Runs one qoder CLI execution in a fresh workspace; writes private evidence and snapshots"
1907
+ ],
1908
+ "failureSemantics": [
1909
+ "Static preflight failures reject before spawn with preflight-rejected; execution failures such as quota exhaustion are marked execution-failed"
1910
+ ],
1911
+ "invariants": [
1912
+ "qoder gains no lifecycle driver; all nine probe facts remain unknown/driver-limited"
1913
+ ],
1914
+ "ownedByCaller": [
1915
+ "Qoder integration and the real release gate"
1916
+ ],
1917
+ "routeElsewhere": [
1918
+ "Qoder lifecycle capability: external tools or a later version"
1919
+ ]
1920
+ },
1919
1921
  {
1920
1922
  "id": "foundation.contracts.quickstart-profile-candidate",
1921
1923
  "intent": "Expose the Quickstart Profile v2 protocol, canonical-$id Schema collection, and frozen eight-entry historical-ID migration map through skill-family-contracts/quickstart-profile for exact-version integration trials.",
@@ -1078,22 +1078,6 @@
1078
1078
  "packages/skill-family-engineering-kit/test/host.test.mjs"
1079
1079
  ]
1080
1080
  },
1081
- {
1082
- "id": "foundation.unsupported.qoder-driver",
1083
- "package": "foundation",
1084
- "layer": "unsupported",
1085
- "since": "0.2.0",
1086
- "stability": "unsupported",
1087
- "entrypoints": [],
1088
- "sourceRefs": [
1089
- "profiles/hosts/qoder/host-descriptor.json",
1090
- "packages/skill-family-engineering-kit/src/host-drivers.mjs"
1091
- ],
1092
- "positiveTestRefs": [],
1093
- "negativeTestRefs": [
1094
- "packages/skill-family-engineering-kit/test/host.test.mjs"
1095
- ]
1096
- },
1097
1081
  {
1098
1082
  "id": "foundation.unsupported.binary-adapter-source",
1099
1083
  "package": "foundation",
@@ -1193,6 +1177,29 @@
1193
1177
  "packages/skill-family-engineering-kit/test/git-probe.test.mjs"
1194
1178
  ]
1195
1179
  },
1180
+ {
1181
+ "id": "foundation.kit.qoder-verification",
1182
+ "package": "skill-family-engineering-kit",
1183
+ "layer": "engineering-kit",
1184
+ "since": "0.12.0",
1185
+ "stability": "candidate",
1186
+ "entrypoints": [
1187
+ "runHostVerification (packages/skill-family-engineering-kit/src/host-verification.mjs)"
1188
+ ],
1189
+ "migration": "none",
1190
+ "promotionPolicy": "consumer-transparent",
1191
+ "sourceRefs": [
1192
+ "profiles/hosts/qoder/host-descriptor.json",
1193
+ "packages/skill-family-engineering-kit/src/host-verification-drivers.mjs"
1194
+ ],
1195
+ "positiveTestRefs": [
1196
+ "packages/skill-family-engineering-kit/test/host-verification.test.mjs"
1197
+ ],
1198
+ "negativeTestRefs": [
1199
+ "packages/skill-family-engineering-kit/test/host.test.mjs",
1200
+ "packages/skill-family-engineering-kit/test/host-verification.test.mjs"
1201
+ ]
1202
+ },
1196
1203
  {
1197
1204
  "id": "foundation.contracts.quickstart-profile-candidate",
1198
1205
  "package": "skill-family-contracts",
@@ -1274,7 +1274,7 @@
1274
1274
  "doNotUseWhen": [
1275
1275
  "需要远端宿主发布、自动信任或删除式 uninstall",
1276
1276
  "需要用同级验证替代领域语义,或借此获得 install/apply 生命周期能力",
1277
- "需要 Qoder 完整 driver(该宿主 unsupported)"
1277
+ "需要 Qoder 生命周期 driver(该宿主为 manual,不授予生命周期能力)"
1278
1278
  ],
1279
1279
  "prerequisites": [
1280
1280
  "宿主 Profile 已在 profiles/hosts 登记,alias 也必须来自有限集合;npm 消费者可显式选择 Kit 随包投影根",
@@ -1292,7 +1292,7 @@
1292
1292
  "verifyHostPeers 只读取调用方拥有的 peer 根,不写入 peer 目录"
1293
1293
  ],
1294
1294
  "failureSemantics": [
1295
- "unsupported host(如 qoder)返回 unsupported 结果",
1295
+ "未绑定验证 driver 的宿主(如 codebuddy)在 spawn 前拒绝,标记 preflight-rejected",
1296
1296
  "uninstall 返回 manual-recovery-required 且不删除文件",
1297
1297
  "缺 probe facts、未知投影类别、身份伪造或 scope/anchor 冲突均失败关闭"
1298
1298
  ],
@@ -1305,7 +1305,7 @@
1305
1305
  ],
1306
1306
  "routeElsewhere": [
1307
1307
  "远端宿主发布和自动信任:明确 unsupported",
1308
- "Qoder 完整 driver:unsupported"
1308
+ "Qoder 生命周期 driver:unsupported"
1309
1309
  ]
1310
1310
  },
1311
1311
  {
@@ -1601,7 +1601,7 @@
1601
1601
  "需要为宿主接入提供声明数据"
1602
1602
  ],
1603
1603
  "doNotUseWhen": [
1604
- "需要登记 Qoder 完整 driver(该宿主 unsupported)"
1604
+ "需要登记 Qoder 生命周期 driver(该宿主为 manual,仅登记验证 driver)"
1605
1605
  ],
1606
1606
  "prerequisites": [
1607
1607
  "宿主 descriptor 绑定受信 driverId"
@@ -1616,16 +1616,16 @@
1616
1616
  "无副作用(声明数据)"
1617
1617
  ],
1618
1618
  "failureSemantics": [
1619
- "qoder 标记 unsupported,手动宿主不隐式获得 driver"
1619
+ "qoder 标记 manual,手动宿主不隐式获得生命周期 driver"
1620
1620
  ],
1621
1621
  "invariants": [
1622
- "claude/codex support=supported 且绑定 driverId;手动宿主无 driver;qoder support=unsupported"
1622
+ "claude/codex support=supported 且绑定 driverId;qoder support=manual 且仅绑定验证 driver(qodercli-print-v1),无生命周期 driver"
1623
1623
  ],
1624
1624
  "ownedByCaller": [
1625
1625
  "宿主业务语义"
1626
1626
  ],
1627
1627
  "routeElsewhere": [
1628
- "Qoder 完整 driver:unsupported"
1628
+ "Qoder 生命周期 driver:unsupported"
1629
1629
  ]
1630
1630
  },
1631
1631
  {
@@ -1692,38 +1692,6 @@
1692
1692
  "宿主生命周期:外部工具或后续版本"
1693
1693
  ]
1694
1694
  },
1695
- {
1696
- "id": "foundation.unsupported.qoder-driver",
1697
- "intent": "Qoder 宿主的完整 driver 未冻结(No auditable non-interactive host driver is frozen),标记为 unsupported,仅参考其结构",
1698
- "useWhen": [],
1699
- "doNotUseWhen": [
1700
- "任何需要在 Qoder 实际运行的场景"
1701
- ],
1702
- "prerequisites": [
1703
- "无"
1704
- ],
1705
- "inputs": [
1706
- "无"
1707
- ],
1708
- "outputs": [
1709
- "无(unsupported)"
1710
- ],
1711
- "sideEffects": [
1712
- "无"
1713
- ],
1714
- "failureSemantics": [
1715
- "引用 qoder driver 即报错"
1716
- ],
1717
- "invariants": [
1718
- "HOST_DRIVER_IDS 仅 claude-version-v1 / codex-version-v1"
1719
- ],
1720
- "ownedByCaller": [
1721
- "Qoder 接入"
1722
- ],
1723
- "routeElsewhere": [
1724
- "Qoder 支持:后续版本或外部"
1725
- ]
1726
- },
1727
1695
  {
1728
1696
  "id": "foundation.unsupported.binary-adapter-source",
1729
1697
  "intent": "adapter source 的 content 仅支持 string(utf8 文本闭包),二进制投影不在范围",
@@ -1916,6 +1884,40 @@
1916
1884
  "Git 写操作:Git 生命周期指南"
1917
1885
  ]
1918
1886
  },
1887
+ {
1888
+ "id": "foundation.kit.qoder-verification",
1889
+ "intent": "Qoder 自 0.12.0 起为 manual 宿主(Descriptor maturity=manual):通过冻结的 qodercli-print-v1 验证 driver(能力 stability=candidate)在 fresh 工作区执行一次受约束的真实宿主验证",
1890
+ "useWhen": [
1891
+ "需要为升级消费者请求 Qoder 的 candidate 真实宿主验证"
1892
+ ],
1893
+ "doNotUseWhen": [
1894
+ "需要 Qoder 的 build、plan、apply、通用 install/update/uninstall 或 rollback 生命周期能力"
1895
+ ],
1896
+ "prerequisites": [
1897
+ "qoder 可执行文件存在且已登录;qoder 静态预检与 fresh 工作区布局检查通过"
1898
+ ],
1899
+ "inputs": [
1900
+ "Qoder 宿主 Profile 与验证 driver 绑定"
1901
+ ],
1902
+ "outputs": [
1903
+ "一次受约束真实执行的 observed、failed 或 rejected 结果(额度与错误码详情不进公共结果)"
1904
+ ],
1905
+ "sideEffects": [
1906
+ "在 fresh 工作区执行一次 qoder CLI;写入私有证据与快照"
1907
+ ],
1908
+ "failureSemantics": [
1909
+ "静态预检失败在 spawn 前拒绝并标记 preflight-rejected;额度用尽等执行失败标记 execution-failed"
1910
+ ],
1911
+ "invariants": [
1912
+ "qoder 不获得任何生命周期 driver;九项 probe 事实仍为 unknown/driver-limited"
1913
+ ],
1914
+ "ownedByCaller": [
1915
+ "Qoder 接入与真实发布门"
1916
+ ],
1917
+ "routeElsewhere": [
1918
+ "Qoder 生命周期能力:外部工具或后续版本"
1919
+ ]
1920
+ },
1919
1921
  {
1920
1922
  "id": "foundation.contracts.quickstart-profile-candidate",
1921
1923
  "intent": "通过 skill-family-contracts/quickstart-profile 公开 Quickstart Profile v2 协议、按规范 $id 索引的 Schema 集合和冻结的八项历史 ID 迁移表,供锁定精确版本的接入试验使用",
@@ -2113,7 +2113,7 @@ operation。后续晋升 stable 只提高兼容承诺,不再触发消费者源
2113
2113
  <li>强制机械规则:当前 9 条,预算不超过 20 条,绝对上限 30 条;CR-001 对登记表内全部 Schema 做统一编译;</li>
2114
2114
  <li>叶子包:3 个(skill-family-contracts、skill-family-harness-node、skill-family-engineering-kit);</li>
2115
2115
  <li>Schema 校验器:Ajv 8.20.0(精确版本 pin),支持 draft-07 与 2020-12 双方言;</li>
2116
- <li>kernel 协议:skill-family.kernel.operation(stable),Contracts 规格版本 1.11.0;Kernel 文档仍保持 1.8.0 生命周期坐标和字节基线;</li>
2116
+ <li>kernel 协议:skill-family.kernel.operation(stable),Contracts 规格版本 1.12.0;Kernel 文档仍保持 1.8.0 生命周期坐标和字节基线;</li>
2117
2117
  <li>默认运行时语言:Node;第二语言实现首版为 0。</li>
2118
2118
  </ul>
2119
2119
  <p>任何新增组件必须说明删除它会导致的两个以上真实消费者重复实现,并通过独立 fixture 验证。</p>