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
package/README.md
ADDED
|
@@ -0,0 +1,504 @@
|
|
|
1
|
+
# SEDD - Spec & Expectation Driven Development
|
|
2
|
+
|
|
3
|
+
> Desenvolvimento orientado por especificações **e expectativas** com sistema de migrations incrementais.
|
|
4
|
+
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
[](https://nodejs.org)
|
|
7
|
+
|
|
8
|
+
## O que é SEDD?
|
|
9
|
+
|
|
10
|
+
SEDD é um toolkit que transforma a forma como você desenvolve software com AI assistants. Em vez de apenas especificar *o que* construir, você também captura *como espera que funcione* - suas expectativas como desenvolvedor.
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
SEDD = Spec Driven Development + Expectativas do Dev
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### Compatível com
|
|
17
|
+
|
|
18
|
+
<p>
|
|
19
|
+
<img src="https://img.shields.io/badge/Claude_Code-blueviolet?style=for-the-badge&logo=anthropic" alt="Claude Code" />
|
|
20
|
+
<img src="https://img.shields.io/badge/Cursor-000000?style=for-the-badge&logo=cursor" alt="Cursor" />
|
|
21
|
+
<img src="https://img.shields.io/badge/GitHub_Copilot-000000?style=for-the-badge&logo=github" alt="GitHub Copilot" />
|
|
22
|
+
<img src="https://img.shields.io/badge/Windsurf-0066FF?style=for-the-badge" alt="Windsurf" />
|
|
23
|
+
<img src="https://img.shields.io/badge/Gemini_CLI-4285F4?style=for-the-badge&logo=google" alt="Gemini CLI" />
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Por que SEDD?
|
|
29
|
+
|
|
30
|
+
### A Evolução do Spec Driven Development
|
|
31
|
+
|
|
32
|
+
**Spec Driven Development (SDD)** já era poderoso: você documenta o que vai construir antes de codar. Mas ao trabalhar com AI assistants, percebemos que specs sozinhas não bastavam.
|
|
33
|
+
|
|
34
|
+
Faltava capturar as **expectativas do desenvolvedor** - aquele conhecimento tácito que fica na cabeça:
|
|
35
|
+
|
|
36
|
+
- *"Eu espero que isso seja rápido, tipo < 100ms"*
|
|
37
|
+
- *"Eu imagino que o usuário vai clicar aqui primeiro"*
|
|
38
|
+
- *"Na minha cabeça, isso funciona parecido com o Stripe"*
|
|
39
|
+
|
|
40
|
+
Essas expectativas raramente são documentadas. Ficam implícitas. E quando você trabalha com uma AI, ela não tem como adivinhar.
|
|
41
|
+
|
|
42
|
+
### O Superpoder
|
|
43
|
+
|
|
44
|
+
SEDD captura três dimensões:
|
|
45
|
+
|
|
46
|
+
| Dimensão | Pergunta | Artefato |
|
|
47
|
+
|----------|----------|----------|
|
|
48
|
+
| **Spec** | O que o sistema faz? | `spec.md` |
|
|
49
|
+
| **Expectation** | Como você espera que funcione? | `clarify.md` |
|
|
50
|
+
| **Decision** | Por que foi decidido assim? | `decisions.md` |
|
|
51
|
+
|
|
52
|
+
Quando você clarifica uma feature no SEDD, não está só respondendo perguntas técnicas. Está **externalizando suas expectativas** para que a AI (e você mesmo no futuro) entenda o *espírito* do que você quer construir.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## O Problema que Resolvemos
|
|
57
|
+
|
|
58
|
+
Ao trabalhar com AI assistants em projetos de desenvolvimento:
|
|
59
|
+
|
|
60
|
+
| Problema | Sem SEDD | Com SEDD |
|
|
61
|
+
|----------|----------|----------|
|
|
62
|
+
| **Contexto perdido** | AI "esquece" decisões anteriores | Tudo documentado em migrations |
|
|
63
|
+
| **Falta de rastreabilidade** | "Por que fizemos assim?" | `decisions.md` com timestamps |
|
|
64
|
+
| **Specs vagas** | Retrabalho constante | Clarificação interativa |
|
|
65
|
+
| **Tasks desorganizadas** | Espalhadas ou esquecidas | `tasks.md` com IDs únicos |
|
|
66
|
+
| **Difícil retomar** | Onde parei? O que falta? | `progress.md` atualizado |
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Como Funciona
|
|
71
|
+
|
|
72
|
+
### Fluxo em 4 Passos
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
76
|
+
│ 1. SPECIFY │ → │ 2. CLARIFY │ → │ 3. TASKS │ → │ 4. IMPLEMENT│
|
|
77
|
+
│ │ │ │ │ │ │ │
|
|
78
|
+
│ O que? │ │ Como? │ │ Quanto? │ │ Fazer! │
|
|
79
|
+
│ spec.md │ │ clarify.md │ │ tasks.md │ │ código │
|
|
80
|
+
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### 1. Specify - Defina o que construir
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
/sedd.specify "Add dark mode toggle to settings"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Cria a especificação base com:
|
|
90
|
+
- `spec.md` - Requisitos funcionais
|
|
91
|
+
- `interfaces.ts` - Entidades do domínio
|
|
92
|
+
- `ui-mockups/` - ASCII mockups (se UI)
|
|
93
|
+
|
|
94
|
+
### 2. Clarify - Capture expectativas
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
/sedd.clarify
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**Modo de discussão flexível** - você controla o ritmo:
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
📝 Clarification Session - Migration 001
|
|
104
|
+
|
|
105
|
+
Você pode:
|
|
106
|
+
• Explicar livremente o que precisa
|
|
107
|
+
• Adicionar notas e decisões
|
|
108
|
+
• Responder perguntas
|
|
109
|
+
|
|
110
|
+
Comandos:
|
|
111
|
+
┌───────────┬────────────────────────────────────┐
|
|
112
|
+
│ continue │ Continuar explicando (mais, +) │
|
|
113
|
+
│ pergunta │ AI faz próxima pergunta (q, ?) │
|
|
114
|
+
│ tasks │ Gerar tasks e finalizar (done) │
|
|
115
|
+
└───────────┴────────────────────────────────────┘
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Cada clarificação cria uma **migration** com timestamp:
|
|
119
|
+
- `clarify.md` - O que foi discutido
|
|
120
|
+
- `decisions.md` - Decisões tomadas
|
|
121
|
+
- `tasks.md` - Tarefas geradas
|
|
122
|
+
|
|
123
|
+
### 3. Tasks - Quebre em tarefas
|
|
124
|
+
|
|
125
|
+
Tasks são geradas automaticamente no `/sedd.clarify`, mas você pode adicionar mais:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
/sedd.tasks
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Formato das tasks:
|
|
132
|
+
```
|
|
133
|
+
T001-001 = Migration 001, Task 1
|
|
134
|
+
T001-002 = Migration 001, Task 2
|
|
135
|
+
T002-001 = Migration 002, Task 1
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### 4. Implement - Execute
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
/sedd.implement # Pergunta entre migrations
|
|
142
|
+
/sedd.implement --all # Executa tudo sem parar
|
|
143
|
+
/sedd.implement 001 # Só migration específica
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
A AI executa cada task, atualiza `progress.md`, e marca como concluída.
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Migrations: O Diferencial
|
|
151
|
+
|
|
152
|
+
O grande diferencial do SEDD é o sistema de **migrations incrementais**.
|
|
153
|
+
|
|
154
|
+
### Por que Migrations?
|
|
155
|
+
|
|
156
|
+
Você não precisa saber tudo no início. Pode clarificar aos poucos:
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
/sedd.clarify → Migration 001 (5 tasks)
|
|
160
|
+
/sedd.implement 001
|
|
161
|
+
/sedd.clarify → Migration 002 (3 tasks mais)
|
|
162
|
+
/sedd.implement 002
|
|
163
|
+
/sedd.clarify → Migration 003 (ajustes)
|
|
164
|
+
...
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Estrutura
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
specs/024-dark-mode/
|
|
171
|
+
├── _meta.json # Metadados
|
|
172
|
+
├── spec.md # Spec base (imutável)
|
|
173
|
+
├── interfaces.ts # Entidades
|
|
174
|
+
│
|
|
175
|
+
├── 001_2026-01-10_14-30-45/ # Migration 1
|
|
176
|
+
│ ├── clarify.md # Discussão
|
|
177
|
+
│ ├── decisions.md # Decisões
|
|
178
|
+
│ └── tasks.md # Tasks T001-XXX
|
|
179
|
+
│
|
|
180
|
+
├── 002_2026-01-10_16-45-22/ # Migration 2
|
|
181
|
+
│ ├── clarify.md
|
|
182
|
+
│ ├── decisions.md
|
|
183
|
+
│ └── tasks.md # Tasks T002-XXX
|
|
184
|
+
│
|
|
185
|
+
└── progress.md # Progresso geral
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Benefícios
|
|
189
|
+
|
|
190
|
+
- **Histórico completo**: Cada decisão tem timestamp e contexto
|
|
191
|
+
- **Rastreabilidade**: Task T002-003 → Migration 002 → Decisão D002-003
|
|
192
|
+
- **Flexibilidade**: Implemente migration 001, depois clarifica mais
|
|
193
|
+
- **Retomada fácil**: Volte semanas depois e saiba exatamente onde parou
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Fases de Desenvolvimento
|
|
198
|
+
|
|
199
|
+
SEDD funciona em qualquer fase do projeto:
|
|
200
|
+
|
|
201
|
+
### 🌱 Greenfield (Projeto Novo)
|
|
202
|
+
|
|
203
|
+
Comece do zero com especificações claras:
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
npx sedd init my-project
|
|
207
|
+
cd my-project
|
|
208
|
+
git checkout -b 001-auth-system
|
|
209
|
+
/sedd.specify "User authentication with OAuth"
|
|
210
|
+
/sedd.clarify
|
|
211
|
+
/sedd.implement --all
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### 🔧 Brownfield (Projeto Existente)
|
|
215
|
+
|
|
216
|
+
Adicione features incrementalmente:
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
git checkout -b 042-dark-mode
|
|
220
|
+
/sedd.specify "Add dark mode to existing settings"
|
|
221
|
+
# SEDD analisa código existente e sugere integrações
|
|
222
|
+
/sedd.clarify
|
|
223
|
+
/sedd.implement
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### 🔄 Refactoring
|
|
227
|
+
|
|
228
|
+
Documente antes de refatorar:
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
git checkout -b 050-refactor-auth
|
|
232
|
+
/sedd.specify "Refactor auth to use JWT instead of sessions"
|
|
233
|
+
/sedd.clarify # Capture todas as decisões de migração
|
|
234
|
+
/sedd.implement --all
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## Quick Start
|
|
240
|
+
|
|
241
|
+
### Instalação
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
npm install -g sedd
|
|
245
|
+
# ou use diretamente com npx
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### Projeto Existente (Recomendado)
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
# Navegar para seu projeto
|
|
252
|
+
cd meu-projeto
|
|
253
|
+
|
|
254
|
+
# SEDD detecta automaticamente o package.json
|
|
255
|
+
sedd init
|
|
256
|
+
|
|
257
|
+
# Output:
|
|
258
|
+
# 🔍 Detected project: meu-projeto
|
|
259
|
+
# 🚀 Initializing SEDD...
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
### Projeto Novo
|
|
263
|
+
|
|
264
|
+
```bash
|
|
265
|
+
# Criar projeto primeiro
|
|
266
|
+
mkdir meu-projeto && cd meu-projeto
|
|
267
|
+
npm init -y
|
|
268
|
+
|
|
269
|
+
# Depois inicializar SEDD
|
|
270
|
+
sedd init
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### Se não houver projeto
|
|
274
|
+
|
|
275
|
+
```bash
|
|
276
|
+
sedd init
|
|
277
|
+
|
|
278
|
+
# Output:
|
|
279
|
+
# ⚠️ No project detected in current directory.
|
|
280
|
+
#
|
|
281
|
+
# SEDD works best inside a project. Try one of these:
|
|
282
|
+
# 1. Run npm init -y to create a package.json
|
|
283
|
+
# 2. Run sedd init my-project to specify a project name
|
|
284
|
+
# 3. Navigate to an existing project folder
|
|
285
|
+
#
|
|
286
|
+
# ? Initialize SEDD anyway in current directory? (y/N)
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
### Workflow Completo
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
# 1. Navegar para projeto existente
|
|
293
|
+
cd meu-projeto
|
|
294
|
+
|
|
295
|
+
# 2. Inicializar SEDD (detecta package.json)
|
|
296
|
+
sedd init
|
|
297
|
+
|
|
298
|
+
# 3. Criar branch da feature
|
|
299
|
+
git checkout -b 001-user-auth
|
|
300
|
+
|
|
301
|
+
# 4. Especificar (no Claude Code / Cursor)
|
|
302
|
+
/sedd.specify "User authentication with email and password"
|
|
303
|
+
|
|
304
|
+
# 5. Clarificar (modo interativo)
|
|
305
|
+
/sedd.clarify
|
|
306
|
+
# → Explique suas expectativas
|
|
307
|
+
# → Responda perguntas
|
|
308
|
+
# → Digite "tasks" quando pronto
|
|
309
|
+
|
|
310
|
+
# 6. Implementar
|
|
311
|
+
/sedd.implement --all
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
## Comandos
|
|
317
|
+
|
|
318
|
+
### CLI (Terminal)
|
|
319
|
+
|
|
320
|
+
| Comando | Descrição |
|
|
321
|
+
|---------|-----------|
|
|
322
|
+
| `sedd init` | Inicializar (detecta package.json automaticamente) |
|
|
323
|
+
| `sedd init meu-projeto` | Inicializar com nome específico |
|
|
324
|
+
| `sedd init --force` | Atualizar arquivos existentes |
|
|
325
|
+
| `sedd check` | Verificar estrutura |
|
|
326
|
+
| `sedd status` | Ver status atual |
|
|
327
|
+
| `sedd clarify` | Criar nova migration |
|
|
328
|
+
| `sedd tasks '<json>'` | Adicionar tasks |
|
|
329
|
+
| `sedd complete T001-001` | Marcar task completa |
|
|
330
|
+
|
|
331
|
+
### Slash Commands (AI Assistants)
|
|
332
|
+
|
|
333
|
+
| Comando | Descrição |
|
|
334
|
+
|---------|-----------|
|
|
335
|
+
| `/sedd.specify` | Criar spec base |
|
|
336
|
+
| `/sedd.clarify` | Clarificar e gerar tasks |
|
|
337
|
+
| `/sedd.tasks` | Adicionar tasks à migration |
|
|
338
|
+
| `/sedd.implement` | Executar tasks |
|
|
339
|
+
| `/sedd.implement --all` | Executar tudo sem parar |
|
|
340
|
+
| `/sedd.migrate` | Migrar specs antigas |
|
|
341
|
+
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
## Hooks: Contexto Automático para AI
|
|
345
|
+
|
|
346
|
+
SEDD inclui **hooks inteligentes** que injetam contexto automaticamente nas suas conversas com AI.
|
|
347
|
+
|
|
348
|
+
### Como Funciona
|
|
349
|
+
|
|
350
|
+
Quando você digita algo no AI assistant, o hook analisa e injeta:
|
|
351
|
+
|
|
352
|
+
```
|
|
353
|
+
You: "vamos implementar a próxima task"
|
|
354
|
+
|
|
355
|
+
⎿ UserPromptSubmit says:
|
|
356
|
+
<sedd-context>
|
|
357
|
+
**Branch: 023-agent-executor** | Migration: 002 | Progress: 69/110 tasks
|
|
358
|
+
|
|
359
|
+
Pending tasks:
|
|
360
|
+
- T001-054: [Polish] Remove all // TODO comments
|
|
361
|
+
- T001-055: [Polish] Remove deprecated modals
|
|
362
|
+
- T001-056: [Polish] Update tool.service.ts
|
|
363
|
+
... and 36 more
|
|
364
|
+
|
|
365
|
+
Use `/sedd.implement` to execute tasks.
|
|
366
|
+
</sedd-context>
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
A AI recebe automaticamente:
|
|
370
|
+
- Branch atual e migration ativa
|
|
371
|
+
- Progresso geral (X/Y tasks)
|
|
372
|
+
- Lista de tasks pendentes
|
|
373
|
+
- Sugestão do próximo comando
|
|
374
|
+
|
|
375
|
+
### Ativação de Skills
|
|
376
|
+
|
|
377
|
+
O hook também detecta contexto e sugere skills relevantes:
|
|
378
|
+
|
|
379
|
+
```
|
|
380
|
+
You: "estou tendo erro no langgraph"
|
|
381
|
+
|
|
382
|
+
⎿ Hook detected: LangChain/LangGraph context
|
|
383
|
+
Suggesting: langchain-expert skill
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
### Instalação dos Hooks
|
|
387
|
+
|
|
388
|
+
Os hooks são copiados automaticamente no `sedd init`:
|
|
389
|
+
|
|
390
|
+
```
|
|
391
|
+
.claude/hooks/
|
|
392
|
+
└── check-roadmap.js # Hook principal
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
Ou copie manualmente de `node_modules/sedd/hooks/`.
|
|
396
|
+
|
|
397
|
+
---
|
|
398
|
+
|
|
399
|
+
## Configuração
|
|
400
|
+
|
|
401
|
+
`sedd.config.json`:
|
|
402
|
+
|
|
403
|
+
```json
|
|
404
|
+
{
|
|
405
|
+
"specsDir": ".sedd",
|
|
406
|
+
"branchPattern": "{{id}}-{{name}}",
|
|
407
|
+
"scriptRunner": "auto",
|
|
408
|
+
"autoSplit": {
|
|
409
|
+
"enabled": true,
|
|
410
|
+
"maxLines": 400
|
|
411
|
+
},
|
|
412
|
+
"commit": {
|
|
413
|
+
"askBeforeCommit": true
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
| Opção | Default | Descrição |
|
|
419
|
+
|-------|---------|-----------|
|
|
420
|
+
| `specsDir` | `.sedd` | Pasta das specs (use `specs` para legacy) |
|
|
421
|
+
| `branchPattern` | `{{id}}-{{name}}` | Formato do nome da branch |
|
|
422
|
+
| `scriptRunner` | `auto` | `auto`, `powershell`, ou `bash` |
|
|
423
|
+
| `autoSplit.maxLines` | `400` | Auto-split de arquivos grandes |
|
|
424
|
+
| `commit.askBeforeCommit` | `true` | Perguntar antes de commitar |
|
|
425
|
+
|
|
426
|
+
### Script Runner
|
|
427
|
+
|
|
428
|
+
Por padrão (`auto`), SEDD detecta o OS e usa:
|
|
429
|
+
- **Windows** → PowerShell (`.ps1`)
|
|
430
|
+
- **macOS/Linux** → Bash (`.sh`)
|
|
431
|
+
|
|
432
|
+
Para forçar um runner específico (ex: usar Bash no Windows via WSL/Git Bash):
|
|
433
|
+
|
|
434
|
+
```json
|
|
435
|
+
{
|
|
436
|
+
"scriptRunner": "bash"
|
|
437
|
+
}
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
---
|
|
441
|
+
|
|
442
|
+
## Filosofia
|
|
443
|
+
|
|
444
|
+
### Princípios
|
|
445
|
+
|
|
446
|
+
1. **Expectativas primeiro** - Não só o que, mas como você espera que funcione
|
|
447
|
+
2. **Nada acontece sem task** - Toda implementação deve estar rastreada
|
|
448
|
+
3. **Decisões são documentadas** - Não confie na memória, documente
|
|
449
|
+
4. **Incremental > Big Bang** - Clarifica aos poucos, implementa aos poucos
|
|
450
|
+
5. **AI como parceiro** - Ferramentas pensadas para colaboração AI-humano
|
|
451
|
+
|
|
452
|
+
### Comparação
|
|
453
|
+
|
|
454
|
+
| Aspecto | Vibe Coding | Spec-Driven | SEDD |
|
|
455
|
+
|---------|-------------|-------------|------|
|
|
456
|
+
| Especificação | ❌ Nenhuma | ✅ Detalhada | ✅ Detalhada |
|
|
457
|
+
| Expectativas | ❌ Implícitas | ❌ Implícitas | ✅ **Explícitas** |
|
|
458
|
+
| Histórico | ❌ Nenhum | ⚠️ Limitado | ✅ **Migrations** |
|
|
459
|
+
| Clarificação | ❌ Ad-hoc | ⚠️ Única vez | ✅ **Incremental** |
|
|
460
|
+
| Retomada | ❌ Difícil | ⚠️ Possível | ✅ **progress.md** |
|
|
461
|
+
|
|
462
|
+
---
|
|
463
|
+
|
|
464
|
+
## Migração de Projetos
|
|
465
|
+
|
|
466
|
+
Se você já tem specs em formato antigo:
|
|
467
|
+
|
|
468
|
+
```bash
|
|
469
|
+
npx sedd migrate
|
|
470
|
+
# ou
|
|
471
|
+
/sedd.migrate
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
---
|
|
475
|
+
|
|
476
|
+
## Contribuindo
|
|
477
|
+
|
|
478
|
+
Contribuições são bem-vindas! Veja [CONTRIBUTING.md](CONTRIBUTING.md) para guidelines.
|
|
479
|
+
|
|
480
|
+
---
|
|
481
|
+
|
|
482
|
+
## Licença
|
|
483
|
+
|
|
484
|
+
MIT
|
|
485
|
+
|
|
486
|
+
---
|
|
487
|
+
|
|
488
|
+
<p align="center">
|
|
489
|
+
<i>
|
|
490
|
+
SEDD nasceu da evolução do Spec Driven Development para incluir o que realmente importa: <b>suas expectativas como desenvolvedor</b>.
|
|
491
|
+
</i>
|
|
492
|
+
</p>
|
|
493
|
+
|
|
494
|
+
<p align="center">
|
|
495
|
+
<i>
|
|
496
|
+
Se você já teve que explicar a mesma coisa 3 vezes para uma AI, ou se já perdeu horas porque a AI não entendeu o "espírito" do que você queria — este projeto é para você.
|
|
497
|
+
</i>
|
|
498
|
+
</p>
|
|
499
|
+
|
|
500
|
+
<p align="center">
|
|
501
|
+
<b>Porque especificações dizem O QUE construir.<br>
|
|
502
|
+
Expectativas dizem COMO você imagina que deve funcionar.<br>
|
|
503
|
+
E juntas, elas são o superpoder que faltava.</b>
|
|
504
|
+
</p>
|