iron-edge 2.0.0 → 2.0.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/README.md +9 -6
- package/agents/iron-ceo.md +7 -0
- package/installer/install.js +88 -9
- package/package.json +1 -1
- package/skills/salvar/SKILL.md +8 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Iron Edge — Ecossistema de Agentes para Claude Code
|
|
2
2
|
|
|
3
|
-
**44 agentes de topo, 18 squads, 14 skills e
|
|
3
|
+
**44 agentes de topo, 18 squads, 14 skills e memória entre sessões.**
|
|
4
4
|
|
|
5
5
|
Uma equipe completa de IA para marketing, vendas, conteúdo, Shopify, vídeo e crescimento — tudo dentro do Claude Code.
|
|
6
6
|
|
|
@@ -16,7 +16,11 @@ Isso instala automaticamente:
|
|
|
16
16
|
- 44 agentes em `~/.claude/agents/`
|
|
17
17
|
- Skills premium em `~/.claude/skills/`
|
|
18
18
|
- Base de conhecimento em `~/.iron/`
|
|
19
|
-
-
|
|
19
|
+
- A configuração em `~/.iron/config.yaml`
|
|
20
|
+
|
|
21
|
+
**Sobre a memória, sem enrolação:** o Iron guarda o que importa entre uma conversa e outra — quem você é, seus projetos, o que ficou pendente. Mas ela **não vem pronta**: é uma pasta sua, no seu disco, que ele monta quando você pedir. Depois de instalar, diga **"cria meu cofre"** e ele faz em um minuto, no lugar que você escolher. Enquanto você não fizer isso, cada conversa começa do zero.
|
|
22
|
+
|
|
23
|
+
São arquivos `.md` comuns — abrem no Obsidian, no VS Code ou em qualquer editor. Nada é enviado para lugar nenhum.
|
|
20
24
|
|
|
21
25
|
---
|
|
22
26
|
|
|
@@ -49,9 +53,9 @@ menção explícita, a forma que resolve é **`@agent-iron-ceo`** (com o prefixo
|
|
|
49
53
|
`@iron-ceo` sozinho não é documentado). O Claude Code também escolhe o agente sozinho quando o
|
|
50
54
|
pedido é claro; nomear é só para ter certeza de qual.
|
|
51
55
|
|
|
52
|
-
>
|
|
53
|
-
> nunca funcionou
|
|
54
|
-
> que
|
|
56
|
+
> Se você viu em algum lugar a instrução de digitar `/iron-ceo`, ela está desatualizada — isso
|
|
57
|
+
> nunca funcionou, porque o pacote não cria `~/.claude/commands/`. Sua instalação não tem defeito.
|
|
58
|
+
> Para conferir que está tudo no lugar: `npx iron-edge verify`.
|
|
55
59
|
|
|
56
60
|
**Squads — o terceiro nível, e você não chama direto.** São 18 equipes que vivem em `~/.iron/`.
|
|
57
61
|
Cada uma tem um agente de topo, e é por ele que se entra:
|
|
@@ -195,7 +199,6 @@ Seus dados ficam locais em `~/.iron/`. Sobre o que sai da sua máquina, com prec
|
|
|
195
199
|
- **Para a internet aberta**, através das ferramentas do próprio Claude Code (`WebSearch` / `WebFetch`), vão as buscas de **41 dos 44 agentes** — é como o `iron-research` pesquisa mercado e o `iron-spy` lê a biblioteca de anúncios. Isso passa pelo Claude Code, com a visibilidade e a aprovação que ele te dá; não é canal deste pacote. Confira: `grep -rln "WebSearch\|WebFetch" ~/.claude/agents/`.
|
|
196
200
|
- **A skill `clone-site`** baixa a URL que você mandar clonar. É o trabalho dela.
|
|
197
201
|
|
|
198
|
-
*(Até 24/08/2026 este parágrafo dizia "nenhum outro agente do pacote fala com a rede". Era falso — 41 deles pesquisam na web — e a frase foi escrita, ironicamente, numa correção de exagero. Os números acima são medidos, e a regra R19 do lint confere os do README contra o disco.)*
|
|
199
202
|
|
|
200
203
|
Sendo exato sobre a força dessa garantia, porque ela não é um sandbox: cada bloco que chama o Iron Office começa com uma guarda (`[ -z "$IRON_KEY" ] && exit 0`) e a regra R20 do lint impede que qualquer bloco novo entre sem ela. Mas esses arquivos são **instruções lidas por um modelo**, não um binário fechado: um agente que execute só a linha do `curl`, isolada da guarda, não é barrado por nada aqui. Se o que você quer é garantia dura, a que existe é não criar o arquivo de chave — sem ele, não há para onde enviar, e todo bloco para na guarda.
|
|
201
204
|
|
package/agents/iron-ceo.md
CHANGED
|
@@ -26,8 +26,15 @@ Enquanto ele estiver assim, tudo que eu responder vai sair genérico.
|
|
|
26
26
|
|
|
27
27
|
Quer preencher agora? Leva 2 minutos: seu nome, o que você faz,
|
|
28
28
|
e os negócios ou projetos em que o Iron vai trabalhar com você.
|
|
29
|
+
|
|
30
|
+
E tem uma segunda coisa, que vale mais: sem um COFRE, eu esqueço tudo
|
|
31
|
+
quando esta conversa fechar. O cofre é uma pasta de arquivos .md na sua
|
|
32
|
+
máquina onde eu guardo seus projetos e o que ficou pendente. Diga
|
|
33
|
+
"cria meu cofre" e eu monto no lugar que você escolher.
|
|
29
34
|
```
|
|
30
35
|
|
|
36
|
+
**Se `vault_path` estiver vazio ou ausente**, ofereça o cofre uma vez, do jeito acima, e siga trabalhando se ele recusar. Não insista a cada mensagem: uma oferta por sessão. Quando ele aceitar, use a skill `salvar` (seção 0) para montar.
|
|
37
|
+
|
|
31
38
|
**2. Se houver `vault_path` no config**, leia a partir dele:
|
|
32
39
|
- `INDICE.md` — o mapa do cofre
|
|
33
40
|
- `00 Sobre mim.md` — quem é o usuário e como ele trabalha
|
package/installer/install.js
CHANGED
|
@@ -276,6 +276,12 @@ Se esta maquina JA TEM uma instalacao do Iron Edge, isso e esperado: esta versao
|
|
|
276
276
|
nao instala por cima, para nada seu ser perdido.
|
|
277
277
|
|
|
278
278
|
Como resolver sozinho, sem depender de ninguem:
|
|
279
|
+
Primeiro descubra qual dos dois casos e o seu:
|
|
280
|
+
|
|
281
|
+
ls ~/.iron/install-manifest.json
|
|
282
|
+
|
|
283
|
+
CASO A - o arquivo EXISTE (instalacao feita por este instalador).
|
|
284
|
+
Da pra separar o que e seu por lista:
|
|
279
285
|
1. COPIE o manifesto para fora ANTES de apagar qualquer coisa (a lista do que
|
|
280
286
|
remover mora dentro da pasta que vai sumir):
|
|
281
287
|
cp ~/.iron/install-manifest.json ./iron-manifest.json
|
|
@@ -287,6 +293,29 @@ Como resolver sozinho, sem depender de ninguem:
|
|
|
287
293
|
lista. Depois, POR ULTIMO, apague a pasta ~/.iron inteira.
|
|
288
294
|
5. Rode a instalacao de novo.
|
|
289
295
|
|
|
296
|
+
CASO B - o arquivo NAO EXISTE (instalacao anterior ao manifesto, veio de zip).
|
|
297
|
+
Sem a lista nao da pra separar por nome — entao NAO SEPARE: mova tudo pro lado.
|
|
298
|
+
Nada e apagado, e da pra voltar atras a qualquer momento.
|
|
299
|
+
1. Mova as pastas antigas, com data no nome:
|
|
300
|
+
mv ~/.claude/agents ~/.claude/agents-antes-2.0
|
|
301
|
+
mv ~/.claude/skills ~/.claude/skills-antes-2.0
|
|
302
|
+
mv ~/.iron ~/.iron-antes-2.0
|
|
303
|
+
2. Rode a instalacao de novo. Agora ela nao vai achar conflito.
|
|
304
|
+
3. Depois de instalar, traga de volta SO o que era seu, olhando as pastas
|
|
305
|
+
"-antes-2.0": agente que voce escreveu, skill sua, e o conteudo do seu
|
|
306
|
+
cofre. O que veio do pacote antigo NAO precisa voltar: a versao nova
|
|
307
|
+
ja traz tudo, mais novo.
|
|
308
|
+
4. Quando tiver certeza de que nao falta nada, apague as pastas "-antes-2.0".
|
|
309
|
+
Enquanto elas existirem, sua instalacao antiga esta inteira e intacta.
|
|
310
|
+
|
|
311
|
+
Windows: no Claude Code, o prefixo "!" cai no Git Bash, entao os comandos
|
|
312
|
+
acima funcionam como estao. Fora dele, no PowerShell, troque "mv" por "move".
|
|
313
|
+
|
|
314
|
+
ATENCAO: seu COFRE (a pasta de memoria com seus projetos) normalmente NAO fica
|
|
315
|
+
em nenhuma dessas pastas — ele fica onde voce escolheu, e o caminho esta no
|
|
316
|
+
campo vault_path do ~/.iron/config.yaml. Anote esse caminho antes de mover
|
|
317
|
+
qualquer coisa, e confira depois que ele continua la.
|
|
318
|
+
|
|
290
319
|
Se os conflitos acima NAO batem com uma instalacao que voce reconhece, pode ser
|
|
291
320
|
sobra de uma instalacao que falhou no meio. Nesse caso os arquivos listados sao
|
|
292
321
|
lixo e podem ser removidos.`);
|
|
@@ -417,6 +446,28 @@ log(` ${manifest.length} arquivos copiados.`);
|
|
|
417
446
|
|
|
418
447
|
for (const d of [path.join(IRON_DIR, 'integrations'), path.join(IRON_DIR, 'secrets')]) {
|
|
419
448
|
criarPasta(d, 'as pastas de estado');
|
|
449
|
+
|
|
450
|
+
// As duas pastas nascem vazias e com nome que gera duvida ("secrets" assusta quem vai por
|
|
451
|
+
// dado de negocio). Um LEIAME em cada uma explica pra que servem — pasta vazia sem
|
|
452
|
+
// explicacao foi achado de um leitor sem contexto nenhum.
|
|
453
|
+
escrever(path.join(IRON_DIR, 'secrets', 'LEIA-ME.md'), [
|
|
454
|
+
'# secrets/',
|
|
455
|
+
'',
|
|
456
|
+
'Pasta para as SUAS credenciais, se um dia voce conectar alguma integracao.',
|
|
457
|
+
'**Ela nasce vazia e o Iron nao escreve nada aqui sozinho.**',
|
|
458
|
+
'',
|
|
459
|
+
'Nada nesta pasta e enviado para lugar nenhum: e arquivo no seu disco, como',
|
|
460
|
+
'qualquer outro. Se voce nunca conectar integracao, ela fica vazia para sempre —',
|
|
461
|
+
'e pode apagar sem quebrar nada.',
|
|
462
|
+
''
|
|
463
|
+
].join('\n'), 'o LEIA-ME de secrets');
|
|
464
|
+
escrever(path.join(IRON_DIR, 'integrations', 'LEIA-ME.md'), [
|
|
465
|
+
'# integrations/',
|
|
466
|
+
'',
|
|
467
|
+
'Configuracao das integracoes opcionais (por enquanto, so o Shopify via Iron Office).',
|
|
468
|
+
'O `shopify.yaml` nasce com `enabled: false`: nada e ligado sem voce ligar.',
|
|
469
|
+
''
|
|
470
|
+
].join('\n'), 'o LEIA-ME de integrations');
|
|
420
471
|
}
|
|
421
472
|
|
|
422
473
|
// memoria por cargo do squad-engineering: pasta vazia, FORA do manifesto de propósito.
|
|
@@ -429,11 +480,26 @@ escrever(shopifyYaml, 'enabled: false\nendpoint: ""\napi_key_file: ""\n', 'a con
|
|
|
429
480
|
|
|
430
481
|
const configYaml = path.join(IRON_DIR, 'config.yaml');
|
|
431
482
|
escrever(configYaml, [
|
|
432
|
-
'# Iron Edge
|
|
433
|
-
'
|
|
434
|
-
'
|
|
435
|
-
'#
|
|
436
|
-
'#
|
|
483
|
+
'# Iron Edge - configuracao. Tudo aqui e opcional, mas os dois primeiros blocos mudam',
|
|
484
|
+
'# muito a qualidade da resposta. Edite a mao, ou peca ao Iron: "configura o Iron pra mim".',
|
|
485
|
+
'',
|
|
486
|
+
'# QUEM E VOCE. Sem isto, tudo que o Iron responder sai generico.',
|
|
487
|
+
'owner: "" # seu nome',
|
|
488
|
+
'businesses: [] # ex: ["loja de roupa", "consultoria de trafego"]',
|
|
489
|
+
'',
|
|
490
|
+
'# O COFRE - a memoria do Iron entre uma conversa e outra.',
|
|
491
|
+
'#',
|
|
492
|
+
'# SEM cofre, cada conversa comeca do zero: o Iron nao lembra dos seus projetos, do que',
|
|
493
|
+
'# ficou pendente, nem do que voce decidiu ontem. COM cofre, ele le tudo isso antes de',
|
|
494
|
+
'# trabalhar. E uma pasta de arquivos .md comuns, na SUA maquina - abre no Obsidian, no',
|
|
495
|
+
'# VS Code ou em qualquer editor. Nada e enviado pra lugar nenhum.',
|
|
496
|
+
'#',
|
|
497
|
+
'# Ainda nao tem? Peca ao Iron: "cria meu cofre". Ele monta a estrutura no lugar que',
|
|
498
|
+
'# voce escolher e preenche este campo sozinho. Leva um minuto.',
|
|
499
|
+
'vault_path: "" # ex: ~/Documents/Cofre',
|
|
500
|
+
'',
|
|
501
|
+
'# focus: dev # prioriza o iron-eng (engenharia de software) no roteamento.',
|
|
502
|
+
'# # descomente se o seu uso principal for programar.',
|
|
437
503
|
''
|
|
438
504
|
].join('\n'), 'a config inicial');
|
|
439
505
|
|
|
@@ -511,8 +577,21 @@ log(`Manifesto: ${manifestPath}`);
|
|
|
511
577
|
log('\n--------------------------------');
|
|
512
578
|
log(' PROXIMO PASSO');
|
|
513
579
|
log('--------------------------------');
|
|
514
|
-
log('1. Reabra o Claude Code
|
|
515
|
-
log('
|
|
516
|
-
log('
|
|
517
|
-
log('
|
|
580
|
+
log('1. Reabra o Claude Code. Agente novo so aparece em sessao nova.');
|
|
581
|
+
log('');
|
|
582
|
+
log('2. Chame o orquestrador PEDINDO, em portugues:');
|
|
583
|
+
log('');
|
|
584
|
+
log(' usa o iron-ceo');
|
|
585
|
+
log('');
|
|
586
|
+
log(' (Agente nao e comando de barra. As 14 SKILLS sim: /gate /salvar /brandkit ...)');
|
|
587
|
+
log('');
|
|
588
|
+
log('3. Ligue a memoria. Diga a ele:');
|
|
589
|
+
log('');
|
|
590
|
+
log(' cria meu cofre');
|
|
591
|
+
log('');
|
|
592
|
+
log(' O cofre e uma pasta de arquivos .md na SUA maquina, onde o Iron guarda quem');
|
|
593
|
+
log(' voce e, seus projetos e o que ficou pendente. SEM ele, cada conversa comeca');
|
|
594
|
+
log(' do zero. Com ele, o Iron abre a sessao ja sabendo em que pe as coisas estao.');
|
|
595
|
+
log(' Nada e enviado pra lugar nenhum: e arquivo seu, no seu disco.');
|
|
596
|
+
log(' Se preferir fazer depois, e so pedir a qualquer momento.');
|
|
518
597
|
log('');
|
package/package.json
CHANGED
package/skills/salvar/SKILL.md
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: salvar
|
|
3
|
-
description:
|
|
3
|
+
description: Memoria do Iron Edge, com DOIS gatilhos. (1) CRIAR O COFRE: em "cria meu cofre", "criar cofre", "configura minha memoria", "quero memoria entre sessoes" ou equivalente, execute SO a secao 0 (monta a estrutura no lugar que o usuario escolher, grava vault_path em ~/.iron/config.yaml) e pare ali. (2) ENCERRAR: em "salvar", "encerrar", "salva a sessao", "registra e encerra", "fecha por hoje", execute a rotina completa sem perguntar nada — diario do cofre, folha do projeto se o estado mudou, memoria persistente, e confirma em uma linha.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# salvar — registro de sessão
|
|
7
7
|
|
|
8
8
|
O trabalho que não foi registrado não aconteceu: a próxima sessão nasce sem memória do que esta fez. Esta rotina é o que transforma sessões soltas num sistema.
|
|
9
9
|
|
|
10
|
+
## Dois jeitos de entrar aqui
|
|
11
|
+
|
|
12
|
+
- **"cria meu cofre"** (ou "configura minha memoria") → faca **so a secao 0** abaixo: monte a
|
|
13
|
+
estrutura no lugar que o usuario escolher, grave o `vault_path` no `~/.iron/config.yaml`,
|
|
14
|
+
confirme em uma linha e **pare**. Nao registre sessao nenhuma: nao ha o que registrar ainda.
|
|
15
|
+
- **"salvar"** ou **"encerrar"** → a rotina completa, da secao 0 em diante.
|
|
16
|
+
|
|
10
17
|
## 0. Onde fica o cofre
|
|
11
18
|
|
|
12
19
|
O cofre é a pasta de memória do usuário — arquivos Markdown simples, que ele pode abrir no Obsidian ou em qualquer editor. O caminho está em `~/.iron/config.yaml`, campo `vault_path`.
|