uv-suite 0.13.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
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
|
|
|
@@ -242,7 +242,7 @@ ${HOOKS_TEXT}
|
|
|
242
242
|
|
|
243
243
|
**Planning:** Use plan mode for complex tasks. Break work small enough to complete in under 50% context.
|
|
244
244
|
|
|
245
|
-
**Session:** /compact at ~50% context. Past 90 min, take a break.
|
|
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.
|
|
246
246
|
|
|
247
247
|
### Launching sessions
|
|
248
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"`
|