@outerlayer/cli 0.22.1 → 0.23.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.
- package/CHANGELOG.md +20 -0
- package/README.md +4 -1
- package/dist/{agent-setup-LTSLXPS3.js → agent-setup-SNDCEHG2.js} +14 -12
- package/dist/{artifact-link-cmd-OWRI5AJX.js → artifact-link-cmd-LEI6EOZE.js} +2 -2
- package/dist/bridge-QFN3KJP6.js +8 -0
- package/dist/{build-6WRNZPVR.js → build-WHHFA7KM.js} +2 -2
- package/dist/build-info.json +1 -1
- package/dist/{builder-G3MLDMTI.js → builder-7FBQAWQZ.js} +3 -3
- package/dist/{check-UYKEMQNR.js → check-3CGLWMHM.js} +37 -37
- package/dist/{chunk-ZPSLJFGL.js → chunk-2TT7DEMZ.js} +2 -2
- package/dist/{chunk-3V5C64Y5.js → chunk-6AOZD3LY.js} +3 -4
- package/dist/{chunk-5NJIWKD4.js → chunk-BOG4ENP7.js} +9 -9
- package/dist/{chunk-G3IJ3N6F.js → chunk-BUP5N3X6.js} +1 -1
- package/dist/{chunk-FRNYCJ4W.js → chunk-C2XZBNHY.js} +1 -1
- package/dist/{chunk-BET347JZ.js → chunk-C64D7HR3.js} +6 -7
- package/dist/{chunk-AEKSX4EY.js → chunk-CBCKD6DO.js} +1 -1
- package/dist/{chunk-56X5TOJY.js → chunk-D64E222W.js} +5 -6
- package/dist/{chunk-URAKVDSI.js → chunk-DJYOCD65.js} +9 -10
- package/dist/{chunk-IZSVXRDR.js → chunk-DXDF43YG.js} +1 -1
- package/dist/{chunk-F7CU5ABH.js → chunk-DYEFPYME.js} +1 -1
- package/dist/{chunk-ORNJJ7XN.js → chunk-FX6IHR5C.js} +11 -12
- package/dist/{chunk-ENTHEUKT.js → chunk-G3LHWUBK.js} +4 -4
- package/dist/{chunk-5QRP3MVS.js → chunk-GNPTU4BM.js} +9 -4
- package/dist/{chunk-JRCSET55.js → chunk-GXV73IIS.js} +6 -6
- package/dist/{chunk-5OCIHFGE.js → chunk-HBISTTG3.js} +32 -23
- package/dist/chunk-JKNYTNYD.js +151 -0
- package/dist/{chunk-CUFFDEF3.js → chunk-KGKFEONR.js} +4 -4
- package/dist/{chunk-USWVXQIH.js → chunk-MQ743JX3.js} +3 -3
- package/dist/{chunk-XR56WEA5.js → chunk-OGMZJWWD.js} +1 -1
- package/dist/chunk-QS43O4DR.js +113 -0
- package/dist/{chunk-FOCML5FI.js → chunk-QSEPKZXR.js} +15 -14
- package/dist/{chunk-7VUK5RFS.js → chunk-QZBXLLTV.js} +36 -1
- package/dist/{chunk-WFSUUUAN.js → chunk-RKOTJQVG.js} +1 -1
- package/dist/{chunk-7FEY33MY.js → chunk-TFGXOHF6.js} +13 -13
- package/dist/{chunk-V7SAQ645.js → chunk-VJBFQP3H.js} +21 -12
- package/dist/{chunk-ZNPE7FW5.js → chunk-VPEGE3QZ.js} +1 -1
- package/dist/{chunk-W3SWJ2TD.js → chunk-VWFOKRYS.js} +5 -2
- package/dist/{chunk-XCRZTXRL.js → chunk-WX2WEERU.js} +63 -43
- package/dist/chunk-WXJXHZVB.js +73 -0
- package/dist/{chunk-BOMRFYTZ.js → chunk-WY7HFY62.js} +3 -3
- package/dist/{chunk-VSUXCMMH.js → chunk-XFGL53GU.js} +51 -33
- package/dist/{chunk-6YBLN4TR.js → chunk-XGPC3IOR.js} +4 -5
- package/dist/{chunk-QC72I5GQ.js → chunk-XOEV4FVK.js} +3 -3
- package/dist/{chunk-EAQSOE62.js → chunk-XSPA5ODY.js} +21 -19
- package/dist/{chunk-JZGFDTNC.js → chunk-Z42JY3LQ.js} +20 -3
- package/dist/{chunk-O6RJ3QMU.js → chunk-ZKWKQIJU.js} +86 -6
- package/dist/{chunk-QOALB6ZD.js → chunk-ZLZ3XVPI.js} +3 -3
- package/dist/{claude-launcher-TBWV3YL3.js → claude-launcher-KEESTJHO.js} +5 -5
- package/dist/{cli-U253V422.js → cli-44WGGICQ.js} +126 -112
- package/dist/{command-IQTPFSXY.js → command-4FAP2D3P.js} +22 -23
- package/dist/connect-cmd-6DUTUK63.js +22 -0
- package/dist/{context-cleanup-DSA3HGQU.js → context-cleanup-LTH77FC3.js} +3 -3
- package/dist/{control-plane-launch-OWSNH6YA.js → control-plane-launch-SEYCOZFH.js} +8 -9
- package/dist/{dist-7IH56ELA.js → dist-SOH3O24Y.js} +2 -2
- package/dist/{docker-JU422JL7.js → docker-KMK4LOET.js} +3 -3
- package/dist/{doctor-FZTS57ZO.js → doctor-4H77CEB7.js} +24 -25
- package/dist/{emit-artifact-cmd-YLZ5WLSF.js → emit-artifact-cmd-XCZ3ALLV.js} +15 -15
- package/dist/emit-cmd-WQH2NK7H.js +15 -0
- package/dist/{emit-criteria-cmd-MF6TVE7C.js → emit-criteria-cmd-JE72JHKJ.js} +10 -10
- package/dist/{emit-finding-cmd-S3YMFTZT.js → emit-finding-cmd-ILIDRMYN.js} +10 -10
- package/dist/{emit-result-cmd-JHEUFTPX.js → emit-result-cmd-WPKG5YAS.js} +15 -15
- package/dist/{emit-step-cmd-TUI2T3DS.js → emit-step-cmd-OVMLQSL6.js} +11 -11
- package/dist/{governing-source-XSEIRSBE.js → governing-source-EQBKPME7.js} +16 -17
- package/dist/{guest-init-DF7V5D2R.js → guest-init-HWSE7W6L.js} +3 -2
- package/dist/{hook-fast-O3UUN6SO.js → hook-fast-27SHD72I.js} +1 -1
- package/dist/{hook-wrap-fast-NPLHJXFK.js → hook-wrap-fast-NOOGDNSW.js} +2 -2
- package/dist/{import-capture-cmd-Q56DDZVO.js → import-capture-cmd-TCOKNVBM.js} +12 -7
- package/dist/{import-ruler-cmd-T6LLO6Q7.js → import-ruler-cmd-VJOHOJQ7.js} +2 -2
- package/dist/index.js +6 -6
- package/dist/{init-ZZZPYGUH.js → init-HAAHIQFN.js} +23 -24
- package/dist/{init-VZE72CR4.js → init-WQ62BXDN.js} +23 -24
- package/dist/{init-cmd-W5VV62ZN.js → init-cmd-VPFIDY64.js} +24 -24
- package/dist/init-update-UZIJ2FMU.js +529 -0
- package/dist/layout-UOJQGEPW.js +10 -0
- package/dist/{login-browser-BN5UKPHS.js → login-browser-4OMZFP3U.js} +4 -3
- package/dist/{logout-cmd-RZFWTNYD.js → logout-cmd-5V5MMBSY.js} +2 -2
- package/dist/{loop-6WENRS5S.js → loop-JPW2QJ64.js} +37 -37
- package/dist/{machine-M4MQBV5A.js → machine-PGDRWPI2.js} +22 -23
- package/dist/{mcp-install-cmd-GD4QUP7Z.js → mcp-install-cmd-GGWB3JJ2.js} +2 -2
- package/dist/{mcp-serve-cmd-SBW7HYKD.js → mcp-serve-cmd-CNRC5AL5.js} +3 -3
- package/dist/{runner-identity-FTHZFMGY.js → runner-identity-IIZ3RK7M.js} +3 -3
- package/dist/{runner-key-QT7GKGEE.js → runner-key-BPP5XRYR.js} +23 -24
- package/dist/{session-sender-BK6TGNVO.js → session-sender-EKKZ5DEU.js} +16 -16
- package/dist/{settings-J2652U5N.js → settings-AKYEOCC2.js} +1 -1
- package/dist/{spec-cmd-ZNJ3GXWC.js → spec-cmd-JDHGNFVJ.js} +11 -11
- package/dist/{starter-pack-5EQYGSJF.js → starter-pack-55EFILC5.js} +7 -4
- package/dist/{status-JOO7MGIC.js → status-UCQDEMFX.js} +30 -30
- package/dist/{statusline-fast-2OK3DVAA.js → statusline-fast-GVRSBHAF.js} +2 -2
- package/dist/{sync-cmd-W2FPY3T5.js → sync-cmd-NSVXOYFJ.js} +15 -15
- package/dist/{watch-WLH5ZUZU.js → watch-NQVZWPBJ.js} +15 -15
- package/dist/{work-claim-cmd-4PLDTEZR.js → work-claim-cmd-FPJXQAXP.js} +13 -13
- package/dist/{work-cmd-KWHAYUYB.js → work-cmd-FMPDXPU6.js} +11 -11
- package/dist/{work-comment-cmd-4CUI7ZDE.js → work-comment-cmd-ZVUE2IUN.js} +11 -11
- package/dist/{work-logs-cmd-AF253WLM.js → work-logs-cmd-CQH2SYT4.js} +11 -11
- package/dist/{work-open-pr-cmd-JETE6HRL.js → work-open-pr-cmd-YY2OGJOI.js} +12 -12
- package/dist/{work-pr-cmd-V5G4CPMG.js → work-pr-cmd-EHFTEVJO.js} +11 -11
- package/dist/{work-stop-cmd-FIEKUDGE.js → work-stop-cmd-LGWSBSBT.js} +11 -11
- package/package.json +1 -1
- package/skill-pack/maintained/outerlayer-amend/SKILL.md +83 -82
- package/skill-pack/maintained/outerlayer-build/SKILL.md +4 -2
- package/skill-pack/maintained/outerlayer-build/references/agent-briefs.md +17 -4
- package/skill-pack/maintained/outerlayer-build/references/criteria-judge.md +10 -0
- package/skill-pack/maintained/outerlayer-build/references/release.md +7 -4
- package/skill-pack/maintained/outerlayer-build/references/review-briefs.md +10 -3
- package/skill-pack/maintained/outerlayer-cli/SKILL.md +13 -4
- package/skill-pack/maintained/outerlayer-cli/references/merge-base-branch.md +54 -0
- package/dist/chunk-NTRCK4NH.js +0 -38
- package/dist/chunk-QF7WZUU6.js +0 -56
- package/dist/connect-cmd-ZFOK6HEL.js +0 -17
- package/dist/emit-cmd-3W5IO5ET.js +0 -14
- package/dist/init-update-YFPIQS5G.js +0 -211
- package/dist/{chunk-F35VMF5M.js → chunk-GOSFARMS.js} +1 -1
- package/dist/{chunk-3AZYLAJC.js → chunk-QILR6TZP.js} +1 -1
- package/dist/{chunk-DIB2WLBL.js → chunk-YVZJ6GKF.js} +1 -1
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { RUNNER_PROTOCOL } from './chunk-TPKYTORP.js';
|
|
4
|
-
import { resolveCredentials, WorkCommandError, parsePositiveInt, postJson, environmentFacts, findLiveItemForIssue } from './chunk-
|
|
5
|
-
export { WorkCommandError } from './chunk-
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-
|
|
4
|
+
import { resolveCredentials, WorkCommandError, parsePositiveInt, postJson, environmentFacts, findLiveItemForIssue } from './chunk-C64D7HR3.js';
|
|
5
|
+
export { WorkCommandError } from './chunk-C64D7HR3.js';
|
|
6
|
+
import './chunk-ZLZ3XVPI.js';
|
|
7
|
+
import './chunk-GXV73IIS.js';
|
|
8
|
+
import './chunk-BUP5N3X6.js';
|
|
9
|
+
import './chunk-XSPA5ODY.js';
|
|
10
|
+
import './chunk-GOSFARMS.js';
|
|
11
11
|
import { defaultRunnerConfigPath } from './chunk-V5CG75NX.js';
|
|
12
12
|
import './chunk-UXYLWVTQ.js';
|
|
13
13
|
import './chunk-7RQ73DLO.js';
|
|
14
|
-
import { defaultFetch } from './chunk-
|
|
15
|
-
import './chunk-NTRCK4NH.js';
|
|
14
|
+
import { defaultFetch } from './chunk-QS43O4DR.js';
|
|
16
15
|
import './chunk-BJ3KTMDH.js';
|
|
17
|
-
import './chunk-
|
|
18
|
-
import './chunk-EABW6AJQ.js';
|
|
16
|
+
import './chunk-CBCKD6DO.js';
|
|
19
17
|
import './chunk-ANPNT6PM.js';
|
|
18
|
+
import './chunk-EABW6AJQ.js';
|
|
20
19
|
import './chunk-WZBHBH3J.js';
|
|
21
20
|
import './chunk-CRB3POP4.js';
|
|
22
|
-
import './chunk-
|
|
21
|
+
import './chunk-QZBXLLTV.js';
|
|
23
22
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
23
|
+
import './chunk-RA3O54FC.js';
|
|
24
24
|
import { ensureHostKey } from './chunk-OW52QLK3.js';
|
|
25
25
|
import './chunk-IHNQWF6F.js';
|
|
26
26
|
import './chunk-URWYRAIC.js';
|
|
@@ -116,7 +116,7 @@ async function runWorkRelease(opts) {
|
|
|
116
116
|
{ sessionId, ended: true },
|
|
117
117
|
fetchImpl
|
|
118
118
|
);
|
|
119
|
-
const { markWorkLeaseRenewed } = await import('./hook-fast-
|
|
119
|
+
const { markWorkLeaseRenewed } = await import('./hook-fast-27SHD72I.js');
|
|
120
120
|
markWorkLeaseRenewed(sessionId, opts.home ?? homeFromEnv(env));
|
|
121
121
|
const output2 = opts.json ? JSON.stringify(data2) : `released session ${sessionId}'s lease on #${itemId}, if it held one`;
|
|
122
122
|
if (!opts.quiet) process.stdout.write(output2 + "\n");
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { WorkCommandError, environmentFacts, findLiveItemForIssue, getJson, parsePositiveInt, patchJson, postJson, resolveCredentials, runWorkBuild, runWorkLinkSession, runWorkList, runWorkRemove, runWorkStatus } from './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-NTRCK4NH.js';
|
|
3
|
+
export { WorkCommandError, environmentFacts, findLiveItemForIssue, getJson, parsePositiveInt, patchJson, postJson, resolveCredentials, runWorkBuild, runWorkLinkSession, runWorkList, runWorkRemove, runWorkStatus } from './chunk-C64D7HR3.js';
|
|
4
|
+
import './chunk-ZLZ3XVPI.js';
|
|
5
|
+
import './chunk-GXV73IIS.js';
|
|
6
|
+
import './chunk-BUP5N3X6.js';
|
|
7
|
+
import './chunk-XSPA5ODY.js';
|
|
8
|
+
import './chunk-GOSFARMS.js';
|
|
9
|
+
import './chunk-QS43O4DR.js';
|
|
11
10
|
import './chunk-BJ3KTMDH.js';
|
|
12
|
-
import './chunk-
|
|
13
|
-
import './chunk-EABW6AJQ.js';
|
|
11
|
+
import './chunk-CBCKD6DO.js';
|
|
14
12
|
import './chunk-ANPNT6PM.js';
|
|
13
|
+
import './chunk-EABW6AJQ.js';
|
|
15
14
|
import './chunk-WZBHBH3J.js';
|
|
16
15
|
import './chunk-CRB3POP4.js';
|
|
17
|
-
import './chunk-
|
|
16
|
+
import './chunk-QZBXLLTV.js';
|
|
18
17
|
import './chunk-VNVZDWO3.js';
|
|
18
|
+
import './chunk-RA3O54FC.js';
|
|
19
19
|
import './chunk-OW52QLK3.js';
|
|
20
20
|
import './chunk-IHNQWF6F.js';
|
|
21
21
|
import './chunk-URWYRAIC.js';
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { resolveCredentials, postJson, getJson } from './chunk-
|
|
4
|
-
import { detectActiveSession } from './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import { sanitizeTerminal } from './chunk-
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-
|
|
9
|
-
import { defaultFetch } from './chunk-
|
|
10
|
-
import './chunk-NTRCK4NH.js';
|
|
3
|
+
import { resolveCredentials, postJson, getJson } from './chunk-C64D7HR3.js';
|
|
4
|
+
import { detectActiveSession } from './chunk-ZLZ3XVPI.js';
|
|
5
|
+
import './chunk-GXV73IIS.js';
|
|
6
|
+
import { sanitizeTerminal } from './chunk-BUP5N3X6.js';
|
|
7
|
+
import './chunk-XSPA5ODY.js';
|
|
8
|
+
import './chunk-GOSFARMS.js';
|
|
9
|
+
import { defaultFetch } from './chunk-QS43O4DR.js';
|
|
11
10
|
import './chunk-BJ3KTMDH.js';
|
|
12
|
-
import { resolveRepoIdentity } from './chunk-
|
|
13
|
-
import './chunk-EABW6AJQ.js';
|
|
11
|
+
import { resolveRepoIdentity } from './chunk-CBCKD6DO.js';
|
|
14
12
|
import { C } from './chunk-ANPNT6PM.js';
|
|
13
|
+
import './chunk-EABW6AJQ.js';
|
|
15
14
|
import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
|
|
16
15
|
import './chunk-CRB3POP4.js';
|
|
17
|
-
import './chunk-
|
|
16
|
+
import './chunk-QZBXLLTV.js';
|
|
18
17
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
18
|
+
import './chunk-RA3O54FC.js';
|
|
19
19
|
import './chunk-OW52QLK3.js';
|
|
20
20
|
import './chunk-IHNQWF6F.js';
|
|
21
21
|
import './chunk-URWYRAIC.js';
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { resolveCredentials, getJson } from './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-
|
|
9
|
-
import { defaultFetch } from './chunk-
|
|
10
|
-
import './chunk-NTRCK4NH.js';
|
|
3
|
+
import { resolveCredentials, getJson } from './chunk-C64D7HR3.js';
|
|
4
|
+
import './chunk-ZLZ3XVPI.js';
|
|
5
|
+
import './chunk-GXV73IIS.js';
|
|
6
|
+
import './chunk-BUP5N3X6.js';
|
|
7
|
+
import './chunk-XSPA5ODY.js';
|
|
8
|
+
import './chunk-GOSFARMS.js';
|
|
9
|
+
import { defaultFetch } from './chunk-QS43O4DR.js';
|
|
11
10
|
import './chunk-BJ3KTMDH.js';
|
|
12
|
-
import './chunk-
|
|
13
|
-
import './chunk-EABW6AJQ.js';
|
|
11
|
+
import './chunk-CBCKD6DO.js';
|
|
14
12
|
import './chunk-ANPNT6PM.js';
|
|
13
|
+
import './chunk-EABW6AJQ.js';
|
|
15
14
|
import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
|
|
16
15
|
import './chunk-CRB3POP4.js';
|
|
17
|
-
import './chunk-
|
|
16
|
+
import './chunk-QZBXLLTV.js';
|
|
18
17
|
import './chunk-VNVZDWO3.js';
|
|
18
|
+
import './chunk-RA3O54FC.js';
|
|
19
19
|
import './chunk-OW52QLK3.js';
|
|
20
20
|
import './chunk-IHNQWF6F.js';
|
|
21
21
|
import './chunk-URWYRAIC.js';
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { itemLabel, runWorkPr, WorkPrCommandError } from './chunk-
|
|
4
|
-
import { resolveCredentials } from './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-
|
|
9
|
-
import './chunk-
|
|
10
|
-
import { defaultFetch } from './chunk-
|
|
11
|
-
import './chunk-NTRCK4NH.js';
|
|
3
|
+
import { itemLabel, runWorkPr, WorkPrCommandError } from './chunk-6AOZD3LY.js';
|
|
4
|
+
import { resolveCredentials } from './chunk-C64D7HR3.js';
|
|
5
|
+
import './chunk-ZLZ3XVPI.js';
|
|
6
|
+
import './chunk-GXV73IIS.js';
|
|
7
|
+
import './chunk-BUP5N3X6.js';
|
|
8
|
+
import './chunk-XSPA5ODY.js';
|
|
9
|
+
import './chunk-GOSFARMS.js';
|
|
10
|
+
import { defaultFetch } from './chunk-QS43O4DR.js';
|
|
12
11
|
import './chunk-BJ3KTMDH.js';
|
|
13
|
-
import './chunk-
|
|
14
|
-
import './chunk-EABW6AJQ.js';
|
|
12
|
+
import './chunk-CBCKD6DO.js';
|
|
15
13
|
import { C } from './chunk-ANPNT6PM.js';
|
|
14
|
+
import './chunk-EABW6AJQ.js';
|
|
16
15
|
import { parseWorkItemEnv } from './chunk-T2Q7ISPE.js';
|
|
17
16
|
import './chunk-WZBHBH3J.js';
|
|
18
17
|
import './chunk-CRB3POP4.js';
|
|
19
|
-
import './chunk-
|
|
18
|
+
import './chunk-QZBXLLTV.js';
|
|
20
19
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
20
|
+
import './chunk-RA3O54FC.js';
|
|
21
21
|
import './chunk-OW52QLK3.js';
|
|
22
22
|
import './chunk-IHNQWF6F.js';
|
|
23
23
|
import './chunk-URWYRAIC.js';
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { WorkPrCommandError, itemLabel, runWorkPr } from './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-NTRCK4NH.js';
|
|
3
|
+
export { WorkPrCommandError, itemLabel, runWorkPr } from './chunk-6AOZD3LY.js';
|
|
4
|
+
import './chunk-ZLZ3XVPI.js';
|
|
5
|
+
import './chunk-GXV73IIS.js';
|
|
6
|
+
import './chunk-BUP5N3X6.js';
|
|
7
|
+
import './chunk-XSPA5ODY.js';
|
|
8
|
+
import './chunk-GOSFARMS.js';
|
|
9
|
+
import './chunk-QS43O4DR.js';
|
|
11
10
|
import './chunk-BJ3KTMDH.js';
|
|
12
|
-
import './chunk-
|
|
13
|
-
import './chunk-EABW6AJQ.js';
|
|
11
|
+
import './chunk-CBCKD6DO.js';
|
|
14
12
|
import './chunk-ANPNT6PM.js';
|
|
13
|
+
import './chunk-EABW6AJQ.js';
|
|
15
14
|
import './chunk-T2Q7ISPE.js';
|
|
16
15
|
import './chunk-WZBHBH3J.js';
|
|
17
16
|
import './chunk-CRB3POP4.js';
|
|
18
|
-
import './chunk-
|
|
17
|
+
import './chunk-QZBXLLTV.js';
|
|
19
18
|
import './chunk-VNVZDWO3.js';
|
|
19
|
+
import './chunk-RA3O54FC.js';
|
|
20
20
|
import './chunk-OW52QLK3.js';
|
|
21
21
|
import './chunk-IHNQWF6F.js';
|
|
22
22
|
import './chunk-URWYRAIC.js';
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { resolveCredentials, postJson, WorkCommandError } from './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-
|
|
9
|
-
import { defaultFetch } from './chunk-
|
|
10
|
-
import './chunk-NTRCK4NH.js';
|
|
3
|
+
import { resolveCredentials, postJson, WorkCommandError } from './chunk-C64D7HR3.js';
|
|
4
|
+
import './chunk-ZLZ3XVPI.js';
|
|
5
|
+
import './chunk-GXV73IIS.js';
|
|
6
|
+
import './chunk-BUP5N3X6.js';
|
|
7
|
+
import './chunk-XSPA5ODY.js';
|
|
8
|
+
import './chunk-GOSFARMS.js';
|
|
9
|
+
import { defaultFetch } from './chunk-QS43O4DR.js';
|
|
11
10
|
import './chunk-BJ3KTMDH.js';
|
|
12
|
-
import './chunk-
|
|
13
|
-
import './chunk-EABW6AJQ.js';
|
|
11
|
+
import './chunk-CBCKD6DO.js';
|
|
14
12
|
import './chunk-ANPNT6PM.js';
|
|
13
|
+
import './chunk-EABW6AJQ.js';
|
|
15
14
|
import { parseTrackerNumber, trackerNumberError } from './chunk-WZBHBH3J.js';
|
|
16
15
|
import './chunk-CRB3POP4.js';
|
|
17
|
-
import './chunk-
|
|
16
|
+
import './chunk-QZBXLLTV.js';
|
|
18
17
|
import './chunk-VNVZDWO3.js';
|
|
18
|
+
import './chunk-RA3O54FC.js';
|
|
19
19
|
import './chunk-OW52QLK3.js';
|
|
20
20
|
import './chunk-IHNQWF6F.js';
|
|
21
21
|
import './chunk-URWYRAIC.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@outerlayer/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.23.0",
|
|
4
4
|
"description": "OuterLayer CLI — commands: init, claude, 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.",
|
|
@@ -3,9 +3,10 @@ name: outerlayer-amend
|
|
|
3
3
|
description: >
|
|
4
4
|
Answer the review threads waiting on an agent on an open pull request: read each
|
|
5
5
|
thread a person handed to an agent, fix what it says on the pull request's branch,
|
|
6
|
-
reply on the thread with a replacement artifact or a sentence, and push.
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
reply on the thread with a replacement artifact or a sentence, and push. Also resolve a
|
|
7
|
+
merge conflict with the base branch. Use when a work item has threads waiting on an
|
|
8
|
+
agent or a conflicting pull request, or when asked to "answer the review" or "fix what
|
|
9
|
+
the reviewer failed". Invoke with /outerlayer-amend.
|
|
9
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,11 +14,10 @@ Run the CLI as `outerlayer`. If that command is not on PATH, run `npx -y @outerl
|
|
|
13
14
|
Answer every thread waiting on an agent on one work item's pull request, then
|
|
14
15
|
stop. A work item has one general thread and one thread per acceptance
|
|
15
16
|
criterion. A person's fail on the general thread leaves it waiting on an agent.
|
|
16
|
-
A note a reviewer sent with Request changes (a sent note)
|
|
17
|
-
thread
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
session can only reply.
|
|
17
|
+
A note a reviewer sent with Request changes (a sent note) does the same to its
|
|
18
|
+
criterion thread. A plain comment from a person does not hand a thread to an
|
|
19
|
+
agent. The person's newest comment says what they want. Only a person passes
|
|
20
|
+
or fails a thread. A session can only reply.
|
|
21
21
|
|
|
22
22
|
A session never records a pass or fail on an artifact.
|
|
23
23
|
|
|
@@ -26,129 +26,130 @@ request's branch first if the working tree is not already on it.
|
|
|
26
26
|
|
|
27
27
|
## Arguments
|
|
28
28
|
|
|
29
|
-
- `--unattended`: no person is watching. Never ask a question.
|
|
30
|
-
|
|
31
|
-
silently waiting on an agent.
|
|
29
|
+
- `--unattended`: no person is watching. Never ask a question. A need for a
|
|
30
|
+
person becomes a hand-off (step 7), never a silent stop.
|
|
32
31
|
|
|
33
32
|
## Builds and local sessions
|
|
34
33
|
|
|
35
34
|
A session a runner started for the item is a build. `OUTERLAYER_JOB_DIR` is
|
|
36
|
-
set in a build and nowhere else.
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
straight to the git host. A local session uses the person's own git remote and
|
|
40
|
-
`gh` login.
|
|
35
|
+
set in a build and nowhere else. A build's GitHub token cannot comment on the
|
|
36
|
+
issue or the pull request, and its git pushes go through the runner. A local
|
|
37
|
+
session uses the person's own git remote and `gh` login.
|
|
41
38
|
|
|
42
39
|
## Several repositories
|
|
43
40
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
41
|
+
`OUTERLAYER_REPOSITORIES` lists the repositories of a build, each with its
|
|
42
|
+
`path`, `branch` and whether it is `primary`. The item can have a pull request
|
|
43
|
+
in more than one. Make each fix in the checkout of the repository whose pull
|
|
44
|
+
request the thread is about. Commit and push in each checkout you change, to
|
|
45
|
+
its own branch only.
|
|
49
46
|
|
|
50
47
|
## Steps
|
|
51
48
|
|
|
52
|
-
1. **
|
|
49
|
+
1. **Resolve a merge conflict.** Run
|
|
50
|
+
`outerlayer work status --item "$OUTERLAYER_WORK" --json`. For each
|
|
51
|
+
`pullRequests` entry, compare `conflict.headSha` with `git rev-parse HEAD`
|
|
52
|
+
in that repository's checkout. Skip an entry whose `conflict` is `null` or
|
|
53
|
+
differs: a push has moved the head. Do this before any thread, and go on
|
|
54
|
+
even when none waits.
|
|
55
|
+
For a matching entry, merge the base branch into the pull request's branch.
|
|
56
|
+
Never rebase and never force-push. Follow
|
|
57
|
+
`.outerlayer/skills/outerlayer-cli/references/merge-base-branch.md`. Run the
|
|
58
|
+
pre-push gate in the foreground. Name the base sha in the merge commit.
|
|
59
|
+
Push, then answer the threads.
|
|
60
|
+
**Hand off a conflict you cannot resolve.** If the resolution needs a
|
|
61
|
+
product decision, or the gate stays red after one fix, abort the merge.
|
|
62
|
+
Push nothing. Post on the general thread with `--ready`. Name the
|
|
63
|
+
conflicting files, the base commits behind them and the decision needed.
|
|
64
|
+
Tell the person to fail the general thread with their answer.
|
|
65
|
+
2. **Read the threads.**
|
|
53
66
|
`outerlayer work threads --item "$OUTERLAYER_WORK" --json` prints
|
|
54
67
|
`{ "general": <thread>, "criteria": [<thread>, ...] }`. Each thread carries
|
|
55
68
|
`criterion` (null for the general thread), `waitingOn` (`agent`, `person` or
|
|
56
69
|
null), `verdict`, `proof` and `comments`. Each comment carries `author`
|
|
57
70
|
(`kind` is `person` or `agent`), `body`, `action` and `artifact`. Keep the
|
|
58
|
-
threads whose `waitingOn` is `agent
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
`
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
issue body is the spec. Find each thread's criterion there. Read every
|
|
68
|
-
person's comment since the last agent comment on the thread. Read them
|
|
69
|
-
literally: they are the reviewer's instruction.
|
|
70
|
-
3. **Decide each thread.** Reply on every criterion thread waiting on an
|
|
71
|
+
threads whose `waitingOn` is `agent`: one send of notes can leave several.
|
|
72
|
+
If none is waiting and step 1 resolved no conflict, say so and stop: there
|
|
73
|
+
is nothing to answer. Take the pull request (`repository`, `prNumber`) from
|
|
74
|
+
the `pullRequests` of the status JSON you read in step 1.
|
|
75
|
+
3. **Re-orient.** The status JSON's `issue.body` is OuterLayer's copy of the
|
|
76
|
+
issue. It is the spec: find each thread's criterion there. Read the pull
|
|
77
|
+
request, with its evidence comment, through the git host. Read every person's comment since the last agent
|
|
78
|
+
comment on the thread. Read them literally.
|
|
79
|
+
4. **Decide each thread.** Reply on every criterion thread waiting on an
|
|
71
80
|
agent, with `--criterion`, so each note gets its answer under it. Read each
|
|
72
81
|
note and pick one:
|
|
73
82
|
- **Answer it.** A question gets an answer. Reply with the answer and
|
|
74
83
|
change nothing. Say which file or test you looked at.
|
|
75
|
-
- **Fix it.** A requested change gets a fix.
|
|
76
|
-
|
|
77
|
-
so the criterion is met as written, and attach new proof when the
|
|
84
|
+
- **Fix it.** A requested change gets a fix. Change the code, tests, docs or
|
|
85
|
+
evidence so the criterion is met as written, and attach new proof when the
|
|
78
86
|
criterion declares one.
|
|
79
|
-
- **The spec is wrong.** The
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
87
|
+
- **The spec is wrong.** The criterion cannot be met as written, for
|
|
88
|
+
example because it names a path a repository rule forbids. A session never
|
|
89
|
+
rewrites a criterion. Hand it off (step 7), naming the wording change the
|
|
90
|
+
owner should make.
|
|
83
91
|
- **Cannot tell.** The comment is ambiguous. Hand it off with `--ready`:
|
|
84
|
-
quote it and ask one question
|
|
85
|
-
|
|
92
|
+
quote it and ask one question.
|
|
93
|
+
5. **Fix, prove, reply.** An answer needs no commit: reply on its criterion
|
|
86
94
|
thread with the answer and `--ready`. For each thread you fix:
|
|
87
|
-
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
- In a local session over SSH, the git host can drop the connection during
|
|
94
|
-
a long gate. Push again with
|
|
95
|
+
- Change only what the comment asks, on the pull request's branch.
|
|
96
|
+
- Run the tests that cover the criterion, then the repository's pre-push
|
|
97
|
+
checks through a normal `git push`. Never bypass a hook.
|
|
98
|
+
- If the runner refuses a push, read the reason git prints, fix it and push
|
|
99
|
+
again.
|
|
100
|
+
- Over SSH, a long gate can drop the connection. Push again with
|
|
95
101
|
`GIT_SSH_COMMAND="ssh -o ServerAliveInterval=20 -o ServerAliveCountMax=60"`.
|
|
96
|
-
- **When the thread asks for new proof** (a
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
Attaching it on the thread supersedes the old proof.
|
|
102
|
+
- **When the thread asks for new proof** (a person failed its proof),
|
|
103
|
+
capture it after the fixed state exists, in the form the criterion
|
|
104
|
+
declares or the form of the current proof. Emit it bound to that
|
|
105
|
+
criterion, without `--replaces`:
|
|
101
106
|
`outerlayer emit artifact <file> --caption "<what it shows>" --for <criterion>`.
|
|
102
|
-
Note the id it prints. Run `outerlayer sync
|
|
103
|
-
|
|
104
|
-
find. Then reply:
|
|
107
|
+
Note the id it prints. Run `outerlayer sync`, so the attach can find the
|
|
108
|
+
artifact. Then reply, which supersedes the old proof:
|
|
105
109
|
`outerlayer work comment --item "$OUTERLAYER_WORK" --criterion <criterion> --body "<what changed>" --artifact <uuid> --attach`.
|
|
106
|
-
A replacement whose bytes match the current proof is flagged `unchanged
|
|
107
|
-
|
|
108
|
-
still waits on you.
|
|
110
|
+
A replacement whose bytes match the current proof is flagged `unchanged`,
|
|
111
|
+
so the thread still waits on you.
|
|
109
112
|
- **Otherwise** (the general thread, or a fix that needs no new proof),
|
|
110
113
|
reply with a sentence naming what changed and the commit:
|
|
111
114
|
`outerlayer work comment --item "$OUTERLAYER_WORK" [--criterion <criterion>] --body "<what changed>" --ready`.
|
|
112
115
|
Omit `--criterion` on the general thread.
|
|
113
|
-
|
|
116
|
+
6. **Watch CI.** Skip this step when you pushed nothing. Run
|
|
114
117
|
`gh pr checks <prNumber> --repo <repository> --watch` on each pull request
|
|
115
118
|
you pushed. Leave out any check that waits on results recorded after the
|
|
116
|
-
session ends.
|
|
117
|
-
again.
|
|
119
|
+
session ends. "No checks reported" is not green: query again.
|
|
118
120
|
- For a failed check, read `gh run view <run-id> --log-failed`, fix it, push
|
|
119
121
|
again.
|
|
120
122
|
- If it also fails on the base branch, or failed outside the code,
|
|
121
123
|
change nothing.
|
|
122
124
|
- Stop after two fixes for one check.
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
125
|
+
7. **Hand off what you cannot fix.** Reply on the thread with `--ready`: one
|
|
126
|
+
sentence of fact, then the decision a person must make. For a spec problem,
|
|
127
|
+
quote the criterion and give the replacement wording. `--ready` hands the
|
|
128
|
+
thread back to a person.
|
|
129
|
+
8. **Check nothing is left waiting.** Read the threads again. None you started
|
|
130
|
+
with may still wait on an agent. If one does, the reply did not land or was
|
|
131
|
+
flagged `unchanged`. Fix that, or report it.
|
|
132
|
+
9. **Report.** Write one line per thread, naming the criterion (or the general
|
|
131
133
|
thread) and saying fixed (with the replacement) or handed off (with the
|
|
132
|
-
reason). Add
|
|
133
|
-
|
|
134
|
+
reason). Add one line for a merge conflict: merged, with the base sha, or
|
|
135
|
+
handed off, with the reason. Add a CI line when you pushed: green, or each
|
|
136
|
+
red check and why. Use plain language. Post the
|
|
134
137
|
lines once on the general thread, in a build and in a local session alike:
|
|
135
138
|
`outerlayer work comment --item "$OUTERLAYER_WORK" --body "<the lines>"`.
|
|
136
139
|
A plain comment from an agent leaves the general thread waiting on a person.
|
|
137
|
-
A local session also posts
|
|
138
|
-
|
|
140
|
+
A local session also posts them on the pull request. A build does not:
|
|
141
|
+
its token cannot comment. End with the same lines.
|
|
139
142
|
|
|
140
143
|
## Rules
|
|
141
144
|
|
|
142
145
|
- **Answer only threads waiting on an agent.** A thread waiting on a person, or
|
|
143
146
|
on no one, is not yours to reply on.
|
|
144
147
|
- **One thread, one proof.** Never attach an artifact that does not prove that
|
|
145
|
-
thread's criterion.
|
|
146
|
-
criterion.
|
|
148
|
+
thread's criterion.
|
|
147
149
|
- **A person decides.** Never pass `--pass` or `--fail`, never mark a check as
|
|
148
150
|
a person, and never edit the issue's criteria.
|
|
149
151
|
- **Stay on the branch.** Push to the pull request's own branch. Never open a
|
|
150
152
|
second pull request in a repository that has one, and never force-push over
|
|
151
153
|
someone else's commits.
|
|
152
154
|
- **Write for a reader who was not here.** Every comment, commit and reply
|
|
153
|
-
follows the repository's writing rule: outcome first, short sentences
|
|
154
|
-
words.
|
|
155
|
+
follows the repository's writing rule: outcome first, short plain sentences.
|
|
@@ -89,7 +89,9 @@ Given a request instead of a work item, stop and say:
|
|
|
89
89
|
Optional flag: `--unattended` means no person is present and nothing wakes
|
|
90
90
|
the session after a turn ends. Spawn every agent in the foreground and wait
|
|
91
91
|
for it in the same turn. Run the gate in the foreground with the maximum
|
|
92
|
-
timeout.
|
|
92
|
+
timeout. A command that outlives that timeout continues in the background:
|
|
93
|
+
wait for it in the foreground before you use its result. End the turn only at
|
|
94
|
+
the final report.
|
|
93
95
|
|
|
94
96
|
## State rules
|
|
95
97
|
|
|
@@ -305,7 +307,7 @@ Run them in order.
|
|
|
305
307
|
|
|
306
308
|
5. **Pull request.** Run `outerlayer emit step "Pull request" --item "$OUTERLAYER_WORK"`,
|
|
307
309
|
then apply the team's changes for this phase. Read [references/release.md](references/release.md)
|
|
308
|
-
on entry and run it. A release agent
|
|
310
|
+
on entry and run it. A release agent merges the base branch in, gates and pushes. Open the
|
|
309
311
|
pull request as release.md says: a runner build with `outerlayer work open-pr`,
|
|
310
312
|
which links it, and a local session with `gh pr create` and then
|
|
311
313
|
`outerlayer work pr <number>`. When the build recorded criteria, from the issue or drafted, a fresh agent judges them with
|
|
@@ -45,6 +45,13 @@ Run every long command, such as the full gate, the mutation tool or the
|
|
|
45
45
|
integration suite, in the foreground with the maximum timeout. Never
|
|
46
46
|
background one, and never end a turn waiting on a notification.
|
|
47
47
|
|
|
48
|
+
A command that runs past the maximum timeout moves to the background and
|
|
49
|
+
continues. It has not finished. Wait for it in the foreground before you use
|
|
50
|
+
or report its result. For a command named `run-checks`, wait with
|
|
51
|
+
`while pgrep -f '[r]un-checks' >/dev/null; do sleep 15; done`. Keep the
|
|
52
|
+
brackets around the first letter of the name. Without them, `pgrep` on Linux
|
|
53
|
+
finds the waiting shell, and the loop does not stop.
|
|
54
|
+
|
|
48
55
|
Every agent in a run shares one memory cap. Run only the test files for the
|
|
49
56
|
code you change or check, one at a time. Run a whole package's suite, a
|
|
50
57
|
coverage run, a repository-wide typecheck or the full gate only where this
|
|
@@ -86,7 +93,13 @@ drives the real chain, from input through storage to read-back, with nothing
|
|
|
86
93
|
mocked at the store boundary, plus one test per criterion written from the
|
|
87
94
|
criterion's own words. Read every failure. Each test must fail because the
|
|
88
95
|
behavior is absent, not because of a typo or a missing import. Then implement
|
|
89
|
-
until green.
|
|
96
|
+
until green.
|
|
97
|
+
|
|
98
|
+
A test proves a criterion only when it runs the code that produces the outcome
|
|
99
|
+
its Then clause states. A test that checks that the inputs to that code are
|
|
100
|
+
unchanged is a regression guard, not a proof. When the seam the issue names
|
|
101
|
+
cannot run that code, add a second citing test at a seam that can. Say so in
|
|
102
|
+
your report. When the build drafted the criteria from the issue's
|
|
90
103
|
description, they are requirements in the same way, and tests cite their
|
|
91
104
|
ids. When no criteria were recorded, write tests from the description in the
|
|
92
105
|
same order.
|
|
@@ -181,9 +194,9 @@ The shared rules apply. Your inputs are the state file path, the branch and
|
|
|
181
194
|
the instructions-file pointer. You run no write command against the tracker
|
|
182
195
|
or the git host beyond the push.
|
|
183
196
|
|
|
184
|
-
|
|
185
|
-
branch
|
|
186
|
-
branch, never in a web editor.
|
|
197
|
+
Bring the base branch into the branch as
|
|
198
|
+
`.outerlayer/skills/outerlayer-cli/references/merge-base-branch.md` says.
|
|
199
|
+
Resolve every conflict on the branch, never in a web editor.
|
|
187
200
|
|
|
188
201
|
A migration this branch adds whose version is at or below the newest one on
|
|
189
202
|
the base branch is renamed to the current UTC time, with every reference to
|
|
@@ -58,6 +58,16 @@ It is not satisfied when the test only cites the id, asserts something weaker
|
|
|
58
58
|
than the stated outcome, mocks away the very behavior the criterion is about,
|
|
59
59
|
or has no assertion bearing on the outcome, even when it cites the id.
|
|
60
60
|
|
|
61
|
+
A test asserts something weaker when it checks a stand-in for the outcome. For
|
|
62
|
+
example, it checks the arguments a program starts with, but the outcome is what
|
|
63
|
+
that program does. Or it checks that a value is unchanged from before, but the
|
|
64
|
+
Then clause states the value. A test proves an outcome only when it runs the
|
|
65
|
+
code that produces that outcome.
|
|
66
|
+
|
|
67
|
+
Your verdict follows your reason. When your reason says that part of the Then
|
|
68
|
+
clause is inherited, assumed, implied or not asserted, the verdict is
|
|
69
|
+
`not-satisfied`.
|
|
70
|
+
|
|
61
71
|
When unsure, record `not-satisfied` and state the doubt in the reason. A silent
|
|
62
72
|
pass is worse than a wrong-looking fail a person can overrule.
|
|
63
73
|
|
|
@@ -9,10 +9,13 @@ file, not from the transcript.
|
|
|
9
9
|
|
|
10
10
|
The orchestrator does not sync, run the gate, push or watch CI itself. Spawn
|
|
11
11
|
one release agent in a fresh context on the "sync and push" brief, with the
|
|
12
|
-
state file path, the branch and the instructions-file pointer.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
state file path, the branch and the instructions-file pointer. The agent
|
|
13
|
+
brings the base branch in as
|
|
14
|
+
`.outerlayer/skills/outerlayer-cli/references/merge-base-branch.md` says. A
|
|
15
|
+
check that fails there has the standing of a red gate and returns to the
|
|
16
|
+
review phase's remaining budget. If its report names files the sync moved that
|
|
17
|
+
the review had already cleared, run one check round on the merged diff before
|
|
18
|
+
going on.
|
|
16
19
|
|
|
17
20
|
## Open the pull request
|
|
18
21
|
|