release-skill 0.9.22 → 0.9.24

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 (220) 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/.cursor-plugin/plugin.json +1 -1
  5. package/.kimi-plugin/plugin.json +1 -1
  6. package/.qoder-plugin/plugin.json +1 -1
  7. package/CHANGELOG.md +61 -2
  8. package/INSTALL.md +4 -4
  9. package/INSTALL.zh-CN.md +4 -4
  10. package/README.md +53 -32
  11. package/README.zh-CN.md +44 -27
  12. package/adapters/claude/.claude-plugin/plugin.json +1 -1
  13. package/adapters/claude/bin/consumer-contract-vectors.json +7 -7
  14. package/adapters/claude/bin/error-codes.json +1 -1
  15. package/adapters/claude/bin/foundation-resource-binding.json +1 -1
  16. package/adapters/claude/bin/registry.json +50 -1
  17. package/adapters/claude/bin/release-skill.bundle.mjs +2680 -2180
  18. package/adapters/claude/bin/rules.json +1 -1
  19. package/adapters/claude/skills/release-assess/SKILL.md +17 -3
  20. package/adapters/claude/skills/release-config/SKILL.md +6 -0
  21. package/adapters/claude/skills/release-docs/SKILL.md +6 -0
  22. package/adapters/claude/skills/release-help/SKILL.md +7 -2
  23. package/adapters/claude/skills/release-marketplace/SKILL.md +6 -0
  24. package/adapters/claude/skills/release-prepare/SKILL.md +8 -2
  25. package/adapters/claude/skills/release-publish/SKILL.md +7 -1
  26. package/adapters/claude/skills/release-reconcile/SKILL.md +6 -0
  27. package/adapters/claude/skills/release-setup/SKILL.md +9 -1
  28. package/adapters/claude/skills/release-verify/SKILL.md +6 -0
  29. package/adapters/claude/src/schemas/file-set-apply-request.schema.json +78 -0
  30. package/adapters/claude/src/schemas/file-set-event-payload.schema.json +55 -0
  31. package/adapters/claude/src/schemas/file-set-prune-request.schema.json +17 -0
  32. package/adapters/claude/src/schemas/file-set-recovery-request.schema.json +29 -0
  33. package/adapters/claude/src/schemas/file-set-result.schema.json +79 -0
  34. package/adapters/claude/src/schemas/professional-conclusion.schema.json +132 -0
  35. package/adapters/claude/src/schemas/project-manifest.schema.json +91 -0
  36. package/adapters/claude/src/schemas/state-store-recovery-observation.schema.json +129 -0
  37. package/adapters/codex/.codex-plugin/plugin.json +2 -2
  38. package/adapters/codex/bin/consumer-contract-vectors.json +7 -7
  39. package/adapters/codex/bin/error-codes.json +1 -1
  40. package/adapters/codex/bin/foundation-resource-binding.json +1 -1
  41. package/adapters/codex/bin/registry.json +50 -1
  42. package/adapters/codex/bin/release-skill.bundle.mjs +2680 -2180
  43. package/adapters/codex/bin/rules.json +1 -1
  44. package/adapters/codex/skills/release-assess/SKILL.md +17 -3
  45. package/adapters/codex/skills/release-config/SKILL.md +6 -0
  46. package/adapters/codex/skills/release-docs/SKILL.md +6 -0
  47. package/adapters/codex/skills/release-help/SKILL.md +9 -3
  48. package/adapters/codex/skills/release-marketplace/SKILL.md +6 -0
  49. package/adapters/codex/skills/release-prepare/SKILL.md +8 -2
  50. package/adapters/codex/skills/release-publish/SKILL.md +7 -1
  51. package/adapters/codex/skills/release-reconcile/SKILL.md +6 -0
  52. package/adapters/codex/skills/release-setup/SKILL.md +9 -1
  53. package/adapters/codex/skills/release-verify/SKILL.md +6 -0
  54. package/adapters/codex/src/schemas/file-set-apply-request.schema.json +78 -0
  55. package/adapters/codex/src/schemas/file-set-event-payload.schema.json +55 -0
  56. package/adapters/codex/src/schemas/file-set-prune-request.schema.json +17 -0
  57. package/adapters/codex/src/schemas/file-set-recovery-request.schema.json +29 -0
  58. package/adapters/codex/src/schemas/file-set-result.schema.json +79 -0
  59. package/adapters/codex/src/schemas/professional-conclusion.schema.json +132 -0
  60. package/adapters/codex/src/schemas/project-manifest.schema.json +91 -0
  61. package/adapters/codex/src/schemas/state-store-recovery-observation.schema.json +129 -0
  62. package/adapters/cursor/.cursor-plugin/plugin.json +1 -1
  63. package/adapters/cursor/bin/consumer-contract-vectors.json +7 -7
  64. package/adapters/cursor/bin/error-codes.json +1 -1
  65. package/adapters/cursor/bin/foundation-resource-binding.json +1 -1
  66. package/adapters/cursor/bin/registry.json +50 -1
  67. package/adapters/cursor/bin/release-skill.bundle.mjs +2680 -2180
  68. package/adapters/cursor/bin/rules.json +1 -1
  69. package/adapters/cursor/skills/release-assess/SKILL.md +17 -3
  70. package/adapters/cursor/skills/release-config/SKILL.md +6 -0
  71. package/adapters/cursor/skills/release-docs/SKILL.md +6 -0
  72. package/adapters/cursor/skills/release-help/SKILL.md +9 -3
  73. package/adapters/cursor/skills/release-marketplace/SKILL.md +6 -0
  74. package/adapters/cursor/skills/release-prepare/SKILL.md +8 -2
  75. package/adapters/cursor/skills/release-publish/SKILL.md +7 -1
  76. package/adapters/cursor/skills/release-reconcile/SKILL.md +6 -0
  77. package/adapters/cursor/skills/release-setup/SKILL.md +9 -1
  78. package/adapters/cursor/skills/release-verify/SKILL.md +6 -0
  79. package/adapters/cursor/src/schemas/file-set-apply-request.schema.json +78 -0
  80. package/adapters/cursor/src/schemas/file-set-event-payload.schema.json +55 -0
  81. package/adapters/cursor/src/schemas/file-set-prune-request.schema.json +17 -0
  82. package/adapters/cursor/src/schemas/file-set-recovery-request.schema.json +29 -0
  83. package/adapters/cursor/src/schemas/file-set-result.schema.json +79 -0
  84. package/adapters/cursor/src/schemas/professional-conclusion.schema.json +132 -0
  85. package/adapters/cursor/src/schemas/project-manifest.schema.json +91 -0
  86. package/adapters/cursor/src/schemas/state-store-recovery-observation.schema.json +129 -0
  87. package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
  88. package/adapters/kimi/bin/consumer-contract-vectors.json +7 -7
  89. package/adapters/kimi/bin/error-codes.json +1 -1
  90. package/adapters/kimi/bin/foundation-resource-binding.json +1 -1
  91. package/adapters/kimi/bin/registry.json +50 -1
  92. package/adapters/kimi/bin/release-skill.bundle.mjs +2680 -2180
  93. package/adapters/kimi/bin/rules.json +1 -1
  94. package/adapters/kimi/skills/release-assess/SKILL.md +17 -3
  95. package/adapters/kimi/skills/release-config/SKILL.md +6 -0
  96. package/adapters/kimi/skills/release-docs/SKILL.md +6 -0
  97. package/adapters/kimi/skills/release-help/SKILL.md +9 -3
  98. package/adapters/kimi/skills/release-marketplace/SKILL.md +6 -0
  99. package/adapters/kimi/skills/release-prepare/SKILL.md +8 -2
  100. package/adapters/kimi/skills/release-publish/SKILL.md +7 -1
  101. package/adapters/kimi/skills/release-reconcile/SKILL.md +6 -0
  102. package/adapters/kimi/skills/release-setup/SKILL.md +9 -1
  103. package/adapters/kimi/skills/release-verify/SKILL.md +6 -0
  104. package/adapters/kimi/src/schemas/file-set-apply-request.schema.json +78 -0
  105. package/adapters/kimi/src/schemas/file-set-event-payload.schema.json +55 -0
  106. package/adapters/kimi/src/schemas/file-set-prune-request.schema.json +17 -0
  107. package/adapters/kimi/src/schemas/file-set-recovery-request.schema.json +29 -0
  108. package/adapters/kimi/src/schemas/file-set-result.schema.json +79 -0
  109. package/adapters/kimi/src/schemas/professional-conclusion.schema.json +132 -0
  110. package/adapters/kimi/src/schemas/project-manifest.schema.json +91 -0
  111. package/adapters/kimi/src/schemas/state-store-recovery-observation.schema.json +129 -0
  112. package/adapters/qoder/.qoder-plugin/plugin.json +1 -1
  113. package/adapters/qoder/bin/consumer-contract-vectors.json +7 -7
  114. package/adapters/qoder/bin/error-codes.json +1 -1
  115. package/adapters/qoder/bin/foundation-resource-binding.json +1 -1
  116. package/adapters/qoder/bin/registry.json +50 -1
  117. package/adapters/qoder/bin/release-skill.bundle.mjs +2680 -2180
  118. package/adapters/qoder/bin/rules.json +1 -1
  119. package/adapters/qoder/skills/release-assess/SKILL.md +17 -3
  120. package/adapters/qoder/skills/release-config/SKILL.md +6 -0
  121. package/adapters/qoder/skills/release-docs/SKILL.md +6 -0
  122. package/adapters/qoder/skills/release-help/SKILL.md +9 -3
  123. package/adapters/qoder/skills/release-marketplace/SKILL.md +6 -0
  124. package/adapters/qoder/skills/release-prepare/SKILL.md +8 -2
  125. package/adapters/qoder/skills/release-publish/SKILL.md +7 -1
  126. package/adapters/qoder/skills/release-reconcile/SKILL.md +6 -0
  127. package/adapters/qoder/skills/release-setup/SKILL.md +9 -1
  128. package/adapters/qoder/skills/release-verify/SKILL.md +6 -0
  129. package/adapters/qoder/src/schemas/file-set-apply-request.schema.json +78 -0
  130. package/adapters/qoder/src/schemas/file-set-event-payload.schema.json +55 -0
  131. package/adapters/qoder/src/schemas/file-set-prune-request.schema.json +17 -0
  132. package/adapters/qoder/src/schemas/file-set-recovery-request.schema.json +29 -0
  133. package/adapters/qoder/src/schemas/file-set-result.schema.json +79 -0
  134. package/adapters/qoder/src/schemas/professional-conclusion.schema.json +132 -0
  135. package/adapters/qoder/src/schemas/project-manifest.schema.json +91 -0
  136. package/adapters/qoder/src/schemas/state-store-recovery-observation.schema.json +129 -0
  137. package/adapters/workbuddy/.codebuddy-plugin/plugin.json +1 -1
  138. package/adapters/workbuddy/bin/consumer-contract-vectors.json +7 -7
  139. package/adapters/workbuddy/bin/error-codes.json +1 -1
  140. package/adapters/workbuddy/bin/foundation-resource-binding.json +1 -1
  141. package/adapters/workbuddy/bin/registry.json +50 -1
  142. package/adapters/workbuddy/bin/release-skill.bundle.mjs +2680 -2180
  143. package/adapters/workbuddy/bin/rules.json +1 -1
  144. package/adapters/workbuddy/skills/release-assess/SKILL.md +17 -3
  145. package/adapters/workbuddy/skills/release-config/SKILL.md +6 -0
  146. package/adapters/workbuddy/skills/release-docs/SKILL.md +6 -0
  147. package/adapters/workbuddy/skills/release-help/SKILL.md +7 -2
  148. package/adapters/workbuddy/skills/release-marketplace/SKILL.md +6 -0
  149. package/adapters/workbuddy/skills/release-prepare/SKILL.md +8 -2
  150. package/adapters/workbuddy/skills/release-publish/SKILL.md +7 -1
  151. package/adapters/workbuddy/skills/release-reconcile/SKILL.md +6 -0
  152. package/adapters/workbuddy/skills/release-setup/SKILL.md +9 -1
  153. package/adapters/workbuddy/skills/release-verify/SKILL.md +6 -0
  154. package/adapters/workbuddy/src/schemas/file-set-apply-request.schema.json +78 -0
  155. package/adapters/workbuddy/src/schemas/file-set-event-payload.schema.json +55 -0
  156. package/adapters/workbuddy/src/schemas/file-set-prune-request.schema.json +17 -0
  157. package/adapters/workbuddy/src/schemas/file-set-recovery-request.schema.json +29 -0
  158. package/adapters/workbuddy/src/schemas/file-set-result.schema.json +79 -0
  159. package/adapters/workbuddy/src/schemas/professional-conclusion.schema.json +132 -0
  160. package/adapters/workbuddy/src/schemas/project-manifest.schema.json +91 -0
  161. package/adapters/workbuddy/src/schemas/state-store-recovery-observation.schema.json +129 -0
  162. package/bin/consumer-contract-vectors.json +7 -7
  163. package/bin/error-codes.json +1 -1
  164. package/bin/foundation-resource-binding.json +1 -1
  165. package/bin/registry.json +50 -1
  166. package/bin/release-skill-cli.mjs +80 -5
  167. package/bin/release-skill.bundle.mjs +2680 -2180
  168. package/bin/rules.json +1 -1
  169. package/package.json +4 -4
  170. package/platform-manifest.json +4 -4
  171. package/references/05-evidence-and-errors.md +2 -2
  172. package/scripts/build-bundle.mjs +2 -1
  173. package/scripts/sync-public-files.mjs +1 -1
  174. package/skills/release-assess/SKILL.md +17 -3
  175. package/skills/release-config/SKILL.md +6 -0
  176. package/skills/release-docs/SKILL.md +6 -0
  177. package/skills/release-help/SKILL.md +7 -2
  178. package/skills/release-marketplace/SKILL.md +6 -0
  179. package/skills/release-prepare/SKILL.md +8 -2
  180. package/skills/release-publish/SKILL.md +7 -1
  181. package/skills/release-reconcile/SKILL.md +6 -0
  182. package/skills/release-setup/SKILL.md +9 -1
  183. package/skills/release-verify/SKILL.md +6 -0
  184. package/skills-src/release-assess/SKILL.md +17 -3
  185. package/skills-src/release-config/SKILL.md +6 -0
  186. package/skills-src/release-docs/SKILL.md +6 -0
  187. package/skills-src/release-help/SKILL.md +7 -2
  188. package/skills-src/release-marketplace/SKILL.md +6 -0
  189. package/skills-src/release-prepare/SKILL.md +8 -2
  190. package/skills-src/release-publish/SKILL.md +7 -1
  191. package/skills-src/release-reconcile/SKILL.md +6 -0
  192. package/skills-src/release-setup/SKILL.md +9 -1
  193. package/skills-src/release-verify/SKILL.md +6 -0
  194. package/src/adapters/plugin-marketplace.mjs +7 -12
  195. package/src/artifacts/producer-registry.mjs +4 -3
  196. package/src/commands/assess.mjs +23 -3
  197. package/src/commands/post-release-local.mjs +2 -2
  198. package/src/commands/prepare.mjs +5 -30
  199. package/src/commands/professional-proof.mjs +506 -0
  200. package/src/commands/setup.mjs +16 -5
  201. package/src/commands/verify-records.mjs +14 -0
  202. package/src/core/baseline.mjs +9 -1
  203. package/src/core/derived-artifact-gates.mjs +38 -9
  204. package/src/core/redact.mjs +12 -5
  205. package/src/core/source-authority.mjs +28 -3
  206. package/src/npm/npm-entry-closure.mjs +71 -9
  207. package/src/producers/build-adapters.mjs +18 -5
  208. package/src/producers/foundation-resource-projection.mjs +3 -3
  209. package/src/producers/render-public-assets.mjs +2 -1
  210. package/src/producers/sync-skills.mjs +2 -1
  211. package/src/schemas/file-set-apply-request.schema.json +78 -0
  212. package/src/schemas/file-set-event-payload.schema.json +55 -0
  213. package/src/schemas/file-set-prune-request.schema.json +17 -0
  214. package/src/schemas/file-set-recovery-request.schema.json +29 -0
  215. package/src/schemas/file-set-result.schema.json +79 -0
  216. package/src/schemas/professional-conclusion.schema.json +132 -0
  217. package/src/schemas/project-manifest.schema.json +91 -0
  218. package/src/schemas/state-store-recovery-observation.schema.json +129 -0
  219. package/src/snapshot/frozen.mjs +19 -14
  220. package/src/core/run-retention.mjs +0 -227
@@ -37,7 +37,7 @@ registerPathRedactor(redactSensitivePaths);
37
37
 
38
38
  const execFile = promisify(execFileCb);
39
39
 
40
- const COMMANDS = new Set(['help', 'setup', 'assess', 'prepare', 'approve', 'publish', 'reconcile', 'verify', 'verify-records', 'postverify', 'ship', 'post-release', 'attest', 'hooks', 'artifacts', 'docs', 'distribute', 'route', 'lineage']);
40
+ const COMMANDS = new Set(['help', 'setup', 'assess', 'prepare', 'approve', 'publish', 'reconcile', 'verify', 'verify-records', 'read-proof', 'postverify', 'ship', 'post-release', 'attest', 'hooks', 'artifacts', 'docs', 'distribute', 'route', 'lineage']);
41
41
 
42
42
  function printHubManualTargets(targets = []) {
43
43
  for (const target of targets) {
@@ -366,6 +366,7 @@ Commands:
366
366
  reconcile Resume PARTIAL state from evidence; conflicts require a human
367
367
  verify Fresh remote and consumer verification; only this reaches VERIFIED
368
368
  verify-records Verify explicitly supplied historical plan, approval, and run records offline
369
+ read-proof Read one family professional-conclusion file without rescanning the target
369
370
  postverify Run approved postVerify hooks from a VERIFIED run in an independent run
370
371
  ship Resume one durable prepare -> approve -> publish -> verify flow; completes a parked
371
372
  postVerify hook once its checkpoint approval is provided (--hook-approval)
@@ -389,6 +390,9 @@ Options:
389
390
  --approval <path> Path to the release-level approval record (required for publish/postverify)
390
391
  --production Prepare immutable Git/npm production artifacts
391
392
  --output <path> Override prepare/approve output path (non-production only)
393
+ --conclusion-output <absolute-path> Exclusive professional-conclusion file for setup --assess-adoption, assess --offline, or verify-records
394
+ --proof-root <path> Root that may be read by read-proof
395
+ --proof <relative> Contained relative proof path for read-proof
392
396
  --run-dir <path> Override prepare run directory; production requires one direct child of .release-skill/runs
393
397
  --workflow <full|docs|config|marketplace> Workflow profile for prepare (default full). docs/config/marketplace
394
398
  deterministically trim code-class gates (declared hooks, snapshot-verify gates,
@@ -741,7 +745,26 @@ Options:
741
745
 
742
746
  The command reads only these explicit paths. It never scans .release-skill,
743
747
  follows paths carried inside records, contacts a remote, writes a file, or
744
- changes release state.`);
748
+ changes release state. Optional --conclusion-output <absolute-path> creates one
749
+ new professional-conclusion file; existing files are not overwritten.`);
750
+ await exitAfterFlush(0);
751
+ }
752
+
753
+ if (command === 'read-proof' && (args.includes('--help') || args.includes('-h'))) {
754
+ console.log(`release-skill read-proof - Read one family professional-conclusion file
755
+
756
+ Usage:
757
+ release-skill read-proof --proof-root <root> --proof <relative> --json
758
+
759
+ Options:
760
+ --proof-root <path> Root the caller allows this command to read
761
+ --proof <relative> Contained relative path of the proof file
762
+ --json Required; output one JSON result
763
+ -h, --help Show this help message and exit
764
+
765
+ The command reads only that relative path. It does not rescan the target,
766
+ follow paths inside the proof body, execute the target, or call verify-records
767
+ to reload historical records.`);
745
768
  await exitAfterFlush(0);
746
769
  }
747
770
 
@@ -806,8 +829,9 @@ if (command === 'verify-records') {
806
829
  const {
807
830
  VERIFY_RECORDS_EXIT_CODES,
808
831
  verifyReleaseRecords,
832
+ attachVerifyRecordsConclusion,
809
833
  } = await import('../src/commands/verify-records.mjs');
810
- const result = verifyReleaseRecords({
834
+ let result = verifyReleaseRecords({
811
835
  plan,
812
836
  approval,
813
837
  targetRun,
@@ -815,10 +839,53 @@ if (command === 'verify-records') {
815
839
  unitId,
816
840
  targetVersion,
817
841
  });
842
+ try {
843
+ result = await attachVerifyRecordsConclusion(
844
+ result,
845
+ value('--conclusion-output'),
846
+ `${unitId ?? 'missing-unit'}@${targetVersion ?? 'missing-version'}`,
847
+ );
848
+ } catch (err) {
849
+ console.log(JSON.stringify({
850
+ error: err.code ?? 'UNKNOWN_ERROR',
851
+ message: err.message,
852
+ details: publicErrorDetails(err),
853
+ exitCode: err.exitCode ?? 1,
854
+ }));
855
+ await exitAfterFlush(err.exitCode ?? 1);
856
+ }
818
857
  console.log(JSON.stringify(result));
819
858
  await exitAfterFlush(VERIFY_RECORDS_EXIT_CODES[result.status]);
820
859
  }
821
860
 
861
+ if (command === 'read-proof') {
862
+ const value = (flag) => {
863
+ const index = args.indexOf(flag);
864
+ return index !== -1 && args[index + 1] && !args[index + 1].startsWith('--')
865
+ ? args[index + 1]
866
+ : undefined;
867
+ };
868
+ if (!hasJson) {
869
+ console.log(JSON.stringify({
870
+ status: 'unavailable',
871
+ reason: '--json is required for read-proof',
872
+ provider: null,
873
+ conclusion: null,
874
+ }));
875
+ await exitAfterFlush(2);
876
+ }
877
+ const {
878
+ READ_EXIT_CODES,
879
+ readProfessionalProof,
880
+ } = await import('../src/commands/professional-proof.mjs');
881
+ const result = await readProfessionalProof({
882
+ proofRoot: value('--proof-root'),
883
+ proofPath: value('--proof'),
884
+ });
885
+ console.log(JSON.stringify(result));
886
+ await exitAfterFlush(READ_EXIT_CODES[result.status] ?? 2);
887
+ }
888
+
822
889
  // --- Setup command routing ---
823
890
  if (command === 'setup') {
824
891
  const rootIdx = args.indexOf('--root');
@@ -836,8 +903,12 @@ if (command === 'setup') {
836
903
  // observations, structured gate drafts. Never writes, never goes remote.
837
904
  if (args.includes('--assess-adoption')) {
838
905
  try {
906
+ const conclusionIdx = args.indexOf('--conclusion-output');
907
+ const conclusionOutput = conclusionIdx !== -1 && args[conclusionIdx + 1] && !args[conclusionIdx + 1].startsWith('--')
908
+ ? args[conclusionIdx + 1]
909
+ : undefined;
839
910
  const setupModule = await import('../src/commands/setup.mjs');
840
- const report = await setupModule.assessAdoption({ root });
911
+ const report = await setupModule.assessAdoption({ root, conclusionOutput });
841
912
  if (hasJson) {
842
913
  console.log(JSON.stringify(report, null, 2));
843
914
  } else {
@@ -955,10 +1026,14 @@ if (command === 'assess') {
955
1026
  const offline = args.includes('--offline') || !args.includes('--online');
956
1027
  const outputIdx = args.indexOf('--output');
957
1028
  const output = outputIdx !== -1 && args[outputIdx + 1] ? args[outputIdx + 1] : undefined;
1029
+ const conclusionIdx = args.indexOf('--conclusion-output');
1030
+ const conclusionOutput = conclusionIdx !== -1 && args[conclusionIdx + 1] && !args[conclusionIdx + 1].startsWith('--')
1031
+ ? args[conclusionIdx + 1]
1032
+ : undefined;
958
1033
 
959
1034
  try {
960
1035
  const { assessProject } = await import('../src/commands/assess.mjs');
961
- const report = await assessProject({ root, offline, output });
1036
+ const report = await assessProject({ root, offline, output, conclusionOutput });
962
1037
 
963
1038
  if (hasJson) {
964
1039
  console.log(JSON.stringify(report, null, 2));