@outerlayer/cli 0.15.0 → 0.16.1
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 +17 -0
- package/dist/{agent-setup-CN2HUBEJ.js → agent-setup-K3ABU5NL.js} +8 -7
- package/dist/build-info.json +1 -1
- package/dist/{check-2JSSXCKJ.js → check-CNTMSGOG.js} +19 -16
- package/dist/{chunk-HFKKFTXU.js → chunk-2MNPHL23.js} +19 -11
- package/dist/{chunk-FOJGZYFC.js → chunk-42ZI52JW.js} +1 -1
- package/dist/{chunk-SXWS25JC.js → chunk-5FEK6PNE.js} +6 -6
- package/dist/{chunk-PQUM37BK.js → chunk-6JNURGOA.js} +1 -1
- package/dist/{chunk-JR6ERP3M.js → chunk-6QRMLNH3.js} +1 -1
- package/dist/chunk-C5Y5ZJJZ.js +88 -0
- package/dist/{chunk-HXLMZOKU.js → chunk-CA3XMYFN.js} +3 -3
- package/dist/{chunk-NXUH742G.js → chunk-EHAAPRWY.js} +9 -7
- package/dist/{chunk-UUDDPNRJ.js → chunk-EWORLJMO.js} +19 -5
- package/dist/{chunk-F7GBYX2P.js → chunk-FWX735W7.js} +18 -4
- package/dist/{chunk-3NLOVYJQ.js → chunk-JEHRUE3F.js} +47 -22
- package/dist/{chunk-MTF3PHVZ.js → chunk-NBGDBTO2.js} +3 -3
- package/dist/{chunk-2M63GG56.js → chunk-OHVJA253.js} +1 -1
- package/dist/{chunk-KFRM23WD.js → chunk-ONRCEE6D.js} +2 -2
- package/dist/{chunk-T5VPP6H7.js → chunk-OZGHL5Y5.js} +1 -1
- package/dist/{chunk-ZA5CHAFY.js → chunk-POJMEEJJ.js} +21 -4
- package/dist/{chunk-ASOSIKA4.js → chunk-R4ZQQ7U2.js} +28 -6
- package/dist/{chunk-Z3NOIFDR.js → chunk-RSPXEVDX.js} +1 -1
- package/dist/{chunk-MSASO5O4.js → chunk-U3HXXRTY.js} +1 -1
- package/dist/{chunk-QLTYTPYU.js → chunk-W3EKCZSQ.js} +12 -5
- package/dist/{chunk-LCEXHCHD.js → chunk-WTE3MQML.js} +1 -1
- package/dist/{cli-RGGXQTWI.js → cli-AEWH62UE.js} +61 -58
- package/dist/{command-ETUAEXP2.js → command-HHPBR6CS.js} +8 -7
- package/dist/{context-adopt-PJUMW2EZ.js → context-adopt-VMMGFRUZ.js} +5 -4
- package/dist/{context-materialize-FDHYKNDT.js → context-materialize-2WXTS4CW.js} +5 -4
- package/dist/{doctor-CORFPYY6.js → doctor-N6Y7HKK3.js} +11 -10
- package/dist/{emit-artifact-cmd-FOGNJXVR.js → emit-artifact-cmd-H5MH3AOP.js} +2 -2
- package/dist/{emit-cmd-ZEYWLC2C.js → emit-cmd-IJ3GVRFD.js} +4 -3
- package/dist/{emit-finding-cmd-DLI4MKMN.js → emit-finding-cmd-ZXDRL6PG.js} +158 -45
- package/dist/{emit-result-cmd-MUSL7GQA.js → emit-result-cmd-RFKALS5Z.js} +2 -2
- package/dist/{hook-fast-WYQD6D7T.js → hook-fast-D7HV4IXG.js} +1 -1
- package/dist/{import-capture-cmd-6QVCOIHK.js → import-capture-cmd-EQ35EARA.js} +3 -3
- package/dist/{import-ruler-cmd-KLRGRBCP.js → import-ruler-cmd-BGAZXCQM.js} +1 -1
- package/dist/index.js +3 -3
- package/dist/{init-MIC37V6J.js → init-FBCA4DRA.js} +10 -9
- package/dist/{init-OPB7HHXO.js → init-MYX7YMIH.js} +10 -9
- package/dist/{init-cmd-JR3RKNFB.js → init-cmd-CAG572UE.js} +9 -8
- package/dist/{init-update-O5YYFGF4.js → init-update-VDFF4K3B.js} +9 -8
- package/dist/{loop-QNSM5GXS.js → loop-75J4YXLZ.js} +16 -15
- package/dist/{machine-IT6GG7FF.js → machine-A6ZCTUGS.js} +8 -7
- package/dist/{runner-env-XTC53CHN.js → runner-env-EN7YE7QX.js} +1 -1
- package/dist/{runner-key-7SSNMUBQ.js → runner-key-W25ISHI3.js} +10 -9
- package/dist/{session-sender-4M247XSV.js → session-sender-24L5EW25.js} +3 -3
- package/dist/{starter-pack-IB4UUIX3.js → starter-pack-KF66HGZR.js} +3 -3
- package/dist/{status-7ZX57OFJ.js → status-XHSGEYO5.js} +11 -10
- package/dist/{sync-cmd-UWD5JOFU.js → sync-cmd-5G5EIEHD.js} +2 -2
- package/dist/{watch-DBNB7R6X.js → watch-UTOXO4SE.js} +2 -2
- package/dist/{work-claim-cmd-A6IS6CQ7.js → work-claim-cmd-RKHYFE5Y.js} +3 -3
- package/dist/{work-cmd-EQSW5DTD.js → work-cmd-DJQJEZVB.js} +1 -1
- package/dist/{work-comment-cmd-7VLKI7FN.js → work-comment-cmd-A55CUSYE.js} +1 -1
- package/dist/{work-open-pr-cmd-JEVD4HMQ.js → work-open-pr-cmd-E6O53IJD.js} +1 -1
- package/package.json +1 -1
- package/skill-pack/maintained/{amend → outerlayer-amend}/SKILL.md +2 -2
- package/skill-pack/maintained/{outerlayer → outerlayer-cli}/SKILL.md +3 -3
- package/skill-pack/maintained/{emitting-evidence → outerlayer-evidence}/SKILL.md +1 -1
- package/skill-pack/maintained/{reporting-findings → outerlayer-findings}/SKILL.md +24 -30
- package/skill-pack/shipped.json +10 -1
- package/skill-pack/template/build/SKILL.md +5 -1
- package/skill-pack/template/build/references/agent-briefs.md +7 -1
- package/skill-pack/template/build/references/evidence.md +1 -1
- package/skill-pack/template/build/references/release.md +1 -1
- package/skill-pack/template/build/references/review-briefs.md +6 -0
- package/skill-pack/template/writing-specs/SKILL.md +1 -1
- /package/skill-pack/maintained/{outerlayer → outerlayer-cli}/references/open-pull-request.md +0 -0
- /package/skill-pack/maintained/{emitting-evidence → outerlayer-evidence}/references/agents-snippet.md +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { AGENT_COMMANDS, RunnerEnvError, credentialFromStdin, hasStoredCredential, isAgentName, restartForCredential, storeClaudeCredential } from './chunk-
|
|
3
|
+
export { AGENT_COMMANDS, RunnerEnvError, credentialFromStdin, hasStoredCredential, isAgentName, restartForCredential, storeClaudeCredential } from './chunk-OZGHL5Y5.js';
|
|
4
4
|
import './chunk-RLYZLUQ7.js';
|
|
5
5
|
import './chunk-6MZSX4M7.js';
|
|
6
6
|
import './chunk-22RMZBGW.js';
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { readConfigObject, RunnerInitError } from './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
3
|
+
import { readConfigObject, RunnerInitError } from './chunk-CA3XMYFN.js';
|
|
4
|
+
import './chunk-RSPXEVDX.js';
|
|
5
|
+
import './chunk-EWORLJMO.js';
|
|
6
6
|
import './chunk-KMDLFI4P.js';
|
|
7
7
|
import './chunk-QKFB4K7X.js';
|
|
8
8
|
import './chunk-RSNSZ2LJ.js';
|
|
9
|
-
import './chunk-
|
|
9
|
+
import './chunk-OZGHL5Y5.js';
|
|
10
10
|
import './chunk-RLYZLUQ7.js';
|
|
11
11
|
import './chunk-6MZSX4M7.js';
|
|
12
|
-
import { postJson, WorkCommandError, getJson } from './chunk-
|
|
12
|
+
import { postJson, WorkCommandError, getJson } from './chunk-6QRMLNH3.js';
|
|
13
13
|
import './chunk-NPQWKGUA.js';
|
|
14
14
|
import './chunk-IP7BIBXJ.js';
|
|
15
15
|
import { runnerCredentialProblem } from './chunk-22RMZBGW.js';
|
|
@@ -29,13 +29,14 @@ import './chunk-4KSQKQXE.js';
|
|
|
29
29
|
import './chunk-N6LURUEF.js';
|
|
30
30
|
import './chunk-YRYMNBGQ.js';
|
|
31
31
|
import './chunk-WZBHBH3J.js';
|
|
32
|
-
import './chunk-
|
|
33
|
-
import './chunk-
|
|
32
|
+
import './chunk-JEHRUE3F.js';
|
|
33
|
+
import './chunk-WTE3MQML.js';
|
|
34
|
+
import './chunk-C5Y5ZJJZ.js';
|
|
34
35
|
import './chunk-ZJSNLVCE.js';
|
|
35
36
|
import './chunk-YO4PSLVB.js';
|
|
36
37
|
import './chunk-BYT5O5RV.js';
|
|
37
|
-
import './chunk-
|
|
38
|
-
import './chunk-
|
|
38
|
+
import './chunk-POJMEEJJ.js';
|
|
39
|
+
import './chunk-OHVJA253.js';
|
|
39
40
|
import './chunk-PLMTLGYH.js';
|
|
40
41
|
import './chunk-J5M7BSJQ.js';
|
|
41
42
|
import { readCloudConfig } from './chunk-EABW6AJQ.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { runSessionSender, senderPidfile, startSessionSender } from './chunk-
|
|
4
|
-
import './chunk-
|
|
3
|
+
export { runSessionSender, senderPidfile, startSessionSender } from './chunk-ONRCEE6D.js';
|
|
4
|
+
import './chunk-U3HXXRTY.js';
|
|
5
5
|
import './chunk-HHJDN6AU.js';
|
|
6
6
|
import './chunk-TBT347UY.js';
|
|
7
7
|
import './chunk-IP7BIBXJ.js';
|
|
@@ -20,7 +20,7 @@ import './chunk-J5M7BSJQ.js';
|
|
|
20
20
|
import './chunk-EABW6AJQ.js';
|
|
21
21
|
import './chunk-V7NIVOFD.js';
|
|
22
22
|
import './chunk-ZM2IMMYN.js';
|
|
23
|
-
import './chunk-
|
|
23
|
+
import './chunk-6JNURGOA.js';
|
|
24
24
|
import './chunk-XCCLFVXM.js';
|
|
25
25
|
import './chunk-BJ3KTMDH.js';
|
|
26
26
|
import './chunk-VNVZDWO3.js';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { POLICY_CONTENT, POLICY_PATH, StarterPackError, VALIDATORS_DIR, VALIDATOR_FILES, assertKnownTemplate, formatStarterPackOutput, installStarterPack } from './chunk-
|
|
3
|
+
export { POLICY_CONTENT, POLICY_PATH, StarterPackError, VALIDATORS_DIR, VALIDATOR_FILES, assertKnownTemplate, formatStarterPackOutput, installStarterPack } from './chunk-42ZI52JW.js';
|
|
4
4
|
import './chunk-YRYMNBGQ.js';
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
5
|
+
import './chunk-POJMEEJJ.js';
|
|
6
|
+
import './chunk-OHVJA253.js';
|
|
7
7
|
import './chunk-J5M7BSJQ.js';
|
|
8
8
|
import './chunk-RA3O54FC.js';
|
|
9
9
|
import './chunk-Z5GEFMRW.js';
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { LEASE_SECONDS, ALREADY_RELEASED, RENEW_INTERVAL_SECONDS } from './chunk-
|
|
3
|
+
import { LEASE_SECONDS, ALREADY_RELEASED, RENEW_INTERVAL_SECONDS } from './chunk-R4ZQQ7U2.js';
|
|
4
4
|
import './chunk-RMWLBUCJ.js';
|
|
5
5
|
import './chunk-HYZRY4KZ.js';
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
6
|
+
import './chunk-ONRCEE6D.js';
|
|
7
|
+
import './chunk-U3HXXRTY.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-
|
|
11
|
+
import { formatDuration, formatClock, relativeToRunner } from './chunk-EWORLJMO.js';
|
|
12
12
|
import './chunk-KMDLFI4P.js';
|
|
13
13
|
import './chunk-QKFB4K7X.js';
|
|
14
14
|
import './chunk-RSNSZ2LJ.js';
|
|
15
|
-
import './chunk-
|
|
15
|
+
import './chunk-6QRMLNH3.js';
|
|
16
16
|
import './chunk-NPQWKGUA.js';
|
|
17
17
|
import './chunk-IP7BIBXJ.js';
|
|
18
18
|
import './chunk-22RMZBGW.js';
|
|
@@ -36,20 +36,21 @@ import './chunk-YRYMNBGQ.js';
|
|
|
36
36
|
import './chunk-GQD22KKN.js';
|
|
37
37
|
import './chunk-WZBHBH3J.js';
|
|
38
38
|
import './chunk-5QRP3MVS.js';
|
|
39
|
-
import './chunk-
|
|
40
|
-
import './chunk-
|
|
39
|
+
import './chunk-JEHRUE3F.js';
|
|
40
|
+
import './chunk-WTE3MQML.js';
|
|
41
|
+
import './chunk-C5Y5ZJJZ.js';
|
|
41
42
|
import './chunk-ZJSNLVCE.js';
|
|
42
43
|
import './chunk-YO4PSLVB.js';
|
|
43
44
|
import './chunk-BYT5O5RV.js';
|
|
44
|
-
import './chunk-
|
|
45
|
-
import './chunk-
|
|
45
|
+
import './chunk-POJMEEJJ.js';
|
|
46
|
+
import './chunk-OHVJA253.js';
|
|
46
47
|
import './chunk-PLMTLGYH.js';
|
|
47
48
|
import './chunk-J5M7BSJQ.js';
|
|
48
49
|
import './chunk-EABW6AJQ.js';
|
|
49
50
|
import './chunk-RA3O54FC.js';
|
|
50
51
|
import './chunk-V7NIVOFD.js';
|
|
51
52
|
import { runnerDir, jobsDir } from './chunk-ZM2IMMYN.js';
|
|
52
|
-
import './chunk-
|
|
53
|
+
import './chunk-6JNURGOA.js';
|
|
53
54
|
import './chunk-XCCLFVXM.js';
|
|
54
55
|
import './chunk-BJ3KTMDH.js';
|
|
55
56
|
import './chunk-VNVZDWO3.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
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-
|
|
3
|
+
export { CHUNK_PART_TARGET_BYTES, RETRYABLE_STATUSES, SyncConfigError, SyncTransportError, detectCi, isLoopbackUrl, resolveTier, runSync } from './chunk-U3HXXRTY.js';
|
|
4
4
|
import './chunk-HHJDN6AU.js';
|
|
5
5
|
import './chunk-TBT347UY.js';
|
|
6
6
|
import './chunk-IP7BIBXJ.js';
|
|
@@ -19,7 +19,7 @@ import './chunk-J5M7BSJQ.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-
|
|
22
|
+
import './chunk-6JNURGOA.js';
|
|
23
23
|
import './chunk-XCCLFVXM.js';
|
|
24
24
|
import './chunk-BJ3KTMDH.js';
|
|
25
25
|
import './chunk-VNVZDWO3.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { LiveUploader } from './chunk-
|
|
3
|
+
import { LiveUploader } from './chunk-U3HXXRTY.js';
|
|
4
4
|
import './chunk-HHJDN6AU.js';
|
|
5
5
|
import './chunk-TBT347UY.js';
|
|
6
6
|
import './chunk-IP7BIBXJ.js';
|
|
@@ -19,7 +19,7 @@ import './chunk-J5M7BSJQ.js';
|
|
|
19
19
|
import './chunk-EABW6AJQ.js';
|
|
20
20
|
import './chunk-V7NIVOFD.js';
|
|
21
21
|
import './chunk-ZM2IMMYN.js';
|
|
22
|
-
import './chunk-
|
|
22
|
+
import './chunk-6JNURGOA.js';
|
|
23
23
|
import './chunk-XCCLFVXM.js';
|
|
24
24
|
import './chunk-BJ3KTMDH.js';
|
|
25
25
|
import { homeFromEnv } from './chunk-VNVZDWO3.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { RUNNER_PROTOCOL } from './chunk-ADJRGVZC.js';
|
|
4
|
-
import { resolveCredentials, WorkCommandError, parsePositiveInt, postJson, environmentFacts, resolveRepository, findLiveItem } from './chunk-
|
|
5
|
-
export { WorkCommandError } from './chunk-
|
|
4
|
+
import { resolveCredentials, WorkCommandError, parsePositiveInt, postJson, environmentFacts, resolveRepository, findLiveItem } from './chunk-6QRMLNH3.js';
|
|
5
|
+
export { WorkCommandError } from './chunk-6QRMLNH3.js';
|
|
6
6
|
import './chunk-NPQWKGUA.js';
|
|
7
7
|
import './chunk-IP7BIBXJ.js';
|
|
8
8
|
import { defaultRunnerConfigPath } from './chunk-22RMZBGW.js';
|
|
@@ -118,7 +118,7 @@ async function runWorkRelease(opts) {
|
|
|
118
118
|
{ sessionId, ended: true },
|
|
119
119
|
fetchImpl
|
|
120
120
|
);
|
|
121
|
-
const { markWorkLeaseRenewed } = await import('./hook-fast-
|
|
121
|
+
const { markWorkLeaseRenewed } = await import('./hook-fast-D7HV4IXG.js');
|
|
122
122
|
markWorkLeaseRenewed(sessionId, opts.home ?? homeFromEnv(env));
|
|
123
123
|
const output2 = opts.json ? JSON.stringify(data2) : `released session ${sessionId}'s lease on #${itemId}, if it held one`;
|
|
124
124
|
if (!opts.quiet) process.stdout.write(output2 + "\n");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
export { WorkCommandError, environmentFacts, findLiveItem, getJson, parsePositiveInt, postJson, resolveCredentials, resolveRepository, runWorkBuild, runWorkLinkSession, runWorkList, runWorkRemove, runWorkStatus } from './chunk-
|
|
3
|
+
export { WorkCommandError, environmentFacts, findLiveItem, getJson, parsePositiveInt, postJson, resolveCredentials, resolveRepository, runWorkBuild, runWorkLinkSession, runWorkList, runWorkRemove, runWorkStatus } from './chunk-6QRMLNH3.js';
|
|
4
4
|
import './chunk-NPQWKGUA.js';
|
|
5
5
|
import './chunk-IP7BIBXJ.js';
|
|
6
6
|
import './chunk-YDSMROTB.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
|
-
import { resolveCredentials, postJson, getJson } from './chunk-
|
|
3
|
+
import { resolveCredentials, postJson, getJson } from './chunk-6QRMLNH3.js';
|
|
4
4
|
import './chunk-NPQWKGUA.js';
|
|
5
5
|
import { detectActiveSession } from './chunk-IP7BIBXJ.js';
|
|
6
6
|
import './chunk-YDSMROTB.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import { itemLabel, runWorkPr, WorkPrCommandError } from './chunk-JJEGKEFV.js';
|
|
4
|
-
import { resolveCredentials } from './chunk-
|
|
4
|
+
import { resolveCredentials } from './chunk-6QRMLNH3.js';
|
|
5
5
|
import './chunk-NPQWKGUA.js';
|
|
6
6
|
import './chunk-IP7BIBXJ.js';
|
|
7
7
|
import './chunk-YDSMROTB.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@outerlayer/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.1",
|
|
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.",
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: amend
|
|
2
|
+
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
6
|
reply on the thread with a replacement artifact or a sentence, and push. Use when a
|
|
7
7
|
work item has threads waiting on an agent, or when asked to "answer the review" or
|
|
8
|
-
"fix what the reviewer failed". Invoke with /amend.
|
|
8
|
+
"fix what the reviewer failed". Invoke with /outerlayer-amend.
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
Answer every thread waiting on an agent on one work item's pull request, then
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: outerlayer
|
|
2
|
+
name: outerlayer-cli
|
|
3
3
|
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.
|
|
@@ -34,9 +34,9 @@ from the output of `outerlayer work build`.
|
|
|
34
34
|
instead. With `--local`, the person builds it on their own machine with
|
|
35
35
|
`OUTERLAYER_WORK=<number> claude "/build"`.
|
|
36
36
|
4. `outerlayer emit artifact <file> --caption "<what it shows>"` attaches a
|
|
37
|
-
screenshot, recording, report or log as evidence. The `
|
|
37
|
+
screenshot, recording, report or log as evidence. The `outerlayer-evidence`
|
|
38
38
|
skill says what to capture.
|
|
39
|
-
5. `/amend` answers the review threads a person handed to an agent.
|
|
39
|
+
5. `/outerlayer-amend` answers the review threads a person handed to an agent.
|
|
40
40
|
|
|
41
41
|
## Several repositories
|
|
42
42
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: outerlayer-findings
|
|
3
3
|
description: >
|
|
4
4
|
Records factory problems: anything in a repository's instructions, tests, tooling or
|
|
5
5
|
local setup that cost an agent time and was not caused by its own change. Use when
|
|
@@ -88,17 +88,24 @@ server join a finding to a known problem without asking you.
|
|
|
88
88
|
|
|
89
89
|
## Time lost
|
|
90
90
|
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
Every finding records the time it cost, read from two events of your session
|
|
92
|
+
or its subagents. Never estimate minutes yourself.
|
|
93
|
+
|
|
94
|
+
- Start: `--started-at <id>`, else the first tool output that shows your
|
|
95
|
+
`--error` text. Copy `--error` exactly as the output printed it.
|
|
96
|
+
- End: `--ended-at <id>`, else the newest event. Record as soon as you are
|
|
97
|
+
past the problem, and the default is right.
|
|
98
|
+
|
|
99
|
+
With no start found, nothing is stored and the recent events are listed:
|
|
93
100
|
|
|
94
101
|
```
|
|
95
|
-
e118
|
|
102
|
+
e118 14:02:11 agent: Bash: yarn test
|
|
103
|
+
a5c9fb78:e42 14:09:30 user: result: FAIL src/app.test.ts
|
|
96
104
|
```
|
|
97
105
|
|
|
98
|
-
Run it again with `--started-at
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
events still counts toward how often the problem occurs.
|
|
106
|
+
Run it again with `--started-at`. A prefixed id is a subagent's event.
|
|
107
|
+
`--find <text>` lists older events containing the text. `--untimed` is only
|
|
108
|
+
for a problem that cost no time here. Never pipe the command through `tail`.
|
|
102
109
|
|
|
103
110
|
## Linking a finding to a problem
|
|
104
111
|
|
|
@@ -129,33 +136,28 @@ outerlayer emit finding --id <short-id> --category <category> \
|
|
|
129
136
|
--title "<one sentence>" --file <path> [--line <n>] --where "<what you were doing>" \
|
|
130
137
|
[--cause "<cause>"] [--detail "<text>"] [--suggestion "<text>"] \
|
|
131
138
|
[--command "<cmd>"] [--error "<first error line>"] [--test "<name>"] [--symbol "<function>"] \
|
|
132
|
-
[--started-at <event id> --ended-at <event id>] \
|
|
139
|
+
[--started-at <event id>] [--ended-at <event id>] \
|
|
133
140
|
[--problem <id> --link-reason "<why>" | --new]
|
|
134
141
|
```
|
|
135
142
|
|
|
136
143
|
Inside a recorded session the work item is found automatically. Outside one,
|
|
137
144
|
add `--item <number>`.
|
|
138
145
|
|
|
139
|
-
Examples
|
|
146
|
+
Examples. The ones with no `--error` name their start:
|
|
140
147
|
|
|
141
148
|
```bash
|
|
142
|
-
outerlayer emit finding --id worktree-hooks --category context \
|
|
143
|
-
--title "No document says a fresh worktree has no git hooks until yarn prepare runs" \
|
|
144
|
-
--file AGENTS.md --rule-path AGENTS.md --rule-relation missing \
|
|
145
|
-
--where "first push from a new worktree"
|
|
146
|
-
|
|
147
149
|
outerlayer emit finding --id stale-path --category context \
|
|
148
150
|
--title "The build skill names a directory that no longer exists" \
|
|
149
151
|
--file .outerlayer/skills/build/SKILL.md --line 42 \
|
|
150
152
|
--rule-path .outerlayer/skills/build/SKILL.md --rule-line 42 --rule-relation broken \
|
|
151
153
|
--rule-quote "Read the plan from reports/plan.md" \
|
|
152
|
-
--where "implementation stage"
|
|
154
|
+
--where "implementation stage" --started-at e118
|
|
153
155
|
|
|
154
156
|
outerlayer emit finding --id flaky-refresh --category flaky-test \
|
|
155
157
|
--title "refresh.test.ts fails once, then passes on rerun" \
|
|
156
158
|
--file apps/tenant-dashboard/src/lib/system/pr-session-comment/__tests__/refresh.test.ts \
|
|
157
159
|
--test "refreshes the comment after a push" \
|
|
158
|
-
--where "vitest run <file> failed, then passed with no change"
|
|
160
|
+
--where "vitest run <file> failed, then passed with no change" --started-at e204
|
|
159
161
|
|
|
160
162
|
outerlayer emit finding --id gate-skip --category tooling \
|
|
161
163
|
--title "The pre-push gate prints green when a step was skipped" \
|
|
@@ -164,19 +166,10 @@ outerlayer emit finding --id gate-skip --category tooling \
|
|
|
164
166
|
--cause "the skip path returns before the summary is computed" \
|
|
165
167
|
--where "expected a failure, got exit 0"
|
|
166
168
|
|
|
167
|
-
outerlayer emit finding --id shared-db --category environment \
|
|
168
|
-
--title "A peer session reset the shared Supabase project mid-run" \
|
|
169
|
-
--file apps/tenant-dashboard/supabase/config.toml \
|
|
170
|
-
--where "needed a stable database, found it re-seeded"
|
|
171
|
-
|
|
172
169
|
outerlayer emit finding --id null-read --category defect \
|
|
173
170
|
--title "readItem throws on an item with no claim" \
|
|
174
171
|
--file src/lib/work/read.ts --line 88 --symbol readItem \
|
|
175
|
-
--where "reproduce: call readItem on a fresh item"
|
|
176
|
-
|
|
177
|
-
outerlayer emit finding --id slow-hook --category other \
|
|
178
|
-
--title "The session-start hook adds about ten seconds on every launch" \
|
|
179
|
-
--file .husky/post-checkout --where "timed with time(1)"
|
|
172
|
+
--where "reproduce: call readItem on a fresh item" --started-at a5c9fb78:e42
|
|
180
173
|
```
|
|
181
174
|
|
|
182
175
|
To record several at once, write a JSON batch and run
|
|
@@ -207,9 +200,10 @@ To record several at once, write a JSON batch and run
|
|
|
207
200
|
}
|
|
208
201
|
```
|
|
209
202
|
|
|
210
|
-
`startedAt` and `endedAt` are event ids
|
|
211
|
-
|
|
212
|
-
|
|
203
|
+
`startedAt` and `endedAt` are event ids, defaulting as in `emit finding`. A
|
|
204
|
+
finding with no start found stops the batch; `"untimed": true` is the
|
|
205
|
+
exception. `problems` with `linkReason`, and `new: true`, are for a finding
|
|
206
|
+
that needs a choice; give neither and the server decides by key
|
|
213
207
|
or lists candidates. `emit findings` stores the findings that match a key,
|
|
214
208
|
lists the ones that need a choice, and exits with code 3.
|
|
215
209
|
|
package/skill-pack/shipped.json
CHANGED
|
@@ -6,15 +6,19 @@
|
|
|
6
6
|
"78c95632b51600df0cb2e206d843e75789ccba2f80fd8dfab36d16239062b008"
|
|
7
7
|
],
|
|
8
8
|
".outerlayer/skills/build/SKILL.md": [
|
|
9
|
+
"0fe8ee00567a1e8942de27597b0a64588fd4b75abd8fb5cd4998785b3e6c7f2b",
|
|
9
10
|
"5cf9bd75fb1f984f6e6b470d1f1581dc06168abf062448e6f43711fed8f6632a",
|
|
10
11
|
"6177ea457be0d238659640e6d29807708d60d68533ae3ff93af10fb513139ced",
|
|
11
12
|
"77cab8b446fb1aa865710f7cb8356c5334301a942f58f9243766bf1acf1377ad",
|
|
12
13
|
"93953397c31d47a6f1c06edb8ae2190e1d8a3fca20c616deb33991311cee39a8",
|
|
13
14
|
"a6743050c5c387e962ad4264526d9a3c10edf36823e4b6829f200bf79a4e45e7",
|
|
14
15
|
"b0aa9b6962675f772b67a4390c15b6b0100390983d958c656a826a066399f3d0",
|
|
16
|
+
"b95986e95ea3b1ef4202f7f0c00bfcd35865d4fda033b3d6947a5bb9d33cd24c",
|
|
15
17
|
"f4e1661c6f87d7ff6d23c6182530fa0a9cb87c4dc3f31e48f2be11f32ebb2c00"
|
|
16
18
|
],
|
|
17
19
|
".outerlayer/skills/build/references/agent-briefs.md": [
|
|
20
|
+
"09bfa482e1d7f8ceabd29a6e23e74641f3ff6e655126362d27a05df422c584ed",
|
|
21
|
+
"20eece295abc7ccecd289ce6d408dd3c4c038e2cbfdb3acdba069bd0ccb86496",
|
|
18
22
|
"3c875a4f287f574eea954c6daa52b17529cdeba8ec4007d78084d911350d1218",
|
|
19
23
|
"7c2a651e7c827d8e3fb9df889d3776b552eb02d315db5ace27d2baad78aab6a5"
|
|
20
24
|
],
|
|
@@ -22,19 +26,23 @@
|
|
|
22
26
|
"62db8f6d77f31ca25a9071c05429e0f639f9b2bdd7f7cb04cb14a1b0db509537"
|
|
23
27
|
],
|
|
24
28
|
".outerlayer/skills/build/references/evidence.md": [
|
|
29
|
+
"557d62885555606d64e86cc9fb16a5e2ee0f2257e6fe2aeec5a294292d57cecf",
|
|
25
30
|
"ceff5488bae31198ed4738ae1a230c0119f973ced439dac360eba6e24e1604f4",
|
|
26
31
|
"f27502610358e436e7ffb61d4fd281289e162f6de6b2c11396f17b2fa63802c9"
|
|
27
32
|
],
|
|
28
33
|
".outerlayer/skills/build/references/release.md": [
|
|
29
34
|
"0b0af40c82473cf192f697537ed5a84801a14e79bb11790d72226d7f7f49cca0",
|
|
30
35
|
"1113259bdf7d8c28edcbdb9b4c83c2f2bd4c5eaf817cf30bf428478ff91694e9",
|
|
36
|
+
"1d0e000433676a39c7ac4fbf3e92b1fe4235b10240c09f87ec0003f3c8d7956e",
|
|
31
37
|
"1f4fe97ca8f11d6681db5734f3103af5ea175a9472ff1d38b10cb463f4956a6a",
|
|
32
38
|
"4687f56bcec766f1926d58a208418f800a1727c073b5e6047b40e3aaac2bd6c9",
|
|
33
39
|
"81a764eb317fcb4672bedd35e7b9aa68d1c0b73f82fc2dfa03e5a78758db8f14",
|
|
34
40
|
"985e02b98105b00c356014e003b2d60e9c458c3dcbeef7378274ccb84af031fc"
|
|
35
41
|
],
|
|
36
42
|
".outerlayer/skills/build/references/review-briefs.md": [
|
|
37
|
-
"2c8b436795b583a61aa6f98f48611db554f0dd52b27a9ab748a7db5f96526aec"
|
|
43
|
+
"2c8b436795b583a61aa6f98f48611db554f0dd52b27a9ab748a7db5f96526aec",
|
|
44
|
+
"8f04427895a01c1b86f1ee2caab983163201c75fafe4c0feba02e8f665089aac",
|
|
45
|
+
"a9af0ddd115496480702743e628be3206426c40563f03aa4bb1714176ff70146"
|
|
38
46
|
],
|
|
39
47
|
".outerlayer/skills/build/references/review-loop.md": [
|
|
40
48
|
"155ab732ccf4c25f000853e98a27a3d2f3a022c75979601bb71d86f07983216d",
|
|
@@ -56,6 +64,7 @@
|
|
|
56
64
|
],
|
|
57
65
|
".outerlayer/skills/writing-specs/SKILL.md": [
|
|
58
66
|
"a956aac4249118a058c4327c5751472883588720950d4a96f80c7e91f454bef9",
|
|
67
|
+
"dbadb39cba5dae936e7c4b97cb852c59072e4a60e44caec01b128a045c1be090",
|
|
59
68
|
"eb8aa95f5e76a46ae9bf340989fb40e470fd750ded791ba80b5f8c5c325513e5"
|
|
60
69
|
],
|
|
61
70
|
".outerlayer/skills/writing-specs/references/agents-snippet.md": [
|
|
@@ -82,7 +82,7 @@ These bind the orchestrator in every phase. Rule 5 also binds every spawned agen
|
|
|
82
82
|
report bodies. Delete both at the end of phase 6.
|
|
83
83
|
Once a pull request exists, read `outerlayer work threads --item
|
|
84
84
|
"$OUTERLAYER_WORK" --json`. Each thread with `waitingOn` of `agent` holds a
|
|
85
|
-
person's comment. Answer each before the run ends, as the `amend` skill does.
|
|
85
|
+
person's comment. Answer each before the run ends, as the `outerlayer-amend` skill does.
|
|
86
86
|
5. **A session never records a pass or fail on an artifact.** It emits
|
|
87
87
|
artifacts. A person decides pass or fail. A build records two results,
|
|
88
88
|
both verdicts of its own agents: its review's, on the `code-review`
|
|
@@ -106,6 +106,10 @@ These bind the orchestrator in every phase. Rule 5 also binds every spawned agen
|
|
|
106
106
|
state file. Past three quarters, say where the count stands in the status
|
|
107
107
|
line. A run that would exceed the budget stops and lists what is left
|
|
108
108
|
unverified. The review phase also holds a limit on agents in flight.
|
|
109
|
+
10. **Factory problems are findings.** Every agent records the problems it
|
|
110
|
+
hit outside the change with the `outerlayer-findings` skill, as its brief
|
|
111
|
+
says. The orchestrator records only the ones it hit itself. The final
|
|
112
|
+
report lists every finding by id.
|
|
109
113
|
|
|
110
114
|
## Phases
|
|
111
115
|
|
|
@@ -61,6 +61,12 @@ report with the command, and leave that step undone.
|
|
|
61
61
|
|
|
62
62
|
A session never records a pass or fail on an artifact.
|
|
63
63
|
|
|
64
|
+
A problem in the repository's instructions, tests, tooling or setup that
|
|
65
|
+
cost you time, and that the change did not cause, is a finding. Record it with
|
|
66
|
+
the `outerlayer-findings` skill as soon as you are past it, under an id that
|
|
67
|
+
starts with your stage, such as `implement-tooling-1`. End your report with a
|
|
68
|
+
"Factory problems" section that lists each id and title.
|
|
69
|
+
|
|
64
70
|
Write your full report to the path this brief names. Then return at most ten
|
|
65
71
|
lines. Anything you leave out of the file is lost to the next stage.
|
|
66
72
|
|
|
@@ -218,7 +224,7 @@ ten lines naming the CI conclusion, the mergeability and every failed check.
|
|
|
218
224
|
|
|
219
225
|
## Evidence brief
|
|
220
226
|
|
|
221
|
-
The shared rules apply, and the
|
|
227
|
+
The shared rules apply, and the outerlayer-evidence skill governs the emit
|
|
222
228
|
mechanics. Your inputs are the issue, the pull request number, the criteria
|
|
223
229
|
that declare a proof form, and the instructions-file pointer.
|
|
224
230
|
|
|
@@ -12,7 +12,7 @@ earlier phase from the state file.
|
|
|
12
12
|
The orchestrator does not run the app, drive a browser or emit an artifact
|
|
13
13
|
itself. Spawn one evidence agent in a fresh context on the Evidence brief, with
|
|
14
14
|
the issue, the pull request number, the criteria that declare a proof form, the
|
|
15
|
-
instructions-file pointer and the
|
|
15
|
+
instructions-file pointer and the outerlayer-evidence skill.
|
|
16
16
|
|
|
17
17
|
A criterion that declares `proof: screenshot` needs a screenshot bound to its
|
|
18
18
|
id. One that declares `proof: video` needs a video. A screenshot never
|
|
@@ -23,7 +23,7 @@ no telemetry, round tables or reviewer roles. Those go in the final report.
|
|
|
23
23
|
|
|
24
24
|
How to open it, and how to link it to the work item, depends on whether this is
|
|
25
25
|
a runner build or a local session. Read
|
|
26
|
-
`.outerlayer/skills/outerlayer/references/open-pull-request.md` and follow the
|
|
26
|
+
`.outerlayer/skills/outerlayer-cli/references/open-pull-request.md` and follow the
|
|
27
27
|
steps for where this build runs.
|
|
28
28
|
|
|
29
29
|
Run the reader pass on the title and body before opening, and after any later
|
|
@@ -38,6 +38,12 @@ git.
|
|
|
38
38
|
Never ask the user a question. If you need a ruling, state your assumption in
|
|
39
39
|
your report and continue.
|
|
40
40
|
|
|
41
|
+
A problem in the repository's instructions, tests, tooling or setup that
|
|
42
|
+
cost you time, and that the change did not cause, is a finding. Record it with
|
|
43
|
+
the `outerlayer-findings` skill as soon as you are past it, under an id that
|
|
44
|
+
starts with your stage, such as `implement-tooling-1`. End your report with a
|
|
45
|
+
"Factory problems" section that lists each id and title.
|
|
46
|
+
|
|
41
47
|
You are a cold adversarial reviewer. You know nothing about how this change
|
|
42
48
|
was built, and that is deliberate. Judge only the branch diff, the issue (its
|
|
43
49
|
criteria, when it has them, are the definition of done), and the
|
|
@@ -103,7 +103,7 @@ implementing. Never write them by reading the finished implementation back.
|
|
|
103
103
|
human-visible evidence. Use `video` for a flow of more than one step and
|
|
104
104
|
`screenshot` for a single state. A test is the proof only where nothing visible
|
|
105
105
|
changes. The proof shows the running page, never a component render. The
|
|
106
|
-
|
|
106
|
+
outerlayer-evidence skill covers capture.
|
|
107
107
|
|
|
108
108
|
## The two verdicts
|
|
109
109
|
|
/package/skill-pack/maintained/{outerlayer → outerlayer-cli}/references/open-pull-request.md
RENAMED
|
File without changes
|
|
File without changes
|