sedd 0.1.4 → 0.1.6

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
 
@@ -137,6 +168,7 @@ Criar migration de follow-up? [Y/n]
137
168
  | `sedd specify <id> <name>` | Criar nova feature spec |
138
169
  | `sedd clarify` | Criar migration com decisões |
139
170
  | `sedd status` | Ver status atual |
171
+ | `sedd update` | Atualizar templates e migrar features existentes |
140
172
 
141
173
  ## Slash Commands (AI)
142
174
 
@@ -146,6 +178,7 @@ Criar migration de follow-up? [Y/n]
146
178
  | `/sedd.clarify` | Clarificar e gerar tasks com score |
147
179
  | `/sedd.implement` | Executar tasks com checkpoints |
148
180
  | `/sedd.implement --all` | Executar tudo sem parar |
181
+ | `/sedd.dashboard` | Ver status atual de migrations e tasks |
149
182
 
150
183
  ---
151
184
 
@@ -154,22 +187,34 @@ Criar migration de follow-up? [Y/n]
154
187
  ```
155
188
  .sedd/001-user-auth/
156
189
  ├── spec.md # Especificação + Expectativa
157
- ├── _meta.json # Metadados + expectation field
190
+ ├── _meta.json # Metadados + expectation estruturada
158
191
 
159
192
  ├── 001_timestamp/ # Migration 1
160
- │ ├── clarify.md # Discussão
193
+ │ ├── clarify.md # Discussão + DEVE/NÃO DEVE
161
194
  │ ├── decisions.md # Decisões
162
195
  │ ├── tasks.md # Tasks T001-XXX
163
- │ └── acceptance.md # Critérios de aceite
196
+ │ └── acceptance.md # Critérios positivos e negativos
164
197
 
165
- └── 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
+ }
166
211
  ```
167
212
 
168
213
  ---
169
214
 
170
215
  ## Hooks Inteligentes
171
216
 
172
- O hook `check-roadmap.js` sempre mostra:
217
+ O hook `check-roadmap.js` sempre mostra expectativas E restrições:
173
218
 
174
219
  ```xml
175
220
  <sedd-context>
@@ -178,6 +223,10 @@ Branch: 024-feature | Migration: 001 | Progress: 3/10 🟢 ~85%
178
223
  🎯 FEATURE: User can customize theme
179
224
  📍 MIGRATION 001: Toggle dark mode with persistence
180
225
 
226
+ ⛔ NÃO DEVE:
227
+ - ❌ Criar endpoint no serviço X
228
+ - ❌ Usar localStorage
229
+
181
230
  Pending tasks:
182
231
  - T001-004: Add to settings page
183
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
@@ -16,6 +16,8 @@ import { migrate } from './migrate.js';
16
16
  import { specify } from './specify.js';
17
17
  import { clarify } from './clarify.js';
18
18
  import { addTasks, completeTask } from './tasks.js';
19
+ import { update } from './update.js';
20
+ import { checkForUpdates, showUpdateNotification, getInstalledVersion } from './version-check.js';
19
21
  const SEDD_DIR = '.sedd';
20
22
  function getFeatures(seddPath) {
21
23
  if (!existsSync(seddPath))
@@ -101,6 +103,7 @@ function showWelcome() {
101
103
  ${chalk.cyan('sedd specify <id> <name>')} Create new feature spec
102
104
  ${chalk.cyan('sedd clarify')} Create clarify/tasks/decisions
103
105
  ${chalk.cyan('sedd status')} Show project status
106
+ ${chalk.cyan('sedd update')} Update templates/commands/hooks
104
107
  ${chalk.cyan('sedd --help')} Show all commands
105
108
  `);
106
109
  }
@@ -110,7 +113,14 @@ async function main() {
110
113
  program
111
114
  .name('sedd')
112
115
  .description('SEDD - Spec & Expectation Driven Development')
113
- .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
+ });
114
124
  program
115
125
  .command('init')
116
126
  .description('Initialize SEDD in current project')
@@ -161,6 +171,12 @@ async function main() {
161
171
  .description('Mark a task as completed')
162
172
  .argument('<task-id>', 'Task ID (e.g., "T001-001")')
163
173
  .action(completeTask);
174
+ program
175
+ .command('update')
176
+ .description('Update SEDD templates, commands, hooks and scripts')
177
+ .option('-f, --force', 'Skip confirmation prompt')
178
+ .option('-b, --backup', 'Create backup before updating')
179
+ .action(update);
164
180
  // No arguments - show welcome
165
181
  if (args.length === 0) {
166
182
  showWelcome();
@@ -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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"}