specrails-desktop 2.8.0 → 2.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/README.md +23 -19
  2. package/client/dist/assets/{ActivityFeedPage-LKqd18-G.js → ActivityFeedPage-DpQzYMBz.js} +1 -1
  3. package/client/dist/assets/{AgentsPage-Cb-b-6Ot.js → AgentsPage-29fCY8qV.js} +1 -1
  4. package/client/dist/assets/{AnalyticsPage-HVxQQ1wy.js → AnalyticsPage-BwGtS6Hf.js} +1 -1
  5. package/client/dist/assets/{BarChart-BOyHB0dw.js → BarChart-CTR97DVC.js} +1 -1
  6. package/client/dist/assets/{CodePage-DnOnwKGB.js → CodePage-yAAxKasA.js} +1 -1
  7. package/client/dist/assets/{DesktopAnalyticsPage-D2auU39x.js → DesktopAnalyticsPage-BdK_XpsD.js} +1 -1
  8. package/client/dist/assets/{DocsDialog-CTuDX3GK.js → DocsDialog-BaE0cLlL.js} +2 -2
  9. package/client/dist/assets/{DocsPage-DRyMmu0Z.js → DocsPage-c1FgZX8_.js} +2 -2
  10. package/client/dist/assets/{ExportDropdown-DO-GGiMh.js → ExportDropdown-lPv_yDen.js} +1 -1
  11. package/client/dist/assets/{IntegrationsPage-BhbO4jFT.js → IntegrationsPage-DOpxRe7G.js} +1 -1
  12. package/client/dist/assets/{JobDetailPage-DJooEg1s.js → JobDetailPage-5ExzXY-F.js} +1 -1
  13. package/client/dist/assets/{JobsPage-BbaC-YOg.js → JobsPage-iW7WuPAc.js} +1 -1
  14. package/client/dist/assets/{dist-js-Xc2lRKp2.js → dist-js-A8aSaLng.js} +1 -1
  15. package/client/dist/assets/{dist-js-CiIVMsx3.js → dist-js-CD_m3Xj5.js} +1 -1
  16. package/client/dist/assets/index-D6BaYRRU.css +2 -0
  17. package/client/dist/assets/{index-DK214dak.js → index-DRhFPNAv.js} +44 -44
  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-1vkTuLY7.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/{tickets-9kdPXInd.js → tickets-CG_mo-Bg.js} +1 -1
  36. package/client/dist/assets/{tickets-n23kDqJT.js → tickets-CVJQ-vRm.js} +1 -1
  37. package/client/dist/assets/{tickets-tGx5AR5b.js → tickets-D5MSAPe_.js} +1 -1
  38. package/client/dist/assets/{tickets-1UIGf_oA.js → tickets-DBV3wgQZ.js} +1 -1
  39. package/client/dist/assets/{tickets-DNmXcAwu.js → tickets-Q0_pONEh.js} +1 -1
  40. package/client/dist/assets/{tickets-C6pwZwt4.js → tickets-RZ0LyeQe.js} +1 -1
  41. package/client/dist/assets/{tickets-DAjtxAVb.js → tickets-d1A6EOHa.js} +1 -1
  42. package/client/dist/assets/{tickets-0rM0lIXd.js → tickets-r4-oNV0R.js} +1 -1
  43. package/client/dist/assets/{useProjectCache-DVNypkmR.js → useProjectCache-CSi2xHri.js} +1 -1
  44. package/client/dist/index.html +5 -5
  45. package/docs/README.md +5 -2
  46. package/docs/agy-cli-provider-study.md +78 -0
  47. package/docs/cli.md +23 -4
  48. package/docs/codex.md +116 -58
  49. package/docs/creating-specs.md +19 -5
  50. package/docs/customizing.md +27 -6
  51. package/docs/gemini.md +225 -73
  52. package/docs/getting-started.md +18 -9
  53. package/docs/guide/de/agents/1-meet-the-agents.md +38 -0
  54. package/docs/guide/de/agents/2-profiles-and-the-balanced-default.md +45 -0
  55. package/docs/guide/de/agents/3-customizing-models-per-agent.md +60 -0
  56. package/docs/guide/de/agents/4-custom-agents-catalog.md +43 -0
  57. package/docs/guide/de/getting-started/1-what-is-specrails.md +49 -0
  58. package/docs/guide/de/getting-started/2-installing-and-first-run.md +42 -0
  59. package/docs/guide/de/getting-started/3-adding-your-first-project.md +58 -0
  60. package/docs/guide/de/getting-started/4-the-dashboard-tour.md +53 -0
  61. package/docs/guide/de/insights/1-analytics-and-cost-tracking.md +78 -0
  62. package/docs/guide/de/insights/2-the-integrated-terminal.md +46 -0
  63. package/docs/guide/de/insights/3-code-explorer.md +50 -0
  64. package/docs/guide/de/integrations/1-ai-providers.md +64 -0
  65. package/docs/guide/de/integrations/2-plugins.md +44 -0
  66. package/docs/guide/de/integrations/3-jira-integration.md +71 -0
  67. package/docs/guide/de/integrations/4-mobile-companion.md +38 -0
  68. package/docs/guide/de/pipeline/1-rails-and-jobs.md +94 -0
  69. package/docs/guide/de/pipeline/2-the-job-detail-view.md +90 -0
  70. package/docs/guide/de/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  71. package/docs/guide/de/pipeline/4-picking-an-engine-per-rail.md +60 -0
  72. package/docs/guide/de/settings/1-themes.md +37 -0
  73. package/docs/guide/de/settings/2-language.md +39 -0
  74. package/docs/guide/de/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  75. package/docs/guide/de/settings/4-where-your-data-lives.md +48 -0
  76. package/docs/guide/de/specs/1-specs-and-the-backlog.md +52 -0
  77. package/docs/guide/de/specs/2-add-spec-quick-mode.md +45 -0
  78. package/docs/guide/de/specs/3-add-spec-explore-mode.md +68 -0
  79. package/docs/guide/de/specs/4-drafts-and-contract-layer.md +81 -0
  80. package/docs/guide/en/agents/1-meet-the-agents.md +38 -0
  81. package/docs/guide/en/agents/2-profiles-and-the-balanced-default.md +45 -0
  82. package/docs/guide/en/agents/3-customizing-models-per-agent.md +60 -0
  83. package/docs/guide/en/agents/4-custom-agents-catalog.md +43 -0
  84. package/docs/guide/en/getting-started/1-what-is-specrails.md +49 -0
  85. package/docs/guide/en/getting-started/2-installing-and-first-run.md +42 -0
  86. package/docs/guide/en/getting-started/3-adding-your-first-project.md +58 -0
  87. package/docs/guide/en/getting-started/4-the-dashboard-tour.md +53 -0
  88. package/docs/guide/en/insights/1-analytics-and-cost-tracking.md +78 -0
  89. package/docs/guide/en/insights/2-the-integrated-terminal.md +46 -0
  90. package/docs/guide/en/insights/3-code-explorer.md +50 -0
  91. package/docs/guide/en/integrations/1-ai-providers.md +64 -0
  92. package/docs/guide/en/integrations/2-plugins.md +44 -0
  93. package/docs/guide/en/integrations/3-jira-integration.md +71 -0
  94. package/docs/guide/en/integrations/4-mobile-companion.md +38 -0
  95. package/docs/guide/en/pipeline/1-rails-and-jobs.md +94 -0
  96. package/docs/guide/en/pipeline/2-the-job-detail-view.md +90 -0
  97. package/docs/guide/en/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  98. package/docs/guide/en/pipeline/4-picking-an-engine-per-rail.md +60 -0
  99. package/docs/guide/en/settings/1-themes.md +37 -0
  100. package/docs/guide/en/settings/2-language.md +39 -0
  101. package/docs/guide/en/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  102. package/docs/guide/en/settings/4-where-your-data-lives.md +48 -0
  103. package/docs/guide/en/specs/1-specs-and-the-backlog.md +52 -0
  104. package/docs/guide/en/specs/2-add-spec-quick-mode.md +45 -0
  105. package/docs/guide/en/specs/3-add-spec-explore-mode.md +68 -0
  106. package/docs/guide/en/specs/4-drafts-and-contract-layer.md +81 -0
  107. package/docs/guide/es/agents/1-meet-the-agents.md +38 -0
  108. package/docs/guide/es/agents/2-profiles-and-the-balanced-default.md +45 -0
  109. package/docs/guide/es/agents/3-customizing-models-per-agent.md +60 -0
  110. package/docs/guide/es/agents/4-custom-agents-catalog.md +43 -0
  111. package/docs/guide/es/getting-started/1-what-is-specrails.md +49 -0
  112. package/docs/guide/es/getting-started/2-installing-and-first-run.md +42 -0
  113. package/docs/guide/es/getting-started/3-adding-your-first-project.md +58 -0
  114. package/docs/guide/es/getting-started/4-the-dashboard-tour.md +53 -0
  115. package/docs/guide/es/insights/1-analytics-and-cost-tracking.md +78 -0
  116. package/docs/guide/es/insights/2-the-integrated-terminal.md +46 -0
  117. package/docs/guide/es/insights/3-code-explorer.md +50 -0
  118. package/docs/guide/es/integrations/1-ai-providers.md +64 -0
  119. package/docs/guide/es/integrations/2-plugins.md +44 -0
  120. package/docs/guide/es/integrations/3-jira-integration.md +71 -0
  121. package/docs/guide/es/integrations/4-mobile-companion.md +38 -0
  122. package/docs/guide/es/pipeline/1-rails-and-jobs.md +94 -0
  123. package/docs/guide/es/pipeline/2-the-job-detail-view.md +90 -0
  124. package/docs/guide/es/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  125. package/docs/guide/es/pipeline/4-picking-an-engine-per-rail.md +60 -0
  126. package/docs/guide/es/settings/1-themes.md +37 -0
  127. package/docs/guide/es/settings/2-language.md +39 -0
  128. package/docs/guide/es/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  129. package/docs/guide/es/settings/4-where-your-data-lives.md +48 -0
  130. package/docs/guide/es/specs/1-specs-and-the-backlog.md +52 -0
  131. package/docs/guide/es/specs/2-add-spec-quick-mode.md +45 -0
  132. package/docs/guide/es/specs/3-add-spec-explore-mode.md +68 -0
  133. package/docs/guide/es/specs/4-drafts-and-contract-layer.md +81 -0
  134. package/docs/guide/fr/agents/1-meet-the-agents.md +38 -0
  135. package/docs/guide/fr/agents/2-profiles-and-the-balanced-default.md +45 -0
  136. package/docs/guide/fr/agents/3-customizing-models-per-agent.md +60 -0
  137. package/docs/guide/fr/agents/4-custom-agents-catalog.md +43 -0
  138. package/docs/guide/fr/getting-started/1-what-is-specrails.md +49 -0
  139. package/docs/guide/fr/getting-started/2-installing-and-first-run.md +42 -0
  140. package/docs/guide/fr/getting-started/3-adding-your-first-project.md +58 -0
  141. package/docs/guide/fr/getting-started/4-the-dashboard-tour.md +53 -0
  142. package/docs/guide/fr/insights/1-analytics-and-cost-tracking.md +78 -0
  143. package/docs/guide/fr/insights/2-the-integrated-terminal.md +46 -0
  144. package/docs/guide/fr/insights/3-code-explorer.md +50 -0
  145. package/docs/guide/fr/integrations/1-ai-providers.md +64 -0
  146. package/docs/guide/fr/integrations/2-plugins.md +44 -0
  147. package/docs/guide/fr/integrations/3-jira-integration.md +71 -0
  148. package/docs/guide/fr/integrations/4-mobile-companion.md +38 -0
  149. package/docs/guide/fr/pipeline/1-rails-and-jobs.md +94 -0
  150. package/docs/guide/fr/pipeline/2-the-job-detail-view.md +90 -0
  151. package/docs/guide/fr/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  152. package/docs/guide/fr/pipeline/4-picking-an-engine-per-rail.md +60 -0
  153. package/docs/guide/fr/settings/1-themes.md +37 -0
  154. package/docs/guide/fr/settings/2-language.md +39 -0
  155. package/docs/guide/fr/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  156. package/docs/guide/fr/settings/4-where-your-data-lives.md +48 -0
  157. package/docs/guide/fr/specs/1-specs-and-the-backlog.md +52 -0
  158. package/docs/guide/fr/specs/2-add-spec-quick-mode.md +45 -0
  159. package/docs/guide/fr/specs/3-add-spec-explore-mode.md +68 -0
  160. package/docs/guide/fr/specs/4-drafts-and-contract-layer.md +81 -0
  161. package/docs/guide/it/agents/1-meet-the-agents.md +38 -0
  162. package/docs/guide/it/agents/2-profiles-and-the-balanced-default.md +45 -0
  163. package/docs/guide/it/agents/3-customizing-models-per-agent.md +60 -0
  164. package/docs/guide/it/agents/4-custom-agents-catalog.md +43 -0
  165. package/docs/guide/it/getting-started/1-what-is-specrails.md +49 -0
  166. package/docs/guide/it/getting-started/2-installing-and-first-run.md +42 -0
  167. package/docs/guide/it/getting-started/3-adding-your-first-project.md +58 -0
  168. package/docs/guide/it/getting-started/4-the-dashboard-tour.md +53 -0
  169. package/docs/guide/it/insights/1-analytics-and-cost-tracking.md +78 -0
  170. package/docs/guide/it/insights/2-the-integrated-terminal.md +46 -0
  171. package/docs/guide/it/insights/3-code-explorer.md +50 -0
  172. package/docs/guide/it/integrations/1-ai-providers.md +64 -0
  173. package/docs/guide/it/integrations/2-plugins.md +44 -0
  174. package/docs/guide/it/integrations/3-jira-integration.md +71 -0
  175. package/docs/guide/it/integrations/4-mobile-companion.md +38 -0
  176. package/docs/guide/it/pipeline/1-rails-and-jobs.md +94 -0
  177. package/docs/guide/it/pipeline/2-the-job-detail-view.md +90 -0
  178. package/docs/guide/it/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  179. package/docs/guide/it/pipeline/4-picking-an-engine-per-rail.md +60 -0
  180. package/docs/guide/it/settings/1-themes.md +37 -0
  181. package/docs/guide/it/settings/2-language.md +39 -0
  182. package/docs/guide/it/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  183. package/docs/guide/it/settings/4-where-your-data-lives.md +48 -0
  184. package/docs/guide/it/specs/1-specs-and-the-backlog.md +52 -0
  185. package/docs/guide/it/specs/2-add-spec-quick-mode.md +45 -0
  186. package/docs/guide/it/specs/3-add-spec-explore-mode.md +68 -0
  187. package/docs/guide/it/specs/4-drafts-and-contract-layer.md +81 -0
  188. package/docs/guide/ja/agents/1-meet-the-agents.md +38 -0
  189. package/docs/guide/ja/agents/2-profiles-and-the-balanced-default.md +45 -0
  190. package/docs/guide/ja/agents/3-customizing-models-per-agent.md +60 -0
  191. package/docs/guide/ja/agents/4-custom-agents-catalog.md +43 -0
  192. package/docs/guide/ja/getting-started/1-what-is-specrails.md +49 -0
  193. package/docs/guide/ja/getting-started/2-installing-and-first-run.md +42 -0
  194. package/docs/guide/ja/getting-started/3-adding-your-first-project.md +58 -0
  195. package/docs/guide/ja/getting-started/4-the-dashboard-tour.md +53 -0
  196. package/docs/guide/ja/insights/1-analytics-and-cost-tracking.md +78 -0
  197. package/docs/guide/ja/insights/2-the-integrated-terminal.md +46 -0
  198. package/docs/guide/ja/insights/3-code-explorer.md +50 -0
  199. package/docs/guide/ja/integrations/1-ai-providers.md +64 -0
  200. package/docs/guide/ja/integrations/2-plugins.md +44 -0
  201. package/docs/guide/ja/integrations/3-jira-integration.md +71 -0
  202. package/docs/guide/ja/integrations/4-mobile-companion.md +38 -0
  203. package/docs/guide/ja/pipeline/1-rails-and-jobs.md +94 -0
  204. package/docs/guide/ja/pipeline/2-the-job-detail-view.md +90 -0
  205. package/docs/guide/ja/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  206. package/docs/guide/ja/pipeline/4-picking-an-engine-per-rail.md +60 -0
  207. package/docs/guide/ja/settings/1-themes.md +37 -0
  208. package/docs/guide/ja/settings/2-language.md +39 -0
  209. package/docs/guide/ja/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  210. package/docs/guide/ja/settings/4-where-your-data-lives.md +48 -0
  211. package/docs/guide/ja/specs/1-specs-and-the-backlog.md +52 -0
  212. package/docs/guide/ja/specs/2-add-spec-quick-mode.md +45 -0
  213. package/docs/guide/ja/specs/3-add-spec-explore-mode.md +68 -0
  214. package/docs/guide/ja/specs/4-drafts-and-contract-layer.md +81 -0
  215. package/docs/guide/pt/agents/1-meet-the-agents.md +38 -0
  216. package/docs/guide/pt/agents/2-profiles-and-the-balanced-default.md +45 -0
  217. package/docs/guide/pt/agents/3-customizing-models-per-agent.md +60 -0
  218. package/docs/guide/pt/agents/4-custom-agents-catalog.md +43 -0
  219. package/docs/guide/pt/getting-started/1-what-is-specrails.md +49 -0
  220. package/docs/guide/pt/getting-started/2-installing-and-first-run.md +42 -0
  221. package/docs/guide/pt/getting-started/3-adding-your-first-project.md +58 -0
  222. package/docs/guide/pt/getting-started/4-the-dashboard-tour.md +53 -0
  223. package/docs/guide/pt/insights/1-analytics-and-cost-tracking.md +78 -0
  224. package/docs/guide/pt/insights/2-the-integrated-terminal.md +46 -0
  225. package/docs/guide/pt/insights/3-code-explorer.md +50 -0
  226. package/docs/guide/pt/integrations/1-ai-providers.md +64 -0
  227. package/docs/guide/pt/integrations/2-plugins.md +44 -0
  228. package/docs/guide/pt/integrations/3-jira-integration.md +71 -0
  229. package/docs/guide/pt/integrations/4-mobile-companion.md +38 -0
  230. package/docs/guide/pt/pipeline/1-rails-and-jobs.md +94 -0
  231. package/docs/guide/pt/pipeline/2-the-job-detail-view.md +90 -0
  232. package/docs/guide/pt/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  233. package/docs/guide/pt/pipeline/4-picking-an-engine-per-rail.md +60 -0
  234. package/docs/guide/pt/settings/1-themes.md +37 -0
  235. package/docs/guide/pt/settings/2-language.md +39 -0
  236. package/docs/guide/pt/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  237. package/docs/guide/pt/settings/4-where-your-data-lives.md +48 -0
  238. package/docs/guide/pt/specs/1-specs-and-the-backlog.md +52 -0
  239. package/docs/guide/pt/specs/2-add-spec-quick-mode.md +45 -0
  240. package/docs/guide/pt/specs/3-add-spec-explore-mode.md +68 -0
  241. package/docs/guide/pt/specs/4-drafts-and-contract-layer.md +81 -0
  242. package/docs/guide/zh/agents/1-meet-the-agents.md +38 -0
  243. package/docs/guide/zh/agents/2-profiles-and-the-balanced-default.md +45 -0
  244. package/docs/guide/zh/agents/3-customizing-models-per-agent.md +60 -0
  245. package/docs/guide/zh/agents/4-custom-agents-catalog.md +43 -0
  246. package/docs/guide/zh/getting-started/1-what-is-specrails.md +49 -0
  247. package/docs/guide/zh/getting-started/2-installing-and-first-run.md +42 -0
  248. package/docs/guide/zh/getting-started/3-adding-your-first-project.md +58 -0
  249. package/docs/guide/zh/getting-started/4-the-dashboard-tour.md +53 -0
  250. package/docs/guide/zh/insights/1-analytics-and-cost-tracking.md +78 -0
  251. package/docs/guide/zh/insights/2-the-integrated-terminal.md +46 -0
  252. package/docs/guide/zh/insights/3-code-explorer.md +50 -0
  253. package/docs/guide/zh/integrations/1-ai-providers.md +64 -0
  254. package/docs/guide/zh/integrations/2-plugins.md +44 -0
  255. package/docs/guide/zh/integrations/3-jira-integration.md +71 -0
  256. package/docs/guide/zh/integrations/4-mobile-companion.md +38 -0
  257. package/docs/guide/zh/pipeline/1-rails-and-jobs.md +94 -0
  258. package/docs/guide/zh/pipeline/2-the-job-detail-view.md +90 -0
  259. package/docs/guide/zh/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  260. package/docs/guide/zh/pipeline/4-picking-an-engine-per-rail.md +60 -0
  261. package/docs/guide/zh/settings/1-themes.md +37 -0
  262. package/docs/guide/zh/settings/2-language.md +39 -0
  263. package/docs/guide/zh/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  264. package/docs/guide/zh/settings/4-where-your-data-lives.md +48 -0
  265. package/docs/guide/zh/specs/1-specs-and-the-backlog.md +52 -0
  266. package/docs/guide/zh/specs/2-add-spec-quick-mode.md +45 -0
  267. package/docs/guide/zh/specs/3-add-spec-explore-mode.md +68 -0
  268. package/docs/guide/zh/specs/4-drafts-and-contract-layer.md +81 -0
  269. package/docs/internals/README.md +1 -1
  270. package/docs/internals/adding-a-provider.md +192 -59
  271. package/docs/internals/api-reference.md +130 -21
  272. package/docs/internals/architecture.md +22 -9
  273. package/docs/internals/bundled-framework-build-plan.md +264 -0
  274. package/docs/internals/configuration.md +33 -8
  275. package/docs/internals/global-artifacts-alignment-contract.md +486 -0
  276. package/docs/internals/global-artifacts-relocation-evaluation.md +294 -0
  277. package/docs/internals/operations-runbook.md +16 -5
  278. package/docs/internals/profiles.md +42 -14
  279. package/docs/platforms/macos.md +27 -8
  280. package/docs/platforms/windows.md +20 -6
  281. package/docs/running-pipelines.md +17 -9
  282. package/docs/terminal.md +9 -3
  283. package/docs/tracking-cost.md +17 -11
  284. package/package.json +1 -1
  285. package/server/dist/agent-refine-manager.js +20 -5
  286. package/server/dist/artifact-registry.js +468 -0
  287. package/server/dist/attachment-manager.js +5 -8
  288. package/server/dist/browser-capture-manager.js +4 -4
  289. package/server/dist/bundled-core.js +72 -0
  290. package/server/dist/bundled-openspec.js +58 -0
  291. package/server/dist/chat-manager.js +42 -5
  292. package/server/dist/code-explorer-router.js +10 -7
  293. package/server/dist/config.js +7 -2
  294. package/server/dist/context-budget.js +17 -6
  295. package/server/dist/context-scope.js +6 -2
  296. package/server/dist/contract-refine-runner.js +31 -9
  297. package/server/dist/desktop-router.js +24 -1
  298. package/server/dist/docs-router.js +210 -132
  299. package/server/dist/file-summary-manager.js +41 -16
  300. package/server/dist/framework-manager.js +248 -0
  301. package/server/dist/framework-migration.js +308 -0
  302. package/server/dist/index.js +30 -0
  303. package/server/dist/install-config-path.js +73 -0
  304. package/server/dist/jira/jira-sync-manager.js +23 -11
  305. package/server/dist/openspec-shim.js +153 -0
  306. package/server/dist/plugins-router.js +19 -8
  307. package/server/dist/profiles-router.js +38 -16
  308. package/server/dist/project-registry.js +101 -3
  309. package/server/dist/project-router-chat.js +1 -1
  310. package/server/dist/project-router-helpers.js +25 -12
  311. package/server/dist/project-router-jobs.js +3 -3
  312. package/server/dist/project-router-settings.js +8 -6
  313. package/server/dist/project-router-setup.js +27 -10
  314. package/server/dist/project-router-spending.js +6 -1
  315. package/server/dist/project-router-tickets.js +30 -10
  316. package/server/dist/project-router.js +16 -1
  317. package/server/dist/queue-manager.js +149 -18
  318. package/server/dist/setup-manager.js +131 -29
  319. package/server/dist/smash-runner.js +21 -6
  320. package/server/dist/ticket-store.js +6 -2
  321. package/server/dist/ticket-watcher.js +5 -1
  322. package/server/dist/vitest-setup.js +25 -0
  323. package/server/dist/workspace-manager.js +199 -0
  324. package/server/dist/workspace-resolution.js +147 -0
  325. package/client/dist/assets/index-DgKfQFcf.css +0 -2
  326. package/client/dist/assets/setup-BIIkb-_K.js +0 -1
  327. package/client/dist/assets/setup-BeQxu9kD.js +0 -1
  328. package/client/dist/assets/setup-CPa6GnlI.js +0 -1
  329. package/client/dist/assets/setup-CZl4OEJx.js +0 -1
  330. package/client/dist/assets/setup-ChpodNfn.js +0 -1
  331. package/client/dist/assets/setup-D_fjJH6u.js +0 -1
  332. package/client/dist/assets/setup-YzD8DX4O.js +0 -1
  333. package/client/dist/assets/setup-fRpDozmq.js +0 -1
  334. package/docs/adding-a-provider.md +0 -107
@@ -0,0 +1,78 @@
1
+ # Batch implement et multi-fonctionnalité
2
+
3
+ Une spec à la fois, c'est très bien, mais beaucoup de travail réel arrive par grappes — une fonctionnalité plus ses tests plus sa migration, ou un backlog que vous voulez vider d'une traite. Cette page couvre l'exécution de plusieurs specs ensemble : le mode Batch, les vagues de dépendances, et comment le pipeline empêche le travail concurrent d'entrer en collision.
4
+
5
+ ## Exécuter plusieurs specs à la fois
6
+
7
+ La façon la plus simple de lancer une pile de specs depuis un seul rail, c'est le mode **Batch** :
8
+
9
+ 1. **Glissez toutes les specs** que vous voulez sur un même rail. Elles s'empilent dans la liste de specs de ce rail.
10
+ 2. **Basculez le mode du rail sur Batch** (le sélecteur segmenté dans l'en-tête du rail).
11
+ 3. **Appuyez sur ▶ Play.**
12
+
13
+ Le rail lance **un** job `/specrails:batch-implement` qui traite chaque spec assignée. Suivez-le comme n'importe quel autre job sur la page Jobs — c'est un seul job couvrant tout l'ensemble, pas un job par spec.
14
+
15
+ C'est important à cause de la **file d'attente d'un job par projet**. Puisqu'un projet n'exécute qu'un job de rail à la fois, le mode Batch est aussi le moyen le plus propre d'*enchaîner* une liste de specs sans jongler avec plusieurs rails ni attendre que chacun se vide.
16
+
17
+ ### Implement vs Batch — quel mode ?
18
+
19
+ | | **Implement** | **Batch** |
20
+ |---|---|---|
21
+ | Commande | `/specrails:implement` | `/specrails:batch-implement` |
22
+ | Specs par job | Toutes celles du rail, traitées comme une seule unité de travail | Toutes celles du rail, traitées **séquentiellement** |
23
+ | Idéal pour | Un changement fortement couplé | Plusieurs fonctionnalités distinctes que vous voulez traiter dans l'ordre |
24
+ | Ordonnancement | s/o | Vagues tenant compte des dépendances (voir ci-dessous) |
25
+
26
+ Si les specs ne forment réellement qu'un seul changement, utilisez **Implement**. Si c'est une liste de fonctionnalités séparées, utilisez **Batch** et laissez-le les séquencer.
27
+
28
+ ## Vagues de dépendances
29
+
30
+ Le mode Batch ne se contente pas d'exécuter les specs de haut en bas — il calcule un **ordre d'exécution tenant compte des dépendances** et regroupe les specs en *vagues*. L'orchestrateur (`/specrails:batch-implement`) détermine quelles specs dépendent de quelles autres, puis les planifie de sorte que rien ne s'exécute avant le travail sur lequel il s'appuie.
31
+
32
+ Conceptuellement :
33
+
34
+ ```
35
+ Vague 1 : #2 (modèle de données) ← aucune dépendance, s'exécute en premier
36
+ Vague 2 : #4 (API sur le modèle) ← attend #2
37
+ #5 (CLI sur le modèle) ← attend #2
38
+ Vague 3 : #7 (docs sur l'ensemble) ← attend #4 et #5
39
+ ```
40
+
41
+ Au sein du job, les specs de chaque vague sont implémentées avant que la vague suivante ne commence. Vous ne configurez rien à la main — l'orchestrateur déduit les vagues à partir des specs elles-mêmes. Regardez-le se dérouler dans la [vue détaillée du job](the-job-detail-view) : le log en streaming raconte sur quelle spec le batch travaille, et l'en-tête de ticket affiche chaque spec touchée par le job.
42
+
43
+ ## Isolation par worktree
44
+
45
+ Lorsque plusieurs specs sont implémentées en une seule exécution, le pipeline garde chaque unité de travail isolée pour que les changements concurrents ou séquentiels ne piétinent pas les fichiers des autres. L'orchestrateur de batch exécute l'implémentation de chaque spec dans son propre contexte de travail propre, puis intègre les résultats — ainsi une spec à moitié finie ne laisse jamais votre arbre dans un état intermédiaire cassé et visible par la suivante.
46
+
47
+ En pratique, cela signifie :
48
+
49
+ - Chaque spec part d'une page blanche pour son implémentation, plutôt que d'hériter des modifications en cours de la spec précédente.
50
+ - Les relectures et les étapes de ship opèrent sur un instantané cohérent, pas sur une cible mouvante.
51
+ - Un échec dans une vague est contenu — il ne corrompt pas silencieusement les specs déjà livrées.
52
+
53
+ L'application enregistre, par job, exactement quels fichiers ont été touchés et quel ticket les a touchés (vous verrez cela apparaître sous forme de puces de provenance dans la section **Code** et de liste « Fichiers touchés par ce ticket » dans la fenêtre de détail de chaque spec). Cette attribution est ce qui vous permet de faire confiance à une exécution multi-spec : vous pouvez toujours remonter d'une modification de fichier jusqu'à la spec qui l'a provoquée.
54
+
55
+ ## Multi-fonctionnalité entre projets
56
+
57
+ Si vous voulez un vrai parallélisme — deux grosses fonctionnalités qui se construisent en même temps — répartissez-les **entre projets**, pas entre rails d'un même projet. Chaque projet possède sa propre file d'attente indépendante, donc :
58
+
59
+ ```
60
+ Projet A ▶ Rail exécutant la fonctionnalité X ┐
61
+ ├─ s'exécutent simultanément
62
+ Projet B ▶ Rail exécutant la fonctionnalité Y ┘
63
+ ```
64
+
65
+ Il n'y a aucune limite globale de concurrence et aucune contention entre projets. Ouvrez les deux, lancez un rail dans chacun, et ils progressent ensemble. Le seul régulateur partagé est votre plafond de budget, qui met les files en pause par projet ou pour toute l'application dès que la dépense du jour atteint la limite.
66
+
67
+ ## Conseils pour les gros batchs
68
+
69
+ - **Regroupez les specs liées sur un seul rail** avant de basculer en Batch — les vagues de dépendances ne voient que ce qui se trouve sur ce rail.
70
+ - **Définissez un budget quotidien** avant un gros batch pour qu'une exécution inopinément coûteuse se mette en pause automatiquement au lieu de s'emballer. Configurez-le sous [Budget](../settings/customizing).
71
+ - **Utilisez le bouton Comparer** sur la page Jobs ensuite pour comparer deux exécutions de batch côte à côte.
72
+ - **Exportez un diagnostic** (si la télémétrie était active) pour obtenir l'instantané exact du profil et des plugins de tout le batch.
73
+
74
+ ## Où aller ensuite
75
+
76
+ - [Rails et jobs](rails-and-jobs) — le modèle de file d'attente en détail.
77
+ - [La vue détaillée du job](the-job-detail-view) — regarder un batch s'exécuter en direct.
78
+ - [Choisir un moteur par rail](picking-an-engine-per-rail) — notez que Batch fonctionne sur n'importe quel fournisseur ; Ultra est réservé à Claude.
@@ -0,0 +1,60 @@
1
+ # Choisir un moteur par rail
2
+
3
+ Specrails desktop traite **Claude Code**, **Codex CLI** et **Gemini CLI** comme des moteurs de premier plan. Un projet peut en avoir un, deux ou les trois installés — et lorsque plus d'un est présent, vous choisissez quel moteur exécute chaque rail. Cette page couvre le sélecteur de moteur par rail et le moment où choisir chacun.
4
+
5
+ ## Quand le sélecteur apparaît
6
+
7
+ Le **sélecteur de moteur** se trouve dans l'en-tête du rail, juste à côté du contrôle de mode. Il ne s'affiche que lorsque le projet possède **plus d'un** fournisseur installé.
8
+
9
+ > **Les projets mono-fournisseur se comportent de manière strictement identique.** Si un projet n'a qu'un seul moteur, aucun sélecteur n'apparaît et rien ne change quant à la sélection du fournisseur — il s'exécute simplement sur ce moteur. Le sélecteur est purement réservé aux projets multi-fournisseurs.
10
+
11
+ Quand il apparaît, votre choix se fait **par rail et par lancement** — différents rails peuvent exécuter différents moteurs, et votre choix est mémorisé par projet (avec, par défaut, le moteur principal du projet).
12
+
13
+ ## Comment choisir un moteur
14
+
15
+ 1. Assurez-vous que le sélecteur de moteur du rail est visible (le projet a 2 fournisseurs ou plus).
16
+ 2. Cliquez dessus et choisissez **Claude**, **Codex** ou **Gemini**.
17
+ 3. Lancez le rail avec **▶ Play**.
18
+
19
+ Le moteur sélectionné exécute chaque phase du pipeline de ce rail. Si la CLI du moteur choisi n'est pas installée, le lancement échoue immédiatement — rien ne démarre. Installez la CLI manquante et réessayez.
20
+
21
+ ## Les points forts de chaque moteur
22
+
23
+ Les trois exécutent les pipelines standards **Implement** et **Batch**. Voici un guide pratique pour choisir :
24
+
25
+ | Moteur | À privilégier quand… | Notes |
26
+ |--------|--------------------|-------|
27
+ | **Claude** | Vous voulez l'ensemble complet des fonctionnalités : profils d'agents, Ultracode, rapport de coût natif, le support d'outils le plus riche. Le choix par défaut pour la plupart du travail. | Le seul moteur qui prend en charge les **profils d'agents**, **Ultracode**, et quelques fonctionnalités de spec réservées à Claude (Contract Layer, SMASH). |
28
+ | **Codex** | Vous préférez la CLI Codex d'OpenAI ou vous voulez comparer les implémentations entre fournisseurs. | `codex` ≥ 0.128.0. Pas de rapport de coût natif — l'application complète le coût à partir de sa table de tarifs. Les profils ne s'appliquent pas. |
29
+ | **Gemini** | Vous voulez la CLI Gemini de Google, la télémétrie native, ou une exécution moins chère pour les specs de routine. | `gemini` ≥ 0.11.0 (définissez `GEMINI_API_KEY`). Télémétrie OTLP native. Les profils ne s'appliquent pas. |
30
+
31
+ ### Les fonctionnalités réservées à Claude
32
+
33
+ Quelques éléments ne fonctionnent que sur les rails Claude — choisissez Claude si vous en avez besoin :
34
+
35
+ - **Profils d'agents** — routage de modèle par agent. Sur les rails Codex ou Gemini, l'exécution utilise toujours le mode legacy et tout profil sélectionné est **ignoré**. Le sélecteur de profil est masqué pour les moteurs non-Claude.
36
+ - **Ultracode (mode `Ultra`)** — le mode autonome qui contourne le pipeline. Le segment `Ultra` et son sélecteur de modèle Haiku/Sonnet/Opus n'apparaissent que lorsque le moteur du rail est Claude.
37
+ - **Contract Layer et SMASH** — fonctionnalités de raffinement de spec réservées à Claude (ce sont des options d'Add Spec, pas des options de rail, mais la même contrainte s'applique).
38
+
39
+ Si un projet mélange les moteurs, la barre latérale droite n'affiche que les sections prises en charge par **tous** les fournisseurs installés — la section **Agents** disparaît donc entièrement sur un projet qui inclut un fournisseur non-Claude, car les profils sont spécifiques à Claude.
40
+
41
+ ## Un flux de travail pratique
42
+
43
+ Les projets multi-fournisseurs brillent lorsque vous voulez **comparer** ou **optimiser les coûts** :
44
+
45
+ - **Comparer les implémentations.** Mettez la même spec sur deux rails, réglez l'un sur Claude et l'autre sur Codex, lancez les deux (entre projets, ou l'un après l'autre dans la file du même projet), puis utilisez le bouton **Comparer** sur la page Jobs pour comparer les résultats.
46
+ - **Optimiser le coût par spec.** Exécutez les specs à fort enjeu sur Claude avec un profil `max` ; exécutez les specs de nettoyage de routine sur Gemini pour économiser. Filtrez `/analytics` par moteur pour voir la répartition.
47
+ - **Définir un défaut judicieux.** Désignez votre moteur le plus utilisé comme moteur principal du projet pour que les rails l'utilisent par défaut, et ne changez par rail que lorsqu'une spec particulière demande un moteur différent.
48
+
49
+ ## Points à garder en tête
50
+
51
+ - **La sélection des fournisseurs est immuable après la création du projet** (v1). Vous choisissez les fournisseurs installés au moment d'ajouter le projet ; il n'y a aucun réglage dans les Paramètres pour en ajouter ou en retirer un plus tard.
52
+ - **Le coût est toujours suivi**, même pour les moteurs sans rapport de coût natif — l'application se rabat sur une table de tarifs, de sorte que les exécutions Codex et Gemini apparaissent quand même dans les [analytics](../analytics/tracking-cost).
53
+ - **Le bouton « Open AI CLI » du terminal** propose également un sélecteur de fournisseur sur les projets multi-fournisseurs, si vous préférez piloter une CLI à la main.
54
+
55
+ ## Où aller ensuite
56
+
57
+ - [Utiliser Codex](../integrations/using-codex) — installation et connexion.
58
+ - [Utiliser Gemini](../integrations/using-gemini) — installation, `GEMINI_API_KEY`, télémétrie.
59
+ - [Rails et jobs](rails-and-jobs) — la file d'attente et le flux de lancement.
60
+ - [Suivre le coût](../analytics/tracking-cost) — répartition du coût par moteur.
@@ -0,0 +1,37 @@
1
+ # Thèmes
2
+
3
+ Donnez à Specrails l'allure qui vous plaît. L'application est livrée avec cinq thèmes peaufinés à la main que vous pouvez changer instantanément — sans redémarrage, sans recompilation, sans rien à configurer.
4
+
5
+ ## Les cinq thèmes intégrés
6
+
7
+ | Thème | Ambiance |
8
+ | --- | --- |
9
+ | **Specrails** | Le thème par défaut. Équilibré, apaisant, fidèle à la marque. |
10
+ | **Dracula** | Le grand classique sombre et violet. Doux pour les yeux la nuit. |
11
+ | **Aurora Light** | Un thème clair, lumineux et aéré pour travailler en journée. |
12
+ | **Obsidian Dark** | Un mode sombre profond et très contrasté. |
13
+ | **Matrix** | Du vert sur fond noir, pour quand vous avez envie de vous sentir dans le mainframe. |
14
+
15
+ ## Comment changer de thème
16
+
17
+ 1. Ouvrez les **Paramètres** (la fenêtre de paramètres globale de l'application).
18
+ 2. Rendez-vous dans la section **Apparence**.
19
+ 3. Choisissez un thème. Il s'applique immédiatement à toute l'application.
20
+
21
+ C'est tout. Le changement prend effet dès que vous cliquez — l'interface se recolore en direct.
22
+
23
+ ## Là où il s'applique
24
+
25
+ Votre choix de thème est valable pour **toute l'application**, pas projet par projet. Chaque projet, chaque page, chaque panneau suit le même thème. Il atteint même les endroits auxquels vous ne penseriez pas :
26
+
27
+ - **Le panneau de terminal** se recolore en direct, tout en préservant votre historique de défilement et toute session shell en cours.
28
+ - **Les graphiques** de la page Analytics se reteintent pour rester assortis.
29
+ - **La coloration syntaxique du code** dans la visionneuse Code suit elle aussi le thème.
30
+
31
+ ## Il se souvient de votre choix
32
+
33
+ Votre sélection est enregistrée avec l'application, donc elle reste en place d'un démarrage à l'autre. Pour éviter ce bref flash de mauvaises couleurs à la première ouverture, Specrails applique votre thème enregistré avant même que l'interface ait fini de charger — ce que vous voyez est donc correct dès la toute première image.
34
+
35
+ ## Une note pour les curieux
36
+
37
+ Les thèmes reposent sur un petit ensemble de rôles de couleur sémantiques (une couleur « accent », une couleur « surface », etc.) plutôt que sur des teintes codées en dur. C'est pour cela qu'ajouter le prochain thème est si simple et que chaque thème reste cohérent de l'intérieur — il lui suffit de réassigner ces rôles. Vous n'avez pas besoin de penser à tout cela pour l'utiliser ; c'est simplement la raison pour laquelle le thème paraît si fluide.
@@ -0,0 +1,39 @@
1
+ # Langue
2
+
3
+ Specrails parle votre langue. L'interface est entièrement traduite en huit langues et, par défaut, elle suit la langue configurée sur votre ordinateur — pour la plupart des gens, elle s'affiche donc d'emblée dans la bonne langue dès le premier lancement.
4
+
5
+ ## Langues prises en charge
6
+
7
+ - English
8
+ - Español (Spanish)
9
+ - Français (French)
10
+ - Deutsch (German)
11
+ - Português (Portuguese)
12
+ - Italiano (Italian)
13
+ - 中文 (Chinese)
14
+ - 日本語 (Japanese)
15
+
16
+ ## Elle démarre dans la langue de votre système
17
+
18
+ La première fois que vous ouvrez Specrails, l'application regarde les préférences linguistiques de votre système d'exploitation et les associe à la langue prise en charge la plus proche. Si votre Mac ou votre PC est en espagnol, vous verrez l'espagnol. S'il est réglé sur une variante régionale (comme `es-ES` ou `zh-Hans-CN`), Specrails la fait automatiquement correspondre à la bonne langue de base.
19
+
20
+ Vous n'avez rien à faire — et si vous ne touchez jamais au réglage de langue, Specrails continue de suivre votre système. Changez plus tard la langue de votre ordinateur, et Specrails s'aligne aussitôt.
21
+
22
+ ## Choisir une langue vous-même
23
+
24
+ Vous voulez autre chose que la langue de votre système ? Choisissez-la explicitement :
25
+
26
+ 1. Ouvrez les **Paramètres**.
27
+ 2. Rendez-vous dans la section **Langue**.
28
+ 3. Choisissez votre langue.
29
+
30
+ Le changement est **instantané** — toute l'interface se réaffiche dans la nouvelle langue, sans redémarrage. Dès que vous faites un choix explicite, Specrails le mémorise et cesse de suivre le système, si bien que votre préférence est respectée à chaque ouverture de l'application.
31
+
32
+ ## Ce qui est traduit
33
+
34
+ Tout ce que vous lisez dans l'interface — boutons, libellés, messages d'état, titres de page, boîtes de dialogue. Les dates s'adaptent elles aussi à la langue choisie, et sont donc formatées de la façon attendue dans cette langue.
35
+
36
+ ## Bon à savoir
37
+
38
+ - **L'anglais est la langue source.** Si une toute nouvelle fonctionnalité arrive avant la fin de sa traduction, vous pourrez voir brièvement un libellé en anglais ici ou là — il sera traduit dans une mise à jour suivante.
39
+ - Votre choix de langue vaut pour **toute l'application**, à l'identique sur tous vos projets.
@@ -0,0 +1,46 @@
1
+ # Télémétrie & diagnostics du pipeline
2
+
3
+ Quand un job de pipeline ne se déroule pas comme prévu, la télémétrie vous offre un compte rendu détaillé et en coulisses de ce que la CLI d'IA a réellement fait. Elle est **désactivée par défaut** et entièrement optionnelle, projet par projet — ne l'activez que lorsque vous en avez besoin.
4
+
5
+ ## De quoi s'agit-il
6
+
7
+ La télémétrie capture des signaux de diagnostic structurés (traces, métriques et logs) émis par la CLI d'IA pendant qu'elle exécute un job de pipeline. Voyez-la comme une boîte noire de vos exécutions de pipeline : minutages, usage de tokens et activité étape par étape, capturés localement pour que vous puissiez inspecter un job après coup.
8
+
9
+ Elle repose sur **OpenTelemetry**, un format ouvert et standard — vos données ne sont donc pas enfermées dans une boîte propriétaire.
10
+
11
+ ## L'activer
12
+
13
+ La télémétrie se configure **par projet** :
14
+
15
+ 1. Ouvrez la page **Paramètres** du projet (la route de paramètres propre au projet).
16
+ 2. Repérez l'interrupteur **Télémétrie du pipeline**.
17
+ 3. Activez-le.
18
+
19
+ À partir de là, les jobs de pipeline de ce projet enregistrent la télémétrie. Les autres projets ne sont pas affectés — chaque projet décide pour lui-même.
20
+
21
+ ### Ce qui est couvert
22
+
23
+ La télémétrie s'applique aux **jobs de pipeline** (les exécutions de rail en file Architect → Developer → Reviewer → Ship). Les sessions interactives comme le chat et l'assistant de configuration en sont volontairement exclues — la télémétrie est conçue pour les exécutions de pipeline répétables et inspectables, pas pour les conversations ponctuelles.
24
+
25
+ ## Où vivent les données
26
+
27
+ Tout reste sur votre machine, sous votre dossier personnel (`~/.specrails/`) — jamais dans votre dépôt. Les enregistrements bruts sont stockés compressés à côté de leur job, et les plus anciens sont automatiquement condensés en résumés compacts au bout d'une semaine pour garder le tout bien rangé. Vous n'avez jamais à gérer quoi que ce soit à la main.
28
+
29
+ ## Exporter un bundle de diagnostic
30
+
31
+ Le plus utile que débloque la télémétrie, c'est l'**export de diagnostic** — une unique archive ZIP qui rassemble tout ce qui concerne un job, pour le dépannage ou le partage.
32
+
33
+ Lorsqu'un job a de la télémétrie enregistrée, un **bouton d'export** apparaît sur sa carte de job. Cliquez dessus pour télécharger un ZIP contenant :
34
+
35
+ - **`job-metadata.json`** — l'identité et les paramètres du job
36
+ - **`telemetry.ndjson`** — les signaux bruts enregistrés
37
+ - **`logs.txt`** — la sortie de logs capturée
38
+ - **`summary.md`** — un résumé lisible de l'exécution
39
+
40
+ Si le projet utilise des plugins, le bundle inclut aussi un instantané des plugins qui étaient actifs pour ce job.
41
+
42
+ C'est le bundle à récupérer quand vous voulez comprendre une exécution délicate, en garder une trace, ou transmettre des détails à quelqu'un qui vous aide à déboguer.
43
+
44
+ ## Le désactiver
45
+
46
+ Remettez l'interrupteur en position désactivée à tout moment. Les nouveaux jobs cessent d'enregistrer immédiatement. Tout ce qui a déjà été capturé reste sur le disque jusqu'à sa compaction ou jusqu'à ce que vous supprimiez le projet — rien n'est envoyé où que ce soit ni perdu à votre insu.
@@ -0,0 +1,48 @@
1
+ # Où vivent vos données
2
+
3
+ En résumé : **Specrails garde vos dépôts impeccables.** Quand vous pointez l'application vers l'un de vos projets, elle ne s'y installe pas, n'éparpille pas des fichiers de configuration partout et ne réécrit rien que vous n'ayez demandé. Votre code reste le vôtre, et propre.
4
+
5
+ ## Votre dépôt reste propre
6
+
7
+ Les fichiers propres à Specrails — ses bases de données, l'état par projet, les définitions d'agents, les paramètres, la télémétrie, les résumés et tout le reste de ce dont il a besoin pour fonctionner — vivent dans un unique foyer bien rangé sous votre dossier personnel :
8
+
9
+ ```
10
+ ~/.specrails/
11
+ ```
12
+
13
+ Ce dossier est l'espace de travail privé de l'application. C'est là que résident le registre des projets, les bases de données par projet, l'outillage embarqué et tous les rouages opérationnels. Vos véritables dépôts de code ne servent jamais de décharge pour quoi que ce soit de tout cela.
14
+
15
+ Cela signifie :
16
+
17
+ - Le `.gitignore` de votre dépôt n'est **pas** réécrit par l'application.
18
+ - Votre dépôt n'est pas encombré de configs d'outils ni de répertoires d'état cachés.
19
+ - Retirer un projet de Specrails ne laisse aucun désordre derrière lui dans votre code.
20
+
21
+ Si vous avez déjà utilisé des outils qui ajoutaient discrètement des dossiers et des fichiers un peu partout dans votre projet, c'est ici une rupture assumée. Specrails est conçu pour que pointer l'application vers un dépôt soit un **non-événement** pour l'historique git de ce dépôt.
22
+
23
+ ## La seule chose qui *est* commitée — et c'est voulu
24
+
25
+ Il existe exactement une exception intentionnelle, et c'est tout l'intérêt de l'outil : **vos specs OpenSpec.**
26
+
27
+ Les specs vivent dans votre dépôt, sous :
28
+
29
+ ```
30
+ openspec/
31
+ ```
32
+
33
+ C'est volontaire. Vos specs sont un **livrable** — un enregistrement versionné et revuable de ce que vous avez décidé de construire et pourquoi. Elles ont leur place à côté de votre code, suivies dans git, visibles dans les pull requests, partagées avec votre équipe. C'est là toute la valeur : les specs ne sont pas un brouillon jetable, elles font partie de l'histoire de votre projet.
34
+
35
+ La règle est donc simple et honnête :
36
+
37
+ - **`openspec/`** → vit dans votre dépôt, commité, par conception.
38
+ - **Tout le reste dont Specrails a besoin** → vit sous `~/.specrails/`, hors de votre chemin.
39
+
40
+ ## Pourquoi ça marche ainsi
41
+
42
+ Specrails exécute l'outillage d'IA depuis son propre espace de travail privé (sous `~/.specrails/`) et ne revient dans votre véritable dépôt que pour les choses qui ont réellement besoin d'y toucher — lire votre code, et écrire les specs que vous avez demandées. L'outillage, les définitions du framework et toute la comptabilité restent dans le dossier personnel de l'application.
43
+
44
+ Le bénéfice pour vous : vous pouvez ajouter un projet, lancer des pipelines, explorer des specs et faire des essais en toute confiance, sachant que l'arborescence de travail et l'historique git de votre dépôt ne changent jamais que de la façon attendue — vos specs commitées, et le code que vos pipelines écrivent. Rien d'autre ne se glisse à l'intérieur.
45
+
46
+ ## Retirer un projet
47
+
48
+ Quand vous retirez un projet de Specrails, l'application nettoie son propre état par projet sous `~/.specrails/`. Les specs déjà commitées dans votre dépôt restent là où elles doivent être — dans votre dépôt — parce qu'elles sont à vous.
@@ -0,0 +1,52 @@
1
+ # Les specs et le backlog
2
+
3
+ Une **spec** est l'unité de travail que le pipeline IA met en œuvre. Voyez-la comme un ticket : un titre, une description de ce que vous voulez réaliser, une priorité et, en option, des labels. Quand vous lancez le pipeline, les agents IA lisent la spec et agissent à partir d'elle — une spec claire est donc l'élément le plus important pour obtenir un bon résultat.
4
+
5
+ Dans l'app, les specs sont parfois appelées **tickets** — les deux mots désignent exactement la même chose.
6
+
7
+ ## Le tableau
8
+
9
+ Chaque projet s'ouvre sur son **Dashboard**, qui affiche le **SpecsBoard** — la liste de toutes les specs du projet. C'est votre backlog. C'est d'ici que vous créez de nouvelles specs, définissez leur priorité, les glissez sur un rail pour les mettre en œuvre, et suivez l'évolution de leur statut au fil du travail.
10
+
11
+ Le tableau propose deux modes d'affichage, basculables depuis un bouton de la barre d'outils et mémorisés par projet :
12
+
13
+ - **Vue post-it** (par défaut) — des tuiles façon cartes avec de courts résumés.
14
+ - **Vue liste** — des lignes compactes sur une seule ligne.
15
+
16
+ Vous pouvez aussi filtrer par **statut** (Tous / À faire / Terminé) et par **label**, et trier par **Par défaut**, **Ticket #** ou **Priorité** (chacun avec un sens croissant/décroissant).
17
+
18
+ ## Les statuts
19
+
20
+ Une spec traverse un petit ensemble de statuts. Le tableau donne à chacun un repère visuel cohérent, pour que vous lisiez l'état de votre backlog d'un seul coup d'œil :
21
+
22
+ | Statut | Ce que ça signifie |
23
+ |--------|---------------|
24
+ | **Brouillon** | Une idée en cours, enregistrée depuis une conversation Explore. Pas encore prête à être mise en œuvre — vous pouvez y revenir et continuer à la façonner. Affiche une pastille `Draft`. |
25
+ | **À faire** | Prête à être prise en charge. C'est là qu'atterrit une spec finalisée lors de sa création. |
26
+ | **En cours** | Le pipeline travaille actuellement dessus (un point bleu qui pulse). |
27
+ | **Terminé** | Achevée par le pipeline (une coche verte). |
28
+ | **Annulé** | Abandonnée (une croix rouge). |
29
+
30
+ Les brouillons vivent dans le même groupe actif que les specs À faire — il n'y a pas de colonne séparée pour eux — mais ils arborent une bordure subtilement teintée et une pastille `Draft` pour être facilement repérables. Voir [Les brouillons et le Contract Layer](drafts-and-contract-layer.md) pour tout savoir sur les brouillons.
31
+
32
+ ## Les priorités
33
+
34
+ Toute spec non-brouillon possède une priorité : **Critique**, **Haute**, **Moyenne** ou **Basse**. La priorité est purement un outil d'organisation — elle vous aide à décider quoi mettre en œuvre ensuite et permet de trier le tableau. Vous la définissez à la création d'une spec, et vous pouvez la changer à tout moment via un clic droit sur la carte de la spec, en choisissant **Définir la priorité**.
35
+
36
+ Les brouillons sont la seule exception : un brouillon peut n'avoir *aucune* priorité, car c'est encore une idée en cours. La priorité est verrouillée au moment où vous validez le brouillon en spec à part entière.
37
+
38
+ ## Créer une spec
39
+
40
+ Pour créer une spec, cliquez sur **Ajouter** (le bouton Plus de la barre d'outils du SpecsBoard). La fenêtre **Ajouter une spec** s'ouvre, avec plusieurs façons de travailler :
41
+
42
+ - **Mode Quick** — vous décrivez ce que vous voulez et l'IA écrit la spec complète en un seul coup. Voir [Ajouter une spec — mode Quick](add-spec-quick-mode.md).
43
+ - **Mode Explore** — vous échangez avec l'IA, qui vous aide à façonner la spec tour après tour. Voir [Ajouter une spec — mode Explore](add-spec-explore-mode.md).
44
+ - **Mode Raw** — ce que vous tapez est enregistré tel quel comme spec, sans aucune intervention de l'IA. À utiliser quand vous avez déjà rédigé le texte de la spec.
45
+
46
+ Le choix dépend du degré de clarté de votre idée. Vous savez exactement ce que vous voulez ? Quick. Vous êtes encore en train d'y réfléchir ? Explore. Vous avez déjà le texte ? Raw.
47
+
48
+ ## Pour aller plus loin
49
+
50
+ - [Ajouter une spec — mode Quick](add-spec-quick-mode.md) — la façon la plus rapide de transformer une idée en spec.
51
+ - [Ajouter une spec — mode Explore](add-spec-explore-mode.md) — façonner une spec par la conversation.
52
+ - [Les brouillons et le Contract Layer](drafts-and-contract-layer.md) — enregistrer un travail en cours et enrichir les specs pour le pipeline.
@@ -0,0 +1,45 @@
1
+ # Ajouter une spec — mode Quick
2
+
3
+ Le mode Quick, c'est pour quand vous savez déjà ce que vous voulez. Vous tapez votre idée, l'IA écrit la spec complète, et elle atterrit sur votre tableau au statut **À faire**. Aucun aller-retour — vous décrivez et c'est parti.
4
+
5
+ ## Créer une spec en mode Quick
6
+
7
+ Pour créer une spec rapidement :
8
+
9
+ 1. Sur le Dashboard, cliquez sur **Ajouter** (le bouton Plus de la barre d'outils du SpecsBoard).
10
+ 2. Choisissez le mode **Quick**.
11
+ 3. Tapez votre idée dans le champ de texte — une phrase ou un paragraphe, ce qui la capture le mieux.
12
+ 4. Cliquez pour générer.
13
+
14
+ Pendant que la spec est rédigée, un petit toast dans le coin affiche le nom du projet, un extrait de votre idée et le **temps écoulé** (« Génération… 0:12 »). Une fois terminé, le toast bascule sur « Généré en <durée> » avec une action **Voir** qui vous emmène directement à votre nouvelle spec.
15
+
16
+ C'est tout le déroulé. Tout ce qui suit n'est qu'un réglage fin optionnel.
17
+
18
+ ## Ce que vous pouvez ajuster
19
+
20
+ **Modèle** — par défaut, l'IA choisit un modèle adapté. Vous pouvez le surcharger spec par spec depuis le sélecteur de modèle, si vous en voulez un plus rapide ou plus performant.
21
+
22
+ **Moteur** — si votre projet a plus d'un fournisseur IA installé (n'importe quelle combinaison de Claude, Codex et Gemini), un sélecteur de moteur figure en haut de la fenêtre pour choisir lequel génère cette spec. Votre choix est mémorisé par projet. Les projets à fournisseur unique ne l'affichent pas — il n'y a rien à choisir.
23
+
24
+ **Contexte** — le mode Quick s'exécute en général en un seul tour, car il n'a pas besoin de lire votre base de code pour rédiger une spec à partir de votre description. Mais un curseur de contexte lui permet de disposer de plus d'éléments :
25
+
26
+ - Au réglage le plus bas, il lit simplement votre description.
27
+ - Aux réglages plus élevés, il peut lire vos specs existantes, les specs OpenSpec de votre projet, et même l'intégralité de votre base de code avant de rédiger.
28
+
29
+ Plus vous lui donnez de contexte, plus la génération est longue (il passe en multi-tour pour pouvoir lire d'abord), mais la spec revient ancrée dans votre projet réel. Optez pour un contexte plus élevé quand la spec doit faire référence à du vrai code, à des noms de fichiers ou à un comportement existant.
30
+
31
+ **Pièces jointes** — déposez des maquettes, des briefs ou des fichiers de données dans le champ d'idée. L'IA les lit dans le cadre de la rédaction de la spec. (Les pièces jointes font aussi passer la génération en multi-tour.)
32
+
33
+ **Enrichir avec le Contract Layer** — un interrupteur qui ajoute un bloc structuré à la spec générée, pour que le pipeline en aval n'ait pas à deviner les noms ni les formes de données. C'est optionnel et désactivé par défaut ; votre dernier choix est mémorisé par projet. Voir [Les brouillons et le Contract Layer](drafts-and-contract-layer.md) pour ce qu'il apporte et quand cela en vaut la peine.
34
+
35
+ ## Quand utiliser le mode Quick plutôt qu'Explore
36
+
37
+ Utilisez **Quick** quand l'idée est déjà claire dans votre tête — vous pourriez écrire la spec vous-même, vous préférez juste que l'IA le fasse. Utilisez [**Explore**](add-spec-explore-mode.md) quand vous êtes encore en pleine réflexion et que vous voulez un partenaire pour vous aider à la façonner.
38
+
39
+ Une spec créée en mode Quick est une spec tout à fait normale : vous pouvez plus tard l'ouvrir et **Continuer l'édition** dans une session Explore si elle a besoin d'être affinée.
40
+
41
+ ## Pour aller plus loin
42
+
43
+ - [Ajouter une spec — mode Explore](add-spec-explore-mode.md) — pour les specs qui ont besoin d'être façonnées.
44
+ - [Les brouillons et le Contract Layer](drafts-and-contract-layer.md) — l'enrichissement Contract Layer expliqué.
45
+ - [Exécuter les pipelines](running-pipelines.md) — glissez votre nouvelle spec sur un rail et mettez-la en œuvre.
@@ -0,0 +1,68 @@
1
+ # Ajouter une spec — mode Explore
2
+
3
+ Le mode Explore, c'est une conversation. Au lieu d'écrire la spec vous-même, vous discutez de l'idée avec l'IA — elle joue les partenaires de réflexion, pose des questions, propose une structure et construit un **brouillon vivant** de la spec au fil de l'échange. Quand le résultat vous convient, vous validez le brouillon en spec à part entière.
4
+
5
+ Optez pour Explore quand l'idée n'est pas encore complètement formée, quand il y a des compromis à débattre, ou quand vous voulez que l'IA examine votre vrai code avant de figer la spec.
6
+
7
+ ## Créer une spec en mode Explore
8
+
9
+ Pour façonner une spec en mode Explore :
10
+
11
+ 1. Sur le Dashboard, cliquez sur **Ajouter**, puis choisissez **Explore**.
12
+ 2. Tapez votre premier message — l'idée, une question, ou une pensée encore brute.
13
+ 3. Lisez la réponse de l'IA et continuez à répondre. À chaque tour, elle affine sa compréhension.
14
+ 4. Observez le **brouillon vivant** se mettre à jour à côté du chat — c'est la spec qui prend forme.
15
+ 5. Quand le brouillon vous convient, cliquez sur **Créer la spec**.
16
+
17
+ La conversation reste dans votre historique : vous pouvez toujours y revenir pour voir comment la spec a été façonnée.
18
+
19
+ ## Le brouillon vivant
20
+
21
+ Au fil de l'échange, un volet de brouillon affiche la spec dans son état actuel — titre, description, priorité, labels, critères d'acceptation. Il se réécrit à chaque tour en fonction de ce que vous avez discuté. Vous ne l'éditez pas directement ; vous le pilotez par la conversation (« en fait, mets la priorité en haute », « ajoute un critère sur la gestion des erreurs », et ainsi de suite).
22
+
23
+ C'est tout le cœur du mode Explore : vous n'êtes jamais face à un formulaire vide. Vous regardez toujours une spec réelle, qui évolue.
24
+
25
+ ## Ce que l'IA voit : le curseur de contexte
26
+
27
+ Avant que l'IA ne réponde, vous décidez quelle part de votre projet elle peut voir. Un curseur de préréglages de contexte vous laisse arbitrer entre vitesse et profondeur :
28
+
29
+ | Préréglage | Ce que l'IA voit |
30
+ |--------|------------------|
31
+ | **Minimal** | Juste votre message. Le plus rapide et le moins cher. |
32
+ | **Léger** | + vos specs existantes. |
33
+ | **Standard** | + vos specs et les specs OpenSpec de votre projet. |
34
+ | **Riche** | + un accès en lecture à toute votre base de code, pour ancrer ses réponses dans du vrai code. |
35
+ | **Max** | Riche, plus une passe d'enrichissement Contract Layer à la validation. |
36
+ | **Desktop** | Max, plus les serveurs MCP de votre projet et vos propres serveurs MCP approuvés. |
37
+
38
+ Commencez bas pour un brainstorming rapide ; montez quand vous voulez que l'IA vérifie ses suggestions face à votre vrai code. Le choix est enregistré sur la conversation, il ne déborde donc pas sur les autres sessions Explore.
39
+
40
+ Si vous voulez un contrôle plus fin, cliquez sur **Réglages fins** pour basculer les options sous-jacentes à la main — y compris **Mes MCP approuvés**, qui charge les serveurs MCP que vous avez déjà approuvés localement sans ralentir la session.
41
+
42
+ ## Les boutons du panneau Explore
43
+
44
+ - **Créer la spec** — promeut le brouillon vivant en spec à part entière, au statut **À faire**. (Quand vous éditez une spec existante, ce bouton affiche plutôt **Mettre à jour la spec** et applique les modifications à cette spec en place.)
45
+ - **Vérifier →** — ouvre une surcouche de vérification qui montre la spec proposée comparée à la version de référence avant validation, pour éviter toute surprise.
46
+ - **Enregistrer comme brouillon** — conserve la conversation comme ticket brouillon pour la reprendre plus tard. Disponible dès que vous avez envoyé au moins un message. Voir ci-dessous.
47
+ - **Réduire** — range la conversation sous forme de pastille dans le dock des chats réduits, en bas à gauche. Cliquez sur la pastille à tout moment pour replonger directement dans la conversation — rien n'est perdu.
48
+ - **Abandonner** — jette la conversation (avec une demande de confirmation au préalable).
49
+
50
+ ## Enregistrer comme brouillon
51
+
52
+ Pas prêt à valider, mais vous ne voulez pas perdre votre réflexion ? Cliquez sur **Enregistrer comme brouillon**. La conversation devient une **spec brouillon** sur votre tableau, et le brouillon reste lié à la conversation qui le sous-tend.
53
+
54
+ Plus tard, ouvrez le brouillon depuis le tableau et cliquez sur **Continuer l'édition** — la conversation d'origine se rouvre avec tout son historique de chat intact, et vous reprenez exactement là où vous vous étiez arrêté. Les brouillons ne sont jamais supprimés automatiquement ; ils vous attendent.
55
+
56
+ C'est ce qui rend Explore sans risque pour les idées à moitié cuites : démarrez une conversation, avancez un peu, enregistrez-la comme brouillon, et revenez demain.
57
+
58
+ Pour tout savoir sur les brouillons — y compris l'enrichissement Contract Layer — voir [Les brouillons et le Contract Layer](drafts-and-contract-layer.md).
59
+
60
+ ## Note multi-fournisseur
61
+
62
+ Si votre projet a plus d'un fournisseur IA installé, un sélecteur de moteur vous laisse choisir lequel pilote la conversation Explore. Les projets à fournisseur unique ne l'affichent pas.
63
+
64
+ ## Pour aller plus loin
65
+
66
+ - [Les brouillons et le Contract Layer](drafts-and-contract-layer.md) — enregistrer un travail en cours et enrichir les specs pour le pipeline.
67
+ - [Ajouter une spec — mode Quick](add-spec-quick-mode.md) — quand l'idée est déjà claire.
68
+ - [Exécuter les pipelines](running-pipelines.md) — mettez votre spec en œuvre une fois qu'elle est prête.
@@ -0,0 +1,81 @@
1
+ # Les brouillons et le Contract Layer
2
+
3
+ Cette page couvre deux façons de tirer davantage de vos specs : les **brouillons** (enregistrer une idée en cours pour la reprendre plus tard) et le **Contract Layer** (un enrichissement optionnel qui rend les specs plus précises pour le pipeline IA).
4
+
5
+ ## Les brouillons : enregistrer une idée en cours
6
+
7
+ Un **brouillon** est une conversation [Explore](add-spec-explore-mode.md) en cours, enregistrée comme spec. Il vous permet de vous arrêter au milieu d'une réflexion sans rien perdre, et de revenir quand vous êtes prêt.
8
+
9
+ ### Enregistrer un brouillon
10
+
11
+ Pendant une conversation Explore, cliquez sur **Enregistrer comme brouillon** (disponible dès que vous avez envoyé au moins un message). L'app :
12
+
13
+ - Crée une spec au statut **Brouillon** sur votre tableau.
14
+ - Lui attribue un titre automatiquement si vous n'en avez pas défini (un court résumé de la conversation).
15
+ - La relie à la conversation, de sorte que tout l'historique de chat est préservé.
16
+
17
+ L'enregistrement est idempotent — si vous enregistrez deux fois la même conversation, le brouillon existant est mis à jour au lieu de créer un doublon.
18
+
19
+ ### À quoi ressemblent les brouillons sur le tableau
20
+
21
+ Les brouillons vivent dans le même groupe actif que vos specs À faire — il n'y a pas de colonne séparée. Vous les repérez grâce à :
22
+
23
+ - Une pastille `Draft` à l'emplacement où se trouve habituellement la pastille de priorité.
24
+ - Une bordure subtilement teintée sur la carte.
25
+
26
+ Un brouillon a le droit de n'avoir *aucune priorité* — vous définissez la priorité au moment où vous le validez en spec à part entière.
27
+
28
+ ### Reprendre un brouillon
29
+
30
+ Pour reprendre là où vous vous étiez arrêté :
31
+
32
+ 1. Ouvrez le brouillon depuis le tableau.
33
+ 2. Cliquez sur **Continuer l'édition** dans la fenêtre de détail.
34
+ 3. La conversation Explore d'origine se rouvre avec tout son historique de chat, et le volet de brouillon vivant pré-rempli avec tout ce que vous aviez déjà façonné.
35
+ 4. Continuez à discuter. Quand vous avez terminé, **Créer la spec** promeut le brouillon en spec à part entière (statut **À faire**, avec la priorité que vous choisissez).
36
+
37
+ ### Abandonner un brouillon
38
+
39
+ Les brouillons ne sont **jamais supprimés automatiquement**. Ils ne disparaissent que lorsque vous les abandonnez explicitement, ou lorsque vous les validez vers un vrai statut. Abandonner un brouillon nettoie aussi la conversation qui lui est liée lorsque plus rien d'autre n'y fait référence.
40
+
41
+ > Astuce : quand vous n'êtes pas sûr qu'une spec vaille le coup, enregistrez-la comme brouillon et laissez-la reposer. Rouvrez-la le lendemain matin, parcourez la description, et décidez avec un regard neuf.
42
+
43
+ ## Le Contract Layer : de la précision pour le pipeline
44
+
45
+ Le **Contract Layer** est un enrichissement optionnel qui ajoute un bloc structuré à la description d'une spec. Son rôle est de supprimer les devinettes pour les agents IA qui mettent en œuvre la spec — afin qu'ils réutilisent les bons noms, respectent les formes de données attendues et touchent aux bons fichiers, au lieu d'inventer les leurs.
46
+
47
+ ### Ce qu'il ajoute
48
+
49
+ Le Contract Layer se compose de cinq courtes sections ajoutées à la spec :
50
+
51
+ - **Naming Contract** — les identifiants exacts (fonctions, champs, routes) que l'implémentation devrait réutiliser.
52
+ - **Data Shapes** — les payloads façon JSON impliqués.
53
+ - **State Machine** — les transitions ou états que la fonctionnalité traverse.
54
+ - **Invariants** — les propriétés qui doivent toujours rester vraies.
55
+ - **File Touch List** — les fichiers que l'implémentation est censée modifier.
56
+
57
+ Voyez-le comme remettre au pipeline un plan précis plutôt qu'une esquisse. C'est particulièrement précieux pour les specs qui s'intègrent à du code existant, où l'IA, en devinant un nom ou une forme, causerait du retravail.
58
+
59
+ ### Comment l'ajouter
60
+
61
+ Le Contract Layer s'applique de trois façons :
62
+
63
+ - **Mode Quick** — activez l'interrupteur **Enrichir avec le Contract Layer** avant de générer. Votre dernier choix est mémorisé par projet. (Voir [Ajouter une spec — mode Quick](add-spec-quick-mode.md).)
64
+ - **Mode Explore** — choisissez le préréglage de contexte **Max** ou **Desktop** (qui exécutent l'enrichissement automatiquement à la validation), ou ouvrez **Réglages fins** et activez-le à la main. (Voir [Ajouter une spec — mode Explore](add-spec-explore-mode.md).)
65
+ - **Sur une spec existante** — ouvrez la fenêtre de détail de la spec et relancez l'enrichissement depuis là.
66
+
67
+ ### Où il apparaît
68
+
69
+ Une fois qu'une spec dispose d'un Contract Layer, la fenêtre de détail l'affiche sous forme de bloc dépliable avec un badge du type `3/5 renseignés` — qui vous indique combien des cinq sections ont effectivement été remplies (certaines fonctionnalités n'ont tout simplement pas, par exemple, de state machine, et ces sections sont marquées comme non applicables). Dépliez-le pour lire le contrat complet ; repliez-le pour garder la description épurée.
70
+
71
+ Si l'enrichissement échoue un jour, l'app affiche une notification avec une action **Réessayer** pour le relancer.
72
+
73
+ ### Est-ce que ça en vaut toujours la peine ?
74
+
75
+ Pas toujours. Pour une petite spec autonome, l'IA peut très bien la mettre en œuvre sans. Le Contract Layer prouve sa valeur sur les specs qui s'intègrent étroitement à du code existant, là où les noms et les formes exacts comptent — c'est dans ces cas que figer le contrat en amont vous épargne une série de corrections plus tard.
76
+
77
+ ## Pour aller plus loin
78
+
79
+ - [Ajouter une spec — mode Explore](add-spec-explore-mode.md) — d'où viennent les brouillons.
80
+ - [Ajouter une spec — mode Quick](add-spec-quick-mode.md) — l'interrupteur Contract Layer en mode Quick.
81
+ - [Exécuter les pipelines](running-pipelines.md) — mettez une spec en œuvre une fois qu'elle est prête.
@@ -0,0 +1,38 @@
1
+ # Conosci gli agenti
2
+
3
+ Quando avvii un rail di tipo **Implement**, Specrails non affida la tua spec a una singola AI sperando che vada bene. Mette al lavoro una piccola squadra di *agenti* specializzati, ognuno con un compito preciso, in un ordine ben pensato. Questa pagina ti presenta chi fa parte della squadra e di cosa si occupa ciascuno.
4
+
5
+ ## Il trio di base
6
+
7
+ Ogni esecuzione della pipeline usa questi tre agenti: sono la colonna portante, e un progetto non può avviare un rail senza di loro.
8
+
9
+ | Agente | Ruolo | Cosa fa |
10
+ |-------|------|--------------|
11
+ | **sr-architect** | Il pianificatore | Legge la tua spec, ispeziona il codice e produce un piano di implementazione concreto: quali file toccare, che forma assume la modifica, a cosa fare attenzione. Pensa prima che qualcuno scriva una riga di codice. |
12
+ | **sr-developer** | Il costruttore | Prende il piano dell'architect e scrive davvero il codice: nuovi file, modifiche, test. È qui che la tua spec si trasforma in un diff reale. |
13
+ | **sr-reviewer** | Il critico | Valida il lavoro del developer rispetto alla spec e al piano, intercetta le regressioni e si oppone quando qualcosa non torna. È il controllo di qualità prima che la modifica sia considerata conclusa. |
14
+
15
+ Pensalo come **progetta → costruisci → revisiona**, lo stesso ciclo che seguirebbe una squadra umana attenta. Ogni agente passa il proprio risultato al successivo, così il developer non lavora mai alla cieca e il reviewer ha sempre l'intento originale con cui fare il confronto.
16
+
17
+ ## Agenti specialisti
18
+
19
+ Oltre al trio, un progetto può includere **agenti specialisti** opzionali che si occupano di tipi di lavoro specifici. Il più comune che ti capiterà di vedere è:
20
+
21
+ - **sr-merge-resolver** — un agente di utilità che aiuta a districare i conflitti di merge e a riconciliare modifiche che si sovrappongono. È opzionale: i profili lo includono solo se lo desideri, e non blocca mai la pipeline quando è assente.
22
+
23
+ Gli specialisti sono opzionali. Un progetto appena creato gira con il solo trio; aggiungi gli specialisti (e i tuoi **agenti custom** — vedi [Agenti custom e il catalogo](custom-agents-catalog)) quando il flusso di lavoro di un progetto lo richiede.
24
+
25
+ ## Come i task raggiungono l'agente giusto
26
+
27
+ All'interno di un'esecuzione, il lavoro viene *instradato*. Un task porta con sé dei tag, e le regole di routing di un profilo inviano i task taggati all'agente più adatto a gestirli — con una regola finale "cattura-tutto" che manda tutto il resto al developer. Per l'uso normale non devi preoccupartene: la configurazione predefinita instrada ogni cosa in modo sensato già di default. Quando vorrai indirizzare tipi di lavoro specifici verso agenti specifici, dai un'occhiata a [Personalizzare i modelli per agente](customizing-models-per-agent).
28
+
29
+ ## Un'idea importante, da subito
30
+
31
+ La *definizione* di ciascun agente — le sue istruzioni, la sua personalità, ciò che gli è consentito fare — è **condivisa**. Queste definizioni vivono come file (`.claude/agents/<id>.md`) che viaggiano insieme al tuo repository, così tutta la tua squadra usa lo stesso architect, lo stesso reviewer.
32
+
33
+ Ciò che invece è **per progetto** è la *configurazione* che ci sta sopra: con quale modello gira ciascun agente e quale combinazione di agenti scegli per un dato rail. È a questo che servono i profili — ed è proprio l'argomento della prossima pagina.
34
+
35
+ ## Dove andare adesso
36
+
37
+ - [Profili e il default bilanciato](profiles-and-the-balanced-default) — come la configurazione della squadra viene impacchettata e selezionata.
38
+ - [Personalizzare i modelli per agente](customizing-models-per-agent) — bilancia costo e qualità.