@codyswann/lisa 3.26.0 → 3.26.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/all/copy-overwrite/scripts/check-state-classification.mjs +31 -0
  2. package/all/copy-overwrite/scripts/lisa-gates.mjs +10 -1
  3. package/all/copy-overwrite/scripts/lisa-hooks/block-managed-file-edits.sh +136 -15
  4. package/dist/cli/doctor-lisa-owned-artifacts.d.ts.map +1 -1
  5. package/dist/cli/doctor-lisa-owned-artifacts.js +13 -2
  6. package/dist/cli/doctor-lisa-owned-artifacts.js.map +1 -1
  7. package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
  8. package/dist/core/lisa-owned-hash-ledger.js +6 -0
  9. package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
  10. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  11. package/dist/core/upstream-evidence-manifest.js +24 -23
  12. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  13. package/package.json +1 -1
  14. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  15. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  16. package/plugins/lisa/.codex-plugin/skills/lisa-atlassian-access/scripts/markdown-to-adf.mjs +23 -1
  17. package/plugins/lisa/.codex-plugin/skills/lisa-detect-tooling/scripts/detect-tooling.mjs +31 -2
  18. package/plugins/lisa/.codex-plugin/skills/lisa-remote-dispatch/scripts/dispatch.mjs +30 -2
  19. package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/doctor-secrets.mjs +25 -1
  20. package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/inspect-vault.mjs +23 -1
  21. package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/materialize-secrets.mjs +24 -1
  22. package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/read-secret-note.mjs +25 -2
  23. package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/resolve-secret.mjs +25 -2
  24. package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/rotate-secret.mjs +25 -2
  25. package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/sync-secret-to-ci.mjs +25 -1
  26. package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/validate-config.mjs +25 -2
  27. package/plugins/lisa/.codex-plugin/skills/lisa-setup-automations/scripts/generate-workflow.mjs +31 -2
  28. package/plugins/lisa/.codex-plugin/skills/lisa-setup-local-env/scripts/local-env.mjs +24 -2
  29. package/plugins/lisa/.codex-plugin/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +23 -1
  30. package/plugins/lisa/.codex-plugin/skills/lisa-setup-remote-env/scripts/verify-remote-env.mjs +25 -2
  31. package/plugins/lisa/hooks/block-managed-file-edits.sh +136 -15
  32. package/plugins/lisa/skills/lisa-atlassian-access/scripts/markdown-to-adf.mjs +23 -1
  33. package/plugins/lisa/skills/lisa-detect-tooling/scripts/detect-tooling.mjs +31 -2
  34. package/plugins/lisa/skills/lisa-remote-dispatch/scripts/dispatch.mjs +30 -2
  35. package/plugins/lisa/skills/lisa-secrets-access/scripts/doctor-secrets.mjs +25 -1
  36. package/plugins/lisa/skills/lisa-secrets-access/scripts/inspect-vault.mjs +23 -1
  37. package/plugins/lisa/skills/lisa-secrets-access/scripts/materialize-secrets.mjs +24 -1
  38. package/plugins/lisa/skills/lisa-secrets-access/scripts/read-secret-note.mjs +25 -2
  39. package/plugins/lisa/skills/lisa-secrets-access/scripts/resolve-secret.mjs +25 -2
  40. package/plugins/lisa/skills/lisa-secrets-access/scripts/rotate-secret.mjs +25 -2
  41. package/plugins/lisa/skills/lisa-secrets-access/scripts/sync-secret-to-ci.mjs +25 -1
  42. package/plugins/lisa/skills/lisa-secrets-access/scripts/validate-config.mjs +25 -2
  43. package/plugins/lisa/skills/lisa-setup-automations/scripts/generate-workflow.mjs +31 -2
  44. package/plugins/lisa/skills/lisa-setup-local-env/scripts/local-env.mjs +24 -2
  45. package/plugins/lisa/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +23 -1
  46. package/plugins/lisa/skills/lisa-setup-remote-env/scripts/verify-remote-env.mjs +25 -2
  47. package/plugins/lisa-agy/plugin.json +1 -1
  48. package/plugins/lisa-agy/skills/lisa-atlassian-access/scripts/markdown-to-adf.mjs +23 -1
  49. package/plugins/lisa-agy/skills/lisa-detect-tooling/scripts/detect-tooling.mjs +31 -2
  50. package/plugins/lisa-agy/skills/lisa-remote-dispatch/scripts/dispatch.mjs +30 -2
  51. package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/doctor-secrets.mjs +25 -1
  52. package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/inspect-vault.mjs +23 -1
  53. package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/materialize-secrets.mjs +24 -1
  54. package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/read-secret-note.mjs +25 -2
  55. package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/resolve-secret.mjs +25 -2
  56. package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/rotate-secret.mjs +25 -2
  57. package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/sync-secret-to-ci.mjs +25 -1
  58. package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/validate-config.mjs +25 -2
  59. package/plugins/lisa-agy/skills/lisa-setup-automations/scripts/generate-workflow.mjs +31 -2
  60. package/plugins/lisa-agy/skills/lisa-setup-local-env/scripts/local-env.mjs +24 -2
  61. package/plugins/lisa-agy/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +23 -1
  62. package/plugins/lisa-agy/skills/lisa-setup-remote-env/scripts/verify-remote-env.mjs +25 -2
  63. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  64. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  65. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  66. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  67. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  68. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  69. package/plugins/lisa-copilot/hooks/block-managed-file-edits.sh +136 -15
  70. package/plugins/lisa-copilot/skills/lisa-atlassian-access/scripts/markdown-to-adf.mjs +23 -1
  71. package/plugins/lisa-copilot/skills/lisa-detect-tooling/scripts/detect-tooling.mjs +31 -2
  72. package/plugins/lisa-copilot/skills/lisa-remote-dispatch/scripts/dispatch.mjs +30 -2
  73. package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/doctor-secrets.mjs +25 -1
  74. package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/inspect-vault.mjs +23 -1
  75. package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/materialize-secrets.mjs +24 -1
  76. package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/read-secret-note.mjs +25 -2
  77. package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/resolve-secret.mjs +25 -2
  78. package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/rotate-secret.mjs +25 -2
  79. package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/sync-secret-to-ci.mjs +25 -1
  80. package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/validate-config.mjs +25 -2
  81. package/plugins/lisa-copilot/skills/lisa-setup-automations/scripts/generate-workflow.mjs +31 -2
  82. package/plugins/lisa-copilot/skills/lisa-setup-local-env/scripts/local-env.mjs +24 -2
  83. package/plugins/lisa-copilot/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +23 -1
  84. package/plugins/lisa-copilot/skills/lisa-setup-remote-env/scripts/verify-remote-env.mjs +25 -2
  85. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  86. package/plugins/lisa-cursor/hooks/block-managed-file-edits.sh +136 -15
  87. package/plugins/lisa-cursor/skills/lisa-atlassian-access/scripts/markdown-to-adf.mjs +23 -1
  88. package/plugins/lisa-cursor/skills/lisa-detect-tooling/scripts/detect-tooling.mjs +31 -2
  89. package/plugins/lisa-cursor/skills/lisa-remote-dispatch/scripts/dispatch.mjs +30 -2
  90. package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/doctor-secrets.mjs +25 -1
  91. package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/inspect-vault.mjs +23 -1
  92. package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/materialize-secrets.mjs +24 -1
  93. package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/read-secret-note.mjs +25 -2
  94. package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/resolve-secret.mjs +25 -2
  95. package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/rotate-secret.mjs +25 -2
  96. package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/sync-secret-to-ci.mjs +25 -1
  97. package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/validate-config.mjs +25 -2
  98. package/plugins/lisa-cursor/skills/lisa-setup-automations/scripts/generate-workflow.mjs +31 -2
  99. package/plugins/lisa-cursor/skills/lisa-setup-local-env/scripts/local-env.mjs +24 -2
  100. package/plugins/lisa-cursor/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +23 -1
  101. package/plugins/lisa-cursor/skills/lisa-setup-remote-env/scripts/verify-remote-env.mjs +25 -2
  102. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  103. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  104. package/plugins/lisa-expo-agy/plugin.json +1 -1
  105. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  106. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  107. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  108. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  109. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  110. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  111. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  112. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  113. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  114. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  115. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  116. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  117. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  118. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  119. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  120. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  121. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  122. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  123. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  124. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  125. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  126. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  127. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  128. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  129. package/plugins/lisa-rails-agy/plugin.json +1 -1
  130. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  131. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  132. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  133. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  134. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  135. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  136. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  137. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  138. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  139. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  140. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  141. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  142. package/plugins/src/base/hooks/block-managed-file-edits.sh +136 -15
  143. package/plugins/src/base/skills/lisa-atlassian-access/scripts/markdown-to-adf.mjs +23 -1
  144. package/plugins/src/base/skills/lisa-detect-tooling/scripts/detect-tooling.mjs +31 -2
  145. package/plugins/src/base/skills/lisa-remote-dispatch/scripts/dispatch.mjs +30 -2
  146. package/plugins/src/base/skills/lisa-secrets-access/scripts/doctor-secrets.mjs +25 -1
  147. package/plugins/src/base/skills/lisa-secrets-access/scripts/inspect-vault.mjs +23 -1
  148. package/plugins/src/base/skills/lisa-secrets-access/scripts/materialize-secrets.mjs +24 -1
  149. package/plugins/src/base/skills/lisa-secrets-access/scripts/read-secret-note.mjs +25 -2
  150. package/plugins/src/base/skills/lisa-secrets-access/scripts/resolve-secret.mjs +25 -2
  151. package/plugins/src/base/skills/lisa-secrets-access/scripts/rotate-secret.mjs +25 -2
  152. package/plugins/src/base/skills/lisa-secrets-access/scripts/sync-secret-to-ci.mjs +25 -1
  153. package/plugins/src/base/skills/lisa-secrets-access/scripts/validate-config.mjs +25 -2
  154. package/plugins/src/base/skills/lisa-setup-automations/scripts/generate-workflow.mjs +31 -2
  155. package/plugins/src/base/skills/lisa-setup-local-env/scripts/local-env.mjs +24 -2
  156. package/plugins/src/base/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +23 -1
  157. package/plugins/src/base/skills/lisa-setup-remote-env/scripts/verify-remote-env.mjs +25 -2
  158. package/scripts/generate-agy-plugin-artifacts.mjs +2 -1
  159. package/scripts/generate-copilot-plugin-artifacts.mjs +2 -1
  160. package/scripts/generate-cursor-plugin-artifacts.mjs +2 -1
  161. package/typescript/copy-overwrite/scripts/check-skipped-required-checks.mjs +14 -3
@@ -560,6 +560,37 @@ export function run(options = {}) {
560
560
  };
561
561
  }
562
562
 
563
+ // Parsed is not the same as shaped. `readJsonFile` proves only that the bytes
564
+ // were JSON, and `compareInventory` reads `inventory.entities` — so `null`
565
+ // throws a TypeError on property access and the CLI dies with a stack trace
566
+ // instead of emitting an `invalid` envelope, while an array or a string
567
+ // silently yields zero entities and every declared entity reads as
568
+ // unconfirmed. A wrong-shaped inventory must be reported as invalid, not
569
+ // mistaken for an empty one.
570
+ const inventoryValue = inventoryRead.value;
571
+ if (
572
+ inventoryValue === null ||
573
+ typeof inventoryValue !== "object" ||
574
+ Array.isArray(inventoryValue) ||
575
+ !Array.isArray(inventoryValue.entities)
576
+ ) {
577
+ return {
578
+ findings: [
579
+ {
580
+ code: "invalid-inventory",
581
+ subject: path.relative(root, inventoryPath),
582
+ message:
583
+ "parsed as JSON but is not an inventory: expected an object with an `entities` array. Regenerate it with the project's `state:inventory` adapter.",
584
+ severity: "error",
585
+ },
586
+ ],
587
+ envelope: envelopeFor("invalid", {
588
+ contractVersion: contract.contractVersion,
589
+ reason: `runtime inventory at ${path.relative(root, inventoryPath)} parsed but has the wrong shape — an inventory that cannot be read is not an empty inventory.`,
590
+ }),
591
+ };
592
+ }
593
+
563
594
  const verdict = compareInventory({
564
595
  contract,
565
596
  inventory: inventoryRead.value,
@@ -63,6 +63,8 @@
63
63
  import { existsSync, readFileSync } from "node:fs";
64
64
  import { join } from "node:path";
65
65
 
66
+ import { invokedAsScript } from "./lib/invoked-as-script.mjs";
67
+
66
68
  /** Enforcement levels a moment may carry. */
67
69
  export const LEVELS = ["required", "optional", "off"];
68
70
 
@@ -1307,7 +1309,14 @@ function main() {
1307
1309
  );
1308
1310
  }
1309
1311
 
1310
- if (import.meta.url === `file://${process.argv[1]}`) {
1312
+ // Realpath both sides rather than comparing URL strings. A raw comparison
1313
+ // answers "no" through a symlinked checkout, a git worktree, or a /tmp path on
1314
+ // macOS — all three of which this fleet runs in — so the module would load, run
1315
+ // nothing, and exit 0. For THIS file that is the worst possible silence: the
1316
+ // quality workflow pipes its output into a resolver that reads empty input as
1317
+ // `[]`, reports `configured=false` for every job, and runs the fallback. The
1318
+ // whole gate registry would be bypassed with nothing reporting it.
1319
+ if (invokedAsScript(import.meta.url)) {
1311
1320
  try {
1312
1321
  main();
1313
1322
  } catch (err) {
@@ -4,10 +4,9 @@
4
4
 
5
5
  # PreToolUse hook: refuse agent writes to files Lisa overwrites on every apply.
6
6
  #
7
- # Lisa ships templates in three modes, and only one of them destroys host edits:
7
+ # Lisa ships templates in three modes, and only one of them is unsafe to edit:
8
8
  #
9
- # copy-overwrite — replaced wholesale on every `lisa apply`. An edit here is
10
- # gone at the next `bun install`, silently.
9
+ # copy-overwrite — see below; the harm depends on the file.
11
10
  # copy-contents — Lisa APPENDS its lines; host content survives.
12
11
  # create-only — skipped when the file exists; the host owns it outright.
13
12
  #
@@ -15,6 +14,21 @@
15
14
  # would stop agents editing files they are supposed to own, which is worse than
16
15
  # the problem being solved.
17
16
  #
17
+ # WITHIN copy-overwrite there are two populations with OPPOSITE consequences,
18
+ # and an earlier version of this guard described only one of them:
19
+ #
20
+ # hash-tracked guards (the `.mjs` scripts, listed in the Lisa-owned ledger)
21
+ # — an edit classifies as `host-modified` and `lisa apply` PRESERVES it.
22
+ # The file silently forks and stops receiving upstream fixes while looking
23
+ # current. Nothing is deleted; that is what makes it hard to notice.
24
+ # everything else (`.json` configs and friends)
25
+ # — replaced wholesale on the next apply, which runs on every install.
26
+ # The edit vanishes.
27
+ #
28
+ # The refusal branches on ledger membership so it states the consequence that
29
+ # actually applies, rather than describing both and leaving the reader to work
30
+ # out which they are in.
31
+ #
18
32
  # Measured, not hypothetical. Nothing enforced this, so downstream copies were
19
33
  # edited and then silently diverged: `classify-maestro-failures.mjs` reached
20
34
  # 36,061 bytes in one fleet repo against 29,586 shipped, and five gate files in
@@ -70,6 +84,71 @@ if [ -f "$project_root/package.json" ] &&
70
84
  exit 0
71
85
  fi
72
86
 
87
+ # Whether the project has claimed a path in `.lisaignore`.
88
+ #
89
+ # THIS IS THE OWNERSHIP QUESTION, and it decides whether blocking is right at
90
+ # all. `lisa apply` skips an ignored path — it logs `Kept (.lisaignore)` and
91
+ # counts it as ignored rather than overwritten — so the file is the project's,
92
+ # its edits survive, and refusing them would be refusing someone access to their
93
+ # own file. `doctor-lisa-owned-artifacts` already consults this list; this guard
94
+ # did not, which would have blocked deliberate forks.
95
+ #
96
+ # The real matcher is minimatch in `src/utils/ignore-patterns.ts` and cannot be
97
+ # reproduced faithfully in shell. This covers the common shapes — exact path,
98
+ # directory prefix, glob, and a bare pattern matching any segment — and where it
99
+ # is unsure it ALLOWS. Wrongly allowing costs an edit that apply may overwrite,
100
+ # which is the behaviour before this guard existed; wrongly blocking locks
101
+ # someone out of a file they own.
102
+ lisaignored() {
103
+ local rel="$1"
104
+ local list="$project_root/.lisaignore"
105
+ [ -f "$list" ] || return 1
106
+ local pattern
107
+ while IFS= read -r pattern || [ -n "$pattern" ]; do
108
+ pattern="${pattern#"${pattern%%[![:space:]]*}"}"
109
+ pattern="${pattern%"${pattern##*[![:space:]]}"}"
110
+ [ -n "$pattern" ] || continue
111
+ case "$pattern" in \#*) continue ;; esac
112
+ # A leading `!` is not gitignore negation here. The real matcher passes
113
+ # patterns to minimatch, which negates by default, and it combines them with
114
+ # `.some()` — so a single `!scripts/a.mjs` line reports EVERY OTHER PATH as
115
+ # ignored. Measured:
116
+ #
117
+ # patterns=["!scripts/a.mjs"] path=scripts/a.mjs -> ignored=false
118
+ # patterns=["!scripts/a.mjs"] path=scripts/b.mjs -> ignored=TRUE
119
+ #
120
+ # Reproducing that faithfully would mean disabling this guard on a typo.
121
+ # Reproducing the intuitive gitignore reading would mean blocking files the
122
+ # matcher considers ignored. Both are wrong, so the file is treated as
123
+ # claimed and the write is allowed — the same direction this function errs
124
+ # everywhere else. Filed upstream; when the matcher stops negating, delete
125
+ # this branch rather than teaching it a second wrong answer.
126
+ case "$pattern" in !*) return 0 ;; esac
127
+ case "$pattern" in
128
+ */)
129
+ case "$rel" in "${pattern%/}"/* | "${pattern%/}") return 0 ;; esac
130
+ ;;
131
+ esac
132
+ # shellcheck disable=SC2254 -- the pattern is a glob on purpose.
133
+ case "$rel" in $pattern) return 0 ;; esac
134
+ case "$pattern" in
135
+ */*) ;;
136
+ *)
137
+ # shellcheck disable=SC2254 -- ditto, matched against the basename.
138
+ case "${rel##*/}" in $pattern) return 0 ;; esac
139
+ ;;
140
+ esac
141
+ done <"$list"
142
+ return 1
143
+ }
144
+
145
+ # A candidate rewritten relative to the project, so an absolute target from a
146
+ # tool payload and a relative one from a shell command classify identically.
147
+ relative_path() {
148
+ local rel="${1#"$project_root"/}"
149
+ printf '%s' "${rel#./}"
150
+ }
151
+
73
152
  # Whether a host-relative path is shipped as a copy-overwrite template.
74
153
  #
75
154
  # A few stat calls rather than an enumeration: the same relative path is probed
@@ -80,10 +159,11 @@ managed_source() {
80
159
  case "$candidate" in
81
160
  */node_modules/* | node_modules/* | */dist/* | dist/*) return 1 ;;
82
161
  esac
83
- # Normalise to a project-relative path so an absolute target still matches.
84
- local rel="${candidate#"$project_root"/}"
85
- rel="${rel#./}"
162
+ local rel
163
+ rel="$(relative_path "$candidate")"
86
164
  [ -n "$rel" ] || return 1
165
+ # Claimed by the project, so not ours to refuse.
166
+ lisaignored "$rel" && return 1
87
167
  local stack
88
168
  for stack in "$package_root"/*/copy-overwrite; do
89
169
  [ -d "$stack" ] || continue
@@ -95,19 +175,44 @@ managed_source() {
95
175
  return 1
96
176
  }
97
177
 
178
+ # Whether a destination is a ledger-tracked Lisa-owned guard.
179
+ #
180
+ # The two populations behind this guard have OPPOSITE consequences, so the
181
+ # refusal has to know which one it is looking at rather than describing both and
182
+ # leaving the reader to guess. A guard in the content-hash ledger classifies as
183
+ # `host-modified` once edited and `lisa apply` PRESERVES it; anything else is
184
+ # replaced wholesale. Both are bad, for different reasons, and the right next
185
+ # step differs too.
186
+ ledger_tracked() {
187
+ local rel="$1"
188
+ local ledger="$package_root/dist/core/lisa-owned-hash-ledger.js"
189
+ [ -f "$ledger" ] || return 1
190
+ grep -q "\"$rel\"" "$ledger" 2>/dev/null
191
+ }
192
+
98
193
  refuse() {
99
194
  local target="$1"
100
195
  local source="$2"
196
+ local rel="$3"
197
+ local consequence
198
+ if ledger_tracked "$rel"; then
199
+ consequence="This is a Lisa-owned guard, tracked by content hash. \`lisa apply\`
200
+ will PRESERVE your edit rather than overwrite it — and that is the trap. The
201
+ file silently forks: it keeps looking current while every upstream fix stops
202
+ reaching it. One repository in this fleet is carrying 243 lines of divergence
203
+ nobody knew about, in a guard that had quietly stopped receiving fixes."
204
+ else
205
+ consequence="This template is not hash-tracked, so \`lisa apply\` REPLACES it
206
+ wholesale — and apply runs on every \`bun install\`. Your edit survives until the
207
+ next install and then vanishes, with nothing reporting that it had."
208
+ fi
101
209
  cat >&2 <<EOF
102
210
  BLOCKED: refusing to write \`$target\`.
103
211
 
104
- WHY: this file is Lisa-managed. It is shipped as a **copy-overwrite** template
105
- (\`$source\` in the installed package) and is replaced wholesale on every
106
- \`lisa apply\` — which runs on every \`bun install\`. Your edit would survive
107
- until the next install and then vanish, with nothing reporting that it had.
212
+ WHY: this file is Lisa-managed, shipped as a **copy-overwrite** template
213
+ (\`$source\` in the installed package).
108
214
 
109
- That is not hypothetical: downstream copies edited this way diverged silently
110
- until they stopped receiving upstream fixes entirely.
215
+ $consequence
111
216
 
112
217
  WHERE IT GOES INSTEAD — take the first one that fits:
113
218
 
@@ -125,7 +230,23 @@ WHERE IT GOES INSTEAD — take the first one that fits:
125
230
  proves each one, so a project can substitute its own task without touching a
126
231
  shipped file.
127
232
 
128
- 4. You believe this file should not be Lisa-managed at all. That is a real
233
+ 4. This project has deliberately FORKED this file and means to keep its own
234
+ version. What to do depends on which population it is, and \`.lisaignore\` is
235
+ the WRONG answer for a hash-tracked guard:
236
+
237
+ - **A Lisa-owned guard (hash-tracked).** Do NOT add it to \`.lisaignore\`. The
238
+ ledger already preserves your version, so ignoring it buys nothing — and it
239
+ silences the standoff \`lisa doctor\` reports on every run, replacing a true
240
+ warning with the line "Enforcement guards match the installed Lisa
241
+ version", which is then false. A visible, resolvable fork becomes a silent
242
+ permanent one. Keep the warning and resolve the fork: upstream what is
243
+ general, or accept the standoff knowingly. To make this one edit, use the
244
+ override below.
245
+ - **Any other template.** \`.lisaignore\` is the right answer. Nothing else
246
+ preserves it, and the entry declares the divergence where the next person
247
+ can see it.
248
+
249
+ 5. You believe this file should not be Lisa-managed at all. That is a real
129
250
  argument and it belongs upstream, not in a local edit that will be erased.
130
251
 
131
252
  If a human explicitly asked for this edit, they can re-run with
@@ -145,7 +266,7 @@ case "$tool_name" in
145
266
  while IFS= read -r candidate; do
146
267
  [ -n "$candidate" ] || continue
147
268
  if source_path="$(managed_source "$candidate")"; then
148
- refuse "$candidate" "$source_path"
269
+ refuse "$candidate" "$source_path" "$(relative_path "$candidate")"
149
270
  fi
150
271
  done <<EOF
151
272
  $paths
@@ -160,7 +281,7 @@ EOF
160
281
  while IFS= read -r token; do
161
282
  [ -n "$token" ] || continue
162
283
  if source_path="$(managed_source "$token")"; then
163
- refuse "$token" "$source_path"
284
+ refuse "$token" "$source_path" "$(relative_path "$token")"
164
285
  fi
165
286
  done <<EOF
166
287
  $(printf '%s' "$command_str" |
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-lisa-owned-artifacts.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-lisa-owned-artifacts.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAoBnE,wEAAwE;AACxE,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB;AAkHD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,MAA0B,EACpC,MAAM,CAAC,EAAE,UAAU,GAClB,OAAO,CAAC,aAAa,CAAC,CA+CxB"}
1
+ {"version":3,"file":"doctor-lisa-owned-artifacts.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-lisa-owned-artifacts.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAoBnE,wEAAwE;AACxE,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB;AAkHD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,MAA0B,EACpC,MAAM,CAAC,EAAE,UAAU,GAClB,OAAO,CAAC,aAAa,CAAC,CAoDxB"}
@@ -146,8 +146,12 @@ export async function checkLisaOwnedArtifacts(targetPath, lisaRoot = defaultLisa
146
146
  // swap a guard for a thin re-export and have doctor call it current.
147
147
  const selfHost = await isLisaSourceRepo(targetPath);
148
148
  const results = await Promise.all([...shipped].map(async ([destination, sources]) => {
149
+ // Ignored is UNASSESSED, not clean. Reported as such below, because a
150
+ // `.lisaignore` entry on a Lisa-owned guard suppresses the divergence
151
+ // warning while changing nothing about the divergence — and the ok line
152
+ // then states conformance that was never established.
149
153
  if (matchesAnyPattern(destination, ignorePatterns))
150
- return undefined;
154
+ return [destination, "ignored"];
151
155
  const installedPath = path.join(targetPath, destination);
152
156
  const installed = await readFile(installedPath).catch(() => undefined);
153
157
  if (installed === undefined)
@@ -174,11 +178,18 @@ function summarise(findings) {
174
178
  .sort((left, right) => left.localeCompare(right));
175
179
  const stale = pick("stale");
176
180
  const modified = pick("modified");
181
+ const ignored = pick("ignored");
177
182
  if (stale.length === 0 && modified.length === 0) {
183
+ // Named rather than folded into the pass. A guard excluded by
184
+ // `.lisaignore` was never compared, so claiming it matches asserts
185
+ // something no comparison established — and the file it most often hides
186
+ // is a fork the project has stopped noticing.
178
187
  return {
179
188
  name: CHECK_NAME,
180
189
  status: "ok",
181
- detail: "Enforcement guards match the installed Lisa version",
190
+ detail: ignored.length > 0
191
+ ? `Enforcement guards match the installed Lisa version; ${ignored.length} not assessed (.lisaignore): ${ignored.join(", ")}`
192
+ : "Enforcement guards match the installed Lisa version",
182
193
  };
183
194
  }
184
195
  const parts = [
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-lisa-owned-artifacts.js","sourceRoot":"","sources":["../../src/cli/doctor-lisa-owned-artifacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor-lisa-owned-artifacts.js","sourceRoot":"","sources":["../../src/cli/doctor-lisa-owned-artifacts.ts"],"names":[],"mappings":"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"}
@@ -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,CA0UjC,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,CAgVjC,CAAC"}
@@ -111,6 +111,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
111
111
  "scripts/check-skipped-required-checks.mjs": Object.freeze([
112
112
  "0a8b14790f38e00e5abfc665d3e3d2c29e0a139a2a22c4a65e0c08547b42fb7f",
113
113
  "1bcd3f065465731df4eb02b93b73a0162d287e365ed1a396138d97d71d403b31",
114
+ "444210c8fbfca1d3e6ae0e180fe95752e10152610ad349ffea377136f4ae8cf7",
114
115
  "48d3fa3043e144bcf52feb0e20db887d75c7ebda3b1fa708fe93f6554f6bec78",
115
116
  "5af5f112ba258c4874a65c72c8bed12165e75e4df407265eb46ee9c89c4e0e53",
116
117
  "86de31fbda9dd26a938bf30846c5fc70744cf199df7d475a35f3f25dbc0f7c2f",
@@ -120,6 +121,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
120
121
  ]),
121
122
  "scripts/check-state-classification.mjs": Object.freeze([
122
123
  "94dc98e0bbfcf8d43cba035d4805a1c5d61a3a0db88faa791e8e06e34e741f46",
124
+ "96599f9cf25d7d96afc82a92c477ca851e3fa1f918a06a5b81a29dd1b0039f38",
123
125
  "ac539349c86a7b5b0083ec0e6aaf0eb4c3e40fbd4dc31511c6460a2bad7af9a5",
124
126
  "b218927f64a3db4f37762b60014e29d85a46899f4a0d17fcecc7782ce48bc499",
125
127
  ]),
@@ -193,6 +195,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
193
195
  "79b646d543b541c096d79526fa09dbda3408667ba1a99ee833f94668b181433b",
194
196
  "7d89a49da89895a3e377702d0049e1dbcc7ea666dcfa3749874f0986db31ee1a",
195
197
  "9195c267d98f2fa8071fc0bd2d5623a7ab82f82d136bdb23061f89a2c1db6efe",
198
+ "98652623c7451d05e48239e1678ad7977a323eaf7ff5ca4b4f3bbc0798396859",
196
199
  "bba52f26e70e0dc399a8ed8ea9cbd3885a18f08401b28bd18871a1af4fbca375",
197
200
  "cc4270e365f53c60a5eefb58a8ac8e22be184c0821fcdcc8fe67bcfc1df5e3dd",
198
201
  "dbca450e5a17133841ab015e71808feb028996f8297fda362dbeca4f07af2352",
@@ -216,7 +219,10 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
216
219
  "d47314b66d6ce85f77d6e058f861eede4462b2b0a33d54e82ff1c931167ec3f7",
217
220
  ]),
218
221
  "scripts/lisa-hooks/block-managed-file-edits.sh": Object.freeze([
222
+ "133acf329582c5d4df9deb6a297df13216993c1bfec0b7df0663c69a1e2bb0db",
219
223
  "18aebaef5ea9bf6af220dc9beef80a5cfb37282c6a53047783b4cc96d8daa4e3",
224
+ "3882bd338e65b9db9e97aa9e70426f0f7a0d191539df51636e1a5e93a2501137",
225
+ "c1b2abf324269c0248136500eb37d7c43559552f152a7c5d07a23c219fdc70b2",
220
226
  ]),
221
227
  "scripts/lisa-hooks/block-no-verify.sh": Object.freeze([
222
228
  "031ef7a53fc49cb18665105b834b7b50ad6a43317e0821949809e877e0562ce4",
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAw0EpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAiqOjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
1
+ {"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAw0EpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAkqOjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
@@ -3,16 +3,16 @@
3
3
  export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
4
4
  "all/copy-contents/.gitattributes": "9d3831007e681186a3673e1037ef3fc82980cab2fc04e27c0868e562912c9e9f",
5
5
  "all/copy-contents/gitignore": "8104ccd32d7e6137cae706511c5037d11d6b6045b8e2a9bb7b3a48a81c053cfa",
6
- "all/copy-overwrite/scripts/check-state-classification.mjs": "b218927f64a3db4f37762b60014e29d85a46899f4a0d17fcecc7782ce48bc499",
6
+ "all/copy-overwrite/scripts/check-state-classification.mjs": "96599f9cf25d7d96afc82a92c477ca851e3fa1f918a06a5b81a29dd1b0039f38",
7
7
  "all/copy-overwrite/scripts/lib/invoked-as-script.mjs": "fbb9b88fc85a3e22f21af39e1c17acf67ff83fc6b5a6cdc8081bde333c48faa7",
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
11
  "all/copy-overwrite/scripts/lisa-floor-collisions.mjs": "2d11968f6852ab745cba939de03c6d6cb5f413975d2cfc8fc447bdd0b218e91a",
12
- "all/copy-overwrite/scripts/lisa-gates.mjs": "bba52f26e70e0dc399a8ed8ea9cbd3885a18f08401b28bd18871a1af4fbca375",
12
+ "all/copy-overwrite/scripts/lisa-gates.mjs": "98652623c7451d05e48239e1678ad7977a323eaf7ff5ca4b4f3bbc0798396859",
13
13
  "all/copy-overwrite/scripts/lisa-hooks/block-direct-issue-create.sh": "8d1f04ef5c5da9db9190e22b37a435e118e39d6e7deafc5402b4593c8e9db2b2",
14
14
  "all/copy-overwrite/scripts/lisa-hooks/block-instruction-file-edits.sh": "3e709e1ec8a5843c00684bc477ad32ddab2c5fdb11f71d5aeec0c49609eaf025",
15
- "all/copy-overwrite/scripts/lisa-hooks/block-managed-file-edits.sh": "18aebaef5ea9bf6af220dc9beef80a5cfb37282c6a53047783b4cc96d8daa4e3",
15
+ "all/copy-overwrite/scripts/lisa-hooks/block-managed-file-edits.sh": "c1b2abf324269c0248136500eb37d7c43559552f152a7c5d07a23c219fdc70b2",
16
16
  "all/copy-overwrite/scripts/lisa-hooks/block-no-verify.sh": "83a8b8108654086afb6a6f23a8f09f9f041eb2cd4094c5531fa7ab1f75e873dc",
17
17
  "all/copy-overwrite/scripts/lisa-hooks/block-shell-json-parsing.sh": "234cb82cc9033bd04940a553d4ddc95b078e585e41777d6529d887676edc40b1",
18
18
  "all/copy-overwrite/scripts/lisa-hooks/parity-safety-net.sh": "1d4fbe135f1bb4e861d286a6512ed201d4522250dfe3f9eba6584bc5ff166a95",
@@ -339,7 +339,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
339
339
  "plugins/src/base/hooks/block-direct-issue-create.sh": "22184f1dd1b96e818741bd4ae659446299535d7ce594817155edebac4172a7ba",
340
340
  "plugins/src/base/hooks/block-instruction-file-edits.agy.sh": "aa249cae53caeb3e0fb6d6af114e2756084f45a2896332fb063a9f20e4902125",
341
341
  "plugins/src/base/hooks/block-instruction-file-edits.sh": "d47314b66d6ce85f77d6e058f861eede4462b2b0a33d54e82ff1c931167ec3f7",
342
- "plugins/src/base/hooks/block-managed-file-edits.sh": "abdbcd889925879aa43fe0420971cf1a79a7b9a534c06e681fe3f0fbb5475894",
342
+ "plugins/src/base/hooks/block-managed-file-edits.sh": "c363505f94d3716e51972bbff33845b0bf41c92b4e909288d02b2d7c3e87fa61",
343
343
  "plugins/src/base/hooks/block-no-verify.agy.sh": "81c51041f8cb47bf79692c485c4f42ac7ed0a5a830821dc514cb468bc7a06b83",
344
344
  "plugins/src/base/hooks/block-no-verify.sh": "3ff7255f395a9552366faaac34d383f4c95fecfb39882cd1d57854356422fe61",
345
345
  "plugins/src/base/hooks/block-shell-json-parsing.agy.sh": "dc688efe382e7b8fe6f6c88bb0fde851527128cae778599559f23a93f1c9ec86",
@@ -488,7 +488,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
488
488
  "plugins/src/base/skills/lisa-agent-ready/SKILL.md": "f65e5e866bc476ba2b40e4fb29e6754bdd5824e1f0706f28d4f2beb2af0faf53",
489
489
  "plugins/src/base/skills/lisa-analyze-claude-remote/SKILL.md": "a5863836b8fa9d67825d048e1c2fc086d3df95de33cf110129488959b83cb4b5",
490
490
  "plugins/src/base/skills/lisa-atlassian-access/SKILL.md": "6366ccce961217d1c7bcac4dad9c2293ee4dcc395b27c142a3b59c62f00b685c",
491
- "plugins/src/base/skills/lisa-atlassian-access/scripts/markdown-to-adf.mjs": "538e5a3d91482b9e2a055e133b7c1fcf809be51d4ae72a10776aaeeb8df4832a",
491
+ "plugins/src/base/skills/lisa-atlassian-access/scripts/markdown-to-adf.mjs": "8ea94fa2b3fbe860cee365a6dd935a0f7ef9e749a2ab59c8b8dfc1838cdb0d37",
492
492
  "plugins/src/base/skills/lisa-attribute-failure/SKILL.md": "5d737b9fda916f02aaf13b208316cd54995d83aa06d27ba5daa19b6ebed6b4d9",
493
493
  "plugins/src/base/skills/lisa-automation-status/SKILL.md": "595b57feb3aa13b8a1a32691a25fc0c1b91f689e06745b4582d540c1d34a3b83",
494
494
  "plugins/src/base/skills/lisa-bug-triage/SKILL.md": "bd5bae508a8f344d8b5cb46cfddcb178ff8368ca77936f9e2c63058e05f61af4",
@@ -504,7 +504,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
504
504
  "plugins/src/base/skills/lisa-delivery-effectiveness/SKILL.md": "21bc55fa0e86a9694bd22269fd089dbfae0c54c199262f46a4955447acea0f35",
505
505
  "plugins/src/base/skills/lisa-detect-tooling/SKILL.md": "4ef9b5004e13beb46cac5ae994c24d91c3715363771e3d89c32b0610408fc887",
506
506
  "plugins/src/base/skills/lisa-detect-tooling/scripts/commands.mjs": "e28bd61fdde4a336b56ae3395423026943a5816015719d31d04f0d5a0ab50eec",
507
- "plugins/src/base/skills/lisa-detect-tooling/scripts/detect-tooling.mjs": "9d06590e6b99cce33e5fb10bd5b9e7515318133e3635368ef47162abc123bdfa",
507
+ "plugins/src/base/skills/lisa-detect-tooling/scripts/detect-tooling.mjs": "3a79e0a09112268c2bfe51575355c10c2fa5305fdac6629cada2028ab3f07a00",
508
508
  "plugins/src/base/skills/lisa-doctor/SKILL.md": "f015bd91a615fa22b8e9f2bcb89a8bbce4a3f7d4fd977bfe94970e8d21d640d8",
509
509
  "plugins/src/base/skills/lisa-drive-pr-to-merge/SKILL.md": "bbf4f08502f0f860a18e1a374998ed276931708c7c092f078837c98f7e25ac9a",
510
510
  "plugins/src/base/skills/lisa-epic-triage/SKILL.md": "d02760411249bddbd396f283191fe3e82bb7b95bf9393a19a7025dc5a57c3ab7",
@@ -614,7 +614,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
614
614
  "plugins/src/base/skills/lisa-quality-review/SKILL.md": "520437da40257686203468f39b61fbecb2f5c534faaaa488734e828f74c04825",
615
615
  "plugins/src/base/skills/lisa-queue-status/SKILL.md": "87c6d34d0511d4afd812d1af3fee80fa3b7aa47db8449760b12f2699fedc1d78",
616
616
  "plugins/src/base/skills/lisa-remote-dispatch/SKILL.md": "f3c48120a206d01db45f849ca5b61690d572abc16bc36d559a4cacc8f9422c06",
617
- "plugins/src/base/skills/lisa-remote-dispatch/scripts/dispatch.mjs": "475963ed64d9e72a6cbd6cbb61c8b57a419f2e1805e3ddfa76066047c590deeb",
617
+ "plugins/src/base/skills/lisa-remote-dispatch/scripts/dispatch.mjs": "3cf5802d8154ea8ec6c531db6d54c37dd38ab2573e3a0cb38fdfef535150b933",
618
618
  "plugins/src/base/skills/lisa-repair-intake/SKILL.md": "b9cc5064f24eead0c2f446951eb098a31b8e34c1d5e78929112d0685a6ce9de9",
619
619
  "plugins/src/base/skills/lisa-reproduce-bug/SKILL.md": "4d460993fac6021219ca23eee29b1b9afa7c37479dddc662b2fcfaca510edd68",
620
620
  "plugins/src/base/skills/lisa-research/SKILL.md": "9e2e7f3d02a18d9bb34f0b9e8c43d6b9b454d0f81987390839d40a84331b20f7",
@@ -625,28 +625,28 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
625
625
  "plugins/src/base/skills/lisa-secrets-access/SKILL.md": "32790da3a954eb16fbd47114f6b239d7eec7b16d1490de2d0dd461234d974c11",
626
626
  "plugins/src/base/skills/lisa-secrets-access/scripts/aws-bootstrap.mjs": "a06c212d45442a0a2daaefda1a7255e299f82704ca3637243b778d8268a5ce65",
627
627
  "plugins/src/base/skills/lisa-secrets-access/scripts/bootstrap-store.mjs": "8dd5ca2c99394ead696093dd10caf664ce2609d39fb8d8ae8f4d4f236dbddbe6",
628
- "plugins/src/base/skills/lisa-secrets-access/scripts/doctor-secrets.mjs": "5e3b936279d663ad714f0c699af1cd8f487b1212657cd4ad30dbe563d8dee9f8",
628
+ "plugins/src/base/skills/lisa-secrets-access/scripts/doctor-secrets.mjs": "71fd7a3f26d7e4424bb8ef80caaaa3db136595a5b9e620a32084a00521277ba3",
629
629
  "plugins/src/base/skills/lisa-secrets-access/scripts/envfile.mjs": "be4e38ce85f9268b52b29dbde264ecd8d50973c2b63a15410336234a921d9644",
630
- "plugins/src/base/skills/lisa-secrets-access/scripts/inspect-vault.mjs": "ce48f609f1434d75d00422ab3251f327233596ccac46d5f6437523b435dda164",
631
- "plugins/src/base/skills/lisa-secrets-access/scripts/materialize-secrets.mjs": "694f2660df23871d470701d1fb9fc7e24fcf7be137d9c275059ae7f7383340e9",
630
+ "plugins/src/base/skills/lisa-secrets-access/scripts/inspect-vault.mjs": "d2841042eda0f0c50f995ccc34e09e25aced0abbf3a96bce52a9f604e4009520",
631
+ "plugins/src/base/skills/lisa-secrets-access/scripts/materialize-secrets.mjs": "ebfd1bad8cd6ff85b746c2d69393997e7a6793b4cb2b9695efb2033bd3420ae6",
632
632
  "plugins/src/base/skills/lisa-secrets-access/scripts/note-format.mjs": "09bd6904bc84a5a93a32499ac94db5ec7728db68908a661698445ef5e6974f3e",
633
633
  "plugins/src/base/skills/lisa-secrets-access/scripts/preflight-secrets.mjs": "f6c6f87bb309d755fb715abcf5f7f1802d3ed7375a0d052118c547c3c46d5e37",
634
634
  "plugins/src/base/skills/lisa-secrets-access/scripts/prompt-secret.mjs": "22b28bcdf49b9b0fcd1b15639e031655efacc028b74d48d57e2275f3e1557508",
635
635
  "plugins/src/base/skills/lisa-secrets-access/scripts/providers.mjs": "f295709e2d14267db89d03d7d61cec9611897d816d5b31eed4b397b9c52d54af",
636
- "plugins/src/base/skills/lisa-secrets-access/scripts/read-secret-note.mjs": "1471d2108058f3059e242f9c71208c99fdbc212bde32de34b798eaa9a27ffbcc",
637
- "plugins/src/base/skills/lisa-secrets-access/scripts/resolve-secret.mjs": "75ae143c971a7d442d513f2458ac64322d2394dec77ec806af82f39c5ed815be",
638
- "plugins/src/base/skills/lisa-secrets-access/scripts/rotate-secret.mjs": "546dc1c2f279cee6db56c0f55c01aabae0c316842f32d3219c5af6d638936a9c",
636
+ "plugins/src/base/skills/lisa-secrets-access/scripts/read-secret-note.mjs": "735434e25bf1db9f2f7eb3d5ede8361cba01b922d65931393bd36e6f96531654",
637
+ "plugins/src/base/skills/lisa-secrets-access/scripts/resolve-secret.mjs": "4170220c95f410072f3871f58938b7575684254480d0645e3dbb1535cf09d7a7",
638
+ "plugins/src/base/skills/lisa-secrets-access/scripts/rotate-secret.mjs": "adada60f766760395858c69ef784654e9e096943485ed237c395c8fc2ca8e20f",
639
639
  "plugins/src/base/skills/lisa-secrets-access/scripts/routing-floor.mjs": "fa1bdeda4e38bbd149f993ab0288f11b7ba6f2a3b9bf91a5918de7356e21f786",
640
640
  "plugins/src/base/skills/lisa-secrets-access/scripts/surfaces.mjs": "945957bbb54d184a07703cf727844f0838810d33dd385b068934b571252934e6",
641
- "plugins/src/base/skills/lisa-secrets-access/scripts/sync-secret-to-ci.mjs": "4887a65b7589a47c7da3b5ed04907bfcb9773289c0dd3597c69a35ba239f14d9",
641
+ "plugins/src/base/skills/lisa-secrets-access/scripts/sync-secret-to-ci.mjs": "563ab35320a0ba58269ac3dd81155ffe3a299f6835210073e6fc9012ab436f41",
642
642
  "plugins/src/base/skills/lisa-secrets-access/scripts/tools-from-notes.mjs": "360f740cac081151491428043b04fec2f5db6f3ba36394f7378af312396d53ca",
643
- "plugins/src/base/skills/lisa-secrets-access/scripts/validate-config.mjs": "b521aa3e3e4049d2c40f81382c28b8d81ecad9221d147d3be8c94a444ae518a5",
643
+ "plugins/src/base/skills/lisa-secrets-access/scripts/validate-config.mjs": "85c5ec348e0f38128f44f3207fcbc047952ae88f48adf81b7879c24b1a66cbf0",
644
644
  "plugins/src/base/skills/lisa-security-review/SKILL.md": "5a980eaf5efc4fcce66e75521ec5b1eda143a5b0d36e7157234a705dac94e3f5",
645
645
  "plugins/src/base/skills/lisa-security-zap-scan/SKILL.md": "a5189442dbf970cc49fd089ab03c386c8a205b856e09501f6ad1966321e7e4b5",
646
646
  "plugins/src/base/skills/lisa-sentry-access/SKILL.md": "e8ea8e6e4288385202f88b04e258b6d86f304a05d6dc118ebde6e88a7e8b5f44",
647
647
  "plugins/src/base/skills/lisa-setup-atlassian/SKILL.md": "4fa7f9a83a9998951528c8ffffa930c61b5c316b510356a3e7a90ccb9d5ca123",
648
648
  "plugins/src/base/skills/lisa-setup-automations/SKILL.md": "4bf86639bca29641686fd124d7d4b6c177775063930a309e2c33f808e33d505f",
649
- "plugins/src/base/skills/lisa-setup-automations/scripts/generate-workflow.mjs": "f639c3f174378f0068b9c9d56e59b356c6da988730a1390c61e4348b4a4073ac",
649
+ "plugins/src/base/skills/lisa-setup-automations/scripts/generate-workflow.mjs": "c13e287c8beb6f847b03c93298b8a3fb211e65ce897e63692933377f8c4303f1",
650
650
  "plugins/src/base/skills/lisa-setup-confluence/SKILL.md": "e92d762dbdaeae671c3e52dfe8e10d40a10b606b5e050589181a3898649faedc",
651
651
  "plugins/src/base/skills/lisa-setup-github-repo/SKILL.md": "b9b223a5ffad2f88e3fde5831b60fea9bdc2c981750c49d03bb046d43772a0d3",
652
652
  "plugins/src/base/skills/lisa-setup-github/SKILL.md": "75435e81130abd21c678d302b7a220da95a19868d122ca93168278628b200666",
@@ -654,7 +654,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
654
654
  "plugins/src/base/skills/lisa-setup-kane/SKILL.md": "fe50024a4f896af01716f2435f57227b1f8de61803e80bf3e3c3247ec179b103",
655
655
  "plugins/src/base/skills/lisa-setup-linear/SKILL.md": "8813f9374f0d485c1ca1d2b2549e990dee1b232e82487c85caec972c47cceb64",
656
656
  "plugins/src/base/skills/lisa-setup-local-env/SKILL.md": "4d4b8c92e3616256f5f689fbe433f09c31d39c623508bc4ec0d8c1770caddf22",
657
- "plugins/src/base/skills/lisa-setup-local-env/scripts/local-env.mjs": "bff68aa66d6d4cd7cb9d0e39be691c6daa232edb097f8a601815432a32cca6a6",
657
+ "plugins/src/base/skills/lisa-setup-local-env/scripts/local-env.mjs": "6f3713451139d9d4fd8eed8f11f49e472667394c4f9a7cae63897b7702115687",
658
658
  "plugins/src/base/skills/lisa-setup-notion/SKILL.md": "a00121623871aa7578281779214d2a8ed871c7dfba19937f80374e76d6aa2b7f",
659
659
  "plugins/src/base/skills/lisa-setup-remote-aws/SKILL.md": "80fbf157f9c562c033886c25a99b37356602edd9e61cd2d492f339769ddcf97e",
660
660
  "plugins/src/base/skills/lisa-setup-remote-env/SKILL.md": "7aa1f616440cb262e47881e8b37b701ebd11ad1ea619412aa04c33324770904c",
@@ -662,10 +662,10 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
662
662
  "plugins/src/base/skills/lisa-setup-remote-env/assets/setup.sh": "c30d98a5645f033fc1d3a723043691b9ad997ae5666df539ff6aa19c563431b2",
663
663
  "plugins/src/base/skills/lisa-setup-remote-env/scripts/environment.mjs": "3b9be11691d81a896fc779c37fb6d69e8e7222f95e23f84aa03d4e590f9d9108",
664
664
  "plugins/src/base/skills/lisa-setup-remote-env/scripts/preflight-tools.mjs": "eb8ee672fbfdb0ab41dde5f17337dae59912f18eafa6f15a05fd203906d16352",
665
- "plugins/src/base/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs": "b4b831f8900360bbb36922edcddaef6bbe4b3730cb21cf0a365d76b914bcbe4e",
665
+ "plugins/src/base/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs": "c34250b56a158f3876a4134b92210b2b7ed1f26261901840928ef9fa3ce87789",
666
666
  "plugins/src/base/skills/lisa-setup-remote-env/scripts/tool-floor.mjs": "8bf279a2b198c7a6d4163420ec73f871fb9c9cb70d7c87d852026bc5dbf97091",
667
667
  "plugins/src/base/skills/lisa-setup-remote-env/scripts/toolchain.mjs": "496de5aed034692fee421dc3a1fbad9f85ed9e1d0c83a1080f781a486d0274e6",
668
- "plugins/src/base/skills/lisa-setup-remote-env/scripts/verify-remote-env.mjs": "362ff4a8196cbdcac3633e7d41437b0e8f966eb628924c8dba64646dd1e671c1",
668
+ "plugins/src/base/skills/lisa-setup-remote-env/scripts/verify-remote-env.mjs": "97f83b16a0ee5fc84c3b793afce24602b9fd0f67ae89501f424eae804eaead12",
669
669
  "plugins/src/base/skills/lisa-setup-sonar/SKILL.md": "b18e07ae942f75aad5730c0535840ef5f7115072f1b6cc62afac83196b28d6a3",
670
670
  "plugins/src/base/skills/lisa-setup-workstation/SKILL.md": "e57e64083c292f0402b704eeb647244be0f33ab17394a688bce57a1efd59f169",
671
671
  "plugins/src/base/skills/lisa-setup-workstation/scripts/catalogue.mjs": "eb0b8ec8a5d4fd81402dcbf40e6ccb55eb5e0c960f11aa928e45b99de43fabbc",
@@ -1071,10 +1071,10 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
1071
1071
  "scripts/fix-namespace-test-assertions.mjs": "bfed6f27753660b38457c3f0a032a6c866691666d2d5d61fc10c3fb2f4f4f412",
1072
1072
  "scripts/fix-test-assertions-pass2.mjs": "baca043a291120ff52ce61c06397206dc21ca3bef9c23a5975b9c1f896d963c7",
1073
1073
  "scripts/fix-test-assertions.mjs": "59b5e8cc31e7c7323d20bd180f2ae97c08a9685758483b6fe00ba77317a845f2",
1074
- "scripts/generate-agy-plugin-artifacts.mjs": "61aef7c20d92839a394f459f3012eb0b4e73d93ff56fa512b0244c68d96c72b4",
1074
+ "scripts/generate-agy-plugin-artifacts.mjs": "55328577509da3bb47c5a775ecbac6063a94b4ba52adf71d3de9322600a336c3",
1075
1075
  "scripts/generate-codex-plugin-artifacts.mjs": "1d1a362afb8dba408741a3eed9fe583296f6bcb048608979f73f359cd609c03d",
1076
- "scripts/generate-copilot-plugin-artifacts.mjs": "70d283eed7cb7c1351d13cf0497f06dec175562c5918921c404393a76f11278f",
1077
- "scripts/generate-cursor-plugin-artifacts.mjs": "d8806197a723f0c2b50a8155ffc5b6f0abc30c68dc2385cb80b0dd066d061231",
1076
+ "scripts/generate-copilot-plugin-artifacts.mjs": "2e5ce9a9f7390149bd3c24374960a51bda35afd1332cd2ad82a34bc0d50b8f50",
1077
+ "scripts/generate-cursor-plugin-artifacts.mjs": "19cadeae80428a932d9f7a6d36eba4f14e95761ede26ab773ca26bfbeaa9252e",
1078
1078
  "scripts/generate-lisa-owned-hash-ledger.mjs": "4e7a6dd9325fff77faec49c1dcbf8a8cfeb987052eeed89885deb4f7b0a107bc",
1079
1079
  "scripts/generate-upstream-evidence-manifest.mjs": "e1f0485918ab8a2206e8200f297acb495400f321bed5d31d3f60f8da11d8fdc6",
1080
1080
  "scripts/github-status-check.sh": "c6a4a13ff5cf689fcbd7a6aca718f9e7d46d54ccb6687f662b055c1ca20e792f",
@@ -1153,7 +1153,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
1153
1153
  "typescript/copy-overwrite/eslint.slow.config.ts": "9f0efef2d1012e21a1d5e03eb98634bfeb459e3427147d75ad6905acbbab8466",
1154
1154
  "typescript/copy-overwrite/knip.json": "6eb93d705a2d645332fbae1dd42cf2d48f85978ebc265451a53790912f277d12",
1155
1155
  "typescript/copy-overwrite/scripts/check-nightly-e2e-health.mjs": "5f47f02563671a25ad14dc69210f1f52e9141e0e53a27bafce52d41899aa9d21",
1156
- "typescript/copy-overwrite/scripts/check-skipped-required-checks.mjs": "5af5f112ba258c4874a65c72c8bed12165e75e4df407265eb46ee9c89c4e0e53",
1156
+ "typescript/copy-overwrite/scripts/check-skipped-required-checks.mjs": "444210c8fbfca1d3e6ae0e180fe95752e10152610ad349ffea377136f4ae8cf7",
1157
1157
  "typescript/copy-overwrite/scripts/check-threshold-ratchet.mjs": "6bcf8b88b1d5ade1aa7c7902ba12af1df7b0b13d4e69c49a24f76a92474c93ec",
1158
1158
  "typescript/copy-overwrite/scripts/check-verification-coverage.mjs": "0cddac03366644cdc99cc239e74520ac420d475b461a40a21728e43756872b07",
1159
1159
  "typescript/copy-overwrite/scripts/lib/invoked-as-script.mjs": "fbb9b88fc85a3e22f21af39e1c17acf67ff83fc6b5a6cdc8081bde333c48faa7",
@@ -7718,6 +7718,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
7718
7718
  "tests/unit/hooks/block-direct-issue-create.test.ts": true,
7719
7719
  "tests/unit/hooks/block-generated-artifact-edits.test.ts": true,
7720
7720
  "tests/unit/hooks/block-instruction-file-edits.test.ts": true,
7721
+ "tests/unit/hooks/block-managed-file-edits.test.ts": true,
7721
7722
  "tests/unit/hooks/block-no-verify-missing-jq.test.ts": true,
7722
7723
  "tests/unit/hooks/block-no-verify.test.ts": true,
7723
7724
  "tests/unit/hooks/block-shell-json-parsing-missing-deps.test.ts": true,