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,310 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Layer Validation Script for Mega Brain Repository
4
+
5
+ Validates classification conformance: checks that no L3/NEVER files are
6
+ tracked by git (would indicate accidental commit of personal/sensitive data).
7
+
8
+ Usage:
9
+ python3 core/intelligence/validate_layers.py # Validate only, exit 0/1
10
+ python3 core/intelligence/validate_layers.py --report # Validate + write reports
11
+ python3 core/intelligence/validate_layers.py --verbose # Print each checked file
12
+
13
+ Exit codes:
14
+ 0 = PASS (no hard violations — CI green)
15
+ 1 = FAIL (hard violations found — CI red)
16
+ """
17
+
18
+ import os
19
+ import sys
20
+ import json
21
+ import argparse
22
+ import subprocess
23
+ from pathlib import Path
24
+ from datetime import datetime, timezone
25
+
26
+ # Import from sibling module in same directory
27
+ sys.path.insert(0, str(Path(__file__).parent))
28
+ from audit_layers import classify_path, scan_repository
29
+
30
+
31
+ def _unquote_git_path(line: str) -> str:
32
+ """Decode git's C-style quoted path (octal escapes + surrounding quotes).
33
+
34
+ Git quotes paths containing non-ASCII or special characters, e.g.:
35
+ "knowledge/dna 2/skills/unknown/benefi\\314\\201cios.md"
36
+ This decodes octal escapes to bytes, then decodes as UTF-8.
37
+ """
38
+ if not (line.startswith('"') and line.endswith('"')):
39
+ return line
40
+ inner = line[1:-1]
41
+ # Decode octal escapes (\\NNN) to raw bytes
42
+ parts = []
43
+ i = 0
44
+ while i < len(inner):
45
+ if inner[i] == '\\' and i + 3 < len(inner) and inner[i+1:i+4].isdigit():
46
+ parts.append(int(inner[i+1:i+4], 8))
47
+ i += 4
48
+ elif inner[i] == '\\' and i + 1 < len(inner):
49
+ # Other escape sequences
50
+ esc = inner[i+1]
51
+ if esc == 'n':
52
+ parts.append(ord('\n'))
53
+ elif esc == 't':
54
+ parts.append(ord('\t'))
55
+ elif esc == '\\':
56
+ parts.append(ord('\\'))
57
+ elif esc == '"':
58
+ parts.append(ord('"'))
59
+ else:
60
+ parts.append(ord(inner[i]))
61
+ parts.append(ord(esc))
62
+ i += 2
63
+ else:
64
+ parts.append(ord(inner[i]))
65
+ i += 1
66
+ return bytes(parts).decode('utf-8', errors='replace')
67
+
68
+
69
+ def get_git_tracked_files(repo_root: Path) -> set:
70
+ """Return the set of git-tracked file paths (relative to repo root)."""
71
+ result = subprocess.run(
72
+ ['git', 'ls-files'],
73
+ capture_output=True, text=True, cwd=str(repo_root)
74
+ )
75
+ if result.returncode != 0:
76
+ print(f"WARNING: git ls-files failed: {result.stderr.strip()}", file=sys.stderr)
77
+ return set()
78
+ lines = result.stdout.strip().splitlines()
79
+ return {_unquote_git_path(line) for line in lines} if lines else set()
80
+
81
+
82
+ def validate_repository(repo_root: Path, verbose: bool = False) -> dict:
83
+ """
84
+ Validate layer conformance for git-tracked files.
85
+
86
+ Returns a structured report dict.
87
+ """
88
+ tracked_files = get_git_tracked_files(repo_root)
89
+
90
+ hard_violations = [] # L3 or NEVER files that are git-tracked
91
+ soft_violations = [] # DELETE files still tracked
92
+ review_tracked = [] # REVIEW files tracked (informational only)
93
+
94
+ if verbose:
95
+ print(f"Checking {len(tracked_files)} git-tracked files...")
96
+ print()
97
+
98
+ for rel_path_str in sorted(tracked_files):
99
+ abs_path = repo_root / rel_path_str
100
+ try:
101
+ layer, reason = classify_path(abs_path, repo_root, is_file=True)
102
+ except Exception as exc:
103
+ if verbose:
104
+ print(f" [ERROR] {rel_path_str}: {exc}")
105
+ continue
106
+
107
+ if verbose:
108
+ print(f" [{layer}] {rel_path_str}")
109
+
110
+ if layer in ('L3', 'NEVER'):
111
+ hard_violations.append({
112
+ 'path': rel_path_str,
113
+ 'layer': layer,
114
+ 'reason': reason,
115
+ })
116
+ elif layer == 'DELETE':
117
+ soft_violations.append({
118
+ 'path': rel_path_str,
119
+ 'layer': layer,
120
+ 'reason': reason,
121
+ })
122
+ elif layer == 'REVIEW':
123
+ review_tracked.append({
124
+ 'path': rel_path_str,
125
+ 'reason': reason,
126
+ })
127
+
128
+ hard_count = len(hard_violations)
129
+ soft_count = len(soft_violations)
130
+ review_count = len(review_tracked)
131
+ status = 'PASS' if hard_count == 0 else 'FAIL'
132
+
133
+ report = {
134
+ 'generated_at': datetime.now(timezone.utc).isoformat().replace('+00:00', 'Z'),
135
+ 'repo_root': str(repo_root),
136
+ 'git_tracked_files': len(tracked_files),
137
+ 'violations': {
138
+ 'hard': hard_violations,
139
+ 'soft': soft_violations,
140
+ },
141
+ 'warnings': {
142
+ 'review_tracked': review_tracked,
143
+ },
144
+ 'summary': {
145
+ 'hard_violation_count': hard_count,
146
+ 'soft_violation_count': soft_count,
147
+ 'review_tracked_count': review_count,
148
+ 'status': status,
149
+ },
150
+ }
151
+
152
+ return report
153
+
154
+
155
+ def print_summary(report: dict) -> None:
156
+ """Print a human-readable summary to stdout."""
157
+ s = report['summary']
158
+ status_icon = '✅' if s['status'] == 'PASS' else '❌'
159
+ print()
160
+ print('=' * 60)
161
+ print('LAYER VALIDATION SUMMARY')
162
+ print('=' * 60)
163
+ print(f"Git-tracked files checked : {report['git_tracked_files']}")
164
+ print(f"Hard violations (L3/NEVER): {s['hard_violation_count']}")
165
+ print(f"Soft warnings (DELETE) : {s['soft_violation_count']}")
166
+ print(f"Review items tracked : {s['review_tracked_count']}")
167
+ print(f"Status : {status_icon} {s['status']}")
168
+ print('=' * 60)
169
+
170
+ if s['hard_violation_count'] > 0:
171
+ print()
172
+ print('HARD VIOLATIONS (must fix before merge):')
173
+ for v in report['violations']['hard']:
174
+ print(f" [{v['layer']}] {v['path']} — {v['reason']}")
175
+
176
+ if s['soft_violation_count'] > 0:
177
+ print()
178
+ print('SOFT WARNINGS (DELETE items still tracked):')
179
+ for v in report['violations']['soft']:
180
+ print(f" [DELETE] {v['path']} — {v['reason']}")
181
+
182
+ print()
183
+
184
+
185
+ def generate_markdown_report(report: dict, output_path: Path) -> None:
186
+ """Write human-readable markdown validation report."""
187
+ s = report['summary']
188
+ status_icon = '✅ PASS' if s['status'] == 'PASS' else '❌ FAIL'
189
+
190
+ with open(output_path, 'w') as f:
191
+ f.write('# Mega Brain Layer Validation Report\n\n')
192
+ f.write(f"**Generated:** {report['generated_at']}\n")
193
+ f.write(f"**Repository:** {report['repo_root']}\n")
194
+ f.write(f"**Git-tracked files checked:** {report['git_tracked_files']}\n\n")
195
+
196
+ f.write(f"## Status: {status_icon}\n\n")
197
+ f.write('| Metric | Count |\n')
198
+ f.write('|--------|------:|\n')
199
+ f.write(f"| Hard violations (L3/NEVER tracked by git) | {s['hard_violation_count']} |\n")
200
+ f.write(f"| Soft warnings (DELETE tracked by git) | {s['soft_violation_count']} |\n")
201
+ f.write(f"| Review items tracked | {s['review_tracked_count']} |\n\n")
202
+
203
+ # Hard violations
204
+ f.write('## Hard Violations\n\n')
205
+ if report['violations']['hard']:
206
+ f.write('These files are classified as L3 or NEVER but are tracked by git. '
207
+ 'This is a security/privacy risk.\n\n')
208
+ f.write('| Path | Layer | Reason |\n')
209
+ f.write('|------|-------|--------|\n')
210
+ for v in report['violations']['hard']:
211
+ f.write(f"| `{v['path']}` | {v['layer']} | {v['reason']} |\n")
212
+ else:
213
+ f.write('No hard violations found.\n')
214
+
215
+ # Soft warnings
216
+ f.write('\n## Soft Warnings (DELETE items still tracked)\n\n')
217
+ if report['violations']['soft']:
218
+ f.write('These files are marked for deletion but are still in git index.\n\n')
219
+ f.write('| Path | Reason |\n')
220
+ f.write('|------|--------|\n')
221
+ for v in report['violations']['soft']:
222
+ f.write(f"| `{v['path']}` | {v['reason']} |\n")
223
+ else:
224
+ f.write('No DELETE items tracked by git.\n')
225
+
226
+ # Review items
227
+ f.write('\n## Review Items Tracked\n\n')
228
+ review_list = report['warnings']['review_tracked']
229
+ f.write(f"**{len(review_list)} REVIEW-classified files** are tracked by git. "
230
+ 'These need human classification but are not violations.\n')
231
+ if review_list:
232
+ f.write('\nFirst 20 paths:\n\n')
233
+ for item in review_list[:20]:
234
+ f.write(f"- `{item['path']}`\n")
235
+ if len(review_list) > 20:
236
+ f.write(f"\n*...and {len(review_list) - 20} more. Run with --report to see full list in JSON.*\n")
237
+
238
+ # How to fix
239
+ f.write('\n## How to Fix Violations\n\n')
240
+ f.write('**L3 file accidentally committed:**\n')
241
+ f.write('```bash\n')
242
+ f.write('# Remove from git index (keeps local file)\n')
243
+ f.write('git rm --cached <path>\n')
244
+ f.write('# Add to .gitignore to prevent re-tracking\n')
245
+ f.write('echo "<path>" >> .gitignore\n')
246
+ f.write('```\n\n')
247
+ f.write('**NEVER file accidentally committed:**\n')
248
+ f.write('```bash\n')
249
+ f.write('# Remove from git history entirely (use BFG or filter-branch)\n')
250
+ f.write('git rm --cached <path>\n')
251
+ f.write('echo "<path>" >> .gitignore\n')
252
+ f.write('# If file contains secrets, rotate all credentials immediately\n')
253
+ f.write('```\n\n')
254
+ f.write('**Use as CI gate:**\n')
255
+ f.write('```bash\n')
256
+ f.write('python3 core/intelligence/validate_layers.py\n')
257
+ f.write('# Exit code 0 = PASS, exit code 1 = FAIL\n')
258
+ f.write('```\n')
259
+
260
+
261
+ def main():
262
+ parser = argparse.ArgumentParser(
263
+ description='Validate Mega Brain layer conformance (CI-runnable)'
264
+ )
265
+ parser.add_argument(
266
+ '--report',
267
+ action='store_true',
268
+ help='Write JSON + Markdown reports to docs/audit/',
269
+ )
270
+ parser.add_argument(
271
+ '--verbose',
272
+ action='store_true',
273
+ help='Print each git-tracked file as it is checked',
274
+ )
275
+ args = parser.parse_args()
276
+
277
+ # Resolve repo root: core/intelligence/ -> core/ -> mega-brain/
278
+ script_path = Path(__file__).resolve()
279
+ repo_root = script_path.parent.parent.parent
280
+
281
+ if not (repo_root / 'core').exists():
282
+ print(f"ERROR: Could not find repo root. Expected core/ in {repo_root}", file=sys.stderr)
283
+ sys.exit(1)
284
+
285
+ print(f"Repository: {repo_root}")
286
+ print('Running layer validation...')
287
+
288
+ report = validate_repository(repo_root, verbose=args.verbose)
289
+ print_summary(report)
290
+
291
+ if args.report:
292
+ output_dir = repo_root / 'docs' / 'audit'
293
+ output_dir.mkdir(parents=True, exist_ok=True)
294
+
295
+ json_path = output_dir / 'VALIDATION-REPORT.json'
296
+ with open(json_path, 'w') as f:
297
+ json.dump(report, f, indent=2)
298
+ print(f"✅ JSON report written to: {json_path}")
299
+
300
+ md_path = output_dir / 'VALIDATION-REPORT.md'
301
+ generate_markdown_report(report, md_path)
302
+ print(f"✅ Markdown report written to: {md_path}")
303
+ print()
304
+
305
+ # Exit 0 = PASS, exit 1 = FAIL (hard violations present)
306
+ sys.exit(0 if report['summary']['hard_violation_count'] == 0 else 1)
307
+
308
+
309
+ if __name__ == '__main__':
310
+ main()
@@ -0,0 +1,94 @@
1
+ #!/usr/bin/env python3
2
+ """Spot-check verification for audit_layers.py classifier. Tests known file->layer mappings."""
3
+ import sys
4
+ from pathlib import Path
5
+
6
+ sys.path.insert(0, str(Path(__file__).parent))
7
+ from audit_layers import classify_path
8
+
9
+ REPO_ROOT = Path(__file__).resolve().parent.parent.parent
10
+
11
+ # (relative_path, expected_layer, description)
12
+ SPOT_CHECKS = [
13
+ # L1 — Core engine
14
+ ('core/tasks/HO-TP-001.md', 'L1', 'Core task file'),
15
+ ('bin/cli.js', 'L1', 'CLI entry point'),
16
+ ('.claude/CLAUDE.md', 'L1', 'Claude integration'),
17
+ ('docs/audit/AUDIT-REPORT.md', 'L1', 'Documentation'),
18
+ # L1 — Root project files
19
+ ('package.json', 'L1', 'NPM package config'),
20
+ ('package-lock.json', 'L1', 'NPM lockfile'),
21
+ ('.gitignore', 'L1', 'Git ignore rules'),
22
+ ('.npmignore', 'L1', 'NPM ignore rules'),
23
+ ('.env.example', 'L1', 'Environment template'),
24
+ ('README.md', 'L1', 'Root documentation'),
25
+ ('CONTRIBUTING.md', 'L1', 'Contribution guide'),
26
+ ('QUICK-START.md', 'L1', 'Quick start guide'),
27
+ ('requirements.txt', 'L1', 'Python dependencies'),
28
+ ('.gitattributes', 'L1', 'Git attributes'),
29
+ ('.gitleaks.toml', 'L1', 'Secret scanning config'),
30
+ # L1 — GitHub
31
+ ('.github/workflows/publish.yml', 'L1', 'CI publish workflow'),
32
+ ('.github/CODEOWNERS', 'L1', 'Code ownership'),
33
+ ('.github/ISSUE_TEMPLATE/bug.md', 'L1', 'Issue template'),
34
+ # L1 — Planning
35
+ ('.planning/ROADMAP.md', 'L1', 'GSD roadmap'),
36
+ ('.planning/STATE.md', 'L1', 'GSD state'),
37
+ ('.planning/phases/09-layer-validation/09-01-PLAN.md', 'L1', 'Phase plan'),
38
+ # L1 — IDE configs
39
+ ('.cursor/rules/mega-brain.md', 'L1', 'Cursor IDE rules'),
40
+ ('.windsurf/agents.yaml', 'L1', 'Windsurf agents'),
41
+ ('.antigravity/README.md', 'L1', 'Antigravity docs'),
42
+ # L1 — Agents scaffold
43
+ ('agents/boardroom/README.md', 'L1', 'Boardroom docs'),
44
+ ('agents/constitution/BASE-CONSTITUTION.md', 'L1', 'Agent constitution'),
45
+ ('agents/AGENT-INDEX.yaml', 'L1', 'Agent index'),
46
+ ('agents/conclave/CONCLAVE-PROTOCOL.md', 'L1', 'Conclave protocol'),
47
+ # L1 — Structure markers
48
+ ('inbox/.gitkeep', 'L1', 'Empty structure marker'),
49
+ ('agents/cargo/.gitkeep', 'L1', 'Empty structure marker'),
50
+ ('knowledge/.gitkeep', 'L1', 'Empty structure marker'),
51
+ # L2 — Premium content
52
+ ('agents/minds/some-agent/AGENT.md', 'L2', 'Mind clone agent'),
53
+ ('agents/cargo/some-role/AGENT.md', 'L2', 'Cargo agent'),
54
+ ('knowledge/dossiers/some-file.md', 'L2', 'Knowledge dossier'),
55
+ # L3 — Personal data
56
+ ('inbox/some-file.txt', 'L3', 'Inbox content'),
57
+ ('logs/some-log.md', 'L3', 'Session log'),
58
+ ('.claude/sessions/SESSION-2026.md', 'L3', 'Claude session'),
59
+ # NEVER — Secrets and system files
60
+ ('.env', 'NEVER', 'Environment secrets'),
61
+ ('credentials.json', 'NEVER', 'OAuth credentials'),
62
+ ('.mcp.json', 'NEVER', 'MCP config with tokens'),
63
+ ('.DS_Store', 'NEVER', 'macOS metadata'),
64
+ # DELETE — Obsolete and stale
65
+ ('some/path/finance-agent/file.md', 'DELETE', 'Obsolete finance agent'),
66
+ ('artifacts/README 2.md', 'DELETE', 'Stale macOS duplicate'),
67
+ ('knowledge/TAG-RESOLVER 2.json', 'DELETE', 'Stale macOS duplicate'),
68
+ ]
69
+
70
+ def main():
71
+ passed = 0
72
+ failed = 0
73
+ errors = []
74
+ for rel_path, expected, desc in SPOT_CHECKS:
75
+ abs_path = REPO_ROOT / rel_path
76
+ try:
77
+ layer, reason = classify_path(abs_path, REPO_ROOT, is_file=True)
78
+ if layer == expected:
79
+ passed += 1
80
+ else:
81
+ failed += 1
82
+ errors.append(f" FAIL: {rel_path} — expected {expected}, got {layer} ({reason})")
83
+ except Exception as e:
84
+ failed += 1
85
+ errors.append(f" ERROR: {rel_path} — {e}")
86
+ print(f"Spot checks: {passed} passed, {failed} failed (total {passed + failed})")
87
+ if errors:
88
+ print()
89
+ for err in errors:
90
+ print(err)
91
+ return 0 if failed == 0 else 1
92
+
93
+ if __name__ == '__main__':
94
+ sys.exit(main())