@codyswann/lisa 3.6.2 → 3.8.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/dist/cli/doctor-worktree-hygiene.d.ts +40 -0
- package/dist/cli/doctor-worktree-hygiene.d.ts.map +1 -0
- package/dist/cli/doctor-worktree-hygiene.js +123 -0
- package/dist/cli/doctor-worktree-hygiene.js.map +1 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +6 -0
- package/dist/cli/doctor.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +24 -11
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/expo/create-only/.github/required-checks.json +9 -1
- package/nestjs/create-only/.github/required-checks.json +9 -1
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-drive-pr-to-merge/SKILL.md +29 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-pull-request-review/SKILL.md +50 -2
- package/plugins/lisa/rules/eager/falsifiable-checks.md +3 -1
- package/plugins/lisa/rules/reference/derived-branch-plan.md +18 -2
- package/plugins/lisa/rules/reference/falsifiable-checks.md +57 -5
- package/plugins/lisa/scripts/design-source-gate.mjs +11 -2
- package/plugins/lisa/skills/lisa-drive-pr-to-merge/SKILL.md +29 -1
- package/plugins/lisa/skills/lisa-pull-request-review/SKILL.md +50 -2
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/scripts/design-source-gate.mjs +11 -2
- package/plugins/lisa-agy/skills/lisa-drive-pr-to-merge/SKILL.md +29 -1
- package/plugins/lisa-agy/skills/lisa-pull-request-review/SKILL.md +50 -2
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/rules/eager/falsifiable-checks.md +3 -1
- package/plugins/lisa-copilot/rules/reference/derived-branch-plan.md +18 -2
- package/plugins/lisa-copilot/rules/reference/falsifiable-checks.md +57 -5
- package/plugins/lisa-copilot/scripts/design-source-gate.mjs +11 -2
- package/plugins/lisa-copilot/skills/lisa-drive-pr-to-merge/SKILL.md +29 -1
- package/plugins/lisa-copilot/skills/lisa-pull-request-review/SKILL.md +50 -2
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/rules/derived-branch-plan-reference.mdc +18 -2
- package/plugins/lisa-cursor/rules/falsifiable-checks-reference.mdc +57 -5
- package/plugins/lisa-cursor/rules/falsifiable-checks.mdc +3 -1
- package/plugins/lisa-cursor/scripts/design-source-gate.mjs +11 -2
- package/plugins/lisa-cursor/skills/lisa-drive-pr-to-merge/SKILL.md +29 -1
- package/plugins/lisa-cursor/skills/lisa-pull-request-review/SKILL.md +50 -2
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/rules/eager/falsifiable-checks.md +3 -1
- package/plugins/src/base/rules/reference/derived-branch-plan.md +18 -2
- package/plugins/src/base/rules/reference/falsifiable-checks.md +57 -5
- package/plugins/src/base/scripts/design-source-gate.mjs +11 -2
- package/plugins/src/base/skills/lisa-drive-pr-to-merge/SKILL.md +29 -1
- package/plugins/src/base/skills/lisa-pull-request-review/SKILL.md +50 -2
- package/typescript/copy-overwrite/ast-grep/rules/no-missing-fs-extra-namespace-member-js.yml +71 -0
- package/typescript/copy-overwrite/ast-grep/rules/no-missing-fs-extra-namespace-member.yml +90 -0
- package/typescript/copy-overwrite/scripts/check-skipped-required-checks.mjs +402 -5
- package/typescript/create-only/.github/required-checks.json +13 -3
- package/typescript/package-lisa/package.lisa.json +2 -1
|
@@ -9,7 +9,12 @@
|
|
|
9
9
|
"A transcription expires after 90 days, because a ruleset can be edited with no signal in this repository. The shipped `.github/workflows/required-checks-drift.yml` runs `--remote` weekly to catch that; `--remote` reads the ruleset live and so answers even when the cache is untrusted.",
|
|
10
10
|
"Lisa's quality.yml runs the offline arm on every pull request. This seed ships `\"enforcement\": \"warn\"`, which downgrades findings AND the NOT-CHECKED refusal to reports so a fresh install does not go red on arrival. Delete the key once you have transcribed the list — then it blocks.",
|
|
11
11
|
"`skip_jobs` is matched as an exact comma-delimited token and GitHub Actions expression syntax has no string-replace, so write the list with no spaces: `skip_jobs: 'a,b'`, never `skip_jobs: 'a, b'`. A spaced token matches nothing and the job runs — reported as `whitespace_in_skip_token`.",
|
|
12
|
-
"`_example_required_contexts` below is a STARTING POINT FOR TYPING, never read by the guard. Verify every line against your own ruleset before promoting any of it."
|
|
12
|
+
"`_example_required_contexts` below is a STARTING POINT FOR TYPING, never read by the guard. Verify every line against your own ruleset before promoting any of it.",
|
|
13
|
+
"THE FAMILY: required-and-red is loud; required-and-vacuous is not; advisory-and-stale is invisible. All three are one gate reporting satisfied without proving anything. `required_contexts` + `skip_job_declarations` above cover the SKIPPED variant; `evidence_bearing_checks` below covers the VACUOUS one.",
|
|
14
|
+
"VACUOUS, measured (CodySwannGT/lisa#2497): a required `CodeRabbit` context posted `success` with the description `Review rate limited`, having reviewed nothing, on two security-relevant PRs that then merged and shipped. `gh pr checks` prints `pass` for that exactly as it does for a real review — only the DESCRIPTION tells them apart.",
|
|
15
|
+
"Run it per PR: `npm run check:vacuous-required-checks -- --pr=1234` (or `node scripts/check-skipped-required-checks.mjs --pr=1234`). It reads `gh pr checks --json name,state,bucket,description`, which is the only route that carries the description for a legacy commit status like CodeRabbit's.",
|
|
16
|
+
"`evidence_bearing_checks` names the checks whose GREEN is supposed to mean something reviewed the code. Use `{}` to accept the shipped description vocabulary, or add `proof` / `no_work` arrays to extend it — extensions ADD to the defaults, they do not replace them. Undeclared checks are never examined, because most CI jobs ship an empty description and flagging them all would bury the one finding that matters.",
|
|
17
|
+
"This arm REPORTS AND NEVER BLOCKS, in every enforcement mode. A review bot can go hollow because an org-wide SPENDING CAP was hit, and a gate that reddens every PR on a billing state is worse than the one it criticises. What it changes is what you may CLAIM: a PR carrying a `vacuous_required_check` finding has not been shown to be reviewed, so do not record it as reviewed."
|
|
13
18
|
],
|
|
14
19
|
"enforcement": "warn",
|
|
15
20
|
"ruleset": {
|
|
@@ -17,7 +22,9 @@
|
|
|
17
22
|
"ids": [],
|
|
18
23
|
"baseline_fetched_at": ""
|
|
19
24
|
},
|
|
20
|
-
"workflows": [
|
|
25
|
+
"workflows": [
|
|
26
|
+
".github/workflows/ci.yml"
|
|
27
|
+
],
|
|
21
28
|
"exemption_ticket_pattern": "^[A-Z][A-Z0-9]+-\\d+$",
|
|
22
29
|
"required_contexts": [],
|
|
23
30
|
"_example_required_contexts": [
|
|
@@ -29,5 +36,8 @@
|
|
|
29
36
|
"🔍 Quality Checks / 🧪 Run Unit Tests",
|
|
30
37
|
"🔍 Quality Checks / 🧪 Run Integration Tests"
|
|
31
38
|
],
|
|
32
|
-
"skip_job_declarations": {}
|
|
39
|
+
"skip_job_declarations": {},
|
|
40
|
+
"evidence_bearing_checks": {
|
|
41
|
+
"CodeRabbit": {}
|
|
42
|
+
}
|
|
33
43
|
}
|
|
@@ -19,7 +19,8 @@
|
|
|
19
19
|
"prepare": "node -e \"if (process.env.INIT_CWD?.includes('.serverless')) process.exit(0); process.exit(1);\" || husky install || true",
|
|
20
20
|
"nightly:health": "node scripts/check-nightly-e2e-health.mjs",
|
|
21
21
|
"check:skipped-required-checks": "node scripts/check-skipped-required-checks.mjs",
|
|
22
|
-
"check:skipped-required-checks:remote": "node scripts/check-skipped-required-checks.mjs --remote"
|
|
22
|
+
"check:skipped-required-checks:remote": "node scripts/check-skipped-required-checks.mjs --remote",
|
|
23
|
+
"check:vacuous-required-checks": "node scripts/check-skipped-required-checks.mjs"
|
|
23
24
|
},
|
|
24
25
|
"devDependencies": {
|
|
25
26
|
"eslint-plugin-oxlint": "^1.62.0",
|