oxe-cc 1.8.3 → 1.10.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/.cursor/commands/oxe-dashboard.md +2 -2
- package/.cursor/commands/oxe-execute.md +2 -2
- package/.cursor/commands/oxe-plan.md +2 -2
- package/.cursor/commands/oxe-quick.md +2 -2
- package/.cursor/commands/oxe-spec.md +3 -3
- package/.github/prompts/oxe-dashboard.prompt.md +2 -2
- package/.github/prompts/oxe-execute.prompt.md +2 -2
- package/.github/prompts/oxe-plan.prompt.md +2 -2
- package/.github/prompts/oxe-quick.prompt.md +2 -2
- package/.github/prompts/oxe-spec.prompt.md +3 -3
- package/AGENTS.md +1 -1
- package/CHANGELOG.md +45 -0
- package/README.md +32 -26
- package/bin/lib/oxe-context-engine.cjs +2 -0
- package/bin/lib/oxe-operational.cjs +230 -74
- package/bin/lib/oxe-project-health.cjs +43 -9
- package/bin/lib/oxe-rationality.cjs +146 -1
- package/bin/lib/oxe-release.cjs +55 -0
- package/bin/oxe-cc.js +60 -37
- package/commands/oxe/dashboard.md +2 -2
- package/commands/oxe/execute.md +2 -2
- package/commands/oxe/plan.md +2 -2
- package/commands/oxe/quick.md +2 -2
- package/commands/oxe/spec.md +3 -3
- package/docs/RELEASE-READINESS.md +8 -1
- package/lib/runtime/scheduler/multi-agent-coordinator.d.ts +48 -0
- package/lib/runtime/scheduler/multi-agent-coordinator.js +274 -14
- package/lib/runtime/workspace/strategies/git-worktree.js +18 -9
- package/oxe/templates/REFERENCE-ANCHORS.template.md +12 -5
- package/oxe/templates/SPEC.template.md +10 -0
- package/oxe/templates/VISUAL-INPUTS.template.json +27 -0
- package/oxe/templates/VISUAL-INPUTS.template.md +36 -0
- package/oxe/workflows/execute.md +3 -0
- package/oxe/workflows/plan.md +13 -9
- package/oxe/workflows/references/workflow-runtime-contracts.json +44 -29
- package/oxe/workflows/spec.md +19 -8
- package/oxe/workflows/ui-spec.md +3 -2
- package/package.json +6 -3
- package/packages/runtime/package.json +1 -1
- package/packages/runtime/src/scheduler/multi-agent-coordinator.ts +379 -47
- package/packages/runtime/src/workspace/strategies/git-worktree.ts +24 -16
- package/vscode-extension/package.json +1 -1
|
@@ -72,6 +72,16 @@ Use **IDs estáveis** (A1, A2, …) para o plano e o verify vincularem cada tare
|
|
|
72
72
|
- Conteúdo mínimo obrigatório por área/módulo: …
|
|
73
73
|
- Exemplos concretos que devem existir na entrega: …
|
|
74
74
|
|
|
75
|
+
## Entradas visuais e interpretação
|
|
76
|
+
|
|
77
|
+
- Status: ready | partial | blocked | not_applicable
|
|
78
|
+
- Artefato visual: `.oxe/investigations/visual/VISUAL-INPUTS.md` | not_applicable
|
|
79
|
+
- Imagens/anexos usados como fonte: …
|
|
80
|
+
- Capacidade visual do runtime hospedeiro: supported | unsupported | unknown
|
|
81
|
+
- Requisitos derivados de imagem: R-ID/A* | not_applicable
|
|
82
|
+
- Ambiguidades visuais ainda abertas: …
|
|
83
|
+
- Observação: se a imagem for crítica para UI, layout, fluxo ou regra funcional, `VISUAL-INPUTS` precisa estar pronto antes do PLAN sustentar confiança > 90%.
|
|
84
|
+
|
|
75
85
|
## Suposições
|
|
76
86
|
|
|
77
87
|
- …
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "1",
|
|
3
|
+
"generated_at": "YYYY-MM-DDTHH:mm:ssZ",
|
|
4
|
+
"ready": false,
|
|
5
|
+
"visualInputReadiness": "blocked",
|
|
6
|
+
"critical_gaps": [],
|
|
7
|
+
"inputs": [
|
|
8
|
+
{
|
|
9
|
+
"id": "VI-01",
|
|
10
|
+
"source_ref": "chat-attachment",
|
|
11
|
+
"source_kind": "visual_attachment",
|
|
12
|
+
"runtime_support": "unknown",
|
|
13
|
+
"inspection_status": "unavailable",
|
|
14
|
+
"reproducibility": "chat_attachment_only",
|
|
15
|
+
"critical": true,
|
|
16
|
+
"confidence": 0,
|
|
17
|
+
"visual_summary": "",
|
|
18
|
+
"detected_text": [],
|
|
19
|
+
"layout_regions": [],
|
|
20
|
+
"ui_components": [],
|
|
21
|
+
"states": [],
|
|
22
|
+
"ambiguities": [],
|
|
23
|
+
"derived_requirements": [],
|
|
24
|
+
"limitations": []
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# OXE — Visual Inputs
|
|
2
|
+
|
|
3
|
+
> Extração textual estruturada de imagens/anexos visuais usados na SPEC. O OXE não interpreta pixels nativamente; este artefato registra o que o agente hospedeiro conseguiu inspecionar e o que virou requisito.
|
|
4
|
+
|
|
5
|
+
## Status
|
|
6
|
+
|
|
7
|
+
- **Status:** ready | partial | blocked | not_applicable
|
|
8
|
+
- **Runtime com visão:** supported | unsupported | unknown
|
|
9
|
+
- **Critical gaps abertos:** nenhum | listar
|
|
10
|
+
|
|
11
|
+
## Entradas
|
|
12
|
+
|
|
13
|
+
### VI-01 — (nome curto da imagem)
|
|
14
|
+
|
|
15
|
+
- **Source ref:** chat-attachment | path relativo | URL | textual_only
|
|
16
|
+
- **Source kind:** visual_attachment | screenshot | mockup | image_description
|
|
17
|
+
- **Runtime support:** vision_supported | vision_unavailable | unknown
|
|
18
|
+
- **Inspection status:** inspected | partial | unavailable | not_applicable
|
|
19
|
+
- **Reproducibility:** local_file | materialized_copy | chat_attachment_only | textual_only
|
|
20
|
+
- **Critical:** true | false
|
|
21
|
+
- **Confidence:** 0.00–1.00
|
|
22
|
+
- **Visual summary:** descrição objetiva do que aparece.
|
|
23
|
+
- **Detected text:** textos legíveis extraídos da imagem, ou `not_applicable`.
|
|
24
|
+
- **Layout regions:** header, sidebar, content, footer, cards, modals etc.
|
|
25
|
+
- **UI components:** botões, campos, tabelas, cards, menus, gráficos etc.
|
|
26
|
+
- **States inferred:** loading, empty, error, success, disabled, hover, selected etc.
|
|
27
|
+
- **Ambiguities:** o que não foi possível confirmar visualmente.
|
|
28
|
+
- **Derived requirements:** R-ID/A* que dependem desta imagem.
|
|
29
|
+
- **Limitations:** limitações da inspeção ou do runtime.
|
|
30
|
+
|
|
31
|
+
## Regras
|
|
32
|
+
|
|
33
|
+
- Imagem crítica para UI, layout, fluxo ou regra funcional exige `inspection_status: inspected`, descrição suficiente e requisitos derivados explícitos.
|
|
34
|
+
- Anexo efêmero de chat deve ser tratado como `chat_attachment_only`; não é referência reproduzível por padrão.
|
|
35
|
+
- Se o runtime não suportar visão, usar `inspection_status: unavailable` e bloquear requisitos visuais críticos até o usuário fornecer descrição textual suficiente.
|
|
36
|
+
- Não inventar detalhes invisíveis na imagem; registrar como `Ambiguities`.
|
package/oxe/workflows/execute.md
CHANGED
|
@@ -131,6 +131,8 @@ Quando o comando `**Verificar:**` de uma tarefa `Tn` falha, **não parar silenci
|
|
|
131
131
|
|
|
132
132
|
O `execute` é **pack-first**, não apenas `plan-first`. Esses artefatos existem para impedir improviso de paths, interfaces, referências externas e fixtures. Se estiverem ausentes, inconsistentes ou com `critical_gap`, a execução deve bloquear e devolver para replanejamento.
|
|
133
133
|
|
|
134
|
+
**Entradas visuais como gate:** quando `SPEC.md`, `UI-SPEC.md`, `PLAN.md` ou `REFERENCE-ANCHORS.md` referenciarem imagem, screenshot, mockup, anexo visual ou `VI-*`, ler `.oxe/investigations/visual/VISUAL-INPUTS.md|json` antes de qualquer mutação. Se `visualInputReadiness: blocked`, se uma entrada crítica estiver `inspection_status != inspected`, ou se a imagem existir só como anexo efêmero sem extração textual suficiente, bloquear e recomendar `/oxe-plan --replan` ou `/oxe-spec` para materializar a descrição visual.
|
|
135
|
+
|
|
134
136
|
**Agente executor especializado:** quando um runtime suportar agentes OXE, o papel esperado é `oxe-executor`. Para ondas com UI, debug, integração ou validação pesada, consultar os agentes especializados correspondentes, mas manter o estado operacional em `.oxe/` e no runtime.
|
|
135
137
|
|
|
136
138
|
**Runtime operacional:** usar `EXECUTION-RUNTIME.md` do escopo resolvido como artefato tático da execução. Ele deve refletir agentes ativos, onda atual, handoffs, evidências, retries, checkpoints pendentes e tarefas bloqueadas. O `PLAN.md` continua estratégico; o runtime regista a operação do ciclo.
|
|
@@ -203,6 +205,7 @@ Se condições não atendidas: responder sem persona; sugerir `/oxe-plan-agent`
|
|
|
203
205
|
- `FIXTURE-PACK.json` deve existir, estar `ready` e cobrir tarefas de parser/layout/integração/transformação/fila/migração/builder;
|
|
204
206
|
- se algum pack tiver `critical_gap`, **não executar**. Registrar o bloqueio explicitamente em `EXECUTION-RUNTIME.md` / `STATE.md` e recomendar um único próximo passo: normalmente `/oxe-plan --replan`.
|
|
205
207
|
- se uma tarefa mutável usar path com `...`, símbolo indefinido, write-set aberto ou fixture obrigatória ausente, bloquear a tarefa mesmo que o `PLAN.md` pareça completo.
|
|
208
|
+
- se houver requisito visual crítico sem `VISUAL-INPUTS.ready === true` ou sem anchor visual resolvido, bloquear a tarefa antes de mutar UI/código.
|
|
206
209
|
3. Antes da primeira mudança, verificar `CHECKPOINTS.md` e `EXECUTION-RUNTIME.md` do escopo resolvido:
|
|
207
210
|
- se houver checkpoint `pending_approval` que se aplique à onda atual, **não avançar**;
|
|
208
211
|
- inicializar ou atualizar o runtime com onda atual, status, agentes ativos, handoffs e evidências esperadas.
|
package/oxe/workflows/plan.md
CHANGED
|
@@ -34,12 +34,13 @@ Contrato de implementação por tarefa `Tn`, com:
|
|
|
34
34
|
- snippets somente quando ancorados em evidência local ou materializada.
|
|
35
35
|
- sequência mínima de implementação, rollback/contensão para risco high/critical e imports/dependências obrigatórias.
|
|
36
36
|
|
|
37
|
-
### REFERENCE-ANCHORS
|
|
38
|
-
Materializa referências críticas que hoje ficam frouxas no plano:
|
|
39
|
-
- predecessor, layout, contrato externo ou `external-ref`;
|
|
40
|
-
- origem local ou materializada em `.oxe/investigations/externals/`;
|
|
41
|
-
- `source_ref`, `path`, `relevance`, `action`, `summary`, `status`;
|
|
42
|
-
- estados válidos: `resolved`, `missing`, `stale`, `conflicting`, `not_applicable`.
|
|
37
|
+
### REFERENCE-ANCHORS
|
|
38
|
+
Materializa referências críticas que hoje ficam frouxas no plano:
|
|
39
|
+
- predecessor, layout, contrato externo ou `external-ref`;
|
|
40
|
+
- origem local ou materializada em `.oxe/investigations/externals/`;
|
|
41
|
+
- `source_ref`, `path`, `relevance`, `action`, `summary`, `status`;
|
|
42
|
+
- estados válidos: `resolved`, `missing`, `stale`, `conflicting`, `not_applicable`.
|
|
43
|
+
- referências visuais vindas de imagem/screenshot/mockup devem usar `source_type="visual_attachment|screenshot|mockup|image_description"`, apontar `visual_ref="VI-*"` e declarar `extraction_confidence`, `reproducibility`, limitações e requisitos derivados.
|
|
43
44
|
|
|
44
45
|
### FIXTURE-PACK
|
|
45
46
|
Fixtures mínimos por fluxo/tarefa de risco:
|
|
@@ -52,6 +53,7 @@ Regra de readiness:
|
|
|
52
53
|
- `IMPLEMENTATION-PACK` precisa estar `ready`;
|
|
53
54
|
- `REFERENCE-ANCHORS` não pode ter âncora crítica em `missing|stale|conflicting`;
|
|
54
55
|
- `FIXTURE-PACK` é obrigatório para tarefas mutáveis com parser/layout/integração/transformação/fila/migração/builder;
|
|
56
|
+
- se a SPEC depender de entrada visual crítica, `VISUAL-INPUTS` precisa estar `ready` e todo requisito visual crítico precisa de anchor resolvido;
|
|
55
57
|
- qualquer `critical_gap` aberto derruba a prontidão executável do plano.
|
|
56
58
|
|
|
57
59
|
**Contrato adicional para app/UI estático:** quando a trilha for página HTML/CSS/JS, dashboard, microsite, app sem framework ou experiência educacional:
|
|
@@ -104,7 +106,8 @@ Resumo operacional:
|
|
|
104
106
|
- **LESSONS + OBS juntos:** se houver tanto LESSONS quanto OBS pendentes, LESSONS orientam o *como planejar* e OBS orientam o *o que incluir*. Não confundir os papéis.
|
|
105
107
|
- Não inventar APIs inexistentes: cruzar com **STRUCTURE.md**, **INTEGRATIONS.md** e arquivos reais; respeitar **CONCERNS.md** (evitar agravar dívida conhecida sem tarefa explícita).
|
|
106
108
|
- Se existir **`.oxe/NOTES.md`**, rever entradas em aberto: incorporar em tarefas (com **Aceite vinculado** quando aplicável) ou registar na secção **Replanejamento** / nota explícita *fora de âmbito desta trilha*. Se não existir e houver necessidade de registrar notas, criar a partir de `oxe/templates/NOTES.template.md`.
|
|
107
|
-
- Se existir `UI-SPEC.md` no escopo resolvido, as tarefas de UI devem referenciar secções do UI-SPEC no texto de **Implementação** ou **Verificar**.
|
|
109
|
+
- Se existir `UI-SPEC.md` no escopo resolvido, as tarefas de UI devem referenciar secções do UI-SPEC no texto de **Implementação** ou **Verificar**.
|
|
110
|
+
- Se existir `VISUAL-INPUTS.md|json` no escopo resolvido, ou se a SPEC declarar entradas visuais críticas, ler antes de definir tarefas de UI. Tarefa que implemente layout, copy, componente, fluxo ou estado derivado de imagem deve citar `VI-*` no `REFERENCE-ANCHORS` e no `IMPLEMENTATION-PACK`.
|
|
108
111
|
- Se existir `DISCUSS.md` no escopo resolvido, alinhar tarefas às decisões registradas. Referenciar IDs **D-NN** no campo **Decisão vinculada:** de cada tarefa impactada — se nenhuma decisão impactar a tarefa, omitir o campo. A rastreabilidade D-NN → Tn → verify é usada pela seção **Fidelidade de decisões** do verify.
|
|
109
112
|
- Se existir `RESEARCH.md` e notas em `research/*.md` do escopo resolvido, ler o índice e as notas cujo **Tema** cruza o âmbito do plano (ou as mais recentes relevantes). Se o índice marcar **Estado** pendente em tópico bloqueante, pedir nova sessão **research** ou **discuss**, ou registar **suposição explícita** no PLAN antes de ondas que dependam dessa decisão.
|
|
110
113
|
- Se existir `plan-agents.json` no escopo resolvido (gerado por **`/oxe-plan-agent`**), um **--replan** ou renumerar tarefas deve **atualizar o JSON em conjunto** com o `PLAN.md` (cobertura `taskIds`, ondas e dependências entre agentes) — ver **`oxe/workflows/plan-agent.md`**. Preferir **`/oxe-plan-agent --replan`** para regerar **`runId`**, **`lifecycle`** (`pending_execute`) e alinhar **STATE.md**; se só **`/oxe-plan`** for usado, ou o JSON fica manualmente sincronizado, ou marcar no JSON `lifecycle.invalidatedBy: new_plan` até novo plan-agent.
|
|
@@ -488,8 +491,9 @@ Antes de finalizar a resposta ao utilizador, o agente **deve** percorrer este ga
|
|
|
488
491
|
14. **Cobertura R-ID:** se `SPEC.md` contiver tabela de requisitos com IDs `R-NN` e status `v1`/`v2`, cada R-ID em escopo deve ter ao menos um critério A* mapeado em **Aceite vinculado:** de alguma tarefa — rastrear `R-NN → A* → Tn`. R-IDs com `v1`/`v2` sem nenhuma tarefa associada = falha do gate; documentar como gap explícito quando intencional (ex.: `<!-- R-03: adiado para próximo ciclo -->`).
|
|
489
492
|
15. **Contexto estruturado:** se houver pack do workflow `plan`, as lacunas e conflitos críticos do pack aparecem na autoavaliação do plano ou são explicitamente dados como resolvidos durante a leitura direta.
|
|
490
493
|
16. **Implementation contract:** toda tarefa mutável deve aparecer em `IMPLEMENTATION-PACK.json` com `exact_paths`, `symbols`, `contracts`, `write_set: "closed"`, `expected_checks` e `ready: true`. Path com `...`, símbolo indefinido ou contrato ausente = falha do gate.
|
|
491
|
-
17. **Reference anchors:** toda referência `external-ref`, "copiar do predecessor", "usar layout X" ou equivalente deve aparecer em `REFERENCE-ANCHORS.md` com `status: resolved`. Âncora crítica em `missing|stale|conflicting` = falha do gate.
|
|
492
|
-
|
|
494
|
+
17. **Reference anchors:** toda referência `external-ref`, "copiar do predecessor", "usar layout X" ou equivalente deve aparecer em `REFERENCE-ANCHORS.md` com `status: resolved`. Âncora crítica em `missing|stale|conflicting` = falha do gate.
|
|
495
|
+
17a. **Visual anchors:** se a SPEC ou UI-SPEC depender de imagem/screenshot/mockup, todo requisito visual crítico deve ter `VISUAL-INPUTS` pronto e anchor visual `resolved`. `chat_attachment_only` sem extração textual suficiente = falha do gate.
|
|
496
|
+
18. **Fixture coverage:** toda tarefa de parser/layout/integração/transformação/fila/migração/builder deve ter fixture `ready` em `FIXTURE-PACK.json`, salvo `not_applicable` explicitamente justificado. Ausência de fixture em tarefa de risco = falha do gate.
|
|
493
497
|
19. **Confiança > 90 de verdade:** `Confiança > 90%` só é válida se `IMPLEMENTATION-PACK`, `REFERENCE-ANCHORS` e `FIXTURE-PACK` estiverem íntegros e sem `critical_gap` aberto. Caso contrário, reduzir a confiança para `<= 90%` e recomendar refino.
|
|
494
498
|
|
|
495
499
|
Se após correções estruturais persistir ambiguidade de produto: **uma** frase recomendando `oxe:discuss` ou `oxe:spec`.
|
|
@@ -266,8 +266,9 @@
|
|
|
266
266
|
"session_summary",
|
|
267
267
|
"plan",
|
|
268
268
|
"implementation_pack_json",
|
|
269
|
-
"reference_anchors",
|
|
270
|
-
"
|
|
269
|
+
"reference_anchors",
|
|
270
|
+
"visual_inputs_json",
|
|
271
|
+
"fixture_pack_json",
|
|
271
272
|
"runtime",
|
|
272
273
|
"verify",
|
|
273
274
|
"active_run",
|
|
@@ -327,8 +328,9 @@
|
|
|
327
328
|
"runtime",
|
|
328
329
|
"checkpoints",
|
|
329
330
|
"implementation_pack_json",
|
|
330
|
-
|
|
331
|
-
|
|
331
|
+
"reference_anchors",
|
|
332
|
+
"visual_inputs_json",
|
|
333
|
+
"fixture_pack_json"
|
|
332
334
|
],
|
|
333
335
|
"optional_artifacts": [
|
|
334
336
|
"plan",
|
|
@@ -350,10 +352,11 @@
|
|
|
350
352
|
"state",
|
|
351
353
|
"runtime",
|
|
352
354
|
"checkpoints",
|
|
353
|
-
"plan",
|
|
354
|
-
"implementation_pack_json",
|
|
355
|
-
"reference_anchors",
|
|
356
|
-
"
|
|
355
|
+
"plan",
|
|
356
|
+
"implementation_pack_json",
|
|
357
|
+
"reference_anchors",
|
|
358
|
+
"visual_inputs_json",
|
|
359
|
+
"fixture_pack_json",
|
|
357
360
|
"quick",
|
|
358
361
|
"phase_summary"
|
|
359
362
|
],
|
|
@@ -361,10 +364,11 @@
|
|
|
361
364
|
"state",
|
|
362
365
|
"runtime",
|
|
363
366
|
"checkpoints",
|
|
364
|
-
"plan",
|
|
365
|
-
"implementation_pack_json",
|
|
366
|
-
"reference_anchors",
|
|
367
|
-
"
|
|
367
|
+
"plan",
|
|
368
|
+
"implementation_pack_json",
|
|
369
|
+
"reference_anchors",
|
|
370
|
+
"visual_inputs_json",
|
|
371
|
+
"fixture_pack_json",
|
|
368
372
|
"quick",
|
|
369
373
|
"phase_summary",
|
|
370
374
|
"session_summary",
|
|
@@ -380,8 +384,10 @@
|
|
|
380
384
|
"plan",
|
|
381
385
|
"implementation_pack_md",
|
|
382
386
|
"implementation_pack_json",
|
|
383
|
-
"reference_anchors",
|
|
384
|
-
"
|
|
387
|
+
"reference_anchors",
|
|
388
|
+
"visual_inputs_md",
|
|
389
|
+
"visual_inputs_json",
|
|
390
|
+
"fixture_pack_md",
|
|
385
391
|
"fixture_pack_json",
|
|
386
392
|
"quick",
|
|
387
393
|
"active_run",
|
|
@@ -543,8 +549,10 @@
|
|
|
543
549
|
"calibration",
|
|
544
550
|
"implementation_pack_md",
|
|
545
551
|
"implementation_pack_json",
|
|
546
|
-
"reference_anchors",
|
|
547
|
-
"
|
|
552
|
+
"reference_anchors",
|
|
553
|
+
"visual_inputs_md",
|
|
554
|
+
"visual_inputs_json",
|
|
555
|
+
"fixture_pack_md",
|
|
548
556
|
"fixture_pack_json"
|
|
549
557
|
],
|
|
550
558
|
"context_tiers": {
|
|
@@ -566,8 +574,9 @@
|
|
|
566
574
|
"capabilities_index",
|
|
567
575
|
"checkpoints",
|
|
568
576
|
"implementation_pack_json",
|
|
569
|
-
|
|
570
|
-
|
|
577
|
+
"reference_anchors",
|
|
578
|
+
"visual_inputs_json",
|
|
579
|
+
"fixture_pack_json"
|
|
571
580
|
],
|
|
572
581
|
"full": [
|
|
573
582
|
"state",
|
|
@@ -582,10 +591,12 @@
|
|
|
582
591
|
"azure_inventory",
|
|
583
592
|
"checkpoints",
|
|
584
593
|
"calibration",
|
|
585
|
-
"implementation_pack_md",
|
|
586
|
-
"implementation_pack_json",
|
|
587
|
-
"reference_anchors",
|
|
588
|
-
"
|
|
594
|
+
"implementation_pack_md",
|
|
595
|
+
"implementation_pack_json",
|
|
596
|
+
"reference_anchors",
|
|
597
|
+
"visual_inputs_md",
|
|
598
|
+
"visual_inputs_json",
|
|
599
|
+
"fixture_pack_md",
|
|
589
600
|
"fixture_pack_json"
|
|
590
601
|
]
|
|
591
602
|
},
|
|
@@ -611,9 +622,11 @@
|
|
|
611
622
|
"state",
|
|
612
623
|
"spec"
|
|
613
624
|
],
|
|
614
|
-
"optional_artifacts": [
|
|
615
|
-
"plan",
|
|
616
|
-
"
|
|
625
|
+
"optional_artifacts": [
|
|
626
|
+
"plan",
|
|
627
|
+
"visual_inputs_md",
|
|
628
|
+
"visual_inputs_json",
|
|
629
|
+
"project_summary",
|
|
617
630
|
"session_summary",
|
|
618
631
|
"phase_summary",
|
|
619
632
|
"capabilities_index"
|
|
@@ -775,10 +788,12 @@
|
|
|
775
788
|
"state"
|
|
776
789
|
],
|
|
777
790
|
"optional_artifacts": [
|
|
778
|
-
"discuss",
|
|
779
|
-
"spec",
|
|
780
|
-
"investigations_index",
|
|
781
|
-
"
|
|
791
|
+
"discuss",
|
|
792
|
+
"spec",
|
|
793
|
+
"investigations_index",
|
|
794
|
+
"visual_inputs_md",
|
|
795
|
+
"visual_inputs_json",
|
|
796
|
+
"project_summary",
|
|
782
797
|
"session_summary",
|
|
783
798
|
"phase_summary",
|
|
784
799
|
"codebase_overview",
|
package/oxe/workflows/spec.md
CHANGED
|
@@ -48,6 +48,14 @@ Se **`.oxe/config.json`** tiver `discuss_before_plan: true`: mencionar no final
|
|
|
48
48
|
- interações mínimas esperadas;
|
|
49
49
|
- regras objetivas de responsividade e acessibilidade;
|
|
50
50
|
- critérios de aceite verificáveis por comportamento visível, não só por intenção narrativa.
|
|
51
|
+
|
|
52
|
+
**Entradas visuais / imagens anexadas:** quando o usuário enviar ou mencionar imagem, screenshot, mockup, wireframe ou anexo visual:
|
|
53
|
+
- deixar explícito que a inspeção visual depende do runtime hospedeiro (Copilot/Claude/Codex/etc.) e do modelo ativo;
|
|
54
|
+
- se o runtime permitir ver a imagem, antes de escrever requisitos gerar `.oxe/investigations/visual/VISUAL-INPUTS.md` e `.oxe/investigations/visual/VISUAL-INPUTS.json` usando `oxe/templates/VISUAL-INPUTS.template.*`;
|
|
55
|
+
- se o runtime não permitir ver a imagem, registrar `inspection_status: unavailable`, não inventar detalhes e pedir descrição textual quando a imagem for crítica;
|
|
56
|
+
- tratar anexo efêmero de chat como `reproducibility: chat_attachment_only`, salvo se houver arquivo local/materializado;
|
|
57
|
+
- requisitos derivados de imagem devem apontar para `VI-*` e para um anchor visual em `REFERENCE-ANCHORS` no plano;
|
|
58
|
+
- imagem crítica para UI, layout, fluxo ou regra funcional sem extração textual suficiente deve virar bloqueio explícito para `execute`.
|
|
51
59
|
|
|
52
60
|
**Resolução de sessão:** antes de ler ou escrever artefatos desta trilha, resolver `active_session` em `.oxe/STATE.md` conforme `oxe/workflows/references/session-path-resolution.md`. Com sessão ativa:
|
|
53
61
|
- `SPEC.md`, `ROADMAP.md` e `DISCUSS.md` vivem em `.oxe/<active_session>/spec/`
|
|
@@ -55,19 +63,21 @@ Se **`.oxe/config.json`** tiver `discuss_before_plan: true`: mencionar no final
|
|
|
55
63
|
- `LESSONS.md` continua global em `.oxe/global/LESSONS.md`
|
|
56
64
|
- sem sessão ativa, manter o modo legado na raiz `.oxe/`
|
|
57
65
|
|
|
58
|
-
Ler no início:
|
|
66
|
+
Ler no início:
|
|
59
67
|
- `.oxe/STATE.md` — fase atual, decisões, workstream ativo
|
|
60
68
|
- `EXECUTION-RUNTIME.md`, `CHECKPOINTS.md` e `memory/` do escopo ativo se existirem — usar como contexto auxiliar, nunca como substituto da SPEC
|
|
61
69
|
- `.oxe/codebase/OVERVIEW.md` e `STACK.md` se existirem — não contradizer o repo
|
|
62
70
|
- **OBS do escopo ativo** — se houver entradas `pendente` com impacto `spec` ou `all`, incorporá-las na Fase 3 (Requisitos) e marcá-las `incorporada → spec (data)` após uso
|
|
63
71
|
- **`.oxe/global/LESSONS.md`** — se existir, ler entradas com `Aplicar em: spec` e status `ativo`. **Priorizar entradas com `Frequência >= 2` ou `Impacto: alto`** — aplicar como restrições explícitas. Entradas com `Frequência: 1` e `Impacto: baixo` são contexto secundário. Usar durante a Fase 1 (perguntas) e Fase 3 (requisitos). Exemplo: se uma lição diz "perguntar explicitamente sobre integração com X", adicionar essa pergunta no Bloco B da Fase 1.
|
|
64
|
-
- `.oxe/CAPABILITIES.md` e `.oxe/INVESTIGATIONS.md` — usar para sugerir capacidades e pesquisas já existentes antes de abrir novas lacunas
|
|
72
|
+
- `.oxe/CAPABILITIES.md` e `.oxe/INVESTIGATIONS.md` — usar para sugerir capacidades e pesquisas já existentes antes de abrir novas lacunas
|
|
73
|
+
- `.oxe/investigations/visual/VISUAL-INPUTS.md|json` — se existirem ou se houver imagem/anexo no chat, usar como fonte visual estruturada; quando ausentes e imagem for crítica, gerar antes de fechar a SPEC
|
|
65
74
|
- Se o problema tocar Azure, ler `.oxe/cloud/azure/profile.json`, `auth-status.json` e `INVENTORY.md` antes de fechar requisitos; se o inventário estiver ausente ou stale, exigir discovery via `oxe-cc azure sync` antes de consolidar a spec
|
|
66
75
|
|
|
67
76
|
**Brownfield (COBOL, JCL, copybooks, VB6, SP):** quando o objetivo for documentar ou planear migração, ver **`oxe/workflows/references/legacy-brownfield.md`** — épicos por trilha, critérios A* verificáveis por Grep/leitura/checklist.
|
|
68
77
|
|
|
69
|
-
Usar templates: **`oxe/templates/SPEC.template.md`** e **`oxe/templates/ROADMAP.template.md`**.
|
|
70
|
-
|
|
78
|
+
Usar templates: **`oxe/templates/SPEC.template.md`** e **`oxe/templates/ROADMAP.template.md`**.
|
|
79
|
+
Para entradas visuais, usar também **`oxe/templates/VISUAL-INPUTS.template.md`** e **`oxe/templates/VISUAL-INPUTS.template.json`**.
|
|
80
|
+
</context>
|
|
71
81
|
|
|
72
82
|
<fase_1_perguntas>
|
|
73
83
|
## Fase 1 — Perguntas
|
|
@@ -101,14 +111,15 @@ Usar templates: **`oxe/templates/SPEC.template.md`** e **`oxe/templates/ROADMAP.
|
|
|
101
111
|
- Rodada 3 (máx): apenas se ainda houver ambiguidade crítica
|
|
102
112
|
- Após rodada 3: avançar para Fase 2 mesmo com suposições explícitas
|
|
103
113
|
|
|
104
|
-
**Ao final:** "Acho que entendi completamente. Confirma antes de avançarmos para pesquisa/requisitos? [resumo em 3-5 bullets]"
|
|
105
|
-
|
|
106
|
-
**Registar incertezas estruturadas:** ao fim de cada rodada, consolidar:
|
|
114
|
+
**Ao final:** "Acho que entendi completamente. Confirma antes de avançarmos para pesquisa/requisitos? [resumo em 3-5 bullets]"
|
|
115
|
+
|
|
116
|
+
**Registar incertezas estruturadas:** ao fim de cada rodada, consolidar:
|
|
107
117
|
- o que já está estável;
|
|
108
118
|
- o que segue ambíguo;
|
|
109
119
|
- quais evidências faltam;
|
|
110
120
|
- quais riscos podem reduzir a confiança do plano.
|
|
111
|
-
- quais anchors, fixtures ou investigações serão obrigatórios para permitir `Confiança > 90%` no plano.
|
|
121
|
+
- quais anchors, fixtures ou investigações serão obrigatórios para permitir `Confiança > 90%` no plano.
|
|
122
|
+
- se houver imagem/anexo visual: quais elementos foram inspecionados, quais ficaram ambíguos e se `VISUAL-INPUTS` está `ready`, `partial` ou `blocked`.
|
|
112
123
|
</fase_1_perguntas>
|
|
113
124
|
|
|
114
125
|
<fase_2_pesquisa>
|
package/oxe/workflows/ui-spec.md
CHANGED
|
@@ -14,11 +14,12 @@ Produzir **`.oxe/UI-SPEC.md`**: contrato de UI/UX derivado de **`.oxe/SPEC.md`**
|
|
|
14
14
|
- Se o projeto **não** tiver interface (só API/CLI/backend), não gerar UI-SPEC; indicar no chat que esta vertical não se aplica.
|
|
15
15
|
- Não substituir a SPEC: UI-SPEC **refina** entrega visual/UX alinhada aos **A***.
|
|
16
16
|
- Secções obrigatórias em `UI-SPEC.md`: **Âmbito** (ecrãs/componentes), **Design system**, **Tokens**, **Estados** (vazio/carregamento/erro/sucesso), **Copywriting**, **Acessibilidade** (foco, labels, teclado), **Breakpoints**, **Registry safety** e **Checker sign-off**.
|
|
17
|
+
- Se existir `.oxe/investigations/visual/VISUAL-INPUTS.md|json`, usar como fonte primária para layout, hierarquia visual, componentes, copy, estados inferidos e ambiguidades. Cada decisão derivada de imagem deve citar `VI-*`; não inferir detalhes não visíveis.
|
|
17
18
|
- Agentes úteis: `oxe-ui-researcher` cria o contrato; `oxe-ui-checker` valida se ele é implementável antes do plano.
|
|
18
|
-
</context>
|
|
19
|
+
</context>
|
|
19
20
|
|
|
20
21
|
<process>
|
|
21
|
-
1. Resolver `active_session` conforme `session-path-resolution.md`; ler `SPEC.md` do escopo resolvido e, se existirem, `OVERVIEW.md` / `CONVENTIONS.md` em `.oxe/codebase
|
|
22
|
+
1. Resolver `active_session` conforme `session-path-resolution.md`; ler `SPEC.md` do escopo resolvido e, se existirem, `OVERVIEW.md` / `CONVENTIONS.md` em `.oxe/codebase/` e `VISUAL-INPUTS.md|json`.
|
|
22
23
|
2. Criar ou atualizar **`UI-SPEC.md`** em `.oxe/<active_session>/spec/` (ou `.oxe/` legado) com as secções acima preenchidas de forma verificável (checklist ou critérios numerados **U1**, **U2**… opcionais). Se componente externo/registry for citado, registrar origem, inspeção mínima e risco.
|
|
23
24
|
3. Atualizar **`.oxe/STATE.md`** global: nota de fase ou próximo passo `oxe:plan` (se ainda não há PLAN) ou manter `oxe:execute` se o plano já referencia UI.
|
|
24
25
|
4. Resumo no chat: o que ficou no UI-SPEC e como o **`/oxe-plan`** deve citar as secções (ex.: “cumprir UI-SPEC §2”).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oxe-cc",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0",
|
|
4
4
|
"description": "OXE — spec-driven workflows in .oxe/ with runtime enterprise, evidence-first verification and multi-runtime integrations (npx)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "",
|
|
@@ -71,13 +71,16 @@
|
|
|
71
71
|
"test:root": "node --test tests/install.test.cjs tests/oxe-project-health.test.cjs tests/oxe-dashboard.test.cjs tests/oxe-operational.test.cjs tests/oxe-azure.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 tests/oxe-retro-health.test.cjs tests/oxe-security-permissions.test.cjs tests/oxe-runtime-semantics.test.cjs tests/oxe-plugins.test.cjs",
|
|
72
72
|
"test:runtime": "cd packages/runtime && npm test",
|
|
73
73
|
"test:runtime-smoke": "node scripts/runtime-smoke-matrix.cjs",
|
|
74
|
+
"test:runtime-real": "node scripts/runtime-real-suite.cjs",
|
|
74
75
|
"test:recovery-fixtures": "node scripts/run-recovery-fixtures.cjs",
|
|
75
76
|
"test:multi-agent-soak": "node scripts/run-multi-agent-soak.cjs",
|
|
76
|
-
"test": "
|
|
77
|
+
"test:multi-agent-real": "node scripts/run-multi-agent-real.cjs",
|
|
78
|
+
"test": "npm run build:runtime && npm run test:root && npm run test:runtime && npm run test:runtime-smoke && npm run test:runtime-real && npm run test:recovery-fixtures && npm run test:multi-agent-soak && npm run test:multi-agent-real",
|
|
77
79
|
"test:coverage": "c8 --check-coverage --lines 82 --functions 85 --branches 58 --statements 82 npm test",
|
|
78
80
|
"scan:assets": "node scripts/oxe-assets-scan.cjs",
|
|
81
|
+
"release:pack-check": "node scripts/release-pack-check.cjs",
|
|
79
82
|
"build:vscode-ext": "cd vscode-extension && npx @vscode/vsce package --no-yarn --allow-missing-repository",
|
|
80
|
-
"prepublishOnly": "npm test && npm run scan:assets && npm run build:vscode-ext && npm run release:manifest && node bin/oxe-cc.js --version"
|
|
83
|
+
"prepublishOnly": "npm test && npm run scan:assets && npm run build:vscode-ext && npm run release:manifest && npm run release:pack-check && node bin/oxe-cc.js --version"
|
|
81
84
|
},
|
|
82
85
|
"c8": {
|
|
83
86
|
"all": true,
|