specrails-desktop 2.8.0 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (326) hide show
  1. package/README.md +23 -19
  2. package/client/dist/assets/{ActivityFeedPage-LKqd18-G.js → ActivityFeedPage-DNqnf1fZ.js} +1 -1
  3. package/client/dist/assets/{AgentsPage-Cb-b-6Ot.js → AgentsPage-vmNIEbGM.js} +1 -1
  4. package/client/dist/assets/{AnalyticsPage-HVxQQ1wy.js → AnalyticsPage-CdfN0ofZ.js} +1 -1
  5. package/client/dist/assets/{BarChart-BOyHB0dw.js → BarChart-CIkopHjl.js} +1 -1
  6. package/client/dist/assets/{CodePage-DnOnwKGB.js → CodePage-DDRNU5FN.js} +1 -1
  7. package/client/dist/assets/{DesktopAnalyticsPage-D2auU39x.js → DesktopAnalyticsPage-Cl3sKKSG.js} +1 -1
  8. package/client/dist/assets/{DocsDialog-CTuDX3GK.js → DocsDialog-BGrBOfUr.js} +2 -2
  9. package/client/dist/assets/{DocsPage-DRyMmu0Z.js → DocsPage-CY-2SSzw.js} +2 -2
  10. package/client/dist/assets/{ExportDropdown-DO-GGiMh.js → ExportDropdown-BRHcvP0r.js} +1 -1
  11. package/client/dist/assets/{IntegrationsPage-BhbO4jFT.js → IntegrationsPage-nKdLB4Ub.js} +1 -1
  12. package/client/dist/assets/{JobDetailPage-DJooEg1s.js → JobDetailPage-Bf0A6WWQ.js} +1 -1
  13. package/client/dist/assets/{JobsPage-BbaC-YOg.js → JobsPage-Vg4nXPdL.js} +1 -1
  14. package/client/dist/assets/{dist-js-CiIVMsx3.js → dist-js-0i_klubI.js} +1 -1
  15. package/client/dist/assets/{dist-js-Xc2lRKp2.js → dist-js-CUs5GjwA.js} +1 -1
  16. package/client/dist/assets/{index-DK214dak.js → index-BXoHFtfG.js} +8 -8
  17. package/client/dist/assets/index-D6BaYRRU.css +2 -0
  18. package/client/dist/assets/{integrations-2C7MkGT0.js → integrations-7YyTBuU9.js} +1 -1
  19. package/client/dist/assets/{integrations-CX4p_bij.js → integrations-B9CEpNF0.js} +1 -1
  20. package/client/dist/assets/{integrations-C2jQtv-s.js → integrations-BlvAdewo.js} +1 -1
  21. package/client/dist/assets/{integrations-eQPHAYsE.js → integrations-Bw8UM9Xd.js} +1 -1
  22. package/client/dist/assets/{integrations-BDC670cg.js → integrations-C5SxNKnG.js} +1 -1
  23. package/client/dist/assets/{integrations-BqUmRUef.js → integrations-CJQKMmdW.js} +1 -1
  24. package/client/dist/assets/{integrations-CB98NeH5.js → integrations-DWz1eU_K.js} +1 -1
  25. package/client/dist/assets/{integrations-_SuVeQIG.js → integrations-DiPR8Fzp.js} +1 -1
  26. package/client/dist/assets/{lib-Bo5s6xpe.js → lib-D6M_MvoC.js} +1 -1
  27. package/client/dist/assets/setup-B6egeeTM.js +1 -0
  28. package/client/dist/assets/setup-BHroXlke.js +1 -0
  29. package/client/dist/assets/setup-BIXsWUp1.js +1 -0
  30. package/client/dist/assets/setup-BJRdg1iE.js +1 -0
  31. package/client/dist/assets/setup-C0rVGnCy.js +1 -0
  32. package/client/dist/assets/setup-Cpu17hJv.js +1 -0
  33. package/client/dist/assets/setup-D-1r0uSx.js +1 -0
  34. package/client/dist/assets/setup-Dn2-veYO.js +1 -0
  35. package/client/dist/assets/{useProjectCache-DVNypkmR.js → useProjectCache-BeyBSNpD.js} +1 -1
  36. package/client/dist/index.html +4 -4
  37. package/docs/README.md +5 -2
  38. package/docs/agy-cli-provider-study.md +78 -0
  39. package/docs/cli.md +23 -4
  40. package/docs/codex.md +116 -58
  41. package/docs/creating-specs.md +19 -5
  42. package/docs/customizing.md +27 -6
  43. package/docs/gemini.md +225 -73
  44. package/docs/getting-started.md +18 -9
  45. package/docs/guide/de/agents/1-meet-the-agents.md +38 -0
  46. package/docs/guide/de/agents/2-profiles-and-the-balanced-default.md +45 -0
  47. package/docs/guide/de/agents/3-customizing-models-per-agent.md +60 -0
  48. package/docs/guide/de/agents/4-custom-agents-catalog.md +43 -0
  49. package/docs/guide/de/getting-started/1-what-is-specrails.md +49 -0
  50. package/docs/guide/de/getting-started/2-installing-and-first-run.md +42 -0
  51. package/docs/guide/de/getting-started/3-adding-your-first-project.md +58 -0
  52. package/docs/guide/de/getting-started/4-the-dashboard-tour.md +53 -0
  53. package/docs/guide/de/insights/1-analytics-and-cost-tracking.md +78 -0
  54. package/docs/guide/de/insights/2-the-integrated-terminal.md +46 -0
  55. package/docs/guide/de/insights/3-code-explorer.md +50 -0
  56. package/docs/guide/de/integrations/1-ai-providers.md +64 -0
  57. package/docs/guide/de/integrations/2-plugins.md +44 -0
  58. package/docs/guide/de/integrations/3-jira-integration.md +71 -0
  59. package/docs/guide/de/integrations/4-mobile-companion.md +38 -0
  60. package/docs/guide/de/pipeline/1-rails-and-jobs.md +94 -0
  61. package/docs/guide/de/pipeline/2-the-job-detail-view.md +90 -0
  62. package/docs/guide/de/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  63. package/docs/guide/de/pipeline/4-picking-an-engine-per-rail.md +60 -0
  64. package/docs/guide/de/settings/1-themes.md +37 -0
  65. package/docs/guide/de/settings/2-language.md +39 -0
  66. package/docs/guide/de/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  67. package/docs/guide/de/settings/4-where-your-data-lives.md +48 -0
  68. package/docs/guide/de/specs/1-specs-and-the-backlog.md +52 -0
  69. package/docs/guide/de/specs/2-add-spec-quick-mode.md +45 -0
  70. package/docs/guide/de/specs/3-add-spec-explore-mode.md +68 -0
  71. package/docs/guide/de/specs/4-drafts-and-contract-layer.md +81 -0
  72. package/docs/guide/en/agents/1-meet-the-agents.md +38 -0
  73. package/docs/guide/en/agents/2-profiles-and-the-balanced-default.md +45 -0
  74. package/docs/guide/en/agents/3-customizing-models-per-agent.md +60 -0
  75. package/docs/guide/en/agents/4-custom-agents-catalog.md +43 -0
  76. package/docs/guide/en/getting-started/1-what-is-specrails.md +49 -0
  77. package/docs/guide/en/getting-started/2-installing-and-first-run.md +42 -0
  78. package/docs/guide/en/getting-started/3-adding-your-first-project.md +58 -0
  79. package/docs/guide/en/getting-started/4-the-dashboard-tour.md +53 -0
  80. package/docs/guide/en/insights/1-analytics-and-cost-tracking.md +78 -0
  81. package/docs/guide/en/insights/2-the-integrated-terminal.md +46 -0
  82. package/docs/guide/en/insights/3-code-explorer.md +50 -0
  83. package/docs/guide/en/integrations/1-ai-providers.md +64 -0
  84. package/docs/guide/en/integrations/2-plugins.md +44 -0
  85. package/docs/guide/en/integrations/3-jira-integration.md +71 -0
  86. package/docs/guide/en/integrations/4-mobile-companion.md +38 -0
  87. package/docs/guide/en/pipeline/1-rails-and-jobs.md +94 -0
  88. package/docs/guide/en/pipeline/2-the-job-detail-view.md +90 -0
  89. package/docs/guide/en/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  90. package/docs/guide/en/pipeline/4-picking-an-engine-per-rail.md +60 -0
  91. package/docs/guide/en/settings/1-themes.md +37 -0
  92. package/docs/guide/en/settings/2-language.md +39 -0
  93. package/docs/guide/en/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  94. package/docs/guide/en/settings/4-where-your-data-lives.md +48 -0
  95. package/docs/guide/en/specs/1-specs-and-the-backlog.md +52 -0
  96. package/docs/guide/en/specs/2-add-spec-quick-mode.md +45 -0
  97. package/docs/guide/en/specs/3-add-spec-explore-mode.md +68 -0
  98. package/docs/guide/en/specs/4-drafts-and-contract-layer.md +81 -0
  99. package/docs/guide/es/agents/1-meet-the-agents.md +38 -0
  100. package/docs/guide/es/agents/2-profiles-and-the-balanced-default.md +45 -0
  101. package/docs/guide/es/agents/3-customizing-models-per-agent.md +60 -0
  102. package/docs/guide/es/agents/4-custom-agents-catalog.md +43 -0
  103. package/docs/guide/es/getting-started/1-what-is-specrails.md +49 -0
  104. package/docs/guide/es/getting-started/2-installing-and-first-run.md +42 -0
  105. package/docs/guide/es/getting-started/3-adding-your-first-project.md +58 -0
  106. package/docs/guide/es/getting-started/4-the-dashboard-tour.md +53 -0
  107. package/docs/guide/es/insights/1-analytics-and-cost-tracking.md +78 -0
  108. package/docs/guide/es/insights/2-the-integrated-terminal.md +46 -0
  109. package/docs/guide/es/insights/3-code-explorer.md +50 -0
  110. package/docs/guide/es/integrations/1-ai-providers.md +64 -0
  111. package/docs/guide/es/integrations/2-plugins.md +44 -0
  112. package/docs/guide/es/integrations/3-jira-integration.md +71 -0
  113. package/docs/guide/es/integrations/4-mobile-companion.md +38 -0
  114. package/docs/guide/es/pipeline/1-rails-and-jobs.md +94 -0
  115. package/docs/guide/es/pipeline/2-the-job-detail-view.md +90 -0
  116. package/docs/guide/es/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  117. package/docs/guide/es/pipeline/4-picking-an-engine-per-rail.md +60 -0
  118. package/docs/guide/es/settings/1-themes.md +37 -0
  119. package/docs/guide/es/settings/2-language.md +39 -0
  120. package/docs/guide/es/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  121. package/docs/guide/es/settings/4-where-your-data-lives.md +48 -0
  122. package/docs/guide/es/specs/1-specs-and-the-backlog.md +52 -0
  123. package/docs/guide/es/specs/2-add-spec-quick-mode.md +45 -0
  124. package/docs/guide/es/specs/3-add-spec-explore-mode.md +68 -0
  125. package/docs/guide/es/specs/4-drafts-and-contract-layer.md +81 -0
  126. package/docs/guide/fr/agents/1-meet-the-agents.md +38 -0
  127. package/docs/guide/fr/agents/2-profiles-and-the-balanced-default.md +45 -0
  128. package/docs/guide/fr/agents/3-customizing-models-per-agent.md +60 -0
  129. package/docs/guide/fr/agents/4-custom-agents-catalog.md +43 -0
  130. package/docs/guide/fr/getting-started/1-what-is-specrails.md +49 -0
  131. package/docs/guide/fr/getting-started/2-installing-and-first-run.md +42 -0
  132. package/docs/guide/fr/getting-started/3-adding-your-first-project.md +58 -0
  133. package/docs/guide/fr/getting-started/4-the-dashboard-tour.md +53 -0
  134. package/docs/guide/fr/insights/1-analytics-and-cost-tracking.md +78 -0
  135. package/docs/guide/fr/insights/2-the-integrated-terminal.md +46 -0
  136. package/docs/guide/fr/insights/3-code-explorer.md +50 -0
  137. package/docs/guide/fr/integrations/1-ai-providers.md +64 -0
  138. package/docs/guide/fr/integrations/2-plugins.md +44 -0
  139. package/docs/guide/fr/integrations/3-jira-integration.md +71 -0
  140. package/docs/guide/fr/integrations/4-mobile-companion.md +38 -0
  141. package/docs/guide/fr/pipeline/1-rails-and-jobs.md +94 -0
  142. package/docs/guide/fr/pipeline/2-the-job-detail-view.md +90 -0
  143. package/docs/guide/fr/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  144. package/docs/guide/fr/pipeline/4-picking-an-engine-per-rail.md +60 -0
  145. package/docs/guide/fr/settings/1-themes.md +37 -0
  146. package/docs/guide/fr/settings/2-language.md +39 -0
  147. package/docs/guide/fr/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  148. package/docs/guide/fr/settings/4-where-your-data-lives.md +48 -0
  149. package/docs/guide/fr/specs/1-specs-and-the-backlog.md +52 -0
  150. package/docs/guide/fr/specs/2-add-spec-quick-mode.md +45 -0
  151. package/docs/guide/fr/specs/3-add-spec-explore-mode.md +68 -0
  152. package/docs/guide/fr/specs/4-drafts-and-contract-layer.md +81 -0
  153. package/docs/guide/it/agents/1-meet-the-agents.md +38 -0
  154. package/docs/guide/it/agents/2-profiles-and-the-balanced-default.md +45 -0
  155. package/docs/guide/it/agents/3-customizing-models-per-agent.md +60 -0
  156. package/docs/guide/it/agents/4-custom-agents-catalog.md +43 -0
  157. package/docs/guide/it/getting-started/1-what-is-specrails.md +49 -0
  158. package/docs/guide/it/getting-started/2-installing-and-first-run.md +42 -0
  159. package/docs/guide/it/getting-started/3-adding-your-first-project.md +58 -0
  160. package/docs/guide/it/getting-started/4-the-dashboard-tour.md +53 -0
  161. package/docs/guide/it/insights/1-analytics-and-cost-tracking.md +78 -0
  162. package/docs/guide/it/insights/2-the-integrated-terminal.md +46 -0
  163. package/docs/guide/it/insights/3-code-explorer.md +50 -0
  164. package/docs/guide/it/integrations/1-ai-providers.md +64 -0
  165. package/docs/guide/it/integrations/2-plugins.md +44 -0
  166. package/docs/guide/it/integrations/3-jira-integration.md +71 -0
  167. package/docs/guide/it/integrations/4-mobile-companion.md +38 -0
  168. package/docs/guide/it/pipeline/1-rails-and-jobs.md +94 -0
  169. package/docs/guide/it/pipeline/2-the-job-detail-view.md +90 -0
  170. package/docs/guide/it/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  171. package/docs/guide/it/pipeline/4-picking-an-engine-per-rail.md +60 -0
  172. package/docs/guide/it/settings/1-themes.md +37 -0
  173. package/docs/guide/it/settings/2-language.md +39 -0
  174. package/docs/guide/it/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  175. package/docs/guide/it/settings/4-where-your-data-lives.md +48 -0
  176. package/docs/guide/it/specs/1-specs-and-the-backlog.md +52 -0
  177. package/docs/guide/it/specs/2-add-spec-quick-mode.md +45 -0
  178. package/docs/guide/it/specs/3-add-spec-explore-mode.md +68 -0
  179. package/docs/guide/it/specs/4-drafts-and-contract-layer.md +81 -0
  180. package/docs/guide/ja/agents/1-meet-the-agents.md +38 -0
  181. package/docs/guide/ja/agents/2-profiles-and-the-balanced-default.md +45 -0
  182. package/docs/guide/ja/agents/3-customizing-models-per-agent.md +60 -0
  183. package/docs/guide/ja/agents/4-custom-agents-catalog.md +43 -0
  184. package/docs/guide/ja/getting-started/1-what-is-specrails.md +49 -0
  185. package/docs/guide/ja/getting-started/2-installing-and-first-run.md +42 -0
  186. package/docs/guide/ja/getting-started/3-adding-your-first-project.md +58 -0
  187. package/docs/guide/ja/getting-started/4-the-dashboard-tour.md +53 -0
  188. package/docs/guide/ja/insights/1-analytics-and-cost-tracking.md +78 -0
  189. package/docs/guide/ja/insights/2-the-integrated-terminal.md +46 -0
  190. package/docs/guide/ja/insights/3-code-explorer.md +50 -0
  191. package/docs/guide/ja/integrations/1-ai-providers.md +64 -0
  192. package/docs/guide/ja/integrations/2-plugins.md +44 -0
  193. package/docs/guide/ja/integrations/3-jira-integration.md +71 -0
  194. package/docs/guide/ja/integrations/4-mobile-companion.md +38 -0
  195. package/docs/guide/ja/pipeline/1-rails-and-jobs.md +94 -0
  196. package/docs/guide/ja/pipeline/2-the-job-detail-view.md +90 -0
  197. package/docs/guide/ja/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  198. package/docs/guide/ja/pipeline/4-picking-an-engine-per-rail.md +60 -0
  199. package/docs/guide/ja/settings/1-themes.md +37 -0
  200. package/docs/guide/ja/settings/2-language.md +39 -0
  201. package/docs/guide/ja/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  202. package/docs/guide/ja/settings/4-where-your-data-lives.md +48 -0
  203. package/docs/guide/ja/specs/1-specs-and-the-backlog.md +52 -0
  204. package/docs/guide/ja/specs/2-add-spec-quick-mode.md +45 -0
  205. package/docs/guide/ja/specs/3-add-spec-explore-mode.md +68 -0
  206. package/docs/guide/ja/specs/4-drafts-and-contract-layer.md +81 -0
  207. package/docs/guide/pt/agents/1-meet-the-agents.md +38 -0
  208. package/docs/guide/pt/agents/2-profiles-and-the-balanced-default.md +45 -0
  209. package/docs/guide/pt/agents/3-customizing-models-per-agent.md +60 -0
  210. package/docs/guide/pt/agents/4-custom-agents-catalog.md +43 -0
  211. package/docs/guide/pt/getting-started/1-what-is-specrails.md +49 -0
  212. package/docs/guide/pt/getting-started/2-installing-and-first-run.md +42 -0
  213. package/docs/guide/pt/getting-started/3-adding-your-first-project.md +58 -0
  214. package/docs/guide/pt/getting-started/4-the-dashboard-tour.md +53 -0
  215. package/docs/guide/pt/insights/1-analytics-and-cost-tracking.md +78 -0
  216. package/docs/guide/pt/insights/2-the-integrated-terminal.md +46 -0
  217. package/docs/guide/pt/insights/3-code-explorer.md +50 -0
  218. package/docs/guide/pt/integrations/1-ai-providers.md +64 -0
  219. package/docs/guide/pt/integrations/2-plugins.md +44 -0
  220. package/docs/guide/pt/integrations/3-jira-integration.md +71 -0
  221. package/docs/guide/pt/integrations/4-mobile-companion.md +38 -0
  222. package/docs/guide/pt/pipeline/1-rails-and-jobs.md +94 -0
  223. package/docs/guide/pt/pipeline/2-the-job-detail-view.md +90 -0
  224. package/docs/guide/pt/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  225. package/docs/guide/pt/pipeline/4-picking-an-engine-per-rail.md +60 -0
  226. package/docs/guide/pt/settings/1-themes.md +37 -0
  227. package/docs/guide/pt/settings/2-language.md +39 -0
  228. package/docs/guide/pt/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  229. package/docs/guide/pt/settings/4-where-your-data-lives.md +48 -0
  230. package/docs/guide/pt/specs/1-specs-and-the-backlog.md +52 -0
  231. package/docs/guide/pt/specs/2-add-spec-quick-mode.md +45 -0
  232. package/docs/guide/pt/specs/3-add-spec-explore-mode.md +68 -0
  233. package/docs/guide/pt/specs/4-drafts-and-contract-layer.md +81 -0
  234. package/docs/guide/zh/agents/1-meet-the-agents.md +38 -0
  235. package/docs/guide/zh/agents/2-profiles-and-the-balanced-default.md +45 -0
  236. package/docs/guide/zh/agents/3-customizing-models-per-agent.md +60 -0
  237. package/docs/guide/zh/agents/4-custom-agents-catalog.md +43 -0
  238. package/docs/guide/zh/getting-started/1-what-is-specrails.md +49 -0
  239. package/docs/guide/zh/getting-started/2-installing-and-first-run.md +42 -0
  240. package/docs/guide/zh/getting-started/3-adding-your-first-project.md +58 -0
  241. package/docs/guide/zh/getting-started/4-the-dashboard-tour.md +53 -0
  242. package/docs/guide/zh/insights/1-analytics-and-cost-tracking.md +78 -0
  243. package/docs/guide/zh/insights/2-the-integrated-terminal.md +46 -0
  244. package/docs/guide/zh/insights/3-code-explorer.md +50 -0
  245. package/docs/guide/zh/integrations/1-ai-providers.md +64 -0
  246. package/docs/guide/zh/integrations/2-plugins.md +44 -0
  247. package/docs/guide/zh/integrations/3-jira-integration.md +71 -0
  248. package/docs/guide/zh/integrations/4-mobile-companion.md +38 -0
  249. package/docs/guide/zh/pipeline/1-rails-and-jobs.md +94 -0
  250. package/docs/guide/zh/pipeline/2-the-job-detail-view.md +90 -0
  251. package/docs/guide/zh/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  252. package/docs/guide/zh/pipeline/4-picking-an-engine-per-rail.md +60 -0
  253. package/docs/guide/zh/settings/1-themes.md +37 -0
  254. package/docs/guide/zh/settings/2-language.md +39 -0
  255. package/docs/guide/zh/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  256. package/docs/guide/zh/settings/4-where-your-data-lives.md +48 -0
  257. package/docs/guide/zh/specs/1-specs-and-the-backlog.md +52 -0
  258. package/docs/guide/zh/specs/2-add-spec-quick-mode.md +45 -0
  259. package/docs/guide/zh/specs/3-add-spec-explore-mode.md +68 -0
  260. package/docs/guide/zh/specs/4-drafts-and-contract-layer.md +81 -0
  261. package/docs/internals/README.md +1 -1
  262. package/docs/internals/adding-a-provider.md +192 -59
  263. package/docs/internals/api-reference.md +130 -21
  264. package/docs/internals/architecture.md +22 -9
  265. package/docs/internals/bundled-framework-build-plan.md +264 -0
  266. package/docs/internals/configuration.md +33 -8
  267. package/docs/internals/global-artifacts-alignment-contract.md +486 -0
  268. package/docs/internals/global-artifacts-relocation-evaluation.md +294 -0
  269. package/docs/internals/operations-runbook.md +16 -5
  270. package/docs/internals/profiles.md +42 -14
  271. package/docs/platforms/macos.md +27 -8
  272. package/docs/platforms/windows.md +20 -6
  273. package/docs/running-pipelines.md +17 -9
  274. package/docs/terminal.md +9 -3
  275. package/docs/tracking-cost.md +17 -11
  276. package/package.json +1 -1
  277. package/server/dist/agent-refine-manager.js +20 -5
  278. package/server/dist/artifact-registry.js +468 -0
  279. package/server/dist/attachment-manager.js +5 -8
  280. package/server/dist/browser-capture-manager.js +4 -4
  281. package/server/dist/bundled-core.js +72 -0
  282. package/server/dist/bundled-openspec.js +58 -0
  283. package/server/dist/chat-manager.js +42 -5
  284. package/server/dist/code-explorer-router.js +10 -7
  285. package/server/dist/config.js +7 -2
  286. package/server/dist/context-budget.js +17 -6
  287. package/server/dist/context-scope.js +6 -2
  288. package/server/dist/contract-refine-runner.js +31 -9
  289. package/server/dist/desktop-router.js +24 -1
  290. package/server/dist/docs-router.js +210 -132
  291. package/server/dist/file-summary-manager.js +41 -16
  292. package/server/dist/framework-manager.js +248 -0
  293. package/server/dist/framework-migration.js +308 -0
  294. package/server/dist/index.js +30 -0
  295. package/server/dist/install-config-path.js +73 -0
  296. package/server/dist/jira/jira-sync-manager.js +23 -11
  297. package/server/dist/openspec-shim.js +153 -0
  298. package/server/dist/plugins-router.js +19 -8
  299. package/server/dist/profiles-router.js +38 -16
  300. package/server/dist/project-registry.js +101 -3
  301. package/server/dist/project-router-chat.js +1 -1
  302. package/server/dist/project-router-helpers.js +25 -12
  303. package/server/dist/project-router-jobs.js +3 -3
  304. package/server/dist/project-router-settings.js +8 -6
  305. package/server/dist/project-router-setup.js +27 -10
  306. package/server/dist/project-router-spending.js +6 -1
  307. package/server/dist/project-router-tickets.js +30 -10
  308. package/server/dist/project-router.js +16 -1
  309. package/server/dist/queue-manager.js +149 -18
  310. package/server/dist/setup-manager.js +131 -29
  311. package/server/dist/smash-runner.js +21 -6
  312. package/server/dist/ticket-store.js +6 -2
  313. package/server/dist/ticket-watcher.js +5 -1
  314. package/server/dist/vitest-setup.js +25 -0
  315. package/server/dist/workspace-manager.js +199 -0
  316. package/server/dist/workspace-resolution.js +147 -0
  317. package/client/dist/assets/index-DgKfQFcf.css +0 -2
  318. package/client/dist/assets/setup-BIIkb-_K.js +0 -1
  319. package/client/dist/assets/setup-BeQxu9kD.js +0 -1
  320. package/client/dist/assets/setup-CPa6GnlI.js +0 -1
  321. package/client/dist/assets/setup-CZl4OEJx.js +0 -1
  322. package/client/dist/assets/setup-ChpodNfn.js +0 -1
  323. package/client/dist/assets/setup-D_fjJH6u.js +0 -1
  324. package/client/dist/assets/setup-YzD8DX4O.js +0 -1
  325. package/client/dist/assets/setup-fRpDozmq.js +0 -1
  326. package/docs/adding-a-provider.md +0 -107
@@ -0,0 +1,45 @@
1
+ # Profili e il default bilanciato
2
+
3
+ Un **profilo** è una ricetta salvata per un'esecuzione della pipeline. Risponde a tre domande in un unico posto:
4
+
5
+ 1. **Quali agenti** partecipano (il trio di base, più eventuali specialisti o agenti custom).
6
+ 2. **Con quale modello** gira ciascun agente.
7
+ 3. **Come vengono instradati** i task verso quegli agenti.
8
+
9
+ Trovi i profili nella sezione **Agenti** di qualsiasi progetto (barra laterale destra → **Agenti** → scheda **Profili**).
10
+
11
+ ## Il default bilanciato
12
+
13
+ Fin da subito, un progetto si risolve verso un sensato profilo **default**. Include il trio di base — `sr-architect`, `sr-developer`, `sr-reviewer` — e instrada ogni task al developer tramite un'unica regola "cattura-tutto". I modelli sono bilanciati per il lavoro di tutti i giorni: un modello capace dove conta, senza ricorrere all'opzione più costosa a ogni passaggio.
14
+
15
+ Se nel tuo progetto i modelli degli agenti erano già configurati alla vecchia maniera (nel frontmatter dei file agente), il pulsante **Migra** li legge e costruisce un profilo `default` che rispecchia esattamente il comportamento attuale — nessuna perdita, niente cambia finché non decidi tu di metterci mano.
16
+
17
+ Il punto chiave: **non sei obbligato a creare un profilo per usare Specrails.** Il default funziona e basta. I profili sono il modo per andare oltre.
18
+
19
+ ## Come viene scelto un profilo per un'esecuzione
20
+
21
+ Quando avvii un rail, Specrails sceglie un profilo in questo ordine:
22
+
23
+ 1. La tua **scelta esplicita** nell'intestazione del rail (vedi sotto).
24
+ 2. La tua **preferenza per sviluppatore** — un profilo che hai contrassegnato come tuo default personale per questo progetto (è locale a te e non viene committato).
25
+ 3. Il profilo **`default`** del progetto.
26
+
27
+ Il profilo viene *fotografato in uno snapshot all'avvio*, così ogni rail di un batch può girare con un profilo diverso, e modificare un profilo in seguito non riscrive mai i job che sono già partiti.
28
+
29
+ ## Selezionare un profilo per ogni rail
30
+
31
+ La scelta del profilo avviene proprio dove si lancia — nell'**intestazione del rail**, tramite il selettore di profilo.
32
+
33
+ - Scegli un profilo dal menu a discesa per usarlo **solo per questo avvio**.
34
+ - Usa l'opzione di persistenza per rendere un profilo la scelta stabile del rail da qui in avanti.
35
+
36
+ È tutto il flusso: scegli un profilo, avvia, fatto. I rail concorrenti nello stesso batch possono portare ciascuno il proprio profilo, così una correzione veloce e una feature impegnativa possono girare fianco a fianco con configurazioni diverse.
37
+
38
+ ## Quando la sezione Agenti tace
39
+
40
+ I profili sono una funzionalità di Claude. Su un progetto che include un provider diverso da Claude (Codex o Gemini), la sezione Agenti è nascosta e i rail girano senza profili — è il comportamento atteso, non un bug. I profili richiedono inoltre una versione di `specrails-core` abbastanza recente nel progetto; se è più datata, vedrai un banner giallo. I profili che crei vengono comunque **salvati** — semplicemente non influiscono sulla pipeline finché core non viene aggiornato. Aggiorna con il comando indicato nel banner per sbloccarli.
41
+
42
+ ## Dove andare adesso
43
+
44
+ - [Personalizzare i modelli per agente](customizing-models-per-agent) — costruisci i profili `fast` e `max`.
45
+ - [Agenti custom e il catalogo](custom-agents-catalog) — vedi ed estendi la squadra.
@@ -0,0 +1,60 @@
1
+ # Personalizzare i modelli per agente
2
+
3
+ La cosa più utile in assoluto che i profili ti permettono di fare è **scegliere il modello giusto per ogni passaggio**. Un passaggio di pianificazione potrebbe meritare il tuo modello più potente; un passaggio di costruzione di routine potrebbe trovarsi benissimo con qualcosa di più veloce ed economico. I profili ti permettono di esprimere esattamente questo.
4
+
5
+ È qui che la separazione tra "condiviso" e "per progetto" ripaga:
6
+
7
+ - Le *definizioni* degli agenti restano condivise in tutta la tua squadra.
8
+ - Il *modello con cui gira ciascun agente* viene configurato **per progetto**, all'interno di un profilo, e riguarda solo il tuo progetto.
9
+
10
+ Cambia un modello e cambi costo e comportamento per quel progetto — senza toccare la configurazione di nessun altro né le istruzioni di base dell'agente.
11
+
12
+ ## Cambiare il modello usato da un agente
13
+
14
+ In **Agenti → Profili**, seleziona un profilo e apri il suo editor della catena di agenti. Ogni agente nella catena ha un campo modello. C'è anche un modello **orchestratore** che gestisce il coordinamento di alto livello della pipeline.
15
+
16
+ I valori dei modelli sono alias — per Claude sono `opus`, `sonnet` e `haiku` (dal più capace → al più veloce). Imposta l'alias che desideri per ogni agente:
17
+
18
+ - Lascia il modello di un agente **vuoto** per ricadere sul default presente nel file dell'agente.
19
+ - Impostalo esplicitamente per fare l'override solo per questo profilo.
20
+
21
+ Salva, e il prossimo rail avviato con quel profilo userà i nuovi modelli. I job già in esecuzione mantengono il loro snapshot.
22
+
23
+ ## Creare profili come `fast` e `max`
24
+
25
+ Lo schema naturale è un paio di profili con nome a cui ricorri a seconda del lavoro:
26
+
27
+ **Un profilo `fast`** — per modifiche piccole e a basso rischio, dove vuoi velocità e un conto più leggero:
28
+
29
+ - Architect: un modello medio o veloce — il piano è semplice.
30
+ - Developer: un modello veloce — la modifica è meccanica.
31
+ - Reviewer: tienilo solido, ma puoi sfoltire un po' anche qui.
32
+
33
+ **Un profilo `max`** — per feature spinose e ad alta posta in gioco, dove vuoi che ogni passaggio sia il più affilato possibile:
34
+
35
+ - Architect, developer e reviewer: il tuo modello più potente su tutta la linea.
36
+
37
+ ### Due modi per costruirne uno
38
+
39
+ 1. **Duplica e ritocca** *(consigliato).* Seleziona il tuo profilo `default`, **Duplicalo**, dai alla copia un nome in kebab-case come `fast` o `max`, poi regola il modello di ciascun agente. Erediti una catena e un routing già collaudati e cambi solo ciò che intendi cambiare.
40
+ 2. **Parti da zero.** Crea un **Profilo vuoto** e assembla la catena da te. Devi comunque includere il trio di base (`sr-architect`, `sr-developer`, `sr-reviewer`) — la pipeline dipende da tutti e tre — ed esattamente una regola di routing terminale "cattura-tutto", che deve essere l'ultima.
41
+
42
+ I nomi dei profili sono in kebab-case minuscolo (es. `fast`, `max`, `cheap-and-cheerful`).
43
+
44
+ ## Instradare i task verso agenti specifici
45
+
46
+ Le **regole di routing** di un profilo decidono quale agente gestisce un task taggato. Ogni regola elenca dei tag di task e un agente di destinazione; vince la prima regola i cui tag corrispondono, e un'unica regola `default: true` alla fine cattura tutto il resto. Solo gli agenti effettivamente presenti nella catena del profilo possono essere destinazioni di routing — l'editor lo impone.
47
+
48
+ Per l'uso quotidiano non toccherai il routing: la regola "cattura-tutto" manda il lavoro al developer ed è corretto così. Ricorri alle regole per tag quando vuoi, ad esempio, che il lavoro taggato `migration` vada a uno specialista.
49
+
50
+ ## Scegliere il profilo all'avvio
51
+
52
+ Tutto questo converge all'avvio: nell'intestazione del rail, scegli `fast`, `max` o `default` per ogni rail. Un batch può mescolarli — una piccola correzione su `fast`, una grande feature su `max`, entrambe in esecuzione nello stesso momento. Vedi [Profili e il default bilanciato](profiles-and-the-balanced-default) per il flusso di selezione.
53
+
54
+ ## Una nota sulla sicurezza
55
+
56
+ Eliminare un profilo è sicuro per il lavoro in corso: i job già avviati con esso mantengono il loro snapshot, e gli avvii futuri semplicemente ricadono lungo l'ordine di risoluzione. Sperimenta in libertà.
57
+
58
+ ## Dove andare adesso
59
+
60
+ - [Agenti custom e il catalogo](custom-agents-catalog) — aggiungi agenti da inserire nelle tue catene.
@@ -0,0 +1,43 @@
1
+ # Agenti custom e il catalogo
2
+
3
+ I profili decidono *quali agenti girano e con quali modelli*. Ma da dove arrivano gli agenti stessi? Dal **catalogo degli agenti**.
4
+
5
+ Apri **Agenti → Catalogo** in qualsiasi progetto. È un visualizzatore in sola lettura di ogni agente disponibile per quel progetto, suddiviso in due gruppi:
6
+
7
+ - **Agenti upstream** — gli agenti forniti con `specrails-core`: il trio di base (`sr-architect`, `sr-developer`, `sr-reviewer`) ed eventuali specialisti come `sr-merge-resolver`.
8
+ - **Agenti custom** — gli agenti che hai aggiunto tu, con nome `custom-*`.
9
+
10
+ Ogni voce del catalogo mostra a cosa serve l'agente e il suo modello predefinito, così puoi vedere la rosa completa prima di collegare gli agenti a una catena di profilo.
11
+
12
+ ## Aggiungere un agente custom
13
+
14
+ Gli agenti custom sono semplici file Markdown nel tuo repository, sotto `.claude/agents/`, con nome `custom-<qualcosa>.md`. Il file contiene le istruzioni dell'agente (il suo system prompt) e un piccolo header di frontmatter che include un `model:` predefinito.
15
+
16
+ Una volta che il file esiste nel progetto, compare nel catalogo come agente custom, e puoi aggiungere il suo id alla catena di agenti di qualsiasi profilo (e instradare i task verso di esso). L'id deve corrispondere al nome del file — una voce per `custom-docs` mappa su `.claude/agents/custom-docs.md`.
17
+
18
+ Poiché vivono nel tuo repo, gli agenti custom sono **asset di squadra committabili**: committi il file e tutta la tua squadra ottiene l'agente. Questo riflette l'idea centrale che attraversa l'intera sezione Agenti —
19
+
20
+ > **Le definizioni degli agenti sono condivise (vivono nel repo e viaggiano con `git`). La configurazione dei modelli è per progetto (vive nei profili).**
21
+
22
+ Il namespace `custom-*` è riservato e protetto: i comandi `init` e `update` di `specrails-core` non toccano mai `.claude/agents/custom-*.md`, così i tuoi agenti custom sopravvivono intatti agli aggiornamenti di core. (La stessa protezione copre i frammenti contribuiti dai plugin, come `custom-serena.md`.)
23
+
24
+ ## Mettere al lavoro un agente custom
25
+
26
+ Il flusso tipico:
27
+
28
+ 1. Scrivi `.claude/agents/custom-<nome>.md` con le istruzioni e un modello predefinito.
29
+ 2. Verifica che compaia in **Agenti → Catalogo** sotto Custom.
30
+ 3. In **Agenti → Profili**, aggiungi l'agente alla catena di un profilo (facendo eventualmente l'override del suo modello per quel profilo).
31
+ 4. Aggiungi una regola di routing affinché i task con i tag giusti lo raggiungano — oppure affidati all'ordine della catena.
32
+ 5. Avvia un rail con quel profilo dall'intestazione del rail.
33
+
34
+ ## Tenere d'occhio le prestazioni dei profili
35
+
36
+ La sezione Agenti ha anche una scheda **Utilizzo** — una ripartizione per profilo di quanti job sono stati eseguiti con ciascun profilo in una finestra temporale selezionata. È un modo rapido per confermare che la tua suddivisione `fast`/`max` venga davvero usata come intendevi, e per individuare verso quale profilo gravita la tua squadra.
37
+
38
+ ## Riepilogo dell'intera sezione
39
+
40
+ - Gli **agenti** sono i membri specializzati della squadra — il trio condiviso più gli specialisti e i tuoi agenti custom. ([Conosci gli agenti](meet-the-agents))
41
+ - I **profili** impacchettano quali agenti girano, con quali modelli e come vengono instradati i task — selezionati per ogni rail all'avvio. Il profilo default è la scelta bilanciata di tutti i giorni. ([Profili e il default bilanciato](profiles-and-the-balanced-default))
42
+ - I **modelli** vengono regolati per agente, per progetto, all'interno dei profili — costruisci `fast` e `max` per adattarti al lavoro. ([Personalizzare i modelli per agente](customizing-models-per-agent))
43
+ - **Il catalogo** mostra ogni agente, e il namespace `custom-*` ti permette di far crescere la squadra — definizioni condivise, configurazione per progetto.
@@ -0,0 +1,49 @@
1
+ # Cos'è specrails
2
+
3
+ Benvenuto in **specrails** — un'app desktop che trasforma un assistente AI per la programmazione in un vero team di sviluppo, al lavoro sui *tuoi* progetti, sulla *tua* macchina.
4
+
5
+ Invece di copiare e incollare prompt avanti e indietro, descrivi ciò che vuoi sotto forma di **spec**, e specrails la fa scorrere attraverso un'intera pipeline di sviluppo — progettando, costruendo, revisionando e consegnando la modifica — mentre tu la guardi accadere in tempo reale.
6
+
7
+ ## Sviluppo AI guidato dalle spec
8
+
9
+ Il cuore di specrails è un'idea semplice: **il modo migliore per ottenere buon codice dall'AI è partire da una spec chiara.**
10
+
11
+ Una *spec* è una descrizione breve e strutturata di un singolo intervento — una funzionalità, una correzione, un refactor. Puoi scriverne una in pochi secondi, oppure darle forma attraverso una chat guidata che ti pone le domande giuste e la redige al posto tuo. Ogni spec diventa un **ticket** sulla board del tuo progetto, proprio come un'attività in un qualsiasi issue tracker.
12
+
13
+ Da lì, affidi la spec alla pipeline e lasci che sia l'AI a fare il lavoro pesante.
14
+
15
+ ## La pipeline: Architect → Developer → Reviewer → Ship
16
+
17
+ Quando avvii una spec, specrails la fa passare attraverso quattro fasi, ciascuna interpretata da un agente AI specializzato:
18
+
19
+ 1. **Architect** — legge la tua spec e il codice circostante, poi pianifica la modifica: quali file toccare, quale forma dovrebbe avere la soluzione.
20
+ 2. **Developer** — scrive il codice vero e proprio, seguendo il piano.
21
+ 3. **Reviewer** — controlla il lavoro per correttezza e qualità, intercettando i problemi prima che lo faccia tu.
22
+ 4. **Ship** — finalizza la modifica così che sia pronta per il commit.
23
+
24
+ Vedi ogni fase mentre viene eseguita, con i log in tempo reale che arrivano direttamente dall'AI. Niente è nascosto — se qualcosa va storto, vedrai esattamente dove.
25
+
26
+ ## Progetti
27
+
28
+ Tutto in specrails è organizzato intorno ai **progetti**. Un progetto è semplicemente una cartella sul tuo computer che contiene un codebase. Puoi aggiungere tutti i progetti che vuoi e passare dall'uno all'altro all'istante — ognuno conserva le proprie spec, la cronologia dei job, le analytics e le impostazioni.
29
+
30
+ Specrails non tocca mai codice che non gli hai chiesto di toccare. Lavora all'interno del tuo repository esistente e sei tu a mantenere il controllo su cosa viene committato.
31
+
32
+ ## Scegli il tuo provider AI
33
+
34
+ Specrails funziona con le principali CLI di programmazione AI:
35
+
36
+ - **Claude** (Claude Code)
37
+ - **Codex** (Codex CLI)
38
+ - **Gemini** (Gemini CLI)
39
+
40
+ Scegli quella che già usi — oppure installane più di una e scegline una a seconda dell'attività. Un progetto può funzionare con un singolo provider o con più provider contemporaneamente, così non resti mai vincolato a una scelta.
41
+
42
+ ## Perché ti piacerà
43
+
44
+ - **Velocità senza caos** — le spec mantengono l'AI concentrata, così ottieni modifiche utili invece di tentativi dispersivi.
45
+ - **Piena visibilità** — log in tempo reale, una vista chiara della pipeline e analytics per progetto ti mostrano esattamente cosa è successo e quanto è costato.
46
+ - **La tua macchina, il tuo codice** — tutto gira in locale sul tuo repository reale.
47
+ - **Un unico posto per tutto** — spec, job, chat, un terminale integrato e il monitoraggio dei costi, tutto in un'unica finestra.
48
+
49
+ Pronto a partire? Prossima tappa: [Installazione e primo avvio](installing-and-first-run).
@@ -0,0 +1,42 @@
1
+ # Installazione e primo avvio
2
+
3
+ Mettere specrails sulla tua macchina richiede un paio di minuti. Ecco l'intera procedura.
4
+
5
+ ## 1. Scarica e installa
6
+
7
+ Procurati l'installer per la tua piattaforma:
8
+
9
+ - **macOS (Apple Silicon)** — un file `.dmg`. Aprilo e trascina **specrails** nella cartella Applicazioni.
10
+ - **Windows** — un installer `.exe`. Eseguilo e segui le istruzioni.
11
+
12
+ > **Attenzione agli avvisi di sicurezza su macOS e Windows**
13
+ >
14
+ > - Su **Windows**, l'installer non è ancora firmato digitalmente, quindi SmartScreen potrebbe mostrare un avviso. Clicca su **Ulteriori informazioni → Esegui comunque** per continuare.
15
+ > - Su **macOS**, l'app è firmata e notarizzata, quindi dovrebbe aprirsi senza intoppi.
16
+
17
+ ## 2. Cosa ti serve (prerequisiti)
18
+
19
+ Specrails esegue pipeline di sviluppo AI pilotando veri strumenti da riga di comando, quindi servono alcune cose. La buona notizia: l'app desktop **ne include la maggior parte già al suo interno** (Node.js, npm e Git sono integrati nell'app), così su una macchina nuova di solito non c'è nulla da installare.
20
+
21
+ L'unica cosa che specrails non può includere è la **CLI del provider AI** vera e propria. Te ne servirà almeno una tra:
22
+
23
+ - **Claude Code**
24
+ - **Codex CLI**
25
+ - **Gemini CLI**
26
+
27
+ Installa quella che intendi usare, accedi una volta dal terminale e sei a posto. Specrails rileva automaticamente quali provider sono presenti.
28
+
29
+ > Se mai vedessi uno strumento segnalato come mancante, l'app mostra un link **Ulteriori informazioni** con comandi di installazione pronti da copiare e incollare, su misura per il tuo sistema operativo (Homebrew su macOS, winget su Windows, apt/dnf su Linux). Puoi ricontrollare in qualsiasi momento senza riavviare.
30
+
31
+ ## 3. Primo avvio — la schermata di benvenuto
32
+
33
+ La prima volta che apri specrails, ti ritroverai su una **schermata di benvenuto** pulita. Non ci sono ancora progetti, quindi l'app ti invita ad aggiungere il primo.
34
+
35
+ Vedrai:
36
+
37
+ - Una breve descrizione di cosa fa specrails.
38
+ - Un unico pulsante **Aggiungi il tuo primo progetto**.
39
+
40
+ Questo è tutto l'onboarding — nessun account da creare, nessuna registrazione. Specrails funziona interamente sulla tua macchina.
41
+
42
+ Clicca su **Aggiungi il tuo primo progetto** e prosegui con [Aggiungere il tuo primo progetto](adding-your-first-project).
@@ -0,0 +1,58 @@
1
+ # Aggiungere il tuo primo progetto
2
+
3
+ Un progetto è semplicemente una cartella sul tuo computer che contiene un codebase. Colleghiamone uno.
4
+
5
+ ## Apri la finestra Aggiungi progetto
6
+
7
+ Clicca su **Aggiungi il tuo primo progetto** nella schermata di benvenuto (oppure, più avanti, sul pulsante **Aggiungi progetto** nella barra laterale sinistra). Compare una piccola finestra di dialogo.
8
+
9
+ ## Inserisci i dettagli
10
+
11
+ **Cartella del progetto** *(obbligatoria)*
12
+
13
+ Indica a specrails la cartella che contiene il tuo codice. Nell'app desktop puoi cliccare sull'icona della cartella per sfogliare e sceglierla visivamente, oppure incollare il percorso completo. Dovrebbe essere la radice del tuo repository — la cartella che contiene il codice e (di solito) una directory `.git`.
14
+
15
+ **Nome del progetto** *(facoltativo)*
16
+
17
+ Un'etichetta amichevole mostrata nella barra laterale. Se la lasci vuota, specrails usa il nome della cartella.
18
+
19
+ **Provider**
20
+
21
+ Scegli quale o quali provider AI dovrà usare questo progetto. Specrails ti mostra quelli che ha rilevato sulla tua macchina:
22
+
23
+ - 🤖 **Claude**
24
+ - ⚡ **Codex**
25
+ - ✨ **Gemini**
26
+
27
+ I provider che non ha trovato appaiono in grigio e contrassegnati come *non trovati* — installane uno e accedi, poi riapri la finestra. Per impostazione predefinita ogni provider disponibile è preselezionato, ma puoi deselezionarli fino a tenere solo quello che ti serve. Se ne scegli più di uno, il **primo** diventa il provider predefinito del progetto; potrai poi scegliere quale usare a seconda dell'attività.
28
+
29
+ > Un controllo rapido viene eseguito in background per confermare che gli strumenti richiesti siano presenti. Se manca qualcosa di essenziale, il pulsante **Aggiungi** resta disabilitato e un link **Ulteriori informazioni** ti fornisce i comandi di installazione esatti.
30
+
31
+ Clicca su **Aggiungi** per continuare.
32
+
33
+ ## Una configurazione che si completa in pochi secondi
34
+
35
+ Se la cartella ha già specrails configurato, hai finito — il progetto compare istantaneamente nella tua barra laterale.
36
+
37
+ Se invece è un progetto nuovo, parte una breve **procedura guidata di configurazione**. Si articola in tre passaggi:
38
+
39
+ 1. **Configura** — conferma le impostazioni di base per ciascun provider che hai scelto.
40
+ 2. **Installa** — specrails configura il progetto automaticamente. Si tratta dell'installazione *rapida*: agenti template pronti all'uso, predisposti nel giro di pochi secondi. Vedrai un log in tempo reale durante l'esecuzione.
41
+ 3. **Fatto** — un riepilogo che conferma che è tutto pronto.
42
+
43
+ Per un progetto multi-provider, l'installazione viene eseguita una volta per provider, uno dopo l'altro, e il passaggio Fatto mostra una scheda per ciascuno.
44
+
45
+ ## Cosa viene installato
46
+
47
+ La configurazione è volutamente leggera e **non invasiva**. Specrails aggiunge una piccola quantità di configurazione al tuo progetto così che la pipeline sappia come funzionare:
48
+
49
+ - Una cartella `.specrails/` che contiene i profili degli agenti e le impostazioni locali del progetto.
50
+ - Definizioni di agenti sotto `.claude/agents/` che alimentano la pipeline Architect → Developer → Reviewer → Ship.
51
+
52
+ Tutto qui — specrails non riscriverà il tuo codice sorgente durante la configurazione, e questi file possono tranquillamente essere committati se vuoi condividere la configurazione con il tuo team.
53
+
54
+ > **Preferisci la configurazione approfondita?** L'app propone di proposito l'installazione rapida basata su template. Se preferisci il flusso arricchito dall'AI (analisi del codebase e personas di agenti personalizzate), puoi eseguire `npx specrails-core@latest init` dalla cartella del tuo progetto in un terminale.
55
+
56
+ ## Ci sei
57
+
58
+ Una volta terminata la configurazione, specrails ti porta direttamente nella dashboard del tuo progetto. È il momento del tour — vai a [Il tour della dashboard](the-dashboard-tour).
@@ -0,0 +1,53 @@
1
+ # Il tour della dashboard
2
+
3
+ Con un progetto aggiunto, ora hai davanti la tua **dashboard del progetto** — il quartier generale per trasformare le spec in codice consegnato. Ecco come orientarti.
4
+
5
+ ## Il quadro generale
6
+
7
+ La finestra è divisa in tre zone:
8
+
9
+ - **Barra laterale sinistra** — l'elenco dei tuoi progetti. Clicca su un progetto qualsiasi per passarci all'istante; tutto il resto della finestra si aggiorna di conseguenza. Anche il pulsante **Aggiungi progetto** si trova qui.
10
+ - **Area principale** — la dashboard del progetto attivo: le tue spec e la pipeline che le esegue.
11
+ - **Barra laterale destra** — la navigazione tra le sezioni del progetto corrente.
12
+
13
+ ## La dashboard principale
14
+
15
+ È qui che avviene il lavoro. La dashboard mostra:
16
+
17
+ - **Le tue spec** — i ticket che hai creato, organizzati per stato (da Backlog/Da fare fino a Completato). Puoi visualizzarle come elenco, come griglia o come schede tipo post-it, a seconda di cosa preferisci.
18
+ - **Un modo per aggiungere una spec** — avvia un nuovo intervento. Puoi scrivere una spec rapida direttamente, oppure aprire una chat guidata **Explore** che ti aiuta a darle forma attraverso la conversazione e redige il ticket al posto tuo.
19
+ - **I rail** — sono le corsie in cui le spec vengono costruite. Trascina una spec su un rail e avviala per farla passare attraverso la pipeline Architect → Developer → Reviewer → Ship. Più rail possono essere eseguiti contemporaneamente, così puoi lavorare a più cose in parallelo.
20
+
21
+ Quando una spec è in esecuzione, ne vedrai l'avanzamento nella pipeline e i log in tempo reale — l'output istantaneo dell'AI mentre progetta, scrive il codice e revisiona la tua modifica.
22
+
23
+ ## La barra laterale destra: le sezioni del progetto
24
+
25
+ La barra laterale destra è il tuo centralino per il progetto corrente. Passaci sopra il cursore per espanderla, oppure fissala aperta. Le sezioni che troverai:
26
+
27
+ - **Dashboard** — la board delle spec e i rail (dove ti trovavi poco fa).
28
+ - **Job** — ogni esecuzione della pipeline per questo progetto, passata e presente, con stato, durata e la possibilità di approfondire il dettaglio e i log di ciascuna esecuzione.
29
+ - **Analytics** — quanto ti sta costando l'uso dell'AI. La spesa suddivisa per giorno, per attività, per modello e per ticket — così niente sorprese.
30
+ - **Agenti** — i profili degli agenti del tuo progetto: quali agenti vengono eseguiti nella pipeline e quali modelli AI usano. *(Solo per i progetti basati su Claude.)*
31
+ - **Codice** — un browser di file in sola lettura con riepiloghi AI in linguaggio semplice, e dei chip che indicano quali file l'AI ha toccato. Ottimo per chi non è sviluppatore ma vuole seguire ciò che accade.
32
+ - **Integrazioni** — componenti aggiuntivi opzionali, come collegare le tue spec a una board **Jira** o abilitare strumenti extra per l'AI.
33
+ - **Impostazioni** — opzioni per progetto (telemetria, budget, configurazione dei provider e altro ancora).
34
+
35
+ > Alcune sezioni compaiono solo quando hanno senso per i provider che hai scelto — per esempio, **Agenti** è specifica di Claude. Se non vedi una sezione, semplicemente non si applica alla configurazione di questo progetto.
36
+
37
+ ## La barra di stato
38
+
39
+ Una sottile striscia corre lungo il bordo inferiore della finestra. È piccola ma utile:
40
+
41
+ - **Indicatore di connessione** (a sinistra) — un pallino colorato e un'etichetta che mostrano che l'app è attiva: verde per *connesso*, ambra durante la *riconnessione*, blu durante la *sincronizzazione* subito dopo una riconnessione. Raramente ne avrai bisogno, ma è rassicurante quando serve.
42
+ - **Spesa totale** (a destra) — un totale aggiornato di quanto hai speso, così il costo è sempre a portata di sguardo.
43
+ - **Interruttore del terminale** (all'estrema destra) — apre il pannello del terminale integrato. Premi **Cmd+J** (macOS) o **Ctrl+J** (Windows/Linux) per aprirlo o chiuderlo in qualsiasi momento. È una shell completa, aperta direttamente nella cartella del tuo progetto.
44
+
45
+ ## Qualche scorciatoia utile
46
+
47
+ - **Cmd/Ctrl+B** — fissa o comprimi le barre laterali.
48
+ - **Cmd/Ctrl+J** — apri o chiudi il pannello del terminale.
49
+ - **Cmd/Ctrl+K** — apri la ricerca.
50
+
51
+ ## Dove andare adesso
52
+
53
+ Questo è il quadro generale. Da qui, la prima mossa naturale è **aggiungere una spec** e avviarla su un rail — guarda la pipeline scorrere dall'inizio alla fine, poi controlla le **Analytics** per vedere quanto è costata. Benvenuto a bordo.
@@ -0,0 +1,78 @@
1
+ # Analytics e monitoraggio dei costi
2
+
3
+ Ogni volta che Specrails esegue una CLI AI per tuo conto — un job della pipeline, una spec rapida, una sessione Explore, un raffinamento AI, un riepilogo di file — registra cosa è successo: quale modello è stato eseguito, quanti token sono entrati e usciti, quanto tempo è servito e quanto è costato. La sezione **Analytics** trasforma tutto questo in un'unica dashboard, così sai sempre dove sta andando la tua spesa AI.
4
+
5
+ Aprila dalla barra laterale destra (è etichettata **Analytics**). Tutto ciò che vedi è circoscritto al progetto in cui ti trovi: cambia progetto e i numeri lo seguono.
6
+
7
+ ## Cosa conta come spesa
8
+
9
+ Specrails tiene traccia di cinque tipi di attività AI, chiamati *origini*. A ciascuna è associato un colore coerente in tutti i grafici, così puoi riconoscerla a colpo d'occhio:
10
+
11
+ - **Job** — un rail della pipeline che esegue Architect → Developer → Reviewer → Ship.
12
+ - **Quick** — una spec generata tramite il percorso rapido di Add Spec.
13
+ - **Explore** — una conversazione Explore in cui dai forma a una spec chiacchierando.
14
+ - **Raffinamento** — un raffinamento assistito dall'AI su un agente o su un file.
15
+ - **Riepiloghi file** — i riepiloghi in linguaggio semplice che alimentano il Code explorer.
16
+
17
+ Un paio di cose, di proposito, *non* vengono tracciate: sia la chat nella barra laterale sia il setup wizard avviano CLI AI, ma non compaiono mai nella tua spesa. Così la dashboard riflette lavoro reale e ripetibile, non chiacchiere occasionali.
18
+
19
+ ## Leggere la dashboard
20
+
21
+ La pagina è composta da una manciata di blocchi, dall'alto verso il basso:
22
+
23
+ ### Il meter di consumo (Hero)
24
+
25
+ Il grande numero in cima è la tua spesa totale per il periodo selezionato, con un delta **vs prec.** che ti permette di capire al volo se la tendenza è in salita o in discesa rispetto alla finestra precedente. Se hai appena iniziato a usare un progetto, lo stato vuoto ti dice quando è cominciato il tracciamento ("Tracciamento iniziato il YYYY-MM-DD") — non c'è alcun recupero dei dati storici, quindi il meter conosce solo le esecuzioni avvenute mentre eri su questa versione.
26
+
27
+ ### Timeline giornaliera
28
+
29
+ Un grafico a barre impilate della spesa per giorno, suddivisa per origine. I giorni senza attività sono mostrati come zero anziché saltati, così la forma della tua settimana resta onesta. È il modo più rapido per vedere *quando* è stato eseguito un batch costoso.
30
+
31
+ ### Quick vs Explore
32
+
33
+ Una scheda affiancata che confronta i tuoi due stili di creazione delle spec. Se hai eseguito meno di cinque sessioni Explore, mostra un gentile invito all'azione invece di medie fuorvianti — i campioni piccoli non danno confronti affidabili.
34
+
35
+ ### Per modello
36
+
37
+ I tuoi modelli più costosi per spesa (fino a dieci). Clicca un modello qualsiasi per filtrare l'intera dashboard solo su quel modello — comodo quando vuoi sapere quanto ti sta costando davvero un particolare modello di fascia alta.
38
+
39
+ ### Dispersione Costo vs Turni
40
+
41
+ Ogni punto è un'invocazione, che mette in relazione il costo con il numero di turni. I valori anomali — le esecuzioni costose e con molti turni — saltano subito all'occhio. (La dispersione mostra i tuoi 500 punti più recenti per restare reattiva.)
42
+
43
+ ### Top ticket
44
+
45
+ I dieci ticket più costosi su *tutte* le origini messe insieme, così un ticket che è costato poco in Explore e molto in un job mostra il suo totale reale. I ticket eliminati e le esecuzioni non attribuite hanno i loro contenitori dedicati, così nulla scompare silenziosamente dai totali.
46
+
47
+ ### Tabella delle invocazioni grezze
48
+
49
+ La verità di base: una riga per invocazione. Questo blocco ha i propri filtri secondari, che agiscono solo sulla tabella, così puoi approfondire senza disturbare i grafici sopra.
50
+
51
+ ## Filtri
52
+
53
+ L'intestazione fissa in cima porta i due filtri principali — **periodo** e **origine** — ed entrambi vengono salvati nell'URL della pagina. Questo significa che puoi aggiungere ai segnalibri o condividere una vista filtrata ("ultimi 30 giorni, solo job") e si riaprirà esattamente come l'avevi lasciata. I filtri della tabella grezza sono separati e restano locali a quel blocco.
54
+
55
+ Una nota sull'accuratezza: le esecuzioni fallite e interrotte vengono tenute fuori dalle *medie di costo* (distorcerebbero i numeri per esecuzione), ma contano comunque nel conteggio totale delle esecuzioni e nel tasso di fallimento. Così le medie restano pulite e il quadro sull'affidabilità resta completo.
56
+
57
+ ## Costo per ticket
58
+
59
+ Non devi venire alla pagina Analytics per vedere quanto è costata una spec. Apri un ticket qualsiasi e, se ha una spesa associata, vedrai un riepilogo su una riga proprio sotto il titolo:
60
+
61
+ > $0.42 · 6 turni · 1m 12s attivi · dettaglio
62
+
63
+ Cliccaci e atterri sulla pagina Analytics già filtrata su quel ticket. È il percorso più rapido da "quanto mi è costata questa funzionalità?" al dettaglio completo.
64
+
65
+ ## Esportare i tuoi dati
66
+
67
+ Quando ti servono i numeri fuori dall'app — un foglio di calcolo, un report finanziario, la tua analisi — usa il menu a tendina **Export**. Offre quattro formati:
68
+
69
+ - **CSV riepilogo** — un file multi-sezione con totali, timeline giornaliera, per origine, per modello e top ticket.
70
+ - **JSON riepilogo** — lo stesso riepilogo, strutturato.
71
+ - **CSV raw** — ogni riga di invocazione (fino a 10.000; segnala se ha dovuto troncare).
72
+ - **JSON raw** — le stesse righe grezze, strutturate.
73
+
74
+ Le esportazioni rispettano i filtri di periodo e origine che hai attualmente applicato, e i file vengono nominati in modo da ordinarsi in modo sensato: `<project>-analytics-<period>-<date>.csv`. Il pulsante è disabilitato quando non c'è nulla da esportare, e riceverai un chiaro toast di errore se un download fallisce.
75
+
76
+ ## Sempre aggiornato
77
+
78
+ Non devi ricaricare. Quando una nuova invocazione viene registrata in qualsiasi punto del progetto, la dashboard aperta si aggiorna in silenzio un istante dopo, così il meter di consumo tiene il passo con il lavoro man mano che si completa.
@@ -0,0 +1,46 @@
1
+ # Il terminale integrato
2
+
3
+ Specrails ha un vero terminale incorporato — il pannello che scorre verso l'alto dal fondo della finestra, proprio come quello di VS Code o Cursor. Esegue la tua shell reale, nella directory reale del tuo progetto, così puoi lanciare `git`, `npm`, i test o qualunque altra cosa senza uscire dall'app.
4
+
5
+ ## Aprirlo e chiuderlo
6
+
7
+ Il modo più rapido è la tastiera: **Cmd+J** (macOS) o **Ctrl+J** (Windows/Linux) apre e chiude il pannello, e mette a fuoco il terminale nel momento in cui compare, così puoi iniziare a digitare subito. Puoi anche usare il chevron nella barra di stato.
8
+
9
+ Il pannello ha tre stati:
10
+
11
+ - **Nascosto** — riposto via.
12
+ - **Ripristinato** — il normale pannello ad altezza dimezzata.
13
+ - **Massimizzato** — occupa l'area di lavoro quando ti serve spazio per leggere l'output.
14
+
15
+ Comprimere il pannello (il chevron) **non** ferma nulla — le tue shell continuano a girare in background. L'unica cosa che termina davvero una sessione è chiuderla (l'icona del cestino, o la ✕ del singolo tab).
16
+
17
+ ## Più sessioni
18
+
19
+ Puoi eseguire diversi terminali contemporaneamente nello stesso progetto — fino a dieci. Ciascuno ottiene il proprio tab; puoi rinominarli così "dev server" e "test" non si confondono. Partono tutti nella cartella del tuo progetto e caricano il profilo della tua shell (`.zshrc`, `.bashrc` e così via), quindi i tuoi alias e il PATH sono esattamente quelli che ti aspetti.
20
+
21
+ Ecco la parte importante: i tuoi terminali **sopravvivono ai cambi di progetto e di tab**. Specrails tiene viva e intatta ogni sessione dietro le quinte — scrollback, processi in esecuzione, tutto — così passare a Analytics e tornare indietro non resetta la tua shell né interrompe un comando di lunga durata. Le sessioni terminano solo quando le chiudi esplicitamente (o quando rimuovi l'intero progetto).
22
+
23
+ ## Per progetto, ricordato
24
+
25
+ Se il pannello è aperto, quanto in alto lo hai trascinato, quali tab esistono — tutto questo viene ricordato **per progetto**. Torna a un progetto ed è configurato come lo avevi lasciato.
26
+
27
+ ## Le funzionalità premium
28
+
29
+ Questa non è una console essenziale. Il terminale arriva con le comodità che ti aspetteresti da uno di prima categoria:
30
+
31
+ - **Rendering veloce e nitido** tramite WebGL (con un fallback automatico così non si rompe mai), gestione completa della larghezza Unicode e legature dei font.
32
+ - **Cerca nello scrollback** con **Cmd+F** — ottimo per trovare quell'errore sepolto 500 righe più su.
33
+ - **Zoom del font** con **Cmd+=**, **Cmd+-** e **Cmd+0** per ripristinare.
34
+ - **Scorciatoie per gli appunti** — Cmd+C / Cmd+V per copiare e incollare, Cmd+K per pulire — più un menu contestuale con il tasto destro.
35
+ - **Trascina e rilascia i percorsi dei file** (nell'app desktop): rilascia un file sul terminale e il suo percorso viene inserito, opportunamente quotato per la tua shell.
36
+ - **Ridimensionamento fluido** — trascinare l'altezza del pannello o comprimere la barra laterale non fa tremolare l'output.
37
+ - **Immagini in linea** — i terminali che emettono immagini in stile Sixel o iTerm2 le mostrano direttamente sul posto.
38
+ - **Integrazione con la shell** — Specrails sa dove inizia e finisce ogni comando, così può tenere traccia della cronologia dei comandi e avvisarti quando un comando di lunga durata si completa (una notifica desktop, con un fallback nel browser). Se per qualche motivo la tua shell non può essere strumentata, degrada in silenzio e te lo dice una volta.
39
+
40
+ ## Impostazioni
41
+
42
+ Le preferenze del terminale vivono su due livelli: un'impostazione predefinita a livello di app e un'override opzionale per progetto. L'impostazione per progetto ha la precedenza quando è presente, così puoi mantenere un aspetto coerente globale ritoccando il singolo progetto che ha bisogno di qualcosa di diverso.
43
+
44
+ ## Disattivarlo
45
+
46
+ Il terminale è attivo per impostazione predefinita. Se preferisci non averlo, può essere disabilitato tramite i flag `VITE_FEATURE_TERMINAL_PANEL` (client) o `SPECRAILS_TERMINAL_PANEL` (server) — imposta uno dei due su `false`. La maggior parte delle persone lo lascerà semplicemente attivo.
@@ -0,0 +1,50 @@
1
+ # Code explorer
2
+
3
+ La sezione **Code** ti offre una finestra amichevole e in sola lettura sul tuo repository — pensata in particolare per chi vuole capire cosa ha costruito l'AI senza dover vivere in un editor. Hai un albero dei file a sinistra, un visualizzatore di codice a destra e, sopra il codice, un riepilogo in linguaggio semplice di cosa fa davvero ogni file.
4
+
5
+ In questa versione è rigorosamente in sola lettura: nulla di ciò che fai qui modifica i tuoi file. Pensala come una sala di lettura, non un'officina.
6
+
7
+ Aprila dalla barra laterale destra (**Code**) e, come tutto il resto, è circoscritta al progetto corrente.
8
+
9
+ ## L'albero dei file
10
+
11
+ Il riquadro di sinistra è un albero virtualizzato dei file del tuo progetto — veloce anche su repo di grandi dimensioni. Rispetta il tuo `.gitignore` e una deny-list integrata, così vedi i file che contano, non un mare di artefatti di build e `node_modules`.
12
+
13
+ Accanto ai file noterai dei **marcatori di provenienza** — piccoli indicatori che ti dicono che un file è stato *toccato dall'AI*. È questo il cuore del Code explorer: Specrails registra quali file ogni job della pipeline ha creato o modificato, e li ricollega al ticket che ha avviato il lavoro. Così puoi rispondere, a colpo d'occhio, a "l'ha scritto l'AI, o l'ho fatto io?".
14
+
15
+ In cima all'albero c'è un filtro:
16
+
17
+ - **Toccati dall'AI** (predefinito) — solo i file che l'AI ha modificato.
18
+ - **Tutti i file** — l'albero completo.
19
+
20
+ La tua scelta viene ricordata per progetto, così se ti interessano soprattutto le modifiche scritte dall'AI le vedrai per prime ogni volta.
21
+
22
+ ## Il visualizzatore di codice
23
+
24
+ Clicca un file e si apre in un visualizzatore completo (basato su Monaco, lo stesso motore di VS Code) con un'evidenziazione della sintassi adeguata che si abbina al tema dell'app che hai scelto. Un paio di limiti ragionevoli mantengono tutto fluido: i file binari vengono educatamente rifiutati e i file molto grandi (oltre 2 MB) non vengono caricati.
25
+
26
+ Il file corrente viene salvato nell'URL della pagina, così puoi aggiungere ai segnalibri o condividere un link diretto a un file specifico.
27
+
28
+ Poiché la modifica non fa parte di questa versione, il visualizzatore offre un pulsante **Modifica in un editor esterno** che copia il percorso assoluto del file — incollalo nell'editor che preferisci e riparti da lì.
29
+
30
+ ## Riepiloghi AI
31
+
32
+ Sopra il codice vedrai un **riepilogo in linguaggio semplice** del file — a cosa serve, cosa fa — scritto in modo che anche chi non è uno sviluppatore possa seguirlo. Vengono generati per te e messi in cache, così aprire un file che hai già guardato è istantaneo.
33
+
34
+ I riepiloghi sono attenti a restare aggiornati: sono legati al contenuto del file, così quando un file cambia davvero il riepilogo viene rigenerato, mentre i file invariati non vengono ri-riassunti inutilmente. Se modifichi tu stesso un file, il suo riepilogo viene contrassegnato come obsoleto anziché rigenerato in silenzio — resti tu a decidere quando aggiornarlo. C'è un'azione di **rigenerazione** per quando vuoi una nuova versione a richiesta.
35
+
36
+ Un paio di garanzie tengono i costi ragionevoli: la generazione dei riepiloghi avviene entro un **budget mensile** (qualche dollaro per impostazione predefinita, configurabile nelle Impostazioni), e ci sono limiti su quanti riepiloghi un singolo job può avviare. Se un riepilogo viene saltato, l'app ti dice perché — budget raggiunto, un limite per job, o semplicemente il file non trovato.
37
+
38
+ Puoi anche scegliere la **lingua dei riepiloghi** (inglese o spagnolo) nelle impostazioni globali, nell'area *Code section*.
39
+
40
+ ## Collegare il codice alle spec
41
+
42
+ Il legame di provenienza funziona in entrambe le direzioni. All'interno del Code explorer, cliccare il chip di un ticket su un file apre il dettaglio di quel ticket. E dall'altro lato, la vista di **dettaglio del ticket** ha una sezione *File toccati da questo ticket* — clicca un file lì e salti dritto nel Code explorer con quel file aperto. Chiude il cerchio tra "ecco la spec che abbiamo scritto" ed "ecco il codice che ne è uscito".
43
+
44
+ ## Cosa non fa (ancora)
45
+
46
+ Per fissare le aspettative con chiarezza, questa prima versione lascia di proposito fuori alcune cose: la modifica all'interno dell'app, i riepiloghi per simbolo o a livello di directory, una vista diff narrativa e il "chiedi all'AI di questo file" in forma conversazionale. La provenienza attribuisce un file solo al suo ticket principale. Sono il genere di cose che potrebbero crescere nel tempo.
47
+
48
+ ## Disattivarlo
49
+
50
+ Il Code explorer è attivo per impostazione predefinita. Può essere disabilitato con i flag `VITE_FEATURE_CODE_EXPLORER` (client) o `SPECRAILS_CODE_EXPLORER` (server) — imposta uno dei due su `false`. Disattivarlo lascia tutti i tuoi dati registrati e i riepiloghi al sicuro su disco, intatti, nel caso tu voglia riattivarlo.
@@ -0,0 +1,64 @@
1
+ # Provider AI (Claude, Codex, Gemini)
2
+
3
+ Specrails non è legato a una sola AI. Ogni parte dell'app che dialoga con un'AI — Explore Spec, Quick spec, i rail, la chat, AI Edit, il pulsante "Open AI CLI" del terminale — può funzionare con uno qualsiasi dei tre provider di prima classe. Scegli tu quali usare in un progetto, e puoi addirittura cambiare provider task per task.
4
+
5
+ ## I tre provider
6
+
7
+ | Provider | CLI | Realizzato da | Note |
8
+ |---|---|---|---|
9
+ | **Claude** | `claude` | Anthropic | Il più completo. È l'unico provider per gli Agenti (profili), i rail Ultracode e il Contract Refine. |
10
+ | **Codex** | `codex` | OpenAI | Richiede codex `0.128.0+`. Legge i suoi server MCP dal file globale `~/.codex/config.toml`. |
11
+ | **Gemini** | `gemini` | Google | Richiede gemini `0.11.0+`. Usa la telemetria nativa e un file di istruzioni `GEMINI.md`. |
12
+
13
+ Tutti e tre sono **abilitati di default**. Un provider compare in **Add Project** ogni volta che la sua CLI è installata e presente nel tuo `PATH`. Quindi il primo passo è sempre lo stesso: installa la CLI che vuoi usare e accedi con essa, esattamente come descritto nella documentazione di quello strumento. Una volta che `claude --version` (o `codex`, o `gemini`) funziona nel tuo terminale, Specrails può usarla.
14
+
15
+ ## Installare un provider per un progetto
16
+
17
+ Quando aggiungi un progetto, la procedura guidata di setup ti chiede quale provider (o quali provider) installare. Scegline uno, completa il passo di installazione e hai finito. Da quel momento il progetto *ha* semplicemente quel provider — non dovrai più pensarci. Spec, rail, chat e analisi funzionano tutti allo stesso modo, indipendentemente da quale hai scelto.
18
+
19
+ Se una CLI che vuoi usare non viene proposta in Add Project, quasi sempre è perché la CLI non è installata oppure non è presente nel tuo `PATH`. Installala e poi riapri Add Project.
20
+
21
+ ## Installare più provider in un solo progetto
22
+
23
+ Puoi installare **più di un** provider nello stesso progetto — per esempio Claude *e* Gemini. In **Add Project** l'elenco dei provider diventa una serie di caselle di spunta: seleziona tutti quelli che ti servono. Il primo che selezioni diventa il provider **primario** (predefinito) del progetto; gli altri restano disponibili come alternative.
24
+
25
+ Qualche cosa utile da sapere sui progetti multi-provider:
26
+
27
+ - **Con un solo provider tutto si comporta esattamente come prima.** Se un progetto ha un unico provider, non vedrai mai un selettore di provider da nessuna parte — l'app resta pulita e semplice.
28
+ - **La barra laterale destra mostra solo le sezioni supportate da tutti i provider installati.** Poiché gli Agenti (profili) sono un concetto esclusivo di Claude, la sezione **Agenti** scompare nel momento in cui un progetto include un provider diverso da Claude. Tutto il resto (Spec, Code, Analisi, Integrazioni, Terminale, Chat) rimane.
29
+ - **La scelta dei provider è bloccata dopo la creazione.** In questa versione scegli i tuoi provider quando aggiungi il progetto e non possono essere modificati in seguito dalle Impostazioni. Se ti serve un mix diverso, crea un nuovo progetto.
30
+
31
+ ## Scegliere un provider per ogni invocazione
32
+
33
+ Il vero vantaggio di un progetto multi-provider è poter scegliere l'AI giusta per ciascun task — senza toccare alcuna impostazione globale. Ovunque venga eseguita un'AI compare un piccolo selettore di provider (solo quando il progetto ne ha più di uno):
34
+
35
+ - **Add Spec** — un selettore di motore ti permette di esplorare o generare in modalità Quick una spec con il provider che preferisci.
36
+ - **Intestazione del rail** — scegli il motore per quello specifico rail prima di avviarlo.
37
+ - **Terminale** — il pulsante "Open AI CLI" (Sparkles) apre un menu dei provider così puoi entrare in una qualsiasi CLI installata nella cartella di quel progetto.
38
+
39
+ La tua scelta viene ricordata per progetto, con il provider primario come default, così non devi riselezionarla ogni volta.
40
+
41
+ ## Cosa può fare solo Claude
42
+
43
+ Alcune funzioni sono per natura specifiche di Claude, quindi vengono nascoste o saltate quando è in uso un altro provider:
44
+
45
+ - **Agenti (profili)** — il catalogo degli agenti per progetto e il routing dei modelli. Nascosti in qualsiasi progetto che includa un provider diverso da Claude.
46
+ - **Rail Ultracode** — vengono sempre eseguiti su Claude.
47
+ - **Contract Refine** — il passaggio aggiuntivo "Contract Layer" su una spec confermata viene eseguito solo quando il provider della conversazione è Claude.
48
+ - **Modalità avanzate di Add Spec** (SMASH / Contract Layer) — nascoste per i motori diversi da Claude.
49
+
50
+ Tutto il resto — Explore, Quick spec, l'intera pipeline dei rail, AI Edit, chat, analisi dei costi — funziona con tutti e tre.
51
+
52
+ ## Tracciamento dei costi tra i provider
53
+
54
+ La pagina **Analisi** traccia ogni invocazione fatturabile, indipendentemente dal provider. Sui progetti multi-provider aggiunge dei chip di filtro per motore così puoi confrontare la spesa per provider. Claude riporta il proprio costo esatto; per Codex e Gemini, Specrails stima il costo da un listino integrato, quindi i numeri sono approssimazioni vicine al reale più che importi effettivamente addebitati.
55
+
56
+ ## Risoluzione dei problemi
57
+
58
+ - **Un provider che ho installato non viene proposto.** Verifica che la CLI sia presente nel tuo `PATH` (prova `claude --version` / `codex --version` / `gemini --version` in un terminale nuovo). L'app sonda le CLI dei provider tramite il `PATH` di sistema.
59
+ - **I server MCP di Codex non si caricano in chat.** Codex legge i server MCP dal file globale `~/.codex/config.toml` — registrali lì con `codex mcp add`.
60
+ - **Disabilitazione d'emergenza.** Un provider può essere disattivato a livello di app tramite una variabile d'ambiente (`SPECRAILS_CODEX_BETA=0` o `SPECRAILS_GEMINI_BETA=0`). Questo nasconde il provider solo dalla *selezione*; raramente è necessario.
61
+
62
+ ## Vedi anche
63
+
64
+ Le guide dedicate ai provider approfondiscono ciascuna CLI: la guida di Codex e la guida di Gemini coprono ognuna il setup, cosa funziona e le particolarità specifiche del provider.