oxe-cc 0.3.5 → 0.3.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/.cursor/commands/oxe-help.md +3 -9
- package/.cursor/commands/oxe-next.md +3 -9
- package/.cursor/commands/oxe-plan.md +5 -12
- package/.cursor/commands/oxe-review-pr.md +5 -12
- package/.cursor/commands/oxe-scan.md +5 -12
- package/.cursor/commands/oxe-spec.md +5 -12
- package/.cursor/commands/oxe-update.md +9 -0
- package/.cursor/commands/oxe-verify.md +5 -12
- package/.github/copilot-instructions.md +7 -5
- package/.github/prompts/oxe-help.prompt.md +1 -1
- package/.github/prompts/oxe-update.prompt.md +11 -0
- package/.github/workflows/ci.yml +20 -18
- package/AGENTS.md +5 -5
- package/README.md +167 -32
- package/assets/oxe-ciclo-por-trilha.png +0 -0
- package/bin/banner.txt +1 -1
- package/bin/lib/oxe-agent-install.cjs +87 -36
- package/bin/lib/oxe-npm-version.cjs +64 -0
- package/bin/lib/oxe-project-health.cjs +29 -1
- package/bin/oxe-cc.js +689 -121
- package/lib/sdk/index.cjs +1 -0
- package/oxe/templates/CONFIG.md +12 -0
- package/oxe/templates/DOCS_BROWNFIELD_LAYOUT.md +55 -0
- package/oxe/templates/SPEC.template.md +18 -0
- package/oxe/templates/WORKFLOW_AUTHORING.md +2 -0
- package/oxe/workflows/execute.md +1 -0
- package/oxe/workflows/help.md +13 -7
- package/oxe/workflows/plan.md +4 -0
- package/oxe/workflows/references/legacy-brownfield.md +136 -0
- package/oxe/workflows/scan.md +5 -3
- package/oxe/workflows/spec.md +2 -0
- package/oxe/workflows/update.md +33 -0
- package/oxe/workflows/verify.md +1 -0
- package/package.json +15 -4
package/lib/sdk/index.cjs
CHANGED
|
@@ -197,6 +197,7 @@ module.exports = {
|
|
|
197
197
|
phaseCoherenceWarnings: health.phaseCoherenceWarnings,
|
|
198
198
|
specSectionWarnings: health.specSectionWarnings,
|
|
199
199
|
planWaveWarningsFixed: health.planWaveWarningsFixed,
|
|
200
|
+
planTaskAceiteWarnings: health.planTaskAceiteWarnings,
|
|
200
201
|
verifyGapsWithoutSummaryWarning: health.verifyGapsWithoutSummaryWarning,
|
|
201
202
|
ALLOWED_CONFIG_KEYS: health.ALLOWED_CONFIG_KEYS,
|
|
202
203
|
INSTALL_PROFILES: health.INSTALL_PROFILES,
|
package/oxe/templates/CONFIG.md
CHANGED
|
@@ -29,4 +29,16 @@ Use `npx oxe-cc --no-install-config` para ignorar este bloco numa instalação.
|
|
|
29
29
|
|
|
30
30
|
Chaves desconhecidas são listadas como aviso no `doctor` / `status`. Valores em falta usam o mesmo significado que no template (omissões seguras).
|
|
31
31
|
|
|
32
|
+
### Exemplo: repositório legado (COBOL / JCL / copybooks / VB6 / SQL)
|
|
33
|
+
|
|
34
|
+
Para **scan** e **spec** orientarem o agente sem assumir Node/Java, use `scan_focus_globs` / `scan_ignore_globs` alinhados ao layout real (nomes `cpy` vs `copy` variam). Opcionalmente reforce secções da SPEC com `spec_required_sections`, por exemplo:
|
|
35
|
+
|
|
36
|
+
- `"## Contratos de dados"`
|
|
37
|
+
- `"## Fluxos batch"`
|
|
38
|
+
- `"## Integrações desktop-DB"`
|
|
39
|
+
|
|
40
|
+
Guia completo de análise e verificação nestes repos: [`oxe/workflows/references/legacy-brownfield.md`](../workflows/references/legacy-brownfield.md) (no pacote npm; após `npx oxe-cc`, cópia em `.oxe/workflows/references/`).
|
|
41
|
+
|
|
42
|
+
**Layout opcional da pasta `docs/`** (índice por intenção, técnico/negócio, glossário, comparativos): [`DOCS_BROWNFIELD_LAYOUT.md`](DOCS_BROWNFIELD_LAYOUT.md).
|
|
43
|
+
|
|
32
44
|
**Autoria de workflows:** ver [`WORKFLOW_AUTHORING.md`](WORKFLOW_AUTHORING.md) (mantenedores).
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Layout sugerido — pasta `docs/` em repositórios brownfield
|
|
2
|
+
|
|
3
|
+
> Template opcional (não faz parte do núcleo OXE em `.oxe/`). Copie ou adapte à raiz de `docs/` quando documentar sistemas legado (mainframe + cliente + integrações). Referência cruzada: `oxe/workflows/references/legacy-brownfield.md`.
|
|
4
|
+
|
|
5
|
+
## Objetivo
|
|
6
|
+
|
|
7
|
+
- Um **índice por intenção do leitor** (executivo, técnico, negócio, migração).
|
|
8
|
+
- **Pares** técnico / negocial quando compliance ou PO precisam do mesmo fluxo em linguagens diferentes.
|
|
9
|
+
- **Glossário e referência cruzada** separados de narrativa longa.
|
|
10
|
+
- **Comparativos** explícitos para modernização (host vs baixa plataforma).
|
|
11
|
+
|
|
12
|
+
## Estrutura de pastas (exemplo)
|
|
13
|
+
|
|
14
|
+
| Caminho sugerido | Conteúdo |
|
|
15
|
+
|------------------|----------|
|
|
16
|
+
| `docs/README.md` | Como navegar; ligação ao índice geral. |
|
|
17
|
+
| `docs/INDICE-GERAL.md` | Tabela **Objetivo → documento** (visão curta, wiki, fluxo X, glossário, VB6, etc.). |
|
|
18
|
+
| `docs/<wiki|enciclopedia>/` | Documentação enciclopédica por camadas ou domínio (prefixos `00-`, `05-` opcionais). |
|
|
19
|
+
| `docs/tecnico/` | Aprofundamento por tema (pipelines, jobs, tabelas). |
|
|
20
|
+
| `docs/negocio/` | Pares dos documentos em `tecnico/` em linguagem de negócio. |
|
|
21
|
+
| `docs/glossary/` | Glossário, dicionário de dados, matrizes de dependência, códigos de erro. |
|
|
22
|
+
| `docs/baixa-plataforma/` ou `docs/desktop-client/` | Cliente legado (ex. VB6), SPs, integração com host, roadmap. |
|
|
23
|
+
| `docs/<tema>/comparativo-detalhado/` | Tabelas **mainframe × cliente** por área funcional. |
|
|
24
|
+
| `docs/<fluxo>/USn/` | Histórias de utilizador, anexos Mermaid, scripts de apoio (opcional). |
|
|
25
|
+
|
|
26
|
+
Ajuste nomes ao produto; o importante é **papéis claros** e links relativos entre pares.
|
|
27
|
+
|
|
28
|
+
## Taxonomia de plataforma (recomendado no texto)
|
|
29
|
+
|
|
30
|
+
| Termo | Uso |
|
|
31
|
+
|-------|-----|
|
|
32
|
+
| **Alta plataforma** / host | Mainframe, JCL, COBOL, DB2 z/OS, schedulers. |
|
|
33
|
+
| **Baixa plataforma** | Servidores distribuídos, middle-office, transferência de ficheiros, gateways. |
|
|
34
|
+
| **Externo** | Reguladores, câmaras, mercado (ex. câmaras de clearing, bolsas). |
|
|
35
|
+
|
|
36
|
+
Incluir esta secção em documentos de arquitetura ou em `INTEGRATIONS.md` do scan OXE quando aplicável.
|
|
37
|
+
|
|
38
|
+
## Frontmatter YAML (opcional)
|
|
39
|
+
|
|
40
|
+
```yaml
|
|
41
|
+
---
|
|
42
|
+
titulo: "Título curto"
|
|
43
|
+
tipo: tecnico | negocio | indice | comparativo
|
|
44
|
+
area: nome-do-dominio
|
|
45
|
+
tags: [tag1, tag2]
|
|
46
|
+
ultima_revisao: "YYYY-MM"
|
|
47
|
+
---
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Não é validado pelo `oxe-cc doctor`; serve para convenção humana e futuras ferramentas.
|
|
51
|
+
|
|
52
|
+
## Ligação ao OXE
|
|
53
|
+
|
|
54
|
+
- O **scan** deve, se existir `docs/` com `INDICE-GERAL.md` ou `README.md`, resumir esta estrutura em `.oxe/codebase/OVERVIEW.md` e `STRUCTURE.md` com link ao índice.
|
|
55
|
+
- **SPEC/PLAN** de migração podem exigir entregáveis sob `docs/tecnico/` e `docs/negocio/` via critérios **A*** .
|
|
@@ -41,3 +41,21 @@ Use **IDs estáveis** (A1, A2, …) para o plano e o verify vincularem cada tare
|
|
|
41
41
|
## Referências no código
|
|
42
42
|
|
|
43
43
|
- Caminhos / módulos: …
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Secções opcionais — brownfield / migração legado
|
|
48
|
+
|
|
49
|
+
> Use quando o projeto for mainframe + desktop legado ou documentação de migração. Podem ser exigidas pelo `doctor` via `spec_required_sections` em `.oxe/config.json`. Ver `oxe/workflows/references/legacy-brownfield.md`.
|
|
50
|
+
|
|
51
|
+
### Contratos de dados
|
|
52
|
+
|
|
53
|
+
- Copybooks, tabelas, mensagens, layouts de ficheiro.
|
|
54
|
+
|
|
55
|
+
### Fluxos batch
|
|
56
|
+
|
|
57
|
+
- Cadeias JCL / jobs e programas associados.
|
|
58
|
+
|
|
59
|
+
### Integrações desktop-DB
|
|
60
|
+
|
|
61
|
+
- Cliente (ex. VB6) ↔ base de dados / stored procedures.
|
|
@@ -32,6 +32,8 @@ Mantenha tags **abertas e fechadas** explicitamente (evita ambiguidade para leit
|
|
|
32
32
|
- Se um workflow ultrapassar **~400–500 linhas** ou repetir a mesma referência muitas vezes, extraia para:
|
|
33
33
|
- `oxe/workflows/references/<nome>.md` (no pacote), ou
|
|
34
34
|
- trechos reutilizáveis em `oxe/templates/` (ex.: [`SPEC.template.md`](SPEC.template.md), [`CONFIG.md`](CONFIG.md)).
|
|
35
|
+
- Exemplo publicado: [`legacy-brownfield.md`](../workflows/references/legacy-brownfield.md) — COBOL, JCL, copybooks, VB6, SP; consumido por **scan**, **spec**, **plan**, **execute**, **verify**.
|
|
36
|
+
- Template opcional de pasta `docs/` brownfield: [`DOCS_BROWNFIELD_LAYOUT.md`](DOCS_BROWNFIELD_LAYOUT.md) (copiado para `.oxe/templates/` na instalação).
|
|
35
37
|
- O `SKILL.md` principal do passo deve permanecer o **mapa**: objetivo, contexto essencial, sequência, critérios de sucesso.
|
|
36
38
|
|
|
37
39
|
## 4. Comandos Cursor e prompts Copilot (frontmatter)
|
package/oxe/workflows/execute.md
CHANGED
|
@@ -9,6 +9,7 @@ Se existir apenas **`.oxe/QUICK.md`** (fluxo quick), tratar os **Passos** numera
|
|
|
9
9
|
<context>
|
|
10
10
|
- Se **PLAN.md** não existir mas **QUICK.md** existir, seguir **QUICK.md** neste workflow (passos = trabalho da sessão).
|
|
11
11
|
- Se nem PLAN nem QUICK existir, recomendar `oxe:plan` ou `oxe:quick` primeiro.
|
|
12
|
+
- **Legado / brownfield:** entregáveis podem ser só documentação (`.md`, diagramas). Exigir pré-requisitos de ambiente (mainframe, IDE VB6) quando a tarefa depender disso — ver **`oxe/workflows/references/legacy-brownfield.md`**.
|
|
12
13
|
</context>
|
|
13
14
|
|
|
14
15
|
<process>
|
package/oxe/workflows/help.md
CHANGED
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
# OXE — Workflow: help
|
|
2
2
|
|
|
3
3
|
<objective>
|
|
4
|
-
Apresentar o fluxo OXE (scan → spec → plan → execução → verify), o modo **quick**, o passo **execute**, e como invocar
|
|
4
|
+
Apresentar o fluxo OXE (scan → spec → plan → execução → verify), o modo **quick**, o passo **execute**, e **como invocar em várias IDEs/CLIs** (Cursor e GitHub Copilot como referência principal; outras stacks na secção multi-agente). Mencionar o CLI `oxe-cc` (instalar, `doctor`, `status`, `init-oxe`, `uninstall`, `update`) e, em linha, o **SDK** npm (`require('oxe-cc')`) para CI.
|
|
5
5
|
</objective>
|
|
6
6
|
|
|
7
7
|
<context>
|
|
8
|
-
OXE é um fluxo **spec-driven** com artefatos em `.oxe/` no projeto alvo. **Poucos comandos
|
|
8
|
+
OXE é um fluxo **spec-driven** com artefatos em `.oxe/` no projeto alvo — **o núcleo é o mesmo** em Cursor, Copilot, Claude, OpenCode, Gemini, Codex, Windsurf, Antigravity ou outra CLI suportada pelo instalador. **Poucos comandos** por ferramenta em relação a fluxos de planeamento mais pesados; *context engineering* com arquivos pequenos por etapa. **GitHub Copilot (VS Code)** usa **`~/.copilot/`** após `npx oxe-cc` (bloco mesclado em `copilot-instructions.md` + **prompt files** em `~/.copilot/prompts/`), não `.github/` dentro do repo alvo por padrão; outras ferramentas usam os respetivos homes (ver secção **Multi-agente** abaixo).
|
|
9
9
|
|
|
10
10
|
No **projeto**, os passos canónicos estão em **`.oxe/workflows/*.md`** (layout mínimo) ou **`oxe/workflows/*.md`** (layout clássico com `--global`); no **pacote npm**, os modelos vivem em **`oxe/workflows/*.md`**.
|
|
11
11
|
</context>
|
|
12
12
|
|
|
13
13
|
<output>
|
|
14
|
-
##
|
|
14
|
+
## Integrações principais (referência)
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
### Cursor
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
Slash commands: `/oxe-scan`, `/oxe-spec`, `/oxe-discuss`, `/oxe-plan`, `/oxe-verify`, `/oxe-next`, `/oxe-quick`, `/oxe-execute`, `/oxe-update`, `/oxe-help` (instalados em `~/.cursor/commands/` pelo `oxe-cc`). **Review de PR:** no Cursor não há slash dedicado — peça em linguagem natural seguindo `oxe/workflows/review-pr.md` (ou `.oxe/workflows/review-pr.md`) em contexto.
|
|
19
|
+
|
|
20
|
+
### GitHub Copilot (VS Code)
|
|
19
21
|
|
|
20
22
|
1. **Instruções do usuário:** arquivo **`~/.copilot/copilot-instructions.md`** (conteúdo mesclado pelo instalador; contém o bloco OXE entre marcadores).
|
|
21
23
|
2. **Prompt files:** em **`~/.copilot/prompts/`** (ex.: `oxe-scan.prompt.md`). No chat, `/` e escolha **`oxe-scan`**, **`oxe-spec`**, etc. Requer `"chat.promptFiles": true` (exemplo em `.vscode/settings.json` do repo com layout `--global`).
|
|
@@ -23,7 +25,7 @@ Slash commands: `/oxe-scan`, `/oxe-spec`, `/oxe-discuss`, `/oxe-plan`, `/oxe-ver
|
|
|
23
25
|
|
|
24
26
|
## Fluxo completo
|
|
25
27
|
|
|
26
|
-
1. **scan** — após clonar ou quando o repositório mudar muito.
|
|
28
|
+
1. **scan** — após clonar ou quando o repositório mudar muito. Repositórios **legado** (COBOL, JCL, copybooks, VB6, SQL procedures): o passo **scan** aplica `oxe/workflows/references/legacy-brownfield.md` quando esses sinais existirem — preencha `TESTING.md` com honestidade (sem `npm test` fictício) e use `scan_focus_globs` em `.oxe/config.json` (ver `oxe/templates/CONFIG.md`).
|
|
27
29
|
2. **spec** — descrever o que se quer (critérios com IDs **A1**, **A2**…).
|
|
28
30
|
3. **discuss** (opcional) — decisões antes do plano; recomendado se `discuss_before_plan` em `.oxe/config.json`.
|
|
29
31
|
4. **plan** — plano executável + **Verificar** por tarefa, ligado aos critérios da SPEC.
|
|
@@ -41,9 +43,12 @@ Slash commands: `/oxe-scan`, `/oxe-spec`, `/oxe-discuss`, `/oxe-plan`, `/oxe-ver
|
|
|
41
43
|
- **`npx oxe-cc`** ou **`npx oxe-cc install`** — mesma instalação (alias explícito).
|
|
42
44
|
- Instala workflows em `.oxe/` (layout mínimo) ou `oxe/` + `.oxe/` com **`--global`**; integrações em `~/.cursor`, `~/.copilot`, `~/.claude` (e mais destinos com **`--copilot-cli`** / **`--all-agents`**).
|
|
43
45
|
- **`oxe-cc doctor`** — Node, workflows do pacote vs projeto, `config.json`, mapas do codebase, **coerência STATE vs arquivos**, scan antigo (`scan_max_age_days`), seções SPEC, ondas do PLAN, **avisos** não bloqueantes sobre estrutura dos `.md` de workflow (ex.: `<objective>`, critérios de sucesso).
|
|
44
|
-
- **`oxe-cc status`** — coerência `.oxe/` + **um** próximo passo (espelha `next.md`).
|
|
46
|
+
- **`oxe-cc status`** — coerência `.oxe/` + **um** próximo passo (espelha `next.md`). Com **`--json`**, uma linha JSON (`nextStep`, `diagnostics`, …) para CI ou scripts.
|
|
45
47
|
- **`oxe-cc init-oxe`** — só bootstrap `.oxe/` (STATE, config, codebase).
|
|
46
48
|
- **`oxe-cc uninstall`** — remove integrações no HOME e, por omissão, pastas de workflows no repo (`--ide-only` só HOME).
|
|
49
|
+
- **`/oxe-update`** (Cursor; noutras ferramentas use o terminal no projeto) — workflow de atualização: verificar npm, correr `oxe-cc update`, `doctor`.
|
|
50
|
+
- **`oxe-cc update --check`** — só comparar versão em execução com a `latest` no npm (sem instalar).
|
|
51
|
+
- **`oxe-cc update --if-newer`** — só executa o `npx oxe-cc@latest` se houver versão mais nova no npm.
|
|
47
52
|
- **`oxe-cc update` / `npx oxe-cc@latest --force`** — atualizar ficheiros OXE no projeto.
|
|
48
53
|
|
|
49
54
|
**CI / sem perguntas:** `OXE_NO_PROMPT=1` — layout mínimo e integrações padrão no HOME, salvo flags (`--global`, `--cursor`, …). Se existir **`.oxe/config.json`** com bloco **`install`** (perfil, `repo_layout`), aplica-se quando **não** há flags IDE explícitas; para ignorar: **`--no-install-config`**. Detalhes: `oxe/templates/CONFIG.md`.
|
|
@@ -62,6 +67,7 @@ Quem integra em pipeline pode usar **`require('oxe-cc')`** (entrada `main` do pa
|
|
|
62
67
|
|----------|-----|
|
|
63
68
|
| `OXE_NO_PROMPT` | `1` / `true`: sem menus interativos |
|
|
64
69
|
| `OXE_NO_BANNER` | `1` / `true`: sem banner no CLI |
|
|
70
|
+
| `OXE_UPDATE_SKIP_REGISTRY` | `1` / `true`: não consultar npm em `update --check` / `--if-newer` (saída `2` ou skip) |
|
|
65
71
|
| `CURSOR_CONFIG_DIR` | Base Cursor (default `~/.cursor`) |
|
|
66
72
|
| `COPILOT_CONFIG_DIR` / `COPILOT_HOME` | Base Copilot |
|
|
67
73
|
| `CLAUDE_CONFIG_DIR` | Base `~/.claude` |
|
package/oxe/workflows/plan.md
CHANGED
|
@@ -34,6 +34,10 @@ Cada tarefa em PLAN.md deve seguir:
|
|
|
34
34
|
- Manual: (opcional) passos breves
|
|
35
35
|
- **Aceite vinculado:** A1, A2 (IDs exatos da tabela de critérios da SPEC)
|
|
36
36
|
```
|
|
37
|
+
|
|
38
|
+
**Projetos sem suíte de testes única (legado):** o bloco **Verificar** pode usar `Comando: —` e **Manual** com Grep, leitura de paths ou checklist — ver exemplos em **`oxe/workflows/references/legacy-brownfield.md`**. Todo critério **A*** da SPEC deve aparecer em **Aceite vinculado** de alguma tarefa ou como gap explícito.
|
|
39
|
+
|
|
40
|
+
**Comparativo host ↔ cliente (migração / paridade):** pode-se dedicar tarefas a produzir ou atualizar uma **matriz Markdown** (classificações: equivalente / implementação diferente / só host / só cliente) com colunas de artefactos reais no repo — ver secção *Molde de comparativo* em **`oxe/workflows/references/legacy-brownfield.md`**. Cada **Tn** deve manter **Aceite vinculado** aos **A*** que essa matriz satisfaz.
|
|
37
41
|
</format_plan>
|
|
38
42
|
|
|
39
43
|
<process>
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# Referência OXE — Repositórios legado (brownfield)
|
|
2
|
+
|
|
3
|
+
Documento de apoio aos workflows **scan**, **spec**, **plan**, **execute** e **verify** quando o projeto **não** é uma aplicação web/Node típica: **mainframe** (COBOL, JCL, copybooks), **cliente desktop** (ex. VB6), **stored procedures** / DDL em SQL, e integrações por ficheiro ou fila.
|
|
4
|
+
|
|
5
|
+
## 1. Deteção rápida (sinais no repo)
|
|
6
|
+
|
|
7
|
+
| Sinal | Extensões / pastas comuns |
|
|
8
|
+
|-------|---------------------------|
|
|
9
|
+
| COBOL | `*.cbl`, `*.cob`, `*.cobol` |
|
|
10
|
+
| JCL | `*.jcl`, `*.prc`, pasta `jcl/`, `proc/` |
|
|
11
|
+
| Copybooks | `*.cpy`, pastas `cpy/`, `copy/`, `copylib/` |
|
|
12
|
+
| Binder / load | `*.clb`, pastas `clb/` (quando existirem) |
|
|
13
|
+
| VB6 / Win32 legado | `*.frm`, `*.vbp`, `*.bas`, `*.cls`, `*.ctl` |
|
|
14
|
+
| SQL host | `*.sql`, pastas `sql/`, `DB_DDL/`, `stored_procedures/` |
|
|
15
|
+
| Documentação já existente | `docs/`, `src/docs/`, `glossary/` com inventários |
|
|
16
|
+
|
|
17
|
+
**Não assumir** nomes fixos: `cpy` vs `copy` vs `includes` é comum — o scan deve **descrever o que existe** em `STRUCTURE.md` e, se útil, sugerir `scan_focus_globs` em `.oxe/config.json`.
|
|
18
|
+
|
|
19
|
+
## 2. Scan — o que preencher nos sete ficheiros
|
|
20
|
+
|
|
21
|
+
### OVERVIEW
|
|
22
|
+
|
|
23
|
+
- Fluxo de negócio em 5–15 tópicos (batch vs online vs desktop).
|
|
24
|
+
- Referência explícita a documentação humana já no repo (índices, enciclopédias).
|
|
25
|
+
|
|
26
|
+
### STACK
|
|
27
|
+
|
|
28
|
+
- Runtime real (z/OS, IMS, CICS, DB2, etc.) **como inferido** dos fontes e docs — marcar quando for inferência.
|
|
29
|
+
- VB6, ODBC/ADO, SQL Server/DB2 conforme aparecer em código ou comentários.
|
|
30
|
+
|
|
31
|
+
### STRUCTURE
|
|
32
|
+
|
|
33
|
+
- Árvore lógica: `jcl/` → programas → datasets/VSAM/DB2; copybooks e sinónimos de pasta; módulos VB6 por serviço/projeto.
|
|
34
|
+
- Nota quando pastas esperadas (`cpy`, `clb`) **não** existirem mas equivalentes existirem (`copy/`).
|
|
35
|
+
- **`docs/` rica:** se existir `docs/INDICE-GERAL.md`, `docs/README.md`, `docs/**/00-*INDICE*` ou enciclopédia por camadas, descrever o **papel de cada subpasta** (`tecnico/`, `negocio/`, `glossary/`, `baixa-plataforma/`, comparativos) e o caminho do índice mestre — não tratar `docs/` como “só Markdown”.
|
|
36
|
+
|
|
37
|
+
### TESTING
|
|
38
|
+
|
|
39
|
+
- Se não houver `npm test` / CI: declarar **honestamente** (*não detetado* ou *não verificado neste clone*).
|
|
40
|
+
- Listar scripts locais (ex. análise JCL em Python/BAT) como verificação **opcional**, com caminho em backticks.
|
|
41
|
+
|
|
42
|
+
### INTEGRATIONS
|
|
43
|
+
|
|
44
|
+
- Sistemas externos (ex. troca de mensagens, CNAB, filas), **sem valores** de segredos.
|
|
45
|
+
- Pontes **host ↔ desktop** (ficheiros, BD partilhada, serviços COM/XML).
|
|
46
|
+
- **Taxonomia de plataforma** (quando fizer sentido): subsecção explícita **Alta plataforma** (host/mainframe), **Baixa plataforma** (distribuído, middle-office, cliente), **Externo** (reguladores, câmaras, mercado). Usar a mesma linguagem em OVERVIEW se o repo for híbrido.
|
|
47
|
+
|
|
48
|
+
### CONVENTIONS
|
|
49
|
+
|
|
50
|
+
- Prefixos de programas, convenções JCL (`JOB`, `EXEC PGM=`), padrões de copybook.
|
|
51
|
+
|
|
52
|
+
### CONCERNS
|
|
53
|
+
|
|
54
|
+
- Volume de fontes, EOL de VB6, ausência de testes automáticos, acoplamento DB2, gaps documentados no próprio repo.
|
|
55
|
+
|
|
56
|
+
## 3. Config (`.oxe/config.json`)
|
|
57
|
+
|
|
58
|
+
Sugerir ao utilizador padrões como (ajustar ao repo real):
|
|
59
|
+
|
|
60
|
+
```json
|
|
61
|
+
"scan_focus_globs": [
|
|
62
|
+
"jcl/**",
|
|
63
|
+
"**/*.jcl",
|
|
64
|
+
"cpy/**",
|
|
65
|
+
"copy/**",
|
|
66
|
+
"src/**/*.cbl",
|
|
67
|
+
"**/*.frm",
|
|
68
|
+
"**/*.vbp",
|
|
69
|
+
"**/DB_DDL/**/*.sql"
|
|
70
|
+
],
|
|
71
|
+
"scan_ignore_globs": [
|
|
72
|
+
".mypy_cache/**",
|
|
73
|
+
"**/node_modules/**"
|
|
74
|
+
]
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Para specs de **documentação/migração**, `spec_required_sections` pode incluir cabeçalhos adicionais, por exemplo:
|
|
78
|
+
|
|
79
|
+
- `## Contratos de dados` (copybooks, tabelas, mensagens)
|
|
80
|
+
- `## Fluxos batch` (cadeias JCL / jobs)
|
|
81
|
+
- `## Integrações desktop-DB` (VB6, procedures, ODBC)
|
|
82
|
+
|
|
83
|
+
## 4. Spec — epicos úteis
|
|
84
|
+
|
|
85
|
+
Dividir por **trilhas** comunicáveis:
|
|
86
|
+
|
|
87
|
+
1. Batch: JCL → COBOL → ficheiros / DB2.
|
|
88
|
+
2. Online: transações IMS/CICS (quando identificáveis).
|
|
89
|
+
3. Desktop + SQL: ecrãs / módulos → procedures ou tabelas.
|
|
90
|
+
|
|
91
|
+
Critérios **A*** devem ser verificáveis por: leitura de ficheiro, Grep, checklist humano, ou execução em ambiente (quando existir) — não exigir `npm test` se o projeto não tiver.
|
|
92
|
+
|
|
93
|
+
## 5. Plan — bloco **Verificar** (legado)
|
|
94
|
+
|
|
95
|
+
Quando não houver comando único de teste:
|
|
96
|
+
|
|
97
|
+
```markdown
|
|
98
|
+
- **Verificar:**
|
|
99
|
+
- Comando: `—` (projeto sem suíte única; ver Manual)
|
|
100
|
+
- Manual: Confirmar em `STRUCTURE.md` que cadeia X está referenciada; Grep `COPY NOMECOPY` nos `.cbl` listados; revisão humana do diagrama em `docs/...`
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Mapear **cada** critério A* a pelo menos uma tarefa ou registar **gap** explícito no plano.
|
|
104
|
+
|
|
105
|
+
### Molde de comparativo (migração host ↔ cliente)
|
|
106
|
+
|
|
107
|
+
Para SPEC/PLAN de paridade ou modernização, um entregável útil é uma **matriz comparativa** (Markdown em `docs/` ou `.oxe/`). Classificar cada funcionalidade ou fluxo:
|
|
108
|
+
|
|
109
|
+
| Classificação | Significado |
|
|
110
|
+
|----------------|-------------|
|
|
111
|
+
| Equivalente | Mesmo resultado; pode diferir batch vs online. |
|
|
112
|
+
| Mesma função, implementação diferente | Comportamento alinhado; caminhos de código distintos. |
|
|
113
|
+
| Só no host | Não reproduzido (ou não encontrado) no cliente. |
|
|
114
|
+
| Só no cliente | Não reproduzido (ou não encontrado) no host. |
|
|
115
|
+
|
|
116
|
+
Incluir colunas **Host (programa/job/tabela)** e **Cliente (form/SP/serviço)** com paths do repo. Vincular tarefas **Tn** aos critérios **A*** que exigem cobertura da matriz (ex. “todas as linhas da coluna X documentadas”).
|
|
117
|
+
|
|
118
|
+
## 6. Execute
|
|
119
|
+
|
|
120
|
+
- Ondas funcionam igual; reforçar **pré-requisitos** (acesso a mainframe, IDE VB6) quando a tarefa depender de ambiente fora do Git.
|
|
121
|
+
- Se a “implementação” for só documentação/diagramas, o entregável são ficheiros `.md` (ou anexos) com caminhos nos **Arquivos prováveis**.
|
|
122
|
+
|
|
123
|
+
## 7. Verify
|
|
124
|
+
|
|
125
|
+
- Evidência válida: trecho de `Read`, resultado de `Grep`, confirmação de existência de ficheiros, checklist assinado no `VERIFY.md`.
|
|
126
|
+
- Se um comando do PLAN falhar por ambiente ausente, registar **não executado aqui** e manter o comando para o utilizador — não marcar como “passou” sem evidência.
|
|
127
|
+
|
|
128
|
+
## 8. Anti-patterns
|
|
129
|
+
|
|
130
|
+
- Inventar nomes de transação CICS ou jobs não presentes no repo.
|
|
131
|
+
- Tratar ausência de `package.json` como “projeto vazio”.
|
|
132
|
+
- Omitir `TESTING.md` ou preencher com comandos genéricos que não se aplicam.
|
|
133
|
+
|
|
134
|
+
## 9. Layout opcional da pasta `docs/`
|
|
135
|
+
|
|
136
|
+
Modelo de pastas, índice por intenção, pares técnico/negócio e convenções de frontmatter YAML: **`oxe/templates/DOCS_BROWNFIELD_LAYOUT.md`** (no projeto instalado: `.oxe/templates/DOCS_BROWNFIELD_LAYOUT.md` quando copiado pelo `oxe-cc`).
|
package/oxe/workflows/scan.md
CHANGED
|
@@ -19,12 +19,14 @@ Se **`.oxe/config.json`** tiver `scan_focus_globs` ou `scan_ignore_globs`, **pri
|
|
|
19
19
|
<process>
|
|
20
20
|
1. Garantir pastas `.oxe/` e `.oxe/codebase/`.
|
|
21
21
|
2. Inventariar o repo (Glob/Grep): linguagens, manifests (`package.json`, `pom.xml`, `go.mod`, etc.), pastas principais — aplicando foco/ignore da config se houver.
|
|
22
|
+
2b. **Legado / brownfield:** se o inventário revelar sinais de mainframe ou desktop legado (ex.: `*.cbl`, `*.jcl`, pastas `jcl/`, `cpy/` ou `copy/`, `*.cpy`, `*.frm` / `*.vbp`, volume de `*.sql` com procedures), aplicar **`oxe/workflows/references/legacy-brownfield.md`** ao preencher STACK, STRUCTURE, INTEGRATIONS, TESTING e CONCERNS — **sem** assumir Node/Java nem omitir TESTING.md quando não houver CI.
|
|
23
|
+
2c. **`docs/` / `src/docs/` com documentação humana:** se existir pasta de documentação com índice (`docs/INDICE-GERAL.md`, `docs/README.md`, `**/00-*INDICE*.md`, ou enciclopédia por camadas), em **OVERVIEW** e **STRUCTURE** resumir o **papel das subpastas** (ex.: `tecnico/`, `negocio/`, `glossary/`, comparativos, baixa plataforma) e linkar o ficheiro índice em backticks. Em **INTEGRATIONS** (e se útil em OVERVIEW), quando o repo for híbrido host + distribuído + externos, incluir bullets **Alta plataforma**, **Baixa plataforma**, **Externo** conforme `legacy-brownfield.md`. Sugerir template opcional `oxe/templates/DOCS_BROWNFIELD_LAYOUT.md` ao utilizador se a árvore `docs/` estiver em crescimento.
|
|
22
24
|
3. Produzir **sete** arquivos em `.oxe/codebase/` (paralelize subagentes quando disponível):
|
|
23
|
-
- **OVERVIEW.md** — propósito aparente do projeto, módulos de alto nível, fluxo principal (5–15 tópicos).
|
|
25
|
+
- **OVERVIEW.md** — propósito aparente do projeto, módulos de alto nível, fluxo principal (5–15 tópicos); se houver índice em `docs/`, um tópico deve apontar para ele.
|
|
24
26
|
- **STACK.md** — runtime, frameworks, build, versões relevantes, dependências críticas.
|
|
25
|
-
- **STRUCTURE.md** — árvore lógica (não listar mil arquivos): entrypoints, `src/` por domínio, onde ficam testes e configs.
|
|
27
|
+
- **STRUCTURE.md** — árvore lógica (não listar mil arquivos): entrypoints, `src/` por domínio, onde ficam testes e configs; **e** papel de `docs/` ou `src/docs/` quando existirem.
|
|
26
28
|
- **TESTING.md** — como rodar testes/lint/format (comandos exatos), frameworks de teste, pastas `*test*`, CI se houver.
|
|
27
|
-
- **INTEGRATIONS.md** — APIs externas, bancos, auth, filas, segredos (nomes de env **sem valores**), webhooks. Se não houver integrações, escrever explicitamente *Não detectado* com uma linha de contexto.
|
|
29
|
+
- **INTEGRATIONS.md** — APIs externas, bancos, auth, filas, segredos (nomes de env **sem valores**), webhooks; em sistemas legado híbridos, taxonomia alta/baixa/externo quando aplicável. Se não houver integrações, escrever explicitamente *Não detectado* com uma linha de contexto.
|
|
28
30
|
- **CONVENTIONS.md** — estilo de código (naming, formatação, imports), padrões de erros/logging, organização de módulos; **prescreve** o que seguir em novas alterações (com paths em backticks).
|
|
29
31
|
- **CONCERNS.md** — dívida técnica, áreas frágeis, riscos de segurança/desempenho, dependências sensíveis; cada item com impacto breve e **arquivos** referenciados.
|
|
30
32
|
4. Atualizar **`.oxe/STATE.md`**: **Data** do scan (ISO), fase sugerida `scan_complete`, próximo passo `oxe:spec` ou `oxe:plan` se já houver SPEC.
|
package/oxe/workflows/spec.md
CHANGED
|
@@ -16,6 +16,8 @@ Entrada: texto livre na mensagem ou caminho `@arquivo.md` / anexo para incorpora
|
|
|
16
16
|
Leia `.oxe/STATE.md` e, se existirem, trechos relevantes de `.oxe/codebase/OVERVIEW.md` e `STACK.md` para não contradizer o projeto real.
|
|
17
17
|
|
|
18
18
|
Use o template **`oxe/templates/SPEC.template.md`**: tabela **Critérios de aceite** com colunas **ID | Critério | Como verificar**.
|
|
19
|
+
|
|
20
|
+
**Brownfield (COBOL, JCL, copybooks, VB6, SP):** quando o objetivo for documentar ou planear migração, ver **`oxe/workflows/references/legacy-brownfield.md`** — epicos por **trilha** (batch, online, desktop↔SQL), critérios **A*** verificáveis por Grep/leitura/checklist, e secções opcionais alinháveis a `spec_required_sections` em `.oxe/config.json` (ver `oxe/templates/CONFIG.md`).
|
|
19
21
|
</context>
|
|
20
22
|
|
|
21
23
|
<process>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# OXE — Workflow: update
|
|
2
|
+
|
|
3
|
+
<objective>
|
|
4
|
+
Alinhar o projeto e integrações OXE à **versão mais recente** do pacote **oxe-cc** publicada no npm: verificar se há atualização, aplicar a reinstalação com `--force` quando fizer sentido e validar com **`oxe-cc doctor`**.
|
|
5
|
+
</objective>
|
|
6
|
+
|
|
7
|
+
<context>
|
|
8
|
+
- Trabalhar na **raiz do repositório** do projeto (onde está `.oxe/` ou onde o utilizador instalou o OXE).
|
|
9
|
+
- O CLI compara a **versão do binário em execução** com a tag **latest** no npm (não confundir com `node_modules/oxe-cc` se existir como dependência de app).
|
|
10
|
+
- **`--force`** na reinstalação pode gerar backup de ficheiros alterados localmente em **`~/.oxe-cc/oxe-local-patches/`** (comportamento do instalador).
|
|
11
|
+
- Para **só consultar** o registo sem instalar: `npx oxe-cc update --check` (saída `0` = já em dia ou mais novo, `1` = há versão mais nova no npm, `2` = erro ou `OXE_UPDATE_SKIP_REGISTRY`).
|
|
12
|
+
- Para **só correr o npx se houver versão mais nova**: `npx oxe-cc update --if-newer` (sem rede ou com `OXE_UPDATE_SKIP_REGISTRY=1` termina com código `2` e **não** executa o npx).
|
|
13
|
+
</context>
|
|
14
|
+
|
|
15
|
+
<process>
|
|
16
|
+
1. Na raiz do projeto, executar **`npx oxe-cc update --check`** (ou equivalente com `oxe-cc` no PATH). Relatar ao utilizador: versão em execução, `latest` no npm e se há atualização.
|
|
17
|
+
2. Se o utilizador quiser atualizar (ou se `--check` indicou versão mais nova e pediu explícito), executar **`npx oxe-cc update`** na mesma raiz — opcionalmente **`npx oxe-cc update --if-newer`** para evitar npx quando já está na última. Repassar flags extra ao pacote novo se o utilizador pedir (ex.: `--cursor --global`).
|
|
18
|
+
3. Após uma instalação bem-sucedida, executar **`npx oxe-cc doctor`** e resumir o resultado (OK vs avisos/erros).
|
|
19
|
+
4. Se o utilizador usar **Copilot CLI / skills**, lembrar **`/skills reload`** (ou reinício) após mudanças nos ficheiros do HOME; no **Gemini CLI**, **`/commands reload`** quando aplicável.
|
|
20
|
+
</process>
|
|
21
|
+
|
|
22
|
+
<output>
|
|
23
|
+
- Resumo do que foi executado (comandos e códigos de saída relevantes).
|
|
24
|
+
- Se `--check` apenas: não propor `npx` sem confirmação do utilizador quando há versão nova.
|
|
25
|
+
- Próximo passo sugerido: retomar o fluxo OXE (ex.: **`/oxe-scan`** se o projeto mudou muito) ou continuar a tarefa em curso.
|
|
26
|
+
</output>
|
|
27
|
+
|
|
28
|
+
<success_criteria>
|
|
29
|
+
- [ ] Correram na raiz do projeto, nesta ordem quando aplicável: `npx oxe-cc update --check`; depois `npx oxe-cc update` ou `npx oxe-cc update --if-newer` (ou o utilizador recusou atualizar após o `--check`).
|
|
30
|
+
- [ ] Após qualquer instalação concluída, correr `npx oxe-cc doctor` e reportar se passou ou que avisos/erros restam.
|
|
31
|
+
- [ ] O resumo menciona versões ou resultado da consulta ao npm quando `--check` ou update foi usado.
|
|
32
|
+
- [ ] Reload de skills/comandos externos (Copilot CLI, Gemini) foi lembrado quando relevante.
|
|
33
|
+
</success_criteria>
|
package/oxe/workflows/verify.md
CHANGED
|
@@ -11,6 +11,7 @@ Se o usuário indicar uma tarefa (ex.: `T2`), focar só nela; caso contrário, p
|
|
|
11
11
|
- Não destruir `PLAN.md`; registrar achados em `VERIFY.md`.
|
|
12
12
|
- Ler **`.oxe/config.json`** se existir: `after_verify_draft_commit` e `after_verify_suggest_pr` controlam passos opcionais (se o arquivo não existir, use o mesmo padrão do `config.template.json`).
|
|
13
13
|
- Os critérios na SPEC devem estar na tabela **Critérios de aceite** com colunas **ID** / **Critério** / **Como verificar**; o verify deve **cruzar cada ID** com evidência (arquivo, comando, trecho).
|
|
14
|
+
- **Legado:** quando **Comando** for `—` ou inexistente, evidência válida inclui **Read/Grep**, existência de ficheiros referenciados e checklist manual — não marcar critério como passou sem evidência; se o ambiente host/desktop não estiver disponível, registar **não executado aqui** e próximo passo. Ver **`oxe/workflows/references/legacy-brownfield.md`**.
|
|
14
15
|
</context>
|
|
15
16
|
|
|
16
17
|
<process>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oxe-cc",
|
|
3
|
-
"version": "0.3.
|
|
4
|
-
"description": "OXE — spec-driven workflows
|
|
3
|
+
"version": "0.3.6",
|
|
4
|
+
"description": "OXE — spec-driven workflows in .oxe/; integrates with Cursor, GitHub Copilot, Claude, OpenCode, Gemini, Codex, Windsurf, Antigravity (npx)",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"author": "",
|
|
7
7
|
"homepage": "https://www.npmjs.com/package/oxe-cc",
|
|
@@ -16,8 +16,16 @@
|
|
|
16
16
|
"cursor",
|
|
17
17
|
"github-copilot",
|
|
18
18
|
"copilot",
|
|
19
|
+
"claude",
|
|
20
|
+
"claude-code",
|
|
21
|
+
"opencode",
|
|
22
|
+
"gemini-cli",
|
|
23
|
+
"codex",
|
|
24
|
+
"windsurf",
|
|
25
|
+
"antigravity",
|
|
19
26
|
"spec-driven",
|
|
20
27
|
"context-engineering",
|
|
28
|
+
"ai-agents",
|
|
21
29
|
"oxe"
|
|
22
30
|
],
|
|
23
31
|
"engines": {
|
|
@@ -45,8 +53,8 @@
|
|
|
45
53
|
],
|
|
46
54
|
"scripts": {
|
|
47
55
|
"sync:cursor": "node scripts/sync-cursor-from-prompts.cjs",
|
|
48
|
-
"test": "node --test tests/install.test.cjs tests/oxe-project-health.test.cjs tests/oxe-sdk.test.cjs tests/oxe-manifest.test.cjs tests/oxe-agent-install.test.cjs tests/oxe-install-resolve-full.test.cjs tests/oxe-health-extended.test.cjs tests/oxe-workflows-edge.test.cjs tests/oxe-sdk-edge.test.cjs tests/oxe-cli-edge.test.cjs tests/oxe-scripts.test.cjs",
|
|
49
|
-
"test:coverage": "c8 --check-coverage --lines 82 --functions
|
|
56
|
+
"test": "node --test tests/install.test.cjs tests/oxe-project-health.test.cjs tests/oxe-sdk.test.cjs tests/oxe-manifest.test.cjs tests/oxe-agent-install.test.cjs tests/oxe-install-resolve-full.test.cjs tests/oxe-health-extended.test.cjs tests/oxe-workflows-edge.test.cjs tests/oxe-sdk-edge.test.cjs tests/oxe-cli-edge.test.cjs tests/oxe-npm-version.test.cjs tests/oxe-scripts.test.cjs",
|
|
57
|
+
"test:coverage": "c8 --check-coverage --lines 82 --functions 85 --branches 58 --statements 82 npm test",
|
|
50
58
|
"scan:assets": "node scripts/oxe-assets-scan.cjs",
|
|
51
59
|
"prepublishOnly": "node scripts/sync-cursor-from-prompts.cjs && npm test && npm run scan:assets && node bin/oxe-cc.js --version"
|
|
52
60
|
},
|
|
@@ -67,5 +75,8 @@
|
|
|
67
75
|
},
|
|
68
76
|
"devDependencies": {
|
|
69
77
|
"c8": "^11.0.0"
|
|
78
|
+
},
|
|
79
|
+
"dependencies": {
|
|
80
|
+
"semver": "^7.7.4"
|
|
70
81
|
}
|
|
71
82
|
}
|