uv-suite 0.1.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.
Files changed (70) hide show
  1. package/README.md +180 -0
  2. package/agents/claude-code/anti-slop-guard.md +84 -0
  3. package/agents/claude-code/architect.md +68 -0
  4. package/agents/claude-code/cartographer.md +99 -0
  5. package/agents/claude-code/devops.md +43 -0
  6. package/agents/claude-code/eval-writer.md +57 -0
  7. package/agents/claude-code/prototype-builder.md +59 -0
  8. package/agents/claude-code/reviewer.md +76 -0
  9. package/agents/claude-code/security.md +69 -0
  10. package/agents/claude-code/spec-writer.md +81 -0
  11. package/agents/claude-code/test-writer.md +54 -0
  12. package/agents/codex/anti-slop-guard.toml +12 -0
  13. package/agents/codex/architect.toml +11 -0
  14. package/agents/codex/cartographer.toml +16 -0
  15. package/agents/codex/devops.toml +8 -0
  16. package/agents/codex/eval-writer.toml +11 -0
  17. package/agents/codex/prototype-builder.toml +10 -0
  18. package/agents/codex/reviewer.toml +16 -0
  19. package/agents/codex/security.toml +14 -0
  20. package/agents/codex/spec-writer.toml +11 -0
  21. package/agents/codex/test-writer.toml +13 -0
  22. package/agents/cursor/anti-slop-guard.mdc +22 -0
  23. package/agents/cursor/architect.mdc +24 -0
  24. package/agents/cursor/cartographer.mdc +28 -0
  25. package/agents/cursor/devops.mdc +16 -0
  26. package/agents/cursor/eval-writer.mdc +21 -0
  27. package/agents/cursor/prototype-builder.mdc +25 -0
  28. package/agents/cursor/reviewer.mdc +26 -0
  29. package/agents/cursor/security.mdc +20 -0
  30. package/agents/cursor/spec-writer.mdc +27 -0
  31. package/agents/cursor/test-writer.mdc +28 -0
  32. package/agents/portable/anti-slop-guard.md +71 -0
  33. package/agents/portable/architect.md +83 -0
  34. package/agents/portable/cartographer.md +64 -0
  35. package/agents/portable/devops.md +56 -0
  36. package/agents/portable/eval-writer.md +70 -0
  37. package/agents/portable/prototype-builder.md +70 -0
  38. package/agents/portable/reviewer.md +79 -0
  39. package/agents/portable/security.md +63 -0
  40. package/agents/portable/spec-writer.md +89 -0
  41. package/agents/portable/test-writer.md +56 -0
  42. package/bin/cli.js +84 -0
  43. package/guardrails/architecture-slop.md +60 -0
  44. package/guardrails/comment-slop.md +53 -0
  45. package/guardrails/doc-slop.md +62 -0
  46. package/guardrails/error-handling-slop.md +65 -0
  47. package/guardrails/overengineering-slop.md +56 -0
  48. package/guardrails/test-slop.md +72 -0
  49. package/hooks/auto-lint.sh +41 -0
  50. package/hooks/block-destructive.sh +34 -0
  51. package/hooks/danger-zone-check.sh +42 -0
  52. package/hooks/session-review-reminder.sh +35 -0
  53. package/install.sh +230 -0
  54. package/package.json +39 -0
  55. package/personas/auto.json +80 -0
  56. package/personas/professional.json +109 -0
  57. package/personas/spike.json +54 -0
  58. package/personas/sport.json +39 -0
  59. package/settings.json +108 -0
  60. package/skills/architect/SKILL.md +26 -0
  61. package/skills/map-codebase/SKILL.md +50 -0
  62. package/skills/persona/SKILL.md +4 -0
  63. package/skills/prototype/SKILL.md +27 -0
  64. package/skills/review/SKILL.md +39 -0
  65. package/skills/security-review/SKILL.md +73 -0
  66. package/skills/slop-check/SKILL.md +30 -0
  67. package/skills/spec/SKILL.md +33 -0
  68. package/skills/write-evals/SKILL.md +28 -0
  69. package/skills/write-tests/SKILL.md +40 -0
  70. package/uv.sh +56 -0
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: map-codebase
3
+ description: >
4
+ Map a codebase or directory: build a knowledge graph (via Graphify if available),
5
+ then produce architecture overview, business domain map, sequence diagrams, and
6
+ entry points. Use when entering a new codebase or unfamiliar area.
7
+ argument-hint: "[directory-or-question]"
8
+ user-invocable: true
9
+ context: fork
10
+ agent: cartographer
11
+ model: claude-opus-4-6
12
+ effort: high
13
+ allowed-tools:
14
+ - Read(*)
15
+ - Grep(*)
16
+ - Glob(*)
17
+ - Bash(graphify *)
18
+ - Bash(find *)
19
+ - Bash(git log *)
20
+ - Bash(git ls-files *)
21
+ - Bash(wc *)
22
+ - Bash(head *)
23
+ - Bash(pip *)
24
+ ---
25
+
26
+ ## Target
27
+
28
+ $ARGUMENTS
29
+
30
+ If no target specified, map the current project root.
31
+
32
+ ## Graphify availability
33
+
34
+ ```!
35
+ graphify --version 2>/dev/null || echo "NOT_INSTALLED"
36
+ ```
37
+
38
+ ## Existing knowledge graph (if previously generated)
39
+
40
+ ```!
41
+ cat graphify-out/GRAPH_REPORT.md 2>/dev/null | head -80 || echo "No existing graph found"
42
+ ```
43
+
44
+ ## Project context
45
+
46
+ !`cat CLAUDE.md 2>/dev/null || echo "No CLAUDE.md found"`
47
+
48
+ ## Danger zones
49
+
50
+ !`cat DANGER-ZONES.md 2>/dev/null || echo "No DANGER-ZONES.md found"`
@@ -0,0 +1,4 @@
1
+ DELETED — this skill was removed because persona switching mid-session
2
+ does not fully work (hooks and permissions only load at session start).
3
+
4
+ Use ./uv.sh [spike|sport|pro|auto] to start a new session with the right persona.
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: prototype
3
+ description: >
4
+ Build an interactive prototype as a static React site. For concept exploration,
5
+ stakeholder demos, presentations, and documentation websites.
6
+ argument-hint: "[concept-description]"
7
+ user-invocable: true
8
+ context: fork
9
+ agent: prototype-builder
10
+ model: claude-sonnet-4-6
11
+ effort: high
12
+ allowed-tools:
13
+ - Read(*)
14
+ - Grep(*)
15
+ - Glob(*)
16
+ - Write(*)
17
+ - Edit(*)
18
+ - Bash(npm *)
19
+ - Bash(npx *)
20
+ - Bash(node *)
21
+ - Bash(mkdir *)
22
+ - Bash(ls *)
23
+ ---
24
+
25
+ ## Concept
26
+
27
+ $ARGUMENTS
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: review
3
+ description: >
4
+ Code review for correctness, security, performance, maintainability, and AI slop.
5
+ Use before merging or as self-review.
6
+ argument-hint: "[file-or-branch]"
7
+ user-invocable: true
8
+ context: fork
9
+ agent: reviewer
10
+ model: claude-opus-4-6
11
+ effort: high
12
+ allowed-tools:
13
+ - Read(*)
14
+ - Grep(*)
15
+ - Glob(*)
16
+ - Bash(git diff *)
17
+ - Bash(git log *)
18
+ - Bash(git show *)
19
+ ---
20
+
21
+ ## Changes to review
22
+
23
+ !`git diff --cached --stat 2>/dev/null || git diff --stat 2>/dev/null || echo "No staged or unstaged changes found"`
24
+
25
+ ### Full diff
26
+
27
+ !`git diff --cached 2>/dev/null || git diff 2>/dev/null || echo "No diff available"`
28
+
29
+ ## Additional target
30
+
31
+ $ARGUMENTS
32
+
33
+ ## Project context
34
+
35
+ !`cat CLAUDE.md 2>/dev/null || echo "No CLAUDE.md found"`
36
+
37
+ ## Danger zones
38
+
39
+ !`cat DANGER-ZONES.md 2>/dev/null || echo "No DANGER-ZONES.md found"`
@@ -0,0 +1,73 @@
1
+ ---
2
+ name: security-review
3
+ description: >
4
+ OWASP-informed security review. Uses Semgrep, Gitleaks, and Trivy when available.
5
+ Falls back to AI-only analysis. Use on code touching auth, payments, data access,
6
+ or external inputs.
7
+ argument-hint: "[file-or-directory]"
8
+ user-invocable: true
9
+ context: fork
10
+ agent: security
11
+ model: claude-opus-4-6
12
+ effort: high
13
+ allowed-tools:
14
+ - Read(*)
15
+ - Grep(*)
16
+ - Glob(*)
17
+ - Bash(git diff *)
18
+ - Bash(semgrep *)
19
+ - Bash(gitleaks *)
20
+ - Bash(trivy *)
21
+ - Bash(npm audit *)
22
+ - Bash(pip audit *)
23
+ - Bash(go vuln *)
24
+ - Bash(cargo audit *)
25
+ ---
26
+
27
+ ## Target
28
+
29
+ $ARGUMENTS
30
+
31
+ ## Changes to review
32
+
33
+ !`git diff --cached --stat 2>/dev/null || git diff --stat 2>/dev/null || echo "Reviewing full project"`
34
+
35
+ ### Full diff
36
+
37
+ !`git diff --cached 2>/dev/null || git diff 2>/dev/null || echo ""`
38
+
39
+ ## Danger zones
40
+
41
+ !`cat DANGER-ZONES.md 2>/dev/null || echo "No DANGER-ZONES.md found"`
42
+
43
+ ## Available security tools
44
+
45
+ ```!
46
+ echo "=== Semgrep ===" && semgrep --version 2>/dev/null || echo "not installed (pip install semgrep)"
47
+ echo "=== Gitleaks ===" && gitleaks version 2>/dev/null || echo "not installed (brew install gitleaks)"
48
+ echo "=== Trivy ===" && trivy --version 2>/dev/null || echo "not installed (brew install trivy)"
49
+ ```
50
+
51
+ ## SAST scan (Semgrep, if available)
52
+
53
+ ```!
54
+ semgrep --config auto --json --quiet . 2>/dev/null | head -100 || echo "Semgrep not available — will use AI-only analysis"
55
+ ```
56
+
57
+ ## Secret detection (Gitleaks, if available)
58
+
59
+ ```!
60
+ gitleaks detect --source . --no-git --report-format json 2>/dev/null | head -50 || echo "Gitleaks not available — falling back to grep"
61
+ ```
62
+
63
+ ## Grep-based secret scan (fallback)
64
+
65
+ ```!
66
+ grep -rn "password\s*=\|api_key\s*=\|secret\s*=\|token\s*=" --include="*.ts" --include="*.js" --include="*.py" --include="*.java" --include="*.go" . 2>/dev/null | head -20 || echo "No obvious secrets found"
67
+ ```
68
+
69
+ ## Dependency audit
70
+
71
+ ```!
72
+ trivy fs --scanners vuln --format json . 2>/dev/null | head -80 || npm audit --json 2>/dev/null | head -50 || pip audit 2>/dev/null | head -50 || echo "No dependency scanner found"
73
+ ```
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: slop-check
3
+ description: >
4
+ Detect AI-generated slop in code, tests, docs, and architecture.
5
+ Run before merging any AI-generated changes.
6
+ argument-hint: "[file-or-directory]"
7
+ user-invocable: true
8
+ context: fork
9
+ agent: anti-slop-guard
10
+ model: claude-opus-4-6
11
+ effort: high
12
+ allowed-tools:
13
+ - Read(*)
14
+ - Grep(*)
15
+ - Glob(*)
16
+ - Bash(git diff *)
17
+ - Bash(git log *)
18
+ ---
19
+
20
+ ## Target
21
+
22
+ $ARGUMENTS
23
+
24
+ ## Changes to scan
25
+
26
+ !`git diff --cached --stat 2>/dev/null || git diff --stat 2>/dev/null || echo "No changes — scan target files directly"`
27
+
28
+ ### Full diff
29
+
30
+ !`git diff --cached 2>/dev/null || git diff 2>/dev/null || echo ""`
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: spec
3
+ description: >
4
+ Convert requirements into a structured technical specification. Use when starting a new feature
5
+ or receiving vague requirements.
6
+ argument-hint: "[requirements-description]"
7
+ user-invocable: true
8
+ context: fork
9
+ agent: spec-writer
10
+ model: claude-opus-4-6
11
+ effort: high
12
+ allowed-tools:
13
+ - Read(*)
14
+ - Grep(*)
15
+ - Glob(*)
16
+ - Write(*)
17
+ ---
18
+
19
+ ## Requirements
20
+
21
+ $ARGUMENTS
22
+
23
+ ## Project context
24
+
25
+ !`cat CLAUDE.md 2>/dev/null || echo "No CLAUDE.md found"`
26
+
27
+ ## Existing architecture
28
+
29
+ !`ls -la docs/architecture* 2>/dev/null || echo "No architecture docs found"`
30
+
31
+ ## Today's date
32
+
33
+ !`date +%Y-%m-%d`
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: write-evals
3
+ description: >
4
+ Write evaluations for AI system prompts and inferencing layers.
5
+ Use when building or modifying LLM-powered features.
6
+ argument-hint: "[prompt-file-or-description]"
7
+ user-invocable: true
8
+ context: fork
9
+ agent: eval-writer
10
+ model: claude-opus-4-6
11
+ effort: high
12
+ allowed-tools:
13
+ - Read(*)
14
+ - Grep(*)
15
+ - Glob(*)
16
+ - Write(*)
17
+ - Edit(*)
18
+ - Bash(npm run eval *)
19
+ - Bash(pytest *)
20
+ ---
21
+
22
+ ## Target
23
+
24
+ $ARGUMENTS
25
+
26
+ ## Existing eval framework
27
+
28
+ !`find . -name "*eval*" -o -name "*evals*" 2>/dev/null | head -10 || echo "No eval files found"`
@@ -0,0 +1,40 @@
1
+ ---
2
+ name: write-tests
3
+ description: >
4
+ Generate meaningful tests that verify behavior. Use after implementing a feature or when
5
+ coverage is low. Matches project test conventions.
6
+ argument-hint: "[file-or-module-to-test]"
7
+ user-invocable: true
8
+ context: fork
9
+ agent: test-writer
10
+ model: claude-sonnet-4-6
11
+ effort: high
12
+ allowed-tools:
13
+ - Read(*)
14
+ - Grep(*)
15
+ - Glob(*)
16
+ - Write(*)
17
+ - Edit(*)
18
+ - Bash(npm test *)
19
+ - Bash(npm run test *)
20
+ - Bash(npx jest *)
21
+ - Bash(npx vitest *)
22
+ - Bash(pytest *)
23
+ - Bash(go test *)
24
+ - Bash(cargo test *)
25
+ - Bash(mvn test *)
26
+ ---
27
+
28
+ ## Target
29
+
30
+ $ARGUMENTS
31
+
32
+ ## Existing test patterns (match these)
33
+
34
+ !`find . -name "*.test.*" -o -name "*.spec.*" -o -name "test_*" 2>/dev/null | head -5`
35
+
36
+ !`cat $(find . -name "*.test.*" -o -name "*.spec.*" 2>/dev/null | head -1) 2>/dev/null | head -40 || echo "No existing tests found"`
37
+
38
+ ## Project test command
39
+
40
+ !`cat package.json 2>/dev/null | grep -A2 '"test"' || echo "No package.json test script"`
package/uv.sh ADDED
@@ -0,0 +1,56 @@
1
+ #!/bin/bash
2
+ # UV Suite — Session launcher
3
+ # Starts a Claude Code session with the specified persona.
4
+ #
5
+ # Usage:
6
+ # uv spike Start a Spike session (research & docs)
7
+ # uv sport Start a Sport session (fast, new projects)
8
+ # uv pro Start a Professional session (production code)
9
+ # uv auto Start an Auto session (fully autonomous)
10
+ # uv Start with default (Professional)
11
+
12
+ PERSONA="${1:-pro}"
13
+ shift 2>/dev/null # consume the persona arg, pass the rest to claude
14
+
15
+ # Resolve persona to settings file
16
+ case "$PERSONA" in
17
+ spike)
18
+ SETTINGS=".claude/personas/spike.json"
19
+ LABEL="UV Spike — research & docs (Opus, max effort, doc-slop checked)"
20
+ ;;
21
+ sport)
22
+ SETTINGS=".claude/personas/sport.json"
23
+ LABEL="UV Sport — lightweight (Sonnet, high effort, lint only)"
24
+ ;;
25
+ pro|professional)
26
+ SETTINGS=".claude/personas/professional.json"
27
+ LABEL="UV Professional — full rigor (all hooks, all guardrails)"
28
+ ;;
29
+ auto)
30
+ SETTINGS=".claude/personas/auto.json"
31
+ LABEL="UV Auto — autonomous (max effort, everything approved)"
32
+ ;;
33
+ *)
34
+ echo "Unknown persona: $PERSONA"
35
+ echo ""
36
+ echo "Usage: uv [spike|sport|pro|auto]"
37
+ echo ""
38
+ echo " spike Research & documentation (Opus, max, doc-slop hook)"
39
+ echo " sport New projects, prototyping (Sonnet, high, lint only)"
40
+ echo " pro Production code (all hooks, all guardrails, human-gated)"
41
+ echo " auto Fully autonomous (max effort, everything auto-approved)"
42
+ echo ""
43
+ echo " uv Defaults to 'pro'"
44
+ exit 1
45
+ ;;
46
+ esac
47
+
48
+ if [ ! -f "$SETTINGS" ]; then
49
+ echo "Settings file not found: $SETTINGS"
50
+ echo "Run install.sh first to set up UV Suite in this project."
51
+ exit 1
52
+ fi
53
+
54
+ echo "$LABEL"
55
+ echo ""
56
+ exec claude --settings "$SETTINGS" "$@"