@codyswann/lisa 1.12.9 → 1.14.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.
Files changed (85) hide show
  1. package/all/copy-overwrite/.claude/commands/git/commit-and-submit-pr.md +2 -3
  2. package/all/copy-overwrite/.claude/commands/git/commit.md +2 -43
  3. package/all/copy-overwrite/.claude/commands/git/prune.md +2 -30
  4. package/all/copy-overwrite/.claude/commands/git/submit-pr.md +2 -45
  5. package/all/copy-overwrite/.claude/commands/jira/create.md +2 -45
  6. package/all/copy-overwrite/.claude/commands/jira/verify.md +2 -29
  7. package/all/copy-overwrite/.claude/commands/lisa/review-implementation.md +4 -206
  8. package/all/copy-overwrite/.claude/commands/project/add-test-coverage.md +4 -53
  9. package/all/copy-overwrite/.claude/commands/project/archive.md +4 -6
  10. package/all/copy-overwrite/.claude/commands/project/bootstrap.md +4 -25
  11. package/all/copy-overwrite/.claude/commands/project/debrief.md +4 -40
  12. package/all/copy-overwrite/.claude/commands/project/document.md +4 -48
  13. package/all/copy-overwrite/.claude/commands/project/execute.md +4 -64
  14. package/all/copy-overwrite/.claude/commands/project/fix-linter-error.md +4 -62
  15. package/all/copy-overwrite/.claude/commands/project/implement.md +4 -35
  16. package/all/copy-overwrite/.claude/commands/project/local-code-review.md +4 -85
  17. package/all/copy-overwrite/.claude/commands/project/lower-code-complexity.md +3 -58
  18. package/all/copy-overwrite/.claude/commands/project/plan.md +4 -175
  19. package/all/copy-overwrite/.claude/commands/project/reduce-max-lines-per-function.md +4 -61
  20. package/all/copy-overwrite/.claude/commands/project/reduce-max-lines.md +4 -58
  21. package/all/copy-overwrite/.claude/commands/project/research.md +4 -162
  22. package/all/copy-overwrite/.claude/commands/project/review.md +4 -45
  23. package/all/copy-overwrite/.claude/commands/project/setup.md +4 -52
  24. package/all/copy-overwrite/.claude/commands/project/verify.md +4 -38
  25. package/all/copy-overwrite/.claude/commands/pull-request/review.md +4 -69
  26. package/all/copy-overwrite/.claude/commands/sonarqube/check.md +3 -3
  27. package/all/copy-overwrite/.claude/commands/sonarqube/fix.md +6 -3
  28. package/all/copy-overwrite/.claude/commands/tasks/load.md +4 -85
  29. package/all/copy-overwrite/.claude/commands/tasks/sync.md +4 -106
  30. package/all/copy-overwrite/.claude/skills/git-commit/SKILL.md +49 -0
  31. package/all/copy-overwrite/.claude/skills/git-commit-and-submit-pr/SKILL.md +9 -0
  32. package/all/copy-overwrite/.claude/skills/git-prune/SKILL.md +35 -0
  33. package/all/copy-overwrite/.claude/skills/git-submit-pr/SKILL.md +45 -0
  34. package/all/copy-overwrite/.claude/skills/jira-create/SKILL.md +42 -0
  35. package/all/copy-overwrite/.claude/skills/jira-verify/SKILL.md +30 -0
  36. package/all/copy-overwrite/.claude/skills/lisa-review-implementation/SKILL.md +210 -0
  37. package/all/copy-overwrite/.claude/skills/project-add-test-coverage/SKILL.md +58 -0
  38. package/all/copy-overwrite/.claude/skills/project-archive/SKILL.md +10 -0
  39. package/all/copy-overwrite/.claude/skills/project-bootstrap/SKILL.md +29 -0
  40. package/all/copy-overwrite/.claude/skills/project-debrief/SKILL.md +44 -0
  41. package/all/copy-overwrite/.claude/skills/project-document/SKILL.md +51 -0
  42. package/all/copy-overwrite/.claude/skills/project-execute/SKILL.md +68 -0
  43. package/all/copy-overwrite/.claude/skills/project-fix-linter-error/SKILL.md +67 -0
  44. package/all/copy-overwrite/.claude/skills/project-implement/SKILL.md +39 -0
  45. package/all/copy-overwrite/.claude/skills/project-local-code-review/SKILL.md +89 -0
  46. package/all/copy-overwrite/.claude/skills/project-lower-code-complexity/SKILL.md +62 -0
  47. package/all/copy-overwrite/.claude/skills/project-plan/SKILL.md +179 -0
  48. package/all/copy-overwrite/.claude/skills/project-reduce-max-lines/SKILL.md +63 -0
  49. package/all/copy-overwrite/.claude/skills/project-reduce-max-lines-per-function/SKILL.md +66 -0
  50. package/all/copy-overwrite/.claude/skills/project-research/SKILL.md +166 -0
  51. package/all/copy-overwrite/.claude/skills/project-review/SKILL.md +49 -0
  52. package/all/copy-overwrite/.claude/skills/project-setup/SKILL.md +56 -0
  53. package/all/copy-overwrite/.claude/skills/project-verify/SKILL.md +42 -0
  54. package/all/copy-overwrite/.claude/skills/pull-request-review/SKILL.md +73 -0
  55. package/all/copy-overwrite/.claude/skills/sonarqube-check/SKILL.md +11 -0
  56. package/all/copy-overwrite/.claude/skills/sonarqube-fix/SKILL.md +8 -0
  57. package/all/copy-overwrite/.claude/skills/tasks-load/SKILL.md +89 -0
  58. package/all/copy-overwrite/.claude/skills/tasks-sync/SKILL.md +109 -0
  59. package/cdk/copy-overwrite/jest.cdk.ts +71 -0
  60. package/cdk/copy-overwrite/jest.config.ts +28 -0
  61. package/cdk/copy-overwrite/tsconfig.cdk.json +14 -0
  62. package/cdk/copy-overwrite/tsconfig.json +3 -0
  63. package/cdk/create-only/tsconfig.local.json +4 -0
  64. package/expo/copy-overwrite/jest.config.ts +28 -0
  65. package/expo/copy-overwrite/jest.expo.ts +76 -0
  66. package/expo/copy-overwrite/tsconfig.expo.json +9 -0
  67. package/expo/copy-overwrite/tsconfig.json +3 -0
  68. package/expo/create-only/tsconfig.local.json +9 -0
  69. package/nestjs/copy-overwrite/jest.config.ts +28 -0
  70. package/nestjs/copy-overwrite/jest.nestjs.ts +89 -0
  71. package/nestjs/copy-overwrite/tsconfig.build.json +5 -0
  72. package/nestjs/copy-overwrite/tsconfig.json +5 -0
  73. package/nestjs/copy-overwrite/tsconfig.nestjs.json +13 -0
  74. package/nestjs/copy-overwrite/tsconfig.spec.json +7 -0
  75. package/nestjs/create-only/tsconfig.local.json +6 -0
  76. package/package.json +1 -1
  77. package/typescript/copy-overwrite/jest.base.ts +112 -0
  78. package/typescript/copy-overwrite/jest.config.ts +34 -0
  79. package/typescript/copy-overwrite/jest.typescript.ts +72 -0
  80. package/typescript/copy-overwrite/tsconfig.base.json +15 -0
  81. package/typescript/copy-overwrite/tsconfig.json +5 -0
  82. package/typescript/copy-overwrite/tsconfig.typescript.json +11 -0
  83. package/typescript/create-only/jest.config.local.ts +30 -0
  84. package/typescript/create-only/jest.thresholds.json +8 -0
  85. package/typescript/create-only/tsconfig.local.json +6 -0
@@ -0,0 +1,166 @@
1
+ ---
2
+ name: project-research
3
+ description: This skill should be used when conducting comprehensive research across the codebase and web relevant to a project. It spawns parallel research agents, documents existing code patterns, testing patterns, and architecture, and compiles findings into a research.md file for the planning phase.
4
+ allowed-tools: ["Read", "Write", "Bash", "Glob", "Grep", "Task", "TaskCreate", "TaskUpdate", "TaskList", "WebSearch", "WebFetch"]
5
+ argument-hint: "<project-directory>"
6
+ ---
7
+
8
+ # Research Codebase
9
+
10
+ Conduct comprehensive research across the codebase and web to help create an implementation plan for the brief in $ARGUMENTS.
11
+
12
+ ## Goals
13
+
14
+ 1. Determine what existing documentation in the codebase will be needed
15
+ 2. Determine any gaps in the spec that would prevent fulfilling acceptance criteria
16
+ 3. Determine potential pitfalls (performance, security concerns)
17
+ 4. Determine reusable code, functions, and modules in the codebase
18
+ 5. Determine testing patterns and locations (frameworks, conventions, examples)
19
+ 6. Determine documentation patterns (JSDoc, DB comments, GraphQL descriptions)
20
+
21
+ ## Critical Rule
22
+
23
+ **THE ONLY JOB IS TO DOCUMENT AND EXPLAIN THE CODEBASE AS IT EXISTS TODAY**
24
+
25
+ - DO NOT suggest improvements or changes
26
+ - DO NOT perform root cause analysis
27
+ - DO NOT propose future enhancements
28
+ - DO NOT critique or identify problems
29
+ - ONLY describe what exists, where it exists, how it works, and how components interact
30
+
31
+ ## Workflow Tasks
32
+
33
+ Create workflow tracking tasks with `metadata: { "project": "<project-name>", "phase": "research" }`:
34
+
35
+ 1. Read mentioned files
36
+ 2. Analyze and decompose
37
+ 3. Spawn research agents
38
+ 4. Wait and synthesize
39
+ 5. Generate document
40
+ 6. Commit
41
+
42
+ ## Step 1: Read Mentioned Files
43
+
44
+ Read any directly mentioned files FULLY first (no limit/offset). This ensures full context before spawning sub-tasks.
45
+
46
+ ## Step 2: Analyze and Decompose
47
+
48
+ - Break down the brief into composable research areas
49
+ - Identify specific components, patterns, or concepts to investigate
50
+ - Consider which directories, files, or architectural patterns are relevant
51
+
52
+ ## Step 3: Spawn Research Agents
53
+
54
+ Spawn parallel sub-agent tasks for comprehensive research:
55
+
56
+ **For codebase research:**
57
+ - **codebase-locator**: Find WHERE files and components live
58
+ - **codebase-analyzer**: Understand HOW specific code works
59
+ - **codebase-pattern-finder**: Find examples of existing patterns
60
+ - **git-history-analyzer**: Understand file change history
61
+
62
+ **For e2e test research:**
63
+ - Find existing e2e tests in `e2e/` or `tests/` directories
64
+ - Document what scenarios each test covers
65
+ - Identify tests needing modification or gaps for new functionality
66
+
67
+ **For web research:**
68
+ - **web-search-researcher**: External documentation and resources
69
+ - Include LINKS with findings in the final report
70
+
71
+ Run multiple agents in parallel when searching for different things.
72
+
73
+ ## Step 4: Wait and Synthesize
74
+
75
+ **CRITICAL**: Wait for ALL sub-agent tasks to complete before proceeding.
76
+
77
+ - Compile all sub-agent results
78
+ - Prioritize live codebase findings as primary source of truth
79
+ - Connect findings across different components
80
+ - Include specific file paths and line numbers
81
+ - Note any frameworks used (Rails, NestJS, Expo, React, etc.)
82
+
83
+ ## Step 5: Generate Document
84
+
85
+ Create `$ARGUMENTS/research.md` with this structure:
86
+
87
+ ```markdown
88
+ ---
89
+ date: [ISO format with timezone]
90
+ status: complete
91
+ last_updated: [YYYY-MM-DD]
92
+ ---
93
+
94
+ # Research
95
+
96
+ ## Summary
97
+ [High-level documentation of findings]
98
+
99
+ ## Detailed Findings
100
+ ### [Component/Area]
101
+ - Description of what exists ([file.ext:line](link))
102
+ - How it connects to other components
103
+
104
+ ## Code References
105
+ - `path/to/file.py:123` - Description
106
+
107
+ ## Reusable Code
108
+ ### Existing Functions/Modules
109
+ - `path/to/utils.ts:45` - `functionName()` - description of what it does and how it can be reused
110
+ - `path/to/service.ts:120` - `ClassName` - description of reusable functionality
111
+
112
+ ### Existing Patterns to Follow
113
+ - Similar feature implemented in `path/to/feature/` - follow same structure
114
+ - Existing implementation of X in `path/to/file.ts` - can be extended/adapted
115
+
116
+ ## Architecture Documentation
117
+ [Patterns, conventions, design implementations]
118
+
119
+ ## Testing Patterns
120
+ ### Unit Test Patterns
121
+ - **Location**: pattern found
122
+ - **Framework**: Jest/Vitest/etc.
123
+ - **Example to follow**: path:line-range
124
+ - **Conventions**: naming, structure, mocks
125
+
126
+ ### Integration Test Patterns
127
+ [Similar structure]
128
+
129
+ ### E2E Test Patterns
130
+ [Similar structure]
131
+
132
+ ## Impacted Tests
133
+ ### Tests Requiring Modification
134
+ - `tests/example.spec.ts` - tests X functionality, will need updates for Y
135
+ - `e2e/feature.spec.ts` - may need new assertions for Z
136
+
137
+ ### Test Gaps
138
+ - No existing tests for X functionality - will need new test file
139
+ - Missing edge case coverage for Y scenario
140
+
141
+ ## Documentation Patterns
142
+ ### JSDoc Conventions
143
+ ### Database Comments (Backend)
144
+ ### GraphQL Descriptions (Backend)
145
+
146
+ ## Open Questions
147
+
148
+ ### Q1: [Short Title]
149
+ **Question**: [Full question]
150
+ **Context**: [Why this arose]
151
+ **Impact**: [What it affects]
152
+ **Recommendation**: [Researcher's best recommendation based on findings]
153
+ **Answer**: _[Human fills before /project-plan]_
154
+ ```
155
+
156
+ ## Step 6: Commit
157
+
158
+ Run `/git-commit`
159
+
160
+ ## Important Notes
161
+
162
+ - Always use parallel Task agents to maximize efficiency
163
+ - Always run fresh codebase research - never rely solely on existing documents
164
+ - Focus on finding concrete file paths and line numbers
165
+ - Each sub-agent prompt should be specific and focused on read-only documentation
166
+ - **REMEMBER**: Document what IS, not what SHOULD BE
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: project-review
3
+ description: This skill should be used when performing extensive code review and optimization on the current project. It runs Claude local code review, CodeRabbit review, implements fixes from both, and performs code simplification optimizations.
4
+ allowed-tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep", "Task", "TaskCreate", "TaskUpdate", "TaskList", "Skill"]
5
+ argument-hint: "<project-directory>"
6
+ ---
7
+
8
+ The current branch is a feature branch with full implementation of the project in $ARGUMENTS.
9
+
10
+ **IMPORTANT**: Perform each step and move to the next without stopping.
11
+
12
+ ## Setup
13
+
14
+ Set active project marker: `echo "$ARGUMENTS" | sed 's|.*/||' > .claude-active-project`
15
+
16
+ Extract `<project-name>` from the last segment of `$ARGUMENTS`.
17
+
18
+ ## Create and Execute Tasks
19
+
20
+ Create workflow tracking tasks with `metadata.project` set to the project name:
21
+
22
+ ```
23
+ TaskCreate:
24
+ subject: "Perform Claude review"
25
+ description: "If $ARGUMENTS/claude-review.md already exists, skip this task. Otherwise, run /project-local-code-review $ARGUMENTS"
26
+ metadata: { project: "<project-name>" }
27
+
28
+ TaskCreate:
29
+ subject: "Implement Claude review fixes"
30
+ description: "Read $ARGUMENTS/claude-review.md and fix any suggestions that score above 45."
31
+ metadata: { project: "<project-name>" }
32
+
33
+ TaskCreate:
34
+ subject: "Perform CodeRabbit review"
35
+ description: "If $ARGUMENTS/coderabbit-review.md already exists, skip this task. Otherwise, run `/coderabbit:review` and write results to $ARGUMENTS/coderabbit-review.md"
36
+ metadata: { project: "<project-name>" }
37
+
38
+ TaskCreate:
39
+ subject: "Implement CodeRabbit review fixes"
40
+ description: "Evaluate suggestions in $ARGUMENTS/coderabbit-review.md and implement fixes for valid findings."
41
+ metadata: { project: "<project-name>" }
42
+
43
+ TaskCreate:
44
+ subject: "Perform Claude optimizations"
45
+ description: "Use the code simplifier agent to clean up code added to the current branch."
46
+ metadata: { project: "<project-name>" }
47
+ ```
48
+
49
+ **Execute each task via a subagent** to preserve main context. Launch up to 6 in parallel where tasks don't have dependencies. Do not stop until all are completed.
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: project-setup
3
+ description: This skill should be used when initializing a new project with full requirements analysis, planning, and structure setup. It accepts a file path, JIRA issue, or text description, creates the project directory structure with brief.md and findings.md, and commits the initial setup.
4
+ allowed-tools: ["Read", "Write", "Bash(git*)", "Glob", "Grep", "Task", "TaskCreate", "TaskUpdate", "TaskList"]
5
+ argument-hint: "<file-path|jira-issue|text-description>"
6
+ ---
7
+
8
+ ## Step 1: Determine Input Type
9
+
10
+ Examine $ARGUMENTS to determine which type:
11
+ - **Jira issue**: Matches pattern like `SE-123`, `PROJ-456` (letters-dash-numbers)
12
+ - **File path**: Path exists as a file (check with Glob or Read)
13
+ - **Text prompt**: Everything else - a description of work to be done
14
+
15
+ ## Step 2: Get Brief Content
16
+
17
+ Based on input type:
18
+
19
+ **If Jira issue:**
20
+ 1. Use the atlassian MCP server to Read the issue FULLY
21
+ 2. If MCP server not working, STOP and let human know
22
+
23
+ **If file path:**
24
+ 1. Read the file FULLY (no limit/offset)
25
+
26
+ **If text prompt:**
27
+ 1. The prompt IS the brief content - use $ARGUMENTS directly
28
+
29
+ ## Step 3: Create Project Structure
30
+
31
+ 1. Create project directory in `projects/` named `YYYY-MM-DD-<project-name>` where `<project-name>` is derived from:
32
+ - Jira: the issue key and title (e.g., `2026-01-26-se-123-add-auth`)
33
+ - File: the filename without extension
34
+ - Text prompt: a kebab-case summary of the prompt (e.g., `2026-01-26-add-user-authentication`)
35
+
36
+ 2. Create `brief.md` in the project directory:
37
+ - Jira: populate with issue number, title, and description
38
+ - File: copy contents of the file to `brief.md`
39
+ - Text prompt: create `brief.md` with the prompt text as content
40
+
41
+ 3. Create empty `findings.md` in the project directory
42
+
43
+ 4. Create `.claude-active-project` marker file:
44
+ ```bash
45
+ echo "YYYY-MM-DD-<project-name>" > .claude-active-project
46
+ ```
47
+
48
+ ## Step 4: Git and Finalize
49
+
50
+ 1. If Jira issue:
51
+ - Run /git-commit with branch name including issue number (e.g., `feature/SE-111-<branch-name>`)
52
+ - Use atlassian MCP server to update issue status to "In Progress"
53
+ 2. Otherwise:
54
+ - Run /git-commit
55
+
56
+ 3. Output: "Project created: `YYYY-MM-DD-<project-name>`"
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: project-verify
3
+ description: This skill should be used when performing comprehensive verification that a feature branch fully implements all project requirements with proper code quality, tests, and documentation. It reviews requirements, verifies implementation, runs task verification commands, and documents any drift.
4
+ allowed-tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep", "Task", "TaskCreate", "TaskUpdate", "TaskList"]
5
+ argument-hint: "<project-directory>"
6
+ ---
7
+
8
+ The current branch is a feature branch with full implementation of the project in $ARGUMENTS.
9
+
10
+ ## Setup
11
+
12
+ Set active project marker: `echo "$ARGUMENTS" | sed 's|.*/||' > .claude-active-project`
13
+
14
+ Extract `<project-name>` from the last segment of `$ARGUMENTS`.
15
+
16
+ ## Create and Execute Tasks
17
+
18
+ Create workflow tracking tasks with `metadata.project` set to the project name:
19
+
20
+ ```
21
+ TaskCreate:
22
+ subject: "Review requirements"
23
+ description: "Read all requirements for $ARGUMENTS (brief.md, research.md, task files)."
24
+ metadata: { project: "<project-name>" }
25
+
26
+ TaskCreate:
27
+ subject: "Verify implementation"
28
+ description: "Verify the implementation completely and fully satisfies all requirements from the brief and research."
29
+ metadata: { project: "<project-name>" }
30
+
31
+ TaskCreate:
32
+ subject: "Run task verification commands"
33
+ description: "Read all task files in $ARGUMENTS/tasks/. For each task with verification metadata (JSON: metadata.verification, or Markdown: ## Verification section), create a verification task with subject 'Verify: <original-subject>' and metadata including originalTaskId and verification details. Then execute each verification task: run the command, compare output to expected. If pass, mark completed. If fail, keep in_progress and document failure in $ARGUMENTS/drift.md. Report summary: total tasks, passed, failed, blocked."
34
+ metadata: { project: "<project-name>" }
35
+
36
+ TaskCreate:
37
+ subject: "Document drift"
38
+ description: "If there is any divergence from requirements or verification failures, ensure all drift is documented in $ARGUMENTS/drift.md."
39
+ metadata: { project: "<project-name>" }
40
+ ```
41
+
42
+ **Execute each task via a subagent** to preserve main context. Launch up to 6 in parallel where tasks don't have dependencies. Do not stop until all are completed.
@@ -0,0 +1,73 @@
1
+ ---
2
+ name: pull-request-review
3
+ description: This skill should be used when checking for code review comments on a pull request and implementing them if required. It fetches PR metadata and comments, generates a brief from unresolved feedback, and bootstraps a project to address the review comments.
4
+ allowed-tools: ["Read", "Bash", "Glob", "Grep"]
5
+ argument-hint: "<github-pr-link>"
6
+ ---
7
+
8
+ # Review PR Comments
9
+
10
+ Target PR: $ARGUMENTS
11
+
12
+ If no argument provided, prompt the user for a PR link or number.
13
+
14
+ ## Step 1: Gather Requirements
15
+
16
+ 1. **Fetch PR metadata and comments** using the GitHub CLI:
17
+ ```bash
18
+ gh pr view $ARGUMENTS --json number,title,body,reviews,comments
19
+ gh api repos/{owner}/{repo}/pulls/{pr_number}/comments
20
+ ```
21
+ 2. **Extract each unresolved review comment**:
22
+ - Comment ID
23
+ - File path
24
+ - Line number
25
+ - Comment body
26
+ - Author
27
+
28
+ If no unresolved comments exist, report success and exit.
29
+
30
+ ## Step 2: Generate Brief
31
+
32
+ Compile findings into a detailed brief:
33
+
34
+ ```markdown
35
+ Implement PR review feedback for $ARGUMENTS.
36
+
37
+ ## PR Overview
38
+ - Title: [PR title]
39
+ - Description: [PR description summary]
40
+
41
+ ## Review Comments to Address (ordered by file)
42
+
43
+ ### 1. [file_path]:[line_number] (Comment ID: [id])
44
+ **Reviewer**: [author]
45
+ **Comment**: [full comment body]
46
+ **Action Required**: [brief description of what needs to change]
47
+
48
+ ### 2. [file_path]:[line_number] (Comment ID: [id])
49
+ **Reviewer**: [author]
50
+ **Comment**: [full comment body]
51
+ **Action Required**: [brief description of what needs to change]
52
+
53
+ ...
54
+
55
+ ## Implementation Guidelines
56
+ - Evaluate each comment for validity before implementing
57
+ - If a comment is not valid, document the reasoning
58
+ - Ensure changes follow project coding standards
59
+ - Run relevant tests to verify changes work
60
+
61
+ ## Acceptance Criteria
62
+ - All valid review comments addressed
63
+ - Tests pass after changes
64
+ - `bun run lint` passes
65
+
66
+ ## Verification
67
+ Command: `bun run lint && bun run test`
68
+ Expected: All checks pass
69
+ ```
70
+
71
+ ## Step 3: Bootstrap Project
72
+
73
+ Run `/project-bootstrap` with the generated brief as a text prompt.
@@ -0,0 +1,11 @@
1
+ ---
2
+ name: sonarqube-check
3
+ description: This skill should be used when checking why the last pull request failed SonarQube/SonarCloud quality gates. It uses the SonarQube MCP server to retrieve failure details and report the reasons.
4
+ allowed-tools: ["mcp__sonarqube__*"]
5
+ ---
6
+
7
+ # SonarQube Check
8
+
9
+ Use the SonarQube MCP server to get the reason the last PR failed checks.
10
+
11
+ Retrieve the quality gate status and report all failures with their details.
@@ -0,0 +1,8 @@
1
+ ---
2
+ name: sonarqube-fix
3
+ description: This skill should be used when fixing SonarQube quality gate failures. It runs the sonarqube-check skill to identify failures, fixes the identified issues, and then commits the changes using the git-commit skill.
4
+ ---
5
+
6
+ 1. Run /sonarqube-check
7
+ 2. Fix the SonarQube quality gate failures identified in step 1
8
+ 3. Run /git-commit
@@ -0,0 +1,89 @@
1
+ ---
2
+ name: tasks-load
3
+ description: This skill should be used when loading tasks from a project directory into the current Claude Code session. It reads task JSON files from session subdirectories, recreates them in the current session, and sets the active project marker.
4
+ allowed-tools: ["Read", "Bash", "TaskCreate", "TaskUpdate", "TaskList"]
5
+ argument-hint: "<project-name>"
6
+ ---
7
+
8
+ # Load Project Tasks
9
+
10
+ Load tasks from `projects/$ARGUMENTS/tasks/` into the current Claude Code session.
11
+
12
+ Tasks are stored in session subdirectories to preserve history across `/clear` commands:
13
+ ```
14
+ projects/$ARGUMENTS/tasks/
15
+ ├── {session-1-uuid}/
16
+ │ ├── 1.json
17
+ │ └── 2.json
18
+ └── {session-2-uuid}/
19
+ ├── 1.json
20
+ └── 2.json
21
+ ```
22
+
23
+ ## Process
24
+
25
+ ### Step 1: Validate Project
26
+
27
+ Check if the project exists and has task files:
28
+
29
+ ```bash
30
+ find projects/$ARGUMENTS/tasks -name "*.json" 2>/dev/null | head -5
31
+ ```
32
+
33
+ If no task files exist, report: "No tasks found in projects/$ARGUMENTS/tasks/"
34
+
35
+ List available sessions:
36
+
37
+ ```bash
38
+ ls -dt projects/$ARGUMENTS/tasks/*/ 2>/dev/null | head -10
39
+ ```
40
+
41
+ ### Step 2: Set Active Project
42
+
43
+ Create the active project marker:
44
+
45
+ ```bash
46
+ echo "$ARGUMENTS" > .claude-active-project
47
+ ```
48
+
49
+ This ensures any new tasks created will sync back to this project.
50
+
51
+ ### Step 3: Load Tasks
52
+
53
+ Find and load all task JSON files from ALL session directories:
54
+
55
+ ```bash
56
+ find projects/$ARGUMENTS/tasks -name "*.json" -type f
57
+ ```
58
+
59
+ For each JSON file found:
60
+
61
+ 1. Read the task JSON file
62
+ 2. Use TaskCreate to recreate the task with:
63
+ - subject from JSON
64
+ - description from JSON
65
+ - activeForm from JSON
66
+ - metadata: `{ "project": "$ARGUMENTS" }`
67
+ 3. If the task was already completed (status: "completed"), use TaskUpdate to mark it completed
68
+
69
+ ### Step 4: Report
70
+
71
+ After loading all tasks, report:
72
+
73
+ ```
74
+ Loaded X tasks from projects/$ARGUMENTS/tasks/
75
+ - Sessions found: N
76
+ - Pending: Y
77
+ - Completed: Z
78
+
79
+ Active project set to: $ARGUMENTS
80
+ New tasks will automatically sync to this project.
81
+ ```
82
+
83
+ ## Notes
84
+
85
+ - Tasks are recreated with new IDs in the current session
86
+ - The original task IDs from the project are not preserved
87
+ - Tasks from ALL sessions are loaded (full history)
88
+ - Task dependencies (blocks/blockedBy) are NOT currently preserved across load/sync cycles
89
+ - Use TaskList to see the loaded tasks
@@ -0,0 +1,109 @@
1
+ ---
2
+ name: tasks-sync
3
+ description: This skill should be used when syncing current session tasks to a project directory. It exports all tasks from the current Claude Code session to JSON files in the project's tasks directory, enabling persistence across sessions.
4
+ allowed-tools: ["Read", "Write", "Bash", "TaskList", "TaskGet"]
5
+ argument-hint: "<project-name>"
6
+ ---
7
+
8
+ # Sync Tasks to Project
9
+
10
+ Sync all tasks from the current session to `projects/$ARGUMENTS/tasks/{session-id}/`.
11
+
12
+ This skill is for manual syncing when work started without setting an active project. Once synced, the automatic hook handles future task updates.
13
+
14
+ ## Process
15
+
16
+ ### Step 1: Validate Project
17
+
18
+ Check if the project directory exists:
19
+
20
+ ```bash
21
+ ls -d projects/$ARGUMENTS 2>/dev/null
22
+ ```
23
+
24
+ If the project doesn't exist, ask: "Project '$ARGUMENTS' doesn't exist. Create it?"
25
+
26
+ If yes, create the project structure:
27
+
28
+ ```bash
29
+ mkdir -p projects/$ARGUMENTS/tasks
30
+ ```
31
+
32
+ ### Step 2: Determine Session ID
33
+
34
+ Find the current session by looking for the most recently modified task directory:
35
+
36
+ ```bash
37
+ ls -dt ~/.claude/tasks/*/ 2>/dev/null | head -1 | xargs basename
38
+ ```
39
+
40
+ If no session found, use a timestamp-based identifier:
41
+
42
+ ```bash
43
+ echo "manual-$(date +%Y%m%d-%H%M%S)"
44
+ ```
45
+
46
+ Store the session ID for use in subsequent steps.
47
+
48
+ ### Step 3: Set Active Project
49
+
50
+ Create/update the active project marker:
51
+
52
+ ```bash
53
+ echo "$ARGUMENTS" > .claude-active-project
54
+ ```
55
+
56
+ ### Step 4: Get Current Tasks
57
+
58
+ Use TaskList to get all tasks in the current session.
59
+
60
+ ### Step 5: Sync Each Task
61
+
62
+ For each task from TaskList:
63
+
64
+ 1. Use TaskGet to get full task details
65
+ 2. Create the session directory:
66
+
67
+ ```bash
68
+ mkdir -p projects/$ARGUMENTS/tasks/{session-id}
69
+ ```
70
+
71
+ 3. Create a JSON file with the task data:
72
+
73
+ ```json
74
+ {
75
+ "id": "<task-id>",
76
+ "subject": "<subject>",
77
+ "description": "<description>",
78
+ "activeForm": "<activeForm>",
79
+ "status": "<status>",
80
+ "blocks": [],
81
+ "blockedBy": []
82
+ }
83
+ ```
84
+
85
+ 4. Write to `projects/$ARGUMENTS/tasks/{session-id}/<id>.json`
86
+
87
+ ### Step 6: Stage for Git
88
+
89
+ ```bash
90
+ git add projects/$ARGUMENTS/tasks/{session-id}/*.json
91
+ ```
92
+
93
+ ### Step 7: Report
94
+
95
+ ```
96
+ Synced X tasks to projects/$ARGUMENTS/tasks/{session-id}/
97
+ - Pending: Y
98
+ - In Progress: Z
99
+ - Completed: W
100
+
101
+ Files staged for commit. Run /git-commit when ready.
102
+ ```
103
+
104
+ ## Notes
105
+
106
+ - This skill manually syncs all current tasks to a project
107
+ - Use this when work started without a project context
108
+ - After syncing, the active project is set so future tasks auto-sync via the hook
109
+ - Each sync creates a new session directory to preserve history
@@ -0,0 +1,71 @@
1
+ /**
2
+ * This file is managed by Lisa.
3
+ * Do not edit directly — changes will be overwritten on the next `lisa` run.
4
+ */
5
+
6
+ /**
7
+ * Jest Configuration - CDK Stack
8
+ *
9
+ * Provides AWS CDK-specific Jest configuration targeting
10
+ * the test/ directory with spec and integration-spec patterns.
11
+ *
12
+ * Inheritance chain:
13
+ * jest.cdk.ts (this file)
14
+ * └── jest.base.ts
15
+ *
16
+ * @see https://jestjs.io/docs/configuration
17
+ * @module jest.cdk
18
+ */
19
+ import type { Config } from "jest";
20
+
21
+ import {
22
+ defaultCoverageExclusions,
23
+ defaultThresholds,
24
+ mergeConfigs,
25
+ mergeThresholds,
26
+ } from "./jest.base.ts";
27
+
28
+ // Re-export base utilities for entry-point configs
29
+ export {
30
+ defaultCoverageExclusions,
31
+ defaultThresholds,
32
+ mergeConfigs,
33
+ mergeThresholds,
34
+ };
35
+
36
+ /**
37
+ * Options for configuring the CDK Jest config factory.
38
+ */
39
+ interface CdkJestOptions {
40
+ /** Coverage thresholds (merged defaults + project overrides) */
41
+ readonly thresholds?: Config["coverageThreshold"];
42
+ }
43
+
44
+ /**
45
+ * Creates a Jest configuration for AWS CDK projects.
46
+ *
47
+ * @param options - Configuration options for threshold overrides
48
+ * @param options.thresholds - Coverage thresholds (merged defaults + project overrides)
49
+ * @returns Jest config object with ts-jest transform, node environment, and CDK-specific paths
50
+ * @remarks CDK projects typically use CommonJS modules and keep tests in a
51
+ * separate test/ directory. Coverage is collected only from lib/ and util/
52
+ * directories since bin/ contains entry-point code with minimal logic.
53
+ */
54
+ export const getCdkJestConfig = ({
55
+ thresholds = defaultThresholds,
56
+ }: CdkJestOptions = {}): Config => ({
57
+ testEnvironment: "node",
58
+ roots: ["<rootDir>/test"],
59
+ testRegex: "(.*\\.(spec|integration-spec)\\.ts)$",
60
+ transform: {
61
+ "^.+\\.ts$": "ts-jest",
62
+ },
63
+ moduleFileExtensions: ["js", "json", "ts"],
64
+ collectCoverageFrom: [
65
+ "lib/**/*.ts",
66
+ "util/**/*.ts",
67
+ ...defaultCoverageExclusions,
68
+ ],
69
+ coverageThreshold: thresholds,
70
+ testTimeout: 10000,
71
+ });