@spardutti/claude-skills 2.37.1 → 2.38.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.
package/README.md CHANGED
@@ -135,6 +135,7 @@ Portable slash commands installed to `.claude/commands/`. Some orchestrate paral
135
135
  | `/discover` | Find the right problem before deciding what to build — diverges first: generates competing framings through blind subagents under forced constraints, stress-tests the winner with a blind critic, and refuses to converge until every open question is answered or deferred, then drafts scope, non-goals, edge cases and success criteria for you to correct. Run before `/plan-feature` |
136
136
  | `/plan-feature` | Integration-first feature planning, then building — 3 parallel subagents scan for reusable code, patterns and touch points, grounded clarifying questions follow, and on your go the same agent builds the plan |
137
137
  | `/refactor` | Detect size / complexity / duplication / coupling issues via 4 parallel subagents, then refactor |
138
+ | `/optimize` | Make one measured job faster without changing what it proves — fixes a benchmark and a result that must not move, sends 4 read-only subagents to find suspects, then changes one thing per round with a prediction written first, keeping only what beats the noise. Profiles after every wrong prediction, reruns before judging a result that flipped, and ends by writing the cause as a skill rule for you |
138
139
  | `/deep-review` | Multi-agent deep code review — 5 parallel subagents catch guard bypasses, lost async state, wrong-table queries, dead references, protocol violations |
139
140
  | `/test-review` | Write-then-verify test review — scopes to the diff, runs red-green + mutation gates, then an isolated read-only subagent proves each test would catch a regression instead of rubber-stamping it |
140
141
  | `/handoff` | Write a handoff doc so a fresh session picks the work up — captures what auto-compaction loses: decisions made and rejected, dead ends already ruled out, why the tree is dirty, and the one next step |
@@ -65,10 +65,11 @@ survivor_list() { # survivor_list <survivors> <tool>
65
65
  echo " not equivalent — see testing-best-practices/MUTATION-TESTING.md."
66
66
  }
67
67
 
68
+ # .claude/ is this tooling, installed: gating it made a diff that only removed its hooks UNPROVEN.
68
69
  changed_files() {
69
70
  { git diff "$BASE"...HEAD --name-only 2>/dev/null
70
71
  git diff HEAD --name-only 2>/dev/null
71
- git ls-files --others --exclude-standard 2>/dev/null; } | sort -u
72
+ git ls-files --others --exclude-standard 2>/dev/null; } | sort -u | grep -vE '(^|/)\.claude/'
72
73
  }
73
74
 
74
75
  # Ignored extensions are left out; see the comment where ship-gate.sh first calls this.
@@ -167,7 +167,7 @@ if [ -z "$FILES" ]; then
167
167
  # the list named, so zero source files were found and a PASS receipt was
168
168
  # written over work nothing had checked. An extension this gate cannot place is
169
169
  # UNPROVEN: it does not block, but it never claims a pass either.
170
- UNKNOWN=$(printf '%s\n' "$CHANGED" | grep -E '\.[A-Za-z0-9]+$' \
170
+ UNKNOWN=$(printf '%s\n' "$CHANGED" | while IFS= read -r f; do [ -f "$f" ] && printf '%s\n' "$f"; done | grep -E '\.[A-Za-z0-9]+$' \
171
171
  | grep -viE "\.($GAUNTLET_SOURCE_EXT)$" \
172
172
  | grep -viE "\.($GAUNTLET_IGNORE_EXT)$" \
173
173
  | sed 's/.*\.//' | sort -u | tr '\n' ' ')
@@ -43,6 +43,8 @@ if [ "$TOOL" != "Bash" ]; then
43
43
  # The settings file that configures the escape hatch cannot sit behind the
44
44
  # gate, or a denied ack has no way to be un-denied.
45
45
  */.claude/settings.json|*/.claude/settings.local.json) exit 0 ;;
46
+ # /optimize's benchmark lives outside the repo so no round can edit it; it is not project code.
47
+ /tmp/claude-optimize-*) exit 0 ;;
46
48
  *.*) printf '%s' "$TARGET" | grep -qiE ".($PROSE_EXT)$" && exit 0 ;;
47
49
  esac
48
50
  fi
@@ -61,6 +61,8 @@ if [ "$TOOL" != "Bash" ]; then
61
61
  # matters: a skill claiming **/* gated it, and nothing could re-open it.
62
62
  .claude/settings.json|.claude/settings.local.json) exit 0 ;;
63
63
  */.claude/settings.json|*/.claude/settings.local.json) exit 0 ;;
64
+ # /optimize's benchmark lives outside the repo so no round can edit it; it is not project code.
65
+ /tmp/claude-optimize-*) exit 0 ;;
64
66
  *.*) printf '%s' "$TARGET" | grep -qiE ".($PROSE_EXT)$" && exit 0 ;;
65
67
  esac
66
68
  TARGETS="$TARGET"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spardutti/claude-skills",
3
- "version": "2.37.1",
3
+ "version": "2.38.1",
4
4
  "description": "Guardrails for Claude Code — best-practice skills, planning commands, and delivery gates.",
5
5
  "type": "module",
6
6
  "repository": {