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
@@ -0,0 +1,306 @@
1
+ # SINAPSE Framework Security Audit
2
+
3
+ **Date:** 2026-04-10
4
+ **Auditor:** Claude Opus 4.6 (automated code review)
5
+ **Scope:** SINAPSE framework code (.claude/hooks/, .sinapse-ai/core/, packages/installer/, bin/)
6
+ **Mode:** YOLO (framework governance)
7
+
8
+ ## Executive Summary
9
+
10
+ **Overall Security Posture: GOOD**
11
+
12
+ The SINAPSE framework demonstrates a mature security posture with multiple defense layers: hook-based enforcement, secret scanning, SQL governance, path validation, and manifest signature verification. The codebase consistently follows fail-open/fail-closed patterns as documented, and no hardcoded secrets were found in production code. However, there are several medium-severity findings that should be addressed to reach enterprise-grade security.
13
+
14
+ ---
15
+
16
+ ## Findings
17
+
18
+ ### CRITICAL
19
+
20
+ **No critical security issues found.**
21
+
22
+ The framework has no exposed credentials, no arbitrary code execution from user input, and no exploitable injection vectors in its current form.
23
+
24
+ ---
25
+
26
+ ### HIGH
27
+
28
+ #### H-1: `eval()` usage in test-discovery.js (Code Injection Risk)
29
+
30
+ **File:** `.sinapse-ai/infrastructure/scripts/test-discovery.js:724`
31
+ **Code:**
32
+ ```javascript
33
+ return eval('(' + match[1] + ')');
34
+ ```
35
+
36
+ **Risk:** This `eval()` call parses `module.exports` from Jest config files. While the input comes from local project files (not external user input), it could execute arbitrary code if a malicious Jest config is present in the repository. An attacker who gains write access to `jest.config.js` could execute arbitrary code through this path.
37
+
38
+ **Recommendation:** Replace with `JSON.parse()`, `vm.runInNewContext()` with a frozen sandbox, or a dedicated config parser like `require()` with `Module._resolveFilename` validation.
39
+
40
+ ---
41
+
42
+ #### H-2: Shell Command Injection in pr-review-ai.js
43
+
44
+ **File:** `.sinapse-ai/infrastructure/scripts/pr-review-ai.js:846`
45
+ **Code:**
46
+ ```javascript
47
+ execSync(`gh pr comment ${prNumber} --body "${body.replace(/"/g, '\\"')}"`, { ... });
48
+ ```
49
+
50
+ **Risk:** The `body` variable (derived from review content) is inserted into a shell command with only double-quote escaping. Characters like `$(...)`, backticks, `\n`, and `$()` can still break out of the quoting on Unix shells. The `prNumber` parameter is also interpolated without sanitization -- if sourced from user input, it could inject shell commands.
51
+
52
+ **Recommendation:**
53
+ - Use `execFileSync('gh', ['pr', 'comment', prNumber, '--body', body])` (array form avoids shell interpretation entirely).
54
+ - Apply the same fix to lines 853-854 (`gh pr review`).
55
+ - Validate `prNumber` is strictly numeric.
56
+
57
+ ---
58
+
59
+ #### H-3: Shell Command Injection in terminal-spawner.js
60
+
61
+ **File:** `.sinapse-ai/core/orchestration/terminal-spawner.js:557`
62
+ **Code:**
63
+ ```javascript
64
+ const result = execSync(`bash "${scriptPath}" ${args.join(' ')}`, { ... });
65
+ ```
66
+
67
+ **Risk:** The `args` array is joined with spaces and interpolated directly into a shell command string. If any element of `args` contains shell metacharacters (`;`, `|`, `$()`, backticks), they will be interpreted by the shell.
68
+
69
+ **Recommendation:** Use `execFileSync('bash', [scriptPath, ...args])` to pass arguments as an array, preventing shell interpretation.
70
+
71
+ ---
72
+
73
+ #### H-4: Manifest Signature Verification Uses Placeholder Key
74
+
75
+ **File:** `packages/installer/src/installer/manifest-signature.js:45`
76
+ **Code:**
77
+ ```javascript
78
+ publicKey: 'REPLACE_WITH_ACTUAL_PUBLIC_KEY_BASE64_HERE',
79
+ ```
80
+
81
+ **Risk:** The manifest signature verification system is fully implemented and well-designed, but the public key is still a placeholder. This means the signature verification chain provides zero assurance in its current state. While the code correctly detects and reports the placeholder, any code that calls `loadAndVerifyManifest()` with `requireSignature: false` (which appears to be the current behavior) bypasses verification entirely.
82
+
83
+ **Recommendation:** Generate an Ed25519 keypair, replace the placeholder with the actual public key, and set `requireSignature: true` in production flows.
84
+
85
+ ---
86
+
87
+ ### MEDIUM
88
+
89
+ #### M-1: Unsanitized Path Interpolation in symlink-manager.js
90
+
91
+ **File:** `.sinapse-ai/core/mcp/symlink-manager.js:66,103,315,383`
92
+ **Code:**
93
+ ```javascript
94
+ execSync(`fsutil reparsepoint query "${linkPath}"`, { ... });
95
+ execSync(`mklink /J "${linkPath}" "${globalPath}"`, { ... });
96
+ execSync(`rmdir "${linkPath}"`, { ... });
97
+ ```
98
+
99
+ **Risk:** `linkPath` and `globalPath` are interpolated into shell commands. On Windows, paths containing `"` or `&` characters could break out of the quoting. While these paths are typically derived from `path.join()` operations on project-controlled values (not direct user input), a crafted project directory name could theoretically exploit this.
100
+
101
+ **Recommendation:** Use `execFileSync('cmd', ['/c', 'mklink', '/J', linkPath, globalPath])` or validate paths against a strict character set before interpolation.
102
+
103
+ ---
104
+
105
+ #### M-2: PATH Manipulation in cli.js Without Validation
106
+
107
+ **File:** `bin/cli.js:691`
108
+ **Code:**
109
+ ```javascript
110
+ execSync(`setx PATH "${newPath}"`, { encoding: 'utf8', stdio: 'pipe' });
111
+ ```
112
+
113
+ **Risk:** The `newPath` variable is constructed from the current PATH value plus a new segment. If the current PATH contains malicious content (unlikely but possible in a compromised environment), this could inject commands via the `setx` call.
114
+
115
+ **Recommendation:** Validate `newPath` against a strict pattern (only path separators, alphanumeric, and common path characters) before execution.
116
+
117
+ ---
118
+
119
+ #### M-3: Git Command Injection in semantic-merge-engine.js
120
+
121
+ **File:** `.sinapse-ai/core/execution/semantic-merge-engine.js:1524,1534,1567`
122
+ **Code:**
123
+ ```javascript
124
+ const fileList = execSync(`git ls-tree -r --name-only ${branch}`, { ... });
125
+ const content = execSync(`git show ${branch}:${filePath}`, { ... });
126
+ ```
127
+
128
+ **Risk:** The `branch` and `filePath` variables are interpolated into shell commands. A branch name like `main; rm -rf /` or a file path with shell metacharacters could execute arbitrary commands.
129
+
130
+ **Recommendation:** Use `execFileSync('git', ['ls-tree', '-r', '--name-only', branch])` array form. Validate branch names against `^[a-zA-Z0-9/_.\-]+$`.
131
+
132
+ ---
133
+
134
+ #### M-4: Git Command Injection in changelog-generator.js and diff-generator.js
135
+
136
+ **File:** `.sinapse-ai/infrastructure/scripts/changelog-generator.js:142,189`
137
+ **File:** `.sinapse-ai/infrastructure/scripts/diff-generator.js:52`
138
+ **Code:**
139
+ ```javascript
140
+ const log = execSync(`git log ${since}..${until} --format="${format}" --no-merges`, { ... });
141
+ return execSync(`git diff ${fromCommit} ${toCommit}`, { encoding: 'utf-8' });
142
+ ```
143
+
144
+ **Risk:** The `since`, `until`, `fromCommit`, `toCommit`, and `format` parameters are interpolated directly into shell command strings. These could contain shell metacharacters if sourced from branch names or tags with special characters.
145
+
146
+ **Recommendation:** Use `execFileSync` with array arguments.
147
+
148
+ ---
149
+
150
+ #### M-5: enforce-git-push-authority.sh Fail-Closed with Potential Bypass
151
+
152
+ **File:** `.claude/hooks/enforce-git-push-authority.sh`
153
+
154
+ **Risk (Minor):** While the hook correctly blocks direct `git push`, `eval`/`exec` patterns, and pipe-to-shell patterns, there are some bypass vectors:
155
+ 1. Using `xargs` to execute git push: `echo "push" | xargs git` would not be caught.
156
+ 2. Aliased commands or functions defined in the command itself.
157
+ 3. The `$()` subshell pattern: `$(git push origin main)` embedded in another command.
158
+ 4. Using `env` or `command`: `env git push origin main` or `command git push`.
159
+
160
+ **Recommendation:** Consider adding checks for `xargs`, `env`, `command` prefixes, and `$(...)` subshell patterns containing push. Alternatively, use a deny-by-default approach that only allows known-safe git commands.
161
+
162
+ ---
163
+
164
+ #### M-6: Large File Check Uses Unsanitized File Paths in Shell Commands
165
+
166
+ **File:** `.sinapse-ai/core/health-check/checks/repository/large-files.js:72`
167
+ **Code:**
168
+ ```javascript
169
+ const _sizeOutput = execSync(`git ls-files -s "${file}"`, { ... });
170
+ ```
171
+
172
+ **Risk:** `file` comes from `git ls-files` output. While git typically produces safe filenames, repositories can contain files with shell metacharacters in their names (e.g., files with `$`, backticks, or newlines).
173
+
174
+ **Recommendation:** Use `execFileSync('git', ['ls-files', '-s', file])`.
175
+
176
+ ---
177
+
178
+ #### M-7: issue-triage.js Passes Unvalidated Input to gh CLI
179
+
180
+ **File:** `.sinapse-ai/development/scripts/issue-triage.js:23`
181
+ **Code:**
182
+ ```javascript
183
+ return execSync(`gh ${cmd}`, { encoding: 'utf8', timeout: 60000 });
184
+ ```
185
+
186
+ **Risk:** The `cmd` parameter is interpolated directly into a shell command. If `cmd` contains shell metacharacters, arbitrary command execution is possible.
187
+
188
+ **Recommendation:** Use `execFileSync('gh', cmd.split(' '))` or validate `cmd` strictly.
189
+
190
+ ---
191
+
192
+ ### LOW / INFORMATIONAL
193
+
194
+ #### L-1: Hooks Consistently Follow Fail-Open Pattern (POSITIVE)
195
+
196
+ All CJS/Python hooks correctly implement the documented fail-open behavior:
197
+ - `enforce-story-gate.cjs`: `process.exit(0)` on parse failure (line 159)
198
+ - `enforce-architecture-first.cjs`: `process.exit(0)` on parse failure (line 111)
199
+ - `enforce-delegation.cjs`: `process.exit(0)` on parse failure (line 89)
200
+ - `secret-scanning.cjs`: `process.exit(0)` on parse failure (line 115)
201
+ - `sql-governance.py`: `sys.exit(0)` on JSONDecodeError (line 127)
202
+ - `slug-validation.py`: `sys.exit(0)` on JSONDecodeError (line 108)
203
+ - `mind-clone-governance.py`: `sys.exit(0)` on JSONDecodeError (line 116)
204
+ - `read-protection.py`: `sys.exit(0)` on JSONDecodeError (line 97)
205
+ - `verify-packages.cjs`: `process.exit(0)` on crash (line 80)
206
+
207
+ **Exception:** `enforce-git-push-authority.sh` is intentionally **fail-closed** (blocks on parse failure, line 22-25). This is documented and appropriate since git push authority is the most security-critical hook.
208
+
209
+ #### L-2: stdin JSON Parsing Is Consistently Validated (POSITIVE)
210
+
211
+ All hooks read stdin JSON safely using `JSON.parse()` within try/catch blocks. No hook processes raw stdin without parsing first.
212
+
213
+ #### L-3: No Hardcoded Secrets in Production Code (POSITIVE)
214
+
215
+ Grep for API keys, tokens, passwords, and credentials found matches only in:
216
+ - Test files (intentional test fixtures)
217
+ - `.docker/llm-routing/config.yaml` (uses `os.environ/` pattern, not actual values)
218
+ - `.github/workflows/` (uses `${{ secrets.GITHUB_TOKEN }}` properly)
219
+ - `i18n.js` (UI strings mentioning "password", not actual passwords)
220
+
221
+ No real credentials were found in production code.
222
+
223
+ #### L-4: .gitignore Properly Covers Sensitive Files (POSITIVE)
224
+
225
+ `.env`, `.env.local`, `.env.*.local`, `.env.production`, `.env.development`, `.env.test` are all listed in `.gitignore`.
226
+
227
+ #### L-5: security-utils.js Is Well-Implemented (POSITIVE)
228
+
229
+ The `security-utils.js` module provides:
230
+ - Path traversal prevention with `..` and null byte detection
231
+ - Base path containment validation
232
+ - Input sanitization for filenames, identifiers, shell, and HTML
233
+ - JSON size and depth limits
234
+ - In-memory rate limiting
235
+
236
+ This module exists but is not consistently used across the codebase (see recommendations).
237
+
238
+ #### L-6: Hook Timeout Safety (POSITIVE)
239
+
240
+ `synapse-engine.cjs` has a 5s timeout, `precompact-session-digest.cjs` has a 9s timeout, and both wrappers (`synapse-wrapper.cjs`, `precompact-wrapper.cjs`) add process-level timeouts (8s, 12s respectively). This prevents hooks from blocking Claude Code indefinitely.
241
+
242
+ #### L-7: Cross-Platform Path Handling (POSITIVE)
243
+
244
+ Multiple files correctly normalize Windows backslashes to forward slashes (`filePath.replace(/\\/g, '/')`). The `relativize()` functions in hooks handle both path separator conventions.
245
+
246
+ #### L-8: openInBrowser() in graph-dashboard/cli.js
247
+
248
+ **File:** `.sinapse-ai/core/graph-dashboard/cli.js:155`
249
+
250
+ The `filePath` parameter is interpolated into a shell command (`start`, `open`, `xdg-open`). However, this path is always constructed by the framework itself (not user input), so the risk is minimal. Noted for completeness.
251
+
252
+ #### L-9: Duplicate Hook Implementations (Python + CJS)
253
+
254
+ Several hooks exist in both Python and CJS versions:
255
+ - `enforce-architecture-first.py` / `enforce-architecture-first.cjs`
256
+ - `write-path-validation.py` / `write-path-validation.cjs`
257
+
258
+ This duplication increases maintenance burden and the risk of behavioral divergence. Only one version per hook should be active (configured in settings.json).
259
+
260
+ ---
261
+
262
+ ## Recommendations
263
+
264
+ ### Priority 1 (Fix Soon)
265
+
266
+ 1. **Replace `eval()` in test-discovery.js** (H-1) with a safe config parser. This is the only actual `eval()` in production code.
267
+
268
+ 2. **Fix shell injection in pr-review-ai.js** (H-2) by switching to `execFileSync` with array arguments for all `gh` CLI calls.
269
+
270
+ 3. **Fix shell injection in terminal-spawner.js** (H-3) by switching to `execFileSync` array form.
271
+
272
+ 4. **Activate manifest signature verification** (H-4) by generating and deploying the Ed25519 keypair.
273
+
274
+ ### Priority 2 (Fix Next Sprint)
275
+
276
+ 5. **Audit all `execSync` calls with string interpolation** and convert to `execFileSync` with array arguments. The pattern `execSync(\`command ${variable}\`)` should be considered a code smell. Priority files:
277
+ - `semantic-merge-engine.js` (M-3)
278
+ - `changelog-generator.js`, `diff-generator.js` (M-4)
279
+ - `symlink-manager.js` (M-1)
280
+ - `large-files.js` (M-6)
281
+ - `issue-triage.js` (M-7)
282
+
283
+ 6. **Adopt `security-utils.js` consistently**: The path validation, input sanitization, and JSON validation utilities already exist in `.sinapse-ai/core/utils/security-utils.js` but are not imported by any of the files flagged above. Create a lint rule or ESLint plugin that flags `execSync` with template literals.
284
+
285
+ ### Priority 3 (Harden)
286
+
287
+ 7. **Add `xargs`, `env`, `command`, and `$(...)` bypass checks** to `enforce-git-push-authority.sh` (M-5).
288
+
289
+ 8. **Remove duplicate Python hooks** (L-9) to reduce maintenance surface. The CJS versions are preferred for cross-platform portability.
290
+
291
+ 9. **Add input validation for git branch names** across the codebase. A simple regex like `/^[a-zA-Z0-9/_.\-]+$/` would prevent most injection vectors through branch name parameters.
292
+
293
+ 10. **Consider a centralized `safeExec()` wrapper** that validates arguments before executing shell commands, similar to how `security-utils.js` centralizes path validation. This would provide defense-in-depth for all `execSync` calls.
294
+
295
+ ---
296
+
297
+ ## Positive Security Patterns Observed
298
+
299
+ The framework demonstrates several mature security practices worth preserving:
300
+
301
+ 1. **Defense in depth**: Multiple layers (hooks, settings.json deny rules, git pre-commit, framework guard) enforce the same security boundaries.
302
+ 2. **Consistent fail-open**: All hooks except the intentionally fail-closed push authority hook follow the fail-open principle, preventing hook bugs from blocking development.
303
+ 3. **Secret scanning at multiple layers**: Claude Code hooks (secret-scanning.cjs), git pre-commit (staged-secret-scan.js), and PR review (pr-review-ai.js) all independently scan for secrets.
304
+ 4. **Manifest integrity**: The signature verification infrastructure is well-designed with DoS protections (file size limits), though the key needs activation.
305
+ 5. **Atomic writes**: The `atomic-write.js` utility prevents file corruption during crashes.
306
+ 6. **Security utilities module**: `security-utils.js` provides a solid foundation for input validation.
package/package.json CHANGED
@@ -1,12 +1,10 @@
1
1
  {
2
2
  "name": "sinapse-ai",
3
- "version": "9.3.0",
3
+ "version": "9.5.0",
4
4
  "description": "SINAPSE AI: Framework de orquestracao de IA — 18 squads, 186 agentes especializados",
5
5
  "bin": {
6
6
  "sinapse": "bin/sinapse.js",
7
- "sinapse-ai": "bin/cli.js",
8
- "sinapse-minimal": "bin/sinapse-minimal.js",
9
- "sinapse-graph": "bin/sinapse-graph.js"
7
+ "sinapse-ai": "bin/cli.js"
10
8
  },
11
9
  "preferGlobal": false,
12
10
  "workspaces": [
@@ -69,6 +67,7 @@
69
67
  "release:test": "semantic-release --dry-run --no-ci || echo 'Config test complete - authentication errors are expected locally'",
70
68
  "generate:manifest": "node scripts/generate-install-manifest.js",
71
69
  "validate:manifest": "node scripts/validate-manifest.js",
70
+ "validate:manifest:parity": "node .sinapse-ai/infrastructure/scripts/validate-manifest-parity.js",
72
71
  "validate:structure": "node .sinapse-ai/infrastructure/scripts/source-tree-guardian/index.js",
73
72
  "validate:agents": "node .sinapse-ai/infrastructure/scripts/validate-agents.js",
74
73
  "sync:ide": "node .sinapse-ai/infrastructure/scripts/ide-sync/index.js sync",
@@ -87,14 +86,21 @@
87
86
  "validate:codex-skills": "node .sinapse-ai/infrastructure/scripts/codex-skills-sync/validate.js --strict",
88
87
  "validate:paths": "node .sinapse-ai/infrastructure/scripts/validate-paths.js",
89
88
  "validate:parity": "node .sinapse-ai/infrastructure/scripts/validate-parity.js",
89
+ "validate:parity:fast": "node .sinapse-ai/infrastructure/scripts/validate-parity.js --fast --quiet",
90
90
  "collab:adopt": "node bin/utils/collab-start.js --adopt-current",
91
91
  "collab:check": "node bin/utils/collab-start.js --check",
92
92
  "collab:start": "node bin/utils/collab-start.js",
93
93
  "validate:semantic-lint": "node scripts/semantic-lint.js",
94
+ "validate:docs": "node scripts/validate-install-docs.js",
95
+ "validate:no-external-refs": "node scripts/validate-no-external-refs.js",
96
+ "validate:story-meta": "node scripts/validate-story-meta.js",
97
+ "validate:squad-orqx": "node scripts/validate-squad-orqx.js",
98
+ "validate:release-readiness": "node scripts/release-readiness.js",
94
99
  "manifest:ensure": "node scripts/ensure-manifest.js",
95
100
  "validate:publish": "node bin/utils/validate-publish.js",
96
101
  "brand": "node scripts/sinapse-patch.js",
97
102
  "prepublishOnly": "node bin/utils/validate-publish.js && npm run generate:manifest && npm run validate:manifest",
103
+ "postinstall": "node bin/postinstall.js",
98
104
  "prepare": "husky"
99
105
  },
100
106
  "dependencies": {
@@ -141,12 +147,12 @@
141
147
  "license": "MIT",
142
148
  "repository": {
143
149
  "type": "git",
144
- "url": "git+https://github.com/SinapseAI/sinapse-ai.git"
150
+ "url": "git+https://github.com/caioimori/sinapse-ai.git"
145
151
  },
146
152
  "bugs": {
147
- "url": "https://github.com/SinapseAI/sinapse-ai/issues"
153
+ "url": "https://github.com/caioimori/sinapse-ai/issues"
148
154
  },
149
- "homepage": "https://github.com/SinapseAI/sinapse-ai#readme",
155
+ "homepage": "https://github.com/caioimori/sinapse-ai#readme",
150
156
  "engines": {
151
157
  "node": ">=18.0.0",
152
158
  "npm": ">=9.0.0"
@@ -179,10 +185,16 @@
179
185
  ],
180
186
  ".sinapse-ai/development/agents/*.md": [
181
187
  "npm run sync:ide"
188
+ ],
189
+ "docs/stories/*.story.md": [
190
+ "node scripts/validate-story-meta.js --staged"
182
191
  ]
183
192
  },
184
193
  "overrides": {
185
194
  "tar": "^7.5.7",
186
- "diff": "^8.0.3"
195
+ "diff": "^8.0.3",
196
+ "serialize-javascript": "^7.0.5",
197
+ "picomatch": "^4.0.4",
198
+ "brace-expansion": "^5.0.5"
187
199
  }
188
200
  }
@@ -12,7 +12,7 @@
12
12
 
13
13
  const fs = require('fs-extra');
14
14
  const path = require('path');
15
- const { password, select } = require('@clack/prompts');
15
+ const { password } = require('@clack/prompts');
16
16
  const { generateEnvContent, generateEnvExample } = require('./templates/env-template');
17
17
  const { generateCoreConfig } = require('./templates/core-config-template');
18
18
  const {
@@ -59,52 +59,29 @@ async function configureEnvironment(options = {}) {
59
59
  };
60
60
 
61
61
  try {
62
- // Step 1: Check for existing .env and handle with merge/backup/overwrite
62
+ // Story 10.38: Merge-only policy for existing .env.
63
+ // Never prompt, never overwrite. If an existing .env is found, we always
64
+ // merge (preserving user values). If merge strategy is unavailable, we
65
+ // create a timestamped backup before writing. forceMerge/noMerge flags
66
+ // are kept as no-ops for backward compatibility.
67
+ void forceMerge;
68
+ void noMerge;
69
+ void skipPrompts;
70
+ void projectType;
63
71
  const envPath = path.join(targetDir, '.env');
64
72
  const envExists = await fs.pathExists(envPath);
65
- let envAction = 'create'; // 'create', 'merge', 'overwrite', 'skip'
66
- const isBrownfield = projectType === 'BROWNFIELD' || projectType === 'EXISTING_SINAPSE';
67
- const canMerge = !noMerge && hasMergeStrategy(envPath);
73
+ let envAction = 'create'; // 'create' | 'merge' | 'overwrite'
74
+ const canMerge = hasMergeStrategy(envPath);
68
75
 
69
76
  if (envExists) {
70
- // Story 9.4: Handle CLI flags for merge behavior
71
- if (forceMerge && canMerge) {
72
- // --merge flag: Force merge without prompting
77
+ if (canMerge) {
73
78
  envAction = 'merge';
74
- console.log('🔀 Using merge mode (--merge flag)');
75
- } else if (skipPrompts) {
76
- // Quiet mode: default to merge for brownfield, overwrite for greenfield
77
- envAction = isBrownfield && canMerge ? 'merge' : 'overwrite';
78
79
  } else {
79
- // Interactive mode: Offer merge option for brownfield projects
80
- const choices = [];
81
-
82
- if (canMerge) {
83
- choices.push({
84
- value: 'merge',
85
- label: 'Merge (add new variables, keep existing)',
86
- hint: isBrownfield ? 'recommended' : '',
87
- });
88
- }
89
-
90
- choices.push(
91
- { value: 'backup', label: 'Backup and overwrite' },
92
- { value: 'overwrite', label: 'Overwrite completely' },
93
- { value: 'skip', label: 'Skip (keep existing)' },
94
- );
95
-
96
- envAction = await select({
97
- message: 'Found existing .env file. What would you like to do?',
98
- options: choices,
99
- initialValue: isBrownfield && canMerge ? 'merge' : 'backup',
100
- });
101
-
102
- if (envAction === 'backup') {
103
- const backupPath = path.join(targetDir, `.env.backup.${Date.now()}`);
104
- await fs.copy(envPath, backupPath);
105
- console.log(`✅ Backup created: ${backupPath}`);
106
- envAction = 'overwrite';
107
- }
80
+ // Safety net: back up the existing file before writing the new one.
81
+ const backupPath = path.join(targetDir, `.env.backup.${Date.now()}`);
82
+ await fs.copy(envPath, backupPath);
83
+ console.log(`📦 Existing .env backed up to ${path.basename(backupPath)}`);
84
+ envAction = 'overwrite';
108
85
  }
109
86
  }
110
87
 
@@ -127,9 +104,7 @@ async function configureEnvironment(options = {}) {
127
104
  }
128
105
 
129
106
  // Step 4: Write .env file based on action
130
- if (envAction === 'skip') {
131
- console.log('⏭️ Skipped .env file (keeping existing)');
132
- } else if (envAction === 'merge' && envExists) {
107
+ if (envAction === 'merge' && envExists) {
133
108
  // Merge existing with new
134
109
  const existingContent = await fs.readFile(envPath, 'utf8');
135
110
  const merger = getMergeStrategy(envPath);