release-skill 0.6.0 → 0.6.1

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 (36) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.codebuddy-plugin/plugin.json +1 -1
  4. package/.codex-plugin/plugin.json +2 -2
  5. package/.kimi-plugin/plugin.json +1 -1
  6. package/CHANGELOG.md +14 -0
  7. package/INSTALL.md +2 -2
  8. package/INSTALL.zh-CN.md +2 -2
  9. package/README.md +9 -8
  10. package/README.zh-CN.md +9 -8
  11. package/adapters/claude/.claude-plugin/marketplace.json +1 -1
  12. package/adapters/claude/.claude-plugin/plugin.json +1 -1
  13. package/adapters/claude/bin/release-skill.bundle.mjs +705 -356
  14. package/adapters/claude/schemas/release-project.schema.json +8 -0
  15. package/adapters/codex/.codex-plugin/plugin.json +2 -2
  16. package/adapters/codex/bin/release-skill.bundle.mjs +705 -356
  17. package/adapters/codex/schemas/release-project.schema.json +8 -0
  18. package/adapters/kimi/.kimi-plugin/plugin.json +1 -1
  19. package/adapters/kimi/bin/release-skill.bundle.mjs +705 -356
  20. package/adapters/kimi/schemas/release-project.schema.json +8 -0
  21. package/adapters/workbuddy/.codebuddy-plugin/plugin.json +1 -1
  22. package/adapters/workbuddy/bin/release-skill.bundle.mjs +705 -356
  23. package/adapters/workbuddy/schemas/release-project.schema.json +8 -0
  24. package/bin/release-skill-cli.mjs +11 -0
  25. package/bin/release-skill.bundle.mjs +705 -356
  26. package/package.json +1 -1
  27. package/references/05-evidence-and-errors.md +1 -0
  28. package/schemas/release-project.schema.json +8 -0
  29. package/scripts/build-bundle.mjs +11 -2
  30. package/scripts/sync-public-files.mjs +4 -0
  31. package/src/commands/prepare.mjs +214 -8
  32. package/src/commands/verify.mjs +22 -0
  33. package/src/core/bundle-freshness.mjs +236 -0
  34. package/src/core/errors.mjs +2 -0
  35. package/src/core/frozen-marker.mjs +97 -0
  36. package/src/core/hooks.mjs +12 -1
@@ -873,6 +873,14 @@
873
873
  },
874
874
  "uniqueItems": true,
875
875
  "description": "Root-relative globs declaring the hook's full input set (source, scripts, config, lockfiles). The cache key fingerprints the content of every matched file; a glob that matches nothing fails closed. Must cover ALL inputs or the cache can return a false hit."
876
+ },
877
+ "testSelection": {
878
+ "type": "string",
879
+ "enum": [
880
+ "full",
881
+ "incremental"
882
+ ],
883
+ "description": "Only meaningful for the test hook: which test selection the hook command runs. Absence or 'full' means the hook runs the full suite, which prepare's built-in full-test freeze gate requires before the plan digest is computed. 'incremental' is reserved for a future preflight mode and is rejected at freeze time ('incremental selection is not allowed at freeze time'). Built-in gate; cannot be disabled by project overlays."
876
884
  }
877
885
  }
878
886
  },
@@ -258,6 +258,9 @@ Options:
258
258
  deterministically trim code-class gates (declared hooks, snapshot-verify gates,
259
259
  source-authority closure, skill-resource-closure) and record workflowDecision in the plan;
260
260
  config also reports whether the public bytes are unchanged (no publish path)
261
+ --test-selection <full|incremental> Test selection for the test hook (prepare). Only 'full' is accepted at
262
+ freeze time; 'incremental' is reserved for a future preflight mode and is rejected
263
+ ('incremental selection is not allowed at freeze time')
261
264
  --answers <path> Human-reviewed setup answers JSON
262
265
  --write Create an absent project.yaml during setup; never overwrites
263
266
  --confirm-setup <digest> Confirm exact setup facts and answers before create
@@ -699,6 +702,13 @@ if (command === 'prepare') {
699
702
  const production = args.includes('--production');
700
703
  const workflowIdx = args.indexOf('--workflow');
701
704
  const workflow = workflowIdx !== -1 && args[workflowIdx + 1] ? args[workflowIdx + 1] : 'full';
705
+ // Test-selection flag (2026-08-18 investigation §4.4): reserved for a
706
+ // future preflight mode. prepare rejects 'incremental' at freeze time;
707
+ // the flag is parsed here only so the CLI surface matches the contract.
708
+ const testSelectionIdx = args.indexOf('--test-selection');
709
+ const testSelection = testSelectionIdx !== -1 && args[testSelectionIdx + 1]
710
+ ? args[testSelectionIdx + 1]
711
+ : undefined;
702
712
  const outputIdx = args.indexOf('--output');
703
713
  const output = outputIdx !== -1 && args[outputIdx + 1] ? resolve(args[outputIdx + 1]) : undefined;
704
714
  const runDirIdx = args.indexOf('--run-dir');
@@ -716,6 +726,7 @@ if (command === 'prepare') {
716
726
  hookCache,
717
727
  production,
718
728
  workflow,
729
+ testSelection,
719
730
  output,
720
731
  runDir,
721
732
  });