spec-first-claude 0.8.0-beta.2 → 0.8.0-beta.3
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/package.json
CHANGED
|
@@ -8,6 +8,34 @@
|
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
+
## 0.8.0-beta.3 (2026-05-11) — Working directory blindado
|
|
12
|
+
|
|
13
|
+
Esclarecimento crítico em brownfield (e em qualquer cenário com múltiplos
|
|
14
|
+
repos em `projetos/`): o cwd do agente **nunca muda** — é sempre a raiz SFW.
|
|
15
|
+
Repos clonados são alvo de trabalho, não ambiente de trabalho. Evita conflito
|
|
16
|
+
entre regras SFW e regras do time do repo legado (`CLAUDE.md`, `.cursorrules`,
|
|
17
|
+
`AGENTS.md` etc. internos ao repo).
|
|
18
|
+
|
|
19
|
+
### Adicionado
|
|
20
|
+
|
|
21
|
+
- **Regra inviolável #7** em `rules.md`: "Working directory é a raiz SFW"
|
|
22
|
+
- **Seção "Working Directory — raiz SFW é a casa do agente"** em `rules.md`:
|
|
23
|
+
tabela do que faz/não faz, fronteira clara entre operacional/descritivo/histórico
|
|
24
|
+
- **Bloco "Working Directory"** no topo de `CLAUDE.md` (Claude kit) e
|
|
25
|
+
`copilot-instructions.md` (Copilot kit) — antes de qualquer outra seção
|
|
26
|
+
- **Aviso reforçado no Passo 3 do `/sfw-onboard`** (logo após clone):
|
|
27
|
+
usar `git -C projetos/<repo>` em vez de `cd`; não carregar arquivos de
|
|
28
|
+
instrução internos do repo legado (`CLAUDE.md`, `.cursorrules`, `AGENTS.md`)
|
|
29
|
+
|
|
30
|
+
### Por quê
|
|
31
|
+
|
|
32
|
+
Repo legado pode ter próprio `CLAUDE.md` ou `copilot-instructions.md` que
|
|
33
|
+
conflita com SFW. Sem regra explícita, agente pode confundir "padrões
|
|
34
|
+
observados" (descritivos, TRD §1.6) com "regras invioláveis" (prescritivas,
|
|
35
|
+
`rules.md`). Resultado: bagunça. Fronteira agora é explícita.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
11
39
|
## 0.8.0-beta.2 (2026-05-11) — Auth check pré-clone
|
|
12
40
|
|
|
13
41
|
`/sfw-onboard` agora verifica autenticação git **antes** de tentar clonar,
|
|
@@ -150,6 +150,17 @@ git pull --ff-only
|
|
|
150
150
|
|
|
151
151
|
Capturar `commit_hash` resultante (`git rev-parse HEAD`) — vai pro snapshot.
|
|
152
152
|
|
|
153
|
+
> ⚠️ **Working directory NÃO muda**. O agente continua operando da raiz SFW.
|
|
154
|
+
> Use `git -C projetos/<repo-name> <comando>` em vez de `cd`. Comandos que
|
|
155
|
+
> precisam executar dentro do repo (linters, tree, etc.) usam path explícito
|
|
156
|
+
> ou flag `-C` equivalente.
|
|
157
|
+
>
|
|
158
|
+
> **NÃO carregar** `CLAUDE.md`, `.github/copilot-instructions.md`, `.cursorrules`,
|
|
159
|
+
> `AGENTS.md` ou qualquer arquivo de instrução que exista DENTRO de
|
|
160
|
+
> `projetos/<repo-name>/` — esses pertencem ao time do repo legado e não fazem
|
|
161
|
+
> parte do contrato SFW. Padrões relevantes serão extraídos pelo Patterns Reader
|
|
162
|
+
> e documentados em TRD §1.6.
|
|
163
|
+
|
|
153
164
|
### 4. Criar `.context.md`
|
|
154
165
|
|
|
155
166
|
```yaml
|
|
@@ -32,6 +32,43 @@ As regras abaixo são o padrão do framework. O time pode:
|
|
|
32
32
|
4. **Sem invenção**: Se `specs/` não especifica, o coder NÃO assume — para e reporta
|
|
33
33
|
5. **Entregáveis contínuos**: Toda feature é faseada em entregáveis incrementais. Cada fase entrega valor ao usuário e pode ir para produção independentemente. Nunca "tudo ou nada" — sempre "pequeno e constante"
|
|
34
34
|
6. **Nunca na main**: Todo código é desenvolvido em branch própria. Merge apenas via PR aprovado pelo usuário
|
|
35
|
+
7. **Working directory é a raiz SFW**: O agente opera SEMPRE a partir da raiz do projeto SFW (onde estão `.claude/`, `docs/`, `specs/`, `workspace/`, `projetos.yaml`). Repos em `projetos/<repo>/` são **alvo de trabalho**, NUNCA **ambiente de trabalho** (ver seção abaixo)
|
|
36
|
+
|
|
37
|
+
## Working Directory — raiz SFW é a casa do agente
|
|
38
|
+
|
|
39
|
+
> **Regra crítica em projetos com `/sfw-onboard` ou múltiplos repos**: o cwd
|
|
40
|
+
> da IA não muda. Tudo é referenciado a partir da raiz SFW.
|
|
41
|
+
|
|
42
|
+
### O que o agente FAZ
|
|
43
|
+
|
|
44
|
+
- ✅ Trabalha com cwd = raiz SFW (onde rodou `init`)
|
|
45
|
+
- ✅ Lê código com caminho relativo: `projetos/api/src/Controllers/UserController.cs`
|
|
46
|
+
- ✅ Escreve código com caminho relativo: idem
|
|
47
|
+
- ✅ Roda git **dentro** do repo target via `git -C projetos/api <comando>` (não com `cd`)
|
|
48
|
+
- ✅ Consulta `rules.md`, `docs/`, `specs/`, `.claude/` SEMPRE da raiz SFW
|
|
49
|
+
- ✅ Em brownfield: consulta TRD §1.6 Padrões Observados (na raiz SFW) antes de implementar
|
|
50
|
+
|
|
51
|
+
### O que o agente NÃO FAZ
|
|
52
|
+
|
|
53
|
+
- ❌ NÃO troca cwd pra `projetos/<repo>/` (nem implícita nem explicitamente)
|
|
54
|
+
- ❌ NÃO lê `CLAUDE.md` que exista DENTRO do repo legado em `projetos/<repo>/` (esse é do time do repo, não nosso)
|
|
55
|
+
- ❌ NÃO lê `.github/copilot-instructions.md` DENTRO do repo legado (idem)
|
|
56
|
+
- ❌ NÃO segue convenções/regras documentadas em `projetos/<repo>/.cursor/`, `projetos/<repo>/.github/`, `projetos/<repo>/AGENTS.md` ou similares
|
|
57
|
+
- ❌ NÃO carrega `.env`, `.cursorrules` ou config files do repo legado como "regras vivas"
|
|
58
|
+
|
|
59
|
+
### Por quê
|
|
60
|
+
|
|
61
|
+
- Repo legado pode ter próprio `CLAUDE.md` / `.github/copilot-instructions.md` que **conflita** com SFW
|
|
62
|
+
- "Padrões observados" (TRD §1.6, descritivos) ≠ "regras invioláveis" (este arquivo, prescritivas) — se misturar, vira bagunça
|
|
63
|
+
- A "verdade operacional" do agente é sempre a raiz SFW; código nos `projetos/` é objeto de leitura/escrita
|
|
64
|
+
|
|
65
|
+
### Fronteira clara
|
|
66
|
+
|
|
67
|
+
| Camada | Localização | Quem manda |
|
|
68
|
+
|--------|-------------|------------|
|
|
69
|
+
| Operacional (como o agente trabalha) | Raiz SFW: `.claude/`, `rules.md`, `docs/`, `specs/` | **SFW** |
|
|
70
|
+
| Descritiva (como o código existe) | `projetos/<repo>/` + TRD §1.6 (na raiz SFW) | Refletida no TRD pelo `/sfw-onboard` |
|
|
71
|
+
| Histórica do repo legado | `projetos/<repo>/README.md`, `CHANGELOG.md`, ADRs internos | Contexto opcional, não regra |
|
|
35
72
|
|
|
36
73
|
## Convenções de Código
|
|
37
74
|
|
package/templates/CLAUDE.md
CHANGED
|
@@ -49,6 +49,31 @@ Se algum command não for encontrado → avisar o usuário.
|
|
|
49
49
|
|
|
50
50
|
---
|
|
51
51
|
|
|
52
|
+
## Working Directory — onde o agente trabalha
|
|
53
|
+
|
|
54
|
+
> ⚠️ **Crítico** — não mude isso.
|
|
55
|
+
|
|
56
|
+
O cwd do agente é a **raiz deste projeto SFW** (onde estão `.claude/`, `docs/`,
|
|
57
|
+
`specs/`, `workspace/`, `projetos.yaml`). Repos clonados em `projetos/<repo>/`
|
|
58
|
+
são **alvo de trabalho**, NUNCA **ambiente de trabalho**.
|
|
59
|
+
|
|
60
|
+
| Faz | NÃO faz |
|
|
61
|
+
|-----|---------|
|
|
62
|
+
| Lê/escreve código via path relativo: `projetos/api/src/...` | Troca cwd pra `projetos/<repo>/` |
|
|
63
|
+
| Roda git: `git -C projetos/api <comando>` | Lê `CLAUDE.md` que exista DENTRO de `projetos/<repo>/` |
|
|
64
|
+
| Lê regras de `rules.md` da raiz SFW | Lê `.github/copilot-instructions.md` do repo legado |
|
|
65
|
+
| Lê padrões do TRD §1.6 (na raiz SFW) | Carrega `.cursor/`, `AGENTS.md`, `.cursorrules` do repo legado |
|
|
66
|
+
|
|
67
|
+
**Por quê**: repos legados (`/sfw-onboard`) podem ter próprias regras/convenções
|
|
68
|
+
que conflitam com SFW. A verdade operacional é sempre a raiz SFW — código nos
|
|
69
|
+
`projetos/` é objeto de leitura/escrita, não fonte de regras vivas. Padrões do
|
|
70
|
+
repo legado, quando relevantes, foram **descritos** no TRD §1.6 pelo `/sfw-onboard`.
|
|
71
|
+
|
|
72
|
+
Detalhamento completo em `.claude/rules.md` (Regra Inviolável #7 + seção
|
|
73
|
+
"Working Directory").
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
52
77
|
## Identidade do Projeto
|
|
53
78
|
|
|
54
79
|
Este é um projeto que utiliza desenvolvimento **spec-first** assistido por IA.
|