@dynamicworks/br-openspec 2.0.0 → 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/artifact-graph/instruction-loader.js +4 -4
- package/dist/core/artifact-graph/schema.js +5 -4
- package/dist/core/completions/factory.js +3 -2
- package/dist/core/completions/installers/fish-installer.js +13 -12
- package/dist/core/completions/installers/powershell-installer.js +16 -17
- package/dist/core/completions/installers/zsh-installer.d.ts +0 -8
- package/dist/core/completions/installers/zsh-installer.js +4 -32
- 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/change-parser.js +7 -6
- 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/project-config.js +12 -13
- 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 +38 -39
- 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 +3 -2
- 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 +145 -2
- package/dist/messages/index.js +320 -12
- package/dist/utils/change-metadata.js +8 -7
- package/dist/utils/change-utils.js +12 -11
- 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
|
@@ -4,61 +4,61 @@ description: Fluxo de trabalho BR-OpenSpec padrão - proposta → specs → desi
|
|
|
4
4
|
artifacts:
|
|
5
5
|
- id: proposal
|
|
6
6
|
generates: proposal.md
|
|
7
|
-
description:
|
|
7
|
+
description: Documento de proposta inicial que descreve a mudança
|
|
8
8
|
template: proposal.md
|
|
9
9
|
instruction: |
|
|
10
|
-
|
|
10
|
+
Crie o documento de proposta que estabelece o WHY (por que) esta mudança é necessária.
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
- **Why**: 1-2
|
|
14
|
-
- **What Changes**:
|
|
15
|
-
- **Capabilities**:
|
|
16
|
-
- **New Capabilities**:
|
|
17
|
-
- **Modified Capabilities**:
|
|
18
|
-
- **Impact**:
|
|
12
|
+
Seções:
|
|
13
|
+
- **Why**: 1-2 frases sobre o problema ou oportunidade. Qual problema isso resolve? Por que agora?
|
|
14
|
+
- **What Changes**: Lista de marcadores das mudanças. Seja específico sobre novas capabilities, modificações ou remoções. Marque mudanças incompatíveis com **BREAKING**.
|
|
15
|
+
- **Capabilities**: Identifique quais specs serão criadas ou modificadas:
|
|
16
|
+
- **New Capabilities**: Liste as capabilities sendo introduzidas. Cada uma vira um novo `specs/<name>/spec.md`. Use nomes em kebab-case (ex.: `user-auth`, `data-export`).
|
|
17
|
+
- **Modified Capabilities**: Liste as capabilities existentes cujos REQUIREMENTS estão mudando. Inclua apenas se o comportamento no nível da spec mudar (não apenas detalhes de implementação). Cada uma precisa de um arquivo de spec delta. Verifique `openspec/specs/` para os nomes de spec existentes. Deixe vazio se não houver mudança de requirement.
|
|
18
|
+
- **Impact**: Código, APIs, dependências ou sistemas afetados.
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
IMPORTANTE: A seção Capabilities é crítica. Ela cria o contrato entre
|
|
21
|
+
as fases de proposta e specs. Pesquise as specs existentes antes de preenchê-la.
|
|
22
|
+
Cada capability listada aqui precisará de um arquivo de spec correspondente.
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
Mantenha conciso (1-2 páginas). Foque no "porquê", não no "como" -
|
|
25
|
+
detalhes de implementação pertencem ao design.md.
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
Esta é a fundação - specs, design e tarefas se baseiam nela.
|
|
28
28
|
requires: []
|
|
29
29
|
|
|
30
30
|
- id: specs
|
|
31
31
|
generates: "specs/**/*.md"
|
|
32
|
-
description:
|
|
32
|
+
description: Especificações detalhadas da mudança
|
|
33
33
|
template: spec.md
|
|
34
34
|
instruction: |
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
- **ADDED Requirements**:
|
|
43
|
-
- **MODIFIED Requirements**:
|
|
44
|
-
- **REMOVED Requirements**:
|
|
45
|
-
- **RENAMED Requirements**:
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
-
|
|
49
|
-
- Use SHALL/MUST
|
|
50
|
-
-
|
|
51
|
-
- **CRITICAL**:
|
|
52
|
-
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
1.
|
|
56
|
-
2.
|
|
57
|
-
3.
|
|
58
|
-
4.
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
35
|
+
Crie arquivos de especificação que definam o WHAT (o que) o sistema deve fazer.
|
|
36
|
+
|
|
37
|
+
Crie um arquivo de spec por capability listada na seção Capabilities da proposta.
|
|
38
|
+
- Novas capabilities: use o nome exato em kebab-case da proposta (specs/<capability>/spec.md).
|
|
39
|
+
- Capabilities modificadas: use o nome da pasta de spec existente em openspec/specs/<capability>/ ao criar a spec delta em specs/<capability>/spec.md.
|
|
40
|
+
|
|
41
|
+
Operações de delta (use cabeçalhos ##):
|
|
42
|
+
- **ADDED Requirements**: Novas capabilities
|
|
43
|
+
- **MODIFIED Requirements**: Comportamento alterado - MUST incluir o conteúdo atualizado completo
|
|
44
|
+
- **REMOVED Requirements**: Recursos descontinuados - MUST incluir **Reason** e **Migration**
|
|
45
|
+
- **RENAMED Requirements**: Apenas mudanças de nome - use o formato FROM:/TO:
|
|
46
|
+
|
|
47
|
+
Requisitos de formato:
|
|
48
|
+
- Cada requirement: `### Requirement: <name>` seguido de descrição
|
|
49
|
+
- Use SHALL/MUST para requisitos normativos (evite should/may)
|
|
50
|
+
- Cada cenário: `#### Scenario: <name>` no formato WHEN/THEN
|
|
51
|
+
- **CRITICAL**: Os cenários MUST usar exatamente 4 cerquilhas (`####`). Usar 3 cerquilhas ou marcadores falha silenciosamente.
|
|
52
|
+
- Todo requirement MUST ter pelo menos um cenário.
|
|
53
|
+
|
|
54
|
+
Fluxo de trabalho de requirements MODIFIED:
|
|
55
|
+
1. Localize o requirement existente em openspec/specs/<capability>/spec.md
|
|
56
|
+
2. Copie o bloco INTEIRO do requirement (de `### Requirement:` até todos os cenários)
|
|
57
|
+
3. Cole sob `## MODIFIED Requirements` e edite para refletir o novo comportamento
|
|
58
|
+
4. Garanta que o texto do cabeçalho corresponda exatamente (ignorando espaços em branco)
|
|
59
|
+
|
|
60
|
+
Armadilha comum: Usar MODIFIED com conteúdo parcial perde detalhe no momento do arquivamento.
|
|
61
|
+
Se estiver adicionando novas preocupações sem alterar o comportamento existente, use ADDED.
|
|
62
62
|
|
|
63
63
|
Example:
|
|
64
64
|
```
|
|
@@ -78,53 +78,53 @@ artifacts:
|
|
|
78
78
|
**Migration**: Use new export endpoint at /api/v2/export
|
|
79
79
|
```
|
|
80
80
|
|
|
81
|
-
|
|
81
|
+
As specs devem ser testáveis - cada cenário é um possível caso de teste.
|
|
82
82
|
requires:
|
|
83
83
|
- proposal
|
|
84
84
|
|
|
85
85
|
- id: design
|
|
86
86
|
generates: design.md
|
|
87
|
-
description:
|
|
87
|
+
description: Documento de design técnico com detalhes de implementação
|
|
88
88
|
template: design.md
|
|
89
89
|
instruction: |
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
-
|
|
94
|
-
-
|
|
95
|
-
-
|
|
96
|
-
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
- **Context**:
|
|
100
|
-
- **Goals / Non-Goals**:
|
|
101
|
-
- **Decisions**:
|
|
102
|
-
- **Risks / Trade-offs**:
|
|
103
|
-
- **Migration Plan**:
|
|
104
|
-
- **Open Questions**:
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
90
|
+
Crie o documento de design que explica o HOW (como) implementar a mudança.
|
|
91
|
+
|
|
92
|
+
Quando incluir design.md (crie apenas se algum se aplicar):
|
|
93
|
+
- Mudança transversal (múltiplos serviços/módulos) ou novo padrão arquitetural
|
|
94
|
+
- Nova dependência externa ou mudanças significativas no modelo de dados
|
|
95
|
+
- Complexidade de segurança, desempenho ou migração
|
|
96
|
+
- Ambiguidade que se beneficia de decisões técnicas antes de codificar
|
|
97
|
+
|
|
98
|
+
Seções:
|
|
99
|
+
- **Context**: Histórico, estado atual, restrições, partes interessadas
|
|
100
|
+
- **Goals / Non-Goals**: O que este design alcança e o que explicitamente exclui
|
|
101
|
+
- **Decisions**: Principais escolhas técnicas com justificativa (por que X em vez de Y?). Inclua as alternativas consideradas para cada decisão.
|
|
102
|
+
- **Risks / Trade-offs**: Limitações conhecidas, coisas que podem dar errado. Formato: [Risco] → Mitigação
|
|
103
|
+
- **Migration Plan**: Passos para implantar, estratégia de rollback (se aplicável)
|
|
104
|
+
- **Open Questions**: Decisões pendentes ou incógnitas a resolver
|
|
105
|
+
|
|
106
|
+
Foque na arquitetura e na abordagem, não na implementação linha a linha.
|
|
107
|
+
Referencie a proposta para a motivação e as specs para os requirements.
|
|
108
|
+
|
|
109
|
+
Bons documentos de design explicam o "porquê" por trás das decisões técnicas.
|
|
110
110
|
requires:
|
|
111
111
|
- proposal
|
|
112
112
|
|
|
113
113
|
- id: tasks
|
|
114
114
|
generates: tasks.md
|
|
115
|
-
description:
|
|
115
|
+
description: Checklist de implementação com tarefas rastreáveis
|
|
116
116
|
template: tasks.md
|
|
117
117
|
instruction: |
|
|
118
|
-
|
|
118
|
+
Crie a lista de tarefas que detalha o trabalho de implementação.
|
|
119
119
|
|
|
120
|
-
**
|
|
121
|
-
checkbox
|
|
120
|
+
**IMPORTANTE: Siga o template abaixo exatamente.** A fase de apply faz o parse
|
|
121
|
+
do formato de checkbox para acompanhar o progresso. Tarefas que não usam `- [ ]` não serão rastreadas.
|
|
122
122
|
|
|
123
|
-
|
|
124
|
-
-
|
|
125
|
-
-
|
|
126
|
-
-
|
|
127
|
-
-
|
|
123
|
+
Diretrizes:
|
|
124
|
+
- Agrupe tarefas relacionadas sob cabeçalhos numerados ##
|
|
125
|
+
- Cada tarefa MUST ser um checkbox: `- [ ] X.Y Descrição da tarefa`
|
|
126
|
+
- As tarefas devem ser pequenas o suficiente para serem concluídas em uma sessão
|
|
127
|
+
- Ordene as tarefas por dependência (o que precisa ser feito primeiro?)
|
|
128
128
|
|
|
129
129
|
Example:
|
|
130
130
|
```
|
|
@@ -139,8 +139,8 @@ artifacts:
|
|
|
139
139
|
- [ ] 2.2 Add CSV formatting utilities
|
|
140
140
|
```
|
|
141
141
|
|
|
142
|
-
|
|
143
|
-
|
|
142
|
+
Referencie as specs para o que precisa ser construído e o design para como construir.
|
|
143
|
+
Cada tarefa deve ser verificável - você sabe quando ela está concluída.
|
|
144
144
|
requires:
|
|
145
145
|
- specs
|
|
146
146
|
- design
|
|
@@ -149,5 +149,5 @@ apply:
|
|
|
149
149
|
requires: [tasks]
|
|
150
150
|
tracks: tasks.md
|
|
151
151
|
instruction: |
|
|
152
|
-
|
|
153
|
-
Pause
|
|
152
|
+
Leia os arquivos de contexto, execute as tarefas pendentes e marque como concluídas conforme avança.
|
|
153
|
+
Pause se encontrar bloqueios ou precisar de esclarecimentos.
|
|
@@ -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
|