@codyswann/lisa 3.14.0 → 3.14.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 (91) hide show
  1. package/all/copy-overwrite/scripts/lisa-destructive-guard.mjs +3 -0
  2. package/all/copy-overwrite/scripts/lisa-enforcement-fallback.sh +3 -0
  3. package/all/copy-overwrite/scripts/lisa-hooks/block-direct-issue-create.sh +3 -0
  4. package/all/copy-overwrite/scripts/lisa-hooks/block-instruction-file-edits.sh +3 -0
  5. package/all/copy-overwrite/scripts/lisa-hooks/block-no-verify.sh +3 -0
  6. package/all/copy-overwrite/scripts/lisa-hooks/block-shell-json-parsing.sh +3 -0
  7. package/all/copy-overwrite/scripts/lisa-hooks/parity-safety-net.sh +3 -0
  8. package/all/copy-overwrite/scripts/lisa-hooks/sonar-secrets.sh +3 -0
  9. package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
  10. package/dist/core/lisa-owned-hash-ledger.js +151 -0
  11. package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
  12. package/dist/core/lisa-owned-templates.d.ts +40 -6
  13. package/dist/core/lisa-owned-templates.d.ts.map +1 -1
  14. package/dist/core/lisa-owned-templates.js +47 -10
  15. package/dist/core/lisa-owned-templates.js.map +1 -1
  16. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  17. package/dist/core/upstream-evidence-manifest.js +33 -29
  18. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  19. package/expo/copy-overwrite/.easignore.extra +3 -0
  20. package/package.json +1 -1
  21. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  22. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  23. package/plugins/lisa-agy/plugin.json +1 -1
  24. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  25. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  26. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  27. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  31. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  32. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  33. package/plugins/lisa-expo-agy/plugin.json +1 -1
  34. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  36. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  37. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  38. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  39. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  41. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  42. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  43. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  44. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  46. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  48. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  49. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  51. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  52. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  53. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  54. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  56. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  57. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  58. package/plugins/lisa-rails-agy/plugin.json +1 -1
  59. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  61. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  62. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  63. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  64. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  65. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  66. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  67. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  68. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  69. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  70. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  71. package/rails/copy-overwrite/.rubocop.yml +3 -0
  72. package/rails/copy-overwrite/ast-grep/rules/ruby/no-find-by-sql-without-params.yml +3 -0
  73. package/rails/copy-overwrite/ast-grep/rules/ruby/no-params-without-permit.yml +3 -0
  74. package/rails/copy-overwrite/ast-grep/rules/ruby/no-raw-sql-in-where.yml +3 -0
  75. package/rails/copy-overwrite/ast-grep/rules/ruby/no-skip-before-action-without-scope.yml +3 -0
  76. package/rails/copy-overwrite/ast-grep/rules/ruby/no-unsafe-send.yml +3 -0
  77. package/rails/copy-overwrite/ast-grep/rules/ruby/no-update-columns.yml +3 -0
  78. package/rails/copy-overwrite/config/initializers/version.rb +2 -0
  79. package/rails/copy-overwrite/lefthook.yml +3 -0
  80. package/rails/copy-overwrite/scripts/check-threshold-ratchet.mjs +3 -0
  81. package/rails/copy-overwrite/scripts/threshold-ratchet-compare.mjs +3 -0
  82. package/rails/copy-overwrite/scripts/threshold-ratchet-families.mjs +3 -0
  83. package/scripts/build-plugins.sh +23 -7
  84. package/scripts/generate-lisa-owned-hash-ledger.mjs +18 -12
  85. package/scripts/materialize-copy-overwrite.mjs +163 -0
  86. package/typescript/copy-overwrite/.github/GITHUB_ACTIONS.md +3 -0
  87. package/typescript/copy-overwrite/ast-grep/rules/no-inline-component-in-container.yml +3 -0
  88. package/typescript/copy-overwrite/ast-grep/rules/no-inline-component-in-view.yml +3 -0
  89. package/typescript/copy-overwrite/scripts/check-threshold-ratchet.mjs +3 -0
  90. package/typescript/copy-overwrite/scripts/threshold-ratchet-compare.mjs +3 -0
  91. package/typescript/copy-overwrite/scripts/threshold-ratchet-families.mjs +3 -0
@@ -5,15 +5,15 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
5
5
  "all/copy-contents/gitignore": "8104ccd32d7e6137cae706511c5037d11d6b6045b8e2a9bb7b3a48a81c053cfa",
6
6
  "all/copy-overwrite/scripts/check-state-classification.mjs": "ac539349c86a7b5b0083ec0e6aaf0eb4c3e40fbd4dc31511c6460a2bad7af9a5",
7
7
  "all/copy-overwrite/scripts/lisa-command-envelope.mjs": "6b198f088cd3cd862d4357fbb069b1ad5d3afeb7be594f2bf1ff603b092a8354",
8
- "all/copy-overwrite/scripts/lisa-destructive-guard.mjs": "4fb431a3c58f443e303d613934d023d9e95ddae5c42710bb7009f7c080c82a64",
9
- "all/copy-overwrite/scripts/lisa-enforcement-fallback.sh": "3049c2f1051c7c02dd60b62355964651e1565ebe6bdcb5e37634cd686cf1deb1",
8
+ "all/copy-overwrite/scripts/lisa-destructive-guard.mjs": "66ade2c9cc0554c4934ed94a44563fd9d648b37cacfa9a5d31f17ac4f181e5a3",
9
+ "all/copy-overwrite/scripts/lisa-enforcement-fallback.sh": "68e1b78d5d4471fadbe2eb575ae46221838217290123a9910d76dba0f1c34131",
10
10
  "all/copy-overwrite/scripts/lisa-floor-collisions.mjs": "2d11968f6852ab745cba939de03c6d6cb5f413975d2cfc8fc447bdd0b218e91a",
11
- "all/copy-overwrite/scripts/lisa-hooks/block-direct-issue-create.sh": "22184f1dd1b96e818741bd4ae659446299535d7ce594817155edebac4172a7ba",
12
- "all/copy-overwrite/scripts/lisa-hooks/block-instruction-file-edits.sh": "d47314b66d6ce85f77d6e058f861eede4462b2b0a33d54e82ff1c931167ec3f7",
13
- "all/copy-overwrite/scripts/lisa-hooks/block-no-verify.sh": "3ff7255f395a9552366faaac34d383f4c95fecfb39882cd1d57854356422fe61",
14
- "all/copy-overwrite/scripts/lisa-hooks/block-shell-json-parsing.sh": "90601e31603c440d8f19d213d63bfef8d18596c60f88cb6e28c93d12453c5c0c",
15
- "all/copy-overwrite/scripts/lisa-hooks/parity-safety-net.sh": "d9ea58150aa27e7f0aa9a4ef155ed446d30bdfc932d01c64e2b8ca211aa0de7b",
16
- "all/copy-overwrite/scripts/lisa-hooks/sonar-secrets.sh": "bf4132e49ba18e2f7e941520c299c15aeeacfd220e489f3d2eb8397f2048157b",
11
+ "all/copy-overwrite/scripts/lisa-hooks/block-direct-issue-create.sh": "8d1f04ef5c5da9db9190e22b37a435e118e39d6e7deafc5402b4593c8e9db2b2",
12
+ "all/copy-overwrite/scripts/lisa-hooks/block-instruction-file-edits.sh": "3e709e1ec8a5843c00684bc477ad32ddab2c5fdb11f71d5aeec0c49609eaf025",
13
+ "all/copy-overwrite/scripts/lisa-hooks/block-no-verify.sh": "83a8b8108654086afb6a6f23a8f09f9f041eb2cd4094c5531fa7ab1f75e873dc",
14
+ "all/copy-overwrite/scripts/lisa-hooks/block-shell-json-parsing.sh": "234cb82cc9033bd04940a553d4ddc95b078e585e41777d6529d887676edc40b1",
15
+ "all/copy-overwrite/scripts/lisa-hooks/parity-safety-net.sh": "1d4fbe135f1bb4e861d286a6512ed201d4522250dfe3f9eba6584bc5ff166a95",
16
+ "all/copy-overwrite/scripts/lisa-hooks/sonar-secrets.sh": "18e63683064305dab1200456896cbb9384ab35ee6bc51d3789ffbba46d1b1081",
17
17
  "all/copy-overwrite/scripts/lisa-schema-validate.mjs": "2ace82daacdebbbb00a7eceb09fbe82cabec04330a083ca10417b2ee4e0a63eb",
18
18
  "all/copy-overwrite/scripts/lisa-work-item.mjs": "c78df9d5f0f3fc388ff60a7db5898478a2a4d6d7325833f10384b5a8c62bb34a",
19
19
  "all/copy-overwrite/scripts/schemas/lisa-command-envelope.v1.schema.json": "d153b7c2953a30f180e38f09e98240c63327f5196eeba9bdf545e5a1f125a879",
@@ -76,7 +76,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
76
76
  "eslint-plugin-ui-standards/package.json": "cfc50e091432a9499ddcba7d19ee7869c005d3f4b7ec9ca128f4209581219663",
77
77
  "eslint-plugin-ui-standards/rules/no-classname-outside-ui.js": "4fd16f5e99bb624bfe1a245fed218a7a82b50cd06f5790b6393a36d039932f16",
78
78
  "eslint-plugin-ui-standards/rules/no-direct-rn-imports.js": "e25d0c26e865ea72c4914a7c3f10ff92bd084efd04f8665c896b1d9eed923299",
79
- "expo/copy-overwrite/.easignore.extra": "bb3cefcd1623ac81e4c04d565b2de9a0a7bb7fcd7b2878e860147eb0846a66b9",
79
+ "expo/copy-overwrite/.easignore.extra": "1d30dac09405c41e23f6212553abacea478d7759b69c18edac0c0053f00e0d37",
80
80
  "expo/copy-overwrite/eslint.config.ts": "889ff793099bb65f969c2ccdf1690c8748f20e489999c1a80ae160dfb19f0531",
81
81
  "expo/copy-overwrite/eslint.expo.ts": "9386672ae12703ef7f9066f7f478c95d902cc5bbd37dfd57ea507d80a05726d6",
82
82
  "expo/copy-overwrite/eslint.slow.config.ts": "48d6a35be75450becde07d30d859c970c48a0438e730845272629c8ec677d3eb",
@@ -992,23 +992,23 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
992
992
  "plugins/src/wiki/templates/wrapper-gitignore.txt": "6cbaaaeb9281c3079a7f6525b28aae54703bc052dc21ea3374e52100e43dddde",
993
993
  "rails/copy-contents/Gemfile": "1250d4cff8575cecfde3c9491c4eb1fe4d0e6aac6d5febd54a60635d3644faaa",
994
994
  "rails/copy-contents/scripts/lisa-mutation.sh": "ed4ab6e8b612adb14f6ae0b160cf044e06fd3d5f6089eb4681a7c6c02a0f2abe",
995
- "rails/copy-overwrite/.rubocop.yml": "5da977f7ac17634ae6658edd273a4ab0f1b7641e9958d23147e493593964186a",
995
+ "rails/copy-overwrite/.rubocop.yml": "641857d3540f8b5a4524e3815ce4e1162ab4010b0d8663b1edb2abdad41dbf09",
996
996
  "rails/copy-overwrite/.versionrc": "b6c4c0258819fa186a91d96cdeac7a017f36cfe1d2c59ccb69cff75c1a8598e0",
997
997
  "rails/copy-overwrite/Gemfile.lisa": "c73ab0f02fe764ce2953761272d5302ef1f5cc17f346c70697f2d638a11b5a4d",
998
998
  "rails/copy-overwrite/ast-grep/rule-tests/.gitkeep": "bbbdb778ba76fa0bf120a9d49325e726adafc6a833e8d56a87c449a33a818cbd",
999
- "rails/copy-overwrite/ast-grep/rules/ruby/no-find-by-sql-without-params.yml": "8d47d388f1b7d5cce0d4e58a9455247a10ee93d4cca664e9169dd32b666b10d0",
1000
- "rails/copy-overwrite/ast-grep/rules/ruby/no-params-without-permit.yml": "8d2d8e1316a1412028fcdf57e9163cc23efd17e2893cb206da8fdcd3e66e7065",
1001
- "rails/copy-overwrite/ast-grep/rules/ruby/no-raw-sql-in-where.yml": "e68126e681324dadae4748150a504a6eb8d26239514ab276d48f8f8232f4a948",
1002
- "rails/copy-overwrite/ast-grep/rules/ruby/no-skip-before-action-without-scope.yml": "f0b5164c4bcd4f811268fd2d729e795ffa0f136df1753e1ab6a2fca2ec963840",
1003
- "rails/copy-overwrite/ast-grep/rules/ruby/no-unsafe-send.yml": "b66774133fa7fe7cc62645e4f790e4e32bbfe718a6fc6bf38f3267d751a8f9cd",
1004
- "rails/copy-overwrite/ast-grep/rules/ruby/no-update-columns.yml": "29a68b4994bccb9605fa13efc20c50102d38dfd2dcd96a3bbf9eb01d67efd2da",
999
+ "rails/copy-overwrite/ast-grep/rules/ruby/no-find-by-sql-without-params.yml": "313278315d8c8b0c0b0d905d78d56640c29fa5e367fc020a16d1868f7e44be83",
1000
+ "rails/copy-overwrite/ast-grep/rules/ruby/no-params-without-permit.yml": "87b1a9cabe0752a5b97c247cb9e0abfc737c2cde15ef3fee27a8e258d10db868",
1001
+ "rails/copy-overwrite/ast-grep/rules/ruby/no-raw-sql-in-where.yml": "5a60062a92ceede29dd091523c9e30def305075a229ebaf94cb611d8c2bb5f84",
1002
+ "rails/copy-overwrite/ast-grep/rules/ruby/no-skip-before-action-without-scope.yml": "da03a58620aff4cb3b191e7ec78566438bf5cdd2366a5a3be667774d5f7e2bbe",
1003
+ "rails/copy-overwrite/ast-grep/rules/ruby/no-unsafe-send.yml": "eb3eb2d96462f28d6815cf0261af2ed2b18e7258ec88a3338f8ae17c5741d583",
1004
+ "rails/copy-overwrite/ast-grep/rules/ruby/no-update-columns.yml": "5036436ebb4baa703987f3a818d0e33411daa07656611c334fb110316f98cd99",
1005
1005
  "rails/copy-overwrite/ast-grep/utils/.gitkeep": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
1006
- "rails/copy-overwrite/config/initializers/version.rb": "fa664a84f407877b5ddbd3709a2352b30e4dc6fbce538a8503bad6c52448dc86",
1007
- "rails/copy-overwrite/lefthook.yml": "28bb382b9171a04fb92ebafc1f1522b8639f5edc4fcffcc6940e7fba3460fb4e",
1008
- "rails/copy-overwrite/scripts/check-threshold-ratchet.mjs": "1e46e6ca651e87e7814a4f486af5784ed2f7a8a48eadcaa7d3fef26e380929f9",
1006
+ "rails/copy-overwrite/config/initializers/version.rb": "703bdfcceb031f38d19ddebe7ae3d432051f0d444ab7467b406ddd8e451ec9c7",
1007
+ "rails/copy-overwrite/lefthook.yml": "3ae82d0a6ad86708d8ceaa1f9a3bbe12ef64e8fa12a0248bed5e3180bb431c68",
1008
+ "rails/copy-overwrite/scripts/check-threshold-ratchet.mjs": "46b7c2213112306af9702c910a9bcf485ea0b46154e46f0afe8fb8b5b0ba6c08",
1009
1009
  "rails/copy-overwrite/scripts/lisa-clean-git-env.sh": "d15af6f13eedbca41046070972380e69fc0af8f7d903aac12b8644389b9a0c91",
1010
- "rails/copy-overwrite/scripts/threshold-ratchet-compare.mjs": "90affbeaed0d65c032dccfc0bd4a4b26eda291f6b61aa8b12599f41842452e0a",
1011
- "rails/copy-overwrite/scripts/threshold-ratchet-families.mjs": "8fa58cc7276add0b2edf1de92bdcc32d81d840811ef0614ddc724010b59a888c",
1010
+ "rails/copy-overwrite/scripts/threshold-ratchet-compare.mjs": "cf99167b05d210afad01fb41fc4aed548c66ee0e9a7c4decb8afa1f180eb5640",
1011
+ "rails/copy-overwrite/scripts/threshold-ratchet-families.mjs": "f50e35d11295a836bd5b6d818aed6daea68ff70bdffbbdf9f67b09984a2628da",
1012
1012
  "rails/copy-overwrite/sgconfig.yml": "ff5b62de42eb969a851fdc53ee6932a32ffe010b567ed2c62460ed454ad2a24f",
1013
1013
  "rails/create-only/.github/workflows/ci.yml": "924375bcfcb8c13f546a7e323cf5ad99cee1427d3ba90386680db16b981e5ab4",
1014
1014
  "rails/create-only/.github/workflows/claude-code-review-response.yml": "def0d5fdbb3415f1531dcadfca9c357c637cf090d3a86017ae45cf94dba50087",
@@ -1034,7 +1034,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
1034
1034
  "rails/deletions.json": "eeadf9a2b1677913199a235091a8d6190477f3e2a5fd598d62cf658cb59a8099",
1035
1035
  "rails/github-rulesets/quality-checks.json": "0ec1c366589edbaa6b8f45f940cef3ada5ed7b1a956d98d3fa6034b0f78fbc7c",
1036
1036
  "rails/merge/.claude/settings.json": "9c49f8c7c453f8749c90def3e22d412c3345c533d24b30dc7745ffa052ad6fa1",
1037
- "scripts/build-plugins.sh": "b98f0e4789ce903ebf704abaa649c6d4a4721ce0cf2b5caf4ccddeb04fc0d5e0",
1037
+ "scripts/build-plugins.sh": "2ae01e074226393086369b8e7db807baa14ae61fe4f8aa89b149be0835d7e664",
1038
1038
  "scripts/check-conflict-markers.mjs": "e2b25dd56eb3742f074ae5b8ece13ef194518e70e5bac4c2f49e3b819d3f7dc4",
1039
1039
  "scripts/check-duplicate-versions.mjs": "84d97e94eb834522848ddce951bb54ae9da1e4be252e2c51fed0c01c4f4d6b72",
1040
1040
  "scripts/check-learnings-budget.ts": "007430c2d6938efcc79ccbfd5717ebe2c7cf66b4de9a21a3e67b8db7f3600349",
@@ -1059,7 +1059,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
1059
1059
  "scripts/generate-codex-plugin-artifacts.mjs": "1d1a362afb8dba408741a3eed9fe583296f6bcb048608979f73f359cd609c03d",
1060
1060
  "scripts/generate-copilot-plugin-artifacts.mjs": "70d283eed7cb7c1351d13cf0497f06dec175562c5918921c404393a76f11278f",
1061
1061
  "scripts/generate-cursor-plugin-artifacts.mjs": "d8806197a723f0c2b50a8155ffc5b6f0abc30c68dc2385cb80b0dd066d061231",
1062
- "scripts/generate-lisa-owned-hash-ledger.mjs": "977d447ff5bf1b5254a66a7386e4fd8e7bf9c8f3e7a5b8d61cedb771b97002f2",
1062
+ "scripts/generate-lisa-owned-hash-ledger.mjs": "6227966f11514cf5d03f35cfa2f876bede9ceabc133c1ff9f4c5abc2c8cc9a3d",
1063
1063
  "scripts/generate-upstream-evidence-manifest.mjs": "de1eb5adaa6252b4abe5859933bff0ab2a52e19cc5a3fc5a41018fbb57b766d1",
1064
1064
  "scripts/github-status-check.sh": "c6a4a13ff5cf689fcbd7a6aca718f9e7d46d54ccb6687f662b055c1ca20e792f",
1065
1065
  "scripts/install-claude-plugins.sh": "0e96ebbae1e59304bb432286eccba38900a6008b80f2c53a1ec2c95801d4087c",
@@ -1083,6 +1083,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
1083
1083
  "scripts/lisa-remote-env/setup.sh": "c30d98a5645f033fc1d3a723043691b9ad997ae5666df539ff6aa19c563431b2",
1084
1084
  "scripts/lisa-update-local.sh": "c811f9e10dbcb38499a9791c1ae9051460b347051d04a1d2046925bab9a53c96",
1085
1085
  "scripts/lisa-work-item.mjs": "51081847e980f314a764c2e50a7a121b1ced9ef4b980f33898057de4c7b852e6",
1086
+ "scripts/materialize-copy-overwrite.mjs": "3f8dea8027087b83d0f985dc070a529b5e62755643d946684d780b86c498a411",
1086
1087
  "scripts/migrate-deploy-order.sh": "77d909b4cbbfc05169a79168d7868600ea7f56f846feefb7d5121618c54800c3",
1087
1088
  "scripts/plugin-parity-drift.mjs": "34235c4c75c8735aaca96e3e0a52073ba1dee8bad54c85af01c3cf9912d0ea57",
1088
1089
  "scripts/plugin-routing-validate.mjs": "ddb2fcd950cbd66ca642e946aef33fd0bb2e7c4081ee96c19d4628a7d45694b8",
@@ -1113,7 +1114,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
1113
1114
  "typescript/copy-contents/.husky/pre-push": "bb929b9fa108586e5591e80e5d3682d6540fc681543f1e02d7a626022bbffb15",
1114
1115
  "typescript/copy-contents/.husky/prepare-commit-msg": "58671fb61f6fcc1fc384a2d7295f16949faa58150a8213e0a39d3c70fad728b5",
1115
1116
  "typescript/copy-overwrite/.claude/hooks/worktree-create.sh": "8dbddc0297ca574d150b3e669550320bd2df6e592c083317626f53a91f36d349",
1116
- "typescript/copy-overwrite/.github/GITHUB_ACTIONS.md": "eb70191370c5481c8e1ec30bc1c19dac4611f678219c46012f5a32e49989af90",
1117
+ "typescript/copy-overwrite/.github/GITHUB_ACTIONS.md": "c6ea804e74b62ee11ec881909fb0d6fe7088e44e9af3d832fad91a7aa5df0d8b",
1117
1118
  "typescript/copy-overwrite/.github/dependabot.yml": "73330408894b35567b068dd12dcb2edd0b01235fd63547938c62ca0dbc0485e2",
1118
1119
  "typescript/copy-overwrite/.lintstagedrc.json": "5a2f5f9ad454e7b9e1e065cb3b1768f6a9897e453b0afee508b98c96bfa67138",
1119
1120
  "typescript/copy-overwrite/.nvmrc": "0775c6feb7638122e8b68d611cd709bf270f7b5adb5d0d2baa9afab8a6c0fc42",
@@ -1123,8 +1124,8 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
1123
1124
  "typescript/copy-overwrite/.yamllint": "685de50b905e024ac8882cdf6443850e96a44744ac03366cae636ceb384dd4e0",
1124
1125
  "typescript/copy-overwrite/ast-grep/rule-tests/.gitkeep": "bbbdb778ba76fa0bf120a9d49325e726adafc6a833e8d56a87c449a33a818cbd",
1125
1126
  "typescript/copy-overwrite/ast-grep/rules/.gitkeep": "5068239f6c760759362d6a1cc83478d77eef0214fa7f4f23c8d1ce4b56f532c0",
1126
- "typescript/copy-overwrite/ast-grep/rules/no-inline-component-in-container.yml": "9cd675cbba11457ba70c9c4f853f3e5cf652fe98c508075946f02bf045710ca6",
1127
- "typescript/copy-overwrite/ast-grep/rules/no-inline-component-in-view.yml": "a662cb959ad5d96e4dda09d6dce1d69318e7c13f3d01787658184fd6075c2781",
1127
+ "typescript/copy-overwrite/ast-grep/rules/no-inline-component-in-container.yml": "cb3c9ba6ee7849f767f9c95423f271447254564dc97122a3c871c8d76c9f688b",
1128
+ "typescript/copy-overwrite/ast-grep/rules/no-inline-component-in-view.yml": "6ecf2527ded51d3ede76f80bb7f376e557bcf596523b5ca03e2afd2962a45d37",
1128
1129
  "typescript/copy-overwrite/ast-grep/rules/no-missing-fs-extra-namespace-member-js.yml": "a1c25176b326e26070870d65dcd6e4651880f4121563fc0082022e7f525e5e1b",
1129
1130
  "typescript/copy-overwrite/ast-grep/rules/no-missing-fs-extra-namespace-member.yml": "599df22bafdcf588a4cceac134dbca203266fd77ae4ac0c33b351b545372488c",
1130
1131
  "typescript/copy-overwrite/ast-grep/utils/.gitkeep": "6792ca57f00ff5a84a4713a08308a8ab3144858b0b0d9f8251b8c26c48948fb7",
@@ -1136,12 +1137,12 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
1136
1137
  "typescript/copy-overwrite/knip.json": "6eb93d705a2d645332fbae1dd42cf2d48f85978ebc265451a53790912f277d12",
1137
1138
  "typescript/copy-overwrite/scripts/check-nightly-e2e-health.mjs": "5e64dad2e2ee08fabd99398c957cbe4dfc3b0a7243aae424c8e83f29283e503c",
1138
1139
  "typescript/copy-overwrite/scripts/check-skipped-required-checks.mjs": "1bcd3f065465731df4eb02b93b73a0162d287e365ed1a396138d97d71d403b31",
1139
- "typescript/copy-overwrite/scripts/check-threshold-ratchet.mjs": "1e46e6ca651e87e7814a4f486af5784ed2f7a8a48eadcaa7d3fef26e380929f9",
1140
+ "typescript/copy-overwrite/scripts/check-threshold-ratchet.mjs": "46b7c2213112306af9702c910a9bcf485ea0b46154e46f0afe8fb8b5b0ba6c08",
1140
1141
  "typescript/copy-overwrite/scripts/check-verification-coverage.mjs": "3c037e2f0d2c7ae48d3b8c798522847910daef671a787393997fc71107cc7ead",
1141
1142
  "typescript/copy-overwrite/scripts/lisa-mutation.mjs": "8e0bdb491dfaea04e88be1c1e2c6cc7cd34fa4ca18adddf5fecc43d7de8ffded",
1142
1143
  "typescript/copy-overwrite/scripts/nightly-e2e-suites.schema.json": "a6041930ca4536f3a76e4f54976ff846ab575f5f07a2356722eedcb06795e684",
1143
- "typescript/copy-overwrite/scripts/threshold-ratchet-compare.mjs": "90affbeaed0d65c032dccfc0bd4a4b26eda291f6b61aa8b12599f41842452e0a",
1144
- "typescript/copy-overwrite/scripts/threshold-ratchet-families.mjs": "8fa58cc7276add0b2edf1de92bdcc32d81d840811ef0614ddc724010b59a888c",
1144
+ "typescript/copy-overwrite/scripts/threshold-ratchet-compare.mjs": "cf99167b05d210afad01fb41fc4aed548c66ee0e9a7c4decb8afa1f180eb5640",
1145
+ "typescript/copy-overwrite/scripts/threshold-ratchet-families.mjs": "f50e35d11295a836bd5b6d818aed6daea68ff70bdffbbdf9f67b09984a2628da",
1145
1146
  "typescript/copy-overwrite/sgconfig.yml": "ff5b62de42eb969a851fdc53ee6932a32ffe010b567ed2c62460ed454ad2a24f",
1146
1147
  "typescript/copy-overwrite/tsconfig.eslint.json": "8a8ae5e201b18887b8eeda5eb569747221695524d4193ea03b4338b97b7fa642",
1147
1148
  "typescript/copy-overwrite/tsconfig.json": "8f4257fcd2cfd4b23e83e0fdd4908d41ee8f1ae75bb95d632e653a0ac13d58e4",
@@ -6934,6 +6935,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
6934
6935
  "scripts/lisa-remote-env/setup.sh": true,
6935
6936
  "scripts/lisa-update-local.sh": true,
6936
6937
  "scripts/lisa-work-item.mjs": true,
6938
+ "scripts/materialize-copy-overwrite.mjs": true,
6937
6939
  "scripts/migrate-deploy-order.sh": true,
6938
6940
  "scripts/plugin-parity-drift.mjs": true,
6939
6941
  "scripts/plugin-routing-validate.mjs": true,
@@ -7606,6 +7608,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
7606
7608
  "tests/unit/core/learnings-supersede-race.test.ts": true,
7607
7609
  "tests/unit/core/learnings-unlocked-read.test.ts": true,
7608
7610
  "tests/unit/core/learnings-writer.test.ts": true,
7611
+ "tests/unit/core/lisa-owned-enforcement-scripts.test.ts": true,
7609
7612
  "tests/unit/core/lisa-owned-provenance.test.ts": true,
7610
7613
  "tests/unit/core/lisa-owned-templates.test.ts": true,
7611
7614
  "tests/unit/core/lisa-plugin-selection.test.ts": true,
@@ -7881,6 +7884,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
7881
7884
  "tests/unit/strategies/convergent-review-contract.test.ts": true,
7882
7885
  "tests/unit/strategies/copy-contents-gitignore.test.ts": true,
7883
7886
  "tests/unit/strategies/copy-contents.test.ts": true,
7887
+ "tests/unit/strategies/copy-overwrite-enforcement-scripts.test.ts": true,
7884
7888
  "tests/unit/strategies/copy-overwrite-host-ahead.test.ts": true,
7885
7889
  "tests/unit/strategies/copy-overwrite-lisa-owned-guards.test.ts": true,
7886
7890
  "tests/unit/strategies/copy-overwrite-refresh-templates.test.ts": true,