@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.
Files changed (46) hide show
  1. package/README.md +11 -2
  2. package/README.pt-BR.md +11 -2
  3. package/dist/commands/config.js +4 -0
  4. package/dist/commands/schema.js +21 -21
  5. package/dist/core/artifact-graph/instruction-loader.js +4 -4
  6. package/dist/core/artifact-graph/schema.js +5 -4
  7. package/dist/core/completions/factory.js +3 -2
  8. package/dist/core/completions/installers/fish-installer.js +13 -12
  9. package/dist/core/completions/installers/powershell-installer.js +16 -17
  10. package/dist/core/completions/installers/zsh-installer.d.ts +0 -8
  11. package/dist/core/completions/installers/zsh-installer.js +4 -32
  12. package/dist/core/config.js +3 -2
  13. package/dist/core/global-config.d.ts +6 -1
  14. package/dist/core/global-config.js +15 -16
  15. package/dist/core/parsers/change-parser.js +7 -6
  16. package/dist/core/parsers/requirement-blocks.js +5 -5
  17. package/dist/core/parsers/spec-structure.js +1 -1
  18. package/dist/core/profile-sync-drift.js +1 -0
  19. package/dist/core/profiles.d.ts +2 -2
  20. package/dist/core/profiles.js +2 -1
  21. package/dist/core/project-config.js +12 -13
  22. package/dist/core/shared/skill-generation.js +3 -1
  23. package/dist/core/shared/tool-detection.d.ts +2 -2
  24. package/dist/core/shared/tool-detection.js +2 -0
  25. package/dist/core/specs-apply.js +38 -39
  26. package/dist/core/templates/skill-templates.d.ts +1 -1
  27. package/dist/core/templates/skill-templates.js +1 -1
  28. package/dist/core/templates/workflows/code-review.d.ts +10 -0
  29. package/dist/core/templates/workflows/code-review.js +21 -0
  30. package/dist/core/templates/workflows/sync-specs.js +2 -2
  31. package/dist/core/tools-manager.js +3 -2
  32. package/dist/core/update.d.ts +6 -0
  33. package/dist/core/update.js +21 -0
  34. package/dist/core/validation/validator.js +2 -2
  35. package/dist/messages/index.d.ts +145 -2
  36. package/dist/messages/index.js +320 -12
  37. package/dist/utils/change-metadata.js +8 -7
  38. package/dist/utils/change-utils.js +12 -11
  39. package/package.json +1 -1
  40. package/schemas/spec-driven/schema.yaml +78 -78
  41. package/schemas/spec-driven/templates/design.md +5 -5
  42. package/schemas/spec-driven/templates/proposal.md +9 -9
  43. package/schemas/spec-driven/templates/spec.md +5 -5
  44. package/schemas/spec-driven/templates/tasks.md +6 -6
  45. package/dist/core/templates/workflows/upstream-sync.d.ts +0 -10
  46. 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: Initial proposal document outlining the change
7
+ description: Documento de proposta inicial que descreve a mudança
8
8
  template: proposal.md
9
9
  instruction: |
10
- Create the proposal document that establishes WHY this change is needed.
10
+ Crie o documento de proposta que estabelece o WHY (por que) esta mudança é necessária.
11
11
 
12
- Sections:
13
- - **Why**: 1-2 sentences on the problem or opportunity. What problem does this solve? Why now?
14
- - **What Changes**: Bullet list of changes. Be specific about new capabilities, modifications, or removals. Mark breaking changes with **BREAKING**.
15
- - **Capabilities**: Identify which specs will be created or modified:
16
- - **New Capabilities**: List capabilities being introduced. Each becomes a new `specs/<name>/spec.md`. Use kebab-case names (e.g., `user-auth`, `data-export`).
17
- - **Modified Capabilities**: List existing capabilities whose REQUIREMENTS are changing. Only include if spec-level behavior changes (not just implementation details). Each needs a delta spec file. Check `openspec/specs/` for existing spec names. Leave empty if no requirement changes.
18
- - **Impact**: Affected code, APIs, dependencies, or systems.
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
- IMPORTANT: The Capabilities section is critical. It creates the contract between
21
- proposal and specs phases. Research existing specs before filling this in.
22
- Each capability listed here will need a corresponding spec file.
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
- Keep it concise (1-2 pages). Focus on the "why" not the "how" -
25
- implementation details belong in design.md.
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
- This is the foundation - specs, design, and tasks all build on this.
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: Detailed specifications for the change
32
+ description: Especificações detalhadas da mudança
33
33
  template: spec.md
34
34
  instruction: |
35
- Create specification files that define WHAT the system should do.
36
-
37
- Create one spec file per capability listed in the proposal's Capabilities section.
38
- - New capabilities: use the exact kebab-case name from the proposal (specs/<capability>/spec.md).
39
- - Modified capabilities: use the existing spec folder name from openspec/specs/<capability>/ when creating the delta spec at specs/<capability>/spec.md.
40
-
41
- Delta operations (use ## headers):
42
- - **ADDED Requirements**: New capabilities
43
- - **MODIFIED Requirements**: Changed behavior - MUST include full updated content
44
- - **REMOVED Requirements**: Deprecated features - MUST include **Reason** and **Migration**
45
- - **RENAMED Requirements**: Name changes only - use FROM:/TO: format
46
-
47
- Format requirements:
48
- - Each requirement: `### Requirement: <name>` followed by description
49
- - Use SHALL/MUST for normative requirements (avoid should/may)
50
- - Each scenario: `#### Scenario: <name>` with WHEN/THEN format
51
- - **CRITICAL**: Scenarios MUST use exactly 4 hashtags (`####`). Using 3 hashtags or bullets will fail silently.
52
- - Every requirement MUST have at least one scenario.
53
-
54
- MODIFIED requirements workflow:
55
- 1. Locate the existing requirement in openspec/specs/<capability>/spec.md
56
- 2. Copy the ENTIRE requirement block (from `### Requirement:` through all scenarios)
57
- 3. Paste under `## MODIFIED Requirements` and edit to reflect new behavior
58
- 4. Ensure header text matches exactly (whitespace-insensitive)
59
-
60
- Common pitfall: Using MODIFIED with partial content loses detail at archive time.
61
- If adding new concerns without changing existing behavior, use ADDED instead.
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
- Specs should be testable - each scenario is a potential test case.
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: Technical design document with implementation details
87
+ description: Documento de design técnico com detalhes de implementação
88
88
  template: design.md
89
89
  instruction: |
90
- Create the design document that explains HOW to implement the change.
91
-
92
- When to include design.md (create only if any apply):
93
- - Cross-cutting change (multiple services/modules) or new architectural pattern
94
- - New external dependency or significant data model changes
95
- - Security, performance, or migration complexity
96
- - Ambiguity that benefits from technical decisions before coding
97
-
98
- Sections:
99
- - **Context**: Background, current state, constraints, stakeholders
100
- - **Goals / Non-Goals**: What this design achieves and explicitly excludes
101
- - **Decisions**: Key technical choices with rationale (why X over Y?). Include alternatives considered for each decision.
102
- - **Risks / Trade-offs**: Known limitations, things that could go wrong. Format: [Risk] → Mitigation
103
- - **Migration Plan**: Steps to deploy, rollback strategy (if applicable)
104
- - **Open Questions**: Outstanding decisions or unknowns to resolve
105
-
106
- Focus on architecture and approach, not line-by-line implementation.
107
- Reference the proposal for motivation and specs for requirements.
108
-
109
- Good design docs explain the "why" behind technical decisions.
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: Implementation checklist with trackable tasks
115
+ description: Checklist de implementação com tarefas rastreáveis
116
116
  template: tasks.md
117
117
  instruction: |
118
- Create the task list that breaks down the implementation work.
118
+ Crie a lista de tarefas que detalha o trabalho de implementação.
119
119
 
120
- **IMPORTANT: Follow the template below exactly.** The apply phase parses
121
- checkbox format to track progress. Tasks not using `- [ ]` won't be tracked.
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
- Guidelines:
124
- - Group related tasks under ## numbered headings
125
- - Each task MUST be a checkbox: `- [ ] X.Y Task description`
126
- - Tasks should be small enough to complete in one session
127
- - Order tasks by dependency (what must be done first?)
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
- Reference specs for what needs to be built, design for how to build it.
143
- Each task should be verifiable - you know when it's done.
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
- Read context files, work through pending tasks, mark complete as you go.
153
- Pause if you hit blockers or need clarification.
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
- <!-- Background and current state -->
3
+ <!-- Contexto e estado atual -->
4
4
 
5
5
  ## Goals / Non-Goals
6
6
 
7
7
  **Goals:**
8
- <!-- What this design aims to achieve -->
8
+ <!-- O que este design pretende alcançar -->
9
9
 
10
10
  **Non-Goals:**
11
- <!-- What is explicitly out of scope -->
11
+ <!-- O que está explicitamente fora de escopo -->
12
12
 
13
13
  ## Decisions
14
14
 
15
- <!-- Key design decisions and rationale -->
15
+ <!-- Principais decisões de design e suas justificativas -->
16
16
 
17
17
  ## Risks / Trade-offs
18
18
 
19
- <!-- Known risks and trade-offs -->
19
+ <!-- Riscos e trade-offs conhecidos -->
@@ -1,23 +1,23 @@
1
1
  ## Why
2
2
 
3
- <!-- Explain the motivation for this change. What problem does this solve? Why now? -->
3
+ <!-- Explique a motivação desta mudança. Qual problema ela resolve? Por que agora? -->
4
4
 
5
5
  ## What Changes
6
6
 
7
- <!-- Describe what will change. Be specific about new capabilities, modifications, or removals. -->
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
- <!-- Capabilities being introduced. Replace <name> with kebab-case identifier (e.g., user-auth, data-export, api-rate-limiting). Each creates specs/<name>/spec.md -->
13
- - `<name>`: <brief description of what this capability covers>
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
- <!-- Existing capabilities whose REQUIREMENTS are changing (not just implementation).
17
- Only list here if spec-level behavior changes. Each needs a delta spec file.
18
- Use existing spec names from openspec/specs/. Leave empty if no requirement changes. -->
19
- - `<existing-name>`: <what requirement is changing>
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
- <!-- Affected code, APIs, dependencies, systems -->
23
+ <!-- Código, APIs, dependências e sistemas afetados -->
@@ -1,8 +1,8 @@
1
1
  ## ADDED Requirements
2
2
 
3
- ### Requirement: <!-- requirement name -->
4
- <!-- requirement text -->
3
+ ### Requirement: <!-- nome do requisito -->
4
+ <!-- texto do requisito -->
5
5
 
6
- #### Scenario: <!-- scenario name -->
7
- - **WHEN** <!-- condition -->
8
- - **THEN** <!-- expected outcome -->
6
+ #### Scenario: <!-- nome do cenário -->
7
+ - **WHEN** <!-- condição -->
8
+ - **THEN** <!-- resultado esperado -->
@@ -1,9 +1,9 @@
1
- ## 1. <!-- Task Group Name -->
1
+ ## 1. <!-- Nome do Grupo de Tarefas -->
2
2
 
3
- - [ ] 1.1 <!-- Task description -->
4
- - [ ] 1.2 <!-- Task description -->
3
+ - [ ] 1.1 <!-- Descrição da tarefa -->
4
+ - [ ] 1.2 <!-- Descrição da tarefa -->
5
5
 
6
- ## 2. <!-- Task Group Name -->
6
+ ## 2. <!-- Nome do Grupo de Tarefas -->
7
7
 
8
- - [ ] 2.1 <!-- Task description -->
9
- - [ ] 2.2 <!-- Task description -->
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