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.
@@ -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.11.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",
@@ -49,11 +49,10 @@
49
49
  "matcher": "Write",
50
50
  "hooks": [
51
51
  {
52
- "type": "prompt",
53
- "prompt": "The agent just wrote a documentation or analysis file. Check for documentation slop: (1) vague adjectives like 'robust', 'scalable', 'comprehensive', 'leverages', 'facilitates', (2) feature lists that could describe any system, (3) overview sections that don't say what the system actually does, (4) claims without specifics ('industry-standard best practices'). If you find slop, respond {\"ok\": false, \"reason\": \"Doc slop: [finding]. Fix: replace with specific facts.\"}. If clean, respond {\"ok\": true}.",
54
- "model": "claude-haiku-4-5",
55
- "timeout": 15,
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
  }