wize-dev-kit 0.7.2 → 0.8.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/CHANGELOG.md +22 -0
- package/README.md +20 -1
- package/README.pt-BR.md +20 -1
- package/adapters/README.md +1 -1
- package/adapters/codex/README.md +1 -1
- package/adapters/codex/adapter.yaml +2 -2
- package/adapters/codex/render.js +2 -2
- package/adapters/kimi-code/render.js +2 -2
- package/adapters/opencode/render.js +27 -1
- package/docs/harnesses/antigravity.md +20 -0
- package/docs/harnesses/antigravity.pt-BR.md +20 -0
- package/docs/harnesses/claude-code.md +23 -0
- package/docs/harnesses/claude-code.pt-BR.md +23 -0
- package/docs/harnesses/codex.md +21 -0
- package/docs/harnesses/codex.pt-BR.md +21 -0
- package/docs/harnesses/continue.md +21 -0
- package/docs/harnesses/continue.pt-BR.md +21 -0
- package/docs/harnesses/cursor.md +22 -0
- package/docs/harnesses/cursor.pt-BR.md +22 -0
- package/docs/harnesses/generic.md +20 -0
- package/docs/harnesses/generic.pt-BR.md +20 -0
- package/docs/harnesses/kimi-code.md +19 -0
- package/docs/harnesses/kimi-code.pt-BR.md +19 -0
- package/docs/harnesses/opencode.md +31 -0
- package/docs/harnesses/opencode.pt-BR.md +31 -0
- package/docs/harnesses/windsurf.md +22 -0
- package/docs/harnesses/windsurf.pt-BR.md +22 -0
- package/package.json +2 -1
- package/src/core-skills/wize-review-adversarial/skill.md +1 -0
- package/src/core-skills/wize-review-edge-case-hunter/skill.md +1 -0
- package/src/method-skills/4-implementation/wize-agent-dev/persona.md +12 -0
- package/src/method-skills/4-implementation/wize-code-review/steps/step-02-review.md +2 -0
- package/src/method-skills/4-implementation/wize-dev-story/workflow.md +1 -1
- package/src/method-skills/4-implementation/wize-quick-dev/workflow.md +1 -1
- package/src/orchestrator-skills/wize-orchestrator/agent.yaml +1 -0
- package/src/orchestrator-skills/wize-orchestrator/persona.md +14 -0
- package/tools/installer/commands/doctor.js +1 -1
- package/tools/installer/render-shared.js +4 -0
- package/tools/installer/setup-helpers.js +1 -1
- package/tools/installer/wize-cli.js +3 -31
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,28 @@ Format inspired by [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
+
## [0.8.0] — 2026-07-04
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **OpenCode: commands agora rodam sob a persona dona.** O adapter deriva `agent: <code>` do `owner:` de cada workflow/skill (código, nome de exibição ou combinações "X + Y"), então `/wize-dev-story` já ativa o system prompt da Shuri em vez de depender de qual agente estava ativo.
|
|
13
|
+
- **OpenCode: fan-out isolado nativamente.** `wize-review-adversarial` e `wize-review-edge-case-hunter` — os dois workers nomeados que o `wize-code-review` dispara em paralelo — ganham `subtask: true`, isolando-os do contexto de quem invoca independentemente do chamador.
|
|
14
|
+
- **Escada de reuso (YAGNI) na persona da Shuri.** Antes de escrever código novo: precisa existir? já está no repo? a stdlib resolve? é nativo da plataforma? uma dependência instalada resolve? é uma linha? Só então código novo — referenciada por `wize-dev-story` e `wize-quick-dev`.
|
|
15
|
+
- **Padrão de fan-out de subagentes documentado na persona do Wizer**, generalizado a partir do `wize-code-review`: nomear cada worker, escopar contexto, despachar pela primitiva nativa do harness (Task/Agent tool no Claude Code; `mode`/`subtask` no OpenCode; geração de prompts + fallback manual nos demais), tolerar falha parcial.
|
|
16
|
+
- **`docs/harnesses/`** — um doc por harness suportada (9 adapters, em inglês + pt-BR), com overview curto e tabela no README apontando pra cada um. `package.json` passa a publicar `docs/` no pacote npm.
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- **Instalador não tenta mais abrir a harness detectada ao final do `install`.** Em vez do prompt "abrir agora com Wizer?", sugere o comando inicial certo pro estado do repo (greenfield/brownfield) via `composeOnboarding`.
|
|
21
|
+
- Comentário desatualizado no adapter do Kimi Code, que ainda citava o path antigo do Codex (`.codex/skills/`).
|
|
22
|
+
|
|
23
|
+
## [0.7.3] — 2026-06-27
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
|
|
27
|
+
- **Codex adapter alinhado com a documentação pública da OpenAI.** O target `codex` voltou a renderizar skills em `.agents/skills/`, que é o diretório documentado para skills locais de repositório no Codex. A regressão em `0.7.2` tinha movido a saída para `.codex/skills/`, o que quebrou o carregamento das skills no harness real.
|
|
28
|
+
- **Doctor, smoke tests e `.gitignore` corrigidos para o path canônico do Codex.**
|
|
29
|
+
|
|
8
30
|
## [0.7.2] — 2026-06-27
|
|
9
31
|
|
|
10
32
|
### Fixed
|
package/README.md
CHANGED
|
@@ -66,6 +66,24 @@ After install, open your IDE and say:
|
|
|
66
66
|
|
|
67
67
|
---
|
|
68
68
|
|
|
69
|
+
## Supported harnesses
|
|
70
|
+
|
|
71
|
+
All 9 IDE targets render from the same source; format and mechanics differ per harness. **OpenCode** gets the deepest integration — the kit's persona/workflow split maps onto OpenCode's own primitives (`mode: primary|subagent`, `agent:`, `subtask:`) instead of being flattened into one file type.
|
|
72
|
+
|
|
73
|
+
| Harness | Output | Notable |
|
|
74
|
+
|---|---|---|
|
|
75
|
+
| **OpenCode** 🆕 | `.opencode/agents/` + `.opencode/commands/` | Native `mode: primary\|subagent`; commands auto-bind to their owning persona (`agent:`); fan-out workers run isolated (`subtask: true`). [Docs →](docs/harnesses/opencode.md) |
|
|
76
|
+
| **Claude Code** | `.claude/skills/*/SKILL.md` | Anthropic Skill format; ad-hoc Task/Agent-tool fan-out (`wize-code-review`). [Docs →](docs/harnesses/claude-code.md) |
|
|
77
|
+
| **Codex** | `.agents/skills/*/SKILL.md` | Same Skill format + root `AGENTS.md`. [Docs →](docs/harnesses/codex.md) |
|
|
78
|
+
| **Kimi Code** | `.kimi/skills/*/SKILL.md` | Same Skill format; auto-detects Claude/Codex skill trees. [Docs →](docs/harnesses/kimi-code.md) |
|
|
79
|
+
| **Antigravity** | `.agent/skills/*/SKILL.md` | Same Skill format + root `AGENTS.md`. [Docs →](docs/harnesses/antigravity.md) |
|
|
80
|
+
| **Cursor** | `.cursor/rules/*.mdc` | On-demand rules (`alwaysApply: false`), matched by description. [Docs →](docs/harnesses/cursor.md) |
|
|
81
|
+
| **Windsurf** | `.windsurf/rules/*.md` | Plain markdown; activation mode set inside the IDE. [Docs →](docs/harnesses/windsurf.md) |
|
|
82
|
+
| **Continue.dev** | `.continue/prompts/*.prompt` | `invokable: true` slash commands. [Docs →](docs/harnesses/continue.md) |
|
|
83
|
+
| **Generic fallback** | `.wize/agents/*.md` + root `AGENTS.md` | For any IDE without a dedicated adapter. [Docs →](docs/harnesses/generic.md) |
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
69
87
|
## The roster
|
|
70
88
|
|
|
71
89
|
| # | Persona | Code | Role |
|
|
@@ -203,12 +221,13 @@ npx wize-dev-kit uninstall # remove .wize/ (your code is left untouched)
|
|
|
203
221
|
- [`ROSTER.md`](ROSTER.md) — personas with style, role, BMAD equivalences.
|
|
204
222
|
- [`DECISIONS.md`](DECISIONS.md) — decisions log.
|
|
205
223
|
- [`CHANGELOG.md`](CHANGELOG.md) — release history.
|
|
224
|
+
- [`docs/harnesses/`](docs/harnesses/) — one doc per [supported harness](#supported-harnesses), in English + [pt-BR](README.pt-BR.md#harnesses-suportadas).
|
|
206
225
|
|
|
207
226
|
---
|
|
208
227
|
|
|
209
228
|
## Status
|
|
210
229
|
|
|
211
|
-
**v0.
|
|
230
|
+
**v0.8.0 — beta.** The full lifecycle (analysis → plan → solution → implementation) is wired with 10 agents and a structured skill library. The `security-overlay` (AI Pentester) ships a complete pentest pipeline, a stakeholder report (risk score + briefing + AI action plan), and post-scan remediation planning — validated end-to-end against a real Laravel/PHP app. IDE adapters for Claude Code, Cursor, Windsurf, Codex, Continue, Kimi Code, OpenCode, and Antigravity are regenerated automatically — [OpenCode](docs/harnesses/opencode.md) gets native `mode`/`agent`/`subtask` wiring, the deepest integration of the 9.
|
|
212
231
|
|
|
213
232
|
---
|
|
214
233
|
|
package/README.pt-BR.md
CHANGED
|
@@ -66,6 +66,24 @@ Após instalar, abra sua IDE e diga:
|
|
|
66
66
|
|
|
67
67
|
---
|
|
68
68
|
|
|
69
|
+
## Harnesses suportadas
|
|
70
|
+
|
|
71
|
+
Os 9 alvos de IDE são gerados a partir da mesma fonte; formato e mecânica mudam por harness. O **OpenCode** tem a integração mais profunda — a divisão persona/workflow do kit mapeia pras primitivas nativas do próprio OpenCode (`mode: primary|subagent`, `agent:`, `subtask:`) em vez de ser achatada num único tipo de arquivo.
|
|
72
|
+
|
|
73
|
+
| Harness | Saída | Destaque |
|
|
74
|
+
|---|---|---|
|
|
75
|
+
| **OpenCode** 🆕 | `.opencode/agents/` + `.opencode/commands/` | `mode: primary\|subagent` nativo; commands se ligam à persona dona (`agent:`); workers de fan-out rodam isolados (`subtask: true`). [Docs →](docs/harnesses/opencode.pt-BR.md) |
|
|
76
|
+
| **Claude Code** | `.claude/skills/*/SKILL.md` | Formato Skill da Anthropic; fan-out ad hoc via Task/Agent tool (`wize-code-review`). [Docs →](docs/harnesses/claude-code.pt-BR.md) |
|
|
77
|
+
| **Codex** | `.agents/skills/*/SKILL.md` | Mesmo formato Skill + `AGENTS.md` na raiz. [Docs →](docs/harnesses/codex.pt-BR.md) |
|
|
78
|
+
| **Kimi Code** | `.kimi/skills/*/SKILL.md` | Mesmo formato Skill; autodetecta as árvores do Claude/Codex. [Docs →](docs/harnesses/kimi-code.pt-BR.md) |
|
|
79
|
+
| **Antigravity** | `.agent/skills/*/SKILL.md` | Mesmo formato Skill + `AGENTS.md` na raiz. [Docs →](docs/harnesses/antigravity.pt-BR.md) |
|
|
80
|
+
| **Cursor** | `.cursor/rules/*.mdc` | Rules sob demanda (`alwaysApply: false`), casadas por descrição. [Docs →](docs/harnesses/cursor.pt-BR.md) |
|
|
81
|
+
| **Windsurf** | `.windsurf/rules/*.md` | Markdown puro; modo de ativação definido dentro da IDE. [Docs →](docs/harnesses/windsurf.pt-BR.md) |
|
|
82
|
+
| **Continue.dev** | `.continue/prompts/*.prompt` | Slash commands via `invokable: true`. [Docs →](docs/harnesses/continue.pt-BR.md) |
|
|
83
|
+
| **Fallback genérico** | `.wize/agents/*.md` + `AGENTS.md` na raiz | Para qualquer IDE sem adapter dedicado. [Docs →](docs/harnesses/generic.pt-BR.md) |
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
69
87
|
## O elenco
|
|
70
88
|
|
|
71
89
|
| # | Persona | Código | Papel |
|
|
@@ -203,12 +221,13 @@ npx wize-dev-kit uninstall # remove .wize/ (seu código permanece intacto)
|
|
|
203
221
|
- [`ROSTER.md`](ROSTER.md) — personas com estilo, papel, equivalências BMAD.
|
|
204
222
|
- [`DECISIONS.md`](DECISIONS.md) — log de decisões.
|
|
205
223
|
- [`CHANGELOG.md`](CHANGELOG.md) — histórico de releases.
|
|
224
|
+
- [`docs/harnesses/`](docs/harnesses/) — um doc por [harness suportada](#harnesses-suportadas), em português + [English](README.md#supported-harnesses).
|
|
206
225
|
|
|
207
226
|
---
|
|
208
227
|
|
|
209
228
|
## Status
|
|
210
229
|
|
|
211
|
-
**v0.
|
|
230
|
+
**v0.8.0 — beta.** O ciclo completo (análise → plano → solução → implementação) está montado com 10 agentes e uma biblioteca estruturada de skills. O `security-overlay` (Pentester de IA) entrega um pipeline de pentest completo, um relatório executivo (score de risco + briefing + plano de ação por IA) e planejamento de correção pós-scan — validado de ponta a ponta contra uma aplicação Laravel/PHP real. Os adapters de IDE para Claude Code, Cursor, Windsurf, Codex, Continue, Kimi Code, OpenCode e Antigravity são regenerados automaticamente — o [OpenCode](docs/harnesses/opencode.pt-BR.md) tem a integração mais profunda das 9, com `mode`/`agent`/`subtask` nativos.
|
|
212
231
|
|
|
213
232
|
---
|
|
214
233
|
|
package/adapters/README.md
CHANGED
|
@@ -9,7 +9,7 @@ Each adapter renders the kit's agents/skills/workflows into the file layout that
|
|
|
9
9
|
| `claude-code` | `.claude/skills/wize-*/` | `SKILL.md` per agent/workflow | Default. Uses Claude Code skill folder pattern. |
|
|
10
10
|
| `cursor` | `.cursor/rules/wize-*.mdc` | MDC | Each agent/skill becomes a rule file. |
|
|
11
11
|
| `windsurf` | `.windsurf/agents/wize-*.md` | Markdown | Cascade-friendly. |
|
|
12
|
-
| `codex` | `.
|
|
12
|
+
| `codex` | `.agents/skills/wize-*/` | `SKILL.md` per agent/workflow | OpenAI Codex. |
|
|
13
13
|
| `continue` | `.continue/agents/wize-*.md` | Markdown | Continue agent slot. |
|
|
14
14
|
| `kimi-code` | `.kimi/agents/wize-*.md` | Markdown | Moonshot Kimi Code. |
|
|
15
15
|
| `opencode` | `.opencode/agents/wize-*.md` | Markdown | OpenCode CLI. |
|
package/adapters/codex/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
code: codex
|
|
2
|
-
description: "OpenAI Codex agent skills (.
|
|
3
|
-
target_path: ".
|
|
2
|
+
description: "OpenAI Codex agent skills (.agents/skills/, Anthropic-compatible)."
|
|
3
|
+
target_path: ".agents/skills/"
|
|
4
4
|
file_pattern: "wize-*/SKILL.md"
|
|
5
5
|
file_format: markdown
|
|
6
6
|
hooks:
|
package/adapters/codex/render.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// OpenAI Codex adapter — emits .
|
|
1
|
+
// OpenAI Codex adapter — emits .agents/skills/wize-{code}/SKILL.md per asset.
|
|
2
2
|
// Codex shares the Anthropic SKILL.md format and also reads the root AGENTS.md.
|
|
3
3
|
|
|
4
4
|
'use strict';
|
|
@@ -7,7 +7,7 @@ const path = require('node:path');
|
|
|
7
7
|
const { renderAnthropicSkills } = require('../../tools/installer/render-shared.js');
|
|
8
8
|
|
|
9
9
|
function render(kitRoot, projectRoot, opts = {}) {
|
|
10
|
-
const targetDir = path.join(projectRoot, '.
|
|
10
|
+
const targetDir = path.join(projectRoot, '.agents', 'skills');
|
|
11
11
|
return renderAnthropicSkills(kitRoot, targetDir, opts);
|
|
12
12
|
}
|
|
13
13
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Moonshot Kimi Code adapter — emits .kimi/skills/wize-{code}/SKILL.md per asset.
|
|
2
2
|
// Kimi Code consumes the Anthropic SKILL.md format verbatim and additionally
|
|
3
|
-
// auto-detects .claude/skills/ and .
|
|
4
|
-
// those adapters is harmless.
|
|
3
|
+
// auto-detects .claude/skills/ and .agents/skills/ (Codex), so installing
|
|
4
|
+
// alongside those adapters is harmless.
|
|
5
5
|
|
|
6
6
|
'use strict';
|
|
7
7
|
|
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
// - .opencode/agents/wize-{code}.md (personas → system prompts)
|
|
3
3
|
// - .opencode/commands/wize-{code}.md (workflows/skills → slash commands)
|
|
4
4
|
// Frontmatter (agents): description, mode (primary|subagent|all)
|
|
5
|
-
// Frontmatter (commands): description,
|
|
5
|
+
// Frontmatter (commands): description, agent (derived from the source's
|
|
6
|
+
// `owner:` field, when it resolves to a known persona), subtask (from the
|
|
7
|
+
// source's `subtask: true`, for skills meant to run isolated regardless of
|
|
8
|
+
// which agent invokes them — e.g. the wize-code-review fan-out workers)
|
|
6
9
|
// Reference: https://opencode.ai/docs/agents/ + /docs/commands/
|
|
7
10
|
|
|
8
11
|
'use strict';
|
|
@@ -11,10 +14,30 @@ const fs = require('node:fs');
|
|
|
11
14
|
const path = require('node:path');
|
|
12
15
|
const { collectAssets, escapeYamlDouble, clipOneLine, ensureDir } = require('../../tools/installer/render-shared.js');
|
|
13
16
|
|
|
17
|
+
// `owner:` in workflow/skill frontmatter is written for humans (agent code,
|
|
18
|
+
// display name, "X + Y" pairings, trailing "# comment"). Resolve it to a
|
|
19
|
+
// single known agent code, or null if it doesn't clearly name one (e.g.
|
|
20
|
+
// builder-skills' `owner: builder`, which isn't a persona).
|
|
21
|
+
function resolveOwnerAgentCode(ownerRaw, agents) {
|
|
22
|
+
if (!ownerRaw) return null;
|
|
23
|
+
const withoutComment = ownerRaw.split('#')[0].trim();
|
|
24
|
+
const primary = withoutComment.split(/\s*\+\s*|,/)[0].trim();
|
|
25
|
+
if (!primary) return null;
|
|
26
|
+
const byCode = agents.find(a => a.code === primary);
|
|
27
|
+
if (byCode) return byCode.code;
|
|
28
|
+
const lower = primary.toLowerCase();
|
|
29
|
+
const byName = agents.find(a => {
|
|
30
|
+
const name = a.name.toLowerCase();
|
|
31
|
+
return name === lower || name.includes(lower) || lower.includes(name.split(' ')[0]);
|
|
32
|
+
});
|
|
33
|
+
return byName ? byName.code : null;
|
|
34
|
+
}
|
|
35
|
+
|
|
14
36
|
function render(kitRoot, projectRoot, opts = {}) {
|
|
15
37
|
const agentsDir = path.join(projectRoot, '.opencode', 'agents');
|
|
16
38
|
const commandsDir = path.join(projectRoot, '.opencode', 'commands');
|
|
17
39
|
const assets = collectAssets(kitRoot, opts);
|
|
40
|
+
const agents = assets.filter(a => a.kind === 'agent');
|
|
18
41
|
const written = [];
|
|
19
42
|
|
|
20
43
|
if (!opts.dryRun) {
|
|
@@ -46,9 +69,12 @@ function render(kitRoot, projectRoot, opts = {}) {
|
|
|
46
69
|
} else {
|
|
47
70
|
// workflow or skill → command
|
|
48
71
|
const desc = clipOneLine(a.description, 180);
|
|
72
|
+
const agentCode = resolveOwnerAgentCode(a.owner, agents);
|
|
49
73
|
const content = [
|
|
50
74
|
'---',
|
|
51
75
|
`description: "${escapeYamlDouble(desc)}"`,
|
|
76
|
+
...(agentCode ? [`agent: ${agentCode}`] : []),
|
|
77
|
+
...(a.subtask ? ['subtask: true'] : []),
|
|
52
78
|
'---',
|
|
53
79
|
'',
|
|
54
80
|
`# ${a.name}`,
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Google Antigravity — Wize Development Kit
|
|
2
|
+
|
|
3
|
+
🌐 **Languages:** **English** · [Português (pt-BR)](antigravity.pt-BR.md)
|
|
4
|
+
|
|
5
|
+
← [Back to README](../../README.md)
|
|
6
|
+
|
|
7
|
+
Antigravity uses the same public Anthropic Skill format as Claude Code and Codex.
|
|
8
|
+
|
|
9
|
+
## Output
|
|
10
|
+
|
|
11
|
+
- `.agent/skills/wize-{code}/SKILL.md` — note the **singular** `.agent`, not `.agents` (that's Codex's directory).
|
|
12
|
+
- A root `AGENTS.md` (shared with Codex, Cursor, and Windsurf).
|
|
13
|
+
|
|
14
|
+
## Notable
|
|
15
|
+
|
|
16
|
+
- `.antigravitycli/` is Antigravity's own CLI state directory and is never touched by the kit — only `.agent/skills/` and `AGENTS.md` are written.
|
|
17
|
+
|
|
18
|
+
## Setup
|
|
19
|
+
|
|
20
|
+
Pick **Antigravity** as an IDE target during `npx wize-dev-kit install` (or add it and re-run `npx wize-dev-kit sync`). Restart Antigravity, then run `/wize-orchestrator` or ask it to read `AGENTS.md`.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Google Antigravity — Wize Development Kit
|
|
2
|
+
|
|
3
|
+
🌐 **Idiomas:** [English](antigravity.md) · **Português (pt-BR)**
|
|
4
|
+
|
|
5
|
+
← [Voltar ao README](../../README.pt-BR.md)
|
|
6
|
+
|
|
7
|
+
O Antigravity usa o mesmo formato público de Skill da Anthropic que o Claude Code e o Codex.
|
|
8
|
+
|
|
9
|
+
## Saída
|
|
10
|
+
|
|
11
|
+
- `.agent/skills/wize-{code}/SKILL.md` — repare no **singular** `.agent`, não `.agents` (esse é o diretório do Codex).
|
|
12
|
+
- Um `AGENTS.md` na raiz (compartilhado com Codex, Cursor e Windsurf).
|
|
13
|
+
|
|
14
|
+
## Destaques
|
|
15
|
+
|
|
16
|
+
- `.antigravitycli/` é o diretório de estado do próprio CLI do Antigravity e nunca é tocado pelo kit — só `.agent/skills/` e `AGENTS.md` são gravados.
|
|
17
|
+
|
|
18
|
+
## Como ativar
|
|
19
|
+
|
|
20
|
+
Escolha **Antigravity** como alvo de IDE em `npx wize-dev-kit install` (ou adicione depois e rode `npx wize-dev-kit sync`). Reinicie o Antigravity e rode `/wize-orchestrator` ou peça pra ele ler o `AGENTS.md`.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Claude Code — Wize Development Kit
|
|
2
|
+
|
|
3
|
+
🌐 **Languages:** **English** · [Português (pt-BR)](claude-code.pt-BR.md)
|
|
4
|
+
|
|
5
|
+
← [Back to README](../../README.md)
|
|
6
|
+
|
|
7
|
+
Claude Code was the kit's first target and uses the public Anthropic Skill format verbatim.
|
|
8
|
+
|
|
9
|
+
## Output
|
|
10
|
+
|
|
11
|
+
`.claude/skills/wize-{code}/SKILL.md` — one directory per asset (persona, workflow, or skill). YAML frontmatter (`name`, `description`) plus the Markdown body. Companion files a workflow references by relative path (`steps/`, `templates/`, `data/`, `customize.toml`, ...) are copied alongside the `SKILL.md` so those paths resolve.
|
|
12
|
+
|
|
13
|
+
There is no separate "agent" file shape here — personas (Wizer, Shuri, Hawkeye...) and workflows/skills all render to the same `SKILL.md` structure.
|
|
14
|
+
|
|
15
|
+
## Notable
|
|
16
|
+
|
|
17
|
+
- **Discovery is description-based.** Claude Code surfaces installed skills by matching the task at hand against each `description`; you can also invoke one directly by name (`/wize-dev-story`) or ask to "activate Wizer."
|
|
18
|
+
- **Subagent fan-out is ad hoc, not persona-bound.** `wize-code-review` uses Claude Code's own Task/Agent tool to spin up isolated, parallel workers (Blind Hunter, Edge Case Hunter, Acceptance Auditor) for a single review pass. Any skill can do this — it isn't wired to a specific `.claude/agents/*.md` subagent definition, since the kit doesn't emit one.
|
|
19
|
+
- Claude Code does **not** read the root `AGENTS.md` the installer generates (that file is for Codex, Cursor, Windsurf, and Antigravity).
|
|
20
|
+
|
|
21
|
+
## Setup
|
|
22
|
+
|
|
23
|
+
Pick **Claude Code** as an IDE target during `npx wize-dev-kit install` (default). Restart Claude Code, then say *"Activate Wizer and brief him on the project"* or run `/wize-orchestrator`.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Claude Code — Wize Development Kit
|
|
2
|
+
|
|
3
|
+
🌐 **Idiomas:** [English](claude-code.md) · **Português (pt-BR)**
|
|
4
|
+
|
|
5
|
+
← [Voltar ao README](../../README.pt-BR.md)
|
|
6
|
+
|
|
7
|
+
Claude Code foi o primeiro alvo do kit e usa o formato público de Skill da Anthropic ao pé da letra.
|
|
8
|
+
|
|
9
|
+
## Saída
|
|
10
|
+
|
|
11
|
+
`.claude/skills/wize-{code}/SKILL.md` — um diretório por asset (persona, workflow ou skill). Frontmatter YAML (`name`, `description`) mais o corpo em Markdown. Arquivos complementares que um workflow referencia por caminho relativo (`steps/`, `templates/`, `data/`, `customize.toml`, ...) são copiados junto do `SKILL.md` para que esses caminhos resolvam.
|
|
12
|
+
|
|
13
|
+
Não existe um formato separado de "agente" aqui — personas (Wizer, Shuri, Hawkeye...) e workflows/skills viram todos a mesma estrutura de `SKILL.md`.
|
|
14
|
+
|
|
15
|
+
## Destaques
|
|
16
|
+
|
|
17
|
+
- **Descoberta por descrição.** O Claude Code encontra as skills instaladas casando a tarefa em mãos contra cada `description`; também dá pra invocar direto pelo nome (`/wize-dev-story`) ou pedir pra "ativar o Wizer".
|
|
18
|
+
- **Fan-out de subagentes é ad hoc, não amarrado a persona.** O `wize-code-review` usa a própria ferramenta Task/Agent do Claude Code pra levantar workers isolados e paralelos (Blind Hunter, Edge Case Hunter, Acceptance Auditor) numa única passada de review. Qualquer skill pode fazer isso — não está amarrado a uma definição de subagente `.claude/agents/*.md`, já que o kit não gera nenhuma.
|
|
19
|
+
- O Claude Code **não** lê o `AGENTS.md` na raiz que o instalador gera (esse arquivo é pro Codex, Cursor, Windsurf e Antigravity).
|
|
20
|
+
|
|
21
|
+
## Como ativar
|
|
22
|
+
|
|
23
|
+
Escolha **Claude Code** como alvo de IDE em `npx wize-dev-kit install` (padrão). Reinicie o Claude Code e diga *"Ative o Wizer e dê o briefing do projeto a ele"* ou rode `/wize-orchestrator`.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# OpenAI Codex — Wize Development Kit
|
|
2
|
+
|
|
3
|
+
🌐 **Languages:** **English** · [Português (pt-BR)](codex.pt-BR.md)
|
|
4
|
+
|
|
5
|
+
← [Back to README](../../README.md)
|
|
6
|
+
|
|
7
|
+
Codex shares the same Anthropic Skill format as Claude Code and Kimi Code.
|
|
8
|
+
|
|
9
|
+
## Output
|
|
10
|
+
|
|
11
|
+
- `.agents/skills/wize-{code}/SKILL.md` — one directory per persona, workflow, or skill.
|
|
12
|
+
- A root `AGENTS.md` (shared with Cursor, Windsurf, and Antigravity) listing the roster and pointing at `wize-orchestrator` as the entry point.
|
|
13
|
+
|
|
14
|
+
## Notable
|
|
15
|
+
|
|
16
|
+
- `.agents/skills/` is Codex's documented path for repository-local skills — the kit writes there directly, not to a Codex-specific directory.
|
|
17
|
+
- **History:** 0.7.2 briefly moved this output to `.codex/skills/`, which broke skill loading in real Codex sessions; 0.7.3 reverted it to `.agents/skills/`. If you're on an older install, run `npx wize-dev-kit update` to fix the path.
|
|
18
|
+
|
|
19
|
+
## Setup
|
|
20
|
+
|
|
21
|
+
Pick **Codex** as an IDE target during `npx wize-dev-kit install` (or add it and re-run `npx wize-dev-kit sync`). Restart Codex, then run `/wize-orchestrator` or ask it to read `AGENTS.md`.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# OpenAI Codex — Wize Development Kit
|
|
2
|
+
|
|
3
|
+
🌐 **Idiomas:** [English](codex.md) · **Português (pt-BR)**
|
|
4
|
+
|
|
5
|
+
← [Voltar ao README](../../README.pt-BR.md)
|
|
6
|
+
|
|
7
|
+
O Codex usa o mesmo formato de Skill da Anthropic que o Claude Code e o Kimi Code.
|
|
8
|
+
|
|
9
|
+
## Saída
|
|
10
|
+
|
|
11
|
+
- `.agents/skills/wize-{code}/SKILL.md` — um diretório por persona, workflow ou skill.
|
|
12
|
+
- Um `AGENTS.md` na raiz (compartilhado com Cursor, Windsurf e Antigravity) listando o elenco e apontando pro `wize-orchestrator` como ponto de entrada.
|
|
13
|
+
|
|
14
|
+
## Destaques
|
|
15
|
+
|
|
16
|
+
- `.agents/skills/` é o caminho documentado do Codex pra skills locais do repositório — o kit grava lá diretamente, não num diretório específico do Codex.
|
|
17
|
+
- **Histórico:** a 0.7.2 moveu essa saída, por um breve período, para `.codex/skills/`, o que quebrou o carregamento das skills em sessões reais do Codex; a 0.7.3 reverteu para `.agents/skills/`. Se sua instalação é antiga, rode `npx wize-dev-kit update` pra corrigir o caminho.
|
|
18
|
+
|
|
19
|
+
## Como ativar
|
|
20
|
+
|
|
21
|
+
Escolha **Codex** como alvo de IDE em `npx wize-dev-kit install` (ou adicione depois e rode `npx wize-dev-kit sync`). Reinicie o Codex e rode `/wize-orchestrator` ou peça pra ele ler o `AGENTS.md`.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Continue.dev — Wize Development Kit
|
|
2
|
+
|
|
3
|
+
🌐 **Languages:** **English** · [Português (pt-BR)](continue.pt-BR.md)
|
|
4
|
+
|
|
5
|
+
← [Back to README](../../README.md)
|
|
6
|
+
|
|
7
|
+
## Output
|
|
8
|
+
|
|
9
|
+
`.continue/prompts/wize-{code}.prompt` — one file per persona, workflow, or skill.
|
|
10
|
+
|
|
11
|
+
## Notable
|
|
12
|
+
|
|
13
|
+
- Frontmatter: `name`, `description`, `invokable: true`. The `invokable` flag is what registers the file as a slash command in Continue's palette instead of a passive context document.
|
|
14
|
+
|
|
15
|
+
## Setup
|
|
16
|
+
|
|
17
|
+
Pick **Continue** as an IDE target during `npx wize-dev-kit install` (or add it and re-run `npx wize-dev-kit sync`). Reload the Continue extension, then run `/wize-orchestrator` from the prompt palette.
|
|
18
|
+
|
|
19
|
+
## Reference
|
|
20
|
+
|
|
21
|
+
- [docs.continue.dev — Prompts](https://docs.continue.dev/customize/deep-dives/prompts)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Continue.dev — Wize Development Kit
|
|
2
|
+
|
|
3
|
+
🌐 **Idiomas:** [English](continue.md) · **Português (pt-BR)**
|
|
4
|
+
|
|
5
|
+
← [Voltar ao README](../../README.pt-BR.md)
|
|
6
|
+
|
|
7
|
+
## Saída
|
|
8
|
+
|
|
9
|
+
`.continue/prompts/wize-{code}.prompt` — um arquivo por persona, workflow ou skill.
|
|
10
|
+
|
|
11
|
+
## Destaques
|
|
12
|
+
|
|
13
|
+
- Frontmatter: `name`, `description`, `invokable: true`. É a flag `invokable` que registra o arquivo como slash command na paleta do Continue, em vez de um documento de contexto passivo.
|
|
14
|
+
|
|
15
|
+
## Como ativar
|
|
16
|
+
|
|
17
|
+
Escolha **Continue** como alvo de IDE em `npx wize-dev-kit install` (ou adicione depois e rode `npx wize-dev-kit sync`). Recarregue a extensão do Continue e rode `/wize-orchestrator` na paleta de prompts.
|
|
18
|
+
|
|
19
|
+
## Referência
|
|
20
|
+
|
|
21
|
+
- [docs.continue.dev — Prompts](https://docs.continue.dev/customize/deep-dives/prompts)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Cursor — Wize Development Kit
|
|
2
|
+
|
|
3
|
+
🌐 **Languages:** **English** · [Português (pt-BR)](cursor.pt-BR.md)
|
|
4
|
+
|
|
5
|
+
← [Back to README](../../README.md)
|
|
6
|
+
|
|
7
|
+
## Output
|
|
8
|
+
|
|
9
|
+
`.cursor/rules/wize-{code}.mdc` — one rule per persona, workflow, or skill.
|
|
10
|
+
|
|
11
|
+
## Notable
|
|
12
|
+
|
|
13
|
+
- Frontmatter: `description`, `globs` (empty — not file-pattern-triggered), `alwaysApply: false`. Every wize-dev-kit rule attaches **on demand**, matched by Cursor against its `description`, rather than being injected into every prompt.
|
|
14
|
+
- No native agent/subagent split in this format — personas and workflows/skills share the same `.mdc` shape (unlike [OpenCode](opencode.md)).
|
|
15
|
+
|
|
16
|
+
## Setup
|
|
17
|
+
|
|
18
|
+
Pick **Cursor** as an IDE target during `npx wize-dev-kit install` (or add it and re-run `npx wize-dev-kit sync`). Restart Cursor, then reference `@wize-orchestrator` or ask it to activate Wizer.
|
|
19
|
+
|
|
20
|
+
## Reference
|
|
21
|
+
|
|
22
|
+
- [cursor.com/docs/context/rules](https://cursor.com/docs/context/rules)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Cursor — Wize Development Kit
|
|
2
|
+
|
|
3
|
+
🌐 **Idiomas:** [English](cursor.md) · **Português (pt-BR)**
|
|
4
|
+
|
|
5
|
+
← [Voltar ao README](../../README.pt-BR.md)
|
|
6
|
+
|
|
7
|
+
## Saída
|
|
8
|
+
|
|
9
|
+
`.cursor/rules/wize-{code}.mdc` — uma rule por persona, workflow ou skill.
|
|
10
|
+
|
|
11
|
+
## Destaques
|
|
12
|
+
|
|
13
|
+
- Frontmatter: `description`, `globs` (vazio — não é disparado por padrão de arquivo), `alwaysApply: false`. Toda rule do wize-dev-kit se anexa **sob demanda**, casada pelo Cursor contra sua `description`, em vez de ser injetada em todo prompt.
|
|
14
|
+
- Sem divisão nativa agente/subagente nesse formato — personas e workflows/skills compartilham o mesmo formato `.mdc` (diferente do [OpenCode](opencode.pt-BR.md)).
|
|
15
|
+
|
|
16
|
+
## Como ativar
|
|
17
|
+
|
|
18
|
+
Escolha **Cursor** como alvo de IDE em `npx wize-dev-kit install` (ou adicione depois e rode `npx wize-dev-kit sync`). Reinicie o Cursor e referencie `@wize-orchestrator` ou peça pra ativar o Wizer.
|
|
19
|
+
|
|
20
|
+
## Referência
|
|
21
|
+
|
|
22
|
+
- [cursor.com/docs/context/rules](https://cursor.com/docs/context/rules)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Generic fallback — Wize Development Kit
|
|
2
|
+
|
|
3
|
+
🌐 **Languages:** **English** · [Português (pt-BR)](generic.pt-BR.md)
|
|
4
|
+
|
|
5
|
+
← [Back to README](../../README.md)
|
|
6
|
+
|
|
7
|
+
For any AI IDE that isn't one of the [dedicated targets](../../README.md#supported-harnesses).
|
|
8
|
+
|
|
9
|
+
## Output
|
|
10
|
+
|
|
11
|
+
- `.wize/agents/wize-{code}.md` — plain Markdown per persona, workflow, or skill: a heading, a one-line summary blockquote, and the body. No frontmatter, no slash-command wiring.
|
|
12
|
+
- A root `AGENTS.md` — the same baseline pointer file also read natively by Codex, Cursor, Windsurf, and Antigravity. It is never overwritten if one already exists in the repo.
|
|
13
|
+
|
|
14
|
+
## Notable
|
|
15
|
+
|
|
16
|
+
- This target has no activation mechanism of its own — you point your assistant at `.wize/agents/wize-orchestrator.md` (or `AGENTS.md`) and ask it to read and follow it.
|
|
17
|
+
|
|
18
|
+
## Setup
|
|
19
|
+
|
|
20
|
+
Pick **Generic fallback** as an IDE target during `npx wize-dev-kit install` — it's on by default alongside your primary target, precisely so an unsupported second tool in the same repo still has something to read.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Fallback genérico — Wize Development Kit
|
|
2
|
+
|
|
3
|
+
🌐 **Idiomas:** [English](generic.md) · **Português (pt-BR)**
|
|
4
|
+
|
|
5
|
+
← [Voltar ao README](../../README.pt-BR.md)
|
|
6
|
+
|
|
7
|
+
Para qualquer IDE com IA que não esteja entre os [alvos dedicados](../../README.pt-BR.md#harnesses-suportadas).
|
|
8
|
+
|
|
9
|
+
## Saída
|
|
10
|
+
|
|
11
|
+
- `.wize/agents/wize-{code}.md` — Markdown puro por persona, workflow ou skill: um título, um resumo de uma linha em bloco de citação, e o corpo. Sem frontmatter, sem integração de slash command.
|
|
12
|
+
- Um `AGENTS.md` na raiz — o mesmo arquivo-ponteiro de baseline lido nativamente por Codex, Cursor, Windsurf e Antigravity. Nunca é sobrescrito se já existir um no repositório.
|
|
13
|
+
|
|
14
|
+
## Destaques
|
|
15
|
+
|
|
16
|
+
- Esse alvo não tem mecanismo de ativação próprio — você aponta seu assistente pra `.wize/agents/wize-orchestrator.md` (ou `AGENTS.md`) e pede pra ele ler e seguir.
|
|
17
|
+
|
|
18
|
+
## Como ativar
|
|
19
|
+
|
|
20
|
+
Escolha **Fallback genérico** como alvo de IDE em `npx wize-dev-kit install` — ele já vem ligado por padrão junto do seu alvo principal, justamente pra que uma segunda ferramenta sem suporte dedicado no mesmo repositório ainda tenha algo pra ler.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Kimi Code — Wize Development Kit
|
|
2
|
+
|
|
3
|
+
🌐 **Languages:** **English** · [Português (pt-BR)](kimi-code.pt-BR.md)
|
|
4
|
+
|
|
5
|
+
← [Back to README](../../README.md)
|
|
6
|
+
|
|
7
|
+
Moonshot's Kimi Code consumes the same public Anthropic Skill format as Claude Code and Codex.
|
|
8
|
+
|
|
9
|
+
## Output
|
|
10
|
+
|
|
11
|
+
`.kimi/skills/wize-{code}/SKILL.md` — one directory per persona, workflow, or skill, with companion files (`steps/`, `templates/`, `data/`) copied alongside.
|
|
12
|
+
|
|
13
|
+
## Notable
|
|
14
|
+
|
|
15
|
+
- Kimi Code also auto-detects `.claude/skills/` and `.agents/skills/` (Codex) if present in the repo, so installing the **Kimi Code** target alongside **Claude Code** and/or **Codex** is harmless — Kimi just has more places to find the same skills.
|
|
16
|
+
|
|
17
|
+
## Setup
|
|
18
|
+
|
|
19
|
+
Pick **Kimi Code** as an IDE target during `npx wize-dev-kit install` (or add it and re-run `npx wize-dev-kit sync`). Restart Kimi Code, then run `/wize-orchestrator`.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Kimi Code — Wize Development Kit
|
|
2
|
+
|
|
3
|
+
🌐 **Idiomas:** [English](kimi-code.md) · **Português (pt-BR)**
|
|
4
|
+
|
|
5
|
+
← [Voltar ao README](../../README.pt-BR.md)
|
|
6
|
+
|
|
7
|
+
O Kimi Code, da Moonshot, consome o mesmo formato público de Skill da Anthropic usado pelo Claude Code e pelo Codex.
|
|
8
|
+
|
|
9
|
+
## Saída
|
|
10
|
+
|
|
11
|
+
`.kimi/skills/wize-{code}/SKILL.md` — um diretório por persona, workflow ou skill, com arquivos complementares (`steps/`, `templates/`, `data/`) copiados junto.
|
|
12
|
+
|
|
13
|
+
## Destaques
|
|
14
|
+
|
|
15
|
+
- O Kimi Code também autodetecta `.claude/skills/` e `.agents/skills/` (Codex) se existirem no repositório, então instalar o alvo **Kimi Code** junto com **Claude Code** e/ou **Codex** é inofensivo — o Kimi só passa a ter mais lugares onde achar as mesmas skills.
|
|
16
|
+
|
|
17
|
+
## Como ativar
|
|
18
|
+
|
|
19
|
+
Escolha **Kimi Code** como alvo de IDE em `npx wize-dev-kit install` (ou adicione depois e rode `npx wize-dev-kit sync`). Reinicie o Kimi Code e rode `/wize-orchestrator`.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# OpenCode — Wize Development Kit
|
|
2
|
+
|
|
3
|
+
🌐 **Languages:** **English** · [Português (pt-BR)](opencode.pt-BR.md)
|
|
4
|
+
|
|
5
|
+
← [Back to README](../../README.md)
|
|
6
|
+
|
|
7
|
+
OpenCode is the harness where the kit's persona/workflow split maps onto a **native** primitive instead of being flattened to one file type. Everywhere else, "agent" and "workflow" both become the same kind of file; on OpenCode they become two different things OpenCode itself understands.
|
|
8
|
+
|
|
9
|
+
## Output
|
|
10
|
+
|
|
11
|
+
`npx wize-dev-kit sync` (or `install`) writes two trees:
|
|
12
|
+
|
|
13
|
+
- `.opencode/agents/wize-{code}.md` — the 10 personas (Wizer, Pepper, Shuri, Hawkeye...).
|
|
14
|
+
- `.opencode/commands/wize-{code}.md` — the workflows and skills (`/wize-dev-story`, `/wize-code-review`, ...).
|
|
15
|
+
|
|
16
|
+
## Notable
|
|
17
|
+
|
|
18
|
+
- **`mode: primary | subagent`.** Only `wize-orchestrator` (Wizer) is `primary`. Every other persona is `subagent` — addressable directly with `@wize-agent-dev`, or delegated to automatically based on its `description`.
|
|
19
|
+
- **`agent:` on commands.** Each workflow/skill's `owner:` frontmatter (e.g. `owner: wize-agent-dev # Shuri`) is resolved against the installed personas, so `/wize-dev-story` runs under Shuri's system prompt instead of whatever agent happened to be active. Commands with no clear owner (the Agent Builder skills) are left unbound.
|
|
20
|
+
- **`subtask: true` on fan-out workers.** `wize-review-adversarial` and `wize-review-edge-case-hunter` — the two named subagent workers `wize-code-review` dispatches in parallel — are marked `subtask: true`, so OpenCode isolates them from the caller's context regardless of who invokes them.
|
|
21
|
+
|
|
22
|
+
This is also the harness the kit's own subagent fan-out pattern (documented in Wizer's persona) is written against: name each worker, scope its context, dispatch on `mode: subagent` / `subtask: true`, tolerate partial failure.
|
|
23
|
+
|
|
24
|
+
## Setup
|
|
25
|
+
|
|
26
|
+
Pick **OpenCode** as an IDE target during `npx wize-dev-kit install` (or add it and re-run `npx wize-dev-kit sync`). Restart OpenCode, then say *"Activate Wizer and brief him on the project"* or run `/wize-orchestrator`.
|
|
27
|
+
|
|
28
|
+
## Reference
|
|
29
|
+
|
|
30
|
+
- [opencode.ai/docs/agents](https://opencode.ai/docs/agents/)
|
|
31
|
+
- [opencode.ai/docs/commands](https://opencode.ai/docs/commands/)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# OpenCode — Wize Development Kit
|
|
2
|
+
|
|
3
|
+
🌐 **Idiomas:** [English](opencode.md) · **Português (pt-BR)**
|
|
4
|
+
|
|
5
|
+
← [Voltar ao README](../../README.pt-BR.md)
|
|
6
|
+
|
|
7
|
+
OpenCode é a harness onde a divisão persona/workflow do kit mapeia para uma primitiva **nativa**, em vez de ser achatada num único tipo de arquivo. Em todo o resto, "agente" e "workflow" viram o mesmo tipo de arquivo; no OpenCode eles viram duas coisas diferentes que o próprio OpenCode entende.
|
|
8
|
+
|
|
9
|
+
## Saída
|
|
10
|
+
|
|
11
|
+
`npx wize-dev-kit sync` (ou `install`) grava duas árvores:
|
|
12
|
+
|
|
13
|
+
- `.opencode/agents/wize-{code}.md` — as 10 personas (Wizer, Pepper, Shuri, Hawkeye...).
|
|
14
|
+
- `.opencode/commands/wize-{code}.md` — os workflows e skills (`/wize-dev-story`, `/wize-code-review`, ...).
|
|
15
|
+
|
|
16
|
+
## Destaques
|
|
17
|
+
|
|
18
|
+
- **`mode: primary | subagent`.** Só o `wize-orchestrator` (Wizer) é `primary`. Toda outra persona é `subagent` — endereçável direto com `@wize-agent-dev`, ou delegada automaticamente com base na `description`.
|
|
19
|
+
- **`agent:` nos commands.** O campo `owner:` de cada workflow/skill (ex.: `owner: wize-agent-dev # Shuri`) é resolvido contra as personas instaladas, então `/wize-dev-story` roda sob o system prompt da Shuri em vez do agente que estava ativo. Commands sem um dono claro (as skills do Agent Builder) ficam sem vínculo.
|
|
20
|
+
- **`subtask: true` nos workers de fan-out.** `wize-review-adversarial` e `wize-review-edge-case-hunter` — os dois workers nomeados que o `wize-code-review` dispara em paralelo — vêm marcados como `subtask: true`, então o OpenCode os isola do contexto de quem invocou, não importa quem seja.
|
|
21
|
+
|
|
22
|
+
Esta também é a harness contra a qual o padrão de fan-out de subagentes do kit (documentado na persona da Wizer) foi escrito: nomear cada worker, escopar seu contexto, despachar via `mode: subagent` / `subtask: true`, tolerar falha parcial.
|
|
23
|
+
|
|
24
|
+
## Como ativar
|
|
25
|
+
|
|
26
|
+
Escolha **OpenCode** como alvo de IDE em `npx wize-dev-kit install` (ou adicione depois e rode `npx wize-dev-kit sync`). Reinicie o OpenCode e diga *"Ative o Wizer e dê o briefing do projeto a ele"* ou rode `/wize-orchestrator`.
|
|
27
|
+
|
|
28
|
+
## Referência
|
|
29
|
+
|
|
30
|
+
- [opencode.ai/docs/agents](https://opencode.ai/docs/agents/)
|
|
31
|
+
- [opencode.ai/docs/commands](https://opencode.ai/docs/commands/)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Windsurf (Codeium) — Wize Development Kit
|
|
2
|
+
|
|
3
|
+
🌐 **Languages:** **English** · [Português (pt-BR)](windsurf.pt-BR.md)
|
|
4
|
+
|
|
5
|
+
← [Back to README](../../README.md)
|
|
6
|
+
|
|
7
|
+
## Output
|
|
8
|
+
|
|
9
|
+
`.windsurf/rules/wize-{code}.md` — plain Markdown, no frontmatter: a heading, a one-line summary blockquote, and the full body.
|
|
10
|
+
|
|
11
|
+
## Notable
|
|
12
|
+
|
|
13
|
+
- Windsurf's Cascade reads everything under `.windsurf/rules/` at session start. Activation mode (always-on, manual, model-decided, glob) is configured **inside the IDE's Rules panel** per file — the kit doesn't encode it, since Windsurf's rule format has no frontmatter for it.
|
|
14
|
+
- Same flattening as Cursor: no agent/workflow distinction in the file format.
|
|
15
|
+
|
|
16
|
+
## Setup
|
|
17
|
+
|
|
18
|
+
Pick **Windsurf** as an IDE target during `npx wize-dev-kit install` (or add it and re-run `npx wize-dev-kit sync`). Restart Windsurf, review the new rules under **Cascade → Rules**, then ask it to activate Wizer.
|
|
19
|
+
|
|
20
|
+
## Reference
|
|
21
|
+
|
|
22
|
+
- [docs.windsurf.com — Cascade rules](https://docs.windsurf.com/windsurf/cascade/memories#rules)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Windsurf (Codeium) — Wize Development Kit
|
|
2
|
+
|
|
3
|
+
🌐 **Idiomas:** [English](windsurf.md) · **Português (pt-BR)**
|
|
4
|
+
|
|
5
|
+
← [Voltar ao README](../../README.pt-BR.md)
|
|
6
|
+
|
|
7
|
+
## Saída
|
|
8
|
+
|
|
9
|
+
`.windsurf/rules/wize-{code}.md` — Markdown puro, sem frontmatter: um título, um resumo de uma linha em bloco de citação, e o corpo completo.
|
|
10
|
+
|
|
11
|
+
## Destaques
|
|
12
|
+
|
|
13
|
+
- O Cascade do Windsurf lê tudo dentro de `.windsurf/rules/` no início da sessão. O modo de ativação (sempre ativo, manual, decidido pelo modelo, por glob) é configurado **dentro do painel de Rules da IDE**, por arquivo — o kit não codifica isso, já que o formato de rule do Windsurf não tem frontmatter pra isso.
|
|
14
|
+
- Mesmo achatamento do Cursor: sem distinção agente/workflow no formato do arquivo.
|
|
15
|
+
|
|
16
|
+
## Como ativar
|
|
17
|
+
|
|
18
|
+
Escolha **Windsurf** como alvo de IDE em `npx wize-dev-kit install` (ou adicione depois e rode `npx wize-dev-kit sync`). Reinicie o Windsurf, confira as novas rules em **Cascade → Rules**, e peça pra ativar o Wizer.
|
|
19
|
+
|
|
20
|
+
## Referência
|
|
21
|
+
|
|
22
|
+
- [docs.windsurf.com — Cascade rules](https://docs.windsurf.com/windsurf/cascade/memories#rules)
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "wize-dev-kit",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.8.0",
|
|
5
5
|
"description": "Full-lifecycle AI-assisted development kit with Test Architect and Whiteport Design Studio embedded. Inspired by BMAD Method and WDS.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"ai",
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
"adapters/",
|
|
43
43
|
"tools/",
|
|
44
44
|
"schemas/",
|
|
45
|
+
"docs/",
|
|
45
46
|
"README.md",
|
|
46
47
|
"README.pt-BR.md",
|
|
47
48
|
"README.es.md",
|
|
@@ -12,6 +12,18 @@ I am **Shuri**. Wakandan technologist. I implement the story Tony wrote, against
|
|
|
12
12
|
4. **Security & perf.** I think about both at write-time, not at review-time.
|
|
13
13
|
5. **Commit with AC IDs.** Every commit cites the story acceptance criteria it advances.
|
|
14
14
|
|
|
15
|
+
## Before I write new code (the reuse ladder)
|
|
16
|
+
|
|
17
|
+
At the "green" step, before typing a new function, I walk this ladder in order and stop at the first "yes":
|
|
18
|
+
|
|
19
|
+
1. **Does this need to exist?** → no: skip it (YAGNI).
|
|
20
|
+
2. **Already in this codebase?** → reuse it, don't rewrite it.
|
|
21
|
+
3. **Does the stdlib do it?** → use the stdlib.
|
|
22
|
+
4. **Native platform/framework feature?** → use that.
|
|
23
|
+
5. **An installed dependency does it?** → use the dependency.
|
|
24
|
+
6. **Is it one line?** → write the one line.
|
|
25
|
+
7. **Only then** do I write the minimum new code that makes the test pass.
|
|
26
|
+
|
|
15
27
|
## Style
|
|
16
28
|
|
|
17
29
|
- File paths, AC IDs, commit-message brevity.
|
|
@@ -14,6 +14,8 @@ failed_layers: ''
|
|
|
14
14
|
|
|
15
15
|
## Instructions
|
|
16
16
|
|
|
17
|
+
This step is an instance of Wizer's subagent fan-out pattern (see `wize-orchestrator` persona): name, scope, dispatch on whatever the current harness natively supports, tolerate partial failure.
|
|
18
|
+
|
|
17
19
|
1. If `{review_mode}` = `"no-spec"`, note: "Acceptance Auditor skipped — no spec file provided."
|
|
18
20
|
|
|
19
21
|
2. Launch parallel subagents without conversation context:
|
|
@@ -48,7 +48,7 @@ test('valid email returns ok', () => {
|
|
|
48
48
|
|
|
49
49
|
### 4. Green
|
|
50
50
|
|
|
51
|
-
Write the **minimum** code that turns the test green. No anticipated branches; no "just-in-case" handling.
|
|
51
|
+
Before writing anything new, run Shuri's reuse ladder (see `wize-agent-dev` persona): does this need to exist → already in the codebase → stdlib → native/framework feature → installed dependency → one-liner → only then new code. Write the **minimum** code that turns the test green. No anticipated branches; no "just-in-case" handling.
|
|
52
52
|
|
|
53
53
|
```ts
|
|
54
54
|
// green — minimum to pass
|
|
@@ -61,7 +61,7 @@ What changes, why, and what could break. If the paragraph is hard to write, you'
|
|
|
61
61
|
### 2. Implement
|
|
62
62
|
|
|
63
63
|
- TDD when reasonable; smoke-test-and-fix when the cost of TDD is greater than the value.
|
|
64
|
-
-
|
|
64
|
+
- Run Shuri's reuse ladder (see `wize-agent-dev` persona) before writing anything new: does this need to exist → already in the codebase → stdlib → native/framework feature → installed dependency → one-liner → only then new code. Don't introduce new abstractions.
|
|
65
65
|
|
|
66
66
|
### 3. Hawkeye lite
|
|
67
67
|
|
|
@@ -19,6 +19,7 @@ capabilities:
|
|
|
19
19
|
- "Project context recall"
|
|
20
20
|
- "Intent classification and routing"
|
|
21
21
|
- "Multi-agent facilitation (party-mode)"
|
|
22
|
+
- "Subagent fan-out (harness-native dispatch, manual fallback)"
|
|
22
23
|
- "Onboarding triage (greenfield vs brownfield)"
|
|
23
24
|
|
|
24
25
|
routes_to:
|
|
@@ -11,6 +11,20 @@ I am **Wizer**. I am the host of this development kit. I know who you are, what
|
|
|
11
11
|
3. **Keep the thread.** I keep the knowledge of the project consistent across conversations. If something changed, I update `.wize/config/project.toml` before moving on.
|
|
12
12
|
4. **Pair when needed.** When a decision crosses concerns (UX touching architecture, PM touching TEA), I open a **party-mode** with the relevant agents.
|
|
13
13
|
|
|
14
|
+
## Fan-out to subagents
|
|
15
|
+
|
|
16
|
+
Party-mode is personas taking turns in this same thread — for live back-and-forth. When a step instead needs several **independent** reads on the same input (adversarial review, edge-case sweep, N-way research) that shouldn't see each other's output, I don't fake it by looping through personas myself. Any skill that needs this follows the same pattern:
|
|
17
|
+
|
|
18
|
+
1. **Name each subagent's role and prompt.** E.g. "Blind Hunter — reviews the diff cynically."
|
|
19
|
+
2. **Scope its context explicitly.** State exactly what it can see (diff only? diff + repo read access? diff + spec?). The isolation is the point — a subagent that sees everything can't give an independent read.
|
|
20
|
+
3. **Dispatch on whatever the current harness natively supports:**
|
|
21
|
+
- Claude Code — the Task/Agent tool, one call per subagent, run concurrently.
|
|
22
|
+
- OpenCode — the persona files this kit renders under `.opencode/agents/*.md` with `mode: subagent`; invoke by name.
|
|
23
|
+
- Any harness without a subagent primitive (Codex included) — there is no isolated dispatch available. Generate one prompt file per subagent under the skill's artifact folder and halt, asking the user to run each in a separate session.
|
|
24
|
+
4. **Tolerate partial failure.** If one subagent fails, times out, or returns empty, note it and proceed with whatever the others returned. Don't block on one flaky layer.
|
|
25
|
+
|
|
26
|
+
`wize-code-review` is the reference implementation (see its step-02).
|
|
27
|
+
|
|
14
28
|
## Voice
|
|
15
29
|
|
|
16
30
|
- Warm welcome. One sharp question. Then I get out of the way.
|
|
@@ -58,7 +58,7 @@ function adapterTargetPath(targetCode, projectRoot) {
|
|
|
58
58
|
switch (targetCode) {
|
|
59
59
|
case 'claude-code': return path.join(projectRoot, '.claude/skills');
|
|
60
60
|
case 'antigravity': return path.join(projectRoot, '.agent/skills');
|
|
61
|
-
case 'codex': return path.join(projectRoot, '.
|
|
61
|
+
case 'codex': return path.join(projectRoot, '.agents/skills');
|
|
62
62
|
case 'kimi-code': return path.join(projectRoot, '.kimi/skills');
|
|
63
63
|
case 'cursor': return path.join(projectRoot, '.cursor/rules');
|
|
64
64
|
case 'windsurf': return path.join(projectRoot, '.windsurf/rules');
|
|
@@ -123,6 +123,8 @@ function collectAssets(kitRoot, { profiles = ['core'] } = {}) {
|
|
|
123
123
|
description: `${fm.phase || fm.gate || 'workflow'}: ${fm.name || fm.code}`,
|
|
124
124
|
body: bodyAfterFrontmatter(content),
|
|
125
125
|
overlay: fm.overlay || null,
|
|
126
|
+
owner: fm.owner || null,
|
|
127
|
+
subtask: fm.subtask === 'true',
|
|
126
128
|
srcDir: path.dirname(wfPath)
|
|
127
129
|
});
|
|
128
130
|
}
|
|
@@ -142,6 +144,8 @@ function collectAssets(kitRoot, { profiles = ['core'] } = {}) {
|
|
|
142
144
|
description: fm.module ? `${fm.module} skill: ${fm.name || fm.code}` : (fm.name || fm.code),
|
|
143
145
|
body: bodyAfterFrontmatter(content),
|
|
144
146
|
overlay: fm.overlay || null,
|
|
147
|
+
owner: fm.owner || null,
|
|
148
|
+
subtask: fm.subtask === 'true',
|
|
145
149
|
srcDir: path.dirname(skPath)
|
|
146
150
|
});
|
|
147
151
|
}
|
|
@@ -22,7 +22,7 @@ const GITIGNORE_BODY = [
|
|
|
22
22
|
'# Generated IDE adapter outputs (regenerate with `npx wize-dev-kit install`)',
|
|
23
23
|
'.claude/skills/wize-*',
|
|
24
24
|
'.agent/skills/wize-*',
|
|
25
|
-
'.
|
|
25
|
+
'.agents/skills/wize-*',
|
|
26
26
|
'.kimi/skills/wize-*',
|
|
27
27
|
'.cursor/rules/wize-*.mdc',
|
|
28
28
|
'.windsurf/rules/wize-*.md',
|
|
@@ -21,7 +21,7 @@ const { cmdSync: cmdSyncReal } = require('./commands/sync.js');
|
|
|
21
21
|
const { cmdAgentList, cmdAgentCreate, cmdAgentEdit } = require('./commands/agent.js');
|
|
22
22
|
const { cmdDoctor } = require('./commands/doctor.js');
|
|
23
23
|
const { cmdDocumentProject } = require('./commands/document-project.js');
|
|
24
|
-
const {
|
|
24
|
+
const { compose: composeOnboarding } = require('./onboarding.js');
|
|
25
25
|
|
|
26
26
|
const INTERACTIVE = process.stdout.isTTY && process.stdin.isTTY;
|
|
27
27
|
|
|
@@ -536,39 +536,11 @@ async function cmdInstall(args) {
|
|
|
536
536
|
}
|
|
537
537
|
}
|
|
538
538
|
|
|
539
|
-
// Offer to open a detected AI harness interactively.
|
|
540
|
-
if (INTERACTIVE) {
|
|
541
|
-
const ideTargetCodes = targets.map(t => t.code);
|
|
542
|
-
const harnesses = detectHarnessCli({ preferIde: ideTargetCodes });
|
|
543
|
-
if (harnesses.length) {
|
|
544
|
-
const primary = harnesses[0];
|
|
545
|
-
const { cmd, args } = primary.buildCmd('/wize-orchestrator');
|
|
546
|
-
const shown = `${cmd} ${args.map(a => /\s/.test(a) ? '"' + a + '"' : a).join(' ')}`;
|
|
547
|
-
const openHarness = await confirm(
|
|
548
|
-
`\nA harness was detected: ${primary.code} (${primary.path}).\n` +
|
|
549
|
-
`Open it now with Wizer? (runs: ${shown})`,
|
|
550
|
-
true
|
|
551
|
-
);
|
|
552
|
-
if (openHarness) {
|
|
553
|
-
const { spawnSync } = require('node:child_process');
|
|
554
|
-
console.log(`\nLaunching ${shown}...`);
|
|
555
|
-
spawnSync(cmd, args, { cwd, stdio: 'inherit' });
|
|
556
|
-
} else {
|
|
557
|
-
console.log(manualInstructions(primary).replace('/wize-document-project', '/wize-orchestrator'));
|
|
558
|
-
}
|
|
559
|
-
} else {
|
|
560
|
-
console.log('\nNo AI harness CLI detected on PATH (claude / codex / opencode).');
|
|
561
|
-
console.log('Open your IDE in this repo and run: /wize-orchestrator');
|
|
562
|
-
}
|
|
563
|
-
}
|
|
564
|
-
|
|
565
539
|
console.log('\n──────────────────────────────────────────────────────────────');
|
|
566
540
|
console.log('Done.');
|
|
567
541
|
console.log('');
|
|
568
|
-
console.log('
|
|
569
|
-
console.log(
|
|
570
|
-
console.log(' 2. Activate Wizer and say: "Brief me on this project."');
|
|
571
|
-
console.log(' (or use any /wize-* slash command from the auto-complete list)');
|
|
542
|
+
console.log('⚠ Restart your IDE — many harnesses load skills only at startup.');
|
|
543
|
+
console.log(composeOnboarding(detection, profiles));
|
|
572
544
|
console.log('');
|
|
573
545
|
console.log('Keep the kit in sync over time:');
|
|
574
546
|
console.log(' • `npx wize-dev-kit update` refresh adapters after a new kit version');
|