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,22 @@
1
+ {
2
+ "name": "@taches/gsd-autopilot-tui",
3
+ "version": "1.0.0",
4
+ "description": "Beautiful terminal UI for GSD Autopilot",
5
+ "main": "dist/index.js",
6
+ "type": "module",
7
+ "bin": {
8
+ "gsd-autopilot-tui": "dist/index.js"
9
+ },
10
+ "scripts": {
11
+ "build": "node build.js"
12
+ },
13
+ "dependencies": {
14
+ "ink": "^4.4.1",
15
+ "react": "^18.2.0"
16
+ },
17
+ "devDependencies": {
18
+ "@types/react": "^18.2.0",
19
+ "esbuild": "^0.24.0",
20
+ "typescript": "^5.0.0"
21
+ }
22
+ }
@@ -0,0 +1,129 @@
1
+ import { createInterface } from 'readline';
2
+
3
+ export interface ActivityMessage {
4
+ type: 'stage' | 'file' | 'commit' | 'test' | 'info' | 'error';
5
+ stage?: string;
6
+ detail: string;
7
+ timestamp: Date;
8
+ }
9
+
10
+ export interface PhaseState {
11
+ phase: string;
12
+ phaseName: string;
13
+ completed: boolean;
14
+ stages: Array<{
15
+ name: string;
16
+ elapsed: string;
17
+ completed: boolean;
18
+ }>;
19
+ }
20
+
21
+ export class ActivityPipeReader {
22
+ private pipePath: string;
23
+ private listeners: Array<(msg: ActivityMessage) => void> = [];
24
+
25
+ constructor(pipePath: string) {
26
+ this.pipePath = pipePath;
27
+ }
28
+
29
+ onMessage(listener: (msg: ActivityMessage) => void) {
30
+ this.listeners.push(listener);
31
+ }
32
+
33
+ start() {
34
+ // Create readline interface
35
+ const rl = createInterface({
36
+ input: require('fs').createReadStream(this.pipePath),
37
+ crlfDelay: Infinity,
38
+ });
39
+
40
+ rl.on('line', (line: string) => {
41
+ if (!line.trim()) return;
42
+
43
+ try {
44
+ const msg = this.parseMessage(line);
45
+ if (msg) {
46
+ this.listeners.forEach((listener) => listener(msg));
47
+ }
48
+ } catch (error) {
49
+ console.error('Error parsing message:', error);
50
+ }
51
+ });
52
+
53
+ rl.on('error', (err) => {
54
+ if (err.code !== 'ENOENT') {
55
+ console.error('Pipe reader error:', err);
56
+ }
57
+ });
58
+ }
59
+
60
+ private parseMessage(line: string): ActivityMessage | null {
61
+ // Parse format: STAGE:type:description or FILE:op:path or COMMIT:message
62
+ const parts = line.split(':');
63
+
64
+ if (parts.length < 2) return null;
65
+
66
+ const prefix = parts[0];
67
+
68
+ switch (prefix) {
69
+ case 'STAGE': {
70
+ const type = parts[1] as ActivityMessage['type'];
71
+ const detail = parts.slice(2).join(':');
72
+ return {
73
+ type: 'stage',
74
+ stage: type,
75
+ detail,
76
+ timestamp: new Date(),
77
+ };
78
+ }
79
+
80
+ case 'FILE': {
81
+ const op = parts[1];
82
+ const file = parts.slice(2).join(':');
83
+ return {
84
+ type: 'file',
85
+ detail: `${op}: ${file}`,
86
+ timestamp: new Date(),
87
+ };
88
+ }
89
+
90
+ case 'COMMIT': {
91
+ const message = parts.slice(1).join(':');
92
+ return {
93
+ type: 'commit',
94
+ detail: message,
95
+ timestamp: new Date(),
96
+ };
97
+ }
98
+
99
+ case 'TEST': {
100
+ return {
101
+ type: 'test',
102
+ detail: 'Running tests',
103
+ timestamp: new Date(),
104
+ };
105
+ }
106
+
107
+ case 'INFO': {
108
+ const message = parts.slice(1).join(':');
109
+ return {
110
+ type: 'info',
111
+ detail: message,
112
+ timestamp: new Date(),
113
+ };
114
+ }
115
+
116
+ case 'ERROR': {
117
+ const message = parts.slice(1).join(':');
118
+ return {
119
+ type: 'error',
120
+ detail: message,
121
+ timestamp: new Date(),
122
+ };
123
+ }
124
+
125
+ default:
126
+ return null;
127
+ }
128
+ }
129
+ }
@@ -0,0 +1,245 @@
1
+ ---
2
+ name: design-system
3
+ description: Establish project-wide design foundation through conversation
4
+ triggers: [custom]
5
+ replaces: null
6
+ requires: [ui-principles]
7
+ ---
8
+
9
+ <purpose>
10
+ Create a project-wide design system through conversational discovery. This establishes the visual foundation that all UI work in the project respects.
11
+ </purpose>
12
+
13
+ <when_to_use>
14
+ - Starting a new project with UI
15
+ - Before first UI phase
16
+ - When visual direction needs definition
17
+ - When suggested after /gsd:new-project
18
+ </when_to_use>
19
+
20
+ <required_reading>
21
+ @~/.claude/get-shit-done/references/ui-principles.md
22
+ </required_reading>
23
+
24
+ <process>
25
+
26
+ <step name="display_banner" priority="first">
27
+ ```
28
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
29
+ GSD ► DESIGN SYSTEM
30
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
31
+ ```
32
+ </step>
33
+
34
+ <step name="check_existing">
35
+ Check if design system exists:
36
+
37
+ ```bash
38
+ if [[ -f ".planning/DESIGN-SYSTEM.md" ]]; then
39
+ echo "EXISTS"
40
+ else
41
+ echo "NEW"
42
+ fi
43
+ ```
44
+
45
+ **If exists:**
46
+ Ask via AskUserQuestion:
47
+ - header: "Existing"
48
+ - question: "A design system already exists. What would you like to do?"
49
+ - options:
50
+ - "Review and update" - Refine the existing system
51
+ - "Start fresh" - Replace with new design system
52
+ - "Cancel" - Keep current system
53
+
54
+ If "Cancel" → exit workflow
55
+ </step>
56
+
57
+ <step name="detect_framework">
58
+ Detect project framework for context:
59
+
60
+ ```bash
61
+ if [[ -f "package.json" ]]; then
62
+ if grep -q '"next"' package.json; then
63
+ echo "Next.js (React)"
64
+ elif grep -q '"react"' package.json; then
65
+ echo "React"
66
+ fi
67
+ elif ls *.xcodeproj 2>/dev/null || [[ -f "Package.swift" ]]; then
68
+ echo "SwiftUI"
69
+ elif [[ -f "requirements.txt" ]]; then
70
+ echo "Python"
71
+ else
72
+ echo "HTML/CSS"
73
+ fi
74
+ ```
75
+
76
+ Store framework for later reference.
77
+ </step>
78
+
79
+ <step name="visual_references">
80
+ Ask via AskUserQuestion:
81
+ - header: "References"
82
+ - question: "Do you have visual references to guide the design direction?"
83
+ - options:
84
+ - "Yes, I have images/screenshots" - I'll provide files or paste images
85
+ - "Yes, I have website URLs" - I'll share sites I like
86
+ - "Both" - I have images and URLs
87
+ - "No, start from description" - I'll describe what I want
88
+
89
+ **If user provides references:**
90
+ - For images: Use Read tool to analyze, extract:
91
+ - Color palette
92
+ - Typography style
93
+ - Spacing patterns
94
+ - Component styles
95
+ - Overall aesthetic
96
+
97
+ - For URLs: Use WebFetch to analyze, extract:
98
+ - Visual patterns
99
+ - Design language
100
+ - Component approaches
101
+
102
+ Summarize findings:
103
+ "From your references, I see: [summary of extracted aesthetic patterns]"
104
+ </step>
105
+
106
+ <step name="aesthetic_direction">
107
+ Ask inline (freeform):
108
+
109
+ "What's the overall vibe you're going for? Describe the feeling you want users to have."
110
+
111
+ Wait for response.
112
+
113
+ Then probe with AskUserQuestion:
114
+ - header: "Style"
115
+ - question: "Which best describes your target aesthetic?"
116
+ - options:
117
+ - "Clean & minimal" - Lots of whitespace, subtle, typography-focused
118
+ - "Bold & energetic" - High contrast, strong colors, dynamic
119
+ - "Warm & friendly" - Rounded corners, soft colors, approachable
120
+ - "Dark & sophisticated" - Dark mode primary, elegant, professional
121
+
122
+ Follow up based on selection to refine.
123
+ </step>
124
+
125
+ <step name="color_exploration">
126
+ Ask via AskUserQuestion:
127
+ - header: "Colors"
128
+ - question: "Do you have brand colors, or should we create a palette?"
129
+ - options:
130
+ - "I have brand colors" - I'll provide hex values
131
+ - "Create from scratch" - Help me build a palette
132
+ - "Derive from references" - Use colors from my visual references
133
+
134
+ **If brand colors provided:**
135
+ Collect primary, secondary, accent colors.
136
+
137
+ **If creating from scratch:**
138
+ Ask about:
139
+ - Preferred hue family (blues, greens, purples, etc.)
140
+ - Saturation preference (vibrant vs muted)
141
+ - Build complementary palette
142
+
143
+ **If deriving from references:**
144
+ Extract dominant colors from provided images/URLs.
145
+
146
+ Present proposed palette for approval.
147
+ </step>
148
+
149
+ <step name="typography">
150
+ Ask via AskUserQuestion:
151
+ - header: "Typography"
152
+ - question: "Font preference?"
153
+ - options:
154
+ - "System fonts" - Native OS fonts (fast, reliable)
155
+ - "Inter / Clean sans" - Modern, highly legible
156
+ - "Custom / I have fonts" - I'll specify fonts
157
+ - "Suggest based on aesthetic" - Match to my chosen style
158
+
159
+ Build type scale based on selection.
160
+ </step>
161
+
162
+ <step name="component_style">
163
+ Ask via AskUserQuestion:
164
+ - header: "Components"
165
+ - question: "Component style preference?"
166
+ - options:
167
+ - "Rounded & soft" - Large border radius, gentle shadows
168
+ - "Sharp & precise" - Small or no radius, crisp edges
169
+ - "Mixed" - Rounded buttons, sharp cards (or vice versa)
170
+
171
+ Determine:
172
+ - Border radius scale
173
+ - Shadow approach
174
+ - Border usage
175
+ </step>
176
+
177
+ <step name="spacing_system">
178
+ Based on aesthetic choices, propose spacing system:
179
+
180
+ "Based on your [aesthetic] direction, I recommend:
181
+ - Base unit: [4px or 8px]
182
+ - Scale: [list values]
183
+ - Section spacing: [value]"
184
+
185
+ Ask if adjustments needed.
186
+ </step>
187
+
188
+ <step name="generate_design_system">
189
+ Generate `.planning/DESIGN-SYSTEM.md` using template:
190
+ @~/.claude/get-shit-done/templates/design-system.md
191
+
192
+ Include:
193
+ - All discovered aesthetic preferences
194
+ - Color palette with tokens
195
+ - Typography scale with framework-specific values
196
+ - Spacing system
197
+ - Component patterns appropriate to detected framework
198
+ - Implementation notes for the framework
199
+ </step>
200
+
201
+ <step name="present_result">
202
+ ```
203
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
204
+ GSD ► DESIGN SYSTEM CREATED ✓
205
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
206
+
207
+ ## Summary
208
+
209
+ **Aesthetic:** {description}
210
+ **Framework:** {framework}
211
+ **Primary color:** {primary}
212
+
213
+ ## File Created
214
+
215
+ `.planning/DESIGN-SYSTEM.md`
216
+
217
+ ───────────────────────────────────────────────────────────────
218
+
219
+ ## What's Next
220
+
221
+ This design system will be automatically loaded when you:
222
+ - Run `/gsd:discuss-design {phase}` for phase-specific UI
223
+ - Plan phases with UI components
224
+
225
+ To view or edit:
226
+ ```bash
227
+ cat .planning/DESIGN-SYSTEM.md
228
+ ```
229
+
230
+ ───────────────────────────────────────────────────────────────
231
+ ```
232
+ </step>
233
+
234
+ </process>
235
+
236
+ <success_criteria>
237
+ - [ ] User's aesthetic vision understood
238
+ - [ ] Visual references analyzed (if provided)
239
+ - [ ] Color palette defined
240
+ - [ ] Typography system established
241
+ - [ ] Spacing scale determined
242
+ - [ ] Component patterns documented
243
+ - [ ] DESIGN-SYSTEM.md created
244
+ - [ ] User knows how system integrates with GSD
245
+ </success_criteria>