@outerlayer/cli 0.8.3 → 0.8.4

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 (68) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/{agent-setup-FMTXHWWM.js → agent-setup-LEQF4V5F.js} +9 -7
  3. package/dist/build-info.json +1 -1
  4. package/dist/{builder-QZA2Z3M3.js → builder-5UFAF5LW.js} +3 -3
  5. package/dist/{check-AFYUJ5SQ.js → check-NJX52PBN.js} +21 -21
  6. package/dist/{chunk-42OX3Q3A.js → chunk-2MFYKH3C.js} +1 -1
  7. package/dist/{chunk-NT5M6LF3.js → chunk-4KPMIGBQ.js} +8 -8
  8. package/dist/{chunk-4NOIKXUL.js → chunk-6AFQOYO3.js} +3 -3
  9. package/dist/{chunk-KZ2FOICE.js → chunk-AGMIJ725.js} +34 -5
  10. package/dist/{chunk-ZYHKJKSU.js → chunk-BL63NBJZ.js} +1 -1
  11. package/dist/{chunk-HN2JBGSI.js → chunk-CDISNKM4.js} +1 -1
  12. package/dist/{chunk-CLURXEWV.js → chunk-DE4GLH3P.js} +1 -1
  13. package/dist/{chunk-OULFBETM.js → chunk-DSPYQUH4.js} +2 -2
  14. package/dist/{chunk-SMPKFYKY.js → chunk-FCDET2U5.js} +3 -3
  15. package/dist/{chunk-4GS22GWM.js → chunk-FTW6C2E7.js} +7 -7
  16. package/dist/{chunk-BPTAOD6W.js → chunk-GJ3OWUFO.js} +8 -8
  17. package/dist/{chunk-YCHJIAP2.js → chunk-H6IGIE3I.js} +4 -4
  18. package/dist/{chunk-OCHRV5A6.js → chunk-IOG6LPEI.js} +2 -2
  19. package/dist/{chunk-7HWIKEU5.js → chunk-K4MGMSMN.js} +1 -1
  20. package/dist/{chunk-VITHLJOZ.js → chunk-LKUUQ3XV.js} +1 -1
  21. package/dist/{chunk-SPUWEK2Q.js → chunk-LUY6I65J.js} +8 -8
  22. package/dist/{chunk-WMPO3SKK.js → chunk-MSV44EB5.js} +4 -4
  23. package/dist/{chunk-36H5BONJ.js → chunk-NKU5OPYP.js} +31 -37
  24. package/dist/{chunk-YNJEOGDL.js → chunk-PK5NANMT.js} +1 -1
  25. package/dist/{chunk-33GOCSRO.js → chunk-PVC36MFI.js} +3 -3
  26. package/dist/{chunk-BORFBENT.js → chunk-SWGQAURM.js} +4 -4
  27. package/dist/{chunk-EWBM2USM.js → chunk-TFJGK4UB.js} +6 -3
  28. package/dist/{chunk-2OZH6ZY2.js → chunk-TY7EZC7U.js} +5 -5
  29. package/dist/{chunk-NPBLDMSD.js → chunk-WGLWDX5J.js} +1 -1
  30. package/dist/{chunk-OPSPDEVU.js → chunk-WLV4KCAW.js} +1 -1
  31. package/dist/{cli-L2TU7WDF.js → cli-JXPTHJHQ.js} +59 -59
  32. package/dist/{command-J5KLUIOI.js → command-WKRTL3JQ.js} +14 -14
  33. package/dist/{connect-cmd-NV7WVBY7.js → connect-cmd-YEO7WRSL.js} +4 -4
  34. package/dist/{context-adopt-3GFYGDRT.js → context-adopt-3REPEEQR.js} +5 -5
  35. package/dist/{context-materialize-YBOW5YCC.js → context-materialize-DU6B6RXF.js} +5 -5
  36. package/dist/{dist-2LNAXGPZ.js → dist-PKBWZAAL.js} +2 -2
  37. package/dist/{docker-RSALMGPL.js → docker-5DUNHNOH.js} +4 -4
  38. package/dist/{doctor-M65EXDE6.js → doctor-FEIBPZL7.js} +16 -16
  39. package/dist/{emit-artifact-cmd-SGDZQNHP.js → emit-artifact-cmd-S3CASUQK.js} +7 -7
  40. package/dist/{emit-cmd-KBVRX42C.js → emit-cmd-ETI47BA6.js} +4 -4
  41. package/dist/{emit-criteria-cmd-PSZYZ32B.js → emit-criteria-cmd-ZTUP7OGA.js} +5 -5
  42. package/dist/{emit-finding-cmd-VTSYDJYZ.js → emit-finding-cmd-TTXBZ4B7.js} +5 -5
  43. package/dist/{emit-result-cmd-ANAY4ZXF.js → emit-result-cmd-34OC6TI5.js} +7 -7
  44. package/dist/{hook-fast-B7TFCJR2.js → hook-fast-CFLLVMSV.js} +1 -1
  45. package/dist/{import-capture-cmd-SD6FI2BM.js → import-capture-cmd-Z3232HR4.js} +3 -3
  46. package/dist/{import-ruler-cmd-NUSPILXT.js → import-ruler-cmd-2PLXZXM7.js} +2 -2
  47. package/dist/index.js +3 -3
  48. package/dist/{init-EE4JI2E4.js → init-AHQHM56A.js} +15 -15
  49. package/dist/{init-S2Z3YDK2.js → init-UZ5TXACM.js} +15 -15
  50. package/dist/{init-cmd-X6BETOWP.js → init-cmd-F4FS5AVC.js} +10 -10
  51. package/dist/{loop-CR46DEHT.js → loop-C34EVXAP.js} +21 -21
  52. package/dist/{machine-XZ34ENE2.js → machine-Y3TBDMXD.js} +14 -14
  53. package/dist/{session-sender-B67S2DHF.js → session-sender-LKVVLAUP.js} +6 -6
  54. package/dist/{starter-pack-TC6HZ7JK.js → starter-pack-L5WPXL4Q.js} +4 -4
  55. package/dist/{status-HIOSSWBN.js → status-7RNWHYG6.js} +17 -17
  56. package/dist/{sync-cmd-JN5RXCJQ.js → sync-cmd-VH6HSMG5.js} +5 -5
  57. package/dist/{watch-2H4RVURC.js → watch-HUKDEFUX.js} +5 -5
  58. package/dist/{work-claim-cmd-JUC6E3R2.js → work-claim-cmd-JLCU5SPP.js} +7 -7
  59. package/dist/{work-cmd-66GA4ETV.js → work-cmd-SBKQJBJ2.js} +6 -6
  60. package/dist/{work-comment-cmd-J5K47MBZ.js → work-comment-cmd-TNUDUUAT.js} +6 -6
  61. package/dist/{work-open-pr-cmd-X46UWSPE.js → work-open-pr-cmd-IB57SMAD.js} +7 -7
  62. package/dist/{work-pr-cmd-T6SU4TYN.js → work-pr-cmd-HDDNFSKA.js} +6 -6
  63. package/package.json +1 -1
  64. package/skill-pack/maintained/emitting-evidence/SKILL.md +12 -5
  65. package/skill-pack/template/build/SKILL.md +6 -2
  66. package/skill-pack/template/build/references/release.md +13 -0
  67. package/skill-pack/template/build/references/review-loop.md +3 -1
  68. package/skill-pack/validators/code-review.yaml +27 -0
@@ -1,31 +1,31 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { LEASE_SECONDS, ALREADY_RELEASED, RENEW_INTERVAL_SECONDS } from './chunk-NT5M6LF3.js';
3
+ import { LEASE_SECONDS, ALREADY_RELEASED, RENEW_INTERVAL_SECONDS } from './chunk-4KPMIGBQ.js';
4
4
  import './chunk-T6OIJQRT.js';
5
- import './chunk-SMPKFYKY.js';
5
+ import './chunk-FCDET2U5.js';
6
6
  import './chunk-J5DPVNL3.js';
7
- import './chunk-YCHJIAP2.js';
7
+ import './chunk-H6IGIE3I.js';
8
8
  import './chunk-HHJDN6AU.js';
9
9
  import { formatBytes } from './chunk-YYYRBYWG.js';
10
10
  import './chunk-TBT347UY.js';
11
- import { formatDuration, formatClock, relativeToRunner } from './chunk-BPTAOD6W.js';
11
+ import { formatDuration, formatClock, relativeToRunner } from './chunk-GJ3OWUFO.js';
12
12
  import './chunk-Y7UQHKFY.js';
13
13
  import './chunk-N5FOE5PS.js';
14
14
  import './chunk-OGFGZQA3.js';
15
- import './chunk-NPBLDMSD.js';
15
+ import './chunk-WGLWDX5J.js';
16
16
  import './chunk-QOZKPLVJ.js';
17
- import './chunk-CLURXEWV.js';
17
+ import './chunk-DE4GLH3P.js';
18
18
  import './chunk-CX22S5BA.js';
19
19
  import './chunk-HWMYGAKF.js';
20
20
  import './chunk-2E2MG3KW.js';
21
21
  import './chunk-F7CU5ABH.js';
22
22
  import './chunk-BKO6JEZI.js';
23
- import './chunk-2OZH6ZY2.js';
24
- import './chunk-WMPO3SKK.js';
23
+ import './chunk-TY7EZC7U.js';
24
+ import './chunk-MSV44EB5.js';
25
25
  import './chunk-BFESLKPP.js';
26
- import './chunk-EWBM2USM.js';
27
- import './chunk-ZYHKJKSU.js';
28
- import './chunk-HN2JBGSI.js';
26
+ import './chunk-TFJGK4UB.js';
27
+ import './chunk-BL63NBJZ.js';
28
+ import './chunk-CDISNKM4.js';
29
29
  import './chunk-USO2DKBD.js';
30
30
  import './chunk-N6LURUEF.js';
31
31
  import './chunk-YRYMNBGQ.js';
@@ -37,19 +37,19 @@ import './chunk-HKMPVPO7.js';
37
37
  import './chunk-GQD22KKN.js';
38
38
  import './chunk-WZBHBH3J.js';
39
39
  import './chunk-5QRP3MVS.js';
40
- import './chunk-4NOIKXUL.js';
40
+ import './chunk-6AFQOYO3.js';
41
41
  import './chunk-ZJSNLVCE.js';
42
- import './chunk-42OX3Q3A.js';
43
- import './chunk-OPSPDEVU.js';
44
- import './chunk-36H5BONJ.js';
42
+ import './chunk-2MFYKH3C.js';
43
+ import './chunk-WLV4KCAW.js';
44
+ import './chunk-NKU5OPYP.js';
45
45
  import './chunk-YO4PSLVB.js';
46
46
  import './chunk-PLMTLGYH.js';
47
- import './chunk-YNJEOGDL.js';
47
+ import './chunk-PK5NANMT.js';
48
48
  import './chunk-EABW6AJQ.js';
49
49
  import './chunk-RA3O54FC.js';
50
50
  import './chunk-V7NIVOFD.js';
51
51
  import { runnerDir, jobsDir } from './chunk-ZM2IMMYN.js';
52
- import './chunk-7HWIKEU5.js';
52
+ import './chunk-K4MGMSMN.js';
53
53
  import './chunk-XCCLFVXM.js';
54
54
  import './chunk-BJ3KTMDH.js';
55
55
  import './chunk-VNVZDWO3.js';
@@ -1,13 +1,13 @@
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-YCHJIAP2.js';
3
+ export { CHUNK_PART_TARGET_BYTES, RETRYABLE_STATUSES, SyncConfigError, SyncTransportError, detectCi, isLoopbackUrl, resolveTier, runSync } from './chunk-H6IGIE3I.js';
4
4
  import './chunk-HHJDN6AU.js';
5
5
  import './chunk-TBT347UY.js';
6
6
  import './chunk-F7CU5ABH.js';
7
7
  import './chunk-BKO6JEZI.js';
8
8
  import './chunk-BFESLKPP.js';
9
- import './chunk-ZYHKJKSU.js';
10
- import './chunk-HN2JBGSI.js';
9
+ import './chunk-BL63NBJZ.js';
10
+ import './chunk-CDISNKM4.js';
11
11
  import './chunk-YRYMNBGQ.js';
12
12
  import './chunk-GQD22KKN.js';
13
13
  import './chunk-WZBHBH3J.js';
@@ -15,11 +15,11 @@ import './chunk-5QRP3MVS.js';
15
15
  import './chunk-ZJSNLVCE.js';
16
16
  import './chunk-YO4PSLVB.js';
17
17
  import './chunk-PLMTLGYH.js';
18
- import './chunk-YNJEOGDL.js';
18
+ import './chunk-PK5NANMT.js';
19
19
  export { cloudConfigPath, readCloudConfig, writeCloudConfig } from './chunk-EABW6AJQ.js';
20
20
  import './chunk-V7NIVOFD.js';
21
21
  import './chunk-ZM2IMMYN.js';
22
- import './chunk-7HWIKEU5.js';
22
+ import './chunk-K4MGMSMN.js';
23
23
  import './chunk-XCCLFVXM.js';
24
24
  import './chunk-BJ3KTMDH.js';
25
25
  import './chunk-VNVZDWO3.js';
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { LiveUploader } from './chunk-YCHJIAP2.js';
3
+ import { LiveUploader } from './chunk-H6IGIE3I.js';
4
4
  import './chunk-HHJDN6AU.js';
5
5
  import './chunk-TBT347UY.js';
6
6
  import './chunk-F7CU5ABH.js';
7
7
  import './chunk-BKO6JEZI.js';
8
8
  import './chunk-BFESLKPP.js';
9
- import './chunk-ZYHKJKSU.js';
10
- import { StatuslineAggregator, CaptureDaemon } from './chunk-HN2JBGSI.js';
9
+ import './chunk-BL63NBJZ.js';
10
+ import { StatuslineAggregator, CaptureDaemon } from './chunk-CDISNKM4.js';
11
11
  import './chunk-YRYMNBGQ.js';
12
12
  import './chunk-GQD22KKN.js';
13
13
  import './chunk-WZBHBH3J.js';
@@ -15,11 +15,11 @@ import './chunk-5QRP3MVS.js';
15
15
  import './chunk-ZJSNLVCE.js';
16
16
  import './chunk-YO4PSLVB.js';
17
17
  import './chunk-PLMTLGYH.js';
18
- import './chunk-YNJEOGDL.js';
18
+ import './chunk-PK5NANMT.js';
19
19
  import './chunk-EABW6AJQ.js';
20
20
  import './chunk-V7NIVOFD.js';
21
21
  import './chunk-ZM2IMMYN.js';
22
- import './chunk-7HWIKEU5.js';
22
+ import './chunk-K4MGMSMN.js';
23
23
  import './chunk-XCCLFVXM.js';
24
24
  import './chunk-BJ3KTMDH.js';
25
25
  import { homeFromEnv } from './chunk-VNVZDWO3.js';
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
3
  import { RUNNER_PROTOCOL } from './chunk-AIW6GLET.js';
4
- import { resolveCredentials, WorkCommandError, parsePositiveInt, postJson, resolveRepository, findLiveItem } from './chunk-2OZH6ZY2.js';
5
- export { WorkCommandError } from './chunk-2OZH6ZY2.js';
6
- import './chunk-WMPO3SKK.js';
4
+ import { resolveCredentials, WorkCommandError, parsePositiveInt, postJson, resolveRepository, findLiveItem } from './chunk-TY7EZC7U.js';
5
+ export { WorkCommandError } from './chunk-TY7EZC7U.js';
6
+ import './chunk-MSV44EB5.js';
7
7
  import './chunk-BFESLKPP.js';
8
- import './chunk-EWBM2USM.js';
9
- import './chunk-ZYHKJKSU.js';
10
- import './chunk-HN2JBGSI.js';
8
+ import './chunk-TFJGK4UB.js';
9
+ import './chunk-BL63NBJZ.js';
10
+ import './chunk-CDISNKM4.js';
11
11
  import './chunk-USO2DKBD.js';
12
12
  import './chunk-N6LURUEF.js';
13
13
  import './chunk-YRYMNBGQ.js';
@@ -19,7 +19,7 @@ import './chunk-HKMPVPO7.js';
19
19
  import './chunk-WZBHBH3J.js';
20
20
  import { defaultFetch } from './chunk-YO4PSLVB.js';
21
21
  import './chunk-PLMTLGYH.js';
22
- import './chunk-YNJEOGDL.js';
22
+ import './chunk-PK5NANMT.js';
23
23
  import './chunk-EABW6AJQ.js';
24
24
  import { ensureHostKey } from './chunk-V7NIVOFD.js';
25
25
  import './chunk-ZM2IMMYN.js';
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { WorkCommandError, findLiveItem, getJson, parsePositiveInt, postJson, resolveCredentials, resolveRepository, runWorkBuild, runWorkLinkSession, runWorkList, runWorkRemove, runWorkStatus } from './chunk-2OZH6ZY2.js';
4
- import './chunk-WMPO3SKK.js';
3
+ export { WorkCommandError, findLiveItem, getJson, parsePositiveInt, postJson, resolveCredentials, resolveRepository, runWorkBuild, runWorkLinkSession, runWorkList, runWorkRemove, runWorkStatus } from './chunk-TY7EZC7U.js';
4
+ import './chunk-MSV44EB5.js';
5
5
  import './chunk-BFESLKPP.js';
6
- import './chunk-EWBM2USM.js';
7
- import './chunk-ZYHKJKSU.js';
8
- import './chunk-HN2JBGSI.js';
6
+ import './chunk-TFJGK4UB.js';
7
+ import './chunk-BL63NBJZ.js';
8
+ import './chunk-CDISNKM4.js';
9
9
  import './chunk-USO2DKBD.js';
10
10
  import './chunk-N6LURUEF.js';
11
11
  import './chunk-YRYMNBGQ.js';
12
12
  import './chunk-WZBHBH3J.js';
13
13
  import './chunk-YO4PSLVB.js';
14
14
  import './chunk-PLMTLGYH.js';
15
- import './chunk-YNJEOGDL.js';
15
+ import './chunk-PK5NANMT.js';
16
16
  import './chunk-EABW6AJQ.js';
17
17
  import './chunk-V7NIVOFD.js';
18
18
  import './chunk-ZM2IMMYN.js';
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { resolveCredentials, postJson, getJson } from './chunk-2OZH6ZY2.js';
4
- import './chunk-WMPO3SKK.js';
3
+ import { resolveCredentials, postJson, getJson } from './chunk-TY7EZC7U.js';
4
+ import './chunk-MSV44EB5.js';
5
5
  import { detectActiveSession } from './chunk-BFESLKPP.js';
6
- import './chunk-EWBM2USM.js';
7
- import { sanitizeTerminal } from './chunk-ZYHKJKSU.js';
8
- import { resolveRepoIdentity } from './chunk-HN2JBGSI.js';
6
+ import './chunk-TFJGK4UB.js';
7
+ import { sanitizeTerminal } from './chunk-BL63NBJZ.js';
8
+ import { resolveRepoIdentity } from './chunk-CDISNKM4.js';
9
9
  import './chunk-USO2DKBD.js';
10
10
  import './chunk-N6LURUEF.js';
11
11
  import './chunk-YRYMNBGQ.js';
12
12
  import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
13
13
  import { defaultFetch } from './chunk-YO4PSLVB.js';
14
14
  import './chunk-PLMTLGYH.js';
15
- import './chunk-YNJEOGDL.js';
15
+ import './chunk-PK5NANMT.js';
16
16
  import './chunk-EABW6AJQ.js';
17
17
  import './chunk-V7NIVOFD.js';
18
18
  import './chunk-ZM2IMMYN.js';
@@ -1,19 +1,19 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- import { runWorkPr, WorkPrCommandError } from './chunk-33GOCSRO.js';
4
- import { resolveCredentials } from './chunk-2OZH6ZY2.js';
5
- import './chunk-WMPO3SKK.js';
3
+ import { runWorkPr, WorkPrCommandError } from './chunk-PVC36MFI.js';
4
+ import { resolveCredentials } from './chunk-TY7EZC7U.js';
5
+ import './chunk-MSV44EB5.js';
6
6
  import './chunk-BFESLKPP.js';
7
- import './chunk-EWBM2USM.js';
8
- import './chunk-ZYHKJKSU.js';
9
- import './chunk-HN2JBGSI.js';
7
+ import './chunk-TFJGK4UB.js';
8
+ import './chunk-BL63NBJZ.js';
9
+ import './chunk-CDISNKM4.js';
10
10
  import './chunk-USO2DKBD.js';
11
11
  import './chunk-N6LURUEF.js';
12
12
  import './chunk-YRYMNBGQ.js';
13
13
  import './chunk-WZBHBH3J.js';
14
14
  import { defaultFetch } from './chunk-YO4PSLVB.js';
15
15
  import './chunk-PLMTLGYH.js';
16
- import './chunk-YNJEOGDL.js';
16
+ import './chunk-PK5NANMT.js';
17
17
  import './chunk-EABW6AJQ.js';
18
18
  import './chunk-V7NIVOFD.js';
19
19
  import './chunk-ZM2IMMYN.js';
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire } from 'node:module';
3
- export { WorkPrCommandError, runWorkPr } from './chunk-33GOCSRO.js';
4
- import './chunk-WMPO3SKK.js';
3
+ export { WorkPrCommandError, runWorkPr } from './chunk-PVC36MFI.js';
4
+ import './chunk-MSV44EB5.js';
5
5
  import './chunk-BFESLKPP.js';
6
- import './chunk-EWBM2USM.js';
7
- import './chunk-ZYHKJKSU.js';
8
- import './chunk-HN2JBGSI.js';
6
+ import './chunk-TFJGK4UB.js';
7
+ import './chunk-BL63NBJZ.js';
8
+ import './chunk-CDISNKM4.js';
9
9
  import './chunk-USO2DKBD.js';
10
10
  import './chunk-N6LURUEF.js';
11
11
  import './chunk-YRYMNBGQ.js';
12
12
  import './chunk-WZBHBH3J.js';
13
13
  import './chunk-YO4PSLVB.js';
14
14
  import './chunk-PLMTLGYH.js';
15
- import './chunk-YNJEOGDL.js';
15
+ import './chunk-PK5NANMT.js';
16
16
  import './chunk-EABW6AJQ.js';
17
17
  import './chunk-V7NIVOFD.js';
18
18
  import './chunk-ZM2IMMYN.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@outerlayer/cli",
3
- "version": "0.8.3",
3
+ "version": "0.8.4",
4
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.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Magu Studios, Inc.",
@@ -92,14 +92,21 @@ come from the CI environment). From a plain machine it anchors through the
92
92
  git checkout, or pass `--pr <n>` explicitly. If there is nothing to attach
93
93
  to, the command refuses — emit from the work, not from nowhere.
94
94
 
95
- ## Report artifacts bound with `--for`
95
+ ## The review report and the `code-review` check
96
96
 
97
- Two report artifacts have a `--for` name. Bind each with `--for`:
97
+ Emit the review report, an HTML file, as a report artifact with no `--for`:
98
98
 
99
- - `--for code-review-ran` for the review report, an HTML file. The default `code-review-ran` check reads it.
100
- - `--for acceptance-criteria` for the judge's report on each criterion, an HTML file. No check requires it. The item page links it at the top of its Criteria tab for the reviewer. Emit it only when the item has recorded criteria.
99
+ outerlayer emit artifact review.html --caption "Review of the change and what it found"
101
100
 
102
- outerlayer emit artifact review.html --caption "Review of the change and what it found" --for code-review-ran
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:
102
+
103
+ outerlayer emit code-review --item "$OUTERLAYER_WORK" --result pass --link <the report's deep link>
104
+
105
+ Use `--result fail` when the review left a finding unfixed. Record it once. Outside a build, pass the item's number to `--item`.
106
+
107
+ ## The criteria report
108
+
109
+ Bind the judge's report on each criterion, an HTML file, with `--for acceptance-criteria`. No check requires it. The item page links it at the top of its Criteria tab for the reviewer. Emit it only when the item has recorded criteria.
103
110
 
104
111
  A session never records a pass or fail on an artifact. It emits the artifact, and a person or a check decides.
105
112
 
@@ -84,7 +84,8 @@ These bind the orchestrator in every phase. Rule 5 also binds every spawned agen
84
84
  "$OUTERLAYER_WORK" --json`. Each thread with `waitingOn` of `agent` holds a
85
85
  person's comment. Answer each before the run ends, as the `amend` skill does.
86
86
  5. **A session never records a pass or fail on an artifact.** It emits
87
- artifacts. A person decides pass or fail.
87
+ artifacts. A person decides pass or fail. The one result a build records
88
+ is its own review's verdict, on the `code-review` check.
88
89
  6. **Observed status only.** Every status claim in the final report (a gate
89
90
  result, a CI conclusion, mergeability) quotes command output observed
90
91
  after the last change it describes. No quoted output means unknown, never
@@ -175,7 +176,10 @@ Run them in order.
175
176
  merged into classes, checked by a refuter, fixed, and rechecked once. Then
176
177
  write the review report as an HTML file and emit it:
177
178
 
178
- outerlayer emit artifact <report>.html --for code-review-ran --caption "Review of the change and what it found"
179
+ outerlayer emit artifact <report>.html --caption "Review of the change and what it found"
180
+
181
+ Its verdict is recorded on the `code-review` check once the pull request
182
+ is open, as release.md says.
179
183
 
180
184
  5. **Sync and pull request.** Read [references/release.md](references/release.md)
181
185
  on entry and run it. A release agent rebases, gates and pushes. Open the
@@ -46,6 +46,19 @@ A runner build declares nothing. `outerlayer work open-pr` opens the pull
46
46
  request and links it to the item in one step. Check that it reports the pull
47
47
  request before going on.
48
48
 
49
+ ## Record the code review
50
+
51
+ Once the pull request is linked, run `outerlayer sync`. Copy the review
52
+ report's deep link from the pull request's evidence comment. Never build the
53
+ link by hand, and never link a pull request comment. Then record the review's
54
+ verdict on the `code-review` check, once:
55
+
56
+ outerlayer emit code-review --item "$OUTERLAYER_WORK" --result pass --link <the report's deep link>
57
+
58
+ Record `--result fail` when the review ended with a blocking finding unfixed.
59
+ When the link has not appeared after a sync, stop and name it as a blocker in
60
+ the final report. Never record the result with another link.
61
+
49
62
  ## Judge the criteria
50
63
 
51
64
  When the issue has criteria, spawn one fresh agent on
@@ -155,4 +155,6 @@ budget. Budget spent without convergence means escalate.
155
155
  Finish by writing the review report as one HTML file: the tier and why, the
156
156
  classes with their verdicts, what was fixed, and an "Unverified,
157
157
  non-blocking" section for anything left unrefuted. Emit it with
158
- `outerlayer emit artifact <report>.html --for code-review-ran`.
158
+ `outerlayer emit artifact <report>.html`, with no `--for`. Its verdict is
159
+ recorded on the `code-review` check once the pull request is open; see
160
+ [release.md](release.md).
@@ -0,0 +1,27 @@
1
+ # Yours to edit. Written once by outerlayer init; never overwritten.
2
+ #
3
+ # How to satisfy this row: after the review of a change is done, write its
4
+ # findings report (each confirmed finding with its severity and fix, or a
5
+ # clean bill) as an .html file. Emit it as a report artifact with no --for:
6
+ # outerlayer emit artifact review.html --caption "Review of the change and what it found"
7
+ # Then run `outerlayer sync`, and copy the report's deep link from the pull
8
+ # request's evidence comment. Never build the link by hand, and never link a
9
+ # pull request comment: a comment can be edited or deleted later.
10
+ #
11
+ # Then record the verdict once, with that link as its proof:
12
+ # outerlayer emit code-review --item "$OUTERLAYER_WORK" --result pass --link <the report's deep link>
13
+ # Use --result fail when the review found something that still needs fixing.
14
+ # Until a result is recorded, the row reads "not proven". While a host still
15
+ # holds the work item's claim, it reads as waiting.
16
+ #
17
+ # `where: ci` means the result comes from `outerlayer emit`: OuterLayer runs
18
+ # nothing for this check, and a result from a session, CI or a person counts.
19
+ # The row claims only what that proves: a code review result is recorded,
20
+ # not what the review found.
21
+ id: code-review
22
+ kind: validation
23
+ row: "A code review result is recorded for this change"
24
+ level: warn
25
+ run:
26
+ where: ci
27
+ emit: code-review