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,191 @@
|
|
|
1
|
+
# PROMPT 2.1 — Contextual Insight Extraction
|
|
2
|
+
|
|
3
|
+
> **Versão:** 2.1.1
|
|
4
|
+
> **Pipeline:** Jarvis → Etapa 2.1
|
|
5
|
+
> **Output:** `/processing/insights/INSIGHTS-STATE.json`
|
|
6
|
+
> **Incremento:** Ver `PROMPT-2.1-DNA-TAGS-INCREMENT.md` para tags de classificacao DNA
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## ⛔ CHECKPOINT OBRIGATÓRIO (executar ANTES de processar)
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
VALIDAR ANTES DE EXECUTAR:
|
|
14
|
+
[ ] CP-2.1.A: CHUNKS-STATE.json existe em /processing/chunks/
|
|
15
|
+
[ ] CP-2.1.B: CANONICAL-MAP.json existe em /processing/canonical/
|
|
16
|
+
[ ] CP-2.1.C: canonical_state tem entidades mapeadas
|
|
17
|
+
|
|
18
|
+
Se CP-2.1.A falhar: ⛔ PARAR - "Execute Etapa 1.1 primeiro"
|
|
19
|
+
Se CP-2.1.B falhar: ⛔ PARAR - "Execute Etapa 1.2 primeiro"
|
|
20
|
+
Se CP-2.1.C falhar: ⚠️ WARN - "Sem entidades canônicas, usar nomes raw"
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Ver: `/system/protocols/SYSTEM/CHECKPOINT-ENFORCEMENT.md`
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## PROMPT OPERACIONAL
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
Você é um módulo de Contextual Insight Extraction incremental, voltado a transformar chunks em conhecimento acionável, mantendo rastreabilidade para evidências.
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## INPUTS (sempre 2 após a primeira rodada)
|
|
36
|
+
|
|
37
|
+
### INPUT A) Estado anterior de insights
|
|
38
|
+
|
|
39
|
+
Arquivo: `/processing/insights/INSIGHTS-STATE.json`
|
|
40
|
+
|
|
41
|
+
```json
|
|
42
|
+
{
|
|
43
|
+
"insights_state": {
|
|
44
|
+
"persons": {},
|
|
45
|
+
"themes": {},
|
|
46
|
+
"version": "v1",
|
|
47
|
+
"change_log": []
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### INPUT B) Dados canonicalizados (output do Prompt 1.2)
|
|
53
|
+
|
|
54
|
+
```json
|
|
55
|
+
{
|
|
56
|
+
"chunks": [
|
|
57
|
+
{
|
|
58
|
+
"id_chunk": "chunk_N",
|
|
59
|
+
"texto": "...",
|
|
60
|
+
"pessoas": ["..."],
|
|
61
|
+
"temas": ["..."],
|
|
62
|
+
"meta": { "scope": "...", "corpus": "...", "source_type": "...", "source_id": "..." }
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
"canonical_state": { "...": "..." }
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## TAREFA
|
|
72
|
+
|
|
73
|
+
Para cada chunk:
|
|
74
|
+
|
|
75
|
+
### 1. Leia o texto e extraia insights
|
|
76
|
+
- Interpretação útil, não só resumo
|
|
77
|
+
- Conhecimento acionável
|
|
78
|
+
|
|
79
|
+
### 2. Crie entradas para:
|
|
80
|
+
- `persons[Pessoa]`
|
|
81
|
+
- `themes[Tema]`
|
|
82
|
+
|
|
83
|
+
### 3. Cada insight deve conter:
|
|
84
|
+
|
|
85
|
+
| Campo | Descrição |
|
|
86
|
+
|-------|-----------|
|
|
87
|
+
| `id` | Identificador único do insight (ex: "HP001", "INS-AH-042") |
|
|
88
|
+
| `insight` | Frase clara e acionável |
|
|
89
|
+
| `quote` | Citação exata do texto original |
|
|
90
|
+
| `chunks` | Array de chunk_ids de evidência (rastreabilidade para múltiplos chunks) |
|
|
91
|
+
| `tag` | Classificacao DNA: [FILOSOFIA], [MODELO-MENTAL], [HEURISTICA], [FRAMEWORK], [METODOLOGIA] |
|
|
92
|
+
| `priority` | HIGH / MEDIUM / LOW (regras abaixo) |
|
|
93
|
+
| `scope` | company / personal / course (herdado) |
|
|
94
|
+
| `corpus` | Nome do corpus (herdado) |
|
|
95
|
+
| `source` | type/id/title/path/datetime |
|
|
96
|
+
| `confidence` | HIGH / MEDIUM / LOW |
|
|
97
|
+
| `status` | new / updated / contradiction / reinforced |
|
|
98
|
+
|
|
99
|
+
> **NOTA:** O campo `tag` facilita a classificacao posterior em camadas DNA.
|
|
100
|
+
> Ver `PROMPT-2.1-DNA-TAGS-INCREMENT.md` para regras detalhadas.
|
|
101
|
+
|
|
102
|
+
### 4. Regras de Prioridade
|
|
103
|
+
|
|
104
|
+
| Priority | Critério |
|
|
105
|
+
|----------|----------|
|
|
106
|
+
| **HIGH** | Mexe em dinheiro, estrutura, risco, decisão ou operação crítica |
|
|
107
|
+
| **MEDIUM** | Melhora processo/clareza, mas não urgente |
|
|
108
|
+
| **LOW** | Contexto periférico |
|
|
109
|
+
|
|
110
|
+
### 5. Incrementalidade
|
|
111
|
+
|
|
112
|
+
- Atualize `insights_state` anterior **sem reescrever tudo do zero**.
|
|
113
|
+
- Se um insight novo contradiz um antigo, marque:
|
|
114
|
+
- `"status": "updated|contradiction|reinforced"`
|
|
115
|
+
- Registre em `change_log`
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## OUTPUT
|
|
120
|
+
|
|
121
|
+
```json
|
|
122
|
+
{
|
|
123
|
+
"insights_state": {
|
|
124
|
+
"persons": {
|
|
125
|
+
"Nome Canônico": [
|
|
126
|
+
{
|
|
127
|
+
"id": "HP001",
|
|
128
|
+
"insight": "...",
|
|
129
|
+
"quote": "Citação exata do texto original",
|
|
130
|
+
"chunks": ["chunk_N", "chunk_M"],
|
|
131
|
+
"tag": "[HEURISTICA]|[FILOSOFIA]|[MODELO-MENTAL]|[FRAMEWORK]|[METODOLOGIA]",
|
|
132
|
+
"priority": "HIGH|MEDIUM|LOW",
|
|
133
|
+
"scope": "company|personal|course",
|
|
134
|
+
"corpus": "...",
|
|
135
|
+
"source": {
|
|
136
|
+
"source_type": "...",
|
|
137
|
+
"source_id": "...",
|
|
138
|
+
"source_title": "...",
|
|
139
|
+
"source_path": "...",
|
|
140
|
+
"source_datetime": "..."
|
|
141
|
+
},
|
|
142
|
+
"confidence": "HIGH|MEDIUM|LOW",
|
|
143
|
+
"status": "new|updated|contradiction|reinforced"
|
|
144
|
+
}
|
|
145
|
+
]
|
|
146
|
+
},
|
|
147
|
+
"themes": { "...": [ /* mesmo formato */ ] },
|
|
148
|
+
"version": "vN",
|
|
149
|
+
"change_log": [
|
|
150
|
+
{
|
|
151
|
+
"entity": "person|theme",
|
|
152
|
+
"key": "Nome/Tema",
|
|
153
|
+
"chunks": ["chunk_N"],
|
|
154
|
+
"change": "new|update|contradiction|reinforced",
|
|
155
|
+
"note": "explicação curta"
|
|
156
|
+
}
|
|
157
|
+
]
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## SALVAMENTO
|
|
165
|
+
|
|
166
|
+
Salvar estado atualizado em: `/processing/insights/INSIGHTS-STATE.json`
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## ✓ CHECKPOINT APÓS EXECUÇÃO (OBRIGATÓRIO)
|
|
171
|
+
|
|
172
|
+
```
|
|
173
|
+
VALIDAR APÓS EXECUTAR:
|
|
174
|
+
[ ] CP-POST-4.A: insights_state.persons[$SOURCE_PERSON] existe
|
|
175
|
+
[ ] CP-POST-4.B: count(new_insights) > 0
|
|
176
|
+
[ ] CP-POST-4.C: INSIGHTS-STATE.json foi salvo com sucesso
|
|
177
|
+
[ ] CP-POST-4.D: Cada insight tem chunks[] com pelo menos 1 elemento
|
|
178
|
+
|
|
179
|
+
Se CP-POST-4.A falhar: ⛔ EXIT("Phase 4 não produziu insights para pessoa principal")
|
|
180
|
+
Se CP-POST-4.B falhar: ⛔ EXIT("Phase 4 não produziu insights")
|
|
181
|
+
Se CP-POST-4.C falhar: ⛔ EXIT("Falha ao salvar INSIGHTS-STATE.json")
|
|
182
|
+
Se CP-POST-4.D falhar: ⛔ EXIT("Insights sem rastreabilidade - chunks[] vazio")
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
**BLOQUEANTE:** Não prosseguir para Etapa 3.1 se qualquer checkpoint falhar.
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## PRÓXIMA ETAPA
|
|
190
|
+
|
|
191
|
+
Output alimenta **Prompt 3.1: Strategic Narrative Synthesis**.
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
# PROMPT 3.1 — Strategic Narrative Synthesis
|
|
2
|
+
|
|
3
|
+
> **Versão:** 2.1.0
|
|
4
|
+
> **Pipeline:** Jarvis → Etapa 3.1
|
|
5
|
+
> **Output:** `/processing/narratives/NARRATIVES-STATE.json`
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## ⛔ CHECKPOINT OBRIGATÓRIO (executar ANTES de processar)
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
VALIDAR ANTES DE EXECUTAR:
|
|
13
|
+
[ ] CP-3.1.A: INSIGHTS-STATE.json existe em /processing/insights/
|
|
14
|
+
[ ] CP-3.1.B: insights_state.persons não vazio
|
|
15
|
+
[ ] CP-3.1.C: insights_state.themes não vazio
|
|
16
|
+
|
|
17
|
+
Se CP-3.1.A falhar: ⛔ PARAR - "Execute Etapa 2.1 primeiro"
|
|
18
|
+
Se CP-3.1.B falhar: ⚠️ WARN - "Sem insights de pessoas"
|
|
19
|
+
Se CP-3.1.C falhar: ⚠️ WARN - "Sem insights de temas"
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Ver: `/system/protocols/SYSTEM/CHECKPOINT-ENFORCEMENT.md`
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## PROMPT OPERACIONAL
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
Você é um módulo de Strategic Narrative Synthesis incremental: transforma insights em narrativas vivas, coerentes e atualizáveis, por pessoa e por tema, preservando "estado do mundo + mudança".
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## INPUTS (sempre 2 após a primeira rodada)
|
|
35
|
+
|
|
36
|
+
### INPUT A) Estado anterior de narrativas
|
|
37
|
+
|
|
38
|
+
Arquivo: `/processing/narratives/NARRATIVES-STATE.json`
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"narratives_state": {
|
|
43
|
+
"persons": {},
|
|
44
|
+
"themes": {},
|
|
45
|
+
"version": "v1"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### INPUT B) Insights novos (output do Prompt 2.1)
|
|
51
|
+
|
|
52
|
+
```json
|
|
53
|
+
{
|
|
54
|
+
"insights_state": {
|
|
55
|
+
"persons": {
|
|
56
|
+
"Nome Canônico": [
|
|
57
|
+
{
|
|
58
|
+
"id": "HP001",
|
|
59
|
+
"insight": "...",
|
|
60
|
+
"quote": "...",
|
|
61
|
+
"chunks": ["chunk_N", "chunk_M"],
|
|
62
|
+
"tag": "[HEURISTICA]",
|
|
63
|
+
"priority": "HIGH",
|
|
64
|
+
"confidence": "HIGH",
|
|
65
|
+
"status": "new"
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
"themes": { "...": [ /* mesmo formato */ ] },
|
|
70
|
+
"version": "vN",
|
|
71
|
+
"change_log": [ ... ]
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### INPUT C) Chunks para citações exatas (opcional, para enriquecimento)
|
|
77
|
+
|
|
78
|
+
Arquivo: `/processing/chunks/CHUNKS-STATE.json`
|
|
79
|
+
|
|
80
|
+
Usado quando a narrativa precisa incluir citações exatas.
|
|
81
|
+
Navegar: insight.chunks[] → CHUNKS-STATE[chunk_id].texto
|
|
82
|
+
|
|
83
|
+
```json
|
|
84
|
+
{
|
|
85
|
+
"chunks": [
|
|
86
|
+
{
|
|
87
|
+
"id_chunk": "chunk_40",
|
|
88
|
+
"texto": "Open Wallet Discovery is when you ask the prospect directly...",
|
|
89
|
+
"pessoas": ["Cole Gordon"],
|
|
90
|
+
"temas": ["closing", "discovery"],
|
|
91
|
+
"meta": { ... }
|
|
92
|
+
}
|
|
93
|
+
]
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## TAREFA
|
|
100
|
+
|
|
101
|
+
### 0. REGRAS DE MERGE INCREMENTAL (OBRIGATÓRIO)
|
|
102
|
+
|
|
103
|
+
Antes de gerar qualquer narrativa, aplicar estas regras:
|
|
104
|
+
|
|
105
|
+
#### 0.1 - Concatenação de Narrativas
|
|
106
|
+
```
|
|
107
|
+
IF pessoa/tema JÁ EXISTE em narratives_state:
|
|
108
|
+
|
|
109
|
+
EXISTING_NARRATIVE = narratives_state.persons[nome].narrative
|
|
110
|
+
NEW_PARAGRAPH = gerar_novo_paragrafo(insights_novos)
|
|
111
|
+
|
|
112
|
+
MERGED_NARRATIVE = EXISTING_NARRATIVE + "\n\n--- Atualização " + TODAY + " via " + SOURCE_ID + " ---\n\n" + NEW_PARAGRAPH
|
|
113
|
+
|
|
114
|
+
ELSE:
|
|
115
|
+
MERGED_NARRATIVE = gerar_narrativa_completa(insights_novos)
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
#### 0.2 - APPEND de insights_included[]
|
|
119
|
+
```
|
|
120
|
+
IF pessoa/tema JÁ EXISTE:
|
|
121
|
+
|
|
122
|
+
EXISTING_CHUNKS = narratives_state.persons[nome].insights_included
|
|
123
|
+
|
|
124
|
+
# Flatten: cada insight tem chunks[], precisamos extrair todos
|
|
125
|
+
NEW_CHUNKS = []
|
|
126
|
+
FOR each insight in insights_novos:
|
|
127
|
+
NEW_CHUNKS.extend(insight.chunks) # insight.chunks é array
|
|
128
|
+
|
|
129
|
+
MERGED_CHUNKS = [...EXISTING_CHUNKS, ...NEW_CHUNKS]
|
|
130
|
+
MERGED_CHUNKS = unique(MERGED_CHUNKS) # Remover duplicatas
|
|
131
|
+
|
|
132
|
+
ELSE:
|
|
133
|
+
NEW_CHUNKS = []
|
|
134
|
+
FOR each insight in insights_novos:
|
|
135
|
+
NEW_CHUNKS.extend(insight.chunks)
|
|
136
|
+
MERGED_CHUNKS = unique(NEW_CHUNKS)
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
#### 0.3 - APPEND de tensões e open_loops
|
|
140
|
+
```
|
|
141
|
+
tensions = [...existing_tensions, ...new_tensions]
|
|
142
|
+
open_loops = [...existing_open_loops, ...new_open_loops]
|
|
143
|
+
|
|
144
|
+
# Fechar open_loops resolvidos pelos novos insights
|
|
145
|
+
FOR each existing_open_loop:
|
|
146
|
+
IF new_insights resolve this question:
|
|
147
|
+
-> SET status = "RESOLVED"
|
|
148
|
+
-> ADD resolution_source = chunk_id
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
#### 0.4 - next_questions é SUBSTITUÍDO (exceção)
|
|
152
|
+
```
|
|
153
|
+
# Esta é a ÚNICA seção que pode ser reescrita
|
|
154
|
+
next_questions = gerar_novas_perguntas(gaps_atuais)
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
### 1. Para cada pessoa/tema, gere ou atualize uma narrativa:
|
|
160
|
+
|
|
161
|
+
- Deve parecer **"memória executiva"**: clara, estratégica, conectando causa → efeito.
|
|
162
|
+
- Deve manter **continuidade**: não recontar tudo, mas atualizar estado.
|
|
163
|
+
|
|
164
|
+
### 2. Regras críticas:
|
|
165
|
+
|
|
166
|
+
- **Não misturar** scope/corpus.
|
|
167
|
+
- Narrativa deve citar apenas conclusões **suportadas por id_chunk**.
|
|
168
|
+
- Se houver contradição, registre como **"tensão"** e não force verdade.
|
|
169
|
+
|
|
170
|
+
### 3. Produza para cada narrativa:
|
|
171
|
+
|
|
172
|
+
| Campo | Descrição |
|
|
173
|
+
|-------|-----------|
|
|
174
|
+
| `narrative` | Texto da narrativa |
|
|
175
|
+
| `last_updated` | Timestamp ISO |
|
|
176
|
+
| `scope` | company / personal / course |
|
|
177
|
+
| `corpus` | Nome do corpus |
|
|
178
|
+
| `insights_included` | Lista de id_chunk usados |
|
|
179
|
+
| `open_loops` | Pendências/decisões não resolvidas |
|
|
180
|
+
| `tensions` | Contradições identificadas |
|
|
181
|
+
| `next_questions` | Perguntas recomendadas para destravar |
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## OUTPUT (final do pipeline)
|
|
186
|
+
|
|
187
|
+
```json
|
|
188
|
+
{
|
|
189
|
+
"narratives_state": {
|
|
190
|
+
"persons": {
|
|
191
|
+
"Nome Canônico": {
|
|
192
|
+
"narrative": "...",
|
|
193
|
+
"last_updated": "YYYY-MM-DDTHH:MM:SSZ",
|
|
194
|
+
"scope": "company|personal|course",
|
|
195
|
+
"corpus": "...",
|
|
196
|
+
"insights_included": ["chunk_1", "chunk_9"],
|
|
197
|
+
"open_loops": [
|
|
198
|
+
{ "question": "...", "why_it_matters": "...", "owner_suspected": "..." }
|
|
199
|
+
],
|
|
200
|
+
"tensions": [
|
|
201
|
+
{ "point_a": "...", "point_b": "...", "evidence": ["chunk_X","chunk_Y"] }
|
|
202
|
+
],
|
|
203
|
+
"next_questions": ["...", "..."]
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
"themes": {
|
|
207
|
+
"Tema Canônico": { /* mesmo formato */ }
|
|
208
|
+
},
|
|
209
|
+
"version": "vN"
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## EXEMPLO DE NARRATIVA
|
|
217
|
+
|
|
218
|
+
### Input (insights do Cole Gordon):
|
|
219
|
+
```json
|
|
220
|
+
{
|
|
221
|
+
"persons": {
|
|
222
|
+
"Cole Gordon": [
|
|
223
|
+
{ "id": "INS-CG-012", "insight": "Defende processo estruturado no final da call", "chunks": ["chunk_12"], "tag": "[METODOLOGIA]", "priority": "HIGH" },
|
|
224
|
+
{ "id": "INS-CG-015", "insight": "Usa linguagem 100% definitiva para forçar honestidade", "chunks": ["chunk_15"], "tag": "[HEURISTICA]", "priority": "HIGH" },
|
|
225
|
+
{ "id": "INS-CG-018", "insight": "Categoriza objeções em Uncertainty, Support, Financial", "chunks": ["chunk_18"], "tag": "[FRAMEWORK]", "priority": "HIGH" }
|
|
226
|
+
]
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### Output (narrativa):
|
|
232
|
+
```json
|
|
233
|
+
{
|
|
234
|
+
"persons": {
|
|
235
|
+
"Cole Gordon": {
|
|
236
|
+
"narrative": "Cole Gordon posiciona-se como defensor de PROCESSO sobre técnica no fechamento de vendas. Sua principal tese é que a maioria dos closers falha no final da call por falta de estrutura, não por falta de habilidade. Propõe o framework COMMITTING PHASE (Questions → Small Temp → What's Next) seguido de TIE DOWNS com linguagem definitiva ('100%') para isolar objeções reais. Diferencia objeções de INCERTEZA (verdadeiras) de LOGÍSTICA (Support/Financial), argumentando que só se deve tratar logística após resolver uncertainty.",
|
|
237
|
+
"last_updated": "2025-12-15T15:30:00Z",
|
|
238
|
+
"scope": "course",
|
|
239
|
+
"corpus": "cursos",
|
|
240
|
+
"insights_included": ["chunk_12", "chunk_15", "chunk_18"],
|
|
241
|
+
"open_loops": [
|
|
242
|
+
{ "question": "Como funciona o Open Wallet Discovery?", "why_it_matters": "Mencionado mas não detalhado", "owner_suspected": "Cole Gordon" }
|
|
243
|
+
],
|
|
244
|
+
"tensions": [],
|
|
245
|
+
"next_questions": ["Buscar mais fontes de Cole sobre financial logistics"]
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### Exemplo de MERGE (segunda rodada):
|
|
252
|
+
|
|
253
|
+
#### Estado ANTES (NARRATIVES-STATE.json):
|
|
254
|
+
```json
|
|
255
|
+
{
|
|
256
|
+
"persons": {
|
|
257
|
+
"Cole Gordon": {
|
|
258
|
+
"narrative": "Cole Gordon posiciona-se como defensor de PROCESSO sobre técnica...",
|
|
259
|
+
"insights_included": ["chunk_12", "chunk_15", "chunk_18"],
|
|
260
|
+
"tensions": [],
|
|
261
|
+
"open_loops": [
|
|
262
|
+
{ "question": "Como funciona o Open Wallet Discovery?", "status": "ABERTO" }
|
|
263
|
+
]
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
#### Novos insights (Input B):
|
|
270
|
+
```json
|
|
271
|
+
{
|
|
272
|
+
"persons": {
|
|
273
|
+
"Cole Gordon": [
|
|
274
|
+
{
|
|
275
|
+
"id": "INS-CG-040",
|
|
276
|
+
"insight": "Open Wallet Discovery: perguntar 'quanto você pagaria para resolver isso?'",
|
|
277
|
+
"chunks": ["chunk_40"],
|
|
278
|
+
"tag": "[METODOLOGIA]",
|
|
279
|
+
"priority": "HIGH"
|
|
280
|
+
}
|
|
281
|
+
]
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
#### Estado DEPOIS (MERGE aplicado):
|
|
287
|
+
```json
|
|
288
|
+
{
|
|
289
|
+
"persons": {
|
|
290
|
+
"Cole Gordon": {
|
|
291
|
+
"narrative": "Cole Gordon posiciona-se como defensor de PROCESSO sobre técnica...\n\n--- Atualização 2024-12-16 via CG004 ---\n\nNova revelação sobre Open Wallet Discovery: técnica de perguntar diretamente ao prospect quanto pagaria para resolver o problema, validando budget antes de apresentar preço.",
|
|
292
|
+
"insights_included": ["chunk_12", "chunk_15", "chunk_18", "chunk_40"],
|
|
293
|
+
"tensions": [],
|
|
294
|
+
"open_loops": [
|
|
295
|
+
{ "question": "Como funciona o Open Wallet Discovery?", "status": "RESOLVED", "resolution_source": "chunk_40" }
|
|
296
|
+
]
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
**Note:** `insights_included` fez APPEND (não substituiu), narrativa CONCATENOU, open_loop foi RESOLVIDO.
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
## SALVAMENTO
|
|
307
|
+
|
|
308
|
+
Salvar estado atualizado em: `/processing/narratives/NARRATIVES-STATE.json`
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
## ✓ CHECKPOINT APÓS EXECUÇÃO (OBRIGATÓRIO)
|
|
313
|
+
|
|
314
|
+
```
|
|
315
|
+
VALIDAR APÓS EXECUTAR:
|
|
316
|
+
[ ] CP-POST-5.A: narratives_state.persons[$SOURCE_PERSON].narrative existe
|
|
317
|
+
[ ] CP-POST-5.B: narrative.length > 100 caracteres
|
|
318
|
+
[ ] CP-POST-5.C: NARRATIVES-STATE.json foi salvo com sucesso
|
|
319
|
+
|
|
320
|
+
Se CP-POST-5.A falhar: ⛔ EXIT("Phase 5 não produziu narrativa para pessoa principal")
|
|
321
|
+
Se CP-POST-5.B falhar: ⛔ EXIT("Phase 5 produziu narrativa muito curta")
|
|
322
|
+
Se CP-POST-5.C falhar: ⛔ EXIT("Falha ao salvar NARRATIVES-STATE.json")
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
**BLOQUEANTE:** Não prosseguir para Etapa 4.0 se qualquer checkpoint falhar.
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
## PRÓXIMA ETAPA
|
|
330
|
+
|
|
331
|
+
Output alimenta **Prompt 4.0: Dossier Compilation** (transformar JSON em Markdown acionável).
|