get-shit-done-cc 1.8.0 → 1.9.1

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 (34) hide show
  1. package/README.md +104 -0
  2. package/agents/gsd-entity-generator.md +237 -0
  3. package/agents/gsd-executor.md +15 -0
  4. package/agents/gsd-planner.md +22 -0
  5. package/bin/install.js +78 -7
  6. package/commands/gsd/analyze-codebase.md +410 -0
  7. package/commands/gsd/audit-milestone.md +20 -1
  8. package/commands/gsd/debug.md +20 -0
  9. package/commands/gsd/execute-phase.md +37 -4
  10. package/commands/gsd/help.md +91 -0
  11. package/commands/gsd/new-milestone.md +27 -7
  12. package/commands/gsd/new-project.md +104 -11
  13. package/commands/gsd/plan-phase.md +84 -26
  14. package/commands/gsd/progress.md +2 -0
  15. package/commands/gsd/query-intel.md +128 -0
  16. package/commands/gsd/quick.md +23 -0
  17. package/commands/gsd/research-phase.md +20 -0
  18. package/commands/gsd/set-profile.md +106 -0
  19. package/commands/gsd/settings.md +136 -0
  20. package/get-shit-done/references/model-profiles.md +73 -0
  21. package/get-shit-done/templates/config.json +5 -0
  22. package/get-shit-done/templates/entity.md +173 -0
  23. package/get-shit-done/workflows/execute-phase.md +45 -9
  24. package/get-shit-done/workflows/execute-plan.md +165 -4
  25. package/get-shit-done/workflows/map-codebase.md +24 -2
  26. package/get-shit-done/workflows/verify-work.md +22 -0
  27. package/hooks/dist/gsd-intel-index.js +97 -0
  28. package/hooks/dist/gsd-intel-prune.js +78 -0
  29. package/hooks/dist/gsd-intel-session.js +39 -0
  30. package/hooks/dist/statusline.js +84 -0
  31. package/package.json +12 -2
  32. package/scripts/build-hooks.js +95 -0
  33. /package/hooks/{gsd-check-update.js → dist/gsd-check-update.js} +0 -0
  34. /package/hooks/{statusline.js → dist/gsd-statusline.js} +0 -0
@@ -11,7 +11,25 @@ Read config.json for planning behavior settings.
11
11
 
12
12
  <process>
13
13
 
14
- <step name="load_project_state" priority="first">
14
+ <step name="resolve_model_profile" priority="first">
15
+ Read model profile for agent spawning:
16
+
17
+ ```bash
18
+ MODEL_PROFILE=$(cat .planning/config.json 2>/dev/null | grep -o '"model_profile"[[:space:]]*:[[:space:]]*"[^"]*"' | grep -o '"[^"]*"$' | tr -d '"' || echo "balanced")
19
+ ```
20
+
21
+ Default to "balanced" if not set.
22
+
23
+ **Model lookup table:**
24
+
25
+ | Agent | quality | balanced | budget |
26
+ |-------|---------|----------|--------|
27
+ | gsd-executor | opus | sonnet | sonnet |
28
+
29
+ Store resolved model for use in Task calls below.
30
+ </step>
31
+
32
+ <step name="load_project_state">
15
33
  Before any operation, read project state:
16
34
 
17
35
  ```bash
@@ -219,7 +237,7 @@ No segmentation benefit - execute entirely in main
219
237
  ```
220
238
  1. Run init_agent_tracking step first (see step below)
221
239
 
222
- 2. Use Task tool with subagent_type="gsd-executor":
240
+ 2. Use Task tool with subagent_type="gsd-executor" and model="{executor_model}":
223
241
 
224
242
  Prompt: "Execute plan at .planning/phases/{phase}-{plan}-PLAN.md
225
243
 
@@ -371,7 +389,7 @@ For Pattern A (fully autonomous) and Pattern C (decision-dependent), skip this s
371
389
 
372
390
  B. If routing = Subagent:
373
391
  ```
374
- Spawn Task tool with subagent_type="gsd-executor":
392
+ Spawn Task tool with subagent_type="gsd-executor" and model="{executor_model}":
375
393
 
376
394
  Prompt: "Execute tasks [task numbers/names] from plan at [plan path].
377
395
 
@@ -580,7 +598,8 @@ Execute each task in the prompt. **Deviations are normal** - handle them automat
580
598
  - Continue implementing, applying rules as needed
581
599
  - Run the verification
582
600
  - Confirm done criteria met
583
- - **Commit the task** (see `<task_commit>` below)
601
+ - **Update intel entities** for modified files (see `<update_intel_entity>` below)
602
+ - **Commit the task** (see `<task_commit>` below) - includes entity files in commit
584
603
  - Track task completion and commit hash for Summary documentation
585
604
  - Continue to next task
586
605
 
@@ -909,6 +928,148 @@ None - plan executed exactly as written.
909
928
 
910
929
  </deviation_documentation>
911
930
 
931
+ <update_intel_entity>
932
+
933
+ ## Update Codebase Intelligence Entity
934
+
935
+ **Trigger:** After each task's `<done>` criteria met, BEFORE committing.
936
+
937
+ This step documents your understanding of modified files. The knowledge base self-evolves as you work.
938
+
939
+ **1. Get files from the just-completed task:**
940
+
941
+ Check the task's `<files>` list. If no `<files>` attribute, use `git status --short` to identify modified files.
942
+
943
+ **2. For each file, determine if significant:**
944
+
945
+ **Skip these patterns (not worth indexing):**
946
+ ```bash
947
+ # Build/generated
948
+ node_modules/*, .next/*, dist/*, build/*, .git/*
949
+
950
+ # Tests (their targets are more valuable)
951
+ *.test.*, *.spec.*, __tests__/*, __mocks__/*
952
+
953
+ # Config files (change rarely, low context value)
954
+ package.json, package-lock.json, tsconfig.json, *.config.*, *.config.js, *.config.ts
955
+
956
+ # Environment and locks
957
+ .env*, *.lock, *.log, yarn.lock, pnpm-lock.yaml
958
+ ```
959
+
960
+ If file matches skip pattern: continue to next file.
961
+
962
+ **3. Derive entity path:**
963
+
964
+ ```bash
965
+ # Convert file path to entity filename
966
+ # src/lib/auth.ts → src-lib-auth.md
967
+ # app/api/users/route.ts → app-api-users-route.md
968
+
969
+ FILE_PATH="$1"
970
+ ENTITY_NAME=$(echo "$FILE_PATH" | sed 's|^[./]*||' | tr '/' '-' | sed 's/\.[^.]*$//')
971
+ ENTITY_PATH=".planning/intel/entities/${ENTITY_NAME}.md"
972
+ ```
973
+
974
+ **4. Create intel directory if needed:**
975
+
976
+ ```bash
977
+ mkdir -p .planning/intel/entities
978
+ ```
979
+
980
+ **5. Check if entity exists:**
981
+
982
+ ```bash
983
+ if [ -f "$ENTITY_PATH" ]; then
984
+ ACTION="update"
985
+ else
986
+ ACTION="create"
987
+ fi
988
+ ```
989
+
990
+ **6. Create or update entity:**
991
+
992
+ Use template from `~/.claude/get-shit-done/templates/entity.md`.
993
+
994
+ Fill fields based on what you just built:
995
+
996
+ | Field | Source |
997
+ |-------|--------|
998
+ | `path` | Absolute path to file |
999
+ | `type` | Infer: module, component, util, config, api, hook |
1000
+ | `updated` | Today's date (YYYY-MM-DD) |
1001
+ | `status` | active (unless you're deprecating) |
1002
+ | **Purpose** | What you understand this file does |
1003
+ | **Exports** | Extract from the code you just wrote |
1004
+ | **Dependencies** | `[[slugified-path]]` for internal, plain for external |
1005
+ | **Used By** | Add callers if you know them from this session |
1006
+ | **Notes** | Gotchas, patterns, warnings discovered |
1007
+
1008
+ **If updating existing entity:**
1009
+ - Read current content first
1010
+ - Preserve Used By entries you didn't touch
1011
+ - Update sections that changed
1012
+ - Don't remove information unless it's wrong
1013
+
1014
+ **7. Write entity file:**
1015
+
1016
+ ```bash
1017
+ # Write the entity content
1018
+ cat > "$ENTITY_PATH" << 'EOF'
1019
+ ---
1020
+ path: {path}
1021
+ type: {type}
1022
+ updated: {today}
1023
+ status: active
1024
+ ---
1025
+
1026
+ # {filename}
1027
+
1028
+ ## Purpose
1029
+
1030
+ {purpose}
1031
+
1032
+ ## Exports
1033
+
1034
+ {exports}
1035
+
1036
+ ## Dependencies
1037
+
1038
+ {dependencies}
1039
+
1040
+ ## Used By
1041
+
1042
+ {used_by}
1043
+
1044
+ ## Notes
1045
+
1046
+ {notes}
1047
+ EOF
1048
+ ```
1049
+
1050
+ **8. Verify entity was created/updated:**
1051
+
1052
+ ```bash
1053
+ head -10 "$ENTITY_PATH"
1054
+ ```
1055
+
1056
+ **9. Stage entity file:**
1057
+
1058
+ Entity files are staged along with task code files in the task commit.
1059
+
1060
+ ```bash
1061
+ git add "$ENTITY_PATH"
1062
+ ```
1063
+
1064
+ **Error handling:**
1065
+ - If entity creation fails: Log warning, continue to task_commit
1066
+ - Entity update is NOT blocking - a failed entity shouldn't stop code from being committed
1067
+ - Log: `"Warning: Could not update entity for {file}: {reason}"`
1068
+
1069
+ **Target size:** Keep entities concise (30-50 lines). Purpose and Exports are most valuable.
1070
+
1071
+ </update_intel_entity>
1072
+
912
1073
  <tdd_plan_execution>
913
1074
  ## TDD Plan Execution
914
1075
 
@@ -22,7 +22,25 @@ Documents are reference material for Claude when planning/executing. Always incl
22
22
 
23
23
  <process>
24
24
 
25
- <step name="check_existing" priority="first">
25
+ <step name="resolve_model_profile" priority="first">
26
+ Read model profile for agent spawning:
27
+
28
+ ```bash
29
+ MODEL_PROFILE=$(cat .planning/config.json 2>/dev/null | grep -o '"model_profile"[[:space:]]*:[[:space:]]*"[^"]*"' | grep -o '"[^"]*"$' | tr -d '"' || echo "balanced")
30
+ ```
31
+
32
+ Default to "balanced" if not set.
33
+
34
+ **Model lookup table:**
35
+
36
+ | Agent | quality | balanced | budget |
37
+ |-------|---------|----------|--------|
38
+ | gsd-codebase-mapper | sonnet | haiku | haiku |
39
+
40
+ Store resolved model for use in Task calls below.
41
+ </step>
42
+
43
+ <step name="check_existing">
26
44
  Check if .planning/codebase/ already exists:
27
45
 
28
46
  ```bash
@@ -73,7 +91,7 @@ Continue to spawn_agents.
73
91
  <step name="spawn_agents">
74
92
  Spawn 4 parallel gsd-codebase-mapper agents.
75
93
 
76
- Use Task tool with `subagent_type="gsd-codebase-mapper"` and `run_in_background=true` for parallel execution.
94
+ Use Task tool with `subagent_type="gsd-codebase-mapper"`, `model="{mapper_model}"`, and `run_in_background=true` for parallel execution.
77
95
 
78
96
  **CRITICAL:** Use the dedicated `gsd-codebase-mapper` agent, NOT `Explore`. The mapper agent writes documents directly.
79
97
 
@@ -82,6 +100,7 @@ Use Task tool with `subagent_type="gsd-codebase-mapper"` and `run_in_background=
82
100
  Task tool parameters:
83
101
  ```
84
102
  subagent_type: "gsd-codebase-mapper"
103
+ model: "{mapper_model}"
85
104
  run_in_background: true
86
105
  description: "Map codebase tech stack"
87
106
  ```
@@ -104,6 +123,7 @@ Explore thoroughly. Write documents directly using templates. Return confirmatio
104
123
  Task tool parameters:
105
124
  ```
106
125
  subagent_type: "gsd-codebase-mapper"
126
+ model: "{mapper_model}"
107
127
  run_in_background: true
108
128
  description: "Map codebase architecture"
109
129
  ```
@@ -126,6 +146,7 @@ Explore thoroughly. Write documents directly using templates. Return confirmatio
126
146
  Task tool parameters:
127
147
  ```
128
148
  subagent_type: "gsd-codebase-mapper"
149
+ model: "{mapper_model}"
129
150
  run_in_background: true
130
151
  description: "Map codebase conventions"
131
152
  ```
@@ -148,6 +169,7 @@ Explore thoroughly. Write documents directly using templates. Return confirmatio
148
169
  Task tool parameters:
149
170
  ```
150
171
  subagent_type: "gsd-codebase-mapper"
172
+ model: "{mapper_model}"
151
173
  run_in_background: true
152
174
  description: "Map codebase concerns"
153
175
  ```
@@ -20,6 +20,25 @@ No Pass/Fail buttons. No severity questions. Just: "Here's what should happen. D
20
20
 
21
21
  <process>
22
22
 
23
+ <step name="resolve_model_profile" priority="first">
24
+ Read model profile for agent spawning:
25
+
26
+ ```bash
27
+ MODEL_PROFILE=$(cat .planning/config.json 2>/dev/null | grep -o '"model_profile"[[:space:]]*:[[:space:]]*"[^"]*"' | grep -o '"[^"]*"$' | tr -d '"' || echo "balanced")
28
+ ```
29
+
30
+ Default to "balanced" if not set.
31
+
32
+ **Model lookup table:**
33
+
34
+ | Agent | quality | balanced | budget |
35
+ |-------|---------|----------|--------|
36
+ | gsd-planner | opus | opus | sonnet |
37
+ | gsd-plan-checker | sonnet | sonnet | haiku |
38
+
39
+ Store resolved models for use in Task calls below.
40
+ </step>
41
+
23
42
  <step name="check_active_session">
24
43
  **First: Check for active UAT sessions**
25
44
 
@@ -389,6 +408,7 @@ Plans must be executable prompts.
389
408
  </downstream_consumer>
390
409
  """,
391
410
  subagent_type="gsd-planner",
411
+ model="{planner_model}",
392
412
  description="Plan gap fixes for Phase {phase}"
393
413
  )
394
414
  ```
@@ -434,6 +454,7 @@ Return one of:
434
454
  </expected_output>
435
455
  """,
436
456
  subagent_type="gsd-plan-checker",
457
+ model="{checker_model}",
437
458
  description="Verify Phase {phase} fix plans"
438
459
  )
439
460
  ```
@@ -474,6 +495,7 @@ Do NOT replan from scratch unless issues are fundamental.
474
495
  </instructions>
475
496
  """,
476
497
  subagent_type="gsd-planner",
498
+ model="{planner_model}",
477
499
  description="Revise Phase {phase} plans"
478
500
  )
479
501
  ```