sedd 0.1.5 → 0.1.7

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 CHANGED
@@ -60,9 +60,9 @@ Tasks:
60
60
 
61
61
  ## Expectation-First Workflow
62
62
 
63
- ### 1. Captura Obrigatória
63
+ ### 1. Captura Obrigatória (DEVE / NÃO DEVE)
64
64
 
65
- Ao usar `/sedd.specify` ou `/sedd.clarify`, a AI pergunta primeiro:
65
+ Ao usar `/sedd.specify` ou `/sedd.clarify`, a AI pergunta:
66
66
 
67
67
  ```
68
68
  🎯 Qual é sua EXPECTATIVA para esta feature?
@@ -70,6 +70,16 @@ Ao usar `/sedd.specify` ou `/sedd.clarify`, a AI pergunta primeiro:
70
70
  O que você espera ver funcionando quando estiver pronto?
71
71
  ```
72
72
 
73
+ E depois detalha com regras claras:
74
+
75
+ ```
76
+ **O que DEVE acontecer?** (requisitos obrigatórios)
77
+ > Criar domínio no monolito, usar padrão repository
78
+
79
+ **O que NÃO DEVE acontecer?** (restrições/proibições)
80
+ > NÃO criar endpoint em serviço X, NÃO usar API externa
81
+ ```
82
+
73
83
  ### 2. Score de Alinhamento
74
84
 
75
85
  Ao gerar tasks, SEDD calcula cobertura:
@@ -99,7 +109,24 @@ SEDD gera `acceptance.md` baseado na expectativa:
99
109
  - [ ] AC-004: Theme persists across sessions
100
110
  ```
101
111
 
102
- ### 4. Checkpoints Durante Implementação
112
+ ### 4. Validação Por Task (NÃO DEVE)
113
+
114
+ Antes de marcar qualquer task como concluída, SEDD valida contra restrições:
115
+
116
+ ```
117
+ ⚠️ VALIDAÇÃO - Task T001-003
118
+
119
+ Arquivos modificados:
120
+ - services/x/endpoints/new.ts ← ⛔ VIOLA "NÃO criar endpoint em serviço X"
121
+ - src/domains/novo/index.ts ← ✅ OK
122
+
123
+ ❌ Task viola restrição. Opções:
124
+ 1. Reverter e refazer
125
+ 2. Ajustar expectativa
126
+ 3. Continuar (marcar como desvio)
127
+ ```
128
+
129
+ ### 5. Checkpoints Durante Implementação
103
130
 
104
131
  A cada 3 tasks, SEDD verifica alinhamento:
105
132
 
@@ -112,18 +139,22 @@ Sua expectativa:
112
139
  Isso ainda está alinhado? [Y/n/ajustar]
113
140
  ```
114
141
 
115
- ### 5. Validação Final
142
+ ### 6. Validação Final (DEVE + NÃO DEVE)
116
143
 
117
144
  Ao completar migration, valida contra acceptance criteria:
118
145
 
119
146
  ```
120
147
  🏁 Migration 001 Completa!
121
148
 
122
- Acceptance Criteria:
149
+ ━━━ CRITÉRIOS POSITIVOS (DEVE) ━━━
123
150
  - [x] AC-001: User can toggle ✓
124
151
  - [x] AC-002: Toggle in settings ✓
125
152
  - [ ] AC-003: Persist after refresh ✗
126
153
 
154
+ ━━━ CRITÉRIOS NEGATIVOS (NÃO DEVE) ━━━
155
+ - [x] AC-N01: Nenhum arquivo em services/x/ ✓
156
+ - [x] AC-N02: Nenhuma API externa ✓
157
+
127
158
  Criar migration de follow-up? [Y/n]
128
159
  ```
129
160
 
@@ -147,6 +178,7 @@ Criar migration de follow-up? [Y/n]
147
178
  | `/sedd.clarify` | Clarificar e gerar tasks com score |
148
179
  | `/sedd.implement` | Executar tasks com checkpoints |
149
180
  | `/sedd.implement --all` | Executar tudo sem parar |
181
+ | `/sedd.dashboard` | Ver status atual de migrations e tasks |
150
182
 
151
183
  ---
152
184
 
@@ -155,22 +187,34 @@ Criar migration de follow-up? [Y/n]
155
187
  ```
156
188
  .sedd/001-user-auth/
157
189
  ├── spec.md # Especificação + Expectativa
158
- ├── _meta.json # Metadados + expectation field
190
+ ├── _meta.json # Metadados + expectation estruturada
159
191
 
160
192
  ├── 001_timestamp/ # Migration 1
161
- │ ├── clarify.md # Discussão
193
+ │ ├── clarify.md # Discussão + DEVE/NÃO DEVE
162
194
  │ ├── decisions.md # Decisões
163
195
  │ ├── tasks.md # Tasks T001-XXX
164
- │ └── acceptance.md # Critérios de aceite
196
+ │ └── acceptance.md # Critérios positivos e negativos
165
197
 
166
- └── progress.md # Progresso + checkpoints
198
+ └── progress.md # Progresso + checkpoints + desvios
199
+ ```
200
+
201
+ ### Estrutura de Expectativa em _meta.json
202
+
203
+ ```json
204
+ {
205
+ "expectation": {
206
+ "summary": "User can toggle dark mode",
207
+ "must": ["Criar toggle", "Persistir no banco"],
208
+ "mustNot": ["Criar endpoint em serviço X", "Usar localStorage"]
209
+ }
210
+ }
167
211
  ```
168
212
 
169
213
  ---
170
214
 
171
215
  ## Hooks Inteligentes
172
216
 
173
- O hook `check-roadmap.js` sempre mostra:
217
+ O hook `check-roadmap.js` sempre mostra expectativas E restrições:
174
218
 
175
219
  ```xml
176
220
  <sedd-context>
@@ -179,6 +223,10 @@ Branch: 024-feature | Migration: 001 | Progress: 3/10 🟢 ~85%
179
223
  🎯 FEATURE: User can customize theme
180
224
  📍 MIGRATION 001: Toggle dark mode with persistence
181
225
 
226
+ ⛔ NÃO DEVE:
227
+ - ❌ Criar endpoint no serviço X
228
+ - ❌ Usar localStorage
229
+
182
230
  Pending tasks:
183
231
  - T001-004: Add to settings page
184
232
  - T001-005: API endpoint
@@ -68,6 +68,49 @@ Save in `clarify.md` under `## Expected Outcome` section (NO TOPO).
68
68
 
69
69
  **NÃO PROSSIGA** sem a expectativa do usuário.
70
70
 
71
+ ### Step 1.5: Detail MUST and MUST NOT (STRUCTURED EXPECTATION)
72
+
73
+ Após capturar o resumo da expectativa, detalhar com regras claras:
74
+
75
+ ```
76
+ Agora vamos detalhar sua expectativa:
77
+
78
+ **O que DEVE acontecer?** (requisitos obrigatórios)
79
+ Exemplo: "Criar domínio no monolito", "Usar padrão repository"
80
+ > [usuário lista]
81
+
82
+ **O que NÃO DEVE acontecer?** (restrições/proibições)
83
+ Exemplo: "NÃO criar endpoint em serviço X", "NÃO usar API externa"
84
+ > [usuário lista]
85
+ ```
86
+
87
+ Se usuário não tiver restrições, aceitar resposta vazia para `mustNot`.
88
+
89
+ Save in `clarify.md` under `## Expectation Details`:
90
+
91
+ ```markdown
92
+ ## Expectation Details
93
+
94
+ ### DEVE fazer:
95
+ - Criar novo domínio no monolito
96
+ - Usar padrão repository existente
97
+
98
+ ### NÃO DEVE fazer:
99
+ - ❌ Criar endpoint no serviço X
100
+ - ❌ Usar API externa
101
+ ```
102
+
103
+ **Estrutura para _meta.json** (será salvo no Step 8):
104
+ ```json
105
+ {
106
+ "expectation": {
107
+ "summary": "texto livre do usuário",
108
+ "must": ["item1", "item2"],
109
+ "mustNot": ["item1", "item2"]
110
+ }
111
+ }
112
+ ```
113
+
71
114
  ### Step 2: Load Context
72
115
 
73
116
  Read from feature root:
@@ -430,7 +473,17 @@ Como você imagina a persistência funcionando?
430
473
  "tasksTotal": 5,
431
474
  "tasksCompleted": 0,
432
475
  "createdAt": "2026-01-11T10:30:45Z",
433
- "expectation": "User can toggle dark mode and have it persist"
476
+ "expectation": {
477
+ "summary": "User can toggle dark mode and have it persist",
478
+ "must": [
479
+ "Criar toggle de dark mode",
480
+ "Persistir preferência no banco"
481
+ ],
482
+ "mustNot": [
483
+ "Criar endpoint no serviço X",
484
+ "Usar localStorage (usar banco)"
485
+ ]
486
+ }
434
487
  }
435
488
  }
436
489
  }
@@ -1,145 +1,43 @@
1
- # /sedd.dashboard - Interactive TUI Dashboard
1
+ # /sedd.dashboard - Status das Clarificações
2
2
 
3
3
  ## Purpose
4
- Open an interactive terminal dashboard to manage specs, migrations, and tasks with keyboard navigation.
4
+ Mostrar o status atual de migrations, tasks e progresso da feature.
5
5
 
6
6
  ## Trigger
7
- - `/sedd.dashboard` or `sedd dashboard` - Open full dashboard
8
- - `/sedd.dashboard -m 001` - Focus on specific migration
7
+ - `/sedd.dashboard` - Ver status completo
9
8
 
10
- ## Features
9
+ ## Output
11
10
 
12
- ### Visual Layout
11
+ O comando exibe:
13
12
 
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
13
+ - Feature atual (branch/nome)
14
+ - Migration em progresso
15
+ - Lista de tasks com status (pending/completed)
16
+ - Progresso geral (X/Y tasks)
77
17
 
78
- ```bash
79
- # Open dashboard
80
- sedd dashboard
18
+ ### Exemplo
81
19
 
82
- # Short alias
83
- sedd d
84
-
85
- # Focus on specific migration
86
- sedd dashboard -m 001
87
- sedd d -m 002
88
20
  ```
21
+ 📊 Dashboard - 024-user-auth
89
22
 
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
23
+ Migration: 001 (in-progress)
24
+ Expectation: User can login with email/password
95
25
 
96
- ## Dependencies
26
+ Tasks:
27
+ [x] T001-001 Create user model
28
+ [x] T001-002 Add password hashing
29
+ [ ] T001-003 Create login endpoint
30
+ [ ] T001-004 Add session management
97
31
 
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
32
+ Progress: 2/4 (50%)
106
33
  ```
107
34
 
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
35
+ ## Requirements
128
36
 
129
- Changes are persisted immediately to the filesystem.
37
+ - Estar em branch de feature (###-feature-name)
38
+ - Feature deve ter _meta.json
130
39
 
131
40
  ## Rules
132
41
 
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 |
42
+ - Comando read-only, não modifica arquivos
43
+ - Mostra estado atual do filesystem
@@ -137,6 +137,134 @@ For each task in order:
137
137
 
138
138
  5. **Verify sync** - All three files must show same completed count
139
139
 
140
+ ### Step 5.6: Validate Against Expectations (CRITICAL - Before Marking Done)
141
+
142
+ **ANTES de marcar qualquer task como concluída**, validar contra as restrições `mustNot`.
143
+
144
+ #### 5.6.1 Carregar Restrições
145
+
146
+ Ler `_meta.json` e extrair `expectation.mustNot[]` da migration atual.
147
+
148
+ #### 5.6.2 Listar Arquivos Modificados
149
+
150
+ Identificar todos os arquivos criados ou modificados durante a task:
151
+ - Novos arquivos criados
152
+ - Arquivos editados
153
+ - Imports adicionados
154
+
155
+ #### 5.6.3 Validar Contra mustNot
156
+
157
+ Para cada item em `mustNot`, verificar se algum arquivo/código viola a restrição.
158
+
159
+ **Exemplo de validação:**
160
+
161
+ ```
162
+ mustNot: ["Criar endpoint no serviço X"]
163
+ Arquivos modificados:
164
+ - services/x/endpoints/new.ts ← POTENCIAL VIOLAÇÃO
165
+ - src/domains/novo/index.ts ← OK
166
+ ```
167
+
168
+ #### 5.6.4 Se Violação Detectada
169
+
170
+ ```
171
+ ⚠️ VALIDAÇÃO DE EXPECTATIVA - Task T001-003
172
+
173
+ Arquivos modificados nesta task:
174
+ - services/x/endpoints/new.ts ← ⛔ VIOLA "NÃO criar endpoint em serviço X"
175
+ - src/domains/novo/index.ts ← ✅ OK
176
+
177
+ ❌ Task viola restrição da expectativa.
178
+
179
+ **Opções:**
180
+ 1. Reverter alterações e refazer a task de forma diferente
181
+ 2. Ajustar expectativa (remover esta restrição)
182
+ 3. Continuar mesmo assim (será marcado como desvio)
183
+
184
+ O que deseja fazer? [1/2/3]
185
+ ```
186
+
187
+ **Respostas:**
188
+
189
+ **Se "1" (Reverter):**
190
+ - Reverter as alterações feitas
191
+ - Voltar para início da task
192
+ - Sugerir abordagem alternativa
193
+
194
+ **Se "2" (Ajustar expectativa):**
195
+ ```
196
+ Removendo restrição: "NÃO criar endpoint em serviço X"
197
+
198
+ ⚠️ Isso será registrado em _meta.json como ajuste de expectativa.
199
+ Motivo do ajuste (opcional):
200
+ > [usuário fornece motivo]
201
+ ```
202
+
203
+ Atualizar `_meta.json`:
204
+ ```json
205
+ {
206
+ "expectation": {
207
+ "mustNot": ["Usar API externa"],
208
+ "adjustments": [{
209
+ "type": "removed_mustNot",
210
+ "item": "Criar endpoint no serviço X",
211
+ "reason": "Necessário por limitação técnica",
212
+ "taskId": "T001-003",
213
+ "timestamp": "2026-01-11T14:30:00Z"
214
+ }]
215
+ }
216
+ }
217
+ ```
218
+
219
+ **Se "3" (Continuar como desvio):**
220
+ ```
221
+ ⚠️ Registrando desvio...
222
+
223
+ Task T001-003 marcada como "completed_with_deviation".
224
+ ```
225
+
226
+ Atualizar `progress.md`:
227
+ ```markdown
228
+ - [x] T001-003 [14:00 → 14:30] ⚠️ DESVIO: Criou endpoint em serviço X
229
+ - Motivo: [registrar motivo se fornecido]
230
+ ```
231
+
232
+ Atualizar `_meta.json`:
233
+ ```json
234
+ {
235
+ "migrations": {
236
+ "001": {
237
+ "deviations": [{
238
+ "taskId": "T001-003",
239
+ "violation": "Criar endpoint no serviço X",
240
+ "reason": "...",
241
+ "timestamp": "2026-01-11T14:30:00Z"
242
+ }]
243
+ }
244
+ }
245
+ }
246
+ ```
247
+
248
+ #### 5.6.5 Se Nenhuma Violação
249
+
250
+ ```
251
+ ✅ Validação OK - Nenhuma restrição violada
252
+ ```
253
+
254
+ Prosseguir normalmente com a marcação da task.
255
+
256
+ #### 5.6.6 Validação Automática de Padrões Comuns
257
+
258
+ Para detectar violações automaticamente, verificar padrões:
259
+
260
+ | Restrição | Padrão de Detecção |
261
+ |-----------|-------------------|
262
+ | "NÃO criar em services/x/" | Arquivo criado em `services/x/**` |
263
+ | "NÃO usar API externa" | Import de `axios`, `fetch` para URLs externas |
264
+ | "NÃO usar localStorage" | Código contém `localStorage.` |
265
+ | "NÃO criar novo endpoint" | Arquivo em `**/endpoints/**` ou `**/routes/**` |
266
+ | "NÃO modificar schema" | Alteração em `**/schema.prisma` ou migrations |
267
+
140
268
  ### Step 5.5: Expectation Checkpoint (NEW)
141
269
 
142
270
  A cada 3 tasks completadas, pausar e verificar alinhamento com expectativa.
@@ -233,6 +361,7 @@ Quando todas as tasks de uma migration forem completadas, validar usando accepta
233
361
  #### 7.1 Carregar Acceptance Criteria
234
362
 
235
363
  Se `{migration}/acceptance.md` existe, carregar os critérios.
364
+ Também carregar `expectation.must[]` e `expectation.mustNot[]` de `_meta.json`.
236
365
 
237
366
  #### 7.2 Prompt de Verificação
238
367
 
@@ -242,18 +371,24 @@ Se `{migration}/acceptance.md` existe, carregar os critérios.
242
371
  **Todas {N} tasks finalizadas.**
243
372
 
244
373
  **Sua expectativa era:**
245
- > {expectation}
374
+ > {expectation.summary}
246
375
 
247
- **Acceptance Criteria:**
376
+ ━━━ CRITÉRIOS POSITIVOS (DEVE) ━━━
248
377
  - [ ] AC-001: User can access dark mode toggle
249
378
  - [ ] AC-002: Toggle changes theme immediately
250
379
  - [ ] AC-003: Theme persists after refresh
251
- - [ ] AC-004: Theme persists across sessions
380
+
381
+ ━━━ CRITÉRIOS NEGATIVOS (NÃO DEVE) ━━━
382
+ - [ ] AC-N01: Nenhum arquivo criado em services/x/
383
+ - [ ] AC-N02: Nenhuma chamada a API externa
384
+ - [ ] AC-N03: Não usa localStorage
252
385
 
253
386
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
254
387
 
255
388
  Por favor verifique cada critério. Quais foram atendidos?
256
- (Digite: all, none, ou IDs específicos como "1,2,4")
389
+
390
+ **Positivos (DEVE):** all, none, ou IDs como "1,2"
391
+ **Negativos (NÃO DEVE):** all, none, ou IDs como "N1,N2"
257
392
  ```
258
393
 
259
394
  #### 7.3 Processar Resposta
package/dist/cli/index.js CHANGED
@@ -17,6 +17,7 @@ import { specify } from './specify.js';
17
17
  import { clarify } from './clarify.js';
18
18
  import { addTasks, completeTask } from './tasks.js';
19
19
  import { update } from './update.js';
20
+ import { checkForUpdates, showUpdateNotification, getInstalledVersion } from './version-check.js';
20
21
  const SEDD_DIR = '.sedd';
21
22
  function getFeatures(seddPath) {
22
23
  if (!existsSync(seddPath))
@@ -112,7 +113,14 @@ async function main() {
112
113
  program
113
114
  .name('sedd')
114
115
  .description('SEDD - Spec & Expectation Driven Development')
115
- .version('0.1.0');
116
+ .version(getInstalledVersion());
117
+ // Non-blocking version check before any command
118
+ program.hook('preAction', async () => {
119
+ const versionInfo = await checkForUpdates();
120
+ if (versionInfo?.needsUpdate) {
121
+ showUpdateNotification(versionInfo);
122
+ }
123
+ });
116
124
  program
117
125
  .command('init')
118
126
  .description('Initialize SEDD in current project')
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"AAOA,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4HvE"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"AAOA,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0HvE"}
@@ -19,7 +19,6 @@ export async function status(options = {}) {
19
19
  return;
20
20
  }
21
21
  let currentFeature = null;
22
- // Try to detect feature from current branch
23
22
  if (git.hasGit()) {
24
23
  const branch = git.getCurrentBranch();
25
24
  if (git.isFeatureBranch(branch)) {
@@ -29,7 +28,6 @@ export async function status(options = {}) {
29
28
  }
30
29
  }
31
30
  }
32
- // Fallback: get most recent feature
33
31
  if (!currentFeature) {
34
32
  const features = readdirSync(specsDir, { withFileTypes: true })
35
33
  .filter((d) => d.isDirectory() && /^\d{3}-/.test(d.name))
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/cli/status.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/cli/update.ts"],"names":[],"mappings":"AAWA,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAoSD,wBAAsB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4GvE"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/cli/update.ts"],"names":[],"mappings":"AAYA,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAsVD,wBAAsB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqIvE"}
@@ -2,20 +2,52 @@ import { existsSync, mkdirSync, copyFileSync, readdirSync, readFileSync, writeFi
2
2
  import { join, dirname } from 'node:path';
3
3
  import { fileURLToPath } from 'node:url';
4
4
  import chalk from 'chalk';
5
+ import { checkForUpdates, showUpdateNotification, getInstalledVersion } from './version-check.js';
5
6
  const __dirname = dirname(fileURLToPath(import.meta.url));
6
7
  const TEMPLATES_DIR = join(__dirname, '../../templates');
7
8
  const COMMANDS_DIR = join(__dirname, '../../commands');
8
9
  const HOOKS_DIR = join(__dirname, '../../hooks');
9
10
  const SCRIPTS_DIR = join(__dirname, '../../scripts');
10
- function getInstalledVersion() {
11
- try {
12
- const pkgPath = join(__dirname, '../../package.json');
13
- const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
14
- return pkg.version || 'unknown';
11
+ function countDirectoryFiles(dir) {
12
+ if (!existsSync(dir))
13
+ return 0;
14
+ let count = 0;
15
+ for (const item of readdirSync(dir, { withFileTypes: true })) {
16
+ if (item.isDirectory()) {
17
+ count += countDirectoryFiles(join(dir, item.name));
18
+ }
19
+ else {
20
+ count++;
21
+ }
15
22
  }
16
- catch {
17
- return 'unknown';
23
+ return count;
24
+ }
25
+ function copyDirectory(src, dest) {
26
+ if (!existsSync(src))
27
+ return 0;
28
+ mkdirSync(dest, { recursive: true });
29
+ let count = 0;
30
+ for (const item of readdirSync(src, { withFileTypes: true })) {
31
+ const srcPath = join(src, item.name);
32
+ const destPath = join(dest, item.name);
33
+ if (item.isDirectory()) {
34
+ count += copyDirectory(srcPath, destPath);
35
+ }
36
+ else {
37
+ copyFileSync(srcPath, destPath);
38
+ count++;
39
+ }
18
40
  }
41
+ return count;
42
+ }
43
+ function previewFileCounts() {
44
+ return {
45
+ templates: countDirectoryFiles(TEMPLATES_DIR),
46
+ commands: countDirectoryFiles(COMMANDS_DIR),
47
+ hooks: countDirectoryFiles(HOOKS_DIR),
48
+ scripts: countDirectoryFiles(SCRIPTS_DIR),
49
+ schema: existsSync(join(TEMPLATES_DIR, 'sedd.schema.json')),
50
+ };
19
51
  }
20
52
  function scanFeatures(seddDir) {
21
53
  const features = [];
@@ -88,45 +120,37 @@ function scanFeatures(seddDir) {
88
120
  function updateSeddFiles(cwd) {
89
121
  const seddDir = join(cwd, '.sedd');
90
122
  const claudeDir = join(cwd, '.claude');
91
- const seddTemplatesDir = join(seddDir, 'templates');
92
- const seddScriptsDir = join(seddDir, 'scripts');
93
- const commandsDestDir = join(claudeDir, 'commands');
94
- const hooksDestDir = join(claudeDir, 'hooks');
95
- if (!existsSync(seddTemplatesDir))
96
- mkdirSync(seddTemplatesDir, { recursive: true });
97
- if (!existsSync(commandsDestDir))
98
- mkdirSync(commandsDestDir, { recursive: true });
99
- if (!existsSync(hooksDestDir))
100
- mkdirSync(hooksDestDir, { recursive: true });
101
- if (existsSync(TEMPLATES_DIR)) {
102
- for (const file of readdirSync(TEMPLATES_DIR)) {
103
- copyFileSync(join(TEMPLATES_DIR, file), join(seddTemplatesDir, file));
104
- }
105
- }
106
- if (existsSync(COMMANDS_DIR)) {
107
- for (const file of readdirSync(COMMANDS_DIR)) {
108
- copyFileSync(join(COMMANDS_DIR, file), join(commandsDestDir, file));
109
- }
110
- }
111
- if (existsSync(HOOKS_DIR)) {
112
- for (const file of readdirSync(HOOKS_DIR)) {
113
- copyFileSync(join(HOOKS_DIR, file), join(hooksDestDir, file));
114
- }
115
- }
116
- if (existsSync(SCRIPTS_DIR)) {
117
- const isWindows = process.platform === 'win32';
118
- for (const folder of ['powershell', 'bash']) {
119
- const srcFolder = join(SCRIPTS_DIR, folder);
120
- const destFolder = join(seddScriptsDir, folder);
121
- if (existsSync(srcFolder)) {
122
- if (!existsSync(destFolder))
123
- mkdirSync(destFolder, { recursive: true });
124
- for (const file of readdirSync(srcFolder)) {
125
- copyFileSync(join(srcFolder, file), join(destFolder, file));
126
- }
127
- }
128
- }
123
+ console.log(chalk.cyan('\n📦 Atualizando arquivos SEDD...\n'));
124
+ // 1. Templates
125
+ const templatesCount = copyDirectory(TEMPLATES_DIR, join(seddDir, 'templates'));
126
+ console.log(chalk.green(` ✓ Templates: ${templatesCount} arquivos atualizados`));
127
+ // 2. Commands
128
+ const commandsCount = copyDirectory(COMMANDS_DIR, join(claudeDir, 'commands'));
129
+ console.log(chalk.green(` ✓ Commands: ${commandsCount} arquivos atualizados`));
130
+ // 3. Hooks
131
+ const hooksCount = copyDirectory(HOOKS_DIR, join(claudeDir, 'hooks'));
132
+ console.log(chalk.green(` ✓ Hooks: ${hooksCount} arquivos atualizados`));
133
+ // 4. Scripts (platform specific)
134
+ const scriptsDir = join(seddDir, 'scripts');
135
+ const bashCount = copyDirectory(join(SCRIPTS_DIR, 'bash'), join(scriptsDir, 'bash'));
136
+ const psCount = copyDirectory(join(SCRIPTS_DIR, 'powershell'), join(scriptsDir, 'powershell'));
137
+ console.log(chalk.green(` ✓ Scripts: ${bashCount + psCount} arquivos atualizados`));
138
+ // 5. Schema
139
+ const schemaPath = join(TEMPLATES_DIR, 'sedd.schema.json');
140
+ let schemaUpdated = false;
141
+ if (existsSync(schemaPath)) {
142
+ copyFileSync(schemaPath, join(seddDir, 'sedd.schema.json'));
143
+ console.log(chalk.green(' ✓ Schema atualizado'));
144
+ schemaUpdated = true;
129
145
  }
146
+ console.log(chalk.cyan('\n✅ Atualização concluída!\n'));
147
+ return {
148
+ templates: templatesCount,
149
+ commands: commandsCount,
150
+ hooks: hooksCount,
151
+ scripts: bashCount + psCount,
152
+ schema: schemaUpdated,
153
+ };
130
154
  }
131
155
  async function migrateFeature(feature) {
132
156
  const { default: inquirer } = await import('inquirer');
@@ -267,6 +291,37 @@ export async function update(options = {}) {
267
291
  }
268
292
  const version = getInstalledVersion();
269
293
  console.log(chalk.blue(`\n🔄 SEDD Update - v${version}\n`));
294
+ // Check for newer version on npm
295
+ const versionInfo = await checkForUpdates();
296
+ if (versionInfo?.needsUpdate) {
297
+ showUpdateNotification(versionInfo);
298
+ }
299
+ // Preview files that will be updated
300
+ const preview = previewFileCounts();
301
+ const totalFiles = preview.templates + preview.commands + preview.hooks + preview.scripts + (preview.schema ? 1 : 0);
302
+ console.log(chalk.white('Arquivos que serão substituídos:'));
303
+ console.log(chalk.gray(` .sedd/templates/ (${preview.templates} arquivos)`));
304
+ console.log(chalk.gray(` .sedd/scripts/ (${preview.scripts} arquivos)`));
305
+ console.log(chalk.gray(` .claude/commands/ (${preview.commands} arquivos)`));
306
+ console.log(chalk.gray(` .claude/hooks/ (${preview.hooks} arquivos)`));
307
+ if (preview.schema) {
308
+ console.log(chalk.gray(` .sedd/sedd.schema.json`));
309
+ }
310
+ console.log(chalk.gray(`\n Total: ${totalFiles} arquivos\n`));
311
+ // Confirmation prompt (unless --force)
312
+ if (!options.force) {
313
+ const { default: inquirer } = await import('inquirer');
314
+ const { confirm } = await inquirer.prompt([{
315
+ type: 'confirm',
316
+ name: 'confirm',
317
+ message: 'Continuar com a atualização?',
318
+ default: true,
319
+ }]);
320
+ if (!confirm) {
321
+ console.log(chalk.gray('\nAbortado.\n'));
322
+ return;
323
+ }
324
+ }
270
325
  console.log(chalk.gray('Escaneando projeto...\n'));
271
326
  const features = scanFeatures(seddDir);
272
327
  if (features.length === 0) {
@@ -330,14 +385,6 @@ export async function update(options = {}) {
330
385
  await migrateFeature(feature);
331
386
  }
332
387
  }
333
- console.log(chalk.blue('\n📦 Atualizando templates/commands/hooks/scripts...\n'));
334
388
  updateSeddFiles(cwd);
335
- const templatesCount = existsSync(TEMPLATES_DIR) ? readdirSync(TEMPLATES_DIR).length : 0;
336
- const commandsCount = existsSync(COMMANDS_DIR) ? readdirSync(COMMANDS_DIR).length : 0;
337
- const hooksCount = existsSync(HOOKS_DIR) ? readdirSync(HOOKS_DIR).length : 0;
338
- console.log(chalk.green('✓'), `Templates: ${templatesCount} arquivos`);
339
- console.log(chalk.green('✓'), `Commands: ${commandsCount} arquivos`);
340
- console.log(chalk.green('✓'), `Hooks: ${hooksCount} arquivos`);
341
- console.log(chalk.blue(`\n✨ SEDD atualizado para v${version}!\n`));
342
389
  }
343
390
  //# sourceMappingURL=update.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/cli/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/cli/update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export interface VersionInfo {
2
+ current: string;
3
+ latest: string;
4
+ needsUpdate: boolean;
5
+ }
6
+ export declare function checkForUpdates(): Promise<VersionInfo | null>;
7
+ export declare function showUpdateNotification(info: VersionInfo): void;
8
+ export declare function getInstalledVersion(): string;
9
+ //# sourceMappingURL=version-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../src/cli/version-check.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAkBnE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAc9D;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAQ5C"}
@@ -0,0 +1,48 @@
1
+ import { execSync } from 'node:child_process';
2
+ import { readFileSync } from 'node:fs';
3
+ import { join, dirname } from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+ import chalk from 'chalk';
6
+ const __dirname = dirname(fileURLToPath(import.meta.url));
7
+ export async function checkForUpdates() {
8
+ try {
9
+ const pkgPath = join(__dirname, '../../package.json');
10
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
11
+ const current = pkg.version;
12
+ const latest = execSync('npm view sedd version', {
13
+ encoding: 'utf8',
14
+ timeout: 5000,
15
+ stdio: ['pipe', 'pipe', 'pipe'],
16
+ }).trim();
17
+ const needsUpdate = current !== latest;
18
+ return { current, latest, needsUpdate };
19
+ }
20
+ catch {
21
+ return null;
22
+ }
23
+ }
24
+ export function showUpdateNotification(info) {
25
+ if (!info.needsUpdate)
26
+ return;
27
+ const currentPad = info.current.padEnd(6);
28
+ const latestPad = info.latest.padEnd(6);
29
+ console.log();
30
+ console.log(chalk.yellow('╭─────────────────────────────────────────────────────╮'));
31
+ console.log(chalk.yellow('│') + chalk.white(' 📦 Nova versão do SEDD disponível! ') + chalk.yellow('│'));
32
+ console.log(chalk.yellow('│') + chalk.gray(` Atual: ${currentPad} → Nova: ${latestPad}`) + ' ' + chalk.yellow('│'));
33
+ console.log(chalk.yellow('│') + chalk.cyan(' npm install -g sedd@latest') + ' ' + chalk.yellow('│'));
34
+ console.log(chalk.yellow('│') + chalk.gray(' Depois execute: sedd update') + ' ' + chalk.yellow('│'));
35
+ console.log(chalk.yellow('╰─────────────────────────────────────────────────────╯'));
36
+ console.log();
37
+ }
38
+ export function getInstalledVersion() {
39
+ try {
40
+ const pkgPath = join(__dirname, '../../package.json');
41
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
42
+ return pkg.version || 'unknown';
43
+ }
44
+ catch {
45
+ return 'unknown';
46
+ }
47
+ }
48
+ //# sourceMappingURL=version-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/cli/version-check.ts"],"names":[],"mappings":"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"}
package/hooks/README.md CHANGED
@@ -67,6 +67,10 @@ The hook detects keywords and **FORCES** skills into context:
67
67
 
68
68
  🎯 **EXPECTATIVA:** User can toggle dark mode and have it persist across sessions
69
69
 
70
+ ⛔ **NÃO DEVE:**
71
+ - ❌ Criar endpoint no serviço X
72
+ - ❌ Usar localStorage (usar banco)
73
+
70
74
  Pending tasks:
71
75
  - T004-001: Create ThemeContext
72
76
  - T004-002: Add toggle component
@@ -78,6 +82,22 @@ Pending tasks:
78
82
 
79
83
  O hook **sempre mostra a EXPECTATIVA** do `_meta.json` para lembrar a AI do objetivo final. Isso garante que todas as ações estejam alinhadas com o que o usuário espera.
80
84
 
85
+ ### Structured Expectations
86
+
87
+ O hook suporta expectativas estruturadas com `must` e `mustNot`:
88
+
89
+ ```json
90
+ {
91
+ "expectation": {
92
+ "summary": "User can toggle dark mode",
93
+ "must": ["Criar toggle", "Persistir no banco"],
94
+ "mustNot": ["Criar endpoint no serviço X", "Usar localStorage"]
95
+ }
96
+ }
97
+ ```
98
+
99
+ Quando `mustNot` está presente, o hook exibe as restrições em destaque para que a AI **nunca as viole**.
100
+
81
101
  ---
82
102
 
83
103
  ## post-tool-use.js
@@ -164,25 +164,50 @@ const getScoreEmoji = (score) => {
164
164
  return '🔴';
165
165
  };
166
166
 
167
+ const getExpectationSummary = (expectation) => {
168
+ if (!expectation) return null;
169
+ if (typeof expectation === 'string') return expectation;
170
+ return expectation.summary || null;
171
+ };
172
+
173
+ const getMustNotList = (expectation) => {
174
+ if (!expectation || typeof expectation === 'string') return [];
175
+ return expectation.mustNot || [];
176
+ };
177
+
167
178
  const buildSeddContext = (branch, currentMigration, completed, pending, featureExpectation, migrationExpectation) => {
168
- if (pending.length === 0 && !featureExpectation && !migrationExpectation) return null;
179
+ const featureSummary = getExpectationSummary(featureExpectation);
180
+ const migrationSummary = getExpectationSummary(migrationExpectation);
181
+ const mustNotList = getMustNotList(migrationExpectation) || getMustNotList(featureExpectation);
182
+
183
+ if (pending.length === 0 && !featureSummary && !migrationSummary) return null;
169
184
 
170
185
  const total = completed + pending.length;
171
186
  const migrationInfo = currentMigration ? ` | Migration: ${currentMigration}` : '';
172
187
 
173
188
  let expectationBlock = '';
174
- const activeExpectation = migrationExpectation || featureExpectation;
189
+ const activeExpectation = migrationSummary || featureSummary;
175
190
 
176
- if (featureExpectation && migrationExpectation && featureExpectation !== migrationExpectation) {
191
+ if (featureSummary && migrationSummary && featureSummary !== migrationSummary) {
177
192
  expectationBlock = `
178
- 🎯 **FEATURE:** ${featureExpectation}
179
- 📍 **MIGRATION ${currentMigration}:** ${migrationExpectation}
193
+ 🎯 **FEATURE:** ${featureSummary}
194
+ 📍 **MIGRATION ${currentMigration}:** ${migrationSummary}
180
195
  `;
181
196
  } else if (activeExpectation) {
182
- const prefix = migrationExpectation ? `📍 M${currentMigration}` : '🎯';
197
+ const prefix = migrationSummary ? `📍 M${currentMigration}` : '🎯';
183
198
  expectationBlock = `\n${prefix} **EXPECTATIVA:** ${activeExpectation}\n`;
184
199
  }
185
200
 
201
+ // Add mustNot block if restrictions exist
202
+ let mustNotBlock = '';
203
+ if (mustNotList.length > 0) {
204
+ const restrictions = mustNotList.map((item) => `- ❌ ${item}`).join('\n');
205
+ mustNotBlock = `
206
+ ⛔ **NÃO DEVE:**
207
+ ${restrictions}
208
+ `;
209
+ }
210
+
186
211
  let scoreBlock = '';
187
212
  if (activeExpectation && pending.length > 0) {
188
213
  const score = calculateAlignmentScore(activeExpectation, pending);
@@ -192,7 +217,7 @@ const buildSeddContext = (branch, currentMigration, completed, pending, featureE
192
217
 
193
218
  if (pending.length === 0) {
194
219
  return `<sedd-context>
195
- **Branch: ${branch}**${migrationInfo}${expectationBlock}
220
+ **Branch: ${branch}**${migrationInfo}${expectationBlock}${mustNotBlock}
196
221
  </sedd-context>`;
197
222
  }
198
223
 
@@ -205,7 +230,7 @@ const buildSeddContext = (branch, currentMigration, completed, pending, featureE
205
230
 
206
231
  return `<sedd-context>
207
232
  **Branch: ${branch}**${migrationInfo} | Progress: ${completed}/${total} tasks${scoreBlock}
208
- ${expectationBlock}
233
+ ${expectationBlock}${mustNotBlock}
209
234
  Pending tasks:
210
235
  ${tasksList}${moreText}
211
236
  </sedd-context>`;
@@ -232,19 +232,78 @@ function Find-FeatureDir {
232
232
  return $null
233
233
  }
234
234
 
235
+ function Get-ExpectationSummary {
236
+ param([object]$Expectation)
237
+
238
+ if (-not $Expectation) { return $null }
239
+ if ($Expectation -is [string]) { return $Expectation }
240
+ return $Expectation.summary
241
+ }
242
+
243
+ function Get-MustNotList {
244
+ param([object]$Expectation)
245
+
246
+ if (-not $Expectation -or $Expectation -is [string]) { return @() }
247
+ if ($Expectation.mustNot) { return $Expectation.mustNot } else { return @() }
248
+ }
249
+
235
250
  function Build-SeddContext {
236
251
  param(
237
252
  [string]$Branch,
238
253
  [string]$CurrentMigration,
239
254
  [int]$Completed,
240
- [array]$Pending
255
+ [array]$Pending,
256
+ [object]$FeatureExpectation,
257
+ [object]$MigrationExpectation
241
258
  )
242
259
 
243
- if ($Pending.Count -eq 0) { return $null }
260
+ $featureSummary = Get-ExpectationSummary -Expectation $FeatureExpectation
261
+ $migrationSummary = Get-ExpectationSummary -Expectation $MigrationExpectation
262
+ $mustNotList = Get-MustNotList -Expectation $MigrationExpectation
263
+ if ($mustNotList.Count -eq 0) {
264
+ $mustNotList = Get-MustNotList -Expectation $FeatureExpectation
265
+ }
266
+
267
+ if ($Pending.Count -eq 0 -and -not $featureSummary -and -not $migrationSummary) { return $null }
244
268
 
245
269
  $total = $Completed + $Pending.Count
246
270
  $migrationInfo = if ($CurrentMigration) { " | Migration: $CurrentMigration" } else { '' }
247
271
 
272
+ # Build expectation block
273
+ $expectationBlock = ''
274
+ $activeExpectation = if ($migrationSummary) { $migrationSummary } else { $featureSummary }
275
+
276
+ if ($featureSummary -and $migrationSummary -and $featureSummary -ne $migrationSummary) {
277
+ $expectationBlock = @"
278
+
279
+ 🎯 **FEATURE:** $featureSummary
280
+ 📍 **MIGRATION ${CurrentMigration}:** $migrationSummary
281
+ "@
282
+ }
283
+ elseif ($activeExpectation) {
284
+ $prefix = if ($migrationSummary) { "📍 M$CurrentMigration" } else { '🎯' }
285
+ $expectationBlock = "`n$prefix **EXPECTATIVA:** $activeExpectation`n"
286
+ }
287
+
288
+ # Build mustNot block
289
+ $mustNotBlock = ''
290
+ if ($mustNotList.Count -gt 0) {
291
+ $restrictions = ($mustNotList | ForEach-Object { "- ❌ $_" }) -join "`n"
292
+ $mustNotBlock = @"
293
+
294
+ ⛔ **NÃO DEVE:**
295
+ $restrictions
296
+ "@
297
+ }
298
+
299
+ if ($Pending.Count -eq 0) {
300
+ return @"
301
+ <sedd-context>
302
+ **Branch: $Branch**$migrationInfo$expectationBlock$mustNotBlock
303
+ </sedd-context>
304
+ "@
305
+ }
306
+
248
307
  $tasksList = ($Pending | Select-Object -First 5 | ForEach-Object {
249
308
  $text = if ($_.text.Length -gt 60) { $_.text.Substring(0, 60) + '...' } else { $_.text }
250
309
  "- $($_.id): $text"
@@ -255,11 +314,9 @@ function Build-SeddContext {
255
314
  return @"
256
315
  <sedd-context>
257
316
  **Branch: $Branch**$migrationInfo | Progress: $Completed/$total tasks
258
-
317
+ $expectationBlock$mustNotBlock
259
318
  Pending tasks:
260
319
  $tasksList$moreText
261
-
262
- Use ``/sedd.implement`` to execute tasks.
263
320
  </sedd-context>
264
321
  "@
265
322
  }
@@ -302,10 +359,18 @@ function Main {
302
359
  $pending = @()
303
360
  $completed = 0
304
361
  $currentMigration = $null
362
+ $featureExpectation = $null
363
+ $migrationExpectation = $null
305
364
 
306
365
  if (Test-Path $metaFile) {
307
366
  $metaData = Get-Content $metaFile -Raw | ConvertFrom-Json
308
367
  $currentMigration = $metaData.currentMigration
368
+ $featureExpectation = $metaData.expectation
369
+
370
+ if ($currentMigration -and $metaData.migrations.$currentMigration.expectation) {
371
+ $migrationExpectation = $metaData.migrations.$currentMigration.expectation
372
+ }
373
+
309
374
  $result = Get-TasksFromMigrations -FeatureDir $featureDir -MetaData $metaData
310
375
  $pending = $result.pending
311
376
  $completed = $result.completed
@@ -316,7 +381,7 @@ function Main {
316
381
  $completed = $result.completed
317
382
  }
318
383
 
319
- $context = Build-SeddContext -Branch $branch -CurrentMigration $currentMigration -Completed $completed -Pending $pending
384
+ $context = Build-SeddContext -Branch $branch -CurrentMigration $currentMigration -Completed $completed -Pending $pending -FeatureExpectation $featureExpectation -MigrationExpectation $migrationExpectation
320
385
  if ($context) { $parts += $context }
321
386
  }
322
387
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sedd",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "SEDD - Spec & Expectation Driven Development. A phase-based specification workflow for AI-assisted development.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -36,7 +36,7 @@
36
36
  ],
37
37
  "author": "Kelvin R.C",
38
38
  "license": "MIT",
39
- "homepage": "https://github.com/goldensrazer/sedd#readme",
39
+ "homepage": "https://goldensrazer.github.io/sedd/",
40
40
  "bugs": {
41
41
  "url": "https://github.com/goldensrazer/sedd/issues"
42
42
  },
@@ -6,13 +6,23 @@
6
6
 
7
7
  ## Expectativa
8
8
 
9
- > {{EXPECTATION}}
9
+ > {{EXPECTATION_SUMMARY}}
10
+
11
+ ### DEVE fazer:
12
+ {{#each MUST}}
13
+ - {{this}}
14
+ {{/each}}
15
+
16
+ ### NÃO DEVE fazer:
17
+ {{#each MUST_NOT}}
18
+ - ❌ {{this}}
19
+ {{/each}}
10
20
 
11
21
  ---
12
22
 
13
23
  ## Checklist de Aceite
14
24
 
15
- ### Critérios Funcionais
25
+ ### Critérios Funcionais (DEVE)
16
26
 
17
27
  - [ ] **AC-001:** {{criterion_1}}
18
28
  - Verificar: {{verification_steps}}
@@ -32,6 +42,33 @@
32
42
 
33
43
  ---
34
44
 
45
+ ## Critérios Negativos (NÃO DEVE)
46
+
47
+ > Estes critérios verificam que restrições foram respeitadas.
48
+ > Falha em qualquer um indica violação da expectativa.
49
+
50
+ {{#each MUST_NOT}}
51
+ - [ ] **AC-N{{@index}}:** Verificar que NÃO: {{this}}
52
+ - Buscar: arquivos/código que violem esta restrição
53
+ - Se encontrado: ❌ VIOLAÇÃO
54
+ {{/each}}
55
+
56
+ ### Validação Automática Sugerida
57
+
58
+ ```bash
59
+ # Comandos para verificar restrições (ajustar conforme mustNot)
60
+ # Exemplo: Verificar se criou arquivos em services/x/
61
+ find services/x -type f -newer .sedd/timestamp_marker
62
+
63
+ # Exemplo: Verificar uso de localStorage
64
+ grep -r "localStorage" src/
65
+
66
+ # Exemplo: Verificar chamadas a API externa
67
+ grep -rE "(axios|fetch)\s*\(" src/
68
+ ```
69
+
70
+ ---
71
+
35
72
  ## Comandos de Verificação
36
73
 
37
74
  ```bash