wize-dev-kit 0.16.1 → 0.18.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 CHANGED
@@ -7,7 +7,21 @@ Format inspired by [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
7
7
  > **0.10.0 and earlier are in Brazilian Portuguese** and are kept verbatim as a
8
8
  > historical record (not back-translated).
9
9
 
10
- ## [Unreleased]
10
+ ## [0.18.0] — 2026-09-18
11
+
12
+ ### Added
13
+
14
+ - **`wize-update`** (orchestrator skill) + **`wize-dev-kit version-check`** (CLI) — an agent-facing way to ask "is there a newer kit?" without hitting the network on every invocation. `version-check --json` reads a local 1h cache first, caps any registry call at ~1.5s, and degrades to `{"latest":null}` silently when offline; it honors `WIZE_DISABLE_UPDATE_CHECK=1` like the existing opportunistic hint. `wize-help`/`wize`'s proactive version-skew check (Step 2.5) now calls it instead of a live `npm view` on every invocation, says the hint at most once per conversation, and points to `/wize-update` — which shows the version jump + changelog excerpt, asks for a one-line confirmation, then runs `npx wize-dev-kit@latest update` and relays the result. Intent phrases: "atualizar o kit", "tem atualização", "nova versão do kit".
15
+
16
+ ## [0.17.0] — 2026-09-08
17
+
18
+ **Kiro (AWS) is now the 11th supported harness.** New `kiro` IDE target renders the kit's agents/skills/workflows as Kiro workspace skills at `.kiro/skills/wize-{code}/SKILL.md`, following the open [Agent Skills standard](https://agentskills.io) — the same folder + `SKILL.md` (frontmatter `name`/`description`) shape as Claude Code/Codex/Kimi Code/Hermes. Kiro's default agent auto-loads workspace skills (workspace wins over `~/.kiro/skills/` globals), uses progressive disclosure (name + description at startup, full body on description match or `/wize-{code}`), and reads `.kiro/steering/` separately for always-on context. The Kiro CLI (`kiro-cli chat --no-interactive --trust-all-tools "<prompt>"`) is registered in the installer's brownfield baseline for headless runs. Highlighted in all 3 READMEs + `docs/harnesses/kiro.md` (+pt-BR); registered in the installer targets, `doctor`, `.gitignore` block, and test suites.
19
+
20
+ ### Added
21
+
22
+ - **`kiro` IDE target** (`adapters/kiro/`) — renders via the shared Anthropic emitter to `.kiro/skills/`; companion files (`steps/`, `templates/`, `data/`) copied alongside `SKILL.md`. Selectable in `npx wize-dev-kit install` / `sync`; `install --yes` enables it along with the other 10 harnesses.
23
+ - **`kiro-cli` harness** in the brownfield baseline — headless one-shot runs via `kiro-cli chat --no-interactive --trust-all-tools` (requires `KIRO_API_KEY`).
24
+ - **`docs/harnesses/kiro.md` + `kiro.pt-BR.md`** — workspace vs global scope, progressive-disclosure activation, steering caveat, custom-agents `skill://` resources caveat, and headless usage.
11
25
 
12
26
  ## [0.16.1] — 2026-09-02
13
27
 
package/README.es.md CHANGED
@@ -56,7 +56,7 @@ El instalador pregunta:
56
56
 
57
57
  1. **Nombre del proyecto** — escrito en `.wize/config/project.toml`.
58
58
  2. **Perfil(es)** — Core / +Web / +App / +Security (selección múltiple).
59
- 3. **IDE(s) objetivo** — Claude Code, Cursor, Windsurf, Codex, Continue, Kimi Code, OpenCode, Antigravity o fallback genérico (selección múltiple).
59
+ 3. **IDE(s) objetivo** — Claude Code, Cursor, Windsurf, Codex, Continue, Kimi Code, Hermes, Kiro, OpenCode, Antigravity o fallback genérico (selección múltiple).
60
60
  4. **Idiomas** — comunicación + salida de documentos.
61
61
  5. **Tu nombre** — cómo deben dirigirse a ti los agentes (guardado en `user.toml`).
62
62
  6. **Brownfield** — ofrece ejecutar `wize-document-project` para crear la baseline del código existente.
@@ -69,7 +69,7 @@ Tras instalar, abre tu IDE y di:
69
69
 
70
70
  ## Harnesses soportados
71
71
 
72
- Los 10 IDEs objetivo se renderizan desde la misma fuente; el formato y la mecánica varían por harness. **OpenCode** recibe la integración más profunda — la separación persona/workflow del kit se mapea sobre las primitivas propias de OpenCode (`mode: primary|subagent`, `agent:`, `subtask:`) en lugar de aplanarse en un único tipo de archivo.
72
+ Los 11 IDEs objetivo se renderizan desde la misma fuente; el formato y la mecánica varían por harness. **OpenCode** recibe la integración más profunda — la separación persona/workflow del kit se mapea sobre las primitivas propias de OpenCode (`mode: primary|subagent`, `agent:`, `subtask:`) en lugar de aplanarse en un único tipo de archivo.
73
73
 
74
74
  | Harness | Salida | Destacado |
75
75
  |---|---|---|
@@ -78,6 +78,7 @@ Los 10 IDEs objetivo se renderizan desde la misma fuente; el formato y la mecán
78
78
  | **Codex** | `.agents/skills/*/SKILL.md` | Mismo formato Skill + `AGENTS.md` en la raíz. [Docs →](docs/harnesses/codex.md) |
79
79
  | **Kimi Code** | `.kimi/skills/*/SKILL.md` | Mismo formato Skill; autodetecta árboles de skills de Claude/Codex. [Docs →](docs/harnesses/kimi-code.md) |
80
80
  | **Hermes Agent** 🆕 | `.hermes/skills/*/SKILL.md` | Mismo formato Skill, project-local; trust gate (`hermes skills trust`); las skills del proyecto sobreescriben las de perfil. [Docs →](docs/harnesses/hermes.md) |
81
+ | **Kiro — AWS** 🆕 | `.kiro/skills/*/SKILL.md` | Estándar Agent Skills (agentskills.io); las skills de workspace sobrescriben las globales; activación automática por descripción, o `/wize-{code}`. [Docs →](docs/harnesses/kiro.md) |
81
82
  | **Antigravity** | `.agent/skills/*/SKILL.md` | Mismo formato Skill + `AGENTS.md` en la raíz. [Docs →](docs/harnesses/antigravity.md) |
82
83
  | **Cursor** | `.cursor/rules/*.mdc` | Reglas on-demand (`alwaysApply: false`), emparejadas por descripción. [Docs →](docs/harnesses/cursor.md) |
83
84
  | **Windsurf** | `.windsurf/rules/*.md` | Markdown plano; el modo de activación se define dentro del IDE. [Docs →](docs/harnesses/windsurf.md) |
@@ -156,6 +157,8 @@ Transversales:
156
157
  /wize-check Checklist de avance de la demanda en vuelo: hecho
157
158
  (con evidencia), en curso, lo que falta — luego
158
159
  retoma el trabajo interrumpido.
160
+ /wize-update Revisa si el kit está desactualizado, muestra el
161
+ changelog, confirma y aplica la actualización.
159
162
  /wize-grill Entrevista-hasta-entendimiento antes de cualquier
160
163
  paso de autoría.
161
164
  /wize-quick-dev Shuri toma un arreglo pequeño sin el ciclo completo.
@@ -239,6 +242,7 @@ npx wize-dev-kit document-project [quick|initial_scan|full_rescan|deep_dive] [--
239
242
  npx wize-dev-kit uninstall # elimina .wize/ (tu código queda intacto)
240
243
  npx wize-dev-kit help # referencia de comandos
241
244
  npx wize-dev-kit version # imprime la versión instalada del kit
245
+ npx wize-dev-kit version-check [--json] # instalada vs. más reciente (con caché; scriptable; nunca bloquea)
242
246
  ```
243
247
 
244
248
  ---
package/README.md CHANGED
@@ -56,7 +56,7 @@ The installer asks:
56
56
 
57
57
  1. **Project name** — written into `.wize/config/project.toml`.
58
58
  2. **Profile(s)** — Core / +Web / +App / +Security (multi-select).
59
- 3. **IDE target(s)** — Claude Code, Cursor, Windsurf, Codex, Continue, Kimi Code, OpenCode, Antigravity, or generic fallback (multi-select).
59
+ 3. **IDE target(s)** — Claude Code, Cursor, Windsurf, Codex, Continue, Kimi Code, Hermes, Kiro, OpenCode, Antigravity, or generic fallback (multi-select).
60
60
  4. **Languages** — communication + document output.
61
61
  5. **Your name** — how the agents should address you (saved to `user.toml`).
62
62
  6. **Brownfield** — offers to run `wize-document-project` to baseline the existing codebase.
@@ -69,7 +69,7 @@ After install, open your IDE and say:
69
69
 
70
70
  ## Supported harnesses
71
71
 
72
- All 10 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
+ All 11 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.
73
73
 
74
74
  | Harness | Output | Notable |
75
75
  |---|---|---|
@@ -78,6 +78,7 @@ All 10 IDE targets render from the same source; format and mechanics differ per
78
78
  | **Codex** | `.agents/skills/*/SKILL.md` | Same Skill format + root `AGENTS.md`. [Docs →](docs/harnesses/codex.md) |
79
79
  | **Kimi Code** | `.kimi/skills/*/SKILL.md` | Same Skill format; auto-detects Claude/Codex skill trees. [Docs →](docs/harnesses/kimi-code.md) |
80
80
  | **Hermes Agent** 🆕 | `.hermes/skills/*/SKILL.md` | Same Skill format, project-local; trust gate (`hermes skills trust`); project skills override profile ones. [Docs →](docs/harnesses/hermes.md) |
81
+ | **Kiro — AWS** 🆕 | `.kiro/skills/*/SKILL.md` | Agent Skills standard (agentskills.io); workspace skills override global ones; auto-activates by description, or `/wize-{code}`. [Docs →](docs/harnesses/kiro.md) |
81
82
  | **Antigravity** | `.agent/skills/*/SKILL.md` | Same Skill format + root `AGENTS.md`. [Docs →](docs/harnesses/antigravity.md) |
82
83
  | **Cursor** | `.cursor/rules/*.mdc` | On-demand rules (`alwaysApply: false`), matched by description. [Docs →](docs/harnesses/cursor.md) |
83
84
  | **Windsurf** | `.windsurf/rules/*.md` | Plain markdown; activation mode set inside the IDE. [Docs →](docs/harnesses/windsurf.md) |
@@ -154,6 +155,8 @@ Cross-cutting:
154
155
  /wize-check Progress checklist for the demand in flight:
155
156
  done (with evidence), in progress, what's left —
156
157
  then resumes the interrupted work.
158
+ /wize-update Checks kit version skew, shows the changelog
159
+ jump, confirms, then applies the update.
157
160
  /wize-grill Interview-to-understanding before any authoring step.
158
161
  /wize-eli5 Explain anything to anyone — vocabulary, analogies,
159
162
  tone, depth and framing calibrated to the audience
@@ -237,6 +240,7 @@ npx wize-dev-kit document-project [quick|initial_scan|full_rescan|deep_dive] [--
237
240
  npx wize-dev-kit uninstall # remove .wize/ (your code is left untouched)
238
241
  npx wize-dev-kit help # command reference
239
242
  npx wize-dev-kit version # print the installed kit version
243
+ npx wize-dev-kit version-check [--json] # installed vs latest (cached; scriptable; never blocks)
240
244
  ```
241
245
 
242
246
  ---
package/README.pt-BR.md CHANGED
@@ -56,7 +56,7 @@ O instalador pergunta:
56
56
 
57
57
  1. **Nome do projeto** — gravado em `.wize/config/project.toml`.
58
58
  2. **Perfil(is)** — Core / +Web / +App / +Security (múltipla escolha).
59
- 3. **IDE(s) alvo** — Claude Code, Cursor, Windsurf, Codex, Continue, Kimi Code, OpenCode, Antigravity ou fallback genérico (múltipla escolha).
59
+ 3. **IDE(s) alvo** — Claude Code, Cursor, Windsurf, Codex, Continue, Kimi Code, Hermes, Kiro, OpenCode, Antigravity ou fallback genérico (múltipla escolha).
60
60
  4. **Idiomas** — comunicação + saída de documentos.
61
61
  5. **Seu nome** — como os agentes devem te chamar (salvo em `user.toml`).
62
62
  6. **Brownfield** — oferece rodar `wize-document-project` para criar a baseline do código existente.
@@ -69,7 +69,7 @@ Após instalar, abra sua IDE e diga:
69
69
 
70
70
  ## Harnesses suportadas
71
71
 
72
- Os 10 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
+ Os 11 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.
73
73
 
74
74
  | Harness | Saída | Destaque |
75
75
  |---|---|---|
@@ -78,6 +78,7 @@ Os 10 alvos de IDE são gerados a partir da mesma fonte; formato e mecânica mud
78
78
  | **Codex** | `.agents/skills/*/SKILL.md` | Mesmo formato Skill + `AGENTS.md` na raiz. [Docs →](docs/harnesses/codex.pt-BR.md) |
79
79
  | **Kimi Code** | `.kimi/skills/*/SKILL.md` | Mesmo formato Skill; autodetecta as árvores do Claude/Codex. [Docs →](docs/harnesses/kimi-code.pt-BR.md) |
80
80
  | **Hermes Agent** 🆕 | `.hermes/skills/*/SKILL.md` | Mesmo formato Skill, project-local; trust gate (`hermes skills trust`); skills do projeto sobrescrevem as de perfil. [Docs →](docs/harnesses/hermes.pt-BR.md) |
81
+ | **Kiro — AWS** 🆕 | `.kiro/skills/*/SKILL.md` | Padrão Agent Skills (agentskills.io); skills de workspace sobrescrevem as globais; ativação automática por descrição, ou `/wize-{code}`. [Docs →](docs/harnesses/kiro.pt-BR.md) |
81
82
  | **Antigravity** | `.agent/skills/*/SKILL.md` | Mesmo formato Skill + `AGENTS.md` na raiz. [Docs →](docs/harnesses/antigravity.pt-BR.md) |
82
83
  | **Cursor** | `.cursor/rules/*.mdc` | Rules sob demanda (`alwaysApply: false`), casadas por descrição. [Docs →](docs/harnesses/cursor.pt-BR.md) |
83
84
  | **Windsurf** | `.windsurf/rules/*.md` | Markdown puro; modo de ativação definido dentro da IDE. [Docs →](docs/harnesses/windsurf.pt-BR.md) |
@@ -155,6 +156,8 @@ Transversais:
155
156
  /wize-check Checklist de acompanhamento da demanda em voo:
156
157
  feito (com evidência), em andamento, o que falta —
157
158
  depois retoma o trabalho interrompido.
159
+ /wize-update Verifica se o kit está desatualizado, mostra o
160
+ changelog, confirma e aplica o update.
158
161
  /wize-grill Entrevista-até-entendimento antes de qualquer passo
159
162
  de autoria.
160
163
  /wize-quick-dev Shuri pega uma correção pequena sem o ciclo completo.
@@ -237,6 +240,7 @@ npx wize-dev-kit document-project [quick|initial_scan|full_rescan|deep_dive] [--
237
240
  npx wize-dev-kit uninstall # remove .wize/ (seu código permanece intacto)
238
241
  npx wize-dev-kit help # referência de comandos
239
242
  npx wize-dev-kit version # imprime a versão instalada do kit
243
+ npx wize-dev-kit version-check [--json] # instalada vs. mais recente (com cache; scriptável; nunca bloqueia)
240
244
  ```
241
245
 
242
246
  ---
@@ -13,6 +13,7 @@ Each adapter renders the kit's agents/skills/workflows into the file layout that
13
13
  | `continue` | `.continue/prompts/wize-*.prompt` | `.prompt` | Continue prompt slot. |
14
14
  | `kimi-code` | `.kimi/skills/wize-*/` | `SKILL.md` per agent/workflow | Moonshot Kimi Code. |
15
15
  | `hermes` | `.hermes/skills/wize-*/` | `SKILL.md` per agent/workflow | Hermes Agent (project-local skills, Anthropic-compatible). |
16
+ | `kiro` | `.kiro/skills/wize-*/` | `SKILL.md` per agent/workflow | Kiro (AWS) — Agent Skills standard (agentskills.io), workspace scope. |
16
17
  | `opencode` | `.opencode/agents/wize-*.md` + `.opencode/commands/wize-*.md` | Markdown | OpenCode CLI. Native agents + commands. |
17
18
  | `antigravity` | `.agent/skills/wize-*/` | `SKILL.md` per agent/workflow | Antigravity CLI + IDE. |
18
19
  | `generic` | `.wize/agents/wize-*.md` | Markdown | Fallback for any agent that can read a folder of markdown. |
@@ -0,0 +1,30 @@
1
+ # Kiro (AWS) — Wize Dev Kit Adapter
2
+
3
+ Emits the kit's agents/skills/workflows as Kiro workspace skills under
4
+ `.kiro/skills/wize-{code}/SKILL.md`, using the open Agent Skills standard
5
+ (agentskills.io) — a folder with a `SKILL.md` (YAML frontmatter: `name`,
6
+ `description`), the same Anthropic-compatible format the kit already renders
7
+ for Claude Code / Codex / Kimi Code / Hermes.
8
+
9
+ ## How Kiro picks these up
10
+
11
+ - The default agent automatically loads workspace skills from
12
+ `<repo-root>/.kiro/skills/` and global skills from `~/.kiro/skills/`.
13
+ **Workspace skills win** on name collisions.
14
+ - **Progressive disclosure:** at session start Kiro loads only `name` +
15
+ `description`; the full SKILL.md activates when your request matches the
16
+ description, or explicitly via `/wize-{code}` in chat.
17
+ - **Activation is description-driven** (no config needed): keep descriptions
18
+ keyword-rich — the kit's descriptions already follow that guidance.
19
+ - Skills must be valid frontmatter (`name` matches the folder name, lowercase
20
+ + hyphens, ≤ 64 chars; `description` ≤ 1024 chars) — the shared emitter
21
+ already guarantees this shape.
22
+ - Kiro also reads `.kiro/steering/*.md` for always-on project context, so
23
+ pairing with the **Generic fallback** target (root `AGENTS.md`) is a bonus.
24
+ - **Custom agents caveat:** Kiro custom agents don't load skills by default —
25
+ add `"skill://.kiro/skills/*/SKILL.md"` to the agent's `resources` field.
26
+
27
+ ## Files
28
+
29
+ - `render.js` — renders via the shared `renderAnthropicSkills` emitter.
30
+ - `adapter.yaml` — descriptor (target path, file pattern).
@@ -0,0 +1,8 @@
1
+ code: kiro
2
+ description: "Kiro (AWS) workspace skills (.kiro/skills/, Agent Skills standard, project-local)."
3
+ target_path: ".kiro/skills/"
4
+ file_pattern: "wize-*/SKILL.md"
5
+ file_format: markdown
6
+ hooks:
7
+ pre_render: []
8
+ post_render: []
@@ -0,0 +1,21 @@
1
+ // Kiro (AWS) adapter — emits .kiro/skills/wize-{code}/SKILL.md per asset.
2
+ // Kiro follows the open Agent Skills standard (agentskills.io): a skill is a
3
+ // folder containing a SKILL.md with YAML frontmatter (name, description) —
4
+ // the same Anthropic-compatible format used by Claude Code, Codex, Kimi Code,
5
+ // and Hermes. Workspace skills live at <repo-root>/.kiro/skills/ and take
6
+ // precedence over ~/.kiro/skills/ global skills on name collision. Kiro uses
7
+ // progressive disclosure: at session start only name + description load, and
8
+ // the full SKILL.md activates when the request matches the description (or
9
+ // via the skill's slash command).
10
+
11
+ 'use strict';
12
+
13
+ const path = require('node:path');
14
+ const { renderAnthropicSkills } = require('../../tools/installer/render-shared.js');
15
+
16
+ function render(kitRoot, projectRoot, opts = {}) {
17
+ const targetDir = path.join(projectRoot, '.kiro', 'skills');
18
+ return renderAnthropicSkills(kitRoot, targetDir, opts);
19
+ }
20
+
21
+ module.exports = { render };
@@ -0,0 +1,26 @@
1
+ # Kiro (AWS) — Wize Development Kit
2
+
3
+ 🌐 **Languages:** **English** · [Português (pt-BR)](kiro.pt-BR.md)
4
+
5
+ ← [Back to README](../../README.md)
6
+
7
+ Kiro, the agentic IDE/CLI from AWS, follows the open [Agent Skills standard](https://agentskills.io) — the same folder + `SKILL.md` (YAML frontmatter: `name`, `description`) shape the kit already renders for Claude Code, Codex, Kimi Code, and Hermes.
8
+
9
+ ## Output
10
+
11
+ `.kiro/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
+ - **Workspace scope.** Kiro's default agent automatically loads workspace skills from `<repo-root>/.kiro/skills/` and global skills from `~/.kiro/skills/`; **workspace skills win** on name collisions. Generated `wize-*` entries are gitignored (regenerate with `npx wize-dev-kit sync`) — hand-written team skills you add next to them should be committed, per Kiro's own guidance.
16
+ - **Progressive disclosure.** At session start Kiro loads only each skill's `name` + `description`; the full `SKILL.md` activates when your request matches the description, or explicitly via `/wize-{code}` in chat. The kit's descriptions are written keyword-rich for exactly this match.
17
+ - **Steering is separate.** Always-on project context lives in `.kiro/steering/*.md` — Kiro-specific and not produced by this adapter, so pairing with the **Generic fallback** target (root `AGENTS.md`) is a bonus.
18
+ - **Custom agents caveat.** Kiro custom agents don't load skills by default — add `"skill://.kiro/skills/*/SKILL.md"` to the agent's `resources` field.
19
+
20
+ ## Setup
21
+
22
+ Pick **Kiro — AWS** as an IDE target during `npx wize-dev-kit install` (or add it and re-run `npx wize-dev-kit sync`). Restart Kiro, then run `/wize-orchestrator`.
23
+
24
+ ## Headless
25
+
26
+ `kiro-cli chat --no-interactive --trust-all-tools "<prompt>"` runs a one-shot headless session (requires `KIRO_API_KEY`), which the installer's brownfield baseline uses when Kiro CLI is the detected harness.
@@ -0,0 +1,26 @@
1
+ # Kiro (AWS) — Wize Development Kit
2
+
3
+ 🌐 **Idiomas:** [English](kiro.md) · **Português (pt-BR)**
4
+
5
+ ← [Voltar ao README](../../README.pt-BR.md)
6
+
7
+ O Kiro, IDE/CLI agêntica da AWS, segue o padrão aberto [Agent Skills](https://agentskills.io) — a mesma forma de pasta + `SKILL.md` (frontmatter YAML: `name`, `description`) que o kit já renderiza para Claude Code, Codex, Kimi Code e Hermes.
8
+
9
+ ## Saída
10
+
11
+ `.kiro/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
+ - **Escopo workspace.** O agente padrão do Kiro carrega automaticamente skills de workspace de `<repo-root>/.kiro/skills/` e skills globais de `~/.kiro/skills/`; **skills de workspace vencem** em colisões de nome. As entradas `wize-*` geradas ficam no .gitignore (regenere com `npx wize-dev-kit sync`) — skills de time escritas à mão, ao lado delas, devem ser commitadas, conforme a própria orientação do Kiro.
16
+ - **Progressive disclosure.** No início da sessão o Kiro carrega apenas `name` + `description` de cada skill; o `SKILL.md` completo é ativado quando o pedido combina com a descrição, ou explicitamente via `/wize-{code}` no chat. As descrições do kit são escritas ricas em palavras-chave exatamente para esse match.
17
+ - **Steering é separado.** Contexto de projeto sempre-on vive em `.kiro/steering/*.md` — específico do Kiro e não produzido por este adapter, então combinar com o alvo **Fallback genérico** (raiz `AGENTS.md`) é um bônus.
18
+ - **Ressalva de custom agents.** Custom agents do Kiro não carregam skills por padrão — adicione `"skill://.kiro/skills/*/SKILL.md"` ao campo `resources` do agente.
19
+
20
+ ## Como ativar
21
+
22
+ Escolha **Kiro — AWS** como alvo de IDE em `npx wize-dev-kit install` (ou adicione depois e rode `npx wize-dev-kit sync`). Reinicie o Kiro e rode `/wize-orchestrator`.
23
+
24
+ ## Headless
25
+
26
+ `kiro-cli chat --no-interactive --trust-all-tools "<prompt>"` roda uma sessão headless de uma execução (requer `KIRO_API_KEY`), usada pelo baseline brownfield do instalador quando o Kiro CLI é o harness detectado.
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.16.1",
4
+ "version": "0.18.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",
@@ -22,6 +22,9 @@ skills:
22
22
  - code: wize-check
23
23
  name: "Check (Wizer)"
24
24
  description: "Progress checklist for the demand in flight: done (with evidence), in progress, left, blocked. Read-only — reports, then resumes the interrupted work."
25
+ - code: wize-update
26
+ name: "Update (Wizer)"
27
+ description: "Checks kit version skew, shows the changelog jump, confirms, then applies `wize-dev-kit update` and reports the result."
25
28
  - code: wize-onboarding
26
29
  name: "Onboarding"
27
30
  description: "Post-install triage: greenfield vs brownfield, profile, objective. Delegates to specialists."
@@ -99,15 +99,15 @@ See the full intent routing table in `wize-help/skill.md` (Step 2a). The same ta
99
99
 
100
100
  ## Step 2.5 — version skew (proactive)
101
101
 
102
- Compare `kit_version` (project.toml) vs the installed kit vs (if you have a terminal, 2s timeout) `npm view wize-dev-kit version`:
102
+ If you have Bash, run `npx wize-dev-kit version-check --json` once — it reads a local 1h cache before touching the network, caps any registry call at ~1.5s, and degrades to `{"latest":null}` silently if offline, so this never blocks the response. Compare its `installed` field against `kit_version` (project.toml):
103
103
 
104
104
  | Condition | Suggest |
105
105
  |---|---|
106
- | installed > project.toml | `npx wize-dev-kit update` |
107
- | registry > installed | `npx wize-dev-kit@latest update` |
108
- | all match | nothing |
106
+ | `installed` > `kit_version` (project.toml) | `/wize-update` |
107
+ | `latest` > `installed` | `/wize-update` |
108
+ | everything matches, or `latest` is `null` | nothing |
109
109
 
110
- Phrase as one short line, not a banner. If the user agrees and you have Bash, run it in the project root.
110
+ Phrase as one short line, not a banner — and only the **first time in this conversation**. If you already mentioned it earlier in this session, don't repeat it.
111
111
 
112
112
  ## Step 3 — respond
113
113
 
@@ -201,18 +201,19 @@ Match is case-insensitive, substring-based. Longest match wins. When no intent m
201
201
  | "create workflow", "criar workflow", "novo workflow" | `wize-create-workflow` |
202
202
  | "onboarding", "instalar kit", "primeiro uso" | `wize-onboarding` |
203
203
  | "party mode", "multi-agent", "reunir agentes" | `wize-party-mode` |
204
+ | "atualizar o kit", "tem atualização", "nova versão do kit", "update the kit", "wize update" | `wize-update` |
204
205
 
205
206
  ## Step 2.5 — version skew (proactive)
206
207
 
207
- Compare `kit_version` (project.toml) vs the installed kit vs (if you have a terminal, 2s timeout) `npm view wize-dev-kit version`:
208
+ If you have Bash, run `npx wize-dev-kit version-check --json` once — it reads a local 1h cache before touching the network, caps any registry call at ~1.5s, and degrades to `{"latest":null}` silently if offline, so this never blocks the response. Compare its `installed` field against `kit_version` (project.toml):
208
209
 
209
210
  | Condition | Suggest |
210
211
  |---|---|
211
- | installed > project.toml | `npx wize-dev-kit update` |
212
- | registry > installed | `npx wize-dev-kit@latest update` |
213
- | all match | nothing |
212
+ | `installed` > `kit_version` (project.toml) | `/wize-update` |
213
+ | `latest` > `installed` | `/wize-update` |
214
+ | everything matches, or `latest` is `null` | nothing |
214
215
 
215
- Phrase as one short line, not a banner. If the user agrees and you have Bash, run it in the project root.
216
+ Phrase as one short line, not a banner — and only the **first time in this conversation**. If you already mentioned it earlier in this session, don't repeat it.
216
217
 
217
218
  ## Step 3 — respond
218
219
 
@@ -0,0 +1,61 @@
1
+ ---
2
+
3
+ code: wize-update
4
+ description: "Use quando o usuário pedir para atualizar o Wize Dev Kit, perguntar se há uma versão nova, ou quando o Wizer notar version skew (Step 2.5) e ele confirmar o update."
5
+ name: Update (Wizer)
6
+ module: orchestrator
7
+ owner: wize-orchestrator
8
+ status: ready
9
+ aliases: []
10
+ ---
11
+
12
+ # Wizer · `/wize-update`
13
+
14
+ **Goal.** Bring the installed kit up to date safely: check the real version skew, show what changes before anything runs, get a one-line confirmation, apply it, report the result. Never a surprise — this rewrites files under version control.
15
+
16
+ ## Step 1 — check version skew
17
+
18
+ If you have Bash, run:
19
+
20
+ ```
21
+ npx wize-dev-kit version-check --json
22
+ ```
23
+
24
+ Cheap by design: it reads a local 1h cache before touching the network, caps any registry call at ~1.5s, and degrades to `{"latest":null}` silently if offline — it never blocks this step.
25
+
26
+ Read `kit_version` from `.wize/config/project.toml` — that is the version **this project's** rendered skills are on. `version-check`'s `installed` field is the kit version currently resolved by `npx` (it can already be newer than what is rendered here, if someone bumped the resolved package without running `update`).
27
+
28
+ | Condition | Meaning |
29
+ |---|---|
30
+ | `latest` (registry) > `installed` | A newer kit exists upstream. |
31
+ | `installed` > project's `kit_version` | This project is behind what npx already resolves. |
32
+ | everything matches, or `latest` is `null` | Nothing to do — say so in one line and stop. Do not continue to Step 2. |
33
+
34
+ ## Step 2 — show the jump, then confirm
35
+
36
+ State the version jump plainly (`{from} → {to}`). If you have Bash, `sed -n`/`cat` the relevant excerpt of `CHANGELOG.md` between those versions for a one-line summary of what changed — or trust the excerpt `update` itself prints in Step 3 and summarize that instead.
37
+
38
+ Ask one line: *"Atualizar o kit de {from} para {to}? Isso vai re-renderizar os adapters instalados (claude-code, generic, …) e regravar `kit_version` em `project.toml`."*
39
+
40
+ Never run Step 3 without this confirmation — it rewrites rendered skill/command files that live under version control, and the resulting diff should land as the user's own reviewed commit, not an unreviewed surprise.
41
+
42
+ ## Step 3 — run it
43
+
44
+ On confirmation:
45
+
46
+ ```
47
+ npx wize-dev-kit@latest update
48
+ ```
49
+
50
+ Relay its output — it already reports per-adapter results and a CHANGELOG excerpt. It is idempotent and additive: it never touches `.wize/config/user.toml`, never removes custom agents/skills under `.wize/custom/`, and only rewrites the `kit_version` line in `project.toml`.
51
+
52
+ ## Step 4 — close the loop
53
+
54
+ - Flag any adapter the output reported as `skipped` or `error` — those need a manual look.
55
+ - Repeat, in one line, that the IDE/harness needs a restart to pick up refreshed slash commands.
56
+ - Suggest reviewing the diff (`git status` / `git diff`) before committing — this is a real file change, not a no-op.
57
+
58
+ ## When NOT to use
59
+
60
+ - No `.wize/` folder at all → this is a fresh install, not an update. Route to `npx wize-dev-kit install` (see `wize-onboarding`).
61
+ - The user only wants to know whether an update exists, without applying it → Step 1 alone answers that; do not push into Step 2/3 unasked.
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- // Verifica que o wize-eli5 é renderizado por TODOS os 10 adapters de harness.
2
+ // Verifica que o wize-eli5 é renderizado por TODOS os 11 adapters de harness.
3
3
  'use strict';
4
4
  const fs = require('node:fs');
5
5
  const path = require('node:path');
@@ -12,6 +12,7 @@ const EXPECT = [
12
12
  { code: 'codex', file: '.agents/skills/wize-eli5/SKILL.md' },
13
13
  { code: 'kimi-code', file: '.kimi/skills/wize-eli5/SKILL.md' },
14
14
  { code: 'hermes', file: '.hermes/skills/wize-eli5/SKILL.md' },
15
+ { code: 'kiro', file: '.kiro/skills/wize-eli5/SKILL.md' },
15
16
  { code: 'cursor', file: '.cursor/rules/wize-eli5.mdc' },
16
17
  { code: 'windsurf', file: '.windsurf/rules/wize-eli5.md' },
17
18
  { code: 'continue', file: '.continue/prompts/wize-eli5.prompt' },
@@ -46,5 +47,5 @@ for (const a of EXPECT) {
46
47
  fs.rmSync(root, { recursive: true, force: true });
47
48
  }
48
49
  }
49
- console.log(`\n${ok}/10 harnesses com wize-eli5.`);
50
+ console.log(`\n${ok}/11 harnesses com wize-eli5.`);
50
51
  process.exit(fail ? 1 : 0);
@@ -5,7 +5,7 @@
5
5
  //
6
6
  // Harness priority is:
7
7
  // 1. user's selected IDE targets (from .wize/config/project.toml), highest first
8
- // 2. claude > codex > opencode > hermes (universal fallback)
8
+ // 2. claude > codex > opencode > hermes > kiro-cli (universal fallback)
9
9
  //
10
10
  // Set WIZE_SKIP_BASELINE=1 in the environment to disable any execution (the
11
11
  // install still suggests the next step). Useful for CI and unattended setups.
@@ -40,6 +40,11 @@ const HARNESSES = [
40
40
  code: 'hermes',
41
41
  binary: 'hermes',
42
42
  buildCmd: (prompt) => ({ cmd: 'hermes', args: ['-z', prompt] })
43
+ },
44
+ {
45
+ code: 'kiro',
46
+ binary: 'kiro-cli',
47
+ buildCmd: (prompt) => ({ cmd: 'kiro-cli', args: ['chat', '--no-interactive', '--trust-all-tools', prompt] })
43
48
  }
44
49
  ];
45
50
 
@@ -101,7 +106,7 @@ function manualInstructions(harness) {
101
106
  if (!harness) {
102
107
  return [
103
108
  '',
104
- 'No AI harness CLI was detected on PATH (claude / codex / opencode / hermes).',
109
+ 'No AI harness CLI was detected on PATH (claude / codex / opencode / hermes / kiro-cli).',
105
110
  'Open your IDE in this repo and run:',
106
111
  ' /wize-document-project',
107
112
  ''
@@ -61,6 +61,7 @@ function adapterTargetPath(targetCode, projectRoot) {
61
61
  case 'codex': return path.join(projectRoot, '.agents/skills');
62
62
  case 'kimi-code': return path.join(projectRoot, '.kimi/skills');
63
63
  case 'hermes': return path.join(projectRoot, '.hermes/skills');
64
+ case 'kiro': return path.join(projectRoot, '.kiro/skills');
64
65
  case 'cursor': return path.join(projectRoot, '.cursor/rules');
65
66
  case 'windsurf': return path.join(projectRoot, '.windsurf/rules');
66
67
  case 'continue': return path.join(projectRoot, '.continue/prompts');
@@ -0,0 +1,39 @@
1
+ // `wize-dev-kit version-check` — explicit, agent-friendly version check.
2
+ //
3
+ // The other CLI commands print an opportunistic hint (version-check.js's
4
+ // printUpdateHintIfAny) that stays silent on a non-TTY stdout so it never
5
+ // spams a pipe. This command is the opposite: it was asked for by name —
6
+ // by a human, or by an AI agent shelling out from a skill instruction where
7
+ // stdout is never a TTY — so it always answers, in `--json` when a caller
8
+ // needs to parse it.
9
+
10
+ 'use strict';
11
+
12
+ const { getVersionCheckResult } = require('../version-check.js');
13
+
14
+ async function cmdVersionCheck({ currentVersion, json = false, log = console.log } = {}) {
15
+ const result = await getVersionCheckResult(currentVersion);
16
+
17
+ if (json) {
18
+ log(JSON.stringify(result));
19
+ return result;
20
+ }
21
+
22
+ if (result.disabled) {
23
+ log('Update check disabled (WIZE_DISABLE_UPDATE_CHECK=1).');
24
+ return result;
25
+ }
26
+ if (!result.latest) {
27
+ log(`wize-dev-kit ${result.installed} (could not reach the registry — offline or timed out).`);
28
+ return result;
29
+ }
30
+ if (result.updateAvailable) {
31
+ log(`↑ Update available: wize-dev-kit ${result.installed} → ${result.latest}`);
32
+ log(' Run `npx wize-dev-kit@latest update` in your project to refresh adapters — or `/wize-update` from inside your AI harness.');
33
+ } else {
34
+ log(`wize-dev-kit ${result.installed} is up to date.`);
35
+ }
36
+ return result;
37
+ }
38
+
39
+ module.exports = { cmdVersionCheck };
@@ -25,6 +25,7 @@ const GITIGNORE_BODY = [
25
25
  '.agents/skills/wize-*',
26
26
  '.kimi/skills/wize-*',
27
27
  '.hermes/skills/wize-*',
28
+ '.kiro/skills/wize-*',
28
29
  '.cursor/rules/wize-*.mdc',
29
30
  '.windsurf/rules/wize-*.md',
30
31
  '.continue/prompts/wize-*.prompt',
@@ -104,6 +104,25 @@ async function printUpdateHintIfAny(currentVersion, { log = console.log, isTTY =
104
104
  }
105
105
  }
106
106
 
107
+ // Pure, TTY-agnostic version check. printUpdateHintIfAny above is an
108
+ // opportunistic hint meant for a human's terminal (gated on isTTY so it
109
+ // never spams a pipe or a script); this is the explicit-invocation
110
+ // counterpart behind the `version-check` CLI command, which an AI agent
111
+ // shells out to non-interactively — stdout there is never a TTY, so a
112
+ // TTY-gated check would go silent exactly when it's needed. Always resolves
113
+ // to a plain object, never throws, and shares the same 1h cache.
114
+ async function getVersionCheckResult(currentVersion, { skipCache = false } = {}) {
115
+ if (process.env.WIZE_DISABLE_UPDATE_CHECK === '1') {
116
+ return { installed: currentVersion, latest: null, updateAvailable: false, disabled: true };
117
+ }
118
+ const latest = await getLatestVersion({ skipCache });
119
+ return {
120
+ installed: currentVersion,
121
+ latest: latest || null,
122
+ updateAvailable: latest ? semverGreater(latest, currentVersion) : false
123
+ };
124
+ }
125
+
107
126
  module.exports = {
108
127
  CACHE_TTL_MS,
109
128
  NETWORK_TIMEOUT_MS,
@@ -113,5 +132,6 @@ module.exports = {
113
132
  fetchLatestFromRegistry,
114
133
  getLatestVersion,
115
134
  semverGreater,
116
- printUpdateHintIfAny
135
+ printUpdateHintIfAny,
136
+ getVersionCheckResult
117
137
  };
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * v0.15.0 — Full-lifecycle CLI with install, update, uninstall, list, sync,
7
7
  * agent, workflow, validate, doctor, and document-project commands. Adapters
8
- * render for 10 IDE targets. Security overlay ships with 8 tools.
8
+ * render for 11 IDE targets. Security overlay ships with 8 tools.
9
9
  * `install --yes` now enables all harnesses + all overlays by default.
10
10
  */
11
11
  'use strict';
@@ -19,6 +19,7 @@ const prompts = require('prompts');
19
19
  const { applyGitignore, generateUserToml } = require('./setup-helpers.js');
20
20
  const { cmdUpdate, loadProjectConfig } = require('./commands/update.js');
21
21
  const { printUpdateHintIfAny } = require('./version-check.js');
22
+ const { cmdVersionCheck } = require('./commands/version-check.js');
22
23
  const { cmdSync: cmdSyncReal } = require('./commands/sync.js');
23
24
  const { cmdAgentList, cmdAgentCreate, cmdAgentEdit } = require('./commands/agent.js');
24
25
  const { cmdDoctor, adapterTargetPath } = require('./commands/doctor.js');
@@ -38,6 +39,7 @@ const TARGETS = [
38
39
  { code: 'continue', label: 'Continue', default: false },
39
40
  { code: 'kimi-code', label: 'Kimi Code', default: false },
40
41
  { code: 'hermes', label: 'Hermes Agent (.hermes/skills/)', default: false },
42
+ { code: 'kiro', label: 'Kiro — AWS (.kiro/skills/)', default: false },
41
43
  { code: 'opencode', label: 'OpenCode', default: false },
42
44
  { code: 'antigravity', label: 'Antigravity (CLI + IDE)', default: false },
43
45
  { code: 'generic', label: 'Generic fallback (.wize/agents/)', default: true }
@@ -72,6 +74,7 @@ Usage:
72
74
  Commands:
73
75
  install Install the kit into the current repo (interactive).
74
76
  update Apply upstream diff while preserving customizations.
77
+ version-check [--json] Check installed vs. latest version (scriptable; never blocks).
75
78
  uninstall Remove the kit from the current repo (preserves code).
76
79
  list List installed agents, skills and workflows.
77
80
  sync Regenerate IDE adapters for active targets.
@@ -890,6 +893,8 @@ async function main() {
890
893
  switch (cmd) {
891
894
  case 'install': return cmdInstall(rest);
892
895
  case 'update': return cmdUpdate({ kitRoot: KIT_ROOT, projectRoot: process.cwd() });
896
+ case 'version-check':
897
+ return cmdVersionCheck({ currentVersion: KIT_VERSION, json: rest.includes('--json') });
893
898
  case 'uninstall': return cmdUninstall(rest);
894
899
  case 'list': return cmdList();
895
900
  case 'sync': return cmdSync();