@spardutti/claude-skills 2.19.3 → 2.19.5

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 (2) hide show
  1. package/lib/setup-hook.mjs +10 -4
  2. package/package.json +1 -1
@@ -790,8 +790,14 @@ for owner in $OWNERS; do
790
790
  done <<< "$FILES")
791
791
  [ -z "$OWNED" ] && continue
792
792
 
793
- # --mutate flags, one per changed hunk. Ranges inside a file are already
794
- # comma-separated, so they cannot share a comma-joined list across files.
793
+ # ONE comma-joined --mutate value, never a flag per range. Stryker's CLI
794
+ # parses --mutate with \`(val) => val.split(",")\`, a coercion that ignores the
795
+ # previous value, so a repeated flag OVERRIDES instead of appending and only
796
+ # the last one survives. Measured on two files: the repeated form found 1 of
797
+ # 1808 files and 28 mutants, the joined form 2 files and 51. Every run since
798
+ # this gate shipped mutated exactly one file and called the rest proven — and
799
+ # when that one file had no tests, Stryker exited on "No tests were executed"
800
+ # and the gate reported UNPROVEN, which writes a receipt and blocks nothing.
795
801
  FLAGS=""
796
802
  while IFS= read -r f; do
797
803
  hunks=$(git diff -U0 "$BASE" -- "$f" 2>/dev/null \\
@@ -799,7 +805,7 @@ for owner in $OWNERS; do
799
805
  | while IFS=, read -r s l; do l=\${l:-1}; [ "$l" -gt 0 ] && echo "$s-$((s+l-1))"; done)
800
806
  [ -z "$hunks" ] && hunks="1-$(wc -l < "$f")"
801
807
  rel=\${f#$owner/}
802
- for r in $hunks; do FLAGS="$FLAGS --mutate '$rel:$r'"; done
808
+ for r in $hunks; do FLAGS="$FLAGS,$rel:$r"; done
803
809
  done <<< "$OWNED"
804
810
 
805
811
  base=""; RUN=""
@@ -819,7 +825,7 @@ for owner in $OWNERS; do
819
825
  # 8 of them on one commit, all long since killed. --mutate already scopes
820
826
  # the run to the changed hunks, so incremental buys nothing here and costs
821
827
  # a cache that goes stale exactly the way mutmut's did.
822
- CMD="\${RUN}npx --no-install stryker run $FLAGS"
828
+ CMD="\${RUN}npx --no-install stryker run --mutate '\${FLAGS#,}'"
823
829
  elif [ -f "$base"package.json ]; then
824
830
  MISSING="$MISSING $label needs Stryker:
825
831
  npm --prefix \${owner} i -D @stryker-mutator/core @stryker-mutator/vitest-runner
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spardutti/claude-skills",
3
- "version": "2.19.3",
3
+ "version": "2.19.5",
4
4
  "description": "CLI to install Claude Code skills from the claude-skills collection",
5
5
  "type": "module",
6
6
  "repository": {