@codyswann/lisa 4.64.0 → 4.64.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/dist/core/instruction-files-migration.d.ts +2 -1
- package/dist/core/instruction-files-migration.d.ts.map +1 -1
- package/dist/core/instruction-files-migration.js +5 -1
- package/dist/core/instruction-files-migration.js.map +1 -1
- package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
- package/dist/core/upstream-evidence-manifest.js +2 -2
- package/package.json +4 -4
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/rules/eager/tool-access-gate.md +13 -11
- package/plugins/lisa/rules/reference/tool-access-gate.md +31 -38
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/rules/eager/tool-access-gate.md +13 -11
- package/plugins/lisa-copilot/rules/reference/tool-access-gate.md +31 -38
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/rules/tool-access-gate-reference.mdc +31 -38
- package/plugins/lisa-cursor/rules/tool-access-gate.mdc +13 -11
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/rules/eager/tool-access-gate.md +13 -11
- package/plugins/src/base/rules/reference/tool-access-gate.md +31 -38
|
@@ -95,7 +95,8 @@ export declare function stripBakedAgyRulesBlock(body: string): string;
|
|
|
95
95
|
*/
|
|
96
96
|
export declare function stripAgyProjectLearningsBridge(body: string): string;
|
|
97
97
|
/**
|
|
98
|
-
* Build the
|
|
98
|
+
* Build the bounded Antigravity startup bridge. Antigravity does not load the
|
|
99
|
+
* plugin eager rules, so its missing-access instruction is repeated here.
|
|
99
100
|
* @param projectLearningsFile - Project-relative resolved learnings path.
|
|
100
101
|
* @returns Managed bridge block with surrounding markers.
|
|
101
102
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instruction-files-migration.d.ts","sourceRoot":"","sources":["../../src/core/instruction-files-migration.ts"],"names":[],"mappings":"AA6DA;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,8BAA8B,CAAC;AACnE,4EAA4E;AAC5E,eAAO,MAAM,qBAAqB,4BAA4B,CAAC;AAC/D,0EAA0E;AAC1E,eAAO,MAAM,mCAAmC,0CACP,CAAC;AAC1C,0EAA0E;AAC1E,eAAO,MAAM,iCAAiC,wCACP,CAAC;AAExC,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,sDAAsD;AACtD,MAAM,WAAW,+BAA+B;IAC9C,kDAAkD;IAClD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,kDAAkD;AAClD,MAAM,WAAW,yBAAyB;IACxC,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,yBAAyB,CAAC,CA8BpC;AAED,2DAA2D;AAC3D,MAAM,WAAW,8BAA8B;IAC7C;;;;;;;OAOG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC;;;;OAIG;IACH,QAAQ,CAAC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IAChD;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC;;;;;;OAMG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAU5D;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED
|
|
1
|
+
{"version":3,"file":"instruction-files-migration.d.ts","sourceRoot":"","sources":["../../src/core/instruction-files-migration.ts"],"names":[],"mappings":"AA6DA;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,8BAA8B,CAAC;AACnE,4EAA4E;AAC5E,eAAO,MAAM,qBAAqB,4BAA4B,CAAC;AAC/D,0EAA0E;AAC1E,eAAO,MAAM,mCAAmC,0CACP,CAAC;AAC1C,0EAA0E;AAC1E,eAAO,MAAM,iCAAiC,wCACP,CAAC;AAExC,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,sDAAsD;AACtD,MAAM,WAAW,+BAA+B;IAC9C,kDAAkD;IAClD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,kDAAkD;AAClD,MAAM,WAAW,yBAAyB;IACxC,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,yBAAyB,CAAC,CA8BpC;AAED,2DAA2D;AAC3D,MAAM,WAAW,8BAA8B;IAC7C;;;;;;;OAOG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC;;;;OAIG;IACH,QAAQ,CAAC,4BAA4B,CAAC,EAAE,OAAO,CAAC;IAChD;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC;;;;;;OAMG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACtC;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAU5D;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,oBAAoB,EAAE,MAAM,GAC3B,MAAM,CAgBR;AAuKD;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,8BAAmC,GAC3C,OAAO,CAAC,+BAA+B,CAAC,CAyB1C"}
|
|
@@ -127,7 +127,8 @@ export function stripAgyProjectLearningsBridge(body) {
|
|
|
127
127
|
return replaceManagedAgyProjectLearningsBridge(body, "");
|
|
128
128
|
}
|
|
129
129
|
/**
|
|
130
|
-
* Build the
|
|
130
|
+
* Build the bounded Antigravity startup bridge. Antigravity does not load the
|
|
131
|
+
* plugin eager rules, so its missing-access instruction is repeated here.
|
|
131
132
|
* @param projectLearningsFile - Project-relative resolved learnings path.
|
|
132
133
|
* @returns Managed bridge block with surrounding markers.
|
|
133
134
|
*/
|
|
@@ -142,6 +143,9 @@ export function buildAgyProjectLearningsBridge(projectLearningsFile) {
|
|
|
142
143
|
"If it is malformed, warn once and ignore it.",
|
|
143
144
|
"",
|
|
144
145
|
`Resolved path for this project: \`${projectLearningsFile}\`.`,
|
|
146
|
+
"",
|
|
147
|
+
"- If you can't reach something you need, such as a repository, a secret, an API, or a connector, say exactly what's missing in your first message and stop. Don't substitute, mock, or guess.",
|
|
148
|
+
"If the missing access is discovered after work begins, say exactly what's missing in your next message and stop.",
|
|
145
149
|
LISA_PROJECT_LEARNINGS_END_MARKER,
|
|
146
150
|
].join("\n");
|
|
147
151
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instruction-files-migration.js","sourceRoot":"","sources":["../../src/core/instruction-files-migration.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"instruction-files-migration.js","sourceRoot":"","sources":["../../src/core/instruction-files-migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,9 +48,9 @@ export const NIGHTLY_E2E_GUARD_BEHAVIOR_CERTIFICATES = Object.freeze({
|
|
|
48
48
|
}),
|
|
49
49
|
f87e6eee47ddb6416f2c639b79b96a68173c9c562999fbad98abe012ac913d28: Object.freeze({
|
|
50
50
|
contractVersion: "1.9.0",
|
|
51
|
-
packageVersions: Object.freeze(["4.64.
|
|
51
|
+
packageVersions: Object.freeze(["4.64.1"]),
|
|
52
52
|
provenances: Object.freeze([
|
|
53
|
-
"workspace package @codyswann/lisa@4.64.
|
|
53
|
+
"workspace package @codyswann/lisa@4.64.1 (typescript/copy-overwrite/scripts/check-nightly-e2e-health.mjs)",
|
|
54
54
|
]),
|
|
55
55
|
}),
|
|
56
56
|
});
|
|
@@ -449,7 +449,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
449
449
|
"plugins/src/base/rules/eager/session-status-updates.md": "bbb42e86b8eb68334b8b9c0bc70beb4895a54015e097bf745fc92156b3e24766",
|
|
450
450
|
"plugins/src/base/rules/eager/settled-decisions.md": "ae1e8d1292db266038af41d9313708a3fba437c036de043ec6b0311418b56017",
|
|
451
451
|
"plugins/src/base/rules/eager/stale-state-claims.md": "faf5057f5910237b8d5048dbcccb73e0cd03762a8eefbeae43b5d0153104a85a",
|
|
452
|
-
"plugins/src/base/rules/eager/tool-access-gate.md": "
|
|
452
|
+
"plugins/src/base/rules/eager/tool-access-gate.md": "854eb5b16a8e0f51fe7caa0517c10d1ec5ded5ca7324c8304beddc7b81befcf2",
|
|
453
453
|
"plugins/src/base/rules/eager/tracked-work.md": "e6ac1bcb50e04120d9e4c9a2be1d022cd873071a8b74d34f53f282a03676733e",
|
|
454
454
|
"plugins/src/base/rules/eager/upstream-to-lisa.md": "dcb3075bc48de76f3bae1ad066d0a1e14f82bd244c1015a48f9e2916cabaf03c",
|
|
455
455
|
"plugins/src/base/rules/eager/verification.md": "a6cc1d50c5b91080171490edce4d375f136a14790dcbb247ca8b736ad8f55cfd",
|
|
@@ -505,7 +505,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
505
505
|
"plugins/src/base/rules/reference/session-status-updates.md": "8c34dc9399d6b20103edb3ed8d214aaa05a97065e4c78d8010f394cd041b3320",
|
|
506
506
|
"plugins/src/base/rules/reference/settled-decisions.md": "a26eb4e879ab33468d2c55c1cf8128fbbfbec9c2cb634d9dd9f008304ad9aa05",
|
|
507
507
|
"plugins/src/base/rules/reference/stale-state-claims.md": "6329e1a7629f9a12f10454c767842aecee4964df8b7bb4aebda9dde3c0959c2a",
|
|
508
|
-
"plugins/src/base/rules/reference/tool-access-gate.md": "
|
|
508
|
+
"plugins/src/base/rules/reference/tool-access-gate.md": "29579f403648d3b550b8b7e5fba01986fba8d3f0f285b5b5bf6bb0a839f7f10e",
|
|
509
509
|
"plugins/src/base/rules/reference/tracked-work.md": "eb8e7ceb11ba16dc5443ae2b1c83cce544a35db84af97d04aeca6018654fe9e0",
|
|
510
510
|
"plugins/src/base/rules/reference/upstream-to-lisa.md": "e98974e4f48af05f788323c92badae6a97a2feec1ca8e8a9c05ddc3e3c948492",
|
|
511
511
|
"plugins/src/base/rules/reference/usage-accounting.md": "64ee616bdad7c16d5cc4b9eb44384de261b0616ec3343d4c05a88ddede3d89ea",
|
package/package.json
CHANGED
|
@@ -187,7 +187,7 @@
|
|
|
187
187
|
"zod-validation-error": "^4.0.0"
|
|
188
188
|
},
|
|
189
189
|
"name": "@codyswann/lisa",
|
|
190
|
-
"version": "4.64.
|
|
190
|
+
"version": "4.64.1",
|
|
191
191
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
192
192
|
"main": "dist/index.js",
|
|
193
193
|
"exports": {
|
|
@@ -336,7 +336,7 @@
|
|
|
336
336
|
"test": "tests"
|
|
337
337
|
},
|
|
338
338
|
"types": "./dist/index.d.ts",
|
|
339
|
-
"lisaReleaseCommit": "
|
|
340
|
-
"gitHead": "
|
|
341
|
-
"lisaReleaseTag": "v4.64.
|
|
339
|
+
"lisaReleaseCommit": "7c3b234cfe7004fec28ff7dc4ce7425d3b955bbb",
|
|
340
|
+
"gitHead": "7c3b234cfe7004fec28ff7dc4ce7425d3b955bbb",
|
|
341
|
+
"lisaReleaseTag": "v4.64.1"
|
|
342
342
|
}
|
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
# Tool Access Gate (load-bearing)
|
|
2
2
|
|
|
3
|
+
- If you can't reach something you need, such as a repository, a secret, an API, or a connector, say exactly what's missing in your first message and stop. Don't substitute, mock, or guess.
|
|
4
|
+
|
|
5
|
+
If the missing access is discovered after work begins, say exactly what's
|
|
6
|
+
missing in your next message and stop.
|
|
7
|
+
|
|
3
8
|
Only take on work you can finish. Before implementation starts — and again the
|
|
4
9
|
moment a new requirement surfaces mid-flow — enumerate every external tool the
|
|
5
10
|
work item needs (implementation, proof command, remote verification: AWS CLI,
|
|
6
11
|
Figma, Jam, Sentry, SonarCloud, PostHog, device/browser harnesses, databases,
|
|
7
12
|
deploy targets, …) and **prove access with a cheap read-only probe**, routing
|
|
8
|
-
through the matching `*-access` skill where one exists.
|
|
9
|
-
access
|
|
10
|
-
|
|
13
|
+
through the matching `*-access` skill where one exists. Resolve credentials through the documented access path before probing;
|
|
14
|
+
presence on PATH is not access. If that path or the probe cannot provide the
|
|
15
|
+
required access, report the gap and stop.
|
|
11
16
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
`blocked` verification verdict. Substituting weaker verification, mocking the
|
|
17
|
-
inaccessible system, guessing at tool contents, or narrowing scope to dodge the
|
|
18
|
-
gap are all forbidden.
|
|
17
|
+
The message must name the missing resource, the operation it blocks, and any
|
|
18
|
+
known access requirement, without exposing secret values. Substituting weaker
|
|
19
|
+
verification, mocking the inaccessible system, guessing at its contents, or
|
|
20
|
+
narrowing scope to dodge the gap are all forbidden.
|
|
19
21
|
|
|
20
|
-
Full contract (probe table,
|
|
22
|
+
Full contract (probe table, blocker report, resume path):
|
|
21
23
|
[reference/tool-access-gate.md](../reference/tool-access-gate.md).
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
# Tool Access Gate
|
|
2
2
|
|
|
3
|
+
- If you can't reach something you need, such as a repository, a secret, an API, or a connector, say exactly what's missing in your first message and stop. Don't substitute, mock, or guess.
|
|
4
|
+
|
|
5
|
+
If the missing access is discovered after work begins, say exactly what's
|
|
6
|
+
missing in your next message and stop.
|
|
7
|
+
|
|
3
8
|
A flow may only take on work it can actually finish. If completing a work item —
|
|
4
9
|
including its empirical verification — requires an external tool or system the
|
|
5
|
-
agent cannot access, the flow must **
|
|
6
|
-
|
|
10
|
+
agent cannot access, the flow must **tell the user exactly what access is missing and stop**, never
|
|
11
|
+
work around it. This is the flow-side arm of the factory
|
|
7
12
|
contract: intake validates that the factory has "the tooling *and provable
|
|
8
13
|
access to that tooling*"; this gate re-proves that promise at execution time and
|
|
9
14
|
enforces it for tools discovered mid-flow.
|
|
@@ -31,7 +36,8 @@ enforces it for tools discovered mid-flow.
|
|
|
31
36
|
environment.
|
|
32
37
|
2. **Continuously** — the moment a previously unknown tool requirement surfaces
|
|
33
38
|
mid-flow (e.g. verification turns out to need CloudWatch log capture), probe
|
|
34
|
-
it right then
|
|
39
|
+
it right then. If access is unavailable, report it and stop. Otherwise, record
|
|
40
|
+
the new tool + probe result in the same places the
|
|
35
41
|
preflight wrote to (the plan/tracker artifact and the affected tasks'
|
|
36
42
|
`metadata.required_access`) before continuing. Discovery timing changes
|
|
37
43
|
nothing about the protocol.
|
|
@@ -62,44 +68,31 @@ Example probes:
|
|
|
62
68
|
| Deploy target | reach the target environment with the credentials the verify step will use |
|
|
63
69
|
| Device/browser harness | the harness's own doctor/smoke entry (e.g. `playwright --version` plus a trivial headless launch) |
|
|
64
70
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
proceed.
|
|
71
|
+
Resolve credentials through the documented sources before probing: project
|
|
72
|
+
e2e config/fixtures, `.lisa.config.local.json` and environment variables, then
|
|
73
|
+
documented work-item credentials (e.g. `Sign-in Required`). If the documented
|
|
74
|
+
access path or probe cannot provide the required access, report the gap and
|
|
75
|
+
stop. Do not continue exploring substitute sources after confirming the gap.
|
|
71
76
|
|
|
72
|
-
Record
|
|
77
|
+
Record successful probes in the flow's plan/tracker artifact
|
|
73
78
|
(and task `metadata.required_access` where the flow's task contract carries
|
|
74
79
|
it), so the verifier can confirm the gate ran.
|
|
75
80
|
|
|
76
81
|
## On failure: break out, never work around
|
|
77
82
|
|
|
78
|
-
When
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
3. **Transition the work item to the configured blocked state** and apply the
|
|
92
|
-
configured `human_needed` / needs-human marker — missing access is a
|
|
93
|
-
**human-only blocker** (someone must provision credentials or grant access);
|
|
94
|
-
do not fabricate a build-ready ticket for it.
|
|
95
|
-
4. **Release the verification gate honestly**: write the verdict with
|
|
96
|
-
`status: "blocked"`, and mark each acceptance criterion whose proof depends
|
|
97
|
-
on the missing tool as `status: "blocked"` with the missing-access
|
|
98
|
-
diagnosis as its `evidence`; unaffected criteria keep their real
|
|
99
|
-
`pass`/`fail` result.
|
|
100
|
-
5. **Resume only when the probe passes.** When access is granted, re-run the
|
|
101
|
-
recorded probe before continuing; `repair-intake` re-validates blocked items
|
|
102
|
-
whose blockers cleared.
|
|
83
|
+
When required access is unavailable, tell the user and stop. Use the first
|
|
84
|
+
message if the gap is already known, or the next message if it is discovered
|
|
85
|
+
mid-task. The message must state:
|
|
86
|
+
|
|
87
|
+
- the exact resource that cannot be reached and the operation it blocks;
|
|
88
|
+
- the observed failure and, if known, the credential name, role, permission, or
|
|
89
|
+
invitation needed — never secret values, and never a guessed diagnosis;
|
|
90
|
+
- the read-only probe that must pass before work can resume.
|
|
91
|
+
|
|
92
|
+
Do not substitute, mock, guess, or continue other tasks as a workaround.
|
|
93
|
+
Reporting does not depend on access to a tracker, and it does not require
|
|
94
|
+
creating a new ticket. Resume after the required access is available and its
|
|
95
|
+
probe passes.
|
|
103
96
|
|
|
104
97
|
### Forbidden workarounds
|
|
105
98
|
|
|
@@ -116,6 +109,6 @@ None of the following ever substitutes for missing access:
|
|
|
116
109
|
ticket points at).
|
|
117
110
|
- Silently narrowing scope so the inaccessible part is "out of scope".
|
|
118
111
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
112
|
+
Keep results already obtained, but stop further work until the required access
|
|
113
|
+
is available. An inaccessible tracker does not prevent reporting the blocker
|
|
114
|
+
to the user. Do not claim blocked acceptance criteria have passed.
|
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
# Tool Access Gate (load-bearing)
|
|
2
2
|
|
|
3
|
+
- If you can't reach something you need, such as a repository, a secret, an API, or a connector, say exactly what's missing in your first message and stop. Don't substitute, mock, or guess.
|
|
4
|
+
|
|
5
|
+
If the missing access is discovered after work begins, say exactly what's
|
|
6
|
+
missing in your next message and stop.
|
|
7
|
+
|
|
3
8
|
Only take on work you can finish. Before implementation starts — and again the
|
|
4
9
|
moment a new requirement surfaces mid-flow — enumerate every external tool the
|
|
5
10
|
work item needs (implementation, proof command, remote verification: AWS CLI,
|
|
6
11
|
Figma, Jam, Sentry, SonarCloud, PostHog, device/browser harnesses, databases,
|
|
7
12
|
deploy targets, …) and **prove access with a cheap read-only probe**, routing
|
|
8
|
-
through the matching `*-access` skill where one exists.
|
|
9
|
-
access
|
|
10
|
-
|
|
13
|
+
through the matching `*-access` skill where one exists. Resolve credentials through the documented access path before probing;
|
|
14
|
+
presence on PATH is not access. If that path or the probe cannot provide the
|
|
15
|
+
required access, report the gap and stop.
|
|
11
16
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
`blocked` verification verdict. Substituting weaker verification, mocking the
|
|
17
|
-
inaccessible system, guessing at tool contents, or narrowing scope to dodge the
|
|
18
|
-
gap are all forbidden.
|
|
17
|
+
The message must name the missing resource, the operation it blocks, and any
|
|
18
|
+
known access requirement, without exposing secret values. Substituting weaker
|
|
19
|
+
verification, mocking the inaccessible system, guessing at its contents, or
|
|
20
|
+
narrowing scope to dodge the gap are all forbidden.
|
|
19
21
|
|
|
20
|
-
Full contract (probe table,
|
|
22
|
+
Full contract (probe table, blocker report, resume path):
|
|
21
23
|
[reference/tool-access-gate.md](../reference/tool-access-gate.md).
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
# Tool Access Gate
|
|
2
2
|
|
|
3
|
+
- If you can't reach something you need, such as a repository, a secret, an API, or a connector, say exactly what's missing in your first message and stop. Don't substitute, mock, or guess.
|
|
4
|
+
|
|
5
|
+
If the missing access is discovered after work begins, say exactly what's
|
|
6
|
+
missing in your next message and stop.
|
|
7
|
+
|
|
3
8
|
A flow may only take on work it can actually finish. If completing a work item —
|
|
4
9
|
including its empirical verification — requires an external tool or system the
|
|
5
|
-
agent cannot access, the flow must **
|
|
6
|
-
|
|
10
|
+
agent cannot access, the flow must **tell the user exactly what access is missing and stop**, never
|
|
11
|
+
work around it. This is the flow-side arm of the factory
|
|
7
12
|
contract: intake validates that the factory has "the tooling *and provable
|
|
8
13
|
access to that tooling*"; this gate re-proves that promise at execution time and
|
|
9
14
|
enforces it for tools discovered mid-flow.
|
|
@@ -31,7 +36,8 @@ enforces it for tools discovered mid-flow.
|
|
|
31
36
|
environment.
|
|
32
37
|
2. **Continuously** — the moment a previously unknown tool requirement surfaces
|
|
33
38
|
mid-flow (e.g. verification turns out to need CloudWatch log capture), probe
|
|
34
|
-
it right then
|
|
39
|
+
it right then. If access is unavailable, report it and stop. Otherwise, record
|
|
40
|
+
the new tool + probe result in the same places the
|
|
35
41
|
preflight wrote to (the plan/tracker artifact and the affected tasks'
|
|
36
42
|
`metadata.required_access`) before continuing. Discovery timing changes
|
|
37
43
|
nothing about the protocol.
|
|
@@ -62,44 +68,31 @@ Example probes:
|
|
|
62
68
|
| Deploy target | reach the target environment with the credentials the verify step will use |
|
|
63
69
|
| Device/browser harness | the harness's own doctor/smoke entry (e.g. `playwright --version` plus a trivial headless launch) |
|
|
64
70
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
proceed.
|
|
71
|
+
Resolve credentials through the documented sources before probing: project
|
|
72
|
+
e2e config/fixtures, `.lisa.config.local.json` and environment variables, then
|
|
73
|
+
documented work-item credentials (e.g. `Sign-in Required`). If the documented
|
|
74
|
+
access path or probe cannot provide the required access, report the gap and
|
|
75
|
+
stop. Do not continue exploring substitute sources after confirming the gap.
|
|
71
76
|
|
|
72
|
-
Record
|
|
77
|
+
Record successful probes in the flow's plan/tracker artifact
|
|
73
78
|
(and task `metadata.required_access` where the flow's task contract carries
|
|
74
79
|
it), so the verifier can confirm the gate ran.
|
|
75
80
|
|
|
76
81
|
## On failure: break out, never work around
|
|
77
82
|
|
|
78
|
-
When
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
3. **Transition the work item to the configured blocked state** and apply the
|
|
92
|
-
configured `human_needed` / needs-human marker — missing access is a
|
|
93
|
-
**human-only blocker** (someone must provision credentials or grant access);
|
|
94
|
-
do not fabricate a build-ready ticket for it.
|
|
95
|
-
4. **Release the verification gate honestly**: write the verdict with
|
|
96
|
-
`status: "blocked"`, and mark each acceptance criterion whose proof depends
|
|
97
|
-
on the missing tool as `status: "blocked"` with the missing-access
|
|
98
|
-
diagnosis as its `evidence`; unaffected criteria keep their real
|
|
99
|
-
`pass`/`fail` result.
|
|
100
|
-
5. **Resume only when the probe passes.** When access is granted, re-run the
|
|
101
|
-
recorded probe before continuing; `repair-intake` re-validates blocked items
|
|
102
|
-
whose blockers cleared.
|
|
83
|
+
When required access is unavailable, tell the user and stop. Use the first
|
|
84
|
+
message if the gap is already known, or the next message if it is discovered
|
|
85
|
+
mid-task. The message must state:
|
|
86
|
+
|
|
87
|
+
- the exact resource that cannot be reached and the operation it blocks;
|
|
88
|
+
- the observed failure and, if known, the credential name, role, permission, or
|
|
89
|
+
invitation needed — never secret values, and never a guessed diagnosis;
|
|
90
|
+
- the read-only probe that must pass before work can resume.
|
|
91
|
+
|
|
92
|
+
Do not substitute, mock, guess, or continue other tasks as a workaround.
|
|
93
|
+
Reporting does not depend on access to a tracker, and it does not require
|
|
94
|
+
creating a new ticket. Resume after the required access is available and its
|
|
95
|
+
probe passes.
|
|
103
96
|
|
|
104
97
|
### Forbidden workarounds
|
|
105
98
|
|
|
@@ -116,6 +109,6 @@ None of the following ever substitutes for missing access:
|
|
|
116
109
|
ticket points at).
|
|
117
110
|
- Silently narrowing scope so the inaccessible part is "out of scope".
|
|
118
111
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
112
|
+
Keep results already obtained, but stop further work until the required access
|
|
113
|
+
is available. An inaccessible tracker does not prevent reporting the blocker
|
|
114
|
+
to the user. Do not claim blocked acceptance criteria have passed.
|
|
@@ -5,10 +5,15 @@ alwaysApply: false
|
|
|
5
5
|
|
|
6
6
|
# Tool Access Gate
|
|
7
7
|
|
|
8
|
+
- If you can't reach something you need, such as a repository, a secret, an API, or a connector, say exactly what's missing in your first message and stop. Don't substitute, mock, or guess.
|
|
9
|
+
|
|
10
|
+
If the missing access is discovered after work begins, say exactly what's
|
|
11
|
+
missing in your next message and stop.
|
|
12
|
+
|
|
8
13
|
A flow may only take on work it can actually finish. If completing a work item —
|
|
9
14
|
including its empirical verification — requires an external tool or system the
|
|
10
|
-
agent cannot access, the flow must **
|
|
11
|
-
|
|
15
|
+
agent cannot access, the flow must **tell the user exactly what access is missing and stop**, never
|
|
16
|
+
work around it. This is the flow-side arm of the factory
|
|
12
17
|
contract: intake validates that the factory has "the tooling *and provable
|
|
13
18
|
access to that tooling*"; this gate re-proves that promise at execution time and
|
|
14
19
|
enforces it for tools discovered mid-flow.
|
|
@@ -36,7 +41,8 @@ enforces it for tools discovered mid-flow.
|
|
|
36
41
|
environment.
|
|
37
42
|
2. **Continuously** — the moment a previously unknown tool requirement surfaces
|
|
38
43
|
mid-flow (e.g. verification turns out to need CloudWatch log capture), probe
|
|
39
|
-
it right then
|
|
44
|
+
it right then. If access is unavailable, report it and stop. Otherwise, record
|
|
45
|
+
the new tool + probe result in the same places the
|
|
40
46
|
preflight wrote to (the plan/tracker artifact and the affected tasks'
|
|
41
47
|
`metadata.required_access`) before continuing. Discovery timing changes
|
|
42
48
|
nothing about the protocol.
|
|
@@ -67,44 +73,31 @@ Example probes:
|
|
|
67
73
|
| Deploy target | reach the target environment with the credentials the verify step will use |
|
|
68
74
|
| Device/browser harness | the harness's own doctor/smoke entry (e.g. `playwright --version` plus a trivial headless launch) |
|
|
69
75
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
proceed.
|
|
76
|
+
Resolve credentials through the documented sources before probing: project
|
|
77
|
+
e2e config/fixtures, `.lisa.config.local.json` and environment variables, then
|
|
78
|
+
documented work-item credentials (e.g. `Sign-in Required`). If the documented
|
|
79
|
+
access path or probe cannot provide the required access, report the gap and
|
|
80
|
+
stop. Do not continue exploring substitute sources after confirming the gap.
|
|
76
81
|
|
|
77
|
-
Record
|
|
82
|
+
Record successful probes in the flow's plan/tracker artifact
|
|
78
83
|
(and task `metadata.required_access` where the flow's task contract carries
|
|
79
84
|
it), so the verifier can confirm the gate ran.
|
|
80
85
|
|
|
81
86
|
## On failure: break out, never work around
|
|
82
87
|
|
|
83
|
-
When
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
3. **Transition the work item to the configured blocked state** and apply the
|
|
97
|
-
configured `human_needed` / needs-human marker — missing access is a
|
|
98
|
-
**human-only blocker** (someone must provision credentials or grant access);
|
|
99
|
-
do not fabricate a build-ready ticket for it.
|
|
100
|
-
4. **Release the verification gate honestly**: write the verdict with
|
|
101
|
-
`status: "blocked"`, and mark each acceptance criterion whose proof depends
|
|
102
|
-
on the missing tool as `status: "blocked"` with the missing-access
|
|
103
|
-
diagnosis as its `evidence`; unaffected criteria keep their real
|
|
104
|
-
`pass`/`fail` result.
|
|
105
|
-
5. **Resume only when the probe passes.** When access is granted, re-run the
|
|
106
|
-
recorded probe before continuing; `repair-intake` re-validates blocked items
|
|
107
|
-
whose blockers cleared.
|
|
88
|
+
When required access is unavailable, tell the user and stop. Use the first
|
|
89
|
+
message if the gap is already known, or the next message if it is discovered
|
|
90
|
+
mid-task. The message must state:
|
|
91
|
+
|
|
92
|
+
- the exact resource that cannot be reached and the operation it blocks;
|
|
93
|
+
- the observed failure and, if known, the credential name, role, permission, or
|
|
94
|
+
invitation needed — never secret values, and never a guessed diagnosis;
|
|
95
|
+
- the read-only probe that must pass before work can resume.
|
|
96
|
+
|
|
97
|
+
Do not substitute, mock, guess, or continue other tasks as a workaround.
|
|
98
|
+
Reporting does not depend on access to a tracker, and it does not require
|
|
99
|
+
creating a new ticket. Resume after the required access is available and its
|
|
100
|
+
probe passes.
|
|
108
101
|
|
|
109
102
|
### Forbidden workarounds
|
|
110
103
|
|
|
@@ -121,6 +114,6 @@ None of the following ever substitutes for missing access:
|
|
|
121
114
|
ticket points at).
|
|
122
115
|
- Silently narrowing scope so the inaccessible part is "out of scope".
|
|
123
116
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
117
|
+
Keep results already obtained, but stop further work until the required access
|
|
118
|
+
is available. An inaccessible tracker does not prevent reporting the blocker
|
|
119
|
+
to the user. Do not claim blocked acceptance criteria have passed.
|