uv-suite 0.11.0 → 0.12.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/hooks/doc-slop-grep.sh +50 -0
- package/package.json +1 -1
- package/personas/spike.json +4 -5
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# UV Suite Hook: Fast deterministic doc-slop check
|
|
3
|
+
# Event: PostToolUse (Write) — Spike persona
|
|
4
|
+
# Greps for vague adjectives and buzzwords in documentation files. No LLM.
|
|
5
|
+
|
|
6
|
+
INPUT=$(cat)
|
|
7
|
+
FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // empty')
|
|
8
|
+
|
|
9
|
+
if [ -z "$FILE_PATH" ] || [ ! -f "$FILE_PATH" ]; then
|
|
10
|
+
exit 0
|
|
11
|
+
fi
|
|
12
|
+
|
|
13
|
+
EXT="${FILE_PATH##*.}"
|
|
14
|
+
|
|
15
|
+
# Only check markdown and text files
|
|
16
|
+
case "$EXT" in
|
|
17
|
+
md|txt|rst|adoc) ;;
|
|
18
|
+
*) exit 0 ;;
|
|
19
|
+
esac
|
|
20
|
+
|
|
21
|
+
FINDINGS=""
|
|
22
|
+
|
|
23
|
+
# Vague adjectives that say nothing
|
|
24
|
+
MATCH=$(grep -in "robust\|scalable\|comprehensive\|extensible\|maintainable\|enterprise-grade\|battle-tested\|cutting-edge\|state-of-the-art" "$FILE_PATH" 2>/dev/null | head -3)
|
|
25
|
+
if [ -n "$MATCH" ]; then
|
|
26
|
+
FINDINGS="${FINDINGS}Vague adjectives — replace with specific facts: $(echo "$MATCH" | head -1 | sed 's/"/\\"/g'). "
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
# Evasive verbs
|
|
30
|
+
MATCH=$(grep -in "leverages\|utilizes\|facilitates\|empowers\|enables seamless" "$FILE_PATH" 2>/dev/null | head -3)
|
|
31
|
+
if [ -n "$MATCH" ]; then
|
|
32
|
+
FINDINGS="${FINDINGS}Evasive verbs — say what it actually does: $(echo "$MATCH" | head -1 | sed 's/"/\\"/g'). "
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
# Authority appeals without specifics
|
|
36
|
+
MATCH=$(grep -in "best practices\|industry-standard\|widely adopted\|production-ready" "$FILE_PATH" 2>/dev/null | head -3)
|
|
37
|
+
if [ -n "$MATCH" ]; then
|
|
38
|
+
FINDINGS="${FINDINGS}Name the specific practice instead of citing authority: $(echo "$MATCH" | head -1 | sed 's/"/\\"/g'). "
|
|
39
|
+
fi
|
|
40
|
+
|
|
41
|
+
if [ -n "$FINDINGS" ]; then
|
|
42
|
+
cat <<EOF
|
|
43
|
+
{
|
|
44
|
+
"continue": true,
|
|
45
|
+
"systemMessage": "Doc slop: ${FINDINGS}"
|
|
46
|
+
}
|
|
47
|
+
EOF
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
exit 0
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "uv-suite",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "Portable framework for AI-assisted software development. 10 agents, 9 skills, 5 hooks, 4 personas. Works with Claude Code, Cursor, and Codex.",
|
|
5
5
|
"author": "Utsav Anand",
|
|
6
6
|
"license": "MIT",
|
package/personas/spike.json
CHANGED
|
@@ -49,11 +49,10 @@
|
|
|
49
49
|
"matcher": "Write",
|
|
50
50
|
"hooks": [
|
|
51
51
|
{
|
|
52
|
-
"type": "
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"statusMessage": "Checking documentation quality..."
|
|
52
|
+
"type": "command",
|
|
53
|
+
"command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/doc-slop-grep.sh",
|
|
54
|
+
"timeout": 3,
|
|
55
|
+
"statusMessage": "Doc quality check..."
|
|
57
56
|
}
|
|
58
57
|
]
|
|
59
58
|
}
|