@codyswann/lisa 1.0.5 → 1.0.9

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 (25) hide show
  1. package/all/copy-overwrite/.claude/commands/project/add-test-coverage.md +34 -35
  2. package/all/copy-overwrite/.claude/commands/project/archive.md +2 -1
  3. package/all/copy-overwrite/.claude/commands/project/bootstrap.md +26 -31
  4. package/all/copy-overwrite/.claude/commands/project/debrief.md +30 -35
  5. package/all/copy-overwrite/.claude/commands/project/execute.md +37 -19
  6. package/all/copy-overwrite/.claude/commands/project/fix-linter-error.md +40 -61
  7. package/all/copy-overwrite/.claude/commands/project/implement.md +9 -9
  8. package/all/copy-overwrite/.claude/commands/project/lower-code-complexity.md +42 -30
  9. package/all/copy-overwrite/.claude/commands/project/plan.md +32 -12
  10. package/all/copy-overwrite/.claude/commands/project/reduce-max-lines-per-function.md +35 -46
  11. package/all/copy-overwrite/.claude/commands/project/reduce-max-lines.md +33 -46
  12. package/all/copy-overwrite/.claude/commands/project/research.md +25 -0
  13. package/all/copy-overwrite/.claude/commands/project/review.md +30 -20
  14. package/all/copy-overwrite/.claude/commands/project/setup.md +51 -15
  15. package/all/copy-overwrite/.claude/commands/project/verify.md +26 -54
  16. package/all/copy-overwrite/.claude/commands/pull-request/review.md +62 -20
  17. package/all/copy-overwrite/.claude/settings.json +1 -1
  18. package/all/copy-overwrite/HUMAN.md +0 -12
  19. package/cdk/copy-overwrite/.github/workflows/deploy.yml +1 -1
  20. package/expo/copy-overwrite/.github/workflows/lighthouse.yml +17 -0
  21. package/expo/copy-overwrite/knip.json +2 -0
  22. package/nestjs/copy-overwrite/.github/workflows/deploy.yml +1 -1
  23. package/package.json +4 -1
  24. package/typescript/copy-overwrite/.github/workflows/quality.yml +46 -0
  25. package/all/copy-overwrite/.claude/commands/project/complete-task.md +0 -59
@@ -54,6 +54,23 @@ jobs:
54
54
  bun install --frozen-lockfile
55
55
  fi
56
56
 
57
+ - name: 📋 Copy amplify file (if exists)
58
+ run: |
59
+ ENV="${{ inputs.target_branch }}"
60
+ if [ "$ENV" == "staging" ]; then
61
+ SOURCE_FILE="staging.aws-exports.js"
62
+ elif [ "$ENV" == "dev" ]; then
63
+ SOURCE_FILE="dev.aws-exports.js"
64
+ else
65
+ SOURCE_FILE="prod.aws-exports.js"
66
+ fi
67
+ if [ -f "$SOURCE_FILE" ]; then
68
+ cp "$SOURCE_FILE" aws-exports.js
69
+ echo "Copied $SOURCE_FILE to aws-exports.js"
70
+ else
71
+ echo "Skipping: $SOURCE_FILE does not exist"
72
+ fi
73
+
57
74
  - name: đŸ—ī¸ Build web export
58
75
  run: ${{ inputs.package_manager }} run export:web
59
76
  env:
@@ -55,6 +55,8 @@
55
55
  ],
56
56
  "ignoreBinaries": ["audit", "ast-grep", "maestro", "eas", "source-map-explorer"],
57
57
  "ignoreDependencies": [
58
+ "@react-native-community/netinfo",
59
+ "aws-exports",
58
60
  "@babel/core",
59
61
  "@babel/plugin-proposal-export-namespace-from",
60
62
  "@commitlint/cli",
@@ -62,7 +62,7 @@ jobs:
62
62
  needs: [determine_environment]
63
63
  with:
64
64
  environment: ${{ needs.determine_environment.outputs.environment }}
65
- release_strategy: 'semantic'
65
+ release_strategy: 'standard-version'
66
66
  skip_jobs: 'test:e2e,test:unit,test:integration,test'
67
67
  # require_approval: ${{ needs.determine_environment.outputs.environment == 'main' }}
68
68
  # require_signatures: ${{ needs.determine_environment.outputs.environment == 'main' }}
package/package.json CHANGED
@@ -18,6 +18,9 @@
18
18
  "dev": "tsx src/index.ts",
19
19
  "test:watch": "vitest",
20
20
  "update-node-version": "tsx scripts/update-node-version.ts",
21
+ "cleanup:amplify-branches": "bash scripts/cleanup-amplify-branches.sh",
22
+ "cleanup:github-branches": "bash scripts/cleanup-github-branches.sh",
23
+ "setup:deploy-key": "bash scripts/setup-deploy-key.sh",
21
24
  "lint:slow": "eslint . --config eslint.slow.config.ts --quiet",
22
25
  "knip": "knip",
23
26
  "knip:fix": "knip --fix",
@@ -75,7 +78,7 @@
75
78
  "@ast-grep/cli"
76
79
  ],
77
80
  "name": "@codyswann/lisa",
78
- "version": "1.0.5",
81
+ "version": "1.0.9",
79
82
  "description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
80
83
  "main": "dist/index.js",
81
84
  "bin": {
@@ -1041,12 +1041,58 @@ jobs:
1041
1041
 
1042
1042
  - name: 📊 SonarCloud Scan
1043
1043
  if: steps.check_sonar.outputs.has_token == 'true'
1044
+ id: sonar_scan
1044
1045
  uses: SonarSource/sonarqube-scan-action@v6.0.0
1045
1046
  env:
1046
1047
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
1047
1048
  SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
1048
1049
  with:
1049
1050
  args: -Dsonar.qualitygate.wait=true
1051
+ continue-on-error: true
1052
+
1053
+ - name: 🔍 Validate SonarCloud results
1054
+ if: steps.check_sonar.outputs.has_token == 'true'
1055
+ env:
1056
+ SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
1057
+ run: |
1058
+ OUTCOME="${{ steps.sonar_scan.outcome }}"
1059
+
1060
+ if [ "$OUTCOME" = "success" ]; then
1061
+ echo "✅ SonarCloud scan and quality gate passed"
1062
+ exit 0
1063
+ fi
1064
+
1065
+ if [ "$OUTCOME" = "failure" ]; then
1066
+ REPORT_FILE=".scannerwork/report-task.txt"
1067
+
1068
+ if [ ! -f "$REPORT_FILE" ]; then
1069
+ echo "::error::SonarCloud scan failed and report-task.txt is missing; failing build."
1070
+ exit 1
1071
+ fi
1072
+
1073
+ # Extract serverUrl and ceTaskId from report-task.txt (key=value format)
1074
+ SERVER_URL=$(grep -E '^serverUrl=' "$REPORT_FILE" | cut -d= -f2-)
1075
+ CE_TASK_ID=$(grep -E '^ceTaskId=' "$REPORT_FILE" | cut -d= -f2-)
1076
+
1077
+ if [ -z "$SERVER_URL" ] || [ -z "$CE_TASK_ID" ]; then
1078
+ echo "::error::Could not extract serverUrl or ceTaskId from report-task.txt; failing build."
1079
+ exit 1
1080
+ fi
1081
+
1082
+ # Query SonarCloud CE task API to get the actual error message
1083
+ TASK_JSON=$(curl -s -u "$SONAR_TOKEN:" "$SERVER_URL/api/ce/task?id=$CE_TASK_ID")
1084
+ ERROR_MSG=$(echo "$TASK_JSON" | jq -r '.task.errorMessage // ""')
1085
+
1086
+ # Only allow line-limit quota errors to pass
1087
+ if echo "$ERROR_MSG" | grep -qi "maximum allowed lines limit"; then
1088
+ echo "::warning::SonarCloud scan failed due to organization line-limit quota; not blocking build."
1089
+ echo "â„šī¸ Contact your SonarCloud organization admin to increase or manage line limits."
1090
+ exit 0
1091
+ fi
1092
+
1093
+ echo "::error::SonarCloud scan failed: $ERROR_MSG"
1094
+ exit 1
1095
+ fi
1050
1096
 
1051
1097
  - name: 📊 SonarCloud Scan Skipped
1052
1098
  if: steps.check_sonar.outputs.has_token != 'true'
@@ -1,59 +0,0 @@
1
- ---
2
- description: Complete a single task within a project using a subagent with fresh context
3
- argument-hint: <task-file>
4
- ---
5
-
6
- 1. Read $ARGUMENTS without offset or limit
7
- 2. Follow the instructions literally and specifically
8
-
9
- ## Verification Requirements
10
-
11
- **CRITICAL**: Before marking ANY task as complete:
12
-
13
- ### For JSON Tasks (`.json` files)
14
-
15
- If the task file is JSON and contains `metadata.verification`:
16
-
17
- 1. **Extract verification data**:
18
- ```json
19
- {
20
- "metadata": {
21
- "verification": {
22
- "type": "manual-check",
23
- "command": "the command to run",
24
- "expected": "description of expected output"
25
- }
26
- }
27
- }
28
- ```
29
-
30
- 2. **Run the verification command** using Bash tool
31
- 3. **Compare output to expected** - Verify the output matches the `expected` description
32
- 4. **Only mark complete if verification passes**
33
-
34
- ### For Markdown Tasks (`.md` files)
35
-
36
- If the task has a "## Verification" section with "### Proof Command":
37
-
38
- 1. **Extract the Proof Command** from the markdown
39
- 2. **Run the command** using Bash tool
40
- 3. **Compare output to Expected Output** section
41
- 4. **Only mark complete if verification passes**
42
-
43
- ### Verification Rules
44
-
45
- 1. **`manual-check` verification type** - These require actual execution, not just configuration review:
46
- - If the check requires Docker and Docker is unavailable → Task is **BLOCKED**, not complete
47
- - If the check requires external services → Actually test against them
48
- - If the check requires running a command → Run the command and verify output
49
- 2. **Never assume configuration is correct** - Always empirically verify by running the actual tool/service
50
- 3. **If verification cannot be performed**:
51
- - Do NOT mark the task as complete
52
- - Document the blocker in findings.md
53
- - Mark the task status as "blocked: <reason>"
54
- 4. **If verification fails**:
55
- - Do NOT mark the task as complete
56
- - Fix the issue and re-run verification
57
- - Only mark complete when verification passes
58
-
59
- The rule "Never make assumptions about whether something worked. Test it empirically to confirm" applies especially to verification tasks.