get-shit-done-cc 1.5.27 → 1.5.29
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/agents/gsd-codebase-mapper.md +1 -1
- package/agents/gsd-executor.md +1 -4
- package/agents/gsd-phase-researcher.md +6 -4
- package/agents/gsd-plan-checker.md +3 -2
- package/agents/gsd-planner.md +6 -2
- package/bin/install.js +13 -109
- package/commands/gsd/audit-milestone.md +1 -1
- package/commands/gsd/create-roadmap.md +0 -2
- package/commands/gsd/define-requirements.md +0 -1
- package/commands/gsd/discuss-milestone.md +0 -1
- package/commands/gsd/discuss-phase.md +24 -16
- package/commands/gsd/execute-phase.md +0 -1
- package/commands/gsd/help.md +6 -20
- package/commands/gsd/new-milestone.md +2 -0
- package/commands/gsd/plan-milestone-gaps.md +1 -2
- package/commands/gsd/plan-phase.md +25 -13
- package/commands/gsd/progress.md +3 -3
- package/commands/gsd/research-phase.md +13 -7
- package/get-shit-done/references/continuation-format.md +3 -3
- package/get-shit-done/templates/context.md +143 -13
- package/get-shit-done/templates/phase-prompt.md +0 -1
- package/get-shit-done/templates/planner-subagent-prompt.md +1 -1
- package/get-shit-done/workflows/discovery-phase.md +2 -2
- package/get-shit-done/workflows/discuss-phase.md +115 -55
- package/get-shit-done/workflows/execute-phase.md +3 -1
- package/get-shit-done/workflows/execute-plan.md +2 -2
- package/get-shit-done/workflows/map-codebase.md +2 -2
- package/get-shit-done/workflows/resume-project.md +5 -7
- package/get-shit-done/workflows/verify-phase.md +4 -4
- package/get-shit-done/workflows/verify-work.md +3 -2
- package/hooks/gsd-check-update.js +51 -0
- package/hooks/statusline.js +84 -0
- package/package.json +1 -1
- package/commands/gsd/execute-plan.md +0 -400
- package/get-shit-done/references/debugging/debugging-mindset.md +0 -11
- package/get-shit-done/references/debugging/hypothesis-testing.md +0 -11
- package/get-shit-done/references/debugging/investigation-techniques.md +0 -11
- package/get-shit-done/references/debugging/verification-patterns.md +0 -11
- package/get-shit-done/references/debugging/when-to-research.md +0 -11
- package/get-shit-done/references/goal-backward.md +0 -33
- package/get-shit-done/references/plan-format.md +0 -32
- package/get-shit-done/references/principles.md +0 -29
- package/get-shit-done/references/research-pitfalls.md +0 -233
- package/get-shit-done/references/scope-estimation.md +0 -32
- package/get-shit-done/templates/research-subagent-prompt.md +0 -92
- package/get-shit-done/workflows/create-milestone.md +0 -203
- package/get-shit-done/workflows/debug.md +0 -14
- package/get-shit-done/workflows/plan-phase.md +0 -41
- package/get-shit-done/workflows/research-phase.md +0 -17
- package/get-shit-done/workflows/research-project.md +0 -23
- package/hooks/gsd-check-update.sh +0 -20
- package/hooks/gsd-notify.sh +0 -59
- package/hooks/statusline.sh +0 -58
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Check for GSD updates in background, write result to cache
|
|
3
|
-
# Called by SessionStart hook - runs once per session
|
|
4
|
-
|
|
5
|
-
CACHE_FILE="$HOME/.claude/cache/gsd-update-check.json"
|
|
6
|
-
mkdir -p "$HOME/.claude/cache"
|
|
7
|
-
|
|
8
|
-
# Run check in background (non-blocking)
|
|
9
|
-
(
|
|
10
|
-
installed=$(cat "$HOME/.claude/get-shit-done/VERSION" 2>/dev/null || echo "0.0.0")
|
|
11
|
-
latest=$(npm view get-shit-done-cc version 2>/dev/null)
|
|
12
|
-
|
|
13
|
-
if [[ -n "$latest" && "$installed" != "$latest" ]]; then
|
|
14
|
-
echo "{\"update_available\":true,\"installed\":\"$installed\",\"latest\":\"$latest\",\"checked\":$(date +%s)}" > "$CACHE_FILE"
|
|
15
|
-
else
|
|
16
|
-
echo "{\"update_available\":false,\"installed\":\"$installed\",\"latest\":\"${latest:-unknown}\",\"checked\":$(date +%s)}" > "$CACHE_FILE"
|
|
17
|
-
fi
|
|
18
|
-
) &
|
|
19
|
-
|
|
20
|
-
exit 0
|
package/hooks/gsd-notify.sh
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# GSD Completion Notification Hook
|
|
3
|
-
# Cross-platform alert when Claude stops (task complete, needs input, etc.)
|
|
4
|
-
|
|
5
|
-
input=$(cat)
|
|
6
|
-
session_id=$(echo "$input" | jq -r '.session_id // empty')
|
|
7
|
-
cwd=$(echo "$input" | jq -r '.cwd // empty')
|
|
8
|
-
transcript_path=$(echo "$input" | jq -r '.transcript_path // empty')
|
|
9
|
-
|
|
10
|
-
# Extract project name
|
|
11
|
-
project="Claude Code"
|
|
12
|
-
if [[ -n "$cwd" ]]; then
|
|
13
|
-
project=$(basename "$cwd")
|
|
14
|
-
fi
|
|
15
|
-
|
|
16
|
-
# Check todo list for current/completed task
|
|
17
|
-
message=""
|
|
18
|
-
if [[ -n "$session_id" ]]; then
|
|
19
|
-
todo_file=$(ls -t "$HOME/.claude/todos/${session_id}"*.json 2>/dev/null | head -1)
|
|
20
|
-
if [[ -f "$todo_file" ]]; then
|
|
21
|
-
# Get most recently completed task, or in-progress task
|
|
22
|
-
completed=$(jq -r '[.[] | select(.status=="completed")] | last | .content // empty' "$todo_file" 2>/dev/null)
|
|
23
|
-
if [[ -n "$completed" ]]; then
|
|
24
|
-
message="Completed: $completed"
|
|
25
|
-
else
|
|
26
|
-
in_progress=$(jq -r '.[] | select(.status=="in_progress") | .content' "$todo_file" 2>/dev/null | head -1)
|
|
27
|
-
if [[ -n "$in_progress" ]]; then
|
|
28
|
-
message="Paused: $in_progress"
|
|
29
|
-
fi
|
|
30
|
-
fi
|
|
31
|
-
fi
|
|
32
|
-
fi
|
|
33
|
-
|
|
34
|
-
# Fallback: generic message
|
|
35
|
-
if [[ -z "$message" ]]; then
|
|
36
|
-
message="Ready for input"
|
|
37
|
-
fi
|
|
38
|
-
|
|
39
|
-
# Send notification based on OS
|
|
40
|
-
case "$(uname -s)" in
|
|
41
|
-
Darwin)
|
|
42
|
-
osascript -e "display alert \"GSD: $project\" message \"$message\" as informational" &>/dev/null &
|
|
43
|
-
;;
|
|
44
|
-
Linux)
|
|
45
|
-
if command -v notify-send &>/dev/null; then
|
|
46
|
-
notify-send "GSD: $project" "$message" --urgency=normal
|
|
47
|
-
elif command -v zenity &>/dev/null; then
|
|
48
|
-
zenity --info --title="GSD: $project" --text="$message" &
|
|
49
|
-
fi
|
|
50
|
-
;;
|
|
51
|
-
MINGW*|CYGWIN*|MSYS*)
|
|
52
|
-
# Windows via PowerShell
|
|
53
|
-
if command -v powershell.exe &>/dev/null; then
|
|
54
|
-
powershell.exe -Command "Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.MessageBox]::Show('$message', 'GSD: $project', 'OK', 'Information')" &>/dev/null &
|
|
55
|
-
fi
|
|
56
|
-
;;
|
|
57
|
-
esac
|
|
58
|
-
|
|
59
|
-
exit 0
|
package/hooks/statusline.sh
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# Claude Code Statusline - GSD Edition
|
|
3
|
-
# Shows: model | current task | directory | context usage
|
|
4
|
-
|
|
5
|
-
input=$(cat)
|
|
6
|
-
model=$(echo "$input" | jq -r '.model.display_name')
|
|
7
|
-
dir=$(echo "$input" | jq -r '.workspace.current_dir')
|
|
8
|
-
session=$(echo "$input" | jq -r '.session_id')
|
|
9
|
-
remaining=$(echo "$input" | jq -r '.context_window.remaining_percentage // empty')
|
|
10
|
-
|
|
11
|
-
# Context window display (shows USED percentage)
|
|
12
|
-
ctx=""
|
|
13
|
-
if [ -n "$remaining" ]; then
|
|
14
|
-
rem=$(printf "%.0f" "$remaining")
|
|
15
|
-
used=$((100 - rem))
|
|
16
|
-
|
|
17
|
-
# Build progress bar (10 segments) - fills as context is consumed
|
|
18
|
-
filled=$((used / 10))
|
|
19
|
-
bar=""
|
|
20
|
-
for ((i=0; i<filled; i++)); do bar+="█"; done
|
|
21
|
-
for ((i=filled; i<10; i++)); do bar+="░"; done
|
|
22
|
-
|
|
23
|
-
# Color based on usage with blinking skull at 80%+
|
|
24
|
-
if [ "$used" -lt 50 ]; then
|
|
25
|
-
ctx=$' \033[32m'"$bar $used%"$'\033[0m'
|
|
26
|
-
elif [ "$used" -lt 65 ]; then
|
|
27
|
-
ctx=$' \033[33m'"$bar $used%"$'\033[0m'
|
|
28
|
-
elif [ "$used" -lt 80 ]; then
|
|
29
|
-
ctx=$' \033[38;5;208m'"$bar $used%"$'\033[0m'
|
|
30
|
-
else
|
|
31
|
-
# Blinking red with skull
|
|
32
|
-
ctx=$' \033[5;31m💀 '"$bar $used%"$'\033[0m'
|
|
33
|
-
fi
|
|
34
|
-
fi
|
|
35
|
-
|
|
36
|
-
# Current task from todos
|
|
37
|
-
task=""
|
|
38
|
-
todo=$(ls -t "$HOME/.claude/todos/${session}"-agent-*.json 2>/dev/null | head -1)
|
|
39
|
-
if [[ -f "$todo" ]]; then
|
|
40
|
-
task=$(jq -r '.[] | select(.status=="in_progress") | .activeForm' "$todo" 2>/dev/null | head -1)
|
|
41
|
-
fi
|
|
42
|
-
|
|
43
|
-
# GSD update available?
|
|
44
|
-
gsd_update=""
|
|
45
|
-
if [[ -f "$HOME/.claude/cache/gsd-update-check.json" ]]; then
|
|
46
|
-
update_available=$(jq -r '.update_available' "$HOME/.claude/cache/gsd-update-check.json" 2>/dev/null)
|
|
47
|
-
if [[ "$update_available" == "true" ]]; then
|
|
48
|
-
gsd_update=$'\033[33m⬆ /gsd:update\033[0m │ '
|
|
49
|
-
fi
|
|
50
|
-
fi
|
|
51
|
-
|
|
52
|
-
# Output
|
|
53
|
-
dirname=$(basename "$dir")
|
|
54
|
-
if [[ -n "$task" ]]; then
|
|
55
|
-
printf '%s\033[2m%s\033[0m │ \033[1m%s\033[0m │ \033[2m%s\033[0m%s' "$gsd_update" "$model" "$task" "$dirname" "$ctx"
|
|
56
|
-
else
|
|
57
|
-
printf '%s\033[2m%s\033[0m │ \033[2m%s\033[0m%s' "$gsd_update" "$model" "$dirname" "$ctx"
|
|
58
|
-
fi
|