release-skill 0.1.6 → 0.1.8
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/.claude-plugin/marketplace.json +3 -3
- package/.claude-plugin/plugin.json +2 -2
- package/.codex-plugin/plugin.json +4 -4
- package/.kimi-plugin/plugin.json +27 -0
- package/CHANGELOG.md +53 -0
- package/INSTALL.md +73 -2
- package/INSTALL.zh-CN.md +94 -99
- package/LICENSE +1 -0
- package/NOTICE +10 -0
- package/README.md +53 -81
- package/README.zh-CN.md +86 -352
- package/adapters/claude/.claude-plugin/marketplace.json +3 -3
- package/adapters/claude/.claude-plugin/plugin.json +2 -2
- package/adapters/claude/bin/release-skill.bundle.mjs +1061 -182
- package/adapters/claude/schemas/.render-manifest.json +4 -4
- package/adapters/claude/schemas/release-plan.schema.json +20 -2
- package/adapters/claude/schemas/release-project.schema.json +22 -4
- package/adapters/claude/schemas/release-run.schema.json +1 -0
- package/adapters/codex/.codex-plugin/plugin.json +4 -4
- package/adapters/codex/bin/release-skill.bundle.mjs +1061 -182
- package/adapters/codex/schemas/.render-manifest.json +4 -4
- package/adapters/codex/schemas/release-plan.schema.json +20 -2
- package/adapters/codex/schemas/release-project.schema.json +22 -4
- package/adapters/codex/schemas/release-run.schema.json +1 -0
- package/adapters/kimi/.kimi-plugin/plugin.json +27 -0
- package/adapters/kimi/bin/release-skill.bundle.mjs +84415 -0
- package/adapters/kimi/bin/release-skill.mjs +54 -0
- package/adapters/kimi/native/safe-write/binding.gyp +41 -0
- package/adapters/kimi/native/safe-write/prebuilds/darwin-arm64/safe_write.node +0 -0
- package/adapters/kimi/native/safe-write/prebuilds.json +24 -0
- package/adapters/kimi/native/safe-write/src/safe_write.cc +2032 -0
- package/adapters/kimi/schemas/.render-manifest.json +37 -0
- package/adapters/kimi/schemas/approval-record.schema.json +115 -0
- package/adapters/kimi/schemas/artifact-lock.schema.json +111 -0
- package/adapters/kimi/schemas/artifact-plan.schema.json +52 -0
- package/adapters/kimi/schemas/artifact-policy.schema.json +76 -0
- package/adapters/kimi/schemas/evidence-event.schema.json +89 -0
- package/adapters/kimi/schemas/release-plan.schema.json +878 -0
- package/adapters/kimi/schemas/release-project.schema.json +895 -0
- package/adapters/kimi/schemas/release-run.schema.json +343 -0
- package/adapters/kimi/skills/release-assess/SKILL.md +58 -0
- package/adapters/kimi/skills/release-help/SKILL.md +84 -0
- package/adapters/kimi/skills/release-prepare/SKILL.md +99 -0
- package/adapters/kimi/skills/release-publish/SKILL.md +64 -0
- package/adapters/kimi/skills/release-reconcile/SKILL.md +80 -0
- package/adapters/kimi/skills/release-setup/SKILL.md +102 -0
- package/adapters/kimi/skills/release-verify/SKILL.md +77 -0
- package/bin/release-skill-cli.mjs +16 -4
- package/bin/release-skill.bundle.mjs +1061 -182
- package/package.json +15 -5
- package/schemas/.render-manifest.json +4 -4
- package/schemas/release-plan.schema.json +20 -2
- package/schemas/release-project.schema.json +22 -4
- package/schemas/release-run.schema.json +1 -0
- package/src/adapters/contract.mjs +1 -0
- package/src/adapters/plugin-marketplace.mjs +990 -30
- package/src/commands/assess.mjs +50 -1
- package/src/commands/prepare.mjs +65 -0
- package/src/commands/publish.mjs +3 -0
- package/src/commands/reconcile.mjs +3 -0
- package/src/commands/setup.mjs +10 -5
- package/src/commands/verify.mjs +16 -6
- package/src/core/plan.mjs +118 -0
- package/src/core/verification-gates.mjs +1 -1
- package/src/producers/build-adapters.mjs +38 -8
package/README.md
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
[简体中文](README.zh-CN.md) · Installation: [English](INSTALL.md) / [简体中文](INSTALL.zh-CN.md)
|
|
4
4
|
|
|
5
|
-
<!-- release-skill:release-version: 0.1.
|
|
6
|
-
Release preparation for Claude Code and
|
|
5
|
+
<!-- release-skill:release-version: 0.1.8 -->
|
|
6
|
+
Release preparation for Claude Code, Codex, and Kimi Code, with human-edited files kept intact.
|
|
7
7
|
|
|
8
8
|
release-skill helps a maintainer answer three questions: what will be released,
|
|
9
9
|
which checks still fail, and which exact bytes will reach users. It freezes the
|
|
@@ -11,80 +11,29 @@ reviewed artifacts first and publishes those same artifacts later; it does not
|
|
|
11
11
|
regenerate a README or re-pack the live workspace at the last step.
|
|
12
12
|
|
|
13
13
|
<!-- release-skill:managed:start id=latest-release -->
|
|
14
|
-
**0.1.
|
|
15
|
-
|
|
16
|
-
v0.1.
|
|
17
|
-
|
|
18
|
-
**
|
|
19
|
-
|
|
20
|
-
- **
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
`
|
|
32
|
-
no-op. A prepare-time documentation freshness gate makes version drift between
|
|
33
|
-
the package version and the public docs fail closed before a release plan is
|
|
34
|
-
frozen.
|
|
35
|
-
- **Bounded terminal transaction receipts with recovery safety**: terminal
|
|
36
|
-
(committed / rolled-back) transactions now persist a summary-only receipt
|
|
37
|
-
instead of full payload, capped at 256 KB per receipt
|
|
38
|
-
(`TERMINAL_RECEIPT_SIZE_CAP`), under a retention cap of 50 terminal records
|
|
39
|
-
(`DEFAULT_TRANSACTION_RETENTION_MAX`). Retention pruning only ever removes
|
|
40
|
-
terminal records and never prunes `RECOVERY_CONFLICT` records or any
|
|
41
|
-
non-terminal (recovery-relevant) record, so recovery evidence is preserved even
|
|
42
|
-
when the count cap is reached; a retention failure never aborts an in-flight
|
|
43
|
-
commit.
|
|
44
|
-
- **Strict `docs refresh` parameter validation (fail closed)**: the `docs`
|
|
45
|
-
command validates every parameter before invoking the refresh service, so
|
|
46
|
-
precise stable parameter errors surface even without project configuration or a
|
|
47
|
-
safe-fs backend. The `--flag=value` equals form routes through exactly the same
|
|
48
|
-
validation as the space-separated form; duplicated flags fail closed with
|
|
49
|
-
`DUPLICATE_PARAMETER` before any service call, config read, lock, or
|
|
50
|
-
transaction; and bare positional arguments and single-dash flags (such as `-w`)
|
|
51
|
-
are rejected as unrecognized. Write-authorization flags supplied without
|
|
52
|
-
`--write`, or `--write` without its full authorizations, fail closed with
|
|
53
|
-
precise reasons rather than silently proceeding.
|
|
54
|
-
|
|
55
|
-
**Fixed**
|
|
56
|
-
|
|
57
|
-
- **Bundle entry lifecycle settles with real exit codes**: the self-contained
|
|
58
|
-
bundle now owns the command lifecycle. Its entry awaits command completion and
|
|
59
|
-
exits with the real business exit code for success, business errors, handled
|
|
60
|
-
async rejections, and unknown commands, so the launcher no longer leaves an
|
|
61
|
-
unsettled top-level await (Node exit code 13). When the bundle is missing or
|
|
62
|
-
cannot be evaluated, the launcher fails closed with static text only and never
|
|
63
|
-
interpolates machine-specific paths, usernames, or host layout, because
|
|
64
|
-
module-load failure messages carry absolute paths.
|
|
65
|
-
- **Fail-closed path canonicalization with stable diagnostics**: artifact path
|
|
66
|
-
canonicalization requires POSIX separators and rejects absolute paths in POSIX
|
|
67
|
-
(`/`), Windows drive-letter, and UNC spellings, along with traversal, Windows
|
|
68
|
-
reserved device names, and colons, failing closed with `PATH_UNSAFE` rather
|
|
69
|
-
than normalizing an unsafe spelling into a different public path. Error-output
|
|
70
|
-
redaction now distinguishes real filesystem paths from strict RFC 6901 JSON
|
|
71
|
-
Pointer diagnostic coordinates (such as `/units/0/version`): absolute
|
|
72
|
-
POSIX/Windows/UNC paths collapse to a stable `<redacted-path>` placeholder
|
|
73
|
-
while diagnostic pointers are preserved verbatim, keeping failures diagnosable
|
|
74
|
-
without leaking host paths.
|
|
75
|
-
- **Self public-boundary redaction**: the centralized redaction authority
|
|
76
|
-
(`core/redact.mjs`) now closes the self public boundary so runtime error
|
|
77
|
-
outputs and detail structures never carry the release-skill workspace's own
|
|
78
|
-
absolute path, nor the macOS `Users`, Linux home, macOS `private`/`var` alias,
|
|
79
|
-
temp, or CI checkout realms. Redaction runs fail-closed through the
|
|
80
|
-
`ReleaseError` choke point: any two-or-more-segment `/`-led token that is not a
|
|
81
|
-
strict diagnostic JSON Pointer is replaced with `<redacted-path>`, so
|
|
82
|
-
self-releasing never leaks private filesystem layout into public outputs.
|
|
14
|
+
**0.1.8** (2026-07-23)
|
|
15
|
+
|
|
16
|
+
v0.1.8 adds Kimi Code as a first-class plugin host without rewriting the already-published v0.1.7 artifacts. Kimi delivery uses a generated self-contained adapter and a fail-closed, plan-bound manual installation attestation because Kimi Code has no scriptable non-interactive plugin installation interface. The npm package name (`release-skill`), publishing identity (`publisher: mzdbxqh`), public repository (`ifoohoo/release-skill`), and corporate maintainer remain unchanged.
|
|
17
|
+
|
|
18
|
+
**Changed**
|
|
19
|
+
|
|
20
|
+
- **Kimi Code plugin delivery and verification**: v0.1.8 adds the root
|
|
21
|
+
`.kimi-plugin/plugin.json`, a generated self-contained `adapters/kimi/` bundle,
|
|
22
|
+
and public installation guidance. Because Kimi Code exposes no scriptable
|
|
23
|
+
non-interactive plugin installation interface, production publish emits a
|
|
24
|
+
version-pinned manual installation requirement and enters `PARTIAL`; an
|
|
25
|
+
isolated `KIMI_CODE_HOME` installation and a trusted attestation bound
|
|
26
|
+
independently to the frozen plan digest and payload digest are required before
|
|
27
|
+
`reconcile` can reach `PUBLISHED` and `verify` can reach `VERIFIED`.
|
|
28
|
+
- **Immutable v0.1.7 history preserved**: the existing v0.1.7 Git tag,
|
|
29
|
+
GitHub Release, npm version, and public commit remain untouched. The v0.1.8
|
|
30
|
+
production plan binds the published v0.1.7 commit
|
|
31
|
+
`fe5897456d4166a2ec60e99405836b122562b80d` as its previous public baseline.
|
|
83
32
|
<!-- release-skill:managed:end id=latest-release -->
|
|
84
33
|
|
|
85
34
|
<!-- release-skill:capability:external-write-boundary -->
|
|
86
|
-
> **Current boundary:** v0.1.
|
|
87
|
-
>
|
|
35
|
+
> **Current boundary:** v0.1.8 is the current release (v0.1.7 previously held
|
|
36
|
+
> published status before the Kimi Code distribution was added).
|
|
88
37
|
> v0.1.1 completed a real production release to GitHub and npm — the first
|
|
89
38
|
> production-verified milestone — followed by
|
|
90
39
|
> exact npm installation and Claude/Codex consumer installation verification
|
|
@@ -101,7 +50,7 @@ v0.1.6 is a release-preparation snapshot that closes the release-docs automation
|
|
|
101
50
|
> publish global preflight.
|
|
102
51
|
|
|
103
52
|
<!-- release-skill:capability:safe-first-command -->
|
|
104
|
-
> **Production path verified since the v0.1.1 milestone; v0.1.
|
|
53
|
+
> **Production path verified since the v0.1.1 milestone; v0.1.8 is the current
|
|
105
54
|
> release.** The npm-installed CLI is the supported user entry. Source checkout
|
|
106
55
|
> is the development/contributor fallback.
|
|
107
56
|
>
|
|
@@ -632,7 +581,18 @@ syntax.
|
|
|
632
581
|
Production prepare seals a standalone Git commit/tree for every public snapshot
|
|
633
582
|
and creates a fixed tarball for every npm unit. Publish globally preflights all
|
|
634
583
|
actions, then executes and observes public branch, tag, npm, GitHub Release,
|
|
635
|
-
and configured Claude/Codex marketplace installation checkpoints.
|
|
584
|
+
and configured Claude/Codex marketplace installation checkpoints. Kimi Code has
|
|
585
|
+
no scriptable install API, so its checkpoint **fails closed** and `publish`
|
|
586
|
+
lands in `PARTIAL` after the automated writes, emitting a version-pinned manual
|
|
587
|
+
install requirement. The operator then launches Kimi Code with the requirement's
|
|
588
|
+
isolated `KIMI_CODE_HOME`, runs the pinned `/plugins install <release-tag URL>`,
|
|
589
|
+
writes a trusted attestation (binding the frozen **plan** digest and the
|
|
590
|
+
snapshot **payload** digest) into the plan-digest-keyed directory
|
|
591
|
+
`.release-skill/kimi-attestations/<planDigest>/<plugin>/`, and re-runs
|
|
592
|
+
`reconcile` (→ `PUBLISHED`) and `verify` (→ `VERIFIED`); both read the
|
|
593
|
+
attestation from that same stable location. An install into the ordinary
|
|
594
|
+
`~/.kimi-code` is not accepted. See `INSTALL.md` for the full procedure and the
|
|
595
|
+
attestation JSON fields. `verify`
|
|
636
596
|
installs every exact npm `package@version` in an isolated directory; when
|
|
637
597
|
`smokeBin` is configured it also runs the CLI and validates output. Only when
|
|
638
598
|
all evidence matches does the run reach `VERIFIED`.
|
|
@@ -747,8 +707,8 @@ target first; never widen the write scope to resolve them.
|
|
|
747
707
|
|
|
748
708
|
### Parent workspace with npm + plugin sub-units
|
|
749
709
|
|
|
750
|
-
When a monorepo produces both an npm package and a Claude/Codex
|
|
751
|
-
different directories, define separate release units. Only add a plugin
|
|
710
|
+
When a monorepo produces both an npm package and a Claude/Codex/Kimi Code
|
|
711
|
+
plugin from different directories, define separate release units. Only add a plugin
|
|
752
712
|
distribution when the unit actually ships a plugin with manifest, marketplace,
|
|
753
713
|
and entry Skill:
|
|
754
714
|
|
|
@@ -824,6 +784,10 @@ releaseUnits:
|
|
|
824
784
|
marketplace: my-plugin
|
|
825
785
|
entrySkill: my-plugin-help
|
|
826
786
|
timeoutMs: 300000 # optional; range 30000-900000; default 300000
|
|
787
|
+
- type: kimi-plugin
|
|
788
|
+
plugin: my-plugin
|
|
789
|
+
entrySkill: my-plugin-help
|
|
790
|
+
timeoutMs: 300000 # optional; range 30000-900000; default 300000 (Kimi has no install command; bounds read-only verification)
|
|
827
791
|
publicFiles:
|
|
828
792
|
- from: packages/plugin/.claude-plugin/plugin.json
|
|
829
793
|
to: .claude-plugin/plugin.json
|
|
@@ -834,6 +798,9 @@ releaseUnits:
|
|
|
834
798
|
- from: packages/plugin/.codex-plugin/plugin.json
|
|
835
799
|
to: .codex-plugin/plugin.json
|
|
836
800
|
mode: preserve
|
|
801
|
+
- from: packages/plugin/.kimi-plugin/plugin.json
|
|
802
|
+
to: .kimi-plugin/plugin.json
|
|
803
|
+
mode: preserve
|
|
837
804
|
- from: packages/plugin/.agents/plugins/marketplace.json
|
|
838
805
|
to: .agents/plugins/marketplace.json
|
|
839
806
|
mode: preserve
|
|
@@ -853,6 +820,7 @@ releaseUnits:
|
|
|
853
820
|
- .claude-plugin/plugin.json
|
|
854
821
|
- .claude-plugin/marketplace.json
|
|
855
822
|
- .codex-plugin/plugin.json
|
|
823
|
+
- .kimi-plugin/plugin.json
|
|
856
824
|
- .agents/plugins/marketplace.json
|
|
857
825
|
- skills/my-plugin-help/SKILL.md
|
|
858
826
|
- README.md
|
|
@@ -865,7 +833,8 @@ releaseUnits:
|
|
|
865
833
|
releaseTitleTemplate: "{unit} {version}"
|
|
866
834
|
```
|
|
867
835
|
|
|
868
|
-
Each plugin unit **must** list its Claude/Codex `plugin.json`,
|
|
836
|
+
Each plugin unit **must** list its Claude/Codex/Kimi Code `plugin.json`, the
|
|
837
|
+
Claude/Codex `marketplace.json` files (Kimi Code has no marketplace manifest),
|
|
869
838
|
the entry Skill, and all required public files. A CLI smoke (`smokeBin`) is
|
|
870
839
|
optional for plugin units and only applies when the published npm package
|
|
871
840
|
exposes a CLI binary.
|
|
@@ -929,7 +898,10 @@ Successful reconcile returns `PUBLISHED`, not `VERIFIED`; only the fresh
|
|
|
929
898
|
- publishes only frozen Git objects and npm tarballs, then checks remote
|
|
930
899
|
commit/tree/tag/integrity;
|
|
931
900
|
- installs configured Claude/Codex plugins from the frozen Git ref and proves
|
|
932
|
-
the entry Skill and payload digest in fresh isolated consumer homes;
|
|
901
|
+
the entry Skill and payload digest in fresh isolated consumer homes; for Kimi
|
|
902
|
+
Code (no scriptable install API) it emits a version-pinned manual install
|
|
903
|
+
requirement and proves the entry Skill and payload digest only from a trusted
|
|
904
|
+
attestation bound to the frozen plan digest;
|
|
933
905
|
- distinguishes `PUBLISHED` (writes completed) from `VERIFIED` (remote and
|
|
934
906
|
consumer installation evidence completed);
|
|
935
907
|
- stops subsequent checkpoints on failure and writes a separate run record
|
|
@@ -996,8 +968,8 @@ the exact installed distribution; gates cannot borrow tests, development
|
|
|
996
968
|
dependencies, or `node_modules` from the parent workspace.
|
|
997
969
|
|
|
998
970
|
`snapshot-verify` runs in a disposable writable copy of the frozen public
|
|
999
|
-
snapshot. `consumer-verify` runs from an exact isolated npm/Claude/Codex
|
|
1000
|
-
root. Both use executable arrays instead of shell strings; definitions and
|
|
971
|
+
snapshot. `consumer-verify` runs from an exact isolated npm/Claude/Codex/Kimi
|
|
972
|
+
Code install root. Both use executable arrays instead of shell strings; definitions and
|
|
1001
973
|
results enter digest-bound evidence, and prepare/verify require
|
|
1002
974
|
`--acknowledge-gate-side-effects`. Gates are still project processes without a
|
|
1003
975
|
network sandbox, so release-skill cannot promise that they will not write files
|