specrails-desktop 2.64.2 → 2.65.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 (1116) hide show
  1. package/README.md +1 -1
  2. package/cli/dist/status.js +3 -0
  3. package/client/dist/assets/ActivityFeedPage-ByVKYII-.js +1 -0
  4. package/client/dist/assets/AgentBrowserCapture-BGUTjhUr.js +1 -0
  5. package/client/dist/assets/AgentModeAnalyticsPane-CtOLDDjB.js +2 -0
  6. package/client/dist/assets/AgentModeCodePane-CDhUKarT.js +2 -0
  7. package/client/dist/assets/AgentModeJobsPane-BAa_oEHJ.js +1 -0
  8. package/client/dist/assets/AgentsPage-D32hG4Ve.js +120 -0
  9. package/client/dist/assets/AnalyticsPage-BU50zeG6.js +5 -0
  10. package/client/dist/assets/BudgetCard-DP_jxwaD.js +55 -0
  11. package/client/dist/assets/CodePage-jiYnKGpp.js +3 -0
  12. package/client/dist/assets/CostValue-Bvn8674q.js +1 -0
  13. package/client/dist/assets/DesktopAnalyticsPage-CF__H4e3.js +1 -0
  14. package/client/dist/assets/DocView-RrAp70zp.js +11 -0
  15. package/client/dist/assets/DocsDialog-DkqHU-JF.js +1 -0
  16. package/client/dist/assets/DocsPage-C6X089zC.js +1 -0
  17. package/client/dist/assets/ExportDropdown-C5-o8y3K.js +1 -0
  18. package/client/dist/assets/HelpHint-Crf9_uoR.js +1 -0
  19. package/client/dist/assets/IntegrationsPage-aflU3KHK.js +1 -0
  20. package/client/dist/assets/InteractiveJobComposer-CEMMhyyJ.js +19 -0
  21. package/client/dist/assets/JobDetailModal-BVJ6hyRs.js +1 -0
  22. package/client/dist/assets/JobDetailPage-DHzBUmox.js +1 -0
  23. package/client/dist/assets/JobsPage-o-LAqkwC.js +1 -0
  24. package/client/dist/assets/LoopBuilderPage-DbSVmXBM.js +1 -0
  25. package/client/dist/assets/LoopPreviewModal-DbJcVyN1.js +1 -0
  26. package/client/dist/assets/{LoopWindowSurface-DE0v2K1p.js → LoopWindowSurface-Co1ZK26V.js} +1 -1
  27. package/client/dist/assets/LoopsPage-C4lgkPXB.js +2 -0
  28. package/client/dist/assets/MinimizedChatsContext-742ypO8n.js +1 -0
  29. package/client/dist/assets/PluginsPage-Acks9ges.js +2 -0
  30. package/client/dist/assets/RailTrack-BfLmBzBh.js +1 -0
  31. package/client/dist/assets/{RepositoryScopeSelector-2eSqR9WK.js → RepositoryScopeSelector-DcxbKI9w.js} +1 -1
  32. package/client/dist/assets/ReviewPacketPage-CAVSIOAJ.js +7 -0
  33. package/client/dist/assets/TemplatePreviewModal-C23SYCTm.js +1 -0
  34. package/client/dist/assets/TicketDetailModalContext-B-Gtm6Ob.js +23 -0
  35. package/client/dist/assets/Trans-C6J0cLyh.js +1 -0
  36. package/client/dist/assets/a11y-prefs-BqoP5goK.js +1 -0
  37. package/client/dist/assets/activity-BBWfoUOG.js +1 -0
  38. package/client/dist/assets/activity-BM_skann.js +1 -0
  39. package/client/dist/assets/activity-Cevl82ke.js +1 -0
  40. package/client/dist/assets/activity-CmACk5W5.js +1 -0
  41. package/client/dist/assets/activity-D9LBw3PQ.js +1 -0
  42. package/client/dist/assets/activity-Dspbb9lz.js +1 -0
  43. package/client/dist/assets/activity-FPjYIjv9.js +1 -0
  44. package/client/dist/assets/activity-nLCKMUKt.js +1 -0
  45. package/client/dist/assets/addspec-BI4jDMhA.js +1 -0
  46. package/client/dist/assets/addspec-BldTv7Tl.js +1 -0
  47. package/client/dist/assets/addspec-Cdq-2EcC.js +1 -0
  48. package/client/dist/assets/addspec-DH5M16BQ.js +1 -0
  49. package/client/dist/assets/addspec-DOFo9pD5.js +1 -0
  50. package/client/dist/assets/addspec-DPkwhdmL.js +1 -0
  51. package/client/dist/assets/addspec-Dzy12Pv3.js +1 -0
  52. package/client/dist/assets/addspec-skTs6EEW.js +1 -0
  53. package/client/dist/assets/agent-B_UEUy7Y.js +1 -0
  54. package/client/dist/assets/agent-BarjlhTA.js +1 -0
  55. package/client/dist/assets/agent-BfqIITo5.js +1 -0
  56. package/client/dist/assets/agent-Bt9a7Kyj.js +1 -0
  57. package/client/dist/assets/agent-C3689RwP.js +1 -0
  58. package/client/dist/assets/agent-CrmboTAi.js +1 -0
  59. package/client/dist/assets/agent-DcsoTnuE.js +1 -0
  60. package/client/dist/assets/agent-GDZoYwd4.js +1 -0
  61. package/client/dist/assets/{agentRuntime-es2ymSl-.js → agentRuntime-BYH70bKY.js} +1 -1
  62. package/client/dist/assets/agentRuntime-BijLh8I9.js +1 -0
  63. package/client/dist/assets/{agentRuntime-BzuwQQgn.js → agentRuntime-BvyuETPe.js} +1 -1
  64. package/client/dist/assets/{agentRuntime-BDvbJMmS.js → agentRuntime-C2WI6HQh.js} +1 -1
  65. package/client/dist/assets/{agentRuntime-BKJfv5YD.js → agentRuntime-CZPIlQsr.js} +1 -1
  66. package/client/dist/assets/{agentRuntime-DiCldqGG.js → agentRuntime-D2dDvCyJ.js} +1 -1
  67. package/client/dist/assets/agentRuntime-DWZedEbn.js +1 -0
  68. package/client/dist/assets/agentRuntime-DkIruUNw.js +1 -0
  69. package/client/dist/assets/agents-35_PDKx9.js +1 -0
  70. package/client/dist/assets/agents-8fZnHhEQ.js +1 -0
  71. package/client/dist/assets/agents-Bgimtw8z.js +1 -0
  72. package/client/dist/assets/agents-C4P160Us.js +1 -0
  73. package/client/dist/assets/agents-Clg67zbp.js +1 -0
  74. package/client/dist/assets/agents-DJfF4o6G.js +1 -0
  75. package/client/dist/assets/agents-Dc9-Y5cw.js +1 -0
  76. package/client/dist/assets/agents-EN1Zl4YZ.js +1 -0
  77. package/client/dist/assets/agentstudio-Bm4-NYaG.js +1 -0
  78. package/client/dist/assets/agentstudio-CD1fuj2o.js +1 -0
  79. package/client/dist/assets/agentstudio-CQGWFSst.js +1 -0
  80. package/client/dist/assets/agentstudio-CqVSb65S.js +1 -0
  81. package/client/dist/assets/agentstudio-DIE_HjsX.js +1 -0
  82. package/client/dist/assets/agentstudio-D_OmQK-k.js +1 -0
  83. package/client/dist/assets/agentstudio-Djz9aUfb.js +1 -0
  84. package/client/dist/assets/agentstudio-Qa3v9o5J.js +1 -0
  85. package/client/dist/assets/{aiedit-DNXxq_Dr.js → aiedit-1VzLs37W.js} +1 -1
  86. package/client/dist/assets/{aiedit-DCjA7jLJ.js → aiedit-BNp6GSik.js} +1 -1
  87. package/client/dist/assets/{aiedit-BoG24nlg.js → aiedit-BOY5xRPi.js} +1 -1
  88. package/client/dist/assets/{aiedit-iIjz2_Qk.js → aiedit-BrqMZvbc.js} +1 -1
  89. package/client/dist/assets/{aiedit-CjlSRQVP.js → aiedit-CVgtl7hm.js} +1 -1
  90. package/client/dist/assets/{aiedit-DQ-0_pvE.js → aiedit-CrFW9Jd2.js} +1 -1
  91. package/client/dist/assets/{aiedit-olnv3QSt.js → aiedit-YE2lILp7.js} +1 -1
  92. package/client/dist/assets/{aiedit-B0KUbpB6.js → aiedit-iA_R1AVQ.js} +1 -1
  93. package/client/dist/assets/analytics-3w0t-4ic.js +1 -0
  94. package/client/dist/assets/analytics-BRi4KQD6.js +1 -0
  95. package/client/dist/assets/analytics-BtjAqzke.js +1 -0
  96. package/client/dist/assets/analytics-COSQ1h47.js +1 -0
  97. package/client/dist/assets/analytics-CP2HjESk.js +1 -0
  98. package/client/dist/assets/analytics-DY65TC62.js +1 -0
  99. package/client/dist/assets/analytics-Den_vvxn.js +1 -0
  100. package/client/dist/assets/analytics-LmBS96O8.js +1 -0
  101. package/client/dist/assets/api-DOGbyfTO.js +2 -0
  102. package/client/dist/assets/builder-BMVvSr4v.js +1 -0
  103. package/client/dist/assets/builder-BN-MuLZt.js +1 -0
  104. package/client/dist/assets/builder-BQOZi4CF.js +1 -0
  105. package/client/dist/assets/builder-BjUPjsyu.js +1 -0
  106. package/client/dist/assets/builder-BoBtN18T.js +1 -0
  107. package/client/dist/assets/builder-C5g5NhxL.js +1 -0
  108. package/client/dist/assets/builder-RUHXw3yx.js +1 -0
  109. package/client/dist/assets/builder-fyS_AiyC.js +1 -0
  110. package/client/dist/assets/button-CHPkroew.js +1 -0
  111. package/client/dist/assets/chat-C9L5T7KI.js +1 -0
  112. package/client/dist/assets/chevron-right-CwMAj0w_.js +1 -0
  113. package/client/dist/assets/chevron-up-BAMuP0XD.js +1 -0
  114. package/client/dist/assets/chunk-OB3PAWPO-BBaq6pUk.js +3 -0
  115. package/client/dist/assets/code-4le5IIbf.js +1 -0
  116. package/client/dist/assets/code-B-jCVIbm.js +1 -0
  117. package/client/dist/assets/code-BRfrn5ix.js +1 -0
  118. package/client/dist/assets/code-CC9NCrDM.js +1 -0
  119. package/client/dist/assets/code-CK6pm8wY.js +1 -0
  120. package/client/dist/assets/code-DDiOzd6c.js +1 -0
  121. package/client/dist/assets/code-tGifiyf5.js +1 -0
  122. package/client/dist/assets/code-xkn8kQTg.js +1 -0
  123. package/client/dist/assets/commands-Bv1QshHR.js +1 -0
  124. package/client/dist/assets/commands-BvxTxboW.js +1 -0
  125. package/client/dist/assets/commands-C5ORR0fO.js +1 -0
  126. package/client/dist/assets/commands-CBKMFSTV.js +1 -0
  127. package/client/dist/assets/commands-CFJIRsJv.js +1 -0
  128. package/client/dist/assets/commands-D9o3ZcXl.js +1 -0
  129. package/client/dist/assets/commands-DNox0Edk.js +1 -0
  130. package/client/dist/assets/commands-DmIUMLdV.js +1 -0
  131. package/client/dist/assets/common-5H4TkaoI.js +1 -0
  132. package/client/dist/assets/common-9S3OdPjx.js +1 -0
  133. package/client/dist/assets/common-BqnwIcjs.js +1 -0
  134. package/client/dist/assets/common-CQP3VafS.js +1 -0
  135. package/client/dist/assets/common-CZnAfkB2.js +1 -0
  136. package/client/dist/assets/common-D5sNttV4.js +1 -0
  137. package/client/dist/assets/common-k_qX9nlv.js +1 -0
  138. package/client/dist/assets/common-s4HIi9XI.js +1 -0
  139. package/client/dist/assets/compass-B7guwBlY.js +1 -0
  140. package/client/dist/assets/confirm-dialog-ChZdHL3Q.js +1 -0
  141. package/client/dist/assets/copy-DOPlLymH.js +1 -0
  142. package/client/dist/assets/core-BozBzB6Y.js +1 -0
  143. package/client/dist/assets/dashboard-6zGLGcEz.js +1 -0
  144. package/client/dist/assets/dashboard-8Gi0FBDq.js +1 -0
  145. package/client/dist/assets/dashboard-B7E5YrSy.js +1 -0
  146. package/client/dist/assets/dashboard-BhdKV8xK.js +1 -0
  147. package/client/dist/assets/dashboard-Bu3zzH_s.js +1 -0
  148. package/client/dist/assets/dashboard-Ce_6rELA.js +1 -0
  149. package/client/dist/assets/dashboard-DWY-oz8P.js +1 -0
  150. package/client/dist/assets/dashboard-gUzlWk0o.js +1 -0
  151. package/client/dist/assets/date-input-Cdlr8kHz.js +1 -0
  152. package/client/dist/assets/dialog-C23lB2iP.js +5 -0
  153. package/client/dist/assets/dist-Di-oOFkX.js +1 -0
  154. package/client/dist/assets/dist-js-CBmS6MsJ.js +1 -0
  155. package/client/dist/assets/{dist-js-Rlh4FLH5.js → dist-js-DaJmKapi.js} +1 -1
  156. package/client/dist/assets/dropdown-menu-Bfp2CK6H.js +1 -0
  157. package/client/dist/assets/empty-state-D5w9OWj-.js +1 -0
  158. package/client/dist/assets/es2015-DfnECntk.js +41 -0
  159. package/client/dist/assets/esm-BKF6CE7v.js +1 -0
  160. package/client/dist/assets/event-BEnMLqAi.js +1 -0
  161. package/client/dist/assets/explore--NOz9LCN.js +1 -0
  162. package/client/dist/assets/explore-B2ulH6dO.js +1 -0
  163. package/client/dist/assets/explore-BD-QiLdg.js +1 -0
  164. package/client/dist/assets/explore-BOqd4_1j.js +1 -0
  165. package/client/dist/assets/explore-Be_Zh5zu.js +1 -0
  166. package/client/dist/assets/explore-CLjzPSKo.js +1 -0
  167. package/client/dist/assets/explore-D_-vHm29.js +1 -0
  168. package/client/dist/assets/explore-yEQTF6ro.js +1 -0
  169. package/client/dist/assets/file-text-CNXzL3wj.js +1 -0
  170. package/client/dist/assets/format-BODoFIw6.js +1 -0
  171. package/client/dist/assets/formatDistanceToNow-DLMIOS0N.js +1 -0
  172. package/client/dist/assets/getTimezoneOffsetInMilliseconds-O61feXch.js +1 -0
  173. package/client/dist/assets/git-compare-arrows-Cu6tICCq.js +1 -0
  174. package/client/dist/assets/humanise-command-CB4ybLwq.js +1 -0
  175. package/client/dist/assets/inbox-BLZ8cm6_.js +1 -0
  176. package/client/dist/assets/inbox-BQ3VmNYY.js +1 -0
  177. package/client/dist/assets/inbox-BdcXWCuT.js +1 -0
  178. package/client/dist/assets/inbox-CF1PHjns.js +1 -0
  179. package/client/dist/assets/inbox-CFNPDhso.js +1 -0
  180. package/client/dist/assets/inbox-DIttK_NW.js +1 -0
  181. package/client/dist/assets/inbox-Dfdv1Ykl.js +1 -0
  182. package/client/dist/assets/inbox-JS1inmeO.js +1 -0
  183. package/client/dist/assets/index-4UWY7Xyz.css +2 -0
  184. package/client/dist/assets/index-DHzB0T26.js +120 -0
  185. package/client/dist/assets/integrations-BcKgzgPD.js +1 -0
  186. package/client/dist/assets/integrations-BmX_XyJq.js +1 -0
  187. package/client/dist/assets/integrations-CHpwMjlY.js +1 -0
  188. package/client/dist/assets/integrations-CT3kr8e-.js +1 -0
  189. package/client/dist/assets/integrations-C_5XAkgz.js +1 -0
  190. package/client/dist/assets/integrations-Ct9zLX7N.js +1 -0
  191. package/client/dist/assets/integrations-DEYemxUv.js +1 -0
  192. package/client/dist/assets/integrations-DWvsB_WB.js +1 -0
  193. package/client/dist/assets/{jira-Cq6yvN4q.js → jira-B_ERkFRv.js} +1 -1
  194. package/client/dist/assets/jira-Bn-A5lwD.js +1 -0
  195. package/client/dist/assets/jira-C71Ybnhp.js +1 -0
  196. package/client/dist/assets/jira-CkwjeJz6.js +1 -0
  197. package/client/dist/assets/jira-D9pSLXjI.js +1 -0
  198. package/client/dist/assets/jira-DBRS_lcp.js +1 -0
  199. package/client/dist/assets/jira-DHS6CsKh.js +1 -0
  200. package/client/dist/assets/jira-MInHRUb1.js +1 -0
  201. package/client/dist/assets/jira-api-DHme7Upx.js +1 -0
  202. package/client/dist/assets/jobs-BMLTDo63.js +1 -0
  203. package/client/dist/assets/jobs-BO8q4Mi1.js +1 -0
  204. package/client/dist/assets/jobs-Ck8uOWMM.js +1 -0
  205. package/client/dist/assets/jobs-CyFfPCpg.js +1 -0
  206. package/client/dist/assets/jobs-DT5s4fZ6.js +1 -0
  207. package/client/dist/assets/jobs-DZAgVPcD.js +1 -0
  208. package/client/dist/assets/jobs-b5gPYaKr.js +1 -0
  209. package/client/dist/assets/jobs-xsZK1440.js +1 -0
  210. package/client/dist/assets/launch-forecast-BTa-p3RP.js +1 -0
  211. package/client/dist/assets/{loop-layout-DtxX27Jz.css → loop-layout-DLioOiRN.css} +1 -1
  212. package/client/dist/assets/loop-layout-Sl9cfTvs.js +7 -0
  213. package/client/dist/assets/loops-BEEOVJDR.js +1 -0
  214. package/client/dist/assets/loops-BcrQ2vk7.js +1 -0
  215. package/client/dist/assets/loops-BjWxzJIZ.js +1 -0
  216. package/client/dist/assets/loops-BogV595N.js +1 -0
  217. package/client/dist/assets/loops-CU0BLZiz.js +1 -0
  218. package/client/dist/assets/loops-CrNBgi1G.js +1 -0
  219. package/client/dist/assets/loops-CwalwS_i.js +1 -0
  220. package/client/dist/assets/loops-_TDVN-fX.js +1 -0
  221. package/client/dist/assets/mcp-BNs8gxoL.js +1 -0
  222. package/client/dist/assets/mcp-BvRh_xO5.js +1 -0
  223. package/client/dist/assets/mcp-C2F1pghi.js +1 -0
  224. package/client/dist/assets/mcp-D9RLKAs2.js +1 -0
  225. package/client/dist/assets/mcp-DAghcsR0.js +1 -0
  226. package/client/dist/assets/mcp-DWWAPi1G.js +1 -0
  227. package/client/dist/assets/mcp-DbGSFC3f.js +1 -0
  228. package/client/dist/assets/mcp-FelCicrv.js +1 -0
  229. package/client/dist/assets/narration-C3NBkAR4.js +1 -0
  230. package/client/dist/assets/narration-CkoJq-Lf.js +1 -0
  231. package/client/dist/assets/narration-Cr0NeW9K.js +1 -0
  232. package/client/dist/assets/narration-DJUXOs-W.js +1 -0
  233. package/client/dist/assets/narration-DgL8TMvN.js +1 -0
  234. package/client/dist/assets/narration-DjBafgv0.js +1 -0
  235. package/client/dist/assets/narration-Dle6Iv0c.js +1 -0
  236. package/client/dist/assets/narration-MYlfktga.js +1 -0
  237. package/client/dist/assets/nav-BSQ8KW1c.js +1 -0
  238. package/client/dist/assets/nav-BauVof8Z.js +1 -0
  239. package/client/dist/assets/nav-BfOAH1se.js +1 -0
  240. package/client/dist/assets/nav-D3bOsipX.js +1 -0
  241. package/client/dist/assets/nav-DOMMhlLx.js +1 -0
  242. package/client/dist/assets/nav-DPzVlgZU.js +1 -0
  243. package/client/dist/assets/nav-DZJbFbah.js +1 -0
  244. package/client/dist/assets/nav-D_5aojd2.js +1 -0
  245. package/client/dist/assets/notify-error-BsWANx1T.js +1 -0
  246. package/client/dist/assets/onboarding-BdZQnNm3.js +1 -0
  247. package/client/dist/assets/onboarding-CJQEv1vp.js +1 -0
  248. package/client/dist/assets/onboarding-CWJGYUW3.js +1 -0
  249. package/client/dist/assets/onboarding-ChfYN7dA.js +1 -0
  250. package/client/dist/assets/onboarding-CjvDUR3V.js +1 -0
  251. package/client/dist/assets/onboarding-I6vS-zTB.js +1 -0
  252. package/client/dist/assets/onboarding-dgC_9dTB.js +1 -0
  253. package/client/dist/assets/onboarding-mlXSyKzX.js +1 -0
  254. package/client/dist/assets/origin-03nTuaOb.js +1 -0
  255. package/client/dist/assets/packet-BjpyRnZr.js +1 -0
  256. package/client/dist/assets/packet-BwgG5mBt.js +1 -0
  257. package/client/dist/assets/packet-C3eAUFkV.js +1 -0
  258. package/client/dist/assets/packet-C8wZuSld.js +1 -0
  259. package/client/dist/assets/packet-CNXEy_85.js +1 -0
  260. package/client/dist/assets/packet-DsV5Aa_8.js +1 -0
  261. package/client/dist/assets/packet-aasskOE7.js +1 -0
  262. package/client/dist/assets/packet-phxCc2gJ.js +1 -0
  263. package/client/dist/assets/page-header-BStSHkP8.js +1 -0
  264. package/client/dist/assets/project-repositories-DJPeAVBK.js +1 -0
  265. package/client/dist/assets/{provider-capabilities-lePfeT_Y.js → provider-capabilities-DtwcTme4.js} +1 -1
  266. package/client/dist/assets/recovery-BPDOsC92.js +1 -0
  267. package/client/dist/assets/recovery-BluNHoXM.js +1 -0
  268. package/client/dist/assets/recovery-CRvEmB0C.js +1 -0
  269. package/client/dist/assets/recovery-CeIoRnkR.js +1 -0
  270. package/client/dist/assets/recovery-DHCo8KGi.js +1 -0
  271. package/client/dist/assets/recovery-OxAIpbBF.js +1 -0
  272. package/client/dist/assets/recovery-XXexYGOJ.js +1 -0
  273. package/client/dist/assets/recovery-pITlc--v.js +1 -0
  274. package/client/dist/assets/refresh-cw-DfyTkbsf.js +1 -0
  275. package/client/dist/assets/select-xA3pSmqE.js +1 -0
  276. package/client/dist/assets/settings--yzDbX9r.js +1 -0
  277. package/client/dist/assets/settings-5_heTv8s.js +1 -0
  278. package/client/dist/assets/settings-BSf27MDg.js +1 -0
  279. package/client/dist/assets/settings-BSj6FakR.js +1 -0
  280. package/client/dist/assets/settings-BZDo_8Nn.js +1 -0
  281. package/client/dist/assets/settings-BdWgmNc0.js +1 -0
  282. package/client/dist/assets/settings-DRouxKqb.js +1 -0
  283. package/client/dist/assets/settings-DnWFoY-F.js +1 -0
  284. package/client/dist/assets/setup-BJWy62ri.js +1 -0
  285. package/client/dist/assets/setup-BgKOIuzc.js +1 -0
  286. package/client/dist/assets/setup-BvVIyUlz.js +1 -0
  287. package/client/dist/assets/setup-BxCk2pe1.js +1 -0
  288. package/client/dist/assets/setup-C-xQTL7R.js +1 -0
  289. package/client/dist/assets/setup-CbaVoiwV.js +1 -0
  290. package/client/dist/assets/setup-DxTBkX3P.js +1 -0
  291. package/client/dist/assets/setup-oGoVAzOD.js +1 -0
  292. package/client/dist/assets/specs-7tAb4IKr.js +1 -0
  293. package/client/dist/assets/specs-BUcY4s5v.js +1 -0
  294. package/client/dist/assets/specs-Bk5LeBAA.js +1 -0
  295. package/client/dist/assets/specs-CAA4Lrlg.js +1 -0
  296. package/client/dist/assets/specs-CS091AnA.js +1 -0
  297. package/client/dist/assets/specs-DJ6gmFcK.js +1 -0
  298. package/client/dist/assets/specs-GfCcrBSC.js +1 -0
  299. package/client/dist/assets/specs-xQgyc7WL.js +1 -0
  300. package/client/dist/assets/spending-CVH8VREb.js +1 -0
  301. package/client/dist/assets/square-Co6h5vZg.js +1 -0
  302. package/client/dist/assets/tauri-shell-43ixPGfa.js +2 -0
  303. package/client/dist/assets/terminal-0v9sBylD.js +1 -0
  304. package/client/dist/assets/terminal-AbUAmCxE.js +1 -0
  305. package/client/dist/assets/terminal-BJayIbIP.js +1 -0
  306. package/client/dist/assets/terminal-C2RUlXyi.js +1 -0
  307. package/client/dist/assets/terminal-CMmSb_Nj.js +1 -0
  308. package/client/dist/assets/terminal-DKWjj7HJ.js +1 -0
  309. package/client/dist/assets/terminal-KlFu7_pV.js +1 -0
  310. package/client/dist/assets/terminal-i99yqFvm.js +1 -0
  311. package/client/dist/assets/tickets-846Oq3i3.js +1 -0
  312. package/client/dist/assets/tickets-B5LJTe_b.js +1 -0
  313. package/client/dist/assets/tickets-Bfo2GGmH.js +1 -0
  314. package/client/dist/assets/tickets-BhdZ1yY2.js +1 -0
  315. package/client/dist/assets/tickets-CgjWJHAW.js +1 -0
  316. package/client/dist/assets/tickets-Ct9DbDUR.js +1 -0
  317. package/client/dist/assets/tickets-rptLEJB1.js +1 -0
  318. package/client/dist/assets/tickets-xQ6DpYdu.js +1 -0
  319. package/client/dist/assets/trending-up-BGvb4zZt.js +1 -0
  320. package/client/dist/assets/undo-6zuS4-sL.js +1 -0
  321. package/client/dist/assets/undo-BeM4gDOP.js +1 -0
  322. package/client/dist/assets/undo-BeppX8xS.js +1 -0
  323. package/client/dist/assets/undo-BqvNZ5MG.js +1 -0
  324. package/client/dist/assets/undo-BzwEPf_k.js +1 -0
  325. package/client/dist/assets/undo-CJ9Cu1NN.js +1 -0
  326. package/client/dist/assets/undo-ds8nMFbX.js +1 -0
  327. package/client/dist/assets/undo-x_gA-knG.js +1 -0
  328. package/client/dist/assets/useDesktop-BuOp2-MR.js +1 -0
  329. package/client/dist/assets/useRuntimeRuns-BRS6ncnO.js +1 -0
  330. package/client/dist/assets/utils-ELimjS2Y.js +1 -0
  331. package/client/dist/assets/wrench-Br2n1Lxd.js +1 -0
  332. package/client/dist/index.html +75 -60
  333. package/docs/ci-cd.md +29 -1
  334. package/docs/cli.md +10 -31
  335. package/docs/codex.md +1 -1
  336. package/docs/creating-specs.md +15 -12
  337. package/docs/customizing.md +16 -13
  338. package/docs/getting-started.md +12 -11
  339. package/docs/guide/de/agents/1-meet-the-agents.md +1 -1
  340. package/docs/guide/de/getting-started/2-installing-and-first-run.md +2 -0
  341. package/docs/guide/de/getting-started/3-try-the-sample-project.md +35 -0
  342. package/docs/guide/de/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
  343. package/docs/guide/de/getting-started/6-universal-search.md +34 -0
  344. package/docs/guide/de/insights/1-analytics-and-cost-tracking.md +20 -6
  345. package/docs/guide/de/insights/2-the-integrated-terminal.md +1 -1
  346. package/docs/guide/de/insights/3-code-explorer.md +1 -1
  347. package/docs/guide/de/integrations/1-ai-providers.md +1 -1
  348. package/docs/guide/de/integrations/2-plugins.md +1 -1
  349. package/docs/guide/de/integrations/3-jira-integration.md +3 -3
  350. package/docs/guide/de/integrations/4-mobile-companion.md +1 -1
  351. package/docs/guide/de/integrations/5-mcp-server.md +1 -1
  352. package/docs/guide/de/integrations/6-agent-chat.md +12 -5
  353. package/docs/guide/de/integrations/8-flow-mode.md +69 -0
  354. package/docs/guide/de/pipeline/1-rails-and-jobs.md +21 -1
  355. package/docs/guide/de/pipeline/2-the-job-detail-view.md +12 -0
  356. package/docs/guide/de/pipeline/3-reviewing-a-delivery.md +43 -0
  357. package/docs/guide/de/pipeline/4-picking-an-engine-per-rail.md +2 -2
  358. package/docs/guide/de/pipeline/5-the-loop-builder.md +1 -1
  359. package/docs/guide/de/settings/1-themes.md +1 -1
  360. package/docs/guide/de/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
  361. package/docs/guide/de/settings/5-project-environment.md +1 -1
  362. package/docs/guide/de/settings/6-updates.md +24 -0
  363. package/docs/guide/de/settings/7-existing-projects.md +33 -0
  364. package/docs/guide/de/settings/8-accessibility.md +23 -0
  365. package/docs/guide/de/specs/1-specs-and-the-backlog.md +41 -3
  366. package/docs/guide/de/specs/2-add-spec-quick-mode.md +1 -1
  367. package/docs/guide/de/specs/3-add-spec-explore-mode.md +1 -1
  368. package/docs/guide/en/agents/1-meet-the-agents.md +1 -1
  369. package/docs/guide/en/getting-started/1-what-is-specrails.md +1 -1
  370. package/docs/guide/en/getting-started/2-installing-and-first-run.md +2 -0
  371. package/docs/guide/en/getting-started/3-try-the-sample-project.md +35 -0
  372. package/docs/guide/en/getting-started/5-the-dashboard-tour.md +52 -0
  373. package/docs/guide/en/getting-started/6-universal-search.md +34 -0
  374. package/docs/guide/en/insights/1-analytics-and-cost-tracking.md +24 -10
  375. package/docs/guide/en/insights/2-the-integrated-terminal.md +1 -1
  376. package/docs/guide/en/insights/3-code-explorer.md +5 -5
  377. package/docs/guide/en/integrations/1-ai-providers.md +1 -1
  378. package/docs/guide/en/integrations/2-plugins.md +1 -1
  379. package/docs/guide/en/integrations/3-jira-integration.md +4 -4
  380. package/docs/guide/en/integrations/4-mobile-companion.md +1 -1
  381. package/docs/guide/en/integrations/5-mcp-server.md +4 -4
  382. package/docs/guide/en/integrations/6-agent-chat.md +12 -5
  383. package/docs/guide/en/integrations/8-flow-mode.md +69 -0
  384. package/docs/guide/en/pipeline/1-rails-and-jobs.md +22 -3
  385. package/docs/guide/en/pipeline/2-the-job-detail-view.md +19 -7
  386. package/docs/guide/en/pipeline/3-reviewing-a-delivery.md +43 -0
  387. package/docs/guide/en/pipeline/4-picking-an-engine-per-rail.md +2 -2
  388. package/docs/guide/en/pipeline/5-the-loop-builder.md +2 -2
  389. package/docs/guide/en/settings/1-themes.md +1 -1
  390. package/docs/guide/en/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
  391. package/docs/guide/en/settings/5-project-environment.md +1 -1
  392. package/docs/guide/en/settings/6-updates.md +24 -0
  393. package/docs/guide/en/settings/7-existing-projects.md +33 -0
  394. package/docs/guide/en/settings/8-accessibility.md +23 -0
  395. package/docs/guide/en/specs/1-specs-and-the-backlog.md +42 -6
  396. package/docs/guide/en/specs/2-add-spec-quick-mode.md +1 -1
  397. package/docs/guide/en/specs/3-add-spec-explore-mode.md +2 -2
  398. package/docs/guide/es/agents/1-meet-the-agents.md +1 -1
  399. package/docs/guide/es/agents/2-profiles-and-the-balanced-default.md +1 -1
  400. package/docs/guide/es/agents/3-customizing-models-per-agent.md +2 -2
  401. package/docs/guide/es/agents/4-custom-agents-catalog.md +1 -1
  402. package/docs/guide/es/getting-started/1-what-is-specrails.md +3 -3
  403. package/docs/guide/es/getting-started/2-installing-and-first-run.md +2 -0
  404. package/docs/guide/es/getting-started/3-try-the-sample-project.md +35 -0
  405. package/docs/guide/es/getting-started/5-the-dashboard-tour.md +52 -0
  406. package/docs/guide/es/getting-started/6-universal-search.md +34 -0
  407. package/docs/guide/es/insights/1-analytics-and-cost-tracking.md +26 -12
  408. package/docs/guide/es/insights/2-the-integrated-terminal.md +1 -1
  409. package/docs/guide/es/insights/3-code-explorer.md +5 -5
  410. package/docs/guide/es/integrations/1-ai-providers.md +1 -1
  411. package/docs/guide/es/integrations/2-plugins.md +1 -1
  412. package/docs/guide/es/integrations/3-jira-integration.md +4 -4
  413. package/docs/guide/es/integrations/4-mobile-companion.md +1 -1
  414. package/docs/guide/es/integrations/5-mcp-server.md +4 -4
  415. package/docs/guide/es/integrations/6-agent-chat.md +14 -7
  416. package/docs/guide/es/integrations/7-local-engines.md +1 -1
  417. package/docs/guide/es/integrations/8-flow-mode.md +69 -0
  418. package/docs/guide/es/pipeline/1-rails-and-jobs.md +33 -13
  419. package/docs/guide/es/pipeline/2-the-job-detail-view.md +38 -26
  420. package/docs/guide/es/pipeline/3-reviewing-a-delivery.md +43 -0
  421. package/docs/guide/es/pipeline/4-picking-an-engine-per-rail.md +2 -2
  422. package/docs/guide/es/pipeline/5-the-loop-builder.md +4 -4
  423. package/docs/guide/es/settings/1-themes.md +1 -1
  424. package/docs/guide/es/settings/3-pipeline-telemetry-and-diagnostics.md +10 -10
  425. package/docs/guide/es/settings/5-project-environment.md +1 -1
  426. package/docs/guide/es/settings/6-updates.md +24 -0
  427. package/docs/guide/es/settings/7-existing-projects.md +33 -0
  428. package/docs/guide/es/settings/8-accessibility.md +23 -0
  429. package/docs/guide/es/specs/1-specs-and-the-backlog.md +43 -7
  430. package/docs/guide/es/specs/2-add-spec-quick-mode.md +1 -1
  431. package/docs/guide/es/specs/3-add-spec-explore-mode.md +3 -3
  432. package/docs/guide/fr/agents/1-meet-the-agents.md +1 -1
  433. package/docs/guide/fr/getting-started/2-installing-and-first-run.md +2 -0
  434. package/docs/guide/fr/getting-started/3-try-the-sample-project.md +35 -0
  435. package/docs/guide/fr/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
  436. package/docs/guide/fr/getting-started/6-universal-search.md +34 -0
  437. package/docs/guide/fr/insights/1-analytics-and-cost-tracking.md +18 -4
  438. package/docs/guide/fr/insights/2-the-integrated-terminal.md +1 -1
  439. package/docs/guide/fr/insights/3-code-explorer.md +1 -1
  440. package/docs/guide/fr/integrations/1-ai-providers.md +1 -1
  441. package/docs/guide/fr/integrations/2-plugins.md +1 -1
  442. package/docs/guide/fr/integrations/3-jira-integration.md +3 -3
  443. package/docs/guide/fr/integrations/4-mobile-companion.md +1 -1
  444. package/docs/guide/fr/integrations/5-mcp-server.md +1 -1
  445. package/docs/guide/fr/integrations/6-agent-chat.md +11 -4
  446. package/docs/guide/fr/integrations/8-flow-mode.md +69 -0
  447. package/docs/guide/fr/pipeline/1-rails-and-jobs.md +21 -1
  448. package/docs/guide/fr/pipeline/2-the-job-detail-view.md +12 -0
  449. package/docs/guide/fr/pipeline/3-reviewing-a-delivery.md +43 -0
  450. package/docs/guide/fr/pipeline/4-picking-an-engine-per-rail.md +2 -2
  451. package/docs/guide/fr/pipeline/5-the-loop-builder.md +1 -1
  452. package/docs/guide/fr/settings/1-themes.md +1 -1
  453. package/docs/guide/fr/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
  454. package/docs/guide/fr/settings/5-project-environment.md +1 -1
  455. package/docs/guide/fr/settings/6-updates.md +24 -0
  456. package/docs/guide/fr/settings/7-existing-projects.md +33 -0
  457. package/docs/guide/fr/settings/8-accessibility.md +23 -0
  458. package/docs/guide/fr/specs/1-specs-and-the-backlog.md +41 -3
  459. package/docs/guide/fr/specs/2-add-spec-quick-mode.md +1 -1
  460. package/docs/guide/fr/specs/3-add-spec-explore-mode.md +1 -1
  461. package/docs/guide/it/agents/1-meet-the-agents.md +1 -1
  462. package/docs/guide/it/getting-started/2-installing-and-first-run.md +2 -0
  463. package/docs/guide/it/getting-started/3-try-the-sample-project.md +35 -0
  464. package/docs/guide/it/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
  465. package/docs/guide/it/getting-started/6-universal-search.md +34 -0
  466. package/docs/guide/it/insights/1-analytics-and-cost-tracking.md +18 -4
  467. package/docs/guide/it/insights/2-the-integrated-terminal.md +1 -1
  468. package/docs/guide/it/insights/3-code-explorer.md +1 -1
  469. package/docs/guide/it/integrations/1-ai-providers.md +1 -1
  470. package/docs/guide/it/integrations/2-plugins.md +1 -1
  471. package/docs/guide/it/integrations/3-jira-integration.md +3 -3
  472. package/docs/guide/it/integrations/4-mobile-companion.md +1 -1
  473. package/docs/guide/it/integrations/5-mcp-server.md +1 -1
  474. package/docs/guide/it/integrations/6-agent-chat.md +11 -4
  475. package/docs/guide/it/integrations/8-flow-mode.md +69 -0
  476. package/docs/guide/it/pipeline/1-rails-and-jobs.md +21 -1
  477. package/docs/guide/it/pipeline/2-the-job-detail-view.md +12 -0
  478. package/docs/guide/it/pipeline/3-reviewing-a-delivery.md +43 -0
  479. package/docs/guide/it/pipeline/4-picking-an-engine-per-rail.md +2 -2
  480. package/docs/guide/it/pipeline/5-the-loop-builder.md +1 -1
  481. package/docs/guide/it/settings/1-themes.md +1 -1
  482. package/docs/guide/it/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
  483. package/docs/guide/it/settings/5-project-environment.md +1 -1
  484. package/docs/guide/it/settings/6-updates.md +24 -0
  485. package/docs/guide/it/settings/7-existing-projects.md +33 -0
  486. package/docs/guide/it/settings/8-accessibility.md +23 -0
  487. package/docs/guide/it/specs/1-specs-and-the-backlog.md +41 -3
  488. package/docs/guide/it/specs/2-add-spec-quick-mode.md +1 -1
  489. package/docs/guide/it/specs/3-add-spec-explore-mode.md +1 -1
  490. package/docs/guide/ja/agents/1-meet-the-agents.md +1 -1
  491. package/docs/guide/ja/getting-started/2-installing-and-first-run.md +2 -0
  492. package/docs/guide/ja/getting-started/3-try-the-sample-project.md +35 -0
  493. package/docs/guide/ja/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
  494. package/docs/guide/ja/getting-started/6-universal-search.md +34 -0
  495. package/docs/guide/ja/insights/1-analytics-and-cost-tracking.md +18 -4
  496. package/docs/guide/ja/insights/2-the-integrated-terminal.md +1 -1
  497. package/docs/guide/ja/insights/3-code-explorer.md +1 -1
  498. package/docs/guide/ja/integrations/1-ai-providers.md +1 -1
  499. package/docs/guide/ja/integrations/2-plugins.md +1 -1
  500. package/docs/guide/ja/integrations/3-jira-integration.md +3 -3
  501. package/docs/guide/ja/integrations/4-mobile-companion.md +1 -1
  502. package/docs/guide/ja/integrations/5-mcp-server.md +1 -1
  503. package/docs/guide/ja/integrations/6-agent-chat.md +11 -4
  504. package/docs/guide/ja/integrations/8-flow-mode.md +69 -0
  505. package/docs/guide/ja/pipeline/1-rails-and-jobs.md +21 -1
  506. package/docs/guide/ja/pipeline/2-the-job-detail-view.md +12 -0
  507. package/docs/guide/ja/pipeline/3-reviewing-a-delivery.md +43 -0
  508. package/docs/guide/ja/pipeline/4-picking-an-engine-per-rail.md +2 -2
  509. package/docs/guide/ja/pipeline/5-the-loop-builder.md +1 -1
  510. package/docs/guide/ja/settings/1-themes.md +1 -1
  511. package/docs/guide/ja/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
  512. package/docs/guide/ja/settings/5-project-environment.md +1 -1
  513. package/docs/guide/ja/settings/6-updates.md +24 -0
  514. package/docs/guide/ja/settings/7-existing-projects.md +33 -0
  515. package/docs/guide/ja/settings/8-accessibility.md +23 -0
  516. package/docs/guide/ja/specs/1-specs-and-the-backlog.md +41 -3
  517. package/docs/guide/ja/specs/2-add-spec-quick-mode.md +1 -1
  518. package/docs/guide/ja/specs/3-add-spec-explore-mode.md +1 -1
  519. package/docs/guide/pt/agents/1-meet-the-agents.md +1 -1
  520. package/docs/guide/pt/getting-started/2-installing-and-first-run.md +2 -0
  521. package/docs/guide/pt/getting-started/3-try-the-sample-project.md +35 -0
  522. package/docs/guide/pt/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
  523. package/docs/guide/pt/getting-started/6-universal-search.md +34 -0
  524. package/docs/guide/pt/insights/1-analytics-and-cost-tracking.md +18 -4
  525. package/docs/guide/pt/insights/2-the-integrated-terminal.md +1 -1
  526. package/docs/guide/pt/insights/3-code-explorer.md +1 -1
  527. package/docs/guide/pt/integrations/1-ai-providers.md +1 -1
  528. package/docs/guide/pt/integrations/2-plugins.md +1 -1
  529. package/docs/guide/pt/integrations/3-jira-integration.md +3 -3
  530. package/docs/guide/pt/integrations/4-mobile-companion.md +1 -1
  531. package/docs/guide/pt/integrations/5-mcp-server.md +1 -1
  532. package/docs/guide/pt/integrations/6-agent-chat.md +12 -5
  533. package/docs/guide/pt/integrations/8-flow-mode.md +69 -0
  534. package/docs/guide/pt/pipeline/1-rails-and-jobs.md +21 -1
  535. package/docs/guide/pt/pipeline/2-the-job-detail-view.md +12 -0
  536. package/docs/guide/pt/pipeline/3-reviewing-a-delivery.md +43 -0
  537. package/docs/guide/pt/pipeline/4-picking-an-engine-per-rail.md +2 -2
  538. package/docs/guide/pt/pipeline/5-the-loop-builder.md +1 -1
  539. package/docs/guide/pt/settings/1-themes.md +1 -1
  540. package/docs/guide/pt/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
  541. package/docs/guide/pt/settings/5-project-environment.md +1 -1
  542. package/docs/guide/pt/settings/6-updates.md +24 -0
  543. package/docs/guide/pt/settings/7-existing-projects.md +33 -0
  544. package/docs/guide/pt/settings/8-accessibility.md +23 -0
  545. package/docs/guide/pt/specs/1-specs-and-the-backlog.md +41 -3
  546. package/docs/guide/pt/specs/2-add-spec-quick-mode.md +1 -1
  547. package/docs/guide/pt/specs/3-add-spec-explore-mode.md +1 -1
  548. package/docs/guide/zh/agents/1-meet-the-agents.md +1 -1
  549. package/docs/guide/zh/getting-started/2-installing-and-first-run.md +2 -0
  550. package/docs/guide/zh/getting-started/3-try-the-sample-project.md +35 -0
  551. package/docs/guide/zh/getting-started/{4-the-dashboard-tour.md → 5-the-dashboard-tour.md} +7 -3
  552. package/docs/guide/zh/getting-started/6-universal-search.md +34 -0
  553. package/docs/guide/zh/insights/1-analytics-and-cost-tracking.md +18 -4
  554. package/docs/guide/zh/insights/2-the-integrated-terminal.md +1 -1
  555. package/docs/guide/zh/insights/3-code-explorer.md +1 -1
  556. package/docs/guide/zh/integrations/1-ai-providers.md +1 -1
  557. package/docs/guide/zh/integrations/2-plugins.md +1 -1
  558. package/docs/guide/zh/integrations/3-jira-integration.md +3 -3
  559. package/docs/guide/zh/integrations/4-mobile-companion.md +1 -1
  560. package/docs/guide/zh/integrations/5-mcp-server.md +1 -1
  561. package/docs/guide/zh/integrations/6-agent-chat.md +11 -4
  562. package/docs/guide/zh/integrations/8-flow-mode.md +69 -0
  563. package/docs/guide/zh/pipeline/1-rails-and-jobs.md +21 -1
  564. package/docs/guide/zh/pipeline/2-the-job-detail-view.md +12 -0
  565. package/docs/guide/zh/pipeline/3-reviewing-a-delivery.md +43 -0
  566. package/docs/guide/zh/pipeline/4-picking-an-engine-per-rail.md +2 -2
  567. package/docs/guide/zh/pipeline/5-the-loop-builder.md +1 -1
  568. package/docs/guide/zh/settings/1-themes.md +1 -1
  569. package/docs/guide/zh/settings/3-pipeline-telemetry-and-diagnostics.md +2 -2
  570. package/docs/guide/zh/settings/5-project-environment.md +1 -1
  571. package/docs/guide/zh/settings/6-updates.md +24 -0
  572. package/docs/guide/zh/settings/7-existing-projects.md +33 -0
  573. package/docs/guide/zh/settings/8-accessibility.md +23 -0
  574. package/docs/guide/zh/specs/1-specs-and-the-backlog.md +41 -3
  575. package/docs/guide/zh/specs/2-add-spec-quick-mode.md +1 -1
  576. package/docs/guide/zh/specs/3-add-spec-explore-mode.md +1 -1
  577. package/docs/internals/README.md +8 -0
  578. package/docs/internals/adding-a-provider.md +19 -2
  579. package/docs/internals/agent-actions-audit.md +101 -0
  580. package/docs/internals/agent-sessions.md +36 -1
  581. package/docs/internals/api-reference.md +190 -45
  582. package/docs/internals/architecture.md +53 -47
  583. package/docs/internals/companion-inbox-decisions.md +42 -0
  584. package/docs/internals/companion-rails-as-loops-contract.md +17 -6
  585. package/docs/internals/configuration.md +140 -9
  586. package/docs/internals/core-runtime-updates.md +4 -4
  587. package/docs/internals/existing-project-anchoring.md +168 -0
  588. package/docs/internals/flow-mode.md +668 -0
  589. package/docs/internals/legacy-implementation-notes.md +13 -0
  590. package/docs/internals/local-testing-feedback-2026-10.md +210 -0
  591. package/docs/internals/mcp-mission-audit.md +4 -0
  592. package/docs/internals/mission-rail-cards.md +10 -5
  593. package/docs/internals/mission-read-only-policy.md +152 -0
  594. package/docs/internals/modal-standard.md +181 -0
  595. package/docs/internals/openspec-workflow.md +32 -0
  596. package/docs/internals/operations-runbook.md +30 -0
  597. package/docs/internals/profiles.md +6 -3
  598. package/docs/internals/programmatic-agent-runtime.md +8 -0
  599. package/docs/internals/project-builder.md +1 -1
  600. package/docs/internals/review-packet.md +161 -9
  601. package/docs/internals/safe-pr-review-flow.md +135 -6
  602. package/docs/internals/source-map.md +413 -18
  603. package/docs/internals/spec-addenda.md +10 -0
  604. package/docs/internals/spec-triage.md +140 -0
  605. package/docs/internals/visual-design-audit.md +15 -2
  606. package/docs/local-providers.md +3 -0
  607. package/docs/mcp.md +21 -3
  608. package/docs/platforms/macos.md +1 -1
  609. package/docs/platforms/windows.md +2 -2
  610. package/docs/running-pipelines.md +22 -6
  611. package/docs/tracking-cost.md +54 -10
  612. package/local-runner/dist/specrails-local-runner.js +3851 -1178
  613. package/mcp-bridge/dist/specrails-mcp.js +3864 -1143
  614. package/package.json +10 -9
  615. package/server/dist/agent-mcp-config.js +37 -1
  616. package/server/dist/api-version.js +19 -0
  617. package/server/dist/command-resolver.js +4 -2
  618. package/server/dist/core-compat.js +1 -1
  619. package/server/dist/core-execution.js +2 -1
  620. package/server/dist/core-update-manager.js +71 -13
  621. package/server/dist/db/job-search.js +248 -0
  622. package/server/dist/db/jobs.js +6 -0
  623. package/server/dist/db/migrations.js +239 -0
  624. package/server/dist/db.js +9 -2
  625. package/server/dist/desktop-db.js +99 -5
  626. package/server/dist/desktop-router.js +126 -13
  627. package/server/dist/docs-router.js +67 -1
  628. package/server/dist/feature-flags.js +22 -0
  629. package/server/dist/index.js +30 -15
  630. package/server/dist/jira/jira-adf.js +13 -1
  631. package/server/dist/jira/jira-clarifications.js +146 -0
  632. package/server/dist/jira/jira-client.js +8 -1
  633. package/server/dist/jira/jira-db.js +41 -0
  634. package/server/dist/jira/jira-sync-manager.js +328 -25
  635. package/server/dist/mcp/guide.js +17 -7
  636. package/server/dist/mcp/tools/agents.js +1 -1
  637. package/server/dist/mcp/tools/analytics.js +15 -3
  638. package/server/dist/mcp/tools/app-settings.js +14 -1
  639. package/server/dist/mcp/tools/chat.js +1 -1
  640. package/server/dist/mcp/tools/env.js +4 -2
  641. package/server/dist/mcp/tools/jobs.js +96 -7
  642. package/server/dist/mcp/tools/loops.js +1 -1
  643. package/server/dist/mcp/tools/meta.js +10 -13
  644. package/server/dist/mcp/tools/rails.js +15 -1
  645. package/server/dist/mcp/tools/setup.js +1 -1
  646. package/server/dist/mcp/tools/specs.js +8 -5
  647. package/server/dist/mcp/tools/support.js +6 -3
  648. package/server/dist/mcp/tools/types.js +38 -1
  649. package/server/dist/mobile/mobile-admin-router.js +0 -16
  650. package/server/dist/mobile/mobile-gateway.js +0 -18
  651. package/server/dist/mobile/mobile-inbox.js +240 -0
  652. package/server/dist/mobile/mobile-missions.js +6 -8
  653. package/server/dist/mobile/mobile-router.js +9 -9
  654. package/server/dist/mobile/mobile-webrtc-peer.js +4 -54
  655. package/server/dist/mobile/mobile-ws.js +27 -4
  656. package/server/dist/modules/accounting/runtime/ai-invocations.js +4 -0
  657. package/server/dist/modules/accounting/runtime/decision-times.js +102 -0
  658. package/server/dist/modules/accounting/runtime/loop-economics.js +284 -0
  659. package/server/dist/modules/accounting/runtime/spending.js +7 -2
  660. package/server/dist/modules/accounting/runtime/what-if.js +87 -0
  661. package/server/dist/modules/agent-runtime/runtime/agent-runtime-bridge.js +86 -5
  662. package/server/dist/modules/agent-runtime/runtime/agent-runtime-controls.js +28 -2
  663. package/server/dist/modules/agent-runtime/runtime/agent-runtime-metrics.js +15 -2
  664. package/server/dist/modules/agent-runtime/runtime/agent-runtime-settings-router.js +21 -2
  665. package/server/dist/modules/agent-runtime/runtime/core-capabilities.js +55 -0
  666. package/server/dist/modules/agent-sessions/adapters/host-process.js +1 -1
  667. package/server/dist/modules/agent-sessions/domain/availability.js +16 -0
  668. package/server/dist/modules/agent-sessions/domain/protocol.js +8 -1
  669. package/server/dist/modules/agent-sessions/index.js +3 -1
  670. package/server/dist/modules/agent-sessions/runtime/core-sessions-availability.js +16 -0
  671. package/server/dist/modules/agents/runtime/agent-refine-manager.js +3 -1
  672. package/server/dist/modules/agents/runtime/agent-store.js +60 -73
  673. package/server/dist/modules/audit/adapters/http.js +66 -0
  674. package/server/dist/modules/audit/adapters/runtime.js +60 -0
  675. package/server/dist/modules/audit/adapters/sqlite.js +73 -0
  676. package/server/dist/modules/audit/application.js +190 -0
  677. package/server/dist/modules/audit/domain.js +434 -0
  678. package/server/dist/modules/audit/index.js +27 -0
  679. package/server/dist/modules/audit/ports.js +2 -0
  680. package/server/dist/modules/browser/runtime/browser-capture-manager.js +18 -141
  681. package/server/dist/modules/browser/runtime/browser-capture-types.js +1 -10
  682. package/server/dist/modules/browser/runtime/browser-playwright.js +0 -19
  683. package/server/dist/modules/code/runtime/file-provenance.js +23 -0
  684. package/server/dist/modules/conversations/runtime/chat-manager.js +5 -2
  685. package/server/dist/modules/delivery/adapters/decisions/chains.js +1 -0
  686. package/server/dist/modules/delivery/adapters/decisions/create.js +19 -1
  687. package/server/dist/modules/delivery/adapters/decisions/discard.js +2 -0
  688. package/server/dist/modules/delivery/adapters/decisions/local-changes.js +427 -0
  689. package/server/dist/modules/delivery/adapters/decisions/merge-local.js +80 -6
  690. package/server/dist/modules/delivery/adapters/decisions/observations.js +5 -0
  691. package/server/dist/modules/delivery/adapters/decisions/ownership.js +2 -1
  692. package/server/dist/modules/delivery/adapters/decisions/transitions.js +9 -0
  693. package/server/dist/modules/delivery/adapters/review-wip-store.js +37 -0
  694. package/server/dist/modules/delivery/domain/review-wip.js +71 -0
  695. package/server/dist/modules/delivery/index.js +9 -1
  696. package/server/dist/modules/delivery/runtime/delivery-changes.js +355 -0
  697. package/server/dist/modules/delivery/runtime/delivery-evidence.js +249 -8
  698. package/server/dist/modules/delivery/runtime/flow-review-legacy.js +99 -0
  699. package/server/dist/modules/delivery/runtime/flow-review-outcome.js +107 -0
  700. package/server/dist/modules/delivery/runtime/flow-worktree-handoff.js +32 -0
  701. package/server/dist/modules/delivery/runtime/flow-worktree-return.js +87 -0
  702. package/server/dist/modules/delivery/runtime/isolated-worktree.js +380 -0
  703. package/server/dist/modules/delivery/runtime/local-restore-branch.js +325 -0
  704. package/server/dist/modules/delivery/runtime/local-restore-resolver.js +48 -0
  705. package/server/dist/modules/delivery/runtime/local-stash.js +423 -0
  706. package/server/dist/modules/delivery/runtime/multi-repo-execution.js +27 -1
  707. package/server/dist/modules/delivery/runtime/phase3-harvest.js +40 -0
  708. package/server/dist/modules/delivery/runtime/pr-body.js +50 -0
  709. package/server/dist/modules/delivery/runtime/rail-isolated-launch.js +169 -166
  710. package/server/dist/modules/delivery/runtime/rail-launch-parser.js +5 -2
  711. package/server/dist/modules/delivery/runtime/rail-pr-decision.js +7 -1
  712. package/server/dist/modules/delivery/runtime/rail-pr-store.js +193 -12
  713. package/server/dist/modules/delivery/runtime/rails-router.js +267 -5
  714. package/server/dist/modules/delivery/runtime/review-brief.js +208 -0
  715. package/server/dist/modules/delivery/runtime/review-packet.js +41 -2
  716. package/server/dist/modules/delivery/runtime/review-wip-gate.js +67 -0
  717. package/server/dist/modules/delivery/runtime/run-records.js +267 -0
  718. package/server/dist/modules/delivery/runtime/run-review-diagnosis.js +102 -0
  719. package/server/dist/modules/execution/adapters/budget-storage.js +76 -0
  720. package/server/dist/modules/execution/application/enforce-budget.js +17 -2
  721. package/server/dist/modules/execution/domain/agent-env.js +98 -0
  722. package/server/dist/modules/execution/domain/daily-budget.js +36 -0
  723. package/server/dist/modules/execution/domain/spend-caps.js +166 -0
  724. package/server/dist/modules/execution/index.js +34 -1
  725. package/server/dist/modules/execution/runtime/budget-overview.js +76 -0
  726. package/server/dist/modules/execution/runtime/daily-budget-gate.js +86 -0
  727. package/server/dist/modules/execution/runtime/interactive-job-session.js +8 -0
  728. package/server/dist/modules/execution/runtime/launch-forecast.js +33 -0
  729. package/server/dist/modules/execution/runtime/queue-manager.js +54 -15
  730. package/server/dist/modules/execution/runtime/run-duration-stats.js +31 -13
  731. package/server/dist/modules/flow/adapters/bindings.js +1089 -0
  732. package/server/dist/modules/flow/adapters/http.js +147 -0
  733. package/server/dist/modules/flow/adapters/sqlite.js +121 -0
  734. package/server/dist/modules/flow/application.js +805 -0
  735. package/server/dist/modules/flow/domain.js +790 -0
  736. package/server/dist/modules/flow/index.js +34 -0
  737. package/server/dist/modules/flow/ports.js +2 -0
  738. package/server/dist/modules/inbox/adapters/http.js +21 -0
  739. package/server/dist/modules/inbox/adapters/project-source.js +233 -0
  740. package/server/dist/modules/inbox/application.js +28 -0
  741. package/server/dist/modules/inbox/domain.js +43 -0
  742. package/server/dist/modules/inbox/index.js +10 -0
  743. package/server/dist/modules/inbox/ports.js +2 -0
  744. package/server/dist/modules/loops/runtime/loop-definition-run.js +9 -0
  745. package/server/dist/modules/loops/runtime/loop-definition.js +5 -2
  746. package/server/dist/modules/loops/runtime/loop-executors.js +90 -9
  747. package/server/dist/modules/loops/runtime/loop-factory.js +30 -2
  748. package/server/dist/modules/loops/runtime/loop-flow-spec-recipe.js +166 -0
  749. package/server/dist/modules/loops/runtime/loop-graph.js +1 -1
  750. package/server/dist/modules/loops/runtime/loop-role-engines.js +4 -1
  751. package/server/dist/modules/loops/runtime/loop-run-manager.js +267 -10
  752. package/server/dist/modules/loops/runtime/loop-runs-store.js +21 -5
  753. package/server/dist/modules/loops/runtime/loop-templates.js +55 -12
  754. package/server/dist/modules/missions/runtime/agent-chat-manager.js +283 -20
  755. package/server/dist/modules/missions/runtime/agent-chat-router.js +96 -21
  756. package/server/dist/modules/missions/runtime/agent-failure-briefing.js +11 -3
  757. package/server/dist/modules/missions/runtime/agent-fence-promotion.js +9 -1
  758. package/server/dist/modules/missions/runtime/agent-flow-prompt.js +64 -0
  759. package/server/dist/modules/missions/runtime/agent-input-store.js +9 -4
  760. package/server/dist/modules/missions/runtime/agent-operator-prompt.js +100 -14
  761. package/server/dist/modules/missions/runtime/agent-session-store.js +88 -27
  762. package/server/dist/modules/missions/runtime/core-session-runner.js +89 -9
  763. package/server/dist/modules/missions/runtime/flow-turn-context.js +17 -0
  764. package/server/dist/modules/missions/runtime/mission-core-sessions.js +295 -55
  765. package/server/dist/modules/missions/runtime/mission-run-notify.js +2 -0
  766. package/server/dist/modules/missions/runtime/mission-session-projector.js +56 -19
  767. package/server/dist/modules/missions/runtime/mission-tool-policy.js +47 -0
  768. package/server/dist/modules/onboarding/adapters/http.js +78 -0
  769. package/server/dist/modules/onboarding/adapters/providers.js +41 -0
  770. package/server/dist/modules/onboarding/adapters/runtime.js +130 -0
  771. package/server/dist/modules/onboarding/application.js +133 -0
  772. package/server/dist/modules/onboarding/catalog.js +217 -0
  773. package/server/dist/modules/onboarding/domain.js +102 -0
  774. package/server/dist/modules/onboarding/index.js +20 -0
  775. package/server/dist/modules/onboarding/ports.js +2 -0
  776. package/server/dist/modules/project-rules/adapters/http.js +91 -0
  777. package/server/dist/modules/project-rules/domain.js +122 -0
  778. package/server/dist/modules/project-rules/runtime/rules-inventory-runs.js +97 -0
  779. package/server/dist/modules/project-rules/runtime/rules-store.js +109 -0
  780. package/server/dist/modules/project-settings/adapters/http.js +13 -0
  781. package/server/dist/modules/project-settings/adapters/sqlite.js +78 -8
  782. package/server/dist/modules/project-settings/domain.js +47 -1
  783. package/server/dist/modules/project-settings/index.js +7 -1
  784. package/server/dist/modules/recovery/adapters/sqlite.js +28 -0
  785. package/server/dist/modules/recovery/domain.js +162 -0
  786. package/server/dist/modules/recovery/index.js +16 -0
  787. package/server/dist/modules/specs/adapters/timeline-http.js +101 -0
  788. package/server/dist/modules/specs/domain/handoff-labels.js +371 -0
  789. package/server/dist/modules/specs/domain/handoff.js +260 -0
  790. package/server/dist/modules/specs/domain/non-goals.js +101 -0
  791. package/server/dist/modules/specs/domain/timeline.js +164 -0
  792. package/server/dist/modules/specs/domain/triage.js +320 -0
  793. package/server/dist/modules/specs/runtime/contract-refine-runner.js +3 -2
  794. package/server/dist/modules/specs/runtime/generated-spec-parser.js +75 -0
  795. package/server/dist/modules/specs/runtime/proposal-manager.js +4 -3
  796. package/server/dist/modules/specs/runtime/smash-runner.js +2 -1
  797. package/server/dist/modules/specs/runtime/spec-addenda.js +31 -0
  798. package/server/dist/modules/specs/runtime/spec-draft-parser.js +6 -1
  799. package/server/dist/modules/specs/runtime/spec-generation.js +431 -0
  800. package/server/dist/modules/specs/runtime/spec-handoff.js +103 -0
  801. package/server/dist/modules/specs/runtime/spec-history.js +376 -0
  802. package/server/dist/modules/specs/runtime/spec-launcher-manager.js +4 -3
  803. package/server/dist/modules/specs/runtime/spec-search.js +117 -0
  804. package/server/dist/modules/specs/runtime/ticket-store.js +47 -2
  805. package/server/dist/modules/specs/runtime/ticket-trash-service.js +62 -0
  806. package/server/dist/modules/specs/runtime/ticket-trash.js +193 -0
  807. package/server/dist/modules/specs/runtime/triage-runner.js +171 -0
  808. package/server/dist/modules/specs/runtime/triage.js +365 -0
  809. package/server/dist/modules/terminals/domain/app-urls.js +96 -0
  810. package/server/dist/modules/terminals/runtime/app-urls.js +77 -0
  811. package/server/dist/modules/terminals/runtime/background-process-service.js +25 -28
  812. package/server/dist/project-env.js +60 -0
  813. package/server/dist/project-git.js +65 -0
  814. package/server/dist/project-registry.js +264 -27
  815. package/server/dist/project-router-background-processes.js +27 -3
  816. package/server/dist/project-router-git.js +30 -0
  817. package/server/dist/project-router-helpers.js +5 -30
  818. package/server/dist/project-router-jobs.js +49 -1
  819. package/server/dist/project-router-loop-runs.js +72 -2
  820. package/server/dist/project-router-rules.js +54 -0
  821. package/server/dist/project-router-search.js +52 -0
  822. package/server/dist/project-router-settings.js +6 -0
  823. package/server/dist/project-router-setup.js +1 -1
  824. package/server/dist/project-router-spending.js +138 -0
  825. package/server/dist/project-router-tickets.js +246 -427
  826. package/server/dist/project-router.js +7 -0
  827. package/server/dist/providers/claude-adapter.js +25 -3
  828. package/server/dist/providers/codex-adapter.js +9 -1
  829. package/server/dist/providers/gemini-adapter.js +6 -1
  830. package/server/dist/providers/kimi-adapter.js +2 -0
  831. package/server/dist/providers/local-adapter.js +2 -0
  832. package/server/dist/providers/runtime.js +8 -0
  833. package/server/dist/schemas/agent-runtime.schema.json +3 -1
  834. package/server/dist/schemas/workflow-definition.schema.json +1 -0
  835. package/server/dist/setup-manager.js +19 -1
  836. package/server/dist/transient-children.js +25 -8
  837. package/server/dist/update-channel.js +21 -0
  838. package/server/dist/util/search-snippet.js +74 -0
  839. package/server/dist/worktree-manager.js +19 -8
  840. package/client/dist/assets/ActivityFeedPage-Dtp7EyHc.js +0 -1
  841. package/client/dist/assets/AgentBrowserCapture-CLqlEFw8.js +0 -1
  842. package/client/dist/assets/AgentModeAnalyticsPane-B8_hM3Tw.js +0 -2
  843. package/client/dist/assets/AgentModeCodePane-CNF8ZNjE.js +0 -2
  844. package/client/dist/assets/AgentModeJobsPane-CJpJbO9m.js +0 -1
  845. package/client/dist/assets/AgentsPage-BC8XSR79.js +0 -120
  846. package/client/dist/assets/AnalyticsPage-Cdv4jLtW.js +0 -1
  847. package/client/dist/assets/BarChart-BDMqVFJy.js +0 -55
  848. package/client/dist/assets/CodePage-DI1kegAr.js +0 -3
  849. package/client/dist/assets/DesktopAnalyticsPage-Bdp8E8U6.js +0 -1
  850. package/client/dist/assets/DocsDialog-Bm4RS7FX.js +0 -11
  851. package/client/dist/assets/DocsPage-DihYcU8r.js +0 -11
  852. package/client/dist/assets/ExportDropdown-Bb1lHx3r.js +0 -1
  853. package/client/dist/assets/IntegrationsPage-EAipiDWm.js +0 -1
  854. package/client/dist/assets/InteractiveJobComposer-BO6ASN-2.js +0 -19
  855. package/client/dist/assets/JobDetailModal-CuPYq7tP.js +0 -1
  856. package/client/dist/assets/JobDetailPage-BusMjJi9.js +0 -1
  857. package/client/dist/assets/JobsPage-C0QbsF2d.js +0 -1
  858. package/client/dist/assets/LoopBuilderPage-B7TlU4iS.js +0 -1
  859. package/client/dist/assets/LoopPreviewModal-BRWtXOD2.js +0 -1
  860. package/client/dist/assets/LoopsPage-C4q1DmCE.js +0 -2
  861. package/client/dist/assets/MinimizedChatsContext-DHfigjHS.js +0 -1
  862. package/client/dist/assets/PluginsPage-Z1JHSMdR.js +0 -2
  863. package/client/dist/assets/ProjectSettingsDialog-BUNj0tvN.js +0 -1
  864. package/client/dist/assets/RepositoryDeliveries-B4ybHOyB.js +0 -5
  865. package/client/dist/assets/ReviewPacketPage-hwfPNjyy.js +0 -4
  866. package/client/dist/assets/TemplatePreviewModal-V7FpMWuw.js +0 -1
  867. package/client/dist/assets/TicketDetailModalContext-Dkwo2cDs.js +0 -16
  868. package/client/dist/assets/Trans-BbFxRFtR.js +0 -1
  869. package/client/dist/assets/activity-B-rp4h_v.js +0 -1
  870. package/client/dist/assets/activity-C6kJpm9q.js +0 -1
  871. package/client/dist/assets/activity-CGx4kb_j.js +0 -1
  872. package/client/dist/assets/activity-CnoX2bH7.js +0 -1
  873. package/client/dist/assets/activity-DAyekdlt.js +0 -1
  874. package/client/dist/assets/activity-DCxtpT7j.js +0 -1
  875. package/client/dist/assets/activity-DiyjsgQV.js +0 -1
  876. package/client/dist/assets/activity-JzwRaWPD.js +0 -1
  877. package/client/dist/assets/addspec-BOvgmcgk.js +0 -1
  878. package/client/dist/assets/addspec-Clmyfn_R.js +0 -1
  879. package/client/dist/assets/addspec-CsNaBpHp.js +0 -1
  880. package/client/dist/assets/addspec-D2tvWmmV.js +0 -1
  881. package/client/dist/assets/addspec-D3nFwvD0.js +0 -1
  882. package/client/dist/assets/addspec-DVLEhK3w.js +0 -1
  883. package/client/dist/assets/addspec-DXbK-tb0.js +0 -1
  884. package/client/dist/assets/addspec-OHG8DFEn.js +0 -1
  885. package/client/dist/assets/agent-5bSixVzz.js +0 -1
  886. package/client/dist/assets/agent-BR4EHfhq.js +0 -1
  887. package/client/dist/assets/agent-C0IKkJP8.js +0 -1
  888. package/client/dist/assets/agent-C7li9ayC.js +0 -1
  889. package/client/dist/assets/agent-D0dRmEen.js +0 -1
  890. package/client/dist/assets/agent-DZVGHm7H.js +0 -1
  891. package/client/dist/assets/agent-Dip4h2YE.js +0 -1
  892. package/client/dist/assets/agent-Pp-P-n1p.js +0 -1
  893. package/client/dist/assets/agentRuntime-BxF81z52.js +0 -1
  894. package/client/dist/assets/agentRuntime-BxYS5V7u.js +0 -1
  895. package/client/dist/assets/agentRuntime-Dc9HG3BA.js +0 -1
  896. package/client/dist/assets/agents-B6ZsnARo.js +0 -1
  897. package/client/dist/assets/agents-BORdhe0K.js +0 -1
  898. package/client/dist/assets/agents-C6aq9Oqs.js +0 -1
  899. package/client/dist/assets/agents-Cbsc4bcX.js +0 -1
  900. package/client/dist/assets/agents-D0uYR6hq.js +0 -1
  901. package/client/dist/assets/agents-Doe1sHY5.js +0 -1
  902. package/client/dist/assets/agents-DyNi_I9m.js +0 -1
  903. package/client/dist/assets/agents-StKxiTg0.js +0 -1
  904. package/client/dist/assets/agentstudio-7cYCXn-L.js +0 -1
  905. package/client/dist/assets/agentstudio-BHWQh8G3.js +0 -1
  906. package/client/dist/assets/agentstudio-BjnWHyRs.js +0 -1
  907. package/client/dist/assets/agentstudio-BkV8vcK4.js +0 -1
  908. package/client/dist/assets/agentstudio-BzugqB_N.js +0 -1
  909. package/client/dist/assets/agentstudio-CWbp7KvH.js +0 -1
  910. package/client/dist/assets/agentstudio-DG6plf5o.js +0 -1
  911. package/client/dist/assets/agentstudio-DkZVF-Cc.js +0 -1
  912. package/client/dist/assets/analytics-B1DIQd4m.js +0 -1
  913. package/client/dist/assets/analytics-BAIZ9vE_.js +0 -1
  914. package/client/dist/assets/analytics-BTqgmgBd.js +0 -1
  915. package/client/dist/assets/analytics-BWynXPEm.js +0 -1
  916. package/client/dist/assets/analytics-DGcUsQ44.js +0 -1
  917. package/client/dist/assets/analytics-GnSnpJ4W.js +0 -1
  918. package/client/dist/assets/analytics-TWgYaoO0.js +0 -1
  919. package/client/dist/assets/analytics-kJy6Tuko.js +0 -1
  920. package/client/dist/assets/atom-one-dark-qiGhVQxg.js +0 -1
  921. package/client/dist/assets/builder-B9gorTnT.js +0 -1
  922. package/client/dist/assets/builder-Bvw5s3Mi.js +0 -1
  923. package/client/dist/assets/builder-CL5l4dU3.js +0 -1
  924. package/client/dist/assets/builder-CVDTVrQX.js +0 -1
  925. package/client/dist/assets/builder-CpS9liE9.js +0 -1
  926. package/client/dist/assets/builder-DNctIL9Q.js +0 -1
  927. package/client/dist/assets/builder-De2NxX6o.js +0 -1
  928. package/client/dist/assets/builder-DeYT7Y-m.js +0 -1
  929. package/client/dist/assets/button-4FS1ZDTp.js +0 -1
  930. package/client/dist/assets/chat-D_I7nU5K.js +0 -1
  931. package/client/dist/assets/chevron-up-6EFqEHBj.js +0 -1
  932. package/client/dist/assets/chunk-OB3PAWPO-B1EMk45A.js +0 -3
  933. package/client/dist/assets/clsx-CjueKrWZ.js +0 -1
  934. package/client/dist/assets/code-B37GRg9C.js +0 -1
  935. package/client/dist/assets/code-BBOEZbf9.js +0 -1
  936. package/client/dist/assets/code-BRm-jcyx.js +0 -1
  937. package/client/dist/assets/code-CF7w62CR.js +0 -1
  938. package/client/dist/assets/code-CLuvJt2r.js +0 -1
  939. package/client/dist/assets/code-D0RCm59f.js +0 -1
  940. package/client/dist/assets/code-DaZ-ZwCT.js +0 -1
  941. package/client/dist/assets/code-iIHkGaCL.js +0 -1
  942. package/client/dist/assets/commands-0XjAftla.js +0 -1
  943. package/client/dist/assets/commands-BAWSYHjQ.js +0 -1
  944. package/client/dist/assets/commands-BBwowgiE.js +0 -1
  945. package/client/dist/assets/commands-BacjIZLN.js +0 -1
  946. package/client/dist/assets/commands-Bs62IAZ3.js +0 -1
  947. package/client/dist/assets/commands-CLPdh-Hh.js +0 -1
  948. package/client/dist/assets/commands-DlbFzgrp.js +0 -1
  949. package/client/dist/assets/commands-LjPSsi5F.js +0 -1
  950. package/client/dist/assets/common-Bdi0qN4S.js +0 -1
  951. package/client/dist/assets/common-Bhb9zN1P.js +0 -1
  952. package/client/dist/assets/common-BykKlZg1.js +0 -1
  953. package/client/dist/assets/common-CvnNNSJA.js +0 -1
  954. package/client/dist/assets/common-D5zk_mqq.js +0 -1
  955. package/client/dist/assets/common-DQNO_al5.js +0 -1
  956. package/client/dist/assets/common-Dax30Vmp.js +0 -1
  957. package/client/dist/assets/common-DkllpVSb.js +0 -1
  958. package/client/dist/assets/core-B3mKBIh5.js +0 -1
  959. package/client/dist/assets/dashboard-B1ndRHuC.js +0 -1
  960. package/client/dist/assets/dashboard-BX7KXiqA.js +0 -1
  961. package/client/dist/assets/dashboard-B_BSNxcN.js +0 -1
  962. package/client/dist/assets/dashboard-CCeFN7-V.js +0 -1
  963. package/client/dist/assets/dashboard-CRl0WtFJ.js +0 -1
  964. package/client/dist/assets/dashboard-XGdQ5mjw.js +0 -1
  965. package/client/dist/assets/dashboard-_oltA6Jd.js +0 -1
  966. package/client/dist/assets/dashboard-bAuf5KVk.js +0 -1
  967. package/client/dist/assets/dialog-DtdR05v1.js +0 -45
  968. package/client/dist/assets/dist-js-CJ_2XX1Y.js +0 -1
  969. package/client/dist/assets/event-Bt7f3wXe.js +0 -1
  970. package/client/dist/assets/explore-BG99VGpL.js +0 -1
  971. package/client/dist/assets/explore-C0TjprJW.js +0 -1
  972. package/client/dist/assets/explore-C2dgEo7q.js +0 -1
  973. package/client/dist/assets/explore-C8NDHbob.js +0 -1
  974. package/client/dist/assets/explore-CWWgzQGR.js +0 -1
  975. package/client/dist/assets/explore-CcQXpdtS.js +0 -1
  976. package/client/dist/assets/explore-DgBACn39.js +0 -1
  977. package/client/dist/assets/explore-DsXAgnmJ.js +0 -1
  978. package/client/dist/assets/file-text-C0blZHLh.js +0 -1
  979. package/client/dist/assets/formatDistanceToNow-NjPHBLfB.js +0 -1
  980. package/client/dist/assets/getTimezoneOffsetInMilliseconds-vJ7qUoqN.js +0 -1
  981. package/client/dist/assets/git-branch-yf6LE1Bw.js +0 -1
  982. package/client/dist/assets/index-BgbCbIua.css +0 -2
  983. package/client/dist/assets/index-Ce4yZtKf.js +0 -83
  984. package/client/dist/assets/integrations-BkpRUbvp.js +0 -1
  985. package/client/dist/assets/integrations-Bo8qbJf4.js +0 -1
  986. package/client/dist/assets/integrations-CmSrKzZb.js +0 -1
  987. package/client/dist/assets/integrations-DGtq26Rr.js +0 -1
  988. package/client/dist/assets/integrations-De38GFnQ.js +0 -1
  989. package/client/dist/assets/integrations-Dw6zdtb-.js +0 -1
  990. package/client/dist/assets/integrations-Dwl9KQp0.js +0 -1
  991. package/client/dist/assets/integrations-Refg_d2I.js +0 -1
  992. package/client/dist/assets/jira-B6OYw4CJ.js +0 -1
  993. package/client/dist/assets/jira-BTF6RaOe.js +0 -1
  994. package/client/dist/assets/jira-CEetIB2q.js +0 -1
  995. package/client/dist/assets/jira-CIzsZLw5.js +0 -1
  996. package/client/dist/assets/jira-Daw9tmpI.js +0 -1
  997. package/client/dist/assets/jira-FXr7u2lh.js +0 -1
  998. package/client/dist/assets/jira-LaNQn7yl.js +0 -1
  999. package/client/dist/assets/jira-api-Cabj-H0J.js +0 -1
  1000. package/client/dist/assets/job-time-BCL7wee9.js +0 -1
  1001. package/client/dist/assets/jobs-ARwD85B9.js +0 -1
  1002. package/client/dist/assets/jobs-BMF1w4WT.js +0 -1
  1003. package/client/dist/assets/jobs-CBfzGLwm.js +0 -1
  1004. package/client/dist/assets/jobs-CPjiluBY.js +0 -1
  1005. package/client/dist/assets/jobs-CQQd58pY.js +0 -1
  1006. package/client/dist/assets/jobs-De3EqaO0.js +0 -1
  1007. package/client/dist/assets/jobs-Du9-Ei9a.js +0 -1
  1008. package/client/dist/assets/jobs-qMHbnxwC.js +0 -1
  1009. package/client/dist/assets/layers-BCLTgHXO.js +0 -1
  1010. package/client/dist/assets/loader-circle-BqV9xYGf.js +0 -1
  1011. package/client/dist/assets/loop-layout-CyXj9223.js +0 -7
  1012. package/client/dist/assets/loops-B2PhQLKR.js +0 -1
  1013. package/client/dist/assets/loops-BqbF46st.js +0 -1
  1014. package/client/dist/assets/loops-CINnHbfI.js +0 -1
  1015. package/client/dist/assets/loops-D-3XhH04.js +0 -1
  1016. package/client/dist/assets/loops-DKkEEjZ_.js +0 -1
  1017. package/client/dist/assets/loops-DzWR5-v6.js +0 -1
  1018. package/client/dist/assets/loops-WyWDkhok.js +0 -1
  1019. package/client/dist/assets/loops-scD5fIBf.js +0 -1
  1020. package/client/dist/assets/mcp-6rMoZfEO.js +0 -1
  1021. package/client/dist/assets/mcp-BD8sL5mP.js +0 -1
  1022. package/client/dist/assets/mcp-BkcA3I5s.js +0 -1
  1023. package/client/dist/assets/mcp-CCpSelOh.js +0 -1
  1024. package/client/dist/assets/mcp-CUAN6ORK.js +0 -1
  1025. package/client/dist/assets/mcp-CqbRxRTE.js +0 -1
  1026. package/client/dist/assets/mcp-DP2YfVhO.js +0 -1
  1027. package/client/dist/assets/mcp-DUVQamDz.js +0 -1
  1028. package/client/dist/assets/narration-BEKMVxGm.js +0 -1
  1029. package/client/dist/assets/narration-CjLwGKap.js +0 -1
  1030. package/client/dist/assets/narration-DANWuGsW.js +0 -1
  1031. package/client/dist/assets/narration-DGeEDWiT.js +0 -1
  1032. package/client/dist/assets/narration-DJgpGwIP.js +0 -1
  1033. package/client/dist/assets/narration-DbHnz0qV.js +0 -1
  1034. package/client/dist/assets/narration-bZSsTZG8.js +0 -1
  1035. package/client/dist/assets/narration-i6aKJKEc.js +0 -1
  1036. package/client/dist/assets/nav--u7iPYlS.js +0 -1
  1037. package/client/dist/assets/nav-C5Jgfaby.js +0 -1
  1038. package/client/dist/assets/nav-CAna_Wpt.js +0 -1
  1039. package/client/dist/assets/nav-CCLqeyHo.js +0 -1
  1040. package/client/dist/assets/nav-Cf3c90Jk.js +0 -1
  1041. package/client/dist/assets/nav-DMYQaQjR.js +0 -1
  1042. package/client/dist/assets/nav-Df_PkZ9F.js +0 -1
  1043. package/client/dist/assets/nav-VyNGBJwj.js +0 -1
  1044. package/client/dist/assets/packet-8nn9RsU7.js +0 -1
  1045. package/client/dist/assets/packet-B0H15elv.js +0 -1
  1046. package/client/dist/assets/packet-BQvBgrwh.js +0 -1
  1047. package/client/dist/assets/packet-BR7mO0-a.js +0 -1
  1048. package/client/dist/assets/packet-BgcQ6q_K.js +0 -1
  1049. package/client/dist/assets/packet-D2s92Jnn.js +0 -1
  1050. package/client/dist/assets/packet-YbtcD1HS.js +0 -1
  1051. package/client/dist/assets/packet-c0Qj_9eX.js +0 -1
  1052. package/client/dist/assets/project-repositories-Cnnuj9Ia.js +0 -1
  1053. package/client/dist/assets/rotate-ccw-DalJAQQX.js +0 -1
  1054. package/client/dist/assets/settings-B1NV8Ow9.js +0 -1
  1055. package/client/dist/assets/settings-BQ8XFZeE.js +0 -1
  1056. package/client/dist/assets/settings-BRkxfBbO.js +0 -1
  1057. package/client/dist/assets/settings-C_CcU1dP.js +0 -1
  1058. package/client/dist/assets/settings-Cto9n0eL.js +0 -1
  1059. package/client/dist/assets/settings-Pyw8uYtL.js +0 -1
  1060. package/client/dist/assets/settings-b3HVCNNd.js +0 -1
  1061. package/client/dist/assets/settings-hdive4u6.js +0 -1
  1062. package/client/dist/assets/setup-Be485n2u.js +0 -1
  1063. package/client/dist/assets/setup-CKGUxKr-.js +0 -1
  1064. package/client/dist/assets/setup-Ck1Uwd7_.js +0 -1
  1065. package/client/dist/assets/setup-Cm774a6v.js +0 -1
  1066. package/client/dist/assets/setup-DIqMQpxt.js +0 -1
  1067. package/client/dist/assets/setup-DfCsoNFL.js +0 -1
  1068. package/client/dist/assets/setup-DkeE8mP0.js +0 -1
  1069. package/client/dist/assets/setup-xVntVaz1.js +0 -1
  1070. package/client/dist/assets/specs-Bqvtz2kz.js +0 -1
  1071. package/client/dist/assets/specs-CKes-kz6.js +0 -1
  1072. package/client/dist/assets/specs-CfXxPDNB.js +0 -1
  1073. package/client/dist/assets/specs-CyF9HuTI.js +0 -1
  1074. package/client/dist/assets/specs-DMj035Mt.js +0 -1
  1075. package/client/dist/assets/specs-DfIdoU5L.js +0 -1
  1076. package/client/dist/assets/specs-j5pGLQeU.js +0 -1
  1077. package/client/dist/assets/specs-xW5pkkB7.js +0 -1
  1078. package/client/dist/assets/spending-CQnrWiR3.js +0 -1
  1079. package/client/dist/assets/square-D0JTbRSR.js +0 -1
  1080. package/client/dist/assets/tauri-shell-DE6LfGPw.js +0 -2
  1081. package/client/dist/assets/terminal-BAzpHtpY.js +0 -1
  1082. package/client/dist/assets/terminal-C7dHeR3x.js +0 -1
  1083. package/client/dist/assets/terminal-CMla5Qsz.js +0 -1
  1084. package/client/dist/assets/terminal-CdNXH-n9.js +0 -1
  1085. package/client/dist/assets/terminal-Cw5bZsmV.js +0 -1
  1086. package/client/dist/assets/terminal-DFUP4eNv.js +0 -1
  1087. package/client/dist/assets/terminal-DGqljeK_.js +0 -1
  1088. package/client/dist/assets/terminal-cU70NodO.js +0 -1
  1089. package/client/dist/assets/tickets--tiSOCcn.js +0 -1
  1090. package/client/dist/assets/tickets-BUJ3DMWU.js +0 -1
  1091. package/client/dist/assets/tickets-C1WNPODq.js +0 -1
  1092. package/client/dist/assets/tickets-CDjhWmiE.js +0 -1
  1093. package/client/dist/assets/tickets-CLgPC3uO.js +0 -1
  1094. package/client/dist/assets/tickets-D41ZMQpf.js +0 -1
  1095. package/client/dist/assets/tickets-DEaQC06P.js +0 -1
  1096. package/client/dist/assets/tickets-kcMzbLCp.js +0 -1
  1097. package/client/dist/assets/trash-D8zYUmTg.js +0 -1
  1098. package/client/dist/assets/useDesktop-BjLT0_EE.js +0 -1
  1099. package/client/dist/assets/useRuntimeRuns-C97qEqMg.js +0 -1
  1100. package/client/dist/assets/useSharedWebSocket-Bj4LMp7b.js +0 -2
  1101. package/client/dist/assets/utils-BC4DHlz2.js +0 -1
  1102. package/docs/guide/en/getting-started/4-the-dashboard-tour.md +0 -48
  1103. package/docs/guide/es/getting-started/4-the-dashboard-tour.md +0 -48
  1104. package/server/dist/mobile/mobile-preview-channel.js +0 -179
  1105. package/server/dist/mobile/mobile-preview.js +0 -366
  1106. package/server/dist/modules/browser/domain/preview-origins.js +0 -117
  1107. package/server/dist/modules/browser/runtime/preview-targets.js +0 -80
  1108. /package/client/dist/assets/{atom-one-dark-B-oHczHB.css → DocView-B-oHczHB.css} +0 -0
  1109. /package/docs/guide/de/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
  1110. /package/docs/guide/en/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
  1111. /package/docs/guide/es/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
  1112. /package/docs/guide/fr/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
  1113. /package/docs/guide/it/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
  1114. /package/docs/guide/ja/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
  1115. /package/docs/guide/pt/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
  1116. /package/docs/guide/zh/getting-started/{3-adding-your-first-project.md → 4-adding-your-first-project.md} +0 -0
@@ -0,0 +1,35 @@
1
+ # Experimentar o projeto de exemplo
2
+
3
+ Queres ver uma spec tornar-se uma alteração revista antes de apontar o specrails ao teu próprio código? O **projeto de exemplo** é um pequeno jogo web do galo com três specs já escritas. Demora alguns minutos e termina num **pacote de revisão** real.
4
+
5
+ ## Começar
6
+
7
+ No ecrã de boas-vindas, clica em **Experimente num projeto de exemplo** (ao lado de **Adicionar o teu primeiro projeto**). O diálogo diz-te, antes de acontecer qualquer coisa:
8
+
9
+ - **O que é criado**: um pequeno jogo web no seu próprio repositório git, com três specs já no teu quadro.
10
+ - **Onde**: por defeito `~/Specrails Samples/tic-tac-toe`, dentro da tua pasta pessoal. Podes mudar a pasta; uma pasta existente nunca é substituída.
11
+ - **Quanto custaria uma execução**: uma estimativa como «≈ $0,30–$1 · cerca de 3–5 min». Só aparece em dólares quando o teu fornecedor fatura por utilização. Com um plano de subscrição indica que não há custo extra, e com um motor local não há custo de API.
12
+
13
+ Criar o exemplo não custa nada e não executa nada. Clica em **Criar projeto de exemplo** e chegas ao Quadro.
14
+
15
+ ## Os três passos
16
+
17
+ Um pequeno cartão guia aponta para o Quadro real, passo a passo. Podes fechá-lo a qualquer momento; reduz-se a uma pílula **Projeto de exemplo** de onde **Mostrar guia** o traz de volta.
18
+
19
+ 1. **A spec.** As três specs foram escritas para ti. Cada uma diz o que construir e como saber que está concluída.
20
+ 2. **O rail.** Clica em **Executar a primeira spec**. O exemplo está preparado para ser barato e limitado: modo rápido, o modelo mais barato disponível e um limite suave por execução (a execução pára e pergunta antes de ultrapassar $1). Se tiveres um motor local configurado, podes escolhê-lo, sem custo de API.
21
+ 3. **A revisão.** Nada é integrado sozinho. Quando a execução termina, um **pacote de revisão** mostra o que mudou e deixa-te aceitar ou descartar.
22
+
23
+ ## Nenhum fornecedor de IA pronto?
24
+
25
+ Antes de te oferecer a execução, o specrails verifica se há um fornecedor instalado e com sessão iniciada. Se não houver, vês **Ver uma execução gravada**: a repetição de uma execução concluída que termina num pacote de revisão. Está claramente identificada como gravação; nada corre e nada é cobrado. Instala um fornecedor ou inicia sessão e escolhe **Verificar novamente** para passar a uma execução real.
26
+
27
+ ## Depois, o teu próprio projeto
28
+
29
+ O guia termina com **Agora adiciona o teu próprio projeto**. Quando terminares com o exemplo, **Remover exemplo** remove-o com um clique. A pasta fica no disco, a menos que marques **Eliminar também a pasta do exemplo**, o que não pode ser desfeito.
30
+
31
+ ## Rever o tour da plataforma
32
+
33
+ O tour já não está no ecrã de boas-vindas. Abre **Docs** e escolhe **Rever o tour**, ou abre a paleta de comandos e escreve «Rever o tour». Também está em **Definições ▸ Aparência**.
34
+
35
+ Seguinte: [Adicionar o teu primeiro projeto](adding-your-first-project).
@@ -37,11 +37,15 @@ Uma faixa fina percorre o fundo da janela. É pequena, mas prática:
37
37
  - **Gasto total** (à direita) — um total acumulado do que gastou, para que o custo esteja sempre a um relance de distância.
38
38
  - **Botão do terminal** (à direita ao fundo) — abre o painel de terminal integrado. Carregue em **Cmd+J** (macOS) ou **Ctrl+J** (Windows/Linux) para o alternar a qualquer momento. É uma shell completa, aberta diretamente na pasta do seu projeto.
39
39
 
40
- ## Alguns atalhos úteis
40
+ ## Alguns atalhos úteis {#shortcuts}
41
41
 
42
- - **Cmd/Ctrl+B** — afixar ou recolher as barras laterais.
42
+ - **Cmd/Ctrl+B** — afixar ou recolher a barra lateral esquerda; **Option+Cmd+B** (**Ctrl+Alt+B**) faz o mesmo com a direita.
43
43
  - **Cmd/Ctrl+J** — alternar o painel de terminal.
44
- - **Cmd/Ctrl+K** — abrir a pesquisa.
44
+ - **Cmd/Ctrl+K** — a paleta de comandos: pesquise missões, projetos e jobs e **execute ações**. Digite um verbo ("nova", "lançar", "mover", "trocar") ou comece com **>** para listar ações: Nova spec (também em Explorar), Lançar ou Mover uma spec, Abrir sua revisão, Entregar ou Pausar um Flow, Nova missão, Trocar tema, Alternar entre os modos Missão e Quadro, Abrir as configurações do app ou do projeto em uma seção, Executar um loop, alternar as barras laterais, Voltar ou Avançar, Desfazer a última alteração e Excluídos recentemente. Ações que precisam de uma escolha (um rail, um status, um tema, uma seção) abrem uma segunda página; **Backspace** com a pesquisa vazia volta. Cada ação mostra seu atalho de teclado, então a paleta ensina as teclas. Ela só oferece o que funciona onde você está e segue as mesmas regras dos botões (uma spec que não pode ser lançada não é oferecida). Com a pesquisa vazia, lista suas **Ações recentes** e **Lugares recentes**.
45
+ - **Cmd+[ / Cmd+]** (**Alt+← / Alt+→** no Windows/Linux), os botões **← →** da barra de título ou os botões voltar/avançar do mouse — voltam ou avançam pelos lugares onde você esteve: specs, missões, jobs, projetos e painéis em tela cheia. Clique com o botão direito (ou pressione e segure) um botão para ver os últimos lugares.
46
+ - **Cmd+Shift+I** (**Ctrl+Alt+I** no Windows e no Linux) ou o botão **Pendências** na barra de título — a lista **Pendências**: tudo o que espera por você em todos os seus projetos, numa só lista agrupada por projeto. Reúne revisões prontas para decidir, perguntas que um agente está aguardando, execuções que falharam ou ficaram bloqueadas, execuções pausadas pelo orçamento diário e atualizações do Jira que não puderam sincronizar. Cada linha tem a ação principal ali mesmo (**Abrir revisão**, **Responder**, **Retomar**, **Tentar novamente**) mais **Adiar** (1 hora ou até amanhã) e **Concluído**. Um item adiado ou concluído volta sozinho se o estado dele mudar. O botão mostra quantos itens aguardam e uma notificação de limite do provedor abre a lista. A lista também é um link (`?inbox=1`) e uma ação da paleta de comandos.
47
+ - **M** — com um cartão de spec em foco no quadro, abre um seletor para o mover para um estado ou um rail, o equivalente de arrastar e largar com o teclado. Funciona também com uma seleção múltipla, e a paleta oferece-o como **Mover a spec em foco…**.
48
+ - **?** — a folha de atalhos. Digite na caixa de pesquisa para filtrar os atalhos e encontrar páginas e seções deste guia, que abrem no guia sem sair da sua tela. Os pequenos ícones **ⓘ** e os links **Saiba mais** ao lado das configurações, dos rails, do Flow, do seletor de contexto e dos orçamentos abrem o guia na seção correspondente do mesmo modo.
45
49
 
46
50
  ## Para onde ir a seguir
47
51
 
@@ -0,0 +1,34 @@
1
+ # Busca universal (⌘K)
2
+
3
+ Pressione **⌘K** (**Ctrl+K** no Windows e no Linux) para buscar quase tudo no Specrails em um só lugar: missões, specs, logs de jobs, arquivos, configurações e este guia. Digite uma consulta comum para buscar missões, projetos, specs e jobs recentes como sempre, ou comece com um **prefixo** para buscar em uma única fonte.
4
+
5
+ ## Prefixos
6
+
7
+ | Digite | Busca | Enter abre |
8
+ | --- | --- | --- |
9
+ | `#` | Specs: título, resumo, descrição, etiquetas, notas de fora do escopo, adendos e comentários. `#12` encontra a spec 12. | A spec |
10
+ | `@` | Missões: título e conteúdo da conversa. | A missão |
11
+ | `/` | Configurações (do Desktop e do projeto) pelo nome ou pelo jeito que você as chamaria. | A janela de configurações nesse bloco, visível e com foco |
12
+ | `f:` | Arquivos do projeto, por nome ou caminho. | O arquivo no explorador de código |
13
+ | `log:` | Logs de jobs: comandos, nomes de loops, títulos de fases e diagnósticos de falha. | O job |
14
+ | `?` | Este guia: títulos de páginas e cabeçalhos. | O guia nesse cabeçalho |
15
+
16
+ Ao digitar um prefixo, ele vira uma **etiqueta** na caixa de busca e a caixa guarda só a sua consulta. Pressione **Backspace** com a caixa vazia (ou clique no × da etiqueta) para remover o escopo. Com a caixa vazia, a paleta lista os prefixos sob a caixa; clique em um para começar. `>` continua listando ações, como antes.
17
+
18
+ ## Destaques
19
+
20
+ Os resultados mostram um trecho curto em torno da primeira ocorrência, com o texto correspondente destacado. A busca ignora maiúsculas e acentos, então `revisao` encontra «Revisão».
21
+
22
+ ## Configurações
23
+
24
+ `/` conhece os principais blocos de configurações, no seu idioma: tema, idioma, editor, orçamentos, notificações, webhooks, atualizações, branch, ambiente, telemetria, regras e mais. As configurações do projeto aparecem quando há um projeto aberto. Escolha uma e a janela certa abre nesse bloco. Sem prefixo, uma correspondência forte (três ou mais caracteres) acrescenta até três configurações aos resultados normais. `/budget` também encontra o painel de Orçamento (limites, projeção, e se…), onde ficam os limites semanal e mensal. Um comando com barra, como `/implement`, aparece sob as configurações, em um grupo próprio, então o prefixo `/` nunca o esconde.
25
+
26
+ ## Logs de jobs
27
+
28
+ `log:` busca em um índice compacto, não na saída bruta de uma execução: o comando, o nome do loop, os títulos das fases e o diagnóstico curto de uma execução que falhou, foi bloqueada ou travou. Nunca guarda fluxos de tokens nem a saída de ferramentas, então continua pequeno e rápido. É mantido por projeto e guarda as execuções mais recentes.
29
+
30
+ ## Bom saber
31
+
32
+ - `#`, `f:` e `log:` buscam no projeto ativo; abra um projeto primeiro.
33
+ - O escopo de arquivos respeita as regras de exclusão do explorador de código.
34
+ - Cada grupo mostra só os melhores resultados; refine a consulta para restringir.
@@ -6,15 +6,17 @@ Abra-a a partir da barra lateral direita (tem a etiqueta **Analytics**). Tudo o
6
6
 
7
7
  ## O que conta como gasto
8
8
 
9
- O Specrails regista cinco tipos de atividade de IA, a que chamamos *superfícies*. Cada uma tem uma cor consistente em todos os gráficos, para a identificar num relance:
9
+ O Specrails etiqueta cada execução de IA com uma *superfície*: a parte da app que gerou o gasto. As superfícies principais têm uma cor fixa e um chip de filtro próprio, para que as identifique num relance:
10
10
 
11
- - **Job** — um rail de pipeline a correr Architect → Developer → Reviewer → Ship.
11
+ - **Job** — um job do pipeline em fila (Architect → Developer → Reviewer → Ship), incluindo as execuções Freestyle.
12
+ - **Loop** — cada passo de IA de uma execução de loop. Os rails correm como loops por omissão, por isso a maior parte do gasto dos rails aparece aqui.
12
13
  - **Quick spec** — uma spec gerada pelo caminho rápido de Add Spec.
13
14
  - **Explore spec** — uma conversa de Explore em que dá forma a uma spec à medida que conversa.
14
15
  - **AI edit** — um refinamento assistido por IA sobre um agente ou ficheiro.
15
- - **File summary** — os resumos em linguagem simples que dão vida ao Code explorer.
16
+ - **SMASH** — a divisão de uma spec épica em specs mais pequenas.
17
+ - **File summary** — os resumos em linguagem simples e as histórias de ficheiros que dão vida ao Code explorer.
16
18
 
17
- Há um par de coisas que, propositadamente, *não* são registadas: tanto o chat lateral como o assistente de configuração arrancam CLIs de IA, mas nunca aparecem nos seus gastos. Assim, o painel reflete trabalho real e repetível, em vez de conversa ocasional.
19
+ Também são registadas superfícies menores, sem chip próprio: o chat da barra lateral, o lançador de specs do OpenSpec, as propostas de specs, o Agent Studio e o chat de configuração antigo. As missões fixadas ao projeto também contam para o seu gasto. Nada que execute uma CLI de IA fica de fora, por isso os totais refletem toda a atividade de IA do projeto.
18
20
 
19
21
  ## Ler o painel
20
22
 
@@ -76,3 +78,15 @@ As exportações respeitam os filtros de período e superfície que tiver aplica
76
78
  ## Sempre em direto
77
79
 
78
80
  Não precisa de atualizar a página. Quando uma nova invocação é registada em qualquer ponto do projeto, o painel aberto volta a carregar-se discretamente pouco depois, para que o medidor de consumo acompanhe o trabalho à medida que vai terminando.
81
+
82
+ ## Orçamentos diários {#daily-budget}
83
+
84
+ Defina um orçamento diário para limitar quanto um dia pode custar. Todos os limites (diário, semanal, mensal e por execução) são editados em um único lugar: **Análises → Orçamento**. **Configurações → Avançado** e **Configurações do projeto → Orçamento** apenas mostram o limite diário atual, com um botão **Abrir Orçamento** que leva até lá.
85
+
86
+ Quando o gasto registrado do dia atinge um orçamento, a fila se pausa sozinha, os rails e as execuções de loops se recusam a iniciar com *Orçamento diário atingido*, e uma execução de loop em andamento para entre etapas, pausada pelo orçamento. Aumente ou remova o orçamento, ou espere a redefinição diária, e depois retome.
87
+
88
+ O orçamento do projeto conta o seu dia local; o de todo o app conta o dia UTC. O alerta de custo por job é uma configuração separada.
89
+
90
+ **Limites semanais, mensais e por execução.** Os limites mais longos funcionam do mesmo jeito. Abra **Análises → Orçamento** para definir um limite **semanal** e um **mensal**, por projeto e para o app inteiro, e um **limite flexível por execução** (*pausar e perguntar em $X*). As semanas começam na segunda-feira e os meses no dia 1, no seu horário local. Um limite semanal ou mensal pausa as filas, recusa inícios e deixa em pausa os loops em andamento exatamente como o orçamento diário; aumente-o ou remova-o ali, ou espere o reinício. Quando o custo informado de uma execução chega ao limite por execução, ela pausa, e **Retomar** pergunta se deve continuar sem o limite ou aumentá-lo. Atingir qualquer limite também adiciona um item **Aumentar limite** à caixa de entrada.
91
+
92
+ O painel de Orçamento mostra hoje, esta semana e este mês em relação a cada limite. A **projeção** para o fim do mês é uma estimativa (a média dos últimos 14 dias completos vezes os dias restantes, mais o que você já gastou) e nunca é somada ao gasto faturado. **E se** recalcula os últimos 30 dias de uso de tokens registrado com outro modelo, pela tabela de preços do app, e diz *Sem preço* para um modelo sem preço. Em um plano de assinatura não há custo em dólares por uso, então o painel mostra turnos e limites do plano no lugar de dólares.
@@ -1,4 +1,4 @@
1
- # O terminal integrado
1
+ # O terminal integrado {#integrated-terminal}
2
2
 
3
3
  O Specrails tem um terminal a sério mesmo lá dentro — o painel que sobe a partir do fundo da janela, tal como o do VS Code ou do Cursor. Corre a sua shell real, na pasta real do seu projeto, para poder correr `git`, `npm`, testes ou o que precisar sem sair da aplicação.
4
4
 
@@ -1,4 +1,4 @@
1
- # Code explorer
1
+ # Code explorer {#code-explorer}
2
2
 
3
3
  A secção **Code** dá-lhe uma janela amigável e só de leitura para o seu repositório — pensada especialmente para quem quer perceber o que a IA tem andado a construir sem viver dentro de um editor. Tem uma árvore de ficheiros à esquerda, um visualizador de código à direita e, por cima do código, um resumo em linguagem simples do que cada ficheiro faz na prática.
4
4
 
@@ -1,4 +1,4 @@
1
- # Providers de IA (Claude, Codex)
1
+ # Providers de IA (Claude, Codex) {#ai-providers}
2
2
 
3
3
  ## Os dois providers
4
4
 
@@ -1,4 +1,4 @@
1
- # Plugins (Integrações)
1
+ # Plugins (Integrações) {#plugins}
2
2
 
3
3
  A secção **Integrações** é um marketplace por projeto de extras opcionais que ampliam o que a IA consegue fazer. Cada projeto decide de forma independente que plugins quer — instalar um plugin num projeto nunca afeta outro.
4
4
 
@@ -15,7 +15,7 @@ Todas as escritas de retorno passam por uma fila de saída (outbox) durável e r
15
15
 
16
16
  ## Conectar um quadro
17
17
 
18
- Conecta-se a partir da página **Definições** de um projeto (há também um passo opcional "Configurar Jira" no final do assistente de Adicionar Projeto). O assistente de ligação guia-o através de:
18
+ Conecta-se a partir da página **Plugins** na barra lateral esquerda: clique em **Instalar** no cartão do Jira e escolha o projeto. O assistente de ligação guia-o através de:
19
19
 
20
20
  1. **Testar** — introduza o URL e as credenciais do seu Jira, e o Specrails verifica a ligação.
21
21
  2. **Escolher um projeto** — escolha com que projeto Jira sincronizar.
@@ -52,7 +52,7 @@ Por isso pode experimentar à vontade — ligue, corra uns quantos rails, deslig
52
52
 
53
53
  ## No dia a dia
54
54
 
55
- Uma vez conectada, a página de Definições do projeto mostra um **cartão de ligação** onde pode:
55
+ Uma vez conectada, o cartão do Jira na página **Plugins** passa a **Gerir**. Escolha aí o projeto para abrir o seu **cartão de ligação**, onde pode:
56
56
 
57
57
  - **Sincronizar agora** — forçar um polling imediato em vez de esperar pelo temporizador.
58
58
  - **Tentar dead-letters de novo** — voltar a correr quaisquer escritas de retorno que tenham ficado presas.
@@ -69,4 +69,4 @@ As specs apoiadas no Jira mostram um **selo com a chave Jira** (como `PROJ-123`)
69
69
 
70
70
  ## Desligar
71
71
 
72
- Se alguma vez quiser recuar por completo, basta **Desligar** nas Definições. As suas specs voltam ao comportamento apenas local, e os metadados do Jira ficam simplesmente sem uso — nada é destruído.
72
+ Se alguma vez quiser recuar por completo, basta **Desligar** no cartão de ligação. As suas specs voltam ao comportamento apenas local, e os metadados do Jira ficam simplesmente sem uso — nada é destruído.
@@ -1,4 +1,4 @@
1
- # A app companion para telemóvel
1
+ # A app companion para telemóvel {#mobile-companion}
2
2
 
3
3
  O Specrails tem uma app companion para telemóvel para que possa ficar de olho nos seus rails enquanto está longe da secretária — ver trabalhos a correr, vê-los terminar e manter-se a par sem estar sentado em frente ao painel.
4
4
 
@@ -1,4 +1,4 @@
1
- # Controlar o Specrails a partir de qualquer IA (servidor MCP)
1
+ # Controlar o Specrails a partir de qualquer IA (servidor MCP) {#mcp-server}
2
2
 
3
3
  > **For agents (English):** use the [current connection runbook](../../../agents/mcp.md) for Claude and Codex. It includes verified bridge discovery, registration and read-only checks.
4
4
 
@@ -33,6 +33,8 @@ O agente pode mexer na aplicação inteira, então você decide quanta liberdade
33
33
 
34
34
  Comece em **Observa** e suba o nível apenas quando quiser que o agente aja. Se ele tentar algo acima do nível atual, ele para e diz exatamente qual nível ativar — nunca contorna o limite. Isso é separado dos níveis de Ajustes ▸ MCP, que regem os assistentes *externos*; o nível aqui é só para este agente interno da aplicação.
35
35
 
36
+ Subir o nível **para Autônomo** nunca acontece com um só toque: Shift+Tab a partir de Opera mostra um aviso com **Mudar para Autônomo**, e um novo Shift+Tab volta para Observa. Baixar o nível é sempre imediato.
37
+
36
38
  ## Algumas coisas que você pode pedir
37
39
 
38
40
  Quando estiver em **Opera**, experimente:
@@ -47,16 +49,21 @@ Quando estiver em **Opera**, experimente:
47
49
 
48
50
  As respostas chegam de forma fluida e já formatadas (títulos, tabelas, listas), cada uma com um pequeno botão de **copiar**. Uma etiqueta de status embaixo mostra o que o agente está fazendo agora — *Pensando…*, *MCP · jobs*, *Terminal* — para que você sempre saiba o estado dele.
49
51
 
52
+ Os blocos de código mostram a linguagem e têm o próprio botão de **copiar**. Se você rolar para cima enquanto o agente ainda escreve, a pílula **Novas mensagens** aparece acima da caixa — clique nela para voltar à resposta mais recente.
53
+
50
54
  ## Detalhes práticos
51
55
 
52
56
  - **Super specs a partir de uma conversa.** Peça ao agente para *moldar* uma spec com você em vez de gerá-la de uma vez: ele lê primeiro o código real, faz algumas perguntas e mostra o rascunho em evolução como um cartão ao vivo dentro da conversa. Quando você diz sim, ele cria a spec e — por padrão — a enriquece em segundo plano com uma **Contract Layer** (caminhos de arquivo exatos, formas de dados, invariantes) para que os agentes que implementam não improvisem. Diga "sem contract layer" para pular o enriquecimento.
53
57
  - **Clique no que ele menciona.** Em uma missão fixada a um projeto, os números de spec (`#12`) e os ids de job/execução nas respostas do agente são chips clicáveis: uma spec abre o modal de detalhe do quadro e um id de job abre a visão do job ao vivo. Se a referência não existir mais, você verá um aviso discreto de "não encontrado".
54
- - **O cartão de implementação, sempre à vista.** Quando o agente implementa specs, um cartão ao vivo acompanha o trabalho — e enquanto ele precisar de algo de você (criar a PR, publicá-la, tentar de novo, descartar) fica **fixado logo acima da caixa de mensagem**, por mais que a conversa role; no lugar dele no histórico aparece um marcador discreto de "fixado acima". Vários cartões ativos se empilham como pequenos chips (clique em um para trazê-lo à frente), e um chevron minimiza o cartão para uma barra fina. Quando a PR é publicada — ou o trabalho é mesclado ou descartado — o cartão volta ao seu lugar no histórico da conversa.
58
+ - **Uma faixa para as suas execuções.** Quando o agente lança trabalho, uma única faixa logo acima da caixa de mensagem o acompanha: o que a execução está fazendo, em palavras simples ("Escrevendo a spec a partir das suas alterações"), quantas execuções terminaram, o tempo e o custo real até agora (`—` até o provedor faturar). Quando uma execução precisa de você (criar a PR, tentar de novo, voltar ao Flow), a faixa avisa com um ícone e palavras e oferece essa única ação; clique na faixa para abrir o cartão completo da execução logo acima (Esc o fecha). Com várias execuções, a faixa mostra primeiro a que precisa de você e um pequeno seletor ("Rail 1 · Rail 2 · +1"). A conversa guarda só o que aconteceu ("Iniciado em Rail 1", "Rail 1 falhou: …", "Entregue: PR #812"), e cada linha abre a sua execução. As missões que aguardam a sua decisão mostram um ponto na lista de missões. As ações que iniciam uma nova execução paga (**Relançar**, **Recuperar e tentar novamente**) ou que outras pessoas veem (Criar PR, Publicar) nunca disparam a partir da faixa: ela abre o cartão com o foco nesse botão, para que você confirme ali.
59
+ - **A faixa pelo teclado.** **⌥R** (**Alt+R** no Windows/Linux) pula da caixa de mensagem para a faixa da missão em que você está; pressione de novo para mostrar ou ocultar os detalhes da execução, e **Esc** leva você de volta para onde estava. Fora de um campo de texto, **⌥[** e **⌥]** alternam entre execuções. Com a faixa em foco, **P** pausa ou retoma um Flow e **H** o passa a um rail; essas letras não fazem nada em outro lugar. Pressione **?** para ver a lista completa.
55
60
  - **Histórico de prompts.** Com a caixa vazia, pressione **↑**/**↓** para percorrer o que você perguntou antes (mostrado esmaecido enquanto rola); comece a digitar para editar, ou pressione Enter para enviar.
56
61
  - **Edite a fila.** Enviou mais enquanto o agente estava ocupado? Enquanto houver mensagens na fila, **↑**/**↓** percorre *essas* mensagens: a caixa mostra a selecionada, você a edita ali mesmo e **Enter a salva de volta na fila** (Esc cancela; seu rascunho não enviado volta intacto).
62
+ - **Responda com uma tecla.** Quando o agente oferece opções, cada chip tem um número: pressione **⌥1**…**⌥9** (**Alt+1**…**Alt+9** no Windows/Linux) com a caixa vazia para escolher uma.
63
+ - **Desfaça a exclusão de uma mensagem na fila.** Ao excluir uma mensagem da fila, **Desfazer** aparece por alguns segundos e a devolve à fila.
57
64
  - **Minimize sem perder nada.** Clique no ✕ para devolver o painel à bolha — a conversa continua rodando. Reabra e você chega na mensagem mais recente; nada é redigitado.
58
65
  - **Nova conversa.** O botão **+** inicia um fio limpo; o histórico vive no nível da aplicação, acima de qualquer projeto individual.
59
- - **Troque de missão.** O seletor de missões ao lado do seletor de projeto lista suas conversas da mais recente para a mais antiga — um ponto pulsante marca aquelas em que o agente ainda está trabalhando, e um pequeno selo conta as mensagens na fila. A busca aparece quando a lista passa de oito, e o ícone de lixeira de cada linha exclui uma missão após uma confirmação rápida em linha — mesmo uma em andamento (ele avisa primeiro e depois para o agente).
66
+ - **Troque de missão.** O seletor de missões ao lado do seletor de projeto lista suas conversas da mais recente para a mais antiga — um ponto pulsante marca aquelas em que o agente ainda está trabalhando, e um pequeno selo conta as mensagens na fila. A busca aparece quando a lista passa de oito, e o ícone de lixeira de cada linha exclui uma missão na hora e mostra **Desfazer** (ou pressione **⌘Z**) por alguns segundos; depois a missão espera 30 dias em **Excluídos recentemente**, nas configurações do projeto. Uma missão em que o agente ainda está trabalhando pergunta antes, porque parar o agente não pode ser desfeito.
60
67
  - **Encontre uma missão de qualquer lugar.** Pressione **⌘K** (ou o botão **Pesquisar** da barra lateral no modo Agente) e digite qualquer fragmento de que se lembre — uma palavra do título *ou* do que foi dito lá dentro. As missões coincidem na hora por título a partir da memória e, um instante depois, chegam as coincidências por conteúdo com o trecho destacado, mais o projeto fixado e quando teve atividade pela última vez. No modo Agente as missões são o primeiro grupo; no quadro ficam logo depois de Projetos. Enter abre a missão.
61
68
 
62
69
  ## Cards de lançamento e cards de execução
@@ -69,10 +76,10 @@ As respostas chegam de forma fluida e já formatadas (títulos, tabelas, listas)
69
76
 
70
77
  ## Subagentes
71
78
 
72
- Alguns provedores podem distribuir partes de uma tarefa para **subagentes**: ajudantes que trabalham em paralelo e continuam depois que o agente responde. Os subagentes vêm **desativados por padrão** porque multiplicam o custo de um pedido.
79
+ Alguns provedores podem distribuir partes de uma tarefa para **subagentes**: ajudantes que trabalham em paralelo e continuam depois que o agente responde. Os subagentes vêm **ativados por padrão**; desative-os por projeto se quiser conter o custo, porque multiplicam o custo de um pedido.
73
80
 
74
- - **Ative por projeto.** Abra **Configurações → Subagentes** do projeto e ative **Permitir subagentes neste projeto**. Vale para missões, exploração e refinamentos do projeto; os pipelines de Implement nunca são afetados. Missões sem projeto seguem **Configurações do app → Provedores de IA → Permitir subagentes em missões sem projeto**.
75
- - **Escolha quem os executa.** Em **Executar sub-agentes com**, a opção padrão **Igual ao agente da missão** deixa o próprio CLI da missão iniciá-los nativamente: é o mais rápido, e eles compartilham o cache de prompt. Escolha um provedor, modelo e esforço para combinar provedores — por exemplo, uma missão em Codex com subagentes em Claude. Missões que já usam esse provedor continuam nativas com esse modelo; com outro provedor, o Specrails inicia cada subagente por conta própria, que começa a frio e pode custar mais, mas dá mais controle e mostra o custo real de cada um. O Specrails pede confirmação antes da troca, e esses subagentes exibem um selo do provedor na missão.
81
+ - **Desative por projeto.** Abra **Configurações → Subagentes** do projeto e desative **Permitir subagentes neste projeto**. Vale para missões, exploração e refinamentos do projeto; os pipelines de Implement nunca são afetados. Missões sem projeto seguem **Configurações do app → Provedores de IA → Permitir subagentes em missões sem projeto**.
82
+ - **Escolha quem os executa.** Em **Executar subagentes com**, a opção padrão **Igual ao agente da missão** deixa o próprio CLI da missão iniciá-los nativamente: é o mais rápido, e eles compartilham o cache de prompt. Escolha um provedor, modelo e esforço para combinar provedores — por exemplo, uma missão em Codex com subagentes em Claude. Missões que já usam esse provedor continuam nativas com esse modelo; com outro provedor, o Specrails inicia cada subagente por conta própria, que começa a frio e pode custar mais, mas dá mais controle e mostra o custo real de cada um. O Specrails pede confirmação antes da troca, e esses subagentes exibem um selo do provedor na missão.
76
83
  - **Acompanhe o trabalho.** Os agentes iniciados por uma resposta aparecem como uma linha compacta abaixo dela. Ela fica aberta enquanto trabalham e, quando todos terminam, se recolhe num resumo com o tempo e os tokens totais. Expanda uma linha para ler o resultado e o custo, ou acompanhar a atividade ao vivo. Cada lançamento fica no seu ponto da conversa, então os seguintes nunca se misturam com os anteriores. Pare um agente em execução pela linha dele, ou todos pela linha de resumo.
77
84
  - **O agente continua sozinho.** Quando os agentes em segundo plano terminam, o agente continua e publica o que encontraram, marcado como *Continuou após os agentes em segundo plano*.
78
85
  - **Mudar a configuração é seguro.** Uma missão com agentes em execução aplica a mudança quando eles terminam; ela avisa e oferece **Parar agentes e aplicar agora**.
@@ -0,0 +1,69 @@
1
+ # Flow: construir primeiro, spec depois {#flow-mode}
2
+
3
+ O Flow é uma forma de construir com um agente quando você ainda não sabe exatamente o que quer. Você conversa com o agente na sua missão, ele escreve e executa código de verdade no próprio branch do Flow (uma cópia à parte do seu projeto) e, quando o resultado estiver certo, você clica em **Passar a um rail**: um rail assume suas alterações, deriva a spec e executa a verificação, a revisão e a entrega de sempre.
4
+
5
+ O Implement serve para delegar um trabalho que você já sabe descrever. O Flow serve para descobri-lo.
6
+
7
+ ## Como um Flow começa
8
+
9
+ Você nunca precisa pedir o Flow pelo nome. Quando você descreve algo exploratório ou visual ("quero experimentar…", "não sei como deve ficar"), a missão mostra um cartão com dois caminhos:
10
+
11
+ - **Flow**: construir junto com o agente agora; a spec vem no fim.
12
+ - **Spec + Implement**: combinar primeiro uma spec com o agente e depois passá-la a um rail.
13
+
14
+ Os dois caminhos têm o mesmo peso e aparecem sempre na mesma ordem: nenhum é recomendado, quem escolhe é você. Em **Por que o agente pergunta**, o agente explica em uma frase o que o levou a perguntar, e não insiste, seja qual for o caminho escolhido ou se você clicar em **Agora não**.
15
+
16
+ Escolher o Flow abre uma confirmação: o Specrails cria uma cópia à parte do projeto no próprio branch do Flow, onde o agente pode escrever código, e seu branch principal não é alterado. Clique em **Iniciar Flow**. No board aparece uma spec provisória com a etiqueta **Em Flow** (clique nela para voltar à missão).
17
+
18
+ Se o seu Specrails Core ainda não consegue executar o Flow, o botão fica desativado e o cartão lista o que falta. Normalmente basta atualizar o Specrails Core.
19
+
20
+ ## Começar um Flow a partir de uma spec existente
21
+
22
+ Qualquer spec pode ser construída em Flow, não só uma ideia nova. Flow e Implement continuam sendo duas formas iguais de trabalhar nela:
23
+
24
+ - no quadro, clique com o botão direito numa spec e escolha **Começar em Flow** (ao lado de arrastá-la para um rail); no detalhe da spec, **Começar em Flow** fica ao lado de **Mover para rail**;
25
+ - numa missão, quando você pede para implementar uma spec sem citar um rail, o agente mostra o mesmo cartão de dois caminhos para essa spec: **Flow** trabalha nela com você e **Spec + Implement** a lança num rail;
26
+ - um cartão de lançamento em rail com uma única spec também oferece **Começar em Flow** ao lado do lançamento.
27
+
28
+ A própria spec fica **Em Flow**: nenhuma spec provisória é criada e o primeiro turno do agente recebe a spec (critérios de aceitação, Contract Layer, itens fora do escopo e addenda abertos). Iniciado pelo quadro, o Flow abre na missão da própria spec ou numa missão nova com o nome da spec. Num projeto com vários repositórios Git, quando a spec não indica exatamente um deles, um pequeno diálogo pergunta antes onde o Flow é executado: só aparecem os repositórios Git, o repositório da spec (ou, se não houver, o principal) vem pré-selecionado e as setas mudam a escolha. **Começar em Flow** fica desativado, com o motivo ao passar o mouse, quando a spec já está em Flow, concluída ou cancelada, está num rail ou o Flow não está disponível.
29
+
30
+ **Descartar** devolve a spec exatamente como estava, com o status anterior: sua spec nunca é apagada. Quando o Flow é entregue, a spec é reescrita a partir do que foi construído e, antes, o texto original fica guardado como comentário, **Original spec before Flow**, para que nada se perca. Uma spec já vinculada ao Jira atualiza a mesma issue e a move para o status mapeado para revisão; nenhuma segunda issue é criada.
31
+
32
+ ## Enquanto você está em Flow
33
+
34
+ O modo Flow aparece onde você olhar, com a cor própria do Flow: o compositor mostra um chip **Flow** ao lado do de autonomia e a dica *Diga ao agente o que mudar neste Flow…*; o título da missão indica **Em Flow**, assim como a linha dela na lista de missões. A conversa marca onde você entrou e saiu do Flow, e as respostas do agente escritas em Flow levam uma pequena marca **Flow** ao lado do horário.
35
+
36
+ A faixa logo acima do compositor mostra o Flow em uma linha curta: o estado, **Flow · 7 arquivos**, **Pausar Flow** e a ação principal, **Passar a um rail**. Quando uma ação não está disponível (o Flow ainda está salvando, há outra ação em andamento), passar o mouse sobre ela explica o motivo. Abra a linha pela seta, como qualquer outra execução, para ver o resto:
37
+
38
+ - o **branch** (clique para copiar o nome), as **alterações** com as linhas adicionadas e removidas (clique para listar cada arquivo alterado com o estado e os +/−) e o **custo até agora**, conforme cobrado pelo provedor. Mostra `—` até que um turno tenha custo informado, e nunca uma estimativa; um `*` indica um total que deixa de fora turnos sem preço, com uma nota dizendo quantos;
39
+ - **Pré-visualizar** enquanto a app do Flow estiver rodando (veja abaixo);
40
+ - **Descartar**, separado, apaga as alterações do Flow, o branch dele e a spec provisória. A confirmação lista o que você perde: os arquivos alterados com os +/−, o branch e a spec.
41
+
42
+ **Pausar Flow** para o agente e mantém suas alterações e a spec. A linha passa então a mostrar **Retomar Flow**.
43
+
44
+ Você pode escrever enquanto o agente trabalha: no Flow, sua mensagem **interrompe** a etapa atual (o botão de enviar vira um raio) e o agente continua na hora com a nova informação. Enquanto o Flow está aberto, a faixa de git abaixo do compositor sai do caminho: o painel do Flow já mostra o branch dele.
45
+
46
+ ## Experimentar a app
47
+
48
+ O próprio agente do Flow roda o typecheck e os testes para verificar o trabalho. Quando há algo para experimentar, ele pergunta com três opções: **Start the app**, **Start and expose on the local network** ou **Not now**. Expor a app permite abri-la em um celular na mesma Wi-Fi ou VPN, e qualquer pessoa nessa rede pode acessá-la.
49
+
50
+ Quando a app está no ar, o agente passa os endereços como links e o painel do Flow mostra **Pré-visualizar** com um ponto verde: abre a app no seu navegador. O menu tem o endereço de rede e **Parar app**. A app roda a partir da cópia do Flow, nunca do seu checkout principal, e o Specrails a encerra quando você pausa, descarta ou entrega o Flow.
51
+
52
+ ## Passar a um rail {#flow-hand-off}
53
+
54
+ Quando estiver satisfeito com o resultado, clique em **Passar a um rail**. A linha passa a mostrar **Pronto para virar uma PR** e abre uma única linha acima: *Rail 2 vai transformar seus 7 arquivos alterados em uma PR revisada. Se falhar, seu trabalho fica a salvo.* Clique em **Lançar**, ou em **Ainda não** para voltar ao Flow; **Esc** equivale a **Ainda não**; um clique fora só recolhe a linha, e a faixa continua em **Pronto para virar uma PR** com **Lançar**. Se o motor da sua conversa não puder fazer a passagem a um rail nesta máquina, uma nota logo abaixo da linha avisa e o motor padrão do rail é usado.
55
+
56
+ O rail, o motor, o modelo e o esforço já vêm escolhidos (um rail livre e o motor da sua conversa). Para mudá-los, abra **Ajustar opções**; ali você também vê o que mudou. O custo até agora aparece na linha principal. Suas escolhas são mantidas se você clicar em **Ainda não** e passar a um rail mais tarde. Enquanto a passagem a um rail é iniciada, a faixa mostra o lançamento sem lacunas e depois acompanha a execução etapa por etapa. Se o limite de revisão ou um orçamento for atingido, a linha avisa e nada é lançado. Se a execução não aparecer em 45 segundos, a faixa para de girar e mostra **Ainda passando a Rail 2…** com **Atualizar**, que verifica de novo e continua esperando até a execução aparecer.
57
+
58
+ O rail deriva a spec e a respectiva mudança de spec a partir do que você construiu, verifica e revisa, e o cartão de entrega aparece na missão como em qualquer execução.
59
+
60
+ Se a execução falhar por um motivo técnico, o trabalho volta sozinho para este Flow, intacto: o cartão diz em palavras simples o que falhou (os códigos ficam em **Detalhes técnicos**) e o agente recebe o erro e o explica. Se a revisão pedir alterações, o cartão oferece **Voltar ao Flow** ou **Relançar**. Quando a entrega se conclui, a missão fecha o Flow com um resumo: o pull request, a spec reescrita a partir do que você construiu, a mudança de spec arquivada e a issue do Jira, se houver.
61
+
62
+ ## Bom saber
63
+
64
+ - O Flow só escreve no próprio branch. Fora do Flow, as missões continuam somente leitura.
65
+ - Um Flow por missão de cada vez. A pausa sobrevive a uma reinicialização da app.
66
+ - Se a cópia do projeto do Flow desaparecer, o Flow fica marcado como **precisa de revisão** (só para informação, nada a decidir) e nada é apagado.
67
+ - A faixa nunca troca a execução que você está vendo. Se outra passar a precisar de você nesse meio-tempo, o nome dela no seletor da faixa mostra **precisa de você**.
68
+ - O Jira não recebe nada enquanto você está em Flow nem se você o descartar.
69
+ - O custo do Flow aparece em Análises como uma superfície própria, **Flow**, e dentro do bloco de missões do agente.
@@ -37,13 +37,14 @@ Você pode ter vários rails para organizar o trabalho em pistas nomeadas (uma p
37
37
  | **Seletor de Loop** | O Loop que este rail roda — um embutido (`Implement` / `Freestyle` / `SDD Quick (OpenSpec)`) ou um loop personalizado. Veja a tabela abaixo. Persistido por rail. |
38
38
  | **▶ Play / ■ Stop** | Iniciar ou cancelar. |
39
39
 
40
- ### O que um rail roda: Loops
40
+ ### O que um rail roda: Loops {#rail-loops}
41
41
 
42
42
  Um rail roda um **Loop** — a receita do trabalho. Dois loops são **embutidos** e cobrem os casos comuns:
43
43
 
44
44
  | Loop embutido | Comando | O que faz |
45
45
  |------|---------|--------------|
46
46
  | **Implement** | `/specrails:implement` | Um job cobrindo todas as specs do rail. Roda o pipeline completo Architect → Developer → Reviewer → Ship. O padrão do dia a dia. |
47
+ | **Freestyle** | Freestyle | O provedor do rail implementa cada spec de forma autônoma, **sem** o pipeline; depois a verificação e o Loop Decider refinam o resultado até tudo passar. Uma execução independente por spec. Funciona com Claude, Codex, Gemini, Kimi e motores locais; o chat interativo dentro do job é exclusivo do Claude. |
47
48
 
48
49
  Para rodar várias specs, coloque as relacionadas (até 3) num único rail — o `Implement` executa-as como um só job agregado — ou distribua specs independentes por vários rails: cada rail com git roda em paralelo na sua própria worktree isolada.
49
50
 
@@ -85,6 +86,25 @@ Se algo parecer errado:
85
86
  - **Autopausa por orçamento** — defina um orçamento diário e a fila se pausa sozinha quando o gasto do dia atinge o teto.
86
87
  - **Tudo** — feche o app desktop, ou rode `specrails-desktop stop`.
87
88
 
89
+ ## Integrar localmente com alterações sem commit
90
+
91
+ **Integrar localmente** junta uma entrega aprovada no seu branch de integração (por exemplo `main`) neste computador, sem PR. Não precisa de um checkout limpo:
92
+
93
+ - As alterações sem commit que não tocam nos ficheiros entregues ficam onde estão.
94
+ - Se as suas alterações tocam nos mesmos ficheiros, o Specrails guarda-as num git stash chamado `specrails: before integrating #N (…)`, integra e volta a colocá-las. O aviso diz *Guardei as suas alterações locais, integrei #N e restaurei-as.*
95
+ - Se ao voltar a colocá-las houver conflitos com o código integrado, o Specrails deixa o branch exatamente como integrado e **mantém o stash**: nada se perde. O cartão mostra *As suas alterações locais estão guardadas num stash* com os ficheiros em conflito, **Restaurar as minhas alterações** (nova tentativa, por exemplo depois de alterar o código) e o nome do stash para copiar. Depois, o Specrails restaura-as ele próprio num novo branch `specrails/restore-local-<id>`, num worktree separado: se aí se aplicarem sem conflitos, faz commit; caso contrário, um resolvedor de conflitos com IA trabalha apenas dentro desse worktree, mantendo a sua intenção e o código integrado, e o Specrails faz commit do resultado. O cartão lista os ficheiros restaurados; **Trazê-las de volta para <branch>** coloca-as no seu branch (só então o stash é descartado) e **Descartar o branch restaurado** remove o branch e mantém o stash. Uma missão é apenas informada; nunca tem de executar nada. As skills e comandos OpenSpec gerados pelo Specrails (por exemplo `.claude/skills/openspec-*/SKILL.md`) não contam como alterações suas: num conflito mantêm a versão integrada.
96
+ - Os ficheiros ignorados nunca vão para o stash: se algum colidir com a entrega, o Specrails pede-lhe que o mova primeiro.
97
+ - Se a app parar entre guardar e restaurar, restaura as suas alterações da próxima vez que o projeto abrir (só se o mesmo branch estiver em checkout).
98
+
99
+ ## Previsão de tempo e custo {#launch-forecast}
100
+
101
+ Antes de clicar em Iniciar, um rail pode mostrar quanto tempo execuções como esta costumam levar e, quando faz sentido, quanto costumam custar, por exemplo *Normalmente 6–9 min · $2–4 em execuções como esta*.
102
+
103
+ O intervalo é a metade central do seu próprio histórico: do percentil 25 ao 75 das execuções concluídas neste projeto com o mesmo loop ou comando e o mesmo motor. Precisa de pelo menos 5 execuções comparáveis. Até lá, a linha diz *Ainda sem histórico suficiente* em vez de um palpite. Só entram custos informados pelo provedor; custos estimados ficam de fora. É uma estimativa, nunca uma cobrança.
104
+
105
+ O valor em dólares só aparece quando se sabe que o motor cobra por uso (por exemplo, uma chave de API). Em um plano de assinatura, ou enquanto o modo de cobrança ainda não é conhecido, só o tempo aparece. Quando o rail tem várias specs, o intervalo vale para uma spec e diz isso com *(por spec)*. Se o gasto de hoje mais o topo do intervalo puder atingir o seu orçamento diário, a linha acrescenta *Pode pausar no orçamento* com um link para as configurações de orçamento. Se o orçamento de hoje já acabou, Iniciar pede confirmação antes, porque a execução ficaria em pausa até ser reiniciado.
106
+
107
+
88
108
  ## Para onde ir agora
89
109
 
90
110
  - [O Loop Builder](the-loop-builder) — o que um rail roda, e como construir seus próprios loops.
@@ -107,6 +107,18 @@ Se a [telemetria](../settings/customizing) estava ativada para o job, aparece um
107
107
 
108
108
  Útil para partilhar uma execução com um colega de equipa, ou para abrir um relatório de bug preciso.
109
109
 
110
+ ## Quando uma execução falha
111
+
112
+ Quando um job falha, para ou fica bloqueado, o estado final começa com um **cartão de diagnóstico** que diz em linguagem clara o que aconteceu, por exemplo *Os testes falharam na fase Reviewer após 4 rodadas de correção*, e por quê quando o app sabe:
113
+
114
+ - **Testes falharam**: as verificações continuam falhando após as rodadas de correção.
115
+ - **Limite do provedor**: o limite de uso do provedor de IA foi atingido. O cartão cita quando ele é redefinido, com as palavras do próprio provedor.
116
+ - **Ambiente**: a máquina não consegue executar as verificações (credenciais, uma ferramenta ausente, um comando de preparação que falha). *Corrigir o ambiente* mostra exatamente o que executar ou mudar.
117
+ - **Bloqueada**, **sem tempo**, **em silêncio** e **parou inesperadamente** nomeiam o limite ou o processo que interrompeu a execução.
118
+ - **Causa desconhecida**: o app não adivinha. Mostra o fim do registro para você mesmo ler.
119
+
120
+ Sob o diagnóstico há até três remédios ordenados, e só os que podem funcionar aqui: **Retomar a partir de** a fase que parou, **Executar novamente**, **Editar a spec e relançar** (os adendos da spec levam sua mudança para a próxima execução), **Corrigir o ambiente** e **Abrir o registro na falha**. A mesma causa aparece como um rótulo de uma linha na [lista de pendências](../getting-started/the-dashboard-tour), e o cartão de execução da missão mostra o mesmo cartão.
121
+
110
122
  ## Para onde ir a seguir
111
123
 
112
124
  - [Rails e jobs](rails-and-jobs) — lançar e enfileirar.
@@ -0,0 +1,43 @@
1
+ <!-- guide-revision: mission-first-v1 -->
2
+
3
+ # Revise uma entrega no app {#review-a-delivery}
4
+
5
+ Uma entrega pronta para revisão tem duas visões: **Resumo** (o veredito, as evidências e os botões de decisão) e **Alterações** (o que a entrega realmente mudou). Abra a revisão pelo botão **Revisar** da entrega e escolha **Alterações**.
6
+
7
+ ## Leia as alterações
8
+
9
+ A lista de arquivos à esquerda mostra cada arquivo alterado com seu estado (adicionado, modificado, excluído, renomeado), suas contagens de linhas `+` e `−` e uma marca quando você o dá como visto. O diff à direita carrega um arquivo por vez, então uma alteração grande continua fluida. Alterne entre os layouts **Unificado** e **Dividido**; o Specrails lembra da sua escolha. Um arquivo muito grande mostra suas primeiras linhas com **Carregar o diff completo do arquivo**; um arquivo binário é listado como binário.
10
+
11
+ As alterações são medidas a partir do ponto em que a entrega se separou da branch base, então o que chegou à base depois não aparece. Se a entrega ainda não tem uma branch combinada, você pode escolher a branch de qual spec ler.
12
+
13
+ ## Notas do revisor sobre o código
14
+
15
+ Os achados do revisor, os riscos apontados e os comentários de revisão que a execução devia resolver aparecem sob a linha a que se referem. Notas que não indicam arquivo nem linha ficam listadas acima da lista de arquivos, então nada fica escondido. Entregas antigas, e revisores que não indicaram um lugar, mostram seus achados nessa lista.
16
+
17
+ ## Peça ao agente para mudar algo
18
+
19
+ Selecione linhas clicando nos números (Shift-clique amplia o intervalo), escolha **Pedir uma mudança ao agente** e descreva a mudança. O Specrails salva como feedback de revisão na spec, com o arquivo, o intervalo de linhas e o código selecionado, e mostra uma mensagem com um link para a spec. A próxima execução dessa spec o receberá. Para iniciá-la agora, use **Pedir alterações** no Resumo. Aqui não há threads de comentários entre pessoas; converse com sua equipe no GitHub.
20
+
21
+ ## Abra no seu editor
22
+
23
+ **Abrir no editor** abre o arquivo, na linha selecionada, no VS Code, no Cursor ou em uma IDE da JetBrains. Escolha o editor em **Configurações → Código → Editor**. O arquivo abre a partir da sua própria cópia do projeto, onde a branch da revisão pode não estar ativa.
24
+
25
+ ## Escolha o que acontece com uma entrega {#pr-decision}
26
+
27
+ Uma execução concluída pede uma só coisa: o que fazer com o resultado. O cartão mostra um botão principal para o próximo passo (criar o PR, publicá-lo ou verificá-lo) e, ao lado, **Revisar**, que abre o pacote de revisão em linguagem simples. Todo o resto fica em **Mais ações**:
28
+
29
+ - **Mudar para o branch** coloca o branch na pasta do seu projeto para você testá-lo.
30
+ - **Integrar localmente** mescla o resultado no seu branch base neste computador. Não precisa de GitHub e você confirma antes.
31
+ - **Descartar** remove o resultado e o seu branch. Você confirma antes.
32
+
33
+ Se uma ação falhar, o aviso diz o que não deu certo e oferece **Repetir**.
34
+
35
+ ## Teclado
36
+
37
+ | Tecla | Ação |
38
+ | --- | --- |
39
+ | `j` / `k` | Arquivo alterado seguinte / anterior |
40
+ | `n` / `p` | Nota do revisor seguinte / anterior |
41
+ | `v` | Marcar o arquivo como visto |
42
+
43
+ As teclas são ignoradas enquanto você digita em um campo. Marcar como visto é privado: se o arquivo mudar numa revisão posterior, ele mostra **Alterado desde que você viu** e volta a contar como não visto.
@@ -1,4 +1,4 @@
1
- # Escolher um motor por rail
1
+ # Escolher um motor por rail {#provider-capabilities}
2
2
 
3
3
  ## Quando o seletor aparece
4
4
 
@@ -19,7 +19,7 @@ Os quatro correm o pipeline standard **Implement**:
19
19
  | Motor | Recorra a ele quando… | Notas |
20
20
  |--------|--------------------|-------|
21
21
  | **Claude** | Precisa de custo nativo, interação persistente ou tool policy rigorosa. | Perfis, Freestyle e transformações estruturadas. |
22
- | **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. |
22
+ | **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. O Freestyle funciona, sem chat interativo. |
23
23
 
24
24
  ## Um fluxo de trabalho prático
25
25
 
@@ -1,4 +1,4 @@
1
- # O Loop Builder
1
+ # O Loop Builder {#loop-builder}
2
2
 
3
3
  ## Workflows Core
4
4
 
@@ -1,4 +1,4 @@
1
- # Temas
1
+ # Temas {#themes}
2
2
 
3
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
4
 
@@ -1,4 +1,4 @@
1
- # Telemetria do pipeline e diagnóstico
1
+ # Telemetria do pipeline e diagnóstico {#telemetry}
2
2
 
3
3
  A telemetria regista os diagnósticos do pipeline localmente. Está **ativada por omissão** nos projetos sem uma preferência guardada. Pode desativá-la por projeto; as escolhas guardadas explicitamente são respeitadas.
4
4
 
@@ -20,7 +20,7 @@ A partir desse momento, os jobs do pipeline desse projeto passam a registar tele
20
20
 
21
21
  ### O que é abrangido
22
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.
23
+ A telemetria aplica-se aos jobs que passam pela **fila de jobs** do projeto: as execuções do pipeline da CLI (os rails quando os Loops estão desativados e os comandos `implement` enviados a partir da CLI `specrails-desktop`). As execuções de loop — a forma predefinida como os rails correm — e as sessões interativas como o chat, o Explore e as missões não são instrumentadas.
24
24
 
25
25
  ## Onde ficam os dados
26
26
 
@@ -1,4 +1,4 @@
1
- # Ambiente do projeto
1
+ # Ambiente do projeto {#project-environment}
2
2
 
3
3
  Alguns projetos precisam de uma credencial durante a execução, como `NODE_AUTH_TOKEN` para pacotes npm privados. Em **Configurações do projeto → Ambiente**, adicione os **nomes** das variáveis de que seus rails e loops precisam. O Specrails guarda apenas os nomes, nunca os valores.
4
4
 
@@ -0,0 +1,24 @@
1
+ # Atualizações {#updates}
2
+
3
+ O Specrails mantém duas coisas atualizadas: o próprio app **Specrails Desktop** e o framework **specrails-core** usado pelos seus projetos. Ambos ficam em **Configurações ▸ Atualizações**.
4
+
5
+ ## Canal de atualização
6
+
7
+ Escolha com que rapidez você recebe novas versões:
8
+
9
+ - **Mais recente** (padrão): cada versão assim que é publicada. Você recebe novidades e correções primeiro.
10
+ - **Estável**: apenas versões que passaram pelo menos uma semana em Mais recente com CI verde e depois foram promovidas pelos mantenedores. Escolha se sua equipe prefere menos atualizações, bem testadas.
11
+
12
+ O canal vale para o app e para o specrails-core. Se o specrails-core ainda não tiver versão estável, o Core segue Mais recente e o cartão do Core avisa.
13
+
14
+ No Estável, se nenhuma versão tiver sido promovida ainda, **Verificar atualizações** avisa em vez de oferecer uma versão de Mais recente.
15
+
16
+ ## Como as atualizações chegam
17
+
18
+ - **Specrails Desktop** verifica ao iniciar e a cada 6 horas. Quando há uma atualização, aparece um cartão para baixar, instalar e reiniciar. Você também pode clicar em **Verificar atualizações**.
19
+ - **specrails-core** nunca se atualiza sozinho. Clique em **Procurar atualizações** no cartão do Core e depois em **Atualizar**. Seus projetos passam para o novo framework sem reiniciar o app.
20
+
21
+ ## Bom saber
22
+
23
+ - Trocar de Mais recente para Estável nunca faz downgrade. Você fica na sua versão até o Estável alcançá-la.
24
+ - Toda atualização é assinada e verificada antes de ser instalada, nos dois canais.
@@ -0,0 +1,33 @@
1
+ # Trabalhar em um projeto existente {#existing-projects}
2
+
3
+ Estes recursos ajudam as execuções a respeitar um projeto que já existe: o que uma spec deixa de fora, as perguntas do arquiteto antes de planejar, quais requisitos um teste realmente comprova, como descrever o código antigo antes de mudá-lo e as regras que sua equipe já escreveu. Cada um precisa de uma versão do specrails-core que o suporte; até lá, o interruptor fica desativado com um aviso para atualizar o Core.
4
+
5
+ ## Fora do escopo
6
+
7
+ Cada spec pode listar o que deliberadamente **não** muda. Quick e Explore preenchem isso para você; na janela da spec aparece como **Fora do escopo** abaixo da descrição, um item por linha, e pode ser editado como qualquer outro campo. Os agentes recebem isso com a spec a cada lançamento.
8
+
9
+ ## Perguntas do arquiteto no Jira
10
+
11
+ Em **Configurações ▸ Ancoragem em projetos existentes**, ative **Publicar esclarecimentos do arquiteto no Jira**. Quando uma execução para porque o arquiteto precisa de uma resposta, ou segue com suposições, o Specrails as publica como um comentário na issue do Jira vinculada. Responda a esse comentário no Jira: a resposta é adicionada à spec como esclarecimento e a próxima execução da spec a lê. Você ainda pode responder a uma execução pausada pelo app.
12
+
13
+ ## Requisitos demonstrados
14
+
15
+ Quando um teste nomeia o requisito que comprova (`[spec:<capacidade>/<requisito>]` no título), a página de revisão mostra **Requisitos demonstrados X/Y**: quais requisitos um teste aprovado comprova, quais ainda não têm teste e quais a própria mudança tocou. A análise mostra o mesmo por loop. Para a CI falhar quando um requisito alterado não tem teste, adicione `specrails-core pipeline trace --check --tests-passed` depois dos seus testes.
16
+
17
+ A biblioteca de loops também oferece **Varredura de drift**, um loop somente leitura que compara o que cada spec diz com o que o código faz e lista cada contradição. Não altera nada.
18
+
19
+ ## Baseline ao tocar
20
+
21
+ Ative **Baseline ao tocar** para que uma mudança que alcança código que nenhuma spec descreve comece descrevendo-o: testes de como o código se comporta hoje, comprovados no código inalterado, e uma spec curta do que existe. A página de revisão mostra **Spec criada por onde o trabalho passou** com o módulo, os requisitos e os testes, e o custo aparece à parte. Se esses testes falharem no código inalterado, a execução para antes de editar o módulo e informa isso.
22
+
23
+ ## Regras do projeto {#project-rules}
24
+
25
+ **Configurações ▸ Regras do projeto** lista as verificações que seu projeto já executa (lint, tipos, testes, CI) e cada regra escrita em arquivos como `CLAUDE.md` ou `AGENTS.md`, classificadas em:
26
+
27
+ - **Aplicada**: uma verificação já a garante.
28
+ - **Automatizável**: uma verificação poderia. **Criar spec** a transforma em spec com um clique.
29
+ - **Somente humana**: alguém precisa olhar. Elas aparecem em cada página de revisão em **Precisa de olhos humanos**.
30
+
31
+ As regras que o Core ainda não conseguiu classificar (por exemplo, logo após adicionar o projeto, quando o inventário roda offline) aparecem como **Não classificada**; **Refazer inventário** com um provedor configurado as classifica.
32
+
33
+ **Refazer inventário** atualiza a lista. Quando um projeto ainda não tem comandos de verificação, as configurações do agent runtime oferecem essas verificações primeiro.