@outerlayer/cli 0.8.0 → 0.8.2
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 +30 -0
- package/README.md +27 -9
- package/dist/{agent-setup-C7PLRXZO.js → agent-setup-C5X4356W.js} +10 -10
- package/dist/{build-MS34XEGN.js → build-3FSJR5OO.js} +1 -1
- package/dist/build-info.json +1 -1
- package/dist/{builder-G52A6GW2.js → builder-QZA2Z3M3.js} +3 -3
- package/dist/{check-FOF3PUKI.js → check-HQHFAOXW.js} +30 -29
- package/dist/{chunk-R7STSBLC.js → chunk-2E2MG3KW.js} +1 -1
- package/dist/{chunk-OD2VTIHN.js → chunk-2FWL7CE2.js} +3 -2
- package/dist/{chunk-K35RW5HP.js → chunk-33GOCSRO.js} +4 -4
- package/dist/{chunk-4A5E2G4E.js → chunk-3J476JZC.js} +11 -11
- package/dist/{chunk-MQ3IPHIZ.js → chunk-47RS42OZ.js} +6 -3
- package/dist/{chunk-3S4P55NE.js → chunk-4ZZR5SKG.js} +3 -3
- package/dist/{chunk-PWBILI5P.js → chunk-7KI224YS.js} +1 -1
- package/dist/{chunk-5TNS3PL7.js → chunk-CLURXEWV.js} +4 -3
- package/dist/{chunk-7ZR5UPMB.js → chunk-CMFCCIQN.js} +167 -1
- package/dist/{chunk-AX23QKHS.js → chunk-CRLAB4PM.js} +1 -1
- package/dist/{chunk-CM5QTKM4.js → chunk-EQG7L6LM.js} +311 -29
- package/dist/{chunk-OEK4JEB3.js → chunk-ERI5GBNI.js} +18 -3
- package/dist/{chunk-ILEA3YHM.js → chunk-EWBM2USM.js} +2 -2
- package/dist/{chunk-EV3M3EH7.js → chunk-G54QHBTI.js} +2 -2
- package/dist/{chunk-M3SQ4YGD.js → chunk-GXSMDL4M.js} +1 -1
- package/dist/{chunk-GAYWY4GI.js → chunk-HN2JBGSI.js} +2 -1
- package/dist/{chunk-ZOAEPWGL.js → chunk-HWMYGAKF.js} +1 -1
- package/dist/chunk-I2UOAV7X.js +133 -0
- package/dist/{chunk-ABIWDUMS.js → chunk-IS4DIGBQ.js} +13 -1
- package/dist/{chunk-WVGSB3Z2.js → chunk-J5DPVNL3.js} +2 -2
- package/dist/{chunk-VXLJORHL.js → chunk-JXH6LEEH.js} +1 -1
- package/dist/{chunk-JPR2WHHF.js → chunk-KI7VPNKC.js} +1 -1
- package/dist/{chunk-TUUMW4TC.js → chunk-LSPJHYHM.js} +1 -1
- package/dist/{chunk-7VNURP6M.js → chunk-M2F2RAMK.js} +82 -26
- package/dist/{chunk-NALVDFIS.js → chunk-MJLUWGUD.js} +2 -2
- package/dist/{chunk-5FWNEQNZ.js → chunk-NACLOOXP.js} +5 -5
- package/dist/{chunk-U3GOI2B4.js → chunk-NPBLDMSD.js} +1 -1
- package/dist/{chunk-BOLTI6LR.js → chunk-PLMTLGYH.js} +1 -1
- package/dist/{chunk-IRCBTGWF.js → chunk-QJPO42VI.js} +6 -6
- package/dist/{chunk-5QLNZGAQ.js → chunk-R5SPFO6F.js} +6 -6
- package/dist/{chunk-M5POMKKW.js → chunk-V7NIVOFD.js} +5 -5
- package/dist/{chunk-IJBVPLZZ.js → chunk-VUGDEUMM.js} +71 -143
- package/dist/{chunk-4ACZCY4I.js → chunk-WMPO3SKK.js} +3 -3
- package/dist/{chunk-TTNFGMHO.js → chunk-Y7UQHKFY.js} +19 -1
- package/dist/{chunk-BCLJSQCV.js → chunk-YO4PSLVB.js} +1 -1
- package/dist/{chunk-AIL2R4SI.js → chunk-YU4Z2O3W.js} +5 -5
- package/dist/{chunk-ZZXLM64C.js → chunk-ZJ3WRVRG.js} +1 -1
- package/dist/{cli-AOJPAVFX.js → cli-OWM54BIU.js} +120 -93
- package/dist/{command-SY3SVLAI.js → command-LIHTWJHQ.js} +31 -25
- package/dist/{config-Z3USDBLU.js → config-OOBPCY7Q.js} +2 -2
- package/dist/{connect-cmd-PNZ6IJLJ.js → connect-cmd-NV7WVBY7.js} +3 -3
- package/dist/{context-adopt-CE4KDXS3.js → context-adopt-PPCNSN5D.js} +7 -7
- package/dist/{context-materialize-QL33HDJN.js → context-materialize-YR3JQCUF.js} +7 -7
- package/dist/{dist-3ZTZF2TP.js → dist-2LNAXGPZ.js} +1 -1
- package/dist/{docker-676FD3CQ.js → docker-RSALMGPL.js} +4 -4
- package/dist/{doctor-WR6TRPSU.js → doctor-PKT42NOJ.js} +59 -25
- package/dist/{emit-artifact-cmd-AVM4YXMQ.js → emit-artifact-cmd-BZYXRBCV.js} +8 -8
- package/dist/{emit-cmd-2QRMYPYO.js → emit-cmd-IRYNFHPM.js} +3 -3
- package/dist/{emit-criteria-cmd-LDBE4YDS.js → emit-criteria-cmd-PSZYZ32B.js} +6 -6
- package/dist/{emit-finding-cmd-6R5WBPCH.js → emit-finding-cmd-VTSYDJYZ.js} +6 -6
- package/dist/{emit-result-cmd-2DMN6O6U.js → emit-result-cmd-5P7ZFWMZ.js} +8 -8
- package/dist/{exec-client-NPYNUAF3.js → exec-client-2UX6NHAO.js} +3 -3
- package/dist/{guest-init-JWNNAH2H.js → guest-init-VHQNFCFS.js} +3 -3
- package/dist/{hook-fast-XBOZ3N6L.js → hook-fast-OCHVQZTU.js} +1 -1
- package/dist/{host-key-KDYZ5ECC.js → host-key-YMLXY6QB.js} +1 -1
- package/dist/{import-capture-cmd-T4556ELW.js → import-capture-cmd-2QFLZQFY.js} +3 -3
- package/dist/{import-ruler-cmd-SG3UVGI7.js → import-ruler-cmd-BD22GUJS.js} +1 -1
- package/dist/index.js +3 -3
- package/dist/{init-R2FJ5KNS.js → init-CY4IMZE4.js} +22 -22
- package/dist/{init-KDK5QLQZ.js → init-TQUN5RF7.js} +20 -20
- package/dist/{init-cmd-BYZYAJ5P.js → init-cmd-F4TZXQJH.js} +11 -11
- package/dist/{install-FHTVJZS6.js → install-C33LT5KQ.js} +3 -3
- package/dist/{install-cmd-DCF7TVXD.js → install-cmd-5HYMXLEW.js} +2 -1
- package/dist/{loop-AG3PLXPO.js → loop-NZP5FAC3.js} +30 -29
- package/dist/{machine-LV6WBRRK.js → machine-RUSNVLKO.js} +19 -19
- package/dist/{mcp-install-cmd-RLK4SO3N.js → mcp-install-cmd-4AQMSIGY.js} +1 -1
- package/dist/{mcp-serve-cmd-N6UD2KBX.js → mcp-serve-cmd-3KVYEUXG.js} +3 -3
- package/dist/{real-deps-SU24ZA2K.js → real-deps-TK6JMQSW.js} +3 -2
- package/dist/{session-sender-Q5HAMOL2.js → session-sender-EECVKXTC.js} +7 -7
- package/dist/{starter-pack-MUXMAU4S.js → starter-pack-VNWPYP5U.js} +3 -3
- package/dist/{status-HH4OSOHR.js → status-KCONQLOD.js} +31 -25
- package/dist/{sync-cmd-CAEPJR7B.js → sync-cmd-R54ZBHXX.js} +6 -6
- package/dist/{watch-LAAZFBHH.js → watch-YTFNBO3S.js} +6 -6
- package/dist/{work-claim-cmd-ARIYZARE.js → work-claim-cmd-HRPJ4VUF.js} +10 -10
- package/dist/{work-cmd-B3FOXZAL.js → work-cmd-W4GQUUBC.js} +7 -7
- package/dist/{work-comment-cmd-O5WGRI6K.js → work-comment-cmd-DDZ4SZ35.js} +7 -7
- package/dist/{work-open-pr-cmd-M6CQW7KW.js → work-open-pr-cmd-GXULDTSC.js} +8 -8
- package/dist/{work-pr-cmd-C4YEGKD6.js → work-pr-cmd-T6SU4TYN.js} +7 -7
- package/package.json +2 -2
- package/skill-pack/maintained/amend/SKILL.md +22 -6
- package/skill-pack/maintained/outerlayer/SKILL.md +12 -2
- package/skill-pack/maintained/outerlayer/references/open-pull-request.md +29 -0
- package/skill-pack/template/build/SKILL.md +3 -2
- package/skill-pack/template/build/references/release.md +11 -2
|
@@ -1,27 +1,27 @@
|
|
|
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-
|
|
5
|
-
export { WorkCommandError } from './chunk-
|
|
6
|
-
import './chunk-
|
|
4
|
+
import { resolveCredentials, WorkCommandError, parsePositiveInt, postJson, resolveRepository, findLiveItem } from './chunk-R5SPFO6F.js';
|
|
5
|
+
export { WorkCommandError } from './chunk-R5SPFO6F.js';
|
|
6
|
+
import './chunk-WMPO3SKK.js';
|
|
7
7
|
import './chunk-BFESLKPP.js';
|
|
8
|
-
import './chunk-
|
|
8
|
+
import './chunk-EWBM2USM.js';
|
|
9
9
|
import './chunk-ZYHKJKSU.js';
|
|
10
|
-
import './chunk-
|
|
10
|
+
import './chunk-HN2JBGSI.js';
|
|
11
11
|
import './chunk-USO2DKBD.js';
|
|
12
12
|
import './chunk-N6LURUEF.js';
|
|
13
13
|
import './chunk-YRYMNBGQ.js';
|
|
14
|
-
import { defaultRunnerConfigPath } from './chunk-
|
|
14
|
+
import { defaultRunnerConfigPath } from './chunk-7KI224YS.js';
|
|
15
15
|
import './chunk-UXYLWVTQ.js';
|
|
16
16
|
import './chunk-7RQ73DLO.js';
|
|
17
|
-
import './chunk-
|
|
17
|
+
import './chunk-2FWL7CE2.js';
|
|
18
18
|
import './chunk-HKMPVPO7.js';
|
|
19
19
|
import './chunk-WZBHBH3J.js';
|
|
20
|
-
import { defaultFetch } from './chunk-
|
|
21
|
-
import './chunk-
|
|
20
|
+
import { defaultFetch } from './chunk-YO4PSLVB.js';
|
|
21
|
+
import './chunk-PLMTLGYH.js';
|
|
22
22
|
import './chunk-YNJEOGDL.js';
|
|
23
23
|
import './chunk-EABW6AJQ.js';
|
|
24
|
-
import { ensureHostKey } from './chunk-
|
|
24
|
+
import { ensureHostKey } from './chunk-V7NIVOFD.js';
|
|
25
25
|
import './chunk-ZM2IMMYN.js';
|
|
26
26
|
import './chunk-BJ3KTMDH.js';
|
|
27
27
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
@@ -1,20 +1,20 @@
|
|
|
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-
|
|
4
|
-
import './chunk-
|
|
3
|
+
export { WorkCommandError, findLiveItem, getJson, parsePositiveInt, postJson, resolveCredentials, resolveRepository, runWorkBuild, runWorkLinkSession, runWorkList, runWorkRemove, runWorkStatus } from './chunk-R5SPFO6F.js';
|
|
4
|
+
import './chunk-WMPO3SKK.js';
|
|
5
5
|
import './chunk-BFESLKPP.js';
|
|
6
|
-
import './chunk-
|
|
6
|
+
import './chunk-EWBM2USM.js';
|
|
7
7
|
import './chunk-ZYHKJKSU.js';
|
|
8
|
-
import './chunk-
|
|
8
|
+
import './chunk-HN2JBGSI.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
|
-
import './chunk-
|
|
14
|
-
import './chunk-
|
|
13
|
+
import './chunk-YO4PSLVB.js';
|
|
14
|
+
import './chunk-PLMTLGYH.js';
|
|
15
15
|
import './chunk-YNJEOGDL.js';
|
|
16
16
|
import './chunk-EABW6AJQ.js';
|
|
17
|
-
import './chunk-
|
|
17
|
+
import './chunk-V7NIVOFD.js';
|
|
18
18
|
import './chunk-ZM2IMMYN.js';
|
|
19
19
|
import './chunk-BJ3KTMDH.js';
|
|
20
20
|
import './chunk-VNVZDWO3.js';
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { resolveCredentials, postJson, getJson } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
import { resolveCredentials, postJson, getJson } from './chunk-R5SPFO6F.js';
|
|
4
|
+
import './chunk-WMPO3SKK.js';
|
|
5
5
|
import { detectActiveSession } from './chunk-BFESLKPP.js';
|
|
6
|
-
import './chunk-
|
|
6
|
+
import './chunk-EWBM2USM.js';
|
|
7
7
|
import { sanitizeTerminal } from './chunk-ZYHKJKSU.js';
|
|
8
|
-
import { resolveRepoIdentity } from './chunk-
|
|
8
|
+
import { resolveRepoIdentity } from './chunk-HN2JBGSI.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
|
-
import { defaultFetch } from './chunk-
|
|
14
|
-
import './chunk-
|
|
13
|
+
import { defaultFetch } from './chunk-YO4PSLVB.js';
|
|
14
|
+
import './chunk-PLMTLGYH.js';
|
|
15
15
|
import './chunk-YNJEOGDL.js';
|
|
16
16
|
import './chunk-EABW6AJQ.js';
|
|
17
|
-
import './chunk-
|
|
17
|
+
import './chunk-V7NIVOFD.js';
|
|
18
18
|
import './chunk-ZM2IMMYN.js';
|
|
19
19
|
import './chunk-BJ3KTMDH.js';
|
|
20
20
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { runWorkPr, WorkPrCommandError } from './chunk-
|
|
4
|
-
import { resolveCredentials } from './chunk-
|
|
5
|
-
import './chunk-
|
|
3
|
+
import { runWorkPr, WorkPrCommandError } from './chunk-33GOCSRO.js';
|
|
4
|
+
import { resolveCredentials } from './chunk-R5SPFO6F.js';
|
|
5
|
+
import './chunk-WMPO3SKK.js';
|
|
6
6
|
import './chunk-BFESLKPP.js';
|
|
7
|
-
import './chunk-
|
|
7
|
+
import './chunk-EWBM2USM.js';
|
|
8
8
|
import './chunk-ZYHKJKSU.js';
|
|
9
|
-
import './chunk-
|
|
9
|
+
import './chunk-HN2JBGSI.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
|
-
import { defaultFetch } from './chunk-
|
|
15
|
-
import './chunk-
|
|
14
|
+
import { defaultFetch } from './chunk-YO4PSLVB.js';
|
|
15
|
+
import './chunk-PLMTLGYH.js';
|
|
16
16
|
import './chunk-YNJEOGDL.js';
|
|
17
17
|
import './chunk-EABW6AJQ.js';
|
|
18
|
-
import './chunk-
|
|
18
|
+
import './chunk-V7NIVOFD.js';
|
|
19
19
|
import './chunk-ZM2IMMYN.js';
|
|
20
20
|
import './chunk-BJ3KTMDH.js';
|
|
21
21
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { WorkPrCommandError, runWorkPr } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
export { WorkPrCommandError, runWorkPr } from './chunk-33GOCSRO.js';
|
|
4
|
+
import './chunk-WMPO3SKK.js';
|
|
5
5
|
import './chunk-BFESLKPP.js';
|
|
6
|
-
import './chunk-
|
|
6
|
+
import './chunk-EWBM2USM.js';
|
|
7
7
|
import './chunk-ZYHKJKSU.js';
|
|
8
|
-
import './chunk-
|
|
8
|
+
import './chunk-HN2JBGSI.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
|
-
import './chunk-
|
|
14
|
-
import './chunk-
|
|
13
|
+
import './chunk-YO4PSLVB.js';
|
|
14
|
+
import './chunk-PLMTLGYH.js';
|
|
15
15
|
import './chunk-YNJEOGDL.js';
|
|
16
16
|
import './chunk-EABW6AJQ.js';
|
|
17
|
-
import './chunk-
|
|
17
|
+
import './chunk-V7NIVOFD.js';
|
|
18
18
|
import './chunk-ZM2IMMYN.js';
|
|
19
19
|
import './chunk-BJ3KTMDH.js';
|
|
20
20
|
import './chunk-VNVZDWO3.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@outerlayer/cli",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.2",
|
|
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.",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"@types/node": "^22.20.1",
|
|
55
55
|
"commander": "^15.0.0",
|
|
56
56
|
"http-message-sig": "0.3.0",
|
|
57
|
-
"structured-headers": "2.0
|
|
57
|
+
"structured-headers": "2.1.0",
|
|
58
58
|
"tsup": "^8.5.0",
|
|
59
59
|
"tsx": "^4.22.4",
|
|
60
60
|
"typescript": "^5.5.3",
|
|
@@ -26,6 +26,15 @@ request's branch first if the working tree is not already on it.
|
|
|
26
26
|
needs a person becomes a hand-off (step 5), never a stop that leaves a thread
|
|
27
27
|
silently waiting on an agent.
|
|
28
28
|
|
|
29
|
+
## Builds and local sessions
|
|
30
|
+
|
|
31
|
+
A session a runner started for the item is a build. `OUTERLAYER_JOB_DIR` is
|
|
32
|
+
set in a build and nowhere else. The GitHub token a runner gives a build can
|
|
33
|
+
read the issue and the pull request but cannot comment on either. In the
|
|
34
|
+
runner's own build environments, git pushes go through the runner, not
|
|
35
|
+
straight to the git host. A local session uses the person's own git remote and
|
|
36
|
+
`gh` login.
|
|
37
|
+
|
|
29
38
|
## Steps
|
|
30
39
|
|
|
31
40
|
1. **Read the threads.**
|
|
@@ -56,8 +65,11 @@ request's branch first if the working tree is not already on it.
|
|
|
56
65
|
- Make the change on the pull request's branch. Keep it to what the comment
|
|
57
66
|
asks. Do not refactor around it.
|
|
58
67
|
- Run the tests that cover the criterion, then the repository's full
|
|
59
|
-
pre-push checks through a normal `git push`. Never bypass a hook.
|
|
60
|
-
|
|
68
|
+
pre-push checks through a normal `git push`. Never bypass a hook.
|
|
69
|
+
- A runner accepts a build's push only to the pull request's branch. If it
|
|
70
|
+
refuses one, read the reason git prints, fix it and push again.
|
|
71
|
+
- In a local session over SSH, the git host can drop the connection during
|
|
72
|
+
a long gate. Push again with
|
|
61
73
|
`GIT_SSH_COMMAND="ssh -o ServerAliveInterval=20 -o ServerAliveCountMax=60"`.
|
|
62
74
|
- **When the thread asks for new proof** (a criterion thread whose proof the
|
|
63
75
|
person failed), capture it after the fixed state exists, in the form the
|
|
@@ -83,10 +95,14 @@ request's branch first if the working tree is not already on it.
|
|
|
83
95
|
6. **Check nothing is left waiting.** Read the threads again. No thread you
|
|
84
96
|
started with may still be waiting on an agent. If one is, the reply did not
|
|
85
97
|
land or was flagged `unchanged`. Find out why and fix it, or report it.
|
|
86
|
-
7. **Report.**
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
98
|
+
7. **Report.** Write one line per thread, naming the criterion (or the general
|
|
99
|
+
thread) and saying fixed (with the replacement) or handed off (with the
|
|
100
|
+
reason). Plain language. No session labels, no raw command output. Post the
|
|
101
|
+
lines once on the general thread, in a build and in a local session alike:
|
|
102
|
+
`outerlayer work comment --item "$OUTERLAYER_WORK" --body "<the lines>"`.
|
|
103
|
+
A plain comment from an agent leaves the general thread waiting on a person.
|
|
104
|
+
A local session also posts the lines once as a pull request comment. A build
|
|
105
|
+
does not try: its token cannot comment. End the session with the same lines.
|
|
90
106
|
|
|
91
107
|
## Rules
|
|
92
108
|
|
|
@@ -4,8 +4,9 @@ description: >
|
|
|
4
4
|
Explain what OuterLayer is and how work flows through it: work items, the
|
|
5
5
|
OUTERLAYER_WORK variable, the factory, and building an issue or specifying one.
|
|
6
6
|
Use when asked about OuterLayer, a work item, OUTERLAYER_WORK, "build issue
|
|
7
|
-
42", how an issue becomes a pull request,
|
|
8
|
-
a
|
|
7
|
+
42", how an issue becomes a pull request, how a build opens its pull request
|
|
8
|
+
(a runner build or a local session), or how to attach evidence or answer a
|
|
9
|
+
review.
|
|
9
10
|
---
|
|
10
11
|
|
|
11
12
|
OuterLayer is a software factory. An issue goes in. A reviewed and verified
|
|
@@ -37,6 +38,15 @@ from the output of `outerlayer work build`.
|
|
|
37
38
|
skill says what to capture.
|
|
38
39
|
5. `/amend` answers the review threads a person handed to an agent.
|
|
39
40
|
|
|
41
|
+
## Opening the pull request
|
|
42
|
+
|
|
43
|
+
A runner build opens its pull request with `outerlayer work open-pr`, never
|
|
44
|
+
with `gh pr create`. A session is a runner build when `OUTERLAYER_WORK` is set
|
|
45
|
+
and `OUTERLAYER_API_KEY` holds an item key, which starts with `olitem_`. A
|
|
46
|
+
local session uses `gh pr create` and then `outerlayer work pr <number>`. The
|
|
47
|
+
full steps are in
|
|
48
|
+
[references/open-pull-request.md](references/open-pull-request.md).
|
|
49
|
+
|
|
40
50
|
Launching recorded work needs Claude Code. It is the one agent whose sessions
|
|
41
51
|
OuterLayer can start with `OUTERLAYER_WORK` set and record. Other agents can
|
|
42
52
|
read the files this repository emits, but they cannot be launched as work.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Opening the pull request
|
|
2
|
+
|
|
3
|
+
How a build opens its pull request depends on where it runs.
|
|
4
|
+
|
|
5
|
+
A session is a runner build when `OUTERLAYER_WORK` is set and
|
|
6
|
+
`OUTERLAYER_API_KEY` holds an item key, which starts with `olitem_`. Any other
|
|
7
|
+
session is a local session.
|
|
8
|
+
|
|
9
|
+
## A runner build
|
|
10
|
+
|
|
11
|
+
A runner build opens its pull request with `outerlayer work open-pr`:
|
|
12
|
+
|
|
13
|
+
outerlayer work open-pr --title "<title>" --body-file <path>
|
|
14
|
+
|
|
15
|
+
The build holds an item key, so the gateway opens the pull request as the
|
|
16
|
+
factory's GitHub App on the branch the build's claim named. The build needs no
|
|
17
|
+
GitHub login of its own, and it does not run `gh pr create`. The command also
|
|
18
|
+
links the pull request to the work item, so no `outerlayer work pr` follows.
|
|
19
|
+
Run it again to edit the pull request that is already open.
|
|
20
|
+
|
|
21
|
+
A runner build whose command exits 0 while its item has no pull request is
|
|
22
|
+
released `incomplete`, not `ok`. Open the pull request before the build ends.
|
|
23
|
+
|
|
24
|
+
## A local session
|
|
25
|
+
|
|
26
|
+
A local session opens the pull request under the person's own GitHub login
|
|
27
|
+
with `gh pr create`. It then declares the pull request to the work item with
|
|
28
|
+
`outerlayer work pr <number>`. Without that declaration the item shows no pull
|
|
29
|
+
request, no evaluation and no evidence.
|
|
@@ -179,8 +179,9 @@ Run them in order.
|
|
|
179
179
|
|
|
180
180
|
5. **Sync and pull request.** Read [references/release.md](references/release.md)
|
|
181
181
|
on entry and run it. A release agent rebases, gates and pushes. Open the
|
|
182
|
-
pull request.
|
|
183
|
-
|
|
182
|
+
pull request as release.md says: a runner build with `outerlayer work open-pr`,
|
|
183
|
+
which links it, and a local session with `gh pr create` and then
|
|
184
|
+
`outerlayer work pr <number>`. When the issue has criteria, a fresh agent judges them with
|
|
184
185
|
[references/criteria-judge.md](references/criteria-judge.md), and the
|
|
185
186
|
judge's HTML report is emitted:
|
|
186
187
|
|
|
@@ -21,12 +21,17 @@ problem, the change, how to verify it, and, when the change alters what a user
|
|
|
21
21
|
sees or does, a link to each documentation file added or changed. It carries
|
|
22
22
|
no telemetry, round tables or reviewer roles. Those go in the final report.
|
|
23
23
|
|
|
24
|
+
How to open it, and how to link it to the work item, depends on whether this is
|
|
25
|
+
a runner build or a local session. Read
|
|
26
|
+
`.outerlayer/skills/outerlayer/references/open-pull-request.md` and follow the
|
|
27
|
+
steps for where this build runs.
|
|
28
|
+
|
|
24
29
|
Run the reader pass on the title and body before opening, and after any later
|
|
25
30
|
edit. Add an "Unverified, non-blocking" section to the review report when
|
|
26
31
|
classes were left unrefuted.
|
|
27
32
|
|
|
28
|
-
|
|
29
|
-
session:
|
|
33
|
+
In a local session, the moment the pull request exists, declare it to the work
|
|
34
|
+
item from this session:
|
|
30
35
|
|
|
31
36
|
outerlayer work pr <number>
|
|
32
37
|
|
|
@@ -37,6 +42,10 @@ evaluation and no evidence. Check that the command reports the link as created
|
|
|
37
42
|
or already present before going on. A CLI that does not know the command needs
|
|
38
43
|
refreshing, and the final report names that as a blocker.
|
|
39
44
|
|
|
45
|
+
A runner build declares nothing. `outerlayer work open-pr` opens the pull
|
|
46
|
+
request and links it to the item in one step. Check that it reports the pull
|
|
47
|
+
request before going on.
|
|
48
|
+
|
|
40
49
|
## Judge the criteria
|
|
41
50
|
|
|
42
51
|
When the issue has criteria, spawn one fresh agent on
|