release-skill 0.9.15 → 0.9.17

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.
Files changed (164) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codebuddy-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +2 -2
  4. package/.kimi-plugin/plugin.json +1 -1
  5. package/.qoder-plugin/plugin.json +10 -0
  6. package/CHANGELOG.md +61 -0
  7. package/INSTALL.md +57 -9
  8. package/INSTALL.zh-CN.md +44 -7
  9. package/README.md +88 -29
  10. package/README.zh-CN.md +70 -27
  11. package/adapters/claude/.claude-plugin/plugin.json +1 -1
  12. package/adapters/claude/bin/release-skill.bundle.mjs +1471 -672
  13. package/adapters/claude/schemas/release-plan.schema.json +1 -1
  14. package/adapters/claude/schemas/release-project.schema.json +19 -1
  15. package/adapters/claude/skills/release-finish/SKILL.md +65 -6
  16. package/adapters/claude/skills/release-help/SKILL.md +3 -3
  17. package/adapters/claude/skills/release-verify/SKILL.md +2 -2
  18. package/adapters/codex/.codex-plugin/plugin.json +2 -2
  19. package/adapters/codex/bin/release-skill.bundle.mjs +1471 -672
  20. package/adapters/codex/schemas/release-plan.schema.json +1 -1
  21. package/adapters/codex/schemas/release-project.schema.json +19 -1
  22. package/adapters/codex/skills/release-finish/SKILL.md +65 -6
  23. package/adapters/codex/skills/release-help/SKILL.md +3 -3
  24. package/adapters/codex/skills/release-verify/SKILL.md +2 -2
  25. package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
  26. package/adapters/kimi/bin/release-skill.bundle.mjs +1471 -672
  27. package/adapters/kimi/schemas/release-plan.schema.json +1 -1
  28. package/adapters/kimi/schemas/release-project.schema.json +19 -1
  29. package/adapters/kimi/skills/release-finish/SKILL.md +65 -6
  30. package/adapters/kimi/skills/release-help/SKILL.md +3 -3
  31. package/adapters/kimi/skills/release-verify/SKILL.md +2 -2
  32. package/adapters/qoder/.qoder-plugin/plugin.json +10 -0
  33. package/adapters/qoder/bin/consumer-contract-vectors.json +110 -0
  34. package/adapters/qoder/bin/error-codes.json +161 -0
  35. package/adapters/qoder/bin/foundation-legal/skill-family-contracts/LICENSE +202 -0
  36. package/adapters/qoder/bin/foundation-legal/skill-family-contracts/NOTICE +10 -0
  37. package/adapters/qoder/bin/foundation-legal/skill-family-engineering-kit/LICENSE +202 -0
  38. package/adapters/qoder/bin/foundation-legal/skill-family-engineering-kit/NOTICE +10 -0
  39. package/adapters/qoder/bin/foundation-legal/skill-family-engineering-kit/THIRD_PARTY_NOTICES +142 -0
  40. package/adapters/qoder/bin/foundation-legal/skill-family-harness-node/LICENSE +202 -0
  41. package/adapters/qoder/bin/foundation-legal/skill-family-harness-node/NOTICE +10 -0
  42. package/adapters/qoder/bin/foundation-legal/skill-family-harness-node/native-NOTICE +2 -0
  43. package/adapters/qoder/bin/foundation-resource-binding.json +1 -0
  44. package/adapters/qoder/bin/kernel-protocol.json +60 -0
  45. package/adapters/qoder/bin/license-texts/Apache-2.0.txt +201 -0
  46. package/adapters/qoder/bin/license-texts/MIT.txt +21 -0
  47. package/adapters/qoder/bin/prebuild-manifest.json +79 -0
  48. package/adapters/qoder/bin/prebuilds/darwin-arm64/bound_read.darwin-arm64.node +0 -0
  49. package/adapters/qoder/bin/prebuilds/darwin-x64/bound_read.darwin-x64.node +0 -0
  50. package/adapters/qoder/bin/prebuilds/linux-arm64-gnu/bound_read.linux-arm64-gnu.node +0 -0
  51. package/adapters/qoder/bin/prebuilds/linux-x64-gnu/bound_read.linux-x64-gnu.node +0 -0
  52. package/adapters/qoder/bin/registry.json +347 -0
  53. package/adapters/qoder/bin/release-skill-local-finish.mjs +4 -0
  54. package/adapters/qoder/bin/release-skill.bundle.mjs +149446 -0
  55. package/adapters/qoder/bin/release-skill.mjs +54 -0
  56. package/adapters/qoder/bin/rules.json +104 -0
  57. package/adapters/qoder/bin/schemas/consumer-contract-vector.schema.json +149 -0
  58. package/adapters/qoder/data/hosts/claude/host-descriptor.json +45 -0
  59. package/adapters/qoder/data/hosts/codebuddy/host-descriptor.json +26 -0
  60. package/adapters/qoder/data/hosts/codex/host-descriptor.json +45 -0
  61. package/adapters/qoder/data/hosts/deepseek-harness/host-descriptor.json +23 -0
  62. package/adapters/qoder/data/hosts/kimi-code/host-descriptor.json +36 -0
  63. package/adapters/qoder/data/hosts/qoder/host-descriptor.json +26 -0
  64. package/adapters/qoder/data/hosts/registry.json +13 -0
  65. package/adapters/qoder/data/hosts/workbuddy/host-descriptor.json +34 -0
  66. package/adapters/qoder/data/licensing/registry.json +211 -0
  67. package/adapters/qoder/data/licensing/schema.json +207 -0
  68. package/adapters/qoder/native/safe-write/binding.gyp +41 -0
  69. package/adapters/qoder/native/safe-write/prebuilds/darwin-arm64/safe_write.node +0 -0
  70. package/adapters/qoder/native/safe-write/prebuilds.json +24 -0
  71. package/adapters/qoder/native/safe-write/src/safe_write.cc +2032 -0
  72. package/adapters/qoder/schemas/.render-manifest.json +41 -0
  73. package/adapters/qoder/schemas/approval-record.schema.json +115 -0
  74. package/adapters/qoder/schemas/artifact-lock.schema.json +111 -0
  75. package/adapters/qoder/schemas/artifact-plan.schema.json +52 -0
  76. package/adapters/qoder/schemas/artifact-policy.schema.json +76 -0
  77. package/adapters/qoder/schemas/evidence-event-v2.schema.json +164 -0
  78. package/adapters/qoder/schemas/evidence-event.schema.json +89 -0
  79. package/adapters/qoder/schemas/postpublish-approval-record.schema.json +47 -0
  80. package/adapters/qoder/schemas/release-plan.schema.json +1996 -0
  81. package/adapters/qoder/schemas/release-project.schema.json +1613 -0
  82. package/adapters/qoder/schemas/release-run.schema.json +777 -0
  83. package/adapters/qoder/skills/release-assess/SKILL.md +60 -0
  84. package/adapters/qoder/skills/release-config/SKILL.md +150 -0
  85. package/adapters/qoder/skills/release-docs/SKILL.md +119 -0
  86. package/adapters/qoder/skills/release-finish/SKILL.md +141 -0
  87. package/adapters/qoder/skills/release-help/SKILL.md +153 -0
  88. package/adapters/qoder/skills/release-marketplace/SKILL.md +156 -0
  89. package/adapters/qoder/skills/release-prepare/SKILL.md +135 -0
  90. package/adapters/qoder/skills/release-publish/SKILL.md +91 -0
  91. package/adapters/qoder/skills/release-reconcile/SKILL.md +80 -0
  92. package/adapters/qoder/skills/release-setup/SKILL.md +131 -0
  93. package/adapters/qoder/skills/release-verify/SKILL.md +109 -0
  94. package/adapters/qoder/src/schemas/adapter-build-manifest.schema.json +41 -0
  95. package/adapters/qoder/src/schemas/adapter-peer-verification-request.schema.json +54 -0
  96. package/adapters/qoder/src/schemas/adapter-peer-verification-result.schema.json +54 -0
  97. package/adapters/qoder/src/schemas/adapter-source.schema.json +47 -0
  98. package/adapters/qoder/src/schemas/audit-baseline-pin.schema.json +163 -0
  99. package/adapters/qoder/src/schemas/declared-read-surface-result.schema.json +61 -0
  100. package/adapters/qoder/src/schemas/engineering-baseline.schema.json +77 -0
  101. package/adapters/qoder/src/schemas/executable-identity-observation.schema.json +162 -0
  102. package/adapters/qoder/src/schemas/filesystem-root-binding.schema.json +14 -0
  103. package/adapters/qoder/src/schemas/filesystem-tree-observation.schema.json +71 -0
  104. package/adapters/qoder/src/schemas/fixed-set-publication-manifest.schema.json +108 -0
  105. package/adapters/qoder/src/schemas/fixed-set-publication-receipt.schema.json +148 -0
  106. package/adapters/qoder/src/schemas/host-capability-fact.schema.json +31 -0
  107. package/adapters/qoder/src/schemas/host-descriptor.schema.json +137 -0
  108. package/adapters/qoder/src/schemas/host-operation-plan.schema.json +57 -0
  109. package/adapters/qoder/src/schemas/host-operation-receipt.schema.json +81 -0
  110. package/adapters/qoder/src/schemas/host-probe-result.schema.json +30 -0
  111. package/adapters/qoder/src/schemas/host-registry.schema.json +18 -0
  112. package/adapters/qoder/src/schemas/host-verification-request.schema.json +67 -0
  113. package/adapters/qoder/src/schemas/host-verification-result.schema.json +149 -0
  114. package/adapters/qoder/src/schemas/managed-file-lock.schema.json +77 -0
  115. package/adapters/qoder/src/schemas/migration-manifest.schema.json +412 -0
  116. package/adapters/qoder/src/schemas/observation-scope.schema.json +91 -0
  117. package/adapters/qoder/src/schemas/operation-request.schema.json +58 -0
  118. package/adapters/qoder/src/schemas/operation-result.schema.json +130 -0
  119. package/adapters/qoder/src/schemas/platform-difference-registry.schema.json +110 -0
  120. package/adapters/qoder/src/schemas/plugin-verification-request.schema.json +499 -0
  121. package/adapters/qoder/src/schemas/plugin-verification-result.schema.json +1217 -0
  122. package/adapters/qoder/src/schemas/profile-adoption-declaration.schema.json +111 -0
  123. package/adapters/qoder/src/schemas/profile-descriptor.schema.json +99 -0
  124. package/adapters/qoder/src/schemas/project-manifest.schema.json +67 -0
  125. package/adapters/qoder/src/schemas/project-profile.schema.json +25 -0
  126. package/adapters/qoder/src/schemas/public-boundary-declaration.schema.json +73 -0
  127. package/adapters/qoder/src/schemas/report-binding.schema.json +42 -0
  128. package/adapters/qoder/src/schemas/report-model.schema.json +308 -0
  129. package/adapters/qoder/src/schemas/skill-family-directory-verification-request.schema.json +100 -0
  130. package/adapters/qoder/src/schemas/skill-family-directory-verification-result.schema.json +193 -0
  131. package/adapters/qoder/src/schemas/source-authority-receipt.schema.json +31 -0
  132. package/adapters/qoder/src/schemas/state-event-envelope.schema.json +38 -0
  133. package/adapters/qoder/src/schemas/state-snapshot-metadata.schema.json +25 -0
  134. package/adapters/qoder/src/schemas/structured-scan-policy.schema.json +97 -0
  135. package/adapters/qoder/src/schemas/surface-scan-policy.schema.json +42 -0
  136. package/adapters/qoder/src/schemas/timeout-policy.schema.json +24 -0
  137. package/adapters/qoder/src/schemas/token-estimate-record.schema.json +75 -0
  138. package/adapters/qoder/src/schemas/token-estimate-result.schema.json +43 -0
  139. package/adapters/qoder/src/schemas/watchdog-termination-envelope.schema.json +156 -0
  140. package/adapters/workbuddy/.codebuddy-plugin/plugin.json +1 -1
  141. package/adapters/workbuddy/bin/release-skill.bundle.mjs +1471 -672
  142. package/adapters/workbuddy/schemas/release-plan.schema.json +1 -1
  143. package/adapters/workbuddy/schemas/release-project.schema.json +19 -1
  144. package/adapters/workbuddy/skills/release-finish/SKILL.md +65 -6
  145. package/adapters/workbuddy/skills/release-help/SKILL.md +3 -3
  146. package/adapters/workbuddy/skills/release-verify/SKILL.md +2 -2
  147. package/bin/release-skill-cli.mjs +152 -6
  148. package/bin/release-skill.bundle.mjs +1471 -672
  149. package/package.json +4 -2
  150. package/platform-manifest.json +70 -4
  151. package/references/02-project-config.md +25 -2
  152. package/schemas/release-plan.schema.json +1 -1
  153. package/schemas/release-project.schema.json +19 -1
  154. package/skills/release-finish/SKILL.md +65 -6
  155. package/skills/release-help/SKILL.md +3 -3
  156. package/skills/release-verify/SKILL.md +2 -2
  157. package/skills-src/release-finish/SKILL.md +65 -6
  158. package/skills-src/release-help/SKILL.md +3 -3
  159. package/skills-src/release-verify/SKILL.md +2 -2
  160. package/src/commands/post-release-local.mjs +360 -51
  161. package/src/commands/verify-records.mjs +467 -0
  162. package/src/core/postpublish.mjs +1 -1
  163. package/src/core/run.mjs +1 -1
  164. package/src/producers/build-adapters.mjs +36 -13
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.9.15",
3
+ "version": "0.9.17",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.9.15",
3
+ "version": "0.9.17",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.9.15",
3
+ "version": "0.9.17",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
@@ -19,7 +19,7 @@
19
19
  ],
20
20
  "defaultPrompt": [
21
21
  "Assess this project for release readiness.",
22
- "Prepare a release plan for version 0.9.15.",
22
+ "Prepare a release plan for version 0.9.17.",
23
23
  "Help me understand the release workflow."
24
24
  ]
25
25
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "release-skill",
3
- "version": "0.9.15",
3
+ "version": "0.9.17",
4
4
  "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
5
  "author": {
6
6
  "name": "广州市风荷科技有限公司"
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "release-skill",
3
+ "version": "0.9.17",
4
+ "description": "Safe preparation and frozen GitHub/npm production publishing with full happy end verification",
5
+ "author": {
6
+ "name": "广州市风荷科技有限公司"
7
+ },
8
+ "license": "Apache-2.0",
9
+ "skills": "./adapters/qoder/skills/"
10
+ }
package/CHANGELOG.md CHANGED
@@ -1,5 +1,66 @@
1
1
  # Changelog
2
2
 
3
+ <!-- release-skill:changelog:start version=0.9.17 locale=en baseline=sha256:83fe967a104a1b324ea1b704cfc6ee67d6a2999f3d6c0e2d92411435fa6986a2 -->
4
+ ## [0.9.17] - 2026-09-09
5
+
6
+ 0.9.17 is a local source candidate that adds explicit offline verification of historical release records and a self-contained Qoder projection, while preserving the setup-root and Kimi initial-directory trust fixes. The three Foundation dependencies remain pinned to the exact 0.17.0 release. This note is not evidence of publication, real-host acceptance, consumer installation verification, or independent acceptance; it also does not establish Hub acceptance.
7
+
8
+ ### Security
9
+
10
+ - Offline verification reads only paths explicitly supplied on the command line and redacts local path details from its JSON result. Historical consistency does not prove that records are globally latest or that remote objects still exist.
11
+ - Qoder remains outside release distributions and publication checkpoints. The updater does not add a marketplace, perform a first install, uninstall, or reload the current session; `UPDATED` does not mean the new plugin has been loaded.
12
+ - Any later central Skill Family Hub publication uses the existing Git Data API with compare-and-swap. A partial Hub publication remains recoverable and is never rolled back or force-pushed automatically.
13
+
14
+ ### Added
15
+
16
+ - The public `release-skill verify-records` CLI checks caller-supplied plan, approval, target-run, and predecessor-run bytes. It reports `CONSISTENT`, `CONTRADICTED`, or `INSUFFICIENT` without scanning `.release-skill`, following paths from records, contacting remotes, writing files, or changing release state.
17
+ - The npm package now includes `.qoder-plugin/plugin.json` and a self-contained `adapters/qoder/` projection. The existing post-release updater can update an already installed user-scope Qoder plugin only after the selected Hub source and frozen payload match.
18
+
19
+ ### Changed
20
+
21
+ - The release-finish setup continuation uses the current `--root` release project directly. It no longer asks for a second project path, while project-level readiness and host-specific loading checks remain distinct.
22
+
23
+ ### Fixed
24
+
25
+ - An authorized Kimi update can confirm the standard initial `Trust this folder?` dialog for the current release project before continuing. Unknown rows, selections, repeated trust dialogs, timeout, or early exit still stop that host.
26
+
27
+ ### Upgrade Notes
28
+
29
+ Upgrade from 0.9.16 to use `release-skill verify-records`, the Qoder package projection, and the setup/Kimi fixes. Remove the old release-skill standalone marketplace; use the ifoohoo/skill-family-hub repository and Hub-qualified plugin id release-skill@skill-family-hub. The central Skill Family Hub must accept the Qoder entry before marketplace installation can begin. Real Qoder and Kimi installation, reload, and business invocation remain separate authorized follow-up work.
30
+ <!-- release-skill:changelog:end version=0.9.17 locale=en -->
31
+
32
+
33
+ <!-- release-skill:changelog:start version=0.9.16 locale=en baseline=sha256:ea8288d2ffcedf02008eb0bc10280d52bc6ddd2e383f072913340eb64cb7ca63 -->
34
+ ## [0.9.16] - 2026-09-09
35
+
36
+ 0.9.16 is a local source candidate that connects verified releases to explicit source-branch checks, host-aware setup continuation, and postVerify finish guidance. The three Foundation dependencies remain pinned to the exact 0.17.0 release. This note is not evidence of publication, real-host acceptance, consumer installation verification, or independent acceptance.
37
+
38
+ ### Security
39
+
40
+ - The source-branch reminder runs only `git branch --show-current` and `git status --short --branch`; it never fetches, switches, merges, rebases, stashes, resets, cleans, or pushes. Setup names are matched as skill metadata and are never executed as shell text.
41
+ - Skill Family Hub updates bind the observed branch head with compare-and-swap semantics. Partial Hub publication is never rolled back or force-pushed, and remote state is never overwritten.
42
+
43
+ ### Added
44
+
45
+ - Projects may configure `releaseFinish.sourceBranchCheck` as `remind` or `skip` and may name a loaded setup entry through `releaseFinish.setupSkill`. The release-finish workflow keeps the publishing workspace separate from an explicitly selected consumer project and reports setup as pending when the target directory, loaded plugin version, or callable host is not established.
46
+ - Source checks use read-only Git commands and report the current branch, worktree changes, upstream summary, and any decision that still belongs to the maintainer. A project can select `release-setup` when it wants the release-finish workflow to continue into release-skill setup.
47
+
48
+ ### Changed
49
+
50
+ - After a successful postVerify run reaches `DISTRIBUTED`, both JSON and text CLI output now expose the same Hub-backed local-host finish guidance used by the release-finish workflow. The guidance remains diagnostic and never invokes a host command on its own.
51
+ - Host updates and setup checks remain local follow-up work and do not change the immutable release plan or the `VERIFIED` publication result. Shared project readiness may be checked once only when the plugin version, consumer directory, and runtime environment are the same; host-specific installation and loading remain separate checks.
52
+ - Skill Family Hub publication continues through the project-private postVerify hook and GitHub Git Data API. The Hub update remains a separately approved compare-and-swap write against the observed branch head.
53
+
54
+ ### Fixed
55
+
56
+ - A completed postVerify delivery now keeps `DISTRIBUTED` even when the optional finish checklist cannot reread its plan. The CLI returns an explicit unavailable diagnostic without rewriting the successful delivery checkpoint.
57
+
58
+ ### Upgrade Notes
59
+
60
+ Upgrade from 0.9.15 to receive postVerify finish guidance and optional source-branch and setup continuation. Add a top-level `releaseFinish` block only when the project wants to select a setup entry or change the default reminder policy. Remove any release-skill standalone marketplace registration, add or update `ifoohoo/skill-family-hub`, and use `release-skill@skill-family-hub`. Restart an updated host before treating the new plugin version or setup entry as loaded.
61
+ <!-- release-skill:changelog:end version=0.9.16 locale=en -->
62
+
63
+
3
64
  <!-- release-skill:changelog:start version=0.9.15 locale=en baseline=sha256:caaa3680d940673edb3421512224623f618d8bff4ab159be60c797620ea3851f -->
4
65
  ## [0.9.15] - 2026-09-07
5
66
 
package/INSTALL.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [简体中文](INSTALL.zh-CN.md)
4
4
 
5
- <!-- release-skill:release-version: 0.9.15 -->
5
+ <!-- release-skill:release-version: 0.9.17 -->
6
6
  ## Prerequisites
7
7
 
8
8
  - Node.js 22.0.0 or later
@@ -41,7 +41,9 @@ Claude Code, CodeBuddy, WorkBuddy, and Codex install release-skill from the
41
41
  central [Skill Family Hub](https://github.com/ifoohoo/skill-family-hub).
42
42
  The release-skill repository carries plugin manifests but no marketplace index.
43
43
  release-skill currently invokes no scriptable install API for Kimi Code — see the
44
- [Kimi Code section](#install-as-a-kimi-code-plugin). Add the marketplace once,
44
+ [Kimi Code section](#install-as-a-kimi-code-plugin). Qoder uses the same Hub only
45
+ after its root `marketplace.json` has accepted the release-skill entry; see the
46
+ [Qoder section](#install-as-a-qoder-plugin). Add the marketplace once,
45
47
  then install the plugin:
46
48
 
47
49
  > **Prerequisite: GitHub access.** The `owner/repo` shorthand makes Claude Code
@@ -81,6 +83,16 @@ release-skill currently uses the version-pinned interactive TUI path for Kimi
81
83
  Code. The release state machine reports installation as a post-release manual
82
84
  task and does not verify its completion.
83
85
 
86
+ **Qoder:** after the central Hub has accepted the release-skill Qoder entry and
87
+ that marketplace is configured locally:
88
+
89
+ ```bash
90
+ qoder plugins install release-skill@skill-family-hub --scope user --json
91
+ ```
92
+
93
+ Do not treat the local adapter or a successful validation alone as proof of a
94
+ Hub marketplace install.
95
+
84
96
  ### Alternative: direct repository install (advanced)
85
97
 
86
98
  The Hub marketplace above is the supported primary path. Direct installation
@@ -91,6 +103,9 @@ remains available only where the host supports a repository URL:
91
103
  - CodeBuddy: single-session use from a source checkout via
92
104
  `--plugin-dir <path>/adapters/workbuddy` (see the
93
105
  [CodeBuddy/WorkBuddy section](#install-as-a-codebuddyworkbuddy-plugin)).
106
+ - Qoder: validate the generated candidate with
107
+ `qoder plugins validate <path>/adapters/qoder --json --strict`; validation is
108
+ not marketplace installation or a real Skill call.
94
109
 
95
110
  ## Install as a Kimi Code plugin
96
111
 
@@ -110,7 +125,7 @@ tag pinned to the exact version (never the bare repository URL, which installs
110
125
  the latest release or default branch), confirm the trust prompt, then reload:
111
126
 
112
127
  ```
113
- /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.9.15
128
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.9.17
114
129
  /plugins reload
115
130
  ```
116
131
 
@@ -129,12 +144,17 @@ same TUI session before accepting the plugin trust prompt and reloading.
129
144
 
130
145
  The effective configuration root is explicit `kimiHome`, then
131
146
  `KIMI_CODE_HOME`, then `~/.kimi-code`. The TUI process and post-operation
132
- observation use that same root. release-finish strips ANSI/OSC control sequences
133
- and soft wrapping before it checks the frozen repository, tag, and selected
134
- `Trust and install` action inside the plugin trust dialog. A `Trust this folder?`
135
- prompt, unknown interface, timeout, early exit, or identity mismatch stops the
136
- flow without confirming folder trust or continuing installation. This local
137
- check is not part of `verify` and does not alter the `VERIFIED` release state.
147
+ observation use that same root. The TUI working directory is the resolved release
148
+ project root passed through `--root`. After explicit confirmation of the frozen
149
+ plan and selection of Kimi for update, release-finish accepts only the initial
150
+ standard `Trust this folder?` dialog with `No, exit` selected and
151
+ `Trust this folder` available. It moves to that row, verifies the new selection,
152
+ confirms it, and waits for the known command prompt. Unknown rows or selections,
153
+ a failed move, timeout, early exit, or a folder-trust dialog after the plugin
154
+ command fails closed. release-finish still strips ANSI/OSC control sequences and
155
+ soft wrapping before it checks the frozen repository, tag, and selected
156
+ `Trust and install` action inside the plugin trust dialog. This local check is
157
+ not part of `verify` and does not alter the `VERIFIED` release state.
138
158
 
139
159
  No receipt or attestation is required. The `attest` command remains available
140
160
  only for frozen plans created by older versions that lack the
@@ -178,6 +198,34 @@ For a single session from a source checkout you can also point CodeBuddy at the
178
198
  generated plugin directory with `--plugin-dir <path>/adapters/workbuddy`; the
179
199
  adapter never references files outside its own directory.
180
200
 
201
+ ## Install as a Qoder plugin
202
+
203
+ The npm package ships `.qoder-plugin/plugin.json` and a generated,
204
+ self-contained `adapters/qoder/` tree. Qoder is a build-only projection: it does
205
+ not add a `qoder-plugin` distribution type or a publish/reconcile/verify install
206
+ checkpoint.
207
+
208
+ The central Hub root `marketplace.json` must first contain an accepted
209
+ release-skill entry whose source resolves to this Qoder projection. Once that
210
+ entry is present and `skill-family-hub` is configured, install at user scope:
211
+
212
+ ```bash
213
+ qoder plugins install release-skill@skill-family-hub --scope user --json
214
+ ```
215
+
216
+ The optional `release-finish` path updates only an existing user-scope Qoder
217
+ installation selected by the user and declared in the frozen plan. Before any
218
+ write it matches the Hub name and repository, then rechecks the refreshed source
219
+ and frozen payload. It may run the named marketplace update followed by
220
+ `qoder plugins update release-skill@skill-family-hub --scope user`; it never
221
+ adds a marketplace, first-installs the plugin, removes a marketplace, or
222
+ uninstalls and reinstalls the plugin.
223
+
224
+ An `UPDATED` result proves installed bytes, not what the current Qoder session
225
+ has loaded. Reload the plugin or start a new session, then use the discovered
226
+ release-skill to complete one read-only release task before claiming the new
227
+ version is active. These local results do not change `VERIFIED`.
228
+
181
229
  ## Consumer verification boundaries
182
230
 
183
231
  **When verification runs.** Consumer-side install verification executes only
package/INSTALL.zh-CN.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [English](INSTALL.md)
4
4
 
5
- <!-- release-skill:release-version: 0.9.15 -->
5
+ <!-- release-skill:release-version: 0.9.17 -->
6
6
  ## 前置条件
7
7
 
8
8
  - Node.js 22.0.0 或更高版本
@@ -37,7 +37,9 @@ release-skill help
37
37
  Claude Code、CodeBuddy、WorkBuddy 和 Codex 从统一的
38
38
  [Skill Family Hub](https://github.com/ifoohoo/skill-family-hub)
39
39
  安装 release-skill。release-skill 仓库只携带插件清单,不再携带市场索引。当前没有接入
40
- Kimi Code 的可脚本化安装接口,见 [Kimi Code 小节](#安装为-kimi-code-插件)。先添加一次市场,再安装
40
+ Kimi Code 的可脚本化安装接口,见 [Kimi Code 小节](#安装为-kimi-code-插件)。Qoder
41
+ 只有在 Hub 根 `marketplace.json` 已接纳 release-skill 条目后才使用同一市场,见
42
+ [Qoder 小节](#安装为-qoder-插件)。先添加一次市场,再安装
41
43
  插件:
42
44
 
43
45
  > **前置条件:GitHub 访问。** `owner/repo` 简写会让 Claude Code 通过
@@ -75,6 +77,14 @@ codex plugin marketplace add ifoohoo/skill-family-hub
75
77
  release-skill 当前对 Kimi Code 采用钉死版本的交互式 TUI 路径。发布状态机会把安装
76
78
  列为发布后人工待办,不核验其完成结果。
77
79
 
80
+ **Qoder:** 中央 Hub 已接纳 release-skill 的 Qoder 条目,且本机已配置该市场后执行:
81
+
82
+ ```bash
83
+ qoder plugins install release-skill@skill-family-hub --scope user --json
84
+ ```
85
+
86
+ 本地适配器存在或候选校验成功,都不能单独证明 Hub 市场安装成立。
87
+
78
88
  ### 备选:直接从仓库安装(进阶)
79
89
 
80
90
  上面的 Hub 市场是受支持的主路径。只有宿主支持仓库 URL 时,才能直接安装:
@@ -84,6 +94,8 @@ release-skill 当前对 Kimi Code 采用钉死版本的交互式 TUI 路径。
84
94
  - CodeBuddy:源码检出后通过 `--plugin-dir <path>/adapters/workbuddy`
85
95
  单会话使用(见
86
96
  [CodeBuddy/WorkBuddy 小节](#安装为-codebuddyworkbuddy-插件))。
97
+ - Qoder:执行 `qoder plugins validate <path>/adapters/qoder --json --strict`
98
+ 校验生成候选;该结果不等于市场安装,也不等于真实 Skill 调用。
87
99
 
88
100
  ## 安装为 Kimi Code 插件
89
101
 
@@ -101,7 +113,7 @@ release-skill 当前只采用并验证 Kimi Code 的交互式 TUI 路径,**无
101
113
  (切勿使用裸仓库地址,它会安装最新 release 或默认分支),确认信任提示后重新加载:
102
114
 
103
115
  ```
104
- /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.9.15
116
+ /plugins install https://github.com/ifoohoo/release-skill/releases/tag/release-skill-v0.9.17
105
117
  /plugins reload
106
118
  ```
107
119
 
@@ -114,10 +126,13 @@ release-finish 会重新读取 Kimi 的受管安装根,不复用操作前的
114
126
  移除,再按发布标签安装、确认插件信任并重新加载。
115
127
 
116
128
  有效配置根依次取显式 `kimiHome`、`KIMI_CODE_HOME`、`~/.kimi-code`,TUI 进程和
117
- 操作后观察使用同一根。release-finish 会先清理 ANSI/OSC 控制序列和软换行,再在插件
118
- 信任对话框内核对冻结仓库、标签和当前选中的 `Trust and install`。出现
119
- `Trust this folder?`、未知界面、超时、提前退出或身份不一致时,流程停止,不确认目录
120
- 信任,也不继续安装。这个本机检查不属于 `verify`,也不会改变
129
+ 操作后观察使用同一根,TUI 工作目录固定为 `--root` 指定的当前发布项目。用户确认冻结
130
+ 计划并显式选择更新 Kimi 后,release-finish 只接受初始标准 `Trust this folder?` 界面:
131
+ 当前必须选中 `No, exit`,且存在 `Trust this folder` 目标行。流程移动到目标行,重新确认
132
+ 选中项,再提交并等待已知命令提示符。出现未知行或选中项、移动后无法确认、超时、提前
133
+ 退出,或者插件命令发出后再次出现目录信任时,该宿主失败并停止。release-finish 仍会先
134
+ 清理 ANSI/OSC 控制序列和软换行,再在插件信任对话框内核对冻结仓库、标签和当前选中的
135
+ `Trust and install`。这个本机检查不属于 `verify`,也不会改变
121
136
  已经完成的 `VERIFIED` 发布状态。
122
137
 
123
138
  新计划无需收据或人工证明。`attest` 命令仅兼容缺少
@@ -152,6 +167,28 @@ codebuddy CLI 可以添加市场并安装插件,但 **`plugin marketplace add`
152
167
  源码检出后也可以用 `--plugin-dir <path>/adapters/workbuddy` 把 CodeBuddy 指向
153
168
  生成的插件目录做单会话使用;适配器不引用自身目录之外的任何文件。
154
169
 
170
+ ## 安装为 Qoder 插件
171
+
172
+ npm 包内提供 `.qoder-plugin/plugin.json` 和生成的自包含 `adapters/qoder/` 目录。
173
+ Qoder 只是 build-only 投影,不新增 `qoder-plugin` 分发类型,也不新增 publish、
174
+ reconcile 或 verify 安装检查点。
175
+
176
+ 中央 Hub 根 `marketplace.json` 必须先接纳 release-skill 条目,且该条目的来源要解析到
177
+ 本插件的 Qoder 投影。条目存在并已配置 `skill-family-hub` 后,执行用户范围安装:
178
+
179
+ ```bash
180
+ qoder plugins install release-skill@skill-family-hub --scope user --json
181
+ ```
182
+
183
+ 可选的 `release-finish` 只更新用户已选择、冻结计划已声明且已经存在的用户范围 Qoder
184
+ 安装。写入前先核对 Hub 名称和仓库;刷新市场后,再核对来源与冻结载荷。流程可以更新
185
+ 指定市场,再执行 `qoder plugins update release-skill@skill-family-hub --scope user`;
186
+ 不会添加市场、首次安装插件、删除市场,也不会卸载后重装。
187
+
188
+ `UPDATED` 只证明安装载荷已更新,不代表当前 Qoder 会话已经加载新版。必须重新加载插件
189
+ 或新开会话,再由真实发现的 release-skill 完成一次只读发布业务调用,才能宣称新版已
190
+ 生效。这些本机结果不会改变 `VERIFIED`。
191
+
155
192
  ## 消费端安装验证边界
156
193
 
157
194
  **何时执行验证。** 消费端安装验证仅在安装契约关键文件相对已确认公开基线发生变化时执行;
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [简体中文](README.zh-CN.md) · Installation: [English](INSTALL.md) / [简体中文](INSTALL.zh-CN.md)
4
4
 
5
- <!-- release-skill:release-version: 0.9.15 -->
5
+ <!-- release-skill:release-version: 0.9.17 -->
6
6
  Release preparation for Claude Code, CodeBuddy, WorkBuddy, 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,
@@ -14,33 +14,36 @@ Setup surfaces only the deterministic `compactSummary` review view; the full
14
14
  report stays in a temporary session directory.
15
15
 
16
16
  <!-- release-skill:managed:start id=latest-release -->
17
- **0.9.15** (2026-09-07)
17
+ **0.9.17** (2026-09-09)
18
18
 
19
- 0.9.15 is a local source candidate that makes release preparation use the project's existing assessment, refresh, focused-check, and formal prepare entry points, and makes prepare help return before business execution. The three Foundation dependencies remain pinned to the exact 0.17.0 release. This note is not evidence of publication, real-host acceptance, consumer installation verification, or independent acceptance.
19
+ 0.9.17 is a local source candidate that adds explicit offline verification of historical release records and a self-contained Qoder projection, while preserving the setup-root and Kimi initial-directory trust fixes. The three Foundation dependencies remain pinned to the exact 0.17.0 release. This note is not evidence of publication, real-host acceptance, consumer installation verification, or independent acceptance; it also does not establish Hub acceptance.
20
20
 
21
21
  **Security**
22
22
 
23
- - The orchestration change adds no execution engine, Hook type, cache key, approval state, or external write. Environment allowlists still forward only values already present in the invoking environment, and invalid lowercase names remain configuration errors.
24
- - Frozen candidates keep their existing acceptance boundary. A newly generated candidate requires validation against its own bytes; earlier acceptance evidence is not reused for changed output.
25
- - Skill Family Hub updates continue to use compare-and-swap against the observed branch head through GitHub's Git Data API. A partial Hub publication is never rolled back or force-pushed, and existing remote state is never overwritten.
23
+ - Offline verification reads only paths explicitly supplied on the command line and redacts local path details from its JSON result. Historical consistency does not prove that records are globally latest or that remote objects still exist.
24
+ - Qoder remains outside release distributions and publication checkpoints. The updater does not add a marketplace, perform a first install, uninstall, or reload the current session; `UPDATED` does not mean the new plugin has been loaded.
25
+ - Any later central Skill Family Hub publication uses the existing Git Data API with compare-and-swap. A partial Hub publication remains recoverable and is never rolled back or force-pushed automatically.
26
+
27
+ **Added**
28
+
29
+ - The public `release-skill verify-records` CLI checks caller-supplied plan, approval, target-run, and predecessor-run bytes. It reports `CONSISTENT`, `CONTRADICTED`, or `INSUFFICIENT` without scanning `.release-skill`, following paths from records, contacting remotes, writing files, or changing release state.
30
+ - The npm package now includes `.qoder-plugin/plugin.json` and a self-contained `adapters/qoder/` projection. The existing post-release updater can update an already installed user-scope Qoder plugin only after the selected Hub source and frozen payload match.
26
31
 
27
32
  **Changed**
28
33
 
29
- - The release-prepare Skill now reads the current project contract and authorization, resolves required release-document and generated-artifact freshness work through existing project entry points, runs focused checks after repairs, and leaves complete validation to the formal prepare Hook path.
30
- - After a failure, release-prepare groups directly related fixes before retrying and does not add a same-purpose full test run by default. Explicitly requested independent full acceptance remains part of the workflow, and projects without valid cache evidence still execute their complete Hooks.
31
- - Existing 0.9.14 production-run retention and Hub-backed post-verification host guidance remain available. The project-private postVerify Hook continues to publish the verified release-skill entry and public snapshot to Skill Family Hub through GitHub's Git Data API.
34
+ - The release-finish setup continuation uses the current `--root` release project directly. It no longer asks for a second project path, while project-level readiness and host-specific loading checks remain distinct.
32
35
 
33
36
  **Fixed**
34
37
 
35
- - `prepare --help` and `prepare -h` now return before project-root resolution, configuration loading, lock acquisition, run cleanup, Hook execution, snapshot construction, or plan writes. JSON help returns `command: prepare` with `status: HELP`; prepare without a help flag keeps its existing business path.
38
+ - An authorized Kimi update can confirm the standard initial `Trust this folder?` dialog for the current release project before continuing. Unknown rows, selections, repeated trust dialogs, timeout, or early exit still stop that host.
36
39
 
37
40
  **Upgrade Notes**
38
41
 
39
- Upgrade from 0.9.14 to use the consolidated release-prepare workflow and side-effect-free prepare help. No project configuration migration is required. Keep project-specific generation and prerequisite checks in their existing reviewed entry points. Remove any release-skill standalone marketplace registration, add or update `ifoohoo/skill-family-hub`, and use `release-skill@skill-family-hub`. Existing executable `externalActions` targets retain their current update path; Hub-backed targets remain manual in 0.9.15.
42
+ Upgrade from 0.9.16 to use `release-skill verify-records`, the Qoder package projection, and the setup/Kimi fixes. Remove the old release-skill standalone marketplace; use the ifoohoo/skill-family-hub repository and Hub-qualified plugin id release-skill@skill-family-hub. The central Skill Family Hub must accept the Qoder entry before marketplace installation can begin. Real Qoder and Kimi installation, reload, and business invocation remain separate authorized follow-up work.
40
43
  <!-- release-skill:managed:end id=latest-release -->
41
44
 
42
45
  <!-- release-skill:capability:external-write-boundary -->
43
- > **Current boundary:** v0.9.15 is the current source candidate. This README
46
+ > **Current boundary:** v0.9.17 is the current source candidate. This README
44
47
  > records intended scope and verification boundaries; it is not evidence of
45
48
  > publication, consumer-installation verification, or independent acceptance.
46
49
  > Release availability must be established from the corresponding release records
@@ -64,7 +67,7 @@ Upgrade from 0.9.14 to use the consolidated release-prepare workflow and side-ef
64
67
  > publish global preflight.
65
68
 
66
69
  <!-- release-skill:capability:safe-first-command -->
67
- > **Production path verified since the v0.1.1 milestone; v0.9.15 is the current
70
+ > **Production path verified since the v0.1.1 milestone; v0.9.17 is the current
68
71
  > source candidate. Its README does not establish publication,
69
72
  > consumer-installation verification, or independent acceptance.**
70
73
  > The npm-installed CLI is the supported user entry. Source checkout
@@ -93,16 +96,20 @@ checkpoints remain intact and use matching-version recovery. Evidence v1 stays
93
96
  read-only; v2 uses a closed top level with phase extensions in `details`.
94
97
  Summaries and recovery suggestions are diagnostic, never publication authority.
95
98
 
96
- The current 0.9.15 candidate includes the narrow R-05 Hook cache v2 consumer
99
+ The current 0.9.17 candidate includes the narrow R-05 Hook cache v2 consumer
97
100
  path, the public `postverify` path, and the stable isolated install-tree record
98
- path (A2/A3). It keeps Skill Family Hub as the single marketplace source. It
101
+ path (A2/A3). It also adds the explicit-input `verify-records` command and a
102
+ self-contained Qoder projection. Skill Family Hub remains the single
103
+ marketplace source. The candidate
99
104
  also makes the `release-prepare` Skill organize existing assessment, refresh,
100
105
  focused-check, and prepare entry points without adding another execution
101
106
  engine. `prepare --help` and `prepare -h` now return before configuration,
102
- locks, runs, or hooks can observe the request. This candidate still
103
- excludes R-02 safe full-tree inventory, R-10 historical-release verification
104
- implementation, real Kimi/WorkBuddy public-marketplace installation and
105
- invocation gates, and an Audit public offline release-record verifier.
107
+ locks, runs, or hooks can observe the request. The `release-finish` Skill can
108
+ also report the source branch and continue into a configured setup entry after
109
+ the selected host has loaded the released plugin. This candidate still excludes
110
+ R-02 safe full-tree inventory and real Kimi/WorkBuddy/Qoder marketplace
111
+ installation and invocation gates. The central Hub has not yet accepted the
112
+ release-skill Qoder entry.
106
113
  Foundation dependencies are pinned to the three released 0.17.0 packages.
107
114
  For Kimi/CodeBuddy plans that still use the bundled-family distribution form,
108
115
  verify calls the released
@@ -261,7 +268,29 @@ Skill Family Hub marketplace:
261
268
  Kimi Code. It uses the version-pinned interactive TUI path described in
262
269
  [INSTALL.md](INSTALL.md#install-as-a-kimi-code-plugin).
263
270
 
264
- See [INSTALL.md](INSTALL.md) for CodeBuddy, Codex, and Kimi Code commands.
271
+ **Qoder:** the package ships `.qoder-plugin/plugin.json` and the self-contained
272
+ `adapters/qoder/` projection. A user-scope marketplace install is available only
273
+ after the central Hub's root `marketplace.json` has accepted the release-skill
274
+ Qoder entry; the generated adapter alone does not prove Hub consumption. See
275
+ [INSTALL.md](INSTALL.md#install-as-a-qoder-plugin) for the bounded install and
276
+ post-release update contract.
277
+
278
+ See [INSTALL.md](INSTALL.md) for CodeBuddy, Codex, Kimi Code, and Qoder commands.
279
+
280
+ ### Offline historical record verification
281
+
282
+ Use the public command below when a consumer already has an explicit plan,
283
+ approval, target run, and every predecessor run referenced by that target:
284
+
285
+ ```text
286
+ release-skill verify-records --plan <path> --approval <path> --target-run <path> --source-run <path>... --unit <id> --target-version <version> --json
287
+ ```
288
+
289
+ The command reads only those paths and emits one JSON object. `CONSISTENT`
290
+ exits 0, `CONTRADICTED` exits 1, and `INSUFFICIENT` exits 2. It does not scan
291
+ `.release-skill`, follow paths embedded in a record, contact a remote, write a
292
+ file, or advance release state. A consistent historical chain does not prove
293
+ that its records are globally latest or that remote objects still exist.
265
294
 
266
295
  ### Main workflow
267
296
 
@@ -496,6 +525,9 @@ project:
496
525
  name: my-project
497
526
  defaultBranch: main
498
527
  sourceRepository: owner/my-workspace
528
+ releaseFinish:
529
+ sourceBranchCheck: remind
530
+ setupSkill: release-setup
499
531
  releaseUnits:
500
532
  - id: my-project
501
533
  source: .
@@ -526,6 +558,14 @@ releaseUnits:
526
558
  branchStrategy: create-release-branch
527
559
  ```
528
560
 
561
+ `releaseFinish` controls only local post-release work. `sourceBranchCheck`
562
+ defaults to `remind`; set it to `skip` to suppress the read-only source-branch
563
+ reminder. `setupSkill` is optional and names an already installed and loaded
564
+ setup entry such as `release-setup` or `plugin:skill`; it is never executed as
565
+ a shell command. After host updates, release-finish runs that setup entry
566
+ against the current release project root passed through `--root`; it does not
567
+ request a separate project directory. The two settings are independent.
568
+
529
569
  `distributions` is required but may be an explicit empty array. Use
530
570
  `distributions: []` when release-skill should publish only the unit's GitHub
531
571
  snapshot, tag, and GitHub Release, with no npm publish or marketplace consumer
@@ -767,6 +807,11 @@ closures. A release unit declares what reaches users via `distributions`:
767
807
  | `kimi-plugin` | self-contained closure (release-skill invokes no scriptable install API) | non-blocking post-release manual task |
768
808
  | `codebuddy-plugin` | generated `adapters/workbuddy/` with `.codebuddy-plugin/plugin.json` | non-blocking post-release manual task |
769
809
 
810
+ Qoder is intentionally outside this `distributions` table: it is a build-only
811
+ public projection at `adapters/qoder/`, with root manifest
812
+ `.qoder-plugin/plugin.json`. It does not add a `qoder-plugin` plan type or an
813
+ automated publish, reconcile, or verify checkpoint.
814
+
770
815
  Each adapter closure bundles its own CLI, skills, and schemas for zero external
771
816
  dependency after installation. `publish` only publishes frozen Git objects and
772
817
  npm tarballs, then checks remote commit/tree/tag integrity. Claude/Codex
@@ -781,12 +826,23 @@ commit before that host's first write; a failed check leaves that host unchanged
781
826
  without stopping other selected hosts. The workflow can also migrate or update
782
827
  Kimi through one controlled TUI session and verify its real managed payload, or update an existing
783
828
  bundled-family CodeBuddy/WorkBuddy entry when the frozen tag and mutable branch
784
- both resolve to the frozen commit. It requires explicit user confirmation and
829
+ both resolve to the frozen commit. For an explicitly selected Qoder host, it can
830
+ update only an existing user-scope installation after proving the configured Hub
831
+ source and frozen payload; it never adds a marketplace or performs first install.
832
+ An `UPDATED` installation is not treated as loaded: reload or start a new Qoder
833
+ session, then complete one read-only release-skill business call before claiming
834
+ the new version is active. It requires explicit user confirmation and
785
835
  does not change release status. Kimi uses one effective configuration root:
786
836
  explicit `kimiHome`, then `KIMI_CODE_HOME`, then `~/.kimi-code`. The TUI and
787
- post-operation observation share that root. A `Trust this folder?` prompt,
788
- unknown interface, timeout, early exit, or unprovable plugin identity returns a
789
- manual or failed result without confirming folder trust. Missing, standalone, inaccessible, or ambiguous
837
+ post-operation observation share that root, and the TUI working directory is the
838
+ resolved release project root passed through `--root`. After the user confirms
839
+ the frozen plan and explicitly selects Kimi for update, release-finish accepts
840
+ only the initial standard `Trust this folder?` dialog with `No, exit` selected
841
+ and `Trust this folder` available. It moves to that target, verifies the new
842
+ selection, confirms it, and waits for the known command prompt before sending
843
+ the plugin command. An unknown row or selection, a failed move, timeout, early
844
+ exit, or any folder-trust dialog after the plugin command fails closed. The
845
+ frozen plugin identity and `Trust and install` checks remain unchanged. Missing, standalone, inaccessible, or ambiguous
790
846
  CodeBuddy/WorkBuddy targets remain manual and receive no host mutation.
791
847
  WorkBuddy local updates are macOS-only; on other platforms they are skipped as
792
848
  unsupported. When a plan declares postVerify hooks, release-finish must receive
@@ -797,8 +853,10 @@ A release unit may also declare `postPublish.localHostUpdate` for a plugin that
797
853
  is delivered through a project-selected Hub by a `postVerify` hook. After that
798
854
  hook reaches `DISTRIBUTED`, `ship`, `verify`, `post-release`, and
799
855
  `release-finish` display the declared Hub, plugin, and hosts. These Hub-backed
800
- targets are manual in 0.9.14 (`promptRequired: true`, `available: false`): the
801
- prompt does not query the Hub, inspect the host, or run host commands. Claude
856
+ targets retain their declared execution mode. Qoder is executable only when it
857
+ was selected and all frozen-plan, Hub-source, existing user-scope installation,
858
+ and payload checks pass; other Hub-backed targets remain manual. Manual prompts
859
+ do not query the Hub, inspect the host, or run host commands. Claude
802
860
  and Codex use their existing marketplace management entry; Kimi uses the
803
861
  frozen GitHub Release and its existing confirmation path; CodeBuddy and
804
862
  WorkBuddy remain manual because this flow cannot pin a Hub ref. Existing
@@ -829,7 +887,7 @@ the first minimal semantic boundary, so the static gate fails closed until the
829
887
  declaration is narrowed to concrete targets.
830
888
 
831
889
  <!-- release-skill:capability:unsupported-scope -->
832
- - **not in the current version:** full consumer install-tree scanning (R-02) — the current implementation handles only the declared public surface and the stable isolated install-tree record; and a real-host (Kimi/WorkBuddy) verification gate — host verification stays a non-blocking manual follow-up and does not produce `PASS`/`VERIFIED` evidence;
890
+ - **not in the current version:** full consumer install-tree scanning (R-02) — the current implementation handles only the declared public surface and the stable isolated install-tree record; and a real-host (Kimi/WorkBuddy/Qoder) verification gate — host verification and Qoder activation stay outside release `PASS`/`VERIFIED` evidence;
833
891
  - no automatic README generation or source-file overwrite;
834
892
  - no automatic conflict merge or rollback workflow;
835
893
  - no claim that a real production canary has run for marketplace verification;
@@ -838,10 +896,11 @@ declaration is narrowed to concrete targets.
838
896
  - no overwrite of branches/tags/releases or npm unpublish; create-only refs use
839
897
  `--force-with-lease=<ref>:` solely as an atomic compare-and-set assertion that
840
898
  the ref is absent, while existing branches use an ordinary non-force push;
841
- - no Kimi or CodeBuddy/WorkBuddy marketplace install checkpoint in the release
899
+ - no Kimi, CodeBuddy/WorkBuddy, or Qoder marketplace install checkpoint in the release
842
900
  state machine — optional release-finish can drive and re-check Kimi locally,
843
901
  or update an existing CodeBuddy/WorkBuddy entry under strict frozen-identity
844
- checks, but those results do not become publication evidence;
902
+ checks, or update an existing user-scope Qoder entry after equivalent source
903
+ and payload checks, but those results do not become publication evidence;
845
904
  - no promise of Windows or broad multi-platform native write support;
846
905
  - no hidden commit, push, tag, release, or package publication.
847
906