get-shit-done-cc 1.9.11 → 1.10.0-experimental.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.
Files changed (61) hide show
  1. package/README.md +10 -9
  2. package/agents/design-specialist.md +222 -0
  3. package/agents/gsd-executor.md +37 -375
  4. package/agents/gsd-planner.md +15 -108
  5. package/bin/install.js +92 -5
  6. package/commands/gsd/autopilot.md +518 -0
  7. package/commands/gsd/checkpoints.md +229 -0
  8. package/commands/gsd/design-system.md +70 -0
  9. package/commands/gsd/discuss-design.md +77 -0
  10. package/commands/gsd/extend.md +80 -0
  11. package/commands/gsd/help.md +46 -17
  12. package/commands/gsd/new-project.md +94 -8
  13. package/commands/gsd/plan-phase.md +35 -5
  14. package/get-shit-done/references/ccr-integration.md +468 -0
  15. package/get-shit-done/references/checkpoint-execution.md +369 -0
  16. package/get-shit-done/references/checkpoint-types.md +728 -0
  17. package/get-shit-done/references/deviation-rules.md +215 -0
  18. package/get-shit-done/references/framework-patterns.md +543 -0
  19. package/get-shit-done/references/ui-principles.md +258 -0
  20. package/get-shit-done/references/verification-patterns.md +1 -1
  21. package/get-shit-done/skills/gsd-extend/SKILL.md +154 -0
  22. package/get-shit-done/skills/gsd-extend/references/agent-structure.md +305 -0
  23. package/get-shit-done/skills/gsd-extend/references/extension-anatomy.md +123 -0
  24. package/get-shit-done/skills/gsd-extend/references/reference-structure.md +408 -0
  25. package/get-shit-done/skills/gsd-extend/references/template-structure.md +370 -0
  26. package/get-shit-done/skills/gsd-extend/references/validation-rules.md +140 -0
  27. package/get-shit-done/skills/gsd-extend/references/workflow-structure.md +253 -0
  28. package/get-shit-done/skills/gsd-extend/templates/agent-template.md +234 -0
  29. package/get-shit-done/skills/gsd-extend/templates/reference-template.md +239 -0
  30. package/get-shit-done/skills/gsd-extend/templates/workflow-template.md +169 -0
  31. package/get-shit-done/skills/gsd-extend/workflows/create-approach.md +332 -0
  32. package/get-shit-done/skills/gsd-extend/workflows/list-extensions.md +133 -0
  33. package/get-shit-done/skills/gsd-extend/workflows/remove-extension.md +93 -0
  34. package/get-shit-done/skills/gsd-extend/workflows/validate-extension.md +184 -0
  35. package/get-shit-done/templates/autopilot-script-simple.sh +181 -0
  36. package/get-shit-done/templates/autopilot-script.sh +1142 -0
  37. package/get-shit-done/templates/autopilot-script.sh.backup +1142 -0
  38. package/get-shit-done/templates/design-system.md +238 -0
  39. package/get-shit-done/templates/phase-design.md +205 -0
  40. package/get-shit-done/templates/phase-models-template.json +71 -0
  41. package/get-shit-done/templates/phase-prompt.md +4 -4
  42. package/get-shit-done/templates/state.md +37 -0
  43. package/get-shit-done/tui/App.tsx +169 -0
  44. package/get-shit-done/tui/README.md +107 -0
  45. package/get-shit-done/tui/build.js +37 -0
  46. package/get-shit-done/tui/components/ActivityFeed.tsx +126 -0
  47. package/get-shit-done/tui/components/PhaseCard.tsx +86 -0
  48. package/get-shit-done/tui/components/StatsBar.tsx +147 -0
  49. package/get-shit-done/tui/dist/index.js +387 -0
  50. package/get-shit-done/tui/index.tsx +12 -0
  51. package/get-shit-done/tui/package-lock.json +1074 -0
  52. package/get-shit-done/tui/package.json +22 -0
  53. package/get-shit-done/tui/utils/pipeReader.ts +129 -0
  54. package/get-shit-done/workflows/design-system.md +245 -0
  55. package/get-shit-done/workflows/discuss-design.md +330 -0
  56. package/get-shit-done/workflows/execute-phase.md +44 -1
  57. package/get-shit-done/workflows/execute-plan-auth.md +122 -0
  58. package/get-shit-done/workflows/execute-plan-checkpoints.md +541 -0
  59. package/get-shit-done/workflows/execute-plan.md +34 -856
  60. package/package.json +8 -3
  61. package/commands/gsd/whats-new.md +0 -124
@@ -0,0 +1,258 @@
1
+ ---
2
+ name: ui-principles
3
+ description: Professional UI/UX design principles for high-quality interfaces
4
+ load_when:
5
+ - design
6
+ - ui
7
+ - frontend
8
+ - component
9
+ - layout
10
+ - mockup
11
+ auto_load_for: []
12
+ ---
13
+
14
+ <ui_principles>
15
+
16
+ ## Overview
17
+
18
+ Professional UI design principles that ensure high-quality, polished interfaces. These are non-negotiable standards—not suggestions.
19
+
20
+ ## Visual Hierarchy
21
+
22
+ ### Establish Clear Priority
23
+
24
+ Every screen has one primary action. Make it obvious.
25
+
26
+ **Weight hierarchy:**
27
+ 1. Primary action (bold, prominent, singular)
28
+ 2. Secondary actions (visible but subdued)
29
+ 3. Tertiary actions (discoverable but not competing)
30
+
31
+ **Size signals importance:**
32
+ - Headings > body text > captions
33
+ - Primary buttons > secondary > tertiary
34
+ - Key metrics > supporting data
35
+
36
+ ### Whitespace Is Not Empty
37
+
38
+ Whitespace is a design element. It:
39
+ - Groups related items
40
+ - Separates unrelated items
41
+ - Creates breathing room
42
+ - Signals quality
43
+
44
+ **Minimum spacing guidelines:**
45
+ - Between unrelated sections: 32-48px
46
+ - Between related items: 16-24px
47
+ - Internal padding: 12-16px
48
+ - Touch targets: 44px minimum
49
+
50
+ ## Typography
51
+
52
+ ### Establish a Type Scale
53
+
54
+ Use a consistent mathematical scale. Example (1.25 ratio):
55
+ ```
56
+ 12px - Caption/small
57
+ 14px - Body small
58
+ 16px - Body (base)
59
+ 20px - H4
60
+ 24px - H3
61
+ 32px - H2
62
+ 40px - H1
63
+ ```
64
+
65
+ ### Font Weights
66
+
67
+ Limit to 2-3 weights maximum:
68
+ - Regular (400) - Body text
69
+ - Medium (500) - Emphasis, labels
70
+ - Bold (700) - Headings, key actions
71
+
72
+ ### Line Height
73
+
74
+ - Body text: 1.5-1.6
75
+ - Headings: 1.2-1.3
76
+ - Captions: 1.4
77
+
78
+ ### Maximum Line Width
79
+
80
+ Body text: 60-75 characters. Longer lines reduce readability.
81
+
82
+ ## Color
83
+
84
+ ### Build a Palette
85
+
86
+ **Semantic colors:**
87
+ - Primary: Brand/action color
88
+ - Secondary: Supporting accent
89
+ - Success: #22C55E range (green)
90
+ - Warning: #F59E0B range (amber)
91
+ - Error: #EF4444 range (red)
92
+ - Info: #3B82F6 range (blue)
93
+
94
+ **Neutral scale:**
95
+ Build 9-11 shades from near-white to near-black:
96
+ ```
97
+ 50 - Backgrounds, subtle borders
98
+ 100 - Hover states, dividers
99
+ 200 - Disabled states
100
+ 300 - Borders
101
+ 400 - Placeholder text
102
+ 500 - Secondary text
103
+ 600 - Body text (dark mode)
104
+ 700 - Body text (light mode)
105
+ 800 - Headings
106
+ 900 - High contrast text
107
+ 950 - Near black
108
+ ```
109
+
110
+ ### Contrast Requirements
111
+
112
+ - Body text: 4.5:1 minimum (WCAG AA)
113
+ - Large text (18px+): 3:1 minimum
114
+ - Interactive elements: 3:1 against background
115
+
116
+ ## Layout
117
+
118
+ ### Grid Systems
119
+
120
+ Use a consistent grid:
121
+ - 4px base unit for spacing
122
+ - 8px increments for larger spacing
123
+ - 12-column grid for responsive layouts
124
+
125
+ ### Responsive Breakpoints
126
+
127
+ ```
128
+ sm: 640px - Mobile landscape
129
+ md: 768px - Tablets
130
+ lg: 1024px - Small desktops
131
+ xl: 1280px - Standard desktops
132
+ 2xl: 1536px - Large displays
133
+ ```
134
+
135
+ ### Content Width
136
+
137
+ - Maximum content width: 1200-1440px
138
+ - Prose/reading: 680-720px
139
+ - Forms: 480-560px
140
+
141
+ ## Components
142
+
143
+ ### Buttons
144
+
145
+ **States (all buttons must have):**
146
+ - Default
147
+ - Hover
148
+ - Active/pressed
149
+ - Focus (visible outline)
150
+ - Disabled
151
+ - Loading (if applicable)
152
+
153
+ **Sizing:**
154
+ - Small: 32px height, 12px horizontal padding
155
+ - Medium: 40px height, 16px horizontal padding
156
+ - Large: 48px height, 24px horizontal padding
157
+
158
+ ### Form Inputs
159
+
160
+ **States:**
161
+ - Default
162
+ - Hover
163
+ - Focus (prominent ring)
164
+ - Error (red border + message)
165
+ - Disabled
166
+ - Read-only
167
+
168
+ **Guidelines:**
169
+ - Labels above inputs (not inside)
170
+ - Helper text below inputs
171
+ - Error messages replace helper text
172
+ - Required indicator: asterisk after label
173
+
174
+ ### Cards
175
+
176
+ **Structure:**
177
+ - Optional media (top or left)
178
+ - Content area with consistent padding
179
+ - Optional footer for actions
180
+ - Subtle shadow or border
181
+
182
+ **Guidelines:**
183
+ - Consistent border radius (8px is standard)
184
+ - Don't overload with actions
185
+ - Group related cards visually
186
+
187
+ ## Interaction
188
+
189
+ ### Feedback
190
+
191
+ Every action needs feedback:
192
+ - Button click: Visual press state
193
+ - Form submission: Loading state → success/error
194
+ - Navigation: Active state indication
195
+ - Background processes: Progress indication
196
+
197
+ ### Transitions
198
+
199
+ **Duration:**
200
+ - Micro interactions: 100-150ms
201
+ - UI transitions: 200-300ms
202
+ - Page transitions: 300-500ms
203
+
204
+ **Easing:**
205
+ - Entering: ease-out
206
+ - Exiting: ease-in
207
+ - Moving: ease-in-out
208
+
209
+ ### Loading States
210
+
211
+ Never leave users wondering:
212
+ - Skeleton screens for content loading
213
+ - Spinners for brief waits
214
+ - Progress bars for longer operations
215
+ - Disable interactive elements during submission
216
+
217
+ ## Anti-Patterns
218
+
219
+ ### Visual Noise
220
+
221
+ **Problem:** Too many colors, borders, shadows competing
222
+ **Fix:** Reduce to essentials. When in doubt, remove.
223
+
224
+ ### Inconsistent Spacing
225
+
226
+ **Problem:** Random margins and padding throughout
227
+ **Fix:** Use spacing scale religiously (4, 8, 12, 16, 24, 32, 48...)
228
+
229
+ ### Orphan Elements
230
+
231
+ **Problem:** Single items floating with no visual relationship
232
+ **Fix:** Group related elements. Use proximity and shared styling.
233
+
234
+ ### Weak Hierarchy
235
+
236
+ **Problem:** Everything looks equally important
237
+ **Fix:** Make primary action 2x more prominent. Reduce secondary elements.
238
+
239
+ ### Over-Decoration
240
+
241
+ **Problem:** Gradients, shadows, borders, rounded corners all at once
242
+ **Fix:** Pick 1-2 decorative elements per component max.
243
+
244
+ ## Professional Polish Checklist
245
+
246
+ - [ ] Consistent spacing throughout
247
+ - [ ] Type scale followed exactly
248
+ - [ ] Color palette limited and purposeful
249
+ - [ ] All interactive states designed
250
+ - [ ] Proper contrast ratios
251
+ - [ ] Touch targets 44px+
252
+ - [ ] Loading states for all async operations
253
+ - [ ] Error states for all forms
254
+ - [ ] Focus states visible for keyboard navigation
255
+ - [ ] No orphan elements
256
+ - [ ] Clear visual hierarchy
257
+
258
+ </ui_principles>
@@ -600,7 +600,7 @@ Some things can't be verified programmatically. Flag these for human testing:
600
600
 
601
601
  For automation-first checkpoint patterns, server lifecycle management, CLI installation handling, and error recovery protocols, see:
602
602
 
603
- **@~/.claude/get-shit-done/references/checkpoints.md** → `<automation_reference>` section
603
+ **@~/.claude/get-shit-done/references/checkpoint-execution.md** → `<automation_reference>` section
604
604
 
605
605
  Key principles:
606
606
  - Claude sets up verification environment BEFORE presenting checkpoints
@@ -0,0 +1,154 @@
1
+ ---
2
+ name: gsd-extend
3
+ description: Create custom GSD approaches - complete methodologies with workflows, agents, references, and templates that work together. Use when users want to customize how GSD operates or add domain-specific execution patterns.
4
+ ---
5
+
6
+ <essential_principles>
7
+
8
+ ## GSD Extension System
9
+
10
+ GSD is extensible. Users can create custom **approaches** - complete methodologies that integrate with the GSD lifecycle.
11
+
12
+ An approach might include:
13
+ - **Workflow** - The execution pattern (required)
14
+ - **References** - Domain knowledge loaded during execution
15
+ - **Agent** - Specialized worker spawned by the workflow
16
+ - **Templates** - Output formats for artifacts
17
+
18
+ These components work together as a cohesive unit, not standalone pieces.
19
+
20
+ ## Extension Resolution Order
21
+
22
+ ```
23
+ 1. .planning/extensions/{type}/ (project-specific - highest priority)
24
+ 2. ~/.claude/gsd-extensions/{type}/ (global user extensions)
25
+ 3. ~/.claude/get-shit-done/{type}/ (built-in GSD - lowest priority)
26
+ ```
27
+
28
+ Project extensions override global, global overrides built-in.
29
+
30
+ ## When to Create an Approach
31
+
32
+ **Planning alternatives:**
33
+ - Spike-first: Explore before formalizing
34
+ - Research-heavy: Deep investigation before any code
35
+ - Prototype-driven: Build throwaway code to learn
36
+
37
+ **Execution patterns:**
38
+ - TDD-strict: Enforce red-green-refactor cycle
39
+ - Security-first: Audit before each commit
40
+ - Performance-aware: Profile after each feature
41
+
42
+ **Domain-specific:**
43
+ - API development with OpenAPI-first workflow
44
+ - Game development with playtest checkpoints
45
+ - ML projects with experiment tracking
46
+
47
+ **Quality gates:**
48
+ - Accessibility review before UI completion
49
+ - Documentation requirements per feature
50
+ - Architecture review at phase boundaries
51
+
52
+ </essential_principles>
53
+
54
+ <routing>
55
+
56
+ ## Understanding User Intent
57
+
58
+ Based on the user's message, route appropriately:
59
+
60
+ **Creating new approaches:**
61
+ - "create", "build", "add", "new approach/methodology/workflow"
62
+ → workflows/create-approach.md
63
+
64
+ **Managing extensions:**
65
+ - "list", "show", "what extensions" → workflows/list-extensions.md
66
+ - "validate", "check" → workflows/validate-extension.md
67
+ - "remove", "delete" → workflows/remove-extension.md
68
+
69
+ **If intent is unclear:**
70
+
71
+ Ask using AskUserQuestion:
72
+ - header: "Action"
73
+ - question: "What would you like to do?"
74
+ - options:
75
+ - "Create an approach" - Build a custom methodology (workflow + supporting pieces)
76
+ - "List extensions" - See all installed extensions
77
+ - "Remove an extension" - Delete something you've created
78
+
79
+ </routing>
80
+
81
+ <quick_reference>
82
+
83
+ ## Approach Components
84
+
85
+ | Component | Purpose | Required? |
86
+ |-----------|---------|-----------|
87
+ | Workflow | Orchestrates the approach | Yes |
88
+ | References | Domain knowledge | Often |
89
+ | Agent | Specialized worker | Sometimes |
90
+ | Templates | Output formats | Sometimes |
91
+
92
+ ## Directory Structure
93
+
94
+ ```
95
+ ~/.claude/gsd-extensions/
96
+ ├── workflows/
97
+ │ └── spike-first-planning.md
98
+ ├── references/
99
+ │ └── spike-patterns.md
100
+ ├── agents/
101
+ │ └── spike-evaluator.md
102
+ └── templates/
103
+ └── spike-summary.md
104
+ ```
105
+
106
+ All components of an approach share a naming convention (e.g., `spike-*`).
107
+
108
+ ## Scope Options
109
+
110
+ - **Project** (`.planning/extensions/`) - This project only
111
+ - **Global** (`~/.claude/gsd-extensions/`) - All projects
112
+
113
+ </quick_reference>
114
+
115
+ <reference_index>
116
+
117
+ ## Domain Knowledge
118
+
119
+ All in `references/`:
120
+
121
+ | Reference | Content |
122
+ |-----------|---------|
123
+ | extension-anatomy.md | How extensions work, lifecycle, integration |
124
+ | workflow-structure.md | Workflow format with examples |
125
+ | agent-structure.md | Agent format with examples |
126
+ | reference-structure.md | Reference format with examples |
127
+ | template-structure.md | Template format with examples |
128
+ | validation-rules.md | Validation rules for all types |
129
+
130
+ </reference_index>
131
+
132
+ <workflows_index>
133
+
134
+ ## Workflows
135
+
136
+ | Workflow | Purpose |
137
+ |----------|---------|
138
+ | create-approach.md | Create a complete methodology through conversation |
139
+ | list-extensions.md | Discover all installed extensions |
140
+ | validate-extension.md | Check extension for errors |
141
+ | remove-extension.md | Delete an extension |
142
+
143
+ </workflows_index>
144
+
145
+ <success_criteria>
146
+
147
+ Approach created successfully when:
148
+ - [ ] All components exist and are wired together
149
+ - [ ] Workflow references its supporting pieces correctly
150
+ - [ ] Components pass validation
151
+ - [ ] Approach is discoverable via list-extensions
152
+ - [ ] User understands how to trigger the approach
153
+
154
+ </success_criteria>
@@ -0,0 +1,305 @@
1
+ <agent_structure>
2
+
3
+ ## Agent Extensions
4
+
5
+ Agents are specialized subagents spawned during GSD operations. They have specific expertise, limited tool access, and focused responsibilities.
6
+
7
+ ## Required Frontmatter
8
+
9
+ ```yaml
10
+ ---
11
+ name: agent-name
12
+ description: What this agent does and when to spawn it
13
+ tools: [Read, Write, Edit, Bash, Grep, Glob, WebFetch, WebSearch]
14
+ color: green # Terminal output color
15
+ spawn_from:
16
+ - plan-phase # Spawnable from planning
17
+ - execute-plan # Spawnable during execution
18
+ - execute-phase # Spawnable from orchestrator
19
+ - verify-phase # Spawnable during verification
20
+ - custom # Spawnable via explicit Task call
21
+ ---
22
+ ```
23
+
24
+ ## Available Tools
25
+
26
+ Choose tools based on agent responsibility:
27
+
28
+ | Tool | Use For |
29
+ |------|---------|
30
+ | Read | Reading files for context |
31
+ | Write | Creating new files |
32
+ | Edit | Modifying existing files |
33
+ | Bash | Running commands |
34
+ | Grep | Searching file contents |
35
+ | Glob | Finding files by pattern |
36
+ | WebFetch | Fetching web content |
37
+ | WebSearch | Searching the web |
38
+ | mcp__context7__* | Library documentation lookup |
39
+
40
+ **Principle:** Grant minimum tools needed. More tools = more context usage = lower quality.
41
+
42
+ ## Agent Body Structure
43
+
44
+ ```xml
45
+ <role>
46
+ You are a [specific role]. You [do what] when [triggered how].
47
+
48
+ Your job: [primary responsibility]
49
+ </role>
50
+
51
+ <expertise>
52
+ Domain knowledge relevant to this agent's specialty.
53
+
54
+ - Key concept 1
55
+ - Key concept 2
56
+ - Key concept 3
57
+ </expertise>
58
+
59
+ <execution_flow>
60
+
61
+ <step name="understand_context">
62
+ Load and parse input context provided by spawner.
63
+ </step>
64
+
65
+ <step name="perform_task">
66
+ Core task execution.
67
+ </step>
68
+
69
+ <step name="produce_output">
70
+ Generate expected output format.
71
+ </step>
72
+
73
+ </execution_flow>
74
+
75
+ <output_format>
76
+ Structured format for agent's return value.
77
+
78
+ ## {SECTION_NAME}
79
+
80
+ **Field:** value
81
+ **Field:** value
82
+
83
+ ### Details
84
+
85
+ {content}
86
+ </output_format>
87
+
88
+ <success_criteria>
89
+ - [ ] Criterion one
90
+ - [ ] Criterion two
91
+ </success_criteria>
92
+ ```
93
+
94
+ ## Spawning Agents
95
+
96
+ Agents are spawned via the Task tool:
97
+
98
+ ```
99
+ Task(
100
+ prompt="<context>...</context>
101
+
102
+ Execute as agent: @~/.claude/gsd-extensions/agents/my-agent.md",
103
+ subagent_type="gsd-executor", # or other base type
104
+ model="sonnet",
105
+ description="Brief description"
106
+ )
107
+ ```
108
+
109
+ **Important:** The `subagent_type` must be a registered type. Custom agents typically use an existing base type with additional instructions from the agent file.
110
+
111
+ ## Agent Communication Pattern
112
+
113
+ Agents receive context from spawner:
114
+
115
+ ```xml
116
+ <context>
117
+ **Project:** @.planning/PROJECT.md
118
+ **Phase:** {phase_number}
119
+ **Specific input:** {data from spawner}
120
+ </context>
121
+ ```
122
+
123
+ Agents return structured results:
124
+
125
+ ```markdown
126
+ ## AGENT_COMPLETE
127
+
128
+ **Status:** success | partial | blocked
129
+ **Summary:** One-line result
130
+
131
+ ### Output
132
+
133
+ {Structured output based on agent's output_format}
134
+
135
+ ### Issues (if any)
136
+
137
+ - Issue 1
138
+ - Issue 2
139
+ ```
140
+
141
+ ## Example: Security Auditor Agent
142
+
143
+ ```yaml
144
+ ---
145
+ name: security-auditor
146
+ description: Reviews code for security vulnerabilities during execution
147
+ tools: [Read, Grep, Glob]
148
+ color: red
149
+ spawn_from: [execute-plan, verify-phase]
150
+ ---
151
+ ```
152
+
153
+ ```xml
154
+ <role>
155
+ You are a security auditor. You review code changes for security vulnerabilities
156
+ before they're committed.
157
+
158
+ Your job: Identify security issues in new or modified code, categorize by
159
+ severity, and provide actionable remediation guidance.
160
+ </role>
161
+
162
+ <expertise>
163
+ ## Security Review Domains
164
+
165
+ **Injection vulnerabilities:**
166
+ - SQL injection (parameterize queries)
167
+ - Command injection (validate/escape inputs)
168
+ - XSS (sanitize output, use CSP)
169
+
170
+ **Authentication/Authorization:**
171
+ - Insecure credential storage (use proper hashing)
172
+ - Missing authorization checks
173
+ - Session management issues
174
+
175
+ **Data exposure:**
176
+ - Sensitive data in logs
177
+ - Hardcoded secrets
178
+ - Overly permissive CORS
179
+
180
+ **Dependencies:**
181
+ - Known vulnerable packages
182
+ - Outdated dependencies
183
+ </expertise>
184
+
185
+ <execution_flow>
186
+
187
+ <step name="identify_changes">
188
+ Identify files modified in current task:
189
+
190
+ ```bash
191
+ git diff --name-only HEAD~1
192
+ ```
193
+
194
+ Filter for code files (.ts, .js, .py, etc.)
195
+ </step>
196
+
197
+ <step name="review_patterns">
198
+ For each file, search for security anti-patterns:
199
+
200
+ ```bash
201
+ # Hardcoded secrets
202
+ grep -n "password\|secret\|api_key\|token" $FILE
203
+
204
+ # SQL construction
205
+ grep -n "query.*\+" $FILE
206
+
207
+ # Dangerous functions
208
+ grep -n "eval\|exec\|innerHTML" $FILE
209
+ ```
210
+ </step>
211
+
212
+ <step name="categorize_findings">
213
+ For each finding:
214
+ 1. Verify it's actually a vulnerability (not false positive)
215
+ 2. Assign severity: critical, high, medium, low
216
+ 3. Provide remediation guidance
217
+ </step>
218
+
219
+ <step name="generate_report">
220
+ Produce security review report.
221
+ </step>
222
+
223
+ </execution_flow>
224
+
225
+ <output_format>
226
+ ## SECURITY_REVIEW
227
+
228
+ **Files reviewed:** {count}
229
+ **Issues found:** {count by severity}
230
+
231
+ ### Critical Issues
232
+
233
+ | File | Line | Issue | Remediation |
234
+ |------|------|-------|-------------|
235
+ | path | N | description | fix |
236
+
237
+ ### High Issues
238
+
239
+ ...
240
+
241
+ ### Recommendations
242
+
243
+ 1. Recommendation
244
+ 2. Recommendation
245
+
246
+ ### Approved
247
+
248
+ {yes/no - yes if no critical/high issues}
249
+ </output_format>
250
+
251
+ <success_criteria>
252
+ - [ ] All modified files reviewed
253
+ - [ ] Issues categorized by severity
254
+ - [ ] Remediation guidance provided
255
+ - [ ] Clear approve/reject decision
256
+ </success_criteria>
257
+ ```
258
+
259
+ ## Agent Best Practices
260
+
261
+ **1. Single responsibility**
262
+ Each agent does one thing well. Don't combine security review with performance analysis.
263
+
264
+ **2. Minimal tools**
265
+ Grant only tools the agent needs. Security auditor doesn't need Write or WebSearch.
266
+
267
+ **3. Structured output**
268
+ Always use consistent output format. Spawner needs to parse results.
269
+
270
+ **4. Fail gracefully**
271
+ If agent can't complete, return partial results with clear status.
272
+
273
+ **5. Be specific in role**
274
+ Generic "helper" agents are useless. Specific expertise is valuable.
275
+
276
+ ## Registering Custom Agents
277
+
278
+ For GSD to recognize custom agents as valid `subagent_type` values, they need to be registered in `~/.claude/settings.json`:
279
+
280
+ ```json
281
+ {
282
+ "customAgents": [
283
+ {
284
+ "name": "security-auditor",
285
+ "path": "~/.claude/gsd-extensions/agents/security-auditor.md"
286
+ }
287
+ ]
288
+ }
289
+ ```
290
+
291
+ Alternatively, use existing `subagent_type` (like `general-purpose`) and load agent instructions via @-reference:
292
+
293
+ ```
294
+ Task(
295
+ prompt="@~/.claude/gsd-extensions/agents/security-auditor.md
296
+
297
+ Review: {files}",
298
+ subagent_type="general-purpose",
299
+ model="sonnet"
300
+ )
301
+ ```
302
+
303
+ This is the recommended approach for custom agents.
304
+
305
+ </agent_structure>