@dynamicworks/br-openspec 2.0.1 → 2.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 +11 -2
- package/README.pt-BR.md +11 -2
- package/dist/commands/config.js +4 -0
- package/dist/commands/schema.js +21 -21
- package/dist/core/completions/installers/zsh-installer.d.ts +0 -8
- package/dist/core/completions/installers/zsh-installer.js +3 -31
- package/dist/core/config.js +3 -2
- package/dist/core/global-config.d.ts +6 -1
- package/dist/core/global-config.js +15 -16
- package/dist/core/parsers/requirement-blocks.js +5 -5
- package/dist/core/parsers/spec-structure.js +1 -1
- package/dist/core/profile-sync-drift.js +1 -0
- package/dist/core/profiles.d.ts +2 -2
- package/dist/core/profiles.js +2 -1
- package/dist/core/shared/skill-generation.js +3 -1
- package/dist/core/shared/tool-detection.d.ts +2 -2
- package/dist/core/shared/tool-detection.js +2 -0
- package/dist/core/specs-apply.js +1 -1
- package/dist/core/templates/skill-templates.d.ts +1 -1
- package/dist/core/templates/skill-templates.js +1 -1
- package/dist/core/templates/workflows/code-review.d.ts +10 -0
- package/dist/core/templates/workflows/code-review.js +21 -0
- package/dist/core/templates/workflows/sync-specs.js +2 -2
- package/dist/core/tools-manager.js +1 -0
- package/dist/core/update.d.ts +6 -0
- package/dist/core/update.js +21 -0
- package/dist/core/validation/validator.js +2 -2
- package/dist/messages/index.d.ts +34 -2
- package/dist/messages/index.js +182 -12
- package/package.json +1 -1
- package/schemas/spec-driven/schema.yaml +78 -78
- package/schemas/spec-driven/templates/design.md +5 -5
- package/schemas/spec-driven/templates/proposal.md +9 -9
- package/schemas/spec-driven/templates/spec.md +5 -5
- package/schemas/spec-driven/templates/tasks.md +6 -6
- package/dist/core/templates/workflows/upstream-sync.d.ts +0 -10
- package/dist/core/templates/workflows/upstream-sync.js +0 -116
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
## Context
|
|
2
2
|
|
|
3
|
-
<!--
|
|
3
|
+
<!-- Contexto e estado atual -->
|
|
4
4
|
|
|
5
5
|
## Goals / Non-Goals
|
|
6
6
|
|
|
7
7
|
**Goals:**
|
|
8
|
-
<!--
|
|
8
|
+
<!-- O que este design pretende alcançar -->
|
|
9
9
|
|
|
10
10
|
**Non-Goals:**
|
|
11
|
-
<!--
|
|
11
|
+
<!-- O que está explicitamente fora de escopo -->
|
|
12
12
|
|
|
13
13
|
## Decisions
|
|
14
14
|
|
|
15
|
-
<!--
|
|
15
|
+
<!-- Principais decisões de design e suas justificativas -->
|
|
16
16
|
|
|
17
17
|
## Risks / Trade-offs
|
|
18
18
|
|
|
19
|
-
<!--
|
|
19
|
+
<!-- Riscos e trade-offs conhecidos -->
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
## Why
|
|
2
2
|
|
|
3
|
-
<!--
|
|
3
|
+
<!-- Explique a motivação desta mudança. Qual problema ela resolve? Por que agora? -->
|
|
4
4
|
|
|
5
5
|
## What Changes
|
|
6
6
|
|
|
7
|
-
<!--
|
|
7
|
+
<!-- Descreva o que vai mudar. Seja específico sobre novas capacidades, modificações ou remoções. -->
|
|
8
8
|
|
|
9
9
|
## Capabilities
|
|
10
10
|
|
|
11
11
|
### New Capabilities
|
|
12
|
-
<!--
|
|
13
|
-
- `<name>`: <
|
|
12
|
+
<!-- Capacidades sendo introduzidas. Substitua <name> por um identificador kebab-case (ex.: user-auth, data-export, api-rate-limiting). Cada uma cria specs/<name>/spec.md -->
|
|
13
|
+
- `<name>`: <descrição breve do que esta capacidade abrange>
|
|
14
14
|
|
|
15
15
|
### Modified Capabilities
|
|
16
|
-
<!--
|
|
17
|
-
|
|
18
|
-
Use
|
|
19
|
-
- `<existing-name>`: <
|
|
16
|
+
<!-- Capacidades existentes cujos REQUIREMENTS estão mudando (não apenas a implementação).
|
|
17
|
+
Liste aqui somente se o comportamento em nível de spec mudar. Cada uma precisa de um arquivo de spec delta.
|
|
18
|
+
Use nomes de spec existentes de openspec/specs/. Deixe vazio se nenhum requisito mudar. -->
|
|
19
|
+
- `<existing-name>`: <qual requisito está mudando>
|
|
20
20
|
|
|
21
21
|
## Impact
|
|
22
22
|
|
|
23
|
-
<!--
|
|
23
|
+
<!-- Código, APIs, dependências e sistemas afetados -->
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
## ADDED Requirements
|
|
2
2
|
|
|
3
|
-
### Requirement: <!--
|
|
4
|
-
<!--
|
|
3
|
+
### Requirement: <!-- nome do requisito -->
|
|
4
|
+
<!-- texto do requisito -->
|
|
5
5
|
|
|
6
|
-
#### Scenario: <!--
|
|
7
|
-
- **WHEN** <!--
|
|
8
|
-
- **THEN** <!--
|
|
6
|
+
#### Scenario: <!-- nome do cenário -->
|
|
7
|
+
- **WHEN** <!-- condição -->
|
|
8
|
+
- **THEN** <!-- resultado esperado -->
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
## 1. <!--
|
|
1
|
+
## 1. <!-- Nome do Grupo de Tarefas -->
|
|
2
2
|
|
|
3
|
-
- [ ] 1.1 <!--
|
|
4
|
-
- [ ] 1.2 <!--
|
|
3
|
+
- [ ] 1.1 <!-- Descrição da tarefa -->
|
|
4
|
+
- [ ] 1.2 <!-- Descrição da tarefa -->
|
|
5
5
|
|
|
6
|
-
## 2. <!--
|
|
6
|
+
## 2. <!-- Nome do Grupo de Tarefas -->
|
|
7
7
|
|
|
8
|
-
- [ ] 2.1 <!--
|
|
9
|
-
- [ ] 2.2 <!--
|
|
8
|
+
- [ ] 2.1 <!-- Descrição da tarefa -->
|
|
9
|
+
- [ ] 2.2 <!-- Descrição da tarefa -->
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Upstream Sync Workflow Template
|
|
3
|
-
*
|
|
4
|
-
* Guides the process of syncing the BR-OpenSpec fork with the upstream
|
|
5
|
-
* OpenSpec repository, translating new content to Brazilian Portuguese.
|
|
6
|
-
*/
|
|
7
|
-
import type { SkillTemplate, CommandTemplate } from '../types.js';
|
|
8
|
-
export declare function getUpstreamSyncSkillTemplate(): SkillTemplate;
|
|
9
|
-
export declare function getOpsxUpstreamSyncCommandTemplate(): CommandTemplate;
|
|
10
|
-
//# sourceMappingURL=upstream-sync.d.ts.map
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Upstream Sync Workflow Template
|
|
3
|
-
*
|
|
4
|
-
* Guides the process of syncing the BR-OpenSpec fork with the upstream
|
|
5
|
-
* OpenSpec repository, translating new content to Brazilian Portuguese.
|
|
6
|
-
*/
|
|
7
|
-
export function getUpstreamSyncSkillTemplate() {
|
|
8
|
-
return {
|
|
9
|
-
name: 'openspec-upstream-sync',
|
|
10
|
-
description: 'Sincroniza o BR-OpenSpec com o upstream, traduz novas mensagens e atualiza a documentação em português brasileiro. Use quando houver atualizações no repositório original que precisem ser incorporadas ao fork.',
|
|
11
|
-
instructions: `Sincronize o BR-OpenSpec com o repositório upstream e traduza o conteúdo novo para português brasileiro.
|
|
12
|
-
|
|
13
|
-
**Entrada**: O usuário indica que há atualizações no upstream ou pede para sincronizar.
|
|
14
|
-
|
|
15
|
-
**Pré-requisitos**
|
|
16
|
-
- O remote upstream deve estar configurado:
|
|
17
|
-
\`git remote add upstream https://github.com/<upstream-owner>/<upstream-repo>.git\` (se ainda não estiver)
|
|
18
|
-
|
|
19
|
-
**Passos**
|
|
20
|
-
|
|
21
|
-
1. **Verifique o estado atual**
|
|
22
|
-
\`\`\`bash
|
|
23
|
-
git fetch upstream
|
|
24
|
-
git log --oneline HEAD..upstream/main --no-merges | head -20
|
|
25
|
-
\`\`\`
|
|
26
|
-
Isso mostra os commits que serão incorporados.
|
|
27
|
-
|
|
28
|
-
2. **Crie uma branch para o sync**
|
|
29
|
-
\`\`\`bash
|
|
30
|
-
git checkout -b sync/upstream-$(date +%Y%m%d)
|
|
31
|
-
\`\`\`
|
|
32
|
-
|
|
33
|
-
3. **Faça o merge do upstream**
|
|
34
|
-
\`\`\`bash
|
|
35
|
-
git merge upstream/main --no-edit
|
|
36
|
-
\`\`\`
|
|
37
|
-
- Se houver conflitos em \`src/messages/index.ts\`, resolva mantendo as mensagens em português brasileiro e incorporando as novas chaves em inglês.
|
|
38
|
-
- Para outros arquivos, resolva normalmente preservando as adaptações do BR-OpenSpec.
|
|
39
|
-
|
|
40
|
-
4. **Identifique novas strings de usuário**
|
|
41
|
-
Após o merge, encontre strings hardcoded em inglês que ainda não estão no catálogo:
|
|
42
|
-
\`\`\`bash
|
|
43
|
-
git diff upstream/main..HEAD --name-only | grep "^src/"
|
|
44
|
-
\`\`\`
|
|
45
|
-
Busque por novas ocorrências de \`console.log\`, \`console.error\`, \`console.warn\`, \`.description(\`, \`message:\` em arquivos modificados.
|
|
46
|
-
|
|
47
|
-
5. **Atualize o catálogo de mensagens**
|
|
48
|
-
- Adicione novas chaves em \`src/messages/index.ts\` na seção apropriada
|
|
49
|
-
- Traduza os valores para português brasileiro
|
|
50
|
-
- Mantenha a organização por domínio (CLI_DESCRIPTIONS, CLI_MESSAGES, CHANGE_MESSAGES, etc.)
|
|
51
|
-
- Se uma seção nova for necessária, crie-a com o padrão existente
|
|
52
|
-
|
|
53
|
-
6. **Substitua strings hardcoded nos arquivos fonte**
|
|
54
|
-
- Substitua cada string em inglês recém-adicionada pela referência ao catálogo
|
|
55
|
-
- Adicione o import necessário de \`../messages/index.js\` (ou caminho relativo apropriado)
|
|
56
|
-
- NÃO traduza: nomes de variáveis, comentários de código, identificadores técnicos, nomes de comandos CLI
|
|
57
|
-
|
|
58
|
-
7. **Atualize menções ao nome do projeto**
|
|
59
|
-
- Novos textos podem referenciar "OpenSpec" em vez de "BR-OpenSpec"
|
|
60
|
-
- Substitua referências ao nome do projeto em mensagens de usuário: \`s/\\bOpenSpec\\b/BR-OpenSpec/g\`
|
|
61
|
-
- NÃO altere: \`openspec\` (comando), \`openspec-\` (prefixos), \`OPENSPEC_\` (constantes), URLs
|
|
62
|
-
|
|
63
|
-
8. **Sincronize a documentação traduzida**
|
|
64
|
-
Compare os arquivos de documentação em inglês com seus correspondentes em pt-BR:
|
|
65
|
-
- \`README.md\` ↔ \`README.pt-BR.md\`
|
|
66
|
-
- \`docs/*.md\` ↔ \`docs/pt-BR/*.md\`
|
|
67
|
-
|
|
68
|
-
Para cada arquivo modificado pelo upstream:
|
|
69
|
-
- Aplique as mesmas mudanças estruturais nos correspondentes pt-BR
|
|
70
|
-
- Traduza novos trechos adicionados pelo upstream
|
|
71
|
-
- **PRESERVE adições pontuais do fork** (ex: justificativa da criação do fork, referências específicas ao BR-OpenSpec, links para recursos em pt-BR)
|
|
72
|
-
- Substitua "OpenSpec" por "BR-OpenSpec" quando o texto se referir ao projeto que o usuário está usando
|
|
73
|
-
- Mantenha nomes técnicos inalterados: \`openspec\`, \`.openspec.yaml\`, \`openspec/\`, skills \`openspec-*\`
|
|
74
|
-
|
|
75
|
-
9. **Atualize os testes**
|
|
76
|
-
- Rode \`pnpm test\` para identificar testes que quebraram devido às traduções
|
|
77
|
-
- Atualize as expectativas de strings de \`test/\` para refletir as mensagens em português
|
|
78
|
-
- NÃO altere a lógica dos testes — apenas as strings de comparação
|
|
79
|
-
|
|
80
|
-
10. **Valide o build**
|
|
81
|
-
\`\`\`bash
|
|
82
|
-
pnpm run build
|
|
83
|
-
pnpm exec tsc --noEmit
|
|
84
|
-
pnpm lint
|
|
85
|
-
\`\`\`
|
|
86
|
-
|
|
87
|
-
11. **Resumo do sync**
|
|
88
|
-
Informe ao usuário:
|
|
89
|
-
- Quais commits foram incorporados
|
|
90
|
-
- Quais arquivos foram modificados
|
|
91
|
-
- Quantas novas mensagens foram traduzidas
|
|
92
|
-
- Quais arquivos de documentação foram sincronizados
|
|
93
|
-
- Se há testes ainda falhando (e por quê)
|
|
94
|
-
|
|
95
|
-
**IMPORTANTE**: NUNCA traduza código técnico (nomes de variáveis, funções, constantes) ou comentários de documentação de API. Apenas mensagens exibidas ao usuário final.
|
|
96
|
-
`,
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
export function getOpsxUpstreamSyncCommandTemplate() {
|
|
100
|
-
return {
|
|
101
|
-
name: 'upstream-sync',
|
|
102
|
-
description: 'Sincroniza com upstream e traduz novidades',
|
|
103
|
-
category: 'maintenance',
|
|
104
|
-
tags: ['sync', 'upstream', 'i18n'],
|
|
105
|
-
content: `Sincronize o BR-OpenSpec com o upstream.
|
|
106
|
-
|
|
107
|
-
1. Verifique atualizações: \`git fetch upstream && git log --oneline HEAD..upstream/main | head -10\`
|
|
108
|
-
2. Se houver commits, crie branch e faça merge
|
|
109
|
-
3. Identifique e traduza novas strings de usuário
|
|
110
|
-
4. Atualize o catálogo em \`src/messages/index.ts\`
|
|
111
|
-
5. Sincronize a documentação em pt-BR preservando adições do fork
|
|
112
|
-
6. Valide: \`pnpm run build && pnpm test\`
|
|
113
|
-
7. Resuma as mudanças para o usuário`,
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
//# sourceMappingURL=upstream-sync.js.map
|