@codyswann/lisa 2.291.0 → 2.293.0
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-work-item.mjs +64 -3
- package/all/merge/.claude/settings.json +1 -1
- package/cdk/merge/.claude/settings.json +1 -1
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +16 -13
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/opencode/plugin-templates/parity-safety-net.sh +340 -35
- package/expo/merge/.claude/settings.json +1 -1
- package/harper-fabric/merge/.claude/settings.json +1 -1
- package/nestjs/merge/.claude/settings.json +1 -1
- package/package.json +1 -1
- package/phaser/merge/.claude/settings.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-implement/SKILL.md +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-parity-safety-net-rules/SKILL.md +46 -5
- package/plugins/lisa/hooks/parity-safety-net.sh +340 -35
- package/plugins/lisa/skills/lisa-implement/SKILL.md +1 -1
- package/plugins/lisa/skills/lisa-parity-safety-net-rules/SKILL.md +46 -5
- package/plugins/lisa-agy/hooks/parity-safety-net.sh +340 -35
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-implement/SKILL.md +1 -1
- package/plugins/lisa-agy/skills/lisa-parity-safety-net-rules/SKILL.md +46 -5
- 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/hooks/parity-safety-net.sh +340 -35
- package/plugins/lisa-copilot/skills/lisa-implement/SKILL.md +1 -1
- package/plugins/lisa-copilot/skills/lisa-parity-safety-net-rules/SKILL.md +46 -5
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/hooks/parity-safety-net.sh +340 -35
- package/plugins/lisa-cursor/skills/lisa-implement/SKILL.md +1 -1
- package/plugins/lisa-cursor/skills/lisa-parity-safety-net-rules/SKILL.md +46 -5
- 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/hooks/parity-safety-net.sh +340 -35
- package/plugins/src/base/skills/lisa-implement/SKILL.md +1 -1
- package/plugins/src/base/skills/lisa-parity-safety-net-rules/SKILL.md +46 -5
- package/rails/merge/.claude/settings.json +1 -1
- package/scripts/install-claude-plugins.sh +9 -6
- package/typescript/merge/.claude/settings.json +1 -1
|
@@ -76,6 +76,26 @@ function currentBranch() {
|
|
|
76
76
|
return git(["branch", "--show-current"]);
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
+
/**
|
|
80
|
+
* Branch an in-progress rebase is rewriting, or empty when no rebase is in
|
|
81
|
+
* progress. During a rebase HEAD is detached, but git records the branch being
|
|
82
|
+
* rebased in `<rebase-state-dir>/head-name` (issue #1956) — resolved via
|
|
83
|
+
* `git rev-parse --git-path` so linked worktrees find their private state dir.
|
|
84
|
+
*/
|
|
85
|
+
function rebaseBranch() {
|
|
86
|
+
for (const stateDir of ["rebase-merge", "rebase-apply"]) {
|
|
87
|
+
const file = resolve(
|
|
88
|
+
git(["rev-parse", "--git-path", `${stateDir}/head-name`])
|
|
89
|
+
);
|
|
90
|
+
if (!existsSync(file)) continue;
|
|
91
|
+
const headName = readFileSync(file, "utf8").trim();
|
|
92
|
+
if (headName.startsWith("refs/heads/")) {
|
|
93
|
+
return headName.slice("refs/heads/".length);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return "";
|
|
97
|
+
}
|
|
98
|
+
|
|
79
99
|
function deepMerge(base, override) {
|
|
80
100
|
if (Array.isArray(base) || Array.isArray(override)) return override;
|
|
81
101
|
if (
|
|
@@ -301,7 +321,11 @@ function readState(optional = true) {
|
|
|
301
321
|
}
|
|
302
322
|
|
|
303
323
|
function assertStateBranch(state) {
|
|
304
|
-
|
|
324
|
+
// Mid-rebase HEAD is detached, but the binding must validate against the
|
|
325
|
+
// branch the rebase is rewriting (its head-name) so rebase picks and
|
|
326
|
+
// `git rebase --continue` commits are not wedged (issue #1956). A detached
|
|
327
|
+
// HEAD with NO rebase in progress still fails closed below.
|
|
328
|
+
const branch = currentBranch() || rebaseBranch();
|
|
305
329
|
if (!branch)
|
|
306
330
|
throw new TrackingError(
|
|
307
331
|
"Cannot use a work-item binding from detached HEAD"
|
|
@@ -888,15 +912,52 @@ function validateCommits(commits) {
|
|
|
888
912
|
};
|
|
889
913
|
}
|
|
890
914
|
|
|
915
|
+
/**
|
|
916
|
+
* Fully qualified remote default-branch ref (e.g. refs/remotes/origin/main),
|
|
917
|
+
* or undefined when it cannot be resolved offline. Reads the LOCAL
|
|
918
|
+
* `refs/remotes/<remote>/HEAD` symref only — never the network. Resolution
|
|
919
|
+
* failure means the exclusion is skipped (fail-safe strict, issue #1956).
|
|
920
|
+
* Security: only the remote DEFAULT branch is ever excluded — never
|
|
921
|
+
* `--remotes=<remote>`, whose ref set includes the branch being (force-)pushed
|
|
922
|
+
* and would let a pusher exempt arbitrary commits.
|
|
923
|
+
*/
|
|
924
|
+
function remoteDefaultRef(remote) {
|
|
925
|
+
const symref = run(
|
|
926
|
+
"git",
|
|
927
|
+
["symbolic-ref", "--quiet", `refs/remotes/${remote}/HEAD`],
|
|
928
|
+
{ allowFailure: true }
|
|
929
|
+
);
|
|
930
|
+
if (symref.status !== 0) return undefined;
|
|
931
|
+
const target = symref.stdout.trim();
|
|
932
|
+
if (!target.startsWith(`refs/remotes/${remote}/`)) return undefined;
|
|
933
|
+
const exists = run("git", ["rev-parse", "-q", "--verify", target], {
|
|
934
|
+
allowFailure: true,
|
|
935
|
+
});
|
|
936
|
+
return exists.status === 0 ? target : undefined;
|
|
937
|
+
}
|
|
938
|
+
|
|
891
939
|
function parsePushLines(input, remote) {
|
|
892
940
|
const commits = [];
|
|
941
|
+
// Commits already reachable from the remote default branch are the base's
|
|
942
|
+
// history (a merge-sync brings them along); excluding them keeps validation
|
|
943
|
+
// scoped to branch-authored commits (issue #1956).
|
|
944
|
+
const defaultRef = remoteDefaultRef(remote);
|
|
893
945
|
for (const line of input.trim().split(/\r?\n/).filter(Boolean)) {
|
|
894
946
|
const [, localOid, , remoteOid] = line.trim().split(/\s+/);
|
|
895
947
|
if (!localOid || ZERO_OID.test(localOid)) continue;
|
|
896
948
|
const args =
|
|
897
949
|
remoteOid && !ZERO_OID.test(remoteOid)
|
|
898
|
-
? [
|
|
899
|
-
|
|
950
|
+
? [
|
|
951
|
+
"rev-list",
|
|
952
|
+
`${remoteOid}..${localOid}`,
|
|
953
|
+
...(defaultRef ? ["--not", defaultRef] : []),
|
|
954
|
+
]
|
|
955
|
+
: // New-branch lane: `--remotes=<remote>` is safe HERE because the branch
|
|
956
|
+
// being pushed has no remote-tracking ref yet — the exclusion set can
|
|
957
|
+
// only contain refs that already passed validation on earlier pushes.
|
|
958
|
+
// The existing-branch lane above must NOT use it (its tracking ref is
|
|
959
|
+
// pusher-controlled); it excludes only the remote default branch.
|
|
960
|
+
["rev-list", localOid, "--not", `--remotes=${remote}`];
|
|
900
961
|
commits.push(...git(args).split("\n").filter(Boolean));
|
|
901
962
|
}
|
|
902
963
|
if (commits.length === 0 && input.trim() === "") {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
},
|
|
6
6
|
"enabledPlugins": {
|
|
7
7
|
"lisa@lisa": true,
|
|
8
|
-
"safety-net@cc-marketplace":
|
|
8
|
+
"safety-net@cc-marketplace": false,
|
|
9
9
|
"code-simplifier@claude-plugins-official": true,
|
|
10
10
|
"code-review@claude-plugins-official": true,
|
|
11
11
|
"coderabbit@claude-plugins-official": true,
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
},
|
|
6
6
|
"enabledPlugins": {
|
|
7
7
|
"typescript-lsp@claude-plugins-official": true,
|
|
8
|
-
"safety-net@cc-marketplace":
|
|
8
|
+
"safety-net@cc-marketplace": false,
|
|
9
9
|
"code-simplifier@claude-plugins-official": true,
|
|
10
10
|
"code-review@claude-plugins-official": true,
|
|
11
11
|
"coderabbit@claude-plugins-official": true,
|
|
@@ -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,CA4hEpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,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,CA4hEpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAyvMjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/** Generated by scripts/generate-upstream-evidence-manifest.mjs. Do not edit. */
|
|
3
3
|
export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
4
4
|
"all/copy-contents/gitignore": "06b56376465d5421db55d0b04958bbc79fdbf33b42f0559fe5ef6875ced1160f",
|
|
5
|
-
"all/copy-overwrite/scripts/lisa-work-item.mjs": "
|
|
5
|
+
"all/copy-overwrite/scripts/lisa-work-item.mjs": "e41e9534988ce69a836664437a78f3a3f3dc7ebbe396c86cdab0ea63fb7c19da",
|
|
6
6
|
"all/create-only/.claude/rules/PROJECT_RULES.md": "6e1c7923ad2a15356babc60c97e7f97be728d790af285b6a7cd7d1b4d39cd97f",
|
|
7
7
|
"all/create-only/.lisaignore": "3c9827e7e98daa46510b5357cd6dd9406da1821e64cc46d2eea9f311cd6d06b9",
|
|
8
8
|
"all/create-only/scripts/remote-agent-aws-setup.sh": "7677908a345891810d2104ba8b2fd1a8318bb29c408fb5ce0110d57beef9b556",
|
|
@@ -11,7 +11,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
11
11
|
"all/github-rulesets/base.json": "58b9606f185cdca8b17218829aac333b7d8c08f0f2b4f86d7e360f7be1de4787",
|
|
12
12
|
"all/github-rulesets/prevent-delete.json": "e4fb26390a8bfee34b27be5b369f376a1a9a00b797fd8d3ce51cb71facb826a4",
|
|
13
13
|
"all/github-rulesets/protect-tags.json": "387f824e3ea58a803223e42e08326504a39e6a7a0c650a0bbfdfb4653854b722",
|
|
14
|
-
"all/merge/.claude/settings.json": "
|
|
14
|
+
"all/merge/.claude/settings.json": "1d4a4d33d4a5f26a33560df21f9ad9ba97511c15a1c952dd2fe941679a0f1f9e",
|
|
15
15
|
"cdk/copy-overwrite/.github/workflows/.keep": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
16
16
|
"cdk/copy-overwrite/eslint.cdk.ts": "074fe7a638ed95210339a9215abf75fa52bb10e678f2fd58523ff8a9d32ea4b6",
|
|
17
17
|
"cdk/copy-overwrite/eslint.config.ts": "f1917ade3f1170ac8027110b44499732b9d9d3a2d42f256e37cd09930970298c",
|
|
@@ -29,7 +29,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
29
29
|
"cdk/create-only/vitest.config.local.ts": "476738b351114a0efbcd3ae4ce1cf016307b55ee41ed8e87c35e28e4639d98f5",
|
|
30
30
|
"cdk/create-only/vitest.thresholds.json": "ce04fe30ad6139f734dbc56d92a801c11cfd86a0d9e49c06c1c2d0a137beeffd",
|
|
31
31
|
"cdk/deletions.json": "b1d07e463f52deaa5f9958060de40d369f4f256b898563efb83911abf39a62a5",
|
|
32
|
-
"cdk/merge/.claude/settings.json": "
|
|
32
|
+
"cdk/merge/.claude/settings.json": "6f938fdc9c808ee4dda9d605815788dda384197065aac6793c7549d8811a6224",
|
|
33
33
|
"cdk/merge/.oxlintrc.json": "e74885a33fdb7b5d565e13ebd781a3dd2fd02409a2a059deed851645630a6985",
|
|
34
34
|
"cdk/package-lisa/package.lisa.json": "8ab146a3323f970c3a8aafb8d78d17e8b2c121bf24e2a7d4ba07a75485176869",
|
|
35
35
|
"eslint-plugin-code-organization/README.md": "7943820d0b301041f764d4b33adc3c8afbd5bf08f800989390233e78962a51de",
|
|
@@ -90,7 +90,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
90
90
|
"expo/create-only/tsconfig.local.json": "dad4b4a00c890ce8c30db87ad3f8e92e2273e31c2c2a6436d0ab327b47f72758",
|
|
91
91
|
"expo/deletions.json": "ddf6330d4f5d961c55e908efcc5d71c4c78410525018b096702b9a53906b946e",
|
|
92
92
|
"expo/github-rulesets/playwright.json": "b57ccd12f768a1466a9681528858e59764bd0efedcbcb3a96c2fb40719bbd579",
|
|
93
|
-
"expo/merge/.claude/settings.json": "
|
|
93
|
+
"expo/merge/.claude/settings.json": "e97b33d7ad86b71abba94ab957d725e34c3cafca455e92fba0b29ebabc3b73d1",
|
|
94
94
|
"expo/merge/.oxlintrc.json": "2a0ea2191abd5b377aed4b525a4a97d3eefb1d9e41c845c02ee0daac75df6b1f",
|
|
95
95
|
"expo/package-lisa/package.lisa.json": "bd2a5220b83c55f777c24fccf07f58bb277b526edc31a472232a8f34a8cfedd2",
|
|
96
96
|
"harper-fabric/copy-contents/.prettierignore": "478c782f4c5611187e21584dfd5522e37fc636c5eb03394fea3db45321c6712c",
|
|
@@ -111,7 +111,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
111
111
|
"harper-fabric/create-only/.zap/baseline.conf": "68aae4b1b9b5b7253b5aeb792d72b58f64e5eda1dcf8f3062bd9d77494a5a22f",
|
|
112
112
|
"harper-fabric/create-only/scripts/zap-baseline.sh": "da139276b637080f9877362ce6f9667c1ffd57c9d18ec851999ce4328f309577",
|
|
113
113
|
"harper-fabric/deletions.json": "383e5a6e1f8c77376b7e20f936543418204a1c632212d1fd393962e03cf40c52",
|
|
114
|
-
"harper-fabric/merge/.claude/settings.json": "
|
|
114
|
+
"harper-fabric/merge/.claude/settings.json": "278c48f1af3a6aa23b7f5dcf55aa0d2737baf809942b1d4ef6831cdfc144581a",
|
|
115
115
|
"harper-fabric/merge/.oxlintrc.json": "43bd2a48954e15fbd1fe89b1a4f7b84cf93706d7de7b84ec120d63906bfde31b",
|
|
116
116
|
"harper-fabric/package-lisa/package.lisa.json": "4672b147ff12d0af80516b9c824aa9419b05da1308531d978ea285ae4e3c2b23",
|
|
117
117
|
"nestjs/copy-overwrite/eslint.config.ts": "b44532acdaa1deaab29dcc2171a615242fb26565f538bdb38d8e33dd5a15cd01",
|
|
@@ -154,7 +154,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
154
154
|
"nestjs/create-only/vitest.config.local.ts": "476738b351114a0efbcd3ae4ce1cf016307b55ee41ed8e87c35e28e4639d98f5",
|
|
155
155
|
"nestjs/create-only/vitest.thresholds.json": "ce04fe30ad6139f734dbc56d92a801c11cfd86a0d9e49c06c1c2d0a137beeffd",
|
|
156
156
|
"nestjs/deletions.json": "037a64f96b76670326bc61921f4484e864e02c09786adabbd1cfdf886183cad5",
|
|
157
|
-
"nestjs/merge/.claude/settings.json": "
|
|
157
|
+
"nestjs/merge/.claude/settings.json": "d0ce50361a1f3868d15728646e66b9e1cdb8373688eb22459adbdb176e342aca",
|
|
158
158
|
"nestjs/merge/.oxlintrc.json": "3743a1e2bcfc879f5250f35206f413b10815f34e20b1d0afce67824579813b5d",
|
|
159
159
|
"nestjs/package-lisa/package.lisa.json": "2ef6fdb6751fcbfbb09d834104159111e4efef0938eca2c11e44539805c005e6",
|
|
160
160
|
"npm-package/create-only/.github/workflows/publish-to-npm.yml": "c21af3c31626abfe4dcbfdd42917f7e01753045a1ba6eba87b014e7f8c18db10",
|
|
@@ -183,7 +183,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
183
183
|
"phaser/create-only/tsconfig.local.json": "aec26141fe80709ab19fbfb5dda945e59f8f9d718d5cfcb023ad48f0eead88f5",
|
|
184
184
|
"phaser/create-only/wiki/lisa-wiki.config.json": "d4e92ffad7f4f3a9ebae39f7e4bd2c4f5df21039767558193c562077084b0db6",
|
|
185
185
|
"phaser/deletions.json": "383e5a6e1f8c77376b7e20f936543418204a1c632212d1fd393962e03cf40c52",
|
|
186
|
-
"phaser/merge/.claude/settings.json": "
|
|
186
|
+
"phaser/merge/.claude/settings.json": "296b8d5e3c197cd4526a99454aee1dc7f5ce9a25a729a957f392b71be3e8cfb6",
|
|
187
187
|
"phaser/merge/.oxlintrc.json": "4ac4bca00bef4b32810f3759a914ab2b8148e6fad3e329417a497e36df9e810c",
|
|
188
188
|
"phaser/package-lisa/package.lisa.json": "2e01b1ec402f6804a54402e22d02d63f1aa96d3f698e171885b0fff6eb25b271",
|
|
189
189
|
"plugins/src/base/agents/architecture-specialist.md": "5bbe86bd3a7661021f7c8e9c5396fa4c0f3b8a77606e7be868fb9a0e117d424d",
|
|
@@ -294,7 +294,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
294
294
|
"plugins/src/base/hooks/install-pkgs.sh": "e9a13faba849a277410dde911ab102ee6f88ef915b33571bb1d4eef904172db5",
|
|
295
295
|
"plugins/src/base/hooks/parity-safety-net-heredoc.py": "c5301958ed8ca29b0de7b8521d299cdbc8c1c402df8d8fada6b5f173b6cf5dbe",
|
|
296
296
|
"plugins/src/base/hooks/parity-safety-net.agy.sh": "ce9bd2b4566ad9147e4ace56434cffbbe87edb4ccbb57549ab3fd9f4c671ced4",
|
|
297
|
-
"plugins/src/base/hooks/parity-safety-net.sh": "
|
|
297
|
+
"plugins/src/base/hooks/parity-safety-net.sh": "b83c5043a0f29b2d8851258acfe6906aab7922cd80f486e25220e55f26a8c0a5",
|
|
298
298
|
"plugins/src/base/hooks/setup-jira-cli.sh": "a675f6b17ce7f0d6b9fb7daeba6d2bc59bcb48ef79b034076ea73b2b1e72ee09",
|
|
299
299
|
"plugins/src/base/hooks/shell-write-nudge.sh": "69839af423f8792b1e52c71097316c3264425553031627c0a2f9409a9d5becd0",
|
|
300
300
|
"plugins/src/base/hooks/threshold-ratchet-compare.mjs": "8bc4b379d7057b2fecf9cb35820c39efad0a65df7df49073786f996cc2a74810",
|
|
@@ -426,7 +426,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
426
426
|
"plugins/src/base/skills/lisa-github-write-issue/SKILL.md": "ee54b3d14cc5dd3a68a8c36590102dd02f49334c9493ad52fa8c7f35157073b1",
|
|
427
427
|
"plugins/src/base/skills/lisa-github-write-prd/SKILL.md": "bc919c52e2f42129d41a3f40279d2def99486ec58bed2dab51ca7166b427a947",
|
|
428
428
|
"plugins/src/base/skills/lisa-health/SKILL.md": "dfdb08a863e78bff42671793dcec29cfae0654db18ebf66a4aa77aeb56ddb775",
|
|
429
|
-
"plugins/src/base/skills/lisa-implement/SKILL.md": "
|
|
429
|
+
"plugins/src/base/skills/lisa-implement/SKILL.md": "cb3a0587907321301e6662480af0d333aee4a3e0d29e9bdc851c225be2c220d7",
|
|
430
430
|
"plugins/src/base/skills/lisa-improve-code-complexity/SKILL.md": "24ab5b193b409db6ee6bee981a1c0a48d08991782d7846116ad01658c8bc1ae8",
|
|
431
431
|
"plugins/src/base/skills/lisa-improve-harness/SKILL.md": "bafda5d2f9b86c48cd16bf0015528fdf5891675221d662fdc533aaad66aad669",
|
|
432
432
|
"plugins/src/base/skills/lisa-improve-max-lines-per-function/SKILL.md": "95c875950c9848fdaf520a18b9bbb264e33d7347be10170add768e01d9cd8e52",
|
|
@@ -480,7 +480,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
480
480
|
"plugins/src/base/skills/lisa-parity-code-review/SKILL.md": "5805254747c4ed9081fd514236f06e078be86d41694bf74b480bf7592cd58c1f",
|
|
481
481
|
"plugins/src/base/skills/lisa-parity-code-simplifier/SKILL.md": "c721ae772e73abff633c43d93267066afac188e911a77322fbb102db673849d7",
|
|
482
482
|
"plugins/src/base/skills/lisa-parity-coderabbit/SKILL.md": "ae882837d43741293d1b639c4516331fa6124fa1f5da234a74ecb31c5d7e52cd",
|
|
483
|
-
"plugins/src/base/skills/lisa-parity-safety-net-rules/SKILL.md": "
|
|
483
|
+
"plugins/src/base/skills/lisa-parity-safety-net-rules/SKILL.md": "2515b016f3a1c80163aaf097c3f530e884e59e2070d072a6cb5c7b9d2658c946",
|
|
484
484
|
"plugins/src/base/skills/lisa-parity-sentry-sdk-setup/SKILL.md": "ed52b0273f6b535d26d561c80ae6c0bedb84c67fcf4321f688c05fe3ee3af575",
|
|
485
485
|
"plugins/src/base/skills/lisa-parity-sentry-seer/SKILL.md": "f44216fa7c8f0c3c3371c65ff73bbeadd1717579502a5603f16b3b33291cab7a",
|
|
486
486
|
"plugins/src/base/skills/lisa-parity-skill-creator/SKILL.md": "616e0493f75fe92c18137548d7c86a91a9b04d9844ca76fa3f14156e3e7814e5",
|
|
@@ -909,7 +909,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
909
909
|
"rails/create-only/spec/spec_helper.rb": "4308dcddf2ee1b65986ff206a0feac62c8e3a1cae842b115fd2945b7563ed9cd",
|
|
910
910
|
"rails/deletions.json": "eeadf9a2b1677913199a235091a8d6190477f3e2a5fd598d62cf658cb59a8099",
|
|
911
911
|
"rails/github-rulesets/quality-checks.json": "ea42f2bb938881bc6ec129e7300a2b824313951031d4720f46e944c4dfe1a9da",
|
|
912
|
-
"rails/merge/.claude/settings.json": "
|
|
912
|
+
"rails/merge/.claude/settings.json": "9c49f8c7c453f8749c90def3e22d412c3345c533d24b30dc7745ffa052ad6fa1",
|
|
913
913
|
"scripts/build-plugins.sh": "d26321ea10bc3ed8cf096f900622cb4cf7a37117fabf9730f0fe5c9d949582fc",
|
|
914
914
|
"scripts/check-duplicate-versions.mjs": "84d97e94eb834522848ddce951bb54ae9da1e4be252e2c51fed0c01c4f4d6b72",
|
|
915
915
|
"scripts/check-learnings-budget.ts": "007430c2d6938efcc79ccbfd5717ebe2c7cf66b4de9a21a3e67b8db7f3600349",
|
|
@@ -933,7 +933,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
933
933
|
"scripts/generate-cursor-plugin-artifacts.mjs": "d8806197a723f0c2b50a8155ffc5b6f0abc30c68dc2385cb80b0dd066d061231",
|
|
934
934
|
"scripts/generate-upstream-evidence-manifest.mjs": "3fda910de51aa51def6c7cee276c471cc50cb7cb72478bee5495341d67409a97",
|
|
935
935
|
"scripts/github-status-check.sh": "876914c369c5bd58f4a5f3c41d0c1264c6923f329a644f90640d15b434a0fbd1",
|
|
936
|
-
"scripts/install-claude-plugins.sh": "
|
|
936
|
+
"scripts/install-claude-plugins.sh": "5f4bedb983900dc17f8843f73876fc7c445909eb12792b3330728ff03842f50b",
|
|
937
937
|
"scripts/internal-agy-skill-policy.json": "c2ce87d2eeebfdc9f24d6486425c010cf9289376f8a459f4767ca22d2bf8670d",
|
|
938
938
|
"scripts/internal-codex-skill-policy.json": "d7191650d8a12727549b67df61dbfa61e16cfb9cc31e461cd98d253ceab1612a",
|
|
939
939
|
"scripts/internal-copilot-runtime-probe.json": "06809c5a470ebd0588512ca42776c2079eae46a862b910e4cd7e893ab51c1214",
|
|
@@ -1033,7 +1033,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
1033
1033
|
"typescript/create-only/vitest.thresholds.json": "ce04fe30ad6139f734dbc56d92a801c11cfd86a0d9e49c06c1c2d0a137beeffd",
|
|
1034
1034
|
"typescript/deletions.json": "fe5f44b7a02148eacc429782e948b1c4aee302d1d56524cc16adec5489bbc308",
|
|
1035
1035
|
"typescript/github-rulesets/quality-checks.json": "89b9e09267cdb65865728d0e873de9c1225b8ca796e67f06fa8b72ccf6d4515e",
|
|
1036
|
-
"typescript/merge/.claude/settings.json": "
|
|
1036
|
+
"typescript/merge/.claude/settings.json": "834e6456cae81f45073bbbb08bf731fef043efb30cae2658cb4a59f17e66d165",
|
|
1037
1037
|
"typescript/merge/.oxlintrc.json": "4debc093acfd263eb81ae15894073ebf098513204f45f40b83fb8fa5353fa1f8",
|
|
1038
1038
|
"typescript/package-lisa/package.lisa.json": "7e99286c549c79b1c02c07a4313dcfe5b41b4ebb80a6fbbb8741dd74dc5f454d",
|
|
1039
1039
|
"ui/README.md": "deeb35e767ea5dd2883268835ea3ad21cbad9fa63ec8d8ff5e200f0e2a7d2751",
|
|
@@ -6648,6 +6648,8 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
6648
6648
|
"tests/fixtures/wiki-safety/redaction-source.md": true,
|
|
6649
6649
|
"tests/helpers/__fixtures__/wiki-status-fixture.ts": true,
|
|
6650
6650
|
"tests/helpers/readiness-workflow-fixtures.ts": true,
|
|
6651
|
+
"tests/helpers/safety-net-guard-fixtures.ts": true,
|
|
6652
|
+
"tests/helpers/safety-net-guard-harness.ts": true,
|
|
6651
6653
|
"tests/helpers/test-utils.ts": true,
|
|
6652
6654
|
"tests/helpers/verification-gate-fixtures.ts": true,
|
|
6653
6655
|
"tests/helpers/verification-gate-harness.ts": true,
|
|
@@ -6853,6 +6855,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
6853
6855
|
"tests/unit/hooks/inject-rules.test.ts": true,
|
|
6854
6856
|
"tests/unit/hooks/install-pkgs-worktree-node-modules.test.ts": true,
|
|
6855
6857
|
"tests/unit/hooks/lint-on-edit.test.ts": true,
|
|
6858
|
+
"tests/unit/hooks/parity-safety-net-guards.test.ts": true,
|
|
6856
6859
|
"tests/unit/hooks/parity-safety-net-heredoc.test.ts": true,
|
|
6857
6860
|
"tests/unit/hooks/parity-safety-net.test.ts": true,
|
|
6858
6861
|
"tests/unit/hooks/post-checkout.test.ts": true,
|