skill-family-engineering-kit 0.2.1 → 0.4.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 +43 -0
- package/CHANGELOG.zh-CN.md +43 -0
- package/README.md +14 -12
- package/README.zh-CN.md +14 -12
- package/candidate/adoption-cli.mjs +67 -0
- package/candidate/adoption-mechanisms.mjs +69 -0
- package/candidate/index.mjs +3 -0
- package/candidate/profile-bundle.mjs +1503 -172
- package/candidate/projection-bundle-cli.mjs +74 -14
- package/candidate/skill-naming-cli.mjs +59 -0
- package/candidate/skill-naming-policy.json +46 -0
- package/candidate/skill-naming.mjs +280 -0
- package/docs/agents/capability-catalog.en.json +1746 -1559
- package/docs/agents/capability-catalog.json +1029 -929
- package/docs/agents/capability-catalog.zh-CN.json +1746 -1559
- package/docs/architecture/index.html +10 -3
- package/docs/en/architecture/index.html +12 -3
- package/docs/en/migration/index.html +4 -3
- package/docs/en/recipes/adopt-existing-repository/index.html +2 -1
- package/docs/en/recipes/domain-schema-validation/index.html +3 -1
- package/docs/en/recipes/index.html +2 -1
- package/docs/en/reference/api/index.html +24 -0
- package/docs/en/reference/compatibility/index.html +51 -5
- package/docs/migration/index.html +4 -3
- package/docs/public/status/index.html +3 -3
- package/docs/recipes/adopt-existing-repository/index.html +2 -1
- package/docs/recipes/domain-schema-validation/index.html +3 -1
- package/docs/recipes/index.html +2 -1
- package/docs/reference/api/contracts/index.html +26 -0
- package/docs/reference/api/engineering-kit/index.html +26 -0
- package/docs/reference/api/harness/index.html +423 -2
- package/docs/reference/api/index.html +25 -1
- package/docs/reference/compatibility/index.html +51 -5
- package/docs/search/search_index.json +1 -1
- package/package.json +5 -4
- package/release-notes/0.3.0.yaml +25 -0
- package/release-notes/0.4.0.yaml +23 -0
- package/src/adopt-plan.mjs +26 -1
- package/src/index.mjs +5 -2
- package/src/migration.mjs +121 -1
- package/src/projection.mjs +1152 -266
|
@@ -1972,7 +1972,7 @@ Contracts(结构、协议、错误码、协议名登记)
|
|
|
1972
1972
|
<tbody>
|
|
1973
1973
|
<tr>
|
|
1974
1974
|
<td>Contracts</td>
|
|
1975
|
-
<td>结构、协议、错误码、协议名登记;
|
|
1975
|
+
<td>结构、协议、错误码、协议名登记;20 类顶层对象;9 条 mandatory rule</td>
|
|
1976
1976
|
<td>业务字段语义、领域审计、远端写入、模型生成</td>
|
|
1977
1977
|
</tr>
|
|
1978
1978
|
<tr>
|
|
@@ -2024,7 +2024,7 @@ Contracts(结构、协议、错误码、协议名登记)
|
|
|
2024
2024
|
<li>涉及制品关系/版本锁 → artifact-graph。</li>
|
|
2025
2025
|
<li>只有一个消费者或尚未证明跨两个真实消费者重复 → 留在消费者,不扩张 Foundation。</li>
|
|
2026
2026
|
</ol>
|
|
2027
|
-
<p>第 8 步是扩张闸门:新增组件必须说明删除它会让两个以上真实消费者重复实现,并经独立 fixture
|
|
2027
|
+
<p>第 8 步是扩张闸门:新增组件必须说明删除它会让两个以上真实消费者重复实现,并经独立 fixture 验证;进入门 1 另要求至少一个现有真实消费者加一个结构同型的可预见消费者(第二消费者不要求已上线,但需求必须能用同一结构表达,调整记录见 FND-ADR-009)。第 9 步是有限封闭语义闸门(对应 FND-ADR-001 门 8):能力若携带少量领域语义,必须满足语义能被少数稳定封闭枚举覆盖,或为确定性估算原语——算法、适用范围与偏差方向已在契约中声明;本闸门不取消门 2「语义无关」一票否决。机器可读版见 <code>docs/agents/architecture-routing.md</code>。</p>
|
|
2028
2028
|
<h2 id="信任与副作用边界">信任与副作用边界<a class="headerlink" href="#信任与副作用边界" title="Permanent link">¶</a></h2>
|
|
2029
2029
|
<p>Foundation 的信任前提与副作用约定按层固化,调用方据此判断风险:</p>
|
|
2030
2030
|
<ul>
|
|
@@ -2050,6 +2050,12 @@ Contracts(结构、协议、错误码、协议名登记)
|
|
|
2050
2050
|
涉及制品关系/版本锁? ──是──▶ artifact-graph
|
|
2051
2051
|
│否
|
|
2052
2052
|
只有一个消费者/未证明跨两个真实消费者? ──是──▶ 留在消费者,不扩张
|
|
2053
|
+
│否
|
|
2054
|
+
携带少量领域语义? ──是──▶ 有限封闭语义:稳定闭枚举可覆盖,或为确定性
|
|
2055
|
+
│ 估算原语(算法/适用范围/偏差方向已契约声明)→ 可纳入;
|
|
2056
|
+
│ 否则留在消费者(FND-ADR-001 门 8,不取消门 2 一票否决)
|
|
2057
|
+
│否
|
|
2058
|
+
──▶ 可纳入
|
|
2053
2059
|
</code></pre>
|
|
2054
2060
|
<h2 id="与外部项目的路由关系">与外部项目的路由关系<a class="headerlink" href="#与外部项目的路由关系" title="Permanent link">¶</a></h2>
|
|
2055
2061
|
<p>Foundation 不是全能底座。下列职责明确在 Foundation 之外:</p>
|
|
@@ -2066,11 +2072,12 @@ Contracts(结构、协议、错误码、协议名登记)
|
|
|
2066
2072
|
<li><strong>宿主接入线</strong>(FND-FR-001/FND-FR-002,FND-ADR-003):Contracts 登记 descriptor/source/manifest/probe/plan/receipt;Harness 实现通用 source closure、原子 build/materialize 和 probe 分类;Kit 注入具体 Profile 与受信 driver。当前只支持 describe/build/probe/plan,<code>apply</code> 稳定拒绝,安装/卸载/更新均未实现。</li>
|
|
2067
2073
|
<li><strong>持久状态底座线</strong>(FND-FR-003,FND-ADR-004):append-only 事件、hash chain、快照与校验恢复;只提供状态底座,状态机、任务节点、重试、终态、记忆等业务语义不纳入 Foundation。</li>
|
|
2068
2074
|
<li><strong>人类报告线</strong>(FND-FR-004,FND-ADR-005):双层合同——机器结果是唯一真源,人类报告由机器结果确定性渲染(Markdown + digest 绑定 + 分级检查),不自由撰写。</li>
|
|
2075
|
+
<li><strong>有限封闭语义工具线</strong>(FND-ADR-009):基线物化 + contentGuard(摘要不符、物化中途变化、守卫检出均失败关闭)、通用只读 chokepoint(允许根集合 + 可选身份谓词)、策略化表面扫描(策略契约 + 注入式自测)、token 上界估算(确定性领域估算原语,无模型/网络/tokenizer 依赖)、通用上限守卫(复用 state-store 事件账与 token-lock,上限与超限策略由消费者配置)。</li>
|
|
2069
2076
|
</ul>
|
|
2070
2077
|
<p>三包结构保持、不拆第四包(FND-ADR-007);制品治理采用 artifact-graph CLI 与版本锁(FND-ADR-006)。</p>
|
|
2071
2078
|
<h2 id="首版预算">首版预算<a class="headerlink" href="#首版预算" title="Permanent link">¶</a></h2>
|
|
2072
2079
|
<ul>
|
|
2073
|
-
<li>顶层 Contracts 对象:
|
|
2080
|
+
<li>顶层 Contracts 对象:20 类(完整清单以 <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;</li>
|
|
2074
2081
|
<li>Kit 顶层命令:4 个(scaffold、adopt-plan、projection、check);</li>
|
|
2075
2082
|
<li>强制机械规则:当前 9 条,预算不超过 20 条,绝对上限 30 条;CR-001 对登记表内全部 Schema 做统一编译;</li>
|
|
2076
2083
|
<li>叶子包:3 个(skill-family-contracts、skill-family-harness-node、skill-family-engineering-kit);</li>
|
|
@@ -1972,7 +1972,7 @@ Horizontal (attachment surfaces, no new vertical layers):
|
|
|
1972
1972
|
<tbody>
|
|
1973
1973
|
<tr>
|
|
1974
1974
|
<td>Contracts</td>
|
|
1975
|
-
<td>Structure, protocols, error codes, protocol-name registry;
|
|
1975
|
+
<td>Structure, protocols, error codes, protocol-name registry; 20 top-level object kinds; 9 mandatory rules</td>
|
|
1976
1976
|
<td>Business-field semantics, domain auditing, remote writes, model generation</td>
|
|
1977
1977
|
</tr>
|
|
1978
1978
|
<tr>
|
|
@@ -2024,7 +2024,7 @@ Horizontal (attachment surfaces, no new vertical layers):
|
|
|
2024
2024
|
<li>Involves artifact relationships / version-lock → artifact-graph.</li>
|
|
2025
2025
|
<li>Has only one consumer, or has not been proven to repeat across two real consumers → keep it with the consumer; do not expand Foundation.</li>
|
|
2026
2026
|
</ol>
|
|
2027
|
-
<p>Step 8 is the expansion gate: a new component must justify that deleting it would force two or more real consumers to re-implement it, and this must be verified by an independent fixture. The machine-readable version is in <code>docs/agents/architecture-routing.md</code>.</p>
|
|
2027
|
+
<p>Step 8 is the expansion gate: a new component must justify that deleting it would force two or more real consumers to re-implement it, and this must be verified by an independent fixture; admission gate 1 additionally requires at least one existing real consumer plus one structurally isomorphic foreseeable consumer (the second consumer need not be live, but its need must be expressible with the same structure; adjustment record in FND-ADR-009). Step 9 is the finite-closed-semantics gate (FND-ADR-001 gate 8): a capability carrying limited domain semantics must satisfy either — its semantics are covered by a small stable closed enumeration, or it is a deterministic estimation primitive whose algorithm, scope, and bias direction are declared in the contract; this gate does not cancel gate 2's "semantics-free" veto. The machine-readable version is in <code>docs/agents/architecture-routing.md</code>.</p>
|
|
2028
2028
|
<h2 id="Trust-and-Side-Effect-Boundaries">Trust and Side-Effect Boundaries<a class="headerlink" href="#Trust-and-Side-Effect-Boundaries" title="Permanent link">¶</a></h2>
|
|
2029
2029
|
<p>Foundation's trust assumptions and side-effect conventions are solidified per layer; callers judge risk accordingly:</p>
|
|
2030
2030
|
<ul>
|
|
@@ -2050,6 +2050,14 @@ Involves tasks/retries/rework/acceptance? ──yes──▶ loop-agent
|
|
|
2050
2050
|
Involves artifact relationships/version-lock? ──yes──▶ artifact-graph
|
|
2051
2051
|
│no
|
|
2052
2052
|
Only one consumer / not proven across two real consumers? ──yes──▶ keep with consumer, do not expand
|
|
2053
|
+
│no
|
|
2054
|
+
Carries limited domain semantics? ──yes──▶ finite closed semantics: covered by a
|
|
2055
|
+
│ stable closed enumeration, or a deterministic estimation
|
|
2056
|
+
│ primitive (algorithm/scope/bias declared in the contract)
|
|
2057
|
+
│ → admissible; otherwise keep with consumer
|
|
2058
|
+
│ (FND-ADR-001 gate 8; does not cancel gate 2's veto)
|
|
2059
|
+
│no
|
|
2060
|
+
──▶ admissible
|
|
2053
2061
|
</code></pre>
|
|
2054
2062
|
<h2 id="Routing-Relationships-with-External-Projects">Routing Relationships with External Projects<a class="headerlink" href="#Routing-Relationships-with-External-Projects" title="Permanent link">¶</a></h2>
|
|
2055
2063
|
<p>Foundation is not an all-powerful base. The following responsibilities are explicitly outside Foundation:</p>
|
|
@@ -2066,11 +2074,12 @@ Only one consumer / not proven across two real consumers? ──yes──▶ kee
|
|
|
2066
2074
|
<li><strong>Host-access line</strong> (FND-FR-001/FND-FR-002, FND-ADR-003): Contracts registers descriptor/source/manifest/probe/plan/receipt; Harness implements generic source closure, atomic build/materialize, and probe classification; Kit injects the concrete Profile and trusted driver. Currently only describe/build/probe/plan are supported; <code>apply</code> is stably refused; install/uninstall/update are unimplemented.</li>
|
|
2067
2075
|
<li><strong>Durable state-substrate line</strong> (FND-FR-003, FND-ADR-004): append-only events, hash chain, snapshots, and verification recovery; provides only the state substrate, not business semantics such as state machines, task nodes, retries, terminal states, or memory.</li>
|
|
2068
2076
|
<li><strong>Human-report line</strong> (FND-FR-004, FND-ADR-005): a two-layer contract — machine results are the sole source of truth, and the human report is deterministically rendered from machine results (Markdown + digest binding + graded checks), not freely authored.</li>
|
|
2077
|
+
<li><strong>Finite-closed-semantics tools line</strong> (FND-ADR-009): baseline materialization + contentGuard (digest mismatch, mid-materialization change, and guard rejection all fail closed), generic read chokepoint (allowed-root set + optional identity predicate), strategy-driven surface scan (policy contract + injection self-test), token upper-bound estimation (deterministic estimation primitive with no model/network/tokenizer dependency), and a generic upper-bound guard (reusing the state-store event ledger and token-lock; the bound and over-limit policy are consumer-configured).</li>
|
|
2069
2078
|
</ul>
|
|
2070
2079
|
<p>The three-package structure is preserved and a fourth package is not split out (FND-ADR-007); artifact governance uses the artifact-graph CLI and version-lock (FND-ADR-006).</p>
|
|
2071
2080
|
<h2 id="First-Version-Budget">First-Version Budget<a class="headerlink" href="#First-Version-Budget" title="Permanent link">¶</a></h2>
|
|
2072
2081
|
<ul>
|
|
2073
|
-
<li>Top-level Contracts objects:
|
|
2082
|
+
<li>Top-level Contracts objects: 20 kinds (the complete list uses <code>packages/skill-family-contracts/src/registry.json</code> as the sole source of truth): 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;</li>
|
|
2074
2083
|
<li>Kit top-level commands: 4 (scaffold, adopt-plan, projection, check);</li>
|
|
2075
2084
|
<li>Mandatory mechanical rules: currently 9, budget not exceeding 20, absolute ceiling 30; CR-001 uniformly compiles all Schemas within the registry;</li>
|
|
2076
2085
|
<li>Leaf packages: 3 (skill-family-contracts, skill-family-harness-node, skill-family-engineering-kit);</li>
|
|
@@ -2113,9 +2113,9 @@
|
|
|
2113
2113
|
],
|
|
2114
2114
|
"targetProfile": "generic",
|
|
2115
2115
|
"foundationPackages": [
|
|
2116
|
-
{ "name": "skill-family-contracts", "version": "0.
|
|
2117
|
-
{ "name": "skill-family-harness-node", "version": "0.
|
|
2118
|
-
{ "name": "skill-family-engineering-kit", "version": "0.
|
|
2116
|
+
{ "name": "skill-family-contracts", "version": "0.3.0", "digest": "sha256:<64 hex digits>" },
|
|
2117
|
+
{ "name": "skill-family-harness-node", "version": "0.3.0", "digest": "sha256:<64 hex digits>" },
|
|
2118
|
+
{ "name": "skill-family-engineering-kit", "version": "0.3.0", "digest": "sha256:<64 hex digits>" }
|
|
2119
2119
|
],
|
|
2120
2120
|
"verification": {
|
|
2121
2121
|
"unit": "docs/evidence/unit.json",
|
|
@@ -2126,6 +2126,7 @@
|
|
|
2126
2126
|
}
|
|
2127
2127
|
</code></pre>
|
|
2128
2128
|
<p>The structure above shows the core fields of the migration manifest; each <code>legacyInfra</code> entry gives the legacy-implementation path and its replacement; the tool only read-only evaluates existence and never deletes on its behalf.</p>
|
|
2129
|
+
<p>The Quickstart Profile candidate moves to v2 in 0.3.0. A migration manifest that binds candidate capabilities must pin all three Foundation packages to exactly 0.3.0; an existing integration that still requires v1 must keep all three packages pinned to exactly 0.2.1 and must not mix the two sets.</p>
|
|
2129
2130
|
<ul>
|
|
2130
2131
|
<li><code>legacyInfra</code>: each entry gives the legacy-implementation path and its replacement; the tool only read-only evaluates existence and never deletes on its behalf.</li>
|
|
2131
2132
|
<li><code>exceptions</code> are <strong>temporary exceptions</strong>: must simultaneously contain all four fields — owner, reason, deadline, and migrationTarget — and missing any field counts as a conflict (plan failure); expired exceptions are not auto-renewed and persistently block the completion judgment.</li>
|
|
@@ -1903,7 +1903,7 @@
|
|
|
1903
1903
|
<li>Trust boundary: <code>adopt-plan</code> makes zero byte changes to the input repository; legacy-implementation deletion is the caller's responsibility, and the tool never deletes on its behalf.</li>
|
|
1904
1904
|
</ul>
|
|
1905
1905
|
<h2 id="4-Minimal-Command">4. Minimal Command<a class="headerlink" href="#4-Minimal-Command" title="Permanent link">¶</a></h2>
|
|
1906
|
-
<pre><code class="language-sh">npm install --save-dev skill-family-engineering-kit@0.
|
|
1906
|
+
<pre><code class="language-sh">npm install --save-dev skill-family-engineering-kit@0.3.0
|
|
1907
1907
|
npm exec -- skill-family-kit adopt-plan --root <repo>
|
|
1908
1908
|
</code></pre>
|
|
1909
1909
|
<h2 id="5-Expected-Output-and-Evidence">5. Expected Output and Evidence<a class="headerlink" href="#5-Expected-Output-and-Evidence" title="Permanent link">¶</a></h2>
|
|
@@ -1926,6 +1926,7 @@ npm exec -- skill-family-kit check --root fixtures/m0-consumer
|
|
|
1926
1926
|
<ul>
|
|
1927
1927
|
<li><code>adopt-plan</code> is read-only, has no write risk, and needs no rollback.</li>
|
|
1928
1928
|
<li>Actual disk writes are performed by <code>scaffold</code>/<code>projection</code>; rollback relies on the dual-digest binding of <code>adoptionProof</code> and <code>foundationPlanDigest</code>; an overwrite action that does not declare the <code>expect.sha256</code> pre-state is refused at the <code>projection</code> stage.</li>
|
|
1929
|
+
<li>When adopting the Quickstart Profile candidate, pin all three packages to one profile: 0.3.0 for v2 or 0.2.1 for v1. Do not mix them.</li>
|
|
1929
1930
|
</ul>
|
|
1930
1931
|
|
|
1931
1932
|
|
|
@@ -1895,6 +1895,7 @@
|
|
|
1895
1895
|
<h2 id="1-Scenario-and-Non-Scenario">1. Scenario and Non-Scenario<a class="headerlink" href="#1-Scenario-and-Non-Scenario" title="Permanent link">¶</a></h2>
|
|
1896
1896
|
<p>Applicable: you need to validate whether a document conforms to a Foundation-registered contract object (e.g., project-manifest), choosing a validation strategy by dialect.</p>
|
|
1897
1897
|
<p>Not applicable: needs to validate the consumer's own business Schema (the consumer should hold it itself; Foundation does not replace it); needs to mix domain-semantic validation into the generic contract.</p>
|
|
1898
|
+
<p>Quickstart Profile v2 is a separate candidate path. The consumer still owns its business schemas; Engineering Kit only compiles an explicit schema collection into offline validators selected by <code>$id</code>, and does not own the method-to-schema choice.</p>
|
|
1898
1899
|
<h2 id="2-Architecture-Choice-and-Capability-ID">2. Architecture Choice and Capability ID<a class="headerlink" href="#2-Architecture-Choice-and-Capability-ID" title="Permanent link">¶</a></h2>
|
|
1899
1900
|
<p>Preferred capability: <code>foundation.contracts.object-validation</code> (<code>validateDocument</code> / <code>compileSchema</code> / <code>detectDialect</code>). A pure Ajv implementation, supporting draft-07 and 2020-12.</p>
|
|
1900
1901
|
<h2 id="3-Preconditions-and-Trust-Boundary">3. Preconditions and Trust Boundary<a class="headerlink" href="#3-Preconditions-and-Trust-Boundary" title="Permanent link">¶</a></h2>
|
|
@@ -1945,8 +1946,9 @@ if (!bad.valid) console.error(bad.errorCode); // SFC1002
|
|
|
1945
1946
|
</ul>
|
|
1946
1947
|
<h2 id="9-Upgrade-and-Rollback-Notes">9. Upgrade and Rollback Notes<a class="headerlink" href="#9-Upgrade-and-Rollback-Notes" title="Permanent link">¶</a></h2>
|
|
1947
1948
|
<ul>
|
|
1948
|
-
<li>The contract authority version <code>CONTRACTS_VERSION = 1.4.0</code>, and the npm package version <code>0.
|
|
1949
|
+
<li>The contract authority version <code>CONTRACTS_VERSION = 1.4.0</code>, and the npm package version <code>0.3.0</code> run in parallel and are not mixed.</li>
|
|
1949
1950
|
<li>Error codes are frozen and do not drift; Schema changes are handled as a new contract-version task, not by modifying frozen content in place.</li>
|
|
1951
|
+
<li>Candidate v2 must be pinned to exactly 0.3.0; integrations that still require v1 must remain pinned to exactly 0.2.1.</li>
|
|
1950
1952
|
</ul>
|
|
1951
1953
|
|
|
1952
1954
|
|
|
@@ -1770,13 +1770,14 @@
|
|
|
1770
1770
|
<li>Need durable events and derived snapshots → see <code>durable-local-state</code>.</li>
|
|
1771
1771
|
<li>Need an existing-repository adoption inventory → see <code>adopt-existing-repository</code>.</li>
|
|
1772
1772
|
<li>Need a text-resource closure or host access → see <code>adapter-text-closure</code> / <code>host-profile-integration</code>.</li>
|
|
1773
|
+
<li>Need to trial Quickstart Profile v2 → pin the 0.3.0 candidate subpaths of all three packages exactly; remain on exactly 0.2.1 when v1 is still required.</li>
|
|
1773
1774
|
</ul>
|
|
1774
1775
|
<h2 id="Common-Verification-Conventions">Common Verification Conventions<a class="headerlink" href="#Common-Verification-Conventions" title="Permanent link">¶</a></h2>
|
|
1775
1776
|
<ul>
|
|
1776
1777
|
<li>All examples run in a <strong>new system temp directory</strong>, leaving no personal paths or credentials.</li>
|
|
1777
1778
|
<li>Examples contain no enterprise identifiers, private Profiles, real business data, or personal paths.</li>
|
|
1778
1779
|
<li>Each recipe gives at least one positive case and one negative case; the negative case must produce a stable failure code or refusal.</li>
|
|
1779
|
-
<li>Verification commands can be copied and run directly; when a package is needed, first <code>npm install</code> the corresponding <code>@0.
|
|
1780
|
+
<li>Verification commands can be copied and run directly; when a package is needed, first <code>npm install</code> the corresponding <code>@0.3.0</code>.</li>
|
|
1780
1781
|
</ul>
|
|
1781
1782
|
<h2 id="Capability-ID-Overview">Capability ID Overview<a class="headerlink" href="#Capability-ID-Overview" title="Permanent link">¶</a></h2>
|
|
1782
1783
|
<table>
|
|
@@ -1292,6 +1292,17 @@
|
|
|
1292
1292
|
</span>
|
|
1293
1293
|
</a>
|
|
1294
1294
|
|
|
1295
|
+
</li>
|
|
1296
|
+
|
|
1297
|
+
<li class="md-nav__item">
|
|
1298
|
+
<a href="#Quickstart-Profile-v2-Candidate" class="md-nav__link">
|
|
1299
|
+
<span class="md-ellipsis">
|
|
1300
|
+
|
|
1301
|
+
Quickstart Profile v2 Candidate
|
|
1302
|
+
|
|
1303
|
+
</span>
|
|
1304
|
+
</a>
|
|
1305
|
+
|
|
1295
1306
|
</li>
|
|
1296
1307
|
|
|
1297
1308
|
<li class="md-nav__item">
|
|
@@ -1759,6 +1770,17 @@
|
|
|
1759
1770
|
</span>
|
|
1760
1771
|
</a>
|
|
1761
1772
|
|
|
1773
|
+
</li>
|
|
1774
|
+
|
|
1775
|
+
<li class="md-nav__item">
|
|
1776
|
+
<a href="#Quickstart-Profile-v2-Candidate" class="md-nav__link">
|
|
1777
|
+
<span class="md-ellipsis">
|
|
1778
|
+
|
|
1779
|
+
Quickstart Profile v2 Candidate
|
|
1780
|
+
|
|
1781
|
+
</span>
|
|
1782
|
+
</a>
|
|
1783
|
+
|
|
1762
1784
|
</li>
|
|
1763
1785
|
|
|
1764
1786
|
<li class="md-nav__item">
|
|
@@ -1848,6 +1870,8 @@
|
|
|
1848
1870
|
<li>Engineering Kit keeps exactly four top-level commands: <code>scaffold</code>, <code>adopt-plan</code>, <code>projection</code>, and <code>check</code>. Each command retains its documented read-only or controlled-write boundary.</li>
|
|
1849
1871
|
<li>Candidate capabilities are marked <code>stability: candidate</code> in the catalog. Their presence in the public package does not promote them to the stable surface.</li>
|
|
1850
1872
|
</ul>
|
|
1873
|
+
<h2 id="Quickstart-Profile-v2-Candidate">Quickstart Profile v2 Candidate<a class="headerlink" href="#Quickstart-Profile-v2-Candidate" title="Permanent link">¶</a></h2>
|
|
1874
|
+
<p>All three packages expose v2 through their existing candidate subpaths. Contracts defines the business-neutral <code>execute-method</code> exchange, Harness verifies bytes and bindings, and Kit turns explicit consumer schemas into an offline Bundle with standalone validators selected by schema <code>$id</code>. Version 0.3.0 candidate v2 is incompatible with the 0.2.1 candidate v1; consumers must pin the selected package versions exactly.</p>
|
|
1851
1875
|
<h2 id="Detailed-Package-Pages">Detailed Package Pages<a class="headerlink" href="#Detailed-Package-Pages" title="Permanent link">¶</a></h2>
|
|
1852
1876
|
<p>The current signature-level package pages are maintained in Chinese because they enumerate every verified export and test reference:</p>
|
|
1853
1877
|
<ul>
|
|
@@ -1216,6 +1216,17 @@
|
|
|
1216
1216
|
</span>
|
|
1217
1217
|
</a>
|
|
1218
1218
|
|
|
1219
|
+
</li>
|
|
1220
|
+
|
|
1221
|
+
<li class="md-nav__item">
|
|
1222
|
+
<a href="#Quickstart-Profile-Candidate-Compatibility" class="md-nav__link">
|
|
1223
|
+
<span class="md-ellipsis">
|
|
1224
|
+
|
|
1225
|
+
Quickstart Profile Candidate Compatibility
|
|
1226
|
+
|
|
1227
|
+
</span>
|
|
1228
|
+
</a>
|
|
1229
|
+
|
|
1219
1230
|
</li>
|
|
1220
1231
|
|
|
1221
1232
|
<li class="md-nav__item">
|
|
@@ -1748,6 +1759,17 @@
|
|
|
1748
1759
|
</span>
|
|
1749
1760
|
</a>
|
|
1750
1761
|
|
|
1762
|
+
</li>
|
|
1763
|
+
|
|
1764
|
+
<li class="md-nav__item">
|
|
1765
|
+
<a href="#Quickstart-Profile-Candidate-Compatibility" class="md-nav__link">
|
|
1766
|
+
<span class="md-ellipsis">
|
|
1767
|
+
|
|
1768
|
+
Quickstart Profile Candidate Compatibility
|
|
1769
|
+
|
|
1770
|
+
</span>
|
|
1771
|
+
</a>
|
|
1772
|
+
|
|
1751
1773
|
</li>
|
|
1752
1774
|
|
|
1753
1775
|
<li class="md-nav__item">
|
|
@@ -1840,33 +1862,56 @@
|
|
|
1840
1862
|
<tbody>
|
|
1841
1863
|
<tr>
|
|
1842
1864
|
<td><code>skill-family-contracts</code></td>
|
|
1843
|
-
<td>0.
|
|
1865
|
+
<td>0.3.0</td>
|
|
1844
1866
|
<td>Contracts 1.4.0 machine contracts</td>
|
|
1845
1867
|
<td>Public release target (private: false)</td>
|
|
1846
1868
|
</tr>
|
|
1847
1869
|
<tr>
|
|
1848
1870
|
<td><code>skill-family-harness-node</code></td>
|
|
1849
|
-
<td>0.
|
|
1871
|
+
<td>0.3.0</td>
|
|
1850
1872
|
<td>Node thin-mechanism runtime of Contracts</td>
|
|
1851
1873
|
<td>Public release target</td>
|
|
1852
1874
|
</tr>
|
|
1853
1875
|
<tr>
|
|
1854
1876
|
<td><code>skill-family-engineering-kit</code></td>
|
|
1855
|
-
<td>0.
|
|
1877
|
+
<td>0.3.0</td>
|
|
1856
1878
|
<td>Four engineering commands (CLI <code>skill-family-kit</code>)</td>
|
|
1857
1879
|
<td>Public release target</td>
|
|
1858
1880
|
</tr>
|
|
1859
1881
|
<tr>
|
|
1860
1882
|
<td>Workspace repository</td>
|
|
1861
|
-
<td>0.
|
|
1883
|
+
<td>0.3.0</td>
|
|
1862
1884
|
<td>Private parent workspace (private: true)</td>
|
|
1863
1885
|
<td>Development source of truth only</td>
|
|
1864
1886
|
</tr>
|
|
1865
1887
|
</tbody>
|
|
1866
1888
|
</table>
|
|
1867
1889
|
<blockquote>
|
|
1868
|
-
<p>The contract authority version (<code>CONTRACTS_VERSION</code>) is <code>1.4.0</code>, and the npm package version is <code>0.
|
|
1890
|
+
<p>The contract authority version (<code>CONTRACTS_VERSION</code>) is <code>1.4.0</code>, and the npm package version is <code>0.3.0</code>; the two version lines run in parallel and are not mixed.</p>
|
|
1869
1891
|
</blockquote>
|
|
1892
|
+
<h2 id="Quickstart-Profile-Candidate-Compatibility">Quickstart Profile Candidate Compatibility<a class="headerlink" href="#Quickstart-Profile-Candidate-Compatibility" title="Permanent link">¶</a></h2>
|
|
1893
|
+
<table>
|
|
1894
|
+
<thead>
|
|
1895
|
+
<tr>
|
|
1896
|
+
<th>Package version</th>
|
|
1897
|
+
<th>Candidate profile</th>
|
|
1898
|
+
<th>Compatibility rule</th>
|
|
1899
|
+
</tr>
|
|
1900
|
+
</thead>
|
|
1901
|
+
<tbody>
|
|
1902
|
+
<tr>
|
|
1903
|
+
<td>0.2.1</td>
|
|
1904
|
+
<td>v1</td>
|
|
1905
|
+
<td>Existing integrations may remain pinned to exactly 0.2.1</td>
|
|
1906
|
+
</tr>
|
|
1907
|
+
<tr>
|
|
1908
|
+
<td>0.3.0</td>
|
|
1909
|
+
<td>v2</td>
|
|
1910
|
+
<td>Uses <code>execute-method</code>, real <code>$id</code> schema resolution, and the offline Bundle; pin exactly 0.3.0</td>
|
|
1911
|
+
</tr>
|
|
1912
|
+
</tbody>
|
|
1913
|
+
</table>
|
|
1914
|
+
<p>Version 2 replaces v1 and provides no dual-track compatibility layer. Stable Contracts 1.4.0, the 18 object classes, the kernel protocol, and the error-code registry do not change with the candidate profile.</p>
|
|
1870
1915
|
<h2 id="Node-Support-Matrix">Node Support Matrix<a class="headerlink" href="#Node-Support-Matrix" title="Permanent link">¶</a></h2>
|
|
1871
1916
|
<ul>
|
|
1872
1917
|
<li>Engine requirement: <code>>=22.22.2 <23</code> (major 22 locked).</li>
|
|
@@ -1922,6 +1967,7 @@
|
|
|
1922
1967
|
<li><strong>Kit commands</strong>: top-level commands are fixed at 4 (scaffold/adopt-plan/projection/check), not expanded; <code>REFUSED_MUTATION_FLAGS</code> are refused at the CLI entry point.</li>
|
|
1923
1968
|
<li><strong>Node/pnpm/projen</strong>: follow the exact locks in <code>.foundation/version-lock.json</code> and <code>package.json</code>; upgrades require re-generating the managed projection via <code>pnpm synth</code>.</li>
|
|
1924
1969
|
<li><strong>Host</strong>: adding a supported host requires registering a descriptor and binding a trusted driver; unsupported hosts (e.g., qoder) are only referenced structurally and not claimed to have been run on.</li>
|
|
1970
|
+
<li><strong>Candidate</strong>: a later minor version may change or remove a candidate subpath; do not mix the 0.2.1 v1 packages with the 0.3.0 v2 packages, and pin all three package versions exactly.</li>
|
|
1925
1971
|
</ul>
|
|
1926
1972
|
<h2 id="Anti-Compatibility-Boundaries-Explicitly-Unsupported">Anti-Compatibility Boundaries (Explicitly Unsupported)<a class="headerlink" href="#Anti-Compatibility-Boundaries-Explicitly-Unsupported" title="Permanent link">¶</a></h2>
|
|
1927
1973
|
<ul>
|
|
@@ -2113,9 +2113,9 @@
|
|
|
2113
2113
|
],
|
|
2114
2114
|
"targetProfile": "generic",
|
|
2115
2115
|
"foundationPackages": [
|
|
2116
|
-
{ "name": "skill-family-contracts", "version": "0.
|
|
2117
|
-
{ "name": "skill-family-harness-node", "version": "0.
|
|
2118
|
-
{ "name": "skill-family-engineering-kit", "version": "0.
|
|
2116
|
+
{ "name": "skill-family-contracts", "version": "0.3.0", "digest": "sha256:<64 位十六进制>" },
|
|
2117
|
+
{ "name": "skill-family-harness-node", "version": "0.3.0", "digest": "sha256:<64 位十六进制>" },
|
|
2118
|
+
{ "name": "skill-family-engineering-kit", "version": "0.3.0", "digest": "sha256:<64 位十六进制>" }
|
|
2119
2119
|
],
|
|
2120
2120
|
"verification": {
|
|
2121
2121
|
"unit": "docs/evidence/unit.json",
|
|
@@ -2126,6 +2126,7 @@
|
|
|
2126
2126
|
}
|
|
2127
2127
|
</code></pre>
|
|
2128
2128
|
<p>以上结构展示了迁移清单的核心字段;<code>legacyInfra</code> 每项给出旧实现路径与替代物,工具只读评估存在性,绝不代为删除。</p>
|
|
2129
|
+
<p>0.3.0 中的 Quickstart Profile candidate 已升级到 v2。迁移清单若绑定 candidate 能力,三个 Foundation 包必须统一精确锁定为 0.3.0;仍需 v1 的存量接入继续统一锁定 0.2.1,不混装两组版本。</p>
|
|
2129
2130
|
<ul>
|
|
2130
2131
|
<li><code>legacyInfra</code> 每项给出旧实现路径与替代物;工具只读评估存在性,绝不代为删除。</li>
|
|
2131
2132
|
<li><code>exceptions</code> 是<strong>临时例外</strong>:必须同时含负责人(owner)、原因(reason)、截止时间(deadline)、迁移目标(migrationTarget)四项,缺任一字段即计为冲突(计划失败);到期例外不自动续期,持续阻断完成判定。</li>
|
|
@@ -1792,17 +1792,17 @@
|
|
|
1792
1792
|
<tbody>
|
|
1793
1793
|
<tr>
|
|
1794
1794
|
<td><code>skill-family-contracts</code></td>
|
|
1795
|
-
<td>0.
|
|
1795
|
+
<td>0.4.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.
|
|
1800
|
+
<td>0.4.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.
|
|
1805
|
+
<td>0.4.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>
|
|
@@ -1903,7 +1903,7 @@
|
|
|
1903
1903
|
<li>信任边界:<code>adopt-plan</code> 对输入仓字节零变化;旧实现删除由调用方负责,工具绝不代为删除。</li>
|
|
1904
1904
|
</ul>
|
|
1905
1905
|
<h2 id="4-最小命令">4. 最小命令<a class="headerlink" href="#4-最小命令" title="Permanent link">¶</a></h2>
|
|
1906
|
-
<pre><code class="language-sh">npm install --save-dev skill-family-engineering-kit@0.
|
|
1906
|
+
<pre><code class="language-sh">npm install --save-dev skill-family-engineering-kit@0.3.0
|
|
1907
1907
|
npm exec -- skill-family-kit adopt-plan --root <repo>
|
|
1908
1908
|
</code></pre>
|
|
1909
1909
|
<h2 id="5-预期输出与证据">5. 预期输出与证据<a class="headerlink" href="#5-预期输出与证据" title="Permanent link">¶</a></h2>
|
|
@@ -1926,6 +1926,7 @@ npm exec -- skill-family-kit check --root fixtures/m0-consumer
|
|
|
1926
1926
|
<ul>
|
|
1927
1927
|
<li><code>adopt-plan</code> 只读,无写风险,无需回滚。</li>
|
|
1928
1928
|
<li>真正落盘由 <code>scaffold</code>/<code>projection</code> 执行,回滚以 <code>adoptionProof</code> 与 <code>foundationPlanDigest</code> 双摘要绑定为准;未声明 <code>expect.sha256</code> 前置状态的覆盖动作在 <code>projection</code> 阶段即拒绝。</li>
|
|
1929
|
+
<li>若采用 Quickstart Profile candidate,三个包按同一 profile 精确锁定:v2 使用 0.3.0,v1 继续使用 0.2.1,不混装。</li>
|
|
1929
1930
|
</ul>
|
|
1930
1931
|
|
|
1931
1932
|
|
|
@@ -1895,6 +1895,7 @@
|
|
|
1895
1895
|
<h2 id="1-场景与非场景">1. 场景与非场景<a class="headerlink" href="#1-场景与非场景" title="Permanent link">¶</a></h2>
|
|
1896
1896
|
<p>适用:需要校验一份文档是否符合 Foundation 已登记的契约对象(如 project-manifest),按方言选择校验策略。</p>
|
|
1897
1897
|
<p>不适用:需要校验消费者自有业务 Schema(消费者应自行持有,Foundation 不取代);需要把领域语义校验混入通用契约。</p>
|
|
1898
|
+
<p>Quickstart Profile v2 是单独的 candidate 路径。消费者仍拥有业务 Schema;Engineering Kit 只在构建阶段把显式 Schema 集合编译成按 <code>$id</code> 查询的离线 validator,不接管 method 到 Schema 的选择。</p>
|
|
1898
1899
|
<h2 id="2-架构选择及能力-ID">2. 架构选择及能力 ID<a class="headerlink" href="#2-架构选择及能力-ID" title="Permanent link">¶</a></h2>
|
|
1899
1900
|
<p>首选能力:<code>foundation.contracts.object-validation</code>(<code>validateDocument</code> / <code>compileSchema</code> / <code>detectDialect</code>)。纯 Ajv 实现,支持 draft-07 与 2020-12。</p>
|
|
1900
1901
|
<h2 id="3-前置条件与信任边界">3. 前置条件与信任边界<a class="headerlink" href="#3-前置条件与信任边界" title="Permanent link">¶</a></h2>
|
|
@@ -1945,8 +1946,9 @@ if (!bad.valid) console.error(bad.errorCode); // SFC1002
|
|
|
1945
1946
|
</ul>
|
|
1946
1947
|
<h2 id="9-升级与回滚注意事项">9. 升级与回滚注意事项<a class="headerlink" href="#9-升级与回滚注意事项" title="Permanent link">¶</a></h2>
|
|
1947
1948
|
<ul>
|
|
1948
|
-
<li>契约权威版本 <code>CONTRACTS_VERSION = 1.4.0</code>,npm 包版本 <code>0.
|
|
1949
|
+
<li>契约权威版本 <code>CONTRACTS_VERSION = 1.4.0</code>,npm 包版本 <code>0.3.0</code> 并行,不混用。</li>
|
|
1949
1950
|
<li>错误码冻结不漂移;Schema 变更作为新的合同版本任务进行,不就地改冻结内容。</li>
|
|
1951
|
+
<li>candidate v2 必须精确锁定 0.3.0;仍需 v1 的接入继续精确锁定 0.2.1。</li>
|
|
1950
1952
|
</ul>
|
|
1951
1953
|
|
|
1952
1954
|
|
package/docs/recipes/index.html
CHANGED
|
@@ -1770,13 +1770,14 @@
|
|
|
1770
1770
|
<li>需要持久事件与派生快照 → 看 <code>durable-local-state</code>。</li>
|
|
1771
1771
|
<li>需要存量采用盘点 → 看 <code>adopt-existing-repository</code>。</li>
|
|
1772
1772
|
<li>需要文本资源闭包或宿主接入 → 看 <code>adapter-text-closure</code> / <code>host-profile-integration</code>。</li>
|
|
1773
|
+
<li>需要试用 Quickstart Profile v2 → 精确锁定三个包的 0.3.0 candidate 子路径;需要 v1 时继续锁定 0.2.1。</li>
|
|
1773
1774
|
</ul>
|
|
1774
1775
|
<h2 id="共同验证约定">共同验证约定<a class="headerlink" href="#共同验证约定" title="Permanent link">¶</a></h2>
|
|
1775
1776
|
<ul>
|
|
1776
1777
|
<li>所有示例在<strong>新的系统临时目录</strong>执行,不留个人路径或凭据。</li>
|
|
1777
1778
|
<li>示例不含企业标识、私有 Profile、真实业务数据或个人路径。</li>
|
|
1778
1779
|
<li>每个 recipe 至少给出一个正例与一个负例;负例必须产生稳定失败码或拒绝。</li>
|
|
1779
|
-
<li>验证命令可直接复制运行;需要包时先 <code>npm install</code> 对应 <code>@0.
|
|
1780
|
+
<li>验证命令可直接复制运行;需要包时先 <code>npm install</code> 对应 <code>@0.3.0</code>。</li>
|
|
1780
1781
|
</ul>
|
|
1781
1782
|
<h2 id="能力-ID-总览">能力 ID 总览<a class="headerlink" href="#能力-ID-总览" title="Permanent link">¶</a></h2>
|
|
1782
1783
|
<table>
|
|
@@ -894,6 +894,17 @@
|
|
|
894
894
|
</ul>
|
|
895
895
|
</nav>
|
|
896
896
|
|
|
897
|
+
</li>
|
|
898
|
+
|
|
899
|
+
<li class="md-nav__item">
|
|
900
|
+
<a href="#Quickstart-Profile-v2-candidate" class="md-nav__link">
|
|
901
|
+
<span class="md-ellipsis">
|
|
902
|
+
|
|
903
|
+
Quickstart Profile v2 candidate
|
|
904
|
+
|
|
905
|
+
</span>
|
|
906
|
+
</a>
|
|
907
|
+
|
|
897
908
|
</li>
|
|
898
909
|
|
|
899
910
|
<li class="md-nav__item">
|
|
@@ -2140,6 +2151,17 @@
|
|
|
2140
2151
|
</ul>
|
|
2141
2152
|
</nav>
|
|
2142
2153
|
|
|
2154
|
+
</li>
|
|
2155
|
+
|
|
2156
|
+
<li class="md-nav__item">
|
|
2157
|
+
<a href="#Quickstart-Profile-v2-candidate" class="md-nav__link">
|
|
2158
|
+
<span class="md-ellipsis">
|
|
2159
|
+
|
|
2160
|
+
Quickstart Profile v2 candidate
|
|
2161
|
+
|
|
2162
|
+
</span>
|
|
2163
|
+
</a>
|
|
2164
|
+
|
|
2143
2165
|
</li>
|
|
2144
2166
|
|
|
2145
2167
|
<li class="md-nav__item">
|
|
@@ -2468,6 +2490,10 @@
|
|
|
2468
2490
|
<li>调用方仍拥有的业务语义:审计语义结论(接受/拒绝属外部独立审阅)。</li>
|
|
2469
2491
|
</ul>
|
|
2470
2492
|
<hr />
|
|
2493
|
+
<h2 id="Quickstart-Profile-v2-candidate">Quickstart Profile v2 candidate<a class="headerlink" href="#Quickstart-Profile-v2-candidate" title="Permanent link">¶</a></h2>
|
|
2494
|
+
<p><code>skill-family-contracts/candidate/quickstart-profile</code> 导出 v2 协议、按真实 <code>$id</code> 索引的 Resource/Task/Result Schema 集合,以及 <code>validateQuickstartProfileDocument</code>。唯一操作名是业务中立的 <code>execute-method</code>;Foundation 不登记 method 词表,也不解释 parameters、evidence 或 domainResult 的领域含义。</p>
|
|
2495
|
+
<p>该入口从 <code>0.2.1</code> 起公开,但稳定性仍为 <code>candidate</code>。0.3.0 已用 v2 替换 v1,两者不兼容:新接入需精确锁定 <code>0.3.0</code>,仍需 v1 的接入继续精确锁定 <code>0.2.1</code>。candidate Schema 不进入稳定 <code>src/registry.json</code>。</p>
|
|
2496
|
+
<hr />
|
|
2471
2497
|
<h2 id="与机器事实层的互链">与机器事实层的互链<a class="headerlink" href="#与机器事实层的互链" title="Permanent link">¶</a></h2>
|
|
2472
2498
|
<ul>
|
|
2473
2499
|
<li>能力稳定 ID 见 <code>docs/agents/capability-catalog.json</code>(<code>foundation.contracts.*</code>)。</li>
|
|
@@ -999,6 +999,17 @@
|
|
|
999
999
|
</ul>
|
|
1000
1000
|
</nav>
|
|
1001
1001
|
|
|
1002
|
+
</li>
|
|
1003
|
+
|
|
1004
|
+
<li class="md-nav__item">
|
|
1005
|
+
<a href="#Quickstart-Profile-v2-candidate" class="md-nav__link">
|
|
1006
|
+
<span class="md-ellipsis">
|
|
1007
|
+
|
|
1008
|
+
Quickstart Profile v2 candidate
|
|
1009
|
+
|
|
1010
|
+
</span>
|
|
1011
|
+
</a>
|
|
1012
|
+
|
|
1002
1013
|
</li>
|
|
1003
1014
|
|
|
1004
1015
|
<li class="md-nav__item">
|
|
@@ -2242,6 +2253,17 @@
|
|
|
2242
2253
|
</ul>
|
|
2243
2254
|
</nav>
|
|
2244
2255
|
|
|
2256
|
+
</li>
|
|
2257
|
+
|
|
2258
|
+
<li class="md-nav__item">
|
|
2259
|
+
<a href="#Quickstart-Profile-v2-candidate" class="md-nav__link">
|
|
2260
|
+
<span class="md-ellipsis">
|
|
2261
|
+
|
|
2262
|
+
Quickstart Profile v2 candidate
|
|
2263
|
+
|
|
2264
|
+
</span>
|
|
2265
|
+
</a>
|
|
2266
|
+
|
|
2245
2267
|
</li>
|
|
2246
2268
|
|
|
2247
2269
|
<li class="md-nav__item">
|
|
@@ -2487,6 +2509,10 @@
|
|
|
2487
2509
|
</ul>
|
|
2488
2510
|
<p>Kit 错误类型:<code>KitError extends ContractsError</code>(构造未登记码立即抛 <code>TypeError</code>);<code>KIT_ERROR_KINDS</code> 为稳定 kind 枚举;<code>kitError</code> / <code>invalidParamsError</code> / <code>unknownCommandError</code> / <code>mutationModeError</code> / <code>refusalError</code> 为构造辅助。<code>REFUSED_MUTATION_FLAGS</code> 列出入口即拒的变更旗标(如 <code>--apply</code>)。</p>
|
|
2489
2511
|
<hr />
|
|
2512
|
+
<h2 id="Quickstart-Profile-v2-candidate">Quickstart Profile v2 candidate<a class="headerlink" href="#Quickstart-Profile-v2-candidate" title="Permanent link">¶</a></h2>
|
|
2513
|
+
<p><code>skill-family-engineering-kit/candidate/quickstart-profile</code> 导出 <code>buildQuickstartProfileProjection</code> 与 <code>QUICKSTART_PROFILE_TARGET_PREFIX</code>。builder 接收显式消费者 Schema 路径与冻结来源身份,生成按 Schema <code>$id</code> 查询的 standalone validator、机械投影的 Contracts/Harness runtime、许可证和完整 provenance。</p>
|
|
2514
|
+
<p>Bundle 离线运行时不需要 Foundation 包、<code>node_modules</code> 或 Ajv。builder 只返回稳定 projection manifest,不写目标文件,也不增加第五个 Kit 顶层命令;调用方仍需把 manifest 交给 <code>runProjection</code> 完成授权写入。0.3.0 的 v2 与 0.2.1 的依赖闭包 Bundle 不兼容,必须精确锁定版本。</p>
|
|
2515
|
+
<hr />
|
|
2490
2516
|
<h2 id="与机器事实层的互链">与机器事实层的互链<a class="headerlink" href="#与机器事实层的互链" title="Permanent link">¶</a></h2>
|
|
2491
2517
|
<ul>
|
|
2492
2518
|
<li>能力稳定 ID 见 <code>docs/agents/capability-catalog.json</code>(<code>foundation.kit.*</code>、<code>foundation.unsupported.*</code>)。</li>
|