mega-brain-ai 1.3.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 (510) hide show
  1. package/.antigravity/README.md +46 -0
  2. package/.antigravity/rules/.gitkeep +0 -0
  3. package/.antigravity/rules/mega-brain.md +39 -0
  4. package/.claude/CLAUDE.md +172 -0
  5. package/.claude/agents.yaml +44 -0
  6. package/.claude/commands/agents.md +161 -0
  7. package/.claude/commands/ask.md +117 -0
  8. package/.claude/commands/benchmark.md +224 -0
  9. package/.claude/commands/chat.md +343 -0
  10. package/.claude/commands/compare.md +116 -0
  11. package/.claude/commands/conclave.md +196 -0
  12. package/.claude/commands/config.md +133 -0
  13. package/.claude/commands/create-agent.md +467 -0
  14. package/.claude/commands/debate.md +159 -0
  15. package/.claude/commands/documentation/create-architecture-documentation.md +175 -0
  16. package/.claude/commands/dossiers.md +180 -0
  17. package/.claude/commands/evolve.md +223 -0
  18. package/.claude/commands/extract-dna.md +172 -0
  19. package/.claude/commands/extract-knowledge.md +507 -0
  20. package/.claude/commands/gsd/add-phase.md +43 -0
  21. package/.claude/commands/gsd/add-tests.md +41 -0
  22. package/.claude/commands/gsd/add-todo.md +47 -0
  23. package/.claude/commands/gsd/audit-milestone.md +36 -0
  24. package/.claude/commands/gsd/check-todos.md +45 -0
  25. package/.claude/commands/gsd/cleanup.md +18 -0
  26. package/.claude/commands/gsd/complete-milestone.md +136 -0
  27. package/.claude/commands/gsd/debug.md +167 -0
  28. package/.claude/commands/gsd/discuss-phase.md +83 -0
  29. package/.claude/commands/gsd/execute-phase.md +41 -0
  30. package/.claude/commands/gsd/health.md +22 -0
  31. package/.claude/commands/gsd/help.md +22 -0
  32. package/.claude/commands/gsd/insert-phase.md +32 -0
  33. package/.claude/commands/gsd/join-discord.md +18 -0
  34. package/.claude/commands/gsd/list-phase-assumptions.md +46 -0
  35. package/.claude/commands/gsd/map-codebase.md +71 -0
  36. package/.claude/commands/gsd/new-milestone.md +44 -0
  37. package/.claude/commands/gsd/new-project.md +42 -0
  38. package/.claude/commands/gsd/pause-work.md +38 -0
  39. package/.claude/commands/gsd/plan-milestone-gaps.md +34 -0
  40. package/.claude/commands/gsd/plan-phase.md +45 -0
  41. package/.claude/commands/gsd/progress.md +24 -0
  42. package/.claude/commands/gsd/quick.md +41 -0
  43. package/.claude/commands/gsd/reapply-patches.md +110 -0
  44. package/.claude/commands/gsd/remove-phase.md +31 -0
  45. package/.claude/commands/gsd/research-phase.md +189 -0
  46. package/.claude/commands/gsd/resume-work.md +40 -0
  47. package/.claude/commands/gsd/set-profile.md +34 -0
  48. package/.claude/commands/gsd/settings.md +36 -0
  49. package/.claude/commands/gsd/update.md +37 -0
  50. package/.claude/commands/gsd/verify-work.md +38 -0
  51. package/.claude/commands/inbox.md +296 -0
  52. package/.claude/commands/ingest-empresa.md +191 -0
  53. package/.claude/commands/ingest.md +183 -0
  54. package/.claude/commands/jarvis-briefing.md +67 -0
  55. package/.claude/commands/jarvis-control.md +169 -0
  56. package/.claude/commands/jarvis-full.md +182 -0
  57. package/.claude/commands/jarvis.md +212 -0
  58. package/.claude/commands/ler-drive.md +212 -0
  59. package/.claude/commands/log.md +158 -0
  60. package/.claude/commands/loop.md +133 -0
  61. package/.claude/commands/loops.md +73 -0
  62. package/.claude/commands/mission-autopilot.md +538 -0
  63. package/.claude/commands/mission.md +353 -0
  64. package/.claude/commands/process-inbox.md +148 -0
  65. package/.claude/commands/process-jarvis.md +3036 -0
  66. package/.claude/commands/process-video.md +131 -0
  67. package/.claude/commands/rag-search.md +78 -0
  68. package/.claude/commands/resume.md +33 -0
  69. package/.claude/commands/save.md +38 -0
  70. package/.claude/commands/scan-inbox.md +125 -0
  71. package/.claude/commands/setup.md +99 -0
  72. package/.claude/commands/system-digest.md +243 -0
  73. package/.claude/commands/verify.md +182 -0
  74. package/.claude/commands/view-dna.md +169 -0
  75. package/.claude/get-shit-done/VERSION +1 -0
  76. package/.claude/get-shit-done/bin/gsd-tools.cjs +588 -0
  77. package/.claude/get-shit-done/bin/lib/commands.cjs +553 -0
  78. package/.claude/get-shit-done/bin/lib/config.cjs +162 -0
  79. package/.claude/get-shit-done/bin/lib/core.cjs +411 -0
  80. package/.claude/get-shit-done/bin/lib/frontmatter.cjs +299 -0
  81. package/.claude/get-shit-done/bin/lib/init.cjs +710 -0
  82. package/.claude/get-shit-done/bin/lib/milestone.cjs +216 -0
  83. package/.claude/get-shit-done/bin/lib/phase.cjs +871 -0
  84. package/.claude/get-shit-done/bin/lib/roadmap.cjs +298 -0
  85. package/.claude/get-shit-done/bin/lib/state.cjs +679 -0
  86. package/.claude/get-shit-done/bin/lib/template.cjs +222 -0
  87. package/.claude/get-shit-done/bin/lib/verify.cjs +773 -0
  88. package/.claude/get-shit-done/references/checkpoints.md +776 -0
  89. package/.claude/get-shit-done/references/continuation-format.md +249 -0
  90. package/.claude/get-shit-done/references/decimal-phase-calculation.md +65 -0
  91. package/.claude/get-shit-done/references/git-integration.md +248 -0
  92. package/.claude/get-shit-done/references/git-planning-commit.md +38 -0
  93. package/.claude/get-shit-done/references/model-profile-resolution.md +34 -0
  94. package/.claude/get-shit-done/references/model-profiles.md +92 -0
  95. package/.claude/get-shit-done/references/phase-argument-parsing.md +61 -0
  96. package/.claude/get-shit-done/references/planning-config.md +196 -0
  97. package/.claude/get-shit-done/references/questioning.md +145 -0
  98. package/.claude/get-shit-done/references/tdd.md +263 -0
  99. package/.claude/get-shit-done/references/ui-brand.md +160 -0
  100. package/.claude/get-shit-done/references/verification-patterns.md +612 -0
  101. package/.claude/get-shit-done/templates/DEBUG.md +164 -0
  102. package/.claude/get-shit-done/templates/UAT.md +247 -0
  103. package/.claude/get-shit-done/templates/VALIDATION.md +76 -0
  104. package/.claude/get-shit-done/templates/codebase/architecture.md +255 -0
  105. package/.claude/get-shit-done/templates/codebase/concerns.md +310 -0
  106. package/.claude/get-shit-done/templates/codebase/conventions.md +307 -0
  107. package/.claude/get-shit-done/templates/codebase/integrations.md +280 -0
  108. package/.claude/get-shit-done/templates/codebase/stack.md +186 -0
  109. package/.claude/get-shit-done/templates/codebase/structure.md +285 -0
  110. package/.claude/get-shit-done/templates/codebase/testing.md +480 -0
  111. package/.claude/get-shit-done/templates/config.json +37 -0
  112. package/.claude/get-shit-done/templates/context.md +283 -0
  113. package/.claude/get-shit-done/templates/continue-here.md +78 -0
  114. package/.claude/get-shit-done/templates/debug-subagent-prompt.md +91 -0
  115. package/.claude/get-shit-done/templates/discovery.md +146 -0
  116. package/.claude/get-shit-done/templates/milestone-archive.md +123 -0
  117. package/.claude/get-shit-done/templates/milestone.md +115 -0
  118. package/.claude/get-shit-done/templates/phase-prompt.md +569 -0
  119. package/.claude/get-shit-done/templates/planner-subagent-prompt.md +117 -0
  120. package/.claude/get-shit-done/templates/project.md +184 -0
  121. package/.claude/get-shit-done/templates/requirements.md +231 -0
  122. package/.claude/get-shit-done/templates/research-project/ARCHITECTURE.md +204 -0
  123. package/.claude/get-shit-done/templates/research-project/FEATURES.md +147 -0
  124. package/.claude/get-shit-done/templates/research-project/PITFALLS.md +200 -0
  125. package/.claude/get-shit-done/templates/research-project/STACK.md +120 -0
  126. package/.claude/get-shit-done/templates/research-project/SUMMARY.md +170 -0
  127. package/.claude/get-shit-done/templates/research.md +552 -0
  128. package/.claude/get-shit-done/templates/retrospective.md +54 -0
  129. package/.claude/get-shit-done/templates/roadmap.md +202 -0
  130. package/.claude/get-shit-done/templates/state.md +176 -0
  131. package/.claude/get-shit-done/templates/summary-complex.md +59 -0
  132. package/.claude/get-shit-done/templates/summary-minimal.md +41 -0
  133. package/.claude/get-shit-done/templates/summary-standard.md +48 -0
  134. package/.claude/get-shit-done/templates/summary.md +248 -0
  135. package/.claude/get-shit-done/templates/user-setup.md +311 -0
  136. package/.claude/get-shit-done/templates/verification-report.md +322 -0
  137. package/.claude/get-shit-done/workflows/add-phase.md +111 -0
  138. package/.claude/get-shit-done/workflows/add-tests.md +350 -0
  139. package/.claude/get-shit-done/workflows/add-todo.md +157 -0
  140. package/.claude/get-shit-done/workflows/audit-milestone.md +297 -0
  141. package/.claude/get-shit-done/workflows/check-todos.md +176 -0
  142. package/.claude/get-shit-done/workflows/cleanup.md +152 -0
  143. package/.claude/get-shit-done/workflows/complete-milestone.md +763 -0
  144. package/.claude/get-shit-done/workflows/diagnose-issues.md +219 -0
  145. package/.claude/get-shit-done/workflows/discovery-phase.md +289 -0
  146. package/.claude/get-shit-done/workflows/discuss-phase.md +542 -0
  147. package/.claude/get-shit-done/workflows/execute-phase.md +449 -0
  148. package/.claude/get-shit-done/workflows/execute-plan.md +448 -0
  149. package/.claude/get-shit-done/workflows/health.md +156 -0
  150. package/.claude/get-shit-done/workflows/help.md +489 -0
  151. package/.claude/get-shit-done/workflows/insert-phase.md +129 -0
  152. package/.claude/get-shit-done/workflows/list-phase-assumptions.md +178 -0
  153. package/.claude/get-shit-done/workflows/map-codebase.md +315 -0
  154. package/.claude/get-shit-done/workflows/new-milestone.md +382 -0
  155. package/.claude/get-shit-done/workflows/new-project.md +1116 -0
  156. package/.claude/get-shit-done/workflows/pause-work.md +122 -0
  157. package/.claude/get-shit-done/workflows/plan-milestone-gaps.md +274 -0
  158. package/.claude/get-shit-done/workflows/plan-phase.md +569 -0
  159. package/.claude/get-shit-done/workflows/progress.md +381 -0
  160. package/.claude/get-shit-done/workflows/quick.md +453 -0
  161. package/.claude/get-shit-done/workflows/remove-phase.md +154 -0
  162. package/.claude/get-shit-done/workflows/research-phase.md +73 -0
  163. package/.claude/get-shit-done/workflows/resume-project.md +306 -0
  164. package/.claude/get-shit-done/workflows/set-profile.md +80 -0
  165. package/.claude/get-shit-done/workflows/settings.md +213 -0
  166. package/.claude/get-shit-done/workflows/transition.md +544 -0
  167. package/.claude/get-shit-done/workflows/update.md +219 -0
  168. package/.claude/get-shit-done/workflows/verify-phase.md +242 -0
  169. package/.claude/get-shit-done/workflows/verify-work.md +569 -0
  170. package/.claude/gsd-file-manifest.json +144 -0
  171. package/.claude/hooks/agent_creation_trigger.py +168 -0
  172. package/.claude/hooks/agent_index_updater.py +255 -0
  173. package/.claude/hooks/agent_memory_persister.py +203 -0
  174. package/.claude/hooks/claude_md_agent_sync.py +162 -0
  175. package/.claude/hooks/claude_md_guard.py +154 -0
  176. package/.claude/hooks/continuous_save.py +414 -0
  177. package/.claude/hooks/creation_validator.py +360 -0
  178. package/.claude/hooks/enforce_dual_location.py +501 -0
  179. package/.claude/hooks/enforce_plan_mode.py +220 -0
  180. package/.claude/hooks/gsd-check-update.js +62 -0
  181. package/.claude/hooks/gsd-context-monitor.js +122 -0
  182. package/.claude/hooks/gsd-statusline.js +108 -0
  183. package/.claude/hooks/inbox_age_alert.py +367 -0
  184. package/.claude/hooks/ledger_updater.py +303 -0
  185. package/.claude/hooks/memory_hints_injector.py +251 -0
  186. package/.claude/hooks/memory_updater.py +202 -0
  187. package/.claude/hooks/notification_system.py +115 -0
  188. package/.claude/hooks/pending_tracker.py +188 -0
  189. package/.claude/hooks/pipeline_checkpoint.py +583 -0
  190. package/.claude/hooks/post_batch_cascading.py +1740 -0
  191. package/.claude/hooks/post_tool_use.py +120 -0
  192. package/.claude/hooks/quality_watchdog.py +394 -0
  193. package/.claude/hooks/ralph_wiggum.py +286 -0
  194. package/.claude/hooks/session-source-sync.py +223 -0
  195. package/.claude/hooks/session_autosave_v2.py +1135 -0
  196. package/.claude/hooks/session_end.py +203 -0
  197. package/.claude/hooks/session_start.py +939 -0
  198. package/.claude/hooks/skill_indexer.py +48 -0
  199. package/.claude/hooks/skill_router.py +358 -0
  200. package/.claude/hooks/stop_hook_completeness.py +187 -0
  201. package/.claude/hooks/user_prompt_submit.py +125 -0
  202. package/.claude/package.json +1 -0
  203. package/.claude/rules/ANTHROPIC-STANDARDS.md +384 -0
  204. package/.claude/rules/CLAUDE-LITE.md +201 -0
  205. package/.claude/rules/RULE-GROUP-1.md +320 -0
  206. package/.claude/rules/RULE-GROUP-2.md +307 -0
  207. package/.claude/rules/RULE-GROUP-3.md +248 -0
  208. package/.claude/rules/RULE-GROUP-4.md +427 -0
  209. package/.claude/rules/RULE-GROUP-5.md +388 -0
  210. package/.claude/rules/RULE-GROUP-6.md +387 -0
  211. package/.claude/rules/RULE-GSD-MANDATORY.md +106 -0
  212. package/.claude/rules/agent-cognition.md +779 -0
  213. package/.claude/rules/agent-integrity.md +692 -0
  214. package/.claude/rules/epistemic-standards.md +333 -0
  215. package/.claude/rules/logging.md +53 -0
  216. package/.claude/rules/mcp-governance.md +128 -0
  217. package/.claude/rules/pipeline.md +60 -0
  218. package/.claude/rules/state-management.md +93 -0
  219. package/.claude/scripts/apply-tags.py +77 -0
  220. package/.claude/scripts/batch-extract-transcriptions.py +132 -0
  221. package/.claude/scripts/build-complete-index.py +250 -0
  222. package/.claude/scripts/build-planilha-index.py +170 -0
  223. package/.claude/scripts/complete-tag-matching.py +250 -0
  224. package/.claude/scripts/deduplicate-inbox.py +139 -0
  225. package/.claude/scripts/docx-xml-extractor.py +141 -0
  226. package/.claude/scripts/extract-docx-text.py +58 -0
  227. package/.claude/scripts/extract-single-transcription.py +74 -0
  228. package/.claude/scripts/extract_docx_from_gdrive.py +77 -0
  229. package/.claude/scripts/jarvis_orchestrator.py +5 -0
  230. package/.claude/scripts/organized-downloader.py +246 -0
  231. package/.claude/scripts/planilha-tagger.py +187 -0
  232. package/.claude/scripts/revert-tags.py +70 -0
  233. package/.claude/scripts/source-sync.py +265 -0
  234. package/.claude/scripts/tag-inbox-files.py +276 -0
  235. package/.claude/scripts/tag-inbox-v2.py +253 -0
  236. package/.claude/scripts/test-extraction.py +35 -0
  237. package/.claude/scripts/test-full-extraction.py +74 -0
  238. package/.claude/scripts/validate_cascading_integrity.py +409 -0
  239. package/.claude/settings.json +215 -0
  240. package/.claude/skills/DETECTION-PROTOCOL.md +217 -0
  241. package/.claude/skills/README.md +240 -0
  242. package/.claude/skills/SKILL-REGISTRY.md +283 -0
  243. package/.claude/skills/SKILL-SUGGESTIONS.md +114 -0
  244. package/.claude/skills/_TEMPLATES/SKILL-WRITER-GUIDE.md +385 -0
  245. package/.claude/skills/agent-creation/SKILL.md +374 -0
  246. package/.claude/skills/ask-company/SKILL.md +198 -0
  247. package/.claude/skills/brainstorming/SKILL.md +72 -0
  248. package/.claude/skills/chronicler/SKILL.md +146 -0
  249. package/.claude/skills/chronicler/chronicler_core.py +468 -0
  250. package/.claude/skills/code-review/SKILL.md +160 -0
  251. package/.claude/skills/convert-to-company-docs/SKILL.md +68 -0
  252. package/.claude/skills/convert-to-company-docs/convert.py +532 -0
  253. package/.claude/skills/dispatching-parallel-agents/SKILL.md +193 -0
  254. package/.claude/skills/docs-megabrain/SKILL.md +251 -0
  255. package/.claude/skills/executing-plans/SKILL.md +114 -0
  256. package/.claude/skills/executor/SKILL.md +161 -0
  257. package/.claude/skills/fase-2-5-tagging/SKILL.md +182 -0
  258. package/.claude/skills/feature-dev/SKILL.md +154 -0
  259. package/.claude/skills/frontend-design/SKILL.md +165 -0
  260. package/.claude/skills/gdrive-transcription-downloader/SKILL.md +249 -0
  261. package/.claude/skills/gemini-fallback/SKILL.md +67 -0
  262. package/.claude/skills/gemini-fallback/gemini_fetch.py +0 -0
  263. package/.claude/skills/gha/SKILL.md +96 -0
  264. package/.claude/skills/gha/gha_diagnostic.py +227 -0
  265. package/.claude/skills/github-workflow/SKILL.md +190 -0
  266. package/.claude/skills/hookify/SKILL.md +134 -0
  267. package/.claude/skills/hybrid-source-reading/SKILL.md +265 -0
  268. package/.claude/skills/jarvis/SKILL.md +546 -0
  269. package/.claude/skills/jarvis-briefing/SKILL.md +340 -0
  270. package/.claude/skills/knowledge-extraction/SKILL.md +318 -0
  271. package/.claude/skills/ler-planilha/SKILL.md +281 -0
  272. package/.claude/skills/pipeline-jarvis/SKILL.md +430 -0
  273. package/.claude/skills/plugin-dev/SKILL.md +176 -0
  274. package/.claude/skills/pr-review-toolkit/SKILL.md +178 -0
  275. package/.claude/skills/process-company-inbox/SKILL.md +183 -0
  276. package/.claude/skills/python-megabrain/SKILL.md +323 -0
  277. package/.claude/skills/resume/SKILL.md +61 -0
  278. package/.claude/skills/save/SKILL.md +87 -0
  279. package/.claude/skills/skill-creator-internal/SKILL.md +186 -0
  280. package/.claude/skills/skill-writer/SKILL.md +153 -0
  281. package/.claude/skills/skill-writer/examples.md +191 -0
  282. package/.claude/skills/skill-writer/troubleshooting.md +205 -0
  283. package/.claude/skills/smart-download-tagger/SKILL.md +148 -0
  284. package/.claude/skills/source-sync/SKILL.md +240 -0
  285. package/.claude/skills/sync-docs/SKILL.md +193 -0
  286. package/.claude/skills/sync-docs/config.json +37 -0
  287. package/.claude/skills/sync-docs/gdrive_sync.py +358 -0
  288. package/.claude/skills/sync-docs/reauth.py +71 -0
  289. package/.claude/skills/using-superpowers/SKILL.md +105 -0
  290. package/.claude/skills/verification-before-completion/SKILL.md +130 -0
  291. package/.claude/skills/verify/SKILL.md +154 -0
  292. package/.claude/skills/verify/verify_runner.py +0 -0
  293. package/.claude/skills/verify-6-levels/SKILL.md +234 -0
  294. package/.claude/skills/writing-plans/SKILL.md +184 -0
  295. package/.claude/templates/BATCH-LOG-TEMPLATE.md +221 -0
  296. package/.claudeignore +9 -0
  297. package/.cursor/agents.yaml +44 -0
  298. package/.cursor/rules/mega-brain.md +39 -0
  299. package/.gitattributes +19 -0
  300. package/.github/CODEOWNERS +8 -0
  301. package/.github/ISSUE_TEMPLATE/agent.md +96 -0
  302. package/.github/ISSUE_TEMPLATE/bug.md +67 -0
  303. package/.github/ISSUE_TEMPLATE/feature.md +56 -0
  304. package/.github/ISSUE_TEMPLATE/pipeline.md +70 -0
  305. package/.github/PULL_REQUEST_TEMPLATE.md +30 -0
  306. package/.github/assets/banner.svg +152 -0
  307. package/.github/assets/logo-dark.svg +79 -0
  308. package/.github/assets/social-preview.png +0 -0
  309. package/.github/layer1-allowlist.txt +196 -0
  310. package/.github/layer2-manifest.txt +42 -0
  311. package/.github/layer3-manifest.txt +94 -0
  312. package/.github/workflows/claude-code-pr.yml +198 -0
  313. package/.github/workflows/claude-code-review.yml +57 -0
  314. package/.github/workflows/claude.yml +76 -0
  315. package/.github/workflows/publish-pro.yml +72 -0
  316. package/.github/workflows/publish.yml +86 -0
  317. package/.github/workflows/verification.yml +251 -0
  318. package/.gitignore +244 -0
  319. package/.gitleaks.toml +118 -0
  320. package/.windsurf/agents.yaml +44 -0
  321. package/.windsurf/rules/mega-brain.md +39 -0
  322. package/CONTRIBUTING.md +62 -0
  323. package/QUICK-START.md +231 -0
  324. package/README.md +168 -0
  325. package/agents/AGENT-INDEX.yaml +107 -0
  326. package/agents/MASTER-AGENT.md +612 -0
  327. package/agents/README.md +48 -0
  328. package/agents/_templates/INDEX.md +741 -0
  329. package/agents/_templates/TEMPLATE-AGENT-MD-ULTRA-ROBUSTO-V3.md +2399 -0
  330. package/agents/boardroom/CHECKLIST-MASTER.md +281 -0
  331. package/agents/boardroom/INTEGRATION-GUIDE.md +406 -0
  332. package/agents/boardroom/README.md +238 -0
  333. package/agents/boardroom/config/BOARDROOM-CONFIG.md +186 -0
  334. package/agents/boardroom/config/TTS-INTEGRATION.md +258 -0
  335. package/agents/boardroom/config/VOICE-PROFILES.md +624 -0
  336. package/agents/boardroom/scripts/audio_generator.py +375 -0
  337. package/agents/boardroom/scripts/audio_generator_edge.py +353 -0
  338. package/agents/boardroom/scripts/jarvis_boardroom_hook.py +415 -0
  339. package/agents/boardroom/scripts/notebooklm_generator.py +578 -0
  340. package/agents/boardroom/templates/EPISODE-TEMPLATE.md +367 -0
  341. package/agents/boardroom/templates/scene-templates/SCENE-AGENT-DEBATE.md +252 -0
  342. package/agents/boardroom/templates/scene-templates/SCENE-COUNCIL.md +270 -0
  343. package/agents/boardroom/templates/scene-templates/SCENE-DNA-CONSULTATION.md +126 -0
  344. package/agents/boardroom/templates/scene-templates/SCENE-QUESTION.md +174 -0
  345. package/agents/boardroom/workflows/WORKFLOW-AUDIO-GENERATION.md +421 -0
  346. package/agents/conclave/CRITIC.md +197 -0
  347. package/agents/conclave/DEVILS-ADVOCATE.md +274 -0
  348. package/agents/conclave/README.md +35 -0
  349. package/agents/conclave/SYNTHESIZER.md +293 -0
  350. package/agents/conclave/advogado-do-diabo/AGENT.md +502 -0
  351. package/agents/conclave/advogado-do-diabo/SOUL.md +100 -0
  352. package/agents/conclave/critico-metodologico/AGENT.md +683 -0
  353. package/agents/conclave/critico-metodologico/SOUL.md +107 -0
  354. package/agents/conclave/sintetizador/AGENT.md +571 -0
  355. package/agents/conclave/sintetizador/SOUL.md +94 -0
  356. package/agents/constitution/BASE-CONSTITUTION.md +254 -0
  357. package/agents/persona-registry.yaml +300 -0
  358. package/agents/sua-empresa/.gitkeep +0 -0
  359. package/agents/sua-empresa/README.md +44 -0
  360. package/agents/sua-empresa/_example/jds/EXAMPLE-JD.md +42 -0
  361. package/agents/sua-empresa/_example/org/EXAMPLE-ORG.md +32 -0
  362. package/agents/sua-empresa/_example/roles/EXAMPLE-ROLE.md +38 -0
  363. package/artifacts/README.md +11 -0
  364. package/artifacts/canonical/.gitkeep +0 -0
  365. package/artifacts/chunks/.gitkeep +0 -0
  366. package/artifacts/insights/.gitkeep +0 -0
  367. package/artifacts/narratives/.gitkeep +0 -0
  368. package/bin/cli.js +2 -0
  369. package/bin/lib/ascii-art.js +202 -0
  370. package/bin/lib/feature-gate.js +46 -0
  371. package/bin/lib/installer.js +593 -0
  372. package/bin/lib/license.js +59 -0
  373. package/bin/lib/pro-commands.js +75 -0
  374. package/bin/lib/setup-wizard.js +547 -0
  375. package/bin/lib/validate-email.js +113 -0
  376. package/bin/mega-brain.js +136 -0
  377. package/bin/pre-publish-gate.js +229 -0
  378. package/bin/push.js +1056 -0
  379. package/bin/templates/env.example +27 -0
  380. package/bin/utils/pro-detector.js +50 -0
  381. package/bin/validate-package.js +190 -0
  382. package/core/__init__.py +2 -0
  383. package/core/glossary/INDEX.md +63 -0
  384. package/core/glossary/digital.md +243 -0
  385. package/core/glossary/finance.md +49 -0
  386. package/core/glossary/marketing.md +69 -0
  387. package/core/glossary/operations.md +50 -0
  388. package/core/glossary/sales.md +690 -0
  389. package/core/intelligence/__init__.py +41 -0
  390. package/core/intelligence/agent_trigger.py +468 -0
  391. package/core/intelligence/audit_layers.py +491 -0
  392. package/core/intelligence/autonomous_processor.py +796 -0
  393. package/core/intelligence/bootstrap_registry.py +550 -0
  394. package/core/intelligence/business_model_detector.py +476 -0
  395. package/core/intelligence/dossier_trigger.py +336 -0
  396. package/core/intelligence/entity_normalizer.py +565 -0
  397. package/core/intelligence/org_chain_detector.py +411 -0
  398. package/core/intelligence/review_dashboard.py +338 -0
  399. package/core/intelligence/role_detector.py +855 -0
  400. package/core/intelligence/session_autosave.py +46 -0
  401. package/core/intelligence/skill_generator.py +601 -0
  402. package/core/intelligence/sow_generator.py +711 -0
  403. package/core/intelligence/sync_package_files.py +504 -0
  404. package/core/intelligence/task_orchestrator.py +780 -0
  405. package/core/intelligence/theme_analyzer.py +562 -0
  406. package/core/intelligence/tool_discovery.py +432 -0
  407. package/core/intelligence/validate_json_integrity.py +106 -0
  408. package/core/intelligence/validate_layers.py +310 -0
  409. package/core/intelligence/verify_classifications.py +94 -0
  410. package/core/intelligence/viability_scorer.py +592 -0
  411. package/core/jarvis/02-JARVIS-SOUL.md +390 -0
  412. package/core/jarvis/03-JARVIS-DNA.yaml +312 -0
  413. package/core/jarvis/AGENT.md +191 -0
  414. package/core/jarvis/agent-creator/AGENT.md +199 -0
  415. package/core/jarvis/agent-creator/SOUL.md +82 -0
  416. package/core/jarvis/agent-creator/tasks/create-agent.md +133 -0
  417. package/core/jarvis/agent-creator/tasks/sync-agents.md +100 -0
  418. package/core/jarvis/agent-creator/workflows/wf-create-agent.yaml +110 -0
  419. package/core/jarvis/agent-creator/workflows/wf-pipeline-trigger.yaml +111 -0
  420. package/core/jarvis/autonomous/benchmark/AGENT.md +347 -0
  421. package/core/jarvis/autonomous/benchmark/SOUL.md +78 -0
  422. package/core/jarvis/autonomous/critic/AGENT.md +324 -0
  423. package/core/jarvis/autonomous/critic/SOUL.md +78 -0
  424. package/core/jarvis/autonomous/evolver/AGENT.md +294 -0
  425. package/core/jarvis/autonomous/evolver/SOUL.md +85 -0
  426. package/core/jarvis/autonomous/playbook-generator/AGENT.md +399 -0
  427. package/core/jarvis/autonomous/playbook-generator/SOUL.md +80 -0
  428. package/core/patterns/_ROLE_PATTERNS.yaml +547 -0
  429. package/core/patterns/quality_gates.yaml +259 -0
  430. package/core/patterns/trigger_config.yaml +193 -0
  431. package/core/schemas/SCHEMA-INDEX.md +94 -0
  432. package/core/schemas/canonical-map.schema.json +98 -0
  433. package/core/schemas/chunks-state.schema.json +131 -0
  434. package/core/schemas/decisions-registry.schema.json +120 -0
  435. package/core/schemas/file-registry.schema.json +69 -0
  436. package/core/schemas/insights-state.schema.json +111 -0
  437. package/core/schemas/narratives-state.schema.json +150 -0
  438. package/core/tasks/CHANGELOG.md +55 -0
  439. package/core/tasks/TASK-REGISTRY.md +113 -0
  440. package/core/tasks/_templates/task-tmpl.md +105 -0
  441. package/core/tasks/analyze-themes.md +84 -0
  442. package/core/tasks/detect-role.md +82 -0
  443. package/core/tasks/extract-dna.md +114 -0
  444. package/core/tasks/normalize-entities.md +82 -0
  445. package/core/tasks/process-batch.md +111 -0
  446. package/core/tasks/validate-cascade.md +105 -0
  447. package/core/templates/README.md +27 -0
  448. package/core/templates/agents/dna-config-template.yaml +181 -0
  449. package/core/templates/agents/enrichment-protocol.md +408 -0
  450. package/core/templates/agents/memory-template.md +567 -0
  451. package/core/templates/agents/reasoning-model.md +331 -0
  452. package/core/templates/agents/soul-template.md +416 -0
  453. package/core/templates/agents/template-evolution.md +544 -0
  454. package/core/templates/debates/CONCLAVE-LOG-TEMPLATE-v2.md +309 -0
  455. package/core/templates/debates/conclave-log-template.md +309 -0
  456. package/core/templates/debates/conclave-protocol.md +518 -0
  457. package/core/templates/debates/debate-dynamics-config.yaml +322 -0
  458. package/core/templates/debates/debate-dynamics.md +613 -0
  459. package/core/templates/debates/debate-protocol.md +323 -0
  460. package/core/templates/logs/LOG-TEMPLATES.md +1068 -0
  461. package/core/templates/logs/batch-visual-template.md +841 -0
  462. package/core/templates/logs/log-structure.md +65 -0
  463. package/core/templates/logs/visual-diff.md +159 -0
  464. package/core/templates/phases/dossier-compilation.md +790 -0
  465. package/core/templates/phases/narrative-metabolism.md +292 -0
  466. package/core/templates/phases/narrative-synthesis.md +278 -0
  467. package/core/templates/phases/phase4-checkpoint.md +146 -0
  468. package/core/templates/phases/prompt-1.1-chunking.md +154 -0
  469. package/core/templates/phases/prompt-1.2-entity-resolution.md +186 -0
  470. package/core/templates/phases/prompt-2.1-dna-tags.md +208 -0
  471. package/core/templates/phases/prompt-2.1-insight-extraction.md +191 -0
  472. package/core/templates/phases/prompt-3.1-narrative.md +331 -0
  473. package/core/templates/phases/sources-compilation.md +340 -0
  474. package/core/workflows/PIPELINE-JARVIS-DOCS.md +606 -0
  475. package/core/workflows/wf-conclave.yaml +139 -0
  476. package/core/workflows/wf-extract-dna.yaml +158 -0
  477. package/core/workflows/wf-ingest.yaml +88 -0
  478. package/core/workflows/wf-pipeline-full.yaml +138 -0
  479. package/docs/API-KEYS-GUIDE.md +372 -0
  480. package/docs/INTEGRATION-POINTS.md +501 -0
  481. package/docs/LAYERS.md +403 -0
  482. package/docs/PLAN-MODE-PROTOCOL.md +388 -0
  483. package/docs/RESTORE-AND-INDEX.md +203 -0
  484. package/docs/TAG-RESOLVER-IMPLEMENTATION.md +597 -0
  485. package/docs/conselho.md +337 -0
  486. package/docs/context7-readme.md +28 -0
  487. package/docs/jarvis-logging-protocol.md +380 -0
  488. package/docs/pipeline-completa-v4.md +1315 -0
  489. package/docs/prompts/meta_agente_mapeamento_processos.md +297 -0
  490. package/docs/quick-start.md +197 -0
  491. package/docs/readme-ralph-cascateamento.md +207 -0
  492. package/docs/template-master.md +727 -0
  493. package/docs/templates/phase5/IMPLEMENTATION-GUIDE.md +355 -0
  494. package/docs/templates/phase5/MOGA-BRAIN-PHASE5-TEMPLATES.md +1284 -0
  495. package/docs/templates/phase5/README.md +165 -0
  496. package/docs/workflow-continuous-claude.md +2232 -0
  497. package/inbox/.gitkeep +0 -0
  498. package/inbox/README.md +15 -0
  499. package/knowledge/NAVIGATION-MAP.json +292 -0
  500. package/knowledge/README.md +11 -0
  501. package/knowledge/dna/.gitkeep +0 -0
  502. package/knowledge/dossiers/persons/.gitkeep +0 -0
  503. package/knowledge/dossiers/system/.gitkeep +0 -0
  504. package/knowledge/dossiers/themes/.gitkeep +0 -0
  505. package/knowledge/playbooks/.gitkeep +0 -0
  506. package/knowledge/sources/.gitkeep +0 -0
  507. package/logs/.gitkeep +0 -0
  508. package/logs/README.md +11 -0
  509. package/package.json +180 -0
  510. package/requirements.txt +4 -0
@@ -0,0 +1,146 @@
1
+ # AGENT CHRONICLER - Sistema de Logs Narrativos
2
+
3
+ > **Auto-Trigger:** Briefings de sessão, handoffs, logs visuais elaborados
4
+ > **Keywords:** "briefing", "handoff", "chronicler", "log bonito", "chronicle", "sessão"
5
+ > **Prioridade:** ALTA
6
+ > **Tools:** Read, Write, Glob
7
+
8
+ ---
9
+
10
+ ## Propósito
11
+
12
+ O **Agent Chronicler** é o escriba do Mega Brain. Enquanto outros agentes decidem e executam, o Chronicler:
13
+
14
+ - **REGISTRA** informações de forma visual e humanizada
15
+ - **NARRA** execuções com contexto explicativo
16
+ - **PRESERVA** memória através de logs append-only
17
+
18
+ ---
19
+
20
+ ## Funcionalidades
21
+
22
+ ### 1. BRIEFING Protocol
23
+
24
+ Gera briefing visual no início de sessões:
25
+
26
+ ```
27
+ ╔═══════════════════════════════════════════════════════════════════════════════╗
28
+ ║ CHRONICLE ║
29
+ ╚═══════════════════════════════════════════════════════════════════════════════╝
30
+
31
+ 📅 Sessão #N | Data
32
+
33
+ ┌─ LOOPS ABERTOS ─────────────────────────────────────────────────────────────┐
34
+ │ 🔴 [Crítico] Loop descrição │
35
+ │ 🟡 [Pendente] Loop descrição │
36
+ │ 🟢 [Continuável] Loop descrição │
37
+ └─────────────────────────────────────────────────────────────────────────────┘
38
+
39
+ ┌─ ESTADO DO SISTEMA ─────────────────────────────────────────────────────────┐
40
+ │ Knowledge Base │ Agents │ Pipeline │ Inbox │
41
+ └─────────────────────────────────────────────────────────────────────────────┘
42
+
43
+ ┌─ AÇÃO RECOMENDADA ──────────────────────────────────────────────────────────┐
44
+ │ [Ação prioritária baseada em regras] │
45
+ └─────────────────────────────────────────────────────────────────────────────┘
46
+
47
+ ─── Chronicler • Mega Brain ───
48
+ ```
49
+
50
+ ### 2. HANDOFF Protocol
51
+
52
+ Gera documento de continuidade ao fim de sessões:
53
+
54
+ - Tarefas completas (checkboxes)
55
+ - Tarefas pendentes (priorizadas)
56
+ - Decisões tomadas (com razões)
57
+ - Arquivos modificados
58
+ - Próximos passos sugeridos
59
+
60
+ ### 3. EVOLUTION-LOG
61
+
62
+ Mantém histórico permanente:
63
+
64
+ - Append-only (nunca edita entradas antigas)
65
+ - Registra marcos, decisões, sessões
66
+ - Formato timestamped
67
+
68
+ ---
69
+
70
+ ## Arquivos Gerenciados
71
+
72
+ ```
73
+ /logs/CHRONICLE/
74
+ ├── SESSION-STATE.md # Métricas + loops (atualiza por sessão)
75
+ ├── HANDOFF.md # Último handoff (overwrite por sessão)
76
+ ├── EVOLUTION-LOG.md # Histórico permanente (append-only)
77
+ └── SESSION-HISTORY/ # Arquivo de handoffs anteriores
78
+ ```
79
+
80
+ ---
81
+
82
+ ## Fontes de Dados (Leitura)
83
+
84
+ O Chronicler **lê** de:
85
+
86
+ | Arquivo | O que extrai |
87
+ |---------|--------------|
88
+ | `/.claude/jarvis/STATE.json` | Métricas, fase atual, progresso |
89
+ | `/.claude/jarvis/PENDING.md` | Loops abertos, pendências |
90
+ | `/.claude/mission-control/MISSION-STATE.json` | Estado da missão |
91
+ | `/logs/` | Contagem de arquivos por categoria |
92
+ | `/agents/` | Contagem de agentes ativos |
93
+ | `/inbox/` | Itens pendentes no inbox |
94
+
95
+ ---
96
+
97
+ ## Comandos
98
+
99
+ | Comando | Ação |
100
+ |---------|------|
101
+ | `/briefing` | Gera briefing on-demand |
102
+ | `/handoff` | Gera handoff sem encerrar sessão |
103
+ | `/chronicle status` | Mostra estado do sistema Chronicle |
104
+
105
+ ---
106
+
107
+ ## Regras Invioláveis
108
+
109
+ 1. **LOOPS SEMPRE PRIMEIRO** — No briefing, loops abertos são a seção mais importante
110
+ 2. **HANDOFF OVERWRITES** — Apenas o último handoff importa (anteriores arquivados)
111
+ 3. **EVOLUTION-LOG CRESCE APENAS** — Nunca editar entradas antigas, apenas append
112
+ 4. **EXPLICAÇÕES OBRIGATÓRIAS** — Todo termo técnico recebe [contexto]
113
+ 5. **ASSINATURA SEMPRE** — Outputs terminam com "─── Chronicler • Mega Brain ───"
114
+
115
+ ---
116
+
117
+ ## Quando NÃO Ativar
118
+
119
+ - Tarefas puramente técnicas sem necessidade de log visual
120
+ - Quando o usuário pedir output simples/direto
121
+ - Durante processamento de batches (usar logs técnicos)
122
+
123
+ ---
124
+
125
+ ## Integração com Hooks
126
+
127
+ O Chronicler é chamado automaticamente:
128
+
129
+ - **SessionStart:** `session_start.py` → `generate_chronicle_briefing()`
130
+ - **SessionEnd:** `session_end.py` → `generate_chronicle_handoff()`
131
+
132
+ ---
133
+
134
+ ## Exemplo de Uso Manual
135
+
136
+ ```
137
+ Usuário: /briefing
138
+ JARVIS: [Gera briefing Chronicle completo]
139
+
140
+ Usuário: /handoff
141
+ JARVIS: [Gera handoff sem encerrar sessão, salva em CHRONICLE/]
142
+ ```
143
+
144
+ ---
145
+
146
+ ─── Chronicler • Mega Brain ───
@@ -0,0 +1,468 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ CHRONICLER CORE - Sistema de Logs Narrativos para Mega Brain
4
+ =============================================================
5
+
6
+ Módulo principal que fornece funções para geração de:
7
+ - Briefings visuais de sessão
8
+ - Handoffs de continuidade
9
+ - Evolution logs append-only
10
+
11
+ Integra com session_start.py e session_end.py
12
+ """
13
+
14
+ import json
15
+ import os
16
+ from datetime import datetime
17
+ from pathlib import Path
18
+ from typing import Dict, List, Optional, Any
19
+
20
+ #================================
21
+ # CONFIGURAÇÃO
22
+ #================================
23
+
24
+ CHRONICLE_DIR = "logs/CHRONICLE"
25
+ SESSION_HISTORY_DIR = f"{CHRONICLE_DIR}/session-history"
26
+
27
+ #================================
28
+ # UTILITÁRIOS
29
+ #================================
30
+
31
+ def get_project_dir() -> str:
32
+ """Obtém o diretório do projeto."""
33
+ return os.environ.get('CLAUDE_PROJECT_DIR', os.getcwd())
34
+
35
+
36
+ def ensure_chronicle_dirs():
37
+ """Garante que diretórios do Chronicle existem."""
38
+ project_dir = get_project_dir()
39
+ Path(project_dir, CHRONICLE_DIR).mkdir(parents=True, exist_ok=True)
40
+ Path(project_dir, SESSION_HISTORY_DIR).mkdir(parents=True, exist_ok=True)
41
+
42
+
43
+ def read_json_safe(filepath: Path) -> Optional[Dict]:
44
+ """Lê arquivo JSON com tratamento de erros."""
45
+ try:
46
+ if filepath.exists():
47
+ with open(filepath, 'r', encoding='utf-8') as f:
48
+ return json.load(f)
49
+ except (json.JSONDecodeError, IOError):
50
+ pass
51
+ return None
52
+
53
+
54
+ def read_file_safe(filepath: Path) -> str:
55
+ """Lê arquivo de texto com tratamento de erros."""
56
+ try:
57
+ if filepath.exists():
58
+ return filepath.read_text(encoding='utf-8')
59
+ except IOError:
60
+ pass
61
+ return ""
62
+
63
+
64
+ def count_files_in_dir(dirpath: Path, pattern: str = "*") -> int:
65
+ """Conta arquivos em um diretório."""
66
+ try:
67
+ if dirpath.exists():
68
+ return len(list(dirpath.glob(pattern)))
69
+ except Exception:
70
+ pass
71
+ return 0
72
+
73
+
74
+ #================================
75
+ # COLETA DE DADOS
76
+ #================================
77
+
78
+ def collect_system_state() -> Dict[str, Any]:
79
+ """Coleta estado atual do sistema para o briefing."""
80
+ project_dir = Path(get_project_dir())
81
+
82
+ state = {
83
+ 'session_number': get_next_session_number(),
84
+ 'date': datetime.now().strftime('%Y-%m-%d %H:%M'),
85
+ 'loops': [],
86
+ 'metrics': {
87
+ 'knowledge_base': 0,
88
+ 'agents': 0,
89
+ 'phase': 'N/A',
90
+ 'inbox': 0
91
+ },
92
+ 'recommended_action': 'Aguardando análise...'
93
+ }
94
+
95
+ # 1. Ler STATE.json
96
+ state_path = project_dir / '.claude' / 'jarvis' / 'STATE.json'
97
+ jarvis_state = read_json_safe(state_path)
98
+ if jarvis_state:
99
+ current = jarvis_state.get('current_state', {})
100
+ state['metrics']['phase'] = f"{current.get('phase', '?')}"
101
+
102
+ # 2. Ler MISSION-STATE.json
103
+ mission_path = project_dir / '.claude' / 'mission-control' / 'MISSION-STATE.json'
104
+ mission_state = read_json_safe(mission_path)
105
+ if mission_state:
106
+ current = mission_state.get('current_state', {})
107
+ state['metrics']['phase'] = f"{current.get('phase', '?')} - {current.get('phase_name', 'IDLE')}"
108
+
109
+ # 3. Ler PENDING.md para loops abertos
110
+ pending_path = project_dir / '.claude' / 'jarvis' / 'PENDING.md'
111
+ pending_content = read_file_safe(pending_path)
112
+ state['loops'] = extract_loops_from_pending(pending_content)
113
+
114
+ # 4. Contar arquivos
115
+ state['metrics']['knowledge_base'] = count_files_in_dir(
116
+ project_dir / 'knowledge', '**/*.md'
117
+ )
118
+ state['metrics']['agents'] = count_files_in_dir(
119
+ project_dir / 'agents', '**/AGENT.md'
120
+ )
121
+ state['metrics']['inbox'] = count_files_in_dir(
122
+ project_dir / 'inbox', '*'
123
+ )
124
+
125
+ # 5. Determinar ação recomendada
126
+ state['recommended_action'] = determine_recommended_action(state)
127
+
128
+ return state
129
+
130
+
131
+ def extract_loops_from_pending(content: str) -> List[Dict[str, str]]:
132
+ """Extrai loops abertos do PENDING.md."""
133
+ loops = []
134
+
135
+ if not content:
136
+ return loops
137
+
138
+ # Parse por seções
139
+ sections = {
140
+ '## Alta Prioridade': 'critical',
141
+ '## 🔴 Alta Prioridade': 'critical',
142
+ '## Media Prioridade': 'pending',
143
+ '## 🟡 Média Prioridade': 'pending',
144
+ '## Baixa Prioridade': 'continuable',
145
+ '## 🟢 Baixa Prioridade': 'continuable'
146
+ }
147
+
148
+ for marker, priority in sections.items():
149
+ if marker in content:
150
+ section = content.split(marker)[1].split('##')[0]
151
+ import re
152
+ items = re.findall(r'-\s*\[.\]\s*(.+)', section)
153
+ for item in items[:2]: # Max 2 por categoria
154
+ loops.append({
155
+ 'priority': priority,
156
+ 'description': item.strip()[:60]
157
+ })
158
+
159
+ return loops
160
+
161
+
162
+ def determine_recommended_action(state: Dict) -> str:
163
+ """Determina ação recomendada baseado no estado."""
164
+ # Prioridade: loops críticos > inbox cheio > continuar trabalho
165
+
166
+ critical_loops = [l for l in state['loops'] if l['priority'] == 'critical']
167
+ if critical_loops:
168
+ return f"RESOLVER: {critical_loops[0]['description']}"
169
+
170
+ inbox_count = state['metrics'].get('inbox', 0)
171
+ if inbox_count > 10:
172
+ return f"ORGANIZAR: {inbox_count} itens no INBOX aguardando"
173
+
174
+ pending_loops = [l for l in state['loops'] if l['priority'] == 'pending']
175
+ if pending_loops:
176
+ return f"CONTINUAR: {pending_loops[0]['description']}"
177
+
178
+ return "Continuar trabalho na fase atual"
179
+
180
+
181
+ def get_next_session_number() -> int:
182
+ """Obtém próximo número de sessão."""
183
+ project_dir = Path(get_project_dir())
184
+ history_dir = project_dir / CHRONICLE_DIR / 'session-history'
185
+
186
+ if history_dir.exists():
187
+ sessions = list(history_dir.glob('HANDOFF-*.md'))
188
+ return len(sessions) + 1
189
+ return 1
190
+
191
+
192
+ #================================
193
+ # GERAÇÃO DE BRIEFING
194
+ #================================
195
+
196
+ def generate_chronicle_briefing() -> str:
197
+ """Gera briefing visual completo."""
198
+ state = collect_system_state()
199
+
200
+ # Header ASCII
201
+ header = """
202
+ ╔═══════════════════════════════════════════════════════════════════════════════╗
203
+ ║ ██████╗██╗ ██╗██████╗ ██████╗ ███╗ ██╗██╗ ██████╗██╗ ███████╗ ║
204
+ ║ ██╔════╝██║ ██║██╔══██╗██╔═══██╗████╗ ██║██║██╔════╝██║ ██╔════╝ ║
205
+ ║ ██║ ███████║██████╔╝██║ ██║██╔██╗ ██║██║██║ ██║ █████╗ ║
206
+ ║ ██║ ██╔══██║██╔══██╗██║ ██║██║╚██╗██║██║██║ ██║ ██╔══╝ ║
207
+ ║ ╚██████╗██║ ██║██║ ██║╚██████╔╝██║ ╚████║██║╚██████╗███████╗███████╗ ║
208
+ ║ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═════╝╚══════╝╚══════╝ ║
209
+ ╚═══════════════════════════════════════════════════════════════════════════════╝
210
+ """
211
+
212
+ # Sessão info
213
+ session_info = f"\n📅 Sessão #{state['session_number']} | {state['date']}\n"
214
+
215
+ # Loops abertos
216
+ loops_section = "\n┌─ LOOPS ABERTOS ─────────────────────────────────────────────────────────────┐\n"
217
+
218
+ priority_icons = {
219
+ 'critical': '🔴',
220
+ 'pending': '🟡',
221
+ 'continuable': '🟢'
222
+ }
223
+
224
+ if state['loops']:
225
+ for loop in state['loops'][:5]:
226
+ icon = priority_icons.get(loop['priority'], '⚪')
227
+ desc = loop['description'][:65].ljust(65)
228
+ loops_section += f"│ {icon} {desc}│\n"
229
+ else:
230
+ loops_section += "│ ✅ Nenhum loop aberto │\n"
231
+
232
+ loops_section += "└─────────────────────────────────────────────────────────────────────────────┘\n"
233
+
234
+ # Estado do sistema
235
+ m = state['metrics']
236
+ system_section = f"""
237
+ ┌─ ESTADO DO SISTEMA ─────────────────────────────────────────────────────────┐
238
+ │ Knowledge Base │ Agents │ Pipeline │ Inbox │
239
+ │ {str(m['knowledge_base']).ljust(10)} sources │ {str(m['agents']).ljust(8)} ativos │ Fase {str(m['phase']).ljust(8)} │ {str(m['inbox']).ljust(6)} items │
240
+ └─────────────────────────────────────────────────────────────────────────────┘
241
+ """
242
+
243
+ # Ação recomendada
244
+ action = state['recommended_action'][:70].ljust(70)
245
+ action_section = f"""
246
+ ┌─ AÇÃO RECOMENDADA ──────────────────────────────────────────────────────────┐
247
+ │ {action}│
248
+ └─────────────────────────────────────────────────────────────────────────────┘
249
+ """
250
+
251
+ # Footer
252
+ footer = "\n ─── Chronicler • Mega Brain ───\n"
253
+
254
+ return header + session_info + loops_section + system_section + action_section + footer
255
+
256
+
257
+ #================================
258
+ # GERAÇÃO DE HANDOFF
259
+ #================================
260
+
261
+ def generate_chronicle_handoff(
262
+ tasks_completed: List[str] = None,
263
+ tasks_pending: List[str] = None,
264
+ decisions: List[Dict[str, str]] = None,
265
+ files_modified: List[Dict[str, str]] = None,
266
+ next_steps: List[str] = None
267
+ ) -> str:
268
+ """Gera handoff de continuidade."""
269
+
270
+ state = collect_system_state()
271
+
272
+ content = f"""# HANDOFF - Sessão #{state['session_number']}
273
+
274
+ 📅 {state['date']}
275
+
276
+ ---
277
+
278
+ ## ✅ TAREFAS COMPLETAS
279
+ """
280
+
281
+ if tasks_completed:
282
+ for task in tasks_completed:
283
+ content += f"- [x] {task}\n"
284
+ else:
285
+ content += "- [x] Sessão iniciada e contexto carregado\n"
286
+
287
+ content += """
288
+ ## ⏳ PENDENTE
289
+
290
+ **Alta Prioridade:**
291
+ """
292
+
293
+ high_priority = [l for l in state['loops'] if l['priority'] == 'critical']
294
+ if high_priority:
295
+ for item in high_priority[:3]:
296
+ content += f"- [ ] {item['description']}\n"
297
+ else:
298
+ content += "- Nenhuma pendência crítica\n"
299
+
300
+ content += "\n**Normal:**\n"
301
+
302
+ normal_priority = [l for l in state['loops'] if l['priority'] in ['pending', 'continuable']]
303
+ if normal_priority:
304
+ for item in normal_priority[:3]:
305
+ content += f"- [ ] {item['description']}\n"
306
+ elif tasks_pending:
307
+ for task in tasks_pending[:3]:
308
+ content += f"- [ ] {task}\n"
309
+ else:
310
+ content += "- Nenhuma pendência registrada\n"
311
+
312
+ content += "\n## 🎯 DECISÕES TOMADAS\n\n"
313
+ content += "| Decisão | Razão |\n|---------|-------|\n"
314
+
315
+ if decisions:
316
+ for d in decisions:
317
+ content += f"| {d.get('decision', 'N/A')} | {d.get('reason', 'N/A')} |\n"
318
+ else:
319
+ content += "| Nenhuma decisão significativa | Sessão de continuidade |\n"
320
+
321
+ content += "\n## 📁 ARQUIVOS MODIFICADOS\n\n"
322
+ content += "| Arquivo | Mudança |\n|---------|--------|\n"
323
+
324
+ if files_modified:
325
+ for f in files_modified:
326
+ content += f"| {f.get('file', 'N/A')} | {f.get('change', 'N/A')} |\n"
327
+ else:
328
+ content += "| Nenhum arquivo modificado | Sessão consultiva |\n"
329
+
330
+ content += "\n## ➡️ PRÓXIMOS PASSOS SUGERIDOS\n\n"
331
+
332
+ if next_steps:
333
+ for i, step in enumerate(next_steps[:5], 1):
334
+ content += f"{i}. {step}\n"
335
+ else:
336
+ content += f"1. {state['recommended_action']}\n"
337
+ content += "2. Verificar pendências no PENDING.md\n"
338
+ content += "3. Continuar trabalho na fase atual\n"
339
+
340
+ content += "\n---\n\n"
341
+ content += " ─── Chronicler • Mega Brain ───\n"
342
+
343
+ return content
344
+
345
+
346
+ #================================
347
+ # EVOLUTION LOG
348
+ #================================
349
+
350
+ def append_to_evolution_log(entry_type: str, description: str):
351
+ """Adiciona entrada ao Evolution Log (append-only)."""
352
+ ensure_chronicle_dirs()
353
+ project_dir = Path(get_project_dir())
354
+ log_path = project_dir / CHRONICLE_DIR / 'EVOLUTION-LOG.md'
355
+
356
+ timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
357
+
358
+ # Criar arquivo se não existe
359
+ if not log_path.exists():
360
+ header = """# EVOLUTION LOG - Mega Brain
361
+
362
+ > Histórico permanente do sistema. Append-only.
363
+
364
+ ---
365
+
366
+ """
367
+ log_path.write_text(header, encoding='utf-8')
368
+
369
+ # Append nova entrada
370
+ entry = f"\n## [{timestamp}] {entry_type.upper()}\n\n{description}\n\n---\n"
371
+
372
+ with open(log_path, 'a', encoding='utf-8') as f:
373
+ f.write(entry)
374
+
375
+
376
+ #================================
377
+ # SAVE/ARCHIVE
378
+ #================================
379
+
380
+ def save_chronicle_briefing():
381
+ """Salva briefing em SESSION-STATE.md."""
382
+ ensure_chronicle_dirs()
383
+ project_dir = Path(get_project_dir())
384
+
385
+ briefing = generate_chronicle_briefing()
386
+ state_path = project_dir / CHRONICLE_DIR / 'SESSION-STATE.md'
387
+ state_path.write_text(briefing, encoding='utf-8')
388
+
389
+ return str(state_path)
390
+
391
+
392
+ def save_chronicle_handoff(**kwargs):
393
+ """Salva handoff e arquiva o anterior."""
394
+ ensure_chronicle_dirs()
395
+ project_dir = Path(get_project_dir())
396
+
397
+ handoff_path = project_dir / CHRONICLE_DIR / 'HANDOFF.md'
398
+ history_dir = project_dir / SESSION_HISTORY_DIR
399
+
400
+ # Arquivar handoff anterior se existe
401
+ if handoff_path.exists():
402
+ timestamp = datetime.now().strftime('%Y%m%d-%H%M%S')
403
+ archive_name = f"HANDOFF-{timestamp}.md"
404
+ archive_path = history_dir / archive_name
405
+
406
+ import shutil
407
+ shutil.move(str(handoff_path), str(archive_path))
408
+
409
+ # Gerar e salvar novo handoff
410
+ handoff = generate_chronicle_handoff(**kwargs)
411
+ handoff_path.write_text(handoff, encoding='utf-8')
412
+
413
+ # Registrar no Evolution Log
414
+ append_to_evolution_log('SESSION', f'Handoff criado. Sessão encerrada.')
415
+
416
+ return str(handoff_path)
417
+
418
+
419
+ #================================
420
+ # INTERFACE PARA HOOKS
421
+ #================================
422
+
423
+ def on_session_start() -> str:
424
+ """Chamado pelo session_start.py."""
425
+ ensure_chronicle_dirs()
426
+
427
+ # Gerar e salvar briefing
428
+ save_chronicle_briefing()
429
+
430
+ # Registrar no Evolution Log
431
+ append_to_evolution_log('SESSION', 'Nova sessão iniciada.')
432
+
433
+ # Retornar briefing para exibição
434
+ return generate_chronicle_briefing()
435
+
436
+
437
+ def on_session_end(**kwargs) -> str:
438
+ """Chamado pelo session_end.py."""
439
+ ensure_chronicle_dirs()
440
+
441
+ # Gerar e salvar handoff
442
+ handoff_path = save_chronicle_handoff(**kwargs)
443
+
444
+ return handoff_path
445
+
446
+
447
+ #================================
448
+ # MAIN (para testes)
449
+ #================================
450
+
451
+ if __name__ == '__main__':
452
+ import sys
453
+
454
+ if len(sys.argv) > 1:
455
+ command = sys.argv[1]
456
+
457
+ if command == 'briefing':
458
+ print(generate_chronicle_briefing())
459
+ elif command == 'handoff':
460
+ print(generate_chronicle_handoff())
461
+ elif command == 'save-briefing':
462
+ path = save_chronicle_briefing()
463
+ print(f"Briefing salvo em: {path}")
464
+ elif command == 'save-handoff':
465
+ path = save_chronicle_handoff()
466
+ print(f"Handoff salvo em: {path}")
467
+ else:
468
+ print("Uso: python chronicler_core.py [briefing|handoff|save-briefing|save-handoff]")