uv-suite 0.12.0 → 0.14.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/session-end.sh +3 -3
- package/install.sh +12 -6
- package/package.json +1 -1
- package/skills/architect/SKILL.md +4 -0
- package/skills/checkpoint/SKILL.md +80 -0
- package/skills/restore/SKILL.md +22 -0
- package/skills/review/SKILL.md +4 -0
- package/skills/write-tests/SKILL.md +4 -0
package/hooks/session-end.sh
CHANGED
|
@@ -36,10 +36,10 @@ if [ -n "$STAGED" ] || [ -n "$UNSTAGED" ] || [ -n "$UNTRACKED" ]; then
|
|
|
36
36
|
REVIEW_MSG="Uncommitted changes — consider /review and /slop-check before committing. "
|
|
37
37
|
fi
|
|
38
38
|
|
|
39
|
-
#
|
|
40
|
-
|
|
39
|
+
# Checkpoint prompt
|
|
40
|
+
CHECKPOINT_MSG="Run /checkpoint to save session state for next time. Run /restore at the start of your next session."
|
|
41
41
|
|
|
42
|
-
FULL_MSG="${DURATION_MSG}${REVIEW_MSG}${
|
|
42
|
+
FULL_MSG="${DURATION_MSG}${REVIEW_MSG}${CHECKPOINT_MSG}"
|
|
43
43
|
|
|
44
44
|
cat <<EOF
|
|
45
45
|
{
|
package/install.sh
CHANGED
|
@@ -208,7 +208,7 @@ This project uses [UV Suite](https://github.com/utsavanand/uv-suite) v${UV_VERSI
|
|
|
208
208
|
|
|
209
209
|
### Skills
|
|
210
210
|
|
|
211
|
-
/map-codebase, /map-stack, /spec, /architect, /review, /write-tests, /write-evals, /slop-check, /prototype, /security-review
|
|
211
|
+
/map-codebase, /map-stack, /spec, /architect, /review, /write-tests, /write-evals, /slop-check, /prototype, /security-review, /checkpoint, /restore
|
|
212
212
|
|
|
213
213
|
### Artifacts
|
|
214
214
|
|
|
@@ -224,19 +224,25 @@ ${HOOKS_TEXT}
|
|
|
224
224
|
|
|
225
225
|
### Working practices
|
|
226
226
|
|
|
227
|
-
**Honesty:** If you can't find
|
|
227
|
+
**Honesty:** If you can't find something, say "I did not find X. What should I do?" Don't fabricate. If 2-3 attempts fail, escalate with what you tried.
|
|
228
228
|
|
|
229
|
-
**
|
|
229
|
+
**Simplicity:** Minimum code that solves the problem. If 200 lines could be 50, rewrite. No abstractions for single-use code. No features beyond what was asked.
|
|
230
230
|
|
|
231
|
-
**
|
|
231
|
+
**Surgical changes:** Touch only what's relevant. Don't improve adjacent code, comments, or formatting. Every changed line should trace to the request. Match existing style.
|
|
232
232
|
|
|
233
|
-
**
|
|
233
|
+
**Goal-driven:** Define success criteria before coding. Write the test first, then make it pass. For multi-step tasks, state a brief plan with verification for each step.
|
|
234
|
+
|
|
235
|
+
**Parallelism:** Spin up parallel agents for independent tasks. Run independent tool calls in the same message. This is the primary speed lever.
|
|
236
|
+
|
|
237
|
+
**Completion:** "Done" means verified. Run the tests. Run the build. Prefer "I ran it and it works" over "should work."
|
|
234
238
|
|
|
235
239
|
**Failures:** When you fail, say so. Escalate: what you tried, why each failed, what you need.
|
|
236
240
|
|
|
237
241
|
**User context:** If something looks wrong, ask why before fixing. Users have constraints you may not see.
|
|
238
242
|
|
|
239
|
-
**
|
|
243
|
+
**Planning:** Use plan mode for complex tasks. Break work small enough to complete in under 50% context.
|
|
244
|
+
|
|
245
|
+
**Session:** /compact at ~50% context. Past 90 min, take a break. Run /checkpoint before ending a session. Run /restore at the start of the next one.
|
|
240
246
|
|
|
241
247
|
### Launching sessions
|
|
242
248
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "uv-suite",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.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",
|
|
@@ -36,3 +36,7 @@ $ARGUMENTS
|
|
|
36
36
|
!`ls uv-out/specs/*.md 2>/dev/null | head -5 || echo "No specs found"`
|
|
37
37
|
|
|
38
38
|
!`cat $(ls -t uv-out/specs/*.md 2>/dev/null | head -1) 2>/dev/null | head -80 || echo ""`
|
|
39
|
+
|
|
40
|
+
### Session checkpoint
|
|
41
|
+
|
|
42
|
+
!`cat uv-out/checkpoints/latest.md 2>/dev/null | head -40 || echo "No checkpoint"`
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: checkpoint
|
|
3
|
+
description: >
|
|
4
|
+
Save a checkpoint of the current session — what was done, key decisions, current state,
|
|
5
|
+
and what's next. Use before ending a session, before /compact, or at any natural breakpoint.
|
|
6
|
+
The next session auto-loads the latest checkpoint.
|
|
7
|
+
argument-hint: "[optional-label]"
|
|
8
|
+
user-invocable: true
|
|
9
|
+
allowed-tools:
|
|
10
|
+
- Write(*)
|
|
11
|
+
- Read(*)
|
|
12
|
+
- Bash(git status *)
|
|
13
|
+
- Bash(git diff *)
|
|
14
|
+
- Bash(git log *)
|
|
15
|
+
- Bash(date *)
|
|
16
|
+
- Bash(ls *)
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Write a checkpoint to uv-out/checkpoints/
|
|
20
|
+
|
|
21
|
+
Create the directory `uv-out/checkpoints/` if it doesn't exist.
|
|
22
|
+
|
|
23
|
+
Write a file named `uv-out/checkpoints/YYYY-MM-DD-HHMM.md` (using the current timestamp).
|
|
24
|
+
|
|
25
|
+
Also write/overwrite `uv-out/checkpoints/latest.md` with the same content (so the next session can always find the most recent checkpoint).
|
|
26
|
+
|
|
27
|
+
## Label
|
|
28
|
+
|
|
29
|
+
$ARGUMENTS
|
|
30
|
+
|
|
31
|
+
If a label was provided, include it in the filename: `uv-out/checkpoints/YYYY-MM-DD-HHMM-[label].md`
|
|
32
|
+
|
|
33
|
+
## What to capture
|
|
34
|
+
|
|
35
|
+
Review the full conversation so far and write a structured checkpoint with these exact sections:
|
|
36
|
+
|
|
37
|
+
```markdown
|
|
38
|
+
# Checkpoint: [date] [time] [label if provided]
|
|
39
|
+
|
|
40
|
+
## What was accomplished
|
|
41
|
+
- [Bullet list of concrete things done this session]
|
|
42
|
+
- [Be specific: "Added webhook retry logic to PaymentService" not "worked on payments"]
|
|
43
|
+
|
|
44
|
+
## Key decisions made
|
|
45
|
+
- [Decision]: [Why] — [What was considered and rejected]
|
|
46
|
+
- [Only include decisions that affect future work]
|
|
47
|
+
|
|
48
|
+
## Current state
|
|
49
|
+
- Branch: [current git branch]
|
|
50
|
+
- Uncommitted changes: [yes/no, summary if yes]
|
|
51
|
+
- Tests: [passing/failing/not run]
|
|
52
|
+
- Blockers: [any unresolved issues]
|
|
53
|
+
|
|
54
|
+
## Files modified
|
|
55
|
+
- [List key files changed, not every file]
|
|
56
|
+
|
|
57
|
+
## What's next
|
|
58
|
+
- [Immediate next step — what the next session should start with]
|
|
59
|
+
- [Remaining tasks from the current Act/plan]
|
|
60
|
+
|
|
61
|
+
## Context the next session needs
|
|
62
|
+
- [Anything non-obvious that would be lost without this checkpoint]
|
|
63
|
+
- [Workarounds in place, temporary decisions, "this looks wrong but it's intentional because..."]
|
|
64
|
+
- [Environment setup notes if relevant]
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Git state to capture
|
|
68
|
+
|
|
69
|
+
!`git branch --show-current 2>/dev/null || echo "not a git repo"`
|
|
70
|
+
|
|
71
|
+
!`git status --short 2>/dev/null | head -20 || echo "no git"`
|
|
72
|
+
|
|
73
|
+
!`git log --oneline -5 2>/dev/null || echo "no git history"`
|
|
74
|
+
|
|
75
|
+
## Rules
|
|
76
|
+
|
|
77
|
+
- Be specific. "Worked on auth" is useless. "Added JWT refresh token rotation with 7-day expiry" is useful.
|
|
78
|
+
- Capture WHY decisions were made, not just what. The next session needs the rationale.
|
|
79
|
+
- Keep it under 80 lines. This isn't a novel — it's a handoff.
|
|
80
|
+
- Every checkpoint overwrites `latest.md` so the next session always finds the freshest state.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: restore
|
|
3
|
+
description: >
|
|
4
|
+
Restore the latest checkpoint from a previous session. Shows what was done,
|
|
5
|
+
key decisions, current state, and what's next. Use at the start of a new session.
|
|
6
|
+
user-invocable: true
|
|
7
|
+
allowed-tools:
|
|
8
|
+
- Read(*)
|
|
9
|
+
- Bash(ls *)
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Latest checkpoint
|
|
13
|
+
|
|
14
|
+
!`cat uv-out/checkpoints/latest.md 2>/dev/null || echo "No checkpoint found. Run /checkpoint to create one."`
|
|
15
|
+
|
|
16
|
+
## All checkpoints
|
|
17
|
+
|
|
18
|
+
!`ls -la uv-out/checkpoints/*.md 2>/dev/null | tail -10 || echo "No checkpoints directory"`
|
|
19
|
+
|
|
20
|
+
## Instructions
|
|
21
|
+
|
|
22
|
+
Read the checkpoint above. Summarize it to the user in 3-4 sentences: what was done, what's the current state, and what's next. Then ask: "Ready to pick up from here, or do you want to take a different direction?"
|
package/skills/review/SKILL.md
CHANGED
|
@@ -48,3 +48,7 @@ $ARGUMENTS
|
|
|
48
48
|
### Acts plan (current task context)
|
|
49
49
|
|
|
50
50
|
!`cat uv-out/architecture/acts-plan.md 2>/dev/null | head -40 || echo "No acts plan found"`
|
|
51
|
+
|
|
52
|
+
### Session checkpoint
|
|
53
|
+
|
|
54
|
+
!`cat uv-out/checkpoints/latest.md 2>/dev/null | head -40 || echo "No checkpoint"`
|