@spardutti/claude-skills 2.54.2 → 2.55.0
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 +1 -1
- package/hooks/ship-gate-files.sh +3 -4
- package/lib/setup-claude-md.mjs +1 -0
- package/lib/sync.mjs +2 -1
- package/package.json +1 -1
package/README.md
CHANGED
package/hooks/ship-gate-files.sh
CHANGED
|
@@ -14,14 +14,13 @@ changed_tests() { # changed_tests <family>
|
|
|
14
14
|
done
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
# Everything a file's verdict rests on besides the file itself and the tests
|
|
18
|
-
#
|
|
17
|
+
# Everything a file's verdict rests on besides the file itself and the tests: the base, the gate,
|
|
18
|
+
# and the test setup. Other code is left out, so one fix no longer re-mutates every clean file.
|
|
19
19
|
files_context() { # files_context <owner> <owned files>
|
|
20
20
|
fam=$(family_of "$1/.")
|
|
21
21
|
{ printf '%s\n' "$PROJECT_DIR" "$1" "$(git rev-parse "$BASE" 2>/dev/null)"
|
|
22
22
|
cat "$HERE/ship-gate.sh" "$HERE/ship-gate-projects.sh" "$HERE/ship-gate-files.sh" "$HERE/gate-config.sh" "$HERE/line-limit.sh"
|
|
23
|
-
printf '%s\n' "$CHANGED" | grep -
|
|
24
|
-
| grep -vxF -f <(printf '%s\n' "$2") | while IFS= read -r f; do
|
|
23
|
+
printf '%s\n' "$CHANGED" | grep -E "$SETUP_RE" | while IFS= read -r f; do
|
|
25
24
|
[ -n "$f" ] || continue
|
|
26
25
|
case "$(family_of "$f")" in "$fam"|any) printf '%s\n' "$f"; [ -f "$f" ] && cat "$f" ;; esac
|
|
27
26
|
done; } | git hash-object --stdin
|
package/lib/setup-claude-md.mjs
CHANGED
|
@@ -27,6 +27,7 @@ The hooks and skills in \`.claude/\` come from \`@spardutti/claude-skills\`. Fac
|
|
|
27
27
|
- **Make it mandatory on some files:** put \`gate-paths: "src/**/*.tsx"\` under \`metadata:\`, quoted. A bare top-level \`paths:\` makes Claude Code drop the skill. Add \`tracks: react@19\` to fire only when the project depends on that package.
|
|
28
28
|
- **Hook settings** live in \`.claude/gauntlet.conf\` (shell syntax): \`GAUNTLET_TEST\`, \`GAUNTLET_TYPECHECK\`, \`GAUNTLET_BASE\` (the trunk branch, if not develop/dev/main), \`GAUNTLET_MAX_LINES\`, \`GAUNTLET_IGNORE_FILES\`, \`GAUNTLET_OFF=1\`.
|
|
29
29
|
- **Shipping:** open, merge or release a PR only through the \`/ship\` command; load it every time, even when you remember the steps. Never run \`ship-gate.sh\` with \`--force\` or \`--baseline\` unless the user asks.
|
|
30
|
+
- **Tests:** The Stop hook runs the changed files' tests when you end your turn. Don't run them yourself to check; run one test file only to see a new test fail first.
|
|
30
31
|
- **Never edit \`.claude/hooks/\`** — a sync overwrites it. Update with \`npx @spardutti/claude-skills --sync\`.`;
|
|
31
32
|
|
|
32
33
|
const BLOCKS = [
|
package/lib/sync.mjs
CHANGED
|
@@ -4,6 +4,7 @@ import { readdir } from "node:fs/promises";
|
|
|
4
4
|
import { join, basename } from "node:path";
|
|
5
5
|
import { installSkills, installCommands, installRequiredAgents } from "./install.mjs";
|
|
6
6
|
import { setupHook } from "./setup-hook.mjs";
|
|
7
|
+
import { setupClaudeMd } from "./setup-claude-md.mjs";
|
|
7
8
|
import { readManifest, writeManifest, computeOrphans, removeArtifacts, MANIFEST_FILE } from "./manifest.mjs";
|
|
8
9
|
|
|
9
10
|
const SEARCH_DEPTH = 5;
|
|
@@ -28,7 +29,7 @@ export async function runSync(dir, catalog, version) {
|
|
|
28
29
|
if (skills.length > 0) { console.log(); await installSkills(skills, dir); }
|
|
29
30
|
if (commands.length > 0) { console.log(); await installCommands(commands, dir); }
|
|
30
31
|
const { installed } = await installRequiredAgents(commands, catalog.agents, dir);
|
|
31
|
-
if (existsSync(join(dir, ".claude", "hooks", "skill-gate.sh"))) { console.log(); await setupHook(dir); }
|
|
32
|
+
if (existsSync(join(dir, ".claude", "hooks", "skill-gate.sh"))) { console.log(); await setupHook(dir); await setupClaudeMd(dir); }
|
|
32
33
|
|
|
33
34
|
await writeManifest(dir, {
|
|
34
35
|
catalogVersion: version,
|