skill-family-engineering-kit 0.15.0 → 0.16.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,21 @@
1
1
  # Changelog
2
2
 
3
+ <!-- release-skill:changelog:start version=0.16.0 locale=en baseline=sha256:47c81698bf9458edc28ec1e198e43ad6f961db4249f606426a4b83664872a5d8 -->
4
+ ## [0.16.0] - 2026-08-31
5
+
6
+ Engineering Kit 0.16.0 tightens the candidate host-verification regression around one common workload and consumer answer across five fixed drivers.
7
+
8
+ ### Changed
9
+
10
+ - Verifies that all five fixed host drivers consume the same candidate bindings and expose the caller's business answer through the existing runHostVerification path.
11
+ - Keeps host-managed state, domain acceptance, and real-host qualification outside Foundation; no new Kit command or lifecycle capability is added.
12
+
13
+ ### Upgrade Notes
14
+
15
+ The five-host check exercises the existing candidate API and does not turn a fixture or test result into real-host qualification. Consumers still own domain assertions and host authorization.
16
+ <!-- release-skill:changelog:end version=0.16.0 locale=en -->
17
+
18
+
3
19
  <!-- release-skill:changelog:start version=0.15.0 locale=en baseline=sha256:8b3c67e9fe98dd14ad7b43220440311cb046d10070f16dd6c83d47d3351efbf5 -->
4
20
  ## [0.15.0] - 2026-08-29
5
21
 
@@ -1,5 +1,21 @@
1
1
  # 变更日志
2
2
 
3
+ <!-- release-skill:changelog:start version=0.16.0 locale=zh-CN baseline=sha256:1db170e8f4ae8ca25301b4e5893d86a0f486218fa75f9bcc0ced2a5eba7d26d6 -->
4
+ ## [0.16.0] - 2026-08-31
5
+
6
+ Engineering Kit 0.16.0 收紧五个固定 driver 的候选宿主验证回归,要求共用一个 workload 并核对消费者业务答案。
7
+
8
+ ### 变更
9
+
10
+ - 通过既有 `runHostVerification` 路径核对 Claude、Codex、Kimi、Qoder 与 WorkBuddy 使用同一候选绑定,并暴露调用方的业务答案。
11
+ - 保持宿主管理状态、领域接受规则和真实宿主资格归调用方负责;不新增 Kit 命令或生命周期能力。
12
+
13
+ ### 升级说明
14
+
15
+ 五宿主检查只验证现有候选 API,不会把 fixture 或测试结果升级为真实宿主资格;领域断言与宿主授权仍由消费者负责。
16
+ <!-- release-skill:changelog:end version=0.16.0 locale=zh-CN -->
17
+
18
+
3
19
  <!-- release-skill:changelog:start version=0.15.0 locale=zh-CN baseline=sha256:c559c91bed872ab70dac2a4836c636b35ed905282f4aa4cdcf56d21a1ce246b9 -->
4
20
  ## [0.15.0] - 2026-08-29
5
21
 
package/README.md CHANGED
@@ -4,27 +4,23 @@
4
4
 
5
5
  # skill-family-engineering-kit
6
6
 
7
- <!-- release-skill:release-version: 0.15.0 -->
7
+ <!-- release-skill:release-version: 0.16.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.15.0** (2026-08-29)
12
+ **0.16.0** (2026-08-31)
13
13
 
14
- Engineering Kit 0.15.0 adds fixed native-lifecycle and Kimi directory qualification entries.
15
-
16
- **Added**
17
-
18
- - Adds closed 12-stage Qoder and WorkBuddy lifecycle fixture parsing.
19
- - Adds Kimi directory qualification with driverVersion 1.0.0 and CLI 0.39.1 admission.
14
+ Engineering Kit 0.16.0 tightens the candidate host-verification regression around one common workload and consumer answer across five fixed drivers.
20
15
 
21
16
  **Changed**
22
17
 
23
- - Qualification compares Contracts and Harness versions directly with KIT_VERSION.
18
+ - Verifies that all five fixed host drivers consume the same candidate bindings and expose the caller's business answer through the existing runHostVerification path.
19
+ - Keeps host-managed state, domain acceptance, and real-host qualification outside Foundation; no new Kit command or lifecycle capability is added.
24
20
 
25
21
  **Upgrade Notes**
26
22
 
27
- Fixtures prove parser wiring only; consumers own formal process, directory, and domain acceptance observations.
23
+ The five-host check exercises the existing candidate API and does not turn a fixture or test result into real-host qualification. Consumers still own domain assertions and host authorization.
28
24
  <!-- release-skill:managed:end id=latest-release -->
29
25
 
30
26
  ### Foundation 0.15.0 candidate qualification entries
@@ -54,7 +50,7 @@ Kit is the "engineering stage" layer, depending on the Harness and Contracts. It
54
50
 
55
51
  ## Installation and Minimal Example
56
52
 
57
- Version 0.15.0 is a local candidate. Build all three tarballs into one temporary directory and install those exact files for a candidate check:
53
+ Version 0.16.0 is a local candidate. Build all three tarballs into one temporary directory and install those exact files for a candidate check:
58
54
 
59
55
  ```sh
60
56
  pack_dir="$(mktemp -d)"
@@ -62,21 +58,21 @@ pack_dir="$(mktemp -d)"
62
58
  (cd packages/skill-family-harness-node && pnpm pack --pack-destination "$pack_dir")
63
59
  (cd packages/skill-family-engineering-kit && pnpm pack --pack-destination "$pack_dir")
64
60
  mkdir "$pack_dir/consumer" && (cd "$pack_dir/consumer" && npm init -y)
65
- (cd "$pack_dir/consumer" && npm install "$pack_dir/skill-family-contracts-0.15.0.tgz" "$pack_dir/skill-family-harness-node-0.15.0.tgz" "$pack_dir/skill-family-engineering-kit-0.15.0.tgz")
61
+ (cd "$pack_dir/consumer" && npm install "$pack_dir/skill-family-contracts-0.16.0.tgz" "$pack_dir/skill-family-harness-node-0.16.0.tgz" "$pack_dir/skill-family-engineering-kit-0.16.0.tgz")
66
62
  ```
67
63
 
68
64
  After publication, use the registry coordinate:
69
65
 
70
66
  ```sh
71
- npm install --save-dev skill-family-engineering-kit@0.15.0
72
- npm exec --package=skill-family-engineering-kit@0.15.0 -- skill-family-kit --help
73
- npm exec --package=skill-family-engineering-kit@0.15.0 -- skill-family-kit scaffold --root <empty-dir> --project-id my-project
74
- npm exec --package=skill-family-engineering-kit@0.15.0 -- skill-family-kit adopt-plan --root <repo> --list-capabilities --all --scope all --locale en --uses ./uses.json
75
- npm exec --package=skill-family-engineering-kit@0.15.0 -- skill-family-kit projection --root <repo>
76
- npm exec --package=skill-family-engineering-kit@0.15.0 -- skill-family-kit check --root <repo>
67
+ npm install --save-dev skill-family-engineering-kit@0.16.0
68
+ npm exec --package=skill-family-engineering-kit@0.16.0 -- skill-family-kit --help
69
+ npm exec --package=skill-family-engineering-kit@0.16.0 -- skill-family-kit scaffold --root <empty-dir> --project-id my-project
70
+ npm exec --package=skill-family-engineering-kit@0.16.0 -- skill-family-kit adopt-plan --root <repo> --list-capabilities --all --scope all --locale en --uses ./uses.json
71
+ npm exec --package=skill-family-engineering-kit@0.16.0 -- skill-family-kit projection --root <repo>
72
+ npm exec --package=skill-family-engineering-kit@0.16.0 -- skill-family-kit check --root <repo>
77
73
  ```
78
74
 
79
- 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.15.0 -- skill-family-kit --help`.
75
+ 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.16.0 -- skill-family-kit --help`.
80
76
 
81
77
  ### Three adoption journeys
82
78
 
@@ -295,4 +291,4 @@ The candidate `runPluginVerification({ request, bindings, hostsRoot })` preserve
295
291
 
296
292
  The separate `runSkillFamilyDirectoryVerification({ request, bindings })` entry fixes the Kimi production argv and narrow environment and rejects caller observation. Its raw parser is exercised through the production process path, but no controlled fixture event is promoted to `observed`; without an official typed mapping, the public result remains `indeterminate` and a manual candidate.
297
293
 
298
- Version 0.15.0 is a local source candidate and is not published. Consume the three locally verified tarballs; a version marker, unit test or successful install is not complete contract integration, migration completion, or real-host qualification.
294
+ Version 0.16.0 is a local source candidate and is not published. Consume the three locally verified tarballs; a version marker, unit test or successful install is not complete contract integration, migration completion, or real-host qualification.
package/README.zh-CN.md CHANGED
@@ -5,27 +5,23 @@
5
5
 
6
6
  # skill-family-engineering-kit
7
7
 
8
- <!-- release-skill:release-version: 0.15.0 -->
8
+ <!-- release-skill:release-version: 0.16.0 -->
9
9
 
10
10
  开发与 CI 阶段使用的工程工具包。**恰好四个**顶层命令,没有第五个:
11
11
 
12
12
  <!-- release-skill:managed:start id=latest-release -->
13
- **0.15.0** (2026-08-29)
13
+ **0.16.0** (2026-08-31)
14
14
 
15
- Engineering Kit 0.15.0 增加固定的 native-lifecycle Kimi 目录资格入口。
16
-
17
- **新增**
18
-
19
- - 增加 Qoder 与 WorkBuddy 封闭十二阶段生命周期 fixture 解析。
20
- - 增加 Kimi 目录资格检查,使用 driverVersion 1.0.0 与 CLI 0.39.1 接纳规则。
15
+ Engineering Kit 0.16.0 收紧五个固定 driver 的候选宿主验证回归,要求共用一个 workload 并核对消费者业务答案。
21
16
 
22
17
  **变更**
23
18
 
24
- - 资格检查直接将 ContractsHarness 版本与 KIT_VERSION 比较。
19
+ - 通过既有 `runHostVerification` 路径核对 ClaudeCodex、Kimi、Qoder WorkBuddy 使用同一候选绑定,并暴露调用方的业务答案。
20
+ - 保持宿主管理状态、领域接受规则和真实宿主资格归调用方负责;不新增 Kit 命令或生命周期能力。
25
21
 
26
22
  **升级说明**
27
23
 
28
- fixture 只证明解析器接线;正式进程、目录和领域接受观察仍由消费者负责。
24
+ 五宿主检查只验证现有候选 API,不会把 fixture 或测试结果升级为真实宿主资格;领域断言与宿主授权仍由消费者负责。
29
25
  <!-- release-skill:managed:end id=latest-release -->
30
26
 
31
27
  ### Foundation 0.15.0 candidate 资格入口
@@ -55,7 +51,7 @@ Kit 是「工程阶段」层,依赖 Harness 与 Contracts。它只做四件事
55
51
 
56
52
  ## 安装和最小示例
57
53
 
58
- 0.15.0 是本地候选版本。候选验证先把三个包分别打入同一个临时目录,再安装这三个精确 tarball:
54
+ 0.16.0 是本地候选版本。候选验证先把三个包分别打入同一个临时目录,再安装这三个精确 tarball:
59
55
 
60
56
  ```sh
61
57
  pack_dir="$(mktemp -d)"
@@ -63,21 +59,21 @@ pack_dir="$(mktemp -d)"
63
59
  (cd packages/skill-family-harness-node && pnpm pack --pack-destination "$pack_dir")
64
60
  (cd packages/skill-family-engineering-kit && pnpm pack --pack-destination "$pack_dir")
65
61
  mkdir "$pack_dir/consumer" && (cd "$pack_dir/consumer" && npm init -y)
66
- (cd "$pack_dir/consumer" && npm install "$pack_dir/skill-family-contracts-0.15.0.tgz" "$pack_dir/skill-family-harness-node-0.15.0.tgz" "$pack_dir/skill-family-engineering-kit-0.15.0.tgz")
62
+ (cd "$pack_dir/consumer" && npm install "$pack_dir/skill-family-contracts-0.16.0.tgz" "$pack_dir/skill-family-harness-node-0.16.0.tgz" "$pack_dir/skill-family-engineering-kit-0.16.0.tgz")
67
63
  ```
68
64
 
69
65
  发布后再使用 registry 坐标:
70
66
 
71
67
  ```sh
72
- npm install --save-dev skill-family-engineering-kit@0.15.0
73
- npm exec --package=skill-family-engineering-kit@0.15.0 -- skill-family-kit --help
74
- npm exec --package=skill-family-engineering-kit@0.15.0 -- skill-family-kit scaffold --root <empty-dir> --project-id my-project
75
- npm exec --package=skill-family-engineering-kit@0.15.0 -- skill-family-kit adopt-plan --root <repo> --list-capabilities --all --scope all --locale zh-CN --uses ./uses.json
76
- npm exec --package=skill-family-engineering-kit@0.15.0 -- skill-family-kit projection --root <repo>
77
- npm exec --package=skill-family-engineering-kit@0.15.0 -- skill-family-kit check --root <repo>
68
+ npm install --save-dev skill-family-engineering-kit@0.16.0
69
+ npm exec --package=skill-family-engineering-kit@0.16.0 -- skill-family-kit --help
70
+ npm exec --package=skill-family-engineering-kit@0.16.0 -- skill-family-kit scaffold --root <empty-dir> --project-id my-project
71
+ npm exec --package=skill-family-engineering-kit@0.16.0 -- skill-family-kit adopt-plan --root <repo> --list-capabilities --all --scope all --locale zh-CN --uses ./uses.json
72
+ npm exec --package=skill-family-engineering-kit@0.16.0 -- skill-family-kit projection --root <repo>
73
+ npm exec --package=skill-family-engineering-kit@0.16.0 -- skill-family-kit check --root <repo>
78
74
  ```
79
75
 
80
- 以上四条命令分别覆盖生成骨架、只读盘点、受管投影与诊断;零安装形式可用 `npm exec --package=skill-family-engineering-kit@0.15.0 -- skill-family-kit --help`。
76
+ 以上四条命令分别覆盖生成骨架、只读盘点、受管投影与诊断;零安装形式可用 `npm exec --package=skill-family-engineering-kit@0.16.0 -- skill-family-kit --help`。
81
77
 
82
78
  ### 三条采用旅程
83
79
 
@@ -296,4 +292,4 @@ Foundation 本身不发起网络请求,但绑定的 executable 仍可能联网
296
292
 
297
293
  独立入口 `runSkillFamilyDirectoryVerification({ request, bindings })` 固定 Kimi 生产 argv 与窄环境,并拒绝调用方 observation。原始 parser 通过生产进程路径验证,但受控 fixture 事件不会被提升为 `observed`;缺少官方 typed mapping 时,公共结果保持 `indeterminate` 和 manual candidate。
298
294
 
299
- 0.15.0 为本地源码候选,尚未发布。消费本地已验证的三包 tarball;版本标记、单元测试或安装成功都不等于契约接入完成、迁移完成或真实宿主资格。
295
+ 0.16.0 为本地源码候选,尚未发布。消费本地已验证的三包 tarball;版本标记、单元测试或安装成功都不等于契约接入完成、迁移完成或真实宿主资格。
@@ -927,14 +927,16 @@
927
927
  "Need closed-enum watchdog/termination reasons that consumers can map mechanically"
928
928
  ],
929
929
  "doNotUseWhen": [
930
- "Need the supervisor to retry or restart the process (workflow-orchestration exclusion)"
930
+ "Need the supervisor to retry or restart the process (workflow-orchestration exclusion)",
931
+ "Only one consumer wants to redact output before writing evidence: do not add rawStreamSink, a transform sink, a generic sanitizer, a second runner, or new public stdout callbacks"
931
932
  ],
932
933
  "prerequisites": [
933
934
  "The consumer supplies the command, cwd, and a timeout policy with maxSeconds and killGraceSeconds"
934
935
  ],
935
936
  "inputs": [
936
937
  "Command/args/cwd, timeout policy, optional progress and terminal progress paths, optional budget and long-tool hooks, optional evidence path",
937
- "The optional 0.13.0 outputByteLimits caps stdout and stderr independently by raw bytes. Equality is allowed; first excess uses the existing termination path. Without caps, no limit fields are added and legacy behavior remains."
938
+ "The optional 0.13.0 outputByteLimits caps stdout and stderr independently by raw bytes. Equality is allowed; first excess uses the existing termination path. Without caps, no limit fields are added and legacy behavior remains.",
939
+ "The optional rawSink is for callers that accept 0600 raw stdout/stderr files in a fresh canonical temporary root; it is not a redaction API"
938
940
  ],
939
941
  "outputs": [
940
942
  "One frozen watchdog-termination-envelope per call (single writer)"
@@ -951,10 +953,12 @@
951
953
  "Liveness is confirmed only by explicit events and process-group probes; ps is never used for liveness guessing"
952
954
  ],
953
955
  "ownedByCaller": [
954
- "The command, the timeout numbers, budget thresholds, terminal-record semantics and any restart strategy"
956
+ "The command, the timeout numbers, budget thresholds, terminal-record semantics and any restart strategy",
957
+ "Domain redaction, cross-stream secret discovery, retrospective masking, and the decision to accept protected raw temporary files"
955
958
  ],
956
959
  "routeElsewhere": [
957
- "Restart/retry orchestration: workflow-orchestration exclusion, stays with the upper orchestration layer"
960
+ "Restart/retry orchestration: workflow-orchestration exclusion, stays with the upper orchestration layer",
961
+ "A hard zero-plaintext-on-filesystem requirement: the consumer owns the threat model and implementation; do not reopen a Foundation public capability until a second independent consumer and a shared contract demonstrate the need"
958
962
  ]
959
963
  },
960
964
  {
@@ -926,14 +926,16 @@
926
926
  "需要可直接机械映射的封闭枚举 watchdog/termination 原因"
927
927
  ],
928
928
  "doNotUseWhen": [
929
- "需要监督器重试或重启进程(workflow-orchestration 排除)"
929
+ "需要监督器重试或重启进程(workflow-orchestration 排除)",
930
+ "只有一个消费者想在写证据前脱敏:不要新增 rawStreamSink、transform sink、通用 sanitizer、第二个 runner 或新的公开 stdout 回调"
930
931
  ],
931
932
  "prerequisites": [
932
933
  "消费者提供命令、cwd 与含 maxSeconds 和 killGraceSeconds 的超时策略"
933
934
  ],
934
935
  "inputs": [
935
936
  "命令/参数/cwd、超时策略、可选的进度与终态进度路径、可选的预算与长工具钩子、可选的证据路径",
936
- "0.13.0 可选 outputByteLimits 分别限制 stdout/stderr 原始字节;等于上限允许,首次超过上限启动既有终止路径。未配置时不追加限额字段,保持旧行为。"
937
+ "0.13.0 可选 outputByteLimits 分别限制 stdout/stderr 原始字节;等于上限允许,首次超过上限启动既有终止路径。未配置时不追加限额字段,保持旧行为。",
938
+ "可选 rawSink 适用于调用方接受在 fresh canonical 临时根中以 0600 保存 stdout/stderr 原始文件的场景;它不是脱敏接口"
937
939
  ],
938
940
  "outputs": [
939
941
  "每次调用恰好一个冻结的 watchdog-termination-envelope(单写者)"
@@ -950,10 +952,12 @@
950
952
  "存活只由显式事件与进程组探测确认;ps 绝不用于存活猜测"
951
953
  ],
952
954
  "ownedByCaller": [
953
- "命令本身、超时数值、预算阈值、终态记录语义与任何重启策略"
955
+ "命令本身、超时数值、预算阈值、终态记录语义与任何重启策略",
956
+ "领域脱敏、跨流秘密识别、事后遮盖,以及是否接受受保护临时原始文件"
954
957
  ],
955
958
  "routeElsewhere": [
956
- "重启/重试编排:workflow-orchestration 排除,留在上层编排层"
959
+ "重启/重试编排:workflow-orchestration 排除,留在上层编排层",
960
+ "硬性零明文落盘要求:由消费者自己定义威胁模型并实现;除非出现第二个独立消费者和清晰共同合同,否则不要重开 Foundation 公共能力"
957
961
  ]
958
962
  },
959
963
  {
@@ -927,14 +927,16 @@
927
927
  "Need closed-enum watchdog/termination reasons that consumers can map mechanically"
928
928
  ],
929
929
  "doNotUseWhen": [
930
- "Need the supervisor to retry or restart the process (workflow-orchestration exclusion)"
930
+ "Need the supervisor to retry or restart the process (workflow-orchestration exclusion)",
931
+ "Only one consumer wants to redact output before writing evidence: do not add rawStreamSink, a transform sink, a generic sanitizer, a second runner, or new public stdout callbacks"
931
932
  ],
932
933
  "prerequisites": [
933
934
  "The consumer supplies the command, cwd, and a timeout policy with maxSeconds and killGraceSeconds"
934
935
  ],
935
936
  "inputs": [
936
937
  "Command/args/cwd, timeout policy, optional progress and terminal progress paths, optional budget and long-tool hooks, optional evidence path",
937
- "The optional 0.13.0 outputByteLimits caps stdout and stderr independently by raw bytes. Equality is allowed; first excess uses the existing termination path. Without caps, no limit fields are added and legacy behavior remains."
938
+ "The optional 0.13.0 outputByteLimits caps stdout and stderr independently by raw bytes. Equality is allowed; first excess uses the existing termination path. Without caps, no limit fields are added and legacy behavior remains.",
939
+ "The optional rawSink is for callers that accept 0600 raw stdout/stderr files in a fresh canonical temporary root; it is not a redaction API"
938
940
  ],
939
941
  "outputs": [
940
942
  "One frozen watchdog-termination-envelope per call (single writer)"
@@ -951,10 +953,12 @@
951
953
  "Liveness is confirmed only by explicit events and process-group probes; ps is never used for liveness guessing"
952
954
  ],
953
955
  "ownedByCaller": [
954
- "The command, the timeout numbers, budget thresholds, terminal-record semantics and any restart strategy"
956
+ "The command, the timeout numbers, budget thresholds, terminal-record semantics and any restart strategy",
957
+ "Domain redaction, cross-stream secret discovery, retrospective masking, and the decision to accept protected raw temporary files"
955
958
  ],
956
959
  "routeElsewhere": [
957
- "Restart/retry orchestration: workflow-orchestration exclusion, stays with the upper orchestration layer"
960
+ "Restart/retry orchestration: workflow-orchestration exclusion, stays with the upper orchestration layer",
961
+ "A hard zero-plaintext-on-filesystem requirement: the consumer owns the threat model and implementation; do not reopen a Foundation public capability until a second independent consumer and a shared contract demonstrate the need"
958
962
  ]
959
963
  },
960
964
  {
@@ -926,14 +926,16 @@
926
926
  "需要可直接机械映射的封闭枚举 watchdog/termination 原因"
927
927
  ],
928
928
  "doNotUseWhen": [
929
- "需要监督器重试或重启进程(workflow-orchestration 排除)"
929
+ "需要监督器重试或重启进程(workflow-orchestration 排除)",
930
+ "只有一个消费者想在写证据前脱敏:不要新增 rawStreamSink、transform sink、通用 sanitizer、第二个 runner 或新的公开 stdout 回调"
930
931
  ],
931
932
  "prerequisites": [
932
933
  "消费者提供命令、cwd 与含 maxSeconds 和 killGraceSeconds 的超时策略"
933
934
  ],
934
935
  "inputs": [
935
936
  "命令/参数/cwd、超时策略、可选的进度与终态进度路径、可选的预算与长工具钩子、可选的证据路径",
936
- "0.13.0 可选 outputByteLimits 分别限制 stdout/stderr 原始字节;等于上限允许,首次超过上限启动既有终止路径。未配置时不追加限额字段,保持旧行为。"
937
+ "0.13.0 可选 outputByteLimits 分别限制 stdout/stderr 原始字节;等于上限允许,首次超过上限启动既有终止路径。未配置时不追加限额字段,保持旧行为。",
938
+ "可选 rawSink 适用于调用方接受在 fresh canonical 临时根中以 0600 保存 stdout/stderr 原始文件的场景;它不是脱敏接口"
937
939
  ],
938
940
  "outputs": [
939
941
  "每次调用恰好一个冻结的 watchdog-termination-envelope(单写者)"
@@ -950,10 +952,12 @@
950
952
  "存活只由显式事件与进程组探测确认;ps 绝不用于存活猜测"
951
953
  ],
952
954
  "ownedByCaller": [
953
- "命令本身、超时数值、预算阈值、终态记录语义与任何重启策略"
955
+ "命令本身、超时数值、预算阈值、终态记录语义与任何重启策略",
956
+ "领域脱敏、跨流秘密识别、事后遮盖,以及是否接受受保护临时原始文件"
954
957
  ],
955
958
  "routeElsewhere": [
956
- "重启/重试编排:workflow-orchestration 排除,留在上层编排层"
959
+ "重启/重试编排:workflow-orchestration 排除,留在上层编排层",
960
+ "硬性零明文落盘要求:由消费者自己定义威胁模型并实现;除非出现第二个独立消费者和清晰共同合同,否则不要重开 Foundation 公共能力"
957
961
  ]
958
962
  },
959
963
  {
@@ -1792,17 +1792,17 @@
1792
1792
  <tbody>
1793
1793
  <tr>
1794
1794
  <td><code>skill-family-contracts</code></td>
1795
- <td>0.15.0</td>
1795
+ <td>0.16.0</td>
1796
1796
  <td><a href="https://github.com/ifoohoo/skill-family-contracts">ifoohoo/skill-family-contracts</a></td>
1797
1797
  </tr>
1798
1798
  <tr>
1799
1799
  <td><code>skill-family-harness-node</code></td>
1800
- <td>0.15.0</td>
1800
+ <td>0.16.0</td>
1801
1801
  <td><a href="https://github.com/ifoohoo/skill-family-harness-node">ifoohoo/skill-family-harness-node</a></td>
1802
1802
  </tr>
1803
1803
  <tr>
1804
1804
  <td><code>skill-family-engineering-kit</code></td>
1805
- <td>0.15.0</td>
1805
+ <td>0.16.0</td>
1806
1806
  <td><a href="https://github.com/ifoohoo/skill-family-engineering-kit">ifoohoo/skill-family-engineering-kit</a></td>
1807
1807
  </tr>
1808
1808
  </tbody>
@@ -3215,7 +3215,12 @@
3215
3215
  <li>身份边界:调用方必须在整个调用期间独占 raw sink 的命名空间。文件句柄保护不会证明调用期间 pathname 或根目录身份始终不变;
3216
3216
  前后检查只用于尽早失败。</li>
3217
3217
  <li>失败语义:选项形状错误抛 <code>TypeError</code>;机制失败抛 <code>SFC2004</code>,沿既有 <code>supervise-process-failed</code> 错误域失败关闭。<code>rawStreamSink</code>
3218
- 兼容别名、绝对路径、多段文件名、相同 stdout/stderr 名称与非 fresh 根均被拒绝。</li>
3218
+ 仍是明确拒绝的名称;兼容别名、绝对路径、多段文件名、相同 stdout/stderr 名称与非 fresh 根均被拒绝。</li>
3219
+ <li>接线边界:不要因为单一消费者想在写正式证据前脱敏,就新增 <code>rawStreamSink</code>、transform sink、通用 sanitizer、第二个进程
3220
+ runner 或新的公开 stdout 字段/回调。现有 <code>rawSink</code> 适合调用方接受在 fresh canonical 临时根中以 0600 保存原始 stdout/stderr
3221
+ 文件的场景;Foundation 不承诺 zero-plaintext-on-filesystem,也不拥有领域脱敏、跨流秘密发现或事后遮盖。</li>
3222
+ <li>若消费者有硬性零明文落盘要求,应由消费者基于明确威胁模型拥有该方案并暂停相关路径。至少出现第二个独立消费者和清晰共同合同前,
3223
+ 不重开 Foundation 的公共能力。</li>
3219
3224
  <li><code>since</code> / <code>stability</code>:监督入口自 <code>0.5.0</code> / <code>stable</code>;受约束 raw sink 自 <code>0.11.0</code>,仅提供机制,不承诺宿主资格、认证、领域
3220
3225
  判断或发布状态。</li>
3221
3226
  <li>源文件:<code>packages/skill-family-harness-node/src/supervise-process.mjs</code>。正反例测试: