sinapse-ai 1.24.0 → 1.25.1

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 (526) hide show
  1. package/.agents/skills/react-bits-frontend/SKILL.md +66 -0
  2. package/.agents/skills/react-bits-frontend/agents/openai.yaml +4 -0
  3. package/.agents/skills/react-bits-frontend/references/corpus-map.md +29 -0
  4. package/.agents/skills/sinapse/SKILL.md +10 -0
  5. package/.agents/skills/sinapse-agent/SKILL.md +22 -0
  6. package/{.codex → .agents}/skills/sinapse-claude/SKILL.md +1 -1
  7. package/.agents/skills/sinapse-loop/SKILL.md +35 -0
  8. package/.agents/skills/sinapse-orqx/SKILL.md +44 -0
  9. package/.agents/skills/sinapse-spec-driven/SKILL.md +35 -0
  10. package/.agents/skills/snps/SKILL.md +10 -0
  11. package/.agents/skills/snps-orqx/SKILL.md +10 -0
  12. package/.claude/agents/README.md +67 -0
  13. package/.claude/agents/sinapse-ad-copywriter.md +14 -0
  14. package/.claude/agents/sinapse-agent-forger.md +14 -0
  15. package/.claude/agents/sinapse-analyst.md +14 -0
  16. package/.claude/agents/sinapse-animation-interpreter.md +14 -0
  17. package/.claude/agents/sinapse-animation-performance-engineer.md +14 -0
  18. package/.claude/agents/sinapse-animations-orqx.md +14 -0
  19. package/.claude/agents/sinapse-architect.md +14 -0
  20. package/.claude/agents/sinapse-assessment-creator.md +14 -0
  21. package/.claude/agents/sinapse-audience-intelligence.md +14 -0
  22. package/.claude/agents/sinapse-blake-snyder.md +14 -0
  23. package/.claude/agents/sinapse-brand-archetype-strategist.md +14 -0
  24. package/.claude/agents/sinapse-brand-auditor.md +14 -0
  25. package/.claude/agents/sinapse-brand-collateral-designer.md +14 -0
  26. package/.claude/agents/sinapse-brand-compiler.md +14 -0
  27. package/.claude/agents/sinapse-brand-creative-engineer.md +14 -0
  28. package/.claude/agents/sinapse-brand-culture-architect.md +14 -0
  29. package/.claude/agents/sinapse-brand-growth-strategist.md +14 -0
  30. package/.claude/agents/sinapse-brand-identity-designer.md +14 -0
  31. package/.claude/agents/sinapse-brand-motion-vfx.md +14 -0
  32. package/.claude/agents/sinapse-brand-naming-specialist.md +14 -0
  33. package/.claude/agents/sinapse-brand-orqx.md +14 -0
  34. package/.claude/agents/sinapse-brand-positioning-strategist.md +14 -0
  35. package/.claude/agents/sinapse-brand-sonic-designer.md +14 -0
  36. package/.claude/agents/sinapse-brand-strategist.md +14 -0
  37. package/.claude/agents/sinapse-brand-system-architect.md +14 -0
  38. package/.claude/agents/sinapse-brand-voice-writer.md +14 -0
  39. package/.claude/agents/sinapse-brene-brown.md +14 -0
  40. package/.claude/agents/sinapse-budget-controller.md +14 -0
  41. package/.claude/agents/sinapse-campaign-analyst.md +14 -0
  42. package/.claude/agents/sinapse-charlie-munger.md +14 -0
  43. package/.claude/agents/sinapse-claude-mastery-chief.md +14 -0
  44. package/.claude/agents/sinapse-cloning-orqx.md +14 -0
  45. package/.claude/agents/sinapse-cloud-security-engineer.md +14 -0
  46. package/.claude/agents/sinapse-cognitive-extractor.md +14 -0
  47. package/.claude/agents/sinapse-commercial-orqx.md +14 -0
  48. package/.claude/agents/sinapse-competitive-intelligence.md +14 -0
  49. package/.claude/agents/sinapse-compliance-officer.md +14 -0
  50. package/.claude/agents/sinapse-config-engineer.md +14 -0
  51. package/.claude/agents/sinapse-content-analyst.md +14 -0
  52. package/.claude/agents/sinapse-content-capturer.md +14 -0
  53. package/.claude/agents/sinapse-content-engineer.md +14 -0
  54. package/.claude/agents/sinapse-content-governor.md +14 -0
  55. package/.claude/agents/sinapse-content-orqx.md +14 -0
  56. package/.claude/agents/sinapse-content-writer.md +14 -0
  57. package/.claude/agents/sinapse-conversion-writer.md +14 -0
  58. package/.claude/agents/sinapse-copy-editor.md +14 -0
  59. package/.claude/agents/sinapse-copy-orqx.md +14 -0
  60. package/.claude/agents/sinapse-copy-strategist.md +14 -0
  61. package/.claude/agents/sinapse-cost-optimizer.md +14 -0
  62. package/.claude/agents/sinapse-council-orqx.md +14 -0
  63. package/.claude/agents/sinapse-courses-orqx.md +14 -0
  64. package/.claude/agents/sinapse-creative-strategist.md +14 -0
  65. package/.claude/agents/sinapse-cro-persuasion.md +14 -0
  66. package/.claude/agents/sinapse-cro-specialist.md +14 -0
  67. package/.claude/agents/sinapse-cs-business-auditor.md +14 -0
  68. package/.claude/agents/sinapse-cs-client-success.md +14 -0
  69. package/.claude/agents/sinapse-cs-crm-specialist.md +14 -0
  70. package/.claude/agents/sinapse-cs-funnel-architect.md +14 -0
  71. package/.claude/agents/sinapse-cs-lead-generation-strategist.md +14 -0
  72. package/.claude/agents/sinapse-cs-offer-designer.md +14 -0
  73. package/.claude/agents/sinapse-cs-revops-analyst.md +14 -0
  74. package/.claude/agents/sinapse-cs-sales-closer.md +14 -0
  75. package/.claude/agents/sinapse-cs-sales-enablement.md +14 -0
  76. package/.claude/agents/sinapse-css-motion-artist.md +14 -0
  77. package/.claude/agents/sinapse-curriculum-designer.md +14 -0
  78. package/.claude/agents/sinapse-cyber-orqx.md +14 -0
  79. package/.claude/agents/sinapse-dan-harmon.md +14 -0
  80. package/.claude/agents/sinapse-data-engineer.md +14 -0
  81. package/.claude/agents/sinapse-data-synthesizer.md +14 -0
  82. package/.claude/agents/sinapse-deep-researcher.md +14 -0
  83. package/.claude/agents/sinapse-derek-sivers.md +14 -0
  84. package/.claude/agents/sinapse-design-orqx.md +14 -0
  85. package/.claude/agents/sinapse-design-system.md +14 -0
  86. package/.claude/agents/sinapse-developer.md +14 -0
  87. package/.claude/agents/sinapse-devops.md +14 -0
  88. package/.claude/agents/sinapse-direct-response-writer.md +14 -0
  89. package/.claude/agents/sinapse-dx-accessibility-specialist.md +14 -0
  90. package/.claude/agents/sinapse-dx-design-system-architect.md +14 -0
  91. package/.claude/agents/sinapse-dx-frontend-engineer.md +14 -0
  92. package/.claude/agents/sinapse-dx-interaction-designer.md +14 -0
  93. package/.claude/agents/sinapse-dx-performance-engineer.md +14 -0
  94. package/.claude/agents/sinapse-dx-ui-designer.md +14 -0
  95. package/.claude/agents/sinapse-dx-ux-strategist.md +14 -0
  96. package/.claude/agents/sinapse-editorial-strategist.md +14 -0
  97. package/.claude/agents/sinapse-email-sequence-strategist.md +14 -0
  98. package/.claude/agents/sinapse-finance-orqx.md +14 -0
  99. package/.claude/agents/sinapse-fiscal-compliance-br.md +14 -0
  100. package/.claude/agents/sinapse-forecast-strategist.md +14 -0
  101. package/.claude/agents/sinapse-funnel-copywriter.md +14 -0
  102. package/.claude/agents/sinapse-ga-analytics-engineer.md +14 -0
  103. package/.claude/agents/sinapse-ga-campaign-analyst.md +14 -0
  104. package/.claude/agents/sinapse-ga-cro-specialist.md +14 -0
  105. package/.claude/agents/sinapse-ga-data-analyst.md +14 -0
  106. package/.claude/agents/sinapse-ga-growth-hacker.md +14 -0
  107. package/.claude/agents/sinapse-ga-seo-strategist.md +14 -0
  108. package/.claude/agents/sinapse-generative-particle-engineer.md +14 -0
  109. package/.claude/agents/sinapse-google-ads-specialist.md +14 -0
  110. package/.claude/agents/sinapse-growth-orqx.md +14 -0
  111. package/.claude/agents/sinapse-headline-specialist.md +14 -0
  112. package/.claude/agents/sinapse-hooks-architect.md +14 -0
  113. package/.claude/agents/sinapse-incident-responder.md +14 -0
  114. package/.claude/agents/sinapse-joseph-campbell.md +14 -0
  115. package/.claude/agents/sinapse-kb-architect.md +14 -0
  116. package/.claude/agents/sinapse-keith-johnstone.md +14 -0
  117. package/.claude/agents/sinapse-kindra-hall.md +14 -0
  118. package/.claude/agents/sinapse-launch-strategist.md +14 -0
  119. package/.claude/agents/sinapse-lesson-architect.md +14 -0
  120. package/.claude/agents/sinapse-long-form-writer.md +14 -0
  121. package/.claude/agents/sinapse-market-analyst.md +14 -0
  122. package/.claude/agents/sinapse-marshall-ganz.md +14 -0
  123. package/.claude/agents/sinapse-mcp-integrator.md +14 -0
  124. package/.claude/agents/sinapse-meta-ads-specialist.md +14 -0
  125. package/.claude/agents/sinapse-mind-synthesizer.md +14 -0
  126. package/.claude/agents/sinapse-motion-choreographer.md +14 -0
  127. package/.claude/agents/sinapse-nancy-duarte.md +14 -0
  128. package/.claude/agents/sinapse-naval-ravikant.md +14 -0
  129. package/.claude/agents/sinapse-network-security-engineer.md +14 -0
  130. package/.claude/agents/sinapse-oren-klaff.md +14 -0
  131. package/.claude/agents/sinapse-paidmedia-orqx.md +14 -0
  132. package/.claude/agents/sinapse-park-howell.md +14 -0
  133. package/.claude/agents/sinapse-patrick-lencioni.md +14 -0
  134. package/.claude/agents/sinapse-penetration-tester.md +14 -0
  135. package/.claude/agents/sinapse-performance-engineer.md +14 -0
  136. package/.claude/agents/sinapse-persuasion-psychologist.md +14 -0
  137. package/.claude/agents/sinapse-peter-thiel.md +14 -0
  138. package/.claude/agents/sinapse-platform-aesthetic-director.md +14 -0
  139. package/.claude/agents/sinapse-platform-specialist.md +14 -0
  140. package/.claude/agents/sinapse-pm-creative-performance-analyst.md +14 -0
  141. package/.claude/agents/sinapse-pm-youtube-ads-specialist.md +14 -0
  142. package/.claude/agents/sinapse-premium-packaging-strategist.md +14 -0
  143. package/.claude/agents/sinapse-pricing-strategist.md +14 -0
  144. package/.claude/agents/sinapse-product-lead.md +14 -0
  145. package/.claude/agents/sinapse-product-orqx.md +14 -0
  146. package/.claude/agents/sinapse-product-surface-director.md +14 -0
  147. package/.claude/agents/sinapse-production-director.md +14 -0
  148. package/.claude/agents/sinapse-profitability-analyst.md +14 -0
  149. package/.claude/agents/sinapse-project-integrator.md +14 -0
  150. package/.claude/agents/sinapse-project-lead.md +14 -0
  151. package/.claude/agents/sinapse-proof-architect.md +14 -0
  152. package/.claude/agents/sinapse-ps-client-product-manager.md +14 -0
  153. package/.claude/agents/sinapse-ps-delivery-manager.md +14 -0
  154. package/.claude/agents/sinapse-ps-discovery-lead.md +14 -0
  155. package/.claude/agents/sinapse-ps-product-analyst.md +14 -0
  156. package/.claude/agents/sinapse-ps-product-ops-specialist.md +14 -0
  157. package/.claude/agents/sinapse-ps-product-strategist.md +14 -0
  158. package/.claude/agents/sinapse-quality-gate.md +14 -0
  159. package/.claude/agents/sinapse-ray-dalio.md +14 -0
  160. package/.claude/agents/sinapse-reid-hoffman.md +14 -0
  161. package/.claude/agents/sinapse-research-orqx.md +14 -0
  162. package/.claude/agents/sinapse-revenue-analyst.md +14 -0
  163. package/.claude/agents/sinapse-roadmap-sentinel.md +14 -0
  164. package/.claude/agents/sinapse-scroll-narrative-engineer.md +14 -0
  165. package/.claude/agents/sinapse-shader-artist.md +14 -0
  166. package/.claude/agents/sinapse-signal-intelligence.md +14 -0
  167. package/.claude/agents/sinapse-simon-sinek.md +14 -0
  168. package/.claude/agents/sinapse-skill-craftsman.md +14 -0
  169. package/.claude/agents/sinapse-slide-designer.md +14 -0
  170. package/.claude/agents/sinapse-snps-orqx.md +14 -0
  171. package/.claude/agents/sinapse-soc-analyst.md +14 -0
  172. package/.claude/agents/sinapse-sop-extractor.md +14 -0
  173. package/.claude/agents/sinapse-source-hunter.md +14 -0
  174. package/.claude/agents/sinapse-sprint-lead.md +14 -0
  175. package/.claude/agents/sinapse-squad-assembler.md +14 -0
  176. package/.claude/agents/sinapse-squad-creator.md +14 -0
  177. package/.claude/agents/sinapse-storytelling-orqx.md +14 -0
  178. package/.claude/agents/sinapse-swarm-orqx.md +14 -0
  179. package/.claude/agents/sinapse-threat-analyst.md +14 -0
  180. package/.claude/agents/sinapse-threejs-architect.md +14 -0
  181. package/.claude/agents/sinapse-trend-forecaster.md +14 -0
  182. package/.claude/agents/sinapse-ux-design-expert.md +14 -0
  183. package/.claude/agents/sinapse-ux-designer.md +14 -0
  184. package/.claude/agents/sinapse-yvon-chouinard.md +14 -0
  185. package/.claude/rules/software-engineering-applicability.md +13 -0
  186. package/.claude/settings.json +170 -0
  187. package/.claude/skill-manifest.json +41 -0
  188. package/.claude/skills/api-review.md +50 -0
  189. package/.claude/skills/component-check.md +47 -0
  190. package/.claude/skills/db-review.md +41 -0
  191. package/.claude/skills/sinapse/SKILL.md +11 -0
  192. package/.claude/skills/sinapse-agent/SKILL.md +11 -0
  193. package/.claude/skills/sinapse-analyst/SKILL.md +11 -0
  194. package/.claude/skills/sinapse-animations/SKILL.md +11 -0
  195. package/.claude/skills/sinapse-architect/SKILL.md +11 -0
  196. package/.claude/skills/sinapse-brand/SKILL.md +11 -0
  197. package/.claude/skills/sinapse-claude/SKILL.md +11 -0
  198. package/.claude/skills/sinapse-cloning/SKILL.md +11 -0
  199. package/.claude/skills/sinapse-commercial/SKILL.md +11 -0
  200. package/.claude/skills/sinapse-content/SKILL.md +11 -0
  201. package/.claude/skills/sinapse-copy/SKILL.md +11 -0
  202. package/.claude/skills/sinapse-council/SKILL.md +11 -0
  203. package/.claude/skills/sinapse-courses/SKILL.md +11 -0
  204. package/.claude/skills/sinapse-cyber/SKILL.md +11 -0
  205. package/.claude/skills/sinapse-data-engineer/SKILL.md +11 -0
  206. package/.claude/skills/sinapse-design/SKILL.md +11 -0
  207. package/.claude/skills/sinapse-dev/SKILL.md +11 -0
  208. package/.claude/skills/sinapse-devops/SKILL.md +11 -0
  209. package/.claude/skills/sinapse-finance/SKILL.md +11 -0
  210. package/.claude/skills/sinapse-growth/SKILL.md +11 -0
  211. package/.claude/skills/sinapse-loop/SKILL.md +11 -0
  212. package/.claude/skills/sinapse-orqx/SKILL.md +11 -0
  213. package/.claude/skills/sinapse-paidmedia/SKILL.md +11 -0
  214. package/.claude/skills/sinapse-pm/SKILL.md +11 -0
  215. package/.claude/skills/sinapse-po/SKILL.md +11 -0
  216. package/.claude/skills/sinapse-product/SKILL.md +11 -0
  217. package/.claude/skills/sinapse-qa/SKILL.md +11 -0
  218. package/.claude/skills/sinapse-research/SKILL.md +11 -0
  219. package/.claude/skills/sinapse-sm/SKILL.md +11 -0
  220. package/.claude/skills/sinapse-spec-driven/SKILL.md +11 -0
  221. package/.claude/skills/sinapse-squad-creator/SKILL.md +11 -0
  222. package/.claude/skills/sinapse-storytelling/SKILL.md +11 -0
  223. package/.claude/skills/sinapse-swarm/SKILL.md +11 -0
  224. package/.claude/skills/sinapse-ux-design-expert/SKILL.md +11 -0
  225. package/.claude/skills/snps/SKILL.md +11 -0
  226. package/.claude/skills/snps-orqx/SKILL.md +11 -0
  227. package/.claude/skills/story-update.md +52 -0
  228. package/.claude/skills/test-guard.md +41 -0
  229. package/.codex/agents/ad-copywriter.toml +3 -0
  230. package/.codex/agents/agent-forger.toml +3 -0
  231. package/.codex/agents/analyst.toml +3 -0
  232. package/.codex/agents/animation-interpreter.toml +3 -0
  233. package/.codex/agents/animation-performance-engineer.toml +3 -0
  234. package/.codex/agents/animations-orqx.toml +3 -0
  235. package/.codex/agents/architect.toml +3 -0
  236. package/.codex/agents/assessment-creator.toml +3 -0
  237. package/.codex/agents/audience-intelligence.toml +3 -0
  238. package/.codex/agents/blake-snyder.toml +3 -0
  239. package/.codex/agents/brand-archetype-strategist.toml +3 -0
  240. package/.codex/agents/brand-auditor.toml +3 -0
  241. package/.codex/agents/brand-collateral-designer.toml +3 -0
  242. package/.codex/agents/brand-compiler.toml +3 -0
  243. package/.codex/agents/brand-creative-engineer.toml +3 -0
  244. package/.codex/agents/brand-culture-architect.toml +3 -0
  245. package/.codex/agents/brand-growth-strategist.toml +3 -0
  246. package/.codex/agents/brand-identity-designer.toml +3 -0
  247. package/.codex/agents/brand-motion-vfx.toml +3 -0
  248. package/.codex/agents/brand-naming-specialist.toml +3 -0
  249. package/.codex/agents/brand-orqx.toml +3 -0
  250. package/.codex/agents/brand-positioning-strategist.toml +3 -0
  251. package/.codex/agents/brand-sonic-designer.toml +3 -0
  252. package/.codex/agents/brand-strategist.toml +3 -0
  253. package/.codex/agents/brand-system-architect.toml +3 -0
  254. package/.codex/agents/brand-voice-writer.toml +3 -0
  255. package/.codex/agents/brene-brown.toml +3 -0
  256. package/.codex/agents/budget-controller.toml +3 -0
  257. package/.codex/agents/campaign-analyst.toml +3 -0
  258. package/.codex/agents/charlie-munger.toml +3 -0
  259. package/.codex/agents/claude-mastery-chief.toml +3 -0
  260. package/.codex/agents/cloning-orqx.toml +3 -0
  261. package/.codex/agents/cloud-security-engineer.toml +3 -0
  262. package/.codex/agents/cognitive-extractor.toml +3 -0
  263. package/.codex/agents/commercial-orqx.toml +3 -0
  264. package/.codex/agents/competitive-intelligence.toml +3 -0
  265. package/.codex/agents/compliance-officer.toml +3 -0
  266. package/.codex/agents/config-engineer.toml +3 -0
  267. package/.codex/agents/content-analyst.toml +3 -0
  268. package/.codex/agents/content-capturer.toml +3 -0
  269. package/.codex/agents/content-engineer.toml +3 -0
  270. package/.codex/agents/content-governor.toml +3 -0
  271. package/.codex/agents/content-orqx.toml +3 -0
  272. package/.codex/agents/content-writer.toml +3 -0
  273. package/.codex/agents/conversion-writer.toml +3 -0
  274. package/.codex/agents/copy-editor.toml +3 -0
  275. package/.codex/agents/copy-orqx.toml +3 -0
  276. package/.codex/agents/copy-strategist.toml +3 -0
  277. package/.codex/agents/cost-optimizer.toml +3 -0
  278. package/.codex/agents/council-orqx.toml +3 -0
  279. package/.codex/agents/courses-orqx.toml +3 -0
  280. package/.codex/agents/creative-strategist.toml +3 -0
  281. package/.codex/agents/cro-persuasion.toml +3 -0
  282. package/.codex/agents/cro-specialist.toml +3 -0
  283. package/.codex/agents/cs-business-auditor.toml +3 -0
  284. package/.codex/agents/cs-client-success.toml +3 -0
  285. package/.codex/agents/cs-crm-specialist.toml +3 -0
  286. package/.codex/agents/cs-funnel-architect.toml +3 -0
  287. package/.codex/agents/cs-lead-generation-strategist.toml +3 -0
  288. package/.codex/agents/cs-offer-designer.toml +3 -0
  289. package/.codex/agents/cs-revops-analyst.toml +3 -0
  290. package/.codex/agents/cs-sales-closer.toml +3 -0
  291. package/.codex/agents/cs-sales-enablement.toml +3 -0
  292. package/.codex/agents/css-motion-artist.toml +3 -0
  293. package/.codex/agents/curriculum-designer.toml +3 -0
  294. package/.codex/agents/cyber-orqx.toml +3 -0
  295. package/.codex/agents/dan-harmon.toml +3 -0
  296. package/.codex/agents/data-engineer.toml +3 -0
  297. package/.codex/agents/data-synthesizer.toml +3 -0
  298. package/.codex/agents/deep-researcher.toml +3 -0
  299. package/.codex/agents/derek-sivers.toml +3 -0
  300. package/.codex/agents/design-orqx.toml +3 -0
  301. package/.codex/agents/design-system.toml +3 -0
  302. package/.codex/agents/developer.toml +3 -0
  303. package/.codex/agents/devops.toml +3 -0
  304. package/.codex/agents/direct-response-writer.toml +3 -0
  305. package/.codex/agents/dx-accessibility-specialist.toml +3 -0
  306. package/.codex/agents/dx-design-system-architect.toml +3 -0
  307. package/.codex/agents/dx-frontend-engineer.toml +3 -0
  308. package/.codex/agents/dx-interaction-designer.toml +3 -0
  309. package/.codex/agents/dx-performance-engineer.toml +3 -0
  310. package/.codex/agents/dx-ui-designer.toml +3 -0
  311. package/.codex/agents/dx-ux-strategist.toml +3 -0
  312. package/.codex/agents/editorial-strategist.toml +3 -0
  313. package/.codex/agents/email-sequence-strategist.toml +3 -0
  314. package/.codex/agents/finance-orqx.toml +3 -0
  315. package/.codex/agents/fiscal-compliance-br.toml +3 -0
  316. package/.codex/agents/forecast-strategist.toml +3 -0
  317. package/.codex/agents/funnel-copywriter.toml +3 -0
  318. package/.codex/agents/ga-analytics-engineer.toml +3 -0
  319. package/.codex/agents/ga-campaign-analyst.toml +3 -0
  320. package/.codex/agents/ga-cro-specialist.toml +3 -0
  321. package/.codex/agents/ga-data-analyst.toml +3 -0
  322. package/.codex/agents/ga-growth-hacker.toml +3 -0
  323. package/.codex/agents/ga-seo-strategist.toml +3 -0
  324. package/.codex/agents/generative-particle-engineer.toml +3 -0
  325. package/.codex/agents/google-ads-specialist.toml +3 -0
  326. package/.codex/agents/growth-orqx.toml +3 -0
  327. package/.codex/agents/headline-specialist.toml +3 -0
  328. package/.codex/agents/hooks-architect.toml +3 -0
  329. package/.codex/agents/incident-responder.toml +3 -0
  330. package/.codex/agents/joseph-campbell.toml +3 -0
  331. package/.codex/agents/kb-architect.toml +3 -0
  332. package/.codex/agents/keith-johnstone.toml +3 -0
  333. package/.codex/agents/kindra-hall.toml +3 -0
  334. package/.codex/agents/launch-strategist.toml +3 -0
  335. package/.codex/agents/lesson-architect.toml +3 -0
  336. package/.codex/agents/long-form-writer.toml +3 -0
  337. package/.codex/agents/market-analyst.toml +3 -0
  338. package/.codex/agents/marshall-ganz.toml +3 -0
  339. package/.codex/agents/mcp-integrator.toml +3 -0
  340. package/.codex/agents/meta-ads-specialist.toml +3 -0
  341. package/.codex/agents/mind-synthesizer.toml +3 -0
  342. package/.codex/agents/motion-choreographer.toml +3 -0
  343. package/.codex/agents/nancy-duarte.toml +3 -0
  344. package/.codex/agents/naval-ravikant.toml +3 -0
  345. package/.codex/agents/network-security-engineer.toml +3 -0
  346. package/.codex/agents/oren-klaff.toml +3 -0
  347. package/.codex/agents/paidmedia-orqx.toml +3 -0
  348. package/.codex/agents/park-howell.toml +3 -0
  349. package/.codex/agents/patrick-lencioni.toml +3 -0
  350. package/.codex/agents/penetration-tester.toml +3 -0
  351. package/.codex/agents/performance-engineer.toml +3 -0
  352. package/.codex/agents/persuasion-psychologist.toml +3 -0
  353. package/.codex/agents/peter-thiel.toml +3 -0
  354. package/.codex/agents/platform-aesthetic-director.toml +3 -0
  355. package/.codex/agents/platform-specialist.toml +3 -0
  356. package/.codex/agents/pm-creative-performance-analyst.toml +3 -0
  357. package/.codex/agents/pm-youtube-ads-specialist.toml +3 -0
  358. package/.codex/agents/premium-packaging-strategist.toml +3 -0
  359. package/.codex/agents/pricing-strategist.toml +3 -0
  360. package/.codex/agents/product-lead.toml +3 -0
  361. package/.codex/agents/product-orqx.toml +3 -0
  362. package/.codex/agents/product-surface-director.toml +3 -0
  363. package/.codex/agents/production-director.toml +3 -0
  364. package/.codex/agents/profitability-analyst.toml +3 -0
  365. package/.codex/agents/project-integrator.toml +3 -0
  366. package/.codex/agents/project-lead.toml +3 -0
  367. package/.codex/agents/proof-architect.toml +3 -0
  368. package/.codex/agents/ps-client-product-manager.toml +3 -0
  369. package/.codex/agents/ps-delivery-manager.toml +3 -0
  370. package/.codex/agents/ps-discovery-lead.toml +3 -0
  371. package/.codex/agents/ps-product-analyst.toml +3 -0
  372. package/.codex/agents/ps-product-ops-specialist.toml +3 -0
  373. package/.codex/agents/ps-product-strategist.toml +3 -0
  374. package/.codex/agents/quality-gate.toml +3 -0
  375. package/.codex/agents/ray-dalio.toml +3 -0
  376. package/.codex/agents/reid-hoffman.toml +3 -0
  377. package/.codex/agents/research-orqx.toml +3 -0
  378. package/.codex/agents/revenue-analyst.toml +3 -0
  379. package/.codex/agents/roadmap-sentinel.toml +3 -0
  380. package/.codex/agents/scroll-narrative-engineer.toml +3 -0
  381. package/.codex/agents/shader-artist.toml +3 -0
  382. package/.codex/agents/signal-intelligence.toml +3 -0
  383. package/.codex/agents/simon-sinek.toml +3 -0
  384. package/.codex/agents/skill-craftsman.toml +3 -0
  385. package/.codex/agents/slide-designer.toml +3 -0
  386. package/.codex/agents/snps-orqx.toml +3 -0
  387. package/.codex/agents/soc-analyst.toml +3 -0
  388. package/.codex/agents/sop-extractor.toml +3 -0
  389. package/.codex/agents/source-hunter.toml +3 -0
  390. package/.codex/agents/sprint-lead.toml +3 -0
  391. package/.codex/agents/squad-assembler.toml +3 -0
  392. package/.codex/agents/squad-creator.toml +3 -0
  393. package/.codex/agents/storytelling-orqx.toml +3 -0
  394. package/.codex/agents/swarm-orqx.toml +3 -0
  395. package/.codex/agents/threat-analyst.toml +3 -0
  396. package/.codex/agents/threejs-architect.toml +3 -0
  397. package/.codex/agents/trend-forecaster.toml +3 -0
  398. package/.codex/agents/ux-design-expert.toml +3 -0
  399. package/.codex/agents/ux-designer.toml +3 -0
  400. package/.codex/agents/yvon-chouinard.toml +3 -0
  401. package/.codex/catalog.json +20 -5
  402. package/.codex/command-registry.json +94 -0
  403. package/.codex/config.toml +8 -0
  404. package/.codex/delegation-matrix.json +39 -25
  405. package/.codex/delegation-parity.json +46 -41
  406. package/.codex/hooks/claude-compat.cjs +547 -0
  407. package/.codex/hooks.json +123 -0
  408. package/.codex/scripts/resolve-codex-agent.js +30 -1
  409. package/.codex/scripts/resolve-codex-workflow.js +283 -0
  410. package/.codex/scripts/sinapse-codex.js +304 -0
  411. package/.codex/scripts/sync-codex-native.js +581 -0
  412. package/.codex/scripts/validate-codex-native.js +277 -0
  413. package/.codex/tasks/onboard-sinapse-codex.md +1 -1
  414. package/.sinapse-ai/data/entity-registry.yaml +91 -39
  415. package/.sinapse-ai/install-manifest.yaml +5 -5
  416. package/.sinapse-ai/product/templates/statusline/agent-badges.json +37 -37
  417. package/AGENTS.md +5 -4
  418. package/CHANGELOG.md +23 -7
  419. package/README.en.md +1 -1
  420. package/README.md +25 -10
  421. package/bin/cli.js +8 -1
  422. package/bin/commands/help.js +3 -2
  423. package/bin/commands/install.js +79 -53
  424. package/bin/commands/status.js +4 -3
  425. package/bin/commands/uninstall.js +247 -29
  426. package/bin/commands/update.js +38 -23
  427. package/bin/lib/command-generator.js +25 -3
  428. package/bin/lib/global-provider-adapters.js +199 -0
  429. package/bin/lib/provider-parity.js +22 -0
  430. package/bin/postinstall.js +11 -11
  431. package/bin/utils/validate-publish.js +43 -10
  432. package/docs/framework/codex-parity/codex-integration-process.md +6 -7
  433. package/docs/framework/codex-parity/codex-native-runtime-v2.md +230 -0
  434. package/docs/framework/codex-parity/codex-parity-program.md +4 -4
  435. package/docs/framework/codex-parity/codex-total-parity-orchestration-plan.md +1 -1
  436. package/docs/framework/codex-parity/codex-workflow-task-parity.md +21 -7
  437. package/docs/framework/react-bits/animations.md +49 -0
  438. package/docs/framework/react-bits/audit-findings.md +103 -0
  439. package/docs/framework/react-bits/backgrounds.md +63 -0
  440. package/docs/framework/react-bits/catalog-summary.json +61 -0
  441. package/docs/framework/react-bits/components.md +58 -0
  442. package/docs/framework/react-bits/implementation-playbook.md +161 -0
  443. package/docs/framework/react-bits/index.md +130 -0
  444. package/docs/framework/react-bits/inventory.json +9333 -0
  445. package/docs/framework/react-bits/text-animations.md +41 -0
  446. package/docs/framework/software-engineering-applicability.md +31 -0
  447. package/docs/getting-started.md +6 -2
  448. package/docs/guides/codex-config.md +2 -2
  449. package/docs/guides/development-setup.md +1 -2
  450. package/docs/guides/ide-integration.md +6 -6
  451. package/docs/guides/quality-gates.md +2 -2
  452. package/docs/ide-integration.md +2 -2
  453. package/docs/installation/README.md +2 -2
  454. package/docs/installation/faq.md +1 -1
  455. package/docs/installation/troubleshooting.md +2 -2
  456. package/docs/installation/v4-quick-start.md +1 -1
  457. package/docs/pt/contributing.md +1 -1
  458. package/docs/pt/guides/development-setup.md +1 -2
  459. package/docs/pt/guides/quality-gates.md +2 -2
  460. package/docs/pt/ide-integration.md +6 -6
  461. package/docs/pt/installation/faq.md +1 -1
  462. package/docs/pt/installation/troubleshooting.md +2 -3
  463. package/docs/pt/installation/v4-quick-start.md +1 -2
  464. package/docs/pt/platforms/claude-code.md +4 -4
  465. package/docs/sinapse-agent-flows/analyst-system.md +1 -1
  466. package/docs/sinapse-agent-flows/architect-system.md +1 -1
  467. package/docs/sinapse-agent-flows/data-engineer-system.md +1 -1
  468. package/docs/sinapse-agent-flows/dev-system.md +1 -1
  469. package/docs/sinapse-agent-flows/pm-system.md +1 -1
  470. package/docs/sinapse-agent-flows/qa-system.md +1 -1
  471. package/docs/sinapse-agent-flows/sm-system.md +1 -1
  472. package/docs/sinapse-agent-flows/snps-orqx-system.md +1 -1
  473. package/docs/sinapse-agent-flows/squad-creator-system.md +2 -2
  474. package/docs/sinapse-agent-flows/ux-design-expert-system.md +1 -1
  475. package/package.json +37 -19
  476. package/packages/engineering-applicability/fixtures.json +52 -0
  477. package/packages/engineering-applicability/index.js +150 -0
  478. package/packages/installer/src/config/ide-configs.js +1 -1
  479. package/packages/installer/src/installer/sinapse-ai-installer.js +359 -2
  480. package/packages/installer/src/migrations/legacy-claude-agent-command-hashes.json +36 -0
  481. package/packages/installer/src/migrations/legacy-codex-native-skill-hashes.json +42 -0
  482. package/packages/installer/src/updater/index.js +51 -13
  483. package/packages/installer/src/wizard/feedback.js +1 -1
  484. package/packages/installer/src/wizard/ide-config-generator.js +22 -0
  485. package/packages/installer/src/wizard/index.js +106 -75
  486. package/scripts/gen-agent-badges.js +17 -1
  487. package/scripts/release-readiness.js +9 -3
  488. package/scripts/research/generate-react-bits-catalog.mjs +206 -0
  489. package/scripts/sync-provider-adapters.js +203 -0
  490. package/scripts/validate-codex-command-registry.js +101 -0
  491. package/scripts/validate-provider-adapters.js +243 -0
  492. package/squads/claude-code-mastery/agents/skill-craftsman.md +2 -2
  493. package/squads/claude-code-mastery/knowledge-base/skill-creation-patterns.md +1 -1
  494. package/squads/squad-animations/knowledge-base/react-bits-operational-guide.md +43 -0
  495. package/squads/squad-animations/squad.yaml +10 -5
  496. package/squads/squad-animations/tasks/orchestrate-react-bits-frontend.md +60 -0
  497. package/squads/squad-design/agents/ux-designer.md +1 -1
  498. package/.codex/skills/sinapse-orqx/SKILL.md +0 -25
  499. /package/{.codex → .agents}/skills/sinapse-analyst/SKILL.md +0 -0
  500. /package/{.codex → .agents}/skills/sinapse-animations/SKILL.md +0 -0
  501. /package/{.codex → .agents}/skills/sinapse-architect/SKILL.md +0 -0
  502. /package/{.codex → .agents}/skills/sinapse-brand/SKILL.md +0 -0
  503. /package/{.codex → .agents}/skills/sinapse-cloning/SKILL.md +0 -0
  504. /package/{.codex → .agents}/skills/sinapse-commercial/SKILL.md +0 -0
  505. /package/{.codex → .agents}/skills/sinapse-content/SKILL.md +0 -0
  506. /package/{.codex → .agents}/skills/sinapse-copy/SKILL.md +0 -0
  507. /package/{.codex → .agents}/skills/sinapse-council/SKILL.md +0 -0
  508. /package/{.codex → .agents}/skills/sinapse-courses/SKILL.md +0 -0
  509. /package/{.codex → .agents}/skills/sinapse-cyber/SKILL.md +0 -0
  510. /package/{.codex → .agents}/skills/sinapse-data-engineer/SKILL.md +0 -0
  511. /package/{.codex → .agents}/skills/sinapse-design/SKILL.md +0 -0
  512. /package/{.codex → .agents}/skills/sinapse-dev/SKILL.md +0 -0
  513. /package/{.codex → .agents}/skills/sinapse-devops/SKILL.md +0 -0
  514. /package/{.codex → .agents}/skills/sinapse-finance/SKILL.md +0 -0
  515. /package/{.codex → .agents}/skills/sinapse-growth/SKILL.md +0 -0
  516. /package/{.codex → .agents}/skills/sinapse-paidmedia/SKILL.md +0 -0
  517. /package/{.codex → .agents}/skills/sinapse-pm/SKILL.md +0 -0
  518. /package/{.codex → .agents}/skills/sinapse-po/SKILL.md +0 -0
  519. /package/{.codex → .agents}/skills/sinapse-product/SKILL.md +0 -0
  520. /package/{.codex → .agents}/skills/sinapse-qa/SKILL.md +0 -0
  521. /package/{.codex → .agents}/skills/sinapse-research/SKILL.md +0 -0
  522. /package/{.codex → .agents}/skills/sinapse-sm/SKILL.md +0 -0
  523. /package/{.codex → .agents}/skills/sinapse-squad-creator/SKILL.md +0 -0
  524. /package/{.codex → .agents}/skills/sinapse-storytelling/SKILL.md +0 -0
  525. /package/{.codex → .agents}/skills/sinapse-swarm/SKILL.md +0 -0
  526. /package/{.codex → .agents}/skills/sinapse-ux-design-expert/SKILL.md +0 -0
@@ -18,6 +18,7 @@ const crossSpawn = require('cross-spawn');
18
18
  const { getIDEConfig } = require('../config/ide-configs');
19
19
  const { validateProjectName } = require('./validators');
20
20
  const { getMergeStrategy, hasMergeStrategy } = require('../merger/index.js');
21
+ const { reconcileLegacyClaudeAgentCommands } = require('../installer/sinapse-ai-installer');
21
22
 
22
23
  /**
23
24
  * Render template with variables
@@ -373,6 +374,9 @@ async function generateIDEConfigs(selectedIDEs, wizardState, options = {}) {
373
374
 
374
375
  // Copy agent files to IDE-specific agent folder
375
376
  if (ide.agentFolder) {
377
+ if (ideKey === 'claude-code') {
378
+ await reconcileLegacyClaudeAgentCommands(projectRoot);
379
+ }
376
380
  spinner.start(`Copying agents to ${ide.agentFolder}...`);
377
381
  const agentFiles = await copyAgentFiles(projectRoot, ide.agentFolder, ide);
378
382
  createdFiles.push(...agentFiles);
@@ -544,6 +548,9 @@ async function copyClaudeHooksFolder(projectRoot) {
544
548
  'enforce-story-gate.cjs',
545
549
  'doc-first-gate.cjs',
546
550
  'enforce-framework-boundary.cjs',
551
+ 'enforce-permission-mode.cjs',
552
+ 'enforce-nsn-guard.cjs',
553
+ 'verify-packages.cjs',
547
554
  'secret-scanning.cjs',
548
555
  'write-path-validation.cjs',
549
556
  // Frente 4.3 — DORA + OTel telemetry hooks (STREAM A)
@@ -619,6 +626,21 @@ const HOOK_EVENT_MAP = {
619
626
  matcher: 'Write|Edit',
620
627
  timeout: 5,
621
628
  },
629
+ 'enforce-permission-mode.cjs': {
630
+ event: 'PreToolUse',
631
+ matcher: 'Write|Edit|Bash',
632
+ timeout: 5,
633
+ },
634
+ 'enforce-nsn-guard.cjs': {
635
+ event: 'PreToolUse',
636
+ matcher: 'Write|Edit',
637
+ timeout: 5,
638
+ },
639
+ 'verify-packages.cjs': {
640
+ event: 'PreToolUse',
641
+ matcher: 'Bash',
642
+ timeout: 10,
643
+ },
622
644
  'write-path-validation.cjs': {
623
645
  event: 'PreToolUse',
624
646
  matcher: 'Write|Edit',
@@ -88,6 +88,11 @@ async function writeClaudeSettings(language, projectDir = process.cwd()) {
88
88
  }
89
89
  }
90
90
 
91
+ async function writeProviderLanguageSettings({ selectedLLM, language, projectDir = process.cwd() }) {
92
+ if (!language || !shouldConfigureClaude(selectedLLM)) return false;
93
+ return writeClaudeSettings(language, projectDir);
94
+ }
95
+
91
96
  /** Detect system locale and return wizard language code. */
92
97
  function detectSystemLocale() {
93
98
  try {
@@ -285,6 +290,14 @@ function llmLabel(selectedLLM) {
285
290
  }
286
291
  }
287
292
 
293
+ function shouldConfigureClaude(selectedLLM) {
294
+ return selectedLLM === 'claude-code' || selectedLLM === 'both';
295
+ }
296
+
297
+ function shouldConfigureCodex(selectedLLM) {
298
+ return selectedLLM === 'codex' || selectedLLM === 'both';
299
+ }
300
+
288
301
  /**
289
302
  * 18 orqx agent definitions to install globally (17 squad orqx + 1 master).
290
303
  * Each entry maps agent-id to its squad directory name.
@@ -512,6 +525,7 @@ async function runWizard(options = {}) {
512
525
  sinapseCoreResult = await installSinapseCore({
513
526
  targetDir: process.cwd(),
514
527
  includeCodex: (answers.selectedLLM || 'claude-code') !== 'claude-code',
528
+ includeClaude: (answers.selectedLLM || 'claude-code') !== 'codex',
515
529
  onProgress: (_status) => {
516
530
  // Silent progress - spinner handles feedback
517
531
  },
@@ -522,6 +536,10 @@ async function runWizard(options = {}) {
522
536
  const installed = pillars.filter(p => sinapseCoreResult.installedFolders.includes(p));
523
537
  const aux = sinapseCoreResult.installedFolders.filter(f => !pillars.includes(f));
524
538
  console.log(`✅ SINAPSE core: ${sinapseCoreResult.installedFiles.length} files (${installed.length} pillars, ${aux.length} modules)`);
539
+ const cleanup = sinapseCoreResult.codexLegacySkillReconciliation;
540
+ if (cleanup && (cleanup.removed || cleanup.migrated || cleanup.quarantined || cleanup.ambiguous.length)) {
541
+ console.log(`SINAPSE Codex skill cleanup: ${cleanup.removed} removed, ${cleanup.migrated} migrated, ${cleanup.quarantined} quarantined, ${cleanup.ambiguous.length} ambiguous`);
542
+ }
525
543
  }
526
544
  answers.sinapseCoreInstalled = true;
527
545
  answers.sinapseCoreResult = sinapseCoreResult;
@@ -557,7 +575,8 @@ async function runWizard(options = {}) {
557
575
 
558
576
  // Install global orqx agent definitions to ~/.claude/agents/ (only for Claude Code)
559
577
  const selectedLLM = answers.selectedLLM || 'claude-code';
560
- if (selectedLLM === 'claude-code' || selectedLLM === 'both') {
578
+ const targetProjectRoot = process.cwd();
579
+ if (shouldConfigureClaude(selectedLLM)) {
561
580
  console.log('\n🤖 ' + t('installingGlobalAgents'));
562
581
  try {
563
582
  const globalAgentsResult = await installGlobalAgents();
@@ -708,100 +727,106 @@ async function runWizard(options = {}) {
708
727
  // Legacy per-squad IDE copy path removed; sync pipeline handles IDE propagation.
709
728
  }
710
729
 
730
+ if (shouldConfigureClaude(selectedLLM)) {
711
731
  // Story INS-4.3: Wire settings.json boundary generator after .sinapse-ai/ copy
712
- console.log('\n🔒 ' + t('generatingBoundaryRules'));
713
- try {
714
- const settingsGenerator = require('../../../../.sinapse-ai/infrastructure/scripts/generate-settings-json');
715
- settingsGenerator.generate(process.cwd());
716
- const settingsContent = await fse.readFile(path.join(process.cwd(), '.claude', 'settings.json'), 'utf8').catch(() => '{}');
717
- const settingsParsed = JSON.parse(settingsContent);
718
- const denyCount = (settingsParsed.permissions && settingsParsed.permissions.deny) ? settingsParsed.permissions.deny.length : 0;
719
- console.log(`✅ settings.json: generated (${denyCount} deny rules)`);
720
- answers.settingsGenerated = true;
721
- answers.settingsDenyCount = denyCount;
722
- } catch (error) {
723
- console.warn(`⚠️ settings.json generation failed: ${error.message} — run 'sinapse doctor --fix' post-install`);
724
- answers.settingsGenerated = false;
725
- }
732
+ console.log('\n🔒 ' + t('generatingBoundaryRules'));
733
+ try {
734
+ const settingsGenerator = require('../../../../.sinapse-ai/infrastructure/scripts/generate-settings-json');
735
+ settingsGenerator.generate(process.cwd());
736
+ const settingsContent = await fse.readFile(path.join(process.cwd(), '.claude', 'settings.json'), 'utf8').catch(() => '{}');
737
+ const settingsParsed = JSON.parse(settingsContent);
738
+ const denyCount = (settingsParsed.permissions && settingsParsed.permissions.deny) ? settingsParsed.permissions.deny.length : 0;
739
+ console.log(`✅ settings.json: generated (${denyCount} deny rules)`);
740
+ answers.settingsGenerated = true;
741
+ answers.settingsDenyCount = denyCount;
742
+ } catch (error) {
743
+ console.warn(`⚠️ settings.json generation failed: ${error.message} — run 'sinapse doctor --fix' post-install`);
744
+ answers.settingsGenerated = false;
745
+ }
726
746
 
727
- // Story INS-4.3: Copy skills (Gap #11)
728
- console.log('\n📚 ' + t('copyingSkills'));
729
- try {
730
- const skillsResult = await copySkillFiles(process.cwd());
731
- if (skillsResult.skipped) {
732
- console.log(' ℹ️ Skills: source not found (skipped)');
733
- } else {
734
- console.log(`✅ Skills: ${skillsResult.count} copied`);
747
+ // Story INS-4.3: Copy skills (Gap #11)
748
+ console.log('\n📚 ' + t('copyingSkills'));
749
+ try {
750
+ const skillsResult = await copySkillFiles(process.cwd());
751
+ if (skillsResult.skipped) {
752
+ console.log(' ℹ️ Skills: source not found (skipped)');
753
+ } else {
754
+ console.log(`✅ Skills: ${skillsResult.count} copied`);
755
+ }
756
+ answers.skillsCopied = skillsResult.count;
757
+ answers.skillsSkipped = skillsResult.skipped;
758
+ } catch (error) {
759
+ console.warn(`⚠️ Skills copy failed: ${error.message}`);
760
+ answers.skillsCopied = 0;
735
761
  }
736
- answers.skillsCopied = skillsResult.count;
737
- answers.skillsSkipped = skillsResult.skipped;
738
- } catch (error) {
739
- console.warn(`⚠️ Skills copy failed: ${error.message}`);
740
- answers.skillsCopied = 0;
741
- }
742
762
 
743
- // Story INS-4.3: Copy extra commands (Gap #12)
744
- console.log('\n📋 ' + t('copyingExtraCommands'));
745
- try {
746
- const commandsResult = await copyExtraCommandFiles(process.cwd());
747
- if (commandsResult.skipped) {
748
- console.log(' ℹ️ Extra commands: source not found (skipped)');
749
- } else {
750
- console.log(`✅ Commands: ${commandsResult.count} extras copied`);
763
+ // Story INS-4.3: Copy extra commands (Gap #12)
764
+ console.log('\n📋 ' + t('copyingExtraCommands'));
765
+ try {
766
+ const commandsResult = await copyExtraCommandFiles(process.cwd());
767
+ if (commandsResult.skipped) {
768
+ console.log(' ℹ️ Extra commands: source not found (skipped)');
769
+ } else {
770
+ console.log(`✅ Commands: ${commandsResult.count} extras copied`);
771
+ }
772
+ answers.extraCommandsCopied = commandsResult.count;
773
+ answers.extraCommandsSkipped = commandsResult.skipped;
774
+ } catch (error) {
775
+ console.warn(`⚠️ Extra commands copy failed: ${error.message}`);
776
+ answers.extraCommandsCopied = 0;
751
777
  }
752
- answers.extraCommandsCopied = commandsResult.count;
753
- answers.extraCommandsSkipped = commandsResult.skipped;
754
- } catch (error) {
755
- console.warn(`⚠️ Extra commands copy failed: ${error.message}`);
756
- answers.extraCommandsCopied = 0;
757
- }
758
778
 
759
- // Story INS-4.5: IDE Sync — transform agents/skills/commands for each configured IDE
760
- console.log('\n🔄 ' + t('runningIdeSync'));
761
- const targetProjectRoot = process.cwd();
762
- const savedCwd = process.cwd();
763
- try {
764
- process.chdir(targetProjectRoot);
765
- await commandSync({ quiet: true });
766
- answers.ideSyncStatus = 'synced';
767
- console.log('✅ IDE sync: synced');
768
-
769
- // Validate sync output (commandValidate does not support quiet — suppress its console output)
770
- const _origLog = console.log;
771
- console.log = () => {};
779
+ // Story INS-4.5: IDE Sync — transform agents/skills/commands for each configured IDE
780
+ console.log('\n🔄 ' + t('runningIdeSync'));
781
+ const savedCwd = process.cwd();
772
782
  try {
773
- await commandValidate({ quiet: true });
774
- answers.ideSyncValidation = 'pass';
775
- } catch {
776
- answers.ideSyncValidation = 'drift';
783
+ process.chdir(targetProjectRoot);
784
+ await commandSync({ quiet: true });
785
+ answers.ideSyncStatus = 'synced';
786
+ console.log('✅ IDE sync: synced');
787
+
788
+ // Validate sync output (commandValidate does not support quiet — suppress its console output)
789
+ const _origLog = console.log;
790
+ console.log = () => {};
791
+ try {
792
+ await commandValidate({ quiet: true });
793
+ answers.ideSyncValidation = 'pass';
794
+ } catch {
795
+ answers.ideSyncValidation = 'drift';
796
+ } finally {
797
+ console.log = _origLog;
798
+ }
799
+ if (answers.ideSyncValidation === 'drift') {
800
+ console.warn('⚠️ ' + t('ideSyncDriftWarning'));
801
+ }
802
+ } catch (syncError) {
803
+ console.warn(`⚠️ IDE sync failed: ${syncError.message} — run 'sinapse doctor --fix' post-install`);
804
+ answers.ideSyncStatus = 'failed';
805
+ answers.ideSyncValidation = 'skipped';
777
806
  } finally {
778
- console.log = _origLog;
779
- }
780
- if (answers.ideSyncValidation === 'drift') {
781
- console.warn('⚠️ ' + t('ideSyncDriftWarning'));
807
+ process.chdir(savedCwd);
782
808
  }
783
- } catch (syncError) {
784
- console.warn(`⚠️ IDE sync failed: ${syncError.message} — run 'sinapse doctor --fix' post-install`);
785
- answers.ideSyncStatus = 'failed';
786
- answers.ideSyncValidation = 'skipped';
787
- } finally {
788
- process.chdir(savedCwd);
809
+
789
810
  }
790
811
 
791
812
  // Codex local-first sync: the ide-sync above drives claude-code only now,
792
- // so .codex/agents + .codex/skills are regenerated here from the canonical
813
+ // so .codex/agents + .agents/skills are regenerated here from the canonical
793
814
  // source (the static .codex payload — scripts/tasks/JSONs — was already
794
815
  // copied by installSinapseCore when Codex was selected). Codex installs only.
795
- if (selectedLLM === 'codex' || selectedLLM === 'both') {
816
+ if (shouldConfigureCodex(selectedLLM)) {
796
817
  console.log('\n🔄 ' + t('runningCodexSync'));
797
818
  const savedCwdCodex = process.cwd();
798
819
  try {
799
820
  const { syncCodexLocalFirst } = require('../../../../.sinapse-ai/infrastructure/scripts/sync-codex-local-first');
821
+ const { syncCodexNativeAgents } = require('../../../../.codex/scripts/sync-codex-native');
800
822
  process.chdir(targetProjectRoot);
801
823
  const codexResult = syncCodexLocalFirst({ projectRoot: targetProjectRoot, quiet: true });
824
+ const nativeResult = codexResult.ok
825
+ ? syncCodexNativeAgents(targetProjectRoot)
826
+ : { total: 0 };
802
827
  answers.codexSyncStatus = codexResult.ok ? 'synced' : 'failed';
803
828
  const m = codexResult.metrics || {};
804
- console.log(`✅ Codex sync: ${codexResult.ok ? 'synced' : 'issues'} (${m.codexAgents || 0} agents, ${m.codexSkills || 0} skills)`);
829
+ console.log(`✅ Codex sync: ${codexResult.ok ? 'synced' : 'issues'} (${m.codexAgents || 0} adapters, ${nativeResult.total || 0} native agents, ${m.codexSkills || 0} native skills)`);
805
830
  } catch (codexErr) {
806
831
  console.warn(`⚠️ Codex sync failed: ${codexErr.message} — run 'npm run sync:ide:codex' post-install`);
807
832
  answers.codexSyncStatus = 'failed';
@@ -877,8 +902,11 @@ async function runWizard(options = {}) {
877
902
  });
878
903
 
879
904
  // Story ACT-12: Write language to Claude Code settings.json
880
- if (answers.language) {
881
- const langWritten = await writeClaudeSettings(answers.language);
905
+ if (answers.language && shouldConfigureClaude(selectedLLM)) {
906
+ const langWritten = await writeProviderLanguageSettings({
907
+ selectedLLM,
908
+ language: answers.language,
909
+ });
882
910
  if (langWritten) {
883
911
  console.log(' - Language written to .claude/settings.json');
884
912
  } else {
@@ -1266,6 +1294,7 @@ module.exports = {
1266
1294
  // Exported for testing
1267
1295
  _testing: {
1268
1296
  writeClaudeSettings,
1297
+ writeProviderLanguageSettings,
1269
1298
  getExistingLanguage,
1270
1299
  LANGUAGE_MAP,
1271
1300
  detectProjectType,
@@ -1274,6 +1303,8 @@ module.exports = {
1274
1303
  detectSystemLocale,
1275
1304
  llmToIDEs,
1276
1305
  llmLabel,
1306
+ shouldConfigureClaude,
1307
+ shouldConfigureCodex,
1277
1308
  installGlobalAgents,
1278
1309
  buildAgentTemplate,
1279
1310
  generateAgentsMd,
@@ -96,8 +96,24 @@ for (const b of badges) if (!b.icon) { b.icon = squadIcon[b.squad] || '◆'; b.h
96
96
  // The badge uses only the FIRST name (never the full name).
97
97
  for (const b of badges) b.name = b.name.split(/\s+/)[0];
98
98
 
99
+ // Some source .md files carry the emoji as a LITERAL escape sequence
100
+ // ("\U0001F9E0" as text). Decode at generation time so every consumer
101
+ // (statusline, selo block) receives the real glyph — never garbage.
102
+ function decodeEmoji(e) {
103
+ if (typeof e !== 'string' || !e) return e;
104
+ if (!e.includes('\\u') && !e.includes('\\U')) return e;
105
+ try {
106
+ const decoded = e
107
+ .replace(/\\U([0-9A-Fa-f]{8})/g, (_, h) => String.fromCodePoint(parseInt(h, 16)))
108
+ .replace(/\\u([0-9A-Fa-f]{4})/g, (_, h) => String.fromCharCode(parseInt(h, 16)));
109
+ return decoded || e;
110
+ } catch {
111
+ return e;
112
+ }
113
+ }
114
+
99
115
  const out = {};
100
- for (const b of badges) out[b.id] = { emoji: b.icon, area: b.area, name: b.name };
116
+ for (const b of badges) out[b.id] = { emoji: decodeEmoji(b.icon), area: b.area, name: b.name };
101
117
  fs.writeFileSync(OUT, JSON.stringify(out, null, 2));
102
118
 
103
119
  const generic = badges.filter((b) => b.icon === '◆').length;
@@ -48,6 +48,9 @@ const GATES = [
48
48
  { id: 'parity', name: 'Cross-IDE parity (10.18)', cmd: ['npm', 'run', 'validate:parity', '--silent'] },
49
49
  { id: 'manifest', name: 'Install manifest', cmd: ['npm', 'run', 'validate:manifest', '--silent'] },
50
50
  { id: 'install-docs', name: 'Install docs', cmd: ['npm', 'run', 'validate:docs', '--silent'] },
51
+ { id: 'providers', name: 'Native providers', cmd: ['npm', 'run', 'validate:providers', '--silent'] },
52
+ { id: 'engineering', name: 'Engineering applicability', cmd: ['npm', 'run', 'validate:engineering-applicability', '--silent'] },
53
+ { id: 'publish', name: 'Publish safety', cmd: ['npm', 'run', 'validate:publish', '--silent'] },
51
54
  ];
52
55
 
53
56
  function parseArgs(argv = process.argv.slice(2)) {
@@ -60,10 +63,13 @@ function parseArgs(argv = process.argv.slice(2)) {
60
63
 
61
64
  function runGate(gate) {
62
65
  const start = Date.now();
63
- const result = spawnSync(gate.cmd[0], gate.cmd.slice(1), {
66
+ const npmCli = gate.cmd[0] === 'npm' ? process.env.npm_execpath : null;
67
+ const executable = npmCli ? process.execPath : gate.cmd[0];
68
+ const args = npmCli ? [npmCli, ...gate.cmd.slice(1)] : gate.cmd.slice(1);
69
+ const result = spawnSync(executable, args, {
64
70
  cwd: PROJECT_ROOT,
65
71
  encoding: 'utf8',
66
- shell: process.platform === 'win32',
72
+ shell: false,
67
73
  });
68
74
  const elapsed = Date.now() - start;
69
75
  return {
@@ -72,7 +78,7 @@ function runGate(gate) {
72
78
  status: result.status === 0 ? 'PASS' : 'FAIL',
73
79
  exitCode: result.status,
74
80
  elapsedMs: elapsed,
75
- stderr: result.stderr ? result.stderr.split('\n').slice(-5).join('\n') : '',
81
+ stderr: result.stderr ? result.stderr.split('\n').slice(-5).join('\n') : (result.error?.message || ''),
76
82
  };
77
83
  }
78
84
 
@@ -0,0 +1,206 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { execFileSync } from 'node:child_process';
4
+ import { existsSync, readdirSync, readFileSync, writeFileSync, mkdirSync, statSync } from 'node:fs';
5
+ import { basename, join, resolve } from 'node:path';
6
+ import { pathToFileURL } from 'node:url';
7
+
8
+ const args = process.argv.slice(2);
9
+ const valueOf = flag => {
10
+ const index = args.indexOf(flag);
11
+ return index === -1 ? undefined : args[index + 1];
12
+ };
13
+
14
+ const repo = resolve(valueOf('--repo') || '../.tmp-react-bits-research');
15
+ const output = resolve(valueOf('--output') || 'docs/framework/react-bits');
16
+ const infoPath = join(repo, 'src', 'constants', 'Information.js');
17
+
18
+ if (!existsSync(join(repo, '.git')) || !existsSync(infoPath)) {
19
+ throw new Error(`React Bits checkout not found or incomplete: ${repo}`);
20
+ }
21
+
22
+ const sha = execFileSync('git', ['-C', repo, 'rev-parse', 'HEAD'], { encoding: 'utf8' }).trim();
23
+ const commitDate = execFileSync('git', ['-C', repo, 'show', '-s', '--format=%cI', 'HEAD'], {
24
+ encoding: 'utf8'
25
+ }).trim();
26
+ const { componentMetadata, VARIANTS } = await import(`${pathToFileURL(infoPath).href}?sha=${sha}`);
27
+
28
+ if (!componentMetadata || !Array.isArray(VARIANTS) || VARIANTS.length !== 4) {
29
+ throw new Error('Required React Bits metadata exports are missing or changed');
30
+ }
31
+
32
+ const categories = ['Animations', 'TextAnimations', 'Components', 'Backgrounds'];
33
+ const categorySlugs = {
34
+ Animations: 'animations',
35
+ TextAnimations: 'text-animations',
36
+ Components: 'components',
37
+ Backgrounds: 'backgrounds'
38
+ };
39
+
40
+ const walk = directory =>
41
+ readdirSync(directory, { withFileTypes: true }).flatMap(entry => {
42
+ const path = join(directory, entry.name);
43
+ return entry.isDirectory() ? walk(path) : [path];
44
+ });
45
+
46
+ const codeMetadataFiles = walk(join(repo, 'src', 'constants', 'code')).filter(path => path.endsWith('.js'));
47
+ const codeMetadata = new Map();
48
+
49
+ for (const path of codeMetadataFiles) {
50
+ const source = readFileSync(path, 'utf8');
51
+ const sourceMatch = source.match(/@(?:content|ts-default)\/([^/]+)\/([^/]+)\//);
52
+ if (!sourceMatch) continue;
53
+ const dependencyMatch = source.match(/dependencies\s*:\s*([`'"])([\s\S]*?)\1/);
54
+ const dependencies = dependencyMatch
55
+ ? dependencyMatch[2].replace(/^\s*(?:npm|pnpm|yarn|bun)\s+(?:i|install|add)\s+/, '').trim()
56
+ : '';
57
+ codeMetadata.set(`${sourceMatch[1]}/${sourceMatch[2]}`.toLowerCase(), { dependencies, path });
58
+ }
59
+
60
+ const findComponentDirectory = (category, name) => {
61
+ const root = join(repo, 'src', 'ts-default', category);
62
+ const match = readdirSync(root, { withFileTypes: true }).find(
63
+ entry => entry.isDirectory() && entry.name.toLowerCase() === name.toLowerCase()
64
+ );
65
+ if (!match) throw new Error(`Missing TS source directory for ${category}/${name}`);
66
+ return join(root, match.name);
67
+ };
68
+
69
+ const extractProps = source => {
70
+ const blocks = [];
71
+ const declarations = /(?:type|interface)\s+\w*Props\w*(?:\s+extends[^\{]+)?\s*(?:=\s*)?\{/g;
72
+ for (const match of source.matchAll(declarations)) {
73
+ let depth = 1;
74
+ let cursor = match.index + match[0].length;
75
+ const start = cursor;
76
+ while (cursor < source.length && depth > 0) {
77
+ if (source[cursor] === '{') depth += 1;
78
+ if (source[cursor] === '}') depth -= 1;
79
+ cursor += 1;
80
+ }
81
+ blocks.push(source.slice(start, cursor - 1));
82
+ }
83
+
84
+ const props = new Set();
85
+ for (const block of blocks) {
86
+ for (const line of block.split('\n')) {
87
+ const match = line.match(/^\s*(?:readonly\s+)?([A-Za-z_$][\w$]*)\??\s*:/);
88
+ if (match) props.add(match[1]);
89
+ }
90
+ }
91
+ return [...props];
92
+ };
93
+
94
+ const escapeCell = value => String(value || '').replaceAll('|', '\\|').replaceAll('\n', ' ');
95
+ const entries = Object.entries(componentMetadata).map(([key, metadata]) => {
96
+ const directory = findComponentDirectory(metadata.category, metadata.name);
97
+ const sourceFile = readdirSync(directory).find(file => file.endsWith('.tsx'));
98
+ if (!sourceFile) throw new Error(`Missing TSX source for ${key}`);
99
+ const source = readFileSync(join(directory, sourceFile), 'utf8');
100
+ const demoPath = join(repo, 'src', 'demo', metadata.category, `${metadata.name}Demo.jsx`);
101
+ const demo = existsSync(demoPath) ? readFileSync(demoPath, 'utf8') : '';
102
+ const demoProps = [...demo.matchAll(/\bname\s*:\s*['"]([^'"]+)['"]/g)].map(match => match[1]);
103
+ const props = [...new Set(demoProps.length ? demoProps : extractProps(source))];
104
+ const code = codeMetadata.get(key.toLowerCase()) || codeMetadata.get(
105
+ `${metadata.category}/${basename(directory)}`.toLowerCase()
106
+ );
107
+ if (!code) throw new Error(`Missing code metadata for ${key}`);
108
+
109
+ const variantConfig = {
110
+ 'JS-CSS': { root: 'content', extension: 'jsx' },
111
+ 'JS-TW': { root: 'tailwind', extension: 'jsx' },
112
+ 'TS-CSS': { root: 'ts-default', extension: 'tsx' },
113
+ 'TS-TW': { root: 'ts-tailwind', extension: 'tsx' }
114
+ };
115
+ const declaredVariants = metadata.variants || VARIANTS;
116
+ const variants = Object.fromEntries(declaredVariants.map(variant => {
117
+ const config = variantConfig[variant];
118
+ const sourcePath = join(repo, 'src', config.root, metadata.category, basename(directory), `${basename(directory)}.${config.extension}`);
119
+ const registryPath = join(repo, 'public', 'r', `${metadata.name}-${variant}.json`);
120
+ if (!existsSync(sourcePath) || !existsSync(registryPath)) throw new Error(`Missing published variant ${key}/${variant}`);
121
+ const registry = JSON.parse(readFileSync(registryPath, 'utf8'));
122
+ const sourceBytes = statSync(sourcePath).size;
123
+ return [variant, {
124
+ source: sourcePath.slice(repo.length + 1).replaceAll('\\', '/'),
125
+ sourceBytes,
126
+ functional: sourceBytes > 0,
127
+ dependencies: registry.dependencies || [],
128
+ registryDependencies: registry.registryDependencies || []
129
+ }];
130
+ }));
131
+
132
+ return {
133
+ key,
134
+ ...metadata,
135
+ documentedDependencies: code.dependencies ? code.dependencies.split(/\s+/).filter(Boolean) : [],
136
+ dependencies: [...new Set(Object.values(variants).flatMap(variant => variant.dependencies))],
137
+ props,
138
+ variants,
139
+ sourceDirectory: basename(directory),
140
+ sourceFile
141
+ };
142
+ });
143
+
144
+ mkdirSync(output, { recursive: true });
145
+ for (const category of categories) {
146
+ const list = entries.filter(entry => entry.category === category).sort((a, b) => a.name.localeCompare(b.name));
147
+ const lines = [
148
+ `# React Bits - ${category}`,
149
+ '',
150
+ `> Snapshot oficial: \`${sha}\` (${commitDate}). Total nesta categoria: **${list.length}**.`,
151
+ '',
152
+ 'Cada item abaixo aponta para a documentacao e para o codigo TypeScript/CSS oficial fixado no commit pesquisado.',
153
+ '',
154
+ '| Componente | O que faz | Dependencias | Props publicas | Variantes |',
155
+ '|---|---|---|---|---|'
156
+ ];
157
+
158
+ for (const entry of list) {
159
+ const sourceUrl = `https://github.com/DavidHDev/react-bits/tree/${sha}/src/ts-default/${entry.category}/${entry.sourceDirectory}`;
160
+ const label = `[${entry.name}](${entry.docsUrl}) ([fonte](${sourceUrl}))`;
161
+ const props = entry.props.length ? entry.props.map(prop => `\`${prop}\``).join(', ') : 'children / DOM props';
162
+ const variantStatus = Object.entries(entry.variants)
163
+ .map(([variant, details]) => details.functional ? variant : `${variant} (VAZIA no upstream)`)
164
+ .join(', ');
165
+ const dependencies = entry.dependencies.length ? entry.dependencies.join(' ') : 'none';
166
+ lines.push(
167
+ `| ${label} | ${escapeCell(entry.description)} | \`${escapeCell(dependencies)}\` | ${escapeCell(props)} | ${variantStatus} |`
168
+ );
169
+ }
170
+
171
+ lines.push('', '## Comandos por componente', '');
172
+ lines.push('Substituir `<Component>` pelo nome exato da primeira coluna:');
173
+ lines.push('', '```bash');
174
+ lines.push('npx shadcn@latest add @react-bits/<Component>-TS-TW');
175
+ lines.push('npx shadcn@latest add https://reactbits.dev/r/<Component>-TS-TW');
176
+ lines.push('npx jsrepo@latest add https://reactbits.dev/r/<Component>-TS-TW');
177
+ lines.push('```', '');
178
+ writeFileSync(join(output, `${categorySlugs[category]}.md`), `${lines.join('\n')}\n`);
179
+ }
180
+
181
+ const dependencyCounts = new Map();
182
+ for (const entry of entries) {
183
+ const packages = entry.dependencies;
184
+ for (const packageName of packages) dependencyCounts.set(packageName, (dependencyCounts.get(packageName) || 0) + 1);
185
+ }
186
+
187
+ const incompleteVariants = entries.flatMap(entry => Object.entries(entry.variants)
188
+ .filter(([, details]) => !details.functional)
189
+ .map(([variant, details]) => ({ component: entry.name, category: entry.category, variant, source: details.source })));
190
+
191
+ const summary = {
192
+ source: 'https://github.com/DavidHDev/react-bits',
193
+ sha,
194
+ commitDate,
195
+ total: entries.length,
196
+ categories: Object.fromEntries(categories.map(category => [category, entries.filter(item => item.category === category).length])),
197
+ variants: VARIANTS,
198
+ registryItems: entries.reduce((total, entry) => total + Object.keys(entry.variants).length, 0),
199
+ documentedProps: entries.reduce((total, entry) => total + entry.props.length, 0),
200
+ incompleteVariants,
201
+ dependencies: Object.fromEntries([...dependencyCounts.entries()].sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0])))
202
+ };
203
+ writeFileSync(join(output, 'catalog-summary.json'), `${JSON.stringify(summary, null, 2)}\n`);
204
+ writeFileSync(join(output, 'inventory.json'), `${JSON.stringify({ ...summary, components: entries }, null, 2)}\n`);
205
+
206
+ process.stdout.write(`${JSON.stringify(summary, null, 2)}\n`);