auroq-os 2.2.2 → 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
@@ -78,7 +78,7 @@ instrucoes do arquivo ate `*exit`.
78
78
  ## Constitution — principios inegociaveis (replica de `.auroq-core/constitution.md`)
79
79
 
80
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** — `git commit/push/deploy` e o `*update` do framework sao **EXCLUSIVOS do Ops**. Outro agente delega. *(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)*
82
82
  3. **Documentar = investir** — todo trabalho significativo vira `.md`. O que nao e documentado, morre. *(MUST)*
83
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)*
84
84
  5. **Qualidade com julgamento** — o expert julga; a IA nao se auto-aprova em entregas importantes. *(MUST)*
@@ -94,7 +94,7 @@ instrucoes do arquivo ate `*exit`.
94
94
 
95
95
  ## Autoridade de agentes (de `.claude/rules/agent-authority`)
96
96
 
97
- - **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).
98
98
  - Os **Forges** criam agentes/squads/workers/clones; o **Companion** situa e roteia; o **Consultor** ensina o sistema.
99
99
  - Um agente nao invade o dominio de outro — **delega**. Em conflito de fronteira, escala pro Companion/expert.
100
100
 
@@ -122,6 +122,6 @@ Quando o pedido depender de contexto/memoria ja definidos, leia:
122
122
 
123
123
  ## Higiene de uso (do Consultor)
124
124
 
125
- - **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.
126
126
  - **O agente certo pra cada tarefa** — nao deixa o modelo cru fazer trabalho de especialista.
127
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
@@ -80,11 +80,11 @@ claude
80
80
  *conectar-1password # reconectar o cofre (uma vez so nesta maquina)
81
81
  ```
82
82
 
83
- 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).
84
84
  Colaborador usa conta propria de tudo (GitHub via convite, assinatura Claude propria,
85
85
  cofre 1Password com escopo) — nunca a senha do dono. **Colaborador nao precisa ser
86
86
  aluno**: o acesso dele e o convite do GitHub (o `clone` nao pede login); quem atualiza
87
- 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`.
88
88
 
89
89
  ## Estrutura
90
90
 
@@ -132,4 +132,4 @@ agents/ → Seu exercito (companion, workers, minds, squads)
132
132
 
133
133
  ---
134
134
 
135
- *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.2",
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"