specrails-desktop 2.8.0 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (326) hide show
  1. package/README.md +23 -19
  2. package/client/dist/assets/{ActivityFeedPage-LKqd18-G.js → ActivityFeedPage-DNqnf1fZ.js} +1 -1
  3. package/client/dist/assets/{AgentsPage-Cb-b-6Ot.js → AgentsPage-vmNIEbGM.js} +1 -1
  4. package/client/dist/assets/{AnalyticsPage-HVxQQ1wy.js → AnalyticsPage-CdfN0ofZ.js} +1 -1
  5. package/client/dist/assets/{BarChart-BOyHB0dw.js → BarChart-CIkopHjl.js} +1 -1
  6. package/client/dist/assets/{CodePage-DnOnwKGB.js → CodePage-DDRNU5FN.js} +1 -1
  7. package/client/dist/assets/{DesktopAnalyticsPage-D2auU39x.js → DesktopAnalyticsPage-Cl3sKKSG.js} +1 -1
  8. package/client/dist/assets/{DocsDialog-CTuDX3GK.js → DocsDialog-BGrBOfUr.js} +2 -2
  9. package/client/dist/assets/{DocsPage-DRyMmu0Z.js → DocsPage-CY-2SSzw.js} +2 -2
  10. package/client/dist/assets/{ExportDropdown-DO-GGiMh.js → ExportDropdown-BRHcvP0r.js} +1 -1
  11. package/client/dist/assets/{IntegrationsPage-BhbO4jFT.js → IntegrationsPage-nKdLB4Ub.js} +1 -1
  12. package/client/dist/assets/{JobDetailPage-DJooEg1s.js → JobDetailPage-Bf0A6WWQ.js} +1 -1
  13. package/client/dist/assets/{JobsPage-BbaC-YOg.js → JobsPage-Vg4nXPdL.js} +1 -1
  14. package/client/dist/assets/{dist-js-CiIVMsx3.js → dist-js-0i_klubI.js} +1 -1
  15. package/client/dist/assets/{dist-js-Xc2lRKp2.js → dist-js-CUs5GjwA.js} +1 -1
  16. package/client/dist/assets/{index-DK214dak.js → index-BXoHFtfG.js} +8 -8
  17. package/client/dist/assets/index-D6BaYRRU.css +2 -0
  18. package/client/dist/assets/{integrations-2C7MkGT0.js → integrations-7YyTBuU9.js} +1 -1
  19. package/client/dist/assets/{integrations-CX4p_bij.js → integrations-B9CEpNF0.js} +1 -1
  20. package/client/dist/assets/{integrations-C2jQtv-s.js → integrations-BlvAdewo.js} +1 -1
  21. package/client/dist/assets/{integrations-eQPHAYsE.js → integrations-Bw8UM9Xd.js} +1 -1
  22. package/client/dist/assets/{integrations-BDC670cg.js → integrations-C5SxNKnG.js} +1 -1
  23. package/client/dist/assets/{integrations-BqUmRUef.js → integrations-CJQKMmdW.js} +1 -1
  24. package/client/dist/assets/{integrations-CB98NeH5.js → integrations-DWz1eU_K.js} +1 -1
  25. package/client/dist/assets/{integrations-_SuVeQIG.js → integrations-DiPR8Fzp.js} +1 -1
  26. package/client/dist/assets/{lib-Bo5s6xpe.js → lib-D6M_MvoC.js} +1 -1
  27. package/client/dist/assets/setup-B6egeeTM.js +1 -0
  28. package/client/dist/assets/setup-BHroXlke.js +1 -0
  29. package/client/dist/assets/setup-BIXsWUp1.js +1 -0
  30. package/client/dist/assets/setup-BJRdg1iE.js +1 -0
  31. package/client/dist/assets/setup-C0rVGnCy.js +1 -0
  32. package/client/dist/assets/setup-Cpu17hJv.js +1 -0
  33. package/client/dist/assets/setup-D-1r0uSx.js +1 -0
  34. package/client/dist/assets/setup-Dn2-veYO.js +1 -0
  35. package/client/dist/assets/{useProjectCache-DVNypkmR.js → useProjectCache-BeyBSNpD.js} +1 -1
  36. package/client/dist/index.html +4 -4
  37. package/docs/README.md +5 -2
  38. package/docs/agy-cli-provider-study.md +78 -0
  39. package/docs/cli.md +23 -4
  40. package/docs/codex.md +116 -58
  41. package/docs/creating-specs.md +19 -5
  42. package/docs/customizing.md +27 -6
  43. package/docs/gemini.md +225 -73
  44. package/docs/getting-started.md +18 -9
  45. package/docs/guide/de/agents/1-meet-the-agents.md +38 -0
  46. package/docs/guide/de/agents/2-profiles-and-the-balanced-default.md +45 -0
  47. package/docs/guide/de/agents/3-customizing-models-per-agent.md +60 -0
  48. package/docs/guide/de/agents/4-custom-agents-catalog.md +43 -0
  49. package/docs/guide/de/getting-started/1-what-is-specrails.md +49 -0
  50. package/docs/guide/de/getting-started/2-installing-and-first-run.md +42 -0
  51. package/docs/guide/de/getting-started/3-adding-your-first-project.md +58 -0
  52. package/docs/guide/de/getting-started/4-the-dashboard-tour.md +53 -0
  53. package/docs/guide/de/insights/1-analytics-and-cost-tracking.md +78 -0
  54. package/docs/guide/de/insights/2-the-integrated-terminal.md +46 -0
  55. package/docs/guide/de/insights/3-code-explorer.md +50 -0
  56. package/docs/guide/de/integrations/1-ai-providers.md +64 -0
  57. package/docs/guide/de/integrations/2-plugins.md +44 -0
  58. package/docs/guide/de/integrations/3-jira-integration.md +71 -0
  59. package/docs/guide/de/integrations/4-mobile-companion.md +38 -0
  60. package/docs/guide/de/pipeline/1-rails-and-jobs.md +94 -0
  61. package/docs/guide/de/pipeline/2-the-job-detail-view.md +90 -0
  62. package/docs/guide/de/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  63. package/docs/guide/de/pipeline/4-picking-an-engine-per-rail.md +60 -0
  64. package/docs/guide/de/settings/1-themes.md +37 -0
  65. package/docs/guide/de/settings/2-language.md +39 -0
  66. package/docs/guide/de/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  67. package/docs/guide/de/settings/4-where-your-data-lives.md +48 -0
  68. package/docs/guide/de/specs/1-specs-and-the-backlog.md +52 -0
  69. package/docs/guide/de/specs/2-add-spec-quick-mode.md +45 -0
  70. package/docs/guide/de/specs/3-add-spec-explore-mode.md +68 -0
  71. package/docs/guide/de/specs/4-drafts-and-contract-layer.md +81 -0
  72. package/docs/guide/en/agents/1-meet-the-agents.md +38 -0
  73. package/docs/guide/en/agents/2-profiles-and-the-balanced-default.md +45 -0
  74. package/docs/guide/en/agents/3-customizing-models-per-agent.md +60 -0
  75. package/docs/guide/en/agents/4-custom-agents-catalog.md +43 -0
  76. package/docs/guide/en/getting-started/1-what-is-specrails.md +49 -0
  77. package/docs/guide/en/getting-started/2-installing-and-first-run.md +42 -0
  78. package/docs/guide/en/getting-started/3-adding-your-first-project.md +58 -0
  79. package/docs/guide/en/getting-started/4-the-dashboard-tour.md +53 -0
  80. package/docs/guide/en/insights/1-analytics-and-cost-tracking.md +78 -0
  81. package/docs/guide/en/insights/2-the-integrated-terminal.md +46 -0
  82. package/docs/guide/en/insights/3-code-explorer.md +50 -0
  83. package/docs/guide/en/integrations/1-ai-providers.md +64 -0
  84. package/docs/guide/en/integrations/2-plugins.md +44 -0
  85. package/docs/guide/en/integrations/3-jira-integration.md +71 -0
  86. package/docs/guide/en/integrations/4-mobile-companion.md +38 -0
  87. package/docs/guide/en/pipeline/1-rails-and-jobs.md +94 -0
  88. package/docs/guide/en/pipeline/2-the-job-detail-view.md +90 -0
  89. package/docs/guide/en/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  90. package/docs/guide/en/pipeline/4-picking-an-engine-per-rail.md +60 -0
  91. package/docs/guide/en/settings/1-themes.md +37 -0
  92. package/docs/guide/en/settings/2-language.md +39 -0
  93. package/docs/guide/en/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  94. package/docs/guide/en/settings/4-where-your-data-lives.md +48 -0
  95. package/docs/guide/en/specs/1-specs-and-the-backlog.md +52 -0
  96. package/docs/guide/en/specs/2-add-spec-quick-mode.md +45 -0
  97. package/docs/guide/en/specs/3-add-spec-explore-mode.md +68 -0
  98. package/docs/guide/en/specs/4-drafts-and-contract-layer.md +81 -0
  99. package/docs/guide/es/agents/1-meet-the-agents.md +38 -0
  100. package/docs/guide/es/agents/2-profiles-and-the-balanced-default.md +45 -0
  101. package/docs/guide/es/agents/3-customizing-models-per-agent.md +60 -0
  102. package/docs/guide/es/agents/4-custom-agents-catalog.md +43 -0
  103. package/docs/guide/es/getting-started/1-what-is-specrails.md +49 -0
  104. package/docs/guide/es/getting-started/2-installing-and-first-run.md +42 -0
  105. package/docs/guide/es/getting-started/3-adding-your-first-project.md +58 -0
  106. package/docs/guide/es/getting-started/4-the-dashboard-tour.md +53 -0
  107. package/docs/guide/es/insights/1-analytics-and-cost-tracking.md +78 -0
  108. package/docs/guide/es/insights/2-the-integrated-terminal.md +46 -0
  109. package/docs/guide/es/insights/3-code-explorer.md +50 -0
  110. package/docs/guide/es/integrations/1-ai-providers.md +64 -0
  111. package/docs/guide/es/integrations/2-plugins.md +44 -0
  112. package/docs/guide/es/integrations/3-jira-integration.md +71 -0
  113. package/docs/guide/es/integrations/4-mobile-companion.md +38 -0
  114. package/docs/guide/es/pipeline/1-rails-and-jobs.md +94 -0
  115. package/docs/guide/es/pipeline/2-the-job-detail-view.md +90 -0
  116. package/docs/guide/es/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  117. package/docs/guide/es/pipeline/4-picking-an-engine-per-rail.md +60 -0
  118. package/docs/guide/es/settings/1-themes.md +37 -0
  119. package/docs/guide/es/settings/2-language.md +39 -0
  120. package/docs/guide/es/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  121. package/docs/guide/es/settings/4-where-your-data-lives.md +48 -0
  122. package/docs/guide/es/specs/1-specs-and-the-backlog.md +52 -0
  123. package/docs/guide/es/specs/2-add-spec-quick-mode.md +45 -0
  124. package/docs/guide/es/specs/3-add-spec-explore-mode.md +68 -0
  125. package/docs/guide/es/specs/4-drafts-and-contract-layer.md +81 -0
  126. package/docs/guide/fr/agents/1-meet-the-agents.md +38 -0
  127. package/docs/guide/fr/agents/2-profiles-and-the-balanced-default.md +45 -0
  128. package/docs/guide/fr/agents/3-customizing-models-per-agent.md +60 -0
  129. package/docs/guide/fr/agents/4-custom-agents-catalog.md +43 -0
  130. package/docs/guide/fr/getting-started/1-what-is-specrails.md +49 -0
  131. package/docs/guide/fr/getting-started/2-installing-and-first-run.md +42 -0
  132. package/docs/guide/fr/getting-started/3-adding-your-first-project.md +58 -0
  133. package/docs/guide/fr/getting-started/4-the-dashboard-tour.md +53 -0
  134. package/docs/guide/fr/insights/1-analytics-and-cost-tracking.md +78 -0
  135. package/docs/guide/fr/insights/2-the-integrated-terminal.md +46 -0
  136. package/docs/guide/fr/insights/3-code-explorer.md +50 -0
  137. package/docs/guide/fr/integrations/1-ai-providers.md +64 -0
  138. package/docs/guide/fr/integrations/2-plugins.md +44 -0
  139. package/docs/guide/fr/integrations/3-jira-integration.md +71 -0
  140. package/docs/guide/fr/integrations/4-mobile-companion.md +38 -0
  141. package/docs/guide/fr/pipeline/1-rails-and-jobs.md +94 -0
  142. package/docs/guide/fr/pipeline/2-the-job-detail-view.md +90 -0
  143. package/docs/guide/fr/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  144. package/docs/guide/fr/pipeline/4-picking-an-engine-per-rail.md +60 -0
  145. package/docs/guide/fr/settings/1-themes.md +37 -0
  146. package/docs/guide/fr/settings/2-language.md +39 -0
  147. package/docs/guide/fr/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  148. package/docs/guide/fr/settings/4-where-your-data-lives.md +48 -0
  149. package/docs/guide/fr/specs/1-specs-and-the-backlog.md +52 -0
  150. package/docs/guide/fr/specs/2-add-spec-quick-mode.md +45 -0
  151. package/docs/guide/fr/specs/3-add-spec-explore-mode.md +68 -0
  152. package/docs/guide/fr/specs/4-drafts-and-contract-layer.md +81 -0
  153. package/docs/guide/it/agents/1-meet-the-agents.md +38 -0
  154. package/docs/guide/it/agents/2-profiles-and-the-balanced-default.md +45 -0
  155. package/docs/guide/it/agents/3-customizing-models-per-agent.md +60 -0
  156. package/docs/guide/it/agents/4-custom-agents-catalog.md +43 -0
  157. package/docs/guide/it/getting-started/1-what-is-specrails.md +49 -0
  158. package/docs/guide/it/getting-started/2-installing-and-first-run.md +42 -0
  159. package/docs/guide/it/getting-started/3-adding-your-first-project.md +58 -0
  160. package/docs/guide/it/getting-started/4-the-dashboard-tour.md +53 -0
  161. package/docs/guide/it/insights/1-analytics-and-cost-tracking.md +78 -0
  162. package/docs/guide/it/insights/2-the-integrated-terminal.md +46 -0
  163. package/docs/guide/it/insights/3-code-explorer.md +50 -0
  164. package/docs/guide/it/integrations/1-ai-providers.md +64 -0
  165. package/docs/guide/it/integrations/2-plugins.md +44 -0
  166. package/docs/guide/it/integrations/3-jira-integration.md +71 -0
  167. package/docs/guide/it/integrations/4-mobile-companion.md +38 -0
  168. package/docs/guide/it/pipeline/1-rails-and-jobs.md +94 -0
  169. package/docs/guide/it/pipeline/2-the-job-detail-view.md +90 -0
  170. package/docs/guide/it/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  171. package/docs/guide/it/pipeline/4-picking-an-engine-per-rail.md +60 -0
  172. package/docs/guide/it/settings/1-themes.md +37 -0
  173. package/docs/guide/it/settings/2-language.md +39 -0
  174. package/docs/guide/it/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  175. package/docs/guide/it/settings/4-where-your-data-lives.md +48 -0
  176. package/docs/guide/it/specs/1-specs-and-the-backlog.md +52 -0
  177. package/docs/guide/it/specs/2-add-spec-quick-mode.md +45 -0
  178. package/docs/guide/it/specs/3-add-spec-explore-mode.md +68 -0
  179. package/docs/guide/it/specs/4-drafts-and-contract-layer.md +81 -0
  180. package/docs/guide/ja/agents/1-meet-the-agents.md +38 -0
  181. package/docs/guide/ja/agents/2-profiles-and-the-balanced-default.md +45 -0
  182. package/docs/guide/ja/agents/3-customizing-models-per-agent.md +60 -0
  183. package/docs/guide/ja/agents/4-custom-agents-catalog.md +43 -0
  184. package/docs/guide/ja/getting-started/1-what-is-specrails.md +49 -0
  185. package/docs/guide/ja/getting-started/2-installing-and-first-run.md +42 -0
  186. package/docs/guide/ja/getting-started/3-adding-your-first-project.md +58 -0
  187. package/docs/guide/ja/getting-started/4-the-dashboard-tour.md +53 -0
  188. package/docs/guide/ja/insights/1-analytics-and-cost-tracking.md +78 -0
  189. package/docs/guide/ja/insights/2-the-integrated-terminal.md +46 -0
  190. package/docs/guide/ja/insights/3-code-explorer.md +50 -0
  191. package/docs/guide/ja/integrations/1-ai-providers.md +64 -0
  192. package/docs/guide/ja/integrations/2-plugins.md +44 -0
  193. package/docs/guide/ja/integrations/3-jira-integration.md +71 -0
  194. package/docs/guide/ja/integrations/4-mobile-companion.md +38 -0
  195. package/docs/guide/ja/pipeline/1-rails-and-jobs.md +94 -0
  196. package/docs/guide/ja/pipeline/2-the-job-detail-view.md +90 -0
  197. package/docs/guide/ja/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  198. package/docs/guide/ja/pipeline/4-picking-an-engine-per-rail.md +60 -0
  199. package/docs/guide/ja/settings/1-themes.md +37 -0
  200. package/docs/guide/ja/settings/2-language.md +39 -0
  201. package/docs/guide/ja/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  202. package/docs/guide/ja/settings/4-where-your-data-lives.md +48 -0
  203. package/docs/guide/ja/specs/1-specs-and-the-backlog.md +52 -0
  204. package/docs/guide/ja/specs/2-add-spec-quick-mode.md +45 -0
  205. package/docs/guide/ja/specs/3-add-spec-explore-mode.md +68 -0
  206. package/docs/guide/ja/specs/4-drafts-and-contract-layer.md +81 -0
  207. package/docs/guide/pt/agents/1-meet-the-agents.md +38 -0
  208. package/docs/guide/pt/agents/2-profiles-and-the-balanced-default.md +45 -0
  209. package/docs/guide/pt/agents/3-customizing-models-per-agent.md +60 -0
  210. package/docs/guide/pt/agents/4-custom-agents-catalog.md +43 -0
  211. package/docs/guide/pt/getting-started/1-what-is-specrails.md +49 -0
  212. package/docs/guide/pt/getting-started/2-installing-and-first-run.md +42 -0
  213. package/docs/guide/pt/getting-started/3-adding-your-first-project.md +58 -0
  214. package/docs/guide/pt/getting-started/4-the-dashboard-tour.md +53 -0
  215. package/docs/guide/pt/insights/1-analytics-and-cost-tracking.md +78 -0
  216. package/docs/guide/pt/insights/2-the-integrated-terminal.md +46 -0
  217. package/docs/guide/pt/insights/3-code-explorer.md +50 -0
  218. package/docs/guide/pt/integrations/1-ai-providers.md +64 -0
  219. package/docs/guide/pt/integrations/2-plugins.md +44 -0
  220. package/docs/guide/pt/integrations/3-jira-integration.md +71 -0
  221. package/docs/guide/pt/integrations/4-mobile-companion.md +38 -0
  222. package/docs/guide/pt/pipeline/1-rails-and-jobs.md +94 -0
  223. package/docs/guide/pt/pipeline/2-the-job-detail-view.md +90 -0
  224. package/docs/guide/pt/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  225. package/docs/guide/pt/pipeline/4-picking-an-engine-per-rail.md +60 -0
  226. package/docs/guide/pt/settings/1-themes.md +37 -0
  227. package/docs/guide/pt/settings/2-language.md +39 -0
  228. package/docs/guide/pt/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  229. package/docs/guide/pt/settings/4-where-your-data-lives.md +48 -0
  230. package/docs/guide/pt/specs/1-specs-and-the-backlog.md +52 -0
  231. package/docs/guide/pt/specs/2-add-spec-quick-mode.md +45 -0
  232. package/docs/guide/pt/specs/3-add-spec-explore-mode.md +68 -0
  233. package/docs/guide/pt/specs/4-drafts-and-contract-layer.md +81 -0
  234. package/docs/guide/zh/agents/1-meet-the-agents.md +38 -0
  235. package/docs/guide/zh/agents/2-profiles-and-the-balanced-default.md +45 -0
  236. package/docs/guide/zh/agents/3-customizing-models-per-agent.md +60 -0
  237. package/docs/guide/zh/agents/4-custom-agents-catalog.md +43 -0
  238. package/docs/guide/zh/getting-started/1-what-is-specrails.md +49 -0
  239. package/docs/guide/zh/getting-started/2-installing-and-first-run.md +42 -0
  240. package/docs/guide/zh/getting-started/3-adding-your-first-project.md +58 -0
  241. package/docs/guide/zh/getting-started/4-the-dashboard-tour.md +53 -0
  242. package/docs/guide/zh/insights/1-analytics-and-cost-tracking.md +78 -0
  243. package/docs/guide/zh/insights/2-the-integrated-terminal.md +46 -0
  244. package/docs/guide/zh/insights/3-code-explorer.md +50 -0
  245. package/docs/guide/zh/integrations/1-ai-providers.md +64 -0
  246. package/docs/guide/zh/integrations/2-plugins.md +44 -0
  247. package/docs/guide/zh/integrations/3-jira-integration.md +71 -0
  248. package/docs/guide/zh/integrations/4-mobile-companion.md +38 -0
  249. package/docs/guide/zh/pipeline/1-rails-and-jobs.md +94 -0
  250. package/docs/guide/zh/pipeline/2-the-job-detail-view.md +90 -0
  251. package/docs/guide/zh/pipeline/3-batch-implement-and-multi-feature.md +78 -0
  252. package/docs/guide/zh/pipeline/4-picking-an-engine-per-rail.md +60 -0
  253. package/docs/guide/zh/settings/1-themes.md +37 -0
  254. package/docs/guide/zh/settings/2-language.md +39 -0
  255. package/docs/guide/zh/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
  256. package/docs/guide/zh/settings/4-where-your-data-lives.md +48 -0
  257. package/docs/guide/zh/specs/1-specs-and-the-backlog.md +52 -0
  258. package/docs/guide/zh/specs/2-add-spec-quick-mode.md +45 -0
  259. package/docs/guide/zh/specs/3-add-spec-explore-mode.md +68 -0
  260. package/docs/guide/zh/specs/4-drafts-and-contract-layer.md +81 -0
  261. package/docs/internals/README.md +1 -1
  262. package/docs/internals/adding-a-provider.md +192 -59
  263. package/docs/internals/api-reference.md +130 -21
  264. package/docs/internals/architecture.md +22 -9
  265. package/docs/internals/bundled-framework-build-plan.md +264 -0
  266. package/docs/internals/configuration.md +33 -8
  267. package/docs/internals/global-artifacts-alignment-contract.md +486 -0
  268. package/docs/internals/global-artifacts-relocation-evaluation.md +294 -0
  269. package/docs/internals/operations-runbook.md +16 -5
  270. package/docs/internals/profiles.md +42 -14
  271. package/docs/platforms/macos.md +27 -8
  272. package/docs/platforms/windows.md +20 -6
  273. package/docs/running-pipelines.md +17 -9
  274. package/docs/terminal.md +9 -3
  275. package/docs/tracking-cost.md +17 -11
  276. package/package.json +1 -1
  277. package/server/dist/agent-refine-manager.js +20 -5
  278. package/server/dist/artifact-registry.js +468 -0
  279. package/server/dist/attachment-manager.js +5 -8
  280. package/server/dist/browser-capture-manager.js +4 -4
  281. package/server/dist/bundled-core.js +72 -0
  282. package/server/dist/bundled-openspec.js +58 -0
  283. package/server/dist/chat-manager.js +42 -5
  284. package/server/dist/code-explorer-router.js +10 -7
  285. package/server/dist/config.js +7 -2
  286. package/server/dist/context-budget.js +17 -6
  287. package/server/dist/context-scope.js +6 -2
  288. package/server/dist/contract-refine-runner.js +31 -9
  289. package/server/dist/desktop-router.js +24 -1
  290. package/server/dist/docs-router.js +210 -132
  291. package/server/dist/file-summary-manager.js +41 -16
  292. package/server/dist/framework-manager.js +248 -0
  293. package/server/dist/framework-migration.js +308 -0
  294. package/server/dist/index.js +30 -0
  295. package/server/dist/install-config-path.js +73 -0
  296. package/server/dist/jira/jira-sync-manager.js +23 -11
  297. package/server/dist/openspec-shim.js +153 -0
  298. package/server/dist/plugins-router.js +19 -8
  299. package/server/dist/profiles-router.js +38 -16
  300. package/server/dist/project-registry.js +101 -3
  301. package/server/dist/project-router-chat.js +1 -1
  302. package/server/dist/project-router-helpers.js +25 -12
  303. package/server/dist/project-router-jobs.js +3 -3
  304. package/server/dist/project-router-settings.js +8 -6
  305. package/server/dist/project-router-setup.js +27 -10
  306. package/server/dist/project-router-spending.js +6 -1
  307. package/server/dist/project-router-tickets.js +30 -10
  308. package/server/dist/project-router.js +16 -1
  309. package/server/dist/queue-manager.js +149 -18
  310. package/server/dist/setup-manager.js +131 -29
  311. package/server/dist/smash-runner.js +21 -6
  312. package/server/dist/ticket-store.js +6 -2
  313. package/server/dist/ticket-watcher.js +5 -1
  314. package/server/dist/vitest-setup.js +25 -0
  315. package/server/dist/workspace-manager.js +199 -0
  316. package/server/dist/workspace-resolution.js +147 -0
  317. package/client/dist/assets/index-DgKfQFcf.css +0 -2
  318. package/client/dist/assets/setup-BIIkb-_K.js +0 -1
  319. package/client/dist/assets/setup-BeQxu9kD.js +0 -1
  320. package/client/dist/assets/setup-CPa6GnlI.js +0 -1
  321. package/client/dist/assets/setup-CZl4OEJx.js +0 -1
  322. package/client/dist/assets/setup-ChpodNfn.js +0 -1
  323. package/client/dist/assets/setup-D_fjJH6u.js +0 -1
  324. package/client/dist/assets/setup-YzD8DX4O.js +0 -1
  325. package/client/dist/assets/setup-fRpDozmq.js +0 -1
  326. package/docs/adding-a-provider.md +0 -107
@@ -0,0 +1,43 @@
1
+ # Agentes personalizados y el catálogo
2
+
3
+ Los perfiles deciden *qué agentes corren y con qué modelos*. Pero ¿de dónde salen los agentes en sí? De ahí: el **catálogo de Agentes**.
4
+
5
+ Abre **Agentes → Catálogo** en cualquier proyecto. Es un visor de solo lectura de todos los agentes disponibles para ese proyecto, en dos grupos:
6
+
7
+ - **Agentes upstream** — los agentes que vienen con `specrails-core`: el trío base (`sr-architect`, `sr-developer`, `sr-reviewer`) y cualquier especialista como `sr-merge-resolver`.
8
+ - **Agentes personalizados** — agentes que has añadido tú, con el nombre `custom-*`.
9
+
10
+ Cada entrada del catálogo muestra para qué sirve el agente y su modelo por defecto, así que puedes ver la plantilla completa antes de conectar agentes a la cadena de un perfil.
11
+
12
+ ## Añadir un agente personalizado
13
+
14
+ Los agentes personalizados son simples archivos Markdown dentro de tu repositorio, en `.claude/agents/`, con el nombre `custom-<algo>.md`. El archivo contiene las instrucciones del agente (su system prompt) y una pequeña cabecera de frontmatter que incluye un `model:` por defecto.
15
+
16
+ Una vez que el archivo existe en el proyecto, aparece en el catálogo como agente personalizado, y puedes añadir su id a la cadena de agentes de cualquier perfil (y enrutar tareas hacia él). El id debe coincidir con el nombre del archivo — una entrada para `custom-docs` se corresponde con `.claude/agents/custom-docs.md`.
17
+
18
+ Como viven en tu repo, los agentes personalizados son **activos de equipo commiteables**: commitea el archivo y todo tu equipo recibe el agente. Esto refleja la idea central de toda la sección Agentes —
19
+
20
+ > **Las definiciones de los agentes son compartidas (viven en el repo y viajan con `git`). La configuración de modelos es por proyecto (vive en los perfiles).**
21
+
22
+ El espacio de nombres `custom-*` está reservado y protegido: los comandos `init` y `update` de `specrails-core` nunca tocan `.claude/agents/custom-*.md`, así que tus agentes personalizados sobreviven intactos a las actualizaciones de core. (La misma protección cubre los fragmentos aportados por plugins, como `custom-serena.md`.)
23
+
24
+ ## Poner a trabajar un agente personalizado
25
+
26
+ El flujo típico:
27
+
28
+ 1. Escribe `.claude/agents/custom-<nombre>.md` con instrucciones y un modelo por defecto.
29
+ 2. Confirma que aparece en **Agentes → Catálogo** bajo Personalizados.
30
+ 3. En **Agentes → Perfiles**, añade el agente a la cadena de un perfil (sobrescribiendo opcionalmente su modelo para ese perfil).
31
+ 4. Añade una regla de enrutado para que las tareas con las etiquetas adecuadas lleguen a él — o confía en el orden de la cadena.
32
+ 5. Lanza un rail con ese perfil desde la cabecera del rail.
33
+
34
+ ## Vigilar cómo rinden los perfiles
35
+
36
+ La sección Agentes también tiene una pestaña **Uso** — un desglose por perfil de cuántos jobs corrieron bajo cada perfil en una ventana seleccionada. Es una forma rápida de confirmar que tu reparto `fast`/`max` se está usando realmente como pretendías, y de detectar hacia qué perfil gravita tu equipo.
37
+
38
+ ## Resumen de toda la sección
39
+
40
+ - **Los agentes** son los miembros especializados del equipo — el trío compartido más los especialistas y tus agentes personalizados. ([Conoce a los agentes](meet-the-agents))
41
+ - **Los perfiles** empaquetan qué agentes corren, con qué modelos y cómo se enrutan las tareas — se seleccionan por rail en el lanzamiento. El perfil default es la elección equilibrada del día a día. ([Perfiles y el equilibrado por defecto](profiles-and-the-balanced-default))
42
+ - **Los modelos** se ajustan por agente, por proyecto, dentro de los perfiles — crea `fast` y `max` para que encajen con el trabajo. ([Personalizar los modelos por agente](customizing-models-per-agent))
43
+ - **El catálogo** muestra todos los agentes, y el espacio de nombres `custom-*` te deja hacer crecer el equipo — definiciones compartidas, configuración por proyecto.
@@ -0,0 +1,49 @@
1
+ # Qué es specrails
2
+
3
+ Te damos la bienvenida a **specrails**, una app de escritorio que convierte a un asistente de programación con IA en un auténtico equipo de desarrollo que trabaja en *tus* proyectos, en *tu* máquina.
4
+
5
+ En lugar de copiar y pegar prompts de un lado a otro, describes lo que quieres como una **spec** y specrails la lleva a través de un pipeline de desarrollo completo —diseñando, construyendo, revisando y publicando el cambio— mientras lo ves suceder en directo.
6
+
7
+ ## Desarrollo con IA guiado por specs
8
+
9
+ El corazón de specrails es una idea sencilla: **la mejor forma de conseguir buen código de una IA es partir de una spec clara.**
10
+
11
+ Una *spec* es una descripción breve y estructurada de un trabajo concreto: una funcionalidad, una corrección, un refactor. Puedes escribir una en segundos, o darle forma a través de un chat guiado que te hace las preguntas adecuadas y la redacta por ti. Cada spec se convierte en un **ticket** en el tablero de tu proyecto, igual que una tarea en cualquier gestor de incidencias.
12
+
13
+ A partir de ahí, le pasas la spec al pipeline y dejas que la IA haga el trabajo pesado.
14
+
15
+ ## El pipeline: Architect → Developer → Reviewer → Ship
16
+
17
+ Cuando lanzas una spec, specrails la lleva a través de cuatro etapas, cada una interpretada por un agente de IA especializado:
18
+
19
+ 1. **Architect** — lee tu spec y el código que la rodea, y luego planifica el cambio: qué archivos tocar y qué forma debería tener la solución.
20
+ 2. **Developer** — escribe el código de verdad, siguiendo el plan.
21
+ 3. **Reviewer** — comprueba que el trabajo sea correcto y de calidad, detectando problemas antes que tú.
22
+ 4. **Ship** — finaliza el cambio para que quede listo para hacer commit.
23
+
24
+ Ves cada etapa a medida que se ejecuta, con logs en directo que llegan directamente de la IA. No se oculta nada: si algo se tuerce, verás exactamente dónde.
25
+
26
+ ## Proyectos
27
+
28
+ Todo en specrails se organiza en torno a **proyectos**. Un proyecto no es más que una carpeta de tu ordenador que contiene una base de código. Puedes añadir tantos proyectos como quieras y cambiar entre ellos al instante; cada uno conserva sus propias specs, su historial de jobs, sus analíticas y sus ajustes.
29
+
30
+ specrails nunca toca código que no le hayas pedido tocar. Trabaja dentro de tu repositorio existente, y tú mantienes el control de lo que acaba en un commit.
31
+
32
+ ## Elige tu provider de IA
33
+
34
+ specrails funciona con los principales CLI de programación con IA:
35
+
36
+ - **Claude** (Claude Code)
37
+ - **Codex** (Codex CLI)
38
+ - **Gemini** (Gemini CLI)
39
+
40
+ Elige el que ya uses, o instala más de uno y escoge según la tarea. Un proyecto puede funcionar con un único provider o con varios a la vez, así que nunca te quedas atado a uno.
41
+
42
+ ## Por qué te va a gustar
43
+
44
+ - **Velocidad sin caos** — las specs mantienen a la IA centrada, así que obtienes cambios útiles en lugar de divagaciones interminables.
45
+ - **Visibilidad total** — logs en directo, una vista clara del pipeline y analíticas por proyecto te muestran exactamente qué pasó y cuánto costó.
46
+ - **Tu máquina, tu código** — todo se ejecuta en local contra tu repositorio real.
47
+ - **Todo en un solo sitio** — specs, jobs, chat, una terminal integrada y seguimiento de costes, todo en una única ventana.
48
+
49
+ ¿Listo para empezar? Lo siguiente: [Instalación y primer arranque](installing-and-first-run).
@@ -0,0 +1,42 @@
1
+ # Instalación y primer arranque
2
+
3
+ Poner specrails en tu máquina te llevará un par de minutos. Aquí tienes todo el proceso.
4
+
5
+ ## 1. Descarga e instala
6
+
7
+ Hazte con el instalador para tu plataforma:
8
+
9
+ - **macOS (Apple Silicon)** — un archivo `.dmg`. Ábrelo y arrastra **specrails** a tu carpeta de Aplicaciones.
10
+ - **Windows** — un instalador `.exe`. Ejecútalo y sigue los pasos.
11
+
12
+ > **Aviso sobre los avisos de seguridad de macOS y Windows**
13
+ >
14
+ > - En **Windows**, el instalador aún no está firmado, así que SmartScreen puede mostrar una advertencia. Haz clic en **Más información → Ejecutar de todas formas** para continuar.
15
+ > - En **macOS**, la app está firmada y notarizada, así que debería abrirse sin problemas.
16
+
17
+ ## 2. Lo que vas a necesitar (requisitos previos)
18
+
19
+ specrails ejecuta pipelines de desarrollo con IA controlando herramientas de línea de comandos reales, así que hay algunas cosas que deben estar disponibles. La buena noticia: la app de escritorio **incluye la mayoría por ti** (Node.js, npm y Git vienen dentro de la app), así que en una máquina recién estrenada normalmente no hay nada que instalar.
20
+
21
+ Lo único que specrails no puede incluir es el **CLI del provider de IA** en sí. Necesitarás al menos uno de estos:
22
+
23
+ - **Claude Code**
24
+ - **Codex CLI**
25
+ - **Gemini CLI**
26
+
27
+ Instala el que tengas pensado usar, inicia sesión una vez desde tu terminal y listo. specrails detecta automáticamente qué providers están presentes.
28
+
29
+ > Si en algún momento ves una herramienta marcada como ausente, la app muestra un enlace de **Más información** con comandos de instalación listos para copiar y pegar, adaptados a tu sistema operativo (Homebrew en macOS, winget en Windows, apt/dnf en Linux). Puedes volver a comprobarlo en cualquier momento sin reiniciar.
30
+
31
+ ## 3. Primer arranque — la pantalla de bienvenida
32
+
33
+ La primera vez que abras specrails, llegarás a una **pantalla de bienvenida** limpia. Todavía no hay proyectos, así que la app te invita a añadir el primero.
34
+
35
+ Verás:
36
+
37
+ - Una breve descripción de lo que hace specrails.
38
+ - Un único botón **Añadir tu primer proyecto**.
39
+
40
+ Eso es toda la puesta en marcha: ninguna cuenta que crear, ningún registro. specrails funciona por completo en tu máquina.
41
+
42
+ Haz clic en **Añadir tu primer proyecto** y continúa con [Añadir tu primer proyecto](adding-your-first-project).
@@ -0,0 +1,58 @@
1
+ # Añadir tu primer proyecto
2
+
3
+ Un proyecto no es más que una carpeta de tu ordenador que contiene una base de código. Vamos a conectar una.
4
+
5
+ ## Abre el diálogo de Añadir proyecto
6
+
7
+ Haz clic en **Añadir tu primer proyecto** en la pantalla de bienvenida (o, más adelante, en el botón **Añadir proyecto** de la barra lateral izquierda). Aparece un pequeño diálogo.
8
+
9
+ ## Rellena los datos
10
+
11
+ **Carpeta del proyecto** *(obligatorio)*
12
+
13
+ Apunta specrails a la carpeta que contiene tu código. En la app de escritorio puedes hacer clic en el icono de carpeta para explorar y seleccionarla visualmente, o pegar la ruta completa. Debería ser la raíz de tu repositorio: la carpeta que contiene tu código y (normalmente) un directorio `.git`.
14
+
15
+ **Nombre del proyecto** *(opcional)*
16
+
17
+ Una etiqueta amigable que se muestra en la barra lateral. Si lo dejas en blanco, specrails usa el nombre de la carpeta.
18
+
19
+ **Providers**
20
+
21
+ Elige qué provider(s) de IA debería usar este proyecto. specrails te muestra los que ha detectado en tu máquina:
22
+
23
+ - 🤖 **Claude**
24
+ - ⚡ **Codex**
25
+ - ✨ **Gemini**
26
+
27
+ Los providers que no ha encontrado aparecen en gris y marcados como *no encontrado*: instala uno e inicia sesión, y luego vuelve a abrir el diálogo. Por defecto, todos los providers disponibles vienen preseleccionados, pero puedes deseleccionar hasta quedarte solo con el que quieras. Si eliges más de uno, el **primero** se convierte en el predeterminado del proyecto; más adelante podrás escoger según la tarea.
28
+
29
+ > Una comprobación rápida se ejecuta en segundo plano para confirmar que las herramientas necesarias están presentes. Si falta algo esencial, el botón **Añadir** permanece deshabilitado y un enlace de **Más información** te da los comandos exactos de instalación.
30
+
31
+ Haz clic en **Añadir** para continuar.
32
+
33
+ ## Una configuración que se hace en segundos
34
+
35
+ Si la carpeta ya tiene specrails configurado, has terminado: el proyecto aparece en tu barra lateral al instante.
36
+
37
+ Si es un proyecto nuevo, se ejecuta un breve **asistente de configuración**. Tiene tres pasos:
38
+
39
+ 1. **Configurar** — confirma lo básico para cada provider que hayas elegido.
40
+ 2. **Instalar** — specrails configura el proyecto automáticamente. Es la instalación *rápida*: agentes de plantilla listos para usar que quedan en su sitio en segundos. Verás un log en directo mientras se ejecuta.
41
+ 3. **Hecho** — un resumen que confirma que todo está listo.
42
+
43
+ En un proyecto con varios providers, la instalación se ejecuta una vez por provider, uno tras otro, y el paso Hecho muestra una tarjeta para cada uno.
44
+
45
+ ## Qué se instala
46
+
47
+ La configuración es deliberadamente ligera y **no invasiva**. specrails añade una pequeña cantidad de configuración a tu proyecto para que el pipeline sepa cómo ejecutarse:
48
+
49
+ - Una carpeta `.specrails/` que guarda los perfiles de agente y los ajustes locales de tu proyecto.
50
+ - Definiciones de agentes en `.claude/agents/` que dan vida al pipeline Architect → Developer → Reviewer → Ship.
51
+
52
+ Eso es todo: specrails no reescribe tu código fuente durante la configuración, y estos archivos se pueden hacer commit sin problema si quieres compartir la configuración con tu equipo.
53
+
54
+ > **¿Prefieres la configuración a fondo?** La app incluye a propósito la instalación rápida desde plantillas. Si prefieres el flujo enriquecido con IA (análisis de la base de código y personas de agente personalizadas), puedes ejecutar `npx specrails-core@latest init` desde la carpeta de tu proyecto en una terminal.
55
+
56
+ ## Ya estás dentro
57
+
58
+ Cuando termine la configuración, specrails te lleva directamente al dashboard de tu proyecto. Es hora del recorrido: consulta [El recorrido por el dashboard](the-dashboard-tour).
@@ -0,0 +1,53 @@
1
+ # El recorrido por el dashboard
2
+
3
+ Con un proyecto ya añadido, estás viendo el **dashboard de tu proyecto**: tu base de operaciones para convertir specs en código publicado. Vamos a ver cómo orientarte.
4
+
5
+ ## El panorama general
6
+
7
+ La ventana tiene tres zonas:
8
+
9
+ - **Barra lateral izquierda** — tu lista de proyectos. Haz clic en cualquier proyecto para cambiar a él al instante; todo lo demás en la ventana se actualiza para reflejarlo. El botón **Añadir proyecto** también vive aquí.
10
+ - **Área principal** — el dashboard del proyecto activo: tus specs y el pipeline que las ejecuta.
11
+ - **Barra lateral derecha** — la navegación entre las secciones del proyecto actual.
12
+
13
+ ## El dashboard principal
14
+
15
+ Aquí es donde ocurre el trabajo. El dashboard muestra:
16
+
17
+ - **Tus specs** — los tickets que has creado, organizados por estado (de Backlog/Por hacer hasta Hecho). Puedes verlos como lista, como cuadrícula o como tarjetas tipo nota adhesiva, lo que prefieras.
18
+ - **Una forma de añadir una spec** — empieza un nuevo trabajo. Puedes escribir una spec rápida directamente, o abrir un chat guiado de **Explore** que te ayuda a darle forma a través de la conversación y redacta el ticket por ti.
19
+ - **Rails** — son los carriles donde se construyen las specs. Suelta una spec en un rail y lánzala para enviarla a través del pipeline Architect → Developer → Reviewer → Ship. Pueden ejecutarse varios rails a la vez, así que puedes trabajar en varias cosas en paralelo.
20
+
21
+ Cuando una spec está en ejecución, verás el progreso de su pipeline y sus logs en directo: la salida en tiempo real de la IA mientras diseña, programa y revisa tu cambio.
22
+
23
+ ## La barra lateral derecha: las secciones del proyecto
24
+
25
+ La barra lateral derecha es tu cuadro de mandos para el proyecto actual. Pasa el ratón por encima para expandirla, o ánclala abierta. Las secciones que verás:
26
+
27
+ - **Dashboard** — el tablero de specs y los rails (donde acabas de estar).
28
+ - **Jobs** — todas las ejecuciones de pipeline de este proyecto, pasadas y presentes, con su estado, su duración y la posibilidad de profundizar en el detalle y los logs de cualquier ejecución.
29
+ - **Analíticas** — cuánto te está costando tu uso de IA. El gasto desglosado por día, por actividad, por modelo y por ticket, para que no haya sorpresas.
30
+ - **Agentes** — los perfiles de agente de tu proyecto: qué agentes se ejecutan en el pipeline y qué modelos de IA usan. *(Solo en proyectos basados en Claude.)*
31
+ - **Código** — un explorador de archivos de solo lectura con resúmenes de IA en lenguaje sencillo, y chips que muestran qué archivos ha tocado la IA. Ideal para quienes no programan pero quieren seguir el proceso.
32
+ - **Integraciones** — complementos opcionales, como conectar tus specs a un tablero de **Jira** o habilitar herramientas adicionales para la IA.
33
+ - **Ajustes** — opciones por proyecto (telemetría, presupuestos, configuración de providers y más).
34
+
35
+ > Algunas secciones solo aparecen cuando tienen sentido para los providers que elegiste; por ejemplo, **Agentes** es específica de Claude. Si no ves una sección, simplemente es que no aplica a la configuración de este proyecto.
36
+
37
+ ## La barra de estado
38
+
39
+ Una fina franja recorre la parte inferior de la ventana. Es pequeña, pero útil:
40
+
41
+ - **Indicador de conexión** (izquierda) — un punto de color y una etiqueta que muestran que la app está activa: verde para *conectado*, ámbar mientras *reconecta*, azul mientras *sincroniza* justo después de una reconexión. Rara vez lo necesitarás, pero tranquiliza tenerlo.
42
+ - **Gasto total** (derecha) — un total acumulado de lo que has gastado, para que el coste esté siempre a un solo vistazo.
43
+ - **Botón de terminal** (extremo derecho) — abre el panel de terminal integrado. Pulsa **Cmd+J** (macOS) o **Ctrl+J** (Windows/Linux) para alternarlo en cualquier momento. Es una shell completa, abierta directamente en la carpeta de tu proyecto.
44
+
45
+ ## Algunos atajos prácticos
46
+
47
+ - **Cmd/Ctrl+B** — ancla o contrae las barras laterales.
48
+ - **Cmd/Ctrl+J** — alterna el panel de terminal.
49
+ - **Cmd/Ctrl+K** — abre la búsqueda.
50
+
51
+ ## A dónde ir después
52
+
53
+ Ya conoces el terreno. Desde aquí, el primer paso natural es **añadir una spec** y lanzarla en un rail: observa cómo el pipeline se ejecuta de principio a fin y luego revisa las **Analíticas** para ver cuánto costó. Bienvenido a bordo.
@@ -0,0 +1,78 @@
1
+ # Analíticas y seguimiento de costes
2
+
3
+ Cada vez que Specrails ejecuta una CLI de IA en tu nombre —un job del pipeline, una spec rápida, una sesión de Explore, un refinado con IA, un resumen de archivo— deja constancia de lo que ocurrió: qué modelo se ejecutó, cuántos tokens entraron y salieron, cuánto tardó y cuánto costó. La sección **Analíticas** convierte todo eso en un único panel para que siempre sepas adónde va tu gasto en IA.
4
+
5
+ Ábrela desde la barra lateral derecha (está etiquetada como **Analíticas**). Todo lo que ves está acotado al proyecto en el que estés ahora mismo: cambia de proyecto y los números te siguen.
6
+
7
+ ## Qué cuenta como gasto
8
+
9
+ Specrails registra cinco tipos de actividad de IA, llamados *superficies*. Cada uno tiene un color asignado de forma consistente en todas las gráficas, para que lo identifiques de un vistazo:
10
+
11
+ - **Job** — un rail del pipeline ejecutando Architect → Developer → Reviewer → Ship.
12
+ - **Quick spec** — una spec generada por la vía rápida de Add Spec.
13
+ - **Explore spec** — una conversación de Explore en la que das forma a una spec charlando.
14
+ - **AI edit** — un refinado asistido por IA sobre un agente o un archivo.
15
+ - **File summary** — los resúmenes en lenguaje sencillo que alimentan el Code explorer.
16
+
17
+ Hay un par de cosas que, a propósito, *no* se registran: el panel de chat lateral y el asistente de configuración también lanzan CLIs de IA, pero nunca aparecen en tu gasto. Así el panel refleja trabajo real y repetible, en lugar de conversaciones puntuales.
18
+
19
+ ## Cómo leer el panel
20
+
21
+ La página se compone de unos cuantos bloques, de arriba abajo:
22
+
23
+ ### El medidor de consumo (Hero)
24
+
25
+ El número grande de la parte superior es tu gasto total del periodo seleccionado, con un delta **vs anterior** para que veas de un vistazo si tu tendencia sube o baja respecto a la ventana previa. Si acabas de empezar a usar un proyecto, el estado vacío te indica cuándo empezó el seguimiento ("Seguimiento iniciado el YYYY-MM-DD"): no hay relleno retroactivo de datos históricos, así que el medidor solo conoce las ejecuciones que ocurrieron mientras usabas esta versión.
26
+
27
+ ### Cronología diaria
28
+
29
+ Un gráfico de barras apiladas con el gasto por día, desglosado por superficie. Los días sin actividad se muestran como cero en lugar de omitirse, para que la forma de tu semana sea honesta. Es la forma más rápida de ver *cuándo* se ejecutó un lote costoso.
30
+
31
+ ### Quick vs Explore
32
+
33
+ Una tarjeta que compara codo con codo tus dos estilos de creación de specs. Si has hecho menos de cinco sesiones de Explore, muestra una invitación amable en lugar de medias engañosas: las muestras pequeñas no sirven para comparaciones fiables.
34
+
35
+ ### Por modelo
36
+
37
+ Tus modelos con más gasto (hasta diez). Haz clic en cualquier modelo para filtrar todo el panel y dejar solo ese modelo: muy útil cuando quieres saber cuánto te está costando de verdad un modelo de gama alta concreto.
38
+
39
+ ### Dispersión de coste vs turnos
40
+
41
+ Cada punto es una invocación, situando el coste frente al número de turnos. Los valores atípicos —las ejecuciones caras y con muchos turnos— saltan a la vista enseguida. (La dispersión muestra tus 500 puntos más recientes para seguir siendo ágil.)
42
+
43
+ ### Tickets principales
44
+
45
+ Tus diez tickets más caros sumando *todas* las superficies a la vez, de modo que un ticket que costó poco en Explore y mucho en un job muestra su total real. Los tickets eliminados y las ejecuciones sin atribuir tienen su propio grupo, así que nada desaparece en silencio de los totales.
46
+
47
+ ### Tabla de invocaciones en bruto
48
+
49
+ La verdad sobre el terreno: una fila por invocación. Este bloque tiene sus propios filtros secundarios que solo afectan a la tabla, así que puedes profundizar sin alterar las gráficas de arriba.
50
+
51
+ ## Filtrado
52
+
53
+ La cabecera fija de la parte superior lleva los dos filtros principales —**periodo** y **superficie**— y ambos se guardan en la URL de la página. Eso significa que puedes marcar como favorita o compartir una vista filtrada ("últimos 30 días, solo jobs") y se reabrirá exactamente como la dejaste. Los filtros de la tabla en bruto son aparte y se mantienen locales a ese bloque.
54
+
55
+ Una nota sobre la precisión: las ejecuciones fallidas y abortadas se dejan fuera de las *medias de coste* (distorsionarían los números por ejecución), pero siguen contando para tu número total de ejecuciones y tu tasa de fallos. Así las medias se mantienen limpias mientras la imagen de fiabilidad queda completa.
56
+
57
+ ## Coste por ticket
58
+
59
+ No hace falta ir a la página de Analíticas para ver cuánto costó una spec. Abre cualquier ticket y, si tiene gasto asociado, verás un resumen de una línea justo debajo del título:
60
+
61
+ > $0.42 · 6 turns · 1m 12s active · breakdown
62
+
63
+ Haz clic y aterrizas en la página de Analíticas ya filtrada por ese ticket. Es el camino más rápido entre "¿cuánto me costó esta funcionalidad?" y el desglose completo.
64
+
65
+ ## Exportar tus datos
66
+
67
+ Cuando necesites los números fuera de la aplicación —una hoja de cálculo, un informe de finanzas, tu propio análisis— usa el desplegable **Exportar**. Ofrece cuatro formatos:
68
+
69
+ - **CSV resumen** — un archivo con varias secciones que incluye totales, la cronología diaria, por superficie, por modelo y tickets principales.
70
+ - **JSON resumen** — el mismo resumen, estructurado.
71
+ - **CSV en bruto** — cada fila de invocación (hasta 10 000; indica si tuvo que truncar).
72
+ - **JSON en bruto** — las mismas filas en bruto, estructuradas.
73
+
74
+ Las exportaciones respetan los filtros de periodo y superficie que tengas aplicados en ese momento, y los archivos se nombran de forma que se ordenen con sentido: `<project>-analytics-<period>-<date>.csv`. El botón se deshabilita cuando no hay nada que exportar, y recibirás un aviso de error claro si una descarga falla.
75
+
76
+ ## Siempre al día
77
+
78
+ No necesitas refrescar. Cuando se registra una nueva invocación en cualquier parte del proyecto, el panel abierto se vuelve a cargar discretamente un instante después, de modo que el medidor de consumo va al ritmo del trabajo a medida que termina.
@@ -0,0 +1,46 @@
1
+ # El terminal integrado
2
+
3
+ Specrails tiene un terminal de verdad integrado: el panel que sube desde la parte inferior de la ventana, igual que el de VS Code o Cursor. Ejecuta tu shell real, en el directorio real de tu proyecto, así que puedes usar `git`, `npm`, tests o cualquier otra cosa sin salir de la aplicación.
4
+
5
+ ## Abrirlo y cerrarlo
6
+
7
+ La forma más rápida es el teclado: **Cmd+J** (macOS) o **Ctrl+J** (Windows/Linux) abre y cierra el panel, y enfoca el terminal en cuanto aparece para que puedas empezar a escribir de inmediato. También puedes usar el chevron de la barra de estado.
8
+
9
+ El panel tiene tres estados:
10
+
11
+ - **Oculto** — guardado a un lado.
12
+ - **Restaurado** — el panel normal, a media altura.
13
+ - **Maximizado** — ocupando el área de trabajo cuando necesitas espacio para leer la salida.
14
+
15
+ Minimizar el panel (el chevron) **no** detiene nada: tus shells siguen ejecutándose en segundo plano. Lo único que termina de verdad una sesión es cerrarla (el icono de la papelera, o la ✕ de cada pestaña).
16
+
17
+ ## Varias sesiones
18
+
19
+ Puedes tener varios terminales a la vez en el mismo proyecto: hasta diez. Cada uno tiene su propia pestaña; puedes renombrarlos para no confundir "dev server" con "tests". Todos arrancan en la carpeta de tu proyecto y cargan tu perfil de shell (`.zshrc`, `.bashrc`, etc.), así que tus alias y tu PATH son exactamente los que esperarías.
20
+
21
+ Y aquí viene lo importante: tus terminales **sobreviven a los cambios de proyecto y de pestaña**. Specrails mantiene cada sesión viva e intacta entre bambalinas —scrollback, procesos en ejecución, todo— de modo que saltar a Analíticas y volver no reinicia tu shell ni interrumpe un comando que esté tardando. Las sesiones solo terminan cuando las cierras explícitamente (o cuando eliminas todo el proyecto).
22
+
23
+ ## Por proyecto, recordado
24
+
25
+ Si el panel está abierto, cuánto lo has arrastrado de alto, qué pestañas existen: todo eso se recuerda **por proyecto**. Vuelve a un proyecto y lo encontrarás tal como lo dejaste.
26
+
27
+ ## Las funciones premium
28
+
29
+ Esto no es una consola pelada. El terminal viene con los detalles que querrías de uno de primera:
30
+
31
+ - **Renderizado rápido y nítido** mediante WebGL (con un repliegue automático para que nunca se rompa), gestión completa del ancho Unicode y ligaduras de fuente.
32
+ - **Busca en tu scrollback** con **Cmd+F** — genial para encontrar ese error enterrado 500 líneas más arriba.
33
+ - **Zoom de fuente** con **Cmd+=**, **Cmd+-** y **Cmd+0** para restablecer.
34
+ - **Atajos de portapapeles** — Cmd+C / Cmd+V para copiar y pegar, Cmd+K para limpiar — más un menú contextual con clic derecho.
35
+ - **Arrastrar y soltar rutas de archivo** (en la aplicación de escritorio): suelta un archivo sobre el terminal y su ruta se inserta, correctamente entrecomillada para tu shell.
36
+ - **Redimensionado suave** — arrastrar la altura del panel o plegar la barra lateral no provocará saltos en la salida.
37
+ - **Imágenes en línea** — los terminales que emiten imágenes tipo Sixel o iTerm2 las renderizan ahí mismo.
38
+ - **Integración con el shell** — Specrails sabe dónde empieza y termina cada comando, así que puede llevar tu historial de comandos y avisarte cuando un comando largo termina (una notificación de escritorio, con repliegue al navegador). Si tu shell no puede instrumentarse por algún motivo, degrada en silencio y te lo dice una vez.
39
+
40
+ ## Ajustes
41
+
42
+ Las preferencias del terminal viven en dos capas: un valor por defecto para toda la aplicación y una anulación opcional por proyecto. El ajuste por proyecto gana cuando existe, así que puedes mantener un aspecto global mientras retocas un proyecto que necesite algo distinto.
43
+
44
+ ## Desactivarlo
45
+
46
+ El terminal está activado por defecto. Si prefieres no tenerlo, puede desactivarse mediante los flags `VITE_FEATURE_TERMINAL_PANEL` (cliente) o `SPECRAILS_TERMINAL_PANEL` (servidor) — pon cualquiera de los dos a `false`. La mayoría de la gente simplemente lo dejará activado.
@@ -0,0 +1,50 @@
1
+ # Code explorer
2
+
3
+ La sección **Code** te da una ventana amigable y de solo lectura a tu repositorio, pensada especialmente para quienes quieren entender lo que la IA ha estado construyendo sin vivir dentro de un editor. Tienes un árbol de archivos a la izquierda, un visor de código a la derecha y, encima del código, un resumen en lenguaje sencillo de lo que hace realmente cada archivo.
4
+
5
+ En esta versión es estrictamente de solo lectura: nada de lo que hagas aquí cambia tus archivos. Piensa en ello como una sala de lectura, no como un taller.
6
+
7
+ Ábrela desde la barra lateral derecha (**Code**) y, como todo lo demás, está acotada a tu proyecto actual.
8
+
9
+ ## El árbol de archivos
10
+
11
+ El panel izquierdo es un árbol virtualizado de los archivos de tu proyecto: rápido incluso en repositorios grandes. Respeta tu `.gitignore` y una lista de exclusión integrada, así que ves los archivos que importan, no un mar de artefactos de compilación y `node_modules`.
12
+
13
+ Junto a los archivos verás **chips de procedencia**: pequeñas marcas que te indican que un archivo fue *tocado por IA*. Esto es el corazón del Code explorer: Specrails registra qué archivos creó o modificó cada job del pipeline y los vincula al ticket que originó el trabajo. Así puedes responder, de un vistazo, "¿esto lo escribió la IA o lo escribí yo?".
14
+
15
+ En la parte superior del árbol hay un filtro:
16
+
17
+ - **Tocado por IA / Touched by AI** (el valor por defecto) — solo los archivos que la IA ha cambiado.
18
+ - **Todos los archivos** — el árbol completo.
19
+
20
+ Tu elección se recuerda por proyecto, así que si te interesan sobre todo los cambios hechos por IA los verás primero cada vez.
21
+
22
+ ## El visor de código
23
+
24
+ Haz clic en un archivo y se abre en un visor completo (impulsado por Monaco, el mismo motor que VS Code) con resaltado de sintaxis adecuado que coincide con el tema que hayas elegido en la aplicación. Unos límites razonables mantienen todo fluido: los archivos binarios se rechazan con educación, y los archivos muy grandes (más de 2 MB) no se cargan.
25
+
26
+ Tu archivo actual se guarda en la URL de la página, así que puedes marcar como favorito o compartir un enlace directo a un archivo concreto.
27
+
28
+ Como en esta versión la edición no forma parte del paquete, el visor ofrece un botón **Editar en un editor externo** que copia la ruta absoluta del archivo: pégala en tu editor favorito y continúa allí.
29
+
30
+ ## Resúmenes con IA
31
+
32
+ Encima del código verás un **resumen en lenguaje sencillo** del archivo —para qué sirve, qué hace— escrito de forma que cualquiera sin perfil técnico pueda seguirlo. Se generan por ti y se guardan en caché, así que abrir un archivo que ya has mirado antes es instantáneo.
33
+
34
+ Los resúmenes son listos a la hora de mantenerse al día: están vinculados al contenido del archivo, de modo que cuando un archivo cambia de verdad el resumen se regenera, pero los archivos sin cambios no se vuelven a resumir sin necesidad. Si editas un archivo tú mismo, su resumen se marca como obsoleto en vez de regenerarse en silencio: tú mantienes el control de cuándo se refresca. Hay una acción de **regenerar** para cuando quieras una versión fresca al momento.
35
+
36
+ Un par de salvaguardas mantienen los costes a raya: la generación de resúmenes se ejecuta dentro de un **presupuesto mensual** (unos pocos dólares por defecto, configurable en Ajustes), y hay topes de cuántos resúmenes lanzará un mismo job. Si se omite un resumen, la aplicación te dice por qué: presupuesto alcanzado, un tope por job, o que el archivo simplemente no se encuentra.
37
+
38
+ También puedes elegir el **idioma del resumen** (inglés o español) en los ajustes globales, dentro del área *Code section*.
39
+
40
+ ## Conectar el código con las specs
41
+
42
+ El vínculo de procedencia funciona en ambos sentidos. Dentro del Code explorer, hacer clic en el chip de un ticket sobre un archivo abre el detalle de ese ticket. Y en sentido inverso, la vista de **detalle del ticket** tiene una sección *Archivos tocados por este ticket*: haz clic en un archivo ahí y saltas directo al Code explorer con él abierto. Cierra el círculo entre "esta es la spec que escribimos" y "este es el código que salió de ella".
43
+
44
+ ## Lo que (todavía) no hace
45
+
46
+ Para dejar las expectativas claras, esta primera versión deja fuera a propósito algunas cosas: la edición dentro de la aplicación, los resúmenes por símbolo o por directorio, una vista de diff narrativa y el "pregúntale a la IA sobre este archivo" conversacional. La procedencia atribuye un archivo solo a su ticket principal. Son el tipo de cosas que podrían crecer con el tiempo.
47
+
48
+ ## Desactivarlo
49
+
50
+ El Code explorer está activado por defecto. Puede desactivarse con los flags `VITE_FEATURE_CODE_EXPLORER` (cliente) o `SPECRAILS_CODE_EXPLORER` (servidor) — pon cualquiera de los dos a `false`. Desactivarlo deja todos tus datos registrados y resúmenes a salvo en el disco, intactos, por si vuelves a activarlo.
@@ -0,0 +1,64 @@
1
+ # Proveedores de IA (Claude, Codex, Gemini)
2
+
3
+ Specrails no está atado a una única IA. Cada parte de la app que habla con una IA —Explore Spec, la spec rápida (Quick), los rails, el chat, AI Edit, el botón «Open AI CLI» del terminal— puede funcionar con cualquiera de los tres proveedores de primera clase. Tú eliges cuáles usa un proyecto, e incluso puedes cambiar de proveedor según la tarea.
4
+
5
+ ## Los tres proveedores
6
+
7
+ | Proveedor | CLI | Creado por | Notas |
8
+ |---|---|---|---|
9
+ | **Claude** | `claude` | Anthropic | El más completo. El único proveedor para Agents (perfiles) y los rails Ultracode, y para Contract Refine. |
10
+ | **Codex** | `codex` | OpenAI | Necesita codex `0.128.0+`. Lee sus servidores MCP desde tu `~/.codex/config.toml` global. |
11
+ | **Gemini** | `gemini` | Google | Necesita gemini `0.11.0+`. Usa telemetría nativa y un archivo de instrucciones `GEMINI.md`. |
12
+
13
+ Los tres están **activados por defecto**. Un proveedor aparece en **Añadir proyecto** siempre que su CLI esté instalado y en tu `PATH`. Así que el primer paso es siempre el mismo: instala la CLI que quieras y haz login con ella, exactamente como indica la documentación de esa herramienta. En cuanto `claude --version` (o `codex`, o `gemini`) funcione en tu terminal, Specrails podrá usarlo.
14
+
15
+ ## Instalar un proveedor para un proyecto
16
+
17
+ Cuando añades un proyecto, el asistente de configuración te pregunta qué proveedor(es) instalar. Elige uno, completa el paso de instalación y listo. A partir de ahí el proyecto simplemente *tiene* ese proveedor: ya no tendrás que pensar en ello. Las specs, los rails, el chat y las analíticas funcionan igual independientemente del que hayas elegido.
18
+
19
+ Si una CLI que quieres no aparece en Añadir proyecto, casi siempre es porque la CLI no está instalada o no está en tu `PATH`. Instálala y vuelve a abrir Añadir proyecto.
20
+
21
+ ## Instalar varios proveedores para un mismo proyecto
22
+
23
+ Puedes instalar **más de un** proveedor en el mismo proyecto; por ejemplo, Claude *y* Gemini. En **Añadir proyecto**, la lista de proveedores se convierte en un conjunto de casillas; marca todas las que quieras. El primero que selecciones se convierte en el proveedor **principal** (por defecto) del proyecto; el resto quedan disponibles como alternativas.
24
+
25
+ Algunas cosas que conviene saber sobre los proyectos multiproveedor:
26
+
27
+ - **Con un solo proveedor todo se comporta exactamente igual que antes.** Si un proyecto tiene un único proveedor, no verás ningún selector de proveedor en ninguna parte: la app se mantiene limpia y sencilla.
28
+ - **La barra lateral derecha solo muestra las secciones que admiten todos los proveedores instalados.** Como Agents (perfiles) es un concepto exclusivo de Claude, la sección **Agents** desaparece en cuanto un proyecto incluye algún proveedor que no sea Claude. Todo lo demás (Specs, Code, Analytics, Integraciones, Terminal, Chat) se mantiene.
29
+ - **La elección de proveedor queda bloqueada tras la creación.** En esta versión eliges tus proveedores al añadir el proyecto y no se pueden cambiar después desde Ajustes. Si necesitas una combinación distinta, crea un proyecto nuevo.
30
+
31
+ ## Elegir un proveedor por cada invocación
32
+
33
+ La verdadera ventaja de un proyecto multiproveedor es poder elegir la IA adecuada para cada tarea, sin tocar ningún ajuste global. Allí donde se ejecuta una IA aparece un pequeño selector de proveedor (solo cuando el proyecto tiene más de uno):
34
+
35
+ - **Añadir spec** — un selector de motor te deja explorar o generar una spec en modo rápido (Quick) con el proveedor que prefieras.
36
+ - **Cabecera del rail** — elige el motor para ese rail concreto antes de lanzarlo.
37
+ - **Terminal** — el botón «Open AI CLI» (el icono de chispas) abre un menú de proveedores para que puedas entrar en cualquier CLI instalada en el directorio de ese proyecto.
38
+
39
+ Tu elección se recuerda por proyecto y toma el proveedor principal por defecto, así que no tienes que volver a elegirla cada vez.
40
+
41
+ ## Lo que solo Claude puede hacer
42
+
43
+ Un puñado de funciones son específicas de Claude por naturaleza, así que se ocultan o se omiten cuando hay otro proveedor en juego:
44
+
45
+ - **Agents (perfiles)** — el catálogo de agentes por proyecto y el enrutado de modelos. Se oculta en cualquier proyecto que incluya un proveedor que no sea Claude.
46
+ - **Rails Ultracode** — siempre se ejecutan con Claude.
47
+ - **Contract Refine** — la pasada adicional de «Contract Layer» sobre una spec confirmada solo se ejecuta cuando el proveedor de la conversación es Claude.
48
+ - **Modos avanzados de Añadir spec** (SMASH / Contract Layer) — se ocultan para los motores que no sean Claude.
49
+
50
+ Todo lo demás —Explore, la spec rápida (Quick), el pipeline completo de rails, AI Edit, el chat y las analíticas de coste— funciona con los tres.
51
+
52
+ ## Seguimiento de costes entre proveedores
53
+
54
+ La página de **Analytics** registra cada invocación facturable independientemente del proveedor. En los proyectos multiproveedor añade chips de filtro por motor para que puedas comparar el gasto por proveedor. Claude informa de su coste exacto; para Codex y Gemini, Specrails estima el coste a partir de una tarifa interna, así que las cifras son aproximaciones cercanas y no importes facturados.
55
+
56
+ ## Resolución de problemas
57
+
58
+ - **No aparece un proveedor que instalé.** Confirma que la CLI está en tu `PATH` (prueba `claude --version` / `codex --version` / `gemini --version` en un terminal nuevo). La app detecta las CLI de los proveedores a través del `PATH` de tu sistema.
59
+ - **Los servidores MCP de Codex no se cargan en el chat.** Codex lee los servidores MCP desde tu `~/.codex/config.toml` global; regístralos ahí con `codex mcp add`.
60
+ - **Desactivación de emergencia.** Un proveedor se puede desactivar en toda la app mediante una variable de entorno (`SPECRAILS_CODEX_BETA=0` o `SPECRAILS_GEMINI_BETA=0`). Esto solo oculta el proveedor de la *selección*; rara vez es necesario.
61
+
62
+ ## Véase también
63
+
64
+ Las guías dedicadas a cada proveedor profundizan en cada CLI: la guía de Codex y la guía de Gemini cubren la configuración, lo que funciona y las peculiaridades de cada proveedor.
@@ -0,0 +1,44 @@
1
+ # Plugins (Integraciones)
2
+
3
+ La sección **Integraciones** es un marketplace por proyecto de complementos opcionales que amplían lo que la IA puede hacer. Cada proyecto decide de forma independiente qué plugins quiere: instalar un plugin en un proyecto nunca afecta a otro.
4
+
5
+ Los plugins funcionan registrando discretamente un **servidor MCP** (Model Context Protocol) en tu proyecto, lo que da a la IA nuevas herramientas para usar durante los rails y el chat. No necesitas entender MCP para usarlos: instálalos y estarán disponibles la próxima vez que se ejecute un rail.
6
+
7
+ ## Qué hay disponible hoy
8
+
9
+ Esta versión se distribuye **solo con plugins incluidos**: los plugins que puedes instalar son los que vienen integrados en la app. No hay registro remoto, ni plugins subidos por usuarios, ni carga de código de terceros, así que todo lo del catálogo está revisado y se distribuye con Specrails.
10
+
11
+ El plugin estrella es:
12
+
13
+ - **Serena** — navegación semántica de código. Le da a la IA una comprensión de tu código respaldada por un language server (saltar a la definición, buscar referencias, búsqueda consciente de símbolos) en lugar de simple coincidencia de texto. Ideal para repos grandes o desconocidos en los que quieres que el agente razone sobre símbolos reales.
14
+
15
+ Serena requiere la herramienta `uv` en tu `PATH` (se ejecuta a través de `uvx`). La app detecta automáticamente si `uv` está presente y te avisa si falta.
16
+
17
+ ## Instalar un plugin
18
+
19
+ 1. Abre **Integraciones** desde la barra lateral derecha.
20
+ 2. Encuentra el plugin en el catálogo. Cada tarjeta muestra un estado: **No instalado**, **Instalado**, **Degradado** u **Huérfano**.
21
+ 3. Entra en el plugin para **previsualizar la instalación**: esto te muestra exactamente qué archivos cambiarán antes de que ocurra nada.
22
+ 4. Haz clic en **Instalar**. Verás el progreso en directo mientras se configura.
23
+
24
+ Por debajo, la instalación es *quirúrgica y aditiva*: solo añade sus propias entradas al `.mcp.json` de tu proyecto (y, para algunos plugins, un archivo de fragmento en el espacio protegido `.claude/agents/`). Nunca reescribe tu configuración por completo, y añadir un segundo plugin nunca puede alterar el primero. Si la instalación no puede verificarse como saludable, se revierte de forma limpia.
25
+
26
+ ## Gestionar los plugins instalados
27
+
28
+ - **Salud.** Cada plugin tiene una comprobación de salud bajo demanda. Un plugin que se instala bien pero que más tarde no puede arrancar se marca como **Degradado**: no bloqueará tus rails, simplemente verás la insignia y un motivo.
29
+ - **Desinstalar.** Quitar un plugin elimina quirúrgicamente solo las entradas que le pertenecen, dejando intacto el resto de tu configuración.
30
+ - **Huérfanos.** Si los archivos de un plugin quedan abandonados sin un estado correcto (por ejemplo, tras un cambio interrumpido), aparece como **Huérfano** y puedes limpiarlo con un clic.
31
+
32
+ ## Cómo aparecen los plugins en tu trabajo
33
+
34
+ - **Rails.** Antes de que un rail se ejecute, Specrails comprueba qué plugins están instalados y saludables, y pone esas herramientas a disposición del agente para ese trabajo. Un plugin degradado simplemente se omite para esa ejecución: el rail se lanza igualmente con normalidad. Cada trabajo registra una instantánea de qué plugins estaban activos, que puedes ver en la exportación de diagnóstico del trabajo.
35
+ - **Chat.** El chat recoge automáticamente la configuración MCP de tu proyecto, así que los plugins instalados también están disponibles ahí.
36
+ - **Configuración.** Los plugins se ignoran mientras un proyecto todavía se está configurando; entran en juego una vez que el proyecto está listo.
37
+
38
+ ## Notas sobre proveedores
39
+
40
+ Los plugins son conscientes del proveedor. Serena y otros plugins MCP similares se resuelven para los proveedores que registran MCP a través del `.mcp.json` del proyecto (Claude y Gemini). Para los proyectos con Codex, los servidores MCP se gestionan en cambio a través de la propia configuración global de Codex, así que las entradas de plugins en **Integraciones** se filtran en consecuencia. La tarjeta de Jira en Integraciones es independiente del proveedor y se muestra para todos: consulta la guía de Jira.
41
+
42
+ ## Archivos reservados
43
+
44
+ Los plugins gestionan un conjunto pequeño y bien definido de archivos en tu proyecto: tu `.mcp.json` (mezclado quirúrgicamente), algo de estado bajo `.specrails/plugins/` y fragmentos de agente por plugin en `.claude/agents/custom-<plugin>.md`. Estos son activos de equipo que puedes commitear si quieres compartir una integración con tus compañeros: la app nunca los sobrescribe a ciegas.
@@ -0,0 +1,71 @@
1
+ # Integración con Jira
2
+
3
+ ¿Quieres que tus specs vivan en un **tablero de Jira** real en lugar de dentro de Specrails? La integración con Jira respalda las specs de un proyecto con issues de Jira, mantiene los estados sincronizados a medida que se ejecutan los rails y no estorba el resto del tiempo. Cada proyecto se sincroniza con **su propio** tablero de Jira.
4
+
5
+ ## Cómo funciona (la versión corta)
6
+
7
+ Specrails actúa como **capa de sincronización** entre Jira y tu proyecto. La idea central: tu almacén local de specs sigue siendo lo canónico que lee el pipeline, y Specrails se encarga de mantenerlo de acuerdo con Jira.
8
+
9
+ - Cuando lanzas un rail, Specrails mueve el issue de Jira vinculado a **En progreso**.
10
+ - Cuando un trabajo termina, Specrails transiciona el issue (a **Hecho**, o de vuelta a **Por hacer** si falló) y publica un comentario de finalización con el id del trabajo, el coste y la duración.
11
+ - Periódicamente, Specrails **sondea** Jira en busca de cambios que cualquiera haya hecho en el tablero y los refleja de vuelta en tus specs.
12
+
13
+ Todas las escrituras pasan por un outbox duradero y a prueba de fallos, así que un tropiezo puntual de Jira nunca rompe un trabajo: la actualización simplemente se reintenta.
14
+
15
+ ## Conectar un tablero
16
+
17
+ Te conectas desde la página de **Ajustes** de un proyecto (también hay un paso opcional «Configurar Jira» al final del asistente de Añadir proyecto). El asistente de conexión te guía paso a paso:
18
+
19
+ 1. **Probar** — introduce la URL de tu Jira y tus credenciales, y Specrails verifica la conexión.
20
+ 2. **Elegir un proyecto** — elige con qué proyecto de Jira sincronizar.
21
+ 3. **Mapa de estados (opcional)** — asigna los estados de tu flujo de Jira a los estados de Specrails si la detección automática necesita una ayuda (más abajo).
22
+ 4. **Conectar** — listo. Tus specs ahora reflejan ese tablero.
23
+
24
+ ### Autenticación
25
+
26
+ Esta versión usa autenticación por **pegado de token**: rápida, en el dispositivo y sin ningún backend de por medio:
27
+
28
+ - **Jira Cloud:** el email de tu cuenta más un token de API.
29
+ - **Jira Data Center / Server:** un Personal Access Token (PAT).
30
+
31
+ Tu token se guarda **cifrado en tu propia máquina** y nunca sale de ella. La app solo muestra si hay un token presente, nunca el token en sí.
32
+
33
+ ## Mapeo de estados
34
+
35
+ La parte más delicada de cualquier sincronización con Jira es hacer coincidir *tu* flujo de trabajo con los estados sencillos de Specrails (Por hacer / En progreso / Hecho, más las variantes de cancelar/entregar). Specrails lo resuelve en dos niveles:
36
+
37
+ 1. **Tu mapa de estados explícito**, si configuras uno en el asistente: siempre gana.
38
+ 2. **Detección automática** a partir de la categoría de cada estado (nuevo / en progreso / hecho) más una coincidencia inteligente para los estados de tipo cancelar y entregar.
39
+
40
+ Cuando necesita mover un issue a través de un flujo con transiciones condicionadas, encuentra un camino válido paso a paso y rellena por el camino cualquier campo obligatorio (como una resolución). Si un estado realmente no se puede alcanzar, la operación se aparca como carta muerta (dead-letter) y se te muestra en lugar de fallar en silencio: verás un indicador **degradado** y podrás reintentar.
41
+
42
+ ## Hot-swap: actívalo y desactívalo con seguridad
43
+
44
+ El vínculo con Jira es **por spec**, capturado en el momento en que lanzas un rail, no un interruptor global de todo-o-nada sobre el tablero. Eso hace que sea seguro alternarlo:
45
+
46
+ - **Activar o desactivar** la integración nunca recoloca tus specs existentes.
47
+ - **Desconectar** devuelve tu proyecto al comportamiento normal de specs locales.
48
+ - Las specs que ya tienen un vínculo con Jira conservan su escritura; las que no, se quedan como están.
49
+
50
+ Así que puedes experimentar con libertad —actívalo, ejecuta unos cuantos rails, desactívalo— sin desbaratar tu tablero ni tus specs locales.
51
+
52
+ ## El día a día
53
+
54
+ Una vez conectado, la página de Ajustes del proyecto muestra una **tarjeta de conexión** donde puedes:
55
+
56
+ - **Sincronizar ahora** — fuerza un sondeo inmediato en lugar de esperar al temporizador.
57
+ - **Reintentar cartas muertas** — vuelve a ejecutar cualquier escritura que se haya quedado atascada.
58
+ - **Interruptor de hot-swap** — pausa/reanuda la integración temporalmente.
59
+ - **Desconectar** — separa el tablero de forma limpia.
60
+
61
+ Las specs respaldadas por Jira muestran una **insignia con la clave de Jira** (como `PROJ-123`) en su tarjeta, y al hacer clic enlazan de vuelta al issue. También recibirás pequeñas notificaciones cuando una sincronización se complete, cuando un token de autenticación expire (para que lo refresques) o cuando la integración entre en estado degradado.
62
+
63
+ ## Cosas que tener en cuenta
64
+
65
+ - **Sondeo, no webhooks.** Como Specrails se ejecuta en local, sondea Jira en busca de cambios entrantes en lugar de recibir notificaciones push. Los cambios aparecen dentro del intervalo de sondeo, no al instante.
66
+ - **Un tablero por proyecto.** Distintos proyectos pueden sincronizar con distintos tableros; un único proyecto sincroniza con exactamente uno.
67
+ - **Gana la última escritura** en los conflictos, para el caso poco frecuente en que dos pestañas editan el mismo borrador a la vez.
68
+
69
+ ## Desactivarlo
70
+
71
+ Si en algún momento quieres dar marcha atrás del todo, simplemente **Desconecta** desde Ajustes. Tus specs vuelven al comportamiento solo-local y los metadatos de Jira simplemente quedan sin uso: no se destruye nada.