@spardutti/claude-skills 2.55.1 → 2.56.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 +1 -1
- package/hooks/ship-log-report.mjs +4 -2
- package/hooks/ship-log.mjs +1 -1
- package/hooks/ship-mark.sh +8 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,7 +6,9 @@ function records(dir) {
|
|
|
6
6
|
return [...read(dir), ...read(join(dir, "open"))].flatMap((f) => {
|
|
7
7
|
try {
|
|
8
8
|
const r = JSON.parse(readFileSync(f, "utf8"));
|
|
9
|
-
|
|
9
|
+
const log = r?.v === 1 && Array.isArray(r.gate) && Array.isArray(r.findings);
|
|
10
|
+
// A /ship that only merged opens a log and never fills it.
|
|
11
|
+
return log && (r.gate.length || r.findings.length) ? [r] : [];
|
|
10
12
|
} catch { return []; }
|
|
11
13
|
});
|
|
12
14
|
}
|
|
@@ -14,7 +16,7 @@ function records(dir) {
|
|
|
14
16
|
export function tally(findings) {
|
|
15
17
|
const by = {};
|
|
16
18
|
for (const f of findings) {
|
|
17
|
-
const s = (by[f.by.split(":")[0]] ??= { found: 0, confirmed: 0, refuted: 0, unconfirmed: 0, fixed: 0 });
|
|
19
|
+
const s = (by[f.by.split(":")[0]] ??= { found: 0, confirmed: 0, refuted: 0, unconfirmed: 0, skipped: 0, fixed: 0 });
|
|
18
20
|
s.found++; s[f.verdict]++; if (f.fixed) s.fixed++;
|
|
19
21
|
}
|
|
20
22
|
return by;
|
package/hooks/ship-log.mjs
CHANGED
|
@@ -6,7 +6,7 @@ import { git, parseReport, prSize } from "./ship-log-parse.mjs";
|
|
|
6
6
|
import { printReport, tally } from "./ship-log-report.mjs";
|
|
7
7
|
|
|
8
8
|
const HERE = dirname(resolve(process.argv[1]));
|
|
9
|
-
const VERDICTS = ["confirmed", "refuted", "unconfirmed"];
|
|
9
|
+
const VERDICTS = ["confirmed", "refuted", "unconfirmed", "skipped"];
|
|
10
10
|
const now = () => new Date().toISOString().replace(/\.\d+Z$/, "Z");
|
|
11
11
|
|
|
12
12
|
// gate-config.sh owns the config files and their order, so the gate and this agree on "on".
|
package/hooks/ship-mark.sh
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
|
+
HERE="$(cd "$(dirname "$0")" && pwd)"
|
|
2
3
|
cd "${CLAUDE_PROJECT_DIR:-$PWD}" 2>/dev/null || exit 1
|
|
4
|
+
NO_LOG=""; [ "${2:-}" = "--no-log" ] && { NO_LOG=1; set -- "$1" "${@:3}"; }
|
|
3
5
|
# The shared .git dir, so a worktree's mark is found from the main folder.
|
|
4
6
|
COMMON=$(cd "$(git rev-parse --git-common-dir 2>/dev/null)" 2>/dev/null && pwd) || exit 1
|
|
5
7
|
BRANCH=${2:-$(git branch --show-current 2>/dev/null)}
|
|
@@ -8,7 +10,11 @@ MARK="/tmp/claude-ship-$(printf '%s %s' "$COMMON" "$BRANCH" | cksum | cut -d' '
|
|
|
8
10
|
|
|
9
11
|
# A mark lasts 12 hours, so a branch reused later (dev, for a release) needs /ship again.
|
|
10
12
|
case "${1:-}" in
|
|
11
|
-
begin)
|
|
13
|
+
begin)
|
|
14
|
+
touch "$MARK"
|
|
15
|
+
# The log opens here, not in ship.md: agents skipped that step. A failed log never fails the mark.
|
|
16
|
+
[ -z "$NO_LOG" ] && command -v node >/dev/null && node "$HERE/ship-log.mjs" start >/dev/null 2>&1
|
|
17
|
+
true ;;
|
|
12
18
|
check) [ -n "$(find "$MARK" -mmin -720 2>/dev/null)" ] ;;
|
|
13
|
-
*) echo "usage: ship-mark.sh begin | check [branch]" >&2; exit 2 ;;
|
|
19
|
+
*) echo "usage: ship-mark.sh begin [--no-log] | check [branch]" >&2; exit 2 ;;
|
|
14
20
|
esac
|