get-shit-done-cc 1.9.13 → 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.
- package/README.md +8 -0
- package/agents/design-specialist.md +222 -0
- package/agents/gsd-executor.md +37 -375
- package/agents/gsd-planner.md +15 -108
- package/bin/install.js +92 -5
- package/commands/gsd/autopilot.md +518 -0
- package/commands/gsd/checkpoints.md +229 -0
- package/commands/gsd/design-system.md +70 -0
- package/commands/gsd/discuss-design.md +77 -0
- package/commands/gsd/extend.md +80 -0
- package/commands/gsd/help.md +43 -0
- package/commands/gsd/new-project.md +94 -8
- package/commands/gsd/plan-phase.md +35 -5
- package/get-shit-done/references/ccr-integration.md +468 -0
- package/get-shit-done/references/checkpoint-execution.md +369 -0
- package/get-shit-done/references/checkpoint-types.md +728 -0
- package/get-shit-done/references/deviation-rules.md +215 -0
- package/get-shit-done/references/framework-patterns.md +543 -0
- package/get-shit-done/references/ui-principles.md +258 -0
- package/get-shit-done/references/verification-patterns.md +1 -1
- package/get-shit-done/skills/gsd-extend/SKILL.md +154 -0
- package/get-shit-done/skills/gsd-extend/references/agent-structure.md +305 -0
- package/get-shit-done/skills/gsd-extend/references/extension-anatomy.md +123 -0
- package/get-shit-done/skills/gsd-extend/references/reference-structure.md +408 -0
- package/get-shit-done/skills/gsd-extend/references/template-structure.md +370 -0
- package/get-shit-done/skills/gsd-extend/references/validation-rules.md +140 -0
- package/get-shit-done/skills/gsd-extend/references/workflow-structure.md +253 -0
- package/get-shit-done/skills/gsd-extend/templates/agent-template.md +234 -0
- package/get-shit-done/skills/gsd-extend/templates/reference-template.md +239 -0
- package/get-shit-done/skills/gsd-extend/templates/workflow-template.md +169 -0
- package/get-shit-done/skills/gsd-extend/workflows/create-approach.md +332 -0
- package/get-shit-done/skills/gsd-extend/workflows/list-extensions.md +133 -0
- package/get-shit-done/skills/gsd-extend/workflows/remove-extension.md +93 -0
- package/get-shit-done/skills/gsd-extend/workflows/validate-extension.md +184 -0
- package/get-shit-done/templates/autopilot-script-simple.sh +181 -0
- package/get-shit-done/templates/autopilot-script.sh +1142 -0
- package/get-shit-done/templates/autopilot-script.sh.backup +1142 -0
- package/get-shit-done/templates/design-system.md +238 -0
- package/get-shit-done/templates/phase-design.md +205 -0
- package/get-shit-done/templates/phase-models-template.json +71 -0
- package/get-shit-done/templates/phase-prompt.md +4 -4
- package/get-shit-done/templates/state.md +37 -0
- package/get-shit-done/tui/App.tsx +169 -0
- package/get-shit-done/tui/README.md +107 -0
- package/get-shit-done/tui/build.js +37 -0
- package/get-shit-done/tui/components/ActivityFeed.tsx +126 -0
- package/get-shit-done/tui/components/PhaseCard.tsx +86 -0
- package/get-shit-done/tui/components/StatsBar.tsx +147 -0
- package/get-shit-done/tui/dist/index.js +387 -0
- package/get-shit-done/tui/index.tsx +12 -0
- package/get-shit-done/tui/package-lock.json +1074 -0
- package/get-shit-done/tui/package.json +22 -0
- package/get-shit-done/tui/utils/pipeReader.ts +129 -0
- package/get-shit-done/workflows/design-system.md +245 -0
- package/get-shit-done/workflows/discuss-design.md +330 -0
- package/get-shit-done/workflows/execute-phase.md +44 -1
- package/get-shit-done/workflows/execute-plan-auth.md +122 -0
- package/get-shit-done/workflows/execute-plan-checkpoints.md +541 -0
- package/get-shit-done/workflows/execute-plan.md +34 -856
- package/package.json +8 -3
|
@@ -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/
|
|
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>
|