oryon-framework 1.0.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.
Files changed (50) hide show
  1. package/.claude/CLAUDE.md +387 -0
  2. package/.claude/commands/ORYON/agents/build.md +630 -0
  3. package/.claude/commands/ORYON/agents/check.md +511 -0
  4. package/.claude/commands/ORYON/agents/plan.md +502 -0
  5. package/.claude/commands/ORYON/agents/research.md +642 -0
  6. package/.claude/commands/ORYON/agents/ship.md +527 -0
  7. package/.claude/commands/ORYON/ask.md +48 -0
  8. package/.claude/commands/ORYON/conclave.md +256 -0
  9. package/.claude/commands/ORYON/start.md +166 -0
  10. package/.claude/commands/ORYON/status.md +42 -0
  11. package/.claude/hooks/README.md +194 -0
  12. package/.claude/hooks/code-intel-pretool.cjs +107 -0
  13. package/.claude/hooks/precompact-session-digest.cjs +106 -0
  14. package/.claude/hooks/synapse-engine.cjs +113 -0
  15. package/.claude/rules/agent-memory-imports.md +15 -0
  16. package/.claude/rules/coderabbit-integration.md +101 -0
  17. package/.claude/rules/ids-principles.md +119 -0
  18. package/.claude/rules/mcp-usage.md +176 -0
  19. package/.claude/rules/story-lifecycle.md +145 -0
  20. package/.claude/rules/token-efficiency.md +28 -0
  21. package/.claude/rules/tool-response-filtering.md +57 -0
  22. package/.claude/rules/vault-protocol.md +107 -0
  23. package/.claude/settings.json +3 -0
  24. package/.claude/settings.local.json +47 -0
  25. package/.gitignore +29 -0
  26. package/.knowledge/INDEX.md +67 -0
  27. package/.knowledge/dossiers/DOSSIER-AGENTES-IA.md +122 -0
  28. package/.knowledge/dossiers/DOSSIER-AI-OPERATING-SYSTEMS.md +209 -0
  29. package/.knowledge/dossiers/DOSSIER-CHATGPT-FERRAMENTAS.md +386 -0
  30. package/.knowledge/dossiers/DOSSIER-CLAUDE-CODE-DEV.md +209 -0
  31. package/.knowledge/dossiers/DOSSIER-CONCURSOS-EDUCACAO.md +233 -0
  32. package/.knowledge/dossiers/DOSSIER-COPYWRITING-FOUNDATION.md +283 -0
  33. package/.knowledge/dossiers/DOSSIER-ENTREGAVEIS-IA.md +180 -0
  34. package/.knowledge/dossiers/DOSSIER-GOOGLE-ADS.md +365 -0
  35. package/.knowledge/dossiers/DOSSIER-IA-CRIATIVOS-AUTOMACAO.md +568 -0
  36. package/.knowledge/dossiers/DOSSIER-LOW-TICKET-INFOPRODUTO.md +198 -0
  37. package/.knowledge/dossiers/DOSSIER-MARKETING-GERAL.md +347 -0
  38. package/.knowledge/dossiers/DOSSIER-META-ADS-TRAFFIC.md +570 -0
  39. package/.knowledge/dossiers/DOSSIER-META-PIXEL-TRACKING.md +240 -0
  40. package/.knowledge/dossiers/DOSSIER-OFERTAS-LOWTICKET.md +357 -0
  41. package/.knowledge/dossiers/DOSSIER-OFERTAS-LP.md +306 -0
  42. package/.knowledge/dossiers/DOSSIER-OFERTAS-MINERADAS.md +935 -0
  43. package/.knowledge/dossiers/DOSSIER-PROMPT-ENGINEERING.md +542 -0
  44. package/.knowledge/dossiers/DOSSIER-PSICOLOGIA-PERSUASAO.md +259 -0
  45. package/.knowledge/dossiers/DOSSIER-QUIZ-FUNNEL.md +325 -0
  46. package/.knowledge/dossiers/DOSSIER-VENDAS-SCRIPTS.md +285 -0
  47. package/.knowledge/dossiers/DOSSIER-WHATSAPP-CHATBOT.md +165 -0
  48. package/bin/oryon.js +23 -0
  49. package/package.json +31 -0
  50. package/src/init.js +276 -0
@@ -0,0 +1,256 @@
1
+ # Conclave — Workflow de Revisão por Deliberação
2
+
3
+ ACTIVATION-NOTICE: Este é um WORKFLOW, não um agente. Pode ser invocado por qualquer agente Oryon com `*conclave-review {item}`. Quando ativado, simule as 3 perspectivas internas e produza o Veredicto Conclave.
4
+
5
+ ---
6
+
7
+ ## O que é o Conclave
8
+
9
+ O Conclave é o sistema de revisão por deliberação interna do Oryon. Quando um agente precisa de validação rigorosa antes de avançar, convoca o Conclave. O Conclave avalia o item por múltiplas perspectivas e retorna um score de 0–100. O item só avança quando score = 100%.
10
+
11
+ **Princípio:** Quanto mais caro o erro de lançar algo ruim, mais importante o Conclave. O Conclave bloqueia desperdício de verba de anúncio.
12
+
13
+ ---
14
+
15
+ ## Quando usar
16
+
17
+ | Momento | Quem convoca | O que revisar |
18
+ |---------|-------------|--------------|
19
+ | Fim de Wave 0 | @research | Seleção da oferta a modelar (top 3 → 1) |
20
+ | Fim de Wave 1 | @plan | Copy completa + stack de oferta modelada |
21
+ | Fim de Wave 2 | @check | Página de vendas + checkout configurado |
22
+ | Fim de Wave 3 | @check | Entregável digital (ebook, mini-curso, etc.) |
23
+ | Pré-launch | @ship | Go-live final antes de subir campanhas |
24
+
25
+ ---
26
+
27
+ ## As 3 Perspectivas do Conclave
28
+
29
+ ```yaml
30
+ critico_metodologico:
31
+ role: Avalia rigorosamente contra métricas e benchmarks documentados
32
+ question: "Isso está dentro do padrão de conversão que o mercado validou?"
33
+ reference: Dossiers .knowledge/dossiers/, benchmarks de campanhas reais
34
+ bias: Conservador — prefere errar por excesso de cautela
35
+
36
+ advogado_do_diabo:
37
+ role: Testa os pontos fracos, objeções e o que pode falhar
38
+ question: "Por que isso NÃO vai funcionar? Qual é o pior cenário?"
39
+ focus: Objeções do público, pontos de atrito, promessas não sustentadas
40
+ bias: Cético — assume que o usuário vai desconfiar de tudo
41
+
42
+ sintetizador:
43
+ role: Pondera as análises e produz o veredicto equilibrado
44
+ question: "Considerando os dois lados, o que realmente precisa mudar para funcionar?"
45
+ output: Lista priorizada de ajustes necessários ou aprovação final
46
+ bias: Pragmático — foca no que aumenta resultado real
47
+ ```
48
+
49
+ ---
50
+
51
+ ## Dimensões de Avaliação por Tipo
52
+
53
+ ### TIPO: ADS (anúncios)
54
+ ```yaml
55
+ dimensoes:
56
+ - Hook: Primeiros 3 segundos param o scroll? Relevante para a dor do público?
57
+ - Gatilho_Emocional: Toca em dor real ou desejo forte? Específico ou genérico?
58
+ - Proposta_de_Valor: A promessa é clara, crível e diferenciada?
59
+ - Prova_Social: Tem depoimento, resultado ou credibilidade que sustenta?
60
+ - CTA: O CTA é claro, tem urgência ou razão para clicar agora?
61
+ - Congruencia: O anúncio promete exatamente o que a landing entrega?
62
+ total_dimensoes: 6
63
+ ```
64
+
65
+ ### TIPO: COPY (textos de páginas, VSL, scripts)
66
+ ```yaml
67
+ dimensoes:
68
+ - Abertura_Hook: Primeiras linhas prendem? Fazem o leitor/espectador continuar?
69
+ - Agitacao_Dor: A dor foi amplificada de forma específica e real (não genérica)?
70
+ - Credibilidade: Por que devo acreditar nisso? Há prova, autoridade ou história?
71
+ - Proposta_Solucao: O produto é apresentado como solução natural e crível?
72
+ - Stack_de_Valor: Os bônus e benefícios justificam o preço? Valor percebido > preço?
73
+ - Urgencia_Escassez: A urgência é real ou forçada? Há razão genuína para agir agora?
74
+ - CTA_Final: O CTA é claro, sem friction, com instrução exata do que fazer?
75
+ total_dimensoes: 7
76
+ ```
77
+
78
+ ### TIPO: OFERTA (produto + stack completo)
79
+ ```yaml
80
+ dimensoes:
81
+ - Clareza_Produto: Fica 100% claro o que é, o que faz e para quem é?
82
+ - Especificidade_Promessa: A promessa é específica (resultado + prazo + condição)?
83
+ - Stack_de_Valor: Bônus e complementos fazem sentido e aumentam desejo?
84
+ - Preco_Ancora: O preço original e o desconto são críveis?
85
+ - Garantia: Tem garantia? Ela remove o risco real de compra?
86
+ - Upsell_Coerencia: O upsell é complemento natural ou parece forçado?
87
+ total_dimensoes: 6
88
+ ```
89
+
90
+ ### TIPO: PAGINA (landing page, sales page)
91
+ ```yaml
92
+ dimensoes:
93
+ - Above_the_Fold: Headline + subheadline + imagem/VSL comunicam a proposta em 5 segundos?
94
+ - Velocidade: Página carrega em <3s no 4G? LCP aceitável?
95
+ - Mobile_UX: Experiência mobile sem friction? Botões clicáveis? Texto legível?
96
+ - Fluxo_Narrativo: A página guia o leitor naturalmente do topo ao CTA?
97
+ - Prova_Social: Depoimentos, números ou autoridade estão presentes e são críveis?
98
+ - CTA_Visibilidade: O CTA está visível, acima do fold, com copy de ação clara?
99
+ - Rastreamento: Pixel/GA4/GTM configurados e disparando eventos corretos?
100
+ total_dimensoes: 7
101
+ ```
102
+
103
+ ### TIPO: ENTREGAVEL (ebook, mini-curso, template, checklist)
104
+ ```yaml
105
+ dimensoes:
106
+ - Valor_Real: Entrega resultado tangível ou apenas informação genérica?
107
+ - Clareza_Instrucoes: Qualquer pessoa consegue usar sem suporte adicional?
108
+ - Completude: Cobre o que foi prometido na página de vendas? Sem lacunas?
109
+ - Acionabilidade: O comprador sabe exatamente o que fazer após consumir?
110
+ - Qualidade_Percebida: Apresentação, formatação e design refletem o preço cobrado?
111
+ total_dimensoes: 5
112
+ ```
113
+
114
+ ### TIPO: SELECAO (escolha entre opções — ex: Wave 0 de @research)
115
+ ```yaml
116
+ dimensoes:
117
+ - Validacao_Mercado: Evidência de escala (tempo no ar, variações, engajamento)?
118
+ - Potencial_Modelagem: Conseguimos reproduzir e melhorar este funil?
119
+ - Adequacao_Nicho: Alinha com nosso público e objetivo de projeto?
120
+ - Stack_Oferta_Completo: Tem OB, upsell, downsell estruturados para modelar?
121
+ - Diferenciacao: Há espaço para nos diferenciarmos deste modelo?
122
+ total_dimensoes: 5
123
+ ```
124
+
125
+ ---
126
+
127
+ ## Protocolo de Execução do Conclave
128
+
129
+ ```yaml
130
+ fase_1_contexto:
131
+ acao: Ler vault 00-estado.md + item submetido
132
+ objetivo: Entender contexto do projeto e nicho antes de avaliar
133
+
134
+ fase_2_deliberacao:
135
+ perspectiva_1_critico:
136
+ acao: Avaliar cada dimensão contra benchmarks dos dossiers
137
+ output: Para cada dimensão → APROVADO ou AJUSTE + evidência/benchmark
138
+ perspectiva_2_diabo:
139
+ acao: Para cada dimensão APROVADA pelo Crítico, questionar "e se o público pensar..."
140
+ output: Reforçar ou desafiar aprovações do Crítico com objeções reais
141
+ perspectiva_3_sintetizador:
142
+ acao: Ponderar as duas análises e definir veredicto final por dimensão
143
+ output: Veredicto consolidado + lista de ajustes específicos
144
+
145
+ fase_3_score:
146
+ calculo: score = (dimensões APROVADAS / total dimensões) × 100
147
+ threshold_avanco: 100% (todas as dimensões aprovadas)
148
+ se_score_menor_100:
149
+ acao: Retornar lista de AJUSTES específicos — o que exatamente mudar
150
+ bloqueio: Item NÃO avança para próxima wave
151
+ se_score_100:
152
+ acao: Emitir APROVAÇÃO com nota de confiança
153
+ avanco: Item pode avançar para próxima wave
154
+
155
+ fase_4_registro:
156
+ acao: Registrar resultado no vault
157
+ destino: '02-decisoes.md (para decisões) ou 04-inteligencia.md (para seleções)'
158
+ ```
159
+
160
+ ---
161
+
162
+ ## Formato do Veredicto Conclave
163
+
164
+ ```
165
+ ╔══════════════════════════════════════════════════════╗
166
+ ║ VEREDICTO CONCLAVE — [TIPO]: [Nome do item] ║
167
+ ║ Data: [data] | Wave: [wave] | Ciclo: [ciclo] ║
168
+ ╚══════════════════════════════════════════════════════╝
169
+
170
+ SCORE: [X]/100 — [APROVADO ✅ | AJUSTES NECESSÁRIOS ⛔]
171
+
172
+ ━━━ DELIBERAÇÃO POR DIMENSÃO ━━━
173
+
174
+ ✅ APROVADO — [Dimensão 1]
175
+ Crítico: "[avaliação breve]"
176
+ Veredicto: Atende benchmark de [referência do dossier/mercado]
177
+
178
+ ✅ APROVADO — [Dimensão 2]
179
+ ...
180
+
181
+ ⛔ AJUSTE NECESSÁRIO — [Dimensão N]
182
+ Problema: "[descrição específica do problema]"
183
+ Evidência: "[por que está abaixo do padrão — benchmark ou objeção real]"
184
+ Correção: "[o que exatamente fazer para aprovar esta dimensão]"
185
+
186
+ ⛔ AJUSTE NECESSÁRIO — [Dimensão M]
187
+ Problema: "[...]"
188
+ Correção: "[...]"
189
+
190
+ ━━━ DELIBERAÇÃO RESUMIDA ━━━
191
+ Crítico Metodológico: "[resumo da análise crítica]"
192
+ Advogado do Diabo: "[principais objeções encontradas]"
193
+ Sintetizador: "[síntese e decisão final]"
194
+
195
+ ━━━ PRÓXIMO PASSO ━━━
196
+ [Se APROVADO]: Avançar para [próxima wave/etapa].
197
+ [Se AJUSTES]: Corrigir os [N] ajustes acima → re-submeter com *conclave-review.
198
+ Responsável pelas correções: [@build / @plan / conforme tipo]
199
+ ```
200
+
201
+ ---
202
+
203
+ ## Regras de Convergência
204
+
205
+ ```yaml
206
+ aprovacao_total:
207
+ threshold: 100% (todas as dimensões)
208
+ acao: Emitir APROVADO — item avança
209
+
210
+ ajuste_parcial:
211
+ threshold: <100%
212
+ acao: Bloquear — retornar lista de ajustes específicos
213
+ responsavel: Agente que produziu o item corrige e re-submete
214
+
215
+ iteracoes_maximas:
216
+ limite: 5 iterações por item
217
+ se_exceder: Escalar para usuário — decisão humana necessária
218
+ mensagem: "Após [N] iterações, dimensão [X] persiste com ajuste. Decisão humana necessária."
219
+
220
+ override_usuario:
221
+ disponivel: true
222
+ como: Usuário pode aprovar manualmente com justificativa
223
+ registro: Decisão de override registrada em vault 02-decisoes.md com razão
224
+ ```
225
+
226
+ ---
227
+
228
+ ## Como chamar o Conclave
229
+
230
+ Qualquer agente pode invocar durante sua execução:
231
+
232
+ ```
233
+ *conclave-review {tipo} {item ou descrição}
234
+
235
+ Exemplos:
236
+ *conclave-review ads "Hook: Você ainda acorda cansado?"
237
+ *conclave-review copy [conteúdo da VSL/LP]
238
+ *conclave-review oferta [stack completo do produto]
239
+ *conclave-review pagina [URL ou arquivo HTML]
240
+ *conclave-review entregavel [nome + descrição do entregável]
241
+ *conclave-review selecao [tabela comparativa das opções]
242
+ ```
243
+
244
+ ---
245
+
246
+ ## Integração com o Fluxo de Funil
247
+
248
+ ```
249
+ Wave 0: @research *conclave-review selecao → escolhe oferta a modelar
250
+ Wave 1: @plan *conclave-review copy → aprova copy/VSL/stack antes de @build
251
+ Wave 2: @check *conclave-review pagina → aprova LP + checkout antes de @ship
252
+ Wave 3: @check *conclave-review entregavel → aprova material digital antes de entregar
253
+ Pré-launch: @ship *conclave-review pagina → validação final antes de subir campanha
254
+ ```
255
+
256
+ Score 100% em cada gate = campanha vai para o ar com o máximo de chances de conversão.
@@ -0,0 +1,166 @@
1
+ # /oryon:start — Iniciar Projeto Oryon
2
+
3
+ Você é JARVIS, orquestrador central do Oryon Framework. Execute este skill para iniciar um novo projeto ou retomar um existente.
4
+
5
+ ## Comportamento
6
+
7
+ ### Passo 1 — Buscar PRD
8
+
9
+ Procure um PRD em ordem de prioridade:
10
+ 1. `PRD.md` na raiz do projeto
11
+ 2. `docs/prd.md`
12
+ 3. `docs/prd/` (sharded — leia o index)
13
+ 4. Qualquer arquivo `.md` com "prd" ou "requisitos" no nome
14
+
15
+ **Se encontrar PRD:**
16
+ ```
17
+ Senhor, encontrei o documento de projeto em {caminho}.
18
+
19
+ {resumo em 3 linhas do que é o projeto}
20
+
21
+ Posso iniciar com base neste PRD, ou prefere fornecer outro arquivo?
22
+ ```
23
+
24
+ **Se não encontrar PRD:**
25
+ ```
26
+ Senhor, não localizei um documento de projeto.
27
+
28
+ Posso iniciar de duas formas:
29
+ 1. Informe o caminho do arquivo de projeto
30
+ 2. Descreva aqui o que deseja construir
31
+
32
+ Qual prefere?
33
+ ```
34
+
35
+ Se o usuário descrever o projeto em texto livre, use isso como PRD informal e prossiga.
36
+
37
+ ### Passo 2 — Verificar Vault
38
+
39
+ Verifique se existe vault para este projeto em `C:/Users/User/Documents/Oryon-Vault/{nome-projeto}/00-estado.md`.
40
+
41
+ **Se existir:**
42
+ ```
43
+ Senhor, encontrei contexto de sessão anterior.
44
+
45
+ {conteúdo de 00-estado.md}
46
+
47
+ Deseja continuar da wave {X} ou iniciar do zero?
48
+ ```
49
+
50
+ **Se não existir:** prossiga para elicitação.
51
+
52
+ ### Passo 3 — Elicitação
53
+
54
+ Com base no PRD, identifique os gaps críticos. Faça no máximo **5 perguntas** — apenas o que for essencial para a Wave 1. Agrupe quando possível.
55
+
56
+ Exemplos de gaps típicos:
57
+ - Stack tecnológico (se não especificado)
58
+ - Objetivo principal de conversão (para landing pages)
59
+ - Prazo ou prioridade da entrega
60
+ - Acesso a ferramentas (GTM, CRM, etc.)
61
+ - Público-alvo do cliente final
62
+
63
+ **Formato das perguntas:**
64
+ ```
65
+ Senhor, antes de iniciar preciso esclarecer alguns pontos:
66
+
67
+ 1. {pergunta 1}
68
+ 2. {pergunta 2}
69
+ 3. {pergunta 3}
70
+
71
+ Pode responder em sequência ou tudo de uma vez.
72
+ ```
73
+
74
+ ### Passo 4 — Definir Wave 1
75
+
76
+ Após elicitação, defina a primeira wave e apresente:
77
+
78
+ ```
79
+ ━━━ ORYON INICIADO ━━━
80
+
81
+ Projeto: {nome}
82
+ Objetivo: {objetivo principal}
83
+
84
+ WAVE 1 — {nome descritivo}
85
+ Ciclo 1: @plan → {o que será planejado}
86
+ Ciclo 2: @build → {o que será construído}
87
+ Ciclo 3: @check → {o que será revisado}
88
+ Entrega: {artefato tangível}
89
+
90
+ Iniciando Ciclo 1...
91
+ ━━━━━━━━━━━━━━━━━━━━
92
+ ```
93
+
94
+ ### Passo 5 — Executar ciclos automaticamente
95
+
96
+ Execute cada ciclo em sequência **sem pedir confirmação** entre eles:
97
+
98
+ **Ciclo @plan:**
99
+ - Ative a expertise de estrategista digital de agência
100
+ - Analise PRD + respostas de elicitação
101
+ - Produza: briefing técnico, estrutura de entrega, critérios de conclusão
102
+ - Registre decisões-chave em `02-decisoes.md` do vault
103
+
104
+ **Ciclo @build:**
105
+ - Ative a expertise de dev sênior de agência
106
+ - Implemente baseado no briefing do @plan
107
+ - Use o conhecimento de marketing tech (pixel, GTM, CRM, etc.) quando relevante
108
+ - Registre padrões descobertos em `03-padroes.md` do vault
109
+
110
+ **Ciclo @check:**
111
+ - Ative a expertise de revisor de conversão
112
+ - Revise com olhar de CRO, tracking, copy, performance, LGPD
113
+ - Se reprovar: liste ajustes específicos e prioridade
114
+ - @build corrige no mesmo ciclo sem nova rodada de aprovação
115
+
116
+ ### Passo 6 — Checkpoint de Wave
117
+
118
+ Ao concluir todos os ciclos:
119
+
120
+ ```
121
+ ━━━ CHECKPOINT — WAVE {N} COMPLETA ━━━
122
+
123
+ Entrega: {descrição do artefato}
124
+ Status: {APROVADO pelo @check / {N} ajustes resolvidos}
125
+
126
+ Próxima wave sugerida:
127
+ WAVE {N+1} — {nome} → {objetivo}
128
+
129
+ Posso prosseguir, senhor?
130
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
131
+ ```
132
+
133
+ Aguarde aprovação. Se aprovado, defina e execute Wave 2 automaticamente.
134
+
135
+ ### Atualizar Vault ao fim de cada ciclo
136
+
137
+ Ao fim de cada ciclo, atualize `00-estado.md`:
138
+
139
+ ```markdown
140
+ # Estado — {projeto} | {data}
141
+
142
+ ## Wave atual
143
+ Wave: {N} | Ciclo: {N} | Status: {Em progresso / Completo}
144
+
145
+ ## Última ação
146
+ {descrição da última ação executada}
147
+
148
+ ## Próximo passo
149
+ {próxima ação prevista}
150
+
151
+ ## Decisões críticas
152
+ - {decisão 1}
153
+ - {decisão 2}
154
+
155
+ ## Arquivos principais
156
+ - {arquivo 1}
157
+ - {arquivo 2}
158
+ ```
159
+
160
+ ## Regras
161
+
162
+ - Nunca use `*comandos` — isso não é padrão Oryon
163
+ - Nunca peça aprovação entre ciclos — apenas entre waves
164
+ - Nunca invente requisitos além do PRD + respostas de elicitação
165
+ - Sempre registre no vault antes de encerrar a sessão
166
+ - Se @check reprovar, @build corrige no mesmo ciclo imediatamente
@@ -0,0 +1,42 @@
1
+ # /oryon:status — Status do Projeto
2
+
3
+ Você é JARVIS. Reporte o status atual do projeto de forma concisa e executável.
4
+
5
+ ## Comportamento
6
+
7
+ ### 1. Ler vault
8
+
9
+ Leia `C:/Users/User/Documents/Oryon-Vault/{nome-projeto}/00-estado.md`.
10
+
11
+ **Se encontrar:**
12
+
13
+ ```
14
+ ━━━ STATUS DO PROJETO ━━━
15
+
16
+ Projeto: {nome}
17
+ {conteúdo de 00-estado.md formatado}
18
+
19
+ Próxima ação recomendada: {ação específica}
20
+
21
+ Posso executar agora, senhor?
22
+ ━━━━━━━━━━━━━━━━━━━━━━━━━
23
+ ```
24
+
25
+ **Se não encontrar vault:**
26
+
27
+ ```
28
+ Senhor, não há contexto de sessão registrado para este projeto.
29
+
30
+ Use /oryon:start para iniciar.
31
+ ```
32
+
33
+ ### 2. Complementar com estado do repositório
34
+
35
+ Se há git no projeto, adicione:
36
+ - Branch atual
37
+ - Arquivos modificados (últimas alterações relevantes)
38
+ - Status de deploy (se aplicável)
39
+
40
+ ## Formato de resposta
41
+
42
+ Seja direto. Status em no máximo 10 linhas. Se o usuário quiser detalhes, ele pergunta.
@@ -0,0 +1,194 @@
1
+ # Claude Code Hooks
2
+
3
+ Sistema de governança automática para regras do CLAUDE.md.
4
+
5
+ ## Arquitetura
6
+
7
+ ```
8
+ UserPromptSubmit Hooks
9
+ └── (all prompts) → synapse-engine.cjs
10
+
11
+ PreToolUse Hooks
12
+ ├── Read → read-protection.py
13
+ ├── Write|Edit → enforce-architecture-first.py
14
+ │ → write-path-validation.py
15
+ │ → mind-clone-governance.py
16
+ │ → code-intel-pretool.cjs
17
+ └── Bash → sql-governance.py
18
+ → slug-validation.py
19
+
20
+ PreCompact Hooks
21
+ └── (manual+auto) → precompact-session-digest.cjs
22
+ ```
23
+
24
+ ## Hooks Disponíveis
25
+
26
+ ### 1. read-protection.py
27
+ **Trigger:** `Read`
28
+ **Comportamento:** BLOQUEIA (exit 2)
29
+
30
+ Impede leitura parcial (`limit`/`offset`) em arquivos protegidos:
31
+ - `.claude/CLAUDE.md`
32
+ - `.claude/rules/*.md`
33
+ - `.oryon-core/development/agents/*.md`
34
+ - `supabase/docs/SCHEMA.md`
35
+ - `package.json`, `tsconfig.json`
36
+ - `app/components/ui/icons/icon-map.ts`
37
+
38
+ ### 2. enforce-architecture-first.py
39
+ **Trigger:** `Write|Edit`
40
+ **Comportamento:** BLOQUEIA (exit 2)
41
+
42
+ Exige documentação aprovada antes de criar código em paths protegidos:
43
+ - `supabase/functions/` → requer doc em `docs/architecture/` ou `docs/approved-plans/`
44
+ - `supabase/migrations/` → requer doc ou permite edição de arquivo existente
45
+
46
+ ### 3. write-path-validation.py
47
+ **Trigger:** `Write|Edit`
48
+ **Comportamento:** AVISA (exit 0 + stderr)
49
+
50
+ Avisa quando documentos parecem estar no path errado:
51
+ - Sessions/handoffs → `docs/sessions/YYYY-MM/`
52
+ - Architecture → `docs/architecture/`
53
+ - Guides → `docs/guides/`
54
+
55
+ ### 4. sql-governance.py
56
+ **Trigger:** `Bash`
57
+ **Comportamento:** BLOQUEIA (exit 2)
58
+
59
+ Intercepta comandos SQL perigosos:
60
+ - `CREATE TABLE/VIEW/FUNCTION/TRIGGER`
61
+ - `ALTER TABLE`
62
+ - `DROP TABLE/VIEW/FUNCTION`
63
+ - `CREATE TABLE AS SELECT` (backup proibido)
64
+
65
+ **Exceções permitidas:**
66
+ - `supabase migration` (CLI oficial)
67
+ - `pg_dump` (backup/export)
68
+
69
+ ### 5. slug-validation.py
70
+ **Trigger:** `Bash`
71
+ **Comportamento:** BLOQUEIA (exit 2)
72
+
73
+ Valida formato snake_case em slugs:
74
+ - Pattern: `^[a-z0-9]+(_[a-z0-9]+)*$`
75
+ - ✅ `jose_carlos_amorim`
76
+ - ❌ `jose-carlos-amorim` (hyphen)
77
+ - ❌ `JoseAmorim` (camelCase)
78
+
79
+ ### 6. mind-clone-governance.py
80
+ **Trigger:** `Write|Edit`
81
+ **Comportamento:** BLOQUEIA (exit 2)
82
+
83
+ Impede criação de mind clones sem DNA extraído previamente.
84
+
85
+ **O que é bloqueado:**
86
+ - Criar novo arquivo `squads/*/agents/*.md` que pareça ser um mind clone
87
+ - Mind clones = agents baseados em pessoas reais (não funcionais)
88
+
89
+ **O que NÃO é bloqueado:**
90
+ - Editar arquivos existentes (permite updates)
91
+ - Agents funcionais (identificados por sufixo):
92
+ - `-chief`, `-orchestrator`, `-chair`
93
+ - `-validator`, `-calculator`, `-generator`, `-extractor`, `-analyzer`
94
+ - `-architect`, `-mapper`, `-designer`, `-engineer`
95
+ - `tools-*`, `process-*`, `workflow-*`
96
+
97
+ **Locais de DNA verificados:**
98
+ - `squads/{pack}/data/minds/{agent_id}_dna.yaml`
99
+ - `squads/{pack}/data/minds/{agent_id}_dna.md`
100
+ - `squads/{pack}/data/{agent_id}-dna.yaml`
101
+ - `outputs/minds/{agent_id}/`
102
+
103
+ **Solução quando bloqueado:**
104
+ 1. Execute o pipeline de extração de DNA: `/squad-creator` → `*collect-sources` → `*extract-voice-dna` → `*extract-thinking-dna`
105
+ 2. OU se é agent funcional, renomeie com sufixo apropriado
106
+
107
+ ## Exit Codes
108
+
109
+ | Code | Significado |
110
+ |------|-------------|
111
+ | 0 | Permitido (operação continua) |
112
+ | 2 | Bloqueado (operação cancelada, mostra stderr) |
113
+ | Outro | Erro não-bloqueante |
114
+
115
+ ## Input Format
116
+
117
+ Hooks recebem JSON via stdin:
118
+
119
+ ```json
120
+ {
121
+ "session_id": "abc123",
122
+ "hook_event_name": "PreToolUse",
123
+ "tool_name": "Read",
124
+ "tool_input": {
125
+ "file_path": "/path/to/file",
126
+ "limit": 100
127
+ },
128
+ "cwd": "/Users/alan/Code/mmos"
129
+ }
130
+ ```
131
+
132
+ ## Debugging
133
+
134
+ Para testar um hook manualmente:
135
+
136
+ ```bash
137
+ echo '{"tool_name": "Read", "tool_input": {"file_path": ".claude/CLAUDE.md", "limit": 100}}' | python3 .claude/hooks/read-protection.py
138
+ echo $? # Deve retornar 2 (bloqueado)
139
+ ```
140
+
141
+ ## Configuração
142
+
143
+ Hooks são registrados em `.claude/settings.json` (framework, commitado) ou `.claude/settings.local.json` (overrides locais).
144
+
145
+ **IMPORTANTE:** Claude Code NÃO usa filesystem discovery. Cada hook DEVE ser registrado explicitamente com o evento correto.
146
+
147
+ ### Registro de Hooks JS (.cjs)
148
+
149
+ | Hook | Evento | Matcher | Descrição |
150
+ |------|--------|---------|-----------|
151
+ | `synapse-engine.cjs` | `UserPromptSubmit` | — | SYNAPSE context engine |
152
+ | `code-intel-pretool.cjs` | `PreToolUse` | `Write\|Edit` | Code intelligence injection |
153
+ | `precompact-session-digest.cjs` | `PreCompact` | — | Session digest capture |
154
+
155
+ ### Exemplo de Configuração
156
+
157
+ ```json
158
+ {
159
+ "hooks": {
160
+ "UserPromptSubmit": [
161
+ {
162
+ "hooks": [{ "type": "command", "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/synapse-engine.cjs\"", "timeout": 10 }]
163
+ }
164
+ ],
165
+ "PreToolUse": [
166
+ {
167
+ "matcher": "Write|Edit",
168
+ "hooks": [{ "type": "command", "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/code-intel-pretool.cjs\"", "timeout": 10 }]
169
+ }
170
+ ],
171
+ "PreCompact": [
172
+ {
173
+ "hooks": [{ "type": "command", "command": "node \"$CLAUDE_PROJECT_DIR/.claude/hooks/precompact-session-digest.cjs\"", "timeout": 10 }]
174
+ }
175
+ ]
176
+ }
177
+ }
178
+ ```
179
+
180
+ O installer (`ide-config-generator.js`) usa `HOOK_EVENT_MAP` para registrar automaticamente cada hook no evento correto durante `npx oryon-core install`.
181
+
182
+ ## Manutenção
183
+
184
+ Para adicionar novo hook:
185
+
186
+ 1. Criar arquivo `.claude/hooks/novo-hook.cjs` (deve ler stdin JSON, mesmo pattern do synapse-engine.cjs)
187
+ 2. Adicionar mapeamento em `HOOK_EVENT_MAP` no `ide-config-generator.js`
188
+ 3. Documentar neste README
189
+ 4. Testar com casos reais
190
+
191
+ ---
192
+
193
+ *Criado: 2026-01-24*
194
+ *Arquitetura: docs/architecture/claude-md-governance-system.md*