skill-family-engineering-kit 0.24.0 → 0.25.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 +33 -0
- package/CHANGELOG.zh-CN.md +33 -0
- package/README.md +36 -24
- package/README.zh-CN.md +38 -26
- package/data/capability-catalog/capability-catalog.en.json +48 -0
- package/data/capability-catalog/capability-catalog.json +28 -0
- package/data/capability-catalog/capability-catalog.zh-CN.json +48 -0
- package/docs/agents/capability-catalog.en.json +48 -0
- package/docs/agents/capability-catalog.json +28 -0
- package/docs/agents/capability-catalog.zh-CN.json +48 -0
- package/docs/public/status/index.html +4 -4
- package/docs/search/search_index.json +1 -1
- package/package.json +4 -3
- package/release-notes/0.24.1.yaml +15 -0
- package/release-notes/0.25.0.yaml +21 -0
- package/src/cli.mjs +66 -0
- package/src/host-loading-check.mjs +1219 -0
- package/src/index.mjs +15 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
<!-- release-skill:changelog:start version=0.25.0 locale=en baseline=sha256:94f4c9be64b930538ffaccf847dadf49baad796b513c142205a18f631d50e66c -->
|
|
4
|
+
## [0.25.0] - 2026-10-15
|
|
5
|
+
|
|
6
|
+
Engineering Kit 0.25.0 adds the public function `runHostLoadingCheck` and the CLI sub-action `skill-family-kit check host-loading` under the existing `check` command. The four top-level commands remain `scaffold`, `adopt-plan`, `projection`, and `check`. The check covers only Codex CLI 0.154.0 project `.agents/skills`. Unknown coverage returns exit code 2. A static result does not prove install, session selection, or business execution.
|
|
7
|
+
|
|
8
|
+
### Changed
|
|
9
|
+
|
|
10
|
+
- Add the public function `runHostLoadingCheck` and the CLI `skill-family-kit check host-loading`. The API `root` must be an absolute project working directory; the CLI resolves the current directory or a relative path to an absolute path first.
|
|
11
|
+
- Only `hostId=codex`, `hostVersion=0.154.0`, and `pathCategory=codex-project-skills` are calibrated, and that category's relative path must remain `.agents/skills`. The check statically reads `SKILL.md` and the optional Codex 0.154.0 skill metadata YAML under `agents/` beside `SKILL.md`. It does not start a host, model, hook, or script, and writes nothing.
|
|
12
|
+
- Other hosts or versions, or an unknown path category, return exit code 2. A missing skill entry, or a scope that contains only product-filtered targets, returns 1. A static pass does not prove real install, session selection, or business execution.
|
|
13
|
+
- The package moves to 0.25.0 with the other three units. Contracts specification remains 1.20.0. Published 0.24.1 capabilities are unchanged and are not redone.
|
|
14
|
+
|
|
15
|
+
### Upgrade Notes
|
|
16
|
+
|
|
17
|
+
Pin the three Foundation npm packages to exactly 0.25.0 and keep the independent Plugin at that release version. Contracts specification 1.20.0 remains a separate coordinate from npm package versions. Consume the actual published version's public interfaces and sources. A static check pass does not prove real install, session selection, or business execution. This note does not replace post-publish verification.
|
|
18
|
+
<!-- release-skill:changelog:end version=0.25.0 locale=en -->
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
<!-- release-skill:changelog:start version=0.24.1 locale=en baseline=sha256:60780ae0d34a8e8fcc016ebb188586876b9c31ceafb0c02a826db8e449e43729 -->
|
|
22
|
+
## [0.24.1] - 2026-10-12
|
|
23
|
+
|
|
24
|
+
Engineering Kit 0.24.1 advances only to keep the existing four-unit lockstep contract for the Foundation documentation patch. It adds no capability, API, Schema, protocol, or mechanism.
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
- Update only the package coordinate and its managed version projections; existing capabilities, parameters, and failure boundaries remain unchanged.
|
|
29
|
+
|
|
30
|
+
### Upgrade Notes
|
|
31
|
+
|
|
32
|
+
Pin the three Foundation npm packages to the exact same version and keep the independent Plugin at that release version. Contracts specification 1.20.0 remains a separate coordinate from npm package versions. Use the actual published version's public interfaces and sources; this note does not replace post-publish verification.
|
|
33
|
+
<!-- release-skill:changelog:end version=0.24.1 locale=en -->
|
|
34
|
+
|
|
35
|
+
|
|
3
36
|
<!-- release-skill:changelog:start version=0.24.0 locale=en baseline=sha256:ab4ce0e2c0eb82f9d7b97bd2d48a040965596785dab29dd8898dbe5730acd303 -->
|
|
4
37
|
## [0.24.0] - 2026-10-07
|
|
5
38
|
|
package/CHANGELOG.zh-CN.md
CHANGED
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
# 变更日志
|
|
2
2
|
|
|
3
|
+
<!-- release-skill:changelog:start version=0.25.0 locale=zh-CN baseline=sha256:0112af28c40f4ac8dd77173f681345039eb2c55d714315b267827693c5f78e37 -->
|
|
4
|
+
## [0.25.0] - 2026-10-15
|
|
5
|
+
|
|
6
|
+
Engineering Kit 0.25.0 在既有 `check` 下新增公共函数 `runHostLoadingCheck` 与 CLI 子动作 `skill-family-kit check host-loading`。四个顶层命令仍为 `scaffold`、`adopt-plan`、`projection`、`check`。检查只覆盖 Codex CLI 0.154.0 的项目 `.agents/skills`。未知覆盖返回退出码 2。静态结果不证明安装、会话选择或业务执行。
|
|
7
|
+
|
|
8
|
+
### 变更
|
|
9
|
+
|
|
10
|
+
- 新增公共函数 `runHostLoadingCheck` 与 CLI `skill-family-kit check host-loading`。API 的 `root` 必须是绝对项目工作目录;CLI 会把当前目录或相对路径先解析成绝对路径。
|
|
11
|
+
- 只校准 `hostId=codex`、`hostVersion=0.154.0`、`pathCategory=codex-project-skills`,且该类别相对路径必须仍是 `.agents/skills`。检查静态读取所选项目根下 `.agents/skills` 的 `SKILL.md`,以及 `SKILL.md` 旁 `agents/` 下 Codex 0.154.0 的可选技能元信息 YAML。不启动宿主、模型、hook 或脚本,不写文件。
|
|
12
|
+
- 其他宿主或版本、未知路径类别返回退出码 2。缺技能入口,或范围内仅有被产品过滤的目标,返回 1。静态通过不证明真实安装、会话选择或业务执行。
|
|
13
|
+
- 包版本与其他三单元锁步到 0.25.0。Contracts 规格仍为 1.20.0。已发布的 0.24.1 能力保持原样,本版本不重做。
|
|
14
|
+
|
|
15
|
+
### 升级说明
|
|
16
|
+
|
|
17
|
+
三个 Foundation npm 包须精确锁定 0.25.0,独立插件与三包保持相同发布版本。Contracts 规格仍为 1.20.0,与 npm 包版本分别处理。消费以实际发布版本的公开接口和源码为准。静态检查通过不证明真实安装、会话选择或业务执行。本说明不替代发布后验证。
|
|
18
|
+
<!-- release-skill:changelog:end version=0.25.0 locale=zh-CN -->
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
<!-- release-skill:changelog:start version=0.24.1 locale=zh-CN baseline=sha256:0d0b6cccd46c69014e89efa21677ef015ccd3085f0fd07e8021b364b1c1f47e6 -->
|
|
22
|
+
## [0.24.1] - 2026-10-12
|
|
23
|
+
|
|
24
|
+
Engineering Kit 0.24.1 仅随 Foundation 文档补丁按既有四单元合同锁步前移,没有新增能力、API、Schema、协议或机制。
|
|
25
|
+
|
|
26
|
+
### 变更
|
|
27
|
+
|
|
28
|
+
- 仅更新包版本和相应受管版本派生;现有能力、参数与失败边界保持不变。
|
|
29
|
+
|
|
30
|
+
### 升级说明
|
|
31
|
+
|
|
32
|
+
三个 Foundation npm 包须精确锁定同版,独立插件与三包保持相同发布版本。Contracts 规格仍为 1.20.0,与 npm 包版本分别处理;消费以实际发布版本的公开接口和来源为准,本说明不替代发布后验证。
|
|
33
|
+
<!-- release-skill:changelog:end version=0.24.1 locale=zh-CN -->
|
|
34
|
+
|
|
35
|
+
|
|
3
36
|
<!-- release-skill:changelog:start version=0.24.0 locale=zh-CN baseline=sha256:0ae5e1d34d13be6d56f72e4c77ab44e4d24e0e4d5f562ab424d104795db770eb -->
|
|
4
37
|
## [0.24.0] - 2026-10-07
|
|
5
38
|
|
package/README.md
CHANGED
|
@@ -4,26 +4,25 @@
|
|
|
4
4
|
|
|
5
5
|
# skill-family-engineering-kit
|
|
6
6
|
|
|
7
|
-
<!-- release-skill:release-version: 0.
|
|
7
|
+
<!-- release-skill:release-version: 0.25.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.
|
|
12
|
+
**0.25.0** (2026-10-15)
|
|
13
13
|
|
|
14
|
-
Engineering Kit 0.
|
|
14
|
+
Engineering Kit 0.25.0 adds the public function `runHostLoadingCheck` and the CLI sub-action `skill-family-kit check host-loading` under the existing `check` command. The four top-level commands remain `scaffold`, `adopt-plan`, `projection`, and `check`. The check covers only Codex CLI 0.154.0 project `.agents/skills`. Unknown coverage returns exit code 2. A static result does not prove install, session selection, or business execution.
|
|
15
15
|
|
|
16
16
|
**Changed**
|
|
17
17
|
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
- The package moves to 0.24.0 with the other three units. Contracts stays specification 1.20.0, with no new contract object, Harness mechanism, or report kind. Historical 0.23.1 notes remain unchanged.
|
|
18
|
+
- Add the public function `runHostLoadingCheck` and the CLI `skill-family-kit check host-loading`. The API `root` must be an absolute project working directory; the CLI resolves the current directory or a relative path to an absolute path first.
|
|
19
|
+
- Only `hostId=codex`, `hostVersion=0.154.0`, and `pathCategory=codex-project-skills` are calibrated, and that category's relative path must remain `.agents/skills`. The check statically reads `SKILL.md` and the optional Codex 0.154.0 skill metadata YAML under `agents/` beside `SKILL.md`. It does not start a host, model, hook, or script, and writes nothing.
|
|
20
|
+
- Other hosts or versions, or an unknown path category, return exit code 2. A missing skill entry, or a scope that contains only product-filtered targets, returns 1. A static pass does not prove real install, session selection, or business execution.
|
|
21
|
+
- The package moves to 0.25.0 with the other three units. Contracts specification remains 1.20.0. Published 0.24.1 capabilities are unchanged and are not redone.
|
|
23
22
|
|
|
24
23
|
**Upgrade Notes**
|
|
25
24
|
|
|
26
|
-
Pin
|
|
25
|
+
Pin the three Foundation npm packages to exactly 0.25.0 and keep the independent Plugin at that release version. Contracts specification 1.20.0 remains a separate coordinate from npm package versions. Consume the actual published version's public interfaces and sources. A static check pass does not prove real install, session selection, or business execution. This note does not replace post-publish verification.
|
|
27
26
|
<!-- release-skill:managed:end id=latest-release -->
|
|
28
27
|
|
|
29
28
|
## Governance Check (0.22.0)
|
|
@@ -66,7 +65,7 @@ Kit is the "engineering stage" layer, depending on the Harness and Contracts. It
|
|
|
66
65
|
|
|
67
66
|
## Installation and Minimal Example
|
|
68
67
|
|
|
69
|
-
|
|
68
|
+
This package version is 0.25.0; version 0.24.1 has been formally published. To verify a working tree before formal publication, build all three tarballs into one temporary directory and install those exact files:
|
|
70
69
|
|
|
71
70
|
```sh
|
|
72
71
|
pack_dir="$(mktemp -d)"
|
|
@@ -74,25 +73,25 @@ pack_dir="$(mktemp -d)"
|
|
|
74
73
|
(cd packages/skill-family-harness-node && pnpm pack --pack-destination "$pack_dir")
|
|
75
74
|
(cd packages/skill-family-engineering-kit && pnpm pack --pack-destination "$pack_dir")
|
|
76
75
|
mkdir "$pack_dir/consumer" && (cd "$pack_dir/consumer" && npm init -y)
|
|
77
|
-
(cd "$pack_dir/consumer" && npm install "$pack_dir/skill-family-contracts-0.
|
|
76
|
+
(cd "$pack_dir/consumer" && npm install "$pack_dir/skill-family-contracts-0.25.0.tgz" "$pack_dir/skill-family-harness-node-0.25.0.tgz" "$pack_dir/skill-family-engineering-kit-0.25.0.tgz")
|
|
78
77
|
```
|
|
79
78
|
|
|
80
|
-
|
|
79
|
+
The registry installation below requires exact version 0.25.0 to be formally available:
|
|
81
80
|
|
|
82
81
|
```sh
|
|
83
|
-
npm install --save-dev skill-family-engineering-kit@0.
|
|
84
|
-
npm exec --package=skill-family-engineering-kit@0.
|
|
85
|
-
npm exec --package=skill-family-engineering-kit@0.
|
|
86
|
-
npm exec --package=skill-family-engineering-kit@0.
|
|
87
|
-
npm exec --package=skill-family-engineering-kit@0.
|
|
88
|
-
npm exec --package=skill-family-engineering-kit@0.
|
|
82
|
+
npm install --save-dev skill-family-engineering-kit@0.25.0
|
|
83
|
+
npm exec --package=skill-family-engineering-kit@0.25.0 -- skill-family-kit --help
|
|
84
|
+
npm exec --package=skill-family-engineering-kit@0.25.0 -- skill-family-kit scaffold --root <empty-dir> --project-id my-project
|
|
85
|
+
npm exec --package=skill-family-engineering-kit@0.25.0 -- skill-family-kit adopt-plan --root <repo> --list-capabilities --all --scope all --locale en --uses ./uses.json
|
|
86
|
+
npm exec --package=skill-family-engineering-kit@0.25.0 -- skill-family-kit projection --root <repo>
|
|
87
|
+
npm exec --package=skill-family-engineering-kit@0.25.0 -- skill-family-kit check --root <repo>
|
|
89
88
|
```
|
|
90
89
|
|
|
91
|
-
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.
|
|
90
|
+
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.25.0 -- skill-family-kit --help`.
|
|
92
91
|
|
|
93
|
-
### Engineering declarations
|
|
92
|
+
### Engineering declarations (available since 0.24.0)
|
|
94
93
|
|
|
95
|
-
The optional `engineering` input
|
|
94
|
+
The optional `engineering` input has been available since `0.24.0`; `0.23.0` does not support it. Use the already selected SDK only after confirming its actual public interfaces and exact lockstep source for all three Foundation packages; candidate verification and post-release adoption are separate facts. Omitting the input preserves existing bytes and paths. `null`, `{}`, unknown fields, and invalid references are rejected.
|
|
96
95
|
|
|
97
96
|
Construct `engineering` from the project's actual business entries and release units. Each `entries` member has `name`, `form`, and `physicalRef`; `form` is either `skill_md` or `file`, and `skill_md` must point to `SKILL.md`. Each `releaseUnits` member has `id` and `versionSource`, with optional `versionMirrors`. A text version reference has `path` and `format: "text"`; a JSON reference has `path`, `format: "json"`, and a non-empty `jsonPointer`. Use actual business version sources, not the private skeleton example package, SDK version, or Profile version. The presence of `package.json` does not establish npm distribution. No separate declaration input file is required.
|
|
98
97
|
|
|
@@ -125,11 +124,11 @@ skill-family-kit projection --root <target> --engineering <JSON>
|
|
|
125
124
|
|
|
126
125
|
If facts are incomplete, report the missing facts. A declaration may contain only `entries` or only `releaseUnits`, but the absent declared-check branch remains `incomplete`. Once the real business and version files exist, use the official managed update and the existing core, declared version, and declared entry checks. Generation, a read-only plan, static checks, formal host discovery, real business execution, independent semantic review, and overall qualification remain separate facts. Omission preserves old behavior; it does not mean declarations are complete.
|
|
127
126
|
|
|
128
|
-
|
|
127
|
+
Since 0.24.0, `runCoreCheck` selects the applicable version-check path from the target declarations: when a target explicitly declares `engineering.releaseUnits`, the core reuses the existing declared reader for `versionSource` and `versionMirrors` (text or JSON), applying the same validation logic. A private `package.json` within the engineering scope is not treated as an implicit source or mirror for that business unit. It is checked for that unit only when explicitly declared. Targets with no version declaration, or only valid `entries`, continue to use the legacy version check. Invalid or duplicate declarations cannot fall back to success. Missing or unreadable declared sources or mirrors fail visibly.
|
|
129
128
|
|
|
130
129
|
The nine-class loop and report assembly are preserved, maintaining Contracts specification-version compatibility and the integrity of the other eight classes. Declared sources, mirrors, and their ancestral paths are included in the preflight check via the original tree enumeration and `lstat` safety validation, including paths inside opaque tooling directories. Only declared paths are probed; no new directory walker is introduced. Symlinks, FIFOs, and unsafe ancestor paths remain rejected under the original rules, including in-root symlinks. Completion status, mechanism failures, and exit codes 0/1/2 are propagated accurately.
|
|
131
130
|
|
|
132
|
-
Public `runChecks` defaults to `policy: "legacy"`. Its original findings and full/only equivalence remain unchanged. Explicit `policy: "declared"` still requires `only: "version"` and preserves its report structure, zero-target execution semantics, and zero-Git boundary. No new public policy value, API, CLI option, Schema definition, or package-root export is added. No checker is copied into the generated target shim.
|
|
131
|
+
Public `runChecks` defaults to `policy: "legacy"`. Its original findings and full/only equivalence remain unchanged. Explicit `policy: "declared"` still requires `only: "version"` and preserves its report structure, zero-target execution semantics, and zero-Git boundary. No new public policy value, API, CLI option, Schema definition, or package-root export is added. No checker is copied into the generated target shim. Local verification does not establish publication readiness, business qualification, or complete initialization. This update reflects only a narrow, targeted change in core behavior for targets with declared versions; standalone `runChecks` retains its documented behavior.
|
|
133
132
|
|
|
134
133
|
### Three adoption journeys
|
|
135
134
|
|
|
@@ -180,6 +179,19 @@ npm exec -- skill-family-kit check report --root <repo> --report <report.md> --m
|
|
|
180
179
|
|
|
181
180
|
The caller must first construct a valid report model; Kit does not derive facts from open business `outputs`. All fact text is escaped literally, and the full errors of a failed result must appear in both the model and the neutral report.
|
|
182
181
|
|
|
182
|
+
### Host-loading check sub-action
|
|
183
|
+
|
|
184
|
+
```sh
|
|
185
|
+
npm exec -- skill-family-kit check host-loading --root <project> --host codex --host-version 0.154.0 --path-category codex-project-skills
|
|
186
|
+
npm exec -- skill-family-kit check host-loading --root <project> --host codex --host-version 0.154.0 --path-category codex-project-skills --activation-rules <relpath.json> --hosts-root <dir>
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
The public function is `runHostLoadingCheck`. It statically reads `SKILL.md` and the optional Codex 0.154.0 standard skill metadata YAML in `agents/` beside `SKILL.md` under the selected project root `.agents/skills`, and reports format, ignored, filtered, implicit-invocation, disabled, and uncovered observations using the calibrated Codex CLI 0.154.0 rules. Exact optional-file names and parse scope are in [`src/host-loading-check.mjs`](src/host-loading-check.mjs). It does not start a host, model, hook, or script, and writes nothing.
|
|
190
|
+
|
|
191
|
+
The API `root` must be an absolute project working directory; the CLI resolves the current directory or a relative path to an absolute path first. Only `pathCategory` `codex-project-skills` and version `0.154.0` are calibrated, and that category's relative path must remain `.agents/skills`. Other hosts or versions return exit code 2. A missing skill entry, or a scope that contains only product-filtered targets, returns 1. Callers may pass ordered name/path/enabled rules with `--activation-rules`; without rules, enabled is unknown. Same-name skills at different paths are all retained. Bad optional metadata is ignored as a whole document and is not reported as a skill load failure. `policy.products` that lists only products other than Codex is filtered from the Codex discoverable set; `[codex]` is kept. `allow_implicit_invocation=false` may still be enabled.
|
|
192
|
+
|
|
193
|
+
A static pass does not prove real install, session selection, or business execution. Consume the published package's public interfaces and sources. This check covers only the selected project's `.agents/skills`. The published package's actual sources are this unit's public closure; that package surface is separate from the check coverage.
|
|
194
|
+
|
|
183
195
|
### Candidate Quickstart projection bundle
|
|
184
196
|
|
|
185
197
|
Use the candidate subpath to build a deterministic Quickstart Profile v2 projection from explicit consumer schemas and frozen source identity:
|
|
@@ -271,7 +283,7 @@ The caller owns workload semantics, candidate-to-payload binding, domain asserti
|
|
|
271
283
|
|
|
272
284
|
Engineering mode retains the originally verified reference snapshots and rechecks them before each actual mutation and after completion; repeated reads cannot replace the baseline. A rejection before the first write performs no restoration writes, and foreign bytes on an output never attempted by this mode are preserved. If an actual output write is attempted and fails, the existing error, verification, and best-effort rollback path restores only outputs this mode actually attempted. This does not promise a transaction for the whole initialization, hostile concurrency, or ABA safety; the existing v2 complete-closure rollback contract remains unchanged.
|
|
273
285
|
- Ordinary `check` is read-only and has no write calls or `--fix/--apply/--repair` modes (such flags are rejected at the entry point). By default it may spawn one frozen read-only Git status probe; the CLI `--no-git-spawn` (or API `allowGitSpawn: false`) disables that probe. `check relock` is the explicit controlled write transaction; `check qualification` may spawn a bound executable after preflight. Git precondition state uses only filesystem facts plus at most one read-only `git status --porcelain=2` with a frozen parameter vector (`--no-optional-locks` + `GIT_OPTIONAL_LOCKS=0`, no index refresh).
|
|
274
|
-
- In the
|
|
286
|
+
- In the declared branch, the two pure check functions remain read-only and do not probe Git. An explicitly requested conclusion is the only added persistent effect and is performed by the two existing wrappers through exclusive creation.
|
|
275
287
|
|
|
276
288
|
## Error Codes and Exit Codes
|
|
277
289
|
|
package/README.zh-CN.md
CHANGED
|
@@ -5,31 +5,30 @@
|
|
|
5
5
|
|
|
6
6
|
# skill-family-engineering-kit
|
|
7
7
|
|
|
8
|
-
<!-- release-skill:release-version: 0.
|
|
8
|
+
<!-- release-skill:release-version: 0.25.0 -->
|
|
9
9
|
|
|
10
10
|
开发与 CI 阶段使用的工程工具包。**恰好四个**顶层命令,没有第五个:
|
|
11
11
|
|
|
12
12
|
<!-- release-skill:managed:start id=latest-release -->
|
|
13
|
-
**0.
|
|
13
|
+
**0.25.0** (2026-10-15)
|
|
14
14
|
|
|
15
|
-
Engineering Kit 0.
|
|
15
|
+
Engineering Kit 0.25.0 在既有 `check` 下新增公共函数 `runHostLoadingCheck` 与 CLI 子动作 `skill-family-kit check host-loading`。四个顶层命令仍为 `scaffold`、`adopt-plan`、`projection`、`check`。检查只覆盖 Codex CLI 0.154.0 的项目 `.agents/skills`。未知覆盖返回退出码 2。静态结果不证明安装、会话选择或业务执行。
|
|
16
16
|
|
|
17
17
|
**变更**
|
|
18
18
|
|
|
19
|
-
- `
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
- 包版本与其他三单元同步前移至 0.24.0。Contracts 规格仍为 1.20.0,未新增合同对象、Harness 机制或报告种类;0.23.1 中仅锁步前移的历史说明保持原样。
|
|
19
|
+
- 新增公共函数 `runHostLoadingCheck` 与 CLI `skill-family-kit check host-loading`。API 的 `root` 必须是绝对项目工作目录;CLI 会把当前目录或相对路径先解析成绝对路径。
|
|
20
|
+
- 只校准 `hostId=codex`、`hostVersion=0.154.0`、`pathCategory=codex-project-skills`,且该类别相对路径必须仍是 `.agents/skills`。检查静态读取所选项目根下 `.agents/skills` 的 `SKILL.md`,以及 `SKILL.md` 旁 `agents/` 下 Codex 0.154.0 的可选技能元信息 YAML。不启动宿主、模型、hook 或脚本,不写文件。
|
|
21
|
+
- 其他宿主或版本、未知路径类别返回退出码 2。缺技能入口,或范围内仅有被产品过滤的目标,返回 1。静态通过不证明真实安装、会话选择或业务执行。
|
|
22
|
+
- 包版本与其他三单元锁步到 0.25.0。Contracts 规格仍为 1.20.0。已发布的 0.24.1 能力保持原样,本版本不重做。
|
|
24
23
|
|
|
25
24
|
**升级说明**
|
|
26
25
|
|
|
27
|
-
三个 Foundation npm
|
|
26
|
+
三个 Foundation npm 包须精确锁定 0.25.0,独立插件与三包保持相同发布版本。Contracts 规格仍为 1.20.0,与 npm 包版本分别处理。消费以实际发布版本的公开接口和源码为准。静态检查通过不证明真实安装、会话选择或业务执行。本说明不替代发布后验证。
|
|
28
27
|
<!-- release-skill:managed:end id=latest-release -->
|
|
29
28
|
|
|
30
|
-
##
|
|
29
|
+
## 治理检查(0.22.0)
|
|
31
30
|
|
|
32
|
-
|
|
31
|
+
0.22.0 在既有 `check` 命令下增加显式 `declared` 政策。版本检查只读取
|
|
33
32
|
`skill-family.project-manifest.json` 声明的发行单元及其文本或 JSON 版本引用;入口检查只读取
|
|
34
33
|
声明的物理文件。两个分支都不运行目标脚本、Skill、hook、模型,也不先跑未选择的 legacy 检查。
|
|
35
34
|
|
|
@@ -65,7 +64,7 @@ Kit 是「工程阶段」层,依赖 Harness 与 Contracts。它只做四件事
|
|
|
65
64
|
|
|
66
65
|
## 安装和最小示例
|
|
67
66
|
|
|
68
|
-
0.
|
|
67
|
+
本包版本为 0.25.0;0.24.1 已正式发布。验证尚未正式发布的工作树时,先把三个包分别打入同一个临时目录,再安装这三个精确 tarball:
|
|
69
68
|
|
|
70
69
|
```sh
|
|
71
70
|
pack_dir="$(mktemp -d)"
|
|
@@ -73,25 +72,25 @@ pack_dir="$(mktemp -d)"
|
|
|
73
72
|
(cd packages/skill-family-harness-node && pnpm pack --pack-destination "$pack_dir")
|
|
74
73
|
(cd packages/skill-family-engineering-kit && pnpm pack --pack-destination "$pack_dir")
|
|
75
74
|
mkdir "$pack_dir/consumer" && (cd "$pack_dir/consumer" && npm init -y)
|
|
76
|
-
(cd "$pack_dir/consumer" && npm install "$pack_dir/skill-family-contracts-0.
|
|
75
|
+
(cd "$pack_dir/consumer" && npm install "$pack_dir/skill-family-contracts-0.25.0.tgz" "$pack_dir/skill-family-harness-node-0.25.0.tgz" "$pack_dir/skill-family-engineering-kit-0.25.0.tgz")
|
|
77
76
|
```
|
|
78
77
|
|
|
79
|
-
0.
|
|
78
|
+
以下 registry 安装方式以精确版本 0.25.0 已正式可用为前提:
|
|
80
79
|
|
|
81
80
|
```sh
|
|
82
|
-
npm install --save-dev skill-family-engineering-kit@0.
|
|
83
|
-
npm exec --package=skill-family-engineering-kit@0.
|
|
84
|
-
npm exec --package=skill-family-engineering-kit@0.
|
|
85
|
-
npm exec --package=skill-family-engineering-kit@0.
|
|
86
|
-
npm exec --package=skill-family-engineering-kit@0.
|
|
87
|
-
npm exec --package=skill-family-engineering-kit@0.
|
|
81
|
+
npm install --save-dev skill-family-engineering-kit@0.25.0
|
|
82
|
+
npm exec --package=skill-family-engineering-kit@0.25.0 -- skill-family-kit --help
|
|
83
|
+
npm exec --package=skill-family-engineering-kit@0.25.0 -- skill-family-kit scaffold --root <empty-dir> --project-id my-project
|
|
84
|
+
npm exec --package=skill-family-engineering-kit@0.25.0 -- skill-family-kit adopt-plan --root <repo> --list-capabilities --all --scope all --locale zh-CN --uses ./uses.json
|
|
85
|
+
npm exec --package=skill-family-engineering-kit@0.25.0 -- skill-family-kit projection --root <repo>
|
|
86
|
+
npm exec --package=skill-family-engineering-kit@0.25.0 -- skill-family-kit check --root <repo>
|
|
88
87
|
```
|
|
89
88
|
|
|
90
|
-
以上四条命令分别覆盖生成骨架、只读盘点、受管投影与诊断;零安装形式可用 `npm exec --package=skill-family-engineering-kit@0.
|
|
89
|
+
以上四条命令分别覆盖生成骨架、只读盘点、受管投影与诊断;零安装形式可用 `npm exec --package=skill-family-engineering-kit@0.25.0 -- skill-family-kit --help`。
|
|
91
90
|
|
|
92
|
-
###
|
|
91
|
+
### 工程声明调用(自 0.24.0 提供)
|
|
93
92
|
|
|
94
|
-
可选 `engineering`
|
|
93
|
+
可选 `engineering` 参数自 `0.24.0` 提供,`0.23.0` 不支持。使用已选 SDK 前,核对其实际公共接口与三个 Foundation 包的精确锁步来源;候选验证与正式发布后采用分别报告。省略参数保持既有字节和路径;`null`、`{}`、未知字段和非法引用拒绝。无需另建声明输入文件。
|
|
95
94
|
|
|
96
95
|
`engineering` 由调用方依据真实业务入口和发行单元构造。`entries` 每项包含 `name`、`form`、`physicalRef`;`form` 仅为 `skill_md` 或 `file`,前者必须指向 `SKILL.md`。`releaseUnits` 每项包含 `id`、`versionSource`,可选 `versionMirrors`。`versionSource` 为文本或 JSON 引用对象,`versionMirrors` 为引用数组。文本版本引用使用 `path` 和 `format: "text"`;JSON 引用使用 `path`、`format: "json"` 与非空 `jsonPointer`。版本取自真实业务版本源,不取私有骨架示例包、SDK 或 Profile 版本,不因 `package.json` 存在推导 npm 分发。
|
|
97
96
|
|
|
@@ -124,11 +123,11 @@ skill-family-kit projection --root <target> --engineering <JSON>
|
|
|
124
123
|
|
|
125
124
|
事实未齐时具体报告缺项。可以只声明 `entries` 或只声明 `releaseUnits`,但未声明的另一检查分支仍为 `incomplete`。待真实业务和版本文件存在后,使用官方受管更新及既有 core、declared 版本、declared 入口检查。生成、只读计划、静态检查、正式宿主发现、真实业务、独立语义审阅与整体资格分别报告;省略参数保留旧行为,不表示声明已完成。
|
|
126
125
|
|
|
127
|
-
|
|
126
|
+
自 0.24.0 起,公开 `runCoreCheck` 的版本检查按目标声明选择适用路径:目标真实声明 `engineering.releaseUnits` 时,版本类复用已有声明式版本读取逻辑,依据 `versionSource` 与 `versionMirrors` 检查文本或 JSON 格式的版本信息;私有工程的 `package.json` 不自动成为该业务单元的版本源或镜像,仅当被显式声明时方可参与版本认定。对于真正未声明版本、或仅包含合法 `entries` 的目标,仍沿用原有 legacy 版本检查路径。非法或重复的声明不回退为通过;声明的版本源或镜像缺失、不可读时如实失败。
|
|
128
127
|
|
|
129
128
|
核心调度机制保持不变,共用原九类循环与报告流程,保留 Contracts 规格版本一致性检查及其他八类校验。声明的来源、镜像及各祖先路径均需先通过原树枚举与 `lstat` 安全预检,包括原不展开的工具目录;仅探查声明所涉路径,不引入新的目录遍历器。符号链接、FIFO 及其他不安全读集仍按原规则拒绝访问,禁止穿过根内符号链接目录;`completed`、`mechanism` 与 0/1/2 退出码如实传播。
|
|
130
129
|
|
|
131
|
-
|
|
130
|
+
该调整仅涉及公开 core 对已声明版本目标的检查:公共 `runChecks` 缺省行为仍等同于显式 `policy: "legacy"`,涵盖原版本发现及 `full`/`only` 等价逻辑;显式 `policy: "declared"` 仍仅允许 `only: "version"`,维持原报告形式、不执行目标代码、不调用 Git 的边界。未新增任何公共 policy 值、API、CLI 参数、Schema 定义或包根导出,亦不在目标生成 shim 中复制检查逻辑。局部验证不构成正式发布、业务资格或整体初始化完成的证明。
|
|
132
131
|
|
|
133
132
|
### 三条采用旅程
|
|
134
133
|
|
|
@@ -179,6 +178,19 @@ npm exec -- skill-family-kit check report --root <repo> --report <report.md> --m
|
|
|
179
178
|
|
|
180
179
|
调用方必须先构造合法 report model;Kit 不从开放的业务 `outputs` 推导事实。所有事实文本按字面转义,失败结果的完整 errors 必须出现在 model 和中性报告中。
|
|
181
180
|
|
|
181
|
+
### 宿主加载检查子动作
|
|
182
|
+
|
|
183
|
+
```sh
|
|
184
|
+
npm exec -- skill-family-kit check host-loading --root <project> --host codex --host-version 0.154.0 --path-category codex-project-skills
|
|
185
|
+
npm exec -- skill-family-kit check host-loading --root <project> --host codex --host-version 0.154.0 --path-category codex-project-skills --activation-rules <relpath.json> --hosts-root <dir>
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
对应公共函数是 `runHostLoadingCheck`。它只静态读取所选项目根下 `.agents/skills` 的 `SKILL.md`,以及 `SKILL.md` 旁 `agents/` 下 Codex 0.154.0 的标准可选技能元信息 YAML,按 Codex CLI 0.154.0 已校准规则报告格式、忽略、过滤、隐式调用、禁用和未覆盖项。准确文件名与解析范围见 [`src/host-loading-check.mjs`](src/host-loading-check.mjs)。不启动宿主、模型、hook 或脚本,不写文件。
|
|
189
|
+
|
|
190
|
+
API 的 `root` 必须是绝对项目工作目录;CLI 会把当前目录或相对路径先解析成绝对路径。当前只校准 `pathCategory` 为 `codex-project-skills`、版本 `0.154.0`,且该类别相对路径必须仍是 `.agents/skills`。其他宿主或版本返回退出码 2。缺技能入口,或范围内仅有被产品过滤的目标,返回 1。调用方可用 `--activation-rules` 提供有序 name/path/enabled 规则;缺省时 enabled 未知。同名不同路径都会保留。坏的可选元信息整份忽略,不会被报成技能加载失败。`policy.products` 仅声明 Codex 以外产品时从 Codex 可发现集合过滤,`[codex]` 保留;`allow_implicit_invocation=false` 仍可 enabled。
|
|
191
|
+
|
|
192
|
+
静态通过不表示真实安装、会话选择或业务执行已经成功。消费以正式发布包的公开接口和源码为准。本次检查覆盖仅所选项目的 `.agents/skills`。发布包的实际来源是本单元公开闭包,与本次检查覆盖范围分别说明。
|
|
193
|
+
|
|
182
194
|
### Candidate Quickstart 投影包
|
|
183
195
|
|
|
184
196
|
需要从显式消费者 Schema 与冻结来源身份生成确定性的 Quickstart Profile v2 投影时,使用 candidate 子路径:
|
|
@@ -272,7 +284,7 @@ const stdout = result.streams
|
|
|
272
284
|
|
|
273
285
|
工程模式保留原始已核引用快照,在每次实际修改前和完成后重验;重复读取不能替换基线。首写前若发生拒绝,则不执行恢复写入,未尝试输出的外来字节保留。实际尝试写入失败时沿用既有错误、验证与尽力回滚,仅恢复本模式实际尝试的输出路径。不承诺整次初始化事务、恶意并发或 ABA 安全;原 v2 完整闭包回滚合同不变。
|
|
274
286
|
- 普通 `check` 只读且无写调用,也没有 `--fix/--apply/--repair` 模式(此类标志在入口处被拒绝)。默认可能启动一条冻结参数的只读 Git status 探测;CLI 的 `--no-git-spawn`(或 API 的 `allowGitSpawn: false`)可关闭该探测。`check relock` 执行显式受控写事务;`check qualification` 预检通过后可能启动绑定的 executable。Git 前置状态仅用文件系统事实加至多一次冻结参数矢量的只读 `git status --porcelain=2`(`--no-optional-locks` + `GIT_OPTIONAL_LOCKS=0`,不刷新索引)。
|
|
275
|
-
-
|
|
287
|
+
- declared 分支中的两个纯检查函数保持只读,也不探测 Git。只有调用方显式要求结论时,两个既有包装入口才通过独占创建产生本轮唯一新增持久副作用。
|
|
276
288
|
|
|
277
289
|
## 错误码与退出码
|
|
278
290
|
|
|
@@ -1459,6 +1459,54 @@
|
|
|
1459
1459
|
"Auto-remediation: the caller"
|
|
1460
1460
|
]
|
|
1461
1461
|
},
|
|
1462
|
+
{
|
|
1463
|
+
"id": "foundation.kit.host-loading-check",
|
|
1464
|
+
"intent": "Statically check whether Skill files under a project .agents/skills tree would load under calibrated Codex CLI 0.154.0 rules",
|
|
1465
|
+
"useWhen": [
|
|
1466
|
+
"Need to inspect project .agents/skills load format, ignored optional metadata, product filtering, implicit invocation, disablement, and uncovered cases before handing Skills to Codex",
|
|
1467
|
+
"Need to reuse Foundation's central calibration instead of launching a real host per family"
|
|
1468
|
+
],
|
|
1469
|
+
"doNotUseWhen": [
|
|
1470
|
+
"Need to inspect user, system, admin, or ancestor plugin skill roots",
|
|
1471
|
+
"Need to prove real install, session selection, or business execution",
|
|
1472
|
+
"Need to run a target Skill, hook, script, model, or network call"
|
|
1473
|
+
],
|
|
1474
|
+
"prerequisites": [
|
|
1475
|
+
"Caller supplies an absolute project working directory",
|
|
1476
|
+
"hostId resolves to codex, hostVersion is 0.154.0, and pathCategory is codex-project-skills"
|
|
1477
|
+
],
|
|
1478
|
+
"inputs": [
|
|
1479
|
+
"Absolute project working directory root",
|
|
1480
|
+
"hostId, hostVersion, and pathCategory",
|
|
1481
|
+
"Optional ordered activationRules (name XOR path plus enabled)"
|
|
1482
|
+
],
|
|
1483
|
+
"outputs": [
|
|
1484
|
+
"host-loading-check report (kind skill-family.host-loading-check-report)",
|
|
1485
|
+
"Exit 0 means the requested scope completed with no blocking findings; 1 means proven blocking or missing entries; 2 means input, mechanism, or coverage is incomplete"
|
|
1486
|
+
],
|
|
1487
|
+
"sideEffects": [
|
|
1488
|
+
"None (read-only: no file or temp writes, no process spawn, no network)"
|
|
1489
|
+
],
|
|
1490
|
+
"failureSemantics": [
|
|
1491
|
+
"Missing discovery root or no SKILL.md returns 1",
|
|
1492
|
+
"Unknown version, unknown pathCategory, illegal selectors, rewritten .agents/skills mapping, directory-symlink mechanism limits, and uncovered interface asset paths return 2",
|
|
1493
|
+
"Bad optional agents/openai.yaml is recorded as ignored for the whole document and does not fail skill loading",
|
|
1494
|
+
"policy.products [chatgpt] is filtered from the Codex discoverable set; [codex] is kept; allow_implicit_invocation=false may still be enabled"
|
|
1495
|
+
],
|
|
1496
|
+
"invariants": [
|
|
1497
|
+
"Adds no fifth top-level command; it runs as the check host-loading sub-action",
|
|
1498
|
+
"Same-name different paths are all retained",
|
|
1499
|
+
"enabled is unknown when the caller omits activationRules"
|
|
1500
|
+
],
|
|
1501
|
+
"ownedByCaller": [
|
|
1502
|
+
"Remediation of blocking findings",
|
|
1503
|
+
"Consumer verification on a published package"
|
|
1504
|
+
],
|
|
1505
|
+
"routeElsewhere": [
|
|
1506
|
+
"Real-host qualification: check qualification",
|
|
1507
|
+
"Foundation entry contract: check entries"
|
|
1508
|
+
]
|
|
1509
|
+
},
|
|
1462
1510
|
{
|
|
1463
1511
|
"id": "foundation.kit.relock",
|
|
1464
1512
|
"intent": "Run the controlled relock transaction: register new handwritten files by default, or persistent tool-lock paths with explicit trackedToolLocks selection; update the registry and managed-file lock in the existing transaction without hashing tool-lock contents.",
|
|
@@ -968,6 +968,34 @@
|
|
|
968
968
|
"packages/skill-family-engineering-kit/test/entry-check.test.mjs"
|
|
969
969
|
]
|
|
970
970
|
},
|
|
971
|
+
{
|
|
972
|
+
"id": "foundation.kit.host-loading-check",
|
|
973
|
+
"package": "skill-family-engineering-kit",
|
|
974
|
+
"layer": "engineering-kit",
|
|
975
|
+
"since": "0.25.0",
|
|
976
|
+
"stability": "candidate",
|
|
977
|
+
"migration": "none",
|
|
978
|
+
"promotionPolicy": "consumer-transparent",
|
|
979
|
+
"adoptionScopes": ["engineering-kit"],
|
|
980
|
+
"entrypoints": [
|
|
981
|
+
"runHostLoadingCheck (packages/skill-family-engineering-kit/src/host-loading-check.mjs)",
|
|
982
|
+
"checkHostLoadingAction (packages/skill-family-engineering-kit/src/host-loading-check.mjs)",
|
|
983
|
+
"HOST_LOADING_CHECK_REPORT_KIND (packages/skill-family-engineering-kit/src/host-loading-check.mjs)"
|
|
984
|
+
],
|
|
985
|
+
"sourceRefs": [
|
|
986
|
+
"packages/skill-family-engineering-kit/src/host-loading-check.mjs",
|
|
987
|
+
"packages/skill-family-engineering-kit/src/cli.mjs",
|
|
988
|
+
"packages/skill-family-engineering-kit/src/index.mjs"
|
|
989
|
+
],
|
|
990
|
+
"positiveTestRefs": [
|
|
991
|
+
"packages/skill-family-engineering-kit/test/host-loading-check.test.mjs",
|
|
992
|
+
"packages/skill-family-engineering-kit/test/cli.test.mjs"
|
|
993
|
+
],
|
|
994
|
+
"negativeTestRefs": [
|
|
995
|
+
"packages/skill-family-engineering-kit/test/host-loading-check.test.mjs",
|
|
996
|
+
"packages/skill-family-engineering-kit/test/cli.test.mjs"
|
|
997
|
+
]
|
|
998
|
+
},
|
|
971
999
|
{
|
|
972
1000
|
"id": "foundation.kit.relock",
|
|
973
1001
|
"package": "skill-family-engineering-kit",
|
|
@@ -1458,6 +1458,54 @@
|
|
|
1458
1458
|
"自动整改:调用方"
|
|
1459
1459
|
]
|
|
1460
1460
|
},
|
|
1461
|
+
{
|
|
1462
|
+
"id": "foundation.kit.host-loading-check",
|
|
1463
|
+
"intent": "按 Codex CLI 0.154.0 已校准规则,只读检查项目根 .agents/skills 内 Skill 是否会被宿主当作可加载条目",
|
|
1464
|
+
"useWhen": [
|
|
1465
|
+
"需要在把 Skill 交给 Codex 之前核对项目 .agents/skills 的加载格式、忽略、过滤、隐式调用、禁用和未覆盖项",
|
|
1466
|
+
"需要复用 Foundation 集中校准,而不是每个技能族各自启动真实宿主"
|
|
1467
|
+
],
|
|
1468
|
+
"doNotUseWhen": [
|
|
1469
|
+
"需要检查用户全局、系统、管理员或祖先插件技能根",
|
|
1470
|
+
"需要证明真实安装、会话选择或业务执行已经成功",
|
|
1471
|
+
"需要运行目标 Skill、hook、脚本、模型或联网"
|
|
1472
|
+
],
|
|
1473
|
+
"prerequisites": [
|
|
1474
|
+
"调用方给出绝对项目工作目录",
|
|
1475
|
+
"hostId 可解析为 codex,hostVersion 为 0.154.0,pathCategory 为 codex-project-skills"
|
|
1476
|
+
],
|
|
1477
|
+
"inputs": [
|
|
1478
|
+
"绝对项目工作目录 root",
|
|
1479
|
+
"hostId、hostVersion、pathCategory",
|
|
1480
|
+
"可选有序 activationRules(name 或 path 与 enabled)"
|
|
1481
|
+
],
|
|
1482
|
+
"outputs": [
|
|
1483
|
+
"host-loading-check 报告(kind skill-family.host-loading-check-report)",
|
|
1484
|
+
"退出码 0 表示请求范围完整且无阻断发现;1 表示已证实阻断或缺少入口;2 表示输入、机制或覆盖未完成"
|
|
1485
|
+
],
|
|
1486
|
+
"sideEffects": [
|
|
1487
|
+
"无(只读:不写文件或临时文件,不启动进程,不联网)"
|
|
1488
|
+
],
|
|
1489
|
+
"failureSemantics": [
|
|
1490
|
+
"缺发现根或没有 SKILL.md 返回 1",
|
|
1491
|
+
"未知版本、未知 pathCategory、非法选择器、.agents/skills 映射被改写、目录符号链接机制边界、界面资产路径未覆盖返回 2",
|
|
1492
|
+
"坏的可选 agents/openai.yaml 记为 ignored,整份元信息忽略,不作为技能加载失败",
|
|
1493
|
+
"policy.products [chatgpt] 从 Codex 可发现集合过滤;[codex] 保留;allow_implicit_invocation=false 仍可 enabled"
|
|
1494
|
+
],
|
|
1495
|
+
"invariants": [
|
|
1496
|
+
"不新增第五个顶层命令,落在 check host-loading 子动作",
|
|
1497
|
+
"同名不同路径全部保留",
|
|
1498
|
+
"缺省启用规则时 enabled 未知"
|
|
1499
|
+
],
|
|
1500
|
+
"ownedByCaller": [
|
|
1501
|
+
"对阻断发现的整改",
|
|
1502
|
+
"正式发布包上的消费者验收"
|
|
1503
|
+
],
|
|
1504
|
+
"routeElsewhere": [
|
|
1505
|
+
"真实宿主资格:check qualification",
|
|
1506
|
+
"Foundation 入口契约:check entries"
|
|
1507
|
+
]
|
|
1508
|
+
},
|
|
1461
1509
|
{
|
|
1462
1510
|
"id": "foundation.kit.relock",
|
|
1463
1511
|
"intent": "运行受控 relock 事务:默认登记新增手写文件;显式选择 trackedToolLocks 时登记持久工具锁路径,并在原事务中同步 registry 与受管文件锁。工具锁内容不纳入受管摘要。",
|
|
@@ -1459,6 +1459,54 @@
|
|
|
1459
1459
|
"Auto-remediation: the caller"
|
|
1460
1460
|
]
|
|
1461
1461
|
},
|
|
1462
|
+
{
|
|
1463
|
+
"id": "foundation.kit.host-loading-check",
|
|
1464
|
+
"intent": "Statically check whether Skill files under a project .agents/skills tree would load under calibrated Codex CLI 0.154.0 rules",
|
|
1465
|
+
"useWhen": [
|
|
1466
|
+
"Need to inspect project .agents/skills load format, ignored optional metadata, product filtering, implicit invocation, disablement, and uncovered cases before handing Skills to Codex",
|
|
1467
|
+
"Need to reuse Foundation's central calibration instead of launching a real host per family"
|
|
1468
|
+
],
|
|
1469
|
+
"doNotUseWhen": [
|
|
1470
|
+
"Need to inspect user, system, admin, or ancestor plugin skill roots",
|
|
1471
|
+
"Need to prove real install, session selection, or business execution",
|
|
1472
|
+
"Need to run a target Skill, hook, script, model, or network call"
|
|
1473
|
+
],
|
|
1474
|
+
"prerequisites": [
|
|
1475
|
+
"Caller supplies an absolute project working directory",
|
|
1476
|
+
"hostId resolves to codex, hostVersion is 0.154.0, and pathCategory is codex-project-skills"
|
|
1477
|
+
],
|
|
1478
|
+
"inputs": [
|
|
1479
|
+
"Absolute project working directory root",
|
|
1480
|
+
"hostId, hostVersion, and pathCategory",
|
|
1481
|
+
"Optional ordered activationRules (name XOR path plus enabled)"
|
|
1482
|
+
],
|
|
1483
|
+
"outputs": [
|
|
1484
|
+
"host-loading-check report (kind skill-family.host-loading-check-report)",
|
|
1485
|
+
"Exit 0 means the requested scope completed with no blocking findings; 1 means proven blocking or missing entries; 2 means input, mechanism, or coverage is incomplete"
|
|
1486
|
+
],
|
|
1487
|
+
"sideEffects": [
|
|
1488
|
+
"None (read-only: no file or temp writes, no process spawn, no network)"
|
|
1489
|
+
],
|
|
1490
|
+
"failureSemantics": [
|
|
1491
|
+
"Missing discovery root or no SKILL.md returns 1",
|
|
1492
|
+
"Unknown version, unknown pathCategory, illegal selectors, rewritten .agents/skills mapping, directory-symlink mechanism limits, and uncovered interface asset paths return 2",
|
|
1493
|
+
"Bad optional agents/openai.yaml is recorded as ignored for the whole document and does not fail skill loading",
|
|
1494
|
+
"policy.products [chatgpt] is filtered from the Codex discoverable set; [codex] is kept; allow_implicit_invocation=false may still be enabled"
|
|
1495
|
+
],
|
|
1496
|
+
"invariants": [
|
|
1497
|
+
"Adds no fifth top-level command; it runs as the check host-loading sub-action",
|
|
1498
|
+
"Same-name different paths are all retained",
|
|
1499
|
+
"enabled is unknown when the caller omits activationRules"
|
|
1500
|
+
],
|
|
1501
|
+
"ownedByCaller": [
|
|
1502
|
+
"Remediation of blocking findings",
|
|
1503
|
+
"Consumer verification on a published package"
|
|
1504
|
+
],
|
|
1505
|
+
"routeElsewhere": [
|
|
1506
|
+
"Real-host qualification: check qualification",
|
|
1507
|
+
"Foundation entry contract: check entries"
|
|
1508
|
+
]
|
|
1509
|
+
},
|
|
1462
1510
|
{
|
|
1463
1511
|
"id": "foundation.kit.relock",
|
|
1464
1512
|
"intent": "Run the controlled relock transaction: register new handwritten files by default, or persistent tool-lock paths with explicit trackedToolLocks selection; update the registry and managed-file lock in the existing transaction without hashing tool-lock contents.",
|
|
@@ -968,6 +968,34 @@
|
|
|
968
968
|
"packages/skill-family-engineering-kit/test/entry-check.test.mjs"
|
|
969
969
|
]
|
|
970
970
|
},
|
|
971
|
+
{
|
|
972
|
+
"id": "foundation.kit.host-loading-check",
|
|
973
|
+
"package": "skill-family-engineering-kit",
|
|
974
|
+
"layer": "engineering-kit",
|
|
975
|
+
"since": "0.25.0",
|
|
976
|
+
"stability": "candidate",
|
|
977
|
+
"migration": "none",
|
|
978
|
+
"promotionPolicy": "consumer-transparent",
|
|
979
|
+
"adoptionScopes": ["engineering-kit"],
|
|
980
|
+
"entrypoints": [
|
|
981
|
+
"runHostLoadingCheck (packages/skill-family-engineering-kit/src/host-loading-check.mjs)",
|
|
982
|
+
"checkHostLoadingAction (packages/skill-family-engineering-kit/src/host-loading-check.mjs)",
|
|
983
|
+
"HOST_LOADING_CHECK_REPORT_KIND (packages/skill-family-engineering-kit/src/host-loading-check.mjs)"
|
|
984
|
+
],
|
|
985
|
+
"sourceRefs": [
|
|
986
|
+
"packages/skill-family-engineering-kit/src/host-loading-check.mjs",
|
|
987
|
+
"packages/skill-family-engineering-kit/src/cli.mjs",
|
|
988
|
+
"packages/skill-family-engineering-kit/src/index.mjs"
|
|
989
|
+
],
|
|
990
|
+
"positiveTestRefs": [
|
|
991
|
+
"packages/skill-family-engineering-kit/test/host-loading-check.test.mjs",
|
|
992
|
+
"packages/skill-family-engineering-kit/test/cli.test.mjs"
|
|
993
|
+
],
|
|
994
|
+
"negativeTestRefs": [
|
|
995
|
+
"packages/skill-family-engineering-kit/test/host-loading-check.test.mjs",
|
|
996
|
+
"packages/skill-family-engineering-kit/test/cli.test.mjs"
|
|
997
|
+
]
|
|
998
|
+
},
|
|
971
999
|
{
|
|
972
1000
|
"id": "foundation.kit.relock",
|
|
973
1001
|
"package": "skill-family-engineering-kit",
|