@joshuafolkken/kit 1.3000.0 → 1.3041.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 (684) hide show
  1. package/.claude/skills/workflow-commands/backlogrun-steps.md +1 -1
  2. package/.claude/skills/workflow-commands/kickoff.md +6 -0
  3. package/dist/.inputs-verified.json +1 -1
  4. package/dist/commands/adopt.js +12 -12
  5. package/dist/commands/auto-ok-judge-cli.js +18 -14
  6. package/dist/commands/auto-ok-main.js +42 -40
  7. package/dist/commands/backlog-budget-main.js +3 -3
  8. package/dist/commands/backlog-drive-cli.js +276 -188
  9. package/dist/commands/backlog-next-main.js +77 -75
  10. package/dist/commands/backlog-offer-main.js +80 -78
  11. package/dist/commands/backlog-plan-cli.js +96 -97
  12. package/dist/commands/backlog-triage-cli.js +94 -92
  13. package/dist/commands/backlogrun-cli.js +212 -206
  14. package/dist/commands/behavior-cli.js +12 -13
  15. package/dist/commands/bump-version-main.js +2 -2
  16. package/dist/commands/bytes-command.js +61 -22
  17. package/dist/commands/check-related.js +61 -60
  18. package/dist/commands/{chunk-X7PN54LZ.js → chunk-22DVQCP6.js} +16 -6
  19. package/dist/commands/{chunk-7GHOFHUS.js → chunk-24ZDAWML.js} +3 -3
  20. package/dist/commands/{chunk-HBNB3TLG.js → chunk-2BB5ZR2F.js} +13 -7
  21. package/dist/commands/{chunk-F22G3VDB.js → chunk-2BC33QPY.js} +1 -1
  22. package/dist/commands/{chunk-72EW7AVI.js → chunk-2BJJUTZA.js} +2 -2
  23. package/dist/commands/{chunk-XDQOWUVT.js → chunk-2CXT6MBR.js} +4 -4
  24. package/dist/commands/{chunk-TVJE67O2.js → chunk-2EZTYLO4.js} +6 -6
  25. package/dist/commands/{chunk-JLYW7CP6.js → chunk-2PHOLX62.js} +1 -1
  26. package/dist/commands/{chunk-6EU5ZCDP.js → chunk-2QM72JCJ.js} +23 -87
  27. package/dist/commands/{chunk-EFHSCUFN.js → chunk-2VFPUPSG.js} +2 -2
  28. package/dist/commands/{chunk-ATRMETHT.js → chunk-2XAH3MHV.js} +1 -1
  29. package/dist/commands/{chunk-T2E724HN.js → chunk-34JJYCIY.js} +2 -2
  30. package/dist/commands/{chunk-REMKUFAC.js → chunk-34KZDKQJ.js} +1 -1
  31. package/dist/commands/{chunk-GK2KY4MO.js → chunk-352KLSFX.js} +3 -3
  32. package/dist/commands/{chunk-7S6VRZOH.js → chunk-3AEDZZNL.js} +5 -5
  33. package/dist/commands/{chunk-KVJDDECB.js → chunk-3B2HEFNO.js} +2 -2
  34. package/dist/commands/{chunk-HZBTXKT2.js → chunk-3Z425MM3.js} +2 -2
  35. package/dist/commands/{chunk-J3G2R64I.js → chunk-3ZOX4G4U.js} +3 -3
  36. package/dist/commands/{chunk-LRS2OS5J.js → chunk-452HWOJ7.js} +2 -2
  37. package/dist/commands/{chunk-HRT4KWP4.js → chunk-475EFIJV.js} +1 -1
  38. package/dist/commands/{chunk-4HBVHYNL.js → chunk-47UZB54M.js} +3 -3
  39. package/dist/commands/{chunk-H4LYG37R.js → chunk-4DN4XVPL.js} +6 -6
  40. package/dist/commands/{chunk-TMLNI3YW.js → chunk-4HERA2GY.js} +1 -1
  41. package/dist/commands/{chunk-W6V4DWC5.js → chunk-4JI35CVO.js} +1 -1
  42. package/dist/commands/{chunk-YT342DRV.js → chunk-4L4LNWZ7.js} +2 -2
  43. package/dist/commands/{chunk-ZZAH3YQP.js → chunk-4N32QKJZ.js} +6 -6
  44. package/dist/commands/{chunk-GDUK5YPO.js → chunk-4NRSFLG7.js} +12 -12
  45. package/dist/commands/{chunk-O5QZ2S6X.js → chunk-4OKRPAUT.js} +4 -4
  46. package/dist/commands/{chunk-QDFDB4CF.js → chunk-4Q64PG46.js} +13 -13
  47. package/dist/commands/{chunk-HO52D6JY.js → chunk-4UDTQVDD.js} +14 -14
  48. package/dist/commands/{chunk-HPVLI26Z.js → chunk-4WR2LEZL.js} +6 -6
  49. package/dist/commands/{chunk-DP7WIGQ4.js → chunk-4ZJOC6OK.js} +4 -4
  50. package/dist/commands/{chunk-WTRDWEUQ.js → chunk-4ZQM4I7R.js} +12 -12
  51. package/dist/commands/{chunk-OTZJXU2R.js → chunk-54X37JEJ.js} +8 -8
  52. package/dist/commands/{chunk-A5V7EWIX.js → chunk-56KW5EOK.js} +2 -2
  53. package/dist/commands/chunk-5CG3XU3O.js +74 -0
  54. package/dist/commands/{chunk-FC33R5UN.js → chunk-5ESZLHDZ.js} +13 -15
  55. package/dist/commands/{chunk-OVA7STGP.js → chunk-5FBRMARM.js} +9 -9
  56. package/dist/commands/{chunk-SK2LJBFS.js → chunk-5PCK53WP.js} +3 -3
  57. package/dist/commands/{chunk-6NV2F7QH.js → chunk-5RG4S66L.js} +1 -1
  58. package/dist/commands/{chunk-JOARHU3M.js → chunk-5UJGACVN.js} +1 -1
  59. package/dist/commands/{chunk-NKOET4FB.js → chunk-5Y7B7FDL.js} +2 -2
  60. package/dist/commands/{chunk-XMBRXCIE.js → chunk-5Z6E5ZUV.js} +4 -4
  61. package/dist/commands/{chunk-RZ4OKKPM.js → chunk-5ZNUH4LV.js} +2 -2
  62. package/dist/commands/{chunk-7CHCZBNF.js → chunk-6CFHLMKM.js} +4 -4
  63. package/dist/commands/{chunk-TXXYC7EV.js → chunk-6DDK5XWK.js} +1 -1
  64. package/dist/commands/{chunk-2TQXCH2K.js → chunk-6GQX752S.js} +3 -3
  65. package/dist/commands/{chunk-RY6ZDHKB.js → chunk-6MAZ55GF.js} +107 -84
  66. package/dist/commands/{chunk-SNFLV7VV.js → chunk-6RUWU2SB.js} +2 -2
  67. package/dist/commands/{chunk-D4SZK7H2.js → chunk-6TIVDEKG.js} +2 -2
  68. package/dist/commands/{chunk-RIQ75QWR.js → chunk-6UCWAFQY.js} +55 -43
  69. package/dist/commands/{chunk-4D5KWMFL.js → chunk-6YURRFRU.js} +19 -19
  70. package/dist/commands/{chunk-7MOZEEFJ.js → chunk-6YVURZAJ.js} +1 -1
  71. package/dist/commands/{chunk-73JOEKIC.js → chunk-6Z4YZG7P.js} +5 -5
  72. package/dist/commands/{chunk-NJ53AWJU.js → chunk-77BIN247.js} +9 -9
  73. package/dist/commands/{chunk-MZHOPRI6.js → chunk-7ABHNNY3.js} +7 -7
  74. package/dist/commands/{chunk-6WTVAL4D.js → chunk-7C7FOKJK.js} +1 -1
  75. package/dist/commands/{chunk-KVSSLDA3.js → chunk-7HAGC6SW.js} +5 -5
  76. package/dist/commands/{chunk-IG22Y5MA.js → chunk-7KKUFLH5.js} +1 -1
  77. package/dist/commands/{chunk-ZQ3CKRMP.js → chunk-7MJYLUF4.js} +2 -2
  78. package/dist/commands/{chunk-6UGFS3EU.js → chunk-7NHZCI5Y.js} +11 -11
  79. package/dist/commands/{chunk-FB3D7CX5.js → chunk-7OQ56DVW.js} +5 -7
  80. package/dist/commands/{chunk-EK327QOS.js → chunk-7VWPGTZO.js} +10 -10
  81. package/dist/commands/{chunk-WSOF74K4.js → chunk-7YZXS3AK.js} +3 -3
  82. package/dist/commands/{chunk-N6TYL3B2.js → chunk-AAUDI7WJ.js} +2 -2
  83. package/dist/commands/{chunk-3GF52L5F.js → chunk-AC26ZUG5.js} +12 -24
  84. package/dist/commands/{chunk-EK2Y6B4X.js → chunk-ACZ52JPI.js} +7 -7
  85. package/dist/commands/{chunk-VD72V5VX.js → chunk-AJ65WNJB.js} +4 -4
  86. package/dist/commands/{chunk-MYWRGF5A.js → chunk-AK7SEO4Y.js} +2 -2
  87. package/dist/commands/{chunk-IBEKFLWG.js → chunk-ALDAS2WG.js} +9 -9
  88. package/dist/commands/{chunk-W32DIQEP.js → chunk-ARFBIJFS.js} +1 -1
  89. package/dist/commands/{chunk-F3WBEEYC.js → chunk-AVVMDVGO.js} +5 -5
  90. package/dist/commands/chunk-AXXEMVRJ.js +23 -0
  91. package/dist/commands/{chunk-GIGKMIPQ.js → chunk-B3M5WSGN.js} +1 -1
  92. package/dist/commands/{chunk-4Z5723GA.js → chunk-B7ZNIEDV.js} +5 -4
  93. package/dist/commands/{chunk-B3XFOHDX.js → chunk-BCUDQWYK.js} +10 -4
  94. package/dist/commands/{chunk-PR3JCPP7.js → chunk-BMKWSWWE.js} +1 -1
  95. package/dist/commands/{chunk-RZJAUVMI.js → chunk-BMM4RHCG.js} +2 -2
  96. package/dist/commands/{chunk-LAKVPOJQ.js → chunk-BMTYUJNT.js} +2 -2
  97. package/dist/commands/{chunk-DAJCUSPG.js → chunk-BRHPRDDV.js} +3 -3
  98. package/dist/commands/{chunk-UZAU6UI6.js → chunk-BRUBX64M.js} +2 -2
  99. package/dist/commands/{chunk-BFLFPKQQ.js → chunk-BTZJDHQT.js} +4 -4
  100. package/dist/commands/{chunk-AI5K4QJO.js → chunk-BYFC6MD2.js} +1 -1
  101. package/dist/commands/{chunk-JGTLNFFE.js → chunk-BYGJ3BCJ.js} +10 -10
  102. package/dist/commands/{chunk-5HWZFL4D.js → chunk-C54QXJD6.js} +51 -18
  103. package/dist/commands/{chunk-LMS6N6GE.js → chunk-CBAKBWSZ.js} +7 -7
  104. package/dist/commands/{chunk-7EAMUVIO.js → chunk-CFHRNTE5.js} +1 -1
  105. package/dist/commands/{chunk-UIWAMLQH.js → chunk-CGYDIYHD.js} +2 -2
  106. package/dist/commands/{chunk-4QYW2IL7.js → chunk-CHKYPF5O.js} +1 -1
  107. package/dist/commands/{chunk-5HCPSV45.js → chunk-CJBW6BWG.js} +8 -8
  108. package/dist/commands/chunk-CKUKK7JG.js +252 -0
  109. package/dist/commands/{chunk-4PES3BAA.js → chunk-CMHGDCGN.js} +3 -3
  110. package/dist/commands/{chunk-F6OWP2AY.js → chunk-CNGTHSUS.js} +22 -22
  111. package/dist/commands/{chunk-B2EA2HCY.js → chunk-COGKULQH.js} +4 -4
  112. package/dist/commands/{chunk-S7XWXG4M.js → chunk-CP2J4RV2.js} +175 -81
  113. package/dist/commands/{chunk-YGDNUTTI.js → chunk-CQUZ6TNQ.js} +2 -2
  114. package/dist/commands/chunk-CQZI7RIK.js +72 -0
  115. package/dist/commands/chunk-CVJHQOI3.js +153 -0
  116. package/dist/commands/{chunk-2MJ4OCDL.js → chunk-CWCKCZS6.js} +1 -1
  117. package/dist/commands/chunk-D5OHVIPM.js +17 -0
  118. package/dist/commands/{chunk-TPKFVVJQ.js → chunk-D6D6WQR6.js} +2 -2
  119. package/dist/commands/{chunk-5PAEXYIY.js → chunk-D7JRJI44.js} +69 -6
  120. package/dist/commands/{chunk-LOSOLCCW.js → chunk-D7OAU32Z.js} +1 -1
  121. package/dist/commands/{chunk-VZHC2I3T.js → chunk-DAAX7XDS.js} +8 -8
  122. package/dist/commands/{chunk-OHVAEJSM.js → chunk-DEZF7QZZ.js} +5 -5
  123. package/dist/commands/{chunk-CA6F5OXK.js → chunk-DYZOOWVW.js} +124 -21
  124. package/dist/commands/{chunk-TKGBF75Y.js → chunk-EDKOSZ3K.js} +5 -5
  125. package/dist/commands/{chunk-YPNTORQD.js → chunk-EFDVE5P5.js} +1 -1
  126. package/dist/commands/{chunk-EH3LVYOX.js → chunk-EGIHAEMT.js} +1 -1
  127. package/dist/commands/{chunk-7P4X4TQL.js → chunk-EKLU6QR7.js} +4 -4
  128. package/dist/commands/{chunk-ILQZFUDC.js → chunk-ELY76WAR.js} +2 -2
  129. package/dist/commands/{chunk-2VLHFILE.js → chunk-EM3HAZF6.js} +2 -2
  130. package/dist/commands/{chunk-F2HFWLQR.js → chunk-EMTZAGT5.js} +20 -1
  131. package/dist/commands/{chunk-GA4VIFHD.js → chunk-ERG4QRNG.js} +2 -2
  132. package/dist/commands/{chunk-ICEMFE2V.js → chunk-EUGNQCYK.js} +1 -1
  133. package/dist/commands/{chunk-3HU3LPIF.js → chunk-EXDFKKMH.js} +2 -2
  134. package/dist/commands/{chunk-ISPBJVXM.js → chunk-EXWB34R2.js} +7 -7
  135. package/dist/commands/{chunk-FNOSSXLG.js → chunk-EYMPBHDN.js} +2 -2
  136. package/dist/commands/{chunk-7V5UVKFG.js → chunk-EZ7IPKIH.js} +2 -2
  137. package/dist/commands/{chunk-KQWSENCT.js → chunk-F6IQHZYY.js} +3 -3
  138. package/dist/commands/{chunk-7ZECP3J6.js → chunk-FDS65XOJ.js} +5 -5
  139. package/dist/commands/{chunk-KXRFGPZD.js → chunk-FGG7V473.js} +21 -5
  140. package/dist/commands/{chunk-PZ6VWHOO.js → chunk-FHFWNNUC.js} +1 -1
  141. package/dist/commands/{chunk-XBRD2BDL.js → chunk-FJX7AENO.js} +2 -2
  142. package/dist/commands/{chunk-M42SLJCD.js → chunk-FKZ5E4JD.js} +4 -4
  143. package/dist/commands/{chunk-F2J6DGDM.js → chunk-FMZWRDKH.js} +8 -8
  144. package/dist/commands/{chunk-DSBK66US.js → chunk-FOKCRIAN.js} +10 -10
  145. package/dist/commands/{chunk-OI7KM4K3.js → chunk-FQGWO2ZH.js} +2 -2
  146. package/dist/commands/{chunk-2IESYBZH.js → chunk-FURNDIT3.js} +3 -3
  147. package/dist/commands/chunk-FVDQNMP6.js +93 -0
  148. package/dist/commands/{chunk-PZU6FZO6.js → chunk-FWU3H4TX.js} +1 -1
  149. package/dist/commands/{chunk-RYZ3RQRH.js → chunk-G3HBYHFA.js} +1 -1
  150. package/dist/commands/{chunk-HCA5QG2U.js → chunk-G4E4M2P4.js} +2 -2
  151. package/dist/commands/{chunk-VJLZ3IQQ.js → chunk-G5KSL2Q2.js} +1 -1
  152. package/dist/commands/{chunk-Y5ZW3KN5.js → chunk-G6XC7V6Y.js} +2 -2
  153. package/dist/commands/{chunk-73EBNBUW.js → chunk-GCPP5XIG.js} +1 -1
  154. package/dist/commands/{chunk-Q3463XNL.js → chunk-GITT5A5A.js} +3 -3
  155. package/dist/commands/{chunk-T2IO4LEB.js → chunk-GLC47H7I.js} +10 -10
  156. package/dist/commands/{chunk-GA6E4VGO.js → chunk-GUR54ELE.js} +1 -1
  157. package/dist/commands/{chunk-7IT23HIR.js → chunk-GY4DMCKS.js} +2 -2
  158. package/dist/commands/{chunk-PZ4ITSLG.js → chunk-H6JQRHDC.js} +3 -3
  159. package/dist/commands/{chunk-ZHZSZNE2.js → chunk-HATKF6VX.js} +2 -2
  160. package/dist/commands/{chunk-ELWNRE6E.js → chunk-HH3CVIFU.js} +5 -5
  161. package/dist/commands/{chunk-7GMTJDO2.js → chunk-HHMMGDMP.js} +6 -6
  162. package/dist/commands/{chunk-VD5674LW.js → chunk-HI5WPM6C.js} +2 -2
  163. package/dist/commands/{chunk-JUUBDYFZ.js → chunk-HQSWPRUF.js} +4 -4
  164. package/dist/commands/{chunk-ZAJD6T6E.js → chunk-HVCQYZVD.js} +2 -2
  165. package/dist/commands/chunk-HWEZRNPL.js +66 -0
  166. package/dist/commands/{chunk-J6GIVMXI.js → chunk-HX3FFIO5.js} +18 -3
  167. package/dist/commands/{chunk-GU5ML3Y3.js → chunk-HXDTA5VU.js} +13 -68
  168. package/dist/commands/{chunk-BNXE3NVB.js → chunk-I2KCGKJI.js} +1 -1
  169. package/dist/commands/{chunk-LC7SBONO.js → chunk-IAD4WLLI.js} +1 -1
  170. package/dist/commands/{chunk-WWC5L3AO.js → chunk-IB5TT73I.js} +2 -2
  171. package/dist/commands/{chunk-HOSZITJM.js → chunk-IBAYXCMU.js} +2 -2
  172. package/dist/commands/{chunk-UTBVTCQN.js → chunk-IF3EIFK4.js} +267 -153
  173. package/dist/commands/chunk-IGDJNXX2.js +49 -0
  174. package/dist/commands/{chunk-OJ4LGBVD.js → chunk-ILIITIMQ.js} +3 -3
  175. package/dist/commands/{chunk-CUR2WNYB.js → chunk-IRGDMSTI.js} +3 -3
  176. package/dist/commands/{chunk-PZTWQYRI.js → chunk-IYJEBWW5.js} +3 -3
  177. package/dist/commands/{chunk-A3D2XHOJ.js → chunk-J22PSIXR.js} +40 -9
  178. package/dist/commands/{chunk-O27H6NN6.js → chunk-J66YBAAM.js} +3 -5
  179. package/dist/commands/{chunk-P6RGQXHI.js → chunk-J6WKZRV2.js} +2 -2
  180. package/dist/commands/{chunk-NFEBQED3.js → chunk-J7IO3AYH.js} +2 -2
  181. package/dist/commands/{chunk-T57W3UWK.js → chunk-JAKC2BHX.js} +1 -1
  182. package/dist/commands/{chunk-3EO2XN3A.js → chunk-JCAQ7B6J.js} +4 -4
  183. package/dist/commands/{chunk-QQZOQ7AM.js → chunk-JFLFGLE4.js} +1 -1
  184. package/dist/commands/{chunk-ZDSDPKCD.js → chunk-JIGBNCDR.js} +1 -1
  185. package/dist/commands/{chunk-Q5N2J2UF.js → chunk-JJHWTFWQ.js} +5 -7
  186. package/dist/commands/{chunk-EI6JG5DF.js → chunk-JKOGWGQM.js} +1 -1
  187. package/dist/commands/{chunk-RK4HE5NW.js → chunk-JM6EVOFN.js} +4 -4
  188. package/dist/commands/{chunk-EBNIX2TC.js → chunk-JV24VP2O.js} +1 -1
  189. package/dist/commands/{chunk-BCK5LW4F.js → chunk-JVKXJ763.js} +3 -3
  190. package/dist/commands/{chunk-D5TAR6TV.js → chunk-JZHY7D6D.js} +1 -1
  191. package/dist/commands/{chunk-CRNPPKP2.js → chunk-JZK33TA5.js} +1 -1
  192. package/dist/commands/{chunk-UOAG2XQT.js → chunk-K275REYP.js} +3 -3
  193. package/dist/commands/{chunk-HESMKHEB.js → chunk-K4G3HOKS.js} +2 -2
  194. package/dist/commands/{chunk-L6XN3EXI.js → chunk-K64EIHD2.js} +1 -1
  195. package/dist/commands/{chunk-RINVPTA2.js → chunk-KCFOP5RI.js} +28 -28
  196. package/dist/commands/{chunk-O26Y2FOJ.js → chunk-KGE4AS2Y.js} +1 -1
  197. package/dist/commands/{chunk-EWA72KO7.js → chunk-KK2SL42W.js} +2 -2
  198. package/dist/commands/{chunk-MMXZKLDU.js → chunk-KK7TEL5G.js} +10 -4
  199. package/dist/commands/{chunk-UEURNXE5.js → chunk-KKIMVXAP.js} +2 -2
  200. package/dist/commands/{chunk-MAGJFH5T.js → chunk-KODXWMBX.js} +6 -6
  201. package/dist/commands/{chunk-D4HNS43Q.js → chunk-KPSKWTOS.js} +17 -17
  202. package/dist/commands/{chunk-VFJYOAOQ.js → chunk-KTV2HNWB.js} +2 -2
  203. package/dist/commands/{chunk-OWR2TCOY.js → chunk-KWYQR5MK.js} +5 -5
  204. package/dist/commands/{chunk-FNQW6NY7.js → chunk-KXK2A2HB.js} +6 -2
  205. package/dist/commands/{chunk-O5FVBIRI.js → chunk-KZ5BBBMO.js} +5 -5
  206. package/dist/commands/{chunk-JUJFIATR.js → chunk-KZ7HD37E.js} +6 -6
  207. package/dist/commands/{chunk-2YCKPX3A.js → chunk-KZZWPUJW.js} +1 -1
  208. package/dist/commands/{chunk-MYNM3YMR.js → chunk-L7DAL54N.js} +3 -3
  209. package/dist/commands/{chunk-NOXLKIPR.js → chunk-LAR76BFA.js} +1 -1
  210. package/dist/commands/{chunk-ZA3W73PF.js → chunk-LB557AHJ.js} +3 -3
  211. package/dist/commands/{chunk-LYEKT3IN.js → chunk-LEB2VP7F.js} +1 -1
  212. package/dist/commands/{chunk-WQJ7O3C3.js → chunk-LJXKVLYI.js} +1 -1
  213. package/dist/commands/{chunk-CHX4QTP4.js → chunk-LJZERYLG.js} +1 -1
  214. package/dist/commands/{chunk-PF22VUWB.js → chunk-LOOFYHUM.js} +76 -26
  215. package/dist/commands/{chunk-HIPO6HUG.js → chunk-LPSULLNK.js} +1 -1
  216. package/dist/commands/{chunk-G47ZNQVG.js → chunk-LR22UK5W.js} +1 -1
  217. package/dist/commands/{chunk-SV4FHQE7.js → chunk-LT7QSHR4.js} +14 -14
  218. package/dist/commands/{chunk-HIB5G2X6.js → chunk-LUXWDMKI.js} +7 -7
  219. package/dist/commands/{chunk-XH6BGVVP.js → chunk-LX7TIEMI.js} +9 -36
  220. package/dist/commands/{chunk-OGNTJ5JB.js → chunk-LYO6TX5L.js} +1 -1
  221. package/dist/commands/{chunk-JLREFWJ4.js → chunk-LZ5QXE5N.js} +6 -6
  222. package/dist/commands/{chunk-5WIZR5SC.js → chunk-M4UV3BEV.js} +11 -11
  223. package/dist/commands/{chunk-LNBUIOK6.js → chunk-M6JDU5EK.js} +4 -4
  224. package/dist/commands/{chunk-VZSJCFRT.js → chunk-MFBNNTBM.js} +4 -4
  225. package/dist/commands/{chunk-KHWTJ4F7.js → chunk-MI2OS6TL.js} +3 -3
  226. package/dist/commands/{chunk-VZCQZFPH.js → chunk-MLW4S35K.js} +19 -8
  227. package/dist/commands/{chunk-RIUPRMLW.js → chunk-MN425CU6.js} +1 -1
  228. package/dist/commands/{chunk-7W3D3WRW.js → chunk-MOIOSCZM.js} +2 -2
  229. package/dist/commands/{chunk-3BNNMJOT.js → chunk-MRORPFSO.js} +20 -320
  230. package/dist/commands/{chunk-LA5WTOAM.js → chunk-MUGTOJUL.js} +12 -12
  231. package/dist/commands/{chunk-L6LU2633.js → chunk-MVHPRYHE.js} +1 -1
  232. package/dist/commands/{chunk-EKCKCX5S.js → chunk-MWO6FOSZ.js} +123 -21
  233. package/dist/commands/{chunk-AVUGMOHZ.js → chunk-N7QTMTST.js} +2 -2
  234. package/dist/commands/{chunk-LMSS4ARB.js → chunk-NDBX7LSS.js} +1 -1
  235. package/dist/commands/{chunk-BEE7OAQ5.js → chunk-NDWZTWXV.js} +21 -2
  236. package/dist/commands/{chunk-6TESOL3L.js → chunk-NEGJ77RV.js} +7 -7
  237. package/dist/commands/{chunk-LCEJXF7A.js → chunk-NEGRE5VW.js} +4 -4
  238. package/dist/commands/{chunk-IXX4SXIP.js → chunk-NFPD2P3V.js} +1 -1
  239. package/dist/commands/chunk-NHIW7JE6.js +335 -0
  240. package/dist/commands/{chunk-CJSFC5YI.js → chunk-NILSN7A4.js} +7 -7
  241. package/dist/commands/{chunk-W4J6YTFE.js → chunk-NOLFSPOB.js} +2 -2
  242. package/dist/commands/chunk-NT67QTZO.js +65 -0
  243. package/dist/commands/{chunk-NJT5L6IC.js → chunk-NU7W6QGT.js} +33 -4
  244. package/dist/commands/chunk-NUR4FQHM.js +21 -0
  245. package/dist/commands/{chunk-OKKQI4ZG.js → chunk-OAAVY2JK.js} +1 -1
  246. package/dist/commands/chunk-OF4BY4N7.js +32 -0
  247. package/dist/commands/{chunk-W47I2KDY.js → chunk-OGS2DK7I.js} +3 -3
  248. package/dist/commands/{chunk-MS6Q3Z7V.js → chunk-OIPV3PWW.js} +6 -6
  249. package/dist/commands/{chunk-T33QDAWD.js → chunk-OIX2363L.js} +1 -1
  250. package/dist/commands/{chunk-GPMSYXYO.js → chunk-OJ65BZBV.js} +283 -15
  251. package/dist/commands/{chunk-34LAULSC.js → chunk-OKZWEVR4.js} +3 -3
  252. package/dist/commands/{chunk-2CXAVVST.js → chunk-OL6IF4JC.js} +1 -1
  253. package/dist/commands/{chunk-6JVNRY5A.js → chunk-OMPRILFH.js} +1 -1
  254. package/dist/commands/{chunk-VGHSZLYQ.js → chunk-OOWGH2RG.js} +1 -1
  255. package/dist/commands/{chunk-ERGZPWKP.js → chunk-OP2RFVLS.js} +1 -1
  256. package/dist/commands/{chunk-UU6GCJGM.js → chunk-ORKVN2LO.js} +2 -2
  257. package/dist/commands/{chunk-RHII5XI6.js → chunk-OSBWXZJ4.js} +24 -24
  258. package/dist/commands/{chunk-D3SHCUBC.js → chunk-OVWPZDWP.js} +2 -2
  259. package/dist/commands/{chunk-Z4HYBFZD.js → chunk-OWYK2BEJ.js} +108 -46
  260. package/dist/commands/{chunk-P4O67FP5.js → chunk-OX3VQLV2.js} +6 -6
  261. package/dist/commands/{chunk-L6TU7FC2.js → chunk-OZJP77UM.js} +4 -4
  262. package/dist/commands/{chunk-SNO7CY2B.js → chunk-P3H3DKTE.js} +2 -2
  263. package/dist/commands/{chunk-2OIX4JLA.js → chunk-P5SOYWH2.js} +3 -3
  264. package/dist/commands/{chunk-M4PEC7YW.js → chunk-PHLOTUB7.js} +54 -37
  265. package/dist/commands/{chunk-73KBUQKI.js → chunk-PTNQCCIB.js} +2 -2
  266. package/dist/commands/{chunk-4P2LCVGO.js → chunk-PTZEFQUX.js} +8 -8
  267. package/dist/commands/{chunk-DJVMC3U2.js → chunk-Q426ZSZ4.js} +1 -1
  268. package/dist/commands/{chunk-US6X7JXC.js → chunk-Q7EEIOAD.js} +4 -4
  269. package/dist/commands/{chunk-LE7TFPMU.js → chunk-QABRNGQV.js} +2 -2
  270. package/dist/commands/{chunk-NGKB632X.js → chunk-QDFVVRQP.js} +3 -3
  271. package/dist/commands/{chunk-36M2UV6C.js → chunk-QGATHT4S.js} +38 -4
  272. package/dist/commands/{chunk-DIB2Z2OS.js → chunk-QJRVDE7T.js} +1 -1
  273. package/dist/commands/{chunk-KUJQWO6M.js → chunk-QKTTKAXM.js} +2 -2
  274. package/dist/commands/{chunk-DXZW4V7J.js → chunk-QMDKDQKW.js} +3 -3
  275. package/dist/commands/{chunk-VW5SGE7A.js → chunk-QOSC5RKD.js} +1 -1
  276. package/dist/commands/{chunk-ENLWXAHD.js → chunk-QV5FKMOU.js} +1 -1
  277. package/dist/commands/{chunk-32SNWQJP.js → chunk-R2THGPI3.js} +2 -2
  278. package/dist/commands/{chunk-RVHBWSIG.js → chunk-R54Z2Z3X.js} +2 -2
  279. package/dist/commands/{chunk-CJAA5GAF.js → chunk-RG53UFNW.js} +15 -15
  280. package/dist/commands/{chunk-HJKZDDDI.js → chunk-RHKCWJQX.js} +1 -1
  281. package/dist/commands/{chunk-RPDWFUQO.js → chunk-RKIAX4DZ.js} +36 -84
  282. package/dist/commands/{chunk-LE2T3FGJ.js → chunk-RLBFEHHC.js} +2 -4
  283. package/dist/commands/{chunk-5GBZ43UA.js → chunk-RMDLFLPE.js} +1 -1
  284. package/dist/commands/{chunk-U2UH4VM4.js → chunk-RN2YDNLF.js} +2 -2
  285. package/dist/commands/{chunk-GQHUFNXN.js → chunk-RRAIRS2T.js} +1 -1
  286. package/dist/commands/{chunk-DRCTDVI2.js → chunk-RUQY5TS3.js} +3 -3
  287. package/dist/commands/{chunk-WGULS5DA.js → chunk-RW64VHEB.js} +1 -0
  288. package/dist/commands/{chunk-4G7NKNAZ.js → chunk-RXYMJPJB.js} +3 -3
  289. package/dist/commands/{chunk-B33BTNB4.js → chunk-S4M6UWR2.js} +21 -5
  290. package/dist/commands/{chunk-4Q4FXBUQ.js → chunk-SASX3W2M.js} +2 -2
  291. package/dist/commands/{chunk-TIXJY22D.js → chunk-SJ2ZN575.js} +5 -5
  292. package/dist/commands/{chunk-NSZTSCBW.js → chunk-SP7DKYGU.js} +13 -13
  293. package/dist/commands/{chunk-T3FD3Q73.js → chunk-SRG6PKVS.js} +1 -1
  294. package/dist/commands/{chunk-QA22PBCJ.js → chunk-SSL6A3Y4.js} +3 -3
  295. package/dist/commands/{chunk-4BEIYKI2.js → chunk-SV4FZR24.js} +2 -0
  296. package/dist/commands/{chunk-HZSQI6TD.js → chunk-SVTS7ACS.js} +2 -2
  297. package/dist/commands/{chunk-F7XLEK55.js → chunk-SVV4U5AR.js} +1 -1
  298. package/dist/commands/{chunk-RRQFITJE.js → chunk-SXJM4DZ5.js} +1 -1
  299. package/dist/commands/{chunk-OIDMJASD.js → chunk-SYB3M632.js} +1 -1
  300. package/dist/commands/{chunk-UJOZ2MGX.js → chunk-SYOXIKB7.js} +6 -6
  301. package/dist/commands/{chunk-5SB37YDW.js → chunk-SZG5HDNP.js} +3 -3
  302. package/dist/commands/{chunk-R2CF6VZE.js → chunk-T4F33UKZ.js} +4 -4
  303. package/dist/commands/{chunk-ESQEEL4O.js → chunk-TAEGXID2.js} +2 -2
  304. package/dist/commands/chunk-TEPYEUYG.js +585 -0
  305. package/dist/commands/{chunk-LUMCYDGE.js → chunk-TFLHYC2F.js} +2 -2
  306. package/dist/commands/{chunk-V5OIPYA6.js → chunk-TJKM56WJ.js} +4 -4
  307. package/dist/commands/{chunk-CYQ3ZF7R.js → chunk-TLAB552K.js} +86 -13
  308. package/dist/commands/{chunk-ST32OGPY.js → chunk-TP6L4W3W.js} +5 -5
  309. package/dist/commands/{chunk-C26LKDBE.js → chunk-TR7WWYD5.js} +1 -1
  310. package/dist/commands/{chunk-PWYXY46Y.js → chunk-TYNH2R66.js} +15 -15
  311. package/dist/commands/{chunk-AZUE65NT.js → chunk-U5P6G3UV.js} +2 -2
  312. package/dist/commands/{chunk-REPANBLS.js → chunk-U7Y6RKLK.js} +1 -1
  313. package/dist/commands/{chunk-55I7OYHI.js → chunk-UIMMWH7U.js} +1 -1
  314. package/dist/commands/{chunk-72J2G2E7.js → chunk-UKBBWMLE.js} +20 -20
  315. package/dist/commands/{chunk-VTLL6CKO.js → chunk-UNMSZGSG.js} +14 -14
  316. package/dist/commands/chunk-UOVUUVDK.js +18 -0
  317. package/dist/commands/{chunk-JNWHX25C.js → chunk-URDT2O2K.js} +1 -1
  318. package/dist/commands/{chunk-FGZQSSGH.js → chunk-UREXZJDB.js} +1 -1
  319. package/dist/commands/{chunk-O4WBADCX.js → chunk-UTHUX7VU.js} +3 -3
  320. package/dist/commands/{chunk-PDDKRHHS.js → chunk-V5OUZFWK.js} +3 -3
  321. package/dist/commands/{chunk-N4O5I55P.js → chunk-VCPGFBMN.js} +8 -8
  322. package/dist/commands/{chunk-WN7NK3NY.js → chunk-VGPIQNDB.js} +1 -1
  323. package/dist/commands/{chunk-HOGFJHBT.js → chunk-VJS2MCLA.js} +1 -1
  324. package/dist/commands/{chunk-4YI4SLRJ.js → chunk-VK6D5CWA.js} +8 -8
  325. package/dist/commands/{chunk-4LWRCPS5.js → chunk-VOF3N4WO.js} +3 -3
  326. package/dist/commands/{chunk-AM44D7NF.js → chunk-VQRT32JB.js} +1 -1
  327. package/dist/commands/{chunk-AS3GWVAN.js → chunk-VQVPAVQ3.js} +1 -1
  328. package/dist/commands/{chunk-6VTJO5L2.js → chunk-VV4TQYGD.js} +3 -3
  329. package/dist/commands/{chunk-WIE7VUBE.js → chunk-W7DRUOF7.js} +5 -5
  330. package/dist/commands/{chunk-HH2KDLTP.js → chunk-WAEN2RTT.js} +2 -2
  331. package/dist/commands/{chunk-NKKH3PBE.js → chunk-WB4T3VY2.js} +18 -1
  332. package/dist/commands/{chunk-DNJC7X73.js → chunk-WCEUMOKK.js} +2 -2
  333. package/dist/commands/{chunk-BK6Q4VCA.js → chunk-WTH6NTXU.js} +4 -4
  334. package/dist/commands/{chunk-WG6GYBRJ.js → chunk-WWVYEHQT.js} +2 -1
  335. package/dist/commands/{chunk-P4CWLRT2.js → chunk-X3TNPALI.js} +1 -1
  336. package/dist/commands/{chunk-LZNYHWRO.js → chunk-XC6GG5JR.js} +3 -3
  337. package/dist/commands/{chunk-RI7EQYKL.js → chunk-XFWI6WHH.js} +2 -2
  338. package/dist/commands/{chunk-BY3POLIQ.js → chunk-XHGWMD3L.js} +7 -7
  339. package/dist/commands/{chunk-BPSJSHYD.js → chunk-XI2ABCRX.js} +2 -2
  340. package/dist/commands/{chunk-TS4ZK46L.js → chunk-XKSUBUIH.js} +5 -5
  341. package/dist/commands/{chunk-K7GL3BGI.js → chunk-XPBF5DG3.js} +4 -4
  342. package/dist/commands/{chunk-6SKMZGER.js → chunk-XUMYPESL.js} +20 -8
  343. package/dist/commands/{chunk-QS5USD4T.js → chunk-XXC32PVL.js} +5 -4
  344. package/dist/commands/{chunk-ORSI7Y55.js → chunk-XXN2EZBY.js} +1 -1
  345. package/dist/commands/{chunk-IZVM2TTH.js → chunk-XZQWEVR3.js} +2 -2
  346. package/dist/commands/{chunk-E3CXOVPQ.js → chunk-Y27PTXXI.js} +1 -1
  347. package/dist/commands/{chunk-337QQM4C.js → chunk-Y4EBUI6M.js} +106 -5
  348. package/dist/commands/{chunk-WRX3MINT.js → chunk-YAU3LYNF.js} +1 -1
  349. package/dist/commands/{chunk-JB7R3A4A.js → chunk-YDURQICF.js} +4 -4
  350. package/dist/commands/{chunk-RX5JSPPH.js → chunk-YGFOGA7C.js} +11 -11
  351. package/dist/commands/{chunk-S6SXMBF2.js → chunk-YHJ2AJMA.js} +2 -2
  352. package/dist/commands/{chunk-MVPUQLN5.js → chunk-YM77CF4D.js} +4 -4
  353. package/dist/commands/{chunk-ZYIMQHCB.js → chunk-YNPRJCEO.js} +6 -6
  354. package/dist/commands/{chunk-3UKJFWKS.js → chunk-YTBQAD5W.js} +3 -3
  355. package/dist/commands/{chunk-WW3TX742.js → chunk-Z3WGHIVB.js} +3 -3
  356. package/dist/commands/{chunk-KIVOZY2J.js → chunk-ZBZ5DDCH.js} +66 -64
  357. package/dist/commands/{chunk-TAPDXK34.js → chunk-ZLRUHSOP.js} +1 -1
  358. package/dist/commands/{chunk-XYAK53TK.js → chunk-ZNR75OXP.js} +2 -1
  359. package/dist/commands/{chunk-CADFBQJJ.js → chunk-ZSOR4ISJ.js} +4 -4
  360. package/dist/commands/{chunk-6NRTLH6I.js → chunk-ZYFHYQA7.js} +1 -1
  361. package/dist/commands/{chunk-Q7TV3OV6.js → chunk-ZZFFSQF4.js} +4 -4
  362. package/dist/commands/{chunk-PDAY76AN.js → chunk-ZZULXNC2.js} +1 -1
  363. package/dist/commands/{chunk-5Y7QQYTU.js → chunk-ZZXO6TFH.js} +1 -1
  364. package/dist/commands/code-symbol-cli.js +4 -4
  365. package/dist/commands/codex-hook-adapter.js +99 -100
  366. package/dist/commands/command-derive.js +10 -10
  367. package/dist/commands/cost-audit-main.js +94 -92
  368. package/dist/commands/cspell-cached.js +24 -23
  369. package/dist/commands/defect-origin-main.js +19 -18
  370. package/dist/commands/defect-report-main.js +15 -14
  371. package/dist/commands/disposition-cli.js +67 -64
  372. package/dist/commands/doctor.js +3 -3
  373. package/dist/commands/document-read-cli.js +89 -9
  374. package/dist/commands/document-section-main.js +89 -9
  375. package/dist/commands/edit-files-cli.js +1 -1
  376. package/dist/commands/effect-audit-cli.js +20 -19
  377. package/dist/commands/epic-audit-main.js +55 -53
  378. package/dist/commands/epic-bundle-main.js +87 -85
  379. package/dist/commands/epic-check.js +16 -15
  380. package/dist/commands/epic-main.js +93 -91
  381. package/dist/commands/epic-next-main.js +51 -49
  382. package/dist/commands/format-edited-cli.js +30 -32
  383. package/dist/commands/format.js +11 -10
  384. package/dist/commands/fresh-machine-cli.js +6 -6
  385. package/dist/commands/git-followup-workflow.js +137 -122
  386. package/dist/commands/git-workflow.js +28 -27
  387. package/dist/commands/github-release-cli.js +26 -3
  388. package/dist/commands/hook-ledger-cli.js +74 -126
  389. package/dist/commands/init-main.js +20 -19
  390. package/dist/commands/inputs.json +1907 -1876
  391. package/dist/commands/issue-ack-cli.js +5 -5
  392. package/dist/commands/issue-already-done-cli.js +63 -58
  393. package/dist/commands/issue-body-cli.js +44 -42
  394. package/dist/commands/issue-cite-main.js +11 -10
  395. package/dist/commands/issue-comment-main.js +15 -11
  396. package/dist/commands/issue-consolidate-cli.js +31 -30
  397. package/dist/commands/issue-file-main.js +114 -110
  398. package/dist/commands/issue-fold-existing-cli.js +88 -86
  399. package/dist/commands/issue-fold-main.js +26 -25
  400. package/dist/commands/issue-lint-main.js +38 -37
  401. package/dist/commands/issue-measured-cli.js +66 -61
  402. package/dist/commands/issue-plan-cli.js +103 -101
  403. package/dist/commands/issue-premise-unmet-cli.js +66 -61
  404. package/dist/commands/issue-priority-cli.js +13 -12
  405. package/dist/commands/issue-read-main.js +18 -17
  406. package/dist/commands/issue-release-class-cli.js +12 -11
  407. package/dist/commands/issue-release-main.js +13 -12
  408. package/dist/commands/issue-scout-main.js +89 -87
  409. package/dist/commands/issue-spill-main.js +114 -110
  410. package/dist/commands/issue-state-main.js +16 -15
  411. package/dist/commands/issue-tick-cli.js +14 -13
  412. package/dist/commands/josh-completion.js +10 -10
  413. package/dist/commands/lane-adopt-cli.js +19 -19
  414. package/dist/commands/lane-breakdown-cli.js +154 -126
  415. package/dist/commands/lane-cli.js +131 -125
  416. package/dist/commands/lane-launch-main.js +17 -17
  417. package/dist/commands/lane-limit-cli.js +81 -79
  418. package/dist/commands/lane-measure-cli.js +246 -130
  419. package/dist/commands/lane-pause-cli.js +15 -15
  420. package/dist/commands/lane-plan-cli.js +108 -101
  421. package/dist/commands/lane-resolve-cli.js +20 -19
  422. package/dist/commands/lane-restart-cli.js +124 -118
  423. package/dist/commands/lane-why-cli.js +85 -82
  424. package/dist/commands/lane-withdraw-cli.js +49 -48
  425. package/dist/commands/latest-corepack.js +3 -3
  426. package/dist/commands/latest-if-required-cli.js +9 -9
  427. package/dist/commands/latest-scope-main.js +5 -5
  428. package/dist/commands/latest-update.js +3 -3
  429. package/dist/commands/lines-command.js +3 -3
  430. package/dist/commands/lint-parallel-main.js +32 -31
  431. package/dist/commands/lint-related.js +79 -60
  432. package/dist/commands/lint-rule.js +32 -31
  433. package/dist/commands/lockfile-policy.js +11 -11
  434. package/dist/commands/main-merge-main.js +5 -5
  435. package/dist/commands/main-sync-main.js +5 -5
  436. package/dist/commands/managed-config-scope-cli.js +3 -3
  437. package/dist/commands/measure-rerun-cli.js +10 -10
  438. package/dist/commands/metrics-command.js +91 -58
  439. package/dist/commands/observation-record-cli.js +3 -3
  440. package/dist/commands/observations-flush-cli.js +27 -25
  441. package/dist/commands/oracle-list-cli.js +2 -2
  442. package/dist/commands/overrides-check.js +4 -4
  443. package/dist/commands/package-scout-cli.js +67 -26
  444. package/dist/commands/plan-consumers-main.js +4 -4
  445. package/dist/commands/plan-scaffold-cli.js +132 -91
  446. package/dist/commands/pr-classification-main.js +3 -3
  447. package/dist/commands/pre-commit-lint.js +11 -12
  448. package/dist/commands/pre-commit-type-check.js +25 -24
  449. package/dist/commands/pre-push-unit.js +33 -33
  450. package/dist/commands/pretool-guard-cli.js +90 -91
  451. package/dist/commands/project-profile-cli.js +5 -4
  452. package/dist/commands/propagate.js +15 -15
  453. package/dist/commands/prose-stale-cli.js +20 -19
  454. package/dist/commands/publishable-range-check.js +4 -4
  455. package/dist/commands/read-files-cli.js +2 -2
  456. package/dist/commands/read-set-cli.js +61 -24
  457. package/dist/commands/refactor-scan-cli.js +6 -6
  458. package/dist/commands/release-cli.js +64 -36
  459. package/dist/commands/release-scope-main.js +19 -18
  460. package/dist/commands/rename-cli.js +27 -29
  461. package/dist/commands/reserved-run.js +3 -3
  462. package/dist/commands/retrospective-cli.js +104 -102
  463. package/dist/commands/review-attest-cli.js +6 -6
  464. package/dist/commands/review-brief-main.js +127 -109
  465. package/dist/commands/review-findings-cli.js +2 -2
  466. package/dist/commands/review-pair-cli.js +110 -84
  467. package/dist/commands/review-record-main.js +108 -83
  468. package/dist/commands/review-round2-cli.js +46 -45
  469. package/dist/commands/review-stops-cli.js +16 -16
  470. package/dist/commands/review-submit-cli.js +127 -109
  471. package/dist/commands/rule-list.js +58 -60
  472. package/dist/commands/rule-value-cli.js +226 -74
  473. package/dist/commands/run-add-cli.js +28 -27
  474. package/dist/commands/run-board-main.js +136 -132
  475. package/dist/commands/run-carry-cli.js +127 -124
  476. package/dist/commands/run-chain-cli.js +116 -93
  477. package/dist/commands/run-cut-cli.js +124 -119
  478. package/dist/commands/run-ending-cli.js +19 -22
  479. package/dist/commands/run-entry-cli.js +183 -180
  480. package/dist/commands/run-event-cli.js +5 -5
  481. package/dist/commands/run-handoff-cli.js +52 -28
  482. package/dist/commands/run-handoff-lanes-cli.js +15 -15
  483. package/dist/commands/run-hold-main.js +64 -62
  484. package/dist/commands/run-liveness-cli.js +11 -11
  485. package/dist/commands/run-merge-main.js +119 -116
  486. package/dist/commands/run-next-cli.js +87 -86
  487. package/dist/commands/run-park-cli.js +111 -92
  488. package/dist/commands/run-pause-cli.js +147 -133
  489. package/dist/commands/run-pickup-cli.js +13 -13
  490. package/dist/commands/run-prep-main.js +83 -82
  491. package/dist/commands/run-prime-cli.js +107 -87
  492. package/dist/commands/run-progress-main.js +123 -107
  493. package/dist/commands/run-report-cli.js +25 -24
  494. package/dist/commands/run-review-cli.js +168 -149
  495. package/dist/commands/run-ship-cli.js +208 -203
  496. package/dist/commands/run-ship-evidence-cli.js +38 -37
  497. package/dist/commands/run-ship-wait-main.js +40 -37
  498. package/dist/commands/run-split-cli.js +127 -125
  499. package/dist/commands/run-stale-main.js +36 -35
  500. package/dist/commands/run-status-cli.js +16 -15
  501. package/dist/commands/run-step-cli.js +173 -164
  502. package/dist/commands/run-tail-cli.js +1 -1
  503. package/dist/commands/run-tidy-main.js +30 -29
  504. package/dist/commands/run-wake-main.js +137 -119
  505. package/dist/commands/run-watcher-guard-cli.js +30 -29
  506. package/dist/commands/secretlint-scan.js +2 -2
  507. package/dist/commands/selfcheck-cli.js +27 -26
  508. package/dist/commands/session-language-main.js +48 -28
  509. package/dist/commands/sonar-hotspots-cli.js +3 -3
  510. package/dist/commands/split-assess-cli.js +24 -23
  511. package/dist/commands/split-child-recover-cli.js +13 -12
  512. package/dist/commands/start.js +37 -35
  513. package/dist/commands/stash-pop-main.js +3 -3
  514. package/dist/commands/stash-push-main.js +3 -3
  515. package/dist/commands/stop-guard.js +144 -143
  516. package/dist/commands/sync-main.js +11 -10
  517. package/dist/commands/telegram-test-main.js +5 -5
  518. package/dist/commands/test-declared.js +9 -8
  519. package/dist/commands/test-e2e-guard.js +23 -22
  520. package/dist/commands/test-pinned-main.js +26 -25
  521. package/dist/commands/test-reach-cli.js +15 -14
  522. package/dist/commands/test-red-main.js +5 -5
  523. package/dist/commands/{test-related-ZT2AO62I.js → test-related-ZCNC46MS.js} +31 -31
  524. package/dist/commands/test-related-main.js +51 -50
  525. package/dist/commands/test-unit-guard-main.js +9 -8
  526. package/dist/commands/time-cli.js +24 -27
  527. package/dist/commands/time-density-cli.js +8 -9
  528. package/dist/commands/tree-status-cli.js +4 -4
  529. package/dist/commands/type-check-command.js +8 -7
  530. package/dist/commands/ui-shot-cli.js +4 -4
  531. package/dist/commands/uninstall.js +20 -19
  532. package/dist/commands/unused-members-cli.js +9 -8
  533. package/dist/commands/upstream-interrupt-main.js +115 -111
  534. package/dist/commands/verification-gate.js +46 -46
  535. package/dist/commands/version-check.js +5 -5
  536. package/dist/hooks/{chunk-LWD43Z3C.js → chunk-5CUXGQT6.js} +1667 -107
  537. package/dist/hooks/{chunk-4YXV2REH.js → chunk-5R5YFQR5.js} +8 -8
  538. package/dist/hooks/{chunk-LKQBEKBI.js → chunk-6RLY27FT.js} +8 -8
  539. package/dist/hooks/{chunk-CICKRHTB.js → chunk-AO4TOV4V.js} +119 -2679
  540. package/dist/hooks/{chunk-NUPVO7RI.js → chunk-G5WSPYJ6.js} +4296 -1687
  541. package/dist/hooks/{chunk-UU4PTPEZ.js → chunk-HHIVWGHX.js} +250 -125
  542. package/dist/hooks/{chunk-P7BPAU26.js → chunk-IURJANNZ.js} +2 -2
  543. package/dist/hooks/{chunk-6RR6JZSB.js → chunk-OV22V63P.js} +357 -1744
  544. package/dist/hooks/{chunk-RQXECHAS.js → chunk-SXABK6UV.js} +57 -45
  545. package/dist/hooks/codex-hook-adapter.js +11 -11
  546. package/dist/hooks/daemon.js +1053 -690
  547. package/dist/hooks/format-edited.js +5 -5
  548. package/dist/hooks/inputs.json +551 -536
  549. package/dist/hooks/pretool-guard.js +7 -7
  550. package/dist/hooks/session-lang.js +292 -15
  551. package/dist/hooks/stop-guard.js +225 -48
  552. package/dist/inputs.json +65 -65
  553. package/dist/josh.js +73 -19
  554. package/dist/self-sync-guard/index.js +18 -1
  555. package/dist/version/index.js +18 -1
  556. package/package.json +3 -3
  557. package/pnpm-workspace.yaml +5 -13
  558. package/prompts/collaboration-workflow/issue-template.en.md +56 -52
  559. package/scripts/agent/agent-argv.ts +20 -6
  560. package/scripts/agent/agent-phase-profile.ts +89 -0
  561. package/scripts/agent/agent-role-profile.ts +3 -71
  562. package/scripts/agent/agent-ship-cap.ts +44 -0
  563. package/scripts/agent/agent-worker-profile.ts +154 -0
  564. package/scripts/agent/claude-agent-argv.ts +1 -1
  565. package/scripts/agent/lane-instructions.ts +29 -3
  566. package/scripts/auto-ok/auto-ok-judge-cli.ts +3 -0
  567. package/scripts/auto-ok/auto-ok-judge-write.ts +2 -1
  568. package/scripts/auto-ok/auto-ok-judge.ts +4 -2
  569. package/scripts/backlog/backlog-drive-escalate.ts +115 -0
  570. package/scripts/backlog/backlog-drive-stalled-retry.ts +48 -10
  571. package/scripts/document/document-scan.ts +35 -1
  572. package/scripts/gh/git-pr-checks-failed.ts +24 -0
  573. package/scripts/hooks/implementation-shell-deny-expansion.ts +20 -0
  574. package/scripts/hooks/implementation-shell-deny-git.ts +128 -0
  575. package/scripts/hooks/implementation-shell-deny.ts +14 -138
  576. package/scripts/hooks/implementation-shell.ts +28 -5
  577. package/scripts/hooks/step-zero-notice.ts +9 -6
  578. package/scripts/hooks/stop-actions.ts +4 -2
  579. package/scripts/init/init-logic-workspace.ts +1 -1
  580. package/scripts/issue/issue-auto-ok.ts +43 -4
  581. package/scripts/issue/issue-body-keys.ts +4 -0
  582. package/scripts/issue/issue-comment-cli.ts +15 -2
  583. package/scripts/issue/issue-evidence-exit.ts +6 -2
  584. package/scripts/issue/issue-file-cli.ts +5 -1
  585. package/scripts/issue/issue-file-pass.ts +14 -7
  586. package/scripts/issue/issue-file-worker.ts +95 -0
  587. package/scripts/issue/issue-file.ts +1 -1
  588. package/scripts/issue/issue-outcome.ts +107 -0
  589. package/scripts/issue/issue-read.ts +12 -7
  590. package/scripts/issue/issue-watch-diff.ts +2 -1
  591. package/scripts/josh/josh-commands-ai.ts +2 -2
  592. package/scripts/josh/josh-commands-development.ts +21 -5
  593. package/scripts/josh/josh-commands-issue-write.ts +3 -2
  594. package/scripts/josh/josh-commands-lint.ts +1 -1
  595. package/scripts/josh/josh-commands-project.ts +7 -2
  596. package/scripts/josh/josh-commands-run.ts +10 -2
  597. package/scripts/josh/josh-commands-workflow.ts +5 -0
  598. package/scripts/lane/lane-breakdown-cli.ts +14 -4
  599. package/scripts/lane/lane-breakdown-text.ts +7 -0
  600. package/scripts/lane/lane-breakdown.ts +21 -1
  601. package/scripts/lane/lane-dispatch-prepare.ts +83 -0
  602. package/scripts/lane/lane-dispatch.ts +3 -53
  603. package/scripts/lane/lane-elapsed-time.ts +118 -0
  604. package/scripts/lane/lane-ledger-schema-ship.ts +4 -1
  605. package/scripts/lane/lane-net-time.ts +35 -7
  606. package/scripts/lane/lane-overrun.ts +1 -1
  607. package/scripts/lane/lane-plan-cli.ts +7 -3
  608. package/scripts/lane/lane-plan-estimate.ts +57 -0
  609. package/scripts/lane/lane-plan-size.ts +11 -20
  610. package/scripts/lane/lane-plan.ts +1 -0
  611. package/scripts/lane/lane-relaunch.ts +9 -4
  612. package/scripts/lane/lane-stage-budget.ts +6 -1
  613. package/scripts/lane/lane-stage-events.ts +103 -0
  614. package/scripts/lane/lane-stats-tables.ts +3 -0
  615. package/scripts/lane/lane-stop-check-stats.ts +117 -0
  616. package/scripts/lane/lane-stop-stats.ts +30 -6
  617. package/scripts/lane/lane-why-causes.ts +3 -11
  618. package/scripts/lane/openai-lane-supervisor-owner.ts +12 -0
  619. package/scripts/lane/openai-lane-supervisor.ts +36 -1
  620. package/scripts/lib/home-tilde.ts +24 -0
  621. package/scripts/lib/package-manifest.ts +27 -1
  622. package/scripts/observations/observation-ledger-archive.ts +180 -0
  623. package/scripts/observations/observation-ledger-home.ts +1 -0
  624. package/scripts/observations/observation-ledger.ts +5 -0
  625. package/scripts/observations/observations-flush-transaction.ts +358 -0
  626. package/scripts/observations/observations-flush.ts +72 -172
  627. package/scripts/plan/plan-scaffold-cli.ts +17 -6
  628. package/scripts/plan/plan-scaffold.ts +11 -0
  629. package/scripts/release/github-release-notes.ts +24 -0
  630. package/scripts/release/github-release-runs.ts +32 -6
  631. package/scripts/release/github-release.ts +10 -2
  632. package/scripts/release/release-progress.ts +22 -10
  633. package/scripts/release/release-publish-run.ts +39 -6
  634. package/scripts/repo/repository-labels.ts +23 -11
  635. package/scripts/review/review-comment-round.ts +10 -5
  636. package/scripts/rules/broad-investigation-shell.ts +2 -2
  637. package/scripts/rules/codex-prompt.ts +63 -0
  638. package/scripts/rules/direct-issue-comment.ts +62 -2
  639. package/scripts/rules/direct-issue-read.ts +55 -2
  640. package/scripts/rules/guard-remedy.ts +10 -4
  641. package/scripts/rules/issue-citation.ts +20 -9
  642. package/scripts/rules/last-prompt.ts +8 -4
  643. package/scripts/rules/rule-value-cli.ts +85 -4
  644. package/scripts/rules/rule-value-trend.ts +108 -0
  645. package/scripts/rules/shell-redirects.ts +19 -7
  646. package/scripts/rules/shell-segments.ts +145 -20
  647. package/scripts/rules/shell-tokens.ts +66 -0
  648. package/scripts/rules/standalone-gh-call.ts +63 -0
  649. package/scripts/rules/unasked-filing.ts +12 -4
  650. package/scripts/run/board/run-board-closed.ts +10 -1
  651. package/scripts/run/board/run-board-decision-read.ts +52 -12
  652. package/scripts/run/board/run-board-decision.ts +5 -0
  653. package/scripts/run/board/run-board-ending-reason.ts +21 -7
  654. package/scripts/run/board/run-board-github.ts +8 -1
  655. package/scripts/run/board/run-board-layout.ts +5 -3
  656. package/scripts/run/board/run-board-link.ts +2 -0
  657. package/scripts/run/board/run-board-operation.ts +6 -2
  658. package/scripts/run/board/run-board-pause-fixture.json +12 -0
  659. package/scripts/run/board/run-board-pause.ts +87 -0
  660. package/scripts/run/board/run-board-plan-shared.ts +2 -0
  661. package/scripts/run/board/run-board-render-condition.ts +10 -1
  662. package/scripts/run/board/run-board-render-title.ts +7 -0
  663. package/scripts/run/board/run-board-settle.ts +16 -2
  664. package/scripts/run/board/run-board-snapshot.ts +4 -0
  665. package/scripts/run/board/run-board-status.ts +11 -1
  666. package/scripts/run/cut/run-cut-cli.ts +2 -1
  667. package/scripts/run/park/run-park-cli.ts +13 -1
  668. package/scripts/run/park/run-park-escalate.ts +102 -0
  669. package/scripts/run/park/run-stalled.ts +29 -7
  670. package/scripts/run/review/run-review-early-push.ts +6 -6
  671. package/scripts/run/ship/run-ship-stop-cause.ts +12 -1
  672. package/scripts/split/split-assess.ts +14 -5
  673. package/scripts/test/test-related-touched.ts +21 -3
  674. package/scripts/test/test-related.ts +1 -1
  675. package/dist/commands/chunk-6WEVLIZE.js +0 -29
  676. package/dist/commands/chunk-E2ZCUKHT.js +0 -274
  677. package/dist/commands/chunk-NMLCPYBN.js +0 -134
  678. package/dist/commands/chunk-QEIO2ZNQ.js +0 -324
  679. package/dist/commands/chunk-QWX7EBC6.js +0 -112
  680. package/dist/commands/chunk-RQRLW4XK.js +0 -20
  681. package/dist/commands/chunk-UCQJDYE3.js +0 -21
  682. package/dist/commands/chunk-W4YH2DF3.js +0 -58
  683. package/dist/commands/{chunk-LRA3PXHS.js → chunk-ENKFCOVY.js} +3 -3
  684. package/dist/commands/{chunk-RUWV4INF.js → chunk-HQGNXR6I.js} +3 -3
@@ -10,12 +10,15 @@ import { run_step_section } from '#scripts/run/run-step-section'
10
10
  import { run_park } from './run-park'
11
11
  import { run_park_answered } from './run-park-answered'
12
12
  import { run_park_body } from './run-park-body'
13
+ import { run_park_escalate } from './run-park-escalate'
13
14
  import { run_park_release } from './run-park-release'
14
15
  import { run_park_write } from './run-park-write'
15
16
 
16
17
  // `josh run:park <N> --body-file <path>` — park a lane child for a person's decision in one call: the
17
18
  // question as a comment, `needs-decision`, and the local record the `lane-park` guard reads.
18
19
  // `josh run:park <N> --clear` takes the park back off once the decision is recorded.
20
+ // `josh run:park <N> --escalate "<reason>"` parks a worker that needs a stronger profile
21
+ // (`run-park-escalate.ts`).
19
22
  //
20
23
  // **The park was two hand-typed commands, and a child could stop after either one**
21
24
  // (joshuafolkken/kit#4132). One call writes both, and only a park that has both is recorded, so the
@@ -35,7 +38,7 @@ const SUCCESS_EXIT_CODE = 0
35
38
  const FAILURE_EXIT_CODE = 1
36
39
  const ARGV_OFFSET = 2
37
40
  const CLEAR_FLAG = '--clear'
38
- const USAGE = `Usage: josh run:park <issue-number> --body-file <path> | <issue-number> ${CLEAR_FLAG}\n\n${run_park_body.FORMAT}`
41
+ const USAGE = `Usage: josh run:park <issue-number> --body-file <path> | <issue-number> ${CLEAR_FLAG} | <issue-number> ${run_park_escalate.ESCALATE_FLAG} "<reason>"\n\n${run_park_body.FORMAT}`
39
42
  const CLEAR_OPTIONS = { clear: { type: 'boolean' } } as const
40
43
 
41
44
  function clear_issue(argv: ReadonlyArray<string>): string | undefined {
@@ -94,11 +97,20 @@ async function run_clear(argv: ReadonlyArray<string>, directory: string): Promis
94
97
  return FAILURE_EXIT_CODE
95
98
  }
96
99
 
100
+ // **A worker's escalation is a mechanical stop, not a question** (joshuafolkken/kit#7356): no
101
+ // decision schema, the same release.
102
+ async function run_escalate(argv: ReadonlyArray<string>, directory: string): Promise<number> {
103
+ const issue_number = await run_park_escalate.park(argv, directory, USAGE)
104
+
105
+ return issue_number === undefined ? FAILURE_EXIT_CODE : await release(issue_number, directory)
106
+ }
107
+
97
108
  async function run(
98
109
  argv: ReadonlyArray<string>,
99
110
  directory: string = process.cwd(),
100
111
  ): Promise<number> {
101
112
  if (argv.includes(CLEAR_FLAG)) return await run_clear(argv, directory)
113
+ if (run_park_escalate.is_requested(argv)) return await run_escalate(argv, directory)
102
114
 
103
115
  const request = issue_comment_cli.resolve_request(argv, USAGE)
104
116
 
@@ -0,0 +1,102 @@
1
+ import { agent_worker_profile } from '#scripts/agent/agent-worker-profile'
2
+ import { RUN_STALLED_LABEL } from '#scripts/issue/issue-labels'
3
+ import { issue_number_shape } from '#scripts/issue/issue-number-shape'
4
+ import { session_cite } from '#scripts/issue/session-cite'
5
+ import { cli_flags } from '#scripts/lib/cli-flags'
6
+ import { run_stalled } from './run-stalled'
7
+ import { run_stalled_park } from './run-stalled-park'
8
+
9
+ // `josh run:park <N> --escalate "<reason>"` (joshuafolkken/kit#7356): a worker declares that its Issue
10
+ // needs a stronger `josh.worker` profile and stops. Only a repository with `josh.worker.escalate: true`
11
+ // accepts it. The park is a `run:stalled` one whose cause has no retry check, so the drive never
12
+ // re-offers it on the same profile: it resumes the lane one profile up (joshuafolkken/kit#7357).
13
+
14
+ const ESCALATE_FLAG = '--escalate'
15
+ const OPTIONS = { escalate: { type: 'string' } } as const
16
+ const DISABLED_NOTE = `run:park ${ESCALATE_FLAG}: refused — this repository's package.json does not set josh.worker.escalate to true.`
17
+
18
+ interface Escalation {
19
+ issue: string
20
+ reason: string
21
+ }
22
+
23
+ function is_requested(argv: ReadonlyArray<string>): boolean {
24
+ return argv.some((token) => token === ESCALATE_FLAG || token.startsWith(`${ESCALATE_FLAG}=`))
25
+ }
26
+
27
+ // Whether the repository lets a worker declare an escalation at all.
28
+ function is_enabled(directory: string): boolean {
29
+ const result = agent_worker_profile.read(directory)
30
+
31
+ return result.kind === 'settings' && result.settings.escalate
32
+ }
33
+
34
+ function reason_of(value: string | undefined): string {
35
+ return value?.trim() ?? ''
36
+ }
37
+
38
+ // The Issue and a non-blank reason, or `undefined` when either is missing.
39
+ function escalation_of(argv: ReadonlyArray<string>): Escalation | undefined {
40
+ const parsed = cli_flags.arguments_of(argv, OPTIONS)
41
+ if (parsed === undefined) return undefined
42
+
43
+ const issue = issue_number_shape.single_of(parsed.positionals)
44
+ const reason = reason_of(parsed.values.escalate)
45
+
46
+ return issue === undefined || reason === '' ? undefined : { issue, reason }
47
+ }
48
+
49
+ // The note a declaration is refused with, or `undefined` once it is accepted.
50
+ function refusal_of(
51
+ escalation: Escalation | undefined,
52
+ directory: string,
53
+ usage: string,
54
+ ): string | undefined {
55
+ if (escalation === undefined) return usage
56
+
57
+ return is_enabled(directory) ? undefined : DISABLED_NOTE
58
+ }
59
+
60
+ function accepted(
61
+ argv: ReadonlyArray<string>,
62
+ directory: string,
63
+ usage: string,
64
+ ): Escalation | undefined {
65
+ const escalation = escalation_of(argv)
66
+ const refusal = refusal_of(escalation, directory, usage)
67
+
68
+ if (refusal !== undefined) console.error(refusal)
69
+
70
+ return refusal === undefined ? escalation : undefined
71
+ }
72
+
73
+ function comment_of(escalation: Escalation): string {
74
+ const { issue, reason } = escalation
75
+
76
+ return [
77
+ `Parked with \`${RUN_STALLED_LABEL}\`: ${run_stalled.ESCALATION_REQUESTED.why}`,
78
+ `- Reason: ${reason}`,
79
+ `- Next: the backlogrun drive resumes it one \`worker:<name>\` profile up, or hands it to a person at the top profile; without a drive, give it a stronger profile, ${run_stalled.next_step(issue)}.`,
80
+ ].join('\n')
81
+ }
82
+
83
+ // The parked Issue, or `undefined` when the declaration is refused or the park could not be written.
84
+ async function park(
85
+ argv: ReadonlyArray<string>,
86
+ directory: string,
87
+ usage: string,
88
+ ): Promise<string | undefined> {
89
+ const escalation = accepted(argv, directory, usage)
90
+ if (escalation === undefined) return undefined
91
+
92
+ const { short } = run_stalled.escalation_requested(escalation.reason)
93
+ const is_parked = await run_stalled_park.apply(escalation.issue, comment_of(escalation), short)
94
+
95
+ console.info(`escalate ${session_cite.issue(escalation.issue)} — parked: ${String(is_parked)}`)
96
+
97
+ return is_parked ? escalation.issue : undefined
98
+ }
99
+
100
+ const run_park_escalate = { ESCALATE_FLAG, is_enabled, is_requested, park }
101
+
102
+ export { run_park_escalate }
@@ -55,20 +55,40 @@ function next_step(child: number | string, cause = ''): string {
55
55
  return `${recovery}, then use \`${resume_of(child, true)}\` in the live backlogrun or resume it with \`${resume_of(child, false)}\``
56
56
  }
57
57
 
58
- const SESSION_UNFINISHED_LEAD = `${SESSION_UNFINISHED.short}: `
58
+ // The worker's own declaration that its Issue needs a stronger `josh.worker` profile
59
+ // (joshuafolkken/kit#7356). No retry check reads it, so `run:stalled`'s auto-retry never re-offers it
60
+ // on the same profile; the drive resumes it one profile up (joshuafolkken/kit#7357).
61
+ const ESCALATION_REQUESTED: StallCause = {
62
+ short: 'escalation requested',
63
+ why: 'the worker declared that its Issue needs a stronger josh.worker profile.',
64
+ }
59
65
 
60
- // The child's first message line rides behind its class, so a reader keyed on the class still finds it.
61
- function session_unfinished(message: string): StallCause {
66
+ const CARRYING_CLASSES = [SESSION_UNFINISHED, ESCALATION_REQUESTED]
67
+
68
+ function lead_of(cause: StallCause): string {
69
+ return `${cause.short}: `
70
+ }
71
+
72
+ // The message's first line rides behind its class, so a reader keyed on the class still finds it.
73
+ function carrying(cause: StallCause, message: string): StallCause {
62
74
  const first = message.split(/\r?\n/u, 1)[0]?.trim() ?? ''
63
75
 
64
- return first === ''
65
- ? SESSION_UNFINISHED
66
- : { short: `${SESSION_UNFINISHED_LEAD}${first}`, why: first }
76
+ return first === '' ? cause : { short: `${lead_of(cause)}${first}`, why: first }
77
+ }
78
+
79
+ function session_unfinished(message: string): StallCause {
80
+ return carrying(SESSION_UNFINISHED, message)
81
+ }
82
+
83
+ function escalation_requested(reason: string): StallCause {
84
+ return carrying(ESCALATION_REQUESTED, reason)
67
85
  }
68
86
 
69
87
  // The class a park's cause names: `session unfinished` for one carrying the child's message too.
70
88
  function class_of(cause: string): string {
71
- return cause.startsWith(SESSION_UNFINISHED_LEAD) ? SESSION_UNFINISHED.short : cause
89
+ const carried = CARRYING_CLASSES.find((known) => cause.startsWith(lead_of(known)))
90
+
91
+ return carried?.short ?? cause
72
92
  }
73
93
 
74
94
  function park_event(child: number | string, cause: string): string {
@@ -113,11 +133,13 @@ function waiting_text(waits: ReadonlyArray<string>): string {
113
133
 
114
134
  const run_stalled = {
115
135
  CUT_NOT_RELAUNCHED,
136
+ ESCALATION_REQUESTED,
116
137
  SESSION_UNFINISHED,
117
138
  STALE_HANDOFF,
118
139
  cause_in,
119
140
  cause_of,
120
141
  class_of,
142
+ escalation_requested,
121
143
  next_step,
122
144
  park_event,
123
145
  resume_of,
@@ -20,8 +20,8 @@ import { run_review_steps } from './run-review-steps'
20
20
  // already moved, pushes nothing and the ship's commit stage pushes as before. A round recorded once
21
21
  // the branch is pushed goes to the issue (`review-record-comment.ts`).
22
22
  //
23
- // Only a lane child's own open, briefing code alone: the ship's `--code-only` open commits through its
24
- // own sync stage, and an interaction review is still to come.
23
+ // Only a lane child's own open, after every due brief is written: the ship's `--code-only` open
24
+ // commits through its own sync stage. All due slots still have to attest before the ship can merge.
25
25
 
26
26
  const PUSH_FLAG = '--push'
27
27
  const RUN_REVIEW_COMMAND = 'run:review'
@@ -43,10 +43,10 @@ interface EarlyPushPlan {
43
43
 
44
44
  type Environment = Readonly<Record<string, string | undefined>>
45
45
 
46
- function is_code_alone(plan: EarlyPushPlan): boolean {
46
+ function is_full_open(plan: EarlyPushPlan): boolean {
47
47
  if (plan.is_code_only) return false
48
48
 
49
- return plan.slots.length === 1 && plan.slots[0] === review_attest.REVIEW_SLOT.CODE
49
+ return plan.slots.includes(review_attest.REVIEW_SLOT.CODE)
50
50
  }
51
51
 
52
52
  // The mark counts only in the checkout of the issue it names: a leaked one pushes nothing.
@@ -55,7 +55,7 @@ function is_due(
55
55
  environment: Environment = process.env,
56
56
  directory = PROJECT_ROOT,
57
57
  ): boolean {
58
- return lane_child_marker.is_child_of(directory, environment) && is_code_alone(plan)
58
+ return lane_child_marker.is_child_of(directory, environment) && is_full_open(plan)
59
59
  }
60
60
 
61
61
  // A clean tree is already committed; a refused commit says why and leaves the round to the ship.
@@ -77,7 +77,7 @@ function preparation_skip(
77
77
  if (!lane_child_marker.is_child_of(directory, environment)) return 'not-lane-child'
78
78
  if (plan.is_code_only) return 'code-only'
79
79
 
80
- return is_code_alone(plan) ? undefined : 'multiple-slots'
80
+ return is_full_open(plan) ? undefined : 'multiple-slots'
81
81
  }
82
82
 
83
83
  // Whether this open pushes early: due here, and the tree committed for the brief to attest.
@@ -3,6 +3,7 @@ import { RERUNS_SPENT_MESSAGE } from '#scripts/followup/followup-job-rerun'
3
3
  import { UNREADABLE_COMMENTS_STOP } from '#scripts/gh/git-gh-comments-unreadable'
4
4
  import { gh_retry } from '#scripts/gh/git-gh-retry'
5
5
  import { PR_CHECKS_TIMEOUT_MESSAGE } from '#scripts/gh/git-pr-checks'
6
+ import { git_pr_checks_failed } from '#scripts/gh/git-pr-checks-failed'
6
7
  import { is_blocked_cause } from '#scripts/gh/git-pr-checks-missing'
7
8
  import { NO_CHECKS_MESSAGE } from '#scripts/gh/git-pr-checks-watch'
8
9
  import { git_error } from '#scripts/git/git-error'
@@ -176,6 +177,13 @@ function findings_of(stage: Stage, cause: Cause, body: string): ReadonlyArray<st
176
177
  return is_finding_stop(stage, cause) ? run_ship_review.blocking_kinds(body) : []
177
178
  }
178
179
 
180
+ // The CI checks a followup `check` stop's wait reported failed (joshuafolkken/kit#7333).
181
+ function checks_of(stage: Stage, cause: Cause, body: string): ReadonlyArray<string> {
182
+ return stage === STAGE.FOLLOWUP && cause === CAUSE.CHECK
183
+ ? git_pr_checks_failed.names_of(body)
184
+ : []
185
+ }
186
+
179
187
  // Each finding that decided a review stop, whole, for the durable stop log (joshuafolkken/kit#4519).
180
188
  function details_of(stage: Stage, failed: StoppedOutput = NO_OUTPUT): ReadonlyArray<StopFinding> {
181
189
  if (!is_finding_stop(stage, cause_of(stage, failed))) return []
@@ -185,11 +193,13 @@ function details_of(stage: Stage, failed: StoppedOutput = NO_OUTPUT): ReadonlyAr
185
193
 
186
194
  // The lane ledger's record of one stop — the stage, its cause and, for a preflight, which
187
195
  // preconditions were unmet, so `lane:stats` counts the one worth meeting before a ship
188
- // (joshuafolkken/kit#4166); for a review, which kinds of finding stopped it (joshuafolkken/kit#4426).
196
+ // (joshuafolkken/kit#4166); for a review, which kinds of finding stopped it (joshuafolkken/kit#4426);
197
+ // for a followup red on a check, which checks failed (joshuafolkken/kit#7333).
189
198
  function record_of(issue: number, stage: Stage, failed: StoppedOutput = NO_OUTPUT): StopRecord {
190
199
  const { body, conflicts, preconditions } = failed
191
200
  const cause = cause_of(stage, failed)
192
201
  const findings = findings_of(stage, cause, body)
202
+ const checks = checks_of(stage, cause, body)
193
203
 
194
204
  return {
195
205
  issue,
@@ -197,6 +207,7 @@ function record_of(issue: number, stage: Stage, failed: StoppedOutput = NO_OUTPU
197
207
  cause,
198
208
  ...(preconditions !== undefined && { preconditions: [...preconditions] }),
199
209
  ...(findings.length > 0 && { findings: [...findings] }),
210
+ ...(checks.length > 0 && { checks: [...checks] }),
200
211
  }
201
212
  }
202
213
 
@@ -1,3 +1,4 @@
1
+ import { codex_hooks } from '#scripts/agent/codex-hooks'
1
2
  import { git_path_quoting } from '#scripts/git/git-path-quoting'
2
3
  import { issue_body_keys } from '#scripts/issue/issue-body-keys'
3
4
  import { run_record_path } from '#scripts/josh/run-record-path'
@@ -160,15 +161,21 @@ function partners_of(
160
161
 
161
162
  // The files grouped into what splits as one, each group at its first file: a new scripts module and an
162
163
  // importer of its directory count as one (joshuafolkken/kit#6635), for `lane:plan` and the split notice
163
- // alike (joshuafolkken/kit#6724). With no `added` file, every file stands alone.
164
+ // alike (joshuafolkken/kit#6724). A registered generated artifact also stays with its source (#7381);
165
+ // the two files' changed lines still count in full. Other files stand alone when none is added.
164
166
  function units_of(files: ReadonlyArray<string>, added: ReadonlySet<string>): Array<Array<string>> {
165
- const partners = partners_of(files, added)
167
+ const artifacts = codex_hooks.GENERATED_SOURCES
168
+ const sources = files.filter((file) => !files.includes(artifacts.get(file) ?? ''))
169
+ const partners = partners_of(sources, added)
166
170
 
167
- return files.flatMap((file) => {
171
+ return sources.flatMap((file) => {
168
172
  const partner = partners.get(file)
169
- if (partner === undefined) return [[file]]
173
+ const unit = partner === undefined ? [file] : [file, partner]
174
+ const generated = files.filter((path) => unit.includes(artifacts.get(path) ?? ''))
170
175
 
171
- return files.indexOf(partner) < files.indexOf(file) ? [] : [[file, partner]]
176
+ return partner !== undefined && sources.indexOf(partner) < sources.indexOf(file)
177
+ ? []
178
+ : [[...unit, ...generated]]
172
179
  })
173
180
  }
174
181
 
@@ -315,8 +322,10 @@ const split_assess = {
315
322
  SINGLE_VERDICT,
316
323
  assess,
317
324
  guide_for,
325
+ is_deliverable,
318
326
  is_over_cap,
319
327
  notice,
328
+ measure,
320
329
  parse_numstat,
321
330
  policy_text,
322
331
  reason,
@@ -1,5 +1,6 @@
1
1
  import { readdirSync } from 'node:fs'
2
2
  import path from 'node:path'
3
+ import { direct_importers } from './direct-importers'
3
4
  import { test_related_pins } from './test-related-pins'
4
5
  import { related_scope, type RelatedScope } from './test-related-scope'
5
6
 
@@ -7,7 +8,7 @@ import { related_scope, type RelatedScope } from './test-related-scope'
7
8
  // near a hub reaches hundreds of test files, and paying that reach after every small edit repeats it
8
9
  // minutes apart. **The touched scope reads no test-read map and no import graph**: it is the diff's own
9
10
  // test files and, for each changed module `foo.ts`, its colocated `foo.test.ts` and `foo.*.test.ts`,
10
- // plus the tests the change pins (`test-related-pins.ts`).
11
+ // plus the tests the change pins (`test-related-pins.ts`) and its modules' direct test importers.
11
12
  // The full-reach run checks further away. A touched green admits review round 2, and the lane ledger
12
13
  // records it under its own kind.
13
14
 
@@ -15,8 +16,8 @@ const TOUCHED_FLAG = '--touched'
15
16
  const TOUCHED_KIND = 'touched'
16
17
  const TEST_SUFFIX = '.test.ts'
17
18
  const TOUCHED_REASON =
18
- 'the diff test files, the tests named after its modules and the tests it pins'
19
- const NOTHING_TOUCHED_REASON = 'no test file is in the diff or named after a changed module'
19
+ "the diff test files, their modules' same-named tests, direct test importers and pinned tests"
20
+ const NOTHING_TOUCHED_REASON = 'no changed file reaches a touched test'
20
21
 
21
22
  type ListDirectory = (directory: string) => ReadonlyArray<string>
22
23
 
@@ -76,11 +77,28 @@ function touched_scope(
76
77
  return { mode: 'related', files, reason: TOUCHED_REASON }
77
78
  }
78
79
 
80
+ // A shared fixture often has no same-named test. Reuse the direct-import scan, without building
81
+ // a transitive graph, so its consuming suites run before the shipping checks (joshuafolkken/kit#7380).
82
+ async function read_scope(
83
+ root: string,
84
+ changed: ReadonlyArray<string> | undefined,
85
+ ): Promise<RelatedScope> {
86
+ if (changed === undefined) return touched_scope(root, changed)
87
+
88
+ const importers = await direct_importers.importers_of(
89
+ root,
90
+ changed.filter((file) => related_scope.is_relatable(file)),
91
+ )
92
+
93
+ return touched_scope(root, [...changed, ...[...importers.values()].flat()])
94
+ }
95
+
79
96
  const test_related_touched = {
80
97
  NOTHING_TOUCHED_REASON,
81
98
  TOUCHED_FLAG,
82
99
  TOUCHED_KIND,
83
100
  TOUCHED_REASON,
101
+ read_scope,
84
102
  touched_scope,
85
103
  touched_tests,
86
104
  }
@@ -369,7 +369,7 @@ async function run_touched(given: ReadonlyArray<string>): Promise<number> {
369
369
  const root = await changed_file_scope.repository_root_or_cwd()
370
370
  const explicit = explicit_files(root, command_arguments)
371
371
  const changed = explicit.length > 0 ? explicit : await branch_change()
372
- const scope = test_related_touched.touched_scope(root, changed)
372
+ const scope = await test_related_touched.read_scope(root, changed)
373
373
  const input = { scope, root, changed, synced: [], since_map: [], kind: TOUCHED_KIND }
374
374
 
375
375
  return await test_related_run.run_and_record(input, command_arguments)
@@ -1,29 +0,0 @@
1
- import {
2
- issue_park
3
- } from "./chunk-T33QDAWD.js";
4
- import {
5
- run_stalled
6
- } from "./chunk-B33BTNB4.js";
7
- import {
8
- run_event_stream_emit
9
- } from "./chunk-34LAULSC.js";
10
- import {
11
- run_event_stream
12
- } from "./chunk-NSAVEXVR.js";
13
- import {
14
- RUN_STALLED_LABEL
15
- } from "./chunk-QQBMVC5W.js";
16
-
17
- // scripts/run/park/run-stalled-park.ts
18
- var { PARK } = run_event_stream.EVENT_KIND;
19
- async function apply(issue, comment, cause, fields = {}) {
20
- const park_write = await issue_park.apply(issue, RUN_STALLED_LABEL, comment);
21
- if (!park_write.is_labelled) return false;
22
- await run_event_stream_emit.emit(PARK, run_stalled.park_event(issue, cause), /* @__PURE__ */ new Date(), fields);
23
- return true;
24
- }
25
- var run_stalled_park = { apply };
26
-
27
- export {
28
- run_stalled_park
29
- };