specrails-desktop 2.7.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 (329) 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 +39 -14
  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/providers/gemini-adapter.js +4 -0
  310. package/server/dist/providers/gemini-agent-ack.js +65 -0
  311. package/server/dist/queue-manager.js +156 -12
  312. package/server/dist/setup-manager.js +131 -29
  313. package/server/dist/smash-runner.js +21 -6
  314. package/server/dist/ticket-store.js +6 -2
  315. package/server/dist/ticket-watcher.js +5 -1
  316. package/server/dist/util/stream-display.js +18 -3
  317. package/server/dist/vitest-setup.js +25 -0
  318. package/server/dist/workspace-manager.js +199 -0
  319. package/server/dist/workspace-resolution.js +147 -0
  320. package/client/dist/assets/index-DgKfQFcf.css +0 -2
  321. package/client/dist/assets/setup-BIIkb-_K.js +0 -1
  322. package/client/dist/assets/setup-BeQxu9kD.js +0 -1
  323. package/client/dist/assets/setup-CPa6GnlI.js +0 -1
  324. package/client/dist/assets/setup-CZl4OEJx.js +0 -1
  325. package/client/dist/assets/setup-ChpodNfn.js +0 -1
  326. package/client/dist/assets/setup-D_fjJH6u.js +0 -1
  327. package/client/dist/assets/setup-YzD8DX4O.js +0 -1
  328. package/client/dist/assets/setup-fRpDozmq.js +0 -1
  329. package/docs/adding-a-provider.md +0 -107
@@ -0,0 +1,48 @@
1
+ # Dove vivono i tuoi dati
2
+
3
+ In breve: **Specrails mantiene i tuoi repository immacolati.** Quando punti l'app a uno dei tuoi progetti, non ci si insedia, non sparpaglia file di configurazione in giro e non riscrive nulla che non gli abbia chiesto. Il tuo codice resta tuo, e pulito.
4
+
5
+ ## Il tuo repo resta pulito
6
+
7
+ I file di Specrails — i suoi database, lo stato per progetto, le definizioni degli agent, le impostazioni, la telemetria, i riassunti e tutto il resto che gli serve per funzionare — vivono in un'unica casa ordinata sotto la tua home directory:
8
+
9
+ ```
10
+ ~/.specrails/
11
+ ```
12
+
13
+ Quella cartella è il workspace privato dell'app. È dove vivono il registro dei progetti, i database per progetto, gli strumenti integrati e tutte le parti operative. I tuoi repository di codice veri e propri non vengono mai usati come discarica per nulla di tutto ciò.
14
+
15
+ Questo significa che:
16
+
17
+ - Il `.gitignore` del tuo repo **non** viene riscritto dall'app.
18
+ - Il tuo repo non viene riempito di configurazioni di strumenti o directory di stato nascoste.
19
+ - Rimuovere un progetto da Specrails non lascia disordine nel tuo codice.
20
+
21
+ Se in passato hai usato strumenti che aggiungevano silenziosamente cartelle e file in giro per il tuo progetto, qui si tratta di una scelta deliberatamente diversa. Specrails è costruito in modo che puntarlo a un repo sia un **non-evento** per la storia git di quel repo.
22
+
23
+ ## L'unica cosa che *viene* committata — di proposito
24
+
25
+ C'è esattamente un'eccezione voluta, ed è il senso stesso dello strumento: **le tue spec OpenSpec.**
26
+
27
+ Le spec vivono nel tuo repository, sotto:
28
+
29
+ ```
30
+ openspec/
31
+ ```
32
+
33
+ E questo è voluto. Le tue spec sono un **deliverable** — un resoconto versionato e revisionabile di cosa hai deciso di costruire e perché. Devono stare accanto al tuo codice, tracciate in git, visibili nelle pull request, condivise con il tuo team. È lì il valore: le spec non sono stato temporaneo da buttare via, sono parte della storia del tuo progetto.
34
+
35
+ Quindi la regola è semplice e onesta:
36
+
37
+ - **`openspec/`** → vive nel tuo repo, committata, di proposito.
38
+ - **Tutto il resto di cui Specrails ha bisogno** → vive sotto `~/.specrails/`, fuori dai piedi.
39
+
40
+ ## Perché funziona così
41
+
42
+ Specrails esegue gli strumenti AI dal proprio workspace privato (sotto `~/.specrails/`) e raggiunge il tuo repository reale solo per le cose che hanno davvero bisogno di toccarlo — leggere il tuo codice e scrivere le spec che hai richiesto. Gli strumenti, le definizioni del framework e tutta la contabilità restano nella cartella di casa dell'app.
43
+
44
+ Il vantaggio per te: puoi aggiungere un progetto, eseguire pipeline, esplorare spec e fare esperimenti con la certezza che il working tree e la storia git del tuo repository cambino solo nei modi che ti aspetteresti — le tue spec committate e il codice che le tue pipeline scrivono. Nient'altro si intrufola.
45
+
46
+ ## Rimuovere un progetto
47
+
48
+ Quando rimuovi un progetto da Specrails, l'app fa pulizia del proprio stato per progetto sotto `~/.specrails/`. Le spec già committate nel tuo repo restano dove devono stare — nel tuo repo — perché sono tue.
@@ -0,0 +1,52 @@
1
+ # Le spec e il backlog
2
+
3
+ Una **spec** è l'unità di lavoro che la pipeline AI realizza. Puoi immaginarla come un ticket: un titolo, una descrizione di ciò che vuoi ottenere, una priorità ed eventuali etichette. Quando avvii la pipeline, gli agenti AI leggono la spec e agiscono su di essa — quindi una spec chiara è di gran lunga l'input più importante per ottenere un buon risultato.
4
+
5
+ Nell'app le spec vengono talvolta chiamate **ticket**: i due termini significano la stessa cosa.
6
+
7
+ ## La board
8
+
9
+ Ogni progetto si apre sulla sua **Dashboard**, che mostra la **SpecsBoard** — l'elenco di tutte le spec del progetto. Questo è il tuo backlog. Da qui crei nuove spec, ne imposti la priorità, le trascini su un rail per realizzarle e osservi il loro stato cambiare man mano che il lavoro procede.
10
+
11
+ La board ha due modalità di visualizzazione, che si alternano con un toggle nella toolbar e vengono ricordate per ogni progetto:
12
+
13
+ - **Vista post-it** (quella predefinita) — riquadri in stile card con brevi riepiloghi.
14
+ - **Vista elenco** — righe compatte su una sola riga.
15
+
16
+ Puoi anche filtrare per **stato** (Tutti / Da fare / Completati) e per **etichetta**, oltre a ordinare per **Predefinito**, **Ticket #** o **Priorità** (ciascuno con un toggle crescente/decrescente).
17
+
18
+ ## Stati
19
+
20
+ Una spec attraversa un piccolo insieme di stati. La board associa a ciascuno un segnale visivo coerente, così puoi leggere lo stato del tuo backlog a colpo d'occhio:
21
+
22
+ | Stato | Cosa significa |
23
+ |--------|---------------|
24
+ | **Bozza** | Un'idea in corso salvata da una conversazione in modalità Explore. Non ancora pronta da realizzare — puoi tornarci e continuare a darle forma. Mostra un badge `Draft`. |
25
+ | **Da fare** | Pronta per essere presa in carico. È qui che atterra una spec finita quando la crei. |
26
+ | **In corso** | La pipeline ci sta lavorando in questo momento (un punto blu pulsante). |
27
+ | **Completato** | Portata a termine dalla pipeline (un segno di spunta verde). |
28
+ | **Annullato** | Abbandonata (una X rossa). |
29
+
30
+ Le bozze vivono nello stesso gruppo attivo delle spec Da fare — non c'è una colonna separata per loro — ma hanno un bordo dalla tinta sottile e un badge `Draft` che le rende facili da individuare. Consulta [Le bozze e il Contract Layer](drafts-and-contract-layer.md) per tutta la storia sulle bozze.
31
+
32
+ ## Priorità
33
+
34
+ Ogni spec non-bozza ha una priorità: **Critica**, **Alta**, **Media** o **Bassa**. La priorità è puramente uno strumento organizzativo — ti aiuta a decidere cosa realizzare per primo e ti permette di ordinare la board. La imposti quando crei una spec e puoi cambiarla in qualsiasi momento facendo clic con il tasto destro sulla card della spec e scegliendo **Imposta priorità**.
35
+
36
+ Le bozze sono l'unica eccezione: una bozza può non avere *alcuna* priorità, perché è ancora un'idea in lavorazione. La priorità viene fissata quando confermi la bozza trasformandola in una spec vera e propria.
37
+
38
+ ## Creare una spec
39
+
40
+ Per creare una spec, clicca su **Aggiungi** (il pulsante Più nella toolbar della SpecsBoard). Si apre il dialog **Aggiungi spec**, con diversi modi di lavorare:
41
+
42
+ - **Modalità Quick** — descrivi ciò che vuoi e l'AI scrive la spec completa in un colpo solo. Vedi [Aggiungi spec — Modalità Quick](add-spec-quick-mode.md).
43
+ - **Modalità Explore** — conversi con l'AI, che ti aiuta a dare forma alla spec turno dopo turno. Vedi [Aggiungi spec — Modalità Explore](add-spec-explore-mode.md).
44
+ - **Modalità Raw** — qualunque cosa scrivi viene salvata testualmente come spec, senza alcun coinvolgimento dell'AI. Usala quando hai già pronto il testo della spec.
45
+
46
+ Quale scegliere dipende da quanto è già chiara l'idea. Sai esattamente cosa vuoi? Quick. La stai ancora mettendo a fuoco? Explore. Hai già il testo? Raw.
47
+
48
+ ## Dove andare adesso
49
+
50
+ - [Aggiungi spec — Modalità Quick](add-spec-quick-mode.md) — il modo più rapido per trasformare un'idea in una spec.
51
+ - [Aggiungi spec — Modalità Explore](add-spec-explore-mode.md) — dai forma a una spec conversando.
52
+ - [Le bozze e il Contract Layer](drafts-and-contract-layer.md) — salva il lavoro in corso e arricchisci le spec per la pipeline.
@@ -0,0 +1,45 @@
1
+ # Aggiungi spec — Modalità Quick
2
+
3
+ La modalità Quick è pensata per quando sai già cosa vuoi. Scrivi la tua idea, l'AI redige la spec completa e questa atterra sulla tua board come **Da fare**. Niente botta e risposta — basta descriverla e partire.
4
+
5
+ ## Creare una spec in modalità Quick
6
+
7
+ Per creare rapidamente una spec:
8
+
9
+ 1. Nella Dashboard, clicca su **Aggiungi** (il pulsante Più nella toolbar della SpecsBoard).
10
+ 2. Scegli la modalità **Quick**.
11
+ 3. Scrivi la tua idea nel campo di testo — una frase o un paragrafo, qualunque cosa la descriva.
12
+ 4. Clicca per generare.
13
+
14
+ Mentre la spec viene scritta, un piccolo toast nell'angolo mostra il nome del progetto, un frammento della tua idea e il **tempo trascorso** ("Generazione… 0:12"). Al termine, il toast passa a "Generata in <tempo>" con un'azione **Vedi** che ti porta direttamente alla nuova spec.
15
+
16
+ Questo è tutto il flusso. Tutto ciò che segue è una rifinitura facoltativa.
17
+
18
+ ## Cosa puoi regolare
19
+
20
+ **Modello** — per impostazione predefinita l'AI sceglie un modello sensato. Puoi sovrascriverlo per ogni spec dal selettore di modello, se ne vuoi uno più veloce o più capace.
21
+
22
+ **Engine** — se il tuo progetto ha installato più di un provider AI (una qualsiasi combinazione di Claude, Codex e Gemini), un selettore di engine si trova in cima al dialog, così puoi scegliere quale generi questa spec. La tua scelta viene ricordata per ogni progetto. I progetti con un solo provider non lo mostrano — non c'è nulla tra cui scegliere.
23
+
24
+ **Contesto** — la modalità Quick di solito viene eseguita come un singolo turno, perché non ha bisogno di leggere il tuo codebase per scrivere una spec a partire dalla tua descrizione. Ma uno slider di contesto ti permette di darle più materiale su cui lavorare:
25
+
26
+ - Al livello più basso legge solo la tua descrizione.
27
+ - Ai livelli più alti può leggere le tue spec esistenti, le spec OpenSpec del tuo progetto e persino l'intero codebase prima di scrivere.
28
+
29
+ Più contesto le dai, più tempo richiede la generazione (passa a multi-turno per poter leggere prima), ma la spec torna ancorata al tuo progetto reale. Punta a un contesto più alto quando la spec deve far riferimento a codice reale, nomi di file o comportamenti esistenti.
30
+
31
+ **Allegati** — trascina mockup, brief o file di dati nel campo dell'idea. L'AI li legge come parte della scrittura della spec. (Anche gli allegati fanno passare la generazione a multi-turno.)
32
+
33
+ **Arricchisci con Contract Layer** — un toggle che aggiunge un blocco strutturato alla spec generata, così la pipeline a valle non deve indovinare nomi o forme dei dati. È facoltativo e disattivato per impostazione predefinita; la tua ultima scelta viene ricordata per ogni progetto. Consulta [Le bozze e il Contract Layer](drafts-and-contract-layer.md) per scoprire cosa aggiunge e quando vale la pena.
34
+
35
+ ## Quando usare la modalità Quick e quando Explore
36
+
37
+ Usa **Quick** quando l'idea è già chiara nella tua testa — potresti scrivere la spec da solo, preferisci solo che lo faccia l'AI. Usa [**Explore**](add-spec-explore-mode.md) quando la stai ancora pensando e vuoi un partner che ti aiuti a darle forma.
38
+
39
+ Una spec creata in modalità Quick è una spec del tutto normale: in seguito puoi aprirla e usare **Continua a modificare** in una sessione Explore se ha bisogno di rifiniture.
40
+
41
+ ## Dove andare adesso
42
+
43
+ - [Aggiungi spec — Modalità Explore](add-spec-explore-mode.md) — per le spec che hanno bisogno di essere modellate.
44
+ - [Le bozze e il Contract Layer](drafts-and-contract-layer.md) — l'arricchimento Contract Layer spiegato.
45
+ - [Esecuzione delle pipeline](running-pipelines.md) — trascina la tua nuova spec su un rail e realizzala.
@@ -0,0 +1,68 @@
1
+ # Aggiungi spec — Modalità Explore
2
+
3
+ La modalità Explore è una conversazione. Invece di scrivere tu stesso la spec, ragioni sull'idea insieme all'AI — che fa da partner di pensiero, pone domande, propone una struttura e costruisce una **bozza live** della spec man mano che procedete. Quando sei soddisfatto, confermi la bozza trasformandola in una spec vera e propria.
4
+
5
+ Scegli Explore quando l'idea non è ancora del tutto definita, quando ci sono compromessi da discutere o quando vuoi che l'AI guardi il tuo codice reale prima di fissare la spec.
6
+
7
+ ## Creare una spec in modalità Explore
8
+
9
+ Per dare forma a una spec in modalità Explore:
10
+
11
+ 1. Nella Dashboard, clicca su **Aggiungi**, poi scegli **Explore**.
12
+ 2. Scrivi il tuo primo messaggio — l'idea, una domanda o un pensiero ancora abbozzato.
13
+ 3. Leggi la risposta dell'AI e continua a rispondere. A ogni turno affina la sua comprensione.
14
+ 4. Osserva la **bozza live** aggiornarsi accanto alla chat — è la spec che prende forma.
15
+ 5. Quando la bozza ti sembra giusta, clicca su **Crea spec**.
16
+
17
+ La conversazione resta nella tua cronologia, così puoi sempre tornarci per vedere come è stata modellata la spec.
18
+
19
+ ## La bozza live
20
+
21
+ Mentre converssi, un pannello mostra la bozza così com'è in quel momento — titolo, descrizione, priorità, etichette, criteri di accettazione. Si riscrive a ogni turno in base a ciò che avete discusso. Non la modifichi direttamente; la guidi attraverso la conversazione ("anzi, metti la priorità alta", "aggiungi un criterio sulla gestione degli errori", e così via).
22
+
23
+ Questo è il cuore della modalità Explore: non ti trovi mai davanti a un form vuoto. Stai sempre guardando una spec reale, in evoluzione.
24
+
25
+ ## Quanto vede l'AI: lo slider del contesto
26
+
27
+ Prima che l'AI risponda, decidi tu quanto del tuo progetto può vedere. Uno slider di preset di contesto ti permette di scambiare velocità con profondità:
28
+
29
+ | Preset | Cosa vede l'AI |
30
+ |--------|------------------|
31
+ | **Minimo** | Solo il tuo messaggio. Il più veloce ed economico. |
32
+ | **Leggero** | + le tue spec esistenti. |
33
+ | **Standard** | + le tue spec e le spec OpenSpec del tuo progetto. |
34
+ | **Ricco** | + accesso in lettura all'intero codebase, così può ancorare le risposte al codice reale. |
35
+ | **Max** | Ricco, più un passaggio di arricchimento Contract Layer alla conferma. |
36
+ | **Desktop** | Max, più i server MCP del tuo progetto e i tuoi server MCP approvati. |
37
+
38
+ Parti da un livello basso per un brainstorming veloce; sali quando vuoi che l'AI verifichi i suoi suggerimenti rispetto al tuo codice reale. La scelta viene salvata sulla conversazione, così non si riversa su altre sessioni Explore.
39
+
40
+ Se vuoi un controllo più fine, clicca su **Fine-tune** per attivare manualmente le opzioni sottostanti — incluso **I miei MCP approvati**, che carica i server MCP che hai già approvato localmente senza rallentare la sessione.
41
+
42
+ ## Pulsanti nella shell Explore
43
+
44
+ - **Crea spec** — promuove la bozza live a una spec vera e propria con stato **Da fare**. (Quando stai modificando una spec esistente, questo pulsante diventa **Aggiorna spec** e modifica quella spec sul posto.)
45
+ - **Rivedi →** — apre un overlay di revisione che mostra la spec proposta confrontata con la baseline prima di confermare, così niente sorprese.
46
+ - **Salva come bozza** — conserva la conversazione come ticket bozza per riprenderla in seguito. Disponibile non appena hai inviato almeno un messaggio. Vedi sotto.
47
+ - **Riduci** — parcheggia la conversazione come chip nel dock delle chat ridotte in basso a sinistra. Clicca sul chip in qualsiasi momento per tornare dritto nella conversazione — non si perde nulla.
48
+ - **Scarta** — getta via la conversazione (chiede prima conferma).
49
+
50
+ ## Salvare come bozza
51
+
52
+ Non sei pronto a confermare, ma non vuoi perdere il ragionamento? Clicca su **Salva come bozza**. La conversazione diventa una **spec bozza** sulla tua board, e la bozza resta collegata alla conversazione che le sta dietro.
53
+
54
+ In seguito, apri la bozza dalla board e clicca su **Continua a modificare** — la conversazione originale si riapre con la sua cronologia chat intatta, e riprendi esattamente da dove avevi lasciato. Le bozze non vengono mai eliminate automaticamente; ti aspettano.
55
+
56
+ Questo rende Explore sicuro da usare per idee ancora acerbe: avvii una conversazione, arrivi da qualche parte, la salvi come bozza e torni domani.
57
+
58
+ Per tutto ciò che riguarda le bozze — incluso l'arricchimento Contract Layer — consulta [Le bozze e il Contract Layer](drafts-and-contract-layer.md).
59
+
60
+ ## Nota multi-provider
61
+
62
+ Se il tuo progetto ha installato più di un provider AI, un selettore di engine ti permette di scegliere quale guida la conversazione Explore. I progetti con un solo provider non lo mostrano.
63
+
64
+ ## Dove andare adesso
65
+
66
+ - [Le bozze e il Contract Layer](drafts-and-contract-layer.md) — salvare il lavoro in corso e arricchire le spec per la pipeline.
67
+ - [Aggiungi spec — Modalità Quick](add-spec-quick-mode.md) — quando l'idea è già chiara.
68
+ - [Esecuzione delle pipeline](running-pipelines.md) — realizza la tua spec una volta che è pronta.
@@ -0,0 +1,81 @@
1
+ # Le bozze e il Contract Layer
2
+
3
+ Questa pagina copre due modi per sfruttare meglio le tue spec: le **bozze** (salvare un'idea in corso così da riprenderla in seguito) e il **Contract Layer** (un arricchimento facoltativo che rende le spec più precise per la pipeline AI).
4
+
5
+ ## Bozze: salvare un'idea in corso
6
+
7
+ Una **bozza** è una conversazione [Explore](add-spec-explore-mode.md) in corso, salvata come spec. Ti permette di fermarti a metà ragionamento senza perdere nulla e di tornarci quando sei pronto.
8
+
9
+ ### Salvare una bozza
10
+
11
+ Mentre sei in una conversazione Explore, clicca su **Salva come bozza** (disponibile una volta che hai inviato almeno un messaggio). L'app:
12
+
13
+ - Crea una spec con stato **Bozza** sulla tua board.
14
+ - Le assegna automaticamente un titolo se non ne hai impostato uno (un breve riepilogo della conversazione).
15
+ - La ricollega alla conversazione, così l'intera cronologia chat viene conservata.
16
+
17
+ Il salvataggio è idempotente — se salvi la stessa conversazione due volte, aggiorna la bozza esistente invece di crearne una duplicata.
18
+
19
+ ### Come appaiono le bozze sulla board
20
+
21
+ Le bozze vivono nello stesso gruppo attivo delle tue spec Da fare — non c'è una colonna separata. Le riconosci da:
22
+
23
+ - Un badge `Draft` dove normalmente si trova il badge della priorità.
24
+ - Un bordo dalla tinta sottile sulla card.
25
+
26
+ Una bozza può non avere *alcuna priorità* — la priorità la imposti quando la confermi trasformandola in una spec vera e propria.
27
+
28
+ ### Riprendere una bozza
29
+
30
+ Per riprendere da dove avevi lasciato:
31
+
32
+ 1. Apri la bozza dalla board.
33
+ 2. Clicca su **Continua a modificare** nel modale di dettaglio.
34
+ 3. La conversazione Explore originale si riapre con la sua cronologia chat completa, e il pannello della bozza live precompilato con tutto ciò che avevi modellato fino a quel momento.
35
+ 4. Continua a conversare. Quando hai finito, **Crea spec** promuove la bozza a una spec vera e propria (stato **Da fare**, con la priorità che scegli).
36
+
37
+ ### Scartare una bozza
38
+
39
+ Le bozze **non vengono mai eliminate automaticamente**. Spariscono solo quando le scarti esplicitamente, oppure quando le confermi in uno stato non-bozza. Scartare una bozza ripulisce anche la sua conversazione collegata, quando nient'altro vi fa riferimento.
40
+
41
+ > Suggerimento: quando non sei sicuro che una spec valga la pena, salvala come bozza e lasciala lì. Aprila il mattino dopo, dai un'occhiata alla descrizione e decidi con occhi freschi.
42
+
43
+ ## Il Contract Layer: precisione per la pipeline
44
+
45
+ Il **Contract Layer** è un arricchimento facoltativo che aggiunge un blocco strutturato alla descrizione di una spec. Il suo compito è eliminare le incertezze per gli agenti AI che realizzano la spec — così riutilizzano i nomi giusti, rispettano le forme dei dati attese e toccano i file giusti invece di inventarne di propri.
46
+
47
+ ### Cosa aggiunge
48
+
49
+ Il Contract Layer è composto da cinque brevi sezioni aggiunte alla spec:
50
+
51
+ - **Naming Contract** — gli identificatori esatti (funzioni, campi, route) che l'implementazione dovrebbe riutilizzare.
52
+ - **Data Shapes** — i payload in stile JSON coinvolti.
53
+ - **State Machine** — le transizioni o gli stati attraverso cui passa la funzionalità.
54
+ - **Invariants** — le proprietà che devono sempre rimanere vere.
55
+ - **File Touch List** — i file che l'implementazione dovrebbe modificare.
56
+
57
+ Pensalo come consegnare alla pipeline un progetto preciso invece di uno schizzo. È particolarmente prezioso per le spec che si innestano in codice esistente, dove un nome o una forma indovinata dall'AI causerebbe del lavoro da rifare.
58
+
59
+ ### Come aggiungerlo
60
+
61
+ Ci sono tre modi in cui il Contract Layer viene applicato:
62
+
63
+ - **Modalità Quick** — attiva il toggle **Arricchisci con Contract Layer** prima di generare. La tua ultima scelta viene ricordata per ogni progetto. (Vedi [Aggiungi spec — Modalità Quick](add-spec-quick-mode.md).)
64
+ - **Modalità Explore** — scegli il preset di contesto **Max** o **Desktop** (che eseguono l'arricchimento automaticamente alla conferma), oppure apri **Fine-tune** e attivalo manualmente. (Vedi [Aggiungi spec — Modalità Explore](add-spec-explore-mode.md).)
65
+ - **Su una spec esistente** — apri il modale di dettaglio della spec e ri-esegui l'arricchimento da lì.
66
+
67
+ ### Dove appare
68
+
69
+ Una volta che una spec ha un Contract Layer, il modale di dettaglio lo mostra come una sezione comprimibile con un badge tipo `3/5 compilate` — che ti dice quante delle cinque sezioni sono state effettivamente compilate (alcune funzionalità semplicemente non hanno, ad esempio, una state machine, e quelle sezioni vengono contrassegnate come non applicabili). Espandila per leggere il contratto completo; comprimila per mantenere ordinata la descrizione.
70
+
71
+ Se l'arricchimento dovesse fallire, l'app mostra una notifica con un'azione **Riprova** così puoi rilanciarlo.
72
+
73
+ ### Vale sempre la pena?
74
+
75
+ Non sempre. Per una spec piccola e autonoma l'AI riesce a implementarla bene anche senza. Il Contract Layer dà il suo valore sulle spec che si integrano strettamente con il codice esistente, dove nomi e forme esatti contano — è lì che fissare il contratto in anticipo ti risparmia un giro di correzioni più avanti.
76
+
77
+ ## Dove andare adesso
78
+
79
+ - [Aggiungi spec — Modalità Explore](add-spec-explore-mode.md) — da dove arrivano le bozze.
80
+ - [Aggiungi spec — Modalità Quick](add-spec-quick-mode.md) — il toggle del Contract Layer in modalità Quick.
81
+ - [Esecuzione delle pipeline](running-pipelines.md) — realizza una spec una volta che è pronta.
@@ -0,0 +1,38 @@
1
+ # エージェントの紹介
2
+
3
+ **Implement** レールを起動するとき、Specrails はあなたのスペックを1つの AI に丸投げして結果を祈る、ということはしません。それぞれ1つの役割だけを担う小さな専門 *エージェント* チームを、意図された順番で動かします。このページでは、そのチームのメンバーと、それぞれが何をするのかを紹介します。
4
+
5
+ ## 基本のトリオ
6
+
7
+ すべてのパイプライン実行で、この3つのエージェントが使われます。これらはまさに屋台骨であり、プロジェクトはこの3つなしにレールを実行できません。
8
+
9
+ | エージェント | 役割 | 何をするか |
10
+ |-------|------|--------------|
11
+ | **sr-architect** | プランナー | あなたのスペックを読み、コードベースを調べ、具体的な実装プランを作成します — どのファイルに手を入れるか、変更がどんな形になるか、何に気をつけるべきか。誰かがコードを書く前に、まず考えます。 |
12
+ | **sr-developer** | ビルダー | アーキテクトのプランを受け取り、実際にコードを書きます: 新しいファイル、編集、テスト。ここであなたのスペックが本物の差分(diff)に変わります。 |
13
+ | **sr-reviewer** | 批評家 | デベロッパーの成果をスペックとプランに照らして検証し、リグレッションを見つけ、何かおかしいときには差し戻します。変更が完了と見なされる前の品質ゲートです。 |
14
+
15
+ これは **設計 → ビルド → レビュー** ——慎重な人間のチームがたどるのと同じループ——だと考えてください。各エージェントは自分の成果物を次のエージェントへ手渡すので、デベロッパーが手探りで作業することはなく、レビュアーは常に元々の意図と照らし合わせてチェックできます。
16
+
17
+ ## スペシャリストエージェント
18
+
19
+ トリオに加えて、プロジェクトには特定の種類の作業を担う任意の **スペシャリストエージェント** を含めることもできます。最もよく見かけるのは次のものです。
20
+
21
+ - **sr-merge-resolver** — マージコンフリクトを解きほぐし、重なり合う変更を調整するのを助けるユーティリティエージェントです。任意の存在で、欲しいときだけプロファイルに含めればよく、いなくてもパイプラインを止めることは決してありません。
22
+
23
+ スペシャリストはオプトイン方式です。新しいプロジェクトはトリオだけで動き、プロジェクトのワークフローが必要とするときに、スペシャリスト(そしてあなた自身の **カスタムエージェント** ——[カスタムエージェントとカタログ](custom-agents-catalog) を参照)を追加します。
24
+
25
+ ## タスクが正しいエージェントに届く仕組み
26
+
27
+ 1回の実行の中では、作業は *ルーティング* されます。タスクはタグを持ち、プロファイルのルーティングルールが、タグ付きのタスクをそれに最も適したエージェントへ送ります — そして最後に、それ以外のすべてをデベロッパーへ送る包括ルールがあります。通常の使い方ではこれを意識する必要はありません。デフォルト設定が、最初からすべてを適切にルーティングしてくれます。特定の種類の作業を特定のエージェントへ向けたくなったら、[エージェントごとのモデルのカスタマイズ](customizing-models-per-agent) を参照してください。
28
+
29
+ ## 最初に押さえておきたい大切な考え方
30
+
31
+ 各エージェントの *定義* ——その指示内容、その個性、できることの範囲—— は **共有** されます。これらはファイル(`.claude/agents/<id>.md`)として存在し、リポジトリと一緒に移動します。そのため、チーム全体が同じアーキテクト、同じレビュアーを動かすことになります。
32
+
33
+ 一方、**プロジェクトごと** になるのは、その上に重なる *設定* です: 各エージェントがどのモデルで動くか、そしてあるレールにどのエージェントの組み合わせを選ぶか。それこそがプロファイルの役割です —— そしてそれが次のページの話題です。
34
+
35
+ ## 次に読むなら
36
+
37
+ - [プロファイルとバランスの取れたデフォルト](profiles-and-the-balanced-default) — チームの設定がどうパッケージされ、選ばれるのか。
38
+ - [エージェントごとのモデルのカスタマイズ](customizing-models-per-agent) — コストと品質を調整する。
@@ -0,0 +1,45 @@
1
+ # プロファイルとバランスの取れたデフォルト
2
+
3
+ **プロファイル** とは、パイプライン実行のために保存されたレシピです。次の3つの問いに、ひとつの場所でまとめて答えてくれます。
4
+
5
+ 1. **どのエージェント** が参加するか(基本のトリオ、それに加えてスペシャリストやカスタムエージェント)。
6
+ 2. 各エージェントが **どのモデル** で動くか。
7
+ 3. タスクがそれらのエージェントへ **どうルーティングされるか**。
8
+
9
+ プロファイルは、どのプロジェクトでも **Agents** セクションにあります(右サイドバー → **Agents** → **Profiles** タブ)。
10
+
11
+ ## バランスの取れたデフォルト
12
+
13
+ 最初の状態では、プロジェクトは適切な **default** プロファイルに解決されます。これは基本のトリオ —— `sr-architect`、`sr-developer`、`sr-reviewer` —— を含み、単一の包括ルールを通じて、すべてのタスクをデベロッパーへルーティングします。モデルは日々の作業に向けてバランスよく選ばれており、肝心なところでは有能なモデルを使いつつ、すべてのステップで最も高価な選択肢に手を伸ばすことはありません。
14
+
15
+ もしプロジェクトで、すでに従来の方法(エージェントファイルのフロントマター)でエージェントのモデルを設定していた場合は、**Migrate** ボタンがそれらを読み取り、今の動作をそのまま忠実に再現する `default` プロファイルを作成します —— 損失ゼロで、あなたが調整しようと決めるまで何も変わりません。
16
+
17
+ 要点はこうです: **Specrails を使うのにプロファイルを作る必要はありません。** デフォルトのままでちゃんと動きます。プロファイルは、そこからさらに踏み込むための手段です。
18
+
19
+ ## 実行ごとにプロファイルが選ばれる仕組み
20
+
21
+ レールを起動すると、Specrails は次の順番でプロファイルを選びます。
22
+
23
+ 1. レールヘッダーでの **あなたの明示的な選択**(後述)。
24
+ 2. あなたの **開発者ごとの優先設定** —— このプロジェクトで自分用のデフォルトとして指定したプロファイル(あなたローカルのもので、コミットされません)。
25
+ 3. プロジェクトの **`default`** プロファイル。
26
+
27
+ プロファイルは *起動時にスナップショット* されるため、バッチ内の各レールはそれぞれ異なるプロファイルを実行でき、後からプロファイルを変更しても、すでに開始済みのジョブが書き換わることは決してありません。
28
+
29
+ ## レールごとにプロファイルを選ぶ
30
+
31
+ プロファイルの選択は、起動するまさにその場所 —— **レールヘッダー** のプロファイルセレクター —— で行います。
32
+
33
+ - ドロップダウンからプロファイルを選ぶと、**この起動だけ** に使われます。
34
+ - 固定オプションを使うと、そのプロファイルをそのレールの今後の標準の選択にできます。
35
+
36
+ これが流れのすべてです: プロファイルを選び、起動し、おしまい。同じバッチ内で並行するレールは、それぞれ自分のプロファイルを持てるので、ちょっとした修正と重めの機能を、別々の設定で並べて走らせることができます。
37
+
38
+ ## Agents セクションが静かなとき
39
+
40
+ プロファイルは Claude の機能です。Claude 以外のプロバイダー(Codex または Gemini)を含むプロジェクトでは、Agents セクションは非表示になり、レールはプロファイルなしで実行されます —— これはバグではなく想定どおりの動作です。プロファイルにはまた、プロジェクトに十分新しい `specrails-core` も必要です。古い場合は黄色のバナーが表示されます。作成したプロファイルは引き続き **保存** されます —— ただし core が更新されるまではパイプラインに影響しません。バナーに表示されたコマンドで更新すると、それらが有効になります。
41
+
42
+ ## 次に読むなら
43
+
44
+ - [エージェントごとのモデルのカスタマイズ](customizing-models-per-agent) — `fast` と `max` のプロファイルを作る。
45
+ - [カスタムエージェントとカタログ](custom-agents-catalog) — チームを眺め、拡張する。
@@ -0,0 +1,60 @@
1
+ # エージェントごとのモデルのカスタマイズ
2
+
3
+ プロファイルがもたらす最も役立つ機能は、ひとつだけ挙げるなら **各ステップに合ったモデルを選べること** です。プランニングのステップにはいちばん強力なモデルが値するかもしれませんが、ありふれたビルドのステップなら、もっと速くて安価なモデルでまったく問題ないかもしれません。プロファイルを使えば、それをそのまま表現できます。
4
+
5
+ ここで「共有」と「プロジェクトごと」の切り分けが効いてきます。
6
+
7
+ - エージェントの *定義* は、チーム全体で共有されたままです。
8
+ - *各エージェントが動くモデル* は、プロファイルの中で **プロジェクトごと** に設定され、あなたのプロジェクトだけに影響します。
9
+
10
+ モデルを変えると、そのプロジェクトのコストと振る舞いが変わります —— 他の誰かの設定や、エージェントの根底にある指示内容には一切触れずに。
11
+
12
+ ## エージェントが使うモデルを変更する
13
+
14
+ **Agents → Profiles** でプロファイルを選び、そのエージェントチェーンエディターを開きます。チェーン内の各エージェントにはモデルフィールドがあります。さらに、パイプラインのトップレベルの調整を担う **orchestrator**(オーケストレーター)のモデルもあります。
15
+
16
+ モデルの値はエイリアスです —— Claude の場合は `opus`、`sonnet`、`haiku`(最も有能 → 最も高速)です。エージェントごとに、使いたいエイリアスを設定してください。
17
+
18
+ - エージェントのモデルを **空欄** のままにすると、そのエージェントファイル自身のデフォルトにフォールバックします。
19
+ - 明示的に設定すると、このプロファイルだけで上書きします。
20
+
21
+ 保存すれば、そのプロファイルで次に起動されるレールは新しいモデルを使います。すでに実行中のジョブは、自分のスナップショットを保持します。
22
+
23
+ ## `fast` や `max` のようなプロファイルを作る
24
+
25
+ 自然なやり方は、ジョブに応じて使い分けられる、名前付きのプロファイルをいくつか用意することです。
26
+
27
+ **`fast` プロファイル** —— 小さくリスクの低い変更で、速さと小さめの請求額が欲しいとき:
28
+
29
+ - アーキテクト: 中程度または高速のモデル —— プランはシンプルなので。
30
+ - デベロッパー: 高速のモデル —— 変更は機械的なので。
31
+ - レビュアー: しっかりさせておきつつ、ここも少し削ってよいでしょう。
32
+
33
+ **`max` プロファイル** —— 厄介で失敗できない機能で、すべてのステップをできる限り鋭くしたいとき:
34
+
35
+ - アーキテクト、デベロッパー、レビュアー: すべてにわたって、いちばん強力なモデルを。
36
+
37
+ ### 作り方は2通り
38
+
39
+ 1. **複製して調整する** *(おすすめ)*。`default` プロファイルを選び、**Duplicate** で複製し、コピーに `fast` や `max` のようなケバブケースの名前を付けてから、各エージェントのモデルを調整します。動作実績のあるチェーンとルーティングを引き継いだうえで、変えたいところだけを変えられます。
40
+ 2. **空から始める。** **Blank profile**(空のプロファイル)を作り、チェーンを自分で組み立てます。その場合でも基本のトリオ(`sr-architect`、`sr-developer`、`sr-reviewer`)はすべて含める必要があり —— パイプラインは3つすべてに依存しています —— さらに、終端の包括ルーティングルールをちょうど1つ、必ず最後に置く必要があります。
41
+
42
+ プロファイル名は小文字のケバブケースです(例: `fast`、`max`、`cheap-and-cheerful`)。
43
+
44
+ ## タスクを特定のエージェントへルーティングする
45
+
46
+ プロファイルの **ルーティングルール** は、タグ付きタスクをどのエージェントが処理するかを決めます。各ルールはタスクのタグとターゲットエージェントを列挙し、タグが最初にマッチしたルールが勝ち、末尾にある単一の `default: true` ルールがそれ以外のすべてを受け止めます。ルーティング先に指定できるのは、実際にそのプロファイルのチェーンに含まれるエージェントだけです —— エディターがこれを強制します。
47
+
48
+ 日々の使い方ではルーティングに触れることはありません: 包括ルールが作業をデベロッパーへ送り、それで正しいのです。たとえば `migration` タグの付いた作業をデベロッパーではなくスペシャリストへ送りたい、といったときにタグルールの出番です。
49
+
50
+ ## 起動時にプロファイルを選ぶ
51
+
52
+ これらすべてが起動時に集約されます: レールヘッダーで、レールごとに `fast`、`max`、`default` を選びます。バッチではこれらを混在させられます —— ちょっとした修正は `fast` で、大きな機能は `max` で、両方同時に。選択の流れについては [プロファイルとバランスの取れたデフォルト](profiles-and-the-balanced-default) を参照してください。
53
+
54
+ ## 安全性についてのひとこと
55
+
56
+ プロファイルの削除は、進行中の作業にとって安全です: すでにそのプロファイルで起動済みのジョブはスナップショットを保持し、今後の起動は解決順序に沿って単にフォールバックします。気軽に試してください。
57
+
58
+ ## 次に読むなら
59
+
60
+ - [カスタムエージェントとカタログ](custom-agents-catalog) — チェーンに組み込むエージェントを追加する。
@@ -0,0 +1,43 @@
1
+ # カスタムエージェントとカタログ
2
+
3
+ プロファイルは *どのエージェントがどのモデルで動くか* を決めます。では、エージェントそのものはどこから来るのでしょうか? それが **Agents カタログ** です。
4
+
5
+ どのプロジェクトでも **Agents → Catalog** を開いてください。そのプロジェクトで利用できるすべてのエージェントを、2つのグループに分けて表示する読み取り専用のビューアーです。
6
+
7
+ - **アップストリームエージェント** —— `specrails-core` に付属するエージェント: 基本のトリオ(`sr-architect`、`sr-developer`、`sr-reviewer`)と、`sr-merge-resolver` のようなスペシャリストです。
8
+ - **カスタムエージェント** —— あなた自身が追加した、`custom-*` という名前のエージェントです。
9
+
10
+ 各カタログ項目には、そのエージェントが何のためのもので、どのデフォルトモデルを使うかが表示されるので、エージェントをプロファイルのチェーンに組み込む前に、全員の顔ぶれを確認できます。
11
+
12
+ ## カスタムエージェントを追加する
13
+
14
+ カスタムエージェントは、リポジトリの `.claude/agents/` 配下にある、`custom-<something>.md` という名前のただの Markdown ファイルです。そのファイルには、エージェントの指示内容(そのシステムプロンプト)と、デフォルトの `model:` を含む小さなフロントマターヘッダーが入っています。
15
+
16
+ ファイルがプロジェクトに存在すると、カタログにカスタムエージェントとして現れ、その id を任意のプロファイルのエージェントチェーンに追加できる(そしてそこへタスクをルーティングできる)ようになります。id はファイル名と一致している必要があります —— `custom-docs` という項目は `.claude/agents/custom-docs.md` に対応します。
17
+
18
+ カスタムエージェントはリポジトリの中に住んでいるので、**コミット可能なチームの資産** です: ファイルをコミットすれば、チーム全員がそのエージェントを手に入れます。これは Agents セクション全体を貫く中心的な考え方を映したものです ——
19
+
20
+ > **エージェントの定義は共有されます(リポジトリの中に住み、`git` とともに移動します)。モデルの設定はプロジェクトごとです(プロファイルの中に住みます)。**
21
+
22
+ `custom-*` の名前空間は予約され、保護されています: `specrails-core` の `init` コマンドと `update` コマンドは `.claude/agents/custom-*.md` に決して触れないので、あなたのカスタムエージェントは core のアップグレードを無傷で生き延びます。(同じ保護は、`custom-serena.md` のようなプラグイン提供のフラグメントにも及びます。)
23
+
24
+ ## カスタムエージェントを実際に使う
25
+
26
+ 典型的な流れは次のとおりです。
27
+
28
+ 1. 指示内容とデフォルトモデルを記した `.claude/agents/custom-<name>.md` を書く。
29
+ 2. それが **Agents → Catalog** の Custom に現れることを確認する。
30
+ 3. **Agents → Profiles** で、そのエージェントをプロファイルのチェーンに追加する(必要なら、そのプロファイル用にモデルを上書きする)。
31
+ 4. 適切なタグの付いたタスクがそのエージェントに届くようにルーティングルールを追加する —— あるいはチェーンの順序に任せる。
32
+ 5. レールヘッダーから、そのプロファイルでレールを起動する。
33
+
34
+ ## プロファイルの成績を観察する
35
+
36
+ Agents セクションには **Usage** タブもあります —— 選んだ期間のあいだに、各プロファイルでいくつのジョブが実行されたかを、プロファイルごとに内訳表示するものです。`fast` / `max` の使い分けが本当に意図どおりに使われているかをさっと確認したり、チームがどのプロファイルに引き寄せられているかを見つけたりするのに便利です。
37
+
38
+ ## セクション全体のおさらい
39
+
40
+ - **エージェント** は専門のチームメンバーです —— 共有のトリオに加えて、スペシャリストとあなたのカスタムエージェント。([エージェントの紹介](meet-the-agents))
41
+ - **プロファイル** は、どのエージェントがどのモデルで動き、タスクがどうルーティングされるかをパッケージし、起動時にレールごとに選択されます。デフォルトプロファイルは、日々のためのバランスの取れた選択肢です。([プロファイルとバランスの取れたデフォルト](profiles-and-the-balanced-default))
42
+ - **モデル** はプロファイルの中で、エージェントごと・プロジェクトごとに調整されます —— ジョブに合わせて `fast` と `max` を作りましょう。([エージェントごとのモデルのカスタマイズ](customizing-models-per-agent))
43
+ - **カタログ** はすべてのエージェントを表示し、`custom-*` の名前空間がチームを成長させてくれます —— 定義は共有、設定はプロジェクトごとに。
@@ -0,0 +1,49 @@
1
+ # specrails とは
2
+
3
+ **specrails** へようこそ。これは、AI コーディングアシスタントを、*あなた自身*のプロジェクトのために*あなた自身*のマシン上で働く本物のソフトウェアチームへと変えてくれるデスクトップアプリです。
4
+
5
+ プロンプトを行ったり来たりコピペする代わりに、やりたいことを **スペック**(spec)として記述するだけ。あとは specrails が、設計・実装・レビュー・出荷という完全な開発パイプラインにそれを通し、その様子をライブで見守れます。
6
+
7
+ ## スペック駆動の AI 開発
8
+
9
+ specrails の核にあるのは、とてもシンプルな考え方です。**AI から良いコードを引き出す一番の方法は、明確なスペックから始めること。**
10
+
11
+ *スペック* とは、ひとつの作業 — 機能追加、修正、リファクタリングなど — を簡潔かつ構造化して記述したものです。数秒で書くこともできますし、適切な問いを投げかけながら下書きまで仕上げてくれるガイド付きチャットで形にすることもできます。各スペックは、ほかの課題管理ツールのタスクと同じように、プロジェクトボード上の **チケット** になります。
12
+
13
+ あとは、そのスペックをパイプラインに渡し、面倒な作業を AI に任せるだけです。
14
+
15
+ ## パイプライン: Architect → Developer → Reviewer → Ship
16
+
17
+ スペックを起動すると、specrails はそれを 4 つのステージに通します。それぞれを、役割に特化した AI エージェントが担当します。
18
+
19
+ 1. **Architect** — スペックと周辺コードを読み込み、変更を計画します。どのファイルに手を入れるか、解決策の形はどうあるべきかを設計します。
20
+ 2. **Developer** — その計画に沿って、実際のコードを書きます。
21
+ 3. **Reviewer** — 成果物の正しさと品質をチェックし、あなたが気づく前に問題を見つけ出します。
22
+ 4. **Ship** — 変更を仕上げ、コミットできる状態に整えます。
23
+
24
+ 各ステージは実行中にそのまま表示され、AI からのログがリアルタイムでストリーミングされます。何も隠されていません。もし何かがおかしくなっても、どこで起きたのかが正確に分かります。
25
+
26
+ ## プロジェクト
27
+
28
+ specrails のすべては **プロジェクト** を中心に整理されています。プロジェクトとは、要するにコードベースを収めたコンピュータ上のフォルダのこと。好きなだけプロジェクトを追加でき、瞬時に切り替えられます。それぞれが独自のスペック、ジョブ履歴、分析、設定を保持します。
29
+
30
+ specrails が、あなたが頼んでもいないコードに手を出すことはありません。既存のリポジトリの中で動作し、何をコミットするかは常にあなたがコントロールします。
31
+
32
+ ## AI プロバイダーを選ぶ
33
+
34
+ specrails は、主要な AI コーディング CLI に対応しています。
35
+
36
+ - **Claude**(Claude Code)
37
+ - **Codex**(Codex CLI)
38
+ - **Gemini**(Gemini CLI)
39
+
40
+ すでに使っているものを選んでも、複数インストールしてタスクごとに使い分けてもかまいません。プロジェクトは単一のプロバイダーでも、複数同時でも動かせるので、特定のツールに縛られることはありません。
41
+
42
+ ## ここが気に入るはず
43
+
44
+ - **混乱のないスピード** — スペックが AI の焦点を保つので、当て推量の散らかった結果ではなく、役に立つ変更が得られます。
45
+ - **完全な可視性** — ライブログ、分かりやすいパイプラインビュー、プロジェクトごとの分析が、何が起きてコストがいくらだったかを正確に示します。
46
+ - **あなたのマシン、あなたのコード** — すべてがローカルで、実際のリポジトリに対して実行されます。
47
+ - **すべてが一か所に** — スペック、ジョブ、チャット、内蔵ターミナル、コスト追跡が、すべて 1 つのウィンドウにまとまっています。
48
+
49
+ さあ、始めましょう。次は [Installing & first run](installing-and-first-run) へ。
@@ -0,0 +1,42 @@
1
+ # インストールと初回起動
2
+
3
+ specrails をマシンに導入するのは、ほんの数分で終わります。ここでは、その流れをまるごと紹介します。
4
+
5
+ ## 1. ダウンロードしてインストールする
6
+
7
+ お使いのプラットフォーム用のインストーラーを入手しましょう。
8
+
9
+ - **macOS(Apple Silicon)** — `.dmg` ファイルです。開いて、**specrails** をアプリケーションフォルダにドラッグします。
10
+ - **Windows** — `.exe` セットアップインストーラーです。実行して、画面の指示に従ってください。
11
+
12
+ > **macOS と Windows のセキュリティ警告について**
13
+ >
14
+ > - **Windows** では、インストーラーがまだコード署名されていないため、SmartScreen が警告を表示することがあります。**詳細情報 → 実行** をクリックして続行してください。
15
+ > - **macOS** では、アプリは署名・公証済みなので、問題なく開けるはずです。
16
+
17
+ ## 2. 用意しておくもの(前提条件)
18
+
19
+ specrails は、実際のコマンドラインツールを動かして AI 開発パイプラインを実行します。そのため、いくつかのツールが利用できる状態になっている必要があります。うれしいことに、デスクトップアプリは **そのほとんどをあらかじめ同梱しています**(Node.js、npm、Git がアプリ内に含まれています)。なので、まっさらなマシンでも、たいていは何もインストールせずに済みます。
20
+
21
+ specrails が同梱できない唯一のものが、**AI プロバイダーの CLI** 本体です。次のうち、少なくともひとつが必要になります。
22
+
23
+ - **Claude Code**
24
+ - **Codex CLI**
25
+ - **Gemini CLI**
26
+
27
+ 使う予定のものをインストールし、ターミナルから一度サインインしておけば準備完了です。どのプロバイダーが入っているかは specrails が自動で検出します。
28
+
29
+ > もしどれかのツールが「見つからない」と表示された場合は、アプリが **詳細情報** リンクを示し、お使いの OS に合わせたコピペ用のインストールコマンド(macOS なら Homebrew、Windows なら winget、Linux なら apt/dnf)を案内します。再チェックはいつでも、再起動なしで行えます。
30
+
31
+ ## 3. 初回起動 — ウェルカム画面
32
+
33
+ specrails を初めて開くと、すっきりした **ウェルカム画面** が表示されます。まだプロジェクトがないので、最初のプロジェクトを追加するよう案内されます。
34
+
35
+ ここには次のものが表示されます。
36
+
37
+ - specrails が何をするものかの簡単な説明
38
+ - ひとつだけの **最初のプロジェクトを追加** ボタン
39
+
40
+ オンボーディングはこれだけ。アカウント作成もサインアップもありません。specrails はすべてあなたのマシン上で動作します。
41
+
42
+ **最初のプロジェクトを追加** をクリックして、[Adding your first project](adding-your-first-project) へ進みましょう。