skill-family-engineering-kit 0.7.0 → 0.8.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,22 @@
1
1
  # Changelog
2
2
 
3
+ <!-- release-skill:changelog:start version=0.8.0 locale=en baseline=sha256:47377b52339e57d0087ffdff72ba04f88d8dd290f5a6e472fc67eb9a801007db -->
4
+ ## [0.8.0] - 2026-08-21
5
+
6
+ Profile SPI v3 adds direct verification for scaffolded Project Profiles while descriptor verification remains stable.
7
+
8
+ ### Added
9
+
10
+ - Adds verifyProjectProfile({ projectRoot, profileRelPath? }) for skill-family.project-profile declarations.
11
+ - Keeps verifyProfile descriptor-only and reuses Contracts-owned adoption and overrides field definitions.
12
+ - Adds SPE1008 PROJECT_PROFILE_INVALID; SPE1006 and SPE1007 retain their existing meanings.
13
+
14
+ ### Upgrade Notes
15
+
16
+ Project-root consumers must pin engineering-kit 0.8.0 and call verifyProjectProfile. Descriptor consumers continue to call verifyProfile; 0.7.0 remains available.
17
+ <!-- release-skill:changelog:end version=0.8.0 locale=en -->
18
+
19
+
3
20
  <!-- release-skill:changelog:start version=0.7.0 locale=en baseline=sha256:ed1c59e7cee6e7280d2569e554b07d3b3513f4f3318bf30e374e2d480320f2b7 -->
4
21
  ## [0.7.0] - 2026-08-21
5
22
 
@@ -1,5 +1,22 @@
1
1
  # 变更日志
2
2
 
3
+ <!-- release-skill:changelog:start version=0.8.0 locale=zh-CN baseline=sha256:0d8fb108ec3e89d5c6b6bea39fc6767a0e1c198546d243d86a963fc5855ed4a9 -->
4
+ ## [0.8.0] - 2026-08-21
5
+
6
+ Profile SPI v3 新增 scaffold 项目 Profile 的直接校验,descriptor 校验保持兼容。
7
+
8
+ ### 新增
9
+
10
+ - 新增 verifyProjectProfile({ projectRoot, profileRelPath? }),用于校验 skill-family.project-profile 声明。
11
+ - verifyProfile 继续只校验 descriptor,并复用 Contracts 拥有的 adoption 与 overrides 字段定义。
12
+ - 新增 SPE1008 PROJECT_PROFILE_INVALID;SPE1006 与 SPE1007 含义保持不变。
13
+
14
+ ### 升级说明
15
+
16
+ 项目根消费者必须锁定 engineering-kit 0.8.0 并调用 verifyProjectProfile;descriptor 消费者继续调用 verifyProfile,0.7.0 仍可使用。
17
+ <!-- release-skill:changelog:end version=0.8.0 locale=zh-CN -->
18
+
19
+
3
20
  <!-- release-skill:changelog:start version=0.7.0 locale=zh-CN baseline=sha256:e6070267ab3db289caf998c4539055c3d39dfa16fb5bc7db44689b305fde2e81 -->
4
21
  ## [0.7.0] - 2026-08-21
5
22
 
package/README.md CHANGED
@@ -4,28 +4,24 @@
4
4
 
5
5
  # skill-family-engineering-kit
6
6
 
7
- <!-- release-skill:release-version: 0.7.0 -->
7
+ <!-- release-skill:release-version: 0.8.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.7.0** (2026-08-21)
12
+ **0.8.0** (2026-08-21)
13
13
 
14
- This release exports the public canonical projection closure builder buildProjectionClosure (FG-4), so callers construct compileProjectionPlan-ready plan closures through one public entry instead of re-implementing the Kit-private ordering, serialization, and digest algorithms.
14
+ Profile SPI v3 adds direct verification for scaffolded Project Profiles while descriptor verification remains stable.
15
15
 
16
16
  **Added**
17
17
 
18
- - Adds the public skill-family-engineering-kit/profile-spi subpath. It projects the three Profile SPI JSON resources together with the Contracts canonical profile-descriptor.schema.json, and exports schema loaders, verifyProfile, adoption-pin verification, and tightening-only override checks. The data-only verifier fails closed on missing pins and symlink/path escapes and never executes Profile entrypoints.
19
- - Adds buildProjectionClosure - a pure public builder accepting an array of {path, sha256, mode} members (an explicit type file is also accepted) and returning the canonical plan closure {digestAlgorithm sha256, digest, resourceCount, resources} that compileProjectionPlan accepts verbatim as previousOwnedClosure or externalCandidateClosure; an empty array yields the legal empty closure.
20
- - The builder shares one normalization and digest source of truth with the compiler closure re-verification - deterministic path.localeCompare ordering, duplicate-path and portable-collision refusal, and the sha256(JSON.stringify(normalizedResources)) byte contract; every refusal fails closed in the existing projection plan input invalid domain (SFC2004 invalid-manifest).
21
-
22
- **Changed**
23
-
24
- - Keeps the compileProjectionPlan input contract unchanged and the four top-level commands (scaffold, adopt-plan, projection, check) unchanged; every 0.6.0 input still compiles to byte-identical plans. The package version moves in lockstep with the Foundation line while the contracts machine contract stays at 1.6.0.
18
+ - Adds verifyProjectProfile({ projectRoot, profileRelPath? }) for skill-family.project-profile declarations.
19
+ - Keeps verifyProfile descriptor-only and reuses Contracts-owned adoption and overrides field definitions.
20
+ - Adds SPE1008 PROJECT_PROFILE_INVALID; SPE1006 and SPE1007 retain their existing meanings.
25
21
 
26
22
  **Upgrade Notes**
27
23
 
28
- Version 0.7.0 is the projection closure builder line. Callers that previously assembled plan closures locally must import buildProjectionClosure and pin exactly 0.7.0. A plan closure ({path, type, sha256, mode} members) is not the harness computeResourceClosure resource closure ({path, role, exists, sha256} members) - the two shapes and purposes differ and are not interchangeable.
24
+ Project-root consumers must pin engineering-kit 0.8.0 and call verifyProjectProfile. Descriptor consumers continue to call verifyProfile; 0.7.0 remains available.
29
25
  <!-- release-skill:managed:end id=latest-release -->
30
26
 
31
27
  | Command | Purpose | Side effects |
@@ -46,7 +42,7 @@ Kit is the "engineering stage" layer, depending on the Harness and Contracts. It
46
42
  ## Installation and Minimal Example
47
43
 
48
44
  ```sh
49
- npm install --save-dev skill-family-engineering-kit@0.7.0
45
+ npm install --save-dev skill-family-engineering-kit@0.8.0
50
46
  npm exec -- skill-family-kit --help
51
47
  npm exec -- skill-family-kit scaffold --root <empty-dir> --project-id my-project
52
48
  npm exec -- skill-family-kit adopt-plan --root <repo>
@@ -54,15 +50,15 @@ npm exec -- skill-family-kit projection --root <repo>
54
50
  npm exec -- skill-family-kit check --root <repo>
55
51
  ```
56
52
 
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.7.0 -- skill-family-kit --help`.
53
+ 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.8.0 -- skill-family-kit --help`.
58
54
 
59
55
  ### Public Profile SPI
60
56
 
61
- The `skill-family-engineering-kit/profile-spi` subpath exposes the stable Profile SPI v2 data surface. It exports `verifyProfile`, `verifyAdoptionDigests`, `assessOverridesPolicy`, `loadSpiDefinition`, `loadExtendedDescriptorSchema`, and `loadRuleBaselineCatalog`.
57
+ The `skill-family-engineering-kit/profile-spi` subpath exposes the stable Profile SPI v3 data surface. It exports `verifyProfile`, `verifyProjectProfile`, `verifyAdoptionDigests`, `assessOverridesPolicy`, `loadSpiDefinition`, `loadExtendedDescriptorSchema`, `loadProjectProfileSchema`, and `loadRuleBaselineCatalog`. Contracts `profile-adoption-declaration` owns the adoption and overrides field shapes; the SPI `profile-adoption.schema.json` path remains only as a compatibility forwarding path.
62
58
 
63
59
  The package carries three SPI JSON resources and the Contracts canonical `profile-descriptor.schema.json`. `profiles/spi` is the only handwritten source; projen mechanically projects those resources and the module into this subpath. The projection changes only the two public package imports and the local schema URL.
64
60
 
65
- `verifyProfile({ profileRoot })` is read-only and data-only. It refuses descriptor errors, missing resources, executable entrypoints, symlink/path escapes, core reverse dependencies, unverified adoption pins, and non-tightening overrides with stable `SPE0000` / `SPE1001`–`SPE1007` result codes. It never executes Profile-provided files. The Profile's domain meaning remains owned by the caller.
61
+ `verifyProfile({ profileRoot })` is read-only and data-only for Profile descriptors. `verifyProjectProfile({ projectRoot, profileRelPath? })` is the corresponding entry for a project root declaration. Both refuse invalid input with stable result codes, never execute Profile-provided files, and leave Profile domain meaning to the caller.
66
62
 
67
63
  ### Report sub-action
68
64
 
package/README.zh-CN.md CHANGED
@@ -5,28 +5,24 @@
5
5
 
6
6
  # skill-family-engineering-kit
7
7
 
8
- <!-- release-skill:release-version: 0.7.0 -->
8
+ <!-- release-skill:release-version: 0.8.0 -->
9
9
 
10
10
  开发与 CI 阶段使用的工程工具包。**恰好四个**顶层命令,没有第五个:
11
11
 
12
12
  <!-- release-skill:managed:start id=latest-release -->
13
- **0.7.0** (2026-08-21)
13
+ **0.8.0** (2026-08-21)
14
14
 
15
- 本版导出公共规范投影闭包 builder buildProjectionClosure(FG-4),调用方经一个公共入口即可构造 compileProjectionPlan 可直接接受的计划闭包,不再复刻 Kit 私有的排序、序列化与摘要算法。
15
+ Profile SPI v3 新增 scaffold 项目 Profile 的直接校验,descriptor 校验保持兼容。
16
16
 
17
17
  **新增**
18
18
 
19
- - 新增公共 skill-family-engineering-kit/profile-spi 子路径。它投影三个 Profile SPI JSON 资源与 Contracts canonical profile-descriptor.schema.json,导出 Schema 加载器、verifyProfile、采用 pin 校验和只收紧 overrides 检查。纯数据校验器遇到 pin 缺失、符号链接或路径越界时失败关闭,绝不执行 Profile entrypoint。
20
- - 新增 buildProjectionClosure:纯函数公共 builder,接受 {path, sha256, mode} 成员数组(可接受显式 type file),返回规范计划闭包 {digestAlgorithm sha256, digest, resourceCount, resources},可原样作为 compileProjectionPlan 的 previousOwnedClosure 或 externalCandidateClosure;空数组返回合法的空闭包。
21
- - builder 与编译器闭包复验共享同一规范化与摘要事实源:确定性 path.localeCompare 排序、重复路径与便携路径冲突拒绝、sha256(JSON.stringify(normalizedResources)) 字节合同;全部拒绝在既有 projection plan input invalid 领域内失败关闭(SFC2004 invalid-manifest)。
22
-
23
- **变更**
24
-
25
- - compileProjectionPlan 入参合同不变,四个顶层命令(scaffold、adopt-plan、projection、check)不变;全部 0.6.0 既有输入仍编译为字节不变的计划。包版本随 Foundation 线锁步,Contracts 机器合同保持 1.6.0。
19
+ - 新增 verifyProjectProfile({ projectRoot, profileRelPath? }),用于校验 skill-family.project-profile 声明。
20
+ - verifyProfile 继续只校验 descriptor,并复用 Contracts 拥有的 adoption overrides 字段定义。
21
+ - 新增 SPE1008 PROJECT_PROFILE_INVALID;SPE1006 SPE1007 含义保持不变。
26
22
 
27
23
  **升级说明**
28
24
 
29
- 0.7.0 是投影闭包 builder 线。此前在本地组装计划闭包的调用方必须导入 buildProjectionClosure 并精确锁定 0.7.0。计划闭包(成员 {path, type, sha256, mode})不是 harness computeResourceClosure 的资源闭包(成员 {path, role, exists, sha256})——两者形状与用途不同,不能互换。
25
+ 项目根消费者必须锁定 engineering-kit 0.8.0 并调用 verifyProjectProfile;descriptor 消费者继续调用 verifyProfile,0.7.0 仍可使用。
30
26
  <!-- release-skill:managed:end id=latest-release -->
31
27
 
32
28
  | 命令 | 用途 | 副作用 |
@@ -47,7 +43,7 @@ Kit 是「工程阶段」层,依赖 Harness 与 Contracts。它只做四件事
47
43
  ## 安装和最小示例
48
44
 
49
45
  ```sh
50
- npm install --save-dev skill-family-engineering-kit@0.7.0
46
+ npm install --save-dev skill-family-engineering-kit@0.8.0
51
47
  npm exec -- skill-family-kit --help
52
48
  npm exec -- skill-family-kit scaffold --root <empty-dir> --project-id my-project
53
49
  npm exec -- skill-family-kit adopt-plan --root <repo>
@@ -55,15 +51,15 @@ npm exec -- skill-family-kit projection --root <repo>
55
51
  npm exec -- skill-family-kit check --root <repo>
56
52
  ```
57
53
 
58
- 以上四条命令分别覆盖生成骨架、只读盘点、受管投影与诊断;零安装形式可用 `npm exec --package=skill-family-engineering-kit@0.7.0 -- skill-family-kit --help`。
54
+ 以上四条命令分别覆盖生成骨架、只读盘点、受管投影与诊断;零安装形式可用 `npm exec --package=skill-family-engineering-kit@0.8.0 -- skill-family-kit --help`。
59
55
 
60
56
  ### 公共 Profile SPI
61
57
 
62
- `skill-family-engineering-kit/profile-spi` 子路径提供稳定的 Profile SPI v2 数据表面,导出 `verifyProfile`、`verifyAdoptionDigests`、`assessOverridesPolicy`、`loadSpiDefinition`、`loadExtendedDescriptorSchema` 与 `loadRuleBaselineCatalog`。
58
+ `skill-family-engineering-kit/profile-spi` 子路径提供稳定的 Profile SPI v3 数据表面,导出 `verifyProfile`、`verifyProjectProfile`、`verifyAdoptionDigests`、`assessOverridesPolicy`、`loadSpiDefinition`、`loadExtendedDescriptorSchema`、`loadProjectProfileSchema` 与 `loadRuleBaselineCatalog`。adoption 与 overrides 的字段形状由 Contracts `profile-adoption-declaration` 唯一拥有;SPI 的 `profile-adoption.schema.json` 路径仅保留为兼容转发表。
63
59
 
64
60
  包内携带三个 SPI JSON 资源与 Contracts canonical `profile-descriptor.schema.json`。`profiles/spi` 是唯一手写真源;projen 将这些资源和模块机械投影到该子路径。投影只修改两个公共包导入和一个本地 Schema URL。
65
61
 
66
- `verifyProfile({ profileRoot })` 只读处理纯数据。遇到 descriptor 错误、资源缺失、可执行 entrypoint、符号链接或路径越界、反向依赖公共核心、未验证的采用 pin、未收紧的 overrides 时,以稳定 `SPE0000` / `SPE1001`–`SPE1007` 结果码失败关闭;它不会执行 Profile 提供的文件。Profile 的领域含义仍由调用方负责。
62
+ `verifyProfile({ profileRoot })` 只读处理 Profile descriptor;项目根声明使用对应的 `verifyProjectProfile({ projectRoot, profileRelPath? })`。两个入口遇到无效输入都以稳定结果码失败关闭,不会执行 Profile 提供的文件;Profile 的领域含义仍由调用方负责。
67
63
 
68
64
  ### 报告子动作
69
65
 
@@ -2077,12 +2077,12 @@ Contracts(结构、协议、错误码、协议名登记)
2077
2077
  <p>三包结构保持、不拆第四包(FND-ADR-007);制品治理采用 artifact-graph CLI 与版本锁(FND-ADR-006)。</p>
2078
2078
  <h2 id="首版预算">首版预算<a class="headerlink" href="#首版预算" title="Permanent link">&para;</a></h2>
2079
2079
  <ul>
2080
- <li>顶层 Contracts 对象:30 类(完整清单以 <code>packages/skill-family-contracts/src/registry.json</code> 为唯一真源):project-manifest、profile-descriptor、managed-file-lock、operation-request、operation-result、migration-manifest、adapter-source、report-model、report-binding、host-descriptor、host-registry、host-capability-fact、host-probe-result、adapter-build-manifest、host-operation-plan、host-operation-receipt、state-event-envelope、state-snapshot-metadata、token-estimate-result、surface-scan-policy、declared-read-surface-result、structured-scan-policy(FND-ADR-010/011)、timeout-policy、watchdog-termination-envelope(FND-ADR-012,append-only 保持 1.5.0)、public-boundary-declaration、platform-difference-registry、observation-scope、profile-adoption-declaration、audit-baseline-pin、token-estimate-record(审计规则裁决与整改 1.6.0 纳入);</li>
2080
+ <li>顶层 Contracts 对象:31 类(完整清单以 <code>packages/skill-family-contracts/src/registry.json</code> 为唯一真源):project-manifest、profile-descriptor、project-profile(FND-ADR-013,1.7.0 纳入)、managed-file-lock、operation-request、operation-result、migration-manifest、adapter-source、report-model、report-binding、host-descriptor、host-registry、host-capability-fact、host-probe-result、adapter-build-manifest、host-operation-plan、host-operation-receipt、state-event-envelope、state-snapshot-metadata、token-estimate-result、surface-scan-policy、declared-read-surface-result、structured-scan-policy(FND-ADR-010/011)、timeout-policy、watchdog-termination-envelope(FND-ADR-012,append-only 保持 1.5.0)、public-boundary-declaration、platform-difference-registry、observation-scope、profile-adoption-declaration、audit-baseline-pin、token-estimate-record(审计规则裁决与整改 1.6.0 纳入);</li>
2081
2081
  <li>Kit 顶层命令:4 个(scaffold、adopt-plan、projection、check);</li>
2082
2082
  <li>强制机械规则:当前 9 条,预算不超过 20 条,绝对上限 30 条;CR-001 对登记表内全部 Schema 做统一编译;</li>
2083
2083
  <li>叶子包:3 个(skill-family-contracts、skill-family-harness-node、skill-family-engineering-kit);</li>
2084
2084
  <li>Schema 校验器:Ajv 8.20.0(精确版本 pin),支持 draft-07 与 2020-12 双方言;</li>
2085
- <li>kernel 协议:skill-family.kernel.operation(stable),Contracts 版本 1.6.0;</li>
2085
+ <li>kernel 协议:skill-family.kernel.operation(stable),Contracts 版本 1.7.0;</li>
2086
2086
  <li>默认运行时语言:Node;第二语言实现首版为 0。</li>
2087
2087
  </ul>
2088
2088
  <p>任何新增组件必须说明删除它会导致的两个以上真实消费者重复实现,并通过独立 fixture 验证。</p>
@@ -1796,7 +1796,8 @@
1796
1796
  isolation-and-lockfile.md 隔离安装与包锁验证设计
1797
1797
  independence.md 独立性声明与机械证明
1798
1798
  schemas/audit-evidence.schema.json 证据文档的 JSON Schema(审计自有)
1799
- baseline/contracts-1.6.0.pin.json Contracts 1.6.0 现行基线 pin(摘要+事实)
1799
+ baseline/contracts-1.7.0.pin.json Contracts 1.7.0 当前候选基线 pin(摘要+事实)
1800
+ baseline/contracts-1.6.0.pin.json Contracts 1.6.0 只读兼容存档 pin
1800
1801
  baseline/contracts-1.5.0.pin.json Contracts 1.5.0 只读兼容存档 pin
1801
1802
  baseline/contracts-1.1.1.pin.json Contracts 1.1.1 只读兼容存档 pin
1802
1803
  baseline/contracts-1.1.0.pin.json Contracts 1.1.0 只读兼容存档 pin
@@ -1791,7 +1791,7 @@
1791
1791
  <tbody>
1792
1792
  <tr>
1793
1793
  <td><code>contractsVersion</code></td>
1794
- <td>Contracts 冻结版本(当前 <code>1.6.0</code>)</td>
1794
+ <td>Contracts 冻结版本(当前 <code>1.7.0</code>)</td>
1795
1795
  <td>机器契约内容的版本</td>
1796
1796
  </tr>
1797
1797
  <tr>
@@ -1806,7 +1806,7 @@
1806
1806
  </tr>
1807
1807
  </tbody>
1808
1808
  </table>
1809
- <p>三者都由 <code>describeAuditSurface()</code> 一次性给出,审计侧把它们与基线 pin(当前为 <code>baseline/contracts-1.6.0.pin.json</code>)比对。</p>
1809
+ <p>三者都由 <code>describeAuditSurface()</code> 一次性给出,审计侧把它们与基线 pin(当前为 <code>baseline/contracts-1.7.0.pin.json</code>)比对。</p>
1810
1810
  <h2 id="兼容规则">兼容规则<a class="headerlink" href="#兼容规则" title="Permanent link">&para;</a></h2>
1811
1811
  <p>一个被消费的 Contracts 包与某个基线 pin <strong>兼容</strong>,当且仅当同时满足:</p>
1812
1812
  <ol>
@@ -1863,7 +1863,8 @@
1863
1863
  <li><strong>Contracts 1.3.0(2026-08-09)</strong>:宿主接入能力线增量,不是描述补丁:新增 <code>host-descriptor</code>、<code>host-capability-fact</code>、<code>adapter-build-manifest</code>、<code>host-operation-plan</code>、<code>host-operation-receipt</code> 五个顶层契约,改变了公开机器合同与审计事实。</li>
1864
1864
  <li><strong>Contracts 1.4.0(2026-08-09)</strong>:持久状态能力线增量,不是描述补丁:新增 <code>state-event-envelope</code>、<code>state-snapshot-metadata</code> 两个顶层契约,改变了公开机器合同与审计事实。</li>
1865
1865
  <li><strong>Contracts 1.5.0(2026-08-16)</strong>:FND-ADR-010/011 能力线增量,不是描述补丁:新增 <code>declared-read-surface-result</code>、<code>structured-scan-policy</code> 两个顶层契约(顶层对象集合 20 → 22),改变了公开机器合同与审计事实。该 pin 的摘要与事实均从当前 <code>describeAuditSurface()/digestAuditSurface()</code> 机械投影,provenance 仍为 <code>product-compatibility-fixture</code>。</li>
1866
- <li><strong>Contracts 1.6.0(2026-08-18)</strong>:审计整改 C5 能力线增量,不是描述补丁:新增 <code>public-boundary-declaration</code>、<code>platform-difference-registry</code>、<code>observation-scope</code>、<code>profile-adoption-declaration</code>、<code>audit-baseline-pin</code>、<code>token-estimate-record</code> 六个顶层契约(顶层对象集合 24 → 30),改变了公开机器合同与审计事实;未新增 SFC 错误码,规则与 kernel 协议仅随 <code>contractsVersion</code> 字段更新。<code>contracts-1.6.0.pin.json</code> 是当前现行基线(经 <code>scripts/baseline-pin-gen.mjs --update</code> 由 <code>describeAuditSurface()/describeBaselinePin()</code> 机械生成,落盘前经 audit-baseline-pin 合同校验与 <code>verifyBaselinePin()</code> 自校验);1.5.0 及更早 pin 保留为只读兼容存档。pin 合同本身(<code>audit-baseline-pin</code>)与消费面校验函数 <code>verifyBaselinePin()</code>(AUD-BASE-001 / AUD-LOCK-001 编码)在本版本落地(GAP-5 / SG-28)。</li>
1866
+ <li><strong>Contracts 1.6.0(2026-08-18)</strong>:审计整改 C5 能力线增量,不是描述补丁:新增 <code>public-boundary-declaration</code>、<code>platform-difference-registry</code>、<code>observation-scope</code>、<code>profile-adoption-declaration</code>、<code>audit-baseline-pin</code>、<code>token-estimate-record</code> 六个顶层契约(顶层对象集合 24 → 30),改变了公开机器合同与审计事实;未新增 SFC 错误码,规则与 kernel 协议仅随 <code>contractsVersion</code> 字段更新。pin 合同本身(<code>audit-baseline-pin</code>)与消费面校验函数 <code>verifyBaselinePin()</code>(AUD-BASE-001 / AUD-LOCK-001 编码)在本版本落地(GAP-5 / SG-28)。</li>
1867
+ <li><strong>Contracts 1.7.0(2026-08-22)</strong>:FND-ADR-013 的 Project Profile 能力线增量。新增 <code>project-profile</code> 顶层契约(顶层对象集合 30 → 31),统一 scaffold 项目根声明的机器结构;未新增 SFC 错误码。<code>contracts-1.7.0.pin.json</code> 是当前候选基线,由 <code>scripts/baseline-pin-gen.mjs --update</code> 从 <code>describeAuditSurface()/describeBaselinePin()</code> 机械生成,并经过合同校验和 <code>verifyBaselinePin()</code> 自校验。1.6.0 及更早 pin 保留为只读兼容存档。</li>
1867
1868
  <li>审计运行时先做包锁验证(见 isolation-and-lockfile.md),再做变异重放;pin 不匹配时,变异重放结果不得被采信。</li>
1868
1869
  </ul>
1869
1870
  <h2 id="profile-行为变更纪律2026-08-19D6">profile 行为变更纪律(2026-08-19,D6)<a class="headerlink" href="#profile-行为变更纪律2026-08-19D6" title="Permanent link">&para;</a></h2>
@@ -1792,17 +1792,17 @@
1792
1792
  <tbody>
1793
1793
  <tr>
1794
1794
  <td><code>skill-family-contracts</code></td>
1795
- <td>0.7.0</td>
1795
+ <td>0.8.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.7.0</td>
1800
+ <td>0.8.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.7.0</td>
1805
+ <td>0.8.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>