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 e multi-feature
2
+
3
+ Uma spec de cada vez está bem, mas muito do trabalho real vem em conjuntos — uma feature mais os seus testes mais a sua migração, ou um backlog que quer despachar numa só sessão. Esta página cobre correr várias specs em conjunto: o modo Batch, as ondas de dependências e como o pipeline impede que trabalho concorrente colida.
4
+
5
+ ## Correr várias specs ao mesmo tempo
6
+
7
+ A forma mais simples de correr um monte de specs a partir de um rail é o modo **Batch**:
8
+
9
+ 1. **Arraste todas as specs** que quer para um único rail. Empilham-se na lista de specs desse rail.
10
+ 2. **Mude o modo do rail para Batch** (o controlo segmentado no cabeçalho do rail).
11
+ 3. **Carregue em ▶ Play.**
12
+
13
+ O rail lança **um** job `/specrails:batch-implement` que trabalha cada spec atribuída. Monitorize-o como qualquer outro job na página Jobs — é um único job que cobre todo o conjunto, não um job por spec.
14
+
15
+ Isto importa por causa da **fila de um job por projeto**. Como um projeto só corre um job de rail de cada vez, o modo Batch é também a forma mais limpa de *encadear* uma lista de specs sem andar a fazer malabarismo com vários rails e à espera que cada um esvazie.
16
+
17
+ ### Implement vs Batch — que modo?
18
+
19
+ | | **Implement** | **Batch** |
20
+ |---|---|---|
21
+ | Comando | `/specrails:implement` | `/specrails:batch-implement` |
22
+ | Specs por job | Todas as do rail, tratadas como uma unidade de trabalho | Todas as do rail, trabalhadas **sequencialmente** |
23
+ | Ideal para | Uma alteração fortemente acoplada | Várias features distintas que quer despachar por ordem |
24
+ | Ordenação | n/a | Ondas que respeitam as dependências (ver abaixo) |
25
+
26
+ Se as specs são realmente uma só alteração, use **Implement**. Se são uma lista de features separadas, use **Batch** e deixe-o sequenciá-las.
27
+
28
+ ## Ondas de dependências
29
+
30
+ O modo Batch não corre as specs simplesmente de cima para baixo — calcula uma **ordem de execução que respeita as dependências** e agrupa as specs em *ondas*. O orquestrador (`/specrails:batch-implement`) descobre quais specs dependem de quais e depois agenda-as de forma a que nada corra antes do trabalho em que assenta.
31
+
32
+ Conceptualmente:
33
+
34
+ ```
35
+ Onda 1: #2 (modelo de dados) ← sem dependências, corre primeiro
36
+ Onda 2: #4 (API sobre o modelo) ← espera por #2
37
+ #5 (CLI sobre o modelo) ← espera por #2
38
+ Onda 3: #7 (docs sobre tudo) ← espera por #4 e #5
39
+ ```
40
+
41
+ Dentro do job, as specs de cada onda são implementadas antes de a onda seguinte começar. Não configura isto à mão — o orquestrador deriva as ondas a partir das próprias specs. Veja-o desenrolar-se na [vista de detalhe do job](the-job-detail-view): o log em streaming narra em que spec o batch está, e o cabeçalho de tickets mostra todas as specs que o job tocou.
42
+
43
+ ## Isolamento por worktree
44
+
45
+ Quando várias specs são implementadas numa só execução, o pipeline mantém cada unidade de trabalho isolada para que alterações concorrentes ou sequenciais não pisem os ficheiros umas das outras. O orquestrador de batch corre a implementação de cada spec no seu próprio contexto de trabalho limpo e depois integra os resultados — por isso uma spec a meio nunca deixa a sua árvore num estado intermédio partido visível para a seguinte.
46
+
47
+ Na prática isto significa:
48
+
49
+ - Cada spec recebe um ponto de partida limpo para implementar, em vez de herdar as edições em curso da spec anterior a meio do processo.
50
+ - As revisões e os passos de ship operam sobre um snapshot coerente, não sobre um alvo em movimento.
51
+ - Uma falha numa onda fica contida — não corrompe em silêncio as specs que já foram entregues.
52
+
53
+ A app regista, por job, exatamente que ficheiros foram tocados e qual ticket os tocou (vai ver isto surgir como chips de proveniência na secção **Code** e como uma lista "Ficheiros tocados por este ticket" na modal de detalhe de cada spec). É essa atribuição que lhe permite confiar numa execução com várias specs: pode sempre rastrear uma alteração de ficheiro até à spec que a causou.
54
+
55
+ ## Multi-feature entre projetos
56
+
57
+ Se quiser paralelismo genuíno — duas grandes features a construir ao mesmo tempo — divida-as **entre projetos**, não entre rails de um mesmo projeto. Cada projeto tem a sua fila independente, por isso:
58
+
59
+ ```
60
+ Projeto A ▶ Rail a correr a feature X ┐
61
+ ├─ correm em simultâneo
62
+ Projeto B ▶ Rail a correr a feature Y ┘
63
+ ```
64
+
65
+ Não há limite global de concorrência nem disputa entre projetos. Abra os dois, lance um rail em cada e progridem juntos. O único limitador partilhado é o seu limite de orçamento, que pausa as filas por projeto ou da app inteira assim que o gasto do dia atinge o limite.
66
+
67
+ ## Dicas para batches grandes
68
+
69
+ - **Agrupe specs relacionadas num só rail** antes de mudar para Batch — as ondas de dependências só veem o que está nesse rail.
70
+ - **Defina um orçamento diário** antes de um batch grande para que uma execução inesperadamente cara faça auto-pausa em vez de descontrolar-se. Configure-o em [Orçamento](../settings/customizing).
71
+ - **Use o botão Comparar** na página Jobs depois para comparar duas execuções de batch lado a lado.
72
+ - **Exporte um diagnóstico** (se a telemetria estava ligada) para obter o snapshot exato de perfil + plugins de todo o batch.
73
+
74
+ ## Para onde ir a seguir
75
+
76
+ - [Rails e jobs](rails-and-jobs) — o modelo da fila em detalhe.
77
+ - [A vista de detalhe do job](the-job-detail-view) — ver um batch a correr ao vivo.
78
+ - [Escolher um motor por rail](picking-an-engine-per-rail) — note que o Batch corre em qualquer fornecedor; o Ultra é só Claude.
@@ -0,0 +1,60 @@
1
+ # Escolher um motor por rail
2
+
3
+ O Specrails desktop trata o **Claude Code**, o **Codex CLI** e o **Gemini CLI** como motores de primeira classe. Um projeto pode ter um, dois ou os três instalados — e quando há mais do que um, escolhe que motor corre cada rail. Esta página cobre o seletor de motor por rail e quando recorrer a cada um.
4
+
5
+ ## Quando o seletor aparece
6
+
7
+ O **seletor de motor** vive no cabeçalho do rail, mesmo ao lado do controlo de modo. Só aparece quando o projeto tem **mais do que um** fornecedor instalado.
8
+
9
+ > **Projetos com um só fornecedor comportam-se exatamente da mesma forma.** Se um projeto tem só um motor, não aparece nenhum seletor e nada muda na escolha de fornecedor — corre simplesmente nesse motor. O seletor existe puramente para projetos com vários fornecedores.
10
+
11
+ Quando aparece, a sua escolha é **por rail e por lançamento** — rails diferentes podem correr motores diferentes, e a sua escolha é lembrada por projeto (assumindo por default o motor primário do projeto).
12
+
13
+ ## Como escolher um motor
14
+
15
+ 1. Certifique-se de que o seletor de motor do rail está visível (projeto com 2+ fornecedores).
16
+ 2. Clique nele e escolha **Claude**, **Codex** ou **Gemini**.
17
+ 3. Lance o rail com **▶ Play**.
18
+
19
+ O motor selecionado corre todas as fases do pipeline desse rail. Se a CLI do motor escolhido não estiver instalada, o lançamento falha de imediato — nada é criado. Instale a CLI em falta e tente de novo.
20
+
21
+ ## Em que cada motor é bom
22
+
23
+ Os três correm os pipelines standard **Implement** e **Batch**. Aqui fica um guia prático para escolher:
24
+
25
+ | Motor | Recorra a ele quando… | Notas |
26
+ |--------|--------------------|-------|
27
+ | **Claude** | Quer o conjunto completo de funcionalidades: perfis de agentes, Ultracode, reporte de custo nativo, o suporte de ferramentas mais rico. O default para a maioria do trabalho. | O único motor que suporta **perfis de agentes**, **Ultracode** e algumas funcionalidades de spec exclusivas do Claude (Contract Layer, SMASH). |
28
+ | **Codex** | Prefere o Codex CLI da OpenAI ou quer comparar implementações entre fornecedores. | `codex` ≥ 0.128.0. Sem reporte de custo nativo — a app preenche o custo a partir da sua tabela de preços. Os perfis não se aplicam. |
29
+ | **Gemini** | Quer o Gemini CLI da Google, telemetria nativa ou uma execução mais barata para specs de rotina. | `gemini` ≥ 0.11.0 (defina `GEMINI_API_KEY`). Telemetria OTLP nativa. Os perfis não se aplicam. |
30
+
31
+ ### As funcionalidades exclusivas do Claude
32
+
33
+ Algumas coisas só funcionam em rails Claude — escolha o Claude se precisar delas:
34
+
35
+ - **Perfis de agentes** — encaminhamento de modelo por agente. Em rails Codex ou Gemini a execução usa sempre o modo legado e qualquer perfil selecionado é **ignorado**. O seletor de perfil fica escondido nos motores que não são Claude.
36
+ - **Ultracode (modo `Ultra`)** — o modo autónomo que ignora o pipeline. O segmento `Ultra` e o seu seletor de modelo Haiku/Sonnet/Opus só aparecem quando o motor do rail é o Claude.
37
+ - **Contract Layer e SMASH** — funcionalidades de refinamento de spec exclusivas do Claude (são opções de Add Spec, não opções de rail, mas aplica-se a mesma restrição).
38
+
39
+ Se um projeto mistura motores, a barra lateral direita só mostra as secções que **todos** os fornecedores instalados suportam — por isso a secção **Agentes** desaparece por completo num projeto que inclua qualquer fornecedor que não seja Claude, porque os perfis são específicos do Claude.
40
+
41
+ ## Um fluxo de trabalho prático
42
+
43
+ Os projetos com vários fornecedores brilham quando quer **comparar** ou **afinar custos**:
44
+
45
+ - **Comparar implementações.** Ponha a mesma spec em dois rails, defina um com Claude e outro com Codex, lance ambos (entre projetos, ou um a seguir ao outro na fila do mesmo projeto) e depois use o botão **Comparar** na página Jobs para comparar os resultados.
46
+ - **Afinar custos por spec.** Corra specs de alto risco no Claude com um perfil `max`; corra specs de limpeza de rotina no Gemini para poupar no gasto. Filtre `/analytics` por motor para ver a repartição.
47
+ - **Defina um default sensato.** Defina o motor que mais usa como primário do projeto para que os rails assumam-no por default, e só mude por rail quando uma spec específica pedir outro.
48
+
49
+ ## Coisas a ter em conta
50
+
51
+ - **A escolha de fornecedor é imutável depois de criar o projeto** (v1). Escolhe os fornecedores instalados ao adicionar o projeto; não há um toggle nas Definições para acrescentar ou remover um mais tarde.
52
+ - **O custo é sempre acompanhado**, mesmo para motores sem reporte de custo nativo — a app recorre a uma tabela de preços para que as execuções de Codex e Gemini apareçam na mesma nas [analytics](../analytics/tracking-cost).
53
+ - **O botão "Abrir CLI de IA" do terminal** também oferece um seletor de fornecedor em projetos com vários fornecedores, caso prefira conduzir uma CLI à mão.
54
+
55
+ ## Para onde ir a seguir
56
+
57
+ - [Usar o Codex](../integrations/using-codex) — instalar e iniciar sessão.
58
+ - [Usar o Gemini](../integrations/using-gemini) — instalar, `GEMINI_API_KEY`, telemetria.
59
+ - [Rails e jobs](rails-and-jobs) — a fila e o fluxo de lançamento.
60
+ - [Acompanhar o custo](../analytics/tracking-cost) — repartição de custo por motor.
@@ -0,0 +1,37 @@
1
+ # Temas
2
+
3
+ Deixe o Specrails com a cara que mais gosta. A aplicação já vem com cinco temas cuidadosamente afinados, entre os quais pode alternar num instante — sem reiniciar, sem recompilar, sem nada para configurar.
4
+
5
+ ## Os cinco temas integrados
6
+
7
+ | Tema | Sensação |
8
+ | --- | --- |
9
+ | **Specrails** | O predefinido. Equilibrado, sereno e fiel à marca. |
10
+ | **Dracula** | O clássico roxo escuro. Suave para a vista à noite. |
11
+ | **Aurora Light** | Um tema claro, leve e arejado para trabalhar de dia. |
12
+ | **Obsidian Dark** | Modo escuro profundo, de alto contraste. |
13
+ | **Matrix** | Verde sobre preto, para quando lhe apetece sentir que está dentro do mainframe. |
14
+
15
+ ## Como alternar
16
+
17
+ 1. Abra as **Definições** (a janela de definições de toda a aplicação).
18
+ 2. Vá à secção **Aspeto**.
19
+ 3. Escolha um tema. Aplica-se de imediato a toda a aplicação.
20
+
21
+ É só isto. A mudança acontece no momento em que clica — a interface muda de visual ao vivo.
22
+
23
+ ## Onde se aplica
24
+
25
+ A sua escolha de tema é **válida para toda a aplicação**, não por projeto. Todos os projetos, todas as páginas, todos os painéis seguem o mesmo tema. E chega até a sítios onde talvez não esperasse:
26
+
27
+ - **O painel de terminal** muda de cores ao vivo, mantendo o histórico (scrollback) e qualquer sessão de shell em execução intactos.
28
+ - **Os gráficos** da página de Análise mudam de tonalidade para combinar.
29
+ - **O realce de sintaxe do código** no visualizador de Código também acompanha o tema.
30
+
31
+ ## Memoriza a sua escolha
32
+
33
+ A sua seleção fica guardada na aplicação, por isso mantém-se entre reinícios. Para evitar aquele breve relâmpago de cores erradas quando a aplicação abre, o Specrails aplica o tema guardado antes mesmo de a interface acabar de carregar — para que tudo apareça certo já a partir do primeiro fotograma.
34
+
35
+ ## Uma nota para os curiosos
36
+
37
+ Os temas assentam num pequeno conjunto de papéis de cor semânticos (uma cor de "acento", uma cor de "superfície", e por aí adiante) em vez de tonalidades fixas no código. É por isso que adicionar o próximo tema é fácil e por isso que cada tema se mantém internamente coerente — cada um apenas remapeia esses papéis. Não precisa de pensar em nada disto para usar o tema; é simplesmente a razão por que tudo parece tão fluido.
@@ -0,0 +1,39 @@
1
+ # Idioma
2
+
3
+ O Specrails fala a sua língua. A interface está totalmente traduzida em oito idiomas e, por predefinição, segue o idioma em que o seu computador está configurado — por isso, para a maioria das pessoas, aparece logo no idioma certo logo na primeira abertura.
4
+
5
+ ## Idiomas suportados
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
+ ## Começa no idioma do seu sistema operativo
17
+
18
+ A primeira vez que abre o Specrails, ele consulta as preferências de idioma do seu sistema operativo e faz a correspondência com o idioma suportado mais próximo. Se o seu Mac ou PC estiver configurado em espanhol, verá espanhol. Se estiver definido para uma variante regional (como `es-ES` ou `zh-Hans-CN`), o Specrails mapeia-a automaticamente para o idioma base correto.
19
+
20
+ Não tem de fazer nada — e, se nunca mexer na definição de idioma, o Specrails continua a seguir o seu sistema operativo. Mude mais tarde o idioma do computador e o Specrails acompanha.
21
+
22
+ ## Escolher um idioma manualmente
23
+
24
+ Quer algo diferente do idioma predefinido do seu sistema operativo? Escolha-o explicitamente:
25
+
26
+ 1. Abra as **Definições**.
27
+ 2. Vá à secção **Idioma**.
28
+ 3. Escolha o seu idioma.
29
+
30
+ A mudança é **instantânea** — toda a interface volta a renderizar no novo idioma sem reiniciar. Assim que faz uma escolha explícita, o Specrails memoriza-a e deixa de seguir o sistema operativo, por isso a sua preferência é respeitada sempre que abre a aplicação.
31
+
32
+ ## O que é traduzido
33
+
34
+ Tudo o que lê na interface — botões, etiquetas, mensagens de estado, títulos de páginas, caixas de diálogo. As datas também se adaptam ao idioma escolhido, ficando formatadas da maneira que esse idioma espera.
35
+
36
+ ## É bom saber
37
+
38
+ - **O inglês é o idioma de origem.** Se uma funcionalidade novíssima chegar antes de a sua tradução estar concluída, poderá ver pontualmente uma etiqueta em inglês aqui ou ali — será traduzida numa atualização seguinte.
39
+ - A sua escolha de idioma é **válida para toda a aplicação**, igual em todos os seus projetos.
@@ -0,0 +1,46 @@
1
+ # Telemetria do pipeline e diagnóstico
2
+
3
+ Quando um job do pipeline não corre como esperava, a telemetria dá-lhe um registo detalhado, dos bastidores, do que a CLI de IA fez de facto. Está **desativada por omissão** e é totalmente opcional, por projeto — ative-a apenas quando quiser.
4
+
5
+ ## O que é
6
+
7
+ A telemetria capta sinais de diagnóstico estruturados (traces, métricas e logs) emitidos pela CLI de IA enquanto executa um job do pipeline. Pense nela como a caixa-preta das suas execuções de pipeline: tempos, uso de tokens e atividade passo a passo, capturados localmente para poder inspecionar um job depois do facto.
8
+
9
+ Assenta no **OpenTelemetry**, um formato aberto e padronizado — por isso os dados não ficam presos numa caixa proprietária.
10
+
11
+ ## Como ativar
12
+
13
+ A telemetria é configurada **por projeto**:
14
+
15
+ 1. Abra a página de **Definições** do projeto (a rota de definições por projeto).
16
+ 2. Encontre o interruptor **Telemetria do pipeline**.
17
+ 3. Ligue-o.
18
+
19
+ A partir desse momento, os jobs do pipeline desse projeto passam a registar telemetria. Os outros projetos não são afetados — cada projeto decide por si.
20
+
21
+ ### O que é abrangido
22
+
23
+ A telemetria aplica-se aos **jobs do pipeline** (as execuções em rail Architect → Developer → Reviewer → Ship que estão em fila). Sessões interativas como o chat e o assistente de configuração ficam intencionalmente de fora — a telemetria destina-se às execuções de pipeline repetíveis e inspecionáveis, não a conversas pontuais.
24
+
25
+ ## Onde ficam os dados
26
+
27
+ Tudo fica na sua máquina, dentro da sua pasta pessoal (`~/.specrails/`) — nunca no seu repositório. As gravações em bruto são guardadas comprimidas junto do respetivo job, e as gravações mais antigas são automaticamente condensadas em resumos compactos ao fim de uma semana para manter tudo arrumado. Nunca precisa de gerir nada disto à mão.
28
+
29
+ ## Exportar um pacote de diagnóstico
30
+
31
+ A coisa mais útil que a telemetria desbloqueia é a **exportação de diagnóstico** — um único ZIP que empacota tudo sobre um job para resolução de problemas ou partilha.
32
+
33
+ Quando um job tem telemetria registada, surge um **botão de exportação** no respetivo cartão de job. Clique nele para descarregar um ZIP que contém:
34
+
35
+ - **`job-metadata.json`** — a identidade e os parâmetros do job
36
+ - **`telemetry.ndjson`** — os sinais registados em bruto
37
+ - **`logs.txt`** — a saída de logs capturada
38
+ - **`summary.md`** — um resumo legível da execução
39
+
40
+ Se o projeto usar plugins, o pacote inclui também um instantâneo de quais plugins estavam ativos nesse job.
41
+
42
+ Este é o pacote a obter quando quer perceber uma execução complicada, guardar um registo ou entregar os detalhes a alguém que o esteja a ajudar a depurar.
43
+
44
+ ## Como desativar
45
+
46
+ Desligue o interruptor a qualquer momento. Os novos jobs deixam de registar de imediato. Tudo o que já foi capturado fica no disco até ser compactado ou até remover o projeto — nada é enviado para parte nenhuma nem se perde sem você saber.
@@ -0,0 +1,48 @@
1
+ # Onde ficam os seus dados
2
+
3
+ Versão curta: **o Specrails mantém os seus repositórios impecáveis.** Quando aponta a aplicação para um dos seus projetos, ela não se instala lá dentro, não espalha ficheiros de configuração por todo o lado nem reescreve nada que não lhe tenha pedido. O seu código continua a ser seu, e limpo.
4
+
5
+ ## O seu repositório continua limpo
6
+
7
+ Os ficheiros do próprio Specrails — as suas bases de dados, o estado por projeto, as definições de agentes, as configurações, a telemetria, os resumos e tudo o mais de que precisa para funcionar — vivem todos num único lar arrumado, dentro da sua pasta pessoal:
8
+
9
+ ```
10
+ ~/.specrails/
11
+ ```
12
+
13
+ Essa pasta é o workspace privado da aplicação. É onde ficam o registo de projetos, as bases de dados por projeto, as ferramentas integradas e toda a parte operacional. Os seus repositórios de código nunca são usados como depósito para nada disto.
14
+
15
+ Isto significa que:
16
+
17
+ - O `.gitignore` do seu repositório **não** é reescrito pela aplicação.
18
+ - O seu repositório não fica cheio de configurações de ferramentas nem de diretórios de estado ocultos.
19
+ - Remover um projeto do Specrails não deixa nenhuma trapalhada no seu código.
20
+
21
+ Se já usou ferramentas que, em silêncio, adicionavam pastas e ficheiros por todo o projeto, isto é um afastamento deliberado dessa prática. O Specrails foi construído para que apontá-lo a um repositório seja um **não-acontecimento** para o histórico git desse repositório.
22
+
23
+ ## A única coisa que *é* commitada — por desenho
24
+
25
+ Há exatamente uma exceção intencional, e é o cerne da ferramenta: **as suas specs OpenSpec.**
26
+
27
+ As specs vivem no seu repositório, em:
28
+
29
+ ```
30
+ openspec/
31
+ ```
32
+
33
+ Isto é de propósito. As suas specs são um **entregável** — um registo versionado e revisável daquilo que decidiu construir e porquê. Pertencem ao lado do seu código, controladas no git, visíveis nos pull requests, partilhadas com a sua equipa. É esse o valor: as specs não são estado descartável de rascunho, são parte do histórico do seu projeto.
34
+
35
+ Portanto, a regra é simples e honesta:
36
+
37
+ - **`openspec/`** → vive no seu repositório, commitado, por desenho.
38
+ - **Tudo o resto de que o Specrails precisa** → vive em `~/.specrails/`, fora do seu caminho.
39
+
40
+ ## Porque funciona assim
41
+
42
+ O Specrails executa as ferramentas de IA a partir do seu próprio workspace privado (em `~/.specrails/`) e só volta ao seu repositório real para aquilo que genuinamente precisa de o tocar — ler o seu código e escrever as specs que pediu. As ferramentas, as definições da framework e a contabilidade ficam todas na pasta pessoal da aplicação.
43
+
44
+ A conclusão, para si: pode adicionar um projeto, executar pipelines, explorar specs e experimentar com a confiança de que a árvore de trabalho e o histórico git do seu repositório só mudam de formas que esperaria — as suas specs commitadas e o código que os seus pipelines escrevem. Mais nada se infiltra.
45
+
46
+ ## Remover um projeto
47
+
48
+ Quando remove um projeto do Specrails, a aplicação limpa o seu próprio estado por projeto dentro de `~/.specrails/`. As specs já commitadas no seu repositório ficam onde pertencem — no seu repositório — porque são suas.
@@ -0,0 +1,52 @@
1
+ # Specs e o backlog
2
+
3
+ Uma **spec** é a unidade de trabalho que o pipeline de IA implementa. Pense nela como um ticket: um título, uma descrição do que quer fazer, uma prioridade e, opcionalmente, etiquetas. Quando lança o pipeline, os agentes de IA leem a spec e agem sobre ela — por isso, uma spec clara é o input mais importante para um bom resultado.
4
+
5
+ Por vezes, na app, as specs também são chamadas de **tickets** — as duas palavras significam o mesmo.
6
+
7
+ ## O quadro
8
+
9
+ Cada projeto abre no seu **Dashboard**, que mostra a **SpecsBoard** — a lista de todas as specs do projeto. Este é o seu backlog. É aqui que cria novas specs, define a sua prioridade, as arrasta para um rail para as implementar e vê o seu estado mudar à medida que o trabalho avança.
10
+
11
+ O quadro tem dois modos de visualização, alternados a partir de um botão na barra de ferramentas e memorizados por projeto:
12
+
13
+ - **Vista de post-its** (a predefinida) — mosaicos em forma de cartão com resumos curtos.
14
+ - **Vista de lista** — linhas compactas de uma só linha.
15
+
16
+ Também pode filtrar por **estado** (Todos / Por fazer / Concluído) e por **etiqueta**, e ordenar por **Predefinida**, **Ticket #** ou **Prioridade** (cada uma com um seletor ascendente/descendente).
17
+
18
+ ## Estados
19
+
20
+ Uma spec percorre um pequeno conjunto de estados. O quadro dá a cada um uma pista visual consistente para que possa ler o estado do seu backlog de relance:
21
+
22
+ | Estado | O que significa |
23
+ |--------|---------------|
24
+ | **Rascunho** | Uma ideia em curso guardada a partir de uma conversa do modo Explore. Ainda não está pronta para implementar — pode voltar e continuar a dar-lhe forma. Mostra uma etiqueta `Draft`. |
25
+ | **Por fazer** | Pronta para ser executada. É aqui que uma spec terminada aterra quando a cria. |
26
+ | **Em curso** | O pipeline está a trabalhar nela neste momento (um ponto azul pulsante). |
27
+ | **Concluído** | Concluída pelo pipeline (um visto verde). |
28
+ | **Cancelado** | Abandonada (um X vermelho). |
29
+
30
+ Os rascunhos vivem no mesmo grupo ativo que as specs Por fazer — não há uma coluna separada para eles — mas têm um contorno subtilmente colorido e uma etiqueta `Draft` para serem fáceis de identificar. Veja [Rascunhos e o Contract Layer](drafts-and-contract-layer.md) para a história completa sobre rascunhos.
31
+
32
+ ## Prioridades
33
+
34
+ Cada spec que não seja um rascunho tem uma prioridade: **Crítica**, **Alta**, **Média** ou **Baixa**. A prioridade é apenas uma ferramenta de organização — ajuda-o a decidir o que implementar a seguir e permite-lhe ordenar o quadro. Define-a ao criar uma spec e pode alterá-la a qualquer momento clicando com o botão direito no cartão da spec e escolhendo **Definir prioridade**.
35
+
36
+ Os rascunhos são a única exceção: um rascunho pode *não* ter prioridade nenhuma, porque ainda é uma ideia em curso. A prioridade fica fixada quando confirma o rascunho numa spec a sério.
37
+
38
+ ## Criar uma spec
39
+
40
+ Para criar uma spec, clique em **Adicionar** (o botão Mais na barra de ferramentas da SpecsBoard). Abre-se a janela **Adicionar Spec** com algumas formas de trabalhar:
41
+
42
+ - **Quick** — descreve o que quer e a IA escreve a spec completa de uma só vez. Veja [Adicionar Spec — modo Quick](add-spec-quick-mode.md).
43
+ - **Explore** — conversa com a IA, e ela ajuda-o a dar forma à spec turno a turno. Veja [Adicionar Spec — modo Explore](add-spec-explore-mode.md).
44
+ - **Raw** — o que quer que escreva é guardado tal e qual como uma spec, sem qualquer IA envolvida. Use este modo quando já tem o texto da spec pronto.
45
+
46
+ Qual escolher depende do quão clara já está a ideia. Sabe exatamente o que quer? Quick. Ainda a pensar nela? Explore. Já tem o texto? Raw.
47
+
48
+ ## Para onde ir a seguir
49
+
50
+ - [Adicionar Spec — modo Quick](add-spec-quick-mode.md) — a forma mais rápida de transformar uma ideia numa spec.
51
+ - [Adicionar Spec — modo Explore](add-spec-explore-mode.md) — dê forma a uma spec em conversa.
52
+ - [Rascunhos e o Contract Layer](drafts-and-contract-layer.md) — guarde trabalho em curso e enriqueça specs para o pipeline.
@@ -0,0 +1,45 @@
1
+ # Adicionar Spec — modo Quick
2
+
3
+ O modo Quick é para quando já sabe o que quer. Escreve a sua ideia, a IA redige a spec completa, e ela aterra no seu quadro como **Por fazer**. Sem idas e vindas — basta descrever e avançar.
4
+
5
+ ## Criar uma spec no modo Quick
6
+
7
+ Para criar uma spec rapidamente:
8
+
9
+ 1. No Dashboard, clique em **Adicionar** (o botão Mais na barra de ferramentas da SpecsBoard).
10
+ 2. Escolha o modo **Quick**.
11
+ 3. Escreva a sua ideia no campo de texto — uma frase ou um parágrafo, o que melhor a capturar.
12
+ 4. Clique para gerar.
13
+
14
+ Enquanto a spec está a ser escrita, uma pequena notificação no canto mostra o nome do projeto, um excerto da sua ideia e o **tempo decorrido** ("A gerar… 0:12"). Quando termina, a notificação muda para "Gerada em <tempo>" com uma ação **Ver** que o leva diretamente à sua nova spec.
15
+
16
+ É este o fluxo completo. Tudo o que se segue é um ajuste fino opcional.
17
+
18
+ ## O que pode ajustar
19
+
20
+ **Modelo** — por predefinição, a IA escolhe um modelo sensato. Pode substituí-lo por spec a partir do seletor de modelo se quiser um mais rápido ou mais capaz.
21
+
22
+ **Motor** — se o seu projeto tiver mais do que um fornecedor de IA instalado (qualquer combinação de Claude, Codex e Gemini), um seletor de motor fica no topo da janela para que possa escolher qual deles gera esta spec. A sua escolha é memorizada por projeto. Projetos com um único fornecedor não mostram isto — não há nada por onde escolher.
23
+
24
+ **Contexto** — o modo Quick normalmente corre como um único turno, porque não precisa de ler a sua base de código para escrever uma spec a partir da sua descrição. Mas um seletor de contexto permite dar-lhe mais material para trabalhar:
25
+
26
+ - No nível mais baixo, lê apenas a sua descrição.
27
+ - Em níveis mais altos, pode ler as suas specs existentes, as specs OpenSpec do seu projeto, e até toda a sua base de código antes de escrever.
28
+
29
+ Quanto mais contexto lhe der, mais demora a geração (passa a multi-turno para poder ler primeiro), mas a spec volta fundamentada no seu projeto real. Recorra a níveis de contexto mais altos quando a spec precisar de referenciar código real, nomes de ficheiros ou comportamentos existentes.
30
+
31
+ **Anexos** — largue mockups, briefs ou ficheiros de dados no campo da ideia. A IA lê-os como parte da escrita da spec. (Os anexos também passam a geração para multi-turno.)
32
+
33
+ **Enriquecer com Contract Layer** — um interruptor que acrescenta um bloco estruturado à spec gerada, para que o pipeline a jusante não tenha de adivinhar nomes nem formatos de dados. É opcional e está desativado por predefinição; a sua última escolha é memorizada por projeto. Veja [Rascunhos e o Contract Layer](drafts-and-contract-layer.md) para saber o que adiciona e quando vale a pena.
34
+
35
+ ## Quando usar o modo Quick vs Explore
36
+
37
+ Use o **Quick** quando a ideia já está clara na sua cabeça — podia escrever a spec você mesmo, mas prefere que a IA o faça. Use o [**Explore**](add-spec-explore-mode.md) quando ainda está a pensar no assunto e quer um parceiro que o ajude a dar-lhe forma.
38
+
39
+ Uma spec criada no modo Quick é uma spec perfeitamente normal: pode mais tarde abri-la e **Continuar a editar** numa sessão de Explore, se precisar de refinamento.
40
+
41
+ ## Para onde ir a seguir
42
+
43
+ - [Adicionar Spec — modo Explore](add-spec-explore-mode.md) — para specs que precisam de forma.
44
+ - [Rascunhos e o Contract Layer](drafts-and-contract-layer.md) — o enriquecimento Contract Layer explicado.
45
+ - [Executar pipelines](running-pipelines.md) — arraste a sua nova spec para um rail e implemente-a.
@@ -0,0 +1,68 @@
1
+ # Adicionar Spec — modo Explore
2
+
3
+ O modo Explore é uma conversa. Em vez de escrever a spec você mesmo, conversa sobre a ideia com a IA — ela age como parceira de raciocínio, faz perguntas, propõe estrutura e constrói um **rascunho ao vivo** da spec à medida que avança. Quando estiver satisfeito, confirma o rascunho numa spec a sério.
4
+
5
+ Recorra ao Explore quando a ideia ainda não está totalmente formada, quando há compromissos a discutir, ou quando quer que a IA olhe para o seu código real antes de fixar a spec.
6
+
7
+ ## Criar uma spec no modo Explore
8
+
9
+ Para dar forma a uma spec no modo Explore:
10
+
11
+ 1. No Dashboard, clique em **Adicionar** e depois escolha **Explore**.
12
+ 2. Escreva a sua primeira mensagem — a ideia, uma pergunta ou um pensamento ainda por amadurecer.
13
+ 3. Leia a resposta da IA e continue a responder. A cada turno, ela refina a sua compreensão.
14
+ 4. Veja o **rascunho ao vivo** atualizar-se ao lado da conversa — esta é a spec a ganhar forma.
15
+ 5. Quando o rascunho parecer correto, clique em **Criar Spec**.
16
+
17
+ A conversa fica no seu histórico, por isso pode sempre voltar para ver como a spec foi moldada.
18
+
19
+ ## O rascunho ao vivo
20
+
21
+ À medida que conversa, um painel de rascunho mostra a spec tal como está neste momento — título, descrição, prioridade, etiquetas, critérios de aceitação. Reescreve-se a cada turno com base no que já discutiram. Não o edita diretamente; orienta-o através da conversa ("na verdade, mete a prioridade em alta", "adiciona um critério sobre o tratamento de erros", e por aí adiante).
22
+
23
+ É este o coração do modo Explore: nunca está a olhar para um formulário em branco. Está sempre a olhar para uma spec real e em evolução.
24
+
25
+ ## Quanto é que a IA vê: o seletor de contexto
26
+
27
+ Antes de a IA responder, decide quanto do seu projeto ela pode ver. Um seletor de presets de contexto permite-lhe trocar velocidade por profundidade:
28
+
29
+ | Preset | O que a IA vê |
30
+ |--------|------------------|
31
+ | **Mínimo** | Apenas a sua mensagem. O mais rápido e o mais barato. |
32
+ | **Leve** | + as suas specs existentes. |
33
+ | **Padrão** | + as suas specs e as specs OpenSpec do seu projeto. |
34
+ | **Rico** | + acesso de leitura a toda a sua base de código, para poder fundamentar as respostas em código real. |
35
+ | **Máx** | Rico, mais uma passagem de enriquecimento Contract Layer na confirmação. |
36
+ | **Desktop** | Máx, mais os servidores MCP do seu projeto e os seus próprios servidores MCP aprovados. |
37
+
38
+ Comece baixo para um brainstorming rápido; suba quando quiser que a IA verifique as suas sugestões contra o seu código real. A escolha é guardada na conversa, por isso não se propaga para outras sessões de Explore.
39
+
40
+ Se quiser um controlo mais fino, clique em **Ajuste fino** para alternar manualmente as opções subjacentes — incluindo **Os meus MCPs aprovados**, que carrega os servidores MCP que já aprovou localmente sem abrandar a sessão.
41
+
42
+ ## Botões na janela do Explore
43
+
44
+ - **Criar Spec** — promove o rascunho ao vivo a uma spec a sério com estado **Por fazer**. (Quando está a editar uma spec existente, este botão passa a dizer **Atualizar Spec** e atualiza essa spec no próprio lugar.)
45
+ - **Rever →** — abre uma sobreposição de revisão que mostra a spec proposta em comparação com a baseline antes de confirmar, para não haver surpresas.
46
+ - **Guardar como rascunho** — persiste a conversa como um ticket de rascunho para que a possa retomar mais tarde. Disponível assim que tiver enviado pelo menos uma mensagem. Veja abaixo.
47
+ - **Minimizar** — estaciona a conversa como um chip na doca de chats minimizados, no canto inferior esquerdo. Clique no chip a qualquer momento para voltar diretamente à conversa — nada se perde.
48
+ - **Descartar** — deita a conversa fora (pede confirmação primeiro).
49
+
50
+ ## Guardar como rascunho
51
+
52
+ Ainda não está pronto para confirmar, mas não quer perder o raciocínio? Clique em **Guardar como rascunho**. A conversa torna-se uma **spec de rascunho** no seu quadro, e o rascunho fica ligado à conversa que está por detrás.
53
+
54
+ Mais tarde, abra o rascunho a partir do quadro e clique em **Continuar a editar** — a conversa original reabre-se com todo o seu histórico de chat intacto, e continua exatamente onde ficou. Os rascunhos nunca são eliminados automaticamente; ficam à sua espera.
55
+
56
+ Isto torna o Explore seguro para ideias ainda por amadurecer: comece uma conversa, chegue a algum lado, guarde-a como rascunho e volte amanhã.
57
+
58
+ Para tudo sobre rascunhos — incluindo o enriquecimento Contract Layer — veja [Rascunhos e o Contract Layer](drafts-and-contract-layer.md).
59
+
60
+ ## Nota sobre múltiplos fornecedores
61
+
62
+ Se o seu projeto tiver mais do que um fornecedor de IA instalado, um seletor de motor permite-lhe escolher qual deles conduz a conversa do Explore. Projetos com um único fornecedor não o mostram.
63
+
64
+ ## Para onde ir a seguir
65
+
66
+ - [Rascunhos e o Contract Layer](drafts-and-contract-layer.md) — guardar trabalho em curso e enriquecer specs para o pipeline.
67
+ - [Adicionar Spec — modo Quick](add-spec-quick-mode.md) — quando a ideia já está clara.
68
+ - [Executar pipelines](running-pipelines.md) — implemente a sua spec assim que estiver pronta.
@@ -0,0 +1,81 @@
1
+ # Rascunhos e o Contract Layer
2
+
3
+ Esta página cobre duas formas de tirar mais partido das suas specs: os **rascunhos** (guardar uma ideia em curso para a retomar mais tarde) e o **Contract Layer** (um enriquecimento opcional que torna as specs mais precisas para o pipeline de IA).
4
+
5
+ ## Rascunhos: guardar uma ideia em curso
6
+
7
+ Um **rascunho** é uma conversa de [Explore](add-spec-explore-mode.md) em curso guardada como spec. Permite-lhe parar a meio de um pensamento sem perder nada e voltar quando estiver pronto.
8
+
9
+ ### Guardar um rascunho
10
+
11
+ Enquanto está numa conversa de Explore, clique em **Guardar como rascunho** (disponível assim que tiver enviado pelo menos uma mensagem). A app:
12
+
13
+ - Cria uma spec com estado **Rascunho** no seu quadro.
14
+ - Dá-lhe um título automaticamente se não tiver definido nenhum (um resumo curto da conversa).
15
+ - Liga-a de volta à conversa, para que todo o histórico de chat seja preservado.
16
+
17
+ Guardar é idempotente — se guardar a mesma conversa duas vezes, atualiza o rascunho existente em vez de criar um duplicado.
18
+
19
+ ### Como os rascunhos aparecem no quadro
20
+
21
+ Os rascunhos vivem no mesmo grupo ativo que as suas specs Por fazer — não há uma coluna separada. Vai identificá-los por:
22
+
23
+ - Uma etiqueta `Draft` onde normalmente fica a etiqueta de prioridade.
24
+ - Um contorno subtilmente colorido no cartão.
25
+
26
+ Um rascunho pode *não ter prioridade* — a prioridade é definida quando o confirma numa spec a sério.
27
+
28
+ ### Retomar um rascunho
29
+
30
+ Para continuar de onde ficou:
31
+
32
+ 1. Abra o rascunho a partir do quadro.
33
+ 2. Clique em **Continuar a editar** na janela de detalhe.
34
+ 3. A conversa de Explore original reabre-se com todo o seu histórico de chat, e o painel do rascunho ao vivo pré-preenchido com tudo o que já tinha moldado.
35
+ 4. Continue a conversar. Quando terminar, **Criar Spec** promove o rascunho a uma spec a sério (estado **Por fazer**, com a prioridade que escolher).
36
+
37
+ ### Descartar um rascunho
38
+
39
+ Os rascunhos **nunca são eliminados automaticamente**. Só desaparecem quando os descarta explicitamente, ou quando os confirma num estado a sério. Descartar um rascunho também limpa a conversa associada quando mais nada a referencia.
40
+
41
+ > Dica: quando não tiver a certeza se uma spec vale a pena, guarde-a como rascunho e deixe-a repousar. Abra-a na manhã seguinte, dê uma olhadela à descrição, e decida com olhos descansados.
42
+
43
+ ## O Contract Layer: precisão para o pipeline
44
+
45
+ O **Contract Layer** é um enriquecimento opcional que acrescenta um bloco estruturado à descrição de uma spec. A sua função é eliminar a adivinhação para os agentes de IA que implementam a spec — para que reutilizem os nomes certos, respeitem os formatos de dados esperados e mexam nos ficheiros certos, em vez de inventarem os seus próprios.
46
+
47
+ ### O que adiciona
48
+
49
+ O Contract Layer são cinco secções curtas acrescentadas à spec:
50
+
51
+ - **Naming Contract** — os identificadores exatos (funções, campos, rotas) que a implementação deve reutilizar.
52
+ - **Data Shapes** — os payloads, em formato semelhante a JSON, envolvidos.
53
+ - **State Machine** — as transições ou estados pelos quais a funcionalidade passa.
54
+ - **Invariants** — propriedades que devem ser sempre verdadeiras.
55
+ - **File Touch List** — os ficheiros que a implementação deverá editar.
56
+
57
+ Pense nisto como entregar ao pipeline uma planta precisa em vez de um esboço. É especialmente valioso para specs que se ligam a código existente, onde a IA, ao adivinhar um nome ou um formato, causaria retrabalho.
58
+
59
+ ### Como adicioná-lo
60
+
61
+ Há três formas de aplicar o Contract Layer:
62
+
63
+ - **Modo Quick** — ative o interruptor **Enriquecer com Contract Layer** antes de gerar. A sua última escolha é memorizada por projeto. (Veja [Adicionar Spec — modo Quick](add-spec-quick-mode.md).)
64
+ - **Modo Explore** — escolha o preset de contexto **Máx** ou **Desktop** (que correm o enriquecimento automaticamente na confirmação), ou abra **Ajuste fino** e ative-o manualmente. (Veja [Adicionar Spec — modo Explore](add-spec-explore-mode.md).)
65
+ - **Numa spec existente** — abra a janela de detalhe da spec e volte a correr o enriquecimento a partir daí.
66
+
67
+ ### Onde aparece
68
+
69
+ Depois de uma spec ter um Contract Layer, a janela de detalhe mostra-o como um bloco colapsável com um distintivo do tipo `3/5 preenchidas` — dizendo-lhe quantas das cinco secções foram efetivamente preenchidas (algumas funcionalidades simplesmente não têm, por exemplo, uma state machine, e essas secções ficam marcadas como não aplicáveis). Expanda-o para ler o contrato completo; recolha-o para manter a descrição arrumada.
70
+
71
+ Se o enriquecimento alguma vez falhar ao correr, a app apresenta uma notificação com uma ação **Repetir** para que o possa disparar de novo.
72
+
73
+ ### Vale sempre a pena?
74
+
75
+ Nem sempre. Para uma spec pequena e autocontida, a IA consegue implementá-la bem sem ele. O Contract Layer ganha o seu valor em specs que se integram fortemente com código existente, onde os nomes e formatos exatos importam — é aí que fixar o contrato à partida lhe poupa uma ronda de correções mais tarde.
76
+
77
+ ## Para onde ir a seguir
78
+
79
+ - [Adicionar Spec — modo Explore](add-spec-explore-mode.md) — de onde vêm os rascunhos.
80
+ - [Adicionar Spec — modo Quick](add-spec-quick-mode.md) — o interruptor do Contract Layer no modo Quick.
81
+ - [Executar pipelines](running-pipelines.md) — implemente uma spec assim que estiver pronta.
@@ -0,0 +1,38 @@
1
+ # 认识这些 Agent
2
+
3
+ 当你启动一条 **Implement** rail 时,Specrails 并不会把你的 spec 丢给某一个 AI、然后听天由命。它会让一支精干的专职 *Agent* 团队上阵——每个 Agent 只负责一件事,并按精心设计的顺序协作。这一页就来介绍这支团队里都有谁、各自又在做什么。
4
+
5
+ ## 基础三人组
6
+
7
+ 每一次流水线运行都会用到下面这三个 Agent——它们是整个流程的支柱,没有它们,项目根本无法运行一条 rail。
8
+
9
+ | Agent | 角色 | 它做什么 |
10
+ |-------|------|--------------|
11
+ | **sr-architect** | 规划者 | 阅读你的 spec、检视代码库,产出一份具体的实现方案——要改动哪些文件、改动会是什么形态、有哪些需要留心的地方。它会先想清楚,再让别人动手写代码。 |
12
+ | **sr-developer** | 建造者 | 接过 architect 的方案,真正动手写代码:新建文件、修改、写测试。正是在这一步,你的 spec 变成了实实在在的 diff。 |
13
+ | **sr-reviewer** | 把关者 | 对照 spec 和方案校验 developer 的产出,揪出回归问题,发现不对劲就提出异议。它是改动被视为「完成」之前的质量关卡。 |
14
+
15
+ 可以把它理解成 **设计 → 建造 → 审查**,就像一支严谨的人类团队会走的循环一样。每个 Agent 都把自己的产出交给下一个,所以 developer 永远不会盲目动工,reviewer 手里也始终握着最初的意图可供比对。
16
+
17
+ ## 专家型 Agent
18
+
19
+ 在三人组之外,项目还可以纳入可选的**专家型 Agent**,专门处理某一类工作。你最常见到的一个是:
20
+
21
+ - **sr-merge-resolver**——一个工具型 Agent,帮你理清合并冲突、调和相互重叠的改动。它是可选的:Profile 只在你需要时才会包含它,而即便缺席,它也绝不会阻塞流水线。
22
+
23
+ 专家型 Agent 是按需启用的。一个全新项目只会带着三人组运行;当项目的工作流确有需要时,你再加入专家型 Agent(以及你自己的**自定义 Agent**——参见 [自定义 Agent 与目录](custom-agents-catalog))。
24
+
25
+ ## 任务如何送到对的 Agent 手中
26
+
27
+ 在一次运行内,工作是经过*路由*的。一个任务会带着标签,而 Profile 的路由规则会把带标签的任务送给最适合处理它的 Agent——最后再用一条兜底规则,把其余所有任务统统交给 developer。日常使用中你完全不必操心这些;默认设置开箱即用,会把一切合理地分派妥当。当你准备好把特定类型的工作导向特定 Agent 时,请看 [按 Agent 自定义模型](customizing-models-per-agent)。
28
+
29
+ ## 一个需要先说清楚的重要观念
30
+
31
+ 每个 Agent 的*定义*——它的指令、它的性格、它被允许做什么——是**共享的**。它们以文件的形式存在(`.claude/agents/<id>.md`),随你的代码仓库一起流转,因此你的整个团队跑的是同一个 architect、同一个 reviewer。
32
+
33
+ 而**因项目而异**的,是叠加在其上的*配置*:每个 Agent 用哪个模型运行,以及你为某条 rail 挑选了哪一组 Agent 的组合。这正是 Profile 的用武之地——也是下一页的内容。
34
+
35
+ ## 接下来去哪儿
36
+
37
+ - [Profile 与均衡默认值](profiles-and-the-balanced-default)——团队的配置是如何打包并选用的。
38
+ - [按 Agent 自定义模型](customizing-models-per-agent)——调校成本与质量。