@outerlayer/cli 0.16.1 → 0.18.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 (153) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/README.md +26 -11
  3. package/dist/agent-setup-RBTEACYU.js +28 -0
  4. package/dist/artifact-link-cmd-AVM2EKTV.js +25 -0
  5. package/dist/{build-BG2YENGK.js → build-TQ6X5PYN.js} +5 -4
  6. package/dist/build-info.json +1 -1
  7. package/dist/{builder-2D3WSOOY.js → builder-DUI2ZH2H.js} +5 -6
  8. package/dist/{check-CNTMSGOG.js → check-5C4YDZYV.js} +53 -50
  9. package/dist/{chunk-R7PF5OOU.js → chunk-3CWUOFV6.js} +21 -14
  10. package/dist/{chunk-R4ZQQ7U2.js → chunk-3OFZM4X6.js} +551 -72
  11. package/dist/{chunk-2MNPHL23.js → chunk-47TTLEDX.js} +6 -5
  12. package/dist/{chunk-PLMTLGYH.js → chunk-52NC2FIU.js} +4 -3
  13. package/dist/chunk-6CHIYEZZ.js +564 -0
  14. package/dist/{chunk-TI7B7UEO.js → chunk-AMFWYESY.js} +1 -1
  15. package/dist/{chunk-YRYMNBGQ.js → chunk-ANPNT6PM.js} +2 -1
  16. package/dist/{chunk-JJEGKEFV.js → chunk-B3UKB46N.js} +6 -6
  17. package/dist/{chunk-JXYVA45C.js → chunk-BMYGAGBJ.js} +1050 -304
  18. package/dist/{chunk-4Q7OMKAT.js → chunk-BQXFBI7T.js} +81 -5
  19. package/dist/chunk-CRB3POP4.js +34 -0
  20. package/dist/{chunk-F47JBIAW.js → chunk-DSF2FWAZ.js} +2 -1
  21. package/dist/{chunk-N5FOE5PS.js → chunk-ECODQ7II.js} +4 -33
  22. package/dist/{chunk-NBGDBTO2.js → chunk-ESC6UR76.js} +6 -5
  23. package/dist/{chunk-HHJDN6AU.js → chunk-ESVW4MJY.js} +1 -1
  24. package/dist/{chunk-42ZI52JW.js → chunk-F4XSVQJ4.js} +4 -3
  25. package/dist/{chunk-FWX735W7.js → chunk-FUB7LRUE.js} +7 -7
  26. package/dist/chunk-G2YNJIGF.js +44 -0
  27. package/dist/{chunk-QKFB4K7X.js → chunk-GGOMT6KF.js} +1 -1
  28. package/dist/{chunk-CA3XMYFN.js → chunk-GOBOJMOJ.js} +6 -6
  29. package/dist/{chunk-N6LURUEF.js → chunk-GOSFARMS.js} +1 -1
  30. package/dist/chunk-JBJTC3UU.js +35 -0
  31. package/dist/{chunk-U3HXXRTY.js → chunk-JF42URPU.js} +16 -15
  32. package/dist/{chunk-ADJRGVZC.js → chunk-KDVIU23F.js} +1 -1
  33. package/dist/{chunk-6QRMLNH3.js → chunk-KK4VBOH6.js} +93 -37
  34. package/dist/{chunk-KMDLFI4P.js → chunk-L2USZT6T.js} +1 -1
  35. package/dist/{chunk-WTE3MQML.js → chunk-LXAY4A2G.js} +3 -12
  36. package/dist/{chunk-V7NIVOFD.js → chunk-M2ZWWTWZ.js} +1 -1
  37. package/dist/{chunk-ERI5GBNI.js → chunk-MLAAT4S6.js} +3 -3
  38. package/dist/{chunk-POJMEEJJ.js → chunk-MNTSH4CL.js} +1 -1
  39. package/dist/{chunk-WUYTWNMA.js → chunk-MQJSXHV7.js} +1 -1
  40. package/dist/{chunk-O765JR4W.js → chunk-MTP2QEVO.js} +1 -1
  41. package/dist/{chunk-ZM2IMMYN.js → chunk-N2PXGQRL.js} +9 -1
  42. package/dist/{chunk-J5M7BSJQ.js → chunk-N3CUDFCW.js} +9 -3
  43. package/dist/{chunk-4KSQKQXE.js → chunk-NACDBXUG.js} +19 -15
  44. package/dist/{chunk-RSPXEVDX.js → chunk-NL4XPC7W.js} +1 -1
  45. package/dist/{chunk-EHAAPRWY.js → chunk-QQM2UJ6T.js} +31 -26
  46. package/dist/{chunk-5FEK6PNE.js → chunk-RAZTWYZN.js} +10 -9
  47. package/dist/{chunk-4NPZVMJU.js → chunk-S26M3YBJ.js} +60 -4
  48. package/dist/{chunk-UGP76IZ5.js → chunk-S5PCA3SN.js} +1 -1
  49. package/dist/{chunk-YDSMROTB.js → chunk-S76AYB4M.js} +25 -20
  50. package/dist/{chunk-RMWLBUCJ.js → chunk-SADUQSO4.js} +1 -1
  51. package/dist/{chunk-OZGHL5Y5.js → chunk-SWCTGCSC.js} +2 -2
  52. package/dist/{chunk-GQD22KKN.js → chunk-T2Q7ISPE.js} +2 -1
  53. package/dist/{chunk-C5Y5ZJJZ.js → chunk-T4Y6SCG3.js} +5 -4
  54. package/dist/{chunk-6JNURGOA.js → chunk-ULSIJGLS.js} +45 -13
  55. package/dist/{chunk-ONRCEE6D.js → chunk-UYOYTKE2.js} +4 -4
  56. package/dist/{chunk-PTW6W5NR.js → chunk-VYAL7PUE.js} +1 -1
  57. package/dist/{chunk-JEHRUE3F.js → chunk-W5VPCONO.js} +166 -196
  58. package/dist/{chunk-NPQWKGUA.js → chunk-WBT5X3NH.js} +5 -4
  59. package/dist/{chunk-RLYZLUQ7.js → chunk-WGAUY5LE.js} +2 -2
  60. package/dist/{chunk-RSNSZ2LJ.js → chunk-X5H2WYMB.js} +1 -1
  61. package/dist/{chunk-OHVJA253.js → chunk-X5N6KC6V.js} +47 -29
  62. package/dist/{chunk-22RMZBGW.js → chunk-XGP3VYOG.js} +1 -1
  63. package/dist/{chunk-HYZRY4KZ.js → chunk-XNGMQ27R.js} +16 -6
  64. package/dist/{chunk-W3EKCZSQ.js → chunk-Y5GE76XC.js} +180 -53
  65. package/dist/{chunk-EWORLJMO.js → chunk-Y5MXET4M.js} +277 -526
  66. package/dist/{chunk-XCK2YAY5.js → chunk-YVZJ6GKF.js} +3 -2
  67. package/dist/{chunk-YO4PSLVB.js → chunk-ZRL6HKBY.js} +1 -1
  68. package/dist/claude-launcher-YVXI76NX.js +102 -0
  69. package/dist/{cli-AEWH62UE.js → cli-C77H54BV.js} +489 -174
  70. package/dist/{command-HHPBR6CS.js → command-H5CILO4S.js} +40 -37
  71. package/dist/{config-N3C6DFQA.js → config-FXDG4NPJ.js} +2 -3
  72. package/dist/connect-cmd-ZW5FV3ZW.js +17 -0
  73. package/dist/{context-adopt-VMMGFRUZ.js → context-adopt-O5OFXMKI.js} +13 -12
  74. package/dist/context-materialize-Y5IJ4MQT.js +23 -0
  75. package/dist/{dist-LKDWQWZ7.js → dist-QTX4RSCL.js} +2 -2
  76. package/dist/{docker-4J77Q2BF.js → docker-RC3PRX3Q.js} +7 -8
  77. package/dist/{doctor-N6Y7HKK3.js → doctor-2NQQML6P.js} +47 -39
  78. package/dist/{emit-artifact-cmd-H5MH3AOP.js → emit-artifact-cmd-7MP63KXU.js} +25 -22
  79. package/dist/emit-cmd-PPN4QQF2.js +14 -0
  80. package/dist/{emit-criteria-cmd-HBP6XS5C.js → emit-criteria-cmd-3RXPDLNK.js} +16 -14
  81. package/dist/{emit-finding-cmd-ZXDRL6PG.js → emit-finding-cmd-OL7JB6H3.js} +18 -16
  82. package/dist/{emit-result-cmd-RFKALS5Z.js → emit-result-cmd-UZVMOCF4.js} +20 -17
  83. package/dist/{exec-client-CQV746UF.js → exec-client-7UMESIE2.js} +3 -4
  84. package/dist/governing-source-BUU4IABS.js +35 -0
  85. package/dist/guest-init-KPBQOFE5.js +9 -0
  86. package/dist/hidden-prompt-UXBFMQC5.js +68 -0
  87. package/dist/{hook-fast-D7HV4IXG.js → hook-fast-W5MKHMJT.js} +4 -1
  88. package/dist/host-key-U4B5QETR.js +8 -0
  89. package/dist/{import-capture-cmd-EQ35EARA.js → import-capture-cmd-ZO6KGHI2.js} +7 -5
  90. package/dist/{import-ruler-cmd-BGAZXCQM.js → import-ruler-cmd-KJMWL5V6.js} +5 -3
  91. package/dist/index.js +8 -4
  92. package/dist/init-VWXIZEAN.js +54 -0
  93. package/dist/{init-FBCA4DRA.js → init-WNXXYMO7.js} +80 -53
  94. package/dist/{init-cmd-CAG572UE.js → init-cmd-WS6TIRYT.js} +28 -24
  95. package/dist/{init-update-VDFF4K3B.js → init-update-E3J6TVIN.js} +27 -26
  96. package/dist/{install-HDBIPHTX.js → install-CBWIEF3R.js} +4 -5
  97. package/dist/{install-cmd-5HYMXLEW.js → install-cmd-QDOTR4OM.js} +5 -4
  98. package/dist/{login-browser-QZCS3WW6.js → login-browser-O63QZN7D.js} +4 -3
  99. package/dist/{logout-cmd-QAUFDJ6J.js → logout-cmd-5V5MMBSY.js} +3 -2
  100. package/dist/{logs-H55NWW4H.js → logs-AMLKC3VP.js} +3 -1
  101. package/dist/loop-UGI2BJOT.js +76 -0
  102. package/dist/machine-JOW4RNZ7.js +49 -0
  103. package/dist/{mcp-install-cmd-FDTPQQS6.js → mcp-install-cmd-GGWB3JJ2.js} +3 -2
  104. package/dist/{mcp-serve-cmd-3KVYEUXG.js → mcp-serve-cmd-DOTY5FKY.js} +10 -8
  105. package/dist/paths-7XP63OAX.js +7 -0
  106. package/dist/pending-532ABZYC.js +8 -0
  107. package/dist/{pidfile-UZRH774M.js → pidfile-3DM4OBKO.js} +4 -2
  108. package/dist/{record-C43U4PKS.js → record-3WP6V2K5.js} +3 -2
  109. package/dist/{runner-env-EN7YE7QX.js → runner-env-4NB2GA7O.js} +5 -6
  110. package/dist/runner-key-TC3NFWFV.js +177 -0
  111. package/dist/{session-sender-24L5EW25.js → session-sender-NNVPSPY7.js} +17 -14
  112. package/dist/spec-cmd-OWVTBB4J.js +116 -0
  113. package/dist/{starter-pack-KF66HGZR.js → starter-pack-OPWUDOWX.js} +7 -5
  114. package/dist/{status-XHSGEYO5.js → status-TKCLLKFG.js} +42 -39
  115. package/dist/{statusline-fast-SVTMBMD7.js → statusline-fast-KN3BX67H.js} +2 -1
  116. package/dist/{sync-cmd-5G5EIEHD.js → sync-cmd-Q6VYNPWG.js} +16 -13
  117. package/dist/{watch-UTOXO4SE.js → watch-ARAGADTF.js} +16 -13
  118. package/dist/{work-claim-cmd-RKHYFE5Y.js → work-claim-cmd-34FERLYX.js} +25 -27
  119. package/dist/work-cmd-7S5B2H2P.js +25 -0
  120. package/dist/{work-comment-cmd-A55CUSYE.js → work-comment-cmd-SZJSPM5S.js} +15 -13
  121. package/dist/{work-launch-R5HTAP6X.js → work-launch-LEQ2MPM3.js} +3 -1
  122. package/dist/{work-open-pr-cmd-E6O53IJD.js → work-open-pr-cmd-RPXKCBWS.js} +17 -15
  123. package/dist/work-pr-cmd-5LGANL32.js +26 -0
  124. package/package.json +3 -2
  125. package/skill-pack/maintained/outerlayer-amend/SKILL.md +6 -2
  126. package/skill-pack/maintained/outerlayer-cli/SKILL.md +2 -0
  127. package/skill-pack/maintained/outerlayer-evidence/SKILL.md +4 -2
  128. package/skill-pack/maintained/outerlayer-findings/SKILL.md +2 -0
  129. package/skill-pack/shipped.json +27 -5
  130. package/skill-pack/template/build/SKILL.md +25 -10
  131. package/skill-pack/template/build/references/agent-briefs.md +3 -1
  132. package/skill-pack/template/build/references/criteria-judge.md +27 -0
  133. package/skill-pack/template/build/references/release.md +27 -34
  134. package/skill-pack/template/build/scripts/criterion-citations.mjs +8 -3
  135. package/skill-pack/template/build/scripts/record-criteria.mjs +8 -2
  136. package/skill-pack/template/spec/SKILL.md +37 -10
  137. package/skill-pack/validators/acceptance-criteria.yaml +25 -25
  138. package/skill-pack/validators/code-review.yaml +6 -5
  139. package/dist/agent-setup-K3ABU5NL.js +0 -27
  140. package/dist/chunk-BYT5O5RV.js +0 -61
  141. package/dist/connect-cmd-JUAW6MU4.js +0 -16
  142. package/dist/context-materialize-2WXTS4CW.js +0 -22
  143. package/dist/emit-cmd-IJ3GVRFD.js +0 -12
  144. package/dist/guest-init-LJP5GPZF.js +0 -9
  145. package/dist/host-key-YMLXY6QB.js +0 -7
  146. package/dist/init-MYX7YMIH.js +0 -51
  147. package/dist/loop-75J4YXLZ.js +0 -73
  148. package/dist/machine-A6ZCTUGS.js +0 -46
  149. package/dist/paths-OYKMVYJP.js +0 -6
  150. package/dist/pending-MXLSRYMO.js +0 -7
  151. package/dist/runner-key-W25ISHI3.js +0 -155
  152. package/dist/work-cmd-DJQJEZVB.js +0 -23
  153. package/dist/work-pr-cmd-L77K32WK.js +0 -24
@@ -1,58 +1,61 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { LEASE_SECONDS, ALREADY_RELEASED, RENEW_INTERVAL_SECONDS } from './chunk-R4ZQQ7U2.js';
4
- import './chunk-RMWLBUCJ.js';
5
- import './chunk-HYZRY4KZ.js';
6
- import './chunk-ONRCEE6D.js';
7
- import './chunk-U3HXXRTY.js';
8
- import './chunk-HHJDN6AU.js';
3
+ import { LEASE_SECONDS, ALREADY_RELEASED, RENEW_INTERVAL_SECONDS } from './chunk-3OFZM4X6.js';
4
+ import './chunk-SADUQSO4.js';
5
+ import './chunk-UYOYTKE2.js';
6
+ import './chunk-XNGMQ27R.js';
9
7
  import { formatBytes } from './chunk-YYYRBYWG.js';
8
+ import './chunk-JF42URPU.js';
9
+ import './chunk-ESVW4MJY.js';
10
10
  import './chunk-TBT347UY.js';
11
- import { formatDuration, formatClock, relativeToRunner } from './chunk-EWORLJMO.js';
12
- import './chunk-KMDLFI4P.js';
13
- import './chunk-QKFB4K7X.js';
14
- import './chunk-RSNSZ2LJ.js';
15
- import './chunk-6QRMLNH3.js';
16
- import './chunk-NPQWKGUA.js';
11
+ import './chunk-Y5MXET4M.js';
12
+ import './chunk-L2USZT6T.js';
13
+ import './chunk-S26M3YBJ.js';
14
+ import './chunk-GGOMT6KF.js';
15
+ import './chunk-X5H2WYMB.js';
16
+ import { formatDuration, formatClock, relativeToRunner } from './chunk-6CHIYEZZ.js';
17
+ import './chunk-KK4VBOH6.js';
18
+ import './chunk-WBT5X3NH.js';
17
19
  import './chunk-IP7BIBXJ.js';
18
- import './chunk-22RMZBGW.js';
20
+ import './chunk-S76AYB4M.js';
21
+ import './chunk-MQJSXHV7.js';
22
+ import './chunk-XGP3VYOG.js';
19
23
  import './chunk-UXYLWVTQ.js';
20
- import './chunk-R7PF5OOU.js';
21
- import './chunk-QOZKPLVJ.js';
22
- import './chunk-N5FOE5PS.js';
23
- import './chunk-OGFGZQA3.js';
24
- import './chunk-4NPZVMJU.js';
25
24
  import './chunk-7RQ73DLO.js';
26
- import './chunk-4Q7OMKAT.js';
25
+ import './chunk-3CWUOFV6.js';
26
+ import './chunk-QOZKPLVJ.js';
27
27
  import './chunk-CX22S5BA.js';
28
+ import './chunk-ECODQ7II.js';
29
+ import './chunk-JBJTC3UU.js';
30
+ import './chunk-OGFGZQA3.js';
28
31
  import './chunk-F7CU5ABH.js';
29
32
  import './chunk-BKO6JEZI.js';
30
- import './chunk-YDSMROTB.js';
31
- import './chunk-WUYTWNMA.js';
32
- import './chunk-JXYVA45C.js';
33
- import './chunk-4KSQKQXE.js';
34
- import './chunk-N6LURUEF.js';
35
- import './chunk-YRYMNBGQ.js';
36
- import './chunk-GQD22KKN.js';
33
+ import './chunk-BMYGAGBJ.js';
34
+ import './chunk-NACDBXUG.js';
35
+ import './chunk-GOSFARMS.js';
36
+ import './chunk-ANPNT6PM.js';
37
+ import './chunk-T2Q7ISPE.js';
37
38
  import './chunk-WZBHBH3J.js';
38
39
  import './chunk-5QRP3MVS.js';
39
- import './chunk-JEHRUE3F.js';
40
- import './chunk-WTE3MQML.js';
41
- import './chunk-C5Y5ZJJZ.js';
42
- import './chunk-ZJSNLVCE.js';
43
- import './chunk-YO4PSLVB.js';
44
- import './chunk-BYT5O5RV.js';
45
- import './chunk-POJMEEJJ.js';
46
- import './chunk-OHVJA253.js';
47
- import './chunk-PLMTLGYH.js';
48
- import './chunk-J5M7BSJQ.js';
40
+ import './chunk-W5VPCONO.js';
41
+ import './chunk-LXAY4A2G.js';
42
+ import './chunk-T4Y6SCG3.js';
43
+ import './chunk-ZRL6HKBY.js';
44
+ import './chunk-52NC2FIU.js';
45
+ import './chunk-MNTSH4CL.js';
46
+ import './chunk-X5N6KC6V.js';
47
+ import './chunk-N3CUDFCW.js';
49
48
  import './chunk-EABW6AJQ.js';
50
49
  import './chunk-RA3O54FC.js';
51
- import './chunk-V7NIVOFD.js';
52
- import { runnerDir, jobsDir } from './chunk-ZM2IMMYN.js';
53
- import './chunk-6JNURGOA.js';
50
+ import './chunk-M2ZWWTWZ.js';
51
+ import { runnerDir, jobsDir } from './chunk-N2PXGQRL.js';
52
+ import './chunk-BQXFBI7T.js';
53
+ import './chunk-ULSIJGLS.js';
54
+ import './chunk-G2YNJIGF.js';
54
55
  import './chunk-XCCLFVXM.js';
56
+ import './chunk-ZJSNLVCE.js';
55
57
  import './chunk-BJ3KTMDH.js';
58
+ import './chunk-CRB3POP4.js';
56
59
  import './chunk-VNVZDWO3.js';
57
60
  import './chunk-Z5GEFMRW.js';
58
61
  import { join } from 'path';
@@ -1,8 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { STATE_FRESH_MS, WRAP_TIMEOUT_MS, localDateString, parseStatuslineArgs, parseStatuslineStdin, readStatuslineState, renderStatusline, runStatuslineFast, runWrappedStatusline, statuslineStatePath } from './chunk-F47JBIAW.js';
3
+ export { STATE_FRESH_MS, WRAP_TIMEOUT_MS, localDateString, parseStatuslineArgs, parseStatuslineStdin, readStatuslineState, renderStatusline, runStatuslineFast, runWrappedStatusline, statuslineStatePath } from './chunk-DSF2FWAZ.js';
4
4
  import './chunk-BKO6JEZI.js';
5
5
  import './chunk-5QRP3MVS.js';
6
+ import './chunk-CRB3POP4.js';
6
7
  import './chunk-VNVZDWO3.js';
7
8
  import './chunk-Z5GEFMRW.js';
8
9
 
@@ -1,27 +1,30 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { CHUNK_PART_TARGET_BYTES, RETRYABLE_STATUSES, SyncConfigError, SyncTransportError, detectCi, isLoopbackUrl, resolveTier, runSync } from './chunk-U3HXXRTY.js';
4
- import './chunk-HHJDN6AU.js';
3
+ export { CHUNK_PART_TARGET_BYTES, RETRYABLE_STATUSES, SyncConfigError, SyncTransportError, detectCi, isLoopbackUrl, resolveTier, runSync } from './chunk-JF42URPU.js';
4
+ import './chunk-ESVW4MJY.js';
5
5
  import './chunk-TBT347UY.js';
6
6
  import './chunk-IP7BIBXJ.js';
7
+ import './chunk-MQJSXHV7.js';
7
8
  import './chunk-F7CU5ABH.js';
8
9
  import './chunk-BKO6JEZI.js';
9
- import './chunk-WUYTWNMA.js';
10
- import './chunk-JXYVA45C.js';
11
- import './chunk-YRYMNBGQ.js';
12
- import './chunk-GQD22KKN.js';
10
+ import './chunk-BMYGAGBJ.js';
11
+ import './chunk-ANPNT6PM.js';
12
+ import './chunk-T2Q7ISPE.js';
13
13
  import './chunk-WZBHBH3J.js';
14
14
  import './chunk-5QRP3MVS.js';
15
- import './chunk-ZJSNLVCE.js';
16
- import './chunk-YO4PSLVB.js';
17
- import './chunk-PLMTLGYH.js';
18
- import './chunk-J5M7BSJQ.js';
15
+ import './chunk-ZRL6HKBY.js';
16
+ import './chunk-52NC2FIU.js';
17
+ import './chunk-N3CUDFCW.js';
19
18
  export { cloudConfigPath, readCloudConfig, writeCloudConfig } from './chunk-EABW6AJQ.js';
20
- import './chunk-V7NIVOFD.js';
21
- import './chunk-ZM2IMMYN.js';
22
- import './chunk-6JNURGOA.js';
19
+ import './chunk-M2ZWWTWZ.js';
20
+ import './chunk-N2PXGQRL.js';
21
+ import './chunk-BQXFBI7T.js';
22
+ import './chunk-ULSIJGLS.js';
23
+ import './chunk-G2YNJIGF.js';
23
24
  import './chunk-XCCLFVXM.js';
25
+ import './chunk-ZJSNLVCE.js';
24
26
  import './chunk-BJ3KTMDH.js';
27
+ import './chunk-CRB3POP4.js';
25
28
  import './chunk-VNVZDWO3.js';
26
29
  import './chunk-Z5GEFMRW.js';
27
30
 
@@ -1,27 +1,30 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { LiveUploader } from './chunk-U3HXXRTY.js';
4
- import './chunk-HHJDN6AU.js';
3
+ import { LiveUploader } from './chunk-JF42URPU.js';
4
+ import './chunk-ESVW4MJY.js';
5
5
  import './chunk-TBT347UY.js';
6
6
  import './chunk-IP7BIBXJ.js';
7
+ import './chunk-MQJSXHV7.js';
7
8
  import './chunk-F7CU5ABH.js';
8
9
  import './chunk-BKO6JEZI.js';
9
- import './chunk-WUYTWNMA.js';
10
- import { StatuslineAggregator, CaptureDaemon } from './chunk-JXYVA45C.js';
11
- import './chunk-YRYMNBGQ.js';
12
- import './chunk-GQD22KKN.js';
10
+ import { StatuslineAggregator, CaptureDaemon } from './chunk-BMYGAGBJ.js';
11
+ import './chunk-ANPNT6PM.js';
12
+ import './chunk-T2Q7ISPE.js';
13
13
  import './chunk-WZBHBH3J.js';
14
14
  import './chunk-5QRP3MVS.js';
15
- import './chunk-ZJSNLVCE.js';
16
- import './chunk-YO4PSLVB.js';
17
- import './chunk-PLMTLGYH.js';
18
- import './chunk-J5M7BSJQ.js';
15
+ import './chunk-ZRL6HKBY.js';
16
+ import './chunk-52NC2FIU.js';
17
+ import './chunk-N3CUDFCW.js';
19
18
  import './chunk-EABW6AJQ.js';
20
- import './chunk-V7NIVOFD.js';
21
- import './chunk-ZM2IMMYN.js';
22
- import './chunk-6JNURGOA.js';
19
+ import './chunk-M2ZWWTWZ.js';
20
+ import './chunk-N2PXGQRL.js';
21
+ import './chunk-BQXFBI7T.js';
22
+ import './chunk-ULSIJGLS.js';
23
+ import './chunk-G2YNJIGF.js';
23
24
  import './chunk-XCCLFVXM.js';
25
+ import './chunk-ZJSNLVCE.js';
24
26
  import './chunk-BJ3KTMDH.js';
27
+ import './chunk-CRB3POP4.js';
25
28
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
26
29
  import './chunk-Z5GEFMRW.js';
27
30
  import { mkdirSync, writeFileSync } from 'fs';
@@ -1,29 +1,29 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { RUNNER_PROTOCOL } from './chunk-ADJRGVZC.js';
4
- import { resolveCredentials, WorkCommandError, parsePositiveInt, postJson, environmentFacts, resolveRepository, findLiveItem } from './chunk-6QRMLNH3.js';
5
- export { WorkCommandError } from './chunk-6QRMLNH3.js';
6
- import './chunk-NPQWKGUA.js';
3
+ import { RUNNER_PROTOCOL } from './chunk-KDVIU23F.js';
4
+ import { resolveCredentials, WorkCommandError, parsePositiveInt, postJson, environmentFacts, findLiveItemForIssue } from './chunk-KK4VBOH6.js';
5
+ export { WorkCommandError } from './chunk-KK4VBOH6.js';
6
+ import './chunk-WBT5X3NH.js';
7
7
  import './chunk-IP7BIBXJ.js';
8
- import { defaultRunnerConfigPath } from './chunk-22RMZBGW.js';
8
+ import './chunk-S76AYB4M.js';
9
+ import './chunk-MQJSXHV7.js';
10
+ import { defaultRunnerConfigPath } from './chunk-XGP3VYOG.js';
9
11
  import './chunk-UXYLWVTQ.js';
10
12
  import './chunk-7RQ73DLO.js';
11
- import './chunk-4Q7OMKAT.js';
12
- import './chunk-YDSMROTB.js';
13
- import './chunk-WUYTWNMA.js';
14
- import './chunk-JXYVA45C.js';
15
- import './chunk-4KSQKQXE.js';
16
- import './chunk-N6LURUEF.js';
17
- import './chunk-YRYMNBGQ.js';
13
+ import './chunk-BMYGAGBJ.js';
14
+ import './chunk-NACDBXUG.js';
15
+ import './chunk-GOSFARMS.js';
16
+ import './chunk-ANPNT6PM.js';
18
17
  import './chunk-WZBHBH3J.js';
19
- import { defaultFetch } from './chunk-YO4PSLVB.js';
20
- import './chunk-BYT5O5RV.js';
21
- import './chunk-PLMTLGYH.js';
22
- import './chunk-J5M7BSJQ.js';
18
+ import { defaultFetch } from './chunk-ZRL6HKBY.js';
19
+ import './chunk-52NC2FIU.js';
20
+ import './chunk-N3CUDFCW.js';
23
21
  import './chunk-EABW6AJQ.js';
24
- import { ensureHostKey } from './chunk-V7NIVOFD.js';
25
- import './chunk-ZM2IMMYN.js';
22
+ import { ensureHostKey } from './chunk-M2ZWWTWZ.js';
23
+ import './chunk-N2PXGQRL.js';
24
+ import './chunk-BQXFBI7T.js';
26
25
  import './chunk-BJ3KTMDH.js';
26
+ import './chunk-CRB3POP4.js';
27
27
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
28
28
  import './chunk-Z5GEFMRW.js';
29
29
  import { hostname } from 'os';
@@ -37,16 +37,14 @@ var CLAIM_OUTCOMES = ["ok", "incomplete", "failed", "timed_out", "idle", "lease_
37
37
  async function resolveItemIdentifier(opts, creds, cwd, fetchImpl) {
38
38
  const itemNumber = parsePositiveInt(opts.item, "--item");
39
39
  if (itemNumber !== void 0) return itemNumber;
40
- const issue = parsePositiveInt(opts.issue, "--issue");
41
- if (issue === void 0) {
42
- throw new WorkCommandError("pass --item <number> or --issue <number>");
40
+ if (opts.issue === void 0) {
41
+ throw new WorkCommandError("pass --item <number> or --issue <number or key>");
43
42
  }
44
- const repository = resolveRepository(opts.repo, cwd);
45
- const found = await findLiveItem(creds, repository, { issue }, fetchImpl);
46
- if (!found) {
47
- throw new WorkCommandError(`no live item for ${repository}#${issue}`);
43
+ const { item, label } = await findLiveItemForIssue(creds, { ...opts, cwd }, fetchImpl);
44
+ if (!item) {
45
+ throw new WorkCommandError(`no live item for ${label}`);
48
46
  }
49
- return found.id;
47
+ return item.id;
50
48
  }
51
49
  async function runWorkClaim(opts) {
52
50
  const cwd = opts.cwd ?? process.cwd();
@@ -118,7 +116,7 @@ async function runWorkRelease(opts) {
118
116
  { sessionId, ended: true },
119
117
  fetchImpl
120
118
  );
121
- const { markWorkLeaseRenewed } = await import('./hook-fast-D7HV4IXG.js');
119
+ const { markWorkLeaseRenewed } = await import('./hook-fast-W5MKHMJT.js');
122
120
  markWorkLeaseRenewed(sessionId, opts.home ?? homeFromEnv(env));
123
121
  const output2 = opts.json ? JSON.stringify(data2) : `released session ${sessionId}'s lease on #${itemId}, if it held one`;
124
122
  if (!opts.quiet) process.stdout.write(output2 + "\n");
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire } from 'node:module';
3
+ export { WorkCommandError, environmentFacts, findLiveItemForIssue, getJson, parsePositiveInt, patchJson, postJson, resolveCredentials, runWorkBuild, runWorkLinkSession, runWorkList, runWorkRemove, runWorkStatus } from './chunk-KK4VBOH6.js';
4
+ import './chunk-WBT5X3NH.js';
5
+ import './chunk-IP7BIBXJ.js';
6
+ import './chunk-S76AYB4M.js';
7
+ import './chunk-MQJSXHV7.js';
8
+ import './chunk-BMYGAGBJ.js';
9
+ import './chunk-NACDBXUG.js';
10
+ import './chunk-GOSFARMS.js';
11
+ import './chunk-ANPNT6PM.js';
12
+ import './chunk-WZBHBH3J.js';
13
+ import './chunk-ZRL6HKBY.js';
14
+ import './chunk-52NC2FIU.js';
15
+ import './chunk-N3CUDFCW.js';
16
+ import './chunk-EABW6AJQ.js';
17
+ import './chunk-M2ZWWTWZ.js';
18
+ import './chunk-N2PXGQRL.js';
19
+ import './chunk-BQXFBI7T.js';
20
+ import './chunk-BJ3KTMDH.js';
21
+ import './chunk-CRB3POP4.js';
22
+ import './chunk-VNVZDWO3.js';
23
+ import './chunk-Z5GEFMRW.js';
24
+
25
+ createRequire(import.meta.url);
@@ -1,22 +1,24 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { resolveCredentials, postJson, getJson } from './chunk-6QRMLNH3.js';
4
- import './chunk-NPQWKGUA.js';
3
+ import { resolveCredentials, postJson, getJson } from './chunk-KK4VBOH6.js';
4
+ import './chunk-WBT5X3NH.js';
5
5
  import { detectActiveSession } from './chunk-IP7BIBXJ.js';
6
- import './chunk-YDSMROTB.js';
7
- import { sanitizeTerminal } from './chunk-WUYTWNMA.js';
8
- import { resolveRepoIdentity } from './chunk-JXYVA45C.js';
9
- import './chunk-4KSQKQXE.js';
10
- import './chunk-N6LURUEF.js';
11
- import { C } from './chunk-YRYMNBGQ.js';
6
+ import './chunk-S76AYB4M.js';
7
+ import { sanitizeTerminal } from './chunk-MQJSXHV7.js';
8
+ import { resolveRepoIdentity } from './chunk-BMYGAGBJ.js';
9
+ import './chunk-NACDBXUG.js';
10
+ import './chunk-GOSFARMS.js';
11
+ import { C } from './chunk-ANPNT6PM.js';
12
12
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
13
- import { defaultFetch } from './chunk-YO4PSLVB.js';
14
- import './chunk-PLMTLGYH.js';
15
- import './chunk-J5M7BSJQ.js';
13
+ import { defaultFetch } from './chunk-ZRL6HKBY.js';
14
+ import './chunk-52NC2FIU.js';
15
+ import './chunk-N3CUDFCW.js';
16
16
  import './chunk-EABW6AJQ.js';
17
- import './chunk-V7NIVOFD.js';
18
- import './chunk-ZM2IMMYN.js';
17
+ import './chunk-M2ZWWTWZ.js';
18
+ import './chunk-N2PXGQRL.js';
19
+ import './chunk-BQXFBI7T.js';
19
20
  import './chunk-BJ3KTMDH.js';
21
+ import './chunk-CRB3POP4.js';
20
22
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
21
23
  import './chunk-Z5GEFMRW.js';
22
24
  import { randomUUID } from 'crypto';
@@ -1,7 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { appendLaunchRecord, launchStatusIsDecisive, launchedItemForSession, launchedItemsBySession, launchesPath, parseWorkItemEnv, readLaunchSpoolState } from './chunk-GQD22KKN.js';
3
+ export { appendLaunchRecord, launchStatusIsDecisive, launchedItemForSession, launchedItemsBySession, launchesPath, parseWorkItemEnv, readLaunchSpoolState } from './chunk-T2Q7ISPE.js';
4
4
  import './chunk-WZBHBH3J.js';
5
+ import './chunk-CRB3POP4.js';
6
+ import './chunk-VNVZDWO3.js';
5
7
  import './chunk-Z5GEFMRW.js';
6
8
 
7
9
  createRequire(import.meta.url);
@@ -1,24 +1,26 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { itemLabel, runWorkPr, WorkPrCommandError } from './chunk-JJEGKEFV.js';
4
- import { resolveCredentials } from './chunk-6QRMLNH3.js';
5
- import './chunk-NPQWKGUA.js';
3
+ import { itemLabel, runWorkPr, WorkPrCommandError } from './chunk-B3UKB46N.js';
4
+ import { resolveCredentials } from './chunk-KK4VBOH6.js';
5
+ import './chunk-WBT5X3NH.js';
6
6
  import './chunk-IP7BIBXJ.js';
7
- import './chunk-YDSMROTB.js';
8
- import './chunk-WUYTWNMA.js';
9
- import './chunk-JXYVA45C.js';
10
- import './chunk-4KSQKQXE.js';
11
- import './chunk-N6LURUEF.js';
12
- import { C } from './chunk-YRYMNBGQ.js';
13
- import { parseWorkItemEnv } from './chunk-GQD22KKN.js';
7
+ import './chunk-S76AYB4M.js';
8
+ import './chunk-MQJSXHV7.js';
9
+ import './chunk-BMYGAGBJ.js';
10
+ import './chunk-NACDBXUG.js';
11
+ import './chunk-GOSFARMS.js';
12
+ import { C } from './chunk-ANPNT6PM.js';
13
+ import { parseWorkItemEnv } from './chunk-T2Q7ISPE.js';
14
14
  import './chunk-WZBHBH3J.js';
15
- import { defaultFetch } from './chunk-YO4PSLVB.js';
16
- import './chunk-PLMTLGYH.js';
17
- import './chunk-J5M7BSJQ.js';
15
+ import { defaultFetch } from './chunk-ZRL6HKBY.js';
16
+ import './chunk-52NC2FIU.js';
17
+ import './chunk-N3CUDFCW.js';
18
18
  import './chunk-EABW6AJQ.js';
19
- import './chunk-V7NIVOFD.js';
20
- import './chunk-ZM2IMMYN.js';
19
+ import './chunk-M2ZWWTWZ.js';
20
+ import './chunk-N2PXGQRL.js';
21
+ import './chunk-BQXFBI7T.js';
21
22
  import './chunk-BJ3KTMDH.js';
23
+ import './chunk-CRB3POP4.js';
22
24
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
23
25
  import './chunk-Z5GEFMRW.js';
24
26
  import { spawnSync } from 'child_process';
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env node
2
+ import { createRequire } from 'node:module';
3
+ export { WorkPrCommandError, itemLabel, runWorkPr } from './chunk-B3UKB46N.js';
4
+ import './chunk-WBT5X3NH.js';
5
+ import './chunk-IP7BIBXJ.js';
6
+ import './chunk-S76AYB4M.js';
7
+ import './chunk-MQJSXHV7.js';
8
+ import './chunk-BMYGAGBJ.js';
9
+ import './chunk-NACDBXUG.js';
10
+ import './chunk-GOSFARMS.js';
11
+ import './chunk-ANPNT6PM.js';
12
+ import './chunk-T2Q7ISPE.js';
13
+ import './chunk-WZBHBH3J.js';
14
+ import './chunk-ZRL6HKBY.js';
15
+ import './chunk-52NC2FIU.js';
16
+ import './chunk-N3CUDFCW.js';
17
+ import './chunk-EABW6AJQ.js';
18
+ import './chunk-M2ZWWTWZ.js';
19
+ import './chunk-N2PXGQRL.js';
20
+ import './chunk-BQXFBI7T.js';
21
+ import './chunk-BJ3KTMDH.js';
22
+ import './chunk-CRB3POP4.js';
23
+ import './chunk-VNVZDWO3.js';
24
+ import './chunk-Z5GEFMRW.js';
25
+
26
+ createRequire(import.meta.url);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@outerlayer/cli",
3
- "version": "0.16.1",
4
- "description": "OuterLayer CLI — commands: init, connect, doctor, login, logout, sync, daemon (alias: watch), emit, work, runner, hooks, mcp, import, context. Capture and sync coding-agent sessions, and record proof of factory work.",
3
+ "version": "0.18.0",
4
+ "description": "OuterLayer CLI — commands: init, connect, doctor, login, logout, sync, daemon (alias: watch), emit, work, spec, runner, hooks, mcp, import, context. Capture and sync coding-agent sessions, and record proof of factory work.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Magu Studios, Inc.",
7
7
  "repository": {
@@ -49,6 +49,7 @@
49
49
  "@outerlayer/context-format": "0.1.0",
50
50
  "@outerlayer/runner-signature": "0.1.0",
51
51
  "@outerlayer/session-schema": "0.1.0",
52
+ "@outerlayer/trackers": "0.0.0",
52
53
  "@stryker-mutator/core": "10.0.0",
53
54
  "@stryker-mutator/vitest-runner": "10.0.0",
54
55
  "@types/node": "^22.20.1",
@@ -8,6 +8,8 @@ description: >
8
8
  "fix what the reviewer failed". Invoke with /outerlayer-amend.
9
9
  ---
10
10
 
11
+ Run the CLI as `outerlayer`. If that command is not on PATH, run `npx -y @outerlayer/cli` with the same arguments. Every `outerlayer ...` command below follows this rule.
12
+
11
13
  Answer every thread waiting on an agent on one work item's pull request, then
12
14
  stop. A work item has one general thread and one thread per acceptance
13
15
  criterion. A person's fail on the general thread leaves it waiting on an agent.
@@ -58,8 +60,10 @@ checkout you change. A push goes only to that checkout's own branch.
58
60
  waiting, say so and stop: there is nothing to answer. Then read
59
61
  `outerlayer work status --item "$OUTERLAYER_WORK" --json` for the pull
60
62
  request in `pullRequests` (`repository`, `prNumber`).
61
- 2. **Re-orient.** Read the issue the item names and the pull request, including
62
- its evidence comment, through the team's tracker tool or the git host. The
63
+ 2. **Re-orient.** Read the issue the item names from the status JSON's
64
+ `issue`, OuterLayer's copy of it, which needs no tracker credential:
65
+ `issue.body` is its description in Markdown. Read the pull request,
66
+ including its evidence comment, through the git host. The
63
67
  issue body is the spec. Find each thread's criterion there. Read every
64
68
  person's comment since the last agent comment on the thread. Read them
65
69
  literally: they are the reviewer's instruction.
@@ -9,6 +9,8 @@ description: >
9
9
  review.
10
10
  ---
11
11
 
12
+ Run the CLI as `outerlayer`. If that command is not on PATH, run `npx -y @outerlayer/cli` with the same arguments. Every `outerlayer ...` command below follows this rule.
13
+
12
14
  OuterLayer is a software factory. An issue goes in. A reviewed and verified
13
15
  pull request comes out, with the evidence that backs it. An agent builds it in
14
16
  this repository, on the machine it already runs on.
@@ -8,6 +8,8 @@ description: >
8
8
  works", and in CI steps that produce verifiable output.
9
9
  ---
10
10
 
11
+ Run the CLI as `outerlayer`. If that command is not on PATH, run `npx -y @outerlayer/cli` with the same arguments. Every `outerlayer ...` command below follows this rule.
12
+
11
13
  An artifact is an exhibit: evidence *of* a specific change, anchored to the
12
14
  pull request and rendered in its evidence comment. Emit the few exhibits the
13
15
  spec asks for — a reviewer should see the change working, not a gallery.
@@ -98,7 +100,7 @@ Emit the review report, an HTML file, as a report artifact with no `--for`:
98
100
 
99
101
  outerlayer emit artifact review.html --caption "Review of the change and what it found"
100
102
 
101
- Then run `outerlayer sync`, and copy the report's deep link from the pull request's evidence comment. Never build the link by hand, and never link a pull request comment. Record the review's verdict on the `code-review` check that `outerlayer init` writes, with that link as its proof:
103
+ Then run `outerlayer sync`. It prints a line for the report that ends with its link (`outerlayer sync --json` lists them under `uploadedArtifacts`). Take the link from that line. If `sync` printed no line for the report, another sync already uploaded it: run `outerlayer sync --link <the artifact id>`, with the id `emit artifact` printed. Never build the link by hand, and never link a pull request comment. Record the review's verdict on the `code-review` check that `outerlayer init` writes, with that link as its proof:
102
104
 
103
105
  outerlayer emit code-review --item "$OUTERLAYER_WORK" --result pass --link <the report's deep link>
104
106
 
@@ -108,7 +110,7 @@ Use `--result fail` when the review left a finding unfixed. Record it once. Outs
108
110
 
109
111
  Bind the judge's report on each criterion, an HTML file, with `--for acceptance-criteria`. The item page links it at the top of its Criteria tab for the reviewer. Emit it only when the item has recorded criteria.
110
112
 
111
- Then run `outerlayer sync`, copy the report's deep link from the evidence comment the same way, and record the judge's verdict on the `acceptance-criteria` check that `outerlayer init` writes:
113
+ Then run `outerlayer sync`, take the report's deep link from the line it prints the same way, and record the judge's verdict on the `acceptance-criteria` check that `outerlayer init` writes:
112
114
 
113
115
  outerlayer emit acceptance-criteria --item "$OUTERLAYER_WORK" --result pass --link <the report's deep link>
114
116
 
@@ -12,6 +12,8 @@ description: >
12
12
  `outerlayer emit finding` command.
13
13
  ---
14
14
 
15
+ Run the CLI as `outerlayer`. If that command is not on PATH, run `npx -y @outerlayer/cli` with the same arguments. Every `outerlayer ...` command below follows this rule.
16
+
15
17
  ## What this is for
16
18
 
17
19
  A finding is a problem in the factory, not in the change: an instruction
@@ -7,23 +7,31 @@
7
7
  ],
8
8
  ".outerlayer/skills/build/SKILL.md": [
9
9
  "0fe8ee00567a1e8942de27597b0a64588fd4b75abd8fb5cd4998785b3e6c7f2b",
10
+ "4fad19c9f33c6282b675d88f2571aa8281b7fad53e49cc696781a9b3eb7d28c1",
10
11
  "5cf9bd75fb1f984f6e6b470d1f1581dc06168abf062448e6f43711fed8f6632a",
11
12
  "6177ea457be0d238659640e6d29807708d60d68533ae3ff93af10fb513139ced",
12
13
  "77cab8b446fb1aa865710f7cb8356c5334301a942f58f9243766bf1acf1377ad",
14
+ "815c0b5816511e8f7c927aa3fd3bf386537dcdd039b9c6ec4d18d30c8c3c9b1a",
13
15
  "93953397c31d47a6f1c06edb8ae2190e1d8a3fca20c616deb33991311cee39a8",
14
16
  "a6743050c5c387e962ad4264526d9a3c10edf36823e4b6829f200bf79a4e45e7",
17
+ "a7671ebf0d8f4119b77ed9322d4070e1a7f0c94108b8ad17925b985f677cd37a",
15
18
  "b0aa9b6962675f772b67a4390c15b6b0100390983d958c656a826a066399f3d0",
16
19
  "b95986e95ea3b1ef4202f7f0c00bfcd35865d4fda033b3d6947a5bb9d33cd24c",
17
- "f4e1661c6f87d7ff6d23c6182530fa0a9cb87c4dc3f31e48f2be11f32ebb2c00"
20
+ "e9d086f6b989e3a17f14d6dcaacabd438bed861076f9a620fce61accc8fce4fb",
21
+ "f4e1661c6f87d7ff6d23c6182530fa0a9cb87c4dc3f31e48f2be11f32ebb2c00",
22
+ "f8dce3631e1b58d1de7268f55335d908bbd529937c8bdf5be2ec4d7747b70002"
18
23
  ],
19
24
  ".outerlayer/skills/build/references/agent-briefs.md": [
20
25
  "09bfa482e1d7f8ceabd29a6e23e74641f3ff6e655126362d27a05df422c584ed",
21
26
  "20eece295abc7ccecd289ce6d408dd3c4c038e2cbfdb3acdba069bd0ccb86496",
22
27
  "3c875a4f287f574eea954c6daa52b17529cdeba8ec4007d78084d911350d1218",
28
+ "4505ced3667d5ca619ae3075219f0175bbcb35445b82b3cf5bde554602249feb",
23
29
  "7c2a651e7c827d8e3fb9df889d3776b552eb02d315db5ace27d2baad78aab6a5"
24
30
  ],
25
31
  ".outerlayer/skills/build/references/criteria-judge.md": [
26
- "62db8f6d77f31ca25a9071c05429e0f639f9b2bdd7f7cb04cb14a1b0db509537"
32
+ "17edca78b2e7922a01c34d2ff3e0d1206b68a52e8c6c3a7405d0c684e4fa8e28",
33
+ "62db8f6d77f31ca25a9071c05429e0f639f9b2bdd7f7cb04cb14a1b0db509537",
34
+ "da684635c7269c3507f0c6d9bd5b73ed9405a7b1ba8ad9e17dc541465208d614"
27
35
  ],
28
36
  ".outerlayer/skills/build/references/evidence.md": [
29
37
  "557d62885555606d64e86cc9fb16a5e2ee0f2257e6fe2aeec5a294292d57cecf",
@@ -35,8 +43,12 @@
35
43
  "1113259bdf7d8c28edcbdb9b4c83c2f2bd4c5eaf817cf30bf428478ff91694e9",
36
44
  "1d0e000433676a39c7ac4fbf3e92b1fe4235b10240c09f87ec0003f3c8d7956e",
37
45
  "1f4fe97ca8f11d6681db5734f3103af5ea175a9472ff1d38b10cb463f4956a6a",
46
+ "4153d69f6882ba72db97c236134dc24ae4ad7f46a30e13ac075bac4567a6cfd0",
38
47
  "4687f56bcec766f1926d58a208418f800a1727c073b5e6047b40e3aaac2bd6c9",
48
+ "4cfc10bc9d380e67b0ec5c243eb5f2c63f03ee3348d7956a45467620acc656fc",
49
+ "7ba5273d911f6830a2d7575d446ea997d4b8c99a6826137c555990dd7dd54f3b",
39
50
  "81a764eb317fcb4672bedd35e7b9aa68d1c0b73f82fc2dfa03e5a78758db8f14",
51
+ "85069e15aa3fdfeb8a0d1b8d1a450fb6a574bcf933246a7b7f7864be1c39faa3",
40
52
  "985e02b98105b00c356014e003b2d60e9c458c3dcbeef7378274ccb84af031fc"
41
53
  ],
42
54
  ".outerlayer/skills/build/references/review-briefs.md": [
@@ -51,15 +63,21 @@
51
63
  "9d4d2e5e0307ea8c38cf885cd67d06a939b7fc2bed65f5080ca9610178949d74"
52
64
  ],
53
65
  ".outerlayer/skills/build/scripts/criterion-citations.mjs": [
54
- "0902118ec216182f9d0ba0f6c7966306ad6891d8e846022123d3f86aaf175fce"
66
+ "0902118ec216182f9d0ba0f6c7966306ad6891d8e846022123d3f86aaf175fce",
67
+ "aa9446b29c7c8fa4d312b8ec54b2a2a154f52708691a7eaf61e3a1b67ae6a9ef"
55
68
  ],
56
69
  ".outerlayer/skills/build/scripts/record-criteria.mjs": [
57
70
  "36f19e730bc220fa21622b3bb0a306999f038b8220a0a07a1efe21ec0f748729",
58
71
  "596e9a78e62cbea040a3bf428cd54bf59687e9e89001fad719304f88d03ca2ea",
59
- "64de9445087b247b0781a4e6e025ef97b1259ce1c91819bf541decc26b8f8400"
72
+ "64de9445087b247b0781a4e6e025ef97b1259ce1c91819bf541decc26b8f8400",
73
+ "f3d6ed58118209d8b169d00b4283d48f25d3cac5121d2e29364274dd36ed113a"
60
74
  ],
61
75
  ".outerlayer/skills/spec/SKILL.md": [
76
+ "1dcc8d22e037b6cd93a5e3f0cb3f3bf97cf634313e2668c08bfded376cd5d01b",
77
+ "5848f2424fbd071d6097a736408b6d7c462a5c1b7c141b5e81ed3e5a60b717be",
62
78
  "71e81fabf353ad6117c54e061868538bf00066b78c2528f5a8364445d1def02e",
79
+ "7676c9a19f8ea8741ffbe8f09e4600764cb3f98c2c6bce15ee5a90b4c5f1d41e",
80
+ "82f75a53c591f94615dc27c099e94fcf95e2a09b95aceb38b9022d5f7f054cb0",
63
81
  "9039ae30d4e836b5c5cfba4a14344e46fd13694ae9e4d88e750abce34dfcd9e6"
64
82
  ],
65
83
  ".outerlayer/skills/writing-specs/SKILL.md": [
@@ -74,10 +92,14 @@
74
92
  "b00f5970b568159ca0bfbc75c3834938749ad5e2e73a80769d88bbe3c8c26737"
75
93
  ],
76
94
  ".outerlayer/validators/acceptance-criteria.yaml": [
77
- "3b2054aa1d4bd9f7441e88eec1a3bdf61b61ad00efa79736e26a5dd601d43910"
95
+ "3b2054aa1d4bd9f7441e88eec1a3bdf61b61ad00efa79736e26a5dd601d43910",
96
+ "79679ed304b64f2b100dab2a24e91aa403a0a831e5a91ef4e6d7e7f06478ada0",
97
+ "ca0da7d98a7922577d9725b615510f964de4d49987697b956d5ac1a45a3d2c6a",
98
+ "d9bef4bf0962015c662f1bc16d86807414dfc6e095f99aa3727bc4613676ab2a"
78
99
  ],
79
100
  ".outerlayer/validators/code-review.yaml": [
80
101
  "05041976e4d84d6256ed88995ea4fd1566abc6d3a9574863065cf855dcafcf70",
102
+ "40653bc6b170f28be1df410d9d8e270987184a2d04cbec588ae07f50afa59ba3",
81
103
  "fbdf0baca0064b09e47f5984afc322d582accd142c3377c06622bc6567b0e98c"
82
104
  ]
83
105
  }