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,432 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ TOOL DISCOVERY - Intelligence Layer v1.0
4
+ ==========================================
5
+ Descobre ferramentas disponiveis para cada role de cargo.
6
+
7
+ Mapeia:
8
+ 1. Essential tools (obrigatorias para funcionar)
9
+ 2. Recommended tools (melhoram performance)
10
+ 3. MCP available (integracao direta possivel)
11
+ 4. Autonomy level (do SOW)
12
+ 5. Command Loader (tasks obrigatorias por agente)
13
+
14
+ Inspiracao: Squad Creator *discover-tools, wf-discovery-tools.yaml
15
+
16
+ Versao: 1.0.0
17
+ Data: 2026-02-26
18
+ """
19
+
20
+ import json
21
+ import sys
22
+ import yaml
23
+ from pathlib import Path
24
+ from datetime import datetime, timezone
25
+
26
+ sys.path.insert(0, str(Path(__file__).parent))
27
+ from entity_normalizer import load_registry, save_registry, load_taxonomy
28
+
29
+ # ---------------------------------------------------------------------------
30
+ # PATHS
31
+ # ---------------------------------------------------------------------------
32
+ BASE_DIR = Path(__file__).parent.parent
33
+ AGENTS_DIR = BASE_DIR / "agents" / "cargo"
34
+
35
+ # ---------------------------------------------------------------------------
36
+ # TOOL REGISTRY (Knowledge base)
37
+ # ---------------------------------------------------------------------------
38
+ # Maps role categories to their tool ecosystems.
39
+ # This is a seed database - grows as more roles are discovered.
40
+
41
+ TOOL_REGISTRY = {
42
+ # === SALES ===
43
+ "CLOSER": {
44
+ "essential": ["CRM (HubSpot/Pipedrive)", "Calendar (Calendly)", "Video Call (Zoom/Meet)"],
45
+ "recommended": ["Proposal Tool (PandaDoc)", "WhatsApp Business", "Script Library"],
46
+ "mcp_available": ["hubspot-mcp", "google-calendar-mcp", "zoom-mcp"],
47
+ },
48
+ "BDR": {
49
+ "essential": ["CRM", "Dialer (JustCall/AirCall)", "Email Sequencer (Instantly/Smartlead)"],
50
+ "recommended": ["LinkedIn Sales Navigator", "Lead Database (Apollo/ZoomInfo)", "Intent Data"],
51
+ "mcp_available": ["hubspot-mcp", "gmail-mcp"],
52
+ },
53
+ "SDR": {
54
+ "essential": ["CRM", "Dialer", "Email Sequencer"],
55
+ "recommended": ["LinkedIn Sales Navigator", "Lead Database"],
56
+ "mcp_available": ["hubspot-mcp", "gmail-mcp"],
57
+ },
58
+ "SDS": {
59
+ "essential": ["CRM", "Phone System", "Scheduling Tool"],
60
+ "recommended": ["Lead Scoring Tool", "Call Recording"],
61
+ "mcp_available": ["hubspot-mcp"],
62
+ },
63
+ "SETTER": {
64
+ "essential": ["CRM", "Calendar", "Messaging (WhatsApp/SMS)"],
65
+ "recommended": ["Pre-qualification Form", "Script Library"],
66
+ "mcp_available": ["hubspot-mcp", "google-calendar-mcp"],
67
+ },
68
+ "SALES-MANAGER": {
69
+ "essential": ["CRM (Admin)", "Reporting Dashboard", "Video Call"],
70
+ "recommended": ["Coaching Platform", "Performance Analytics", "Comp Calculator"],
71
+ "mcp_available": ["hubspot-mcp", "google-sheets-mcp"],
72
+ },
73
+ "SALES-LEAD": {
74
+ "essential": ["CRM (Admin)", "Reporting Dashboard"],
75
+ "recommended": ["Team Chat (Slack)", "Training Platform"],
76
+ "mcp_available": ["hubspot-mcp", "slack-mcp"],
77
+ },
78
+ "LNS": {
79
+ "essential": ["CRM", "Order Management", "Communication Tool"],
80
+ "recommended": ["Billing System", "Customer Portal"],
81
+ "mcp_available": ["hubspot-mcp"],
82
+ },
83
+ "CUSTOMER-SUCCESS": {
84
+ "essential": ["CRM", "Support Ticketing (Zendesk/Intercom)", "NPS Tool"],
85
+ "recommended": ["Onboarding Platform", "Knowledge Base", "Health Score Dashboard"],
86
+ "mcp_available": ["hubspot-mcp", "intercom-mcp"],
87
+ },
88
+
89
+ # === MARKETING ===
90
+ "COPYWRITER": {
91
+ "essential": ["Google Docs/Notion", "Reference Library", "Brief Template"],
92
+ "recommended": ["Grammarly", "Headline Analyzer", "Swipe File", "AI Writing Assistant"],
93
+ "mcp_available": ["google-drive-mcp", "notion-mcp"],
94
+ },
95
+ "FUNNEL-STRATEGIST": {
96
+ "essential": ["Funnel Builder (ClickFunnels/Systeme)", "Analytics", "A/B Testing"],
97
+ "recommended": ["Heatmap (Hotjar)", "Tag Manager", "Conversion Tracker"],
98
+ "mcp_available": ["google-analytics-mcp"],
99
+ },
100
+ "MARKETER": {
101
+ "essential": ["Marketing Platform (HubSpot/ActiveCampaign)", "Analytics", "CMS"],
102
+ "recommended": ["Social Scheduler", "SEO Tool", "Design Tool"],
103
+ "mcp_available": ["hubspot-mcp", "google-analytics-mcp"],
104
+ },
105
+ "LAUNCH-STRATEGIST": {
106
+ "essential": ["Project Management (ClickUp)", "Email Platform", "Funnel Builder"],
107
+ "recommended": ["Webinar Platform", "Payment Processor", "Deadline Funnel"],
108
+ "mcp_available": ["clickup-mcp", "google-sheets-mcp"],
109
+ },
110
+
111
+ # === CONTENT/DESIGN ===
112
+ "CONTENT-CREATOR": {
113
+ "essential": ["Content Calendar (Notion/Trello)", "Video Editor", "Social Platforms"],
114
+ "recommended": ["Canva", "Stock Media Library", "Scheduling Tool (Buffer/Later)"],
115
+ "mcp_available": ["notion-mcp"],
116
+ },
117
+ "DESIGNER": {
118
+ "essential": ["Design Tool (Figma/Canva)", "Brand Guidelines", "Asset Library"],
119
+ "recommended": ["Mockup Tool", "Stock Photography", "Color Palette Generator"],
120
+ "mcp_available": ["figma-mcp"],
121
+ },
122
+ "SOCIAL-MEDIA-MANAGER": {
123
+ "essential": ["Social Scheduler (Buffer/Hootsuite)", "Analytics", "Content Calendar"],
124
+ "recommended": ["Community Management Tool", "Listening Tool", "UGC Platform"],
125
+ "mcp_available": ["notion-mcp"],
126
+ },
127
+
128
+ # === GROWTH ===
129
+ "MEDIA-BUYER": {
130
+ "essential": ["Ad Platforms (Meta/Google/TikTok)", "Analytics", "Tracking (UTMs/Pixels)"],
131
+ "recommended": ["Creative Testing Tool", "Attribution Platform", "Reporting Dashboard"],
132
+ "mcp_available": ["google-analytics-mcp", "google-sheets-mcp"],
133
+ },
134
+ "PPC-MANAGER": {
135
+ "essential": ["Google Ads", "Analytics", "Keyword Research Tool"],
136
+ "recommended": ["SEMrush/Ahrefs", "Landing Page Builder", "Bid Management"],
137
+ "mcp_available": ["google-analytics-mcp"],
138
+ },
139
+ "GROWTH-HACKER": {
140
+ "essential": ["Analytics Suite", "A/B Testing", "Email Platform"],
141
+ "recommended": ["Product Analytics (Mixpanel)", "Referral Tool", "Viral Loop Builder"],
142
+ "mcp_available": ["google-analytics-mcp"],
143
+ },
144
+
145
+ # === OPERATIONS ===
146
+ "PROJECT-MANAGER": {
147
+ "essential": ["Project Management (ClickUp/Asana)", "Communication (Slack)", "Docs (Notion)"],
148
+ "recommended": ["Time Tracking", "Resource Planning", "Retrospective Tool"],
149
+ "mcp_available": ["clickup-mcp", "slack-mcp", "notion-mcp"],
150
+ },
151
+ "OPS-MANAGER": {
152
+ "essential": ["Project Management", "Reporting Dashboard", "Process Documentation"],
153
+ "recommended": ["Automation (Zapier/N8N)", "SOP Builder", "KPI Dashboard"],
154
+ "mcp_available": ["clickup-mcp", "google-sheets-mcp"],
155
+ },
156
+ "DATA-ANALYST": {
157
+ "essential": ["BI Tool (Metabase/Looker)", "Spreadsheets (Sheets)", "SQL Access"],
158
+ "recommended": ["Python/R Environment", "Data Pipeline (dbt)", "Visualization (Tableau)"],
159
+ "mcp_available": ["google-sheets-mcp", "postgres-mcp"],
160
+ },
161
+ "TECH-LEAD": {
162
+ "essential": ["IDE (VSCode)", "Git (GitHub)", "CI/CD (GitHub Actions)"],
163
+ "recommended": ["Code Review Tool", "Monitoring (Datadog)", "Documentation (Notion)"],
164
+ "mcp_available": ["github-mcp", "slack-mcp"],
165
+ },
166
+
167
+ # === HR ===
168
+ "HR-DIRECTOR": {
169
+ "essential": ["ATS (Lever/Greenhouse)", "HRIS (Gusto/BambooHR)", "Payroll"],
170
+ "recommended": ["Engagement Survey", "Performance Review Tool", "Onboarding Platform"],
171
+ "mcp_available": ["google-sheets-mcp", "slack-mcp"],
172
+ },
173
+
174
+ # === C-LEVEL ===
175
+ "CRO": {
176
+ "essential": ["CRM (Admin)", "Revenue Dashboard", "Forecasting Tool"],
177
+ "recommended": ["Board Reporting", "Competitive Intelligence", "Strategic Planning"],
178
+ "mcp_available": ["hubspot-mcp", "google-sheets-mcp"],
179
+ },
180
+ "CMO": {
181
+ "essential": ["Marketing Dashboard", "Analytics Suite", "Budget Tracker"],
182
+ "recommended": ["Brand Monitoring", "Market Research", "Creative Approval"],
183
+ "mcp_available": ["google-analytics-mcp", "google-sheets-mcp"],
184
+ },
185
+ "COO": {
186
+ "essential": ["OKR Tool", "Project Portfolio", "Financial Dashboard"],
187
+ "recommended": ["Process Mapping", "Org Chart", "SOP Library"],
188
+ "mcp_available": ["clickup-mcp", "google-sheets-mcp"],
189
+ },
190
+ "CFO": {
191
+ "essential": ["Accounting (QBO/Xero)", "Financial Reporting", "Cash Flow Forecasting"],
192
+ "recommended": ["Tax Planning", "Investor Reporting", "Budget vs Actual"],
193
+ "mcp_available": ["google-sheets-mcp"],
194
+ },
195
+ }
196
+
197
+ # Autonomy levels from SOW
198
+ AUTONOMY_DESCRIPTIONS = {
199
+ 0: {"name": "Reference", "desc": "Consulta apenas. Nao executa."},
200
+ 1: {"name": "Assisted", "desc": "IA prepara, humano executa."},
201
+ 2: {"name": "Supervised", "desc": "IA executa, humano valida."},
202
+ 3: {"name": "Autonomous", "desc": "IA executa, humano monitora."},
203
+ 4: {"name": "Full Auto", "desc": "IA opera sozinha."},
204
+ }
205
+
206
+
207
+ # ---------------------------------------------------------------------------
208
+ # CORE: DISCOVER TOOLS FOR A ROLE
209
+ # ---------------------------------------------------------------------------
210
+ def discover_tools(role_name, registry=None):
211
+ """
212
+ Discover available tools for a role.
213
+
214
+ Returns tool configuration with essential, recommended, mcp, and autonomy.
215
+ """
216
+ role_upper = role_name.upper()
217
+
218
+ # Get from tool registry
219
+ tools = TOOL_REGISTRY.get(role_upper, {
220
+ "essential": ["Project Management Tool", "Communication Tool"],
221
+ "recommended": ["Documentation Tool", "Analytics"],
222
+ "mcp_available": [],
223
+ })
224
+
225
+ # Get autonomy from registry SOW data
226
+ if registry:
227
+ role_data = registry.get("roles", {}).get(role_upper, {})
228
+ autonomy_level = role_data.get("autonomy_level", 50)
229
+ executor_type = role_data.get("executor_type", "Hybrid")
230
+ else:
231
+ autonomy_level = 50
232
+ executor_type = "Hybrid"
233
+
234
+ # Map autonomy percentage to level
235
+ if autonomy_level >= 80:
236
+ autonomy_tier = 4
237
+ elif autonomy_level >= 60:
238
+ autonomy_tier = 3
239
+ elif autonomy_level >= 40:
240
+ autonomy_tier = 2
241
+ elif autonomy_level >= 20:
242
+ autonomy_tier = 1
243
+ else:
244
+ autonomy_tier = 0
245
+
246
+ return {
247
+ "role": role_upper,
248
+ "executor_type": executor_type,
249
+ "autonomy_level": autonomy_level,
250
+ "autonomy_tier": autonomy_tier,
251
+ "autonomy_description": AUTONOMY_DESCRIPTIONS.get(autonomy_tier, {}),
252
+ "tools": {
253
+ "essential": tools.get("essential", []),
254
+ "recommended": tools.get("recommended", []),
255
+ "mcp_available": tools.get("mcp_available", []),
256
+ },
257
+ "command_loader": _generate_command_loader(role_upper),
258
+ }
259
+
260
+
261
+ def discover_all_tools(registry=None, save=True):
262
+ """Discover tools for all roles in registry."""
263
+ if registry is None:
264
+ registry = load_registry()
265
+
266
+ roles = registry.get("roles", {})
267
+ results = []
268
+
269
+ for role_name, role_data in roles.items():
270
+ ws = role_data.get("weighted_score", 0)
271
+ if ws < 5: # Skip insignificant roles
272
+ continue
273
+
274
+ discovery = discover_tools(role_name, registry=registry)
275
+ results.append(discovery)
276
+
277
+ # Update registry
278
+ if save:
279
+ role_data["tools_discovered"] = True
280
+ role_data["tools_essential"] = len(discovery["tools"]["essential"])
281
+ role_data["tools_mcp"] = len(discovery["tools"]["mcp_available"])
282
+ role_data["autonomy_tier"] = discovery["autonomy_tier"]
283
+
284
+ if save:
285
+ save_registry(registry)
286
+
287
+ return results
288
+
289
+
290
+ # ---------------------------------------------------------------------------
291
+ # COMMAND LOADER GENERATOR
292
+ # ---------------------------------------------------------------------------
293
+ def _generate_command_loader(role_name):
294
+ """
295
+ Generate Command Loader pattern for an agent.
296
+
297
+ Defines mandatory tasks and commands that must be loaded
298
+ when the agent is activated (Squad Creator CRITICAL_LOADER_RULE).
299
+ """
300
+ role_lower = role_name.lower().replace("-", " ")
301
+
302
+ # Task templates per role category
303
+ task_map = {
304
+ "closer": [
305
+ {"command": "*execute-close", "task": "closer-call-framework.md", "desc": "Framework de call completo"},
306
+ {"command": "*objection-handle", "task": "closer-objections.md", "desc": "Tratamento de objecoes"},
307
+ {"command": "*pipeline-review", "task": "closer-pipeline.md", "desc": "Review de pipeline"},
308
+ ],
309
+ "bdr": [
310
+ {"command": "*outbound-sequence", "task": "bdr-sequence.md", "desc": "Sequencia de outbound"},
311
+ {"command": "*qualify-lead", "task": "bdr-qualification.md", "desc": "Qualificacao de lead"},
312
+ {"command": "*cold-call", "task": "bdr-cold-call.md", "desc": "Script de cold call"},
313
+ ],
314
+ "setter": [
315
+ {"command": "*pre-qualify", "task": "setter-prequalify.md", "desc": "Pre-qualificacao"},
316
+ {"command": "*book-call", "task": "setter-booking.md", "desc": "Agendamento de call"},
317
+ ],
318
+ "copywriter": [
319
+ {"command": "*write-copy", "task": "copy-creation.md", "desc": "Criacao de copy"},
320
+ {"command": "*audit-copy", "task": "copy-audit.md", "desc": "Audit de copy existente"},
321
+ ],
322
+ "media buyer": [
323
+ {"command": "*campaign-setup", "task": "media-campaign.md", "desc": "Setup de campanha"},
324
+ {"command": "*optimize-ads", "task": "media-optimization.md", "desc": "Otimizacao de ads"},
325
+ ],
326
+ "content creator": [
327
+ {"command": "*create-content", "task": "content-creation.md", "desc": "Criacao de conteudo"},
328
+ {"command": "*content-calendar", "task": "content-planning.md", "desc": "Planejamento de conteudo"},
329
+ ],
330
+ "sales manager": [
331
+ {"command": "*team-review", "task": "manager-review.md", "desc": "Review de equipe"},
332
+ {"command": "*run-1on1", "task": "manager-1on1.md", "desc": "Conduzir 1-on-1"},
333
+ {"command": "*comp-plan", "task": "manager-compensation.md", "desc": "Plano de compensacao"},
334
+ ],
335
+ "data analyst": [
336
+ {"command": "*run-analysis", "task": "analyst-report.md", "desc": "Rodar analise"},
337
+ {"command": "*build-dashboard", "task": "analyst-dashboard.md", "desc": "Construir dashboard"},
338
+ ],
339
+ }
340
+
341
+ # Find best match
342
+ for key, tasks in task_map.items():
343
+ if key in role_lower:
344
+ return {
345
+ "critical_rule": "Ao ativar este agente, CARREGAR as tasks associadas ANTES de executar.",
346
+ "mandatory_tasks": tasks,
347
+ }
348
+
349
+ # Generic fallback
350
+ return {
351
+ "critical_rule": "Ao ativar este agente, CARREGAR as tasks associadas ANTES de executar.",
352
+ "mandatory_tasks": [
353
+ {"command": f"*execute-{role_name.lower()}", "task": f"{role_name.lower()}-main.md", "desc": "Task principal"},
354
+ ],
355
+ }
356
+
357
+
358
+ def generate_command_loader_md(discovery):
359
+ """Generate Command Loader markdown section for agent template."""
360
+ cl = discovery["command_loader"]
361
+ lines = [
362
+ "## COMMAND LOADER",
363
+ f"> REGRA CRITICA: {cl['critical_rule']}",
364
+ "",
365
+ "### Tasks Obrigatorias",
366
+ "| Comando | Task | Descricao |",
367
+ "|---------|------|-----------|",
368
+ ]
369
+ for task in cl["mandatory_tasks"]:
370
+ lines.append(f"| {task['command']} | {task['task']} | {task['desc']} |")
371
+
372
+ lines.extend([
373
+ "",
374
+ "### Tools Disponiveis",
375
+ "| Tool | Tipo | Status |",
376
+ "|------|------|--------|",
377
+ ])
378
+ for tool in discovery["tools"]["essential"]:
379
+ lines.append(f"| {tool} | Essential | Pendente |")
380
+ for tool in discovery["tools"]["mcp_available"]:
381
+ lines.append(f"| {tool} | MCP | Configuravel |")
382
+
383
+ return "\n".join(lines)
384
+
385
+
386
+ # ---------------------------------------------------------------------------
387
+ # CLI
388
+ # ---------------------------------------------------------------------------
389
+ def main():
390
+ if len(sys.argv) > 1 and sys.argv[1] == "--all":
391
+ print("\n=== TOOL DISCOVERY v1.0 ===\n")
392
+ results = discover_all_tools(save=True)
393
+
394
+ for d in results:
395
+ print(f" {d['role']:25s} executor={d['executor_type']:8s} "
396
+ f"autonomy={d['autonomy_level']}% (tier {d['autonomy_tier']})")
397
+ print(f" Essential: {', '.join(d['tools']['essential'][:3])}")
398
+ if d["tools"]["mcp_available"]:
399
+ print(f" MCP: {', '.join(d['tools']['mcp_available'])}")
400
+ print()
401
+
402
+ print(f" Total roles with tools: {len(results)}")
403
+
404
+ elif len(sys.argv) > 1 and sys.argv[1] != "--help":
405
+ role = sys.argv[1].upper()
406
+ print(f"\n=== Tool Discovery for {role} ===\n")
407
+ d = discover_tools(role)
408
+ print(f" Executor Type: {d['executor_type']}")
409
+ print(f" Autonomy: {d['autonomy_level']}% (Tier {d['autonomy_tier']})")
410
+ print(f"\n Essential Tools:")
411
+ for t in d["tools"]["essential"]:
412
+ print(f" - {t}")
413
+ print(f"\n Recommended Tools:")
414
+ for t in d["tools"]["recommended"]:
415
+ print(f" - {t}")
416
+ if d["tools"]["mcp_available"]:
417
+ print(f"\n MCP Available:")
418
+ for t in d["tools"]["mcp_available"]:
419
+ print(f" - {t}")
420
+ print(f"\n Command Loader:")
421
+ for task in d["command_loader"]["mandatory_tasks"]:
422
+ print(f" {task['command']:25s} -> {task['task']}")
423
+
424
+ else:
425
+ print("Uso:")
426
+ print(" python3 tool_discovery.py --all # Discover tools for all roles")
427
+ print(" python3 tool_discovery.py CLOSER # Discover tools for specific role")
428
+ sys.exit(1)
429
+
430
+
431
+ if __name__ == "__main__":
432
+ main()
@@ -0,0 +1,106 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ JSON Integrity Validator
4
+
5
+ Scans all .json files in the project (excluding node_modules, .git)
6
+ and validates they contain valid JSON.
7
+
8
+ Exit codes:
9
+ 0 = All JSON files are valid
10
+ 1 = One or more JSON files are invalid
11
+ """
12
+
13
+ import json
14
+ import sys
15
+ from pathlib import Path
16
+
17
+ # Directories to exclude from scan
18
+ EXCLUDED_DIRS = {
19
+ "node_modules",
20
+ ".git",
21
+ ".env",
22
+ ".venv",
23
+ "venv",
24
+ "__pycache__",
25
+ ".pytest_cache",
26
+ ".mypy_cache",
27
+ }
28
+
29
+
30
+ def should_exclude(path: Path) -> bool:
31
+ """Check if path should be excluded from scan."""
32
+ for part in path.parts:
33
+ if part in EXCLUDED_DIRS:
34
+ return True
35
+ return False
36
+
37
+
38
+ def validate_json_file(file_path: Path) -> bool:
39
+ """
40
+ Validate a single JSON file.
41
+
42
+ Returns:
43
+ True if valid JSON, False otherwise
44
+ """
45
+ try:
46
+ with open(file_path, 'r', encoding='utf-8') as f:
47
+ json.load(f)
48
+ return True
49
+ except json.JSONDecodeError as e:
50
+ print(f"āŒ FAIL: {file_path}")
51
+ print(f" JSON Error: {e}")
52
+ return False
53
+ except Exception as e:
54
+ print(f"āŒ FAIL: {file_path}")
55
+ print(f" Error: {e}")
56
+ return False
57
+
58
+
59
+ def main():
60
+ """Main validation function."""
61
+ # Start from project root (resolve dynamically)
62
+ project_root = Path(__file__).resolve().parents[2]
63
+
64
+ # Collect all JSON files
65
+ json_files = []
66
+ for json_file in project_root.rglob("*.json"):
67
+ if not should_exclude(json_file):
68
+ json_files.append(json_file)
69
+
70
+ if not json_files:
71
+ print("āš ļø No JSON files found to validate")
72
+ return 0
73
+
74
+ print(f"šŸ“‹ Validating {len(json_files)} JSON files...\n")
75
+
76
+ passed = 0
77
+ failed = 0
78
+
79
+ for json_file in sorted(json_files):
80
+ # Print relative path for readability
81
+ rel_path = json_file.relative_to(project_root)
82
+
83
+ if validate_json_file(json_file):
84
+ print(f"āœ… PASS: {rel_path}")
85
+ passed += 1
86
+ else:
87
+ failed += 1
88
+
89
+ # Summary
90
+ print(f"\n{'='*80}")
91
+ print(f"šŸ“Š SUMMARY")
92
+ print(f"{'='*80}")
93
+ print(f"āœ… Passed: {passed}/{len(json_files)}")
94
+ print(f"āŒ Failed: {failed}/{len(json_files)}")
95
+
96
+ if failed == 0:
97
+ print(f"\nšŸŽ‰ All JSON files are valid!")
98
+ return 0
99
+ else:
100
+ print(f"\nāš ļø {failed} JSON file(s) failed validation")
101
+ return 1
102
+
103
+
104
+ if __name__ == "__main__":
105
+ exit_code = main()
106
+ sys.exit(exit_code)