sinapse-ai 1.7.0 → 1.9.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 (368) hide show
  1. package/.claude/CLAUDE.md +5 -11
  2. package/.claude/hooks/README.md +14 -1
  3. package/.claude/hooks/code-intel-pretool.cjs +115 -0
  4. package/.claude/hooks/enforce-delegation.cjs +31 -3
  5. package/.claude/hooks/enforce-framework-boundary.cjs +324 -0
  6. package/.claude/hooks/enforce-permission-mode.cjs +249 -0
  7. package/.claude/hooks/mind-clone-governance.py +212 -212
  8. package/.claude/hooks/read-protection.py +152 -152
  9. package/.claude/hooks/secret-scanning.cjs +34 -43
  10. package/.claude/hooks/slug-validation.py +175 -175
  11. package/.claude/hooks/sql-governance.py +183 -183
  12. package/.claude/hooks/synapse-engine.cjs +23 -23
  13. package/.claude/hooks/telemetry-post-tool.cjs +128 -0
  14. package/.claude/hooks/telemetry-stop.cjs +132 -0
  15. package/.claude/hooks/verify-packages.cjs +9 -2
  16. package/.claude/rules/documentation-first.md +1 -1
  17. package/.claude/rules/hook-governance.md +3 -1
  18. package/.claude/rules/project-intelligence.md +1 -1
  19. package/.codex/agents/analyst.md +4 -371
  20. package/.codex/agents/animations-orqx.md +4 -57
  21. package/.codex/agents/architect.md +4 -560
  22. package/.codex/agents/brand-orqx.md +4 -95
  23. package/.codex/agents/claude-mastery-chief.md +4 -0
  24. package/.codex/agents/cloning-orqx.md +4 -70
  25. package/.codex/agents/commercial-orqx.md +4 -67
  26. package/.codex/agents/config-engineer.md +2 -2
  27. package/.codex/agents/content-orqx.md +4 -77
  28. package/.codex/agents/copy-orqx.md +4 -65
  29. package/.codex/agents/cost-optimizer.md +4 -0
  30. package/.codex/agents/council-orqx.md +4 -68
  31. package/.codex/agents/courses-orqx.md +4 -64
  32. package/.codex/agents/cro-persuasion.md +4 -0
  33. package/.codex/agents/cyber-orqx.md +4 -67
  34. package/.codex/agents/data-engineer.md +4 -542
  35. package/.codex/agents/design-orqx.md +4 -65
  36. package/.codex/agents/design-system.md +4 -210
  37. package/.codex/agents/developer.md +4 -666
  38. package/.codex/agents/devops.md +4 -668
  39. package/.codex/agents/finance-orqx.md +4 -57
  40. package/.codex/agents/fiscal-compliance-br.md +4 -0
  41. package/.codex/agents/forecast-strategist.md +4 -0
  42. package/.codex/agents/growth-orqx.md +4 -75
  43. package/.codex/agents/hooks-architect.md +2 -2
  44. package/.codex/agents/mcp-integrator.md +2 -2
  45. package/.codex/agents/paidmedia-orqx.md +4 -67
  46. package/.codex/agents/platform-aesthetic-director.md +4 -0
  47. package/.codex/agents/premium-packaging-strategist.md +4 -0
  48. package/.codex/agents/product-lead.md +4 -371
  49. package/.codex/agents/product-orqx.md +4 -57
  50. package/.codex/agents/product-surface-director.md +4 -0
  51. package/.codex/agents/project-integrator.md +2 -2
  52. package/.codex/agents/project-lead.md +4 -414
  53. package/.codex/agents/quality-gate.md +4 -547
  54. package/.codex/agents/research-orqx.md +4 -67
  55. package/.codex/agents/roadmap-sentinel.md +2 -2
  56. package/.codex/agents/skill-craftsman.md +2 -2
  57. package/.codex/agents/snps-orqx.md +4 -684
  58. package/.codex/agents/sop-extractor.md +4 -61
  59. package/.codex/agents/sprint-lead.md +4 -324
  60. package/.codex/agents/squad-creator.md +4 -402
  61. package/.codex/agents/storytelling-orqx.md +4 -65
  62. package/.codex/agents/swarm-orqx.md +4 -64
  63. package/.codex/agents/ux-design-expert.md +4 -532
  64. package/.codex/agents/ux-designer.md +4 -124
  65. package/.codex/command-registry.json +9 -9
  66. package/.codex/delegation-matrix.json +373 -838
  67. package/.codex/delegation-parity.json +657 -0
  68. package/.codex/handoff-packet.parity.schema.json +148 -0
  69. package/.codex/handoff-packet.template.json +26 -0
  70. package/.codex/instructions.md +6 -6
  71. package/.codex/scripts/resolve-codex-agent.js +482 -0
  72. package/.codex/scripts/resolve-codex-command.js +75 -12
  73. package/.codex/scripts/resolve-codex-delegation.js +131 -92
  74. package/.codex/skills/sinapse-claude/SKILL.md +3 -3
  75. package/.codex/skills/sinapse-po/SKILL.md +1 -1
  76. package/.codex/tasks/resolve-sinapse-conflict.md +1 -1
  77. package/.sinapse-ai/cli/commands/health/index.js +24 -0
  78. package/.sinapse-ai/constitution.md +5 -5
  79. package/.sinapse-ai/core/README.md +11 -0
  80. package/.sinapse-ai/core/config/config-loader.js +19 -0
  81. package/.sinapse-ai/core/doctor/checks/git-hooks.js +97 -19
  82. package/.sinapse-ai/core/events/dashboard-emitter.js +30 -9
  83. package/.sinapse-ai/core/execution/build-orchestrator.js +4 -1
  84. package/.sinapse-ai/core/execution/parallel-executor.js +7 -1
  85. package/.sinapse-ai/core/execution/subagent-dispatcher.js +126 -28
  86. package/.sinapse-ai/core/execution/wave-executor.js +4 -1
  87. package/.sinapse-ai/core/grounding/README.md +71 -11
  88. package/.sinapse-ai/core/health-check/checks/project/framework-config.js +38 -2
  89. package/.sinapse-ai/core/health-check/checks/project/package-json.js +47 -3
  90. package/.sinapse-ai/core/health-check/checks/services/gemini-cli.js +117 -0
  91. package/.sinapse-ai/core/health-check/checks/services/index.js +2 -0
  92. package/.sinapse-ai/core/health-check/healers/index.js +40 -3
  93. package/.sinapse-ai/core/ideation/ideation-engine.js +170 -121
  94. package/.sinapse-ai/core/ids/gate-evaluator.js +318 -0
  95. package/.sinapse-ai/core/ids/gates/g5-semantic-handshake.js +190 -0
  96. package/.sinapse-ai/core/ids/gates/g6-ci-integrity.js +162 -0
  97. package/.sinapse-ai/core/ids/index.js +30 -0
  98. package/.sinapse-ai/core/memory/__tests__/active-modules.verify.js +11 -0
  99. package/.sinapse-ai/core/orchestration/agent-invoker.js +29 -6
  100. package/.sinapse-ai/core/orchestration/brownfield-handler.js +36 -3
  101. package/.sinapse-ai/core/orchestration/executors/epic-3-executor.js +76 -5
  102. package/.sinapse-ai/core/orchestration/executors/epic-4-executor.js +63 -17
  103. package/.sinapse-ai/core/orchestration/executors/epic-6-executor.js +153 -41
  104. package/.sinapse-ai/core/orchestration/executors/epic-executor.js +40 -0
  105. package/.sinapse-ai/core/orchestration/greenfield-handler.js +87 -3
  106. package/.sinapse-ai/core/orchestration/master-orchestrator.js +105 -7
  107. package/.sinapse-ai/core/orchestration/parallel-executor.js +6 -1
  108. package/.sinapse-ai/core/orchestration/workflow-executor.js +41 -0
  109. package/.sinapse-ai/core/registry/squad-agent-resolver.js +253 -0
  110. package/.sinapse-ai/core/telemetry/ids-sink.js +188 -0
  111. package/.sinapse-ai/core/ui/observability-panel.js +240 -0
  112. package/.sinapse-ai/core/utils/output-formatter.js +8 -290
  113. package/.sinapse-ai/core-config.yaml +29 -1
  114. package/.sinapse-ai/data/entity-registry.yaml +15056 -13761
  115. package/.sinapse-ai/development/agents/developer.md +2 -0
  116. package/.sinapse-ai/development/agents/devops.md +9 -0
  117. package/.sinapse-ai/development/agents/snps-orqx.md +12 -22
  118. package/.sinapse-ai/development/external-executors/README.md +18 -0
  119. package/.sinapse-ai/development/external-executors/codex.md +56 -0
  120. package/.sinapse-ai/development/scripts/populate-entity-registry.js +65 -9
  121. package/.sinapse-ai/development/scripts/squad/squad-downloader.js +54 -11
  122. package/.sinapse-ai/development/tasks/build-autonomous.md +11 -1
  123. package/.sinapse-ai/development/tasks/build-resume.md +8 -0
  124. package/.sinapse-ai/development/tasks/build-status.md +8 -0
  125. package/.sinapse-ai/development/tasks/build.md +8 -0
  126. package/.sinapse-ai/development/tasks/cleanup-worktrees.md +8 -1
  127. package/.sinapse-ai/development/tasks/delegate-to-external-executor.md +152 -0
  128. package/.sinapse-ai/development/tasks/github-devops-pre-push-quality-gate.md +46 -29
  129. package/.sinapse-ai/development/tasks/gotcha.md +8 -0
  130. package/.sinapse-ai/development/tasks/gotchas.md +8 -0
  131. package/.sinapse-ai/development/tasks/ids-health.md +14 -6
  132. package/.sinapse-ai/development/tasks/list-mcps.md +15 -0
  133. package/.sinapse-ai/development/tasks/merge-worktree.md +8 -1
  134. package/.sinapse-ai/development/tasks/qa-review-build.md +18 -0
  135. package/.sinapse-ai/development/tasks/remove-mcp.md +8 -1
  136. package/.sinapse-ai/development/tasks/update-sinapse.md +3 -3
  137. package/.sinapse-ai/development/tasks/validate-agents.md +26 -14
  138. package/.sinapse-ai/development/templates/service-template/README.md.hbs +159 -159
  139. package/.sinapse-ai/development/templates/service-template/__tests__/index.test.ts.hbs +238 -238
  140. package/.sinapse-ai/development/templates/service-template/client.ts.hbs +404 -404
  141. package/.sinapse-ai/development/templates/service-template/errors.ts.hbs +183 -183
  142. package/.sinapse-ai/development/templates/service-template/index.ts.hbs +121 -121
  143. package/.sinapse-ai/development/templates/service-template/package.json.hbs +88 -88
  144. package/.sinapse-ai/development/templates/service-template/types.ts.hbs +146 -146
  145. package/.sinapse-ai/development/templates/squad-template/LICENSE +22 -22
  146. package/.sinapse-ai/git-hooks/lib/framework-guard.js +258 -0
  147. package/.sinapse-ai/git-hooks/lib/secret-scanner-core.js +283 -0
  148. package/.sinapse-ai/git-hooks/lib/staged-secret-scan.js +179 -0
  149. package/.sinapse-ai/git-hooks/lib/staged-sql-guard.js +204 -0
  150. package/.sinapse-ai/git-hooks/post-commit +28 -0
  151. package/.sinapse-ai/git-hooks/pre-commit +81 -0
  152. package/.sinapse-ai/git-hooks/pre-push +77 -0
  153. package/.sinapse-ai/hooks/ids-post-commit.js +13 -11
  154. package/.sinapse-ai/hooks/ids-pre-push.js +9 -7
  155. package/.sinapse-ai/hooks/sinapse-brand-grounding.cjs +4 -7
  156. package/.sinapse-ai/hooks/sinapse-ds-grounding.cjs +4 -7
  157. package/.sinapse-ai/hooks/sinapse-vault-grounding.cjs +4 -7
  158. package/.sinapse-ai/infrastructure/integrations/ai-providers/ai-provider-factory.js +4 -1
  159. package/.sinapse-ai/infrastructure/integrations/ai-providers/claude-provider.js +57 -55
  160. package/.sinapse-ai/infrastructure/scripts/codex-parity/resolve.js +161 -0
  161. package/.sinapse-ai/infrastructure/scripts/dashboard-status-writer.js +6 -2
  162. package/.sinapse-ai/infrastructure/scripts/ide-sync/index.js +139 -21
  163. package/.sinapse-ai/infrastructure/scripts/ide-sync/persona-renderer.js +97 -0
  164. package/.sinapse-ai/infrastructure/scripts/sync-codex-local-first.js +156 -1
  165. package/.sinapse-ai/infrastructure/scripts/validate-codex-delegation.js +1 -4
  166. package/.sinapse-ai/infrastructure/scripts/validate-codex-integration.js +41 -5
  167. package/.sinapse-ai/infrastructure/templates/coderabbit.yaml.template +280 -280
  168. package/.sinapse-ai/infrastructure/templates/config/env.example +16 -16
  169. package/.sinapse-ai/infrastructure/templates/config/gitignore-additions.tmpl +59 -59
  170. package/.sinapse-ai/infrastructure/templates/github/CODEOWNERS.template +12 -12
  171. package/.sinapse-ai/infrastructure/templates/github-workflows/ci.yml.template +170 -170
  172. package/.sinapse-ai/infrastructure/templates/github-workflows/pr-automation.yml.template +331 -331
  173. package/.sinapse-ai/infrastructure/templates/github-workflows/release.yml.template +197 -197
  174. package/.sinapse-ai/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +19 -19
  175. package/.sinapse-ai/infrastructure/templates/gitignore/gitignore-node.tmpl +86 -86
  176. package/.sinapse-ai/infrastructure/templates/gitignore/gitignore-python.tmpl +146 -146
  177. package/.sinapse-ai/infrastructure/templates/gitignore/gitignore-sinapse-base.tmpl +64 -64
  178. package/.sinapse-ai/infrastructure/templates/safe-collab/CODEOWNERS.template +16 -16
  179. package/.sinapse-ai/infrastructure/templates/sinapse-sync.yaml.template +183 -183
  180. package/.sinapse-ai/install-manifest.yaml +239 -223
  181. package/.sinapse-ai/local-config.yaml.template +65 -65
  182. package/.sinapse-ai/product/templates/adr.hbs +126 -126
  183. package/.sinapse-ai/product/templates/dbdr.hbs +242 -242
  184. package/.sinapse-ai/product/templates/epic.hbs +213 -213
  185. package/.sinapse-ai/product/templates/ide-rules/codex-rules.md +30 -0
  186. package/.sinapse-ai/product/templates/pmdr.hbs +187 -187
  187. package/.sinapse-ai/product/templates/prd-v2.0.hbs +217 -217
  188. package/.sinapse-ai/product/templates/prd.hbs +202 -202
  189. package/.sinapse-ai/product/templates/statusline/statusline-script.js +31 -8
  190. package/.sinapse-ai/product/templates/statusline/track-agent-clear.cjs +79 -0
  191. package/.sinapse-ai/product/templates/statusline/track-agent.cjs +218 -0
  192. package/.sinapse-ai/product/templates/story.hbs +264 -264
  193. package/.sinapse-ai/product/templates/task.hbs +171 -171
  194. package/.sinapse-ai/product/templates/tmpl-comment-on-examples.sql +159 -159
  195. package/.sinapse-ai/product/templates/tmpl-migration-script.sql +92 -92
  196. package/.sinapse-ai/product/templates/tmpl-rls-granular-policies.sql +105 -105
  197. package/.sinapse-ai/product/templates/tmpl-rls-kiss-policy.sql +11 -11
  198. package/.sinapse-ai/product/templates/tmpl-rls-roles.sql +136 -136
  199. package/.sinapse-ai/product/templates/tmpl-rls-simple.sql +78 -78
  200. package/.sinapse-ai/product/templates/tmpl-rls-tenant.sql +153 -153
  201. package/.sinapse-ai/product/templates/tmpl-rollback-script.sql +78 -78
  202. package/.sinapse-ai/product/templates/tmpl-seed-data.sql +141 -141
  203. package/.sinapse-ai/product/templates/tmpl-smoke-test.sql +17 -17
  204. package/.sinapse-ai/product/templates/tmpl-staging-copy-merge.sql +140 -140
  205. package/.sinapse-ai/product/templates/tmpl-stored-proc.sql +141 -141
  206. package/.sinapse-ai/product/templates/tmpl-trigger.sql +153 -153
  207. package/.sinapse-ai/product/templates/tmpl-view-materialized.sql +134 -134
  208. package/.sinapse-ai/product/templates/tmpl-view.sql +178 -178
  209. package/.sinapse-ai/scripts/pm.sh +18 -6
  210. package/AGENTS.md +193 -0
  211. package/LICENSE +63 -63
  212. package/README.en.md +17 -18
  213. package/README.md +18 -19
  214. package/bin/cli.js +18 -1
  215. package/bin/commands/agents.js +96 -0
  216. package/bin/commands/doctor.js +15 -0
  217. package/bin/commands/ideate.js +129 -0
  218. package/bin/commands/install.js +194 -22
  219. package/bin/commands/status.js +14 -1
  220. package/bin/commands/uninstall.js +40 -0
  221. package/bin/commands/update.js +52 -0
  222. package/bin/lib/setup-statusline.js +191 -0
  223. package/bin/postinstall.js +50 -4
  224. package/bin/sinapse-init.js +11 -83
  225. package/bin/sinapse.js +146 -2
  226. package/bin/utils/framework-guard.js +17 -4
  227. package/bin/utils/secret-scanner-core.js +283 -0
  228. package/bin/utils/staged-secret-scan.js +106 -40
  229. package/bin/utils/staged-sql-guard.js +204 -0
  230. package/bin/utils/validate-publish.js +63 -0
  231. package/docs/agent-reference-guide.md +4 -6
  232. package/docs/framework/agent-prefix-convention.md +58 -0
  233. package/docs/framework/collaboration-activation.md +45 -0
  234. package/docs/security/overview.md +1 -1
  235. package/package.json +16 -8
  236. package/packages/installer/src/index.js +26 -0
  237. package/packages/installer/src/installer/git-hooks-installer.js +546 -0
  238. package/packages/installer/src/installer/sinapse-ai-installer.js +87 -0
  239. package/packages/installer/src/wizard/feedback.js +1 -1
  240. package/packages/installer/src/wizard/ide-config-generator.js +40 -25
  241. package/packages/installer/src/wizard/index.js +50 -0
  242. package/packages/installer/src/wizard/validators.js +38 -1
  243. package/packages/installer/tests/unit/artifact-copy-pipeline/artifact-copy-pipeline.test.js +24 -1
  244. package/packages/installer/tests/unit/doctor/doctor-checks.test.js +42 -3
  245. package/packages/installer/tests/unit/entity-registry-bootstrap.test.js +10 -4
  246. package/packages/installer/tests/unit/git-hooks-installer.test.js +262 -0
  247. package/packages/sinapse-install/bin/edmcp.js +0 -0
  248. package/packages/sinapse-install/bin/sinapse-install.js +0 -0
  249. package/scripts/audit-tasks.cjs +112 -91
  250. package/scripts/check-markdown-links.py +352 -352
  251. package/scripts/eval-runner.js +422 -0
  252. package/scripts/generate-install-manifest.js +13 -9
  253. package/scripts/generate-synapse-runtime.js +51 -0
  254. package/scripts/prepare-hooks.js +58 -0
  255. package/scripts/regenerate-orqx-stubs.ps1 +2 -2
  256. package/scripts/validate-agents-md.js +128 -0
  257. package/scripts/validate-all.js +2 -0
  258. package/scripts/validate-evals.js +466 -0
  259. package/scripts/validate-schemas.js +539 -0
  260. package/scripts/validate-squad-orqx.js +9 -2
  261. package/sinapse/agents/sinapse-orqx.md +12 -22
  262. package/sinapse/agents/snps-orqx.md +11 -21
  263. package/squads/claude-code-mastery/squad.yaml +8 -0
  264. package/squads/squad-animations/squad.yaml +1 -1
  265. package/squads/squad-brand/squad.yaml +1 -1
  266. package/squads/squad-cloning/squad.yaml +1 -1
  267. package/squads/squad-commercial/squad.yaml +2 -3
  268. package/squads/squad-content/squad.yaml +1 -1
  269. package/squads/squad-copy/squad.yaml +2 -3
  270. package/squads/squad-courses/squad.yaml +1 -1
  271. package/squads/squad-cybersecurity/squad.yaml +2 -3
  272. package/squads/{squad-artdir → squad-design}/agents/cro-persuasion.md +1 -1
  273. package/squads/{squad-artdir → squad-design}/agents/platform-aesthetic-director.md +2 -2
  274. package/squads/{squad-artdir → squad-design}/agents/premium-packaging-strategist.md +2 -2
  275. package/squads/{squad-artdir → squad-design}/agents/product-surface-director.md +3 -3
  276. package/squads/squad-design/squad.yaml +6 -3
  277. package/squads/squad-finance/squad.yaml +7 -1
  278. package/squads/squad-growth/squad.yaml +1 -1
  279. package/squads/squad-paidmedia/squad.yaml +2 -3
  280. package/squads/squad-product/squad.yaml +1 -1
  281. package/squads/squad-research/squad.yaml +2 -3
  282. package/squads/squad-storytelling/squad.yaml +2 -3
  283. package/.codex/agents/brad-frost.md +0 -46
  284. package/.codex/agents/claude-orqx.md +0 -72
  285. package/.codex/agents/copy-chief.md +0 -162
  286. package/.codex/agents/cyber-chief.md +0 -169
  287. package/.codex/agents/dan-mall.md +0 -43
  288. package/.codex/agents/data-chief.md +0 -198
  289. package/.codex/agents/dave-malouf.md +0 -43
  290. package/.codex/agents/db-sage.md +0 -152
  291. package/.codex/agents/design-chief.md +0 -226
  292. package/.codex/agents/dev.md +0 -102
  293. package/.codex/agents/legal-chief.md +0 -199
  294. package/.codex/agents/nano-banana-generator.md +0 -42
  295. package/.codex/agents/pm.md +0 -81
  296. package/.codex/agents/po.md +0 -85
  297. package/.codex/agents/qa.md +0 -98
  298. package/.codex/agents/sm.md +0 -77
  299. package/.codex/agents/squad-chief.md +0 -1553
  300. package/.codex/agents/squad.md +0 -66
  301. package/.codex/agents/story-chief.md +0 -180
  302. package/.codex/agents/tools-orqx.md +0 -219
  303. package/.codex/agents/traffic-masters-chief.md +0 -211
  304. package/.sinapse-ai/data/registry-update-log.jsonl +0 -72
  305. package/.sinapse-ai/development/scripts/elicitation-engine.js +0 -385
  306. package/.sinapse-ai/development/scripts/elicitation-session-manager.js +0 -300
  307. package/.sinapse-ai/development/tasks/test-validation-task.md +0 -172
  308. package/.sinapse-ai/monitor/hooks/lib/__init__.py +0 -2
  309. package/.sinapse-ai/monitor/hooks/lib/enrich.py +0 -59
  310. package/.sinapse-ai/monitor/hooks/lib/send_event.py +0 -48
  311. package/.sinapse-ai/monitor/hooks/notification.py +0 -30
  312. package/.sinapse-ai/monitor/hooks/post_tool_use.py +0 -46
  313. package/.sinapse-ai/monitor/hooks/pre_compact.py +0 -30
  314. package/.sinapse-ai/monitor/hooks/pre_tool_use.py +0 -41
  315. package/.sinapse-ai/monitor/hooks/stop.py +0 -30
  316. package/.sinapse-ai/monitor/hooks/subagent_stop.py +0 -30
  317. package/.sinapse-ai/monitor/hooks/user_prompt_submit.py +0 -39
  318. package/.sinapse-ai/product/templates/statusline/track-agent.sh +0 -69
  319. package/bin/sinapse-graph.js +0 -19
  320. package/docs/codex-integration-process.md +0 -22
  321. package/docs/codex-parity-program.md +0 -27
  322. package/scripts/install-monitor-hooks.sh +0 -82
  323. package/squads/squad-artdir/README.md +0 -90
  324. package/squads/squad-artdir/agents/accessibility-guardian.md +0 -184
  325. package/squads/squad-artdir/agents/artdir-orqx.md +0 -222
  326. package/squads/squad-artdir/agents/color-psychologist.md +0 -166
  327. package/squads/squad-artdir/agents/design-system-architect.md +0 -100
  328. package/squads/squad-artdir/agents/ia-architect.md +0 -169
  329. package/squads/squad-artdir/agents/interaction-designer.md +0 -162
  330. package/squads/squad-artdir/agents/layout-engineer.md +0 -163
  331. package/squads/squad-artdir/agents/motion-architect.md +0 -185
  332. package/squads/squad-artdir/agents/type-systemist.md +0 -138
  333. package/squads/squad-artdir/agents/visual-strategist.md +0 -127
  334. package/squads/squad-artdir/checklists/seven-pillars-validation-checklist.md +0 -172
  335. package/squads/squad-artdir/knowledge-base/case-nyo-ia-reference.md +0 -289
  336. package/squads/squad-artdir/knowledge-base/deliverables-templates.md +0 -457
  337. package/squads/squad-artdir/knowledge-base/motion-technique-catalog.md +0 -247
  338. package/squads/squad-artdir/knowledge-base/premium-packaging-principles.md +0 -133
  339. package/squads/squad-artdir/knowledge-base/psychological-toolkit.md +0 -229
  340. package/squads/squad-artdir/knowledge-base/saas-art-direction-canon.md +0 -242
  341. package/squads/squad-artdir/knowledge-base/seven-pillars-framework.md +0 -289
  342. package/squads/squad-artdir/knowledge-base/ten-pillars-framework.md +0 -221
  343. package/squads/squad-artdir/package.json +0 -20
  344. package/squads/squad-artdir/squad.yaml +0 -299
  345. package/squads/squad-artdir/tasks/audit-conversion.md +0 -97
  346. package/squads/squad-artdir/tasks/audit-drift-multi-surface.md +0 -55
  347. package/squads/squad-artdir/tasks/consult-saas-canon.md +0 -54
  348. package/squads/squad-artdir/tasks/create-art-direction-brief.md +0 -110
  349. package/squads/squad-artdir/tasks/create-premium-packaging-brief.md +0 -61
  350. package/squads/squad-artdir/tasks/create-wireflow.md +0 -84
  351. package/squads/squad-artdir/tasks/design-color-system.md +0 -81
  352. package/squads/squad-artdir/tasks/design-product-surface.md +0 -60
  353. package/squads/squad-artdir/tasks/design-token-system.md +0 -58
  354. package/squads/squad-artdir/tasks/diagnose-visual-language.md +0 -92
  355. package/squads/squad-artdir/tasks/first-5-minutes-choreography.md +0 -65
  356. package/squads/squad-artdir/tasks/specify-motion-system.md +0 -84
  357. package/squads/squad-artdir/tasks/validate-against-pillars.md +0 -143
  358. package/squads/squad-artdir/templates/art-direction-brief-template.md +0 -215
  359. package/squads/squad-artdir/workflows/conversion-audit-cycle.yaml +0 -142
  360. package/squads/squad-artdir/workflows/full-art-direction-cycle.yaml +0 -179
  361. package/squads/squad-artdir/workflows/saas-platform-art-direction-cycle.yaml +0 -338
  362. package/squads/squad-commercial/agents/legal-chief.md +0 -199
  363. package/squads/squad-copy/agents/copy-chief.md +0 -162
  364. package/squads/squad-cybersecurity/agents/cyber-chief.md +0 -169
  365. package/squads/squad-design/agents/design-chief.md +0 -226
  366. package/squads/squad-paidmedia/agents/traffic-masters-chief.md +0 -211
  367. package/squads/squad-research/agents/data-chief.md +0 -198
  368. package/squads/squad-storytelling/agents/story-chief.md +0 -180
@@ -1,136 +1,136 @@
1
- -- RLS Roles Template
2
- -- Role-Based Access Control (RBAC) foundation for RLS policies
3
- -- Created: :created_date
4
- --
5
- -- This template sets up the foundation for role-based RLS policies
6
-
7
- -- =============================================================================
8
- -- ROLES TABLE
9
- -- =============================================================================
10
- CREATE TABLE IF NOT EXISTS roles (
11
- id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
12
- name TEXT NOT NULL UNIQUE,
13
- description TEXT,
14
- permissions JSONB DEFAULT '[]'::JSONB,
15
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
16
- updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
17
- );
18
-
19
- -- Insert default roles
20
- INSERT INTO roles (name, description, permissions) VALUES
21
- ('admin', 'Full system access', '["*"]'::JSONB),
22
- ('editor', 'Can read and modify content', '["read", "write", "update"]'::JSONB),
23
- ('viewer', 'Read-only access', '["read"]'::JSONB),
24
- ('creator', 'Can create new content', '["read", "write"]'::JSONB)
25
- ON CONFLICT (name) DO NOTHING;
26
-
27
- -- =============================================================================
28
- -- USER ROLES TABLE (Many-to-Many)
29
- -- =============================================================================
30
- CREATE TABLE IF NOT EXISTS user_roles (
31
- id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
32
- user_id UUID NOT NULL REFERENCES auth.users(id) ON DELETE CASCADE,
33
- role_id UUID NOT NULL REFERENCES roles(id) ON DELETE CASCADE,
34
- granted_by UUID REFERENCES auth.users(id),
35
- granted_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
36
- expires_at TIMESTAMPTZ, -- NULL means never expires
37
-
38
- UNIQUE(user_id, role_id)
39
- );
40
-
41
- -- Index for fast role lookups
42
- CREATE INDEX IF NOT EXISTS idx_user_roles_user_id ON user_roles(user_id);
43
- CREATE INDEX IF NOT EXISTS idx_user_roles_role_id ON user_roles(role_id);
44
-
45
- -- =============================================================================
46
- -- HELPER FUNCTIONS FOR RLS
47
- -- =============================================================================
48
-
49
- -- Check if user has a specific role
50
- CREATE OR REPLACE FUNCTION has_role(role_name TEXT)
51
- RETURNS BOOLEAN AS $$
52
- BEGIN
53
- RETURN EXISTS (
54
- SELECT 1
55
- FROM user_roles ur
56
- JOIN roles r ON ur.role_id = r.id
57
- WHERE ur.user_id = auth.uid()
58
- AND r.name = role_name
59
- AND (ur.expires_at IS NULL OR ur.expires_at > NOW())
60
- );
61
- END;
62
- $$ LANGUAGE plpgsql SECURITY DEFINER STABLE;
63
-
64
- -- Check if user has any of the specified roles
65
- CREATE OR REPLACE FUNCTION has_any_role(role_names TEXT[])
66
- RETURNS BOOLEAN AS $$
67
- BEGIN
68
- RETURN EXISTS (
69
- SELECT 1
70
- FROM user_roles ur
71
- JOIN roles r ON ur.role_id = r.id
72
- WHERE ur.user_id = auth.uid()
73
- AND r.name = ANY(role_names)
74
- AND (ur.expires_at IS NULL OR ur.expires_at > NOW())
75
- );
76
- END;
77
- $$ LANGUAGE plpgsql SECURITY DEFINER STABLE;
78
-
79
- -- Check if user has a specific permission
80
- CREATE OR REPLACE FUNCTION has_permission(permission TEXT)
81
- RETURNS BOOLEAN AS $$
82
- BEGIN
83
- RETURN EXISTS (
84
- SELECT 1
85
- FROM user_roles ur
86
- JOIN roles r ON ur.role_id = r.id
87
- WHERE ur.user_id = auth.uid()
88
- AND (
89
- r.permissions @> '["*"]'::JSONB
90
- OR r.permissions @> to_jsonb(permission)
91
- )
92
- AND (ur.expires_at IS NULL OR ur.expires_at > NOW())
93
- );
94
- END;
95
- $$ LANGUAGE plpgsql SECURITY DEFINER STABLE;
96
-
97
- -- =============================================================================
98
- -- RLS ON ROLES TABLES
99
- -- =============================================================================
100
-
101
- -- Roles table: Admins can manage, everyone can read
102
- ALTER TABLE roles ENABLE ROW LEVEL SECURITY;
103
-
104
- CREATE POLICY "roles_select" ON roles
105
- FOR SELECT TO authenticated
106
- USING (true);
107
-
108
- CREATE POLICY "roles_admin" ON roles
109
- FOR ALL TO authenticated
110
- USING (has_role('admin'))
111
- WITH CHECK (has_role('admin'));
112
-
113
- -- User roles: Users see their own, admins see all
114
- ALTER TABLE user_roles ENABLE ROW LEVEL SECURITY;
115
-
116
- CREATE POLICY "user_roles_select" ON user_roles
117
- FOR SELECT TO authenticated
118
- USING (user_id = auth.uid() OR has_role('admin'));
119
-
120
- CREATE POLICY "user_roles_admin" ON user_roles
121
- FOR ALL TO authenticated
122
- USING (has_role('admin'))
123
- WITH CHECK (has_role('admin'));
124
-
125
- -- =============================================================================
126
- -- USAGE EXAMPLE IN OTHER POLICIES
127
- -- =============================================================================
128
- --
129
- -- CREATE POLICY "my_table_select" ON my_table
130
- -- FOR SELECT TO authenticated
131
- -- USING (
132
- -- user_id = auth.uid()
133
- -- OR has_any_role(ARRAY['admin', 'viewer'])
134
- -- );
135
- --
136
-
1
+ -- RLS Roles Template
2
+ -- Role-Based Access Control (RBAC) foundation for RLS policies
3
+ -- Created: :created_date
4
+ --
5
+ -- This template sets up the foundation for role-based RLS policies
6
+
7
+ -- =============================================================================
8
+ -- ROLES TABLE
9
+ -- =============================================================================
10
+ CREATE TABLE IF NOT EXISTS roles (
11
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
12
+ name TEXT NOT NULL UNIQUE,
13
+ description TEXT,
14
+ permissions JSONB DEFAULT '[]'::JSONB,
15
+ created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
16
+ updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
17
+ );
18
+
19
+ -- Insert default roles
20
+ INSERT INTO roles (name, description, permissions) VALUES
21
+ ('admin', 'Full system access', '["*"]'::JSONB),
22
+ ('editor', 'Can read and modify content', '["read", "write", "update"]'::JSONB),
23
+ ('viewer', 'Read-only access', '["read"]'::JSONB),
24
+ ('creator', 'Can create new content', '["read", "write"]'::JSONB)
25
+ ON CONFLICT (name) DO NOTHING;
26
+
27
+ -- =============================================================================
28
+ -- USER ROLES TABLE (Many-to-Many)
29
+ -- =============================================================================
30
+ CREATE TABLE IF NOT EXISTS user_roles (
31
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
32
+ user_id UUID NOT NULL REFERENCES auth.users(id) ON DELETE CASCADE,
33
+ role_id UUID NOT NULL REFERENCES roles(id) ON DELETE CASCADE,
34
+ granted_by UUID REFERENCES auth.users(id),
35
+ granted_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
36
+ expires_at TIMESTAMPTZ, -- NULL means never expires
37
+
38
+ UNIQUE(user_id, role_id)
39
+ );
40
+
41
+ -- Index for fast role lookups
42
+ CREATE INDEX IF NOT EXISTS idx_user_roles_user_id ON user_roles(user_id);
43
+ CREATE INDEX IF NOT EXISTS idx_user_roles_role_id ON user_roles(role_id);
44
+
45
+ -- =============================================================================
46
+ -- HELPER FUNCTIONS FOR RLS
47
+ -- =============================================================================
48
+
49
+ -- Check if user has a specific role
50
+ CREATE OR REPLACE FUNCTION has_role(role_name TEXT)
51
+ RETURNS BOOLEAN AS $$
52
+ BEGIN
53
+ RETURN EXISTS (
54
+ SELECT 1
55
+ FROM user_roles ur
56
+ JOIN roles r ON ur.role_id = r.id
57
+ WHERE ur.user_id = auth.uid()
58
+ AND r.name = role_name
59
+ AND (ur.expires_at IS NULL OR ur.expires_at > NOW())
60
+ );
61
+ END;
62
+ $$ LANGUAGE plpgsql SECURITY DEFINER STABLE;
63
+
64
+ -- Check if user has any of the specified roles
65
+ CREATE OR REPLACE FUNCTION has_any_role(role_names TEXT[])
66
+ RETURNS BOOLEAN AS $$
67
+ BEGIN
68
+ RETURN EXISTS (
69
+ SELECT 1
70
+ FROM user_roles ur
71
+ JOIN roles r ON ur.role_id = r.id
72
+ WHERE ur.user_id = auth.uid()
73
+ AND r.name = ANY(role_names)
74
+ AND (ur.expires_at IS NULL OR ur.expires_at > NOW())
75
+ );
76
+ END;
77
+ $$ LANGUAGE plpgsql SECURITY DEFINER STABLE;
78
+
79
+ -- Check if user has a specific permission
80
+ CREATE OR REPLACE FUNCTION has_permission(permission TEXT)
81
+ RETURNS BOOLEAN AS $$
82
+ BEGIN
83
+ RETURN EXISTS (
84
+ SELECT 1
85
+ FROM user_roles ur
86
+ JOIN roles r ON ur.role_id = r.id
87
+ WHERE ur.user_id = auth.uid()
88
+ AND (
89
+ r.permissions @> '["*"]'::JSONB
90
+ OR r.permissions @> to_jsonb(permission)
91
+ )
92
+ AND (ur.expires_at IS NULL OR ur.expires_at > NOW())
93
+ );
94
+ END;
95
+ $$ LANGUAGE plpgsql SECURITY DEFINER STABLE;
96
+
97
+ -- =============================================================================
98
+ -- RLS ON ROLES TABLES
99
+ -- =============================================================================
100
+
101
+ -- Roles table: Admins can manage, everyone can read
102
+ ALTER TABLE roles ENABLE ROW LEVEL SECURITY;
103
+
104
+ CREATE POLICY "roles_select" ON roles
105
+ FOR SELECT TO authenticated
106
+ USING (true);
107
+
108
+ CREATE POLICY "roles_admin" ON roles
109
+ FOR ALL TO authenticated
110
+ USING (has_role('admin'))
111
+ WITH CHECK (has_role('admin'));
112
+
113
+ -- User roles: Users see their own, admins see all
114
+ ALTER TABLE user_roles ENABLE ROW LEVEL SECURITY;
115
+
116
+ CREATE POLICY "user_roles_select" ON user_roles
117
+ FOR SELECT TO authenticated
118
+ USING (user_id = auth.uid() OR has_role('admin'));
119
+
120
+ CREATE POLICY "user_roles_admin" ON user_roles
121
+ FOR ALL TO authenticated
122
+ USING (has_role('admin'))
123
+ WITH CHECK (has_role('admin'));
124
+
125
+ -- =============================================================================
126
+ -- USAGE EXAMPLE IN OTHER POLICIES
127
+ -- =============================================================================
128
+ --
129
+ -- CREATE POLICY "my_table_select" ON my_table
130
+ -- FOR SELECT TO authenticated
131
+ -- USING (
132
+ -- user_id = auth.uid()
133
+ -- OR has_any_role(ARRAY['admin', 'viewer'])
134
+ -- );
135
+ --
136
+
@@ -1,78 +1,78 @@
1
- -- Simple RLS Policy Template
2
- -- Table: :table_name
3
- -- Security Model: Simple owner-based access
4
- -- Created: :created_date
5
- --
6
- -- This template creates a simple RLS policy where users can only
7
- -- access rows they own (based on user_id column)
8
-
9
- -- Enable RLS on table
10
- ALTER TABLE :table_name ENABLE ROW LEVEL SECURITY;
11
-
12
- -- =============================================================================
13
- -- SIMPLE OWNER-BASED POLICY
14
- -- =============================================================================
15
-
16
- -- Drop existing policies if re-running
17
- DROP POLICY IF EXISTS ":table_name_owner_policy" ON :table_name;
18
-
19
- -- Single policy for all operations (SELECT, INSERT, UPDATE, DELETE)
20
- -- Users can only access rows where user_id matches their auth.uid()
21
- CREATE POLICY ":table_name_owner_policy"
22
- ON :table_name
23
- FOR ALL
24
- TO authenticated
25
- USING (auth.uid() = user_id)
26
- WITH CHECK (auth.uid() = user_id);
27
-
28
- -- =============================================================================
29
- -- OPTIONAL: Allow service role to bypass RLS
30
- -- =============================================================================
31
- -- Note: This is enabled by default in Supabase
32
- -- The service_role can access all rows regardless of RLS policies
33
- -- Be careful with service_role key exposure
34
-
35
- -- =============================================================================
36
- -- OPTIONAL: Public read access (if needed)
37
- -- =============================================================================
38
- -- Uncomment if you want anonymous users to read data
39
- --
40
- -- DROP POLICY IF EXISTS ":table_name_public_read" ON :table_name;
41
- -- CREATE POLICY ":table_name_public_read"
42
- -- ON :table_name
43
- -- FOR SELECT
44
- -- TO anon
45
- -- USING (is_public = true);
46
-
47
- -- =============================================================================
48
- -- VERIFICATION
49
- -- =============================================================================
50
- -- Test the policy:
51
- --
52
- -- 1. As authenticated user (should see only their rows):
53
- -- SET LOCAL ROLE authenticated;
54
- -- SET LOCAL request.jwt.claims = '{"sub": "user-uuid-here"}';
55
- -- SELECT * FROM :table_name;
56
- --
57
- -- 2. As service role (should see all rows):
58
- -- SET LOCAL ROLE service_role;
59
- -- SELECT * FROM :table_name;
60
- --
61
- -- 3. As anonymous (should see nothing unless public_read enabled):
62
- -- SET LOCAL ROLE anon;
63
- -- SELECT * FROM :table_name;
64
-
65
- -- =============================================================================
66
- -- TABLE REQUIREMENTS
67
- -- =============================================================================
68
- -- This template assumes :table_name has a user_id column:
69
- --
70
- -- CREATE TABLE :table_name (
71
- -- id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
72
- -- user_id UUID NOT NULL REFERENCES auth.users(id) ON DELETE CASCADE,
73
- -- -- other columns...
74
- -- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
75
- -- );
76
- --
77
- -- CREATE INDEX idx_:table_name_user_id ON :table_name(user_id);
78
-
1
+ -- Simple RLS Policy Template
2
+ -- Table: :table_name
3
+ -- Security Model: Simple owner-based access
4
+ -- Created: :created_date
5
+ --
6
+ -- This template creates a simple RLS policy where users can only
7
+ -- access rows they own (based on user_id column)
8
+
9
+ -- Enable RLS on table
10
+ ALTER TABLE :table_name ENABLE ROW LEVEL SECURITY;
11
+
12
+ -- =============================================================================
13
+ -- SIMPLE OWNER-BASED POLICY
14
+ -- =============================================================================
15
+
16
+ -- Drop existing policies if re-running
17
+ DROP POLICY IF EXISTS ":table_name_owner_policy" ON :table_name;
18
+
19
+ -- Single policy for all operations (SELECT, INSERT, UPDATE, DELETE)
20
+ -- Users can only access rows where user_id matches their auth.uid()
21
+ CREATE POLICY ":table_name_owner_policy"
22
+ ON :table_name
23
+ FOR ALL
24
+ TO authenticated
25
+ USING (auth.uid() = user_id)
26
+ WITH CHECK (auth.uid() = user_id);
27
+
28
+ -- =============================================================================
29
+ -- OPTIONAL: Allow service role to bypass RLS
30
+ -- =============================================================================
31
+ -- Note: This is enabled by default in Supabase
32
+ -- The service_role can access all rows regardless of RLS policies
33
+ -- Be careful with service_role key exposure
34
+
35
+ -- =============================================================================
36
+ -- OPTIONAL: Public read access (if needed)
37
+ -- =============================================================================
38
+ -- Uncomment if you want anonymous users to read data
39
+ --
40
+ -- DROP POLICY IF EXISTS ":table_name_public_read" ON :table_name;
41
+ -- CREATE POLICY ":table_name_public_read"
42
+ -- ON :table_name
43
+ -- FOR SELECT
44
+ -- TO anon
45
+ -- USING (is_public = true);
46
+
47
+ -- =============================================================================
48
+ -- VERIFICATION
49
+ -- =============================================================================
50
+ -- Test the policy:
51
+ --
52
+ -- 1. As authenticated user (should see only their rows):
53
+ -- SET LOCAL ROLE authenticated;
54
+ -- SET LOCAL request.jwt.claims = '{"sub": "user-uuid-here"}';
55
+ -- SELECT * FROM :table_name;
56
+ --
57
+ -- 2. As service role (should see all rows):
58
+ -- SET LOCAL ROLE service_role;
59
+ -- SELECT * FROM :table_name;
60
+ --
61
+ -- 3. As anonymous (should see nothing unless public_read enabled):
62
+ -- SET LOCAL ROLE anon;
63
+ -- SELECT * FROM :table_name;
64
+
65
+ -- =============================================================================
66
+ -- TABLE REQUIREMENTS
67
+ -- =============================================================================
68
+ -- This template assumes :table_name has a user_id column:
69
+ --
70
+ -- CREATE TABLE :table_name (
71
+ -- id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
72
+ -- user_id UUID NOT NULL REFERENCES auth.users(id) ON DELETE CASCADE,
73
+ -- -- other columns...
74
+ -- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
75
+ -- );
76
+ --
77
+ -- CREATE INDEX idx_:table_name_user_id ON :table_name(user_id);
78
+