get-shit-done-cc 1.10.0-experimental.0 → 1.10.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/README.md +16 -17
- package/agents/gsd-executor.md +375 -37
- package/agents/gsd-planner.md +108 -15
- package/bin/install.js +163 -238
- package/commands/gsd/help.md +0 -43
- package/commands/gsd/new-project.md +8 -94
- package/commands/gsd/plan-phase.md +5 -35
- package/get-shit-done/references/verification-patterns.md +1 -1
- package/get-shit-done/templates/phase-prompt.md +4 -4
- package/get-shit-done/templates/state.md +0 -37
- package/get-shit-done/workflows/execute-phase.md +1 -44
- package/get-shit-done/workflows/execute-plan.md +856 -34
- package/hooks/dist/gsd-statusline.js +9 -6
- package/package.json +7 -10
- package/agents/design-specialist.md +0 -222
- package/commands/gsd/autopilot.md +0 -518
- package/commands/gsd/checkpoints.md +0 -229
- package/commands/gsd/design-system.md +0 -70
- package/commands/gsd/discuss-design.md +0 -77
- package/commands/gsd/extend.md +0 -80
- package/get-shit-done/references/ccr-integration.md +0 -468
- package/get-shit-done/references/checkpoint-execution.md +0 -369
- package/get-shit-done/references/checkpoint-types.md +0 -728
- package/get-shit-done/references/deviation-rules.md +0 -215
- package/get-shit-done/references/framework-patterns.md +0 -543
- package/get-shit-done/references/ui-principles.md +0 -258
- package/get-shit-done/skills/gsd-extend/SKILL.md +0 -154
- package/get-shit-done/skills/gsd-extend/references/agent-structure.md +0 -305
- package/get-shit-done/skills/gsd-extend/references/extension-anatomy.md +0 -123
- package/get-shit-done/skills/gsd-extend/references/reference-structure.md +0 -408
- package/get-shit-done/skills/gsd-extend/references/template-structure.md +0 -370
- package/get-shit-done/skills/gsd-extend/references/validation-rules.md +0 -140
- package/get-shit-done/skills/gsd-extend/references/workflow-structure.md +0 -253
- package/get-shit-done/skills/gsd-extend/templates/agent-template.md +0 -234
- package/get-shit-done/skills/gsd-extend/templates/reference-template.md +0 -239
- package/get-shit-done/skills/gsd-extend/templates/workflow-template.md +0 -169
- package/get-shit-done/skills/gsd-extend/workflows/create-approach.md +0 -332
- package/get-shit-done/skills/gsd-extend/workflows/list-extensions.md +0 -133
- package/get-shit-done/skills/gsd-extend/workflows/remove-extension.md +0 -93
- package/get-shit-done/skills/gsd-extend/workflows/validate-extension.md +0 -184
- package/get-shit-done/templates/autopilot-script-simple.sh +0 -181
- package/get-shit-done/templates/autopilot-script.sh +0 -1142
- package/get-shit-done/templates/autopilot-script.sh.backup +0 -1142
- package/get-shit-done/templates/design-system.md +0 -238
- package/get-shit-done/templates/phase-design.md +0 -205
- package/get-shit-done/templates/phase-models-template.json +0 -71
- package/get-shit-done/tui/App.tsx +0 -169
- package/get-shit-done/tui/README.md +0 -107
- package/get-shit-done/tui/build.js +0 -37
- package/get-shit-done/tui/components/ActivityFeed.tsx +0 -126
- package/get-shit-done/tui/components/PhaseCard.tsx +0 -86
- package/get-shit-done/tui/components/StatsBar.tsx +0 -147
- package/get-shit-done/tui/dist/index.js +0 -387
- package/get-shit-done/tui/index.tsx +0 -12
- package/get-shit-done/tui/package-lock.json +0 -1074
- package/get-shit-done/tui/package.json +0 -22
- package/get-shit-done/tui/utils/pipeReader.ts +0 -129
- package/get-shit-done/workflows/design-system.md +0 -245
- package/get-shit-done/workflows/discuss-design.md +0 -330
- package/get-shit-done/workflows/execute-plan-auth.md +0 -122
- package/get-shit-done/workflows/execute-plan-checkpoints.md +0 -541
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: workflow-template
|
|
3
|
-
description: Template for creating custom workflow extensions
|
|
4
|
-
used_by:
|
|
5
|
-
- create-workflow
|
|
6
|
-
placeholders:
|
|
7
|
-
- name
|
|
8
|
-
- description
|
|
9
|
-
- triggers
|
|
10
|
-
- replaces
|
|
11
|
-
- requires
|
|
12
|
-
- purpose
|
|
13
|
-
- when_to_use
|
|
14
|
-
- required_reading
|
|
15
|
-
- steps
|
|
16
|
-
- success_criteria
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
<template>
|
|
20
|
-
|
|
21
|
-
```yaml
|
|
22
|
-
---
|
|
23
|
-
name: {name}
|
|
24
|
-
description: {description}
|
|
25
|
-
triggers: [{triggers}]
|
|
26
|
-
replaces: {replaces}
|
|
27
|
-
requires: [{requires}]
|
|
28
|
-
---
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
```xml
|
|
32
|
-
<purpose>
|
|
33
|
-
{purpose}
|
|
34
|
-
</purpose>
|
|
35
|
-
|
|
36
|
-
<when_to_use>
|
|
37
|
-
{when_to_use}
|
|
38
|
-
</when_to_use>
|
|
39
|
-
|
|
40
|
-
<required_reading>
|
|
41
|
-
{required_reading}
|
|
42
|
-
</required_reading>
|
|
43
|
-
|
|
44
|
-
<process>
|
|
45
|
-
|
|
46
|
-
{steps}
|
|
47
|
-
|
|
48
|
-
</process>
|
|
49
|
-
|
|
50
|
-
<success_criteria>
|
|
51
|
-
{success_criteria}
|
|
52
|
-
</success_criteria>
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
</template>
|
|
56
|
-
|
|
57
|
-
<guidelines>
|
|
58
|
-
|
|
59
|
-
## How to Fill This Template
|
|
60
|
-
|
|
61
|
-
**{name}:** kebab-case identifier matching filename (e.g., `my-custom-workflow`)
|
|
62
|
-
|
|
63
|
-
**{description}:** One sentence describing what this workflow accomplishes
|
|
64
|
-
|
|
65
|
-
**{triggers}:** Array of trigger points:
|
|
66
|
-
- `plan-phase` - Triggered by /gsd:plan-phase
|
|
67
|
-
- `execute-plan` - Triggered during plan execution
|
|
68
|
-
- `execute-phase` - Triggered by /gsd:execute-phase
|
|
69
|
-
- `verify-phase` - Triggered during verification
|
|
70
|
-
- `custom` - Only triggered via explicit reference
|
|
71
|
-
|
|
72
|
-
**{replaces}:** Name of built-in workflow to override, or `null` for new capability
|
|
73
|
-
|
|
74
|
-
**{requires}:** Array of reference names this workflow needs, or `[]` for none
|
|
75
|
-
|
|
76
|
-
**{purpose}:** 2-3 sentences explaining what this workflow does and why
|
|
77
|
-
|
|
78
|
-
**{when_to_use}:** Bullet list of conditions that make this workflow appropriate
|
|
79
|
-
|
|
80
|
-
**{required_reading}:** @-references to files that must be loaded
|
|
81
|
-
|
|
82
|
-
**{steps}:** Series of `<step name="step_name">` elements, each containing:
|
|
83
|
-
- Clear description of what the step does
|
|
84
|
-
- Code examples if needed
|
|
85
|
-
- Conditional logic if needed
|
|
86
|
-
|
|
87
|
-
**{success_criteria}:** Markdown checklist of completion criteria
|
|
88
|
-
|
|
89
|
-
</guidelines>
|
|
90
|
-
|
|
91
|
-
<examples>
|
|
92
|
-
|
|
93
|
-
## Good Example
|
|
94
|
-
|
|
95
|
-
```yaml
|
|
96
|
-
---
|
|
97
|
-
name: spike-first-planning
|
|
98
|
-
description: Plan by creating a spike implementation first
|
|
99
|
-
triggers: [plan-phase]
|
|
100
|
-
replaces: null
|
|
101
|
-
requires: []
|
|
102
|
-
---
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
```xml
|
|
106
|
-
<purpose>
|
|
107
|
-
Alternative planning workflow that creates a spike implementation first,
|
|
108
|
-
then derives formal plans from what worked. Use when exploring unfamiliar
|
|
109
|
-
domains where requirements are fuzzy.
|
|
110
|
-
</purpose>
|
|
111
|
-
|
|
112
|
-
<when_to_use>
|
|
113
|
-
- Domain is unfamiliar and approach is uncertain
|
|
114
|
-
- Requirements are vague or evolving
|
|
115
|
-
- Learning through implementation is valuable
|
|
116
|
-
- Risk of over-planning is high
|
|
117
|
-
</when_to_use>
|
|
118
|
-
|
|
119
|
-
<process>
|
|
120
|
-
|
|
121
|
-
<step name="create_spike">
|
|
122
|
-
Create a time-boxed spike task focusing on the core uncertainty.
|
|
123
|
-
Goal is learning, not production quality.
|
|
124
|
-
</step>
|
|
125
|
-
|
|
126
|
-
<step name="execute_spike">
|
|
127
|
-
Execute spike with 1-2 hour time limit. Document:
|
|
128
|
-
- What worked
|
|
129
|
-
- What didn't work
|
|
130
|
-
- Key decisions made
|
|
131
|
-
- Approach to formalize
|
|
132
|
-
</step>
|
|
133
|
-
|
|
134
|
-
<step name="derive_plans">
|
|
135
|
-
From spike learnings, create formal PLAN.md files:
|
|
136
|
-
- Extract the successful approach
|
|
137
|
-
- Add proper verification
|
|
138
|
-
- Define success criteria
|
|
139
|
-
</step>
|
|
140
|
-
|
|
141
|
-
</process>
|
|
142
|
-
|
|
143
|
-
<success_criteria>
|
|
144
|
-
- [ ] Spike completed within time box
|
|
145
|
-
- [ ] Learnings documented
|
|
146
|
-
- [ ] Formal plans derived from spike
|
|
147
|
-
- [ ] Ready for normal execution
|
|
148
|
-
</success_criteria>
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
## Bad Example
|
|
152
|
-
|
|
153
|
-
```yaml
|
|
154
|
-
---
|
|
155
|
-
name: workflow
|
|
156
|
-
description: Does stuff
|
|
157
|
-
triggers: []
|
|
158
|
-
---
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
Problems:
|
|
162
|
-
- Name is too generic
|
|
163
|
-
- Description is vague
|
|
164
|
-
- No triggers defined
|
|
165
|
-
- No purpose section
|
|
166
|
-
- No steps documented
|
|
167
|
-
- No success criteria
|
|
168
|
-
|
|
169
|
-
</examples>
|
|
@@ -1,332 +0,0 @@
|
|
|
1
|
-
<purpose>
|
|
2
|
-
Create a complete GSD approach through conversational discovery. An approach is a cohesive methodology - a workflow with supporting references, agents, and templates that work together.
|
|
3
|
-
|
|
4
|
-
You are a thinking partner, not an interviewer. The user knows what they want to achieve differently. Your job is to understand their vision and translate it into GSD components.
|
|
5
|
-
</purpose>
|
|
6
|
-
|
|
7
|
-
<required_reading>
|
|
8
|
-
@~/.claude/get-shit-done/skills/gsd-extend/references/extension-anatomy.md
|
|
9
|
-
</required_reading>
|
|
10
|
-
|
|
11
|
-
<philosophy>
|
|
12
|
-
**User = methodology designer. Claude = builder.**
|
|
13
|
-
|
|
14
|
-
The user knows:
|
|
15
|
-
- What frustrates them about current workflow
|
|
16
|
-
- What they imagine working better
|
|
17
|
-
- When they'd use this approach
|
|
18
|
-
- What success looks like
|
|
19
|
-
|
|
20
|
-
The user doesn't know (and shouldn't need to):
|
|
21
|
-
- GSD extension architecture
|
|
22
|
-
- Workflow vs agent vs reference distinctions
|
|
23
|
-
- XML structure and frontmatter format
|
|
24
|
-
- How to wire components together
|
|
25
|
-
|
|
26
|
-
Ask about their vision. You figure out the implementation.
|
|
27
|
-
</philosophy>
|
|
28
|
-
|
|
29
|
-
<process>
|
|
30
|
-
|
|
31
|
-
<step name="open_conversation" priority="first">
|
|
32
|
-
**Display stage banner:**
|
|
33
|
-
|
|
34
|
-
```
|
|
35
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
36
|
-
GSD ► CREATE APPROACH
|
|
37
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
**Open the conversation:**
|
|
41
|
-
|
|
42
|
-
Ask inline (freeform, NOT AskUserQuestion):
|
|
43
|
-
|
|
44
|
-
"What would you like GSD to do differently? Describe the workflow or approach you have in mind."
|
|
45
|
-
|
|
46
|
-
Wait for their response. This gives you context to ask intelligent follow-up questions.
|
|
47
|
-
</step>
|
|
48
|
-
|
|
49
|
-
<step name="follow_the_thread">
|
|
50
|
-
Based on what they said, ask follow-up questions that dig into their response.
|
|
51
|
-
|
|
52
|
-
**Use AskUserQuestion with options that probe what they mentioned:**
|
|
53
|
-
- Interpretations of vague terms
|
|
54
|
-
- Clarifications on triggers
|
|
55
|
-
- Concrete examples of what success looks like
|
|
56
|
-
|
|
57
|
-
**Keep following threads.** Each answer opens new threads. Ask about:
|
|
58
|
-
- What frustrates them about the current approach
|
|
59
|
-
- What specifically would be different
|
|
60
|
-
- When this approach applies vs doesn't
|
|
61
|
-
- What outputs or artifacts they expect
|
|
62
|
-
- What domain knowledge would help
|
|
63
|
-
|
|
64
|
-
**Example follow-up patterns:**
|
|
65
|
-
|
|
66
|
-
If they mention "spike first":
|
|
67
|
-
- "When you say spike, do you mean throwaway code or a minimal prototype?"
|
|
68
|
-
- "What happens after the spike? Formal plans, or iterate on the spike?"
|
|
69
|
-
- "How do you know when the spike is done?"
|
|
70
|
-
|
|
71
|
-
If they mention "security review":
|
|
72
|
-
- "At what point - before commit, before PR, after each task?"
|
|
73
|
-
- "What should it check? OWASP top 10, or specific patterns?"
|
|
74
|
-
- "Should it block on findings or just report?"
|
|
75
|
-
|
|
76
|
-
If they mention "API first":
|
|
77
|
-
- "OpenAPI spec, or informal contract?"
|
|
78
|
-
- "Generate code from spec, or just validate against it?"
|
|
79
|
-
- "Who writes the spec - you or Claude?"
|
|
80
|
-
|
|
81
|
-
**The 4-then-check pattern:**
|
|
82
|
-
|
|
83
|
-
After ~4 questions on a thread, check:
|
|
84
|
-
|
|
85
|
-
- header: "Thread"
|
|
86
|
-
- question: "More questions about [topic], or move on?"
|
|
87
|
-
- options:
|
|
88
|
-
- "More questions" — I want to clarify further
|
|
89
|
-
- "Move on" — I've said enough about this
|
|
90
|
-
|
|
91
|
-
If "More questions" → ask 4 more, then check again.
|
|
92
|
-
</step>
|
|
93
|
-
|
|
94
|
-
<step name="identify_components">
|
|
95
|
-
As you converse, mentally map what they're describing to GSD components:
|
|
96
|
-
|
|
97
|
-
**Workflow signals:**
|
|
98
|
-
- "First I want to..., then..." → sequence of steps
|
|
99
|
-
- "At this point, check..." → verification step
|
|
100
|
-
- "If X happens, then..." → conditional logic
|
|
101
|
-
- "This replaces..." → override built-in
|
|
102
|
-
|
|
103
|
-
**Reference signals:**
|
|
104
|
-
- "Claude should know about..." → domain knowledge
|
|
105
|
-
- "There are patterns for..." → best practices
|
|
106
|
-
- "Watch out for..." → anti-patterns
|
|
107
|
-
- "In our codebase, we..." → project conventions
|
|
108
|
-
|
|
109
|
-
**Agent signals:**
|
|
110
|
-
- "Specialized analysis of..." → focused worker
|
|
111
|
-
- "Review for..." → auditing task
|
|
112
|
-
- "Research..." → investigation task
|
|
113
|
-
- "Generate..." → creation task
|
|
114
|
-
|
|
115
|
-
**Template signals:**
|
|
116
|
-
- "The output should look like..." → structured format
|
|
117
|
-
- "Always include..." → required sections
|
|
118
|
-
- "Following this format..." → consistency need
|
|
119
|
-
|
|
120
|
-
Don't surface this analysis. Just track it internally.
|
|
121
|
-
</step>
|
|
122
|
-
|
|
123
|
-
<step name="ready_check">
|
|
124
|
-
When you could design the approach, use AskUserQuestion:
|
|
125
|
-
|
|
126
|
-
- header: "Ready?"
|
|
127
|
-
- question: "I think I understand what you're after. Ready to design the approach?"
|
|
128
|
-
- options:
|
|
129
|
-
- "Design it" — Let's see what you've got
|
|
130
|
-
- "Keep exploring" — I want to share more
|
|
131
|
-
|
|
132
|
-
If "Keep exploring" — ask what they want to add, or identify gaps and probe naturally.
|
|
133
|
-
|
|
134
|
-
Loop until "Design it" selected.
|
|
135
|
-
</step>
|
|
136
|
-
|
|
137
|
-
<step name="present_design">
|
|
138
|
-
Present the approach design:
|
|
139
|
-
|
|
140
|
-
```
|
|
141
|
-
## Proposed Approach: {name}
|
|
142
|
-
|
|
143
|
-
Based on our conversation, here's what I'll create:
|
|
144
|
-
|
|
145
|
-
**Workflow:** {name}.md
|
|
146
|
-
- Triggers: {when it activates}
|
|
147
|
-
- {Replaces: {built-in} OR Adds new capability}
|
|
148
|
-
- Flow:
|
|
149
|
-
1. {step 1}
|
|
150
|
-
2. {step 2}
|
|
151
|
-
3. {step 3}
|
|
152
|
-
|
|
153
|
-
{If reference needed:}
|
|
154
|
-
**Reference:** {name}-patterns.md
|
|
155
|
-
- Domain knowledge about: {what}
|
|
156
|
-
- Loaded when: {triggers}
|
|
157
|
-
|
|
158
|
-
{If agent needed:}
|
|
159
|
-
**Agent:** {name}-{role}.md
|
|
160
|
-
- Purpose: {what it does}
|
|
161
|
-
- Spawned: {when in the workflow}
|
|
162
|
-
|
|
163
|
-
{If template needed:}
|
|
164
|
-
**Template:** {name}-{artifact}.md
|
|
165
|
-
- Produces: {what artifact}
|
|
166
|
-
- Used by: {workflow step}
|
|
167
|
-
|
|
168
|
-
---
|
|
169
|
-
|
|
170
|
-
Does this capture your approach?
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
Use AskUserQuestion:
|
|
174
|
-
- header: "Design"
|
|
175
|
-
- question: "Does this design capture what you described?"
|
|
176
|
-
- options:
|
|
177
|
-
- "Yes, create it" — Build all the components
|
|
178
|
-
- "Adjust" — Let me tell you what's different
|
|
179
|
-
- "Start over" — I want to describe it differently
|
|
180
|
-
|
|
181
|
-
If "Adjust" — get their feedback, update design, present again.
|
|
182
|
-
If "Start over" — return to open_conversation.
|
|
183
|
-
</step>
|
|
184
|
-
|
|
185
|
-
<step name="determine_scope">
|
|
186
|
-
Use AskUserQuestion:
|
|
187
|
-
|
|
188
|
-
- header: "Scope"
|
|
189
|
-
- question: "Where should this approach be available?"
|
|
190
|
-
- options:
|
|
191
|
-
- "All my projects (Recommended)" — Install to ~/.claude/gsd-extensions/
|
|
192
|
-
- "This project only" — Install to .planning/extensions/
|
|
193
|
-
</step>
|
|
194
|
-
|
|
195
|
-
<step name="generate_components">
|
|
196
|
-
Create all components with proper cross-references.
|
|
197
|
-
|
|
198
|
-
**1. Create directories:**
|
|
199
|
-
|
|
200
|
-
```bash
|
|
201
|
-
if [[ "$SCOPE" == "global" ]]; then
|
|
202
|
-
BASE="$HOME/.claude/gsd-extensions"
|
|
203
|
-
else
|
|
204
|
-
BASE=".planning/extensions"
|
|
205
|
-
fi
|
|
206
|
-
|
|
207
|
-
mkdir -p "$BASE/workflows"
|
|
208
|
-
[[ -n "$NEEDS_REFERENCE" ]] && mkdir -p "$BASE/references"
|
|
209
|
-
[[ -n "$NEEDS_AGENT" ]] && mkdir -p "$BASE/agents"
|
|
210
|
-
[[ -n "$NEEDS_TEMPLATE" ]] && mkdir -p "$BASE/templates"
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
**2. Generate each component:**
|
|
214
|
-
|
|
215
|
-
For each component, use the appropriate structure from references/:
|
|
216
|
-
- Workflow: @references/workflow-structure.md
|
|
217
|
-
- Agent: @references/agent-structure.md
|
|
218
|
-
- Reference: @references/reference-structure.md
|
|
219
|
-
- Template: @references/template-structure.md
|
|
220
|
-
|
|
221
|
-
**3. Wire components together:**
|
|
222
|
-
|
|
223
|
-
In the workflow, add @-references to other components:
|
|
224
|
-
|
|
225
|
-
```xml
|
|
226
|
-
<required_reading>
|
|
227
|
-
@{BASE}/references/{name}-patterns.md
|
|
228
|
-
</required_reading>
|
|
229
|
-
|
|
230
|
-
<step name="spawn_specialized_agent">
|
|
231
|
-
Task(
|
|
232
|
-
prompt="@{BASE}/agents/{name}-{role}.md
|
|
233
|
-
|
|
234
|
-
<context>
|
|
235
|
-
{context from workflow state}
|
|
236
|
-
</context>",
|
|
237
|
-
subagent_type="general-purpose",
|
|
238
|
-
model="sonnet",
|
|
239
|
-
description="{brief}"
|
|
240
|
-
)
|
|
241
|
-
</step>
|
|
242
|
-
|
|
243
|
-
<output>
|
|
244
|
-
Use template: @{BASE}/templates/{name}-{artifact}.md
|
|
245
|
-
</output>
|
|
246
|
-
```
|
|
247
|
-
</step>
|
|
248
|
-
|
|
249
|
-
<step name="validate">
|
|
250
|
-
Validate all components:
|
|
251
|
-
|
|
252
|
-
```bash
|
|
253
|
-
echo "Validating approach..."
|
|
254
|
-
|
|
255
|
-
for file in "$BASE"/*/"${PREFIX}"*.md; do
|
|
256
|
-
echo " Checking: $(basename $file)"
|
|
257
|
-
|
|
258
|
-
# YAML frontmatter
|
|
259
|
-
head -5 "$file" | grep -q "^---" && echo " ✓ Frontmatter" || echo " ✗ Missing frontmatter"
|
|
260
|
-
|
|
261
|
-
# Required fields
|
|
262
|
-
grep -q "^name:" "$file" && echo " ✓ Name field" || echo " ✗ Missing name"
|
|
263
|
-
grep -q "^description:" "$file" && echo " ✓ Description" || echo " ✗ Missing description"
|
|
264
|
-
done
|
|
265
|
-
|
|
266
|
-
# Check cross-references resolve
|
|
267
|
-
echo " Checking references..."
|
|
268
|
-
grep -ohE '@[~./][^[:space:]<>]+' "$BASE/workflows/${PREFIX}"*.md 2>/dev/null | while read ref; do
|
|
269
|
-
path="${ref#@}"
|
|
270
|
-
path="${path/#\~/$HOME}"
|
|
271
|
-
[[ -f "$path" ]] && echo " ✓ $ref" || echo " ✗ $ref NOT FOUND"
|
|
272
|
-
done
|
|
273
|
-
|
|
274
|
-
echo "Validation complete."
|
|
275
|
-
```
|
|
276
|
-
</step>
|
|
277
|
-
|
|
278
|
-
<step name="present_result">
|
|
279
|
-
```
|
|
280
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
281
|
-
GSD ► APPROACH CREATED ✓
|
|
282
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
283
|
-
|
|
284
|
-
## {Approach Name}
|
|
285
|
-
|
|
286
|
-
| Component | Location |
|
|
287
|
-
|-----------|----------|
|
|
288
|
-
| Workflow | {path} |
|
|
289
|
-
| Reference | {path} |
|
|
290
|
-
| Agent | {path} |
|
|
291
|
-
| Template | {path} |
|
|
292
|
-
|
|
293
|
-
───────────────────────────────────────────────────────────────
|
|
294
|
-
|
|
295
|
-
## How to Use
|
|
296
|
-
|
|
297
|
-
{If replaces built-in:}
|
|
298
|
-
Automatically activates when you run `{command}`.
|
|
299
|
-
GSD uses your workflow instead of the built-in.
|
|
300
|
-
|
|
301
|
-
{If new capability:}
|
|
302
|
-
Reference in your plans or workflows:
|
|
303
|
-
@{workflow_path}
|
|
304
|
-
|
|
305
|
-
Or invoke the workflow step name from your commands.
|
|
306
|
-
|
|
307
|
-
───────────────────────────────────────────────────────────────
|
|
308
|
-
|
|
309
|
-
## To Customize
|
|
310
|
-
|
|
311
|
-
Edit files directly:
|
|
312
|
-
{list paths}
|
|
313
|
-
|
|
314
|
-
## To Remove
|
|
315
|
-
|
|
316
|
-
/gsd:extend remove {name}
|
|
317
|
-
|
|
318
|
-
───────────────────────────────────────────────────────────────
|
|
319
|
-
```
|
|
320
|
-
</step>
|
|
321
|
-
|
|
322
|
-
</process>
|
|
323
|
-
|
|
324
|
-
<success_criteria>
|
|
325
|
-
- [ ] User's vision fully understood through conversation
|
|
326
|
-
- [ ] Follow-up questions probed what user mentioned (not generic)
|
|
327
|
-
- [ ] User confirmed design before generation
|
|
328
|
-
- [ ] All needed components identified and created
|
|
329
|
-
- [ ] Components properly cross-referenced
|
|
330
|
-
- [ ] All components pass validation
|
|
331
|
-
- [ ] User knows how to use and customize the approach
|
|
332
|
-
</success_criteria>
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
<purpose>
|
|
2
|
-
Discover and list all GSD extensions, grouped by approach when components share naming conventions.
|
|
3
|
-
</purpose>
|
|
4
|
-
|
|
5
|
-
<process>
|
|
6
|
-
|
|
7
|
-
<step name="scan_extensions">
|
|
8
|
-
Scan all extension locations:
|
|
9
|
-
|
|
10
|
-
```bash
|
|
11
|
-
echo "Scanning extensions..."
|
|
12
|
-
|
|
13
|
-
# Collect all extension files
|
|
14
|
-
PROJECT_EXTS=$(find .planning/extensions -name "*.md" 2>/dev/null | sort)
|
|
15
|
-
GLOBAL_EXTS=$(find ~/.claude/gsd-extensions -name "*.md" 2>/dev/null | sort)
|
|
16
|
-
BUILTIN_WORKFLOWS=$(ls ~/.claude/get-shit-done/workflows/*.md 2>/dev/null | wc -l | xargs)
|
|
17
|
-
BUILTIN_REFS=$(ls ~/.claude/get-shit-done/references/*.md 2>/dev/null | wc -l | xargs)
|
|
18
|
-
BUILTIN_TEMPLATES=$(ls ~/.claude/get-shit-done/templates/*.md 2>/dev/null | wc -l | xargs)
|
|
19
|
-
```
|
|
20
|
-
</step>
|
|
21
|
-
|
|
22
|
-
<step name="identify_approaches">
|
|
23
|
-
Group extensions by shared prefix to identify approaches:
|
|
24
|
-
|
|
25
|
-
For each extension file:
|
|
26
|
-
1. Extract the base name (e.g., `spike-first-planning.md` → `spike-first`)
|
|
27
|
-
2. Group files with same prefix across types
|
|
28
|
-
3. Identify cohesive approaches vs standalone components
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
# Example grouping logic
|
|
32
|
-
for ext in $GLOBAL_EXTS; do
|
|
33
|
-
type=$(dirname "$ext" | xargs basename)
|
|
34
|
-
name=$(basename "$ext" .md)
|
|
35
|
-
prefix=$(echo "$name" | sed 's/-[^-]*$//') # Remove last segment
|
|
36
|
-
echo "$prefix|$type|$name"
|
|
37
|
-
done | sort
|
|
38
|
-
```
|
|
39
|
-
</step>
|
|
40
|
-
|
|
41
|
-
<step name="format_output">
|
|
42
|
-
Present extensions organized by scope and approach:
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
46
|
-
GSD ► EXTENSIONS
|
|
47
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
48
|
-
|
|
49
|
-
## Project Extensions (.planning/extensions/)
|
|
50
|
-
|
|
51
|
-
{If none:}
|
|
52
|
-
None installed.
|
|
53
|
-
|
|
54
|
-
{If found, group by approach:}
|
|
55
|
-
|
|
56
|
-
### spike-first (approach)
|
|
57
|
-
- workflows/spike-first-planning.md
|
|
58
|
-
- references/spike-patterns.md
|
|
59
|
-
- agents/spike-evaluator.md
|
|
60
|
-
|
|
61
|
-
### security-audit (standalone workflow)
|
|
62
|
-
- workflows/security-audit.md
|
|
63
|
-
|
|
64
|
-
───────────────────────────────────────────────────────────────
|
|
65
|
-
|
|
66
|
-
## Global Extensions (~/.claude/gsd-extensions/)
|
|
67
|
-
|
|
68
|
-
{Same format}
|
|
69
|
-
|
|
70
|
-
───────────────────────────────────────────────────────────────
|
|
71
|
-
|
|
72
|
-
## Built-in GSD
|
|
73
|
-
|
|
74
|
-
- {N} workflows
|
|
75
|
-
- {N} references
|
|
76
|
-
- {N} templates
|
|
77
|
-
- {N} agents
|
|
78
|
-
|
|
79
|
-
───────────────────────────────────────────────────────────────
|
|
80
|
-
|
|
81
|
-
## Override Status
|
|
82
|
-
|
|
83
|
-
{List any custom extensions that override built-ins}
|
|
84
|
-
|
|
85
|
-
───────────────────────────────────────────────────────────────
|
|
86
|
-
|
|
87
|
-
## Actions
|
|
88
|
-
|
|
89
|
-
/gsd:extend create — Create a new approach
|
|
90
|
-
/gsd:extend remove X — Remove an extension
|
|
91
|
-
|
|
92
|
-
───────────────────────────────────────────────────────────────
|
|
93
|
-
```
|
|
94
|
-
</step>
|
|
95
|
-
|
|
96
|
-
<step name="detail_on_request">
|
|
97
|
-
If user asks about a specific extension, show details:
|
|
98
|
-
|
|
99
|
-
```bash
|
|
100
|
-
# Read frontmatter
|
|
101
|
-
head -20 "$EXT_PATH" | sed -n '/^---$/,/^---$/p'
|
|
102
|
-
|
|
103
|
-
# Show structure
|
|
104
|
-
wc -l "$EXT_PATH"
|
|
105
|
-
|
|
106
|
-
# Show cross-references
|
|
107
|
-
grep -oE '@[~./][^[:space:]]+' "$EXT_PATH"
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
Present:
|
|
111
|
-
```
|
|
112
|
-
## Extension: {name}
|
|
113
|
-
|
|
114
|
-
**Type:** {workflow/agent/reference/template}
|
|
115
|
-
**Location:** {path}
|
|
116
|
-
**Description:** {from frontmatter}
|
|
117
|
-
|
|
118
|
-
**Cross-references:**
|
|
119
|
-
{list of @-references}
|
|
120
|
-
|
|
121
|
-
**Structure:**
|
|
122
|
-
{line count, sections present}
|
|
123
|
-
```
|
|
124
|
-
</step>
|
|
125
|
-
|
|
126
|
-
</process>
|
|
127
|
-
|
|
128
|
-
<success_criteria>
|
|
129
|
-
- [ ] All scopes scanned (project, global, built-in)
|
|
130
|
-
- [ ] Extensions grouped by approach where applicable
|
|
131
|
-
- [ ] Override status identified
|
|
132
|
-
- [ ] User knows how to create/remove
|
|
133
|
-
</success_criteria>
|