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,394 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * validate-install-docs.js
5
+ *
6
+ * Story 10.13 — Doc-drift guard for the canonical install commands.
7
+ *
8
+ * Scans user-facing installation documentation for any reference to a
9
+ * non-canonical install/update/uninstall command. Fails with exit code 1
10
+ * (and a clear, grep-friendly report) if drift is detected.
11
+ *
12
+ * Canonical commands (the ONLY public entry points):
13
+ * npx sinapse-ai install
14
+ * npx sinapse-ai update
15
+ * npx sinapse-ai uninstall
16
+ *
17
+ * Non-canonical patterns the guard rejects in public docs:
18
+ * - `sinapse install|update|uninstall` (missing the `-ai` suffix)
19
+ * - `sinapse-minimal` (internal/legacy binary)
20
+ * - `sinapse-graph` (internal/legacy binary)
21
+ * - `install-squads.sh` (internal script, must not be exposed)
22
+ * - `update-squads.sh` (internal script, must not be exposed)
23
+ * - `install-chrome-brain.sh` (internal script, must not be exposed)
24
+ * - `install-monitor-hooks.sh` (internal script, must not be exposed)
25
+ *
26
+ * Allow-lists (to prevent false positives):
27
+ * - Sections explicitly marked as `### Internal (developer-only)` within a
28
+ * file are treated as developer notes and skipped by the scanner. The
29
+ * section ends at the next heading of equal or higher level.
30
+ * - Historical / release-notes paths: `CHANGELOG.md`, `docs/releases/**`,
31
+ * `docs/changelog/**`.
32
+ *
33
+ * Usage:
34
+ * node scripts/validate-install-docs.js [--root <dir>]
35
+ *
36
+ * Exit codes:
37
+ * 0 = no drift
38
+ * 1 = drift detected (report printed to stdout)
39
+ * 2 = usage / filesystem error (message printed to stderr)
40
+ *
41
+ * The scanner is pure (no side-effects) so it can be unit-tested by passing
42
+ * a custom `rootDir` to `validateInstallDocs()` — see tests/scripts/validate-install-docs.test.js.
43
+ */
44
+
45
+ 'use strict';
46
+
47
+ const fs = require('fs');
48
+ const path = require('path');
49
+
50
+ // ── Rules ────────────────────────────────────────────────────────────────────
51
+
52
+ /**
53
+ * Each rule has a regex and a human-readable reason. The regex is applied
54
+ * line-by-line so the reporter can pinpoint the exact line number.
55
+ */
56
+ const FORBIDDEN_PATTERNS = [
57
+ {
58
+ id: 'legacy-sinapse-install',
59
+ regex: /\bsinapse\s+install\b/,
60
+ reason: 'Use `npx sinapse-ai install` (the `sinapse install` form is deprecated).',
61
+ },
62
+ {
63
+ id: 'legacy-sinapse-update',
64
+ regex: /\bsinapse\s+update\b/,
65
+ reason: 'Use `npx sinapse-ai update` (the `sinapse update` form is deprecated).',
66
+ },
67
+ {
68
+ id: 'legacy-sinapse-uninstall',
69
+ regex: /\bsinapse\s+uninstall\b/,
70
+ reason: 'Use `npx sinapse-ai uninstall` (the `sinapse uninstall` form is deprecated).',
71
+ },
72
+ {
73
+ id: 'sinapse-minimal-binary',
74
+ regex: /\bsinapse-minimal\b/,
75
+ reason: '`sinapse-minimal` is internal/deprecated. Use `npx sinapse-ai install`.',
76
+ },
77
+ {
78
+ id: 'sinapse-graph-binary',
79
+ regex: /\bsinapse-graph\b/,
80
+ reason: '`sinapse-graph` is internal/deprecated. Use `npx sinapse-ai --help`.',
81
+ },
82
+ {
83
+ id: 'install-squads-script',
84
+ regex: /\binstall-squads\.sh\b/,
85
+ reason: 'Internal script — do not expose in public docs. It runs under `npx sinapse-ai install`.',
86
+ },
87
+ {
88
+ id: 'update-squads-script',
89
+ regex: /\bupdate-squads\.sh\b/,
90
+ reason: 'Internal script — do not expose in public docs. It runs under `npx sinapse-ai update`.',
91
+ },
92
+ {
93
+ id: 'install-chrome-brain-script',
94
+ regex: /\binstall-chrome-brain\.sh\b/,
95
+ reason:
96
+ 'Internal script — use `npx sinapse-ai chrome-brain install`. Developer-only mentions must live under a `### Internal (developer-only)` section.',
97
+ },
98
+ {
99
+ id: 'install-monitor-hooks-script',
100
+ regex: /\binstall-monitor-hooks\.sh\b/,
101
+ reason:
102
+ 'Internal script — must be invoked internally by `npx sinapse-ai install`, never shown as a user-facing command.',
103
+ },
104
+ ];
105
+
106
+ // ── Paths ────────────────────────────────────────────────────────────────────
107
+
108
+ /**
109
+ * Directories whose `.md` files are public user-facing installation docs.
110
+ * Everything in these trees is scanned.
111
+ */
112
+ const PUBLIC_DOC_DIRS = ['docs/installation'];
113
+
114
+ /**
115
+ * Additional top-level public doc files (relative to root).
116
+ */
117
+ const PUBLIC_DOC_FILES = ['README.md'];
118
+
119
+ /**
120
+ * Path fragments that identify historical / release notes. Any file whose
121
+ * relative path (forward-slash normalized) contains one of these is skipped
122
+ * even if it lives under a public directory.
123
+ */
124
+ const HISTORICAL_PATH_FRAGMENTS = [
125
+ 'CHANGELOG.md',
126
+ 'docs/releases/',
127
+ 'docs/changelog/',
128
+ ];
129
+
130
+ // ── Internal-section allow-list ──────────────────────────────────────────────
131
+
132
+ /**
133
+ * Matches a heading that opens a developer-only section. The section is
134
+ * considered active until the next heading of the same or higher level.
135
+ *
136
+ * Accepts both exact phrasing and the loose form "internal — developer-only".
137
+ */
138
+ const INTERNAL_SECTION_HEADING = /^(#{1,6})\s+Internal\s*(\(|—|-)\s*developer[-\s]?only/i;
139
+
140
+ /**
141
+ * Walk the file line-by-line and return the set of line indices (0-based)
142
+ * that fall inside an "Internal (developer-only)" block. These lines are
143
+ * exempt from the forbidden-pattern scan.
144
+ */
145
+ function computeAllowedLineSet(lines) {
146
+ const allowed = new Set();
147
+ let insideInternal = false;
148
+ let internalLevel = 0;
149
+ // Track fenced code blocks so that shell comments like `# Run this` inside
150
+ // a ```bash``` block are NOT misinterpreted as markdown headings (which
151
+ // would incorrectly close an internal section).
152
+ let insideFence = false;
153
+
154
+ const FENCE_RE = /^\s*(```|~~~)/;
155
+
156
+ for (let i = 0; i < lines.length; i++) {
157
+ const line = lines[i];
158
+
159
+ // Toggle code-fence state first — everything else honours the current state.
160
+ if (FENCE_RE.test(line)) {
161
+ // If we are inside an internal block, the fence lines themselves are allowed.
162
+ if (insideInternal) allowed.add(i);
163
+ insideFence = !insideFence;
164
+ continue;
165
+ }
166
+
167
+ if (insideFence) {
168
+ // Lines inside a fenced block are verbatim content — never treat them as
169
+ // headings. If we are inside an internal section, they are allowed.
170
+ if (insideInternal) allowed.add(i);
171
+ continue;
172
+ }
173
+
174
+ const headingMatch = line.match(/^(#{1,6})\s+/);
175
+
176
+ if (insideInternal && headingMatch) {
177
+ const level = headingMatch[1].length;
178
+ if (level <= internalLevel) {
179
+ // New heading at same or higher level closes the internal block.
180
+ insideInternal = false;
181
+ internalLevel = 0;
182
+ }
183
+ }
184
+
185
+ const internalMatch = line.match(INTERNAL_SECTION_HEADING);
186
+ if (internalMatch) {
187
+ insideInternal = true;
188
+ internalLevel = internalMatch[1].length;
189
+ // The heading line itself is part of the allowed region.
190
+ allowed.add(i);
191
+ continue;
192
+ }
193
+
194
+ if (insideInternal) {
195
+ allowed.add(i);
196
+ }
197
+ }
198
+
199
+ return allowed;
200
+ }
201
+
202
+ // ── File discovery ───────────────────────────────────────────────────────────
203
+
204
+ function isHistorical(relPath) {
205
+ const normalized = relPath.replace(/\\/g, '/');
206
+ return HISTORICAL_PATH_FRAGMENTS.some((fragment) => normalized.includes(fragment));
207
+ }
208
+
209
+ function walkMarkdown(rootDir, relDir, collected) {
210
+ const absDir = path.join(rootDir, relDir);
211
+ let entries;
212
+ try {
213
+ entries = fs.readdirSync(absDir, { withFileTypes: true });
214
+ } catch {
215
+ return;
216
+ }
217
+ for (const entry of entries) {
218
+ const entryRel = path.posix.join(relDir.replace(/\\/g, '/'), entry.name);
219
+ if (entry.isDirectory()) {
220
+ walkMarkdown(rootDir, entryRel, collected);
221
+ } else if (entry.isFile() && entry.name.toLowerCase().endsWith('.md')) {
222
+ if (!isHistorical(entryRel)) collected.push(entryRel);
223
+ }
224
+ }
225
+ }
226
+
227
+ function discoverPublicDocs(rootDir) {
228
+ const files = [];
229
+ for (const dir of PUBLIC_DOC_DIRS) {
230
+ walkMarkdown(rootDir, dir, files);
231
+ }
232
+ for (const file of PUBLIC_DOC_FILES) {
233
+ const abs = path.join(rootDir, file);
234
+ if (fs.existsSync(abs) && !isHistorical(file)) files.push(file);
235
+ }
236
+ return files;
237
+ }
238
+
239
+ // ── Scanner ──────────────────────────────────────────────────────────────────
240
+
241
+ /**
242
+ * Scan a single file for forbidden patterns, respecting internal-section
243
+ * allow-lists. Returns an array of violation objects.
244
+ *
245
+ * @param {string} rootDir
246
+ * @param {string} relPath
247
+ * @returns {Array<{file:string, line:number, col:number, ruleId:string, reason:string, snippet:string}>}
248
+ */
249
+ function scanFile(rootDir, relPath) {
250
+ const absPath = path.join(rootDir, relPath);
251
+ const content = fs.readFileSync(absPath, 'utf8');
252
+ const lines = content.split(/\r?\n/);
253
+ const allowed = computeAllowedLineSet(lines);
254
+ const violations = [];
255
+
256
+ for (let i = 0; i < lines.length; i++) {
257
+ if (allowed.has(i)) continue;
258
+ const line = lines[i];
259
+ for (const rule of FORBIDDEN_PATTERNS) {
260
+ const match = line.match(rule.regex);
261
+ if (match) {
262
+ violations.push({
263
+ file: relPath,
264
+ line: i + 1,
265
+ col: (match.index || 0) + 1,
266
+ ruleId: rule.id,
267
+ reason: rule.reason,
268
+ snippet: line.trim(),
269
+ });
270
+ }
271
+ }
272
+ }
273
+
274
+ return violations;
275
+ }
276
+
277
+ /**
278
+ * Validate all public install docs under `rootDir`. Returns a structured
279
+ * result object (no side effects). Callers decide how to present it.
280
+ *
281
+ * @param {string} rootDir
282
+ * @returns {{ok:boolean, scanned:string[], violations:Array<object>}}
283
+ */
284
+ function validateInstallDocs(rootDir) {
285
+ const scanned = discoverPublicDocs(rootDir);
286
+ const violations = [];
287
+ for (const relPath of scanned) {
288
+ violations.push(...scanFile(rootDir, relPath));
289
+ }
290
+ return { ok: violations.length === 0, scanned, violations };
291
+ }
292
+
293
+ // ── Reporter ─────────────────────────────────────────────────────────────────
294
+
295
+ function formatReport(result) {
296
+ const lines = [];
297
+ lines.push('');
298
+ lines.push('=== validate-install-docs ===');
299
+ lines.push(`Scanned ${result.scanned.length} public install doc(s).`);
300
+ if (result.ok) {
301
+ lines.push('');
302
+ lines.push('OK — no drift detected. Every public doc uses the canonical');
303
+ lines.push('`npx sinapse-ai install | update | uninstall` commands.');
304
+ lines.push('');
305
+ return lines.join('\n');
306
+ }
307
+ lines.push('');
308
+ lines.push(`FAIL — ${result.violations.length} non-canonical reference(s):`);
309
+ lines.push('');
310
+ for (const v of result.violations) {
311
+ lines.push(` ${v.file}:${v.line}:${v.col} [${v.ruleId}]`);
312
+ lines.push(` ${v.snippet}`);
313
+ lines.push(` -> ${v.reason}`);
314
+ lines.push('');
315
+ }
316
+ lines.push('Canonical commands:');
317
+ lines.push(' npx sinapse-ai install');
318
+ lines.push(' npx sinapse-ai update');
319
+ lines.push(' npx sinapse-ai uninstall');
320
+ lines.push('');
321
+ lines.push('Wrap developer-only mentions in an `### Internal (developer-only)` section to opt them out.');
322
+ lines.push('');
323
+ return lines.join('\n');
324
+ }
325
+
326
+ // ── CLI entry point ──────────────────────────────────────────────────────────
327
+
328
+ function parseArgs(argv) {
329
+ const args = { root: process.cwd() };
330
+ for (let i = 0; i < argv.length; i++) {
331
+ const a = argv[i];
332
+ if (a === '--root' || a === '-r') {
333
+ args.root = argv[++i];
334
+ } else if (a === '--help' || a === '-h') {
335
+ args.help = true;
336
+ }
337
+ }
338
+ return args;
339
+ }
340
+
341
+ function printUsage() {
342
+ process.stdout.write(
343
+ [
344
+ 'Usage: node scripts/validate-install-docs.js [--root <dir>]',
345
+ '',
346
+ 'Validates that user-facing install docs reference only the canonical',
347
+ '`npx sinapse-ai install | update | uninstall` commands.',
348
+ '',
349
+ 'Options:',
350
+ ' --root, -r <dir> Root directory to scan (defaults to cwd).',
351
+ ' --help, -h Show this help.',
352
+ '',
353
+ ].join('\n'),
354
+ );
355
+ }
356
+
357
+ function main() {
358
+ const args = parseArgs(process.argv.slice(2));
359
+ if (args.help) {
360
+ printUsage();
361
+ process.exit(0);
362
+ }
363
+ try {
364
+ const rootAbs = path.resolve(args.root);
365
+ if (!fs.existsSync(rootAbs)) {
366
+ process.stderr.write(`error: root directory not found: ${rootAbs}\n`);
367
+ process.exit(2);
368
+ }
369
+ const result = validateInstallDocs(rootAbs);
370
+ process.stdout.write(formatReport(result));
371
+ process.exit(result.ok ? 0 : 1);
372
+ } catch (err) {
373
+ process.stderr.write(`error: ${err && err.message ? err.message : err}\n`);
374
+ process.exit(2);
375
+ }
376
+ }
377
+
378
+ // Exports for unit testing.
379
+ module.exports = {
380
+ FORBIDDEN_PATTERNS,
381
+ PUBLIC_DOC_DIRS,
382
+ PUBLIC_DOC_FILES,
383
+ HISTORICAL_PATH_FRAGMENTS,
384
+ computeAllowedLineSet,
385
+ discoverPublicDocs,
386
+ scanFile,
387
+ validateInstallDocs,
388
+ formatReport,
389
+ };
390
+
391
+ // Only run the CLI when invoked directly (not when required by tests).
392
+ if (require.main === module) {
393
+ main();
394
+ }