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,249 @@
1
+ # GDRIVE TRANSCRIPTION DOWNLOADER SKILL
2
+
3
+ ---
4
+ name: gdrive-download
5
+ description: Baixa transcrições .docx do Google Drive via OAuth e converte para .txt
6
+ version: 2.0.0
7
+ author: JARVIS
8
+ created: 2026-01-08
9
+ updated: 2026-01-08
10
+ triggers:
11
+ - baixar transcrições
12
+ - download drive
13
+ - extrair transcrições
14
+ - baixar docx
15
+ - gdrive download
16
+ ---
17
+
18
+ ## PROPÓSITO
19
+
20
+ Esta skill automatiza o download de transcrições .docx do Google Drive, extração de texto e salvamento como .txt no INBOX do Mega Brain.
21
+
22
+ ---
23
+
24
+ ## ⚠️ REGRA CRÍTICA: EVITAR DUPLICATAS
25
+
26
+ ```
27
+ ┌─────────────────────────────────────────────────────────────────────────────┐
28
+ │ HIERARQUIA DE TRANSCRIÇÕES - BAIXAR APENAS UMA POR VÍDEO │
29
+ │ │
30
+ │ Quando uma pasta no Drive tem estrutura com subpastas: │
31
+ │ │
32
+ │ 📂 Pasta Principal/ │
33
+ │ ├── 📄 video1.docx ← Transcrição SIMPLES (só áudio) │
34
+ │ ├── 📄 video2.docx │
35
+ │ └── 📂 Transcrição Visual + Verbal/ │
36
+ │ ├── 📄 video1.docx ← Transcrição COMPLETA (áudio + tela) │
37
+ │ └── 📄 video2.docx │
38
+ │ │
39
+ │ REGRA: Priorizar Visual+Verbal, ignorar simples se ambas existem │
40
+ │ │
41
+ │ ALGORITMO: │
42
+ │ 1. Listar TODOS os arquivos (raiz + subpastas) │
43
+ │ 2. Identificar duplicatas pelo nome base do vídeo │
44
+ │ 3. Se duplicata existe: │
45
+ │ - Manter apenas o da pasta "Visual + Verbal" │
46
+ │ - Descartar o da raiz │
47
+ │ 4. Se não há duplicata: baixar normalmente │
48
+ └─────────────────────────────────────────────────────────────────────────────┘
49
+ ```
50
+
51
+ ### Por que isso importa:
52
+ - **151 vídeos** podem virar **302 arquivos** se baixar ambas versões
53
+ - Isso **infla artificialmente** os números
54
+ - A versão Visual+Verbal é **superior** (captura slides, texto na tela)
55
+ - Duplicatas poluem o INBOX e confundem o Pipeline
56
+
57
+ ## QUANDO USAR
58
+
59
+ 1. **Fase 1 - Download:** Quando precisar baixar transcrições faltantes
60
+ 2. **Novos materiais:** Quando novas transcrições forem adicionadas ao Drive
61
+ 3. **Retry de falhas:** Quando downloads anteriores falharam
62
+ 4. **Atualização de inventário:** Após adicionar novos cursos/fontes
63
+
64
+ ## ARQUITETURA
65
+
66
+ ```
67
+ ┌─────────────────────────────────────────────────────────────────┐
68
+ │ GDRIVE DOWNLOADER │
69
+ ├─────────────────────────────────────────────────────────────────┤
70
+ │ │
71
+ │ INVENTÁRIO SCRIPT INBOX │
72
+ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
73
+ │ │ JSON │─────────────▶│ OAuth │────────────▶│ .txt │ │
74
+ │ │ fileIDs │ │ python │ │ files │ │
75
+ │ └─────────┘ └─────────┘ └─────────┘ │
76
+ │ │
77
+ │ system/ scripts/ inbox/ │
78
+ │ DRIVE-TRANS... download_all... [FONTE]/ │
79
+ │ │
80
+ └─────────────────────────────────────────────────────────────────┘
81
+ ```
82
+
83
+ ## COMPONENTES
84
+
85
+ ### 1. Inventário de Transcrições
86
+ **Localização:** `system/DRIVE-TRANSCRIPTIONS-INVENTORY.json`
87
+
88
+ ```json
89
+ {
90
+ "courses": {
91
+ "COURSE_KEY": {
92
+ "folder": "DESTINATION/PATH",
93
+ "count": N,
94
+ "files": [
95
+ {"id": "GOOGLE_DRIVE_FILE_ID", "name": "filename.docx"}
96
+ ]
97
+ }
98
+ }
99
+ }
100
+ ```
101
+
102
+ ### 2. Script de Download
103
+ **Localização:** `scripts/download_all_transcriptions.py`
104
+
105
+ **Dependências:**
106
+ - python-docx (`pip install python-docx`)
107
+ - google-api-python-client (via gdrive_manager)
108
+
109
+ **Autenticação:**
110
+ - OAuth2 via `scripts/gdrive_manager.py`
111
+ - Token salvo em `~/.config/moga-brain-gdrive/token.json`
112
+
113
+ ### 3. Sistema de Checkpoint
114
+ **Localização:** `.claude/mission-control/DOWNLOAD-CHECKPOINT.json`
115
+
116
+ Persiste:
117
+ - IDs de arquivos completados
118
+ - Arquivos que falharam (para retry)
119
+ - Último curso processado
120
+
121
+ ## COMANDOS
122
+
123
+ ### Listar cursos disponíveis
124
+ ```bash
125
+ # From the project root
126
+ python3 scripts/download_all_transcriptions.py --list
127
+ ```
128
+
129
+ ### Baixar todos os cursos
130
+ ```bash
131
+ python3 scripts/download_all_transcriptions.py --all
132
+ ```
133
+
134
+ ### Baixar curso específico
135
+ ```bash
136
+ python3 scripts/download_all_transcriptions.py --course COURSE_KEY
137
+ ```
138
+
139
+ ### Continuar de onde parou (resume)
140
+ ```bash
141
+ python3 scripts/download_all_transcriptions.py --all --resume
142
+ ```
143
+
144
+ ## CURSOS MAPEADOS
145
+
146
+ | Course Key | Destino | Count |
147
+ |------------|---------|-------|
148
+ | SALES_TRAINING_BR | COLE GORDON/COURSES | 59 |
149
+ | JEREMY_HAYNES_SALES_TRAINING | JEREMY HAYNES/COURSES | 14 |
150
+ | JEREMY_MINER_7TH_LEVEL | JEREMY MINER/COURSES | 40 |
151
+ | ALEX_HORMOZI | ALEX HORMOZI/MARKETING | 2 |
152
+ | JEREMY_HAYNES_PROGRAM | JEREMY HAYNES PROGRAM/COURSES | 2 |
153
+ | COLE_GORDON_EXTRAS | COLE GORDON/MASTERMINDS | 6 |
154
+
155
+ ## FLUXO DE EXECUÇÃO
156
+
157
+ ```
158
+ ┌─────────────────────────────────────────────────────────────────┐
159
+ │ 1. VERIFICAR INVENTÁRIO │
160
+ │ └─ Ler system/DRIVE-TRANSCRIPTIONS-INVENTORY.json │
161
+ ├─────────────────────────────────────────────────────────────────┤
162
+ │ 2. CARREGAR CHECKPOINT │
163
+ │ └─ Verificar .claude/mission-control/DOWNLOAD-CHECKPOINT │
164
+ ├─────────────────────────────────────────────────────────────────┤
165
+ │ 3. AUTENTICAR OAUTH │
166
+ │ └─ Via gdrive_manager.get_drive_service() │
167
+ ├─────────────────────────────────────────────────────────────────┤
168
+ │ 4. PARA CADA ARQUIVO: │
169
+ │ ├─ Skip se já completado (checkpoint) │
170
+ │ ├─ Skip se arquivo já existe no destino │
171
+ │ ├─ Download .docx do Drive (binary) │
172
+ │ ├─ Extrair texto via python-docx │
173
+ │ ├─ Salvar como .txt no INBOX │
174
+ │ └─ Atualizar checkpoint │
175
+ ├─────────────────────────────────────────────────────────────────┤
176
+ │ 5. GERAR SUMÁRIO │
177
+ │ └─ Downloaded / Skipped / Failed │
178
+ └─────────────────────────────────────────────────────────────────┘
179
+ ```
180
+
181
+ ## TROUBLESHOOTING
182
+
183
+ ### Token expirado
184
+ O script renova automaticamente. Se persistir:
185
+ ```bash
186
+ rm ~/.config/moga-brain-gdrive/token.json
187
+ # Re-executar script (abrirá browser para autenticar)
188
+ ```
189
+
190
+ ### Broken pipe errors
191
+ Arquivos grandes ou conexão instável. O checkpoint preserva progresso.
192
+ ```bash
193
+ # Re-executar com resume
194
+ python3 scripts/download_all_transcriptions.py --all --resume
195
+ ```
196
+
197
+ ### Arquivo não encontrado no Drive
198
+ Verificar se o fileId está correto no inventário.
199
+ ```bash
200
+ # Buscar arquivo pelo ID
201
+ python3 -c "
202
+ from SCRIPTS.gdrive_manager import get_drive_service
203
+ svc = get_drive_service()
204
+ print(svc.files().get(fileId='FILE_ID_HERE').execute())
205
+ "
206
+ ```
207
+
208
+ ## ADICIONAR NOVOS CURSOS
209
+
210
+ 1. Identificar pasta no Google Drive
211
+ 2. Listar arquivos .docx com seus IDs
212
+ 3. Adicionar ao inventário JSON:
213
+ ```json
214
+ "NEW_COURSE_KEY": {
215
+ "folder": "FONTE/SUBPASTA",
216
+ "count": N,
217
+ "files": [...]
218
+ }
219
+ ```
220
+ 4. Mapear no script (COURSE_FOLDERS dict)
221
+ 5. Executar download
222
+
223
+ ## INTEGRAÇÃO COM PIPELINE
224
+
225
+ Após download, os arquivos .txt estão prontos para:
226
+ 1. **Fase 2.5 - Tagging:** Adicionar [TAG] aos nomes
227
+ 2. **Fase 3 - De-Para:** Validar planilha vs computador
228
+ 3. **Fase 4 - Pipeline:** Processar chunks/insights
229
+
230
+ ## MÉTRICAS DE SUCESSO
231
+
232
+ ```
233
+ ✅ 149/149 arquivos do inventário
234
+ ✅ 0 falhas permanentes
235
+ ✅ Checkpoint preservado para retry
236
+ ✅ Estrutura de pastas correta no INBOX
237
+ ```
238
+
239
+ ## HISTÓRICO
240
+
241
+ | Data | Ação | Resultado |
242
+ |------|------|-----------|
243
+ | 2026-01-08 | Download inicial completo | 149 arquivos |
244
+ | 2026-01-05 | Criação do inventário | 149 entries |
245
+
246
+ ---
247
+
248
+ **JARVIS SKILL v1.0.0**
249
+ *Automatizando downloads do Google Drive para o Mega Brain*
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: gemini-fallback
3
+ description: Usa Gemini CLI para acessar sites bloqueados (Reddit, etc)
4
+ triggers:
5
+ - "buscar no reddit"
6
+ - "acessar site bloqueado"
7
+ - "gemini fetch"
8
+ - "/gemini"
9
+ ---
10
+
11
+ # Gemini CLI Fallback
12
+
13
+ Use este skill quando precisar acessar sites que Claude Code não consegue (Reddit, sites com bloqueio).
14
+
15
+ ## Pré-requisitos
16
+
17
+ ```bash
18
+ # Instalar Gemini CLI (se não instalado)
19
+ npm install -g @anthropic-ai/gemini-cli
20
+ # ou
21
+ pip install google-generativeai
22
+ ```
23
+
24
+ ## Como Usar
25
+
26
+ ### Via Skill
27
+ ```
28
+ /gemini [URL ou query]
29
+ ```
30
+
31
+ ### Exemplos
32
+ ```
33
+ /gemini https://reddit.com/r/ClaudeAI/top
34
+ /gemini "melhores práticas claude code reddit"
35
+ ```
36
+
37
+ ## Execução
38
+
39
+ Quando acionado, este skill:
40
+
41
+ 1. Verifica se Gemini CLI está disponível
42
+ 2. Usa tmux para criar sessão isolada
43
+ 3. Executa query via Gemini (que tem acesso web)
44
+ 4. Captura e retorna o resultado
45
+
46
+ ### Script de Execução
47
+
48
+ Execute o script auxiliar:
49
+ ```bash
50
+ python3 .claude/skills/gemini-fallback/gemini_fetch.py "URL_OU_QUERY"
51
+ ```
52
+
53
+ ## Alternativa Manual
54
+
55
+ Se Gemini CLI não estiver disponível, use:
56
+
57
+ 1. Abrir nova aba do terminal
58
+ 2. Usar browser ou curl para acessar
59
+ 3. Copiar conteúdo relevante
60
+ 4. Colar no Claude Code
61
+
62
+ ## Sites Comumente Bloqueados
63
+
64
+ - Reddit (r/ClaudeAI, r/LocalLLaMA)
65
+ - Twitter/X
66
+ - LinkedIn
67
+ - Alguns docs sites
File without changes
@@ -0,0 +1,96 @@
1
+ ---
2
+ name: gha
3
+ description: Diagnóstico de GitHub Actions failures
4
+ triggers:
5
+ - "/gha"
6
+ - "github actions"
7
+ - "ci failed"
8
+ - "workflow failed"
9
+ - "build failed"
10
+ ---
11
+
12
+ # GitHub Actions Diagnostics
13
+
14
+ Diagnóstico automático de falhas em GitHub Actions.
15
+
16
+ ## Uso
17
+
18
+ ```
19
+ /gha # Verifica último workflow run
20
+ /gha [run_id] # Analisa run específico
21
+ /gha --flaky # Identifica testes flaky
22
+ /gha --history # Histórico de falhas
23
+ ```
24
+
25
+ ## O Que Faz
26
+
27
+ 1. **Busca último workflow run com falha**
28
+ 2. **Baixa logs do job**
29
+ 3. **Analisa erro e identifica causa raiz**
30
+ 4. **Sugere correção**
31
+
32
+ ## Execução Manual
33
+
34
+ Se precisar debugar manualmente:
35
+
36
+ ```bash
37
+ # Listar workflows
38
+ gh run list --limit 10
39
+
40
+ # Ver detalhes de um run
41
+ gh run view [RUN_ID]
42
+
43
+ # Baixar logs
44
+ gh run view [RUN_ID] --log
45
+
46
+ # Ver jobs de um run
47
+ gh run view [RUN_ID] --job [JOB_ID]
48
+ ```
49
+
50
+ ## Análise Automática
51
+
52
+ Quando acionado, JARVIS irá:
53
+
54
+ 1. Executar `gh run list --status failure --limit 5`
55
+ 2. Identificar o run mais recente
56
+ 3. Executar `gh run view [ID] --log`
57
+ 4. Analisar os logs buscando:
58
+ - Erros de teste
59
+ - Erros de build
60
+ - Erros de lint
61
+ - Timeout
62
+ - Dependências faltando
63
+ 5. Reportar causa provável e sugerir fix
64
+
65
+ ## Padrões Comuns de Erro
66
+
67
+ | Padrão | Causa Provável | Sugestão |
68
+ |--------|----------------|----------|
69
+ | `npm ERR!` | Dependência | `npm ci` ou limpar cache |
70
+ | `ENOENT` | Arquivo faltando | Verificar paths |
71
+ | `timeout` | Teste lento/flaky | Aumentar timeout ou otimizar |
72
+ | `FAILED` em test | Teste quebrado | Ver stack trace |
73
+ | `TypeScript error` | Tipo incorreto | Fix no código |
74
+ | `ESLint` | Lint error | Auto-fix ou manual |
75
+
76
+ ## Exemplo de Output
77
+
78
+ ```
79
+ ╔══════════════════════════════════════════════════════════════════════════════╗
80
+ ║ GITHUB ACTIONS DIAGNOSTIC ║
81
+ ╠══════════════════════════════════════════════════════════════════════════════╣
82
+ ║ Run ID: 12345678 ║
83
+ ║ Workflow: CI ║
84
+ ║ Status: FAILED ║
85
+ ║ Duration: 3m 42s ║
86
+ ╠══════════════════════════════════════════════════════════════════════════════╣
87
+ ║ CAUSA RAIZ: ║
88
+ ║ Test failure in src/__tests__/api.test.ts:42 ║
89
+ ║ ║
90
+ ║ Error: Expected 200, got 404 ║
91
+ ║ ║
92
+ ║ SUGESTÃO: ║
93
+ ║ O endpoint /api/users foi removido ou renomeado. ║
94
+ ║ Verificar se o route existe em src/routes/users.ts ║
95
+ ╚══════════════════════════════════════════════════════════════════════════════╝
96
+ ```
@@ -0,0 +1,227 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ GITHUB ACTIONS DIAGNOSTIC
4
+ =========================
5
+ Diagnóstico automático de falhas em GitHub Actions.
6
+
7
+ Usage:
8
+ python3 gha_diagnostic.py # Último run com falha
9
+ python3 gha_diagnostic.py [run_id] # Run específico
10
+ python3 gha_diagnostic.py --flaky # Testes flaky
11
+ python3 gha_diagnostic.py --history # Histórico
12
+ """
13
+
14
+ import sys
15
+ import subprocess
16
+ import json
17
+ import re
18
+ from datetime import datetime
19
+
20
+
21
+ def run_gh(args: list) -> tuple[bool, str]:
22
+ """Execute gh CLI command"""
23
+ try:
24
+ result = subprocess.run(
25
+ ['gh'] + args,
26
+ capture_output=True,
27
+ text=True,
28
+ timeout=30
29
+ )
30
+ if result.returncode == 0:
31
+ return True, result.stdout
32
+ return False, result.stderr
33
+ except Exception as e:
34
+ return False, str(e)
35
+
36
+
37
+ def get_failed_runs(limit: int = 5) -> list:
38
+ """Get recent failed runs"""
39
+ success, output = run_gh([
40
+ 'run', 'list',
41
+ '--status', 'failure',
42
+ '--limit', str(limit),
43
+ '--json', 'databaseId,name,conclusion,createdAt,headBranch'
44
+ ])
45
+
46
+ if success:
47
+ try:
48
+ return json.loads(output)
49
+ except:
50
+ pass
51
+ return []
52
+
53
+
54
+ def get_run_logs(run_id: str) -> str:
55
+ """Get logs for a specific run"""
56
+ success, output = run_gh(['run', 'view', run_id, '--log'])
57
+ if success:
58
+ return output
59
+ return f"Error getting logs: {output}"
60
+
61
+
62
+ def get_run_details(run_id: str) -> dict:
63
+ """Get detailed info about a run"""
64
+ success, output = run_gh([
65
+ 'run', 'view', run_id,
66
+ '--json', 'databaseId,name,conclusion,createdAt,headBranch,jobs'
67
+ ])
68
+
69
+ if success:
70
+ try:
71
+ return json.loads(output)
72
+ except:
73
+ pass
74
+ return {}
75
+
76
+
77
+ def analyze_logs(logs: str) -> dict:
78
+ """Analyze logs to find root cause"""
79
+ analysis = {
80
+ 'error_type': 'Unknown',
81
+ 'error_message': '',
82
+ 'file': '',
83
+ 'line': '',
84
+ 'suggestion': ''
85
+ }
86
+
87
+ # Common patterns
88
+ patterns = [
89
+ # Test failures
90
+ (r'FAIL\s+(.+\.test\.[jt]sx?)', 'Test Failure', 'Verificar o teste indicado'),
91
+ (r'AssertionError:\s*(.+)', 'Assertion Failed', 'Verificar expectativa do teste'),
92
+ (r'Expected:\s*(.+)\s*Received:\s*(.+)', 'Assertion Mismatch', 'Valores não correspondem'),
93
+
94
+ # TypeScript errors
95
+ (r'error TS\d+:\s*(.+)', 'TypeScript Error', 'Corrigir tipo no código'),
96
+ (r"Property '(\w+)' does not exist", 'Missing Property', 'Adicionar propriedade ao tipo'),
97
+
98
+ # Build errors
99
+ (r'npm ERR!\s*(.+)', 'NPM Error', 'Verificar dependências, rodar npm ci'),
100
+ (r'Module not found:\s*(.+)', 'Module Not Found', 'Instalar módulo faltante'),
101
+
102
+ # ESLint
103
+ (r'error\s+(.+)\s+@typescript-eslint', 'ESLint Error', 'Corrigir lint error'),
104
+
105
+ # Generic errors
106
+ (r'Error:\s*(.+)', 'Generic Error', 'Ver stack trace para mais detalhes'),
107
+ (r'ENOENT.*?([^\s]+)', 'File Not Found', 'Verificar se arquivo existe'),
108
+ (r'timeout', 'Timeout', 'Aumentar timeout ou otimizar'),
109
+ ]
110
+
111
+ for pattern, error_type, suggestion in patterns:
112
+ match = re.search(pattern, logs, re.IGNORECASE)
113
+ if match:
114
+ analysis['error_type'] = error_type
115
+ analysis['error_message'] = match.group(1) if match.groups() else match.group(0)
116
+ analysis['suggestion'] = suggestion
117
+ break
118
+
119
+ # Try to find file:line reference
120
+ file_match = re.search(r'([^\s]+\.[jt]sx?):(\d+)', logs)
121
+ if file_match:
122
+ analysis['file'] = file_match.group(1)
123
+ analysis['line'] = file_match.group(2)
124
+
125
+ return analysis
126
+
127
+
128
+ def print_diagnostic(run_id: str):
129
+ """Print full diagnostic for a run"""
130
+ details = get_run_details(run_id)
131
+ logs = get_run_logs(run_id)
132
+ analysis = analyze_logs(logs)
133
+
134
+ print("""
135
+ ╔══════════════════════════════════════════════════════════════════════════════╗
136
+ ║ GITHUB ACTIONS DIAGNOSTIC ║
137
+ ╠══════════════════════════════════════════════════════════════════════════════╣""")
138
+
139
+ if details:
140
+ name = details.get('name', 'Unknown')[:60]
141
+ branch = details.get('headBranch', 'Unknown')[:30]
142
+ conclusion = details.get('conclusion', 'Unknown')
143
+
144
+ print(f"║ Run ID: {run_id:<62} ║")
145
+ print(f"║ Workflow: {name:<62} ║")
146
+ print(f"║ Branch: {branch:<62} ║")
147
+ print(f"║ Status: {conclusion:<62} ║")
148
+
149
+ print("╠══════════════════════════════════════════════════════════════════════════════╣")
150
+ print("║ ANÁLISE: ║")
151
+ print(f"║ Tipo: {analysis['error_type']:<62} ║")
152
+
153
+ if analysis['error_message']:
154
+ msg = analysis['error_message'][:60]
155
+ print(f"║ Erro: {msg:<62} ║")
156
+
157
+ if analysis['file']:
158
+ loc = f"{analysis['file']}:{analysis['line']}"[:60]
159
+ print(f"║ Local: {loc:<62} ║")
160
+
161
+ print("║ ║")
162
+ print("║ SUGESTÃO: ║")
163
+ suggestion = analysis['suggestion'][:70]
164
+ print(f"║ {suggestion:<76} ║")
165
+
166
+ print("╚══════════════════════════════════════════════════════════════════════════════╝")
167
+
168
+ # Print relevant log snippet
169
+ if analysis['error_message']:
170
+ print("\n📋 LOG RELEVANTE:")
171
+ print("-" * 80)
172
+ # Find context around error
173
+ lines = logs.split('\n')
174
+ for i, line in enumerate(lines):
175
+ if analysis['error_message'][:30] in line:
176
+ start = max(0, i - 5)
177
+ end = min(len(lines), i + 10)
178
+ print('\n'.join(lines[start:end]))
179
+ break
180
+ print("-" * 80)
181
+
182
+
183
+ def main():
184
+ args = sys.argv[1:]
185
+
186
+ if '--help' in args or '-h' in args:
187
+ print(__doc__)
188
+ return
189
+
190
+ # Check gh CLI
191
+ success, _ = run_gh(['--version'])
192
+ if not success:
193
+ print("❌ GitHub CLI (gh) not installed or not authenticated")
194
+ print(" Install: brew install gh")
195
+ print(" Auth: gh auth login")
196
+ return
197
+
198
+ if '--history' in args:
199
+ print("📊 Histórico de falhas recentes:\n")
200
+ runs = get_failed_runs(10)
201
+ for run in runs:
202
+ print(f" • {run['databaseId']} - {run['name']} ({run['headBranch']})")
203
+ return
204
+
205
+ if '--flaky' in args:
206
+ print("🔍 Analisando testes flaky...\n")
207
+ # Get recent runs and look for intermittent failures
208
+ runs = get_failed_runs(20)
209
+ print(f" {len(runs)} falhas nas últimas 20 runs")
210
+ # Could do more sophisticated analysis here
211
+ return
212
+
213
+ # Get specific run or latest failed
214
+ if args and args[0].isdigit():
215
+ run_id = args[0]
216
+ else:
217
+ runs = get_failed_runs(1)
218
+ if not runs:
219
+ print("✅ Nenhuma falha recente encontrada!")
220
+ return
221
+ run_id = str(runs[0]['databaseId'])
222
+
223
+ print_diagnostic(run_id)
224
+
225
+
226
+ if __name__ == '__main__':
227
+ main()