izanagi-ai 3.9.0 → 3.10.1

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.
@@ -47,4 +47,4 @@
47
47
  - `.opencode/agent/*.md`: integração com opencode (compatível com Kimi CLI)
48
48
 
49
49
  ---
50
- Gerado pelo Izanagi AI em `C:\Users\pedro.leal\Documents\NexusAI`: `izanagi export --cli codex`
50
+ Gerado pelo Izanagi AI: `izanagi export --cli codex`
@@ -47,4 +47,4 @@
47
47
  Definições completas em `agents/*.json` e skills em `skills/<name>/SKILL.md`.
48
48
 
49
49
  ---
50
- Gerado pelo Izanagi AI em `C:\Users\pedro.leal\Documents\NexusAI`: `izanagi export --cli copilot`
50
+ Gerado pelo Izanagi AI: `izanagi export --cli copilot`
@@ -5,7 +5,7 @@
5
5
  # inteiro => fail-fast global. Pipeline apenas de integracao; sem deploy.
6
6
  #
7
7
  # Supply chain: TODAS as actions de terceiros fixadas por SHA de commit
8
- # completo (imutavel), resolvidos ao vivo na GitHub API em 2026-08-22.
8
+ # completo (imutavel), resolvidos ao vivo na GitHub API em 2026-08-23.
9
9
  # A tag major fica no comentario acima de cada "uses". Nunca referenciar
10
10
  # tags mutaveis (@v4/@main/@latest) diretamente.
11
11
  #
@@ -41,11 +41,11 @@ jobs:
41
41
  runs-on: ubuntu-latest
42
42
  timeout-minutes: 15
43
43
  steps:
44
- # actions/checkout@v5
45
- - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09
46
- # actions/setup-node@v4 - Node 24 por paridade com dev local (v24.18.0);
44
+ # actions/checkout@v7
45
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
46
+ # actions/setup-node@v6 - Node 24 por paridade com dev local (v24.18.0);
47
47
  # engines: raiz declara >=18, pacotes poliglotas (sdk/cli) declaram >=22.
48
- - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
48
+ - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f
49
49
  with:
50
50
  node-version: '24'
51
51
  cache: npm # usa o package-lock.json commitado na raiz
@@ -77,8 +77,8 @@ jobs:
77
77
  runs-on: ubuntu-latest
78
78
  timeout-minutes: 20
79
79
  steps:
80
- # actions/checkout@v5
81
- - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09
80
+ # actions/checkout@v7
81
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
82
82
  # dtolnay/rust-toolchain@stable (branch mutavel por design do autor;
83
83
  # o SHA congela o CODIGO da action, nao a versao do Rust instalada)
84
84
  - uses: dtolnay/rust-toolchain@4360b52568e2003a75bf9bc1d59f33a8e3fc893c
@@ -127,8 +127,8 @@ jobs:
127
127
  runs-on: ubuntu-latest
128
128
  timeout-minutes: 20
129
129
  steps:
130
- # actions/checkout@v5
131
- - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09
130
+ # actions/checkout@v7
131
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
132
132
  # dtolnay/rust-toolchain@stable - "targets" instala o target cross junto
133
133
  - uses: dtolnay/rust-toolchain@4360b52568e2003a75bf9bc1d59f33a8e3fc893c
134
134
  with:
@@ -167,8 +167,8 @@ jobs:
167
167
  runs-on: ubuntu-latest
168
168
  timeout-minutes: 10
169
169
  steps:
170
- # actions/checkout@v5
171
- - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09
170
+ # actions/checkout@v7
171
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
172
172
  # actions/setup-go@v5
173
173
  - uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff
174
174
  with:
@@ -200,8 +200,8 @@ jobs:
200
200
  runs-on: ubuntu-latest
201
201
  timeout-minutes: 10
202
202
  steps:
203
- # actions/checkout@v5
204
- - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09
203
+ # actions/checkout@v7
204
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
205
205
  # actions/setup-python@v5
206
206
  - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065
207
207
  with:
@@ -244,10 +244,10 @@ jobs:
244
244
  - package: cli
245
245
  script: build # npm run build = tsc -p tsconfig.json
246
246
  steps:
247
- # actions/checkout@v5
248
- - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09
249
- # actions/setup-node@v4 - cache por lockfile do pacote da matriz
250
- - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
247
+ # actions/checkout@v7
248
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
249
+ # actions/setup-node@v6 - cache por lockfile do pacote da matriz
250
+ - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f
251
251
  with:
252
252
  node-version: '24'
253
253
  cache: npm
@@ -27,9 +27,9 @@
27
27
  # desta frente.
28
28
  #
29
29
  # 2) SUPPLY CHAIN: actions fixadas por SHA de commit completo (imutável).
30
- # SHAs conferidos nos logs reais de execução deste repo:
31
- # - actions/checkout@v4 => 11d5960a326750d5838078e36cf38b85af677262
32
- # - actions/setup-node@v4 => 49933ea5288caeca8642d1e84afbd3f7d6820020
30
+ # SHAs conferidos na GitHub API em 2026-08-23 (tags = commits):
31
+ # - actions/checkout@v7.0.1 => 3d3c42e5aac5ba805825da76410c181273ba90b1
32
+ # - actions/setup-node@v6.1.0 => 395ad3262231945c25e8478fd5baf05154b1d79f
33
33
  # Nunca referenciar tags mutáveis (@v4/@main) diretamente.
34
34
  #
35
35
  # 3) LEAST PRIVILEGE:
@@ -42,6 +42,21 @@
42
42
  #
43
43
  # 4) PARIDADE DE RUNTIME: Node 24 (igual dev local e igual Polyglot CI,
44
44
  # onde o job legacy-npm validou ci/build/test no 24). O 20.x era drift.
45
+ #
46
+ # 5) PROVENANCE OIDC DO NPM (Wave 5 - frente C, 2026-08-23):
47
+ # `npm publish --provenance` anexa uma declaração de proveniência SLSA
48
+ # assinada via keyless Sigstore ao pacote, provando que o artefato foi
49
+ # construído NESTE workflow, NESTE repo, a partir da tag publicada.
50
+ # - Permissão `id-token: write` declarada APENAS no job publish (least
51
+ # privilege): build-and-verify não publica e não deve mintar OIDC.
52
+ # Bloco de permissions de job SOBRESCREVE o global, por isso
53
+ # contents:read é redeclarado nele.
54
+ # - Direção de falha segura (fail-closed): se o token OIDC/provenance
55
+ # falhar, o npm ABORTA o publish antes do upload - nunca há pacote
56
+ # publicado sem provenance silenciosamente.
57
+ # Pré-requisitos conferidos: npm >=9.5 (Node 24 => npm 11.x), registry
58
+ # npmjs.org, campo repository do package.json = este repo, evento
59
+ # push tag/release suportado.
45
60
  # =============================================================================
46
61
 
47
62
  name: Publish to NPM
@@ -62,10 +77,10 @@ jobs:
62
77
  runs-on: ubuntu-latest
63
78
  timeout-minutes: 15
64
79
  steps:
65
- # actions/checkout@v4
66
- - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
67
- # actions/setup-node@v4 - SEM registry-url/token: job não publica nada.
68
- - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
80
+ # actions/checkout@v7
81
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
82
+ # actions/setup-node@v6 - SEM registry-url/token: job não publica nada.
83
+ - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f
69
84
  with:
70
85
  node-version: '24'
71
86
  cache: npm
@@ -81,12 +96,20 @@ jobs:
81
96
  needs: build-and-verify
82
97
  runs-on: ubuntu-latest
83
98
  timeout-minutes: 10
99
+ # Least privilege no nível de JOB (não global): id-token:write é exigido
100
+ # pelo provenance OIDC do npm e vale só aqui. Este bloco SOBRESCREVE o
101
+ # permissions do topo do workflow para este job - por isso contents:read
102
+ # é redeclarado (checkout continua funcionando). build-and-verify segue
103
+ # herdando apenas contents:read do escopo global.
104
+ permissions:
105
+ contents: read
106
+ id-token: write
84
107
  steps:
85
- # actions/checkout@v4
86
- - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
87
- # actions/setup-node@v4 - registry-url apenas aqui: gera o .npmrc com
108
+ # actions/checkout@v7
109
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
110
+ # actions/setup-node@v6 - registry-url apenas aqui: gera o .npmrc com
88
111
  # NODE_AUTH_TOKEN injetado pelo setup-node SOMENTE neste job.
89
- - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
112
+ - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f
90
113
  with:
91
114
  node-version: '24'
92
115
  cache: npm
@@ -112,6 +135,8 @@ jobs:
112
135
  fi
113
136
  - name: Publish (only if version is new)
114
137
  if: steps.version_guard.outputs.already_published == 'false'
115
- run: npm publish --access public
138
+ # --provenance: exige id-token:write (acima). Fail-closed: sem OIDC
139
+ # válido o npm aborta ANTES do upload - nunca publica sem assinatura.
140
+ run: npm publish --access public --provenance
116
141
  env:
117
142
  NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
package/.kimi/README.md CHANGED
@@ -23,4 +23,4 @@ O **Kimi CLI** é compatível com a convenção do opencode: ele lê `AGENTS.md`
23
23
  - **Sempre**: IaC versionado; monitoramento desde o dia 1; secrets por ferramenta própria.
24
24
  - **Nunca**: commit `.env`; container root; deploy sem CI; hardcode de config de ambiente.
25
25
 
26
- > Gerado pelo Izanagi AI em `C:\Users\pedro.leal\Documents\NexusAI`: `izanagi export --cli kimi`
26
+ > Gerado pelo Izanagi AI: `izanagi export --cli kimi`
package/.manifest CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "izanagi-ai",
3
- "version": "3.9.0",
3
+ "version": "3.10.1",
4
4
  "description": "Izanagi AI - Modular Skill-Oriented AI Prompt & Agent Framework for Autonomous Software Engineering",
5
5
  "author": "Pedro Henrique Sanches Leal",
6
6
  "license": "MIT",
7
7
  "homepage": "https://github.com/pedrohenriquesanchesleal4-debug/izanagi-ai#readme",
8
- "generatedAt": "2026-08-23T05:32:21.270Z",
8
+ "generatedAt": "2026-08-23T18:46:09.377Z",
9
9
  "agents": [
10
10
  {
11
11
  "id": "adversarial-critic",
package/AGENTS.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # AGENTS.md: Izanagi AI Framework Reference
2
2
 
3
- > Version 3.6.0
3
+ > Version 3.9.0
4
4
  > Modular Skill-Oriented AI Prompt & Agent Framework for Autonomous Software Engineering
5
5
  > Multi-CLI: Opencode · Claude Code · Codex · Cursor · Copilot · Kimi (Smart Auto-Detection & Selective Generation)
6
6
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  ## 1. Visão Geral do Framework
10
10
 
11
- Izanagi AI é um **framework meta** para engenharia de software autônoma orientada a agentes: arquitetura em camadas (Routing → Orchestration → Evaluation → Healing → Memory), biblioteca de skills especializadas, **Skill Composer** (16 composições de skills encadeadas por domínio), **22 agentes especializados core + gerados**, **Memória Persistente Anti-Repetição** (`.agents/memoria/`), **Curadoria de Referências** (`references/`), **Checkpoint & Self-Healing Swarm Engine**, e uma **CLI executável (`izanagi`)** publicada no npm (`izanagi-ai`). Este repositório É o framework (não um app que o usa).
11
+ Izanagi AI é um **framework meta** para engenharia de software autônoma orientada a agentes: arquitetura em camadas (Routing → Orchestration → Evaluation → Healing → Memory), biblioteca de skills especializadas (catálogo v2 em `.skills/` convivendo com o legado `skills/`), **Skill Composer** (16 composições de skills encadeadas por domínio), **22 agentes especializados core + gerados**, **Memória Persistente Anti-Repetição** (`.agents/memoria/`), **Curadoria de Referências** (`references/`), **Checkpoint & Self-Healing Swarm Engine**, uma **CLI executável (`izanagi`)** publicada no npm (`izanagi-ai`) e uma **topologia poliglota** (Rust · Go · Python · TS — seção 3). Este repositório É o framework (não um app que o usa).
12
12
 
13
13
  ---
14
14
 
@@ -46,40 +46,84 @@ O framework conta com **22 agentes especializados** em `agents/*.json` + orquest
46
46
 
47
47
  ---
48
48
 
49
- ## 3. Comandos de Desenvolvimento (ordem importa)
49
+ ## 3. Arquitetura Poliglota (Waves 1–4)
50
+
51
+ Coexistência **Strangler Fig** (ADR-001): o legado npm (`src/`, CLI `izanagi`) permanece intocado e publicável; o crescimento novo vive num SDK TypeScript + 4 núcleos nativos, orquestrados pela CLI de nova geração (`packages/cli`, binário `izanagi-next`). Referência canônica de contratos IPC, error codes (`-32001..-32005`), env vars e ADRs: **`docs/POLYGLOT.md`** (ADRs integrais em `.agents/memoria/decisoes.md`, gitignored).
52
+
53
+ | Componente | Linguagem | Responsabilidade | Como testar |
54
+ |---|---|---|---|
55
+ | `crates/izanagi_core` | Rust | Quality engine: 7 heurísticas anti-slop sobre TS/Python/Go; protocolo NDJSON stdin/stdout (`validate`/`rules`/`version`) + op `scan-rationalizations` (`--file=<path>` / `--stdin`, exit 0/1/2); bindings WASM feature-gated (`--features wasm`, subcomandos `--version`/`--help`) | `cargo test --workspace` (111 testes) · `cargo check -p izanagi_core --features wasm` |
56
+ | `crates/izanagi_mcp` | Rust | Cliente MCP JSON-RPC 2.0 sobre stdio: discovery + invocação pontual (`izanagi-mcp call --tool=<name>`) | incluso no `cargo test --workspace` |
57
+ | `go-services/swarm_orchestrator` | Go | Orquestrador de swarm (Uber Fx): pipeline architect→engineer→qa→security via JSON-RPC 2.0 sobre UDS com event push | `(cd go-services/swarm_orchestrator && go build ./... && go vet ./... && go test ./...)` |
58
+ | `python-engine/ast_analyzer` | Python ≥3.10 | Análise semântica multilíngue: símbolos, complexidade ciclomática, imports (tree-sitter + fallback estrutural) | `(cd python-engine && .venv/bin/python -m pytest tests/ -q)` (70 testes) |
59
+ | `packages/sdk` | TypeScript | `@izanagi/sdk`: clientes tipados strict para os 4 núcleos + catálogo de skills; zero deps runtime | `(cd packages/sdk && npm install && npm test)` |
60
+ | `packages/cli` | TypeScript | Binário `izanagi-next`: run em 4 fases com auto-heal (N=2), `agent list`, `skill list`, `gates check`; exit codes próprios (0 ok · 1 gate/falha · 2 uso · 3 ambiente) | smoke manual (`help`, `agent list`) — suíte própria pendente |
61
+ | `packages/skill-migrator` · `agent-migrator` | Node ESM | Migradores determinísticos idempotentes: skills v1→v2 (106 módulos) e agents JSON→YAML (22) — ADR-004/005 | `node packages/agent-migrator/cli.mjs --check` · `node packages/skill-migrator/cli.mjs --dry-run` |
62
+
63
+ **Gotchas poliglotas:**
64
+ - Socket do orquestrador tem defaults divergentes por lado: servidor Go `/tmp/izanagi-orch.sock` (env `IZANAGI_ORCHESTRATOR_SOCK`) × SDK TS `/tmp/izanagi-swarm.sock` (env `IZANAGI_ORCHESTRATOR_SOCKET`). Case os dois via env antes de integrar (tabela completa em `docs/POLYGLOT.md`).
65
+ - Testes do SDK/CLI NUNCA via strip-types direto sobre `.ts`: use o build próprio de cada pacote (`npm test` dentro de `packages/sdk`).
66
+ - `Cargo.lock` é commitado (pins exatos, ex.: wasm-bindgen); build `.wasm` real só existe no job CI `wasm-build`.
67
+
68
+ ---
69
+
70
+ ## 4. Comandos de Desenvolvimento (ordem importa)
50
71
 
51
72
  ```
73
+ # Legado npm (raiz)
52
74
  npm install # instala deps
53
75
  npm run build # tsc && node dist/scripts/generate-manifest.js
54
- npm test # build + node --test dist/runtime/tests/*.test.js (262 testes)
76
+ npm test # build + node --test dist/runtime/tests/*.test.js (284 testes)
55
77
  npm run verify # build + teste de instalação em sandbox (passa todos os pack IDs)
56
- npm run doctor # node bin/izanagi.js doctor: auditoria de integridade
78
+ npm run doctor # node bin/izanagi.js doctor [--deep]: auditoria de integridade
57
79
  npm run bump:patch # npm version patch --no-git-tag-version (também minor/major)
58
80
  npm publish # prepublishOnly roda build; depois: git push
81
+
82
+ # Núcleos poliglotas
83
+ cargo build --workspace # Rust: bins izanagi-core / izanagi-mcp em target/debug/
84
+ cargo test --workspace # 111 testes (core + mcp)
85
+ cargo check -p izanagi_core --features wasm # type-check dos bindings WASM (ADR-003)
86
+ (cd go-services/swarm_orchestrator && go build ./... && go vet ./... && go test ./...)
87
+ (cd python-engine && .venv/bin/python -m pip install -r requirements-dev.txt && .venv/bin/python -m pytest tests/ -q)
88
+ (cd packages/sdk && npm install && npm test)
89
+ (cd packages/cli && npm install && npm run build)
90
+
91
+ # Diagnóstico & catálogos v2
92
+ node bin/izanagi.js polyglot status [--json|--strict] # saúde dos 7 componentes poliglotas (--strict sai 1 se algo ausente)
93
+ node packages/agent-migrator/cli.mjs --check # drift YAML ↔ JSON (exit 0 sincronia / 1 drift / 2 uso)
94
+ node packages/skill-migrator/cli.mjs --dry-run # valida migração skills v2 sem escrever
59
95
  ```
60
96
 
61
97
  **Gotchas críticos:**
62
- - `dist/` é gitignored e `bin/izanagi.js` importa de `../dist/cli/index.js`: **rode `npm run build` antes de qualquer comando CLI local**, senão roda código obsoleto ou quebra.
63
- - `doctor` valida: SYSTEM.md/RULES.md, JSONs de agentes e aliases do resolver → targets.
64
- - Há test runner real (`node:test`, 165 testes em `src/runtime/tests/`). Verificação = `npm test` + `npm run verify` + `npm run doctor`.
98
+ - `dist/` é gitignored e `bin/izanagi.js` importa de `../dist/cli/index.js`: **rode `npm run build` antes de qualquer comando CLI local** (`doctor`, `polyglot status`, `export`...), senão roda código obsoleto ou quebra. O mesmo vale para `packages/*/dist`: rode o build do package antes de consumir SDK/CLI-next.
99
+ - `doctor`: instalação completa do usuário = `.agents/agents/` contendo agentes em **JSON** (formato distribuído); os YAMLs derivados do repo-fonte não caracterizam instalação.
100
+ - Há test runner real (`node:test`, 284 testes em `src/runtime/tests/`). Verificação = `npm test` + `npm run verify` + `npm run doctor` + suítes poliglotas da seção 3.
65
101
  - Padrão de commit do repo: `chore: bump to vX.Y.Z` para bumps e `feat:`/`fix:`/`docs:` descritivos em PT-BR para mudanças.
66
102
 
67
103
  ---
68
104
 
69
- ## 4. Estrutura do Framework
105
+ ## 5. Estrutura do Framework
70
106
 
107
+ **Legado (fonte canônica de agentes e skills):**
71
108
  - `core/`: 14 engines (.md, incluindo `skill-composer.md`, `checkpoint-healing-engine.md`, `quality-gates.md`) + **`skill-resolver.json`** (mapa alias → target, 258 aliases, 16 `compositions`)
72
- - `agents/`: Definições de agentes em JSON (fonte da verdade para os comandos) com `chains` compostas e Agent Genome (13 campos)
73
- - `skills/`: 106 skills em `skills/<name>/SKILL.md` (+ `references.md` opcional), incluindo `design-directions` (Style Selector por indústria), `ui-ux-pro-max` (design system com motor BM25 offline em Node) e `anti-ai-slop` (auditoria zero "cara de IA")
109
+ - `agents/`: 22 definições de agentes em JSON (fonte da verdade para os comandos) com `chains` compostas e Agent Genome (13 campos); derivados YAML em `.agents/agents/*.yaml` gerados pelo agent-migrator — proibido editar YAML à mão
110
+ - `skills/`: legado histórico v1 (fonte do migrador). Catálogo ativo **v2**: `.skills/<name>/SKILL.md` (106 módulos; front-matter `name/description/version/category/tools.mcp` + seções Triggering Criteria / Step-by-Step Workflow / Verification Steps / Common Rationalizations / Red Flags; subpastas `references/`)
74
111
  - `references/`: curadoria de referências reais por domínio (webgl-3d, scrollytelling, ui-design-systems, stack-2026, performance-seo)
75
- - `.agents/memoria/`: memória persistente anti-repetição: `contexto.md`, `decisoes.md`, `erros-corrigidos.md`, `learnings.md`
112
+ - `.agents/memoria/`: memória persistente anti-repetição (**gitignored**, só existe local): `contexto.md`, `decisoes.md` (ADRs), `erros-corrigidos.md`, `learnings.md`
76
113
  - `.opencode/agent/`: comandos slash do Opencode/Kimi CLI, gerados sob demanda a partir de `agents/*.json` (`izanagi export --cli opencode`), junto dos adapters de `.claude/`, `.codex/`, `.cursor/`, `.github/`, `.kimi/`
77
- - `src/`: CLI TypeScript (entrypoint: `src/cli/index.ts` → `runCLI`; multi-CLI export: `src/exporters.ts`)
114
+ - `src/`: CLI TypeScript (entrypoint: `src/cli/index.ts` → `runCLI`; multi-CLI export: `src/exporters.ts`; diagnóstico poliglota: `src/cli/commands/polyglot.ts`)
78
115
  - `SYSTEM.md` & `RULES.md`: fundação e regras operacionais (Anti-Generic High-Craft, Masterpiece Gate & Cinematic UI)
79
116
 
117
+ **Poliglota (crescimento novo):**
118
+ - `crates/`: workspace Rust na raiz — `izanagi_core` (quality engine + bindings WASM feature-gated), `izanagi_mcp` (cliente MCP stdio); `Cargo.lock` commitado
119
+ - `go-services/swarm_orchestrator/`: orquestrador Go (Uber Fx, JSON-RPC 2.0 sobre UDS, event push, artefatos por estágio)
120
+ - `python-engine/`: analisador AST multilíngue (tree-sitter + fallback, ~70 testes, venv em `.venv/`)
121
+ - `packages/`: `sdk` (`@izanagi/sdk`), `cli` (binário `izanagi-next`), `skill-migrator`, `agent-migrator` — todos `private`
122
+ - `docs/POLYGLOT.md`: referência canônica da topologia poliglota (contratos IPC, tabela de env vars, gaps conhecidos, resumo dos ADRs)
123
+
80
124
  ---
81
125
 
82
- ## 5. Regras de Execução, Autonomia & Masterpiece Gate
126
+ ## 6. Regras de Execução, Autonomia & Masterpiece Gate
83
127
 
84
128
  - **Estudo Antes de Codar (Study-First):** toda tarefa começa (1) carregando `.agents/memoria/contexto.md` (sempre) + só os arquivos de `.agents/memoria/` (`decisoes.md`, `erros-corrigidos.md`, `learnings.md`) do domínio da tarefa (cada agente nativo em `.claude/agents/*.md` já aponta pra sua fatia relevante, não é preciso reler os quatro por hábito), (2) consultando `references/` e/ou `deep-research` quando a tarefa exigir informação externa, e só então (3) arquitetar e implementar. Nunca programe no escuro, mas também nunca recarregue contexto irrelevante.
85
129
  - **Lei da Fidelidade Absoluta a Referências (Anti-Rush):** Quando solicitado clonagem, inspiração ou replicação de uma referência visual/técnica (ex: `igloo.inc`), os agentes têm **estritamente proibido** retornar respostas apressadas ou fingir estudo superficial. É obrigatório decompor rigorosamente a estrutura, tipografia, grid, animações e micro-interações da referência e entregar uma obra de excelência artesanal (*High-Craft*) idêntica ou superior.
@@ -97,7 +141,7 @@ npm publish # prepublishOnly roda build; depois: git push
97
141
 
98
142
  ---
99
143
 
100
- ## 6. Padrão Anti-Generic / High-Craft & Cinematic UI
144
+ ## 7. Padrão Anti-Generic / High-Craft & Cinematic UI
101
145
 
102
146
  Proibido entregar código/design genérico "cara de IA" (templates óbvios, fundos cinzas chapados, cards repetitivos, sem animação).
103
147
  - **Obrigatório:** Estética Apple-like / Awwwards-grade (`bg-zinc-950`, glassmorphism, bento grids, tipografia precisa, scrollytelling e micro-interações).
@@ -105,7 +149,7 @@ Proibido entregar código/design genérico "cara de IA" (templates óbvios, fund
105
149
 
106
150
  ---
107
151
 
108
- ## 7. Multi-CLI Compatibility & Smart Detection
152
+ ## 8. Multi-CLI Compatibility & Smart Detection
109
153
 
110
154
  O framework funciona em qualquer CLI de IA que leia `AGENTS.md` e possui adapters gerados:
111
155
 
@@ -123,7 +167,11 @@ O framework funciona em qualquer CLI de IA que leia `AGENTS.md` e possui adapter
123
167
 
124
168
  ---
125
169
 
126
- ## 8. Release Flow (resumo)
170
+ ## 9. Release Flow & CI/CD (resumo)
171
+
172
+ **CI — `.github/workflows/polyglot.yml`** (push/PR em `main`; jobs 100% paralelos, fail-fast global, actions fixadas por SHA): `legacy-npm` (build+test) · `rust` (clippy + test + check wasm) · `wasm-build` (`.wasm` E2E, ADR-003) · `go` (build/vet/test) · `python` (pytest com pins) · `ts-packages` (sdk test + cli build).
173
+
174
+ **CD — `.github/workflows/publish.yml`**: exclusivo de tag `v*`/release; guard idempotente; least privilege. Pacotes poliglotas (`@izanagi/sdk`, `@izanagi/cli-next`) são `private` — só o legado npm publica (whitelist `files` não inclui `crates/`, `go-services/`, `python-engine/`, `packages/`, por decisão deliberada).
127
175
 
128
176
  1. `npm run bump:patch` (ou minor/major): bumpa `package.json`/`package-lock.json`
129
177
  2. `npm run build`: recompila + regenera `.manifest`
package/CHANGELOG.md CHANGED
@@ -4,6 +4,71 @@
4
4
 
5
5
  ---
6
6
 
7
+ ## [3.10.1]: 2026-08-23
8
+
9
+ ### Changed
10
+ - **Documentação auditada para a era poliglota**: README reescrito em torno da topologia poliglota (instalação, variáveis de ambiente e comandos de teste por núcleo), `docs/POLYGLOT.md` sincronizada com as medições atuais, SYSTEM/RULES/CONTRIBUTING/ROADMAP e `core/*.md` revisados contra a realidade do repositório.
11
+ - **Actions do CI unificadas e pinadas por SHA**: `actions/checkout@v7.0.1` e `actions/setup-node@v6.1.0` em todos os workflows, eliminando o warning de deprecação do Node 20 nos runners.
12
+
13
+ ---
14
+
15
+ ## [3.10.0]: 2026-08-23
16
+
17
+ ### Added
18
+ - **Progressive disclosure nas skills v2**: front-matter `references:` declara os arquivos de apoio de cada skill em `.skills/<name>/`; `izanagi-next skill show <name> [--ref <arquivo>]` exibe skill e references sob demanda; `skill-migrator --check` valida a sincronia sem escrever.
19
+ - **Gate anti-racionalização na fase 4 do `izanagi-next run`**: o artefato final passa pelo Anti-Rationalization Engine antes da entrega. Blocker reprova o gate e dispara auto-heal (N=2); Major/Minor são advisory; `rust-core` ausente degrada o gate para advisory com exit 0.
20
+ - **Provenance OIDC no publish npm**: `publish.yml` ganha `id-token: write` escopado ao job e publica com `--provenance` (fail-closed); attestation SLSA v1 verificável no registry.
21
+
22
+ ### Fixed
23
+ - **Rodapé de proveniência determinístico nos exporters**: os adapters gerados por `izanagi export` incluem um rodapé gerado deterministicamente, idempotente byte-a-byte entre máquinas (elimina diffs falsos entre execuções/regenerações).
24
+
25
+ ---
26
+
27
+ ## [3.9.0]: 2026-08-23
28
+
29
+ ### Added
30
+ - **Anti-Rationalization Engine em Rust** (`crates/izanagi_core`): scanner determinístico regex-free de racionalizações (33 padrões / 8 categorias), exposto como operação NDJSON `scan-rationalizations` com subcomandos `--file=<path>`/`--stdin` e flags `--version`/`--help`; exposto nos bindings WASM; 30 testes novos.
31
+
32
+ ### Changed
33
+ - **Consolidação CI/CD (ADR-006)**: `publish.yml` vira CD exclusivo de tag `v*`/release (guard idempotente, least privilege) e o pipeline poliglota (`polyglot.yml`) absorve o teste sandbox do `npm run verify`.
34
+
35
+ ### Fixed
36
+ - Higiene de repositório: `.gitignore` cobre os artefatos de build poliglotas; comentário de `engines` corrigido no workflow legado; removida a negação órfã de `agents/generated/c-systems-engineer.json` (arquivo não existe desde a 2.13.0).
37
+
38
+ ---
39
+
40
+ ## [3.8.0]: 2026-08-23
41
+
42
+ ### Added
43
+ - **`izanagi polyglot status [--json|--strict]`**: auditoria de saúde dos 7 componentes poliglotas (binários Rust, orquestrador Go, engine Python, pacotes TS); `--strict` sai com exit 1 se algo estiver ausente.
44
+ - **`docs/POLYGLOT.md`**: referência canônica da topologia poliglota — contratos IPC, error codes (-32001..-32005), tabela de variáveis de ambiente, gaps conhecidos e resumo dos ADRs.
45
+
46
+ ### Changed
47
+ - **Gates de qualidade Rust ativados no CI**: `cargo fmt` aplicado integralmente + 4 fixes semânticos do clippy (zero `#[allow]`); `fmt-check` e `clippy -D warnings` agora bloqueiam o pipeline; guard de idempotência e least privilege também reforçados no workflow legado.
48
+
49
+ ### Fixed
50
+ - **postinstall tolerante a checkout sem `dist/`** (bug de CI): a auto-ativação do `izanagi-ai` não falha mais quando executada a partir de um checkout recém-clonado sem build prévio.
51
+
52
+ ---
53
+
54
+ ## [3.7.0]: 2026-08-23
55
+
56
+ ### Added
57
+ - **Topologia poliglota ao lado do runtime npm legado** (Strangler Fig, ADR-001):
58
+ - `crates/izanagi_core` (Rust): quality engine com 7 heurísticas anti-slop sobre TS/Python/Go, protocolo NDJSON stdin/stdout (`validate`/`rules`/`version`) e bindings WASM feature-gated.
59
+ - `crates/izanagi_mcp` (Rust): cliente MCP JSON-RPC 2.0 sobre stdio (discovery + invocação pontual), agora com subcomando `call --tool=<name>` coberto por testes E2E.
60
+ - `go-services/swarm_orchestrator` (Go): orquestrador de swarm (Uber Fx) com pipeline architect→engineer→qa→security via JSON-RPC 2.0 sobre UDS e event push.
61
+ - `python-engine/ast_analyzer` (Python ≥3.10): análise semântica multilíngue (símbolos, complexidade ciclomática, imports) com tree-sitter + fallback estrutural.
62
+ - `packages/sdk` (`@izanagi/sdk`, clientes tipados strict para os 4 núcleos + catálogo de skills) e `packages/cli` (binário `izanagi-next`, run em 4 fases com auto-heal N=2), mais o `skill-migrator` determinístico (skills v1→v2).
63
+ - **Catálogo de skills v2 (`.skills/<name>/SKILL.md`)**: 106 módulos migrados deterministicamente do legado `skills/` com seções Triggering Criteria / Step-by-Step Workflow / Verification Steps / Common Rationalizations / Red Flags (ADR-004).
64
+ - **CI poliglota GitHub Actions** (`.github/workflows/polyglot.yml`): jobs paralelos para npm legado, Rust+WASM, Go, Python e pacotes TS, com `requirements-dev.txt` pinado.
65
+ - **Topologia `.agents/agents/*.yaml` via `agent-migrator`**: os 22 agentes derivados JSON→YAML por migrador determinístico idempotente (ADR-005); `--check` detecta drift YAML↔JSON.
66
+
67
+ ### Fixed
68
+ - **`doctor`**: a heurística de raiz não confunde mais os YAMLs derivados (`.agents/agents/*.yaml`) com uma instalação completa (que exige agentes em JSON); regressão coberta por testes.
69
+
70
+ ---
71
+
7
72
  ## [3.6.0]: 2026-08-18
8
73
 
9
74
  ### Fixed
package/CLAUDE.md CHANGED
@@ -78,4 +78,4 @@ Todas as 106 skills da biblioteca (`skills/<name>/SKILL.md`) foram exportadas fi
78
78
  > Regras específicas de cada agente (always/never) vivem em `.claude/agents/<slug>.md`: lidas sob demanda só quando aquele agente é ativado, não duplicadas aqui.
79
79
 
80
80
  ---
81
- Gerado pelo Izanagi AI em `C:\Users\pedro.leal\Documents\NexusAI`: `izanagi export --cli claude`
81
+ Gerado pelo Izanagi AI: `izanagi export --cli claude`