Agentic OS
Trate o Claude Code como um sistema operacional / runtime persistente, em vez de uma sessão de chat. Este skill codifica a arquitetura usada por configurações agentivas de produção: um kernel que roteia tarefas para agentes especialistas, memória persistente baseada em arquivos, automação agendada e uma camada de dados em JSON/markdown.
Quando Ativar
- Construindo um fluxo de trabalho multiagente dentro do Claude Code
- Configurando automação persistente do Claude Code que sobrevive a reinícios de sessão
- Criando um 'SO pessoal' ou 'SO agentivo' para tarefas recorrentes
- Usuário diz 'SO agentivo', 'SO pessoal', 'multiagente', 'coordenador de agente', 'agente persistente'
- Estruturando projetos de longa duração onde o contexto deve sobreviver entre sessões
Visão Geral da Arquitetura
O Agentic OS tem quatro camadas. Cada camada é um diretório na raiz do seu projeto.
project-root/
├── CLAUDE.md # Kernel: identidade, regras de roteamento, registro de agentes
├── agents/ # Definições de agentes especialistas (prompts em markdown)
├── .claude/commands/ # Comandos de barra: CLI para o usuário
├── scripts/ # Scripts daemon: tarefas agendadas ou orientadas a eventos
└── data/ # Estado: sistema de arquivos JSON/markdown, sem BD externo
Responsabilidades das Camadas
| Camada | Propósito | Persistência |
|---|---|---|
Kernel (CLAUDE.md) | Identidade, roteamento, políticas de modelo, registro de agentes | Rastreado pelo Git |
Agentes (agents/) | Identidades especialistas com ferramentas e memória escopo definidas | Rastreado pelo Git |
Comandos (.claude/commands/) | Comandos de barra para o usuário (/daily-sync, /outreach) | Rastreado pelo Git |
Scripts (scripts/) | Daemons Python/JS acionados por cron ou webhooks | Rastreado pelo Git |
Estado (data/) | Logs somente anexação, estado do projeto, registros de decisão | Ignorado ou rastreado pelo Git |
O Kernel
CLAUDE.md é o kernel. Ele atua como COO / orquestrador. O Claude o lê no início da sessão e o usa para direcionar o trabalho.
Estrutura do Kernel
# CLAUDE.md - Kernel do Agentic OS
## Identidade
Você é o COO do [nome-do-projeto]. Você roteia tarefas para agentes especialistas.
Você nunca escreve código diretamente. Você delega para o agente certo e sintetiza os resultados.
## Registro de Agentes
| Agente | Função | Gatilho |
|---|---|---|
| @dev | Código, arquitetura, depuração | Usuário diz 'construa', 'corrija', 'refatore' |
| @writer | Documentação, conteúdo, e-mails | Usuário diz 'escreva', 'rascunhe', 'blog' |
| @researcher | Pesquisa, análise, verificação de fatos | Usuário diz 'pesquise', 'analise', 'compare' |
| @ops | DevOps, implantação, infraestrutura | Usuário diz 'implante', 'CI', 'servidor' |
## Regras de Roteamento
1. Analise a solicitação do usuário em busca de palavras-chave de intenção
2. Combine com a coluna de gatilho do Registro de Agentes
3. Carregue o arquivo de agente correspondente de `agents/<nome>.md`
4. Passe a execução com contexto completo
5. Sintetize e apresente o resultado de volta ao usuário
## Políticas de Modelo
- Modelo padrão: use o padrão do repositório ou do harness.
- Tarefas @dev: prefira um modelo de raciocínio superior para arquitetura complexa.
- Tarefas @researcher: use o modelo configurado com capacidade de pesquisa e as ferramentas de busca aprovadas.
- Teto de custo: avise antes de exceder o limite de gastos configurado do projeto.
Princípio Chave
O kernel deve ser pequeno e declarativo. A lógica de roteamento reside em tabelas markdown simples, não em código. Isso torna o sistema inspecionável e editável sem depuração.
Agentes Especialistas
Cada agente é um arquivo markdown independente em agents/. O Claude carrega o arquivo de agente relevante ao rotear uma tarefa.
Formato de Definição do Agente
# @dev - Engenheiro de Software
## Identidade
Você é um engenheiro de software sênior. Você escreve código limpo, testado e de nível de produção.
Você prefere soluções simples. Você faz perguntas esclarecedoras quando os requisitos são ambíguos.
## Escopo da Memória
- Leia `data/projects/<projeto-atual>.md` para contexto
- Leia `data/decisions/` para decisões arquiteturais
- Anexe logs de execução a `data/logs/<data>[email protected]`
## Acesso a Ferramentas
- Acesso completo ao sistema de arquivos dentro da raiz do projeto
- Operações Git (status, diff, commit, branch)
- Acesso ao executor de testes
- Servidores MCP conforme configurados em `.claude/mcp.json`
## Restrições
- Sempre escreva testes para novos recursos
- Nunca envie commits diretamente para `main`; use branches de funcionalidade
- Prefira editar arquivos existentes a criar novos
- Mantenha funções com menos de 50 linhas quando possível
Padrão de Colaboração Multiagente
Quando uma tarefa abrange vários agentes, o kernel os executa sequencialmente ou em paralelo:
Usuário: 'Construa uma landing page e escreva o post de blog de lançamento'
Roteamento do kernel:
1. @dev - 'Construa uma landing page com [requisitos]'
2. @writer - 'Escreva um post de blog de lançamento para [produto] usando o texto da landing page'
3. Kernel sintetiza ambas as saídas em uma resposta unificada
Para execução paralela, use a capacidade de tarefa em segundo plano do Claude Code ou scripts shell que invocam o Claude Code com contextos de agente específicos.
Comandos e Fluxos de Trabalho Diários
Comandos de barra são arquivos markdown em .claude/commands/. Eles definem fluxos de trabalho reutilizáveis.
Estrutura do Comando
# /daily-sync
Execute o briefing matinal:
1. Leia `data/logs/ultima-sincronizacao.md` para contexto
2. Verifique o status do projeto: `git status`, PRs pendentes, saúde do CI
3. Revise `data/inbox/` para novas tarefas ou decisões necessárias
4. Gere um resumo de bloqueadores, prioridades e próximas ações
5. Anexe o briefing a `data/logs/diario/<data>.md`
Conjunto Padrão de Comandos
| Comando | Propósito |
|---|---|
/daily-sync | Briefing matinal: status, bloqueadores, prioridades |
/outreach | Executar fluxo de divulgação (e-mail, LinkedIn, etc.) |
/research <tópico> | Pesquisa aprofundada com rastreamento de citações |
/apply-jobs | Personalizar currículo + carta de apresentação para uma vaga alvo |
/analytics | Obter métricas do Stripe, GitHub ou fontes personalizadas |
/interview-prep | Gerar flashcards ou perguntas de entrevista simulada |
/decision <tópico> | Registrar uma decisão com prós/contras e caminho escolhido |
Ativando Comandos
Coloque os arquivos de comando em .claude/commands/<nome-do-comando>.md. O Claude Code os descobre automaticamente. Os usuários os invocam com /<nome-do-comando>.
Memória Persistente
A memória é baseada em arquivos. Sem banco vetorial, sem Redis, sem PostgreSQL. Arquivos JSON e markdown em data/ são o banco de dados.
Estrutura do Diretório de Memória
data/
├── daily-logs/ # Logs de atividade diária somente anexação
├── projects/ # Arquivos de contexto por projeto
├── decisions/ # Decisões arquiteturais e de negócios (formato ADR)
├── inbox/ # Novas tarefas ou ideias aguardando triagem
├── contacts/ # Pessoas, empresas, notas de relacionamento
└── templates/ # Prompts e formatos reutilizáveis
Formato do Log Diário
# 2026-04-22 - Log Diário
## Sessões
- 09:00 - Sessão 1: Refatoração do módulo de autenticação (@dev)
- 11:30 - Sessão 2: Rascunho da atualização do investidor (@writer)
## Decisões
- Mudança de JWT para cookies de sessão (veja `data/decisions/2026-04-22-auth.md`)
## Bloqueadores
- Aguardando chave de API do fornecedor (acompanhar em 2026-04-24)
## Próximas Ações
- [ ] Mesclar PR de refatoração de autenticação
- [ ] Enviar atualização do investidor para revisão
Padrão de Autorreflexão
Ao final de cada sessão, o kernel anexa uma reflexão:
## Reflexão - Sessão 3
- O que funcionou: A execução paralela de agentes economizou 20 minutos
- O que não funcionou: @researcher encontrou uma fonte atrás de paywall, preciso de melhor classificação de fontes
- O que mudar: Adicionar campo `fonte-nivel` às notas de pesquisa (A/B/C de credibilidade)
Isso cria um ciclo de feedback que melhora o sistema ao longo do tempo sem alterações de código.
Automação Agendada
As tarefas do Agentic OS são executadas em um cronograma usando cron externo, não o cron interno do Claude Code (que morre quando a sessão termina).
macOS: LaunchAgent
<!-- ~/Library/LaunchAgents/com.agentic.daily-sync.plist -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" ...>
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.agentic.daily-sync</string>
<key>ProgramArguments</key>
<array>
<string>/claude</string>
<string>--cwd</string>
<string>/caminho/para/projeto</string>
<string>--command</string>
<string>/daily-sync</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>8</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
<key>StandardOutPath</key>
<string>/tmp/agentic-daily-sync.log</string>
</dict>
</plist>
Linux: systemd Timer
# ~/.config/systemd/user/agentic-daily-sync.service
[Unit]
Description=Agentic OS Daily Sync
[Service]
Type=oneshot
ExecStart=/usr/local/bin/claude --cwd /caminho/para/projeto --command /daily-sync
# ~/.config/systemd/user/agentic-daily-sync.timer
[Unit]
Description=Executar sincronização diária todas as manhãs
[Timer]
OnCalendar=*-*-* 8:00:00
Persistent=true
[Install]
WantedBy=timers.target
Multiplataforma: pm2
# ecosystem.config.js
module.exports = {
apps: [{
name: 'agentic-daily-sync',
script: 'claude',
args: '--cwd /caminho/para/projeto --command /daily-sync',
cron_restart: '0 8 * * *',
autorestart: false
}]
};
Camada de Dados
A camada de dados é o seu sistema de arquivos. Use JSON para dados estruturados e markdown para conteúdo narrativo.
JSON para Estado Estruturado
// data/projects/website-v2.json
{
"name": "Website v2",
"status": "em-andamento",
"milestone": "lançamento-beta",
"agents_involved": ["@dev", "@writer"],
"files": {
"spec": "docs/website-v2-spec.md",
"design": "designs/website-v2.fig"
},
"metrics": {
"commits": 47,
"last_session": "2026-04-22T11:30:00Z"
}
}
Markdown para Conteúdo Narrativo
Use markdown para qualquer coisa que um humano leia: decisões, logs, notas de pesquisa, registros de contato.
Evolução de Esquema
Nunca renomeie campos existentes. Adicione novos campos e marque os antigos como obsoletos:
{
"name": "Website v2",
"status": "em-andamento",
"milestone": "lançamento-beta",
"_deprecated_priority": "alta",
"priority_v2": { "level": "alta", "rationale": "Bloqueia demonstração do investidor" }
}
Isso mantém os dados históricos legíveis sem scripts de migração.
Anti-Padrões
Agente Único Monolítico
# RUIM - Um agente faz tudo
Você é um desenvolvedor full-stack, escritor, pesquisador e engenheiro DevOps.
Divida em agentes especialistas. O kernel lida com o roteamento.
Sessões Sem Estado
# RUIM - Sem memória entre sessões
Começando do zero toda vez que o Claude Code abre.
Sempre leia data/ no início da sessão e escreva de volta no final da sessão.
Credenciais Hardcoded
# RUIM - Chaves de API em arquivos de agente ou CLAUDE.md
Sua chave de API da OpenAI é sk-xxxxxxxx
Use variáveis de ambiente ou um arquivo .env carregado por scripts. Agentes referenciam process.env.API_KEY.
Banco de Dados Externo para Estado Simples
# RUIM - PostgreSQL para o SO agentivo de um usuário solo
Use arquivos JSON/markdown até que você tenha múltiplos usuários concorrentes ou GBs de dados.
Roteamento Superengendrado
# RUIM - Lógica de roteamento em código em vez de tabelas markdown
if (intent.includes('deploy')) { agent = opsAgent; }
Mantenha o roteamento declarativo em tabelas markdown no CLAUDE.md. É inspecionável, editável e depurável.
Melhores Práticas
-
CLAUDE.mdtem menos de 200 linhas e cabe na janela de contexto - Cada arquivo de agente tem menos de 100 linhas e é focado em um domínio
-
data/é ignorado pelo Git para logs sensíveis, rastreado pelo Git para decisões e especificações - Comandos usam nomes imperativos:
/daily-sync, não/run-daily-sync - Logs são somente anexação; nunca edite logs diários passados
- Todo agente tem uma seção
Escopo da Memóriadefinindo quais arquivos ele lê - Reflexões são escritas ao final de cada sessão
- Tarefas agendadas usam cron externo (LaunchAgent, systemd, pm2), não o cron de sessão do Claude Code
- Rastreamento de custo: registre gastos de API por sessão em
data/logs/<data>-custos.json - Um projeto = um Agentic OS. Não compartilhe um único
CLAUDE.mdentre projetos não relacionados.