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.
- package/.codex/instructions.md +1 -1
- package/.github/copilot-instructions.md +1 -1
- package/.github/workflows/polyglot.yml +17 -17
- package/.github/workflows/publish.yml +37 -12
- package/.kimi/README.md +1 -1
- package/.manifest +2 -2
- package/AGENTS.md +65 -17
- package/CHANGELOG.md +65 -0
- package/CLAUDE.md +1 -1
- package/README.md +140 -43
- package/ROADMAP.md +2 -2
- package/RULES.md +3 -1
- package/SYSTEM.md +6 -6
- package/core/decision-engine.md +0 -3
- package/core/quality-gates.md +2 -2
- package/dist/exporters.d.ts +10 -0
- package/dist/exporters.d.ts.map +1 -1
- package/dist/exporters.js +27 -15
- package/dist/exporters.js.map +1 -1
- package/dist/runtime/tests/exporters-provenance.test.d.ts +2 -0
- package/dist/runtime/tests/exporters-provenance.test.d.ts.map +1 -0
- package/dist/runtime/tests/exporters-provenance.test.js +173 -0
- package/dist/runtime/tests/exporters-provenance.test.js.map +1 -0
- package/kimi.md +1 -1
- package/package.json +1 -1
- package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-314.pyc +0 -0
- package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc +0 -0
- package/skills/ui-ux-pro-max/scripts/tests/__pycache__/test_core.cpython-314-pytest-9.1.1.pyc +0 -0
- package/skills/ui-ux-pro-max/scripts/tests/__pycache__/test_design_system_mode.cpython-314-pytest-9.1.1.pyc +0 -0
package/.codex/instructions.md
CHANGED
|
@@ -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-
|
|
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@
|
|
45
|
-
- uses: actions/checkout@
|
|
46
|
-
# actions/setup-node@
|
|
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@
|
|
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@
|
|
81
|
-
- uses: actions/checkout@
|
|
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@
|
|
131
|
-
- uses: actions/checkout@
|
|
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@
|
|
171
|
-
- uses: actions/checkout@
|
|
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@
|
|
204
|
-
- uses: actions/checkout@
|
|
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@
|
|
248
|
-
- uses: actions/checkout@
|
|
249
|
-
# actions/setup-node@
|
|
250
|
-
- uses: actions/setup-node@
|
|
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
|
|
31
|
-
# - actions/checkout@
|
|
32
|
-
# - actions/setup-node@
|
|
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@
|
|
66
|
-
- uses: actions/checkout@
|
|
67
|
-
# actions/setup-node@
|
|
68
|
-
- uses: actions/setup-node@
|
|
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@
|
|
86
|
-
- uses: actions/checkout@
|
|
87
|
-
# actions/setup-node@
|
|
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@
|
|
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
|
-
|
|
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
|
|
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.
|
|
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-
|
|
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.
|
|
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**,
|
|
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.
|
|
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 (
|
|
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
|
|
63
|
-
- `doctor
|
|
64
|
-
- Há test runner real (`node:test`,
|
|
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
|
-
##
|
|
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/`:
|
|
73
|
-
- `skills/`:
|
|
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
|
|
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
|
-
##
|
|
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
|
-
##
|
|
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
|
-
##
|
|
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
|
-
##
|
|
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
|
|
81
|
+
Gerado pelo Izanagi AI: `izanagi export --cli claude`
|