auroq-os 2.2.1 → 2.2.3

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.
@@ -94,13 +94,16 @@ commands:
94
94
  ## AUTORIDADE EXCLUSIVA
95
95
 
96
96
  Ops e o UNICO agente autorizado a executar:
97
- - `git push` / `git push --force`
97
+ - `git push --force`
98
98
  - `gh pr create` / `gh pr merge`
99
99
  - MCP add/remove/configure
100
100
  - Environment bootstrap
101
+ - `*update-auroq` / `*update-packarcane`
101
102
 
102
103
  Qualquer outro agente que precise dessas operacoes DEVE delegar pro Ops.
103
104
 
105
+ **Salvar, entregar e puxar NAO sao exclusivos.** O Ops e o DONO do ritual (`*commit`, `*pre-push`, `*sync`), mas QUALQUER agente ativo executa esse ritual quando o expert pede em linguagem natural ("salva", "entrega", "puxa") — ver `.claude/rules/puxar-e-entregar.md`. O expert nunca precisa trocar de agente pra isso. O hook `.claude/hooks/auroq-sync.cjs` puxa sozinho ao abrir a sessao quando e seguro e lembra de trabalho nao entregue; nunca entrega sozinho.
106
+
104
107
  ## OPERACOES
105
108
 
106
109
  ### *commit (Ritual de Incrementacao)
@@ -171,7 +174,7 @@ Se expert pedir `*push` junto ou se faz sentido:
171
174
  5. Verificar sucesso
172
175
 
173
176
  ### *sync
174
- Puxar as atualizacoes do GitHub — inicio de sessao, especialmente quando o expert trabalha em mais de uma maquina ou com colaborador. O ritual completo e: **sentou → \*sync · levantou → \*commit + \*push**.
177
+ Puxar as atualizacoes do GitHub — inicio de sessao, especialmente quando o expert trabalha em mais de uma maquina ou com colaborador. Ao abrir a sessao o hook `auroq-sync` ja puxa sozinho quando e seguro; `*sync` e o caminho explicito — e o que QUALQUER agente executa quando o expert diz "puxa" (rule puxar-e-entregar).
175
178
 
176
179
  **Passo 1 — Proteger trabalho local (commit antes de pull, SEMPRE)**
177
180
  1. `git status` — tem mudancas locais nao commitadas?
@@ -210,13 +213,13 @@ O Auroq nao mora no computador — mora no GitHub. Cada maquina e so uma cadeira
210
213
  - Prova de que deu certo: ativar o Companion e perguntar algo que so a outra maquina sabia
211
214
 
212
215
  **Ritual diario (toda maquina, toda sessao):**
213
- - Sentou → `*sync` · Levantou → `*commit` + `*push`
214
- - A linha critica e ENTREGAR: esquecer o sync o git corrige (barra o push desatualizado); esquecer de entregar deixa o trabalho preso e invisivel na outra maquina
216
+ - Abriu o claude na pasta → o hook `auroq-sync` PUXA sozinho o que chegou (so se nao ha trabalho local em risco) e deixa o resumo no contexto — repasse ao expert em 1-2 linhas. Levantou → o expert diz "salva e entrega" pra QUALQUER agente ativo (rule puxar-e-entregar); `*sync`/`*commit`/`*push` seguem como atalhos
217
+ - A unica coisa que continua na mao do expert e ENTREGAR — o sistema nunca entrega sozinho, mas lembra (no maximo a cada 30 min) quando ha trabalho nao entregue
215
218
  - Nunca sincronizar por WhatsApp, Drive ou pendrive — cria copia paralela sem dono
216
219
 
217
220
  **Colaborador (pessoa diferente):**
218
221
  - Colaborador NAO precisa ser aluno da mentoria (politica oficial, 05/08/2026). O acesso dele e o convite do GitHub; o `npx auroq-os clone` nao pede login de aluno
219
- - Quem atualiza o SISTEMA e o dono (o *update-auroq exige aluno ativo) — o colaborador recebe as atualizacoes automaticamente via *sync, porque o update vira commit no repo
222
+ - Quem atualiza o SISTEMA e o dono (o *update-auroq exige aluno ativo) — o colaborador recebe as atualizacoes automaticamente ao abrir o claude (o hook puxa), porque o update vira commit no repo
220
223
  - Regra: CONVITE, NUNCA SENHA. GitHub: Settings > Collaborators (repo continua privado). Claude Code: assinatura PROPRIA dele. Vercel/Supabase: convite pro time SO se mexe em infra
221
224
  - Credenciais de squad: cofre separado no 1Password (ex: "Equipe") com SO o que ele precisa — nunca o cofre pessoal do expert
222
225
  - Avisar o expert ANTES de convidar: quem entra no repo le TUDO, inclusive a memoria do Companion — e o Companion da maquina do colaborador ESCREVE na mesma memoria. Regua: convida pro repo quem pode ler o diario do negocio. Freelancer pontual entrega por Drive, nao entra no repo
@@ -269,7 +272,8 @@ A validacao e ONLINE e obrigatoria, sem fallback offline — e a mesma trava do
269
272
  - `.claude/commands/AuroqOS/` — agentes core (ops.md)
270
273
  - `.claude/commands/` — meta squads (squad-forge.md, mind-forge.md, worker-forge.md, clone-forge.md, etlmaker.md)
271
274
  - `.claude/rules/` — todas as rules
272
- - `.claude/hooks/` — synapse-engine.cjs, precompact
275
+ - `.claude/hooks/` — synapse-engine.cjs, precompact, auroq-sync.cjs (sync automatico ao abrir)
276
+ - `.claude/settings.json` — hooks do framework (SessionStart/UserPromptSubmit do auroq-sync) — sobrescrever
273
277
  - `.claude/settings.local.json` — hooks registrados
274
278
  - `AGENTS.md` — regras e contexto do Codex
275
279
  - `scripts/sync-codex-skills.mjs` e `scripts/validate-hybrid.mjs` — ponte Codex
@@ -1735,7 +1739,7 @@ GITHUB:
1735
1739
  DICA: *commit e o comando mais importante. Use no final de cada sessao.
1736
1740
  "Commit e o botao salvar do sistema."
1737
1741
 
1738
- RITUAL MULTI-MAQUINA: Sentou → *sync · Levantou → *commit + *push
1742
+ RITUAL MULTI-MAQUINA: Abriu → puxa sozinho · Levantou → "salva e entrega" (qualquer agente)
1739
1743
  Segunda maquina ou colaborador? O caminho e "npx auroq-os clone" (nunca init).
1740
1744
  ```
1741
1745
 
@@ -0,0 +1,127 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+ /**
4
+ * Auroq OS — Sync Hook
5
+ *
6
+ * --session-start (SessionStart) checa o GitHub ao abrir; PUXA se for seguro; relata o que chegou
7
+ * --remind (UserPromptSubmit) lembra, com moderacao, de trabalho nao entregue
8
+ *
9
+ * Regras de ouro:
10
+ * - Nunca bloqueia a sessao (sempre exit 0) e fica em silencio quando nao ha o que dizer.
11
+ * - So PUXA quando nao ha trabalho local em risco (working tree limpo, nada por enviar).
12
+ * - NUNCA entrega (commit/push) sozinho — entregar e decisao do expert.
13
+ * - Estado fica fora do repositorio (tmpdir) — nunca suja o git do aluno.
14
+ * - Cross-platform (Mac/Windows/Linux): git via execFileSync, sem shell.
15
+ */
16
+
17
+ const path = require('path');
18
+ const fs = require('fs');
19
+ const os = require('os');
20
+ const crypto = require('crypto');
21
+ const { execFileSync } = require('child_process');
22
+
23
+ const MODE = process.argv[2] || '--session-start';
24
+ const CWD = process.cwd();
25
+ const STATE_FILE = path.join(os.tmpdir(), 'auroq-sync', crypto.createHash('md5').update(CWD).digest('hex') + '.json');
26
+ const REMIND_AFTER_MS = 30 * 60 * 1000; // lembra quando ha trabalho nao entregue ha 30 min
27
+ const REMIND_EVERY_MS = 30 * 60 * 1000; // e no maximo 1 vez a cada 30 min
28
+
29
+ function git(args, timeout) {
30
+ return execFileSync('git', args, { cwd: CWD, encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'], timeout: timeout || 5000 }).trim();
31
+ }
32
+ function tryGit(args, timeout) { try { return git(args, timeout); } catch { return null; } }
33
+
34
+ function emit(eventName, text) {
35
+ if (!text) return;
36
+ process.stdout.write(JSON.stringify({ hookSpecificOutput: { hookEventName: eventName, additionalContext: text } }));
37
+ }
38
+
39
+ function readState() { try { return JSON.parse(fs.readFileSync(STATE_FILE, 'utf8')); } catch { return {}; } }
40
+ function writeState(s) { try { fs.mkdirSync(path.dirname(STATE_FILE), { recursive: true }); fs.writeFileSync(STATE_FILE, JSON.stringify(s)); } catch { /* silencioso */ } }
41
+
42
+ function isRepo() { return fs.existsSync(path.join(CWD, '.git')) && tryGit(['rev-parse', '--is-inside-work-tree']) === 'true'; }
43
+ function hasRemote() { const r = tryGit(['remote']); return !!(r && r.length); }
44
+ function dirtyFiles() { const out = tryGit(['status', '--porcelain']); return out ? out.split('\n').filter(Boolean) : []; }
45
+ function upstream() { return tryGit(['rev-parse', '--abbrev-ref', '--symbolic-full-name', '@{u}']); }
46
+ function countRange(range) { const n = tryGit(['rev-list', '--count', range]); return n === null ? 0 : (parseInt(n, 10) || 0); }
47
+ function describeCommits(range, limit) {
48
+ const out = tryGit(['log', '--no-merges', '--format=%an|%s', range, `-${limit || 8}`]) || '';
49
+ return out.split('\n').filter(Boolean).map(l => { const i = l.indexOf('|'); return `- ${l.slice(0, i)}: ${l.slice(i + 1)}`; });
50
+ }
51
+
52
+ function sessionStart() {
53
+ if (!isRepo() || !hasRemote()) return;
54
+ const up = upstream();
55
+ if (!up) return;
56
+ const dirty = dirtyFiles();
57
+ if (tryGit(['fetch', '--quiet'], 8000) === null) {
58
+ emit('SessionStart', '[Auroq sync] Nao consegui checar o GitHub agora (sem conexao?). O trabalho local esta intacto. So mencione se o expert perguntar de sincronizacao.');
59
+ return;
60
+ }
61
+ const behind = countRange(`HEAD..${up}`);
62
+ const ahead = countRange(`${up}..HEAD`);
63
+ const lines = [];
64
+
65
+ if (behind > 0 && dirty.length === 0 && ahead === 0) {
66
+ const before = tryGit(['rev-parse', 'HEAD']);
67
+ if (tryGit(['pull', '--ff-only', '--quiet'], 10000) !== null) {
68
+ lines.push(`[Auroq sync] Puxei ${behind} atualizacao(oes) do GitHub automaticamente ao abrir a sessao. O que chegou:`);
69
+ lines.push(...describeCommits(`${before}..HEAD`));
70
+ lines.push('Informe o expert em 1-3 linhas, em portugues de negocio (traduza as mensagens de commit; cite o autor quando houver colaborador). Se algo tocar no que ele vai fazer agora, aponte.');
71
+ } else {
72
+ lines.push(`[Auroq sync] Ha ${behind} atualizacao(oes) no GitHub que nao consegui puxar sozinho (historico divergiu). Sugira ao expert: "puxa as atualizacoes" — o ritual de sync (rule puxar-e-entregar) resolve com ele.`);
73
+ }
74
+ } else if (behind > 0) {
75
+ lines.push(`[Auroq sync] Ha ${behind} atualizacao(oes) no GitHub, mas NAO puxei: existe trabalho local nao entregue (${dirty.length} arquivo(s) alterado(s)${ahead ? `, ${ahead} commit(s) nao enviado(s)` : ''}). Puxar agora poderia misturar coisa pela metade.`);
76
+ lines.push('Diga ao expert em 1-2 linhas: ha atualizacoes esperando; primeiro "salva e entrega" o que ficou pendente, depois "puxa". Se ele pedir, execute o ritual (rule puxar-e-entregar) sem trocar de agente.');
77
+ } else if (ahead > 0 && dirty.length === 0) {
78
+ lines.push(`[Auroq sync] Em dia com o GitHub, mas ha ${ahead} commit(s) salvo(s) e NAO entregue(s) (push pendente). Ofereca em 1 linha: "quer que eu entregue pro GitHub agora?"`);
79
+ } else if (dirty.length > 0) {
80
+ lines.push(`[Auroq sync] Sem novidades no GitHub, mas ha trabalho local nao entregue de uma sessao anterior (${dirty.length} arquivo(s)). Mencione em 1 linha e siga; quando ele fechar um bloco, ofereca "salva e entrega".`);
81
+ } else {
82
+ lines.push('[Auroq sync] Tudo em dia com o GitHub. Nao precisa mencionar, a menos que o expert pergunte.');
83
+ }
84
+
85
+ const st = readState();
86
+ st.dirtySince = dirty.length ? (st.dirtySince || Date.now()) : 0;
87
+ st.lastRemind = 0;
88
+ writeState(st);
89
+ emit('SessionStart', lines.join('\n'));
90
+ }
91
+
92
+ function remind() {
93
+ if (!isRepo()) return;
94
+ const dirty = dirtyFiles();
95
+ const up = upstream();
96
+ const ahead = up ? countRange(`${up}..HEAD`) : 0;
97
+ const st = readState();
98
+ const now = Date.now();
99
+ if (dirty.length === 0 && ahead === 0) {
100
+ if (st.dirtySince) { st.dirtySince = 0; writeState(st); }
101
+ return;
102
+ }
103
+ if (!st.dirtySince) { st.dirtySince = now; writeState(st); return; }
104
+ if (now - st.dirtySince < REMIND_AFTER_MS) return;
105
+ if (st.lastRemind && now - st.lastRemind < REMIND_EVERY_MS) return;
106
+ st.lastRemind = now;
107
+ writeState(st);
108
+ const mins = Math.round((now - st.dirtySince) / 60000);
109
+ emit('UserPromptSubmit', `[Auroq lembrete] Ha trabalho nao entregue ha ~${mins} min (${dirty.length} arquivo(s) alterado(s)${ahead ? `, ${ahead} commit(s) sem push` : ''}). NAO interrompa o raciocinio atual. Ao fechar o bloco em andamento, ofereca em UMA linha: "quer que eu salve e entregue pro GitHub?". Nunca entregue sem o expert pedir.`);
110
+ }
111
+
112
+ let ran = false;
113
+ function main() {
114
+ if (ran) return;
115
+ ran = true;
116
+ try { if (MODE === '--remind') remind(); else sessionStart(); }
117
+ catch (e) { console.error(`[auroq-sync] ${e.message}`); }
118
+ process.exit(0);
119
+ }
120
+
121
+ // Consome o JSON que o Claude Code envia no stdin (nao depende dele) e roda no fim;
122
+ // fallback por timer garante execucao mesmo se o stdin nao fechar.
123
+ process.stdin.resume();
124
+ process.stdin.on('data', () => {});
125
+ process.stdin.on('end', main);
126
+ process.stdin.on('error', main);
127
+ setTimeout(main, 400).unref();
@@ -6,11 +6,12 @@
6
6
 
7
7
  | Operacao | Exclusivo? | Outros Agentes |
8
8
  |----------|-----------|--------------|
9
- | `git push` / `git push --force` | SIM | BLOQUEADO |
9
+ | `git push --force` | SIM | BLOQUEADO |
10
+ | `git commit` / `git push` / `git pull` (salvar, entregar, puxar) | NAO — Ops e o DONO do ritual | QUALQUER agente executa o ritual do Ops (`rules/puxar-e-entregar.md`), sem pedir troca de agente |
10
11
  | `gh pr create` / `gh pr merge` | SIM | BLOQUEADO |
11
12
  | MCP add/remove/configure | SIM | BLOQUEADO |
12
13
  | Environment bootstrap | SIM | BLOQUEADO |
13
- | Commit inteligente (ritual completo) | SIM | Outros agentes delegam |
14
+ | Commit inteligente (definicao do ritual) | SIM (dono) | Outros agentes EXECUTAM o ritual quando o expert pede |
14
15
 
15
16
  ### Companion — Cerebro do Sistema
16
17
 
@@ -47,7 +48,7 @@
47
48
 
48
49
  | Permitido | Bloqueado |
49
50
  |---------|---------|
50
- | `git add`, `git commit`, `git status` | `git push` (delegar pra Ops) |
51
+ | `git add`, `git commit`, `git status`, `git push`/`pull` (pelo ritual do Ops, com pre-push) | `git push --force` (so Ops) |
51
52
  | `git branch`, `git checkout` (local) | `gh pr create/merge` (delegar pra Ops) |
52
53
  | Execucao de tasks operacionais | Criar novos agentes (delegar pro Meta Squad adequado) |
53
54
  | Atualizacao de documentos de trabalho | Decisoes estrategicas (delegar pro Expert) |
@@ -56,15 +57,16 @@
56
57
 
57
58
  | Permitido | Bloqueado |
58
59
  |---------|---------|
59
- | Executar pipeline completo com quality gates | `git push` (delegar pra Ops) |
60
+ | Executar pipeline completo com quality gates | `git push --force` / PR (so Ops) |
60
61
  | Criar documentos de output | Criar novos agentes (delegar pro Meta Squad adequado) |
61
62
  | Atualizar KBs e skills | Decisoes fora do escopo do squad |
62
63
 
63
64
  ## Cross-Agent Delegation
64
65
 
65
- ### Git Push Flow
66
+ ### Salvar / Entregar / Puxar Flow
66
67
  ```
67
- QUALQUER agente → Ops (*commit / *push)
68
+ Expert pede ("salva", "entrega", "puxa") → o agente ATIVO executa o ritual do Ops (rules/puxar-e-entregar.md)
69
+ Abertura de sessao → hook auroq-sync puxa sozinho se for seguro (nunca entrega sozinho)
68
70
  ```
69
71
 
70
72
  ### Novo Agente Flow
@@ -0,0 +1,31 @@
1
+ # Puxar e Entregar — Qualquer Agente Executa o Ritual do Ops
2
+
3
+ > O expert NUNCA precisa trocar de agente pra salvar, entregar ou puxar trabalho.
4
+ > Quem estiver ativo (Companion, Organizer, squad, worker ou Claude sem agente) executa o ritual do Ops por baixo.
5
+ > O Ops continua sendo o DONO do ritual; os outros agentes o executam.
6
+
7
+ ## Intents (linguagem natural → acao)
8
+
9
+ | O expert diz (exemplos) | Acao |
10
+ |-------------------------|------|
11
+ | "salva", "guarda isso", "faz checkpoint", "commita" | SALVAR (commit inteligente) |
12
+ | "entrega", "manda pro GitHub", "sobe", "faz push" | ENTREGAR (push com pre-push) |
13
+ | "salva e entrega", "fecha o dia", "acabei por hoje" | SALVAR + ENTREGAR |
14
+ | "puxa", "atualiza do GitHub", "traz o que mudou", "sync" | PUXAR (sync) |
15
+
16
+ ## O ritual — fonte da verdade: `.claude/commands/AuroqOS/agents/ops.md`
17
+
18
+ Leia as secoes `*commit`, `*pre-push` e `*sync` do ops.md e execute os passos como estao. O minimo inegociavel:
19
+
20
+ - **SALVAR:** revisar o que mudou → conferir tracker/contexto → mensagem em linguagem de negocio (`progresso:`, `decisao:`, `campanha:`...) → `git add` dos arquivos relevantes (NUNCA `business/vault/`, `.env`, chaves) → commit → confirmar ao expert em 1 linha.
21
+ - **ENTREGAR:** pre-push OBRIGATORIO (vault/.env fora do staging, `.gitignore` protege, nenhum arquivo gigante, branch certa) → `git push` → confirmar.
22
+ - **PUXAR:** se ha trabalho local, SALVAR primeiro (commit antes de pull, sempre) → `git fetch` → `git pull` (merge — nunca rebase com o expert) → relatar em portugues o que chegou (autor + o que fez) → conflito: conduzir com o expert, mostrando as duas versoes; em `agents/companion/data/` a resposta quase sempre e juntar as duas.
23
+
24
+ ## Regras
25
+
26
+ 1. Nao pedir troca de agente. Nao dizer "chama o Ops". Faca.
27
+ 2. **Nunca entregar (push) sem o expert pedir.** O sistema so PUXA sozinho (hook de abertura) — entregar e decisao dele.
28
+ 3. As travas do pre-push valem pra TODO agente — sao o que impede senha de subir pro GitHub.
29
+ 4. Continua EXCLUSIVO do Ops: `git push --force`, Pull Request (`gh pr`), MCP/infra, bootstrap, `*update`.
30
+ 5. O hook de abertura (`.claude/hooks/auroq-sync.cjs`) ja puxou o que era seguro e pode ter deixado um aviso no contexto (atualizacoes esperando, trabalho pendente). Repasse ao expert em 1-2 linhas, sem drama, e siga.
31
+ 6. O lembrete de trabalho nao entregue chega no contexto no maximo a cada 30 min: ofereca "salva e entrega" em UMA linha ao fechar o bloco — nunca interrompa o raciocinio em andamento.
@@ -1 +1,21 @@
1
- { "language": "portuguese" }
1
+ {
2
+ "language": "portuguese",
3
+ "hooks": {
4
+ "SessionStart": [
5
+ {
6
+ "matcher": "startup|resume|clear",
7
+ "hooks": [
8
+ { "type": "command", "command": "node .claude/hooks/auroq-sync.cjs --session-start", "timeout": 25000 }
9
+ ]
10
+ }
11
+ ],
12
+ "UserPromptSubmit": [
13
+ {
14
+ "matcher": "",
15
+ "hooks": [
16
+ { "type": "command", "command": "node .claude/hooks/auroq-sync.cjs --remind", "timeout": 5000 }
17
+ ]
18
+ }
19
+ ]
20
+ }
21
+ }
package/AGENTS.md CHANGED
@@ -1,10 +1,12 @@
1
- # AGENTS.md — Auroq OS (Codex CLI)
1
+ # AGENTS.md — Auroq OS (Claude / Codex / Grok)
2
2
 
3
- Este arquivo define as instrucoes do projeto para o **Codex CLI**.
3
+ Este arquivo define as instrucoes do projeto para qualquer harness CLI
4
+ suportado: **Claude Code**, **Codex CLI** e **Grok Build**.
4
5
 
5
- O Claude Code carrega `.claude/CLAUDE.md`, `.claude/rules/` e `.synapse/`
6
- automaticamente. O Codex **nao** — entao este arquivo replica o essencial pra
7
- voce operar o Auroq OS no Codex igual opera no Claude Code.
6
+ - **Claude Code** e **Grok** carregam `.claude/CLAUDE.md`, `.claude/rules/`,
7
+ `.claude/commands/` e este `AGENTS.md` de forma nativa (Grok via compat Claude).
8
+ - **Codex** nao carrega `.claude/*` sozinho — entao este arquivo replica o
9
+ essencial e as skills em `.agents/skills/` (via sync) completam a descoberta.
8
10
 
9
11
  ---
10
12
 
@@ -26,7 +28,9 @@ terminal, com agentes especializados pra cada coisa. Constitution formal em
26
28
 
27
29
  ---
28
30
 
29
- ## Como ativar os agentes no Codex (`$nome`)
31
+ ## Como ativar os agentes por harness
32
+
33
+ ### Codex CLI (`$nome`)
30
34
 
31
35
  As skills ativaveis vivem em `.agents/skills/`, local oficial de skills de
32
36
  repositorio do Codex, e sao geradas por
@@ -35,21 +39,36 @@ negocio e evita colisao entre projetos. A instalacao global existe apenas como
35
39
  opcao explicita em `~/.agents/skills/` via `npm run sync:codex:global`. Digite `$nome` pra ativar. Depois de
36
40
  criar ou atualizar um agente, rode o sync de novo pra a skill aparecer.
37
41
 
42
+ ### Claude Code e Grok Build
43
+
44
+ Nao dependem do sync Codex. Use os comandos em `.claude/commands/`
45
+ (`/auroq-companion`, `/auroq-squad-forge`, etc.) ou peca pra ativar pelo nome
46
+ (`@companion`, "ativa o ops"). Fonte de verdade continua o arquivo do comando e
47
+ a persona em `agents/<nome>/` (Ops: `.claude/commands/AuroqOS/agents/ops.md`).
48
+
49
+ **Grok em especial:** le a camada Claude por padrao e **nao** descobre
50
+ `~/.codex/skills` nem exige `sync:codex`. Se algo so existir como skill Codex e
51
+ nao em `.claude/commands/`, rode o sync Codex no projeto (nao muda o Grok) ou
52
+ ative lendo a persona em `agents/<nome>/` direto.
53
+
54
+ ### Tabela de agentes
55
+
38
56
  | Agente | Ativacao | O que faz |
39
57
  |--------|----------|-----------|
40
- | Companion | `$companion` | parceiro cognitivo — situa, lembra, pensa junto, roteia |
41
- | Ops | `$ops` | git, commit, push, deploy, ambiente, `*update` do framework |
42
- | Organizer | `$organizer` | organizacao e backup do sistema |
43
- | Consultor | `$consultor` | guia do sistema — "como opero?", "como faço X?", duvidas |
44
- | Squad Forge | `$squad-forge` | cria squads multi-agente |
45
- | Mind Forge | `$mind-forge` | cria mentes sinteticas |
46
- | Worker Forge | `$worker-forge` | cria workers |
47
- | Clone Forge | `$clone-forge` | clona mentes reais |
48
- | ETLmaker | `$etlmaker` | extrai e estrutura conhecimento |
49
-
50
- Qualquer squad/agente que voce criar tambem vira skill no proximo sync.
51
-
52
- **Aceite tambem** `/nome`, `/auroq-nome` e `@nome` como ativacao equivalente:
58
+ | Companion | `$companion` / `/auroq-companion` | parceiro cognitivo — situa, lembra, pensa junto, roteia |
59
+ | Ops | `$ops` / `@ops` | git, commit, push, deploy, ambiente, `*update` do framework |
60
+ | Organizer | `$organizer` / `/auroq-organizer` | organizacao e backup do sistema |
61
+ | Consultor | `$consultor` / `/auroq-consultor` | guia do sistema — "como opero?", "como faço X?", duvidas |
62
+ | Squad Forge | `$squad-forge` / `/auroq-squad-forge` | cria squads multi-agente |
63
+ | Mind Forge | `$mind-forge` / `/auroq-mind-forge` | cria mentes sinteticas |
64
+ | Worker Forge | `$worker-forge` / `/auroq-worker-forge` | cria workers |
65
+ | Clone Forge | `$clone-forge` / `/auroq-clone-forge` | clona mentes reais |
66
+ | ETLmaker | `$etlmaker` / `/auroq-etlmaker` | extrai e estrutura conhecimento |
67
+
68
+ Qualquer squad/agente que voce criar tambem vira skill no proximo sync Codex;
69
+ no Claude/Grok, garanta o comando correspondente em `.claude/commands/`.
70
+
71
+ **Aceite** `$nome`, `/nome`, `/auroq-nome` e `@nome` como ativacao equivalente:
53
72
  leia o arquivo em `.claude/commands/auroq-<nome>.md` (ou
54
73
  `.claude/commands/AuroqOS/agents/ops.md` pro Ops), adote a persona e siga as
55
74
  instrucoes do arquivo ate `*exit`.
@@ -58,8 +77,8 @@ instrucoes do arquivo ate `*exit`.
58
77
 
59
78
  ## Constitution — principios inegociaveis (replica de `.auroq-core/constitution.md`)
60
79
 
61
- 1. **Centro de comando** — toda operacao passa pelo projeto Auroq no terminal, via Claude Code ou Codex. Ferramentas externas (Meta Ads, Hotmart, n8n) sao bracos, nao centros. *(NON-NEGOTIABLE)*
62
- 2. **Cada um faz o seu** — `git commit/push/deploy` e o `*update` do framework sao **EXCLUSIVOS do Ops**. Outro agente delega. *(NON-NEGOTIABLE)*
80
+ 1. **Centro de comando** — toda operacao passa pelo projeto Auroq no terminal, via Claude Code, Codex ou Grok. Ferramentas externas (Meta Ads, Hotmart, n8n) sao bracos, nao centros. *(NON-NEGOTIABLE)*
81
+ 2. **Cada um faz o seu** — `deploy`, `git push --force`, PR, MCP/infra, bootstrap e o `*update` do framework sao **EXCLUSIVOS do Ops**. Salvar/entregar/puxar (`commit`, `push`, `pull`) QUALQUER agente executa seguindo o ritual do Ops (`.claude/rules/puxar-e-entregar.md`) — o expert nunca troca de agente pra isso. *(NON-NEGOTIABLE)*
63
82
  3. **Documentar = investir** — todo trabalho significativo vira `.md`. O que nao e documentado, morre. *(MUST)*
64
83
  4. **Nao inventar** — fundamenta em KB, instrucao ou plano. Nao gera dado/numero/fato sem fonte. Se precisa mudar o plano, PARA e pergunta. *(MUST)*
65
84
  5. **Qualidade com julgamento** — o expert julga; a IA nao se auto-aprova em entregas importantes. *(MUST)*
@@ -75,17 +94,17 @@ instrucoes do arquivo ate `*exit`.
75
94
 
76
95
  ## Autoridade de agentes (de `.claude/rules/agent-authority`)
77
96
 
78
- - **Ops** detem exclusivamente `git push`, `commit`, `deploy`, gestao de MCP/infra e `*update`.
97
+ - **Ops** e o dono do ritual de git e detem exclusivamente `deploy`, `git push --force`, PR, gestao de MCP/infra, bootstrap e `*update`. Salvar, entregar e puxar (`commit`/`push`/`pull`) qualquer agente executa pelo ritual do Ops (rule `puxar-e-entregar`), com as mesmas travas de seguranca (pre-push).
79
98
  - Os **Forges** criam agentes/squads/workers/clones; o **Companion** situa e roteia; o **Consultor** ensina o sistema.
80
99
  - Um agente nao invade o dominio de outro — **delega**. Em conflito de fronteira, escala pro Companion/expert.
81
100
 
82
101
  ## Comportamento com ferramentas
83
102
 
84
- - Prefira as ferramentas nativas do Codex pra arquivo, shell e busca local.
103
+ - Prefira as ferramentas nativas do harness em uso (Claude, Codex ou Grok) pra arquivo, shell e busca local.
85
104
  - MCP e infra sao responsabilidade do **Ops**.
86
- - Nunca use API paga no Claude/Codex onde o plano ja resolve — e dinheiro jogado fora.
105
+ - Nunca use API paga no Claude/Codex/Grok onde o plano ja resolve — e dinheiro jogado fora.
87
106
  - Em respostas grandes de ferramenta, filtre ruido e preserve so o relevante.
88
- - Use um runtime por sessao. Antes de trocar entre Claude Code e Codex, finalize ou documente o estado do trabalho.
107
+ - Use um runtime por sessao. Antes de trocar entre Claude Code, Codex e Grok, finalize ou documente o estado do trabalho.
89
108
 
90
109
  ## Gates da camada hibrida
91
110
 
@@ -103,6 +122,6 @@ Quando o pedido depender de contexto/memoria ja definidos, leia:
103
122
 
104
123
  ## Higiene de uso (do Consultor)
105
124
 
106
- - **Um chat por objetivo**: abre, resolve, o Ops commita + faz push, fecha. Chat-balaio engorda o contexto e a qualidade cai.
125
+ - **Um chat por objetivo**: abre, resolve, pede "salva e entrega" pra quem estiver ativo, fecha. Chat-balaio engorda o contexto e a qualidade cai.
107
126
  - **O agente certo pra cada tarefa** — nao deixa o modelo cru fazer trabalho de especialista.
108
127
  - **Nao caia na labia da IA** — ela as vezes inventa, alucina ou te limita sem motivo. Questione, confirme, e pergunte no grupo da mentoria quando ela parecer viajando.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Auroq OS — Sistema Operacional de IA para Experts
2
2
 
3
- Transforma Claude Code ou Codex CLI num centro de comando inteligente para operar seu negocio digital.
3
+ Transforma Claude Code, Codex CLI ou Grok Build num centro de comando inteligente para operar seu negocio digital.
4
4
 
5
5
  **Pensar. Fazer. Lembrar.** Tudo com IA.
6
6
 
@@ -10,7 +10,7 @@ Transforma Claude Code ou Codex CLI num centro de comando inteligente para opera
10
10
  - Mac com Apple Silicon (recomendado)
11
11
  - Node.js 22+
12
12
  - Git
13
- - Claude Code ou Codex CLI
13
+ - Claude Code, Codex CLI ou Grok Build (um deles basta)
14
14
 
15
15
  ### Setup
16
16
 
@@ -32,8 +32,18 @@ codex
32
32
 
33
33
  # 4B. Ative o Companion
34
34
  $companion
35
+
36
+ # OU 3C. Abra o Grok Build (no diretorio do negocio)
37
+ grok
38
+
39
+ # 4C. Ative o Companion (Grok le .claude/commands nativo — mesmo fluxo do Claude)
40
+ /auroq-companion
35
41
  ```
36
42
 
43
+ > **Grok:** nao precisa de `sync:codex`. Ele descobre `.claude/commands/`,
44
+ > `.claude/rules/` e `AGENTS.md` sozinho. Use Claude/Grok com slash commands;
45
+ > use Codex com `$nome` apos o sync de skills.
46
+
37
47
  > **Acesso exclusivo para alunos da Mentoria Arcane.** O `init` pede o mesmo email + senha
38
48
  > que voce usa em [mentoria-arcane.vercel.app](https://mentoria-arcane.vercel.app).
39
49
  > A sessao fica salva em `~/.arcane/credentials.json` e renova automaticamente.
@@ -70,11 +80,11 @@ claude
70
80
  *conectar-1password # reconectar o cofre (uma vez so nesta maquina)
71
81
  ```
72
82
 
73
- Ritual diario em toda maquina: **sentou → `*sync` · levantou → `*commit` + `*push`**.
83
+ Ritual diario em toda maquina: **abriu o `claude` → o sistema puxa sozinho o que mudou · terminou → diga "salva e entrega"** (qualquer agente executa o ritual do Ops; `*sync`/`*commit`/`*push` seguem como atalhos).
74
84
  Colaborador usa conta propria de tudo (GitHub via convite, assinatura Claude propria,
75
85
  cofre 1Password com escopo) — nunca a senha do dono. **Colaborador nao precisa ser
76
86
  aluno**: o acesso dele e o convite do GitHub (o `clone` nao pede login); quem atualiza
77
- o sistema e o dono, e o colaborador recebe as atualizacoes via `*sync`.
87
+ o sistema e o dono, e o colaborador recebe as atualizacoes automaticamente ao abrir o `claude`.
78
88
 
79
89
  ## Estrutura
80
90
 
@@ -82,7 +92,7 @@ o sistema e o dono, e o colaborador recebe as atualizacoes via `*sync`.
82
92
  business/ → Sua empresa (campanhas, processos, agentes)
83
93
  docs/knowledge/ → Biblioteca ETL (sua mente, seu negocio, conhecimento)
84
94
  agents/ → Seu exercito (companion, workers, minds, squads)
85
- .claude/ → Ponte Claude Code (agentes, rules, hooks)
95
+ .claude/ → Ponte Claude Code + Grok (agentes, rules, hooks, commands)
86
96
  .agents/skills/ → Ponte Codex local (skills geradas por projeto)
87
97
  .auroq-core/ → Framework (nao modificar)
88
98
  ```
@@ -107,7 +117,7 @@ agents/ → Seu exercito (companion, workers, minds, squads)
107
117
 
108
118
  ## Primeiro uso
109
119
 
110
- 1. Ative o Companion (`/auroq-companion` no Claude ou `$companion` no Codex)
120
+ 1. Ative o Companion (`/auroq-companion` no Claude/Grok ou `$companion` no Codex)
111
121
  2. Preencha os templates em `docs/knowledge/expert-mind/` (quem voce e)
112
122
  3. Preencha `docs/knowledge/expert-business/` (o que voce faz)
113
123
  4. Pronto — o sistema ja te conhece
@@ -122,4 +132,4 @@ agents/ → Seu exercito (companion, workers, minds, squads)
122
132
 
123
133
  ---
124
134
 
125
- *Auroq OS v2.1.0 — by Euriler Jube / Arka*
135
+ *Auroq OS v2.2.3 — by Euriler Jube / Arka*
@@ -97,7 +97,8 @@ Quando o expert precisa de algo que nao e dominio do Companion:
97
97
 
98
98
  | Precisa de... | Rotear para... |
99
99
  |--------------|---------------|
100
- | Git push/commit/deploy | Ops (`/AuroqOS:agents:ops`) |
100
+ | Salvar, entregar, puxar ("salva", "entrega", "puxa") | O PROPRIO Companion executa o ritual do Ops (`rules/puxar-e-entregar.md`) — sem trocar de agente |
101
+ | Deploy, push --force, PR, MCP/infra, bootstrap, update | Ops (`/AuroqOS:agents:ops`) |
101
102
  | Organizar, guardar documento, limpar, backup | Organizer (`/organizer`) |
102
103
  | Criar squad multi-agente a partir de processo | Squad Forge (`/squad-forge`) |
103
104
  | Criar mente sintetica ou consultor | Mind Forge (`/mind-forge`) |
@@ -200,8 +201,8 @@ O Companion protege o expert de si mesmo:
200
201
  1. BOOT → Carregar estado (contexto, cockpit, trackers, decisoes)
201
202
  2. BRIEFING → "Aqui e onde estamos. Isso e o que importa. Sugestao de foco."
202
203
  3. TRABALHO → Expert escolhe. Companion acompanha ou expert troca de agente.
203
- 4. CHECKPOINT → Expert chama Ops *commit. Estado salvo.
204
- 5. ENCERRAMENTO → Commit final. Contexto atualizado. Push.
204
+ 4. CHECKPOINT → Expert diz "salva" → Companion executa o ritual de commit. Estado salvo.
205
+ 5. ENCERRAMENTO → Expert diz "salva e entrega" → commit final + push. Contexto atualizado.
205
206
  ```
206
207
 
207
208
  ### Ciclo Semanal
package/bin/auroq-os.js CHANGED
@@ -147,6 +147,8 @@ const HEALTH_CHECKS = [
147
147
  ['.auroq-core/constitution.md', 'Constitution'],
148
148
  ['.claude/CLAUDE.md', 'CLAUDE.md'],
149
149
  ['.claude/hooks/synapse-engine.cjs', 'Synapse Hook'],
150
+ ['.claude/hooks/auroq-sync.cjs', 'Sync Hook'],
151
+ ['.claude/rules/puxar-e-entregar.md', 'Rule puxar-e-entregar'],
150
152
  ['agents/companion/agents/companion.md', 'Companion'],
151
153
  ['agents/organizer/agents/organizer.md', 'Organizer'],
152
154
  ['.claude/commands/AuroqOS/agents/ops.md', 'Ops'],
@@ -343,10 +345,12 @@ async function init() {
343
345
  '.claude/rules/tool-response-filtering.md',
344
346
  '.claude/rules/natural-language-first.md',
345
347
  '.claude/rules/custom-do-aluno.md',
348
+ '.claude/rules/puxar-e-entregar.md',
346
349
 
347
350
  // Hooks
348
351
  '.claude/hooks/synapse-engine.cjs',
349
352
  '.claude/hooks/precompact-session-digest.cjs',
353
+ '.claude/hooks/auroq-sync.cjs',
350
354
 
351
355
  // Synapse domain files
352
356
  '.synapse/manifest',
@@ -805,10 +809,10 @@ ${DIM} Uma vez so, nesta maquina:${RESET}
805
809
 
806
810
  ${DIM} Ritual de todo dia, em toda maquina:${RESET}
807
811
 
808
- ${GOLD}Sentou${RESET} → ${CYAN}*sync${RESET} ${DIM}— puxa o que mudou nas outras maquinas${RESET}
809
- ${GOLD}Levantou${RESET} → ${CYAN}*commit${RESET} + ${CYAN}*push${RESET} ${DIM}— entrega o seu trabalho pro GitHub${RESET}
812
+ ${GOLD}Abriu${RESET} → ${DIM}o sistema puxa sozinho o que mudou nas outras maquinas (e te conta)${RESET}
813
+ ${GOLD}Levantou${RESET} → diga ${CYAN}"salva e entrega"${RESET} ${DIM}pra quem estiver na tela — vai pro GitHub${RESET}
810
814
 
811
- ${DIM} Nunca levante da maquina com trabalho nao entregue.${RESET}
815
+ ${DIM} Nunca levante da maquina com trabalho nao entregue — o sistema lembra, mas so voce entrega.${RESET}
812
816
 
813
817
  ${PURPLE}${BOLD} ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${RESET}
814
818
  ${DIM} Auroq OS v${PKG_VERSION} — Sistema Operacional de IA para Experts${RESET}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "auroq-os",
3
- "version": "2.2.1",
3
+ "version": "2.2.3",
4
4
  "description": "Auroq OS — Sistema Operacional de IA para Experts",
5
5
  "bin": {
6
6
  "auroq-os": "bin/auroq-os.js"