mega-brain-ai 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mega-brain-ai might be problematic. Click here for more details.
- package/.claude/CLAUDE.md +155 -0
- package/.claude/commands/agents.md +161 -0
- package/.claude/commands/ask.md +117 -0
- package/.claude/commands/benchmark.md +224 -0
- package/.claude/commands/chat.md +343 -0
- package/.claude/commands/compare.md +116 -0
- package/.claude/commands/conclave.md +194 -0
- package/.claude/commands/config.md +133 -0
- package/.claude/commands/council.md +194 -0
- package/.claude/commands/create-agent.md +452 -0
- package/.claude/commands/debate.md +157 -0
- package/.claude/commands/documentation/create-architecture-documentation.md +175 -0
- package/.claude/commands/dossiers.md +180 -0
- package/.claude/commands/evolve.md +223 -0
- package/.claude/commands/extract-dna.md +170 -0
- package/.claude/commands/extract-knowledge.md +507 -0
- package/.claude/commands/inbox.md +296 -0
- package/.claude/commands/ingest-empresa.md +191 -0
- package/.claude/commands/ingest.md +182 -0
- package/.claude/commands/jarvis-briefing.md +67 -0
- package/.claude/commands/jarvis-control.md +169 -0
- package/.claude/commands/jarvis-full.md +181 -0
- package/.claude/commands/jarvis.md +212 -0
- package/.claude/commands/ler-drive.md +212 -0
- package/.claude/commands/log.md +158 -0
- package/.claude/commands/loop.md +133 -0
- package/.claude/commands/loops.md +73 -0
- package/.claude/commands/mission-autopilot.md +538 -0
- package/.claude/commands/mission.md +353 -0
- package/.claude/commands/process-inbox.md +148 -0
- package/.claude/commands/process-jarvis.md +3036 -0
- package/.claude/commands/process-video.md +131 -0
- package/.claude/commands/rag-search.md +78 -0
- package/.claude/commands/resume.md +33 -0
- package/.claude/commands/save.md +38 -0
- package/.claude/commands/scan-inbox.md +125 -0
- package/.claude/commands/setup.md +99 -0
- package/.claude/commands/system-digest.md +243 -0
- package/.claude/commands/verify.md +182 -0
- package/.claude/commands/view-dna.md +169 -0
- package/.claude/hooks/agent_doctor.py +433 -0
- package/.claude/hooks/agent_memory_persister.py +203 -0
- package/.claude/hooks/auto_formatter.py +158 -0
- package/.claude/hooks/checkpoint_writer.py +244 -0
- package/.claude/hooks/claude_md_guard.py +146 -0
- package/.claude/hooks/creation_validator.py +357 -0
- package/.claude/hooks/enforce_dual_location.py +501 -0
- package/.claude/hooks/enforce_plan_mode.py +220 -0
- package/.claude/hooks/inbox_age_alert.py +367 -0
- package/.claude/hooks/jarvis_briefing.py +506 -0
- package/.claude/hooks/ledger_updater.py +301 -0
- package/.claude/hooks/memory_hints_injector.py +251 -0
- package/.claude/hooks/memory_updater.py +202 -0
- package/.claude/hooks/multi_agent_hook.py +464 -0
- package/.claude/hooks/notification_system.py +120 -0
- package/.claude/hooks/pattern_analyzer.py +526 -0
- package/.claude/hooks/pending_tracker.py +188 -0
- package/.claude/hooks/post_batch_cascading.py +1740 -0
- package/.claude/hooks/post_output_validator.py +358 -0
- package/.claude/hooks/post_tool_use.py +120 -0
- package/.claude/hooks/post_write_validator.py +200 -0
- package/.claude/hooks/quality_watchdog.py +394 -0
- package/.claude/hooks/ralph_wiggum.py +277 -0
- package/.claude/hooks/session-source-sync.py +218 -0
- package/.claude/hooks/session_autosave_v2.py +1135 -0
- package/.claude/hooks/session_end.py +203 -0
- package/.claude/hooks/session_start.py +939 -0
- package/.claude/hooks/skill_indexer.py +48 -0
- package/.claude/hooks/skill_router.py +358 -0
- package/.claude/hooks/stop_hook_completeness.py +178 -0
- package/.claude/hooks/subagent_tracker.py +163 -0
- package/.claude/hooks/token_checkpoint.py +584 -0
- package/.claude/hooks/user_prompt_submit.py +125 -0
- package/.claude/rules/ANTHROPIC-STANDARDS.md +384 -0
- package/.claude/rules/CLAUDE-LITE.md +201 -0
- package/.claude/rules/RULE-GROUP-1.md +320 -0
- package/.claude/rules/RULE-GROUP-2.md +307 -0
- package/.claude/rules/RULE-GROUP-3.md +248 -0
- package/.claude/rules/RULE-GROUP-4.md +427 -0
- package/.claude/rules/RULE-GROUP-5.md +388 -0
- package/.claude/rules/RULE-GROUP-6.md +387 -0
- package/.claude/rules/logging.md +53 -0
- package/.claude/rules/mcp-governance.md +128 -0
- package/.claude/rules/pipeline.md +60 -0
- package/.claude/rules/state-management.md +93 -0
- package/.claude/scripts/apply-tags.py +77 -0
- package/.claude/scripts/batch-extract-transcriptions.py +132 -0
- package/.claude/scripts/build-complete-index.py +250 -0
- package/.claude/scripts/build-planilha-index.py +170 -0
- package/.claude/scripts/complete-tag-matching.py +250 -0
- package/.claude/scripts/deduplicate-inbox.py +139 -0
- package/.claude/scripts/docx-xml-extractor.py +141 -0
- package/.claude/scripts/extract-docx-text.py +58 -0
- package/.claude/scripts/extract-single-transcription.py +74 -0
- package/.claude/scripts/extract_docx_from_gdrive.py +77 -0
- package/.claude/scripts/organized-downloader.py +246 -0
- package/.claude/scripts/planilha-tagger.py +187 -0
- package/.claude/scripts/revert-tags.py +70 -0
- package/.claude/scripts/source-sync.py +265 -0
- package/.claude/scripts/tag-inbox-files.py +276 -0
- package/.claude/scripts/tag-inbox-v2.py +253 -0
- package/.claude/scripts/test-extraction.py +35 -0
- package/.claude/scripts/test-full-extraction.py +74 -0
- package/.claude/skills/00-SKILL-CREATOR/SKILL.md +186 -0
- package/.claude/skills/01-SKILL-DOCS-MEGABRAIN/SKILL.md +251 -0
- package/.claude/skills/02-SKILL-PYTHON-MEGABRAIN/SKILL.md +323 -0
- package/.claude/skills/03-SKILL-AGENT-CREATION/SKILL.md +374 -0
- package/.claude/skills/04-SKILL-KNOWLEDGE-EXTRACTION/SKILL.md +318 -0
- package/.claude/skills/05-SKILL-PIPELINE-JARVIS/SKILL.md +430 -0
- package/.claude/skills/06-SKILL-BRAINSTORMING/SKILL.md +72 -0
- package/.claude/skills/07-SKILL-DISPATCHING-PARALLEL-AGENTS/SKILL.md +193 -0
- package/.claude/skills/08-SKILL-EXECUTING-PLANS/SKILL.md +114 -0
- package/.claude/skills/09-SKILL-WRITING-PLANS/SKILL.md +184 -0
- package/.claude/skills/10-SKILL-VERIFICATION-BEFORE-COMPLETION/SKILL.md +130 -0
- package/.claude/skills/11-SKILL-USING-SUPERPOWERS/SKILL.md +105 -0
- package/.claude/skills/DETECTION-PROTOCOL.md +217 -0
- package/.claude/skills/README.md +240 -0
- package/.claude/skills/SKILL-REGISTRY.md +284 -0
- package/.claude/skills/SKILL-SUGGESTIONS.md +114 -0
- package/.claude/skills/_TEMPLATES/SKILL-WRITER-GUIDE.md +385 -0
- package/.claude/skills/chronicler/SKILL.md +146 -0
- package/.claude/skills/chronicler/chronicler_core.py +468 -0
- package/.claude/skills/code-review/SKILL.md +160 -0
- package/.claude/skills/council/SKILL.md +210 -0
- package/.claude/skills/executor/SKILL.md +161 -0
- package/.claude/skills/fase-2-5-tagging/SKILL.md +182 -0
- package/.claude/skills/feature-dev/SKILL.md +154 -0
- package/.claude/skills/finance-agent/SKILL.md +137 -0
- package/.claude/skills/frontend-design/SKILL.md +165 -0
- package/.claude/skills/gdrive-transcription-downloader/SKILL.md +249 -0
- package/.claude/skills/gemini-fallback/SKILL.md +67 -0
- package/.claude/skills/gemini-fallback/gemini_fetch.py +0 -0
- package/.claude/skills/gha/SKILL.md +96 -0
- package/.claude/skills/gha/gha_diagnostic.py +227 -0
- package/.claude/skills/github-workflow/SKILL.md +190 -0
- package/.claude/skills/hookify/SKILL.md +134 -0
- package/.claude/skills/hybrid-source-reading/SKILL.md +265 -0
- package/.claude/skills/jarvis/SKILL.md +546 -0
- package/.claude/skills/jarvis-briefing/SKILL.md +340 -0
- package/.claude/skills/ler-planilha/SKILL.md +281 -0
- package/.claude/skills/plugin-dev/SKILL.md +176 -0
- package/.claude/skills/pr-review-toolkit/SKILL.md +178 -0
- package/.claude/skills/resume/SKILL.md +61 -0
- package/.claude/skills/save/SKILL.md +87 -0
- package/.claude/skills/skill-writer/SKILL.md +153 -0
- package/.claude/skills/skill-writer/examples.md +191 -0
- package/.claude/skills/skill-writer/troubleshooting.md +205 -0
- package/.claude/skills/smart-download-tagger/SKILL.md +148 -0
- package/.claude/skills/source-sync/SKILL.md +240 -0
- package/.claude/skills/sync-docs/SKILL.md +193 -0
- package/.claude/skills/sync-docs/config.json +37 -0
- package/.claude/skills/sync-docs/gdrive_sync.py +358 -0
- package/.claude/skills/sync-docs/reauth.py +71 -0
- package/.claude/skills/talent-agent/SKILL.md +183 -0
- package/.claude/skills/verify/SKILL.md +154 -0
- package/.claude/skills/verify/verify_runner.py +0 -0
- package/.claude/skills/verify-6-levels/SKILL.md +234 -0
- package/.claude/templates/BATCH-LOG-TEMPLATE.md +221 -0
- package/.claudeignore +9 -0
- package/.gitattributes +4 -0
- package/.github/layer1-allowlist.txt +80 -0
- package/.github/layer2-manifest.txt +40 -0
- package/.gitignore +219 -0
- package/README.md +1210 -0
- package/agents/_templates/INDEX.md +741 -0
- package/agents/_templates/TEMPLATE-AGENT-MD-ULTRA-ROBUSTO-V3.md +2399 -0
- package/agents/boardroom/CHECKLIST-MASTER.md +281 -0
- package/agents/boardroom/INTEGRATION-GUIDE.md +406 -0
- package/agents/boardroom/README.md +238 -0
- package/agents/boardroom/config/BOARDROOM-CONFIG.md +186 -0
- package/agents/boardroom/config/TTS-INTEGRATION.md +258 -0
- package/agents/boardroom/config/VOICE-PROFILES.md +624 -0
- package/agents/boardroom/config/voice_mapping.json +128 -0
- package/agents/boardroom/scripts/audio_generator.py +375 -0
- package/agents/boardroom/scripts/audio_generator_edge.py +353 -0
- package/agents/boardroom/scripts/jarvis_boardroom_hook.py +415 -0
- package/agents/boardroom/scripts/notebooklm_generator.py +578 -0
- package/agents/boardroom/templates/EPISODE-TEMPLATE.md +367 -0
- package/agents/boardroom/templates/scene-templates/SCENE-AGENT-DEBATE.md +252 -0
- package/agents/boardroom/templates/scene-templates/SCENE-COUNCIL.md +270 -0
- package/agents/boardroom/templates/scene-templates/SCENE-DNA-CONSULTATION.md +126 -0
- package/agents/boardroom/templates/scene-templates/SCENE-QUESTION.md +174 -0
- package/agents/boardroom/workflows/WORKFLOW-AUDIO-GENERATION.md +421 -0
- package/agents/constitution/BASE-CONSTITUTION.md +254 -0
- package/agents/council/CRITIC.md +197 -0
- package/agents/council/DEVILS-ADVOCATE.md +274 -0
- package/agents/council/SYNTHESIZER.md +293 -0
- package/agents/council/advogado-do-diabo/AGENT.md +489 -0
- package/agents/council/advogado-do-diabo/SOUL.md +100 -0
- package/agents/council/critico-metodologico/AGENT.md +670 -0
- package/agents/council/critico-metodologico/SOUL.md +107 -0
- package/agents/council/sintetizador/AGENT.md +558 -0
- package/agents/council/sintetizador/SOUL.md +94 -0
- package/agents/persons/_example/AGENT-EXAMPLE.md +42 -0
- package/agents/persons/_example/DNA-EXAMPLE.yaml +61 -0
- package/agents/protocols/AGENT-COGNITION-PROTOCOL.md +779 -0
- package/agents/protocols/AGENT-INTEGRITY-PROTOCOL.md +692 -0
- package/agents/protocols/BATCH-VISUAL-PROTOCOL.md +841 -0
- package/agents/protocols/DNA-CONFIG-TEMPLATE.yaml +181 -0
- package/agents/protocols/DNA-EXTRACTION-PROTOCOL.md +370 -0
- package/agents/protocols/EPISTEMIC-PROTOCOL.md +333 -0
- package/agents/protocols/LOG-STRUCTURE-PROTOCOL.md +65 -0
- package/agents/protocols/MEMORY-PROTOCOL.md +567 -0
- package/agents/protocols/NARRATIVE-SYNTHESIS-PROTOCOL.md +278 -0
- package/agents/protocols/PHASE-4-VERIFICATION-CHECKPOINT.md +146 -0
- package/agents/protocols/SOUL-TEMPLATE.md +416 -0
- package/agents/protocols/TEMPLATE-EVOLUTION-PROTOCOL.md +544 -0
- package/agents/protocols/VISUAL-DIFF-PROTOCOL.md +159 -0
- package/agents/sua-empresa/README.md +44 -0
- package/agents/sua-empresa/_example/jds/EXAMPLE-JD.md +42 -0
- package/agents/sua-empresa/_example/org/EXAMPLE-ORG.md +32 -0
- package/agents/sua-empresa/_example/roles/EXAMPLE-ROLE.md +38 -0
- package/bin/cli.js +2 -0
- package/bin/lib/ascii-art.js +234 -0
- package/bin/lib/installer.js +402 -0
- package/bin/lib/setup-wizard.js +95 -0
- package/bin/lib/validate-email.js +109 -0
- package/bin/mega-brain.js +97 -0
- package/bin/push.js +342 -0
- package/bin/templates/env.example +38 -0
- package/inbox/.gitkeep +0 -0
- package/integrations/README.md +46 -0
- package/integrations/mcps/MCP-REGISTRY.md +56 -0
- package/integrations/mcps/excalidraw/CONFIG.md +56 -0
- package/integrations/mcps/gdrive/CONFIG.md +38 -0
- package/knowledge/dna/.gitkeep +0 -0
- package/knowledge/dossiers/persons/.gitkeep +0 -0
- package/knowledge/dossiers/persons/DOSSIER-EXAMPLE.md +49 -0
- package/knowledge/dossiers/system/.gitkeep +0 -0
- package/knowledge/dossiers/themes/.gitkeep +0 -0
- package/knowledge/playbooks/.gitkeep +0 -0
- package/knowledge/playbooks/PLAYBOOK-EXAMPLE.md +50 -0
- package/knowledge/sources/.gitkeep +0 -0
- package/logs/.gitkeep +0 -0
- package/package.json +128 -0
- package/processing/canonical/.gitkeep +0 -0
- package/processing/chunks/.gitkeep +0 -0
- package/processing/insights/.gitkeep +0 -0
- package/processing/narratives/.gitkeep +0 -0
- package/reference/CONSELHO.md +337 -0
- package/reference/CONTEXT7_README.md +28 -0
- package/reference/JARVIS-LOGGING-PROTOCOL.md +380 -0
- package/reference/QUICK-START.md +197 -0
- package/reference/README-RALPH-CASCATEAMENTO.md +207 -0
- package/reference/TEMPLATE-MASTER.md +727 -0
- package/reference/prds/prd-jarvis-mega-brain-v3.md +1305 -0
- package/reference/templates/phase5/IMPLEMENTATION-GUIDE.md +355 -0
- package/reference/templates/phase5/MOGA-BRAIN-PHASE5-TEMPLATES.md +1284 -0
- package/reference/templates/phase5/README.md +165 -0
- package/reference/workflow-claude-code-boris-cherny-continuous-claude.md +2232 -0
- package/system/database/001_moneyclub_buyers.sql +160 -0
- package/system/database/002_premium_token.sql +97 -0
- package/system/database/apply-migration.mjs +129 -0
- package/system/docs/MEGA-BRAIN-DEMO-COMPLETA.md +1226 -0
- package/system/docs/MEGA-BRAIN-MANIFESTO-COMPLETO.md +1054 -0
- package/system/docs/MOGA-BRAIN-EXPLICACAO-COMPLETA.md +791 -0
- package/system/docs/STRATEGIC-INTEGRATION-GUIDE.md +725 -0
- package/system/docs/architecture/01-system-context.md +136 -0
- package/system/docs/architecture/02-components.md +225 -0
- package/system/docs/architecture/03-data-flow.md +235 -0
- package/system/docs/architecture/04-integrations.md +283 -0
- package/system/docs/architecture/README.md +71 -0
- package/system/docs/architecture/diagrams/component-diagram.mmd +50 -0
- package/system/docs/architecture/diagrams/data-flow.mmd +39 -0
- package/system/docs/architecture/diagrams/system-overview.mmd +68 -0
- package/system/protocols/AGENT-AUTHORITY.md +217 -0
- package/system/protocols/CONSTITUICAO-BASE.md +115 -0
- package/system/protocols/CONSTITUTION.md +231 -0
- package/system/protocols/GOVERNANCE-MAP.md +123 -0
- package/system/protocols/HOOK-SECURITY-THREAT-MODEL.md +152 -0
- package/system/protocols/ORQUESTRACAO-PROTOCOL.md +215 -0
- package/system/protocols/_archive/CHUNKING-PROTOCOL.md +207 -0
- package/system/protocols/_archive/ENTITY-RESOLUTION-PROTOCOL.md +269 -0
- package/system/protocols/_archive/INSIGHT-EXTRACTION-PROTOCOL.md +257 -0
- package/system/protocols/_archive/NARRATIVE-SYNTHESIS-PROTOCOL.md +290 -0
- package/system/protocols/agents/AGENT-INTERACTION.md +315 -0
- package/system/protocols/agents/CORTEX-PROTOCOL.md +520 -0
- package/system/protocols/agents/EPISTEMIC-PROTOCOL.md +465 -0
- package/system/protocols/agents/MEMORY-PROTOCOL.md +366 -0
- package/system/protocols/agents/WAR-ROOM.md +355 -0
- package/system/protocols/company/COMPANY-DOCUMENT-PROTOCOL.md +793 -0
- package/system/protocols/company/COMPANY-ENRICHMENT-PROTOCOL.md +679 -0
- package/system/protocols/conclave/CONCLAVE-LOG-TEMPLATE-v2.md +309 -0
- package/system/protocols/conclave/CONCLAVE-PROTOCOL.md +518 -0
- package/system/protocols/conclave/DEBATE-DYNAMICS-CONFIG.yaml +322 -0
- package/system/protocols/conclave/DEBATE-DYNAMICS-PROTOCOL.md +613 -0
- package/system/protocols/conclave/DEBATE-PROTOCOL.md +323 -0
- package/system/protocols/council/COUNCIL-LOG-TEMPLATE-v2.md +309 -0
- package/system/protocols/council/COUNCIL-PROTOCOL.md +518 -0
- package/system/protocols/council/DEBATE-DYNAMICS-CONFIG.yaml +322 -0
- package/system/protocols/council/DEBATE-DYNAMICS-PROTOCOL.md +613 -0
- package/system/protocols/council/DEBATE-PROTOCOL.md +323 -0
- package/system/protocols/dna/DNA-EXTRACTION-PROTOCOL.md +1214 -0
- package/system/protocols/dna/ENRICHMENT-PROTOCOL.md +408 -0
- package/system/protocols/dna/REASONING-MODEL-PROTOCOL.md +331 -0
- package/system/protocols/pipeline/DOSSIER-COMPILATION-PROTOCOL.md +790 -0
- package/system/protocols/pipeline/NARRATIVE-METABOLISM-PROTOCOL.md +292 -0
- package/system/protocols/pipeline/PIPELINE-JARVIS-v2.1.md +606 -0
- package/system/protocols/pipeline/PROMPT-1.1-CHUNKING.md +154 -0
- package/system/protocols/pipeline/PROMPT-1.2-ENTITY-RESOLUTION.md +186 -0
- package/system/protocols/pipeline/PROMPT-2.1-DNA-TAGS-INCREMENT.md +208 -0
- package/system/protocols/pipeline/PROMPT-2.1-INSIGHT-EXTRACTION.md +191 -0
- package/system/protocols/pipeline/PROMPT-3.1-NARRATIVE-SYNTHESIS.md +331 -0
- package/system/protocols/pipeline/SOURCES-COMPILATION-PROTOCOL.md +340 -0
- package/system/protocols/system/AUTO-LOG-PROTOCOL.md +369 -0
- package/system/protocols/system/CHECKPOINT-ENFORCEMENT.md +176 -0
- package/system/protocols/system/ENFORCEMENT.md +435 -0
- package/system/protocols/system/LOG-TEMPLATES.md +1068 -0
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# Hook Security Threat Model
|
|
2
|
+
|
|
3
|
+
> **Version:** 1.0.0
|
|
4
|
+
> **Created:** 2026-02-18
|
|
5
|
+
> **Source:** Quality Uplift SEC-001
|
|
6
|
+
> **Scope:** All 33 hooks in `.claude/hooks/`
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 1. Current State
|
|
11
|
+
|
|
12
|
+
### Hook Inventory (33 hooks)
|
|
13
|
+
|
|
14
|
+
| Category | Count | Hooks |
|
|
15
|
+
|----------|-------|-------|
|
|
16
|
+
| Session lifecycle | 4 | session_start, session_end, session_autosave_v2, session-source-sync |
|
|
17
|
+
| Agent memory | 4 | skill_router, memory_hints_injector, agent_memory_persister, memory_updater |
|
|
18
|
+
| Pipeline enforcement | 5 | post_batch_cascading, enforce_dual_location, enforce_plan_mode, quality_watchdog, post_write_validator |
|
|
19
|
+
| Validation | 4 | creation_validator, post_output_validator, stop_hook_completeness, claude_md_guard |
|
|
20
|
+
| Tracking | 5 | post_tool_use, pending_tracker, subagent_tracker, pattern_analyzer, token_checkpoint |
|
|
21
|
+
| Utility | 5 | jarvis_briefing, checkpoint_writer, inbox_age_alert, notification_system, ledger_updater |
|
|
22
|
+
| Indexing | 2 | skill_indexer, auto_formatter |
|
|
23
|
+
| Agent system | 3 | multi_agent_hook, agent_doctor, ralph_wiggum |
|
|
24
|
+
|
|
25
|
+
### Execution Context
|
|
26
|
+
|
|
27
|
+
All hooks run as **Python scripts** invoked by Claude Code's hook system with:
|
|
28
|
+
- **Full filesystem access** (read/write to any path the user can access)
|
|
29
|
+
- **Full network access** (no restrictions on outbound connections)
|
|
30
|
+
- **User-level privileges** (same as the Claude Code process)
|
|
31
|
+
- **No process isolation** (no containers, chroot, or namespaces)
|
|
32
|
+
- **30-second timeout** (configurable per hook)
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 2. Threat Analysis
|
|
37
|
+
|
|
38
|
+
### T1: Path Traversal (MEDIUM)
|
|
39
|
+
|
|
40
|
+
**Risk:** A hook could read/write files outside the mega-brain directory.
|
|
41
|
+
|
|
42
|
+
**Current mitigations:**
|
|
43
|
+
- All hooks use env-based paths (`CLAUDE_PROJECT_DIR` with `.` fallback)
|
|
44
|
+
- `claude_md_guard.py` validates CLAUDE.md paths specifically
|
|
45
|
+
- No hooks accept arbitrary user-controlled paths
|
|
46
|
+
|
|
47
|
+
**Assessment:** LOW actual risk. Hooks are written by the system owner and are not user-facing. Path traversal is only a concern if hooks process untrusted input.
|
|
48
|
+
|
|
49
|
+
### T2: Credential Exposure (HIGH)
|
|
50
|
+
|
|
51
|
+
**Risk:** Hooks could accidentally log or expose credentials.
|
|
52
|
+
|
|
53
|
+
**Current mitigations:**
|
|
54
|
+
- `.env` is in `.gitignore`
|
|
55
|
+
- Token files (`token.json`, `token_write.json`) now untracked (Quality Uplift SEC-002)
|
|
56
|
+
- Hooks read state files, not credential files directly
|
|
57
|
+
|
|
58
|
+
**Assessment:** MEDIUM residual. OAuth tokens were in git history (now untracked but not purged). Recommend `git filter-branch` or BFG to clean history.
|
|
59
|
+
|
|
60
|
+
### T3: Unintended State Corruption (MEDIUM)
|
|
61
|
+
|
|
62
|
+
**Risk:** Multiple hooks writing to the same state files concurrently.
|
|
63
|
+
|
|
64
|
+
**Current mitigations:**
|
|
65
|
+
- Hooks run sequentially within each lifecycle event
|
|
66
|
+
- State files use JSON (atomic write via temp file + rename)
|
|
67
|
+
- `post_batch_cascading.py` has explicit state locking
|
|
68
|
+
|
|
69
|
+
**Assessment:** LOW actual risk. Claude Code runs hooks sequentially per event.
|
|
70
|
+
|
|
71
|
+
### T4: Hook Chain Amplification (LOW)
|
|
72
|
+
|
|
73
|
+
**Risk:** A hook could trigger actions that trigger other hooks (cascade).
|
|
74
|
+
|
|
75
|
+
**Current mitigations:**
|
|
76
|
+
- Claude Code hook system does not re-trigger hooks from hook actions
|
|
77
|
+
- Hooks output to stdout/stderr, not tool calls
|
|
78
|
+
|
|
79
|
+
**Assessment:** NOT APPLICABLE. Hook system is non-recursive by design.
|
|
80
|
+
|
|
81
|
+
### T5: Denial of Service (LOW)
|
|
82
|
+
|
|
83
|
+
**Risk:** A hook could hang or consume excessive resources.
|
|
84
|
+
|
|
85
|
+
**Current mitigations:**
|
|
86
|
+
- 30-second timeout per hook
|
|
87
|
+
- Hooks are lightweight Python scripts
|
|
88
|
+
- No hooks perform heavy computation or long network calls
|
|
89
|
+
|
|
90
|
+
**Assessment:** ACCEPTABLE. Timeout is sufficient protection.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## 3. Sandboxing Decision
|
|
95
|
+
|
|
96
|
+
### Recommendation: NO ADDITIONAL SANDBOXING REQUIRED
|
|
97
|
+
|
|
98
|
+
**Rationale:**
|
|
99
|
+
|
|
100
|
+
1. **Single-user system.** Mega Brain is operated by one user. Hooks are authored by the system owner, not untrusted third parties.
|
|
101
|
+
|
|
102
|
+
2. **Claude Code enforces sequential execution.** No parallel hook execution means no race conditions.
|
|
103
|
+
|
|
104
|
+
3. **Cost vs benefit.** Containerizing or sandboxing 33 hooks would add complexity and latency with minimal security benefit for a single-user development environment.
|
|
105
|
+
|
|
106
|
+
4. **Existing mitigations are sufficient:**
|
|
107
|
+
- `claude_md_guard.py` for write protection
|
|
108
|
+
- `.gitignore` for credential protection
|
|
109
|
+
- 30s timeouts for DoS protection
|
|
110
|
+
- Sequential execution for consistency
|
|
111
|
+
|
|
112
|
+
### Recommended Actions (Non-Sandboxing)
|
|
113
|
+
|
|
114
|
+
| Action | Priority | Status |
|
|
115
|
+
|--------|----------|--------|
|
|
116
|
+
| Untrack credential files from git | HIGH | DONE (SEC-002) |
|
|
117
|
+
| Purge credentials from git history | HIGH | PENDING (requires user approval) |
|
|
118
|
+
| Keep `.env.example` updated | MEDIUM | DONE (STATE-002) |
|
|
119
|
+
| Document hook write paths | LOW | DONE (GOVERNANCE-MAP.md) |
|
|
120
|
+
| Review hooks annually | LOW | Schedule for 2027-02-18 |
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## 4. Audit Trail
|
|
125
|
+
|
|
126
|
+
### Current Logging
|
|
127
|
+
|
|
128
|
+
| Hook | Logs to | Format |
|
|
129
|
+
|------|---------|--------|
|
|
130
|
+
| post_batch_cascading | `.claude/mission-control/batch-logs/` | JSON |
|
|
131
|
+
| session_autosave_v2 | `.claude/mission-control/AUTOSAVE-STATE.json` | JSON |
|
|
132
|
+
| skill_router | stdout (visible in session) | Text |
|
|
133
|
+
| quality_watchdog | stdout | Text |
|
|
134
|
+
| token_checkpoint | `.claude/jarvis/TOKEN-CHECKPOINT.json` | JSON |
|
|
135
|
+
| pattern_analyzer | `.claude/learning-system/` | YAML |
|
|
136
|
+
|
|
137
|
+
### Gaps
|
|
138
|
+
|
|
139
|
+
- No centralized audit log for hook executions
|
|
140
|
+
- No logging of hook failures (only stdout/stderr)
|
|
141
|
+
- Recommendation: Add `logs/hooks/` directory for structured hook execution logs in future iteration
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## 5. References
|
|
146
|
+
|
|
147
|
+
| Document | Path |
|
|
148
|
+
|----------|------|
|
|
149
|
+
| CONSTITUTION.md | `system/protocols/CONSTITUTION.md` |
|
|
150
|
+
| GOVERNANCE-MAP.md | `system/protocols/GOVERNANCE-MAP.md` |
|
|
151
|
+
| ENFORCEMENT.md | `system/protocols/system/ENFORCEMENT.md` |
|
|
152
|
+
| settings.json | `.claude/settings.json` (hook registrations) |
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
# ORQUESTRAÇÃO-PROTOCOL: Fluxo Completo do Sistema
|
|
2
|
+
|
|
3
|
+
> **Versão:** 1.0.0
|
|
4
|
+
> **Função:** Governar o fluxo desde pergunta até resposta final
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## ARQUITETURA DE 3 CAMADAS
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
┌─────────────────────────────────────────────────────────────────────────────────┐
|
|
12
|
+
│ │
|
|
13
|
+
│ CAMADA 1: CONSTITUIÇÃO BASE │
|
|
14
|
+
│ │
|
|
15
|
+
│ Filosofia: Empirismo, Pareto, Inversão, Antifragilidade │
|
|
16
|
+
│ Path: /system/protocols/CONSTITUICAO-BASE.md │
|
|
17
|
+
│ Aplica-se: TODOS os agentes │
|
|
18
|
+
│ │
|
|
19
|
+
└─────────────────────────────────────────────────────────────────────────────────┘
|
|
20
|
+
│
|
|
21
|
+
▼
|
|
22
|
+
┌─────────────────────────────────────────────────────────────────────────────────┐
|
|
23
|
+
│ │
|
|
24
|
+
│ CAMADA 2: AGENTES ESPECIALIZADOS │
|
|
25
|
+
│ │
|
|
26
|
+
│ CARGO (Híbrido): │
|
|
27
|
+
│ • C-LEVEL: CRO, CFO, CMO, COO │
|
|
28
|
+
│ • SALES: CLOSER, BDR, SDS, LNS, SALES-MANAGER, etc. │
|
|
29
|
+
│ Path: /agents/cargo/ │
|
|
30
|
+
│ │
|
|
31
|
+
│ PERSONS (Solo - só via /consult): │
|
|
32
|
+
│ Path: /agents/persons/ │
|
|
33
|
+
│ │
|
|
34
|
+
│ │
|
|
35
|
+
└─────────────────────────────────────────────────────────────────────────────────┘
|
|
36
|
+
│
|
|
37
|
+
│ (debate entre agentes)
|
|
38
|
+
▼
|
|
39
|
+
┌─────────────────────────────────────────────────────────────────────────────────┐
|
|
40
|
+
│ │
|
|
41
|
+
│ CAMADA 3: COUNCIL (Meta-avaliação) │
|
|
42
|
+
│ │
|
|
43
|
+
│ 1º CRÍTICO METODOLÓGICO → Avalia qualidade do processo │
|
|
44
|
+
│ 2º ADVOGADO DO DIABO → Ataca premissas e riscos │
|
|
45
|
+
│ 3º SINTETIZADOR → Integra em decisão final │
|
|
46
|
+
│ │
|
|
47
|
+
│ Path: /agents/council/ │
|
|
48
|
+
│ Protocol: /system/protocols/conclave/CONCLAVE-PROTOCOL.md │
|
|
49
|
+
│ │
|
|
50
|
+
└─────────────────────────────────────────────────────────────────────────────────┘
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## FLUXO DE DECISÃO DO MASTER-AGENT
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
ENTRADA
|
|
59
|
+
│
|
|
60
|
+
▼
|
|
61
|
+
┌─────────────────────────────────────────────────────────────────────────────────┐
|
|
62
|
+
│ CLASSIFICAÇÃO │
|
|
63
|
+
│ │
|
|
64
|
+
│ ┌───────────────────┬─────────────────────────────────────┬───────────────┐ │
|
|
65
|
+
│ │ TIPO │ EXEMPLO │ COUNCIL? │ │
|
|
66
|
+
│ ├───────────────────┼─────────────────────────────────────┼───────────────┤ │
|
|
67
|
+
│ │ A: /consult │ /consult cole "Como fazer pitch?" │ NÃO │ │
|
|
68
|
+
│ │ B: /board │ /board "Contratar SM agora?" │ SIM │ │
|
|
69
|
+
│ │ C: Simples │ "Qual benchmark de close rate?" │ NÃO │ │
|
|
70
|
+
│ │ D: Complexa │ "Como escalar de 1M para 5M?" │ SIM │ │
|
|
71
|
+
│ │ E: Operacional │ /process-video │ NÃO │ │
|
|
72
|
+
│ └───────────────────┴─────────────────────────────────────┴───────────────┘ │
|
|
73
|
+
│ │
|
|
74
|
+
└─────────────────────────────────────────────────────────────────────────────────┘
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## FLUXOS DETALHADOS
|
|
80
|
+
|
|
81
|
+
### TIPO A: /consult (Consulta Direta)
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
/consult {pessoa} "{pergunta}"
|
|
85
|
+
│
|
|
86
|
+
▼
|
|
87
|
+
Identificar AGENT-PERSON
|
|
88
|
+
│
|
|
89
|
+
▼
|
|
90
|
+
Carregar: AGENT → SOUL → DNA-CONFIG → MEMORY
|
|
91
|
+
│
|
|
92
|
+
▼
|
|
93
|
+
Responder na VOZ da pessoa
|
|
94
|
+
│
|
|
95
|
+
▼
|
|
96
|
+
OUTPUT DIRETO (sem Council)
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### TIPO B: /board (Conselho de Experts)
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
/board "{pergunta}"
|
|
103
|
+
│
|
|
104
|
+
▼
|
|
105
|
+
│
|
|
106
|
+
▼
|
|
107
|
+
Debate entre PERSONS
|
|
108
|
+
│
|
|
109
|
+
▼
|
|
110
|
+
COUNCIL avalia:
|
|
111
|
+
1. Crítico Metodológico
|
|
112
|
+
2. Advogado do Diabo
|
|
113
|
+
3. Sintetizador
|
|
114
|
+
│
|
|
115
|
+
▼
|
|
116
|
+
DECISÃO DO COUNCIL
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### TIPO C: Pergunta Simples
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
"{pergunta de domínio específico}"
|
|
123
|
+
│
|
|
124
|
+
▼
|
|
125
|
+
Identificar domínio → Selecionar 1 AGENT-CARGO
|
|
126
|
+
│
|
|
127
|
+
▼
|
|
128
|
+
Carregar: AGENT → SOUL → DNA-CONFIG → MEMORY
|
|
129
|
+
│
|
|
130
|
+
▼
|
|
131
|
+
│
|
|
132
|
+
▼
|
|
133
|
+
OUTPUT DIRETO (sem Council)
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### TIPO D: Pergunta Complexa
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
"{pergunta multi-domínio ou decisão significativa}"
|
|
140
|
+
│
|
|
141
|
+
▼
|
|
142
|
+
Identificar domínios → Selecionar 2-4 AGENT-CARGO
|
|
143
|
+
│
|
|
144
|
+
▼
|
|
145
|
+
DEBATE entre agentes (posições, evidências, recomendações)
|
|
146
|
+
│
|
|
147
|
+
▼
|
|
148
|
+
COUNCIL avalia:
|
|
149
|
+
1. Crítico Metodológico
|
|
150
|
+
2. Advogado do Diabo
|
|
151
|
+
3. Sintetizador
|
|
152
|
+
│
|
|
153
|
+
▼
|
|
154
|
+
DECISÃO DO COUNCIL
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## REGRA FUNDAMENTAL: CARGO vs PERSON
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
┌─────────────────────────────────────────────────────────────────────────────────┐
|
|
163
|
+
│ │
|
|
164
|
+
│ │
|
|
165
|
+
│ Pergunta: "Como fechar venda high-ticket?" │
|
|
166
|
+
│ → CLOSER responde (tem DNA Cole 95% + Hormozi 85%) │
|
|
167
|
+
│ → NÃO roteia para AGENT-PERSON │
|
|
168
|
+
│ │
|
|
169
|
+
│ AGENT-PERSON só via: │
|
|
170
|
+
│ • /consult cole "pergunta" │
|
|
171
|
+
│ • /consult hormozi "pergunta" │
|
|
172
|
+
│ • /board "pergunta" │
|
|
173
|
+
│ • Menção explícita "como Cole faria" │
|
|
174
|
+
│ │
|
|
175
|
+
└─────────────────────────────────────────────────────────────────────────────────┘
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## QUANDO ACIONAR COUNCIL
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
COUNCIL É ACIONADO SE:
|
|
184
|
+
✅ 2+ agentes CARGO participam do debate
|
|
185
|
+
✅ Há divergência significativa
|
|
186
|
+
✅ Decisão tem impacto relevante
|
|
187
|
+
✅ Usuário pede /board
|
|
188
|
+
|
|
189
|
+
COUNCIL NÃO É ACIONADO SE:
|
|
190
|
+
❌ Pergunta simples (1 agente)
|
|
191
|
+
❌ /consult direto a PERSON
|
|
192
|
+
❌ Comando operacional
|
|
193
|
+
❌ Consenso total entre agentes
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## PROTOCOLOS RELACIONADOS
|
|
199
|
+
|
|
200
|
+
| Protocolo | Path |
|
|
201
|
+
|-----------|------|
|
|
202
|
+
| CONSTITUIÇÃO BASE | `/system/protocols/CONSTITUICAO-BASE.md` |
|
|
203
|
+
| AGENT-COGNITION | `/agents/protocols/AGENT-COGNITION-PROTOCOL.md` |
|
|
204
|
+
| CONCLAVE-PROTOCOL | `/system/protocols/conclave/CONCLAVE-PROTOCOL.md` |
|
|
205
|
+
| DEBATE-PROTOCOL | `/system/protocols/conclave/DEBATE-PROTOCOL.md` |
|
|
206
|
+
| EPISTEMIC | `/agents/protocols/EPISTEMIC-PROTOCOL.md` |
|
|
207
|
+
| MEMORY | `/agents/protocols/MEMORY-PROTOCOL.md` |
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## AGENT-INDEX
|
|
212
|
+
|
|
213
|
+
Path: `/agents/AGENT-INDEX.yaml`
|
|
214
|
+
|
|
215
|
+
Contém índice completo de todos os agentes para roteamento rápido.
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
# CHUNKING PROTOCOL (Prompt 1.1)
|
|
2
|
+
|
|
3
|
+
> **Versão:** 1.0.0
|
|
4
|
+
> **Pipeline:** Jarvis → Etapa 1.1
|
|
5
|
+
> **Output:** `/processing/chunks/CHUNKS-{SOURCE}-{DATE}.json`
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## PROPÓSITO
|
|
10
|
+
|
|
11
|
+
Transformar conteúdo bruto em chunks semânticos preservando:
|
|
12
|
+
- Contexto suficiente para compreensão isolada
|
|
13
|
+
- Metadados de rastreabilidade
|
|
14
|
+
- Estrutura para processamento downstream
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## INPUT
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
{
|
|
22
|
+
"source": {
|
|
23
|
+
"source_id": "unique_id",
|
|
24
|
+
"source_type": "call|video|doc|meeting",
|
|
25
|
+
"source_title": "Título do conteúdo",
|
|
26
|
+
"source_datetime": "YYYY-MM-DD HH:MM",
|
|
27
|
+
"source_duration_minutes": N,
|
|
28
|
+
"corpus": "empresa|pessoal|cursos",
|
|
29
|
+
"participants": ["Nome1", "Nome2"]
|
|
30
|
+
},
|
|
31
|
+
"raw_content": "Conteúdo completo da transcrição ou documento..."
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## TAREFA
|
|
38
|
+
|
|
39
|
+
### 1. Identificação de Quebras Naturais
|
|
40
|
+
|
|
41
|
+
Identificar pontos de quebra onde:
|
|
42
|
+
- Muda o tópico principal sendo discutido
|
|
43
|
+
- Muda o speaker (em transcrições)
|
|
44
|
+
- Há conclusão de um argumento/ideia
|
|
45
|
+
- Inicia nova seção/capítulo (em docs)
|
|
46
|
+
|
|
47
|
+
### 2. Criação de Chunks
|
|
48
|
+
|
|
49
|
+
Para cada segmento identificado, criar chunk com:
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"id_chunk": "chunk_{source_id}_{sequential_number}",
|
|
54
|
+
"content": "Texto do segmento...",
|
|
55
|
+
"timestamp_start": "HH:MM:SS",
|
|
56
|
+
"timestamp_end": "HH:MM:SS",
|
|
57
|
+
"speaker": "Nome ou null",
|
|
58
|
+
"topic_hint": "Descrição curta do tópico (5-10 palavras)",
|
|
59
|
+
"mentions": {
|
|
60
|
+
"persons": ["Nome1", "Nome2"],
|
|
61
|
+
"companies": ["Empresa1"],
|
|
62
|
+
"themes": ["tema1", "tema2"]
|
|
63
|
+
},
|
|
64
|
+
"metadata": {
|
|
65
|
+
"word_count": N,
|
|
66
|
+
"has_numbers": true|false,
|
|
67
|
+
"has_framework": true|false,
|
|
68
|
+
"sentiment": "positive|negative|neutral",
|
|
69
|
+
"actionability": "high|medium|low"
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 3. Regras de Tamanho
|
|
75
|
+
|
|
76
|
+
| Tipo de Conteúdo | Tamanho Ideal | Máximo |
|
|
77
|
+
|------------------|---------------|--------|
|
|
78
|
+
| Transcrição call | 200-400 palavras | 600 palavras |
|
|
79
|
+
| Vídeo longo | 300-500 palavras | 800 palavras |
|
|
80
|
+
| Documento | 400-600 palavras | 1000 palavras |
|
|
81
|
+
|
|
82
|
+
### 4. Regras de Contexto
|
|
83
|
+
|
|
84
|
+
- **Overlap:** Se necessário, incluir 1-2 frases do chunk anterior para contexto
|
|
85
|
+
- **Referências:** Se chunk menciona "isso" ou "aquilo", incluir contexto suficiente
|
|
86
|
+
- **Completude:** Chunk deve ser compreensível isoladamente
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## OUTPUT
|
|
91
|
+
|
|
92
|
+
```json
|
|
93
|
+
{
|
|
94
|
+
"chunking_result": {
|
|
95
|
+
"source": { /* cópia do input source */ },
|
|
96
|
+
"processing_datetime": "YYYY-MM-DD HH:MM:SS",
|
|
97
|
+
"chunks_total": N,
|
|
98
|
+
"chunks": [
|
|
99
|
+
{
|
|
100
|
+
"id_chunk": "chunk_source123_001",
|
|
101
|
+
"content": "...",
|
|
102
|
+
"timestamp_start": "00:01:30",
|
|
103
|
+
"timestamp_end": "00:03:45",
|
|
104
|
+
"speaker": "Alex Hormozi",
|
|
105
|
+
"topic_hint": "Estrutura de comissionamento para closers",
|
|
106
|
+
"mentions": {
|
|
107
|
+
"persons": ["Alex Hormozi"],
|
|
108
|
+
"companies": ["Alex Hormozi"],
|
|
109
|
+
"themes": ["comissionamento", "closer", "high-ticket"]
|
|
110
|
+
},
|
|
111
|
+
"metadata": {
|
|
112
|
+
"word_count": 287,
|
|
113
|
+
"has_numbers": true,
|
|
114
|
+
"has_framework": false,
|
|
115
|
+
"sentiment": "neutral",
|
|
116
|
+
"actionability": "high"
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
/* ... mais chunks ... */
|
|
120
|
+
],
|
|
121
|
+
"summary": {
|
|
122
|
+
"total_words": N,
|
|
123
|
+
"avg_chunk_size": N,
|
|
124
|
+
"unique_speakers": ["Nome1", "Nome2"],
|
|
125
|
+
"main_topics": ["topic1", "topic2", "topic3"]
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## REGRAS DE QUALIDADE
|
|
134
|
+
|
|
135
|
+
### FAZER:
|
|
136
|
+
- Preservar citações exatas quando relevantes
|
|
137
|
+
- Manter números e métricas precisos
|
|
138
|
+
- Incluir contexto suficiente para compreensão
|
|
139
|
+
- Identificar todos os speakers mencionados
|
|
140
|
+
- Extrair temas mesmo que implícitos
|
|
141
|
+
|
|
142
|
+
### NÃO FAZER:
|
|
143
|
+
- Quebrar no meio de uma ideia/argumento
|
|
144
|
+
- Criar chunks muito pequenos (<100 palavras) exceto se for citação importante
|
|
145
|
+
- Remover contexto que deixaria chunk ambíguo
|
|
146
|
+
- Inferir informações não presentes no texto
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## EXEMPLO DE CHUNKING
|
|
151
|
+
|
|
152
|
+
### Input (trecho):
|
|
153
|
+
```
|
|
154
|
+
[00:12:30] Alex Hormozi: "A estrutura de comissão que funciona é simples:
|
|
155
|
+
25-30% do valor do deal para o closer. Não complique. Se você está pagando
|
|
156
|
+
menos que isso em high-ticket, seus melhores closers vão embora.
|
|
157
|
+
|
|
158
|
+
[00:13:15] O que eu vejo muito é empresa querendo pagar 10-15% e depois
|
|
159
|
+
reclamando que não consegue reter talento. É óbvio. Você está competindo
|
|
160
|
+
com quem paga o dobro.
|
|
161
|
+
|
|
162
|
+
[00:14:00] Entrevistador: E como você estrutura o ramp-up de novos closers?
|
|
163
|
+
|
|
164
|
+
[00:14:10] Alex Hormozi: Primeiro, dou 90 dias de garantia. O cara recebe
|
|
165
|
+
um salário base garantido enquanto está aprendendo o processo..."
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Output (chunk):
|
|
169
|
+
```json
|
|
170
|
+
{
|
|
171
|
+
"id_chunk": "chunk_hormozi_podcast_001",
|
|
172
|
+
"content": "Alex Hormozi: \"A estrutura de comissão que funciona é simples: 25-30% do valor do deal para o closer. Não complique. Se você está pagando menos que isso em high-ticket, seus melhores closers vão embora. O que eu vejo muito é empresa querendo pagar 10-15% e depois reclamando que não consegue reter talento. É óbvio. Você está competindo com quem paga o dobro.\"",
|
|
173
|
+
"timestamp_start": "00:12:30",
|
|
174
|
+
"timestamp_end": "00:13:45",
|
|
175
|
+
"speaker": "Alex Hormozi",
|
|
176
|
+
"topic_hint": "Estrutura de comissão para closers high-ticket",
|
|
177
|
+
"mentions": {
|
|
178
|
+
"persons": ["Alex Hormozi"],
|
|
179
|
+
"companies": [],
|
|
180
|
+
"themes": ["comissionamento", "closer", "high-ticket", "retenção"]
|
|
181
|
+
},
|
|
182
|
+
"metadata": {
|
|
183
|
+
"word_count": 89,
|
|
184
|
+
"has_numbers": true,
|
|
185
|
+
"has_framework": false,
|
|
186
|
+
"sentiment": "neutral",
|
|
187
|
+
"actionability": "high"
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## SALVAMENTO
|
|
195
|
+
|
|
196
|
+
Salvar output em:
|
|
197
|
+
```
|
|
198
|
+
/processing/chunks/CHUNKS-{SOURCE_ID}-{YYYYMMDD}.json
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Exemplo: `CHUNKS-HORMOZI-PODCAST-234-20251215.json`
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## PRÓXIMA ETAPA
|
|
206
|
+
|
|
207
|
+
Output alimenta **Prompt 1.2: Entity Resolution** para canonicalização de entidades.
|