sinapse-ai 9.3.0 → 9.5.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 (432) hide show
  1. package/.claude/CLAUDE.md +60 -341
  2. package/.claude/hooks/enforce-architecture-first.py +197 -197
  3. package/.claude/hooks/enforce-git-push-authority.sh +25 -4
  4. package/.claude/hooks/mind-clone-governance.py +193 -193
  5. package/.claude/hooks/read-protection.py +152 -152
  6. package/.claude/hooks/sql-governance.py +183 -183
  7. package/.claude/hooks/verify-packages.cjs +83 -0
  8. package/.claude/hooks/write-path-validation.py +195 -195
  9. package/.claude/rules/agent-authority.md +6 -0
  10. package/.claude/rules/agent-handoff.md +5 -0
  11. package/.claude/rules/cross-squad-routing.md +5 -0
  12. package/.claude/rules/hook-governance.md +7 -0
  13. package/.claude/rules/mandatory-delegation.md +24 -0
  14. package/.claude/rules/mcp-usage.md +3 -1
  15. package/.claude/rules/project-intelligence.md +63 -0
  16. package/.claude/rules/response-format.md +4 -0
  17. package/.claude/rules/safe-collaboration.md +14 -2
  18. package/.claude/rules/security-data-protection.md +27 -0
  19. package/.claude/rules/squad-awareness.md +96 -68
  20. package/.claude/rules/token-economy.md +148 -0
  21. package/.claude/rules/tool-examples.md +6 -0
  22. package/.claude/rules/workflow-execution.md +7 -0
  23. package/.codex/agents/analyst.md +342 -71
  24. package/.codex/agents/architect.md +533 -68
  25. package/.codex/agents/data-engineer.md +530 -106
  26. package/.codex/agents/developer.md +657 -0
  27. package/.codex/agents/devops.md +639 -69
  28. package/.codex/agents/product-lead.md +362 -0
  29. package/.codex/agents/project-lead.md +405 -0
  30. package/.codex/agents/quality-gate.md +538 -0
  31. package/.codex/agents/sinapse-orqx.md +9 -7
  32. package/.codex/agents/sprint-lead.md +315 -0
  33. package/.codex/agents/squad-creator.md +402 -0
  34. package/.codex/agents/ux-design-expert.md +523 -0
  35. package/.codex/delegation-matrix.json +756 -44
  36. package/.codex/handoff-packet.schema.json +30 -6
  37. package/.sinapse-ai/core/code-intel/registry-syncer.js +56 -3
  38. package/.sinapse-ai/core/doctor/checks/agent-memory.js +5 -1
  39. package/.sinapse-ai/core/doctor/checks/claude-md.js +4 -1
  40. package/.sinapse-ai/core/doctor/checks/code-intel.js +5 -1
  41. package/.sinapse-ai/core/doctor/checks/commands-count.js +4 -1
  42. package/.sinapse-ai/core/doctor/checks/constitution-consistency.js +4 -1
  43. package/.sinapse-ai/core/doctor/checks/core-config.js +4 -1
  44. package/.sinapse-ai/core/doctor/checks/entity-registry.js +6 -1
  45. package/.sinapse-ai/core/doctor/checks/git-hooks.js +5 -1
  46. package/.sinapse-ai/core/doctor/checks/graph-dashboard.js +4 -1
  47. package/.sinapse-ai/core/doctor/checks/hooks-claude-count.js +5 -1
  48. package/.sinapse-ai/core/doctor/checks/ide-sync.js +4 -1
  49. package/.sinapse-ai/core/doctor/checks/node-version.js +4 -1
  50. package/.sinapse-ai/core/doctor/checks/npm-packages.js +4 -1
  51. package/.sinapse-ai/core/doctor/checks/rules-files.js +4 -1
  52. package/.sinapse-ai/core/doctor/checks/settings-json.js +4 -1
  53. package/.sinapse-ai/core/doctor/checks/skills-count.js +4 -1
  54. package/.sinapse-ai/core/doctor/index.js +157 -50
  55. package/.sinapse-ai/core/ids/registry-updater.js +6 -1
  56. package/.sinapse-ai/core/logger/index.js +319 -0
  57. package/.sinapse-ai/core/orchestration/terminal-spawner.js +2 -2
  58. package/.sinapse-ai/core/telemetry/index.js +247 -0
  59. package/.sinapse-ai/data/entity-registry.yaml +1060 -808
  60. package/.sinapse-ai/development/agents/analyst.md +90 -0
  61. package/.sinapse-ai/development/agents/architect.md +78 -0
  62. package/.sinapse-ai/development/agents/data-engineer.md +38 -0
  63. package/.sinapse-ai/development/agents/developer.md +97 -0
  64. package/.sinapse-ai/development/agents/devops.md +121 -0
  65. package/.sinapse-ai/development/agents/product-lead.md +27 -0
  66. package/.sinapse-ai/development/agents/project-lead.md +28 -0
  67. package/.sinapse-ai/development/agents/quality-gate.md +89 -0
  68. package/.sinapse-ai/development/agents/sprint-lead/MEMORY.md +8 -0
  69. package/.sinapse-ai/development/agents/sprint-lead.md +28 -0
  70. package/.sinapse-ai/development/agents/squad-creator.md +58 -0
  71. package/.sinapse-ai/development/agents/ux-design-expert.md +28 -0
  72. package/.sinapse-ai/development/checklists/agent-quality-gate.md +27 -0
  73. package/.sinapse-ai/development/checklists/brownfield-compatibility-checklist.md +20 -0
  74. package/.sinapse-ai/development/checklists/code-review-checklist.md +106 -0
  75. package/.sinapse-ai/development/checklists/issue-triage-checklist.md +9 -0
  76. package/.sinapse-ai/development/checklists/memory-audit-checklist.md +16 -0
  77. package/.sinapse-ai/development/checklists/pr-quality-checklist.md +72 -0
  78. package/.sinapse-ai/development/checklists/security-deployment-checklist.md +54 -0
  79. package/.sinapse-ai/development/checklists/self-critique-checklist.md +19 -1
  80. package/.sinapse-ai/development/knowledge-base/agent-communication-protocol.md +127 -0
  81. package/.sinapse-ai/development/knowledge-base/database-scaling-patterns.md +374 -0
  82. package/.sinapse-ai/development/knowledge-base/environment-deployment-patterns.md +353 -0
  83. package/.sinapse-ai/development/knowledge-base/gotchas-patterns.md +224 -0
  84. package/.sinapse-ai/development/knowledge-base/infrastructure-decision-framework.md +221 -0
  85. package/.sinapse-ai/development/knowledge-base/security-pre-deploy-checklist.md +410 -0
  86. package/.sinapse-ai/development/knowledge-base/software-architecture-patterns.md +299 -0
  87. package/.sinapse-ai/development/knowledge-base/token-economy-guide.md +198 -0
  88. package/.sinapse-ai/development/scripts/populate-entity-registry.js +5 -1
  89. package/.sinapse-ai/development/skills/captcha-handler.md +82 -0
  90. package/.sinapse-ai/development/skills/chrome-brain.md +81 -0
  91. package/.sinapse-ai/development/skills/debug.md +57 -0
  92. package/.sinapse-ai/development/skills/deploy-readiness.md +93 -0
  93. package/.sinapse-ai/development/skills/fast-review.md +69 -0
  94. package/.sinapse-ai/development/skills/model-router.md +92 -0
  95. package/.sinapse-ai/development/skills/research-synthesis.md +77 -0
  96. package/.sinapse-ai/development/skills/security-scan.md +73 -0
  97. package/.sinapse-ai/development/skills/sinapse-methodology.md +175 -0
  98. package/.sinapse-ai/development/skills/story-fast-track.md +71 -0
  99. package/.sinapse-ai/development/skills/verify.md +53 -0
  100. package/.sinapse-ai/development/tasks/dev-develop-story.md +10 -0
  101. package/.sinapse-ai/development/tasks/environment-promotion-pipeline.md +582 -0
  102. package/.sinapse-ai/development/tasks/generate-agent-handoff.md +223 -0
  103. package/.sinapse-ai/development/tasks/infrastructure-assessment.md +432 -0
  104. package/.sinapse-ai/development/tasks/load-testing-setup.md +611 -0
  105. package/.sinapse-ai/development/tasks/observability-blueprint.md +562 -0
  106. package/.sinapse-ai/development/templates/legal/breach-notification-tmpl.md +113 -0
  107. package/.sinapse-ai/development/templates/legal/privacy-policy-tmpl.md +93 -0
  108. package/.sinapse-ai/development/templates/legal/terms-of-service-tmpl.md +85 -0
  109. package/.sinapse-ai/development/templates/service-template/README.md.hbs +159 -159
  110. package/.sinapse-ai/development/templates/service-template/__tests__/index.test.ts.hbs +238 -238
  111. package/.sinapse-ai/development/templates/service-template/client.ts.hbs +404 -404
  112. package/.sinapse-ai/development/templates/service-template/errors.ts.hbs +183 -183
  113. package/.sinapse-ai/development/templates/service-template/index.ts.hbs +121 -121
  114. package/.sinapse-ai/development/templates/service-template/package.json.hbs +88 -88
  115. package/.sinapse-ai/development/templates/service-template/types.ts.hbs +146 -146
  116. package/.sinapse-ai/development/templates/squad/agent-template.md +17 -4
  117. package/.sinapse-ai/development/templates/squad/checklist-template.md +13 -5
  118. package/.sinapse-ai/development/templates/squad/task-template.md +7 -0
  119. package/.sinapse-ai/development/templates/squad/workflow-template.yaml +7 -0
  120. package/.sinapse-ai/development/templates/squad-template/LICENSE +22 -22
  121. package/.sinapse-ai/development/workflows/fast-track.yaml +87 -0
  122. package/.sinapse-ai/development/workflows/story-development-cycle.yaml +40 -1
  123. package/.sinapse-ai/hooks/ids-post-commit.js +22 -0
  124. package/.sinapse-ai/infrastructure/contracts/compatibility/README.md +42 -0
  125. package/.sinapse-ai/infrastructure/contracts/compatibility/sinapse-current.yaml +35 -0
  126. package/.sinapse-ai/infrastructure/scripts/llm-routing/templates/claude-free-tracked.cmd +127 -127
  127. package/.sinapse-ai/infrastructure/scripts/llm-routing/templates/deepseek-proxy.cmd +71 -71
  128. package/.sinapse-ai/infrastructure/scripts/llm-routing/templates/deepseek-usage.cmd +51 -51
  129. package/.sinapse-ai/infrastructure/scripts/pr-review-ai.js +16 -13
  130. package/.sinapse-ai/infrastructure/scripts/setup-project-infra.js +128 -0
  131. package/.sinapse-ai/infrastructure/scripts/test-discovery.js +8 -3
  132. package/.sinapse-ai/infrastructure/scripts/validate-codex-delegation.js +3 -1
  133. package/.sinapse-ai/infrastructure/scripts/validate-manifest-parity.js +380 -0
  134. package/.sinapse-ai/infrastructure/scripts/validate-parity.js +76 -25
  135. package/.sinapse-ai/infrastructure/templates/coderabbit.yaml.template +280 -280
  136. package/.sinapse-ai/infrastructure/templates/config/env.example +16 -0
  137. package/.sinapse-ai/infrastructure/templates/config/gitignore-additions.tmpl +59 -0
  138. package/.sinapse-ai/infrastructure/templates/github/CODEOWNERS.template +12 -0
  139. package/.sinapse-ai/infrastructure/templates/github/PULL_REQUEST_TEMPLATE.md +29 -0
  140. package/.sinapse-ai/infrastructure/templates/github/ci-template.yml +77 -0
  141. package/.sinapse-ai/infrastructure/templates/github/issue-templates/bug_report.md +34 -0
  142. package/.sinapse-ai/infrastructure/templates/github/issue-templates/feature_request.md +19 -0
  143. package/.sinapse-ai/infrastructure/templates/github-workflows/ci.yml.template +170 -170
  144. package/.sinapse-ai/infrastructure/templates/github-workflows/pr-automation.yml.template +331 -331
  145. package/.sinapse-ai/infrastructure/templates/github-workflows/release.yml.template +197 -197
  146. package/.sinapse-ai/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +19 -19
  147. package/.sinapse-ai/infrastructure/templates/gitignore/gitignore-node.tmpl +86 -86
  148. package/.sinapse-ai/infrastructure/templates/gitignore/gitignore-python.tmpl +146 -146
  149. package/.sinapse-ai/infrastructure/templates/gitignore/gitignore-sinapse-base.tmpl +64 -64
  150. package/.sinapse-ai/infrastructure/templates/sinapse-sync.yaml.template +183 -183
  151. package/.sinapse-ai/install-manifest.yaml +333 -162
  152. package/.sinapse-ai/local-config.yaml.template +65 -65
  153. package/.sinapse-ai/monitor/hooks/lib/__init__.py +2 -2
  154. package/.sinapse-ai/monitor/hooks/lib/enrich.py +59 -59
  155. package/.sinapse-ai/monitor/hooks/lib/send_event.py +48 -48
  156. package/.sinapse-ai/monitor/hooks/notification.py +30 -30
  157. package/.sinapse-ai/monitor/hooks/post_tool_use.py +46 -46
  158. package/.sinapse-ai/monitor/hooks/pre_compact.py +30 -30
  159. package/.sinapse-ai/monitor/hooks/pre_tool_use.py +41 -41
  160. package/.sinapse-ai/monitor/hooks/stop.py +30 -30
  161. package/.sinapse-ai/monitor/hooks/subagent_stop.py +30 -30
  162. package/.sinapse-ai/monitor/hooks/user_prompt_submit.py +39 -39
  163. package/.sinapse-ai/product/templates/adr.hbs +126 -126
  164. package/.sinapse-ai/product/templates/dbdr.hbs +242 -242
  165. package/.sinapse-ai/product/templates/epic.hbs +213 -213
  166. package/.sinapse-ai/product/templates/pmdr.hbs +187 -187
  167. package/.sinapse-ai/product/templates/prd-v2.0.hbs +217 -217
  168. package/.sinapse-ai/product/templates/prd.hbs +202 -202
  169. package/.sinapse-ai/product/templates/story-tmpl.yaml +59 -0
  170. package/.sinapse-ai/product/templates/story.hbs +264 -264
  171. package/.sinapse-ai/product/templates/task.hbs +171 -171
  172. package/.sinapse-ai/product/templates/tmpl-comment-on-examples.sql +159 -159
  173. package/.sinapse-ai/product/templates/tmpl-migration-script.sql +92 -92
  174. package/.sinapse-ai/product/templates/tmpl-rls-granular-policies.sql +105 -105
  175. package/.sinapse-ai/product/templates/tmpl-rls-kiss-policy.sql +11 -11
  176. package/.sinapse-ai/product/templates/tmpl-rls-roles.sql +136 -136
  177. package/.sinapse-ai/product/templates/tmpl-rls-simple.sql +78 -78
  178. package/.sinapse-ai/product/templates/tmpl-rls-tenant.sql +153 -153
  179. package/.sinapse-ai/product/templates/tmpl-rollback-script.sql +78 -78
  180. package/.sinapse-ai/product/templates/tmpl-seed-data.sql +141 -141
  181. package/.sinapse-ai/product/templates/tmpl-smoke-test.sql +17 -17
  182. package/.sinapse-ai/product/templates/tmpl-staging-copy-merge.sql +140 -140
  183. package/.sinapse-ai/product/templates/tmpl-stored-proc.sql +141 -141
  184. package/.sinapse-ai/product/templates/tmpl-trigger.sql +153 -153
  185. package/.sinapse-ai/product/templates/tmpl-view-materialized.sql +134 -134
  186. package/.sinapse-ai/product/templates/tmpl-view.sql +178 -178
  187. package/.sinapse-ai/scripts/diagnostics/health-dashboard/package-lock.json +427 -355
  188. package/LICENSE +34 -34
  189. package/README.en.md +167 -20
  190. package/README.md +190 -22
  191. package/bin/cli.js +510 -196
  192. package/bin/postinstall.js +564 -0
  193. package/bin/sinapse-cli +283 -283
  194. package/bin/sinapse-graph.js +9 -0
  195. package/bin/sinapse-init.js +36 -4
  196. package/bin/sinapse-minimal.js +20 -9
  197. package/bin/sinapse.js +202 -122
  198. package/bin/utils/deprecation-warning.js +46 -0
  199. package/bin/utils/pre-push-safety.js +14 -0
  200. package/docs/TELEMETRY.md +131 -0
  201. package/docs/chrome-brain-upgrade-plan.md +624 -0
  202. package/docs/codex-integration-process.md +22 -0
  203. package/docs/codex-parity-program.md +27 -0
  204. package/docs/framework/orqx-plan.md +1 -1
  205. package/docs/ide-integration.md +36 -0
  206. package/docs/installation/chrome-brain.md +17 -7
  207. package/docs/mega-upgrade-orchestration-plan.md +71 -0
  208. package/docs/pt/contributing.md +20 -0
  209. package/docs/research-synthesis-for-upgrade.md +511 -0
  210. package/docs/security-audit-report.md +306 -0
  211. package/package.json +20 -8
  212. package/packages/installer/src/config/configure-environment.js +19 -44
  213. package/packages/installer/src/detection/detect-project-type.js +181 -63
  214. package/packages/installer/src/installer/manifest-signature.js +32 -17
  215. package/packages/installer/src/wizard/i18n.js +12 -0
  216. package/packages/installer/src/wizard/ide-config-generator.js +8 -39
  217. package/packages/installer/src/wizard/index.js +119 -14
  218. package/packages/installer/src/wizard/questions.js +2 -3
  219. package/packages/installer/tests/integration/environment-configuration.test.js +7 -5
  220. package/packages/installer/tests/unit/detection/detect-project-type.test.js +138 -1
  221. package/packages/installer/tests/unit/doctor/doctor-orchestrator.test.js +3 -3
  222. package/packages/sinapse-install/bin/edmcp.js +0 -0
  223. package/packages/sinapse-install/bin/sinapse-install.js +0 -0
  224. package/packages/sinapse-pro-cli/bin/sinapse-pro.js +0 -0
  225. package/scripts/check-markdown-links.py +353 -353
  226. package/scripts/coverage-report-summary.js +169 -0
  227. package/scripts/generate-install-manifest.js +6 -2
  228. package/scripts/release-readiness.js +169 -0
  229. package/scripts/test-install-matrix-local.sh +153 -0
  230. package/scripts/validate-install-docs.js +394 -0
  231. package/scripts/validate-no-external-refs.js +376 -0
  232. package/scripts/validate-squad-orqx.js +302 -0
  233. package/scripts/validate-story-meta.js +263 -0
  234. package/squads/claude-code-mastery/CHANGELOG.md +1 -1
  235. package/squads/claude-code-mastery/README.md +2 -2
  236. package/squads/claude-code-mastery/knowledge-base/claude-code-internals-reference.md +927 -0
  237. package/squads/claude-code-mastery/squad.yaml +1 -1
  238. package/squads/squad-artdir/README.md +90 -0
  239. package/squads/squad-artdir/agents/accessibility-guardian.md +184 -0
  240. package/squads/squad-artdir/agents/artdir-orqx.md +145 -0
  241. package/squads/squad-artdir/agents/color-psychologist.md +166 -0
  242. package/squads/squad-artdir/agents/cro-persuasion.md +161 -0
  243. package/squads/squad-artdir/agents/design-system-architect.md +100 -0
  244. package/squads/squad-artdir/agents/ia-architect.md +169 -0
  245. package/squads/squad-artdir/agents/interaction-designer.md +162 -0
  246. package/squads/squad-artdir/agents/layout-engineer.md +163 -0
  247. package/squads/squad-artdir/agents/motion-architect.md +185 -0
  248. package/squads/squad-artdir/agents/platform-aesthetic-director.md +84 -0
  249. package/squads/squad-artdir/agents/premium-packaging-strategist.md +107 -0
  250. package/squads/squad-artdir/agents/product-surface-director.md +86 -0
  251. package/squads/squad-artdir/agents/type-systemist.md +138 -0
  252. package/squads/squad-artdir/agents/visual-strategist.md +127 -0
  253. package/squads/squad-artdir/checklists/seven-pillars-validation-checklist.md +172 -0
  254. package/squads/squad-artdir/knowledge-base/case-nyo-ia-reference.md +289 -0
  255. package/squads/squad-artdir/knowledge-base/deliverables-templates.md +457 -0
  256. package/squads/squad-artdir/knowledge-base/motion-technique-catalog.md +247 -0
  257. package/squads/squad-artdir/knowledge-base/premium-packaging-principles.md +133 -0
  258. package/squads/squad-artdir/knowledge-base/psychological-toolkit.md +229 -0
  259. package/squads/squad-artdir/knowledge-base/saas-art-direction-canon.md +242 -0
  260. package/squads/squad-artdir/knowledge-base/seven-pillars-framework.md +289 -0
  261. package/squads/squad-artdir/knowledge-base/ten-pillars-framework.md +221 -0
  262. package/squads/squad-artdir/package.json +20 -0
  263. package/squads/squad-artdir/squad.yaml +271 -0
  264. package/squads/squad-artdir/tasks/audit-conversion.md +97 -0
  265. package/squads/squad-artdir/tasks/audit-drift-multi-surface.md +55 -0
  266. package/squads/squad-artdir/tasks/consult-saas-canon.md +54 -0
  267. package/squads/squad-artdir/tasks/create-art-direction-brief.md +110 -0
  268. package/squads/squad-artdir/tasks/create-premium-packaging-brief.md +61 -0
  269. package/squads/squad-artdir/tasks/create-wireflow.md +84 -0
  270. package/squads/squad-artdir/tasks/design-color-system.md +81 -0
  271. package/squads/squad-artdir/tasks/design-product-surface.md +60 -0
  272. package/squads/squad-artdir/tasks/design-token-system.md +58 -0
  273. package/squads/squad-artdir/tasks/diagnose-visual-language.md +92 -0
  274. package/squads/squad-artdir/tasks/first-5-minutes-choreography.md +65 -0
  275. package/squads/squad-artdir/tasks/specify-motion-system.md +84 -0
  276. package/squads/squad-artdir/tasks/validate-against-pillars.md +143 -0
  277. package/squads/squad-artdir/templates/art-direction-brief-template.md +215 -0
  278. package/squads/squad-artdir/workflows/conversion-audit-cycle.yaml +78 -0
  279. package/squads/squad-artdir/workflows/full-art-direction-cycle.yaml +98 -0
  280. package/squads/squad-artdir/workflows/saas-platform-art-direction-cycle.yaml +174 -0
  281. package/squads/squad-brand/knowledge-base/ai-visual-generation-canon.md +234 -0
  282. package/squads/squad-brand/knowledge-base/archetype-brand-mapping.md +12 -1
  283. package/squads/squad-brand/knowledge-base/brand-activism-cultural-branding.md +216 -0
  284. package/squads/squad-brand/knowledge-base/brand-audit-criteria.md +58 -0
  285. package/squads/squad-brand/knowledge-base/brand-digital-strategy.md +188 -0
  286. package/squads/squad-brand/knowledge-base/brand-legal-ip.md +222 -0
  287. package/squads/squad-brand/knowledge-base/brand-naming-framework.md +163 -0
  288. package/squads/squad-brand/knowledge-base/branding-master-reference.md +1001 -0
  289. package/squads/squad-brand/knowledge-base/color-psychology.md +25 -12
  290. package/squads/squad-brand/knowledge-base/employer-personal-branding.md +206 -0
  291. package/squads/squad-brand/knowledge-base/routing-catalog.md +34 -0
  292. package/squads/squad-brand/knowledge-base/sonic-branding-principles.md +6 -1
  293. package/squads/squad-brand/knowledge-base/typography-personality.md +34 -0
  294. package/squads/squad-brand/squad.yaml +20 -6
  295. package/squads/squad-claude/knowledge-base/context-window-optimization.md +334 -0
  296. package/squads/squad-claude/knowledge-base/knowledge-architecture-reference.md +403 -0
  297. package/squads/squad-claude/knowledge-base/memory-systems-reference.md +412 -0
  298. package/squads/squad-claude/knowledge-base/obsidian-claude-integration.md +423 -0
  299. package/squads/squad-claude/knowledge-base/retrieval-augmented-generation.md +320 -0
  300. package/squads/squad-claude/knowledge-base/skill-creation-patterns.md +380 -0
  301. package/squads/squad-claude/knowledge-base/swarm-orchestration-patterns.md +411 -0
  302. package/squads/squad-cloning/knowledge-base/clone-quality-assurance.md +211 -0
  303. package/squads/squad-cloning/knowledge-base/confidence-scoring.md +51 -0
  304. package/squads/squad-cloning/knowledge-base/cross-squad-deployment.md +47 -0
  305. package/squads/squad-cloning/knowledge-base/ethical-guidelines.md +237 -0
  306. package/squads/squad-cloning/knowledge-base/knowledge-graph-for-clones.md +295 -0
  307. package/squads/squad-cloning/knowledge-base/memory-architecture-for-clones.md +229 -0
  308. package/squads/squad-cloning/knowledge-base/multi-agent-deployment-patterns.md +320 -0
  309. package/squads/squad-cloning/knowledge-base/skill-standard-for-clones.md +262 -0
  310. package/squads/squad-cloning/knowledge-base/sop-extraction-guide.md +243 -0
  311. package/squads/squad-commercial/knowledge-base/account-based-selling.md +206 -0
  312. package/squads/squad-commercial/knowledge-base/ai-as-competitive-infrastructure.md +14 -0
  313. package/squads/squad-commercial/knowledge-base/ai-in-sales.md +199 -0
  314. package/squads/squad-commercial/knowledge-base/brazilian-sales-context.md +195 -0
  315. package/squads/squad-commercial/knowledge-base/customer-success-operations.md +83 -2
  316. package/squads/squad-commercial/knowledge-base/prospecting-pipeline-generation.md +69 -0
  317. package/squads/squad-commercial/knowledge-base/sales-enablement-playbook.md +260 -0
  318. package/squads/squad-commercial/knowledge-base/sales-methodology-comparison.md +185 -0
  319. package/squads/squad-commercial/knowledge-base/sales-revenue-master-reference.md +1123 -0
  320. package/squads/squad-content/knowledge-base/ai-native-content-loop.md +220 -0
  321. package/squads/squad-content/knowledge-base/brazilian-content-context.md +176 -0
  322. package/squads/squad-content/knowledge-base/competitor-analysis-methods.md +40 -1
  323. package/squads/squad-content/knowledge-base/content-architecture-taxonomy.md +206 -0
  324. package/squads/squad-content/knowledge-base/content-formats-encyclopedia.md +58 -1
  325. package/squads/squad-content/knowledge-base/content-references-bibliography.md +130 -0
  326. package/squads/squad-content/knowledge-base/content-strategy-master-reference.md +1097 -0
  327. package/squads/squad-content/knowledge-base/content-tech-stack.md +150 -0
  328. package/squads/squad-content/knowledge-base/copywriting-formulas-library.md +188 -0
  329. package/squads/squad-content/knowledge-base/email-newsletter-strategy.md +161 -0
  330. package/squads/squad-content/knowledge-base/platform-algorithm-intelligence.md +86 -1
  331. package/squads/squad-content/knowledge-base/signal-intelligence-v2.md +234 -0
  332. package/squads/squad-content/knowledge-base/social-algorithms-master-reference.md +1007 -0
  333. package/squads/squad-content/knowledge-base/task-ownership-map.md +235 -0
  334. package/squads/squad-content/knowledge-base/video-audio-content-playbook.md +218 -0
  335. package/squads/squad-content/squad.yaml +187 -27
  336. package/squads/squad-copy/knowledge-base/ai-copy-human-loop-canon.md +235 -0
  337. package/squads/squad-copy/knowledge-base/ai-copy-production.md +254 -0
  338. package/squads/squad-copy/knowledge-base/brazilian-copywriting-context.md +242 -0
  339. package/squads/squad-copy/knowledge-base/email-copywriting-system.md +299 -0
  340. package/squads/squad-copy/knowledge-base/landing-page-copy-architecture.md +267 -0
  341. package/squads/squad-copy/knowledge-base/power-words-catalog.md +205 -0
  342. package/squads/squad-copy/knowledge-base/seo-copywriting.md +255 -0
  343. package/squads/squad-copy/knowledge-base/video-script-copywriting.md +239 -0
  344. package/squads/squad-copy/squad.yaml +19 -4
  345. package/squads/squad-council/knowledge-base/brand-strategy-models.md +193 -0
  346. package/squads/squad-council/knowledge-base/growth-strategy-models.md +267 -0
  347. package/squads/squad-council/knowledge-base/innovation-disruption-frameworks.md +193 -0
  348. package/squads/squad-council/knowledge-base/market-analysis-frameworks.md +240 -0
  349. package/squads/squad-council/knowledge-base/organizational-leadership-models.md +212 -0
  350. package/squads/squad-council/knowledge-base/sales-strategy-models.md +215 -0
  351. package/squads/squad-courses/knowledge-base/course-launch-strategy.md +251 -0
  352. package/squads/squad-courses/knowledge-base/domain-advocacia-curriculum.md +385 -0
  353. package/squads/squad-courses/knowledge-base/domain-contabilidade-curriculum.md +266 -0
  354. package/squads/squad-courses/knowledge-base/platform-comparison.md +68 -0
  355. package/squads/squad-courses/knowledge-base/video-production-guide.md +70 -0
  356. package/squads/squad-cybersecurity/knowledge-base/cloud-security-reference.md +363 -0
  357. package/squads/squad-cybersecurity/knowledge-base/compliance-frameworks.md +273 -0
  358. package/squads/squad-cybersecurity/knowledge-base/database-security.md +438 -0
  359. package/squads/squad-cybersecurity/knowledge-base/incident-response-playbook.md +420 -0
  360. package/squads/squad-cybersecurity/knowledge-base/network-security-reference.md +477 -0
  361. package/squads/squad-cybersecurity/knowledge-base/penetration-testing-methodology.md +350 -0
  362. package/squads/squad-cybersecurity/knowledge-base/vulnerability-management.md +349 -0
  363. package/squads/squad-design/knowledge-base/brazilian-design-context.md +223 -0
  364. package/squads/squad-design/knowledge-base/component-api-patterns.md +208 -4
  365. package/squads/squad-design/knowledge-base/cross-surface-token-canon.md +209 -0
  366. package/squads/squad-design/knowledge-base/design-system-master-reference.md +1302 -0
  367. package/squads/squad-design/knowledge-base/design-systems-frameworks.md +91 -1
  368. package/squads/squad-design/knowledge-base/responsive-modern-css.md +96 -4
  369. package/squads/squad-design/knowledge-base/wcag-aria-reference.md +117 -5
  370. package/squads/squad-design/knowledge-base/web-performance-reference.md +127 -4
  371. package/squads/squad-design/squad.yaml +19 -4
  372. package/squads/squad-finance/knowledge-base/brazilian-taxation.md +263 -0
  373. package/squads/squad-finance/knowledge-base/contabilidade-master-reference.md +998 -0
  374. package/squads/squad-finance/knowledge-base/finance-master-reference.md +946 -0
  375. package/squads/squad-finance/knowledge-base/financial-reporting-analysis.md +316 -0
  376. package/squads/squad-finance/knowledge-base/fintech-brazilian-context.md +242 -0
  377. package/squads/squad-finance/knowledge-base/fpa-planning-frameworks.md +286 -0
  378. package/squads/squad-finance/knowledge-base/ma-and-transactions.md +285 -0
  379. package/squads/squad-finance/knowledge-base/risk-management.md +233 -0
  380. package/squads/squad-finance/knowledge-base/startups-venture-capital.md +337 -0
  381. package/squads/squad-growth/knowledge-base/ai-growth-playbook.md +216 -0
  382. package/squads/squad-growth/knowledge-base/attribution-models.md +78 -0
  383. package/squads/squad-growth/knowledge-base/brazilian-growth-context.md +208 -0
  384. package/squads/squad-growth/knowledge-base/community-led-growth.md +175 -0
  385. package/squads/squad-growth/knowledge-base/content-marketing-flywheel.md +190 -0
  386. package/squads/squad-growth/knowledge-base/email-lifecycle-framework.md +192 -0
  387. package/squads/squad-growth/knowledge-base/growth-frameworks-catalog.md +82 -0
  388. package/squads/squad-growth/knowledge-base/growth-master-reference.md +1168 -0
  389. package/squads/squad-growth/knowledge-base/routing-catalog.md +53 -11
  390. package/squads/squad-paidmedia/knowledge-base/audiences-segmentation-deep.md +285 -0
  391. package/squads/squad-paidmedia/knowledge-base/creative-strategy-deep.md +294 -0
  392. package/squads/squad-paidmedia/knowledge-base/google-ads-account-architecture.md +87 -0
  393. package/squads/squad-paidmedia/knowledge-base/meta-ads-campaign-architecture.md +76 -0
  394. package/squads/squad-paidmedia/knowledge-base/paid-media-metrics-reference.md +117 -0
  395. package/squads/squad-paidmedia/knowledge-base/paid-traffic-master-reference.md +1308 -0
  396. package/squads/squad-paidmedia/knowledge-base/routing-catalog.md +95 -18
  397. package/squads/squad-paidmedia/knowledge-base/traffic-masters-frameworks.md +71 -0
  398. package/squads/squad-product/knowledge-base/brazilian-product-context.md +284 -0
  399. package/squads/squad-product/knowledge-base/discovery-methodology-playbook.md +141 -0
  400. package/squads/squad-product/knowledge-base/pm-frameworks-reference.md +125 -9
  401. package/squads/squad-product/knowledge-base/product-analytics-formulas.md +72 -0
  402. package/squads/squad-product/knowledge-base/product-led-growth-reference.md +155 -13
  403. package/squads/squad-product/knowledge-base/product-market-fit-framework.md +222 -0
  404. package/squads/squad-product/knowledge-base/routing-catalog.md +32 -0
  405. package/squads/squad-research/knowledge-base/agentic-second-brain-reference.md +591 -0
  406. package/squads/squad-research/knowledge-base/ai-augmented-research.md +212 -0
  407. package/squads/squad-research/knowledge-base/brazilian-market-research-sources.md +197 -0
  408. package/squads/squad-research/knowledge-base/community-platforms-reference.md +786 -0
  409. package/squads/squad-research/knowledge-base/community-research-methods.md +194 -0
  410. package/squads/squad-research/knowledge-base/mixed-methods-research-design.md +168 -0
  411. package/squads/squad-research/knowledge-base/network-effects-analysis.md +192 -0
  412. package/squads/squad-research/knowledge-base/qualitative-research-deep-methods.md +202 -0
  413. package/squads/squad-research/knowledge-base/quantitative-research-methods.md +208 -0
  414. package/squads/squad-research/knowledge-base/research-frameworks-encyclopedia.md +40 -0
  415. package/squads/squad-research/knowledge-base/research-synthesis-frameworks.md +223 -0
  416. package/squads/squad-storytelling/knowledge-base/brand-mythology-framework.md +236 -0
  417. package/squads/squad-storytelling/knowledge-base/brazilian-storytelling-context.md +237 -0
  418. package/squads/squad-storytelling/knowledge-base/data-storytelling.md +232 -0
  419. package/squads/squad-storytelling/knowledge-base/improv-storytelling.md +226 -0
  420. package/squads/squad-storytelling/knowledge-base/persuasion-narrative-techniques.md +269 -0
  421. package/squads/squad-storytelling/knowledge-base/social-movement-narratives.md +191 -0
  422. package/squads/squad-storytelling/knowledge-base/video-storytelling.md +252 -0
  423. package/.sinapse-ai/core/registry/service-registry.json +0 -6346
  424. package/.sinapse-ai/data/registry-update-log.jsonl +0 -1307
  425. package/.sinapse-ai/manifests/agents.csv +0 -29
  426. package/.sinapse-ai/manifests/tasks.csv +0 -204
  427. package/.sinapse-ai/manifests/workers.csv +0 -196
  428. package/squads/claude-code-mastery/data/swarm-orchestration-patterns.yaml +0 -378
  429. package/squads/squad-animations/knowledge-base/framer-motion-complete-reference.md +0 -710
  430. package/squads/squad-animations/knowledge-base/web-animations-api-view-transitions.md +0 -478
  431. package/squads/squad-growth/tasks/calculate-sample-size.md +0 -121
  432. package/squads/squad-paidmedia/tasks/calculate-sample-size.md +0 -57
@@ -1,183 +1,183 @@
1
- #!/usr/bin/env python3
2
- """
3
- Hook: SQL Governance
4
-
5
- REGRA: Comandos SQL que criam/alteram/deletam objetos de banco DEVEM ser aprovados.
6
-
7
- Este hook intercepta comandos Bash que contêm SQL perigoso e bloqueia
8
- operações não autorizadas em banco de dados.
9
-
10
- Exit Codes:
11
- - 0: Permitido
12
- - 2: Bloqueado (SQL perigoso detectado)
13
- """
14
-
15
- import json
16
- import sys
17
- import os
18
- import re
19
-
20
- # =============================================================================
21
- # CONFIGURAÇÃO: Patterns SQL que requerem aprovação
22
- # =============================================================================
23
-
24
- DANGEROUS_PATTERNS = [
25
- # DDL - Criação
26
- (r"\bCREATE\s+TABLE\b", "CREATE TABLE"),
27
- (r"\bCREATE\s+VIEW\b", "CREATE VIEW"),
28
- (r"\bCREATE\s+MATERIALIZED\s+VIEW\b", "CREATE MATERIALIZED VIEW"),
29
- (r"\bCREATE\s+FUNCTION\b", "CREATE FUNCTION"),
30
- (r"\bCREATE\s+TRIGGER\b", "CREATE TRIGGER"),
31
- (r"\bCREATE\s+INDEX\b", "CREATE INDEX"),
32
- (r"\bCREATE\s+TYPE\b", "CREATE TYPE"),
33
- (r"\bCREATE\s+SCHEMA\b", "CREATE SCHEMA"),
34
- (r"\bCREATE\s+EXTENSION\b", "CREATE EXTENSION"),
35
- (r"\bCREATE\s+POLICY\b", "CREATE POLICY"),
36
-
37
- # DDL - Alteração
38
- (r"\bALTER\s+TABLE\b", "ALTER TABLE"),
39
- (r"\bALTER\s+VIEW\b", "ALTER VIEW"),
40
- (r"\bALTER\s+FUNCTION\b", "ALTER FUNCTION"),
41
-
42
- # DDL - Deleção
43
- (r"\bDROP\s+TABLE\b", "DROP TABLE"),
44
- (r"\bDROP\s+VIEW\b", "DROP VIEW"),
45
- (r"\bDROP\s+FUNCTION\b", "DROP FUNCTION"),
46
- (r"\bDROP\s+TRIGGER\b", "DROP TRIGGER"),
47
- (r"\bDROP\s+INDEX\b", "DROP INDEX"),
48
- (r"\bDROP\s+SCHEMA\b", "DROP SCHEMA"),
49
- (r"\bDROP\s+POLICY\b", "DROP POLICY"),
50
-
51
- # DML Perigoso
52
- (r"\bTRUNCATE\b", "TRUNCATE"),
53
- (r"\bDELETE\s+FROM\b(?!.*\bWHERE\b)", "DELETE without WHERE"),
54
-
55
- # Backup proibido (criar tabela como cópia)
56
- (r"\bCREATE\s+TABLE\b.*\bAS\s+SELECT\b", "CREATE TABLE AS SELECT (backup proibido)"),
57
-
58
- # Storage
59
- (r"\bINSERT\s+INTO\s+storage\.buckets\b", "INSERT INTO storage.buckets"),
60
- ]
61
-
62
- # Patterns que indicam contexto seguro (não bloquear)
63
- SAFE_CONTEXTS = [
64
- r"--.*$", # Comentário SQL
65
- r"SELECT\s+.*\bFROM\b", # Query de leitura
66
- r"information_schema", # Query de metadata
67
- r"pg_catalog", # Query de sistema
68
- r"\bEXPLAIN\b", # Explain plan
69
- ]
70
-
71
- # Comandos que são sempre permitidos
72
- ALLOWED_COMMANDS = [
73
- "supabase migration", # CLI de migration
74
- "supabase db push", # Push de migrations
75
- "supabase db pull", # Pull de schema
76
- "pg_dump", # Backup (exportar)
77
- "psql.*-f.*migrations", # Aplicar migration file
78
- ]
79
-
80
- # =============================================================================
81
- # LÓGICA DO HOOK
82
- # =============================================================================
83
-
84
- def extract_sql_from_command(command: str) -> str:
85
- """Extrai possível SQL de um comando bash."""
86
- # Remover aspas externas se houver
87
- sql = command
88
-
89
- # Detectar SQL inline em psql -c
90
- psql_match = re.search(r'psql.*-c\s+["\'](.+?)["\']', command, re.DOTALL)
91
- if psql_match:
92
- sql = psql_match.group(1)
93
-
94
- # Detectar heredoc
95
- heredoc_match = re.search(r'<<["\']?(\w+)["\']?\s*\n(.+?)\n\1', command, re.DOTALL)
96
- if heredoc_match:
97
- sql = heredoc_match.group(2)
98
-
99
- return sql.upper()
100
-
101
- def is_safe_context(command: str) -> bool:
102
- """Verifica se o comando está em contexto seguro."""
103
- command_lower = command.lower()
104
-
105
- for allowed in ALLOWED_COMMANDS:
106
- if re.search(allowed, command_lower):
107
- return True
108
-
109
- return False
110
-
111
- def detect_dangerous_sql(command: str) -> list[tuple[str, str]]:
112
- """Detecta patterns SQL perigosos no comando."""
113
- sql = extract_sql_from_command(command)
114
- detected = []
115
-
116
- for pattern, description in DANGEROUS_PATTERNS:
117
- if re.search(pattern, sql, re.IGNORECASE):
118
- detected.append((pattern, description))
119
-
120
- return detected
121
-
122
- def main():
123
- # Ler input do stdin
124
- try:
125
- input_data = json.load(sys.stdin)
126
- except json.JSONDecodeError:
127
- # Se não conseguir parsear, permitir (fail-open)
128
- sys.exit(0)
129
-
130
- tool_name = input_data.get("tool_name", "")
131
- tool_input = input_data.get("tool_input", {})
132
-
133
- # Só processar Bash
134
- if tool_name != "Bash":
135
- sys.exit(0)
136
-
137
- command = tool_input.get("command", "")
138
- if not command:
139
- sys.exit(0)
140
-
141
- # Verificar se é contexto seguro
142
- if is_safe_context(command):
143
- sys.exit(0)
144
-
145
- # Detectar SQL perigoso
146
- dangerous = detect_dangerous_sql(command)
147
-
148
- if not dangerous:
149
- sys.exit(0)
150
-
151
- # BLOQUEAR: SQL perigoso detectado
152
- detected_list = "\n".join([f"║ • {desc:<64} ║" for _, desc in dangerous[:5]])
153
-
154
- error_message = f"""
155
- ╔══════════════════════════════════════════════════════════════════════════════╗
156
- ║ 🛑 SQL GOVERNANCE: Operação de banco requer aprovação ║
157
- ╠══════════════════════════════════════════════════════════════════════════════╣
158
- ║ ║
159
- ║ Operações detectadas: ║
160
- {detected_list}
161
- ║ ║
162
- ║ REGRA: Comandos que criam/alteram/deletam objetos de banco DEVEM: ║
163
- ║ ║
164
- ║ 1. Ser propostos ao usuário ANTES de executar ║
165
- ║ 2. Incluir justificativa e análise de impacto ║
166
- ║ 3. Aguardar aprovação explícita ║
167
- ║ ║
168
- ║ EXCEÇÕES PERMITIDAS: ║
169
- ║ • supabase migration (CLI oficial) ║
170
- ║ • pg_dump (backup/export) ║
171
- ║ • Aplicar migrations existentes em supabase/migrations/ ║
172
- ║ ║
173
- ║ AÇÃO: Proponha as mudanças ao usuário e aguarde aprovação. ║
174
- ║ Use o formato: Schema/SQL + Justificativa + Impacto ║
175
- ║ ║
176
- ╚══════════════════════════════════════════════════════════════════════════════╝
177
- """
178
- print(error_message, file=sys.stderr)
179
- sys.exit(2)
180
-
181
- if __name__ == "__main__":
182
- main()
183
-
1
+ #!/usr/bin/env python3
2
+ """
3
+ Hook: SQL Governance
4
+
5
+ REGRA: Comandos SQL que criam/alteram/deletam objetos de banco DEVEM ser aprovados.
6
+
7
+ Este hook intercepta comandos Bash que contêm SQL perigoso e bloqueia
8
+ operações não autorizadas em banco de dados.
9
+
10
+ Exit Codes:
11
+ - 0: Permitido
12
+ - 2: Bloqueado (SQL perigoso detectado)
13
+ """
14
+
15
+ import json
16
+ import sys
17
+ import os
18
+ import re
19
+
20
+ # =============================================================================
21
+ # CONFIGURAÇÃO: Patterns SQL que requerem aprovação
22
+ # =============================================================================
23
+
24
+ DANGEROUS_PATTERNS = [
25
+ # DDL - Criação
26
+ (r"\bCREATE\s+TABLE\b", "CREATE TABLE"),
27
+ (r"\bCREATE\s+VIEW\b", "CREATE VIEW"),
28
+ (r"\bCREATE\s+MATERIALIZED\s+VIEW\b", "CREATE MATERIALIZED VIEW"),
29
+ (r"\bCREATE\s+FUNCTION\b", "CREATE FUNCTION"),
30
+ (r"\bCREATE\s+TRIGGER\b", "CREATE TRIGGER"),
31
+ (r"\bCREATE\s+INDEX\b", "CREATE INDEX"),
32
+ (r"\bCREATE\s+TYPE\b", "CREATE TYPE"),
33
+ (r"\bCREATE\s+SCHEMA\b", "CREATE SCHEMA"),
34
+ (r"\bCREATE\s+EXTENSION\b", "CREATE EXTENSION"),
35
+ (r"\bCREATE\s+POLICY\b", "CREATE POLICY"),
36
+
37
+ # DDL - Alteração
38
+ (r"\bALTER\s+TABLE\b", "ALTER TABLE"),
39
+ (r"\bALTER\s+VIEW\b", "ALTER VIEW"),
40
+ (r"\bALTER\s+FUNCTION\b", "ALTER FUNCTION"),
41
+
42
+ # DDL - Deleção
43
+ (r"\bDROP\s+TABLE\b", "DROP TABLE"),
44
+ (r"\bDROP\s+VIEW\b", "DROP VIEW"),
45
+ (r"\bDROP\s+FUNCTION\b", "DROP FUNCTION"),
46
+ (r"\bDROP\s+TRIGGER\b", "DROP TRIGGER"),
47
+ (r"\bDROP\s+INDEX\b", "DROP INDEX"),
48
+ (r"\bDROP\s+SCHEMA\b", "DROP SCHEMA"),
49
+ (r"\bDROP\s+POLICY\b", "DROP POLICY"),
50
+
51
+ # DML Perigoso
52
+ (r"\bTRUNCATE\b", "TRUNCATE"),
53
+ (r"\bDELETE\s+FROM\b(?!.*\bWHERE\b)", "DELETE without WHERE"),
54
+
55
+ # Backup proibido (criar tabela como cópia)
56
+ (r"\bCREATE\s+TABLE\b.*\bAS\s+SELECT\b", "CREATE TABLE AS SELECT (backup proibido)"),
57
+
58
+ # Storage
59
+ (r"\bINSERT\s+INTO\s+storage\.buckets\b", "INSERT INTO storage.buckets"),
60
+ ]
61
+
62
+ # Patterns que indicam contexto seguro (não bloquear)
63
+ SAFE_CONTEXTS = [
64
+ r"--.*$", # Comentário SQL
65
+ r"SELECT\s+.*\bFROM\b", # Query de leitura
66
+ r"information_schema", # Query de metadata
67
+ r"pg_catalog", # Query de sistema
68
+ r"\bEXPLAIN\b", # Explain plan
69
+ ]
70
+
71
+ # Comandos que são sempre permitidos
72
+ ALLOWED_COMMANDS = [
73
+ "supabase migration", # CLI de migration
74
+ "supabase db push", # Push de migrations
75
+ "supabase db pull", # Pull de schema
76
+ "pg_dump", # Backup (exportar)
77
+ "psql.*-f.*migrations", # Aplicar migration file
78
+ ]
79
+
80
+ # =============================================================================
81
+ # LÓGICA DO HOOK
82
+ # =============================================================================
83
+
84
+ def extract_sql_from_command(command: str) -> str:
85
+ """Extrai possível SQL de um comando bash."""
86
+ # Remover aspas externas se houver
87
+ sql = command
88
+
89
+ # Detectar SQL inline em psql -c
90
+ psql_match = re.search(r'psql.*-c\s+["\'](.+?)["\']', command, re.DOTALL)
91
+ if psql_match:
92
+ sql = psql_match.group(1)
93
+
94
+ # Detectar heredoc
95
+ heredoc_match = re.search(r'<<["\']?(\w+)["\']?\s*\n(.+?)\n\1', command, re.DOTALL)
96
+ if heredoc_match:
97
+ sql = heredoc_match.group(2)
98
+
99
+ return sql.upper()
100
+
101
+ def is_safe_context(command: str) -> bool:
102
+ """Verifica se o comando está em contexto seguro."""
103
+ command_lower = command.lower()
104
+
105
+ for allowed in ALLOWED_COMMANDS:
106
+ if re.search(allowed, command_lower):
107
+ return True
108
+
109
+ return False
110
+
111
+ def detect_dangerous_sql(command: str) -> list[tuple[str, str]]:
112
+ """Detecta patterns SQL perigosos no comando."""
113
+ sql = extract_sql_from_command(command)
114
+ detected = []
115
+
116
+ for pattern, description in DANGEROUS_PATTERNS:
117
+ if re.search(pattern, sql, re.IGNORECASE):
118
+ detected.append((pattern, description))
119
+
120
+ return detected
121
+
122
+ def main():
123
+ # Ler input do stdin
124
+ try:
125
+ input_data = json.load(sys.stdin)
126
+ except json.JSONDecodeError:
127
+ # Se não conseguir parsear, permitir (fail-open)
128
+ sys.exit(0)
129
+
130
+ tool_name = input_data.get("tool_name", "")
131
+ tool_input = input_data.get("tool_input", {})
132
+
133
+ # Só processar Bash
134
+ if tool_name != "Bash":
135
+ sys.exit(0)
136
+
137
+ command = tool_input.get("command", "")
138
+ if not command:
139
+ sys.exit(0)
140
+
141
+ # Verificar se é contexto seguro
142
+ if is_safe_context(command):
143
+ sys.exit(0)
144
+
145
+ # Detectar SQL perigoso
146
+ dangerous = detect_dangerous_sql(command)
147
+
148
+ if not dangerous:
149
+ sys.exit(0)
150
+
151
+ # BLOQUEAR: SQL perigoso detectado
152
+ detected_list = "\n".join([f"║ • {desc:<64} ║" for _, desc in dangerous[:5]])
153
+
154
+ error_message = f"""
155
+ ╔══════════════════════════════════════════════════════════════════════════════╗
156
+ ║ 🛑 SQL GOVERNANCE: Operação de banco requer aprovação ║
157
+ ╠══════════════════════════════════════════════════════════════════════════════╣
158
+ ║ ║
159
+ ║ Operações detectadas: ║
160
+ {detected_list}
161
+ ║ ║
162
+ ║ REGRA: Comandos que criam/alteram/deletam objetos de banco DEVEM: ║
163
+ ║ ║
164
+ ║ 1. Ser propostos ao usuário ANTES de executar ║
165
+ ║ 2. Incluir justificativa e análise de impacto ║
166
+ ║ 3. Aguardar aprovação explícita ║
167
+ ║ ║
168
+ ║ EXCEÇÕES PERMITIDAS: ║
169
+ ║ • supabase migration (CLI oficial) ║
170
+ ║ • pg_dump (backup/export) ║
171
+ ║ • Aplicar migrations existentes em supabase/migrations/ ║
172
+ ║ ║
173
+ ║ AÇÃO: Proponha as mudanças ao usuário e aguarde aprovação. ║
174
+ ║ Use o formato: Schema/SQL + Justificativa + Impacto ║
175
+ ║ ║
176
+ ╚══════════════════════════════════════════════════════════════════════════════╝
177
+ """
178
+ print(error_message, file=sys.stderr)
179
+ sys.exit(2)
180
+
181
+ if __name__ == "__main__":
182
+ main()
183
+
@@ -0,0 +1,83 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * verify-packages.cjs — Slopsquatting Prevention Hook
4
+ *
5
+ * Blocks `npm install`/`npm add` commands that reference packages
6
+ * not found on the npm registry. Prevents installation of hallucinated
7
+ * (fabricated) packages that attackers may register with malicious code.
8
+ *
9
+ * Research: 19.7% of packages recommended by LLMs are fabricated.
10
+ * Source: arXiv study, 576K samples across 16 models.
11
+ *
12
+ * Hook type: PreToolUse (Bash)
13
+ * Exit 0 = allow, Exit 2 = block
14
+ */
15
+ 'use strict';
16
+
17
+ const { execSync } = require('child_process');
18
+
19
+ let input = '';
20
+ process.stdin.setEncoding('utf8');
21
+ process.stdin.on('data', (d) => { input += d; });
22
+ process.stdin.on('end', () => {
23
+ try {
24
+ const data = JSON.parse(input);
25
+ const command = (data.tool_input && data.tool_input.command) || '';
26
+
27
+ // Only check direct npm install/add commands (not text in PR bodies, etc.)
28
+ // Skip if command is gh, curl, echo, or other non-npm commands
29
+ const trimmed = command.trim();
30
+ if (trimmed.startsWith('gh ') || trimmed.startsWith('curl ') || trimmed.startsWith('echo ')) process.exit(0);
31
+ const installMatch = trimmed.match(/^npm\s+(install|add|i)\s+(.+)/m);
32
+ if (!installMatch) process.exit(0);
33
+
34
+ const argsStr = installMatch[2];
35
+
36
+ // Extract package names, skipping flags (--save-dev, -D, etc.)
37
+ const tokens = argsStr.split(/\s+/).filter(t => !t.startsWith('-'));
38
+ if (tokens.length === 0) process.exit(0);
39
+
40
+ const failed = [];
41
+ for (const token of tokens) {
42
+ // Strip version specifier: pkg@1.0.0 -> pkg, @org/pkg@^2 -> @org/pkg
43
+ let pkgName;
44
+ if (token.startsWith('@')) {
45
+ // Scoped package: @org/pkg@version
46
+ const slashIdx = token.indexOf('/');
47
+ if (slashIdx === -1) continue; // malformed, skip
48
+ const afterSlash = token.substring(slashIdx + 1);
49
+ const atIdx = afterSlash.indexOf('@');
50
+ pkgName = atIdx > 0
51
+ ? token.substring(0, slashIdx + 1 + atIdx)
52
+ : token;
53
+ } else {
54
+ const atIdx = token.indexOf('@');
55
+ pkgName = atIdx > 0 ? token.substring(0, atIdx) : token;
56
+ }
57
+
58
+ // Skip if it looks like a local path or URL
59
+ if (pkgName.startsWith('.') || pkgName.startsWith('/') || pkgName.includes('://')) continue;
60
+ if (pkgName.endsWith('.tgz') || pkgName.endsWith('.tar.gz')) continue;
61
+
62
+ try {
63
+ execSync(`npm view "${pkgName}" name`, { timeout: 8000, stdio: 'pipe' });
64
+ } catch {
65
+ failed.push(pkgName);
66
+ }
67
+ }
68
+
69
+ if (failed.length > 0) {
70
+ const names = failed.map(n => `'${n}'`).join(', ');
71
+ const msg = failed.length === 1
72
+ ? `BLOCKED: Package ${names} not found on npm. This may be a hallucinated package (slopsquatting).`
73
+ : `BLOCKED: Packages ${names} not found on npm. These may be hallucinated packages (slopsquatting).`;
74
+ process.stderr.write(msg + '\n');
75
+ process.exit(2);
76
+ }
77
+
78
+ process.exit(0);
79
+ } catch {
80
+ // Fail-open: if hook crashes, allow the operation
81
+ process.exit(0);
82
+ }
83
+ });