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,141 +1,141 @@
1
- -- Seed Data Template
2
- -- Purpose: Idempotent seed data for development and testing
3
- -- Created: :created_date
4
- -- Author: :author
5
- --
6
- -- IMPORTANT: All seed operations should be idempotent (safe to run multiple times)
7
-
8
- -- =============================================================================
9
- -- SEED CONFIGURATION
10
- -- =============================================================================
11
-
12
- -- Disable triggers during seeding (optional, speeds up bulk insert)
13
- -- SET session_replication_role = replica;
14
-
15
- BEGIN;
16
-
17
- -- =============================================================================
18
- -- SEED: REFERENCE DATA (Lookup tables, static data)
19
- -- =============================================================================
20
-
21
- -- Example: Status types
22
- INSERT INTO status_types (id, name, description, sort_order)
23
- VALUES
24
- ('11111111-1111-1111-1111-111111111001', 'draft', 'Initial draft state', 1),
25
- ('11111111-1111-1111-1111-111111111002', 'pending', 'Awaiting action', 2),
26
- ('11111111-1111-1111-1111-111111111003', 'active', 'Currently active', 3),
27
- ('11111111-1111-1111-1111-111111111004', 'completed', 'Work completed', 4),
28
- ('11111111-1111-1111-1111-111111111005', 'archived', 'No longer active', 5)
29
- ON CONFLICT (id) DO UPDATE SET
30
- name = EXCLUDED.name,
31
- description = EXCLUDED.description,
32
- sort_order = EXCLUDED.sort_order;
33
-
34
- -- Example: Categories
35
- INSERT INTO categories (id, name, slug, parent_id)
36
- VALUES
37
- ('22222222-2222-2222-2222-222222222001', 'General', 'general', NULL),
38
- ('22222222-2222-2222-2222-222222222002', 'Development', 'development', NULL),
39
- ('22222222-2222-2222-2222-222222222003', 'Frontend', 'frontend', '22222222-2222-2222-2222-222222222002'),
40
- ('22222222-2222-2222-2222-222222222004', 'Backend', 'backend', '22222222-2222-2222-2222-222222222002')
41
- ON CONFLICT (id) DO UPDATE SET
42
- name = EXCLUDED.name,
43
- slug = EXCLUDED.slug,
44
- parent_id = EXCLUDED.parent_id;
45
-
46
- -- =============================================================================
47
- -- SEED: ROLES AND PERMISSIONS
48
- -- =============================================================================
49
-
50
- INSERT INTO roles (id, name, description, permissions)
51
- VALUES
52
- ('33333333-3333-3333-3333-333333333001', 'admin', 'Full system access', '["*"]'::JSONB),
53
- ('33333333-3333-3333-3333-333333333002', 'editor', 'Can edit content', '["read", "write", "update"]'::JSONB),
54
- ('33333333-3333-3333-3333-333333333003', 'viewer', 'Read-only access', '["read"]'::JSONB)
55
- ON CONFLICT (id) DO UPDATE SET
56
- description = EXCLUDED.description,
57
- permissions = EXCLUDED.permissions;
58
-
59
- -- =============================================================================
60
- -- SEED: TEST USERS (Development only!)
61
- -- =============================================================================
62
-
63
- -- NOTE: Only run in development environment
64
- -- These are fake users for testing - DO NOT use in production
65
-
66
- -- Check environment before inserting test data
67
- DO $$
68
- BEGIN
69
- -- Only seed test users if this appears to be a dev environment
70
- IF current_database() LIKE '%dev%' OR current_database() LIKE '%test%' THEN
71
- -- Test Admin User
72
- INSERT INTO auth.users (
73
- id,
74
- email,
75
- encrypted_password,
76
- email_confirmed_at,
77
- raw_user_meta_data
78
- ) VALUES (
79
- '00000000-0000-0000-0000-000000000001',
80
- 'admin@test.local',
81
- crypt('testpassword123', gen_salt('bf')),
82
- NOW(),
83
- '{"full_name": "Test Admin"}'::JSONB
84
- ) ON CONFLICT (id) DO NOTHING;
85
-
86
- -- Test Regular User
87
- INSERT INTO auth.users (
88
- id,
89
- email,
90
- encrypted_password,
91
- email_confirmed_at,
92
- raw_user_meta_data
93
- ) VALUES (
94
- '00000000-0000-0000-0000-000000000002',
95
- 'user@test.local',
96
- crypt('testpassword123', gen_salt('bf')),
97
- NOW(),
98
- '{"full_name": "Test User"}'::JSONB
99
- ) ON CONFLICT (id) DO NOTHING;
100
-
101
- RAISE NOTICE 'Test users seeded successfully';
102
- ELSE
103
- RAISE NOTICE 'Skipping test user seeding - not a dev/test environment';
104
- END IF;
105
- END $$;
106
-
107
- -- =============================================================================
108
- -- SEED: SAMPLE DATA (Development only!)
109
- -- =============================================================================
110
-
111
- -- Example: Sample projects for testing
112
- INSERT INTO :table_name (id, name, description, user_id, status, created_at)
113
- VALUES
114
- ('44444444-4444-4444-4444-444444444001', 'Sample Project 1', 'First sample project for testing', '00000000-0000-0000-0000-000000000001', 'active', NOW()),
115
- ('44444444-4444-4444-4444-444444444002', 'Sample Project 2', 'Second sample project for testing', '00000000-0000-0000-0000-000000000002', 'draft', NOW())
116
- ON CONFLICT (id) DO UPDATE SET
117
- name = EXCLUDED.name,
118
- description = EXCLUDED.description,
119
- updated_at = NOW();
120
-
121
- COMMIT;
122
-
123
- -- =============================================================================
124
- -- RE-ENABLE TRIGGERS
125
- -- =============================================================================
126
-
127
- -- SET session_replication_role = DEFAULT;
128
-
129
- -- =============================================================================
130
- -- VERIFICATION
131
- -- =============================================================================
132
-
133
- SELECT
134
- 'status_types' as table_name,
135
- COUNT(*) as row_count
136
- FROM status_types
137
- UNION ALL
138
- SELECT 'categories', COUNT(*) FROM categories
139
- UNION ALL
140
- SELECT 'roles', COUNT(*) FROM roles;
141
-
1
+ -- Seed Data Template
2
+ -- Purpose: Idempotent seed data for development and testing
3
+ -- Created: :created_date
4
+ -- Author: :author
5
+ --
6
+ -- IMPORTANT: All seed operations should be idempotent (safe to run multiple times)
7
+
8
+ -- =============================================================================
9
+ -- SEED CONFIGURATION
10
+ -- =============================================================================
11
+
12
+ -- Disable triggers during seeding (optional, speeds up bulk insert)
13
+ -- SET session_replication_role = replica;
14
+
15
+ BEGIN;
16
+
17
+ -- =============================================================================
18
+ -- SEED: REFERENCE DATA (Lookup tables, static data)
19
+ -- =============================================================================
20
+
21
+ -- Example: Status types
22
+ INSERT INTO status_types (id, name, description, sort_order)
23
+ VALUES
24
+ ('11111111-1111-1111-1111-111111111001', 'draft', 'Initial draft state', 1),
25
+ ('11111111-1111-1111-1111-111111111002', 'pending', 'Awaiting action', 2),
26
+ ('11111111-1111-1111-1111-111111111003', 'active', 'Currently active', 3),
27
+ ('11111111-1111-1111-1111-111111111004', 'completed', 'Work completed', 4),
28
+ ('11111111-1111-1111-1111-111111111005', 'archived', 'No longer active', 5)
29
+ ON CONFLICT (id) DO UPDATE SET
30
+ name = EXCLUDED.name,
31
+ description = EXCLUDED.description,
32
+ sort_order = EXCLUDED.sort_order;
33
+
34
+ -- Example: Categories
35
+ INSERT INTO categories (id, name, slug, parent_id)
36
+ VALUES
37
+ ('22222222-2222-2222-2222-222222222001', 'General', 'general', NULL),
38
+ ('22222222-2222-2222-2222-222222222002', 'Development', 'development', NULL),
39
+ ('22222222-2222-2222-2222-222222222003', 'Frontend', 'frontend', '22222222-2222-2222-2222-222222222002'),
40
+ ('22222222-2222-2222-2222-222222222004', 'Backend', 'backend', '22222222-2222-2222-2222-222222222002')
41
+ ON CONFLICT (id) DO UPDATE SET
42
+ name = EXCLUDED.name,
43
+ slug = EXCLUDED.slug,
44
+ parent_id = EXCLUDED.parent_id;
45
+
46
+ -- =============================================================================
47
+ -- SEED: ROLES AND PERMISSIONS
48
+ -- =============================================================================
49
+
50
+ INSERT INTO roles (id, name, description, permissions)
51
+ VALUES
52
+ ('33333333-3333-3333-3333-333333333001', 'admin', 'Full system access', '["*"]'::JSONB),
53
+ ('33333333-3333-3333-3333-333333333002', 'editor', 'Can edit content', '["read", "write", "update"]'::JSONB),
54
+ ('33333333-3333-3333-3333-333333333003', 'viewer', 'Read-only access', '["read"]'::JSONB)
55
+ ON CONFLICT (id) DO UPDATE SET
56
+ description = EXCLUDED.description,
57
+ permissions = EXCLUDED.permissions;
58
+
59
+ -- =============================================================================
60
+ -- SEED: TEST USERS (Development only!)
61
+ -- =============================================================================
62
+
63
+ -- NOTE: Only run in development environment
64
+ -- These are fake users for testing - DO NOT use in production
65
+
66
+ -- Check environment before inserting test data
67
+ DO $$
68
+ BEGIN
69
+ -- Only seed test users if this appears to be a dev environment
70
+ IF current_database() LIKE '%dev%' OR current_database() LIKE '%test%' THEN
71
+ -- Test Admin User
72
+ INSERT INTO auth.users (
73
+ id,
74
+ email,
75
+ encrypted_password,
76
+ email_confirmed_at,
77
+ raw_user_meta_data
78
+ ) VALUES (
79
+ '00000000-0000-0000-0000-000000000001',
80
+ 'admin@test.local',
81
+ crypt('testpassword123', gen_salt('bf')),
82
+ NOW(),
83
+ '{"full_name": "Test Admin"}'::JSONB
84
+ ) ON CONFLICT (id) DO NOTHING;
85
+
86
+ -- Test Regular User
87
+ INSERT INTO auth.users (
88
+ id,
89
+ email,
90
+ encrypted_password,
91
+ email_confirmed_at,
92
+ raw_user_meta_data
93
+ ) VALUES (
94
+ '00000000-0000-0000-0000-000000000002',
95
+ 'user@test.local',
96
+ crypt('testpassword123', gen_salt('bf')),
97
+ NOW(),
98
+ '{"full_name": "Test User"}'::JSONB
99
+ ) ON CONFLICT (id) DO NOTHING;
100
+
101
+ RAISE NOTICE 'Test users seeded successfully';
102
+ ELSE
103
+ RAISE NOTICE 'Skipping test user seeding - not a dev/test environment';
104
+ END IF;
105
+ END $$;
106
+
107
+ -- =============================================================================
108
+ -- SEED: SAMPLE DATA (Development only!)
109
+ -- =============================================================================
110
+
111
+ -- Example: Sample projects for testing
112
+ INSERT INTO :table_name (id, name, description, user_id, status, created_at)
113
+ VALUES
114
+ ('44444444-4444-4444-4444-444444444001', 'Sample Project 1', 'First sample project for testing', '00000000-0000-0000-0000-000000000001', 'active', NOW()),
115
+ ('44444444-4444-4444-4444-444444444002', 'Sample Project 2', 'Second sample project for testing', '00000000-0000-0000-0000-000000000002', 'draft', NOW())
116
+ ON CONFLICT (id) DO UPDATE SET
117
+ name = EXCLUDED.name,
118
+ description = EXCLUDED.description,
119
+ updated_at = NOW();
120
+
121
+ COMMIT;
122
+
123
+ -- =============================================================================
124
+ -- RE-ENABLE TRIGGERS
125
+ -- =============================================================================
126
+
127
+ -- SET session_replication_role = DEFAULT;
128
+
129
+ -- =============================================================================
130
+ -- VERIFICATION
131
+ -- =============================================================================
132
+
133
+ SELECT
134
+ 'status_types' as table_name,
135
+ COUNT(*) as row_count
136
+ FROM status_types
137
+ UNION ALL
138
+ SELECT 'categories', COUNT(*) FROM categories
139
+ UNION ALL
140
+ SELECT 'roles', COUNT(*) FROM roles;
141
+
@@ -1,17 +1,17 @@
1
- -- Basic post-migration checks (fill placeholders)
2
- SET client_min_messages = warning;
3
-
4
- -- Count tables/policies/functions expected
5
- SELECT COUNT(*) AS tables FROM information_schema.tables WHERE table_schema='public';
6
- SELECT COUNT(*) AS policies FROM pg_policies WHERE schemaname='public';
7
- SELECT proname FROM pg_proc WHERE pronamespace = 'public'::regnamespace
8
- AND proname IN ('current_mind_id','provision_user_profile','set_fragment_mind_id');
9
-
10
- -- Sanity queries (examples)
11
- -- SELECT * FROM categories LIMIT 5;
12
- -- SELECT * FROM minds LIMIT 5;
13
-
14
- -- RLS sanity (should not error even if it returns 0)
15
- -- SET LOCAL request.jwt.claims = '{"sub":"<user-uuid>","role":"authenticated"}';
16
- -- SELECT 1 FROM fragments WHERE false;
17
-
1
+ -- Basic post-migration checks (fill placeholders)
2
+ SET client_min_messages = warning;
3
+
4
+ -- Count tables/policies/functions expected
5
+ SELECT COUNT(*) AS tables FROM information_schema.tables WHERE table_schema='public';
6
+ SELECT COUNT(*) AS policies FROM pg_policies WHERE schemaname='public';
7
+ SELECT proname FROM pg_proc WHERE pronamespace = 'public'::regnamespace
8
+ AND proname IN ('current_mind_id','provision_user_profile','set_fragment_mind_id');
9
+
10
+ -- Sanity queries (examples)
11
+ -- SELECT * FROM categories LIMIT 5;
12
+ -- SELECT * FROM minds LIMIT 5;
13
+
14
+ -- RLS sanity (should not error even if it returns 0)
15
+ -- SET LOCAL request.jwt.claims = '{"sub":"<user-uuid>","role":"authenticated"}';
16
+ -- SELECT 1 FROM fragments WHERE false;
17
+
@@ -1,140 +1,140 @@
1
- -- Staging Copy Merge Template
2
- -- Purpose: Safely load external data through staging table and merge to target
3
- -- Created: :created_date
4
- -- Author: :author
5
- --
6
- -- This pattern prevents data corruption by validating in staging before merge
7
-
8
- -- =============================================================================
9
- -- STEP 1: CREATE STAGING TABLE (temporary)
10
- -- =============================================================================
11
-
12
- -- Create staging table mirroring target structure
13
- CREATE TEMP TABLE IF NOT EXISTS :staging_table (
14
- -- Match target table columns
15
- id UUID,
16
- :column1 :type1,
17
- :column2 :type2,
18
- -- Metadata for import tracking
19
- _row_number INTEGER,
20
- _import_status TEXT DEFAULT 'pending',
21
- _import_error TEXT
22
- );
23
-
24
- -- =============================================================================
25
- -- STEP 2: COPY DATA TO STAGING
26
- -- =============================================================================
27
-
28
- -- Option A: From CSV file
29
- -- COPY :staging_table (id, :column1, :column2)
30
- -- FROM '/path/to/file.csv'
31
- -- WITH (FORMAT csv, HEADER true);
32
-
33
- -- Option B: From STDIN (programmatic)
34
- -- COPY :staging_table (id, :column1, :column2) FROM STDIN;
35
-
36
- -- Option C: Insert from another query
37
- -- INSERT INTO :staging_table (id, :column1, :column2)
38
- -- SELECT id, col1, col2 FROM external_source;
39
-
40
- -- =============================================================================
41
- -- STEP 3: VALIDATE STAGING DATA
42
- -- =============================================================================
43
-
44
- -- Mark rows with validation errors
45
- UPDATE :staging_table
46
- SET
47
- _import_status = 'error',
48
- _import_error = 'Missing required field'
49
- WHERE :column1 IS NULL;
50
-
51
- -- Check for duplicates
52
- UPDATE :staging_table s
53
- SET
54
- _import_status = 'duplicate',
55
- _import_error = 'Duplicate ID found'
56
- WHERE EXISTS (
57
- SELECT 1 FROM :staging_table s2
58
- WHERE s2.id = s.id
59
- AND s2._row_number < s._row_number
60
- );
61
-
62
- -- Check for existing records (will update instead of insert)
63
- UPDATE :staging_table s
64
- SET _import_status = 'update'
65
- WHERE EXISTS (
66
- SELECT 1 FROM :target_table t
67
- WHERE t.id = s.id
68
- )
69
- AND s._import_status = 'pending';
70
-
71
- -- Mark remaining as new inserts
72
- UPDATE :staging_table
73
- SET _import_status = 'insert'
74
- WHERE _import_status = 'pending';
75
-
76
- -- =============================================================================
77
- -- STEP 4: REPORT VALIDATION RESULTS
78
- -- =============================================================================
79
-
80
- -- Get summary of staging data
81
- SELECT
82
- _import_status,
83
- COUNT(*) as count,
84
- STRING_AGG(DISTINCT _import_error, ', ') as errors
85
- FROM :staging_table
86
- GROUP BY _import_status
87
- ORDER BY _import_status;
88
-
89
- -- =============================================================================
90
- -- STEP 5: MERGE TO TARGET (UPSERT)
91
- -- =============================================================================
92
-
93
- BEGIN;
94
-
95
- -- Insert new records
96
- INSERT INTO :target_table (id, :column1, :column2, created_at)
97
- SELECT id, :column1, :column2, NOW()
98
- FROM :staging_table
99
- WHERE _import_status = 'insert';
100
-
101
- -- Update existing records
102
- UPDATE :target_table t
103
- SET
104
- :column1 = s.:column1,
105
- :column2 = s.:column2,
106
- updated_at = NOW()
107
- FROM :staging_table s
108
- WHERE t.id = s.id
109
- AND s._import_status = 'update';
110
-
111
- COMMIT;
112
-
113
- -- =============================================================================
114
- -- STEP 6: VERIFY AND CLEANUP
115
- -- =============================================================================
116
-
117
- -- Verify merge results
118
- SELECT
119
- 'inserted' as operation,
120
- COUNT(*) as count
121
- FROM :staging_table WHERE _import_status = 'insert'
122
- UNION ALL
123
- SELECT
124
- 'updated' as operation,
125
- COUNT(*) as count
126
- FROM :staging_table WHERE _import_status = 'update'
127
- UNION ALL
128
- SELECT
129
- 'errors' as operation,
130
- COUNT(*) as count
131
- FROM :staging_table WHERE _import_status = 'error';
132
-
133
- -- Get error details for review
134
- SELECT id, :column1, _import_error
135
- FROM :staging_table
136
- WHERE _import_status = 'error';
137
-
138
- -- Drop staging table (automatic for TEMP, but explicit is clearer)
139
- DROP TABLE IF EXISTS :staging_table;
140
-
1
+ -- Staging Copy Merge Template
2
+ -- Purpose: Safely load external data through staging table and merge to target
3
+ -- Created: :created_date
4
+ -- Author: :author
5
+ --
6
+ -- This pattern prevents data corruption by validating in staging before merge
7
+
8
+ -- =============================================================================
9
+ -- STEP 1: CREATE STAGING TABLE (temporary)
10
+ -- =============================================================================
11
+
12
+ -- Create staging table mirroring target structure
13
+ CREATE TEMP TABLE IF NOT EXISTS :staging_table (
14
+ -- Match target table columns
15
+ id UUID,
16
+ :column1 :type1,
17
+ :column2 :type2,
18
+ -- Metadata for import tracking
19
+ _row_number INTEGER,
20
+ _import_status TEXT DEFAULT 'pending',
21
+ _import_error TEXT
22
+ );
23
+
24
+ -- =============================================================================
25
+ -- STEP 2: COPY DATA TO STAGING
26
+ -- =============================================================================
27
+
28
+ -- Option A: From CSV file
29
+ -- COPY :staging_table (id, :column1, :column2)
30
+ -- FROM '/path/to/file.csv'
31
+ -- WITH (FORMAT csv, HEADER true);
32
+
33
+ -- Option B: From STDIN (programmatic)
34
+ -- COPY :staging_table (id, :column1, :column2) FROM STDIN;
35
+
36
+ -- Option C: Insert from another query
37
+ -- INSERT INTO :staging_table (id, :column1, :column2)
38
+ -- SELECT id, col1, col2 FROM external_source;
39
+
40
+ -- =============================================================================
41
+ -- STEP 3: VALIDATE STAGING DATA
42
+ -- =============================================================================
43
+
44
+ -- Mark rows with validation errors
45
+ UPDATE :staging_table
46
+ SET
47
+ _import_status = 'error',
48
+ _import_error = 'Missing required field'
49
+ WHERE :column1 IS NULL;
50
+
51
+ -- Check for duplicates
52
+ UPDATE :staging_table s
53
+ SET
54
+ _import_status = 'duplicate',
55
+ _import_error = 'Duplicate ID found'
56
+ WHERE EXISTS (
57
+ SELECT 1 FROM :staging_table s2
58
+ WHERE s2.id = s.id
59
+ AND s2._row_number < s._row_number
60
+ );
61
+
62
+ -- Check for existing records (will update instead of insert)
63
+ UPDATE :staging_table s
64
+ SET _import_status = 'update'
65
+ WHERE EXISTS (
66
+ SELECT 1 FROM :target_table t
67
+ WHERE t.id = s.id
68
+ )
69
+ AND s._import_status = 'pending';
70
+
71
+ -- Mark remaining as new inserts
72
+ UPDATE :staging_table
73
+ SET _import_status = 'insert'
74
+ WHERE _import_status = 'pending';
75
+
76
+ -- =============================================================================
77
+ -- STEP 4: REPORT VALIDATION RESULTS
78
+ -- =============================================================================
79
+
80
+ -- Get summary of staging data
81
+ SELECT
82
+ _import_status,
83
+ COUNT(*) as count,
84
+ STRING_AGG(DISTINCT _import_error, ', ') as errors
85
+ FROM :staging_table
86
+ GROUP BY _import_status
87
+ ORDER BY _import_status;
88
+
89
+ -- =============================================================================
90
+ -- STEP 5: MERGE TO TARGET (UPSERT)
91
+ -- =============================================================================
92
+
93
+ BEGIN;
94
+
95
+ -- Insert new records
96
+ INSERT INTO :target_table (id, :column1, :column2, created_at)
97
+ SELECT id, :column1, :column2, NOW()
98
+ FROM :staging_table
99
+ WHERE _import_status = 'insert';
100
+
101
+ -- Update existing records
102
+ UPDATE :target_table t
103
+ SET
104
+ :column1 = s.:column1,
105
+ :column2 = s.:column2,
106
+ updated_at = NOW()
107
+ FROM :staging_table s
108
+ WHERE t.id = s.id
109
+ AND s._import_status = 'update';
110
+
111
+ COMMIT;
112
+
113
+ -- =============================================================================
114
+ -- STEP 6: VERIFY AND CLEANUP
115
+ -- =============================================================================
116
+
117
+ -- Verify merge results
118
+ SELECT
119
+ 'inserted' as operation,
120
+ COUNT(*) as count
121
+ FROM :staging_table WHERE _import_status = 'insert'
122
+ UNION ALL
123
+ SELECT
124
+ 'updated' as operation,
125
+ COUNT(*) as count
126
+ FROM :staging_table WHERE _import_status = 'update'
127
+ UNION ALL
128
+ SELECT
129
+ 'errors' as operation,
130
+ COUNT(*) as count
131
+ FROM :staging_table WHERE _import_status = 'error';
132
+
133
+ -- Get error details for review
134
+ SELECT id, :column1, _import_error
135
+ FROM :staging_table
136
+ WHERE _import_status = 'error';
137
+
138
+ -- Drop staging table (automatic for TEMP, but explicit is clearer)
139
+ DROP TABLE IF EXISTS :staging_table;
140
+