sedd 0.1.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 +504 -0
- package/bin/sedd.js +6 -0
- package/commands/sedd.clarify.md +435 -0
- package/commands/sedd.dashboard.md +145 -0
- package/commands/sedd.implement.md +326 -0
- package/commands/sedd.migrate.md +249 -0
- package/commands/sedd.specify.md +198 -0
- package/commands/sedd.tasks.md +176 -0
- package/dist/cli/check.d.ts +6 -0
- package/dist/cli/check.d.ts.map +1 -0
- package/dist/cli/check.js +134 -0
- package/dist/cli/check.js.map +1 -0
- package/dist/cli/clarify.d.ts +2 -0
- package/dist/cli/clarify.d.ts.map +1 -0
- package/dist/cli/clarify.js +116 -0
- package/dist/cli/clarify.js.map +1 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +175 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/init.d.ts +9 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +236 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/migrate.d.ts +7 -0
- package/dist/cli/migrate.d.ts.map +1 -0
- package/dist/cli/migrate.js +197 -0
- package/dist/cli/migrate.js.map +1 -0
- package/dist/cli/specify.d.ts +7 -0
- package/dist/cli/specify.d.ts.map +1 -0
- package/dist/cli/specify.js +131 -0
- package/dist/cli/specify.js.map +1 -0
- package/dist/cli/status.d.ts +6 -0
- package/dist/cli/status.d.ts.map +1 -0
- package/dist/cli/status.js +118 -0
- package/dist/cli/status.js.map +1 -0
- package/dist/cli/tasks.d.ts +7 -0
- package/dist/cli/tasks.d.ts.map +1 -0
- package/dist/cli/tasks.js +165 -0
- package/dist/cli/tasks.js.map +1 -0
- package/dist/core/changelog.d.ts +30 -0
- package/dist/core/changelog.d.ts.map +1 -0
- package/dist/core/changelog.js +97 -0
- package/dist/core/changelog.js.map +1 -0
- package/dist/core/file-splitter.d.ts +39 -0
- package/dist/core/file-splitter.d.ts.map +1 -0
- package/dist/core/file-splitter.js +162 -0
- package/dist/core/file-splitter.js.map +1 -0
- package/dist/core/migration-manager.d.ts +76 -0
- package/dist/core/migration-manager.d.ts.map +1 -0
- package/dist/core/migration-manager.js +230 -0
- package/dist/core/migration-manager.js.map +1 -0
- package/dist/core/timestamps.d.ts +17 -0
- package/dist/core/timestamps.d.ts.map +1 -0
- package/dist/core/timestamps.js +37 -0
- package/dist/core/timestamps.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/types/index.d.ts +102 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +83 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/git.d.ts +63 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +179 -0
- package/dist/utils/git.js.map +1 -0
- package/hooks/README.md +220 -0
- package/hooks/check-roadmap.js +231 -0
- package/hooks/check-roadmap.ps1 +343 -0
- package/package.json +60 -0
- package/scripts/bash/sedd-clarify.sh +142 -0
- package/scripts/bash/sedd-complete-task.sh +108 -0
- package/scripts/bash/sedd-specify.sh +147 -0
- package/scripts/powershell/sedd-clarify.ps1 +222 -0
- package/scripts/powershell/sedd-complete-task.ps1 +143 -0
- package/scripts/powershell/sedd-specify.ps1 +192 -0
- package/scripts/powershell/sedd-status.ps1 +153 -0
- package/scripts/powershell/sedd-tasks.ps1 +176 -0
- package/templates/changelog-template.md +6 -0
- package/templates/clarify-template.md +66 -0
- package/templates/config-template.json +20 -0
- package/templates/decisions-template.md +56 -0
- package/templates/interfaces-template.ts +131 -0
- package/templates/meta-template.json +12 -0
- package/templates/progress-template.md +61 -0
- package/templates/sedd.schema.json +95 -0
- package/templates/spec-template.md +114 -0
- package/templates/tasks-template.md +58 -0
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
# /sedd.clarify - Clarify & Generate Tasks
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Create a new migration with clarifications, decisions, AND tasks.
|
|
5
|
+
|
|
6
|
+
## Trigger
|
|
7
|
+
User runs `/sedd.clarify`
|
|
8
|
+
|
|
9
|
+
## Pre-flight Checks
|
|
10
|
+
|
|
11
|
+
1. **Read sedd.config.json** to get `specsDir` (default: `.sedd`, legacy: `specs`)
|
|
12
|
+
```
|
|
13
|
+
Read sedd.config.json → specsDir = "specs" or ".sedd"
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
2. **Get current branch** from git
|
|
17
|
+
```
|
|
18
|
+
git rev-parse --abbrev-ref HEAD → "023-agent-executor"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
3. **Find feature directory**
|
|
22
|
+
```
|
|
23
|
+
{specsDir}/{branch}/ → specs/023-agent-executor/
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
4. **Verify spec.md exists** in feature directory (run /sedd.specify first)
|
|
27
|
+
|
|
28
|
+
5. **Load _meta.json** from feature directory to get current state
|
|
29
|
+
|
|
30
|
+
## CRITICAL RULES
|
|
31
|
+
|
|
32
|
+
⚠️ **THIS COMMAND IS READ-ONLY FOR CODE**
|
|
33
|
+
- NEVER execute code
|
|
34
|
+
- NEVER create implementation files
|
|
35
|
+
- NEVER modify files outside specs/
|
|
36
|
+
- ONLY create migration folder with clarify/tasks/decisions
|
|
37
|
+
|
|
38
|
+
⚠️ **FLEXIBLE DISCUSSION MODE - INLINE COMMANDS**
|
|
39
|
+
- User can freely explain, discuss, and add notes at any time
|
|
40
|
+
- AI listens and records everything in clarify.md
|
|
41
|
+
- User controls the flow with inline commands:
|
|
42
|
+
|
|
43
|
+
| Command | Aliases | Action |
|
|
44
|
+
|---------|---------|--------|
|
|
45
|
+
| `continue` | `mais`, `more`, `+` | Keep discussing, AI records notes |
|
|
46
|
+
| `pergunta` | `question`, `q`, `?` | AI asks next clarification question |
|
|
47
|
+
| `tasks` | `done`, `gerar`, `finish` | Generate tasks.md and finish |
|
|
48
|
+
|
|
49
|
+
⚠️ **ALWAYS CREATES TASKS**
|
|
50
|
+
- Every clarify creates a NEW migration
|
|
51
|
+
- Every migration has tasks.md (generated at the end)
|
|
52
|
+
- Tasks reference this migration ID
|
|
53
|
+
|
|
54
|
+
## Workflow
|
|
55
|
+
|
|
56
|
+
### Step 1: Load Context
|
|
57
|
+
|
|
58
|
+
Read from feature root:
|
|
59
|
+
- spec.md
|
|
60
|
+
- interfaces.ts
|
|
61
|
+
- Previous migrations (if any)
|
|
62
|
+
|
|
63
|
+
### Step 2: Capture Expected Outcome (NEW)
|
|
64
|
+
|
|
65
|
+
Before creating migration, ask user:
|
|
66
|
+
```
|
|
67
|
+
What do you expect to achieve with this clarification?
|
|
68
|
+
(This will be used to verify task alignment)
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Save in `clarify.md` under `## Expected Outcome` section.
|
|
72
|
+
|
|
73
|
+
### Step 3: Create New Migration Folder
|
|
74
|
+
|
|
75
|
+
Generate new migration folder FIRST:
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
Migration ID: 001 (or next: 002, 003...)
|
|
79
|
+
Timestamp: 2026-01-11_10-30-45
|
|
80
|
+
Folder: 001_2026-01-11_10-30-45/
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Create initial structure:
|
|
84
|
+
```
|
|
85
|
+
specs/024-feature/
|
|
86
|
+
└── 001_2026-01-11_10-30-45/
|
|
87
|
+
├── clarify.md # Will be updated incrementally
|
|
88
|
+
├── tasks.md # Created at the end
|
|
89
|
+
└── decisions.md # Updated after each answer
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Initialize clarify.md:
|
|
93
|
+
```markdown
|
|
94
|
+
# Clarification - Migration 001
|
|
95
|
+
|
|
96
|
+
**Timestamp:** 2026-01-11 10:30:45
|
|
97
|
+
**Branch:** 024-feature
|
|
98
|
+
**Parent:** (none)
|
|
99
|
+
|
|
100
|
+
## Expected Outcome
|
|
101
|
+
|
|
102
|
+
> User's expected outcome from this migration
|
|
103
|
+
|
|
104
|
+
[Captured from Step 2]
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Questions & Answers
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Step 4: Start Interactive Session
|
|
113
|
+
|
|
114
|
+
Present the clarification session with available commands:
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
📝 Clarification Session - Migration 001
|
|
118
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
119
|
+
|
|
120
|
+
Spec loaded: spec.md
|
|
121
|
+
Interfaces: interfaces.ts
|
|
122
|
+
|
|
123
|
+
Você pode:
|
|
124
|
+
• Explicar livremente o que precisa
|
|
125
|
+
• Adicionar notas e decisões
|
|
126
|
+
• Responder perguntas
|
|
127
|
+
|
|
128
|
+
Comandos disponíveis:
|
|
129
|
+
┌───────────┬────────────────────────────────────┐
|
|
130
|
+
│ continue │ Continuar explicando (mais, +) │
|
|
131
|
+
│ pergunta │ AI faz próxima pergunta (q, ?) │
|
|
132
|
+
│ tasks │ Gerar tasks e finalizar (done) │
|
|
133
|
+
└───────────┴────────────────────────────────────┘
|
|
134
|
+
|
|
135
|
+
Como você quer começar?
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Step 5: Flexible Discussion Loop
|
|
139
|
+
|
|
140
|
+
The AI responds based on user input:
|
|
141
|
+
|
|
142
|
+
#### 5.1 User Explains/Discusses (Default Mode)
|
|
143
|
+
|
|
144
|
+
When user provides information (not a command):
|
|
145
|
+
|
|
146
|
+
1. **Listen and understand** the user's explanation
|
|
147
|
+
2. **Update clarify.md immediately** with notes:
|
|
148
|
+
|
|
149
|
+
```markdown
|
|
150
|
+
## Notes & Discussions
|
|
151
|
+
|
|
152
|
+
### Note 001 - 10:30:45
|
|
153
|
+
**User said:**
|
|
154
|
+
"O sistema precisa suportar múltiplos tenants, cada um com suas próprias configurações..."
|
|
155
|
+
|
|
156
|
+
**Key Points Extracted:**
|
|
157
|
+
- Multi-tenant architecture required
|
|
158
|
+
- Per-tenant configuration
|
|
159
|
+
- Isolation between tenants
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
3. **Update decisions.md** if a decision is implied:
|
|
165
|
+
|
|
166
|
+
```markdown
|
|
167
|
+
## D001-001: Multi-tenant Architecture
|
|
168
|
+
|
|
169
|
+
**Source:** User explanation (Note 001)
|
|
170
|
+
|
|
171
|
+
**Decision:**
|
|
172
|
+
System will support multiple tenants with isolated configurations.
|
|
173
|
+
|
|
174
|
+
**Impact:**
|
|
175
|
+
- Database schema needs tenant_id
|
|
176
|
+
- API routes need tenant context
|
|
177
|
+
- Auth must include tenant info
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
4. **Acknowledge and prompt for more:**
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
✓ Anotado: Multi-tenant com configurações isoladas
|
|
186
|
+
|
|
187
|
+
Continue explicando ou use um comando:
|
|
188
|
+
• continue / mais → mais detalhes
|
|
189
|
+
• pergunta / ? → AI faz uma pergunta
|
|
190
|
+
• tasks / done → gerar tasks
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
#### 5.2 User Says "continue" / "mais" / "more" / "+"
|
|
194
|
+
|
|
195
|
+
Keep in discussion mode:
|
|
196
|
+
|
|
197
|
+
```
|
|
198
|
+
Ok, continue explicando...
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
#### 5.3 User Says "pergunta" / "question" / "q" / "?"
|
|
202
|
+
|
|
203
|
+
AI analyzes gaps and asks ONE clarification question:
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
---
|
|
207
|
+
Q1: Tenant Isolation Level
|
|
208
|
+
**Impact:** High | **Area:** Architecture
|
|
209
|
+
|
|
210
|
+
Como deve ser o isolamento entre tenants?
|
|
211
|
+
|
|
212
|
+
┌───────┬───────────────────────────────────────┐
|
|
213
|
+
│ Opção │ Descrição │
|
|
214
|
+
├───────┼───────────────────────────────────────┤
|
|
215
|
+
│ A │ Logical (same DB, tenant_id filter) │
|
|
216
|
+
│ B │ Schema (separate schemas per tenant) │
|
|
217
|
+
│ C │ Physical (separate DBs per tenant) │
|
|
218
|
+
└───────┴───────────────────────────────────────┘
|
|
219
|
+
|
|
220
|
+
Sua resposta (ou continue explicando):
|
|
221
|
+
---
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
After user answers, update clarify.md and decisions.md immediately.
|
|
225
|
+
|
|
226
|
+
#### 5.4 User Says "tasks" / "done" / "gerar" / "finish"
|
|
227
|
+
|
|
228
|
+
Proceed to Step 6 (Generate Tasks).
|
|
229
|
+
|
|
230
|
+
### Step 6: Generate tasks.md (After All Q&A Complete)
|
|
231
|
+
|
|
232
|
+
Based on all decisions, create tasks:
|
|
233
|
+
|
|
234
|
+
```markdown
|
|
235
|
+
# Tasks - Migration 001
|
|
236
|
+
|
|
237
|
+
**Migration:** 001
|
|
238
|
+
**Timestamp:** 2026-01-11_10-30-45
|
|
239
|
+
**Parent:** (none)
|
|
240
|
+
|
|
241
|
+
## Summary
|
|
242
|
+
Total: 5 | Completed: 0 | Pending: 5
|
|
243
|
+
|
|
244
|
+
## Tasks
|
|
245
|
+
|
|
246
|
+
- [ ] T001-001 [Foundation] Create ThemeContext in `src/contexts/ThemeContext.tsx`
|
|
247
|
+
- [ ] T001-002 [Foundation] Add theme column to users table `prisma/schema.prisma`
|
|
248
|
+
- [ ] T001-003 [US1] Create ThemeToggle component `src/components/ThemeToggle.tsx`
|
|
249
|
+
- [ ] T001-004 [US1] Add toggle to settings page `src/pages/settings.tsx`
|
|
250
|
+
- [ ] T001-005 [US1] Implement theme API endpoint `src/api/user/theme.ts`
|
|
251
|
+
|
|
252
|
+
## Dependencies
|
|
253
|
+
|
|
254
|
+
T001-001, T001-002 → T001-003 → T001-004
|
|
255
|
+
→ T001-005
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### Step 7: Expectation Alignment Check (NEW)
|
|
259
|
+
|
|
260
|
+
After generating tasks, verify alignment with expected outcome:
|
|
261
|
+
|
|
262
|
+
```markdown
|
|
263
|
+
## Expectation Alignment Check
|
|
264
|
+
|
|
265
|
+
**Your expectation:**
|
|
266
|
+
> [User's expected outcome from clarify.md]
|
|
267
|
+
|
|
268
|
+
**Generated tasks cover:**
|
|
269
|
+
- Task T001-001: Creates ThemeContext ✅
|
|
270
|
+
- Task T001-002: Updates database schema ✅
|
|
271
|
+
- Task T001-003: Creates toggle component ✅
|
|
272
|
+
- Task T001-004: Adds to settings page ✅
|
|
273
|
+
- Task T001-005: API endpoint ✅
|
|
274
|
+
|
|
275
|
+
**Alignment:** ✅ Aligned
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
#### When Misaligned:
|
|
279
|
+
|
|
280
|
+
If tasks don't cover the expectation:
|
|
281
|
+
|
|
282
|
+
```
|
|
283
|
+
⚠️ Tasks geradas não cobrem completamente sua expectativa.
|
|
284
|
+
|
|
285
|
+
**Missing from expectation:**
|
|
286
|
+
- [item not covered by tasks]
|
|
287
|
+
|
|
288
|
+
Deseja prosseguir mesmo assim? [Y/n]
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
**If user says "no"** - Return to discussion mode:
|
|
292
|
+
```
|
|
293
|
+
Ok, vamos continuar a clarificação.
|
|
294
|
+
|
|
295
|
+
Use os comandos:
|
|
296
|
+
• continue - explicar mais detalhes
|
|
297
|
+
• pergunta - AI faz pergunta de refinamento
|
|
298
|
+
• tasks - tentar gerar tasks novamente
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
### Step 8: Update _meta.json
|
|
302
|
+
|
|
303
|
+
```json
|
|
304
|
+
{
|
|
305
|
+
"currentMigration": "001",
|
|
306
|
+
"migrations": {
|
|
307
|
+
"001": {
|
|
308
|
+
"id": "001",
|
|
309
|
+
"timestamp": "2026-01-11_10-30-45",
|
|
310
|
+
"folder": "001_2026-01-11_10-30-45",
|
|
311
|
+
"status": "in-progress",
|
|
312
|
+
"tasksTotal": 5,
|
|
313
|
+
"tasksCompleted": 0,
|
|
314
|
+
"createdAt": "2026-01-11T10:30:45Z",
|
|
315
|
+
"expectation": "User can toggle dark mode and have it persist"
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### Step 9: Update CHANGELOG.md
|
|
322
|
+
|
|
323
|
+
```markdown
|
|
324
|
+
## [2026-01-11] - Migration 001
|
|
325
|
+
|
|
326
|
+
- Clarified 5 requirements
|
|
327
|
+
- Created 5 decisions
|
|
328
|
+
- Generated 5 tasks
|
|
329
|
+
- Areas covered: Persistence, API, UI
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
### Step 10: Ask About Commit
|
|
333
|
+
|
|
334
|
+
```
|
|
335
|
+
Migration 001 completed with 5 tasks!
|
|
336
|
+
|
|
337
|
+
Do you want to commit?
|
|
338
|
+
Message: "docs(024): migration 001 - clarify requirements and generate tasks"
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
### Step 11: Offer Next Steps
|
|
342
|
+
|
|
343
|
+
```
|
|
344
|
+
What would you like to do?
|
|
345
|
+
|
|
346
|
+
1. /sedd.clarify - Create another migration (more clarifications)
|
|
347
|
+
2. /sedd.implement - Start implementing tasks
|
|
348
|
+
3. /sedd.implement 001 - Implement only this migration
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
## Task ID Format
|
|
352
|
+
|
|
353
|
+
Tasks are prefixed with migration ID:
|
|
354
|
+
|
|
355
|
+
```
|
|
356
|
+
T001-001 = Migration 001, Task 1
|
|
357
|
+
T001-002 = Migration 001, Task 2
|
|
358
|
+
T002-001 = Migration 002, Task 1
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
## Running Multiple Times
|
|
362
|
+
|
|
363
|
+
Each `/sedd.clarify` creates a NEW migration:
|
|
364
|
+
|
|
365
|
+
```
|
|
366
|
+
1st run: 001_2026-01-11_10-30-45/
|
|
367
|
+
2nd run: 002_2026-01-11_14-15-30/
|
|
368
|
+
3rd run: 003_2026-01-12_09-00-00/
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
Parent references allow tracking the evolution:
|
|
372
|
+
- 002.parent = 001
|
|
373
|
+
- 003.parent = 002
|
|
374
|
+
|
|
375
|
+
## Rules
|
|
376
|
+
|
|
377
|
+
- **NEVER EXECUTE CODE** - Design phase only
|
|
378
|
+
- **FLEXIBLE DISCUSSION** - User controls the flow with inline commands
|
|
379
|
+
- **UPDATE FILES IMMEDIATELY** - After each user input
|
|
380
|
+
- **RECOGNIZE INLINE COMMANDS:**
|
|
381
|
+
- `continue`, `mais`, `more`, `+` → Keep discussing
|
|
382
|
+
- `pergunta`, `question`, `q`, `?` → AI asks next question
|
|
383
|
+
- `tasks`, `done`, `gerar`, `finish` → Generate tasks and end
|
|
384
|
+
- ALWAYS generate tasks.md when user says "tasks/done"
|
|
385
|
+
- Task IDs include migration ID (T001-XXX)
|
|
386
|
+
- Each clarify = new migration folder
|
|
387
|
+
- Auto-split files > 400 lines
|
|
388
|
+
|
|
389
|
+
## Flow Summary
|
|
390
|
+
|
|
391
|
+
```
|
|
392
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
393
|
+
│ User runs /sedd.clarify │
|
|
394
|
+
│ → AI creates migration folder │
|
|
395
|
+
│ → AI shows available commands │
|
|
396
|
+
└─────────────────────────────────────────────────────────────┘
|
|
397
|
+
↓
|
|
398
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
399
|
+
│ DISCUSSION LOOP │
|
|
400
|
+
│ │
|
|
401
|
+
│ User explains → AI records in clarify.md + decisions.md │
|
|
402
|
+
│ ↓ │
|
|
403
|
+
│ "continue" → AI: "Ok, continue..." │
|
|
404
|
+
│ "pergunta" → AI asks ONE question │
|
|
405
|
+
│ "tasks" → Exit loop, generate tasks │
|
|
406
|
+
└─────────────────────────────────────────────────────────────┘
|
|
407
|
+
↓
|
|
408
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
409
|
+
│ User says "tasks" / "done" │
|
|
410
|
+
│ → AI generates tasks.md from all notes + decisions │
|
|
411
|
+
│ → AI updates _meta.json │
|
|
412
|
+
│ → AI asks about commit │
|
|
413
|
+
│ → AI offers next steps │
|
|
414
|
+
└─────────────────────────────────────────────────────────────┘
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
## CLI Alternative
|
|
418
|
+
|
|
419
|
+
For automated workflows, use the SEDD CLI:
|
|
420
|
+
|
|
421
|
+
```bash
|
|
422
|
+
# Create new migration (creates clarify.md, tasks.md, decisions.md)
|
|
423
|
+
sedd clarify
|
|
424
|
+
|
|
425
|
+
# Add tasks to current migration
|
|
426
|
+
sedd tasks '[{"story":"US1","description":"Task description"}]'
|
|
427
|
+
|
|
428
|
+
# Mark task complete
|
|
429
|
+
sedd complete T001-001
|
|
430
|
+
|
|
431
|
+
# Check status
|
|
432
|
+
sedd status
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
Scripts also available in `.sedd/scripts/powershell/` and `.sedd/scripts/bash/`.
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# /sedd.dashboard - Interactive TUI Dashboard
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Open an interactive terminal dashboard to manage specs, migrations, and tasks with keyboard navigation.
|
|
5
|
+
|
|
6
|
+
## Trigger
|
|
7
|
+
- `/sedd.dashboard` or `sedd dashboard` - Open full dashboard
|
|
8
|
+
- `/sedd.dashboard -m 001` - Focus on specific migration
|
|
9
|
+
|
|
10
|
+
## Features
|
|
11
|
+
|
|
12
|
+
### Visual Layout
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
+------------------------------------------------------------------+
|
|
16
|
+
| SEDD Dashboard | Branch: 024-feature-name | Migration: 001 |
|
|
17
|
+
+---------------------+--------------------------------------------+
|
|
18
|
+
| MIGRATIONS | TASKS (3/5 completed) |
|
|
19
|
+
| ----------------- | ------------------------------------------ |
|
|
20
|
+
| > 001 [in-progress] | [x] T001-001 Create ThemeContext |
|
|
21
|
+
| 002 [pending] | [x] T001-002 Update database schema |
|
|
22
|
+
| 003 [pending] | [ ] T001-003 Create toggle component < |
|
|
23
|
+
| | [ ] T001-004 Add to settings page |
|
|
24
|
+
| | [ ] T001-005 API endpoint |
|
|
25
|
+
+---------------------+--------------------------------------------+
|
|
26
|
+
| PREVIEW: clarify.md |
|
|
27
|
+
| ---------------------------------------------------------------- |
|
|
28
|
+
| ## Expected Outcome |
|
|
29
|
+
| > User can toggle dark mode and have it persist |
|
|
30
|
+
| |
|
|
31
|
+
| ## Questions & Answers |
|
|
32
|
+
| ### Q1: Where to store preference? |
|
|
33
|
+
| **Answer:** In user account database... |
|
|
34
|
+
+------------------------------------------------------------------+
|
|
35
|
+
| [================== ] 60% (3/5 tasks) [?] Help | [q] Quit |
|
|
36
|
+
+------------------------------------------------------------------+
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Keyboard Shortcuts
|
|
40
|
+
|
|
41
|
+
| Key | Action |
|
|
42
|
+
|-----|--------|
|
|
43
|
+
| `j/k` or `arrows` | Navigate up/down |
|
|
44
|
+
| `Tab` | Switch panel (migrations → tasks → preview) |
|
|
45
|
+
| `Enter` | Select migration / Focus task |
|
|
46
|
+
| `Space` | Toggle task completion |
|
|
47
|
+
| `e` | Edit selected file in $EDITOR |
|
|
48
|
+
| `r` | Refresh data |
|
|
49
|
+
| `1-4` | Switch preview file (1=spec, 2=clarify, 3=tasks, 4=decisions) |
|
|
50
|
+
| `?` | Toggle help overlay |
|
|
51
|
+
| `q` | Quit dashboard |
|
|
52
|
+
|
|
53
|
+
### Panels
|
|
54
|
+
|
|
55
|
+
1. **Migrations Panel** - Left sidebar showing all migrations
|
|
56
|
+
- Status indicators: `>` in-progress, `*` completed, ` ` pending
|
|
57
|
+
- Navigate and select to filter tasks
|
|
58
|
+
|
|
59
|
+
2. **Tasks Panel** - Center area showing tasks
|
|
60
|
+
- Filtered by selected migration
|
|
61
|
+
- Toggle completion with Space
|
|
62
|
+
- Progress counter
|
|
63
|
+
|
|
64
|
+
3. **Preview Panel** - Right area showing file content
|
|
65
|
+
- Markdown syntax highlighting
|
|
66
|
+
- Switch between spec.md, clarify.md, tasks.md, decisions.md
|
|
67
|
+
|
|
68
|
+
### Status Bar
|
|
69
|
+
|
|
70
|
+
Shows overall progress with:
|
|
71
|
+
- Progress bar visualization
|
|
72
|
+
- Percentage complete
|
|
73
|
+
- Task count
|
|
74
|
+
- Quick help hints
|
|
75
|
+
|
|
76
|
+
## CLI Usage
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# Open dashboard
|
|
80
|
+
sedd dashboard
|
|
81
|
+
|
|
82
|
+
# Short alias
|
|
83
|
+
sedd d
|
|
84
|
+
|
|
85
|
+
# Focus on specific migration
|
|
86
|
+
sedd dashboard -m 001
|
|
87
|
+
sedd d -m 002
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Requirements
|
|
91
|
+
|
|
92
|
+
- Must be on a feature branch (###-feature-name)
|
|
93
|
+
- Feature must have _meta.json (run /sedd.specify first)
|
|
94
|
+
- Terminal must support ANSI colors
|
|
95
|
+
|
|
96
|
+
## Dependencies
|
|
97
|
+
|
|
98
|
+
The dashboard uses:
|
|
99
|
+
- **Ink** - React for CLIs
|
|
100
|
+
- **ink-spinner** - Loading indicators
|
|
101
|
+
- **React** - Component architecture
|
|
102
|
+
|
|
103
|
+
Install with:
|
|
104
|
+
```bash
|
|
105
|
+
npm install
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## File Editing
|
|
109
|
+
|
|
110
|
+
When pressing `e`, the dashboard:
|
|
111
|
+
1. Pauses rendering
|
|
112
|
+
2. Opens file in `$EDITOR` (defaults to vim)
|
|
113
|
+
3. After saving and closing, refreshes data
|
|
114
|
+
|
|
115
|
+
Supported editors:
|
|
116
|
+
- vim/nvim
|
|
117
|
+
- nano
|
|
118
|
+
- code (VS Code)
|
|
119
|
+
- Any editor in $EDITOR env var
|
|
120
|
+
|
|
121
|
+
## Task Toggle
|
|
122
|
+
|
|
123
|
+
Pressing `Space` on a task:
|
|
124
|
+
1. Reads tasks.md file
|
|
125
|
+
2. Toggles `[ ]` ↔ `[x]`
|
|
126
|
+
3. Writes back to file
|
|
127
|
+
4. Refreshes display
|
|
128
|
+
|
|
129
|
+
Changes are persisted immediately to the filesystem.
|
|
130
|
+
|
|
131
|
+
## Rules
|
|
132
|
+
|
|
133
|
+
- Dashboard is READ-ONLY for code files
|
|
134
|
+
- Only modifies task checkboxes in tasks.md
|
|
135
|
+
- Never executes code
|
|
136
|
+
- Safe to use during implementation
|
|
137
|
+
|
|
138
|
+
## Error States
|
|
139
|
+
|
|
140
|
+
| Error | Solution |
|
|
141
|
+
|-------|----------|
|
|
142
|
+
| "Not on a feature branch" | Checkout a feature branch (###-name) |
|
|
143
|
+
| "Feature directory not found" | Run /sedd.specify first |
|
|
144
|
+
| "_meta.json not found" | Initialize feature with /sedd.specify |
|
|
145
|
+
| "TUI dependencies not installed" | Run `npm install` in packages/sedd |
|