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.
Files changed (60) hide show
  1. package/README.md +8 -0
  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 +43 -0
  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
@@ -0,0 +1,123 @@
1
+ <extension_anatomy>
2
+
3
+ ## How Extensions Work
4
+
5
+ GSD extensions are markdown files that integrate into the GSD lifecycle. They follow the same meta-prompting patterns as built-in GSD components.
6
+
7
+ ## Discovery Mechanism
8
+
9
+ When GSD needs a workflow, agent, reference, or template:
10
+
11
+ ```bash
12
+ # 1. Check project extensions first
13
+ ls .planning/extensions/{type}/{name}.md 2>/dev/null
14
+
15
+ # 2. Check global extensions
16
+ ls ~/.claude/gsd-extensions/{type}/{name}.md 2>/dev/null
17
+
18
+ # 3. Fall back to built-in
19
+ ls ~/.claude/get-shit-done/{type}/{name}.md 2>/dev/null
20
+ ```
21
+
22
+ First match wins. This allows project-specific overrides.
23
+
24
+ ## Extension Lifecycle
25
+
26
+ **1. Creation** - User creates extension file with proper structure
27
+ **2. Validation** - GSD validates frontmatter and structure
28
+ **3. Registration** - Extension becomes discoverable
29
+ **4. Triggering** - Extension activates based on conditions
30
+ **5. Execution** - Extension content is loaded and processed
31
+ **6. Completion** - Extension produces expected output
32
+
33
+ ## Integration Points
34
+
35
+ Extensions integrate with GSD at specific hook points:
36
+
37
+ | Hook Point | What Happens | Extension Types |
38
+ |------------|--------------|-----------------|
39
+ | `pre-planning` | Before phase planning begins | workflows, references |
40
+ | `post-planning` | After plans created | workflows, agents |
41
+ | `pre-execution` | Before task execution | workflows, references |
42
+ | `post-execution` | After task completes | workflows, templates |
43
+ | `verification` | During verification phase | agents, workflows |
44
+ | `decision` | At decision checkpoints | agents, references |
45
+ | `always` | Whenever type is loaded | references |
46
+
47
+ ## Content Model
48
+
49
+ All extensions follow the GSD content model:
50
+
51
+ ```
52
+ ┌─────────────────────────────────────┐
53
+ │ YAML Frontmatter │
54
+ │ - name, description │
55
+ │ - type-specific fields │
56
+ ├─────────────────────────────────────┤
57
+ │ XML Structure │
58
+ │ - Semantic containers │
59
+ │ - Process steps (for workflows) │
60
+ │ - Role definition (for agents) │
61
+ │ - Content body (for references) │
62
+ │ - Template format (for templates) │
63
+ └─────────────────────────────────────┘
64
+ ```
65
+
66
+ ## File Naming
67
+
68
+ Extension filenames become their identifiers:
69
+
70
+ ```
71
+ my-custom-workflow.md → triggers as "my-custom-workflow"
72
+ security-auditor.md → spawns as "security-auditor" agent
73
+ react-patterns.md → loads as "react-patterns" reference
74
+ api-spec.md → uses as "api-spec" template
75
+ ```
76
+
77
+ Use kebab-case. Name should be descriptive of function.
78
+
79
+ ## Scope Selection
80
+
81
+ **Use project scope (`.planning/extensions/`) when:**
82
+ - Extension is specific to this project
83
+ - Extension uses project-specific patterns
84
+ - Extension shouldn't affect other projects
85
+ - Extension is experimental
86
+
87
+ **Use global scope (`~/.claude/gsd-extensions/`) when:**
88
+ - Extension is generally useful across projects
89
+ - Extension represents your personal workflow preferences
90
+ - Extension is mature and tested
91
+ - Extension doesn't contain project-specific details
92
+
93
+ ## Overriding Built-ins
94
+
95
+ To replace a built-in GSD component:
96
+
97
+ 1. Create extension with same name as built-in
98
+ 2. Place in project or global extensions directory
99
+ 3. GSD will use your extension instead
100
+
101
+ Example: Override execute-plan workflow:
102
+ ```
103
+ ~/.claude/gsd-extensions/workflows/execute-plan.md
104
+ ```
105
+
106
+ This completely replaces the built-in execute-plan.md for all projects.
107
+
108
+ **Warning:** Overriding built-ins requires deep understanding of GSD internals. Test thoroughly.
109
+
110
+ ## Extension Dependencies
111
+
112
+ Extensions can reference other extensions or built-in components:
113
+
114
+ ```markdown
115
+ <required_reading>
116
+ @~/.claude/get-shit-done/references/deviation-rules.md
117
+ @~/.claude/gsd-extensions/references/my-patterns.md
118
+ </required_reading>
119
+ ```
120
+
121
+ Resolution order applies to @-references too.
122
+
123
+ </extension_anatomy>
@@ -0,0 +1,408 @@
1
+ <reference_structure>
2
+
3
+ ## Reference Extensions
4
+
5
+ References are domain knowledge files loaded during GSD operations. They provide context, patterns, best practices, and project-specific conventions.
6
+
7
+ ## Required Frontmatter
8
+
9
+ ```yaml
10
+ ---
11
+ name: reference-name
12
+ description: What knowledge this provides
13
+ load_when:
14
+ - keyword1 # Load when phase/plan mentions this
15
+ - keyword2 # Multiple keywords supported
16
+ - always # Load for every operation
17
+ auto_load_for:
18
+ - plan-phase # Auto-load during planning
19
+ - execute-plan # Auto-load during execution
20
+ - verify-phase # Auto-load during verification
21
+ ---
22
+ ```
23
+
24
+ ## Reference Body Structure
25
+
26
+ ```xml
27
+ <{reference_topic}>
28
+
29
+ ## Overview
30
+
31
+ High-level summary of this knowledge domain.
32
+
33
+ ## Core Concepts
34
+
35
+ ### Concept 1
36
+
37
+ Explanation of first concept.
38
+
39
+ **Key points:**
40
+ - Point one
41
+ - Point two
42
+
43
+ **Example:**
44
+ ```code
45
+ example here
46
+ ```
47
+
48
+ ### Concept 2
49
+
50
+ Explanation of second concept.
51
+
52
+ ## Patterns
53
+
54
+ ### Pattern Name
55
+
56
+ **When to use:** Conditions for this pattern
57
+
58
+ **Implementation:**
59
+ ```code
60
+ pattern implementation
61
+ ```
62
+
63
+ **Avoid:** Common mistakes
64
+
65
+ ## Anti-Patterns
66
+
67
+ ### Anti-Pattern Name
68
+
69
+ **Problem:** What goes wrong
70
+
71
+ **Why it happens:** Root cause
72
+
73
+ **Better approach:** What to do instead
74
+
75
+ ## Quick Reference
76
+
77
+ | Term | Definition |
78
+ |------|------------|
79
+ | term1 | definition |
80
+ | term2 | definition |
81
+
82
+ </{reference_topic}>
83
+ ```
84
+
85
+ ## Load Triggers
86
+
87
+ References load based on context matching:
88
+
89
+ **Keyword matching:**
90
+ ```yaml
91
+ load_when:
92
+ - authentication
93
+ - auth
94
+ - login
95
+ - jwt
96
+ ```
97
+
98
+ When any planning/execution content mentions these keywords, reference is loaded.
99
+
100
+ **Phase name matching:**
101
+ ```yaml
102
+ load_when:
103
+ - "*-auth-*" # Any phase with "auth" in name
104
+ - "01-*" # First phase only
105
+ ```
106
+
107
+ **Always load:**
108
+ ```yaml
109
+ load_when:
110
+ - always
111
+ ```
112
+
113
+ Use sparingly - adds to every context.
114
+
115
+ ## Auto-loading
116
+
117
+ References can auto-load for specific operations:
118
+
119
+ ```yaml
120
+ auto_load_for:
121
+ - plan-phase # Loaded when planning any phase
122
+ - execute-plan # Loaded when executing any plan
123
+ ```
124
+
125
+ This is independent of keyword matching.
126
+
127
+ ## Example: React Patterns Reference
128
+
129
+ ```yaml
130
+ ---
131
+ name: react-patterns
132
+ description: React 19 patterns and conventions for this project
133
+ load_when:
134
+ - react
135
+ - component
136
+ - hook
137
+ - tsx
138
+ - jsx
139
+ - frontend
140
+ - ui
141
+ auto_load_for: []
142
+ ---
143
+ ```
144
+
145
+ ```xml
146
+ <react_patterns>
147
+
148
+ ## Overview
149
+
150
+ This project uses React 19 with Server Components as default.
151
+ All components are server components unless marked with 'use client'.
152
+
153
+ ## Component Conventions
154
+
155
+ ### File Naming
156
+
157
+ - Components: `PascalCase.tsx` (e.g., `UserProfile.tsx`)
158
+ - Hooks: `useCamelCase.ts` (e.g., `useAuth.ts`)
159
+ - Utils: `camelCase.ts` (e.g., `formatDate.ts`)
160
+
161
+ ### Component Structure
162
+
163
+ ```tsx
164
+ // components/UserProfile.tsx
165
+
166
+ interface UserProfileProps {
167
+ userId: string;
168
+ showEmail?: boolean;
169
+ }
170
+
171
+ export function UserProfile({ userId, showEmail = false }: UserProfileProps) {
172
+ // Implementation
173
+ }
174
+ ```
175
+
176
+ **Rules:**
177
+ - Named exports (not default)
178
+ - Props interface above component
179
+ - Destructure props in signature
180
+ - Optional props have defaults
181
+
182
+ ### Client Components
183
+
184
+ ```tsx
185
+ 'use client';
186
+
187
+ import { useState } from 'react';
188
+
189
+ export function Counter() {
190
+ const [count, setCount] = useState(0);
191
+ // ...
192
+ }
193
+ ```
194
+
195
+ Mark as client component when:
196
+ - Using useState, useEffect, useReducer
197
+ - Using browser APIs (localStorage, window)
198
+ - Using event handlers (onClick, onChange)
199
+ - Using third-party client libraries
200
+
201
+ ## Data Fetching
202
+
203
+ ### Server Components (preferred)
204
+
205
+ ```tsx
206
+ // Fetches at request time
207
+ async function UserList() {
208
+ const users = await db.user.findMany();
209
+ return <ul>{users.map(u => <li key={u.id}>{u.name}</li>)}</ul>;
210
+ }
211
+ ```
212
+
213
+ ### Client Components (when needed)
214
+
215
+ ```tsx
216
+ 'use client';
217
+
218
+ import useSWR from 'swr';
219
+
220
+ function UserList() {
221
+ const { data: users } = useSWR('/api/users', fetcher);
222
+ // ...
223
+ }
224
+ ```
225
+
226
+ ## State Management
227
+
228
+ ### Local State
229
+
230
+ Use `useState` for component-local state.
231
+
232
+ ### Shared State
233
+
234
+ Use React Context for:
235
+ - Theme/appearance preferences
236
+ - User session
237
+ - Feature flags
238
+
239
+ Do NOT use Context for:
240
+ - Server data (use SWR/React Query)
241
+ - Form state (use react-hook-form)
242
+
243
+ ## Forms
244
+
245
+ ```tsx
246
+ 'use client';
247
+
248
+ import { useForm } from 'react-hook-form';
249
+ import { zodResolver } from '@hookform/resolvers/zod';
250
+
251
+ const schema = z.object({
252
+ email: z.string().email(),
253
+ password: z.string().min(8),
254
+ });
255
+
256
+ function LoginForm() {
257
+ const { register, handleSubmit, formState } = useForm({
258
+ resolver: zodResolver(schema),
259
+ });
260
+ // ...
261
+ }
262
+ ```
263
+
264
+ ## Anti-Patterns
265
+
266
+ ### Prop Drilling
267
+
268
+ **Bad:**
269
+ ```tsx
270
+ <App user={user}>
271
+ <Layout user={user}>
272
+ <Sidebar user={user}>
273
+ <UserInfo user={user} />
274
+ ```
275
+
276
+ **Good:** Use Context or component composition.
277
+
278
+ ### useEffect for Data Fetching
279
+
280
+ **Bad:**
281
+ ```tsx
282
+ useEffect(() => {
283
+ fetch('/api/users').then(setUsers);
284
+ }, []);
285
+ ```
286
+
287
+ **Good:** Use server components or SWR.
288
+
289
+ ### Inline Object Creation
290
+
291
+ **Bad:**
292
+ ```tsx
293
+ <Component style={{ color: 'red' }} />
294
+ ```
295
+
296
+ **Good:**
297
+ ```tsx
298
+ const styles = { color: 'red' };
299
+ <Component style={styles} />
300
+ ```
301
+
302
+ ## Quick Reference
303
+
304
+ | Pattern | Use For |
305
+ |---------|---------|
306
+ | Server Component | Data fetching, static content |
307
+ | Client Component | Interactivity, browser APIs |
308
+ | Context | Theme, auth, app-wide settings |
309
+ | SWR | Client-side data fetching |
310
+ | react-hook-form | Complex forms |
311
+ | Suspense | Loading states |
312
+
313
+ </react_patterns>
314
+ ```
315
+
316
+ ## Example: Project Conventions Reference
317
+
318
+ ```yaml
319
+ ---
320
+ name: project-conventions
321
+ description: Project-specific coding conventions
322
+ load_when:
323
+ - always
324
+ auto_load_for:
325
+ - plan-phase
326
+ - execute-plan
327
+ ---
328
+ ```
329
+
330
+ ```xml
331
+ <project_conventions>
332
+
333
+ ## Overview
334
+
335
+ Conventions specific to this project. These override general best practices
336
+ where they conflict.
337
+
338
+ ## API Endpoints
339
+
340
+ All API routes follow pattern:
341
+ ```
342
+ /api/{resource}/{action}
343
+
344
+ GET /api/users # List
345
+ GET /api/users/:id # Get one
346
+ POST /api/users # Create
347
+ PATCH /api/users/:id # Update
348
+ DELETE /api/users/:id # Delete
349
+ ```
350
+
351
+ ## Error Handling
352
+
353
+ API errors return:
354
+ ```json
355
+ {
356
+ "error": {
357
+ "code": "VALIDATION_ERROR",
358
+ "message": "Human readable message",
359
+ "details": {}
360
+ }
361
+ }
362
+ ```
363
+
364
+ ## Database
365
+
366
+ - All tables have `id` (UUID), `created_at`, `updated_at`
367
+ - Soft delete via `deleted_at` timestamp
368
+ - Use Prisma for all database access
369
+
370
+ ## Testing
371
+
372
+ - Unit tests: `*.test.ts` co-located with source
373
+ - Integration tests: `tests/integration/`
374
+ - E2E tests: `tests/e2e/`
375
+
376
+ Run with `npm test` (unit) or `npm run test:e2e` (e2e)
377
+
378
+ ## Git
379
+
380
+ - Branch naming: `feature/description`, `fix/description`
381
+ - Commits: Conventional commits format
382
+ - PRs: Require at least description and test plan
383
+
384
+ </project_conventions>
385
+ ```
386
+
387
+ ## Reference Best Practices
388
+
389
+ **1. Be specific**
390
+ Generic knowledge is less useful. Include project-specific details.
391
+
392
+ **2. Include examples**
393
+ Code examples are worth 1000 words of explanation.
394
+
395
+ **3. Document anti-patterns**
396
+ Knowing what NOT to do is as valuable as knowing what to do.
397
+
398
+ **4. Keep updated**
399
+ References reflect current state. Update when patterns change.
400
+
401
+ **5. Use appropriate load triggers**
402
+ Too many triggers = loaded when not relevant.
403
+ Too few triggers = not loaded when needed.
404
+
405
+ **6. Avoid duplication**
406
+ Don't repeat built-in GSD references. Extend or override them.
407
+
408
+ </reference_structure>