@codyswann/lisa 3.31.2 → 3.31.3
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/all/copy-overwrite/scripts/lisa-floor-collisions.mjs +1 -1
- package/all/copy-overwrite/scripts/lisa-gates.mjs +1 -1
- package/dist/cli/doctor-apply-freshness.js +1 -1
- package/dist/cli/doctor-worktree-hygiene.d.ts +1 -1
- package/dist/cli/doctor-worktree-hygiene.js +1 -1
- package/dist/core/apply-receipt.js +1 -1
- package/dist/core/guard-capabilities.d.ts +2 -2
- package/dist/core/guard-capabilities.js +2 -2
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +6 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/lisa-owned-provenance.js +3 -3
- package/dist/core/upstream-evidence-manifest.js +14 -14
- package/dist/migrations/ensure-lisa-postinstall.d.ts +1 -1
- package/dist/migrations/ensure-lisa-postinstall.js +1 -1
- package/dist/strategies/copy-overwrite.d.ts +1 -1
- package/dist/strategies/copy-overwrite.js +1 -1
- package/dist/utils/yaml.js +1 -1
- package/eslint-plugin-code-organization/README.md +1 -1
- package/expo/copy-overwrite/scripts/classify-maestro-failures.mjs +1 -1
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-detect-tooling/SKILL.md +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-drive-pr-to-merge/SKILL.md +3 -3
- package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/SKILL.md +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/materialize-secrets.mjs +2 -2
- package/plugins/lisa/.codex-plugin/skills/lisa-setup-notion/SKILL.md +1 -1
- package/plugins/lisa/rules/reference/claim-time-guards.md +1 -1
- package/plugins/lisa/skills/lisa-detect-tooling/SKILL.md +1 -1
- package/plugins/lisa/skills/lisa-drive-pr-to-merge/SKILL.md +3 -3
- package/plugins/lisa/skills/lisa-secrets-access/SKILL.md +1 -1
- package/plugins/lisa/skills/lisa-secrets-access/scripts/materialize-secrets.mjs +2 -2
- package/plugins/lisa/skills/lisa-setup-notion/SKILL.md +1 -1
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-detect-tooling/SKILL.md +1 -1
- package/plugins/lisa-agy/skills/lisa-drive-pr-to-merge/SKILL.md +3 -3
- package/plugins/lisa-agy/skills/lisa-secrets-access/SKILL.md +1 -1
- package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/materialize-secrets.mjs +2 -2
- package/plugins/lisa-agy/skills/lisa-setup-notion/SKILL.md +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/reference/claim-time-guards.md +1 -1
- package/plugins/lisa-copilot/skills/lisa-detect-tooling/SKILL.md +1 -1
- package/plugins/lisa-copilot/skills/lisa-drive-pr-to-merge/SKILL.md +3 -3
- package/plugins/lisa-copilot/skills/lisa-secrets-access/SKILL.md +1 -1
- package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/materialize-secrets.mjs +2 -2
- package/plugins/lisa-copilot/skills/lisa-setup-notion/SKILL.md +1 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/rules/claim-time-guards-reference.mdc +1 -1
- package/plugins/lisa-cursor/skills/lisa-detect-tooling/SKILL.md +1 -1
- package/plugins/lisa-cursor/skills/lisa-drive-pr-to-merge/SKILL.md +3 -3
- package/plugins/lisa-cursor/skills/lisa-secrets-access/SKILL.md +1 -1
- package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/materialize-secrets.mjs +2 -2
- package/plugins/lisa-cursor/skills/lisa-setup-notion/SKILL.md +1 -1
- 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/reference/claim-time-guards.md +1 -1
- package/plugins/src/base/skills/lisa-detect-tooling/SKILL.md +1 -1
- package/plugins/src/base/skills/lisa-drive-pr-to-merge/SKILL.md +3 -3
- package/plugins/src/base/skills/lisa-secrets-access/SKILL.md +1 -1
- package/plugins/src/base/skills/lisa-secrets-access/scripts/materialize-secrets.mjs +2 -2
- package/plugins/src/base/skills/lisa-setup-notion/SKILL.md +1 -1
- package/scripts/lisa-assert-eas-profile.mjs +1 -1
- package/typescript/copy-overwrite/scripts/check-nightly-e2e-health.mjs +7 -7
- package/typescript/copy-overwrite/scripts/check-skipped-required-checks.mjs +4 -4
- package/typescript/copy-overwrite/scripts/nightly-e2e-suites.schema.json +1 -1
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* That is fine when the two agree. It is a silent security regression when the
|
|
15
15
|
* dependency line is lower, which is the normal case: an override exists
|
|
16
16
|
* *because* the direct range was too permissive. Observed in
|
|
17
|
-
*
|
|
17
|
+
* acmeorgc/frontend on bun 1.3.11, from a clean tree:
|
|
18
18
|
*
|
|
19
19
|
* "postcss": ">=8.5.18" -> "$postcss" with devDependencies ^8.5.0
|
|
20
20
|
* "prettier": "3.8.3" -> "$prettier" with devDependencies ^3.3.3
|
|
@@ -252,7 +252,7 @@ export const REGISTRY = Object.freeze({
|
|
|
252
252
|
// rather than a naming preference. `environment:reset` is a PRECONDITION a
|
|
253
253
|
// workflow calls before a suite; if it were the gate's task, declaring the
|
|
254
254
|
// gate `required` at pull-request would converge a shared environment on
|
|
255
|
-
// every pull request. That hazard is not hypothetical —
|
|
255
|
+
// every pull request. That hazard is not hypothetical — acmeorgd/frontend
|
|
256
256
|
// already runs an unconditional reset job that is destructive to shared dev
|
|
257
257
|
// data on every invocation.
|
|
258
258
|
//
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Doctor check: has `lisa apply` ever actually succeeded here, and did it
|
|
3
3
|
* succeed on the Lisa version this project now has installed?
|
|
4
4
|
*
|
|
5
|
-
* This is the arm that would have caught
|
|
5
|
+
* This is the arm that would have caught acmeorgb/frontend-v2
|
|
6
6
|
* (CodySwannGT/lisa#2467). That repo's `lisa apply` had been failing outright
|
|
7
7
|
* for months — an incompatible js-yaml pin killed the CLI before it could print
|
|
8
8
|
* anything — while the postinstall bootstrap discarded the error. Nothing
|
|
@@ -22,7 +22,7 @@ export declare const WORKTREE_COUNT_WARN_THRESHOLD = 10;
|
|
|
22
22
|
* failures in CodySwannGT/lisa#2490: they are never garbage-collected, each one
|
|
23
23
|
* is a full checkout, and the resulting tree is what every crawler in the repo
|
|
24
24
|
* has to walk past. The same cause is documented downstream three separate ways
|
|
25
|
-
* in `
|
|
25
|
+
* in `acmeorga/frontend` (watchman crawl cost, jest's find-crawler overflowing
|
|
26
26
|
* V8's max string length, an unanchored Metro blockList pattern) — all of which
|
|
27
27
|
* only appeared once enough worktrees had piled up.
|
|
28
28
|
*
|
|
@@ -25,7 +25,7 @@ export const WORKTREE_COUNT_WARN_THRESHOLD = 10;
|
|
|
25
25
|
* failures in CodySwannGT/lisa#2490: they are never garbage-collected, each one
|
|
26
26
|
* is a full checkout, and the resulting tree is what every crawler in the repo
|
|
27
27
|
* has to walk past. The same cause is documented downstream three separate ways
|
|
28
|
-
* in `
|
|
28
|
+
* in `acmeorga/frontend` (watchman crawl cost, jest's find-crawler overflowing
|
|
29
29
|
* V8's max string length, an unanchored Metro blockList pattern) — all of which
|
|
30
30
|
* only appeared once enough worktrees had piled up.
|
|
31
31
|
*
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* `migrations/ensure-lisa-postinstall`), and the detached reconciliation
|
|
6
6
|
* trampoline runs with `stdio: "ignore"` because it outlives the terminal that
|
|
7
7
|
* started it. Both are correct, and both mean a failed apply can leave no trace
|
|
8
|
-
* anyone will ever read.
|
|
8
|
+
* anyone will ever read. acmeorgb/frontend-v2 went months that way
|
|
9
9
|
* (CodySwannGT/lisa#2467).
|
|
10
10
|
*
|
|
11
11
|
* So success — not failure — is what gets recorded. A receipt is written only
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
*
|
|
17
17
|
* Deliberately a *set*, not a version number. A monotonic `lisa-guard-version: N`
|
|
18
18
|
* is easier to compare but lies the moment two hosts harden different vectors
|
|
19
|
-
* independently — which is exactly what happened: `
|
|
20
|
-
* the `GIT_CONFIG_KEY_<n>` bypass while `
|
|
19
|
+
* independently — which is exactly what happened: `acmeorga/frontend` closed
|
|
20
|
+
* the `GIT_CONFIG_KEY_<n>` bypass while `acmeorgd-infrastructure` closed a different
|
|
21
21
|
* one. Both would have bumped to the same number and one would have silently
|
|
22
22
|
* won. Two sets stay two sets, and set difference names precisely what each copy
|
|
23
23
|
* has that the other does not.
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
*
|
|
17
17
|
* Deliberately a *set*, not a version number. A monotonic `lisa-guard-version: N`
|
|
18
18
|
* is easier to compare but lies the moment two hosts harden different vectors
|
|
19
|
-
* independently — which is exactly what happened: `
|
|
20
|
-
* the `GIT_CONFIG_KEY_<n>` bypass while `
|
|
19
|
+
* independently — which is exactly what happened: `acmeorga/frontend` closed
|
|
20
|
+
* the `GIT_CONFIG_KEY_<n>` bypass while `acmeorgd-infrastructure` closed a different
|
|
21
21
|
* one. Both would have bumped to the same number and one would have silently
|
|
22
22
|
* won. Two sets stay two sets, and set difference names precisely what each copy
|
|
23
23
|
* has that the other does not.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lisa-owned-hash-ledger.d.ts","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"AACA,6EAA6E;AAE7E;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"lisa-owned-hash-ledger.d.ts","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"AACA,6EAA6E;AAE7E;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAgWjC,CAAC"}
|
|
@@ -97,6 +97,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
97
97
|
"d7134b5f05ec93ce15d8d195f47bb79b346a5e9beec49dce3fd55b8a8e80e8e8",
|
|
98
98
|
]),
|
|
99
99
|
"scripts/check-nightly-e2e-health.mjs": Object.freeze([
|
|
100
|
+
"191608d272178a8fd3126d5b3e4923fadb50e01b699d0376625248d541b14f50",
|
|
100
101
|
"1c79ec49e5f4a3bba700bc1d97e9fc0f4f1799dec3acdf2bed5e3e5b866a0efd",
|
|
101
102
|
"3810fdea24d361f20895113f32d241f54d7194f4f3e3daba4dad01a941bbb230",
|
|
102
103
|
"38900cd4c9bb33ff26ff10e82cb928cb4b0a7fa10bc614c9c30d4860d2c0d017",
|
|
@@ -114,6 +115,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
114
115
|
"444210c8fbfca1d3e6ae0e180fe95752e10152610ad349ffea377136f4ae8cf7",
|
|
115
116
|
"48d3fa3043e144bcf52feb0e20db887d75c7ebda3b1fa708fe93f6554f6bec78",
|
|
116
117
|
"5af5f112ba258c4874a65c72c8bed12165e75e4df407265eb46ee9c89c4e0e53",
|
|
118
|
+
"80ac3fd890c199586b4a1b52001d075a56a1ab1e4e19427930624f721c7649a5",
|
|
117
119
|
"86de31fbda9dd26a938bf30846c5fc70744cf199df7d475a35f3f25dbc0f7c2f",
|
|
118
120
|
"86e9df17ea11fe0cd11d54f7fd60f016338e7fe28cdd4b07fab3b0b064b64ffb",
|
|
119
121
|
"8eaac3ea96d92b55c418877c1fe338a7c0b3a8f48ef3593258f54a633f761c85",
|
|
@@ -145,6 +147,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
145
147
|
"fb306a2793489219483fabc4f084fba5fa2db73269b683ea8661cf490c7866ea",
|
|
146
148
|
]),
|
|
147
149
|
"scripts/classify-maestro-failures.mjs": Object.freeze([
|
|
150
|
+
"6af05ffc7a6d253fef6139f8058ded15b0a97e6888b0b4ca228b3b111bb3b613",
|
|
148
151
|
"7c550e8af431293b6b8d7ca2cfd777a07ec798fd3880275d8c12f7423d4d168b",
|
|
149
152
|
"aadb773bfb994e754cfdf576f59d4bfe020184b21953908d40049ddfe3a93fc1",
|
|
150
153
|
"eaafd632dacfb181f6c83a22e5086f39586aff023788861d915c7254246d3175",
|
|
@@ -183,11 +186,13 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
183
186
|
"scripts/lisa-floor-collisions.mjs": Object.freeze([
|
|
184
187
|
"2d11968f6852ab745cba939de03c6d6cb5f413975d2cfc8fc447bdd0b218e91a",
|
|
185
188
|
"3c7a0234b4f5609fce49e44711d2ec86af8cf7fb82b0831e4450e3347ecefe45",
|
|
189
|
+
"9cba6e0103c27850703323da25ac149c0136225172f1a1640abe3b3ac4e50a8e",
|
|
186
190
|
"a612f172282d13ba9318fe5e03689d7c6ff42a0122d0c9d5d39051e1967b93dc",
|
|
187
191
|
]),
|
|
188
192
|
"scripts/lisa-gates.mjs": Object.freeze([
|
|
189
193
|
"13ac69bf2bbae76bc702506bcef5c8fb2b26befaf1358627f4726c1a8ac5905a",
|
|
190
194
|
"186efce62ea9b94db91226587cd5e1d41ecf2cf9d63e2ba56a012dd5a41f362b",
|
|
195
|
+
"1ac3180f7a8f777f6be0d90043d4396ec96589168b43fc7128eeec750aa9aef9",
|
|
191
196
|
"2afa67f8f8b762bc462246d3d0839f34e3ee84ed4daad8d6e187ae21026040bc",
|
|
192
197
|
"444ed4b879ef7af5dc409ae48743ad06354e47b727ddb5be0877cab52ddd0b64",
|
|
193
198
|
"4907989922ad86f5c162413e1b4c8560b6e7bb9417ab4d109f8dbfc676d4921e",
|
|
@@ -330,6 +335,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
330
335
|
"fe064a2bd11200ed256fb36e203978f858fccbcaf40708496c066383345900ef",
|
|
331
336
|
]),
|
|
332
337
|
"scripts/nightly-e2e-suites.schema.json": Object.freeze([
|
|
338
|
+
"9fbef6f8740714f521d8b997308d96492e9158b1221d654333316f2cf7b48445",
|
|
333
339
|
"a6041930ca4536f3a76e4f54976ff846ab575f5f07a2356722eedcb06795e684",
|
|
334
340
|
"ea9b2b4ab1d2a39d7b4eb8c841ccae576836678ca42bb40161d6af383e3e378c",
|
|
335
341
|
]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lisa-owned-hash-ledger.js","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lisa-owned-hash-ledger.js","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* possibilities and not the dangerous one. When the host copy is ahead —
|
|
8
8
|
* a guard hardened downstream before upstream caught up — the same comparison
|
|
9
9
|
* produces the same answer, and the overwrite silently deletes a security
|
|
10
|
-
* control. `
|
|
10
|
+
* control. `acmeorga/frontend` closed the `GIT_CONFIG_KEY_<n>` hooks-path
|
|
11
11
|
* bypass before Lisa did; a `bun install` regenerated the file and reverted the
|
|
12
12
|
* hardening with no warning and no failure. Their own tests caught it. Nothing
|
|
13
13
|
* in Lisa would have.
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
* call that stale.
|
|
24
24
|
*
|
|
25
25
|
* Hashes are the primary signal rather than capability markers because markers
|
|
26
|
-
* only protect a host that *declared*.
|
|
26
|
+
* only protect a host that *declared*. acmeorga did not declare; they edited the
|
|
27
27
|
* guard. A marker-only design would still have clobbered the very incident that
|
|
28
28
|
* motivated this. The ledger protects undeclared hardening, retroactively, with
|
|
29
29
|
* no host-side action required.
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
* A host hardening a Lisa guard edits a *copy of Lisa's file*, so it keeps
|
|
45
45
|
* Lisa's marker line. Its declared set therefore equals Lisa's while its bytes
|
|
46
46
|
* carry undeclared changes — and the shortcut overwrote them without ever
|
|
47
|
-
* consulting the ledger. That is precisely the
|
|
47
|
+
* consulting the ledger. That is precisely the acmeorga case, silently reverted
|
|
48
48
|
* again by the mechanism meant to prevent it.
|
|
49
49
|
*
|
|
50
50
|
* So capabilities may only ever justify *keeping* the host's copy. Declaring
|
|
@@ -8,8 +8,8 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
8
8
|
"all/copy-overwrite/scripts/lisa-command-envelope.mjs": "014a94647efc636cbce961364a82f03c1f3c1e54a55e9d21508fded88dce49c4",
|
|
9
9
|
"all/copy-overwrite/scripts/lisa-destructive-guard.mjs": "f0f3c43bbb6d1e389135b0205a051e64891e539d4272df2a87841ee82a8b7a55",
|
|
10
10
|
"all/copy-overwrite/scripts/lisa-enforcement-fallback.sh": "aafd027c4b6092da15d0389f9e8dcedbd9105e9083057e2da39f78fd5f72e0df",
|
|
11
|
-
"all/copy-overwrite/scripts/lisa-floor-collisions.mjs": "
|
|
12
|
-
"all/copy-overwrite/scripts/lisa-gates.mjs": "
|
|
11
|
+
"all/copy-overwrite/scripts/lisa-floor-collisions.mjs": "9cba6e0103c27850703323da25ac149c0136225172f1a1640abe3b3ac4e50a8e",
|
|
12
|
+
"all/copy-overwrite/scripts/lisa-gates.mjs": "1ac3180f7a8f777f6be0d90043d4396ec96589168b43fc7128eeec750aa9aef9",
|
|
13
13
|
"all/copy-overwrite/scripts/lisa-hooks/block-direct-issue-create.sh": "698131242f9ea27ea00e864d4b302f4ccc4a24d1383cb8ca9f0b17b565796197",
|
|
14
14
|
"all/copy-overwrite/scripts/lisa-hooks/block-instruction-file-edits.sh": "3e709e1ec8a5843c00684bc477ad32ddab2c5fdb11f71d5aeec0c49609eaf025",
|
|
15
15
|
"all/copy-overwrite/scripts/lisa-hooks/block-managed-file-edits.sh": "c6472a7f9d509a7eb7b17d665fe3f34827d4e5a50ba5b0d044dd325b468adbf8",
|
|
@@ -55,7 +55,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
55
55
|
"cdk/merge/.claude/settings.json": "6f938fdc9c808ee4dda9d605815788dda384197065aac6793c7549d8811a6224",
|
|
56
56
|
"cdk/merge/.oxlintrc.json": "f7d248cf8a89561374d7e68e24aa780f4a6a523938475ad685f034ce0194d75c",
|
|
57
57
|
"cdk/package-lisa/package.lisa.json": "36d3cc0e6c1cf5496f82e37b452ba3fa07b3d43427e0d48f574cc53e5d2dabf5",
|
|
58
|
-
"eslint-plugin-code-organization/README.md": "
|
|
58
|
+
"eslint-plugin-code-organization/README.md": "e70c9e262ce3a97e1f9fe1897ffa71e3d1b124f10486b90ead5d4a5252977826",
|
|
59
59
|
"eslint-plugin-code-organization/__tests__/enforce-statement-order.test.js": "27e8e2cdf9bae3c35c22f17407570a163cfe52bd848ec40f7f2f1068e97c10c9",
|
|
60
60
|
"eslint-plugin-code-organization/index.js": "9be5ecb135bc30cf39a3371825e94f8a379d8339653297bd7e48c07624923c83",
|
|
61
61
|
"eslint-plugin-code-organization/package.json": "98ddbb102c1ab145130b90f8bbc1cf274decf58ff85fa4c0993fdaf2c71bb1eb",
|
|
@@ -104,7 +104,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
104
104
|
"expo/copy-overwrite/scripts/bdd/waivers.mjs": "4b62574a0d59476f050c704888e114ce7baae6c996bb3a2b043c168f74823490",
|
|
105
105
|
"expo/copy-overwrite/scripts/check-bdd-coverage.mjs": "19cbbd7d368a99457212f2e1f9b37e6352cab6d459eb7dd11adb154f0c627c84",
|
|
106
106
|
"expo/copy-overwrite/scripts/check-e2e-coverage.mjs": "b284a59b3ce5dfa8fa4e6b9c5789c6c9c08120eaf957a91453fc659322feab28",
|
|
107
|
-
"expo/copy-overwrite/scripts/classify-maestro-failures.mjs": "
|
|
107
|
+
"expo/copy-overwrite/scripts/classify-maestro-failures.mjs": "6af05ffc7a6d253fef6139f8058ded15b0a97e6888b0b4ca228b3b111bb3b613",
|
|
108
108
|
"expo/copy-overwrite/scripts/lib/invoked-as-script.mjs": "fbb9b88fc85a3e22f21af39e1c17acf67ff83fc6b5a6cdc8081bde333c48faa7",
|
|
109
109
|
"expo/copy-overwrite/tsconfig.eslint.json": "375bb2ee8185e4a57d703e078ad57188f6d45b03b0fcbb16ef049fcf9b14c44b",
|
|
110
110
|
"expo/copy-overwrite/tsconfig.expo.json": "55f3dfe80496f03152d40d364c5a9cabf3fdce3adc8cebea48ba5257d77b7aa9",
|
|
@@ -419,7 +419,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
419
419
|
"plugins/src/base/rules/reference/bdd-e2e-coverage.md": "4ae48d6f54f8558a7aa9b6db24db3a619c9a669aece9a61ca9e58e2e2cf2f370",
|
|
420
420
|
"plugins/src/base/rules/reference/claim-archaeology.md": "fff025d47848c768d5b2c7047de744b7151eb2e44148d2df058c87310859457b",
|
|
421
421
|
"plugins/src/base/rules/reference/claim-evidence-mapping.md": "49a3bbf4e8a9a8ca9e13eeafa672517d077060cfeb5d9710881ec9f5c3f3ec75",
|
|
422
|
-
"plugins/src/base/rules/reference/claim-time-guards.md": "
|
|
422
|
+
"plugins/src/base/rules/reference/claim-time-guards.md": "50abda40a427d14560b401d32ff6b28e458298649e1ba48330105945b4128ed7",
|
|
423
423
|
"plugins/src/base/rules/reference/coding-philosophy.md": "fed8381f16a5d6793a49d84d5813d62125808cb2f4981a558b119cf63e2586d9",
|
|
424
424
|
"plugins/src/base/rules/reference/config-resolution.md": "83c46e2bb8c3f84aba013196a5e6a41104136e36e37b197e4d7a4e896f7d6aa9",
|
|
425
425
|
"plugins/src/base/rules/reference/convergent-review.md": "788a9d4dc2af7a928c3ccbb4d53a92856bb3544941ce512cfe38068d6b35850d",
|
|
@@ -503,11 +503,11 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
503
503
|
"plugins/src/base/skills/lisa-debrief-apply/SKILL.md": "7bff86a9e15cb63d58961dd5a47d0fbab44872f9bdcad04328788890f4521190",
|
|
504
504
|
"plugins/src/base/skills/lisa-debrief/SKILL.md": "6a0981107f907d3362ab0001f46412b76a70ec5ecc37ea1cd1def6ce4a38c9ee",
|
|
505
505
|
"plugins/src/base/skills/lisa-delivery-effectiveness/SKILL.md": "21bc55fa0e86a9694bd22269fd089dbfae0c54c199262f46a4955447acea0f35",
|
|
506
|
-
"plugins/src/base/skills/lisa-detect-tooling/SKILL.md": "
|
|
506
|
+
"plugins/src/base/skills/lisa-detect-tooling/SKILL.md": "6ea2b1404d5c27f8a5bec8c90ad35ed0124789b70c091869455f538a2a9debbe",
|
|
507
507
|
"plugins/src/base/skills/lisa-detect-tooling/scripts/commands.mjs": "e28bd61fdde4a336b56ae3395423026943a5816015719d31d04f0d5a0ab50eec",
|
|
508
508
|
"plugins/src/base/skills/lisa-detect-tooling/scripts/detect-tooling.mjs": "3a79e0a09112268c2bfe51575355c10c2fa5305fdac6629cada2028ab3f07a00",
|
|
509
509
|
"plugins/src/base/skills/lisa-doctor/SKILL.md": "f015bd91a615fa22b8e9f2bcb89a8bbce4a3f7d4fd977bfe94970e8d21d640d8",
|
|
510
|
-
"plugins/src/base/skills/lisa-drive-pr-to-merge/SKILL.md": "
|
|
510
|
+
"plugins/src/base/skills/lisa-drive-pr-to-merge/SKILL.md": "62e257c8f332d54ba5f92f6cfa4d05c9684f554a1aba8424254ddfd6d4a4361d",
|
|
511
511
|
"plugins/src/base/skills/lisa-epic-triage/SKILL.md": "d02760411249bddbd396f283191fe3e82bb7b95bf9393a19a7025dc5a57c3ab7",
|
|
512
512
|
"plugins/src/base/skills/lisa-evaluation-suite/SKILL.md": "96b5c2091ccd22a565935a7b0b917f67998881b81055ce3e4d518319472eac8b",
|
|
513
513
|
"plugins/src/base/skills/lisa-exploratory-qa/SKILL.md": "7041419b9160e0370c9a2351a53235e57a997ef11dabc0b670f8873b1db48d08",
|
|
@@ -623,13 +623,13 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
623
623
|
"plugins/src/base/skills/lisa-review-local/SKILL.md": "348c4cae5a189e9afa9950899a5bd88674db8265d63a99b5b7a1b616e970e885",
|
|
624
624
|
"plugins/src/base/skills/lisa-rework-triage/SKILL.md": "56a5549a1430ea791e5edb71144c0741f09970933fe3f7b54a76e3218b9b9042",
|
|
625
625
|
"plugins/src/base/skills/lisa-root-cause-analysis/SKILL.md": "3fa14217ca36b238ebb8203d18f10eaaf98a3647f949cdada6cb9f56ddf9ed50",
|
|
626
|
-
"plugins/src/base/skills/lisa-secrets-access/SKILL.md": "
|
|
626
|
+
"plugins/src/base/skills/lisa-secrets-access/SKILL.md": "88af095e50430168cf039d303a698a065b0d779eab982f85c656006fc22e0c45",
|
|
627
627
|
"plugins/src/base/skills/lisa-secrets-access/scripts/aws-bootstrap.mjs": "a06c212d45442a0a2daaefda1a7255e299f82704ca3637243b778d8268a5ce65",
|
|
628
628
|
"plugins/src/base/skills/lisa-secrets-access/scripts/bootstrap-store.mjs": "8dd5ca2c99394ead696093dd10caf664ce2609d39fb8d8ae8f4d4f236dbddbe6",
|
|
629
629
|
"plugins/src/base/skills/lisa-secrets-access/scripts/doctor-secrets.mjs": "71fd7a3f26d7e4424bb8ef80caaaa3db136595a5b9e620a32084a00521277ba3",
|
|
630
630
|
"plugins/src/base/skills/lisa-secrets-access/scripts/envfile.mjs": "be4e38ce85f9268b52b29dbde264ecd8d50973c2b63a15410336234a921d9644",
|
|
631
631
|
"plugins/src/base/skills/lisa-secrets-access/scripts/inspect-vault.mjs": "d2841042eda0f0c50f995ccc34e09e25aced0abbf3a96bce52a9f604e4009520",
|
|
632
|
-
"plugins/src/base/skills/lisa-secrets-access/scripts/materialize-secrets.mjs": "
|
|
632
|
+
"plugins/src/base/skills/lisa-secrets-access/scripts/materialize-secrets.mjs": "e10ef902fe0dd1fc19a8949f7f1b75cbf2ee8ab2e5a07923214e5ff72ccfda2e",
|
|
633
633
|
"plugins/src/base/skills/lisa-secrets-access/scripts/note-format.mjs": "09bd6904bc84a5a93a32499ac94db5ec7728db68908a661698445ef5e6974f3e",
|
|
634
634
|
"plugins/src/base/skills/lisa-secrets-access/scripts/preflight-secrets.mjs": "98a0a541041d543fe91e6260da4a25e383123a0eb40bad32a4d59551b7da8db8",
|
|
635
635
|
"plugins/src/base/skills/lisa-secrets-access/scripts/prompt-secret.mjs": "22b28bcdf49b9b0fcd1b15639e031655efacc028b74d48d57e2275f3e1557508",
|
|
@@ -656,7 +656,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
656
656
|
"plugins/src/base/skills/lisa-setup-linear/SKILL.md": "8813f9374f0d485c1ca1d2b2549e990dee1b232e82487c85caec972c47cceb64",
|
|
657
657
|
"plugins/src/base/skills/lisa-setup-local-env/SKILL.md": "4d4b8c92e3616256f5f689fbe433f09c31d39c623508bc4ec0d8c1770caddf22",
|
|
658
658
|
"plugins/src/base/skills/lisa-setup-local-env/scripts/local-env.mjs": "6f3713451139d9d4fd8eed8f11f49e472667394c4f9a7cae63897b7702115687",
|
|
659
|
-
"plugins/src/base/skills/lisa-setup-notion/SKILL.md": "
|
|
659
|
+
"plugins/src/base/skills/lisa-setup-notion/SKILL.md": "233b4a31594f75c2d99e119f9ae9e9dcd966602787df4eb77dadd6b1cd629df0",
|
|
660
660
|
"plugins/src/base/skills/lisa-setup-remote-aws/SKILL.md": "80fbf157f9c562c033886c25a99b37356602edd9e61cd2d492f339769ddcf97e",
|
|
661
661
|
"plugins/src/base/skills/lisa-setup-remote-env/SKILL.md": "7aa1f616440cb262e47881e8b37b701ebd11ad1ea619412aa04c33324770904c",
|
|
662
662
|
"plugins/src/base/skills/lisa-setup-remote-env/assets/session-start.sh": "cb63d08b14ab7aa2d405e6770e0cf7db5d6588ae1dcb924ea6224b026fcff496",
|
|
@@ -1091,7 +1091,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
1091
1091
|
"scripts/lib/per-agent-hook-filter.mjs": "04ea61ea616614fb545024f98ab27fb08af3f0331da06bb60943d6262e264000",
|
|
1092
1092
|
"scripts/lib/reusable-workflow-contract.d.mts": "791f01b55dd7a6b5d9a5f4cb9c44167caa146c2fc3c31a2ae4c2d8a350adc2f1",
|
|
1093
1093
|
"scripts/lib/reusable-workflow-contract.mjs": "134ee2a327290f066f1eb318b5ed53c711557c3e10ed462c00ff5c97cfb20863",
|
|
1094
|
-
"scripts/lisa-assert-eas-profile.mjs": "
|
|
1094
|
+
"scripts/lisa-assert-eas-profile.mjs": "55ecce59ea74c06c2f6cfde254ab9e9b8a5eb3c7d944e9770fe067335720c82c",
|
|
1095
1095
|
"scripts/lisa-commit-and-pr-local.sh": "605409c3ce6ec38ad3275604291a1ceae98f7807a605654263bc14f811c03903",
|
|
1096
1096
|
"scripts/lisa-enforcement-fallback.sh": "e241a2c7c6aaeb17241adfc9ca4e4f900259e90dae7444fc01992936ea8bcfb4",
|
|
1097
1097
|
"scripts/lisa-github-environments.sh": "0a76e92f108519abaf3e29991299ec3b0db20ea533e69e6d2a53d802dba9c370",
|
|
@@ -1153,13 +1153,13 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
1153
1153
|
"typescript/copy-overwrite/eslint.ignore.config.json": "04dcd754829cf93bf0ba0d76e4031d28cb7149afa658575d02bb13bf73f7880e",
|
|
1154
1154
|
"typescript/copy-overwrite/eslint.slow.config.ts": "9f0efef2d1012e21a1d5e03eb98634bfeb459e3427147d75ad6905acbbab8466",
|
|
1155
1155
|
"typescript/copy-overwrite/knip.json": "6eb93d705a2d645332fbae1dd42cf2d48f85978ebc265451a53790912f277d12",
|
|
1156
|
-
"typescript/copy-overwrite/scripts/check-nightly-e2e-health.mjs": "
|
|
1157
|
-
"typescript/copy-overwrite/scripts/check-skipped-required-checks.mjs": "
|
|
1156
|
+
"typescript/copy-overwrite/scripts/check-nightly-e2e-health.mjs": "191608d272178a8fd3126d5b3e4923fadb50e01b699d0376625248d541b14f50",
|
|
1157
|
+
"typescript/copy-overwrite/scripts/check-skipped-required-checks.mjs": "80ac3fd890c199586b4a1b52001d075a56a1ab1e4e19427930624f721c7649a5",
|
|
1158
1158
|
"typescript/copy-overwrite/scripts/check-threshold-ratchet.mjs": "6bcf8b88b1d5ade1aa7c7902ba12af1df7b0b13d4e69c49a24f76a92474c93ec",
|
|
1159
1159
|
"typescript/copy-overwrite/scripts/check-verification-coverage.mjs": "0cddac03366644cdc99cc239e74520ac420d475b461a40a21728e43756872b07",
|
|
1160
1160
|
"typescript/copy-overwrite/scripts/lib/invoked-as-script.mjs": "fbb9b88fc85a3e22f21af39e1c17acf67ff83fc6b5a6cdc8081bde333c48faa7",
|
|
1161
1161
|
"typescript/copy-overwrite/scripts/lisa-mutation.mjs": "8e0bdb491dfaea04e88be1c1e2c6cc7cd34fa4ca18adddf5fecc43d7de8ffded",
|
|
1162
|
-
"typescript/copy-overwrite/scripts/nightly-e2e-suites.schema.json": "
|
|
1162
|
+
"typescript/copy-overwrite/scripts/nightly-e2e-suites.schema.json": "9fbef6f8740714f521d8b997308d96492e9158b1221d654333316f2cf7b48445",
|
|
1163
1163
|
"typescript/copy-overwrite/scripts/threshold-ratchet-compare.mjs": "cf99167b05d210afad01fb41fc4aed548c66ee0e9a7c4decb8afa1f180eb5640",
|
|
1164
1164
|
"typescript/copy-overwrite/scripts/threshold-ratchet-families.mjs": "f50e35d11295a836bd5b6d818aed6daea68ff70bdffbbdf9f67b09984a2628da",
|
|
1165
1165
|
"typescript/copy-overwrite/sgconfig.yml": "ff5b62de42eb969a851fdc53ee6932a32ffe010b567ed2c62460ed454ad2a24f",
|
|
@@ -38,7 +38,7 @@ export declare const LISA_INVOCATION = "[ -n \"$CI\" ] || LISA_BOOTSTRAP=1 node
|
|
|
38
38
|
* Any TypeScript/Node project (expo, nestjs, cdk, npm-package, plain typescript) with a
|
|
39
39
|
* custom postinstall (`patch-package && ...`) that never invokes Lisa will not apply
|
|
40
40
|
* template updates automatically on `bun install` / `npm install`. Evidence: frontend-v2
|
|
41
|
-
* (expo) and
|
|
41
|
+
* (expo) and acmeorga/frontend (typescript-only) both needed this chained invocation.
|
|
42
42
|
* This migration prepends the standard Lisa invocation so template updates apply
|
|
43
43
|
* automatically on install. Rails-only projects are skipped (no Node postinstall).
|
|
44
44
|
*/
|
|
@@ -103,7 +103,7 @@ function hasNodePostinstallType(detectedTypes) {
|
|
|
103
103
|
* Any TypeScript/Node project (expo, nestjs, cdk, npm-package, plain typescript) with a
|
|
104
104
|
* custom postinstall (`patch-package && ...`) that never invokes Lisa will not apply
|
|
105
105
|
* template updates automatically on `bun install` / `npm install`. Evidence: frontend-v2
|
|
106
|
-
* (expo) and
|
|
106
|
+
* (expo) and acmeorga/frontend (typescript-only) both needed this chained invocation.
|
|
107
107
|
* This migration prepends the standard Lisa invocation so template updates apply
|
|
108
108
|
* automatically on install. Rails-only projects are skipped (no Node postinstall).
|
|
109
109
|
*/
|
|
@@ -37,7 +37,7 @@ export declare class CopyOverwriteStrategy implements ICopyStrategy {
|
|
|
37
37
|
*
|
|
38
38
|
* That refresh is unconditional only where Lisa can prove the installed copy
|
|
39
39
|
* is behind. "Differs from mine" is not that proof — it is equally consistent
|
|
40
|
-
* with the host being *ahead*, which is how `
|
|
40
|
+
* with the host being *ahead*, which is how `acmeorga/frontend` had a guard
|
|
41
41
|
* they had hardened themselves silently replaced by a weaker upstream one. So
|
|
42
42
|
* a Lisa-owned artifact is now classified before it is replaced, and anything
|
|
43
43
|
* short of proof that it is stale leaves the host's copy alone with an
|
|
@@ -78,7 +78,7 @@ export class CopyOverwriteStrategy {
|
|
|
78
78
|
*
|
|
79
79
|
* That refresh is unconditional only where Lisa can prove the installed copy
|
|
80
80
|
* is behind. "Differs from mine" is not that proof — it is equally consistent
|
|
81
|
-
* with the host being *ahead*, which is how `
|
|
81
|
+
* with the host being *ahead*, which is how `acmeorga/frontend` had a guard
|
|
82
82
|
* they had hardened themselves silently replaced by a weaker upstream one. So
|
|
83
83
|
* a Lisa-owned artifact is now classified before it is replaced, and anything
|
|
84
84
|
* short of proof that it is stale leaves the host's copy alone with an
|
package/dist/utils/yaml.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* instantiated — before any Lisa code runs — so the whole CLI is dead,
|
|
11
11
|
* including `lisa doctor`. Lisa declares js-yaml `^4.3.1` for itself, but a
|
|
12
12
|
* host project's `overrides`/`resolutions` collapse Lisa's nested copy onto
|
|
13
|
-
* whatever the host pinned, which is exactly how
|
|
13
|
+
* whatever the host pinned, which is exactly how acmeorgb/frontend-v2
|
|
14
14
|
* ended up running Lisa against js-yaml 5 (CodySwannGT/lisa#2467).
|
|
15
15
|
*
|
|
16
16
|
* A namespace import links against any module shape, so the incompatibility
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
* about the product. When the preamble fails, the flow reds having tested
|
|
30
30
|
* nothing — and it reds on an assertion naming a preamble gate, not the
|
|
31
31
|
* feature, so a reader scoring the run by flow name counts it as a product
|
|
32
|
-
* regression. Upstreamed from
|
|
32
|
+
* regression. Upstreamed from AcmeOrgD/frontend, where proof runs 6
|
|
33
33
|
* (31424664541) and 7 (31446155638) lost four flows each that way; run 6's
|
|
34
34
|
* Android arm was written up as a possible product regression and every one of
|
|
35
35
|
* those flows came back green in run 7 with no code addressing them.
|
package/package.json
CHANGED
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
"ws": ">=8.21.0"
|
|
132
132
|
},
|
|
133
133
|
"name": "@codyswann/lisa",
|
|
134
|
-
"version": "3.31.
|
|
134
|
+
"version": "3.31.3",
|
|
135
135
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
136
136
|
"main": "dist/index.js",
|
|
137
137
|
"exports": {
|
|
@@ -57,7 +57,7 @@ Discovery only works if "what does this run" can be answered from shell text wit
|
|
|
57
57
|
|
|
58
58
|
**`$( )` restarts the quoting context.** In `"$(printf '%s' "$JSON" | node -e '…')"`, quotes inside the substitution pair among themselves. A flat scanner falls out of phase on the first one and starts reporting the payload's own string literals.
|
|
59
59
|
|
|
60
|
-
Against Lisa and the three
|
|
60
|
+
Against Lisa and the three AcmeOrgD repositories, what survives is `gitleaks`, `jq`, `gtimeout` and `eas` — every one a real, undeclared invocation, with no false positives.
|
|
61
61
|
|
|
62
62
|
## What it will not do
|
|
63
63
|
|
|
@@ -162,7 +162,7 @@ ends in between — turns exhausted, job timeout, or you concluding the work whi
|
|
|
162
162
|
checks are still pending — the latch stays off and nothing restores it. The PR is
|
|
163
163
|
left WORSE OFF THAN IF THIS SKILL HAD NEVER RUN: it has lost the mechanism that
|
|
164
164
|
merges it while no agent is watching, and the run reports success. Measured on
|
|
165
|
-
`
|
|
165
|
+
`acmeorgc/frontend#282`, the latch went off 14s before the fix commit and the
|
|
166
166
|
PR sat 26 minutes after going green, against ~3 minutes for PRs this skill never
|
|
167
167
|
touched.
|
|
168
168
|
|
|
@@ -364,7 +364,7 @@ Ancestry proves your code is *in* the merged branch; it does **not** prove
|
|
|
364
364
|
anything deployed. GitHub can **suppress the `on: push` event for a merge commit
|
|
365
365
|
created by auto-merge or a bot token** (`GITHUB_TOKEN`), so the deploy workflow
|
|
366
366
|
fires **zero** runs — no run, not even a `startup_failure` — while the ancestry
|
|
367
|
-
check above stays green. Incident of record:
|
|
367
|
+
check above stays green. Incident of record: AcmeOrgD/frontend **TUN-186** (PR #67)
|
|
368
368
|
merged to `dev` via auto-merge; the merge commit `1b3f836` produced **no**
|
|
369
369
|
`deploy.yml` run, and only the next human push `d1fe18c` (which carries `1b3f836`
|
|
370
370
|
as an ancestor) actually shipped it. **Never report shipped on ancestry alone.**
|
|
@@ -423,7 +423,7 @@ of section 2 are diagnose-only).
|
|
|
423
423
|
|
|
424
424
|
Linear's GitHub integration completes a linked Issue on merge to **any** branch
|
|
425
425
|
— branch-name linkage alone triggers it, even when the PR body carries only the
|
|
426
|
-
non-closing `Linear: <ID>` reference form (incident of record:
|
|
426
|
+
non-closing `Linear: <ID>` reference form (incident of record: AcmeOrgD backend
|
|
427
427
|
PR #207 merged to `dev`; TUN-256 auto-completed and had to be manually
|
|
428
428
|
reverted). Run this step **as soon as the PR reports `MERGED`**, before the
|
|
429
429
|
deploy-run verification above can terminate the flow — a `blocked:deploy`
|
|
@@ -239,7 +239,7 @@ An org secret defaults to `--visibility private`. `all` reaches public repositor
|
|
|
239
239
|
```json
|
|
240
240
|
"propagating": [
|
|
241
241
|
"LINEAR_API_KEY",
|
|
242
|
-
{ "name": "NPM_TOKEN", "targets": ["
|
|
242
|
+
{ "name": "NPM_TOKEN", "targets": ["AcmeOrgD", "AcmeOrgD/wiki"] }
|
|
243
243
|
]
|
|
244
244
|
```
|
|
245
245
|
|
package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/materialize-secrets.mjs
CHANGED
|
@@ -248,8 +248,8 @@ export function installAwsProfiles(bundle, options = {}) {
|
|
|
248
248
|
// Refuse to write a profile name the operator already uses outside our block.
|
|
249
249
|
//
|
|
250
250
|
// AWS does not error on a duplicate `[profile x]` — it resolves one and
|
|
251
|
-
// ignores the other. So writing `
|
|
252
|
-
// `
|
|
251
|
+
// ignores the other. So writing `acmeorgd-dev` next to an operator's existing SSO
|
|
252
|
+
// `acmeorgd-dev` would silently run some calls as the wrong identity, which is
|
|
253
253
|
// worse than either winning outright. Merging protects their sections from
|
|
254
254
|
// being deleted; this protects them from being shadowed.
|
|
255
255
|
//
|
|
@@ -60,7 +60,7 @@ Default to the workspace name. After the user stores the token (Step 4), Step 5'
|
|
|
60
60
|
WORKSPACE=$(jq -r '.notion.workspaceId // empty' .lisa.config.json 2>/dev/null)
|
|
61
61
|
if [ -z "$WORKSPACE" ]; then
|
|
62
62
|
# Prompt the user — accept any non-empty string. They pick the slug; we just store it.
|
|
63
|
-
read -p "Workspace identifier (any stable slug, e.g. '
|
|
63
|
+
read -p "Workspace identifier (any stable slug, e.g. 'acme-org-b'): " WORKSPACE
|
|
64
64
|
fi
|
|
65
65
|
```
|
|
66
66
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Claim-Time Guards
|
|
2
2
|
|
|
3
|
-
Two guards that run when build-intake claims a ready item. Both come from
|
|
3
|
+
Two guards that run when build-intake claims a ready item. Both come from acmeorgb's hand-rolled `sprint-loop` and both address failures actually observed there — an item built twice because it had already shipped, and a loop burning cycles re-attempting an item that was never going to succeed.
|
|
4
4
|
|
|
5
5
|
It is a **single vendor-neutral contract** consumed by all three build-intake skills (`lisa-github-build-intake`, `lisa-jira-build-intake`, `lisa-linear-build-intake`). Each arm cites this slug in its claim step rather than growing its own copy, exactly as the arms cite `leaf-only-lifecycle`, `repo-scope-split`, `rejection-detection`, and `claim-archaeology`. One slug is what keeps a guard that fires on GitHub from being absent on Linear.
|
|
6
6
|
|
|
@@ -57,7 +57,7 @@ Discovery only works if "what does this run" can be answered from shell text wit
|
|
|
57
57
|
|
|
58
58
|
**`$( )` restarts the quoting context.** In `"$(printf '%s' "$JSON" | node -e '…')"`, quotes inside the substitution pair among themselves. A flat scanner falls out of phase on the first one and starts reporting the payload's own string literals.
|
|
59
59
|
|
|
60
|
-
Against Lisa and the three
|
|
60
|
+
Against Lisa and the three AcmeOrgD repositories, what survives is `gitleaks`, `jq`, `gtimeout` and `eas` — every one a real, undeclared invocation, with no false positives.
|
|
61
61
|
|
|
62
62
|
## What it will not do
|
|
63
63
|
|
|
@@ -162,7 +162,7 @@ ends in between — turns exhausted, job timeout, or you concluding the work whi
|
|
|
162
162
|
checks are still pending — the latch stays off and nothing restores it. The PR is
|
|
163
163
|
left WORSE OFF THAN IF THIS SKILL HAD NEVER RUN: it has lost the mechanism that
|
|
164
164
|
merges it while no agent is watching, and the run reports success. Measured on
|
|
165
|
-
`
|
|
165
|
+
`acmeorgc/frontend#282`, the latch went off 14s before the fix commit and the
|
|
166
166
|
PR sat 26 minutes after going green, against ~3 minutes for PRs this skill never
|
|
167
167
|
touched.
|
|
168
168
|
|
|
@@ -364,7 +364,7 @@ Ancestry proves your code is *in* the merged branch; it does **not** prove
|
|
|
364
364
|
anything deployed. GitHub can **suppress the `on: push` event for a merge commit
|
|
365
365
|
created by auto-merge or a bot token** (`GITHUB_TOKEN`), so the deploy workflow
|
|
366
366
|
fires **zero** runs — no run, not even a `startup_failure` — while the ancestry
|
|
367
|
-
check above stays green. Incident of record:
|
|
367
|
+
check above stays green. Incident of record: AcmeOrgD/frontend **TUN-186** (PR #67)
|
|
368
368
|
merged to `dev` via auto-merge; the merge commit `1b3f836` produced **no**
|
|
369
369
|
`deploy.yml` run, and only the next human push `d1fe18c` (which carries `1b3f836`
|
|
370
370
|
as an ancestor) actually shipped it. **Never report shipped on ancestry alone.**
|
|
@@ -423,7 +423,7 @@ of section 2 are diagnose-only).
|
|
|
423
423
|
|
|
424
424
|
Linear's GitHub integration completes a linked Issue on merge to **any** branch
|
|
425
425
|
— branch-name linkage alone triggers it, even when the PR body carries only the
|
|
426
|
-
non-closing `Linear: <ID>` reference form (incident of record:
|
|
426
|
+
non-closing `Linear: <ID>` reference form (incident of record: AcmeOrgD backend
|
|
427
427
|
PR #207 merged to `dev`; TUN-256 auto-completed and had to be manually
|
|
428
428
|
reverted). Run this step **as soon as the PR reports `MERGED`**, before the
|
|
429
429
|
deploy-run verification above can terminate the flow — a `blocked:deploy`
|
|
@@ -239,7 +239,7 @@ An org secret defaults to `--visibility private`. `all` reaches public repositor
|
|
|
239
239
|
```json
|
|
240
240
|
"propagating": [
|
|
241
241
|
"LINEAR_API_KEY",
|
|
242
|
-
{ "name": "NPM_TOKEN", "targets": ["
|
|
242
|
+
{ "name": "NPM_TOKEN", "targets": ["AcmeOrgD", "AcmeOrgD/wiki"] }
|
|
243
243
|
]
|
|
244
244
|
```
|
|
245
245
|
|
|
@@ -248,8 +248,8 @@ export function installAwsProfiles(bundle, options = {}) {
|
|
|
248
248
|
// Refuse to write a profile name the operator already uses outside our block.
|
|
249
249
|
//
|
|
250
250
|
// AWS does not error on a duplicate `[profile x]` — it resolves one and
|
|
251
|
-
// ignores the other. So writing `
|
|
252
|
-
// `
|
|
251
|
+
// ignores the other. So writing `acmeorgd-dev` next to an operator's existing SSO
|
|
252
|
+
// `acmeorgd-dev` would silently run some calls as the wrong identity, which is
|
|
253
253
|
// worse than either winning outright. Merging protects their sections from
|
|
254
254
|
// being deleted; this protects them from being shadowed.
|
|
255
255
|
//
|
|
@@ -60,7 +60,7 @@ Default to the workspace name. After the user stores the token (Step 4), Step 5'
|
|
|
60
60
|
WORKSPACE=$(jq -r '.notion.workspaceId // empty' .lisa.config.json 2>/dev/null)
|
|
61
61
|
if [ -z "$WORKSPACE" ]; then
|
|
62
62
|
# Prompt the user — accept any non-empty string. They pick the slug; we just store it.
|
|
63
|
-
read -p "Workspace identifier (any stable slug, e.g. '
|
|
63
|
+
read -p "Workspace identifier (any stable slug, e.g. 'acme-org-b'): " WORKSPACE
|
|
64
64
|
fi
|
|
65
65
|
```
|
|
66
66
|
|
|
@@ -57,7 +57,7 @@ Discovery only works if "what does this run" can be answered from shell text wit
|
|
|
57
57
|
|
|
58
58
|
**`$( )` restarts the quoting context.** In `"$(printf '%s' "$JSON" | node -e '…')"`, quotes inside the substitution pair among themselves. A flat scanner falls out of phase on the first one and starts reporting the payload's own string literals.
|
|
59
59
|
|
|
60
|
-
Against Lisa and the three
|
|
60
|
+
Against Lisa and the three AcmeOrgD repositories, what survives is `gitleaks`, `jq`, `gtimeout` and `eas` — every one a real, undeclared invocation, with no false positives.
|
|
61
61
|
|
|
62
62
|
## What it will not do
|
|
63
63
|
|