@codyswann/lisa 1.11.0 โ 1.11.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.
- package/cdk/copy-overwrite/knip.json +2 -1
- package/package.json +1 -1
- package/typescript/copy-contents/.husky/pre-push +13 -0
- package/typescript/copy-overwrite/.github/workflows/quality.yml +19 -64
- package/typescript/copy-overwrite/knip.json +2 -1
- package/all/copy-overwrite/.claude/hooks/pre-push.sh +0 -41
- package/cdk/tagged-merge/bin/infrastructure.js +0 -16
package/package.json
CHANGED
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
},
|
|
75
75
|
"resolutions": {},
|
|
76
76
|
"name": "@codyswann/lisa",
|
|
77
|
-
"version": "1.11.
|
|
77
|
+
"version": "1.11.2",
|
|
78
78
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
79
79
|
"main": "dist/index.js",
|
|
80
80
|
"bin": {
|
|
@@ -86,6 +86,19 @@ elif [ "$PACKAGE_MANAGER" = "bun" ]; then
|
|
|
86
86
|
echo "โ
No high or critical vulnerabilities found in production dependencies"
|
|
87
87
|
fi
|
|
88
88
|
|
|
89
|
+
# Run slow lint rules - only if script exists
|
|
90
|
+
if jq -e '.scripts["lint:slow"]' package.json >/dev/null 2>&1; then
|
|
91
|
+
echo "๐ข Running slow lint rules..."
|
|
92
|
+
$RUNNER lint:slow
|
|
93
|
+
if [ $? -ne 0 ]; then
|
|
94
|
+
echo "โ Slow lint rules failed. Please fix linting issues before pushing."
|
|
95
|
+
exit 1
|
|
96
|
+
fi
|
|
97
|
+
echo "โ
Slow lint rules passed"
|
|
98
|
+
else
|
|
99
|
+
echo "โน๏ธ Skipping slow lint rules (lint:slow not configured)"
|
|
100
|
+
fi
|
|
101
|
+
|
|
89
102
|
# Run dead code detection (knip) - only if script exists
|
|
90
103
|
if jq -e '.scripts.knip' package.json >/dev/null 2>&1; then
|
|
91
104
|
echo "๐๏ธ Running dead code detection (knip)..."
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
# with:
|
|
30
30
|
# node_version: '22.21.1'
|
|
31
31
|
# package_manager: 'npm'
|
|
32
|
-
#
|
|
32
|
+
# skip_jobs: 'npm_security_scan,sonarcloud,snyk'
|
|
33
33
|
# secrets:
|
|
34
34
|
# SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} # For SonarCloud SAST
|
|
35
35
|
# SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} # For Snyk dependency scanning
|
|
@@ -53,51 +53,6 @@ on:
|
|
|
53
53
|
required: false
|
|
54
54
|
default: 'npm'
|
|
55
55
|
type: string
|
|
56
|
-
skip_lint:
|
|
57
|
-
description: 'Skip the lint job'
|
|
58
|
-
required: false
|
|
59
|
-
default: false
|
|
60
|
-
type: boolean
|
|
61
|
-
skip_typecheck:
|
|
62
|
-
description: 'Skip the typecheck job'
|
|
63
|
-
required: false
|
|
64
|
-
default: false
|
|
65
|
-
type: boolean
|
|
66
|
-
skip_test:
|
|
67
|
-
description: 'Skip the test job'
|
|
68
|
-
required: false
|
|
69
|
-
default: false
|
|
70
|
-
type: boolean
|
|
71
|
-
skip_format:
|
|
72
|
-
description: 'Skip the format check job'
|
|
73
|
-
required: false
|
|
74
|
-
default: false
|
|
75
|
-
type: boolean
|
|
76
|
-
skip_build:
|
|
77
|
-
description: 'Skip the build job'
|
|
78
|
-
required: false
|
|
79
|
-
default: false
|
|
80
|
-
type: boolean
|
|
81
|
-
skip_security:
|
|
82
|
-
description: 'Skip the security scan job'
|
|
83
|
-
required: false
|
|
84
|
-
default: false
|
|
85
|
-
type: boolean
|
|
86
|
-
skip_dead_code:
|
|
87
|
-
description: 'Skip the dead code detection job (knip)'
|
|
88
|
-
required: false
|
|
89
|
-
default: false
|
|
90
|
-
type: boolean
|
|
91
|
-
skip_sg_scan:
|
|
92
|
-
description: 'Skip the ast-grep scan job'
|
|
93
|
-
required: false
|
|
94
|
-
default: false
|
|
95
|
-
type: boolean
|
|
96
|
-
skip_lint_slow:
|
|
97
|
-
description: 'Skip the slow lint rules job'
|
|
98
|
-
required: false
|
|
99
|
-
default: false
|
|
100
|
-
type: boolean
|
|
101
56
|
skip_jobs:
|
|
102
57
|
description: 'Jobs to skip (comma-separated: lint,lint_slow,typecheck,test,test:unit,test:integration,test:e2e,maestro_e2e,playwright_e2e,format,build,dead_code,sg_scan,npm_security_scan,github_issue)'
|
|
103
58
|
required: false
|
|
@@ -261,7 +216,7 @@ jobs:
|
|
|
261
216
|
name: ๐งน Lint
|
|
262
217
|
runs-on: ubuntu-latest
|
|
263
218
|
timeout-minutes: 15
|
|
264
|
-
if: ${{ !
|
|
219
|
+
if: ${{ !contains(inputs.skip_jobs, 'lint') }}
|
|
265
220
|
|
|
266
221
|
steps:
|
|
267
222
|
- name: ๐ฅ Checkout repository
|
|
@@ -299,7 +254,7 @@ jobs:
|
|
|
299
254
|
name: ๐ข Slow Lint Rules
|
|
300
255
|
runs-on: ubuntu-latest
|
|
301
256
|
timeout-minutes: 20
|
|
302
|
-
if: ${{ !
|
|
257
|
+
if: ${{ !contains(inputs.skip_jobs, 'lint_slow') }}
|
|
303
258
|
|
|
304
259
|
steps:
|
|
305
260
|
- name: ๐ฅ Checkout repository
|
|
@@ -338,7 +293,7 @@ jobs:
|
|
|
338
293
|
name: ๐ Type Check
|
|
339
294
|
runs-on: ubuntu-latest
|
|
340
295
|
timeout-minutes: 15
|
|
341
|
-
if: ${{ !
|
|
296
|
+
if: ${{ !contains(inputs.skip_jobs, 'typecheck') }}
|
|
342
297
|
|
|
343
298
|
steps:
|
|
344
299
|
- name: ๐ฅ Checkout repository
|
|
@@ -377,7 +332,7 @@ jobs:
|
|
|
377
332
|
name: ๐งช Run Tests
|
|
378
333
|
runs-on: ubuntu-latest
|
|
379
334
|
timeout-minutes: 20
|
|
380
|
-
if: ${{ !
|
|
335
|
+
if: ${{ !contains(inputs.skip_jobs, 'test') }}
|
|
381
336
|
|
|
382
337
|
steps:
|
|
383
338
|
- name: ๐ฅ Checkout repository
|
|
@@ -421,7 +376,7 @@ jobs:
|
|
|
421
376
|
name: ๐งช Run Unit Tests
|
|
422
377
|
runs-on: ubuntu-latest
|
|
423
378
|
timeout-minutes: 45
|
|
424
|
-
if: ${{ !
|
|
379
|
+
if: ${{ !contains(inputs.skip_jobs, 'test:unit') }}
|
|
425
380
|
|
|
426
381
|
steps:
|
|
427
382
|
- name: ๐ฅ Checkout repository
|
|
@@ -484,7 +439,7 @@ jobs:
|
|
|
484
439
|
name: ๐งช Run Integration Tests
|
|
485
440
|
runs-on: ubuntu-latest
|
|
486
441
|
timeout-minutes: 30
|
|
487
|
-
if: ${{ !
|
|
442
|
+
if: ${{ !contains(inputs.skip_jobs, 'test:integration') }}
|
|
488
443
|
|
|
489
444
|
steps:
|
|
490
445
|
- name: ๐ฅ Checkout repository
|
|
@@ -547,7 +502,7 @@ jobs:
|
|
|
547
502
|
name: ๐งช Run E2E Tests
|
|
548
503
|
runs-on: ubuntu-latest
|
|
549
504
|
timeout-minutes: 40
|
|
550
|
-
if: ${{ !
|
|
505
|
+
if: ${{ !contains(inputs.skip_jobs, 'test:e2e') }}
|
|
551
506
|
|
|
552
507
|
steps:
|
|
553
508
|
- name: ๐ฅ Checkout repository
|
|
@@ -610,7 +565,7 @@ jobs:
|
|
|
610
565
|
name: ๐ฑ Maestro Cloud E2E Tests
|
|
611
566
|
runs-on: ubuntu-latest
|
|
612
567
|
timeout-minutes: 30
|
|
613
|
-
if: ${{ !
|
|
568
|
+
if: ${{ !contains(inputs.skip_jobs, 'maestro_e2e') }}
|
|
614
569
|
|
|
615
570
|
steps:
|
|
616
571
|
- name: ๐ฅ Checkout repository
|
|
@@ -690,7 +645,7 @@ jobs:
|
|
|
690
645
|
name: ๐ญ Playwright E2E Tests
|
|
691
646
|
runs-on: ubuntu-latest
|
|
692
647
|
timeout-minutes: 30
|
|
693
|
-
if: ${{ !
|
|
648
|
+
if: ${{ !contains(inputs.skip_jobs, 'playwright_e2e') }}
|
|
694
649
|
|
|
695
650
|
steps:
|
|
696
651
|
- name: ๐ฅ Checkout repository
|
|
@@ -764,7 +719,7 @@ jobs:
|
|
|
764
719
|
name: ๐ Check Formatting
|
|
765
720
|
runs-on: ubuntu-latest
|
|
766
721
|
timeout-minutes: 10
|
|
767
|
-
if: ${{ !
|
|
722
|
+
if: ${{ !contains(inputs.skip_jobs, 'format') }}
|
|
768
723
|
|
|
769
724
|
steps:
|
|
770
725
|
- name: ๐ฅ Checkout repository
|
|
@@ -803,7 +758,7 @@ jobs:
|
|
|
803
758
|
name: ๐๏ธ Build
|
|
804
759
|
runs-on: ubuntu-latest
|
|
805
760
|
timeout-minutes: 20
|
|
806
|
-
if: ${{ !
|
|
761
|
+
if: ${{ !contains(inputs.skip_jobs, 'build') }}
|
|
807
762
|
|
|
808
763
|
steps:
|
|
809
764
|
- name: ๐ฅ Checkout repository
|
|
@@ -855,7 +810,7 @@ jobs:
|
|
|
855
810
|
name: ๐๏ธ Dead Code Detection
|
|
856
811
|
runs-on: ubuntu-latest
|
|
857
812
|
timeout-minutes: 10
|
|
858
|
-
if: ${{ !
|
|
813
|
+
if: ${{ !contains(inputs.skip_jobs, 'dead_code') }}
|
|
859
814
|
|
|
860
815
|
steps:
|
|
861
816
|
- name: ๐ฅ Checkout repository
|
|
@@ -892,7 +847,7 @@ jobs:
|
|
|
892
847
|
name: ๐ AST Grep Scan
|
|
893
848
|
runs-on: ubuntu-latest
|
|
894
849
|
timeout-minutes: 10
|
|
895
|
-
if: ${{ !
|
|
850
|
+
if: ${{ !contains(inputs.skip_jobs, 'sg_scan') }}
|
|
896
851
|
|
|
897
852
|
steps:
|
|
898
853
|
- name: ๐ฅ Checkout repository
|
|
@@ -970,7 +925,7 @@ jobs:
|
|
|
970
925
|
name: ๐ Security Scan
|
|
971
926
|
runs-on: ubuntu-latest
|
|
972
927
|
timeout-minutes: 15
|
|
973
|
-
if: ${{ !
|
|
928
|
+
if: ${{ !contains(inputs.skip_jobs, 'npm_security_scan') }}
|
|
974
929
|
steps:
|
|
975
930
|
- name: ๐ฅ Checkout repository
|
|
976
931
|
uses: actions/checkout@v4
|
|
@@ -1058,7 +1013,7 @@ jobs:
|
|
|
1058
1013
|
name: ๐ SonarCloud SAST
|
|
1059
1014
|
runs-on: ubuntu-latest
|
|
1060
1015
|
timeout-minutes: 20
|
|
1061
|
-
if: ${{ !
|
|
1016
|
+
if: ${{ !contains(inputs.skip_jobs, 'sonarcloud') }}
|
|
1062
1017
|
steps:
|
|
1063
1018
|
- name: ๐ฅ Checkout repository
|
|
1064
1019
|
uses: actions/checkout@v4
|
|
@@ -1148,7 +1103,7 @@ jobs:
|
|
|
1148
1103
|
name: ๐ก๏ธ Snyk Dependency Scan
|
|
1149
1104
|
runs-on: ubuntu-latest
|
|
1150
1105
|
timeout-minutes: 20
|
|
1151
|
-
if: ${{ !
|
|
1106
|
+
if: ${{ !contains(inputs.skip_jobs, 'snyk') }}
|
|
1152
1107
|
steps:
|
|
1153
1108
|
- name: ๐ฅ Checkout repository
|
|
1154
1109
|
uses: actions/checkout@v4
|
|
@@ -1217,7 +1172,7 @@ jobs:
|
|
|
1217
1172
|
name: ๐ GitGuardian Secret Detection
|
|
1218
1173
|
runs-on: ubuntu-latest
|
|
1219
1174
|
timeout-minutes: 20
|
|
1220
|
-
if: ${{ !
|
|
1175
|
+
if: ${{ !contains(inputs.skip_jobs, 'secret_scanning') }}
|
|
1221
1176
|
steps:
|
|
1222
1177
|
- name: ๐ฅ Checkout repository
|
|
1223
1178
|
uses: actions/checkout@v4
|
|
@@ -1255,7 +1210,7 @@ jobs:
|
|
|
1255
1210
|
name: ๐ FOSSA License Check
|
|
1256
1211
|
runs-on: ubuntu-latest
|
|
1257
1212
|
timeout-minutes: 20
|
|
1258
|
-
if: ${{ !
|
|
1213
|
+
if: ${{ !contains(inputs.skip_jobs, 'license_compliance') }}
|
|
1259
1214
|
steps:
|
|
1260
1215
|
- name: ๐ฅ Checkout repository
|
|
1261
1216
|
uses: actions/checkout@v4
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# This file is managed by Lisa.
|
|
3
|
-
# Do not edit directly โ changes will be overwritten on the next `lisa` run.
|
|
4
|
-
|
|
5
|
-
# Hook script to run slow lint rules before pushing
|
|
6
|
-
# Blocks push if lint:slow fails, preventing pushes with linting issues
|
|
7
|
-
# Reference: https://docs.claude.com/en/docs/claude-code/hooks
|
|
8
|
-
|
|
9
|
-
# Check if package.json has lint:slow script
|
|
10
|
-
if ! grep -q '"lint:slow"' package.json 2>/dev/null; then
|
|
11
|
-
echo "โน Skipping lint:slow: lint:slow script not found in package.json"
|
|
12
|
-
exit 0
|
|
13
|
-
fi
|
|
14
|
-
|
|
15
|
-
# Detect package manager based on lock file presence
|
|
16
|
-
detect_package_manager() {
|
|
17
|
-
if [ -f "bun.lockb" ] || [ -f "bun.lock" ]; then
|
|
18
|
-
echo "bun"
|
|
19
|
-
elif [ -f "pnpm-lock.yaml" ]; then
|
|
20
|
-
echo "pnpm"
|
|
21
|
-
elif [ -f "yarn.lock" ]; then
|
|
22
|
-
echo "yarn"
|
|
23
|
-
elif [ -f "package-lock.json" ]; then
|
|
24
|
-
echo "npm"
|
|
25
|
-
else
|
|
26
|
-
echo "npm" # Default fallback
|
|
27
|
-
fi
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
PKG_MANAGER=$(detect_package_manager)
|
|
31
|
-
|
|
32
|
-
echo "๐ข Running slow lint rules before push..."
|
|
33
|
-
|
|
34
|
-
# Run lint:slow - exit code matters here, we want to block the push if it fails
|
|
35
|
-
if $PKG_MANAGER run lint:slow; then
|
|
36
|
-
echo "โ Slow lint rules passed"
|
|
37
|
-
exit 0
|
|
38
|
-
else
|
|
39
|
-
echo "โ Slow lint rules failed. Fix issues and try again." >&2
|
|
40
|
-
exit 1 # Block the push
|
|
41
|
-
fi
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* CDK CLI Entrypoint
|
|
5
|
-
*
|
|
6
|
-
* This is a placeholder entrypoint for the CDK infrastructure CLI.
|
|
7
|
-
* It should be replaced with the actual CDK app implementation.
|
|
8
|
-
*
|
|
9
|
-
* See: https://docs.aws.amazon.com/cdk/latest/guide/cli.html
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
console.error(
|
|
13
|
-
"Error: CDK infrastructure entrypoint not configured. " +
|
|
14
|
-
"Please update bin/infrastructure.js with your CDK app."
|
|
15
|
-
);
|
|
16
|
-
process.exit(1);
|