@codyswann/lisa 4.84.10 → 4.84.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +6 -1
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/package.json +4 -4
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-parity-code-review/SKILL.md +28 -3
- package/plugins/lisa/skills/lisa-parity-code-review/SKILL.md +28 -3
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-parity-code-review/SKILL.md +28 -3
- 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-cdk-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/skills/lisa-parity-code-review/SKILL.md +28 -3
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/skills/lisa-parity-code-review/SKILL.md +28 -3
- package/plugins/lisa-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-devin/skills/lisa-parity-code-review/SKILL.md +28 -3
- 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-expo-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-devin/.devin-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-harper-fabric-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-devin/.devin-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-nestjs-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-devin/.devin-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-openclaw-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-devin/.devin-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-phaser-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-devin/.devin-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-rails-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-devin/.devin-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-typescript-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-devin/.devin-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/lisa-wiki-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/src/base/skills/lisa-parity-code-review/SKILL.md +28 -3
package/package.json
CHANGED
|
@@ -189,7 +189,7 @@
|
|
|
189
189
|
"qs": "^6.16.0"
|
|
190
190
|
},
|
|
191
191
|
"name": "@codyswann/lisa",
|
|
192
|
-
"version": "4.84.
|
|
192
|
+
"version": "4.84.11",
|
|
193
193
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
194
194
|
"main": "dist/index.js",
|
|
195
195
|
"exports": {
|
|
@@ -347,7 +347,7 @@
|
|
|
347
347
|
"test": "tests"
|
|
348
348
|
},
|
|
349
349
|
"types": "./dist/index.d.ts",
|
|
350
|
-
"lisaReleaseCommit": "
|
|
351
|
-
"gitHead": "
|
|
352
|
-
"lisaReleaseTag": "v4.84.
|
|
350
|
+
"lisaReleaseCommit": "ba54daa3c32cc916b58f9c1c0d58333aea3dc8a9",
|
|
351
|
+
"gitHead": "ba54daa3c32cc916b58f9c1c0d58333aea3dc8a9",
|
|
352
|
+
"lisaReleaseTag": "v4.84.11"
|
|
353
353
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
name: lisa-parity-code-review
|
|
3
3
|
description: "Lisa-native code review of the…"
|
|
4
4
|
allowed-tools: ["Read", "Bash", "Grep", "Glob"]
|
|
5
|
+
synced-from: code-review@claude-plugins-official@1.0.1
|
|
5
6
|
---
|
|
6
7
|
Lisa-native code review of the current git diff. Walks every changed hunk and reports correctness bugs, security issues, and obvious defects as severity-ranked findings with file:line references. Vendor-neutral — the cross-agent equivalent of the upstream code-review command, runnable on Codex, agy, Copilot, Cursor, and Claude.
|
|
7
8
|
|
|
@@ -10,7 +11,9 @@ Lisa-native code review of the current git diff. Walks every changed hunk and re
|
|
|
10
11
|
|
|
11
12
|
Review the code that is *about to ship* — the current uncommitted/branch diff — for defects a reviewer would block on. This is a focused **defect hunt**: correctness, security, and obvious mistakes. It is not a style audit and not a refactor pass (use `parity-code-simplifier` for quality-only cleanup).
|
|
12
13
|
|
|
13
|
-
> **
|
|
14
|
+
> **Drift tracking.** Pinned to `code-review@claude-plugins-official@1.0.1`. Upstream published no semver until 1.0.1, so this skill used to carry no pin and was reviewed by hand; it is now tracked by `scripts/plugin-parity-drift.mjs`, which flags the pin as stale when the plugin cache holds a newer upstream version. This is a Lisa-native reimplementation, **not** a port of upstream code.
|
|
15
|
+
>
|
|
16
|
+
> **Reviewed against 1.0.1, partly diverged.** Adopted from upstream 1.0.1: findings print to the terminal only; every candidate finding is validated before it is reported (Step 4); and a high-signal bar governs what is blocking (relaxed to admit an input-dependent defect once its triggering input is shown to be reachable; see Step 4). Deliberately not reimplemented: upstream's `--comment` mode, which posts inline PR comments through `mcp__github_inline_comment__create_inline_comment` (use `lisa-pull-request-review` to act on a pull request), and its four-reviewer subagent pipeline. This skill is one reviewer over the local diff, because the agents it serves (Codex, agy, Copilot, Cursor, Devin) have no common subagent or inline-comment surface. The `synced-from` scalar cannot record that split, so this note does.
|
|
14
17
|
|
|
15
18
|
## Step 1: Establish the diff
|
|
16
19
|
|
|
@@ -48,7 +51,29 @@ For every changed hunk, evaluate against these lenses:
|
|
|
48
51
|
4. **Obvious defects** — Dead code paths, unreachable branches, swallowed errors, resource leaks (unclosed handles/connections), `TODO`/`FIXME` left in shipping code, debug logging left on, broken or missing tests for the new behavior.
|
|
49
52
|
5. **Contract & API** — Breaking changes to public signatures, changed return shapes, altered error semantics callers depend on.
|
|
50
53
|
|
|
51
|
-
## Step 4:
|
|
54
|
+
## Step 4: Validate every candidate before reporting it
|
|
55
|
+
|
|
56
|
+
Step 3 produces candidates, not findings. Re-check each one against the code on its own, as a skeptic whose job is to disprove it:
|
|
57
|
+
|
|
58
|
+
- If it says something is undefined, unreachable, or mistyped, find the definition, the caller, or the type and confirm it.
|
|
59
|
+
- If it cites a project instruction (`AGENTS.md`, `CLAUDE.md`, a rule file), quote the exact rule and confirm the rule applies to that file's path.
|
|
60
|
+
- If it depends on a specific input or state, name that input and confirm the code can actually receive it.
|
|
61
|
+
|
|
62
|
+
Drop every candidate you cannot confirm. A false positive costs the reader more than a missed nit, so when in doubt, leave it out.
|
|
63
|
+
|
|
64
|
+
**High-signal bar.** Only a validated candidate in one of these classes may be **Critical** or **Warning**:
|
|
65
|
+
|
|
66
|
+
- the code will fail to compile, parse, or resolve (syntax or type errors, missing imports, unresolved references);
|
|
67
|
+
- the code produces a wrong result or an exposure (clear logic or security errors) — either for every input, or for a specific triggering input you have named and confirmed the code can actually receive in practice, as in the example under Step 5;
|
|
68
|
+
- the change breaks a project instruction you can quote.
|
|
69
|
+
|
|
70
|
+
Upstream 1.0.1 drops every input-dependent issue. This skill keeps one that you have validated as reachable, because a reachable null dereference or auth bypass is exactly what a reviewer must block. What it still drops is the hypothetical: an input nobody can show the code receiving.
|
|
71
|
+
|
|
72
|
+
Never report: pre-existing issues on lines the change did not touch; things that look wrong but are correct; lint-only issues a linter will catch anyway (a parse, compile, correctness, or security defect stays reportable even when a linter also flags it); style or general-quality concerns that no project instruction requires; a lint or type finding that the code explicitly silences (for example with a lint-ignore comment).
|
|
73
|
+
|
|
74
|
+
A suppression silences only the lint or type finding it names. It never hides a correctness or security defect in that code. A changed `eval(req.body.code)` under `eslint-disable no-eval` is still remote code execution, so report it as Critical.
|
|
75
|
+
|
|
76
|
+
## Step 5: Output — severity-ranked findings
|
|
52
77
|
|
|
53
78
|
Group findings by severity. Within each group, list the most impactful first. Every finding **must** carry a `file:line` reference.
|
|
54
79
|
|
|
@@ -59,7 +84,7 @@ Bugs that break correctness, leak/expose data, or introduce a security hole.
|
|
|
59
84
|
Likely to cause problems later, or a real defect with limited blast radius.
|
|
60
85
|
|
|
61
86
|
### Suggestion (nice to have)
|
|
62
|
-
Minor correctness nits or defensive improvements.
|
|
87
|
+
Minor validated correctness nits or defensive improvements below the high-signal bar. This tier is a Lisa addition — upstream 1.0.1 reports nothing below its bar — so keep it short and omit it when empty.
|
|
63
88
|
|
|
64
89
|
### Finding format
|
|
65
90
|
|
|
@@ -2,13 +2,16 @@
|
|
|
2
2
|
name: lisa-parity-code-review
|
|
3
3
|
description: "Lisa-native code review of the current git diff. Walks every changed hunk and reports correctness bugs, security issues, and obvious defects as severity-ranked findings with file:line references. Vendor-neutral — the cross-agent equivalent of the upstream code-review command, runnable on Codex, agy, Copilot, Cursor, and Claude."
|
|
4
4
|
allowed-tools: ["Read", "Bash", "Grep", "Glob"]
|
|
5
|
+
synced-from: code-review@claude-plugins-official@1.0.1
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# Parity Code Review
|
|
8
9
|
|
|
9
10
|
Review the code that is *about to ship* — the current uncommitted/branch diff — for defects a reviewer would block on. This is a focused **defect hunt**: correctness, security, and obvious mistakes. It is not a style audit and not a refactor pass (use `parity-code-simplifier` for quality-only cleanup).
|
|
10
11
|
|
|
11
|
-
> **
|
|
12
|
+
> **Drift tracking.** Pinned to `code-review@claude-plugins-official@1.0.1`. Upstream published no semver until 1.0.1, so this skill used to carry no pin and was reviewed by hand; it is now tracked by `scripts/plugin-parity-drift.mjs`, which flags the pin as stale when the plugin cache holds a newer upstream version. This is a Lisa-native reimplementation, **not** a port of upstream code.
|
|
13
|
+
>
|
|
14
|
+
> **Reviewed against 1.0.1, partly diverged.** Adopted from upstream 1.0.1: findings print to the terminal only; every candidate finding is validated before it is reported (Step 4); and a high-signal bar governs what is blocking (relaxed to admit an input-dependent defect once its triggering input is shown to be reachable; see Step 4). Deliberately not reimplemented: upstream's `--comment` mode, which posts inline PR comments through `mcp__github_inline_comment__create_inline_comment` (use `lisa-pull-request-review` to act on a pull request), and its four-reviewer subagent pipeline. This skill is one reviewer over the local diff, because the agents it serves (Codex, agy, Copilot, Cursor, Devin) have no common subagent or inline-comment surface. The `synced-from` scalar cannot record that split, so this note does.
|
|
12
15
|
|
|
13
16
|
## Step 1: Establish the diff
|
|
14
17
|
|
|
@@ -46,7 +49,29 @@ For every changed hunk, evaluate against these lenses:
|
|
|
46
49
|
4. **Obvious defects** — Dead code paths, unreachable branches, swallowed errors, resource leaks (unclosed handles/connections), `TODO`/`FIXME` left in shipping code, debug logging left on, broken or missing tests for the new behavior.
|
|
47
50
|
5. **Contract & API** — Breaking changes to public signatures, changed return shapes, altered error semantics callers depend on.
|
|
48
51
|
|
|
49
|
-
## Step 4:
|
|
52
|
+
## Step 4: Validate every candidate before reporting it
|
|
53
|
+
|
|
54
|
+
Step 3 produces candidates, not findings. Re-check each one against the code on its own, as a skeptic whose job is to disprove it:
|
|
55
|
+
|
|
56
|
+
- If it says something is undefined, unreachable, or mistyped, find the definition, the caller, or the type and confirm it.
|
|
57
|
+
- If it cites a project instruction (`AGENTS.md`, `CLAUDE.md`, a rule file), quote the exact rule and confirm the rule applies to that file's path.
|
|
58
|
+
- If it depends on a specific input or state, name that input and confirm the code can actually receive it.
|
|
59
|
+
|
|
60
|
+
Drop every candidate you cannot confirm. A false positive costs the reader more than a missed nit, so when in doubt, leave it out.
|
|
61
|
+
|
|
62
|
+
**High-signal bar.** Only a validated candidate in one of these classes may be **Critical** or **Warning**:
|
|
63
|
+
|
|
64
|
+
- the code will fail to compile, parse, or resolve (syntax or type errors, missing imports, unresolved references);
|
|
65
|
+
- the code produces a wrong result or an exposure (clear logic or security errors) — either for every input, or for a specific triggering input you have named and confirmed the code can actually receive in practice, as in the example under Step 5;
|
|
66
|
+
- the change breaks a project instruction you can quote.
|
|
67
|
+
|
|
68
|
+
Upstream 1.0.1 drops every input-dependent issue. This skill keeps one that you have validated as reachable, because a reachable null dereference or auth bypass is exactly what a reviewer must block. What it still drops is the hypothetical: an input nobody can show the code receiving.
|
|
69
|
+
|
|
70
|
+
Never report: pre-existing issues on lines the change did not touch; things that look wrong but are correct; lint-only issues a linter will catch anyway (a parse, compile, correctness, or security defect stays reportable even when a linter also flags it); style or general-quality concerns that no project instruction requires; a lint or type finding that the code explicitly silences (for example with a lint-ignore comment).
|
|
71
|
+
|
|
72
|
+
A suppression silences only the lint or type finding it names. It never hides a correctness or security defect in that code. A changed `eval(req.body.code)` under `eslint-disable no-eval` is still remote code execution, so report it as Critical.
|
|
73
|
+
|
|
74
|
+
## Step 5: Output — severity-ranked findings
|
|
50
75
|
|
|
51
76
|
Group findings by severity. Within each group, list the most impactful first. Every finding **must** carry a `file:line` reference.
|
|
52
77
|
|
|
@@ -57,7 +82,7 @@ Bugs that break correctness, leak/expose data, or introduce a security hole.
|
|
|
57
82
|
Likely to cause problems later, or a real defect with limited blast radius.
|
|
58
83
|
|
|
59
84
|
### Suggestion (nice to have)
|
|
60
|
-
Minor correctness nits or defensive improvements.
|
|
85
|
+
Minor validated correctness nits or defensive improvements below the high-signal bar. This tier is a Lisa addition — upstream 1.0.1 reports nothing below its bar — so keep it short and omit it when empty.
|
|
61
86
|
|
|
62
87
|
### Finding format
|
|
63
88
|
|
|
@@ -2,13 +2,16 @@
|
|
|
2
2
|
name: lisa-parity-code-review
|
|
3
3
|
description: "Lisa-native code review of the current git diff. Walks every changed hunk and reports correctness bugs, security issues, and obvious defects as severity-ranked findings with file:line references. Vendor-neutral — the cross-agent equivalent of the upstream code-review command, runnable on Codex, agy, Copilot, Cursor, and Claude."
|
|
4
4
|
allowed-tools: ["Read", "Bash", "Grep", "Glob"]
|
|
5
|
+
synced-from: code-review@claude-plugins-official@1.0.1
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# Parity Code Review
|
|
8
9
|
|
|
9
10
|
Review the code that is *about to ship* — the current uncommitted/branch diff — for defects a reviewer would block on. This is a focused **defect hunt**: correctness, security, and obvious mistakes. It is not a style audit and not a refactor pass (use `parity-code-simplifier` for quality-only cleanup).
|
|
10
11
|
|
|
11
|
-
> **
|
|
12
|
+
> **Drift tracking.** Pinned to `code-review@claude-plugins-official@1.0.1`. Upstream published no semver until 1.0.1, so this skill used to carry no pin and was reviewed by hand; it is now tracked by `scripts/plugin-parity-drift.mjs`, which flags the pin as stale when the plugin cache holds a newer upstream version. This is a Lisa-native reimplementation, **not** a port of upstream code.
|
|
13
|
+
>
|
|
14
|
+
> **Reviewed against 1.0.1, partly diverged.** Adopted from upstream 1.0.1: findings print to the terminal only; every candidate finding is validated before it is reported (Step 4); and a high-signal bar governs what is blocking (relaxed to admit an input-dependent defect once its triggering input is shown to be reachable; see Step 4). Deliberately not reimplemented: upstream's `--comment` mode, which posts inline PR comments through `mcp__github_inline_comment__create_inline_comment` (use `lisa-pull-request-review` to act on a pull request), and its four-reviewer subagent pipeline. This skill is one reviewer over the local diff, because the agents it serves (Codex, agy, Copilot, Cursor, Devin) have no common subagent or inline-comment surface. The `synced-from` scalar cannot record that split, so this note does.
|
|
12
15
|
|
|
13
16
|
## Step 1: Establish the diff
|
|
14
17
|
|
|
@@ -46,7 +49,29 @@ For every changed hunk, evaluate against these lenses:
|
|
|
46
49
|
4. **Obvious defects** — Dead code paths, unreachable branches, swallowed errors, resource leaks (unclosed handles/connections), `TODO`/`FIXME` left in shipping code, debug logging left on, broken or missing tests for the new behavior.
|
|
47
50
|
5. **Contract & API** — Breaking changes to public signatures, changed return shapes, altered error semantics callers depend on.
|
|
48
51
|
|
|
49
|
-
## Step 4:
|
|
52
|
+
## Step 4: Validate every candidate before reporting it
|
|
53
|
+
|
|
54
|
+
Step 3 produces candidates, not findings. Re-check each one against the code on its own, as a skeptic whose job is to disprove it:
|
|
55
|
+
|
|
56
|
+
- If it says something is undefined, unreachable, or mistyped, find the definition, the caller, or the type and confirm it.
|
|
57
|
+
- If it cites a project instruction (`AGENTS.md`, `CLAUDE.md`, a rule file), quote the exact rule and confirm the rule applies to that file's path.
|
|
58
|
+
- If it depends on a specific input or state, name that input and confirm the code can actually receive it.
|
|
59
|
+
|
|
60
|
+
Drop every candidate you cannot confirm. A false positive costs the reader more than a missed nit, so when in doubt, leave it out.
|
|
61
|
+
|
|
62
|
+
**High-signal bar.** Only a validated candidate in one of these classes may be **Critical** or **Warning**:
|
|
63
|
+
|
|
64
|
+
- the code will fail to compile, parse, or resolve (syntax or type errors, missing imports, unresolved references);
|
|
65
|
+
- the code produces a wrong result or an exposure (clear logic or security errors) — either for every input, or for a specific triggering input you have named and confirmed the code can actually receive in practice, as in the example under Step 5;
|
|
66
|
+
- the change breaks a project instruction you can quote.
|
|
67
|
+
|
|
68
|
+
Upstream 1.0.1 drops every input-dependent issue. This skill keeps one that you have validated as reachable, because a reachable null dereference or auth bypass is exactly what a reviewer must block. What it still drops is the hypothetical: an input nobody can show the code receiving.
|
|
69
|
+
|
|
70
|
+
Never report: pre-existing issues on lines the change did not touch; things that look wrong but are correct; lint-only issues a linter will catch anyway (a parse, compile, correctness, or security defect stays reportable even when a linter also flags it); style or general-quality concerns that no project instruction requires; a lint or type finding that the code explicitly silences (for example with a lint-ignore comment).
|
|
71
|
+
|
|
72
|
+
A suppression silences only the lint or type finding it names. It never hides a correctness or security defect in that code. A changed `eval(req.body.code)` under `eslint-disable no-eval` is still remote code execution, so report it as Critical.
|
|
73
|
+
|
|
74
|
+
## Step 5: Output — severity-ranked findings
|
|
50
75
|
|
|
51
76
|
Group findings by severity. Within each group, list the most impactful first. Every finding **must** carry a `file:line` reference.
|
|
52
77
|
|
|
@@ -57,7 +82,7 @@ Bugs that break correctness, leak/expose data, or introduce a security hole.
|
|
|
57
82
|
Likely to cause problems later, or a real defect with limited blast radius.
|
|
58
83
|
|
|
59
84
|
### Suggestion (nice to have)
|
|
60
|
-
Minor correctness nits or defensive improvements.
|
|
85
|
+
Minor validated correctness nits or defensive improvements below the high-signal bar. This tier is a Lisa addition — upstream 1.0.1 reports nothing below its bar — so keep it short and omit it when empty.
|
|
61
86
|
|
|
62
87
|
### Finding format
|
|
63
88
|
|
|
@@ -2,13 +2,16 @@
|
|
|
2
2
|
name: lisa-parity-code-review
|
|
3
3
|
description: "Lisa-native code review of the current git diff. Walks every changed hunk and reports correctness bugs, security issues, and obvious defects as severity-ranked findings with file:line references. Vendor-neutral — the cross-agent equivalent of the upstream code-review command, runnable on Codex, agy, Copilot, Cursor, and Claude."
|
|
4
4
|
allowed-tools: ["Read", "Bash", "Grep", "Glob"]
|
|
5
|
+
synced-from: code-review@claude-plugins-official@1.0.1
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# Parity Code Review
|
|
8
9
|
|
|
9
10
|
Review the code that is *about to ship* — the current uncommitted/branch diff — for defects a reviewer would block on. This is a focused **defect hunt**: correctness, security, and obvious mistakes. It is not a style audit and not a refactor pass (use `parity-code-simplifier` for quality-only cleanup).
|
|
10
11
|
|
|
11
|
-
> **
|
|
12
|
+
> **Drift tracking.** Pinned to `code-review@claude-plugins-official@1.0.1`. Upstream published no semver until 1.0.1, so this skill used to carry no pin and was reviewed by hand; it is now tracked by `scripts/plugin-parity-drift.mjs`, which flags the pin as stale when the plugin cache holds a newer upstream version. This is a Lisa-native reimplementation, **not** a port of upstream code.
|
|
13
|
+
>
|
|
14
|
+
> **Reviewed against 1.0.1, partly diverged.** Adopted from upstream 1.0.1: findings print to the terminal only; every candidate finding is validated before it is reported (Step 4); and a high-signal bar governs what is blocking (relaxed to admit an input-dependent defect once its triggering input is shown to be reachable; see Step 4). Deliberately not reimplemented: upstream's `--comment` mode, which posts inline PR comments through `mcp__github_inline_comment__create_inline_comment` (use `lisa-pull-request-review` to act on a pull request), and its four-reviewer subagent pipeline. This skill is one reviewer over the local diff, because the agents it serves (Codex, agy, Copilot, Cursor, Devin) have no common subagent or inline-comment surface. The `synced-from` scalar cannot record that split, so this note does.
|
|
12
15
|
|
|
13
16
|
## Step 1: Establish the diff
|
|
14
17
|
|
|
@@ -46,7 +49,29 @@ For every changed hunk, evaluate against these lenses:
|
|
|
46
49
|
4. **Obvious defects** — Dead code paths, unreachable branches, swallowed errors, resource leaks (unclosed handles/connections), `TODO`/`FIXME` left in shipping code, debug logging left on, broken or missing tests for the new behavior.
|
|
47
50
|
5. **Contract & API** — Breaking changes to public signatures, changed return shapes, altered error semantics callers depend on.
|
|
48
51
|
|
|
49
|
-
## Step 4:
|
|
52
|
+
## Step 4: Validate every candidate before reporting it
|
|
53
|
+
|
|
54
|
+
Step 3 produces candidates, not findings. Re-check each one against the code on its own, as a skeptic whose job is to disprove it:
|
|
55
|
+
|
|
56
|
+
- If it says something is undefined, unreachable, or mistyped, find the definition, the caller, or the type and confirm it.
|
|
57
|
+
- If it cites a project instruction (`AGENTS.md`, `CLAUDE.md`, a rule file), quote the exact rule and confirm the rule applies to that file's path.
|
|
58
|
+
- If it depends on a specific input or state, name that input and confirm the code can actually receive it.
|
|
59
|
+
|
|
60
|
+
Drop every candidate you cannot confirm. A false positive costs the reader more than a missed nit, so when in doubt, leave it out.
|
|
61
|
+
|
|
62
|
+
**High-signal bar.** Only a validated candidate in one of these classes may be **Critical** or **Warning**:
|
|
63
|
+
|
|
64
|
+
- the code will fail to compile, parse, or resolve (syntax or type errors, missing imports, unresolved references);
|
|
65
|
+
- the code produces a wrong result or an exposure (clear logic or security errors) — either for every input, or for a specific triggering input you have named and confirmed the code can actually receive in practice, as in the example under Step 5;
|
|
66
|
+
- the change breaks a project instruction you can quote.
|
|
67
|
+
|
|
68
|
+
Upstream 1.0.1 drops every input-dependent issue. This skill keeps one that you have validated as reachable, because a reachable null dereference or auth bypass is exactly what a reviewer must block. What it still drops is the hypothetical: an input nobody can show the code receiving.
|
|
69
|
+
|
|
70
|
+
Never report: pre-existing issues on lines the change did not touch; things that look wrong but are correct; lint-only issues a linter will catch anyway (a parse, compile, correctness, or security defect stays reportable even when a linter also flags it); style or general-quality concerns that no project instruction requires; a lint or type finding that the code explicitly silences (for example with a lint-ignore comment).
|
|
71
|
+
|
|
72
|
+
A suppression silences only the lint or type finding it names. It never hides a correctness or security defect in that code. A changed `eval(req.body.code)` under `eslint-disable no-eval` is still remote code execution, so report it as Critical.
|
|
73
|
+
|
|
74
|
+
## Step 5: Output — severity-ranked findings
|
|
50
75
|
|
|
51
76
|
Group findings by severity. Within each group, list the most impactful first. Every finding **must** carry a `file:line` reference.
|
|
52
77
|
|
|
@@ -57,7 +82,7 @@ Bugs that break correctness, leak/expose data, or introduce a security hole.
|
|
|
57
82
|
Likely to cause problems later, or a real defect with limited blast radius.
|
|
58
83
|
|
|
59
84
|
### Suggestion (nice to have)
|
|
60
|
-
Minor correctness nits or defensive improvements.
|
|
85
|
+
Minor validated correctness nits or defensive improvements below the high-signal bar. This tier is a Lisa addition — upstream 1.0.1 reports nothing below its bar — so keep it short and omit it when empty.
|
|
61
86
|
|
|
62
87
|
### Finding format
|
|
63
88
|
|
|
@@ -2,13 +2,16 @@
|
|
|
2
2
|
name: lisa-parity-code-review
|
|
3
3
|
description: "Lisa-native code review of the current git diff. Walks every changed hunk and reports correctness bugs, security issues, and obvious defects as severity-ranked findings with file:line references. Vendor-neutral — the cross-agent equivalent of the upstream code-review command, runnable on Codex, agy, Copilot, Cursor, and Claude."
|
|
4
4
|
allowed-tools: ["Read", "Bash", "Grep", "Glob"]
|
|
5
|
+
synced-from: code-review@claude-plugins-official@1.0.1
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# Parity Code Review
|
|
8
9
|
|
|
9
10
|
Review the code that is *about to ship* — the current uncommitted/branch diff — for defects a reviewer would block on. This is a focused **defect hunt**: correctness, security, and obvious mistakes. It is not a style audit and not a refactor pass (use `parity-code-simplifier` for quality-only cleanup).
|
|
10
11
|
|
|
11
|
-
> **
|
|
12
|
+
> **Drift tracking.** Pinned to `code-review@claude-plugins-official@1.0.1`. Upstream published no semver until 1.0.1, so this skill used to carry no pin and was reviewed by hand; it is now tracked by `scripts/plugin-parity-drift.mjs`, which flags the pin as stale when the plugin cache holds a newer upstream version. This is a Lisa-native reimplementation, **not** a port of upstream code.
|
|
13
|
+
>
|
|
14
|
+
> **Reviewed against 1.0.1, partly diverged.** Adopted from upstream 1.0.1: findings print to the terminal only; every candidate finding is validated before it is reported (Step 4); and a high-signal bar governs what is blocking (relaxed to admit an input-dependent defect once its triggering input is shown to be reachable; see Step 4). Deliberately not reimplemented: upstream's `--comment` mode, which posts inline PR comments through `mcp__github_inline_comment__create_inline_comment` (use `lisa-pull-request-review` to act on a pull request), and its four-reviewer subagent pipeline. This skill is one reviewer over the local diff, because the agents it serves (Codex, agy, Copilot, Cursor, Devin) have no common subagent or inline-comment surface. The `synced-from` scalar cannot record that split, so this note does.
|
|
12
15
|
|
|
13
16
|
## Step 1: Establish the diff
|
|
14
17
|
|
|
@@ -46,7 +49,29 @@ For every changed hunk, evaluate against these lenses:
|
|
|
46
49
|
4. **Obvious defects** — Dead code paths, unreachable branches, swallowed errors, resource leaks (unclosed handles/connections), `TODO`/`FIXME` left in shipping code, debug logging left on, broken or missing tests for the new behavior.
|
|
47
50
|
5. **Contract & API** — Breaking changes to public signatures, changed return shapes, altered error semantics callers depend on.
|
|
48
51
|
|
|
49
|
-
## Step 4:
|
|
52
|
+
## Step 4: Validate every candidate before reporting it
|
|
53
|
+
|
|
54
|
+
Step 3 produces candidates, not findings. Re-check each one against the code on its own, as a skeptic whose job is to disprove it:
|
|
55
|
+
|
|
56
|
+
- If it says something is undefined, unreachable, or mistyped, find the definition, the caller, or the type and confirm it.
|
|
57
|
+
- If it cites a project instruction (`AGENTS.md`, `CLAUDE.md`, a rule file), quote the exact rule and confirm the rule applies to that file's path.
|
|
58
|
+
- If it depends on a specific input or state, name that input and confirm the code can actually receive it.
|
|
59
|
+
|
|
60
|
+
Drop every candidate you cannot confirm. A false positive costs the reader more than a missed nit, so when in doubt, leave it out.
|
|
61
|
+
|
|
62
|
+
**High-signal bar.** Only a validated candidate in one of these classes may be **Critical** or **Warning**:
|
|
63
|
+
|
|
64
|
+
- the code will fail to compile, parse, or resolve (syntax or type errors, missing imports, unresolved references);
|
|
65
|
+
- the code produces a wrong result or an exposure (clear logic or security errors) — either for every input, or for a specific triggering input you have named and confirmed the code can actually receive in practice, as in the example under Step 5;
|
|
66
|
+
- the change breaks a project instruction you can quote.
|
|
67
|
+
|
|
68
|
+
Upstream 1.0.1 drops every input-dependent issue. This skill keeps one that you have validated as reachable, because a reachable null dereference or auth bypass is exactly what a reviewer must block. What it still drops is the hypothetical: an input nobody can show the code receiving.
|
|
69
|
+
|
|
70
|
+
Never report: pre-existing issues on lines the change did not touch; things that look wrong but are correct; lint-only issues a linter will catch anyway (a parse, compile, correctness, or security defect stays reportable even when a linter also flags it); style or general-quality concerns that no project instruction requires; a lint or type finding that the code explicitly silences (for example with a lint-ignore comment).
|
|
71
|
+
|
|
72
|
+
A suppression silences only the lint or type finding it names. It never hides a correctness or security defect in that code. A changed `eval(req.body.code)` under `eslint-disable no-eval` is still remote code execution, so report it as Critical.
|
|
73
|
+
|
|
74
|
+
## Step 5: Output — severity-ranked findings
|
|
50
75
|
|
|
51
76
|
Group findings by severity. Within each group, list the most impactful first. Every finding **must** carry a `file:line` reference.
|
|
52
77
|
|
|
@@ -57,7 +82,7 @@ Bugs that break correctness, leak/expose data, or introduce a security hole.
|
|
|
57
82
|
Likely to cause problems later, or a real defect with limited blast radius.
|
|
58
83
|
|
|
59
84
|
### Suggestion (nice to have)
|
|
60
|
-
Minor correctness nits or defensive improvements.
|
|
85
|
+
Minor validated correctness nits or defensive improvements below the high-signal bar. This tier is a Lisa addition — upstream 1.0.1 reports nothing below its bar — so keep it short and omit it when empty.
|
|
61
86
|
|
|
62
87
|
### Finding format
|
|
63
88
|
|
|
@@ -2,13 +2,16 @@
|
|
|
2
2
|
name: lisa-parity-code-review
|
|
3
3
|
description: "Lisa-native code review of the current git diff. Walks every changed hunk and reports correctness bugs, security issues, and obvious defects as severity-ranked findings with file:line references. Vendor-neutral — the cross-agent equivalent of the upstream code-review command, runnable on Codex, agy, Copilot, Cursor, and Claude."
|
|
4
4
|
allowed-tools: ["Read", "Bash", "Grep", "Glob"]
|
|
5
|
+
synced-from: code-review@claude-plugins-official@1.0.1
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# Parity Code Review
|
|
8
9
|
|
|
9
10
|
Review the code that is *about to ship* — the current uncommitted/branch diff — for defects a reviewer would block on. This is a focused **defect hunt**: correctness, security, and obvious mistakes. It is not a style audit and not a refactor pass (use `parity-code-simplifier` for quality-only cleanup).
|
|
10
11
|
|
|
11
|
-
> **
|
|
12
|
+
> **Drift tracking.** Pinned to `code-review@claude-plugins-official@1.0.1`. Upstream published no semver until 1.0.1, so this skill used to carry no pin and was reviewed by hand; it is now tracked by `scripts/plugin-parity-drift.mjs`, which flags the pin as stale when the plugin cache holds a newer upstream version. This is a Lisa-native reimplementation, **not** a port of upstream code.
|
|
13
|
+
>
|
|
14
|
+
> **Reviewed against 1.0.1, partly diverged.** Adopted from upstream 1.0.1: findings print to the terminal only; every candidate finding is validated before it is reported (Step 4); and a high-signal bar governs what is blocking (relaxed to admit an input-dependent defect once its triggering input is shown to be reachable; see Step 4). Deliberately not reimplemented: upstream's `--comment` mode, which posts inline PR comments through `mcp__github_inline_comment__create_inline_comment` (use `lisa-pull-request-review` to act on a pull request), and its four-reviewer subagent pipeline. This skill is one reviewer over the local diff, because the agents it serves (Codex, agy, Copilot, Cursor, Devin) have no common subagent or inline-comment surface. The `synced-from` scalar cannot record that split, so this note does.
|
|
12
15
|
|
|
13
16
|
## Step 1: Establish the diff
|
|
14
17
|
|
|
@@ -46,7 +49,29 @@ For every changed hunk, evaluate against these lenses:
|
|
|
46
49
|
4. **Obvious defects** — Dead code paths, unreachable branches, swallowed errors, resource leaks (unclosed handles/connections), `TODO`/`FIXME` left in shipping code, debug logging left on, broken or missing tests for the new behavior.
|
|
47
50
|
5. **Contract & API** — Breaking changes to public signatures, changed return shapes, altered error semantics callers depend on.
|
|
48
51
|
|
|
49
|
-
## Step 4:
|
|
52
|
+
## Step 4: Validate every candidate before reporting it
|
|
53
|
+
|
|
54
|
+
Step 3 produces candidates, not findings. Re-check each one against the code on its own, as a skeptic whose job is to disprove it:
|
|
55
|
+
|
|
56
|
+
- If it says something is undefined, unreachable, or mistyped, find the definition, the caller, or the type and confirm it.
|
|
57
|
+
- If it cites a project instruction (`AGENTS.md`, `CLAUDE.md`, a rule file), quote the exact rule and confirm the rule applies to that file's path.
|
|
58
|
+
- If it depends on a specific input or state, name that input and confirm the code can actually receive it.
|
|
59
|
+
|
|
60
|
+
Drop every candidate you cannot confirm. A false positive costs the reader more than a missed nit, so when in doubt, leave it out.
|
|
61
|
+
|
|
62
|
+
**High-signal bar.** Only a validated candidate in one of these classes may be **Critical** or **Warning**:
|
|
63
|
+
|
|
64
|
+
- the code will fail to compile, parse, or resolve (syntax or type errors, missing imports, unresolved references);
|
|
65
|
+
- the code produces a wrong result or an exposure (clear logic or security errors) — either for every input, or for a specific triggering input you have named and confirmed the code can actually receive in practice, as in the example under Step 5;
|
|
66
|
+
- the change breaks a project instruction you can quote.
|
|
67
|
+
|
|
68
|
+
Upstream 1.0.1 drops every input-dependent issue. This skill keeps one that you have validated as reachable, because a reachable null dereference or auth bypass is exactly what a reviewer must block. What it still drops is the hypothetical: an input nobody can show the code receiving.
|
|
69
|
+
|
|
70
|
+
Never report: pre-existing issues on lines the change did not touch; things that look wrong but are correct; lint-only issues a linter will catch anyway (a parse, compile, correctness, or security defect stays reportable even when a linter also flags it); style or general-quality concerns that no project instruction requires; a lint or type finding that the code explicitly silences (for example with a lint-ignore comment).
|
|
71
|
+
|
|
72
|
+
A suppression silences only the lint or type finding it names. It never hides a correctness or security defect in that code. A changed `eval(req.body.code)` under `eslint-disable no-eval` is still remote code execution, so report it as Critical.
|
|
73
|
+
|
|
74
|
+
## Step 5: Output — severity-ranked findings
|
|
50
75
|
|
|
51
76
|
Group findings by severity. Within each group, list the most impactful first. Every finding **must** carry a `file:line` reference.
|
|
52
77
|
|
|
@@ -57,7 +82,7 @@ Bugs that break correctness, leak/expose data, or introduce a security hole.
|
|
|
57
82
|
Likely to cause problems later, or a real defect with limited blast radius.
|
|
58
83
|
|
|
59
84
|
### Suggestion (nice to have)
|
|
60
|
-
Minor correctness nits or defensive improvements.
|
|
85
|
+
Minor validated correctness nits or defensive improvements below the high-signal bar. This tier is a Lisa addition — upstream 1.0.1 reports nothing below its bar — so keep it short and omit it when empty.
|
|
61
86
|
|
|
62
87
|
### Finding format
|
|
63
88
|
|