iron-edge 2.0.1 → 2.1.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/README.md +18 -5
- package/agents/iron-ceo.md +9 -1
- package/installer/install.js +40 -6
- package/package.json +1 -1
- package/skills/salvar/SKILL.md +5 -0
package/README.md
CHANGED
|
@@ -40,7 +40,7 @@ Existem **duas coisas diferentes** aqui, e elas se chamam de jeitos diferentes.
|
|
|
40
40
|
(As outras: `anotar`, `faxina`, `conectar-mcp`, `roteiro-video`, `lp-cinematico`, `clone-site`,
|
|
41
41
|
`clone-inventory`, `clone-distill`, `clone-organize`, `clone-transplant`.)
|
|
42
42
|
|
|
43
|
-
**Agentes — esses
|
|
43
|
+
**Agentes — esses você chama pedindo.** São 44:
|
|
44
44
|
|
|
45
45
|
```
|
|
46
46
|
"usa o iron-ceo" ← comece por aqui, ele direciona
|
|
@@ -48,14 +48,27 @@ Existem **duas coisas diferentes** aqui, e elas se chamam de jeitos diferentes.
|
|
|
48
48
|
"quero o iron-shopify nessa loja"
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
+
**E tem um atalho, que é como se usa no dia a dia.** A instalação cria o `iron`, e você o chama
|
|
52
|
+
escrevendo só a palavra:
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
iron ← ativa e pergunta o que você precisa
|
|
56
|
+
iron preciso da copy desse anúncio ← já entra com o pedido
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**Sem barra e sem traço.** Se você preferir a barra, `/iron` faz exatamente o mesmo — ela é o
|
|
60
|
+
atalho explícito da interface, não uma exigência. As três formas (`iron`, `/iron`,
|
|
61
|
+
`"usa o iron-ceo"`) chegam no mesmo lugar.
|
|
62
|
+
|
|
63
|
+
Os outros 43 agentes continuam sendo chamados pedindo. O pacote instala **um** atalho, não 44.
|
|
64
|
+
|
|
51
65
|
Digitar `/iron-ceo` **não funciona** — barra é para skill, e agente não é skill. Se quiser a
|
|
52
66
|
menção explícita, a forma que resolve é **`@agent-iron-ceo`** (com o prefixo `agent-`; o
|
|
53
67
|
`@iron-ceo` sozinho não é documentado). O Claude Code também escolhe o agente sozinho quando o
|
|
54
68
|
pedido é claro; nomear é só para ter certeza de qual.
|
|
55
69
|
|
|
56
|
-
> Se você viu em algum lugar a instrução de digitar `/iron-ceo`, ela está desatualizada
|
|
57
|
-
>
|
|
58
|
-
> Para conferir que está tudo no lugar: `npx iron-edge verify`.
|
|
70
|
+
> Se você viu em algum lugar a instrução de digitar `/iron-ceo`, ela está desatualizada: o atalho
|
|
71
|
+
> se chama **`/iron`**. Sua instalação não tem defeito. Para conferir: `npx iron-edge verify`.
|
|
59
72
|
|
|
60
73
|
**Squads — o terceiro nível, e você não chama direto.** São 18 equipes que vivem em `~/.iron/`.
|
|
61
74
|
Cada uma tem um agente de topo, e é por ele que se entra:
|
|
@@ -164,7 +177,7 @@ O instalador **nunca sobrescreve** o que já está em `~/.claude/` e em `~/.iron
|
|
|
164
177
|
cp ~/.iron/install-manifest.json ./iron-manifest.json
|
|
165
178
|
```
|
|
166
179
|
(Guarda na pasta em que você está. `~/Desktop` nem sempre existe — em servidor e container, não existe.)
|
|
167
|
-
2. Abra essa cópia e olhe o campo `files` — é a lista exata do que o pacote escreveu em `~/.claude/agents/` e `~/.claude/
|
|
180
|
+
2. Abra essa cópia e olhe o campo `files` — é a lista exata do que o pacote escreveu em `~/.claude/agents/`, `~/.claude/skills/` e `~/.claude/commands/`.
|
|
168
181
|
3. Apague **só** esses arquivos. O que você criou não está na lista e fica.
|
|
169
182
|
4. **Por último**, apague a pasta `~/.iron/` inteira.
|
|
170
183
|
|
package/agents/iron-ceo.md
CHANGED
|
@@ -35,7 +35,15 @@ máquina onde eu guardo seus projetos e o que ficou pendente. Diga
|
|
|
35
35
|
|
|
36
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
37
|
|
|
38
|
-
**2. Se houver `vault_path` no config**, leia a partir dele
|
|
38
|
+
**2. Se houver `vault_path` no config**, leia a partir dele.
|
|
39
|
+
|
|
40
|
+
> ⚠️ **Nome antigo do campo.** Instalações anteriores a 24/08/2026 gravavam esse caminho como
|
|
41
|
+
> **`obsidian_vault_path`**. Se `vault_path` estiver ausente mas `obsidian_vault_path` existir,
|
|
42
|
+
> **use o valor dele** — é o mesmo cofre, com o mesmo conteúdo. Avise o usuário em uma linha e
|
|
43
|
+
> ofereça renomear o campo para `vault_path`. Nunca trate o cofre como inexistente só porque o
|
|
44
|
+
> campo tem o nome antigo: isso faria o Iron oferecer criar um cofre novo a quem já tem um cheio.
|
|
45
|
+
|
|
46
|
+
Do cofre, leia:
|
|
39
47
|
- `INDICE.md` — o mapa do cofre
|
|
40
48
|
- `00 Sobre mim.md` — quem é o usuário e como ele trabalha
|
|
41
49
|
- `memoria/historico.md` — as últimas sessões e os próximos passos
|
package/installer/install.js
CHANGED
|
@@ -58,8 +58,9 @@ const IRON_DIR = path.join(HOME, '.iron');
|
|
|
58
58
|
const CLAUDE_DIR = path.join(HOME, '.claude');
|
|
59
59
|
const AGENTS_DEST = path.join(CLAUDE_DIR, 'agents');
|
|
60
60
|
const SKILLS_DEST = path.join(CLAUDE_DIR, 'skills');
|
|
61
|
+
const COMMANDS_DEST = path.join(CLAUDE_DIR, 'commands');
|
|
61
62
|
|
|
62
|
-
const ALLOWED_ROOTS = [IRON_DIR, AGENTS_DEST, SKILLS_DEST];
|
|
63
|
+
const ALLOWED_ROOTS = [IRON_DIR, AGENTS_DEST, SKILLS_DEST, COMMANDS_DEST];
|
|
63
64
|
|
|
64
65
|
const WIN_RESERVED = new Set([
|
|
65
66
|
'CON','PRN','AUX','NUL',
|
|
@@ -289,7 +290,7 @@ Da pra separar o que e seu por lista:
|
|
|
289
290
|
O que NAO estiver la foi voce que criou.
|
|
290
291
|
3. Guarde o que for seu (agente proprio, skill propria, o que voce editou).
|
|
291
292
|
"npx iron-edge verify" mostra o que voce alterou em relacao ao manifesto.
|
|
292
|
-
4. Apague em ~/.claude/agents e ~/.claude/
|
|
293
|
+
4. Apague em ~/.claude/agents, ~/.claude/skills e ~/.claude/commands SO os que estao na
|
|
293
294
|
lista. Depois, POR ULTIMO, apague a pasta ~/.iron inteira.
|
|
294
295
|
5. Rode a instalacao de novo.
|
|
295
296
|
|
|
@@ -518,7 +519,7 @@ const installManifest = {
|
|
|
518
519
|
platform: process.platform,
|
|
519
520
|
node: process.version,
|
|
520
521
|
home: HOME,
|
|
521
|
-
scopes: { iron_root: IRON_DIR, claude_agents: AGENTS_DEST, claude_skills: SKILLS_DEST },
|
|
522
|
+
scopes: { iron_root: IRON_DIR, claude_agents: AGENTS_DEST, claude_skills: SKILLS_DEST, claude_commands: COMMANDS_DEST },
|
|
522
523
|
files: manifest // sera reescrito abaixo ja com os gerados
|
|
523
524
|
};
|
|
524
525
|
|
|
@@ -526,6 +527,35 @@ const installManifest = {
|
|
|
526
527
|
addGenerated(shopifyYaml);
|
|
527
528
|
addGenerated(configYaml);
|
|
528
529
|
|
|
530
|
+
// O ATALHO /iron — o pedido mais repetido de quem usa o Iron todo dia.
|
|
531
|
+
//
|
|
532
|
+
// Ele NAO e' copia do agente. A maquina de quem desenvolve tinha um commands/iron.md com o
|
|
533
|
+
// texto INTEIRO do iron-ceo dentro: 158 linhas duplicadas, que hoje batem por sorte e amanha
|
|
534
|
+
// divergem em silencio. Copia e' o defeito de propagacao que este pacote passou um ciclo
|
|
535
|
+
// inteiro caçando. Aqui o comando so' APONTA pro agente — uma fonte de verdade, e o /iron
|
|
536
|
+
// acompanha qualquer mudanca no iron-ceo.md sem ninguem lembrar de sincronizar.
|
|
537
|
+
const ironCmd = path.join(COMMANDS_DEST, 'iron.md');
|
|
538
|
+
escrever(ironCmd, [
|
|
539
|
+
'---',
|
|
540
|
+
'description: Iron Edge - chama o orquestrador master. Ele entende o pedido, decide qual equipe resolve e aciona os especialistas certos.',
|
|
541
|
+
'---',
|
|
542
|
+
'',
|
|
543
|
+
'Leia o arquivo `~/.claude/agents/iron-ceo.md` por inteiro e assuma aquele papel agora,',
|
|
544
|
+
'seguindo a sequencia de ativacao descrita la (ler o config, ler o cofre se houver, ler o',
|
|
545
|
+
'mapa de roteamento, e so entao saudar).',
|
|
546
|
+
'',
|
|
547
|
+
'Nao resuma o arquivo nem trabalhe de memoria: leia o conteudo real, porque ele muda quando',
|
|
548
|
+
'o pacote e atualizado.',
|
|
549
|
+
'',
|
|
550
|
+
'Pedido do usuario: $ARGUMENTS',
|
|
551
|
+
'',
|
|
552
|
+
'(Sem pedido depois do comando, apenas ative e pergunte qual e a missao.)',
|
|
553
|
+
'',
|
|
554
|
+
'Este atalho atende tanto por `/iron` quanto pela palavra `iron` sozinha.',
|
|
555
|
+
''
|
|
556
|
+
].join('\n'), 'o atalho /iron');
|
|
557
|
+
addGenerated(ironCmd);
|
|
558
|
+
|
|
529
559
|
const metadataPath = path.join(IRON_DIR, 'metadata.json');
|
|
530
560
|
escrever(metadataPath,
|
|
531
561
|
JSON.stringify({ version: IRON_VERSION, label: IRON_VERSION_HUMAN, installed_at: installedAt, platform: process.platform }, null, 2),
|
|
@@ -579,11 +609,15 @@ log(' PROXIMO PASSO');
|
|
|
579
609
|
log('--------------------------------');
|
|
580
610
|
log('1. Reabra o Claude Code. Agente novo so aparece em sessao nova.');
|
|
581
611
|
log('');
|
|
582
|
-
log('2. Chame o orquestrador
|
|
612
|
+
log('2. Chame o orquestrador. Escreva so isto:');
|
|
613
|
+
log('');
|
|
614
|
+
log(' iron');
|
|
583
615
|
log('');
|
|
584
|
-
log('
|
|
616
|
+
log(' So a palavra, sem barra e sem traco. Se preferir a barra, /iron faz o mesmo,');
|
|
617
|
+
log(' e da pra ja mandar o pedido junto: iron preciso da copy desse anuncio');
|
|
585
618
|
log('');
|
|
586
|
-
log('
|
|
619
|
+
log(' Os outros 43 agentes se chamam PEDINDO ("usa o iron-copy").');
|
|
620
|
+
log(' As 14 SKILLS sao de barra: /gate /salvar /brandkit /escada ...');
|
|
587
621
|
log('');
|
|
588
622
|
log('3. Ligue a memoria. Diga a ele:');
|
|
589
623
|
log('');
|
package/package.json
CHANGED
package/skills/salvar/SKILL.md
CHANGED
|
@@ -16,6 +16,11 @@ O trabalho que não foi registrado não aconteceu: a próxima sessão nasce sem
|
|
|
16
16
|
|
|
17
17
|
## 0. Onde fica o cofre
|
|
18
18
|
|
|
19
|
+
> ⚠️ **Antes de concluir que não há cofre:** instalações anteriores a 24/08/2026 gravavam o
|
|
20
|
+
> caminho no campo **`obsidian_vault_path`**, não em `vault_path`. Se o segundo estiver vazio,
|
|
21
|
+
> procure o primeiro antes de oferecer criar um cofre novo — a pessoa pode já ter um, cheio.
|
|
22
|
+
|
|
23
|
+
|
|
19
24
|
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`.
|
|
20
25
|
|
|
21
26
|
**Se o campo estiver vazio ou a pasta não existir**, ofereça criar agora, em um lugar que o usuário escolher (sugira `~/Documents/Cofre <Nome>/`). A estrutura mínima:
|