sinapse-ai 1.23.0 → 1.25.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 (499) hide show
  1. package/.agents/skills/sinapse/SKILL.md +10 -0
  2. package/.agents/skills/sinapse-agent/SKILL.md +22 -0
  3. package/.agents/skills/sinapse-analyst/SKILL.md +29 -0
  4. package/.agents/skills/sinapse-animations/SKILL.md +28 -0
  5. package/.agents/skills/sinapse-architect/SKILL.md +31 -0
  6. package/.agents/skills/sinapse-brand/SKILL.md +28 -0
  7. package/.agents/skills/sinapse-claude/SKILL.md +28 -0
  8. package/.agents/skills/sinapse-cloning/SKILL.md +28 -0
  9. package/.agents/skills/sinapse-commercial/SKILL.md +28 -0
  10. package/.agents/skills/sinapse-content/SKILL.md +28 -0
  11. package/.agents/skills/sinapse-copy/SKILL.md +28 -0
  12. package/.agents/skills/sinapse-council/SKILL.md +28 -0
  13. package/.agents/skills/sinapse-courses/SKILL.md +28 -0
  14. package/.agents/skills/sinapse-cyber/SKILL.md +28 -0
  15. package/.agents/skills/sinapse-data-engineer/SKILL.md +31 -0
  16. package/.agents/skills/sinapse-design/SKILL.md +28 -0
  17. package/.agents/skills/sinapse-dev/SKILL.md +31 -0
  18. package/.agents/skills/sinapse-devops/SKILL.md +31 -0
  19. package/.agents/skills/sinapse-finance/SKILL.md +28 -0
  20. package/.agents/skills/sinapse-growth/SKILL.md +28 -0
  21. package/.agents/skills/sinapse-loop/SKILL.md +35 -0
  22. package/.agents/skills/sinapse-orqx/SKILL.md +44 -0
  23. package/.agents/skills/sinapse-paidmedia/SKILL.md +28 -0
  24. package/.agents/skills/sinapse-pm/SKILL.md +31 -0
  25. package/.agents/skills/sinapse-po/SKILL.md +31 -0
  26. package/.agents/skills/sinapse-product/SKILL.md +28 -0
  27. package/.agents/skills/sinapse-qa/SKILL.md +31 -0
  28. package/.agents/skills/sinapse-research/SKILL.md +28 -0
  29. package/.agents/skills/sinapse-sm/SKILL.md +27 -0
  30. package/.agents/skills/sinapse-spec-driven/SKILL.md +35 -0
  31. package/.agents/skills/sinapse-squad-creator/SKILL.md +31 -0
  32. package/.agents/skills/sinapse-storytelling/SKILL.md +28 -0
  33. package/.agents/skills/sinapse-swarm/SKILL.md +28 -0
  34. package/.agents/skills/sinapse-ux-design-expert/SKILL.md +24 -0
  35. package/.agents/skills/snps/SKILL.md +10 -0
  36. package/.agents/skills/snps-orqx/SKILL.md +10 -0
  37. package/.claude/agents/README.md +67 -0
  38. package/.claude/agents/sinapse-ad-copywriter.md +14 -0
  39. package/.claude/agents/sinapse-agent-forger.md +14 -0
  40. package/.claude/agents/sinapse-analyst.md +14 -0
  41. package/.claude/agents/sinapse-animation-interpreter.md +14 -0
  42. package/.claude/agents/sinapse-animation-performance-engineer.md +14 -0
  43. package/.claude/agents/sinapse-animations-orqx.md +14 -0
  44. package/.claude/agents/sinapse-architect.md +14 -0
  45. package/.claude/agents/sinapse-assessment-creator.md +14 -0
  46. package/.claude/agents/sinapse-audience-intelligence.md +14 -0
  47. package/.claude/agents/sinapse-blake-snyder.md +14 -0
  48. package/.claude/agents/sinapse-brand-archetype-strategist.md +14 -0
  49. package/.claude/agents/sinapse-brand-auditor.md +14 -0
  50. package/.claude/agents/sinapse-brand-collateral-designer.md +14 -0
  51. package/.claude/agents/sinapse-brand-compiler.md +14 -0
  52. package/.claude/agents/sinapse-brand-creative-engineer.md +14 -0
  53. package/.claude/agents/sinapse-brand-culture-architect.md +14 -0
  54. package/.claude/agents/sinapse-brand-growth-strategist.md +14 -0
  55. package/.claude/agents/sinapse-brand-identity-designer.md +14 -0
  56. package/.claude/agents/sinapse-brand-motion-vfx.md +14 -0
  57. package/.claude/agents/sinapse-brand-naming-specialist.md +14 -0
  58. package/.claude/agents/sinapse-brand-orqx.md +14 -0
  59. package/.claude/agents/sinapse-brand-positioning-strategist.md +14 -0
  60. package/.claude/agents/sinapse-brand-sonic-designer.md +14 -0
  61. package/.claude/agents/sinapse-brand-strategist.md +14 -0
  62. package/.claude/agents/sinapse-brand-system-architect.md +14 -0
  63. package/.claude/agents/sinapse-brand-voice-writer.md +14 -0
  64. package/.claude/agents/sinapse-brene-brown.md +14 -0
  65. package/.claude/agents/sinapse-budget-controller.md +14 -0
  66. package/.claude/agents/sinapse-campaign-analyst.md +14 -0
  67. package/.claude/agents/sinapse-charlie-munger.md +14 -0
  68. package/.claude/agents/sinapse-claude-mastery-chief.md +14 -0
  69. package/.claude/agents/sinapse-cloning-orqx.md +14 -0
  70. package/.claude/agents/sinapse-cloud-security-engineer.md +14 -0
  71. package/.claude/agents/sinapse-cognitive-extractor.md +14 -0
  72. package/.claude/agents/sinapse-commercial-orqx.md +14 -0
  73. package/.claude/agents/sinapse-competitive-intelligence.md +14 -0
  74. package/.claude/agents/sinapse-compliance-officer.md +14 -0
  75. package/.claude/agents/sinapse-config-engineer.md +14 -0
  76. package/.claude/agents/sinapse-content-analyst.md +14 -0
  77. package/.claude/agents/sinapse-content-capturer.md +14 -0
  78. package/.claude/agents/sinapse-content-engineer.md +14 -0
  79. package/.claude/agents/sinapse-content-governor.md +14 -0
  80. package/.claude/agents/sinapse-content-orqx.md +14 -0
  81. package/.claude/agents/sinapse-content-writer.md +14 -0
  82. package/.claude/agents/sinapse-conversion-writer.md +14 -0
  83. package/.claude/agents/sinapse-copy-editor.md +14 -0
  84. package/.claude/agents/sinapse-copy-orqx.md +14 -0
  85. package/.claude/agents/sinapse-copy-strategist.md +14 -0
  86. package/.claude/agents/sinapse-cost-optimizer.md +14 -0
  87. package/.claude/agents/sinapse-council-orqx.md +14 -0
  88. package/.claude/agents/sinapse-courses-orqx.md +14 -0
  89. package/.claude/agents/sinapse-creative-strategist.md +14 -0
  90. package/.claude/agents/sinapse-cro-persuasion.md +14 -0
  91. package/.claude/agents/sinapse-cro-specialist.md +14 -0
  92. package/.claude/agents/sinapse-cs-business-auditor.md +14 -0
  93. package/.claude/agents/sinapse-cs-client-success.md +14 -0
  94. package/.claude/agents/sinapse-cs-crm-specialist.md +14 -0
  95. package/.claude/agents/sinapse-cs-funnel-architect.md +14 -0
  96. package/.claude/agents/sinapse-cs-lead-generation-strategist.md +14 -0
  97. package/.claude/agents/sinapse-cs-offer-designer.md +14 -0
  98. package/.claude/agents/sinapse-cs-revops-analyst.md +14 -0
  99. package/.claude/agents/sinapse-cs-sales-closer.md +14 -0
  100. package/.claude/agents/sinapse-cs-sales-enablement.md +14 -0
  101. package/.claude/agents/sinapse-css-motion-artist.md +14 -0
  102. package/.claude/agents/sinapse-curriculum-designer.md +14 -0
  103. package/.claude/agents/sinapse-cyber-orqx.md +14 -0
  104. package/.claude/agents/sinapse-dan-harmon.md +14 -0
  105. package/.claude/agents/sinapse-data-engineer.md +14 -0
  106. package/.claude/agents/sinapse-data-synthesizer.md +14 -0
  107. package/.claude/agents/sinapse-deep-researcher.md +14 -0
  108. package/.claude/agents/sinapse-derek-sivers.md +14 -0
  109. package/.claude/agents/sinapse-design-orqx.md +14 -0
  110. package/.claude/agents/sinapse-design-system.md +14 -0
  111. package/.claude/agents/sinapse-developer.md +14 -0
  112. package/.claude/agents/sinapse-devops.md +14 -0
  113. package/.claude/agents/sinapse-direct-response-writer.md +14 -0
  114. package/.claude/agents/sinapse-dx-accessibility-specialist.md +14 -0
  115. package/.claude/agents/sinapse-dx-design-system-architect.md +14 -0
  116. package/.claude/agents/sinapse-dx-frontend-engineer.md +14 -0
  117. package/.claude/agents/sinapse-dx-interaction-designer.md +14 -0
  118. package/.claude/agents/sinapse-dx-performance-engineer.md +14 -0
  119. package/.claude/agents/sinapse-dx-ui-designer.md +14 -0
  120. package/.claude/agents/sinapse-dx-ux-strategist.md +14 -0
  121. package/.claude/agents/sinapse-editorial-strategist.md +14 -0
  122. package/.claude/agents/sinapse-email-sequence-strategist.md +14 -0
  123. package/.claude/agents/sinapse-finance-orqx.md +14 -0
  124. package/.claude/agents/sinapse-fiscal-compliance-br.md +14 -0
  125. package/.claude/agents/sinapse-forecast-strategist.md +14 -0
  126. package/.claude/agents/sinapse-funnel-copywriter.md +14 -0
  127. package/.claude/agents/sinapse-ga-analytics-engineer.md +14 -0
  128. package/.claude/agents/sinapse-ga-campaign-analyst.md +14 -0
  129. package/.claude/agents/sinapse-ga-cro-specialist.md +14 -0
  130. package/.claude/agents/sinapse-ga-data-analyst.md +14 -0
  131. package/.claude/agents/sinapse-ga-growth-hacker.md +14 -0
  132. package/.claude/agents/sinapse-ga-seo-strategist.md +14 -0
  133. package/.claude/agents/sinapse-generative-particle-engineer.md +14 -0
  134. package/.claude/agents/sinapse-google-ads-specialist.md +14 -0
  135. package/.claude/agents/sinapse-growth-orqx.md +14 -0
  136. package/.claude/agents/sinapse-headline-specialist.md +14 -0
  137. package/.claude/agents/sinapse-hooks-architect.md +14 -0
  138. package/.claude/agents/sinapse-incident-responder.md +14 -0
  139. package/.claude/agents/sinapse-joseph-campbell.md +14 -0
  140. package/.claude/agents/sinapse-kb-architect.md +14 -0
  141. package/.claude/agents/sinapse-keith-johnstone.md +14 -0
  142. package/.claude/agents/sinapse-kindra-hall.md +14 -0
  143. package/.claude/agents/sinapse-launch-strategist.md +14 -0
  144. package/.claude/agents/sinapse-lesson-architect.md +14 -0
  145. package/.claude/agents/sinapse-long-form-writer.md +14 -0
  146. package/.claude/agents/sinapse-market-analyst.md +14 -0
  147. package/.claude/agents/sinapse-marshall-ganz.md +14 -0
  148. package/.claude/agents/sinapse-mcp-integrator.md +14 -0
  149. package/.claude/agents/sinapse-meta-ads-specialist.md +14 -0
  150. package/.claude/agents/sinapse-mind-synthesizer.md +14 -0
  151. package/.claude/agents/sinapse-motion-choreographer.md +14 -0
  152. package/.claude/agents/sinapse-nancy-duarte.md +14 -0
  153. package/.claude/agents/sinapse-naval-ravikant.md +14 -0
  154. package/.claude/agents/sinapse-network-security-engineer.md +14 -0
  155. package/.claude/agents/sinapse-oren-klaff.md +14 -0
  156. package/.claude/agents/sinapse-paidmedia-orqx.md +14 -0
  157. package/.claude/agents/sinapse-park-howell.md +14 -0
  158. package/.claude/agents/sinapse-patrick-lencioni.md +14 -0
  159. package/.claude/agents/sinapse-penetration-tester.md +14 -0
  160. package/.claude/agents/sinapse-performance-engineer.md +14 -0
  161. package/.claude/agents/sinapse-persuasion-psychologist.md +14 -0
  162. package/.claude/agents/sinapse-peter-thiel.md +14 -0
  163. package/.claude/agents/sinapse-platform-aesthetic-director.md +14 -0
  164. package/.claude/agents/sinapse-platform-specialist.md +14 -0
  165. package/.claude/agents/sinapse-pm-creative-performance-analyst.md +14 -0
  166. package/.claude/agents/sinapse-pm-youtube-ads-specialist.md +14 -0
  167. package/.claude/agents/sinapse-premium-packaging-strategist.md +14 -0
  168. package/.claude/agents/sinapse-pricing-strategist.md +14 -0
  169. package/.claude/agents/sinapse-product-lead.md +14 -0
  170. package/.claude/agents/sinapse-product-orqx.md +14 -0
  171. package/.claude/agents/sinapse-product-surface-director.md +14 -0
  172. package/.claude/agents/sinapse-production-director.md +14 -0
  173. package/.claude/agents/sinapse-profitability-analyst.md +14 -0
  174. package/.claude/agents/sinapse-project-integrator.md +14 -0
  175. package/.claude/agents/sinapse-project-lead.md +14 -0
  176. package/.claude/agents/sinapse-proof-architect.md +14 -0
  177. package/.claude/agents/sinapse-ps-client-product-manager.md +14 -0
  178. package/.claude/agents/sinapse-ps-delivery-manager.md +14 -0
  179. package/.claude/agents/sinapse-ps-discovery-lead.md +14 -0
  180. package/.claude/agents/sinapse-ps-product-analyst.md +14 -0
  181. package/.claude/agents/sinapse-ps-product-ops-specialist.md +14 -0
  182. package/.claude/agents/sinapse-ps-product-strategist.md +14 -0
  183. package/.claude/agents/sinapse-quality-gate.md +14 -0
  184. package/.claude/agents/sinapse-ray-dalio.md +14 -0
  185. package/.claude/agents/sinapse-reid-hoffman.md +14 -0
  186. package/.claude/agents/sinapse-research-orqx.md +14 -0
  187. package/.claude/agents/sinapse-revenue-analyst.md +14 -0
  188. package/.claude/agents/sinapse-roadmap-sentinel.md +14 -0
  189. package/.claude/agents/sinapse-scroll-narrative-engineer.md +14 -0
  190. package/.claude/agents/sinapse-shader-artist.md +14 -0
  191. package/.claude/agents/sinapse-signal-intelligence.md +14 -0
  192. package/.claude/agents/sinapse-simon-sinek.md +14 -0
  193. package/.claude/agents/sinapse-skill-craftsman.md +14 -0
  194. package/.claude/agents/sinapse-slide-designer.md +14 -0
  195. package/.claude/agents/sinapse-snps-orqx.md +14 -0
  196. package/.claude/agents/sinapse-soc-analyst.md +14 -0
  197. package/.claude/agents/sinapse-sop-extractor.md +14 -0
  198. package/.claude/agents/sinapse-source-hunter.md +14 -0
  199. package/.claude/agents/sinapse-sprint-lead.md +14 -0
  200. package/.claude/agents/sinapse-squad-assembler.md +14 -0
  201. package/.claude/agents/sinapse-squad-creator.md +14 -0
  202. package/.claude/agents/sinapse-storytelling-orqx.md +14 -0
  203. package/.claude/agents/sinapse-swarm-orqx.md +14 -0
  204. package/.claude/agents/sinapse-threat-analyst.md +14 -0
  205. package/.claude/agents/sinapse-threejs-architect.md +14 -0
  206. package/.claude/agents/sinapse-trend-forecaster.md +14 -0
  207. package/.claude/agents/sinapse-ux-design-expert.md +14 -0
  208. package/.claude/agents/sinapse-ux-designer.md +14 -0
  209. package/.claude/agents/sinapse-yvon-chouinard.md +14 -0
  210. package/.claude/rules/mandatory-delegation-reference.md +1 -1
  211. package/.claude/rules/mandatory-delegation.md +1 -1
  212. package/.claude/rules/software-engineering-applicability.md +13 -0
  213. package/.claude/rules/squad-awareness.md +1 -1
  214. package/.claude/rules/token-economy.md +1 -1
  215. package/.claude/skill-manifest.json +41 -0
  216. package/.claude/skills/api-review.md +50 -0
  217. package/.claude/skills/component-check.md +47 -0
  218. package/.claude/skills/db-review.md +41 -0
  219. package/.claude/skills/sinapse/SKILL.md +11 -0
  220. package/.claude/skills/sinapse-agent/SKILL.md +11 -0
  221. package/.claude/skills/sinapse-analyst/SKILL.md +11 -0
  222. package/.claude/skills/sinapse-animations/SKILL.md +11 -0
  223. package/.claude/skills/sinapse-architect/SKILL.md +11 -0
  224. package/.claude/skills/sinapse-brand/SKILL.md +11 -0
  225. package/.claude/skills/sinapse-claude/SKILL.md +11 -0
  226. package/.claude/skills/sinapse-cloning/SKILL.md +11 -0
  227. package/.claude/skills/sinapse-commercial/SKILL.md +11 -0
  228. package/.claude/skills/sinapse-content/SKILL.md +11 -0
  229. package/.claude/skills/sinapse-copy/SKILL.md +11 -0
  230. package/.claude/skills/sinapse-council/SKILL.md +11 -0
  231. package/.claude/skills/sinapse-courses/SKILL.md +11 -0
  232. package/.claude/skills/sinapse-cyber/SKILL.md +11 -0
  233. package/.claude/skills/sinapse-data-engineer/SKILL.md +11 -0
  234. package/.claude/skills/sinapse-design/SKILL.md +11 -0
  235. package/.claude/skills/sinapse-dev/SKILL.md +11 -0
  236. package/.claude/skills/sinapse-devops/SKILL.md +11 -0
  237. package/.claude/skills/sinapse-finance/SKILL.md +11 -0
  238. package/.claude/skills/sinapse-growth/SKILL.md +11 -0
  239. package/.claude/skills/sinapse-loop/SKILL.md +11 -0
  240. package/.claude/skills/sinapse-orqx/SKILL.md +11 -0
  241. package/.claude/skills/sinapse-paidmedia/SKILL.md +11 -0
  242. package/.claude/skills/sinapse-pm/SKILL.md +11 -0
  243. package/.claude/skills/sinapse-po/SKILL.md +11 -0
  244. package/.claude/skills/sinapse-product/SKILL.md +11 -0
  245. package/.claude/skills/sinapse-qa/SKILL.md +11 -0
  246. package/.claude/skills/sinapse-research/SKILL.md +11 -0
  247. package/.claude/skills/sinapse-sm/SKILL.md +11 -0
  248. package/.claude/skills/sinapse-spec-driven/SKILL.md +11 -0
  249. package/.claude/skills/sinapse-squad-creator/SKILL.md +11 -0
  250. package/.claude/skills/sinapse-storytelling/SKILL.md +11 -0
  251. package/.claude/skills/sinapse-swarm/SKILL.md +11 -0
  252. package/.claude/skills/sinapse-ux-design-expert/SKILL.md +11 -0
  253. package/.claude/skills/snps/SKILL.md +11 -0
  254. package/.claude/skills/snps-orqx/SKILL.md +11 -0
  255. package/.claude/skills/story-update.md +52 -0
  256. package/.claude/skills/test-guard.md +41 -0
  257. package/.codex/agents/ad-copywriter.toml +3 -0
  258. package/.codex/agents/agent-forger.toml +3 -0
  259. package/.codex/agents/analyst.toml +3 -0
  260. package/.codex/agents/animation-interpreter.toml +3 -0
  261. package/.codex/agents/animation-performance-engineer.toml +3 -0
  262. package/.codex/agents/animations-orqx.toml +3 -0
  263. package/.codex/agents/architect.toml +3 -0
  264. package/.codex/agents/assessment-creator.toml +3 -0
  265. package/.codex/agents/audience-intelligence.toml +3 -0
  266. package/.codex/agents/blake-snyder.toml +3 -0
  267. package/.codex/agents/brand-archetype-strategist.toml +3 -0
  268. package/.codex/agents/brand-auditor.toml +3 -0
  269. package/.codex/agents/brand-collateral-designer.toml +3 -0
  270. package/.codex/agents/brand-compiler.toml +3 -0
  271. package/.codex/agents/brand-creative-engineer.toml +3 -0
  272. package/.codex/agents/brand-culture-architect.toml +3 -0
  273. package/.codex/agents/brand-growth-strategist.toml +3 -0
  274. package/.codex/agents/brand-identity-designer.toml +3 -0
  275. package/.codex/agents/brand-motion-vfx.toml +3 -0
  276. package/.codex/agents/brand-naming-specialist.toml +3 -0
  277. package/.codex/agents/brand-orqx.toml +3 -0
  278. package/.codex/agents/brand-positioning-strategist.toml +3 -0
  279. package/.codex/agents/brand-sonic-designer.toml +3 -0
  280. package/.codex/agents/brand-strategist.toml +3 -0
  281. package/.codex/agents/brand-system-architect.toml +3 -0
  282. package/.codex/agents/brand-voice-writer.toml +3 -0
  283. package/.codex/agents/brene-brown.toml +3 -0
  284. package/.codex/agents/budget-controller.toml +3 -0
  285. package/.codex/agents/campaign-analyst.toml +3 -0
  286. package/.codex/agents/charlie-munger.toml +3 -0
  287. package/.codex/agents/claude-mastery-chief.toml +3 -0
  288. package/.codex/agents/cloning-orqx.toml +3 -0
  289. package/.codex/agents/cloud-security-engineer.toml +3 -0
  290. package/.codex/agents/cognitive-extractor.toml +3 -0
  291. package/.codex/agents/commercial-orqx.toml +3 -0
  292. package/.codex/agents/competitive-intelligence.toml +3 -0
  293. package/.codex/agents/compliance-officer.toml +3 -0
  294. package/.codex/agents/config-engineer.toml +3 -0
  295. package/.codex/agents/content-analyst.toml +3 -0
  296. package/.codex/agents/content-capturer.toml +3 -0
  297. package/.codex/agents/content-engineer.toml +3 -0
  298. package/.codex/agents/content-governor.toml +3 -0
  299. package/.codex/agents/content-orqx.toml +3 -0
  300. package/.codex/agents/content-writer.toml +3 -0
  301. package/.codex/agents/conversion-writer.toml +3 -0
  302. package/.codex/agents/copy-editor.toml +3 -0
  303. package/.codex/agents/copy-orqx.toml +3 -0
  304. package/.codex/agents/copy-strategist.toml +3 -0
  305. package/.codex/agents/cost-optimizer.toml +3 -0
  306. package/.codex/agents/council-orqx.toml +3 -0
  307. package/.codex/agents/courses-orqx.toml +3 -0
  308. package/.codex/agents/creative-strategist.toml +3 -0
  309. package/.codex/agents/cro-persuasion.toml +3 -0
  310. package/.codex/agents/cro-specialist.toml +3 -0
  311. package/.codex/agents/cs-business-auditor.toml +3 -0
  312. package/.codex/agents/cs-client-success.toml +3 -0
  313. package/.codex/agents/cs-crm-specialist.toml +3 -0
  314. package/.codex/agents/cs-funnel-architect.toml +3 -0
  315. package/.codex/agents/cs-lead-generation-strategist.toml +3 -0
  316. package/.codex/agents/cs-offer-designer.toml +3 -0
  317. package/.codex/agents/cs-revops-analyst.toml +3 -0
  318. package/.codex/agents/cs-sales-closer.toml +3 -0
  319. package/.codex/agents/cs-sales-enablement.toml +3 -0
  320. package/.codex/agents/css-motion-artist.toml +3 -0
  321. package/.codex/agents/curriculum-designer.toml +3 -0
  322. package/.codex/agents/cyber-orqx.toml +3 -0
  323. package/.codex/agents/dan-harmon.toml +3 -0
  324. package/.codex/agents/data-engineer.toml +3 -0
  325. package/.codex/agents/data-synthesizer.toml +3 -0
  326. package/.codex/agents/deep-researcher.toml +3 -0
  327. package/.codex/agents/derek-sivers.toml +3 -0
  328. package/.codex/agents/design-orqx.toml +3 -0
  329. package/.codex/agents/design-system.toml +3 -0
  330. package/.codex/agents/developer.toml +3 -0
  331. package/.codex/agents/devops.toml +3 -0
  332. package/.codex/agents/direct-response-writer.toml +3 -0
  333. package/.codex/agents/dx-accessibility-specialist.toml +3 -0
  334. package/.codex/agents/dx-design-system-architect.toml +3 -0
  335. package/.codex/agents/dx-frontend-engineer.toml +3 -0
  336. package/.codex/agents/dx-interaction-designer.toml +3 -0
  337. package/.codex/agents/dx-performance-engineer.toml +3 -0
  338. package/.codex/agents/dx-ui-designer.toml +3 -0
  339. package/.codex/agents/dx-ux-strategist.toml +3 -0
  340. package/.codex/agents/editorial-strategist.toml +3 -0
  341. package/.codex/agents/email-sequence-strategist.toml +3 -0
  342. package/.codex/agents/finance-orqx.toml +3 -0
  343. package/.codex/agents/fiscal-compliance-br.toml +3 -0
  344. package/.codex/agents/forecast-strategist.toml +3 -0
  345. package/.codex/agents/funnel-copywriter.toml +3 -0
  346. package/.codex/agents/ga-analytics-engineer.toml +3 -0
  347. package/.codex/agents/ga-campaign-analyst.toml +3 -0
  348. package/.codex/agents/ga-cro-specialist.toml +3 -0
  349. package/.codex/agents/ga-data-analyst.toml +3 -0
  350. package/.codex/agents/ga-growth-hacker.toml +3 -0
  351. package/.codex/agents/ga-seo-strategist.toml +3 -0
  352. package/.codex/agents/generative-particle-engineer.toml +3 -0
  353. package/.codex/agents/google-ads-specialist.toml +3 -0
  354. package/.codex/agents/growth-orqx.toml +3 -0
  355. package/.codex/agents/headline-specialist.toml +3 -0
  356. package/.codex/agents/hooks-architect.toml +3 -0
  357. package/.codex/agents/incident-responder.toml +3 -0
  358. package/.codex/agents/joseph-campbell.toml +3 -0
  359. package/.codex/agents/kb-architect.toml +3 -0
  360. package/.codex/agents/keith-johnstone.toml +3 -0
  361. package/.codex/agents/kindra-hall.toml +3 -0
  362. package/.codex/agents/launch-strategist.toml +3 -0
  363. package/.codex/agents/lesson-architect.toml +3 -0
  364. package/.codex/agents/long-form-writer.toml +3 -0
  365. package/.codex/agents/market-analyst.toml +3 -0
  366. package/.codex/agents/marshall-ganz.toml +3 -0
  367. package/.codex/agents/mcp-integrator.toml +3 -0
  368. package/.codex/agents/meta-ads-specialist.toml +3 -0
  369. package/.codex/agents/mind-synthesizer.toml +3 -0
  370. package/.codex/agents/motion-choreographer.toml +3 -0
  371. package/.codex/agents/nancy-duarte.toml +3 -0
  372. package/.codex/agents/naval-ravikant.toml +3 -0
  373. package/.codex/agents/network-security-engineer.toml +3 -0
  374. package/.codex/agents/oren-klaff.toml +3 -0
  375. package/.codex/agents/paidmedia-orqx.toml +3 -0
  376. package/.codex/agents/park-howell.toml +3 -0
  377. package/.codex/agents/patrick-lencioni.toml +3 -0
  378. package/.codex/agents/penetration-tester.toml +3 -0
  379. package/.codex/agents/performance-engineer.toml +3 -0
  380. package/.codex/agents/persuasion-psychologist.toml +3 -0
  381. package/.codex/agents/peter-thiel.toml +3 -0
  382. package/.codex/agents/platform-aesthetic-director.toml +3 -0
  383. package/.codex/agents/platform-specialist.toml +3 -0
  384. package/.codex/agents/pm-creative-performance-analyst.toml +3 -0
  385. package/.codex/agents/pm-youtube-ads-specialist.toml +3 -0
  386. package/.codex/agents/premium-packaging-strategist.toml +3 -0
  387. package/.codex/agents/pricing-strategist.toml +3 -0
  388. package/.codex/agents/product-lead.toml +3 -0
  389. package/.codex/agents/product-orqx.toml +3 -0
  390. package/.codex/agents/product-surface-director.toml +3 -0
  391. package/.codex/agents/production-director.toml +3 -0
  392. package/.codex/agents/profitability-analyst.toml +3 -0
  393. package/.codex/agents/project-integrator.toml +3 -0
  394. package/.codex/agents/project-lead.toml +3 -0
  395. package/.codex/agents/proof-architect.toml +3 -0
  396. package/.codex/agents/ps-client-product-manager.toml +3 -0
  397. package/.codex/agents/ps-delivery-manager.toml +3 -0
  398. package/.codex/agents/ps-discovery-lead.toml +3 -0
  399. package/.codex/agents/ps-product-analyst.toml +3 -0
  400. package/.codex/agents/ps-product-ops-specialist.toml +3 -0
  401. package/.codex/agents/ps-product-strategist.toml +3 -0
  402. package/.codex/agents/quality-gate.toml +3 -0
  403. package/.codex/agents/ray-dalio.toml +3 -0
  404. package/.codex/agents/reid-hoffman.toml +3 -0
  405. package/.codex/agents/research-orqx.toml +3 -0
  406. package/.codex/agents/revenue-analyst.toml +3 -0
  407. package/.codex/agents/roadmap-sentinel.toml +3 -0
  408. package/.codex/agents/scroll-narrative-engineer.toml +3 -0
  409. package/.codex/agents/shader-artist.toml +3 -0
  410. package/.codex/agents/signal-intelligence.toml +3 -0
  411. package/.codex/agents/simon-sinek.toml +3 -0
  412. package/.codex/agents/skill-craftsman.toml +3 -0
  413. package/.codex/agents/slide-designer.toml +3 -0
  414. package/.codex/agents/snps-orqx.toml +3 -0
  415. package/.codex/agents/soc-analyst.toml +3 -0
  416. package/.codex/agents/sop-extractor.toml +3 -0
  417. package/.codex/agents/source-hunter.toml +3 -0
  418. package/.codex/agents/sprint-lead.toml +3 -0
  419. package/.codex/agents/squad-assembler.toml +3 -0
  420. package/.codex/agents/squad-creator.toml +3 -0
  421. package/.codex/agents/storytelling-orqx.toml +3 -0
  422. package/.codex/agents/swarm-orqx.toml +3 -0
  423. package/.codex/agents/threat-analyst.toml +3 -0
  424. package/.codex/agents/threejs-architect.toml +3 -0
  425. package/.codex/agents/trend-forecaster.toml +3 -0
  426. package/.codex/agents/ux-design-expert.toml +3 -0
  427. package/.codex/agents/ux-designer.toml +3 -0
  428. package/.codex/agents/yvon-chouinard.toml +3 -0
  429. package/.codex/catalog.json +19 -4
  430. package/.codex/command-registry.json +94 -0
  431. package/.codex/config.toml +8 -0
  432. package/.codex/delegation-matrix.json +39 -25
  433. package/.codex/delegation-parity.json +46 -41
  434. package/.codex/hooks/claude-compat.cjs +547 -0
  435. package/.codex/hooks.json +123 -0
  436. package/.codex/scripts/resolve-codex-agent.js +30 -1
  437. package/.codex/scripts/resolve-codex-workflow.js +283 -0
  438. package/.codex/scripts/sinapse-codex.js +309 -0
  439. package/.codex/scripts/sync-codex-native.js +614 -0
  440. package/.codex/scripts/validate-codex-native.js +287 -0
  441. package/.codex/skills/react-bits-frontend/SKILL.md +66 -0
  442. package/.codex/skills/react-bits-frontend/agents/openai.yaml +4 -0
  443. package/.codex/skills/react-bits-frontend/references/corpus-map.md +29 -0
  444. package/.codex/skills/sinapse/SKILL.md +10 -0
  445. package/.codex/skills/sinapse-agent/SKILL.md +22 -0
  446. package/.codex/skills/sinapse-claude/SKILL.md +1 -1
  447. package/.codex/skills/sinapse-loop/SKILL.md +35 -0
  448. package/.codex/skills/sinapse-orqx/SKILL.md +33 -14
  449. package/.codex/skills/sinapse-spec-driven/SKILL.md +35 -0
  450. package/.codex/skills/snps/SKILL.md +10 -0
  451. package/.codex/skills/snps-orqx/SKILL.md +10 -0
  452. package/.sinapse-ai/data/entity-registry.yaml +57 -31
  453. package/.sinapse-ai/development/agents/snps-orqx.md +14 -1
  454. package/.sinapse-ai/install-manifest.yaml +16 -12
  455. package/.sinapse-ai/product/templates/statusline/agent-badges.json +37 -37
  456. package/.sinapse-ai/product/templates/statusline/track-agent-clear.cjs +22 -3
  457. package/.sinapse-ai/product/templates/statusline/track-agent.cjs +94 -7
  458. package/.sinapse-ai/product/templates/statusline/track-delegation.cjs +162 -0
  459. package/AGENTS.md +5 -4
  460. package/CHANGELOG.md +38 -2
  461. package/README.en.md +1 -1
  462. package/README.md +25 -10
  463. package/bin/commands/install.js +56 -41
  464. package/bin/commands/uninstall.js +57 -4
  465. package/bin/commands/update.js +32 -21
  466. package/bin/lib/command-generator.js +25 -3
  467. package/bin/lib/global-provider-adapters.js +136 -0
  468. package/bin/lib/setup-statusline.js +43 -12
  469. package/bin/utils/validate-publish.js +43 -10
  470. package/docs/framework/codex-parity/codex-native-runtime-v2.md +230 -0
  471. package/docs/framework/codex-parity/codex-workflow-task-parity.md +21 -7
  472. package/docs/framework/react-bits/animations.md +49 -0
  473. package/docs/framework/react-bits/audit-findings.md +103 -0
  474. package/docs/framework/react-bits/backgrounds.md +63 -0
  475. package/docs/framework/react-bits/catalog-summary.json +61 -0
  476. package/docs/framework/react-bits/components.md +58 -0
  477. package/docs/framework/react-bits/implementation-playbook.md +161 -0
  478. package/docs/framework/react-bits/index.md +130 -0
  479. package/docs/framework/react-bits/inventory.json +9333 -0
  480. package/docs/framework/react-bits/text-animations.md +41 -0
  481. package/docs/framework/software-engineering-applicability.md +31 -0
  482. package/docs/getting-started.md +6 -2
  483. package/docs/installation/README.md +2 -2
  484. package/package.json +18 -5
  485. package/packages/engineering-applicability/fixtures.json +52 -0
  486. package/packages/engineering-applicability/index.js +150 -0
  487. package/packages/installer/src/installer/sinapse-ai-installer.js +87 -2
  488. package/packages/installer/src/updater/index.js +34 -13
  489. package/packages/installer/src/wizard/feedback.js +1 -1
  490. package/packages/installer/src/wizard/ide-config-generator.js +26 -0
  491. package/packages/installer/src/wizard/index.js +101 -74
  492. package/scripts/gen-agent-badges.js +17 -1
  493. package/scripts/release-readiness.js +9 -3
  494. package/scripts/research/generate-react-bits-catalog.mjs +206 -0
  495. package/scripts/sync-provider-adapters.js +203 -0
  496. package/scripts/validate-provider-adapters.js +127 -0
  497. package/squads/squad-animations/knowledge-base/react-bits-operational-guide.md +43 -0
  498. package/squads/squad-animations/squad.yaml +10 -5
  499. package/squads/squad-animations/tasks/orchestrate-react-bits-frontend.md +60 -0
@@ -36,7 +36,11 @@ const {
36
36
  warnNonInteractive,
37
37
  } = require('../lib/detection');
38
38
  const { promptLlmChoice } = require('../lib/prompts');
39
- const { recordInstalledAgents } = require('./uninstall');
39
+ const {
40
+ recordInstalledAgents,
41
+ reconcileInstalledAgents,
42
+ removeManagedGlobalSkills,
43
+ } = require('./uninstall');
40
44
  const { verifyInstall } = require('./status');
41
45
  // generateCommandMd is re-exported below for backward-compat (update.js imports it
42
46
  // from ./install). regenerateAgentCommands is the shared Phase 2 helper.
@@ -44,6 +48,7 @@ const {
44
48
  generateCommandMd,
45
49
  regenerateAgentCommands,
46
50
  } = require('../lib/command-generator');
51
+ const { deliverGlobalProviderAdapters, getGlobalCommandStagingDir } = require('../lib/global-provider-adapters');
47
52
  // Follow-up #13 — wire the transactional backup/rollback engine into the
48
53
  // installer so an in-place UPGRADE (upsert) that fails mid-flight is restored
49
54
  // to its previous state instead of leaving ~/.sinapse half-updated.
@@ -300,19 +305,10 @@ async function cmdInstallGlobal(opts = {}) {
300
305
  // greeting on @sinapse/@snps/-orqx). Re-copy the generated command files LAST so the
301
306
  // rich, frontmatter'd stubs are always the final word. Idempotent.
302
307
  try {
303
- const reTargets = [];
304
- if (llmChoice === 'claude-code' || llmChoice === 'both') reTargets.push(path.join(HOME, '.claude', 'agents'));
305
- if (llmChoice === 'codex' || llmChoice === 'both') reTargets.push(path.join(HOME, '.codex', 'agents'));
306
- if (reTargets.length && fs.existsSync(CLAUDE_COMMANDS_DIR)) {
307
- const cmdFiles = fs.readdirSync(CLAUDE_COMMANDS_DIR).filter(f => f.endsWith('.md'));
308
- for (const dir of reTargets) {
309
- fs.mkdirSync(dir, { recursive: true });
310
- for (const f of cmdFiles) {
311
- fs.copyFileSync(path.join(CLAUDE_COMMANDS_DIR, f), path.join(dir, f));
312
- }
313
- }
314
- logger.always(` ${GREEN}OK${NC} Global agents reconciled (${cmdFiles.length} files — rich stubs authoritative)`);
315
- }
308
+ const commandsDir = getGlobalCommandStagingDir({ llmChoice, sinapseHome: SINAPSE_HOME, claudeCommandsDir: CLAUDE_COMMANDS_DIR });
309
+ const reconciled = deliverGlobalProviderAdapters({ llmChoice, home: HOME, commandsDir });
310
+ const total = reconciled.claude.length + reconciled.codex.length + reconciled.skills.length;
311
+ if (total) logger.always(` ${GREEN}OK${NC} Global provider adapters reconciled (${total} artifacts)`);
316
312
  } catch (e) {
317
313
  logger.always(` ${YELLOW}WARN${NC} Global agent reconciliation: ${e.message}`);
318
314
  }
@@ -324,9 +320,14 @@ async function cmdInstallGlobal(opts = {}) {
324
320
  // printed above: if any check failed (✗), show a warning banner instead of an
325
321
  // unconditional success banner. The exit code is intentionally left unchanged —
326
322
  // this only changes the message, not the process result.
323
+ const verificationCommandsDir = getGlobalCommandStagingDir({
324
+ llmChoice,
325
+ sinapseHome: SINAPSE_HOME,
326
+ claudeCommandsDir: CLAUDE_COMMANDS_DIR,
327
+ });
327
328
  const installVerified =
328
329
  fs.existsSync(SINAPSE_HOME) &&
329
- fs.existsSync(CLAUDE_COMMANDS_DIR) &&
330
+ fs.existsSync(verificationCommandsDir) &&
330
331
  fs.existsSync(path.join(BIN_DIR, 'sinapse')) &&
331
332
  fs.existsSync(path.join(SINAPSE_HOME, '.claude', 'rules', 'squad-awareness.md'));
332
333
 
@@ -351,8 +352,13 @@ async function cmdInstallGlobal(opts = {}) {
351
352
  logger.always(` ${startCmd}`);
352
353
  logger.always('');
353
354
  logger.always(` ${BOLD}Try an agent:${NC}`);
354
- logger.always(` ${CYAN}/SINAPSE:agents:sinapse-orqx${NC}`);
355
- logger.always(` ${CYAN}/SINAPSE:agents:brand-orqx${NC}`);
355
+ if (llmChoice === 'codex') {
356
+ logger.always(` ${CYAN}$snps${NC}`);
357
+ logger.always(` ${CYAN}$sinapse-agent brand-orqx${NC}`);
358
+ } else {
359
+ logger.always(` ${CYAN}@sinapse-orqx${NC}`);
360
+ logger.always(` ${CYAN}@brand-orqx${NC}`);
361
+ }
356
362
  logger.always('');
357
363
  }
358
364
 
@@ -396,7 +402,10 @@ function buildTransactionPaths(llmChoice) {
396
402
  CLAUDE_COMMANDS_DIR, // Phase 2 — generated /SINAPSE:agents:* command files
397
403
  ];
398
404
  if (llmChoice === 'claude-code' || llmChoice === 'both') dirs.push(path.join(HOME, '.claude', 'agents'));
399
- if (llmChoice === 'codex' || llmChoice === 'both') dirs.push(path.join(HOME, '.codex', 'agents'));
405
+ if (llmChoice === 'codex' || llmChoice === 'both') {
406
+ dirs.push(path.join(HOME, '.codex', 'agents'));
407
+ dirs.push(path.join(HOME, '.agents', 'skills'));
408
+ }
400
409
  dirs.push(BIN_DIR); // Phase 4 — launcher(s)
401
410
 
402
411
  const files = [path.join(HOME, '.claude', 'settings.json')]; // language save
@@ -520,43 +529,49 @@ function installFatalPhases({ squads, squadsDir, isUpsert, llmChoice, existing,
520
529
  logger.always(` ${GREEN}OK${NC} sinapse (master, ${masterAgents} agents)`);
521
530
  }
522
531
 
532
+ const coreDevelopmentSrc = path.join(ROOT, '.sinapse-ai', 'development');
533
+ const coreDevelopmentDest = path.join(SINAPSE_HOME, 'core');
534
+ if (fs.existsSync(coreDevelopmentSrc)) {
535
+ if (isUpsert) {
536
+ const delta = syncDirSync(coreDevelopmentSrc, coreDevelopmentDest);
537
+ totalDelta.added += delta.added;
538
+ totalDelta.updated += delta.updated;
539
+ totalDelta.unchanged += delta.unchanged;
540
+ totalDelta.removed += delta.removed;
541
+ } else {
542
+ rmDirSync(coreDevelopmentDest);
543
+ copyDirSync(coreDevelopmentSrc, coreDevelopmentDest);
544
+ }
545
+ const coreAgents = getAgentFiles(coreDevelopmentDest).length;
546
+ totalAgents += coreAgents;
547
+ logger.always(` ${GREEN}OK${NC} core development (${coreAgents} agents)`);
548
+ }
549
+
523
550
  // Phase 2: Generate agent commands (shared with `update` via command-generator).
524
551
  logger.always(`\n${CYAN}Phase 2:${NC} Generating agent commands`);
552
+ const commandStagingDir = getGlobalCommandStagingDir({ llmChoice, sinapseHome: SINAPSE_HOME, claudeCommandsDir: CLAUDE_COMMANDS_DIR });
525
553
  const { writtenAgents } = regenerateAgentCommands({
526
554
  sinapseHome: SINAPSE_HOME,
527
- commandsDir: CLAUDE_COMMANDS_DIR,
555
+ commandsDir: commandStagingDir,
528
556
  squads,
529
557
  sinapseMasterDest,
558
+ coreDevelopmentDest,
530
559
  });
531
560
  logger.always(` ${GREEN}OK${NC} ${writtenAgents.size} total command files`);
532
561
 
533
562
  // Phase 2b: Install global agents based on LLM choice
534
- const installedAgentFilenames = new Set();
563
+ const globalAdapters = deliverGlobalProviderAdapters({ llmChoice, home: HOME, commandsDir: commandStagingDir });
564
+ const installedAgentFilenames = new Set([...globalAdapters.claude, ...globalAdapters.codex]);
535
565
  const installedIdes = [];
536
- if (llmChoice === 'claude-code' || llmChoice === 'both') {
537
- const globalAgentsDir = path.join(HOME, '.claude', 'agents');
538
- fs.mkdirSync(globalAgentsDir, { recursive: true });
539
- for (const f of fs.readdirSync(CLAUDE_COMMANDS_DIR).filter(f => f.endsWith('.md'))) {
540
- fs.copyFileSync(path.join(CLAUDE_COMMANDS_DIR, f), path.join(globalAgentsDir, f));
541
- installedAgentFilenames.add(f);
542
- }
543
- installedIdes.push('claude-code');
544
- logger.always(` ${GREEN}OK${NC} Claude Code global agents (${writtenAgents.size})`);
545
- }
546
-
547
- if (llmChoice === 'codex' || llmChoice === 'both') {
548
- const codexAgentsDir = path.join(HOME, '.codex', 'agents');
549
- fs.mkdirSync(codexAgentsDir, { recursive: true });
550
- for (const f of fs.readdirSync(CLAUDE_COMMANDS_DIR).filter(f => f.endsWith('.md'))) {
551
- fs.copyFileSync(path.join(CLAUDE_COMMANDS_DIR, f), path.join(codexAgentsDir, f));
552
- installedAgentFilenames.add(f);
553
- }
554
- installedIdes.push('codex');
555
- logger.always(` ${GREEN}OK${NC} Codex global agents (${writtenAgents.size})`);
556
- }
566
+ if (globalAdapters.claude.length) installedIdes.push('claude-code');
567
+ if (globalAdapters.codex.length) installedIdes.push('codex');
568
+ if (globalAdapters.claude.length) logger.always(` ${GREEN}OK${NC} Claude Code global agents (${globalAdapters.claude.length})`);
569
+ if (globalAdapters.codex.length) logger.always(` ${GREEN}OK${NC} Codex global agents (${globalAdapters.codex.length} TOML, ${globalAdapters.skills.length} skills)`);
557
570
 
558
571
  // Audit 1 P0 (UN-1) — record manifest so uninstall can remove every file
559
572
  // we wrote (not just `*-orqx.md`). Idempotent: re-install overwrites.
573
+ reconcileInstalledAgents(HOME, installedAgentFilenames);
574
+ if (llmChoice === 'claude-code') removeManagedGlobalSkills(HOME);
560
575
  recordInstalledAgents(installedAgentFilenames, installedIdes);
561
576
 
562
577
  // Phase 3: Generate squad-awareness.md
@@ -82,12 +82,12 @@ function readInstalledAgentsManifest() {
82
82
  }
83
83
  }
84
84
 
85
- function removeInstalledAgentsFrom(dir) {
85
+ function removeInstalledAgentsFrom(dir, manifestOverride = null) {
86
86
  if (!fs.existsSync(dir)) return { removed: 0, existed: false };
87
87
  let removed = 0;
88
88
  let candidates;
89
89
 
90
- const manifest = readInstalledAgentsManifest();
90
+ const manifest = manifestOverride || readInstalledAgentsManifest();
91
91
  if (manifest && Array.isArray(manifest.filenames)) {
92
92
  // Manifest path — surgical removal of exactly what install wrote.
93
93
  candidates = manifest.filenames;
@@ -97,6 +97,9 @@ function removeInstalledAgentsFrom(dir) {
97
97
  // `-orqx.md`, OR start with `name: sinapse-` in their frontmatter.
98
98
  try {
99
99
  candidates = fs.readdirSync(dir).filter((f) => {
100
+ if (f.endsWith('.toml')) {
101
+ try { return /SINAPSE/i.test(fs.readFileSync(path.join(dir, f), 'utf8').slice(0, 4000)); } catch { return false; }
102
+ }
100
103
  if (!f.endsWith('.md')) return false;
101
104
  if (/-orqx\.md$/.test(f)) return true;
102
105
  try {
@@ -125,6 +128,46 @@ function removeOrqxAgentsFrom(dir) {
125
128
  return removeInstalledAgentsFrom(dir);
126
129
  }
127
130
 
131
+ const MANAGED_GLOBAL_SKILL_IDS = ['snps', 'sinapse', 'snps-orqx', 'sinapse-agent'];
132
+ const MANAGED_GLOBAL_SKILL_MARKER = 'SINAPSE-MANAGED:global-skill';
133
+
134
+ function removeManagedGlobalSkills(home = HOME) {
135
+ let removed = 0;
136
+ for (const skillId of MANAGED_GLOBAL_SKILL_IDS) {
137
+ const skillDir = path.join(home, '.agents', 'skills', skillId);
138
+ const skillPath = path.join(skillDir, 'SKILL.md');
139
+ if (!fs.existsSync(skillPath)) continue;
140
+ try {
141
+ const content = fs.readFileSync(skillPath, 'utf8');
142
+ if (!content.includes(MANAGED_GLOBAL_SKILL_MARKER)) continue;
143
+ fs.unlinkSync(skillPath);
144
+ if (fs.readdirSync(skillDir).length === 0) fs.rmdirSync(skillDir);
145
+ removed++;
146
+ } catch { /* best-effort */ }
147
+ }
148
+ return { removed };
149
+ }
150
+
151
+ function reconcileInstalledAgents(home, desiredFilenames) {
152
+ const manifest = readInstalledAgentsManifest();
153
+ if (!manifest) return { removed: 0 };
154
+ const desired = new Set(desiredFilenames);
155
+ let removed = 0;
156
+ for (const filename of manifest.filenames) {
157
+ if (desired.has(filename)) continue;
158
+ const providerDir = filename.endsWith('.toml')
159
+ ? path.join(home, '.codex', 'agents')
160
+ : path.join(home, '.claude', 'agents');
161
+ const filepath = path.join(providerDir, filename);
162
+ if (!fs.existsSync(filepath)) continue;
163
+ try {
164
+ fs.unlinkSync(filepath);
165
+ removed++;
166
+ } catch { /* best-effort */ }
167
+ }
168
+ return { removed };
169
+ }
170
+
128
171
  // Story 10.40 — Strip SINAPSE-owned keys from ~/.claude/settings.json without
129
172
  // touching anything else the user put there. Safe if the file is missing or
130
173
  // already clean.
@@ -176,6 +219,7 @@ async function cmdUninstall(opts = {}) {
176
219
  }
177
220
 
178
221
  logger.always(`${BOLD}Uninstalling Sinapse...${NC}\n`);
222
+ const installedAgentsManifest = readInstalledAgentsManifest();
179
223
 
180
224
  // Paths that are fully SINAPSE-owned (directory or launcher file)
181
225
  const ownedItems = [
@@ -210,7 +254,7 @@ async function cmdUninstall(opts = {}) {
210
254
  const claudeAgentsDir = path.join(HOME, '.claude', 'agents');
211
255
  const codexAgentsDir = path.join(HOME, '.codex', 'agents');
212
256
 
213
- const claudeRemoved = removeInstalledAgentsFrom(claudeAgentsDir);
257
+ const claudeRemoved = removeInstalledAgentsFrom(claudeAgentsDir, installedAgentsManifest);
214
258
  if (!claudeRemoved.existed) {
215
259
  logger.always(` ${YELLOW}-${NC} ~/.claude/agents/ SINAPSE files (dir not found)`);
216
260
  } else if (claudeRemoved.removed === 0) {
@@ -219,7 +263,7 @@ async function cmdUninstall(opts = {}) {
219
263
  logger.always(` ${GREEN}✓${NC} Removed ~/.claude/agents/ SINAPSE files (${claudeRemoved.removed} files)`);
220
264
  }
221
265
 
222
- const codexRemoved = removeInstalledAgentsFrom(codexAgentsDir);
266
+ const codexRemoved = removeInstalledAgentsFrom(codexAgentsDir, installedAgentsManifest);
223
267
  if (!codexRemoved.existed) {
224
268
  logger.always(` ${YELLOW}-${NC} ~/.codex/agents/ SINAPSE files (dir not found)`);
225
269
  } else if (codexRemoved.removed === 0) {
@@ -229,6 +273,13 @@ async function cmdUninstall(opts = {}) {
229
273
  }
230
274
 
231
275
  // Story 10.40 — clean SINAPSE-owned keys from ~/.claude/settings.json
276
+ const skillsRemoved = removeManagedGlobalSkills(HOME);
277
+ if (skillsRemoved.removed > 0) {
278
+ logger.always(` ${GREEN}OK${NC} Removed global SINAPSE skills (${skillsRemoved.removed})`);
279
+ } else {
280
+ logger.always(` ${YELLOW}-${NC} Global SINAPSE skills (none present)`);
281
+ }
282
+
232
283
  const settingsPath = path.join(HOME, '.claude', 'settings.json');
233
284
  const settingsClean = cleanClaudeSettingsJson(settingsPath);
234
285
  if (settingsClean.touched) {
@@ -259,6 +310,8 @@ module.exports = {
259
310
  readInstalledAgentsManifest,
260
311
  removeInstalledAgentsFrom,
261
312
  removeOrqxAgentsFrom,
313
+ removeManagedGlobalSkills,
314
+ reconcileInstalledAgents,
262
315
  cleanClaudeSettingsJson,
263
316
  removeGitHooksConfig,
264
317
  INSTALLED_AGENTS_MANIFEST,
@@ -29,7 +29,13 @@ const {
29
29
  } = require('../lib/detection');
30
30
  const { promptLlmChoice } = require('../lib/prompts');
31
31
  const { generateSquadAwareness } = require('./install');
32
+ const {
33
+ recordInstalledAgents,
34
+ reconcileInstalledAgents,
35
+ removeManagedGlobalSkills,
36
+ } = require('./uninstall');
32
37
  const { regenerateAgentCommands } = require('../lib/command-generator');
38
+ const { deliverGlobalProviderAdapters, getGlobalCommandStagingDir } = require('../lib/global-provider-adapters');
33
39
  const { execSync } = require('child_process');
34
40
 
35
41
  // Query the latest version published to npm. Returns null when npm is unreachable.
@@ -146,39 +152,44 @@ async function cmdUpdateGlobal() {
146
152
  logger.always(` ${GREEN}OK${NC} sinapse (orqx)`);
147
153
  }
148
154
 
155
+ const coreDevelopmentSrc = path.join(ROOT, '.sinapse-ai', 'development');
156
+ const coreDevelopmentDest = path.join(SINAPSE_HOME, 'core');
157
+ if (fs.existsSync(coreDevelopmentSrc)) {
158
+ const delta = syncDirSync(coreDevelopmentSrc, coreDevelopmentDest);
159
+ totalDelta.added += delta.added;
160
+ totalDelta.updated += delta.updated;
161
+ totalDelta.unchanged += delta.unchanged;
162
+ totalDelta.removed += delta.removed;
163
+ logger.always(` ${GREEN}OK${NC} core development`);
164
+ }
165
+
149
166
  // Phase 2: Regenerate commands — shared with `install` so `update` produces the
150
167
  // SAME complete set (every specialist command + the rich master Imperator stubs),
151
168
  // not just the `-orqx` subset it used to write.
152
169
  logger.always(`\n${CYAN}Phase 2:${NC} Regenerating commands`);
153
- rmDirSync(CLAUDE_COMMANDS_DIR);
170
+ const commandStagingDir = getGlobalCommandStagingDir({ llmChoice, sinapseHome: SINAPSE_HOME, claudeCommandsDir: CLAUDE_COMMANDS_DIR });
171
+ rmDirSync(commandStagingDir);
154
172
  const { writtenAgents, totalAgents } = regenerateAgentCommands({
155
173
  sinapseHome: SINAPSE_HOME,
156
- commandsDir: CLAUDE_COMMANDS_DIR,
174
+ commandsDir: commandStagingDir,
157
175
  squads,
158
176
  sinapseMasterDest: path.join(SINAPSE_HOME, 'sinapse'),
177
+ coreDevelopmentDest,
159
178
  });
160
179
  logger.always(` ${GREEN}OK${NC} ${writtenAgents.size} command files (${totalAgents} agents total)`);
161
180
 
162
181
  // Phase 2b: Install global agents based on LLM choice
163
- if (llmChoice === 'claude-code' || llmChoice === 'both') {
164
- const globalAgentsDir = path.join(HOME, '.claude', 'agents');
165
- fs.mkdirSync(globalAgentsDir, { recursive: true });
166
- // Copy all generated agent commands as global agents
167
- for (const f of fs.readdirSync(CLAUDE_COMMANDS_DIR).filter(f => f.endsWith('.md'))) {
168
- fs.copyFileSync(path.join(CLAUDE_COMMANDS_DIR, f), path.join(globalAgentsDir, f));
169
- }
170
- logger.always(` ${GREEN}OK${NC} Claude Code global agents (${writtenAgents.size})`);
171
- }
172
-
173
- if (llmChoice === 'codex' || llmChoice === 'both') {
174
- const codexAgentsDir = path.join(HOME, '.codex', 'agents');
175
- fs.mkdirSync(codexAgentsDir, { recursive: true });
176
- // Copy all generated agent commands for Codex
177
- for (const f of fs.readdirSync(CLAUDE_COMMANDS_DIR).filter(f => f.endsWith('.md'))) {
178
- fs.copyFileSync(path.join(CLAUDE_COMMANDS_DIR, f), path.join(codexAgentsDir, f));
179
- }
180
- logger.always(` ${GREEN}OK${NC} Codex global agents (${writtenAgents.size})`);
181
- }
182
+ const globalAdapters = deliverGlobalProviderAdapters({ llmChoice, home: HOME, commandsDir: commandStagingDir });
183
+ if (globalAdapters.claude.length) logger.always(` ${GREEN}OK${NC} Claude Code global agents (${globalAdapters.claude.length})`);
184
+ if (globalAdapters.codex.length) logger.always(` ${GREEN}OK${NC} Codex global agents (${globalAdapters.codex.length} TOML, ${globalAdapters.skills.length} skills)`);
185
+
186
+ const installedAgentFilenames = new Set([...globalAdapters.claude, ...globalAdapters.codex]);
187
+ reconcileInstalledAgents(HOME, installedAgentFilenames);
188
+ if (llmChoice === 'claude-code') removeManagedGlobalSkills(HOME);
189
+ const installedIdes = [];
190
+ if (globalAdapters.claude.length) installedIdes.push('claude-code');
191
+ if (globalAdapters.codex.length) installedIdes.push('codex');
192
+ recordInstalledAgents(installedAgentFilenames, installedIdes);
182
193
 
183
194
  // Phase 3: Regenerate awareness
184
195
  logger.always(`\n${CYAN}Phase 3:${NC} Updating squad-awareness`);
@@ -116,7 +116,7 @@ Tasks: \`${squadPath}/tasks/\` · Workflows: \`${squadPath}/workflows/\` · Mani
116
116
  `;
117
117
  }
118
118
 
119
- function generateCommandMd(agentId, agentName, agentIcon, squadName, squadPath, agentFile) {
119
+ function generateCommandMd(agentId, agentName, agentIcon, squadName, squadPath, agentFile, options = {}) {
120
120
  // Detecta se é orquestrador: id termina em -orqx OU é Imperator (snps-orqx/sinapse-orqx)
121
121
  // ou um dos apelidos curtos do master (sinapse/snps).
122
122
  const isOrchestrator = /-orqx$/.test(agentId) || agentId === 'snps-orqx' || agentId === 'sinapse-orqx' || agentId === 'sinapse' || agentId === 'snps';
@@ -139,6 +139,12 @@ function generateCommandMd(agentId, agentName, agentIcon, squadName, squadPath,
139
139
  const fmDesc = (isOrchestrator
140
140
  ? `${agentName || agentId} — orchestrator for ${squadName}; diagnoses, routes to specialists and auto-generates an orchestration plan`
141
141
  : `${agentName || agentId} — ${squadName} specialist`).replace(/["\n\r]/g, ' ').trim();
142
+ const manifestActivation = options.hasManifest === false
143
+ ? '2. Use the installed core development module as canonical context'
144
+ : `2. Load the squad manifest at \`${squadPath}/squad.yaml\` for context`;
145
+ const manifestReference = options.hasManifest === false
146
+ ? `- **Canonical module:** \`${squadPath}/\``
147
+ : `- **Squad Manifest:** \`${squadPath}/squad.yaml\``;
142
148
 
143
149
  return `---
144
150
  name: ${agentId}
@@ -151,7 +157,7 @@ ACTIVATION-NOTICE: This command activates an agent from ${squadName}.
151
157
 
152
158
  CRITICAL: Read the agent definition file at \`${squadPath}/agents/${agentFile}\` to understand your full operating parameters. Then:
153
159
  1. Adopt the persona defined in that file (name: ${agentName}, icon: ${agentIcon})
154
- 2. Load the squad manifest at \`${squadPath}/squad.yaml\` for context
160
+ ${manifestActivation}
155
161
  3. Display a greeting showing your agent name, role, and available commands
156
162
  ${step4}
157
163
 
@@ -159,7 +165,7 @@ ${step4}
159
165
  - **Agent ID:** ${agentId}
160
166
  - **Squad:** ${squadName}
161
167
  - **Definition:** \`${squadPath}/agents/${agentFile}\`
162
- - **Squad Manifest:** \`${squadPath}/squad.yaml\`
168
+ ${manifestReference}
163
169
  - **Tasks:** \`${squadPath}/tasks/\`
164
170
  - **Knowledge Bases:** \`${squadPath}/knowledge-base/\`
165
171
  - **Workflows:** \`${squadPath}/workflows/\`
@@ -209,6 +215,7 @@ function regenerateAgentCommands(deps = {}) {
209
215
  commandsDir = CLAUDE_COMMANDS_DIR,
210
216
  squads,
211
217
  sinapseMasterDest = path.join(sinapseHome, 'sinapse'),
218
+ coreDevelopmentDest = path.join(sinapseHome, 'core'),
212
219
  } = deps;
213
220
 
214
221
  if (!Array.isArray(squads)) {
@@ -244,6 +251,21 @@ function regenerateAgentCommands(deps = {}) {
244
251
  }
245
252
  }
246
253
 
254
+ // Core agents are mirrored by the global installer so definitions and tasks
255
+ // remain resolvable after the npm process exits.
256
+ const coreAgentsDir = path.join(coreDevelopmentDest, 'agents');
257
+ if (fs.existsSync(coreAgentsDir)) {
258
+ const coreBase = toForwardSlash(coreDevelopmentDest);
259
+ for (const file of fs.readdirSync(coreAgentsDir).filter(f => f.endsWith('.md'))) {
260
+ if (file === 'README.md' || file === 'MEMORY.md' || file.startsWith('_') || writtenAgents.has(file)) continue;
261
+ const agentId = file.replace('.md', '');
262
+ const meta = extractAgentMeta(path.join(coreAgentsDir, file));
263
+ const cmdContent = generateCommandMd(agentId, meta.name, meta.icon, 'core', coreBase, file, { hasManifest: false });
264
+ atomicWriteFileSync(path.join(commandsDir, `${agentId}.md`), cmdContent);
265
+ writtenAgents.add(file);
266
+ }
267
+ }
268
+
247
269
  // 2. Commands for sinapse/ master squad agents.
248
270
  if (fs.existsSync(sinapseMasterDest)) {
249
271
  const masterAgentsDir = path.join(sinapseMasterDest, 'agents');
@@ -0,0 +1,136 @@
1
+ 'use strict';
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+
6
+ function parseAgentMarkdown(content, fallbackName) {
7
+ const name = content.match(/^name:\s*([^\r\n]+)$/m)?.[1]?.trim() || fallbackName;
8
+ const raw = content.match(/^description:\s*(.+)$/m)?.[1]?.trim() || `SINAPSE ${name} agent`;
9
+ return { name, description: raw.replace(/^['"]|['"]$/g, '') };
10
+ }
11
+
12
+ function renderCodexToml(name, description, instructions) {
13
+ return [
14
+ `name = ${JSON.stringify(name)}`,
15
+ `description = ${JSON.stringify(description)}`,
16
+ `developer_instructions = ${JSON.stringify(instructions)}`,
17
+ '',
18
+ ].join('\n');
19
+ }
20
+
21
+ function renderGlobalSkill(skillId) {
22
+ const generic = skillId === 'sinapse-agent';
23
+ return [
24
+ '---',
25
+ `name: ${skillId}`,
26
+ `description: ${generic ? 'Resolve and activate any globally installed SINAPSE agent by ID.' : 'Activate the globally installed SINAPSE supreme orchestrator.'}`,
27
+ '---', '',
28
+ '<!-- SINAPSE-MANAGED:global-skill -->', '',
29
+ generic ? '# SINAPSE Global Agent Activator' : '# SINAPSE Global Orchestrator', '',
30
+ generic
31
+ ? 'Use the requested ID from `~/.codex/agents/<id>.toml`; reject unknown IDs without guessing.'
32
+ : 'Resolve this alias to the `sinapse-orqx` custom agent and preserve its delegation-only authority.',
33
+ 'Canonical global persona and task sources live under `~/.sinapse/`.',
34
+ 'Use native Codex delegation and never start a nested CLI.', '',
35
+ ].join('\n');
36
+ }
37
+
38
+ function writeFileAtomically(filePath, content) {
39
+ const temporaryPath = `${filePath}.${process.pid}.${Date.now()}.tmp`;
40
+ let handle;
41
+ try {
42
+ handle = fs.openSync(temporaryPath, 'wx', 0o600);
43
+ fs.writeFileSync(handle, content, 'utf8');
44
+ fs.fsyncSync(handle);
45
+ fs.closeSync(handle);
46
+ handle = undefined;
47
+ fs.renameSync(temporaryPath, filePath);
48
+ } finally {
49
+ if (handle !== undefined) fs.closeSync(handle);
50
+ try { fs.unlinkSync(temporaryPath); } catch { /* already published or cleanup is best-effort */ }
51
+ }
52
+ }
53
+
54
+ function writeGlobalSkillIfManaged(skillPath, content) {
55
+ fs.mkdirSync(path.dirname(skillPath), { recursive: true });
56
+
57
+ let handle;
58
+ try {
59
+ const noFollow = fs.constants.O_NOFOLLOW || 0;
60
+ handle = fs.openSync(skillPath, fs.constants.O_RDONLY | noFollow);
61
+ } catch (error) {
62
+ if (error.code === 'ELOOP') return false;
63
+ if (error.code !== 'ENOENT') throw error;
64
+ try {
65
+ handle = fs.openSync(skillPath, 'wx');
66
+ } catch (createError) {
67
+ if (createError.code === 'EEXIST') return writeGlobalSkillIfManaged(skillPath, content);
68
+ throw createError;
69
+ }
70
+ try {
71
+ fs.writeFileSync(handle, content, 'utf8');
72
+ return true;
73
+ } finally {
74
+ fs.closeSync(handle);
75
+ }
76
+ }
77
+
78
+ try {
79
+ if (!fs.fstatSync(handle).isFile()) return false;
80
+ const existing = fs.readFileSync(handle, 'utf8');
81
+ if (!existing.includes('SINAPSE-MANAGED:global-skill')) return false;
82
+ fs.closeSync(handle);
83
+ handle = undefined;
84
+ writeFileAtomically(skillPath, content);
85
+ return true;
86
+ } finally {
87
+ if (handle !== undefined) fs.closeSync(handle);
88
+ }
89
+ }
90
+
91
+ function deliverGlobalProviderAdapters({ llmChoice, home, commandsDir }) {
92
+ const commandFiles = fs.existsSync(commandsDir)
93
+ ? fs.readdirSync(commandsDir).filter((file) => file.endsWith('.md')).sort()
94
+ : [];
95
+ const written = { claude: [], codex: [], skills: [] };
96
+
97
+ if (llmChoice === 'claude-code' || llmChoice === 'both') {
98
+ const targetDir = path.join(home, '.claude', 'agents');
99
+ fs.mkdirSync(targetDir, { recursive: true });
100
+ for (const file of commandFiles) {
101
+ fs.copyFileSync(path.join(commandsDir, file), path.join(targetDir, file));
102
+ written.claude.push(file);
103
+ }
104
+ }
105
+ if (llmChoice === 'codex' || llmChoice === 'both') {
106
+ const targetDir = path.join(home, '.codex', 'agents');
107
+ fs.mkdirSync(targetDir, { recursive: true });
108
+ for (const file of commandFiles) {
109
+ const markdown = fs.readFileSync(path.join(commandsDir, file), 'utf8');
110
+ const id = file.replace(/\.md$/, '');
111
+ const metadata = parseAgentMarkdown(markdown, id);
112
+ const tomlName = `${id}.toml`;
113
+ fs.writeFileSync(path.join(targetDir, tomlName), renderCodexToml(metadata.name, metadata.description, markdown), 'utf8');
114
+ const staleMarkdown = path.join(targetDir, file);
115
+ if (fs.existsSync(staleMarkdown)) fs.unlinkSync(staleMarkdown);
116
+ written.codex.push(tomlName);
117
+ }
118
+ const skillsRoot = path.join(home, '.agents', 'skills');
119
+ for (const skillId of ['snps', 'sinapse', 'snps-orqx', 'sinapse-agent']) {
120
+ const skillDir = path.join(skillsRoot, skillId);
121
+ const skillPath = path.join(skillDir, 'SKILL.md');
122
+ if (writeGlobalSkillIfManaged(skillPath, renderGlobalSkill(skillId))) {
123
+ written.skills.push(skillId);
124
+ }
125
+ }
126
+ }
127
+ return written;
128
+ }
129
+
130
+ function getGlobalCommandStagingDir({ llmChoice, sinapseHome, claudeCommandsDir }) {
131
+ return llmChoice === 'codex'
132
+ ? path.join(sinapseHome, '.generated', 'agents')
133
+ : claudeCommandsDir;
134
+ }
135
+
136
+ module.exports = { parseAgentMarkdown, renderCodexToml, renderGlobalSkill, writeGlobalSkillIfManaged, deliverGlobalProviderAdapters, getGlobalCommandStagingDir };