@spardutti/claude-skills 2.38.0 → 2.38.2

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.
@@ -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.
@@ -46,8 +46,10 @@ js_misplaced() { # js_misplaced <path> <owner>
46
46
  echo "sorted by kind first; it belongs in <domain>/<kind>/ or shared/<kind>/"
47
47
  elif printf '%s' "$b" | grep -qE '^use[A-Z].*\.[jt]sx?$' && ! printf '%s' "/$f" | grep -qE '/(hooks|queries)/'; then
48
48
  echo "a hook belongs in hooks/ or queries/"
49
+ # Stimulus loads *_controller.js from any depth under controllers/, so controllers/components/ is its kind folder.
49
50
  elif printf '%s' "$b" | grep -qE "$STRUCTURE_KIND_FILE" \
50
- && ! printf '%s' "$parent" | grep -qxE 'routes|controllers|services|schemas|models|api|queries|types'; then
51
+ && ! printf '%s' "$parent" | grep -qxE 'routes|controllers|services|schemas|models|api|queries|types' \
52
+ && ! printf '%s' "/$f" | grep -qE '/controllers/(.+/)?[^/]+_controller\.[jt]s$'; then
51
53
  echo "the kind is in the filename; it belongs in a kind folder"
52
54
  fi
53
55
  }
@@ -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' ' ')
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spardutti/claude-skills",
3
- "version": "2.38.0",
3
+ "version": "2.38.2",
4
4
  "description": "Guardrails for Claude Code — best-practice skills, planning commands, and delivery gates.",
5
5
  "type": "module",
6
6
  "repository": {