@codyswann/lisa 1.27.0 → 1.28.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 (38) hide show
  1. package/all/copy-overwrite/.claude/README.md +63 -37
  2. package/all/copy-overwrite/.claude/commands/jira/sync.md +7 -0
  3. package/all/copy-overwrite/.claude/commands/plan/add-test-coverage.md +0 -1
  4. package/all/copy-overwrite/.claude/commands/plan/create.md +3 -3
  5. package/all/copy-overwrite/.claude/commands/plan/fix-linter-error.md +0 -1
  6. package/all/copy-overwrite/.claude/commands/plan/implement.md +2 -2
  7. package/all/copy-overwrite/.claude/commands/plan/reduce-max-lines-per-function.md +0 -1
  8. package/all/copy-overwrite/.claude/commands/plan/reduce-max-lines.md +0 -1
  9. package/all/copy-overwrite/.claude/commands/security/zap-scan.md +6 -0
  10. package/all/copy-overwrite/.claude/hooks/ticket-sync-reminder.sh +20 -0
  11. package/all/copy-overwrite/.claude/rules/lisa.md +1 -1
  12. package/all/copy-overwrite/.claude/rules/plan.md +101 -39
  13. package/all/copy-overwrite/.claude/rules/verfication.md +3 -2
  14. package/all/copy-overwrite/.claude/settings.json +5 -0
  15. package/all/copy-overwrite/.claude/skills/git-commit/SKILL.md +0 -1
  16. package/all/copy-overwrite/.claude/skills/git-commit-and-submit-pr/SKILL.md +1 -2
  17. package/all/copy-overwrite/.claude/skills/git-submit-pr/SKILL.md +0 -1
  18. package/all/copy-overwrite/.claude/skills/jira-create/SKILL.md +0 -1
  19. package/all/copy-overwrite/.claude/skills/jira-sync/SKILL.md +63 -0
  20. package/all/copy-overwrite/.claude/skills/jira-verify/SKILL.md +0 -1
  21. package/all/copy-overwrite/.claude/skills/lisa-review-implementation/SKILL.md +0 -1
  22. package/all/copy-overwrite/.claude/skills/plan-add-test-coverage/SKILL.md +12 -22
  23. package/all/copy-overwrite/.claude/skills/plan-create/SKILL.md +173 -0
  24. package/all/copy-overwrite/.claude/skills/plan-fix-linter-error/SKILL.md +13 -31
  25. package/all/copy-overwrite/.claude/skills/plan-implement/SKILL.md +29 -0
  26. package/all/copy-overwrite/.claude/skills/plan-lower-code-complexity/SKILL.md +11 -25
  27. package/all/copy-overwrite/.claude/skills/plan-reduce-max-lines/SKILL.md +11 -25
  28. package/all/copy-overwrite/.claude/skills/plan-reduce-max-lines-per-function/SKILL.md +11 -27
  29. package/all/copy-overwrite/.claude/skills/pull-request-review/SKILL.md +0 -1
  30. package/all/copy-overwrite/.claude/skills/security-zap-scan/SKILL.md +33 -0
  31. package/all/copy-overwrite/.claude/skills/sonarqube-fix/SKILL.md +1 -1
  32. package/all/copy-overwrite/.claude/skills/tasks-load/SKILL.md +0 -1
  33. package/all/copy-overwrite/.claude/skills/tasks-sync/SKILL.md +0 -1
  34. package/all/copy-overwrite/CLAUDE.md +0 -1
  35. package/all/deletions.json +23 -1
  36. package/nestjs/copy-overwrite/.claude/commands/security/zap-scan.md +6 -0
  37. package/nestjs/copy-overwrite/.claude/skills/security-zap-scan/SKILL.md +33 -0
  38. package/package.json +1 -1
@@ -2,7 +2,6 @@
2
2
  name: plan-add-test-coverage
3
3
  description: This skill should be used when increasing test coverage to a specified threshold percentage. It runs the coverage report, identifies files with the lowest coverage, generates a brief with coverage gaps, and creates a plan with tasks to add the missing tests.
4
4
  allowed-tools: ["Read", "Bash", "Glob", "Grep"]
5
- argument-hint: "<threshold-percentage>"
6
5
 
7
6
  ---
8
7
 
@@ -24,31 +23,22 @@ If no argument provided, prompt the user for a target.
24
23
  - Current coverage % (lines, branches, functions)
25
24
  - Which lines/branches are uncovered
26
25
 
27
- ## Step 2: Create Plan
26
+ ## Step 2: Compile Brief and Delegate
28
27
 
29
- In plan mode, create a plan that includes the following details:
28
+ Compile the gathered information into a structured brief:
30
29
 
31
- ```markdown
30
+ ```
32
31
  Increase test coverage from [current]% to $ARGUMENTS%.
33
32
 
34
- ## Files Needing Coverage (ordered by coverage gap)
35
-
36
- 1. src/services/user.ts - 23% coverage (target: $ARGUMENTS%)
37
- - Uncovered: lines 45-67, 89-102
38
- - Missing branch coverage: lines 34, 56
39
- 2. src/utils/helpers.ts - 34% coverage (target: $ARGUMENTS%)
40
- - Uncovered: lines 12-45
41
- ...
33
+ Files needing coverage (ordered by coverage gap):
34
+ 1. [file] - [current]% coverage (target: $ARGUMENTS%)
35
+ - Uncovered: [lines]
36
+ - Missing branch coverage: [lines]
37
+ 2. ...
42
38
 
43
- ## Configuration
44
- - Config file: [path to coverage config]
45
- - Update thresholds to $ARGUMENTS% for: lines, branches, functions, statements
39
+ Configuration: [config file path], update thresholds to $ARGUMENTS%
46
40
 
47
- ## Acceptance Criteria
48
- - All files meet $ARGUMENTS% coverage threshold
49
- - `bun run test:cov` passes with no threshold violations
50
-
51
- ## Verification
52
- Command: `bun run test:cov`
53
- Expected: All thresholds pass at $ARGUMENTS%
41
+ Verification: `bun run test:cov` → Expected: All thresholds pass at $ARGUMENTS%
54
42
  ```
43
+
44
+ Invoke `/plan-create` with this brief to create the implementation plan.
@@ -0,0 +1,173 @@
1
+ ---
2
+ name: plan-create
3
+ description: "Creates an implementation plan from a ticket URL, file path, or text description. Spawns an Agent Team for parallel research, review, and synthesis. Detects plan type (Bug/Task/Story/Epic) and applies type-specific requirements."
4
+ ---
5
+
6
+ # Create Implementation Plan
7
+
8
+ Create an implementation plan for: $ARGUMENTS
9
+
10
+ ## Step 1: Parse Input
11
+
12
+ Determine the input type from `$ARGUMENTS`:
13
+
14
+ 1. **Ticket URL/ID** — For when the argument references a JIRA, Github or Linear issue/ticket number or url
15
+ - Fetch ticket details with the appropriate CLI or MCP Server
16
+ - Extract: title, description, acceptance criteria, priority, epic/parent
17
+ - Note the ticket URL for continuous integration updates
18
+
19
+ 2. **File path** — If the the arguments reference a file:
20
+ - Read the file contents
21
+ - Use the file as context for the plan
22
+
23
+ 3. **Free text** — Otherwise, treat the entire argument as a text description of the work
24
+
25
+ If no argument provided, prompt the user for input.
26
+
27
+ ## Step 2: Detect Plan Type
28
+
29
+ Analyze the input to determine the plan type:
30
+
31
+ | Type | Indicators |
32
+ |------|------------|
33
+ | **Bug** | Describes symptoms, errors, incorrect behavior, "broken", "fails", "crash", "regression" |
34
+ | **Story/Feature** | Describes new capability, user-facing change, "add", "implement", "create", "as a user" |
35
+ | **Task** | Describes internal work, refactoring, configuration, maintenance, "update", "migrate", "refactor" |
36
+ | **Epic** | Describes large scope with multiple features/stories, "overhaul", "redesign", multiple distinct deliverables |
37
+
38
+ If the type is ambiguous, default to **Task**.
39
+
40
+ ## Step 3: Spawn Research Team
41
+
42
+ Create an Agent Team to research the work in parallel. The team lead operates in **delegate mode** (coordination only, no direct implementation). All teammates are spawned in **plan mode** so the team lead can review their findings before synthesis.
43
+
44
+ ### Phase 1: Research (parallel)
45
+
46
+ Spawn these three teammates simultaneously:
47
+
48
+ #### Ticket/Task Researcher
49
+ - **Name**: `researcher`
50
+ - **Agent type**: `general-purpose`
51
+ - **Mode**: `plan`
52
+ - **Prompt**: Research the input (ticket, file, or description). If a ticket URL, fetch full details via JIRA MCP or GitHub CLI. If a bug, attempt to reproduce it empirically (Playwright, browser, direct API call, etc.). Extract requirements, acceptance criteria, and context.
53
+
54
+ #### Codebase Explorer
55
+ - **Name**: `explorer`
56
+ - **Agent type**: `Explore`
57
+ - **Mode**: `plan`
58
+ - **Prompt**: Explore the codebase for relevant code, existing patterns, and reusable scripts. Read lint and format rules to understand project standards. Identify files that would need modification, existing utilities that can be reused, and architecture constraints. Check for existing scripts in `package.json` that could be used for replication or verification.
59
+
60
+ #### Devil's Advocate
61
+ - **Name**: `devils-advocate`
62
+ - **Agent type**: `general-purpose`
63
+ - **Mode**: `plan`
64
+ - **Prompt**: Review the input from a critical perspective. Identify anti-patterns, N+1 queries, missing edge cases, security concerns, and performance issues. Do not assume anti-patterns are acceptable just because they exist in the codebase — undocumented anti-patterns should be flagged, not used as reference.
65
+
66
+ ### Phase 2: Review (parallel, after Phase 1 findings are synthesized)
67
+
68
+ After collecting and synthesizing Phase 1 findings into a draft plan, spawn these two reviewers simultaneously:
69
+
70
+ #### Tech Reviewer
71
+ - **Name**: `tech-reviewer`
72
+ - **Agent type**: `tech-reviewer`
73
+ - **Mode**: `plan`
74
+ - **Prompt**: Review the draft plan for correctness, security, and coding-philosophy compliance. Validate the proposed approach, identify technical risks, and confirm the implementation strategy is sound. Flag any issues ranked by severity.
75
+
76
+ #### Product Reviewer
77
+ - **Name**: `product-reviewer`
78
+ - **Agent type**: `product-reviewer`
79
+ - **Mode**: `plan`
80
+ - **Prompt**: Review the draft plan from a non-technical/UX perspective. Does the plan solve the right problem? Will the proposed solution work for end users? Are there user-facing concerns the technical team may have missed?
81
+
82
+ ### Bug-Specific Rules
83
+
84
+ If the plan type is **Bug**:
85
+
86
+ - The bug **must** be empirically replicated (Playwright, browser, direct API call, etc.) — not guessed at
87
+ - If the research team cannot reproduce the bug, **STOP**. Update the ticket with findings and what additional information is needed, then end the session
88
+ - Do not attempt to fix a bug you cannot prove exists
89
+ - Never include solutions with obvious anti-patterns (e.g., N+1 queries). If unavoidable due to API limitations, **STOP** and update the ticket with what is needed
90
+
91
+ ## Step 4: Synthesize & Write Plan
92
+
93
+ After all teammates have reported and the team lead has approved their findings:
94
+
95
+ 1. Synthesize findings into a unified plan and save it
96
+ 2. The plan must include, at minimum, the info found in the @.claude/rules/plan.md rule
97
+
98
+ ### Plan Structure
99
+
100
+ The plan file must include, at minimum:
101
+
102
+ 1. **Title and context** — What is being done and why
103
+ 2. **Input source** — Ticket URL, file path, or description
104
+ 3. **Plan type** — Bug, Task, Story/Feature, or Epic
105
+ 4. **Branch and PR** — Following branch/PR rules from @.claude/rules/plan.md
106
+ 5. **Analysis** — Synthesized research findings from all teammates
107
+ 6. **Implementation approach** — How the work will be done
108
+ 7. **Tasks** — Following the Task Creation Specification from @.claude/rules/plan.md
109
+ 8. **Implementation Team** — Instructions to spawn a second Agent Team (see Step 6)
110
+
111
+ ### Type-Specific Requirements
112
+
113
+ Apply these additional requirements based on the detected type:
114
+
115
+ #### Bug
116
+ - **Replication step** (mandatory): Include a task to reproduce the bug empirically before any fix
117
+ - **Root cause analysis**: Identify why the bug occurs, not just what triggers it
118
+ - **Regression test**: Write a test that fails without the fix and passes with it
119
+ - **Verification**: Run the replication step again after the fix to confirm resolution
120
+ - **Proof command**: Every fix task must include a proof command and expected output
121
+
122
+ #### Story/Feature
123
+ - **UX review**: Include a product-reviewer agent task to validate from user perspective
124
+ - **Feature flag consideration**: Note whether this should be behind a feature flag
125
+ - **Documentation**: Include user-facing documentation if applicable
126
+
127
+ #### Task
128
+ - **Standard implementation** with empirical verification
129
+
130
+ #### Epic
131
+ - **Decompose into sub-tasks**: Break into Stories, Tasks, and/or Bugs
132
+ - **Each sub-task gets its own type-specific requirements**
133
+ - **Dependency mapping**: Identify which sub-tasks depend on others
134
+
135
+ ## Step 5: Include Required Tasks
136
+
137
+ Include all required tasks defined in the @.claude/rules/plan.md rule (Required Tasks section), including the archive task which must always be last.
138
+
139
+ ## Step 6: Implementation Team Instructions
140
+
141
+ The plan must include instructions to spawn a **second Agent Team** for implementation. Recommend these specialized agents:
142
+
143
+ | Agent | Use For |
144
+ |-------|---------|
145
+ | `implementer` | Code implementation (pre-loaded with project conventions) |
146
+ | `tech-reviewer` | Technical review (correctness, security, performance) |
147
+ | `product-reviewer` | Product/UX review (validates from non-technical perspective) |
148
+ | `learner` | Post-implementation learning (processes learnings into skills/rules) |
149
+ | `test-coverage-agent` | Writing comprehensive tests |
150
+ | `code-simplifier` | Code simplification and refinement |
151
+ | `coderabbit` | Automated AI code review |
152
+
153
+ The **team lead** handles git operations (commits, pushes, PR management) — teammates focus on their specialized work.
154
+
155
+ ## Step 7: Ticket Integration
156
+
157
+ If the input was a ticket ID or URL:
158
+
159
+ 1. Include the ticket URL in the plan metadata
160
+ 2. Associate the branch and PR with the ticket
161
+ 3. Post the approved plan as a comment on the ticket
162
+ 4. Use `/jira-sync` at key milestones
163
+ 5. If blocked (cannot reproduce, unavoidable anti-pattern, missing information, etc.), update the ticket before stopping
164
+
165
+ ## Step 8: Present to User
166
+
167
+ Present the synthesized plan to the user for review. The user should be able to:
168
+
169
+ - Approve the plan as-is
170
+ - Request modifications
171
+ - Reject the plan
172
+
173
+ All decisions in the plan must include a recommendation. If a decision is left unresolved, use the recommended option.
@@ -2,7 +2,6 @@
2
2
  name: plan-fix-linter-error
3
3
  description: This skill should be used when fixing all violations of one or more ESLint rules across the codebase. It runs the linter, groups violations by rule and file, generates a brief with fix strategies, and creates a plan with tasks to implement the fixes.
4
4
  allowed-tools: ["Read", "Bash", "Glob", "Grep"]
5
- argument-hint: "<rule-1> [rule-2] [rule-3] ..."
6
5
 
7
6
  ---
8
7
 
@@ -24,40 +23,23 @@ If no arguments provided, prompt the user for at least one lint rule name.
24
23
  - Violation count per file
25
24
  - Sample error messages
26
25
 
27
- ## Step 2: Create Plan
26
+ ## Step 2: Compile Brief and Delegate
28
27
 
29
- In plan mode, create a plan that includes the following details:
28
+ Compile the gathered information into a structured brief:
30
29
 
31
- ```markdown
30
+ ```
32
31
  Fix ESLint violations for rules: $ARGUMENTS
33
32
 
34
- ## Violations by Rule
35
-
36
- ### [rule-name-1] (X total violations across Y files)
37
-
38
- 1. src/services/user.ts (5 violations)
39
- - Line 23: [error message]
40
- - Line 45: [error message]
41
- - Line 67: [error message]
42
- ...
43
- 2. src/utils/helpers.ts (3 violations)
44
- - Line 12: [error message]
45
- ...
33
+ Violations by rule:
34
+ - [rule-name-1]: X total violations across Y files
35
+ - [file]: N violations (lines: ...)
36
+ - ...
37
+ - [rule-name-2]: X total violations across Y files
38
+ - ...
46
39
 
47
- ### [rule-name-2] (X total violations across Y files)
48
- ...
40
+ Fix strategies: extract functions, early returns, apply formatting, add types
49
41
 
50
- ## Fix Strategies
51
- - **Complexity rules** (sonarjs/*): Extract functions, early returns, simplify conditions
52
- - **Style rules** (prettier/*, import/order): Apply formatting fixes
53
- - **Best practice rules** (react-hooks/*, prefer-const): Refactor to recommended pattern
54
- - **Type rules** (@typescript-eslint/*): Add proper types, remove `any`
55
-
56
- ## Acceptance Criteria
57
- - `bun run lint` passes with zero violations for: $ARGUMENTS
58
- - Each rule's fixes committed separately: `fix(lint): resolve [rule-name] violations`
59
-
60
- ## Verification
61
- Command: `bun run lint 2>&1 | grep -E "($ARGUMENTS)" | wc -l`
62
- Expected: 0
42
+ Verification: `bun run lint 2>&1 | grep -E "($ARGUMENTS)" | wc -l` → Expected: 0
63
43
  ```
44
+
45
+ Invoke `/plan-create` with this brief to create the implementation plan.
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: plan-implement
3
+ description: "Implements an existing plan file by reading its tasks and executing them. Spawns an Agent Team with specialized agents for parallel implementation."
4
+ ---
5
+
6
+ # Implement Plan
7
+
8
+ Implement the requirements in $ARGUMENTS.
9
+
10
+ If no argument provided, search for plan files in the `plans/` directory and present them to the user for selection.
11
+
12
+ ## Workflow
13
+
14
+ 1. **Read the plan file** specified in `$ARGUMENTS`
15
+ 2. **Parse all tasks** from the plan, including their dependencies, descriptions, and verification requirements
16
+ 3. **Create tasks** using TaskCreate for each task in the plan
17
+ 4. **Set up dependencies** between tasks using TaskUpdate (addBlockedBy/addBlocks)
18
+ 5. **Spawn an Agent Team** with specialized agents to execute tasks in parallel where dependencies allow
19
+ 6. **Execute tasks** following the plan's specified order and dependency graph
20
+ 7. **Verify each task** using its verification metadata before marking complete
21
+ 8. **Commit changes** after implementation using conventional commit format
22
+
23
+ ## Agent Team Composition
24
+
25
+ Use the specialized agents listed in the `plan.md` rule (Implementation Team Guidance section). The **team lead** handles git operations (commits, pushes, PR management) -- teammates focus on their specialized work.
26
+
27
+ ## Execution
28
+
29
+ Read the plan and begin implementation now.
@@ -23,36 +23,22 @@ Reduces the cognitive complexity threshold by 2 and fixes all violations.
23
23
 
24
24
  If no violations at new threshold, report success and exit.
25
25
 
26
- ## Step 2: Create Plan
26
+ ## Step 2: Compile Brief and Delegate
27
27
 
28
- In plan mode, create a plan that includes the following details:
28
+ Compile the gathered information into a structured brief:
29
29
 
30
- ```markdown
30
+ ```
31
31
  Reduce cognitive complexity threshold from [current] to [new].
32
32
 
33
- ## Functions Exceeding Threshold (ordered by complexity)
33
+ Functions exceeding threshold (ordered by complexity):
34
+ 1. [file:function] (complexity: X, target: [new]) - Line Y
35
+ 2. ...
34
36
 
35
- 1. src/services/user.ts:processUser (complexity: 18, target: [new])
36
- - Line 45, function spans lines 45-120
37
- 2. src/utils/helpers.ts:validateInput (complexity: 15, target: [new])
38
- - Line 23, function spans lines 23-67
39
- ...
37
+ Configuration change: [eslint config path], cognitive-complexity from [current] to [new]
40
38
 
41
- ## Configuration Change
42
- - File: [eslint config path]
43
- - Change: cognitive-complexity threshold from [current] to [new]
39
+ Refactoring strategies: extract functions, early returns, extract conditions, use lookup tables
44
40
 
45
- ## Refactoring Strategies
46
- - **Extract functions**: Break complex logic into smaller, named functions
47
- - **Early returns**: Reduce nesting with guard clauses
48
- - **Extract conditions**: Move complex boolean logic into named variables
49
- - **Use lookup tables**: Replace complex switch/if-else chains with object maps
41
+ Verification: `bun run lint 2>&1 | grep "cognitive-complexity" | wc -l` → Expected: 0
42
+ ```
50
43
 
51
- ## Acceptance Criteria
52
- - All functions at or below complexity [new]
53
- - `bun run lint` passes with no cognitive-complexity violations
54
-
55
- ## Verification
56
- Command: `bun run lint 2>&1 | grep "cognitive-complexity" | wc -l`
57
- Expected: 0
58
- ```
44
+ Invoke `/plan-create` with this brief to create the implementation plan.
@@ -2,7 +2,6 @@
2
2
  name: plan-reduce-max-lines
3
3
  description: This skill should be used when reducing the maximum file lines threshold and fixing all violations. It updates the eslint threshold configuration, identifies files exceeding the new limit, generates a brief with refactoring strategies, and creates a plan with tasks to split oversized files.
4
4
  allowed-tools: ["Read", "Bash", "Glob", "Grep"]
5
- argument-hint: "<max-lines-value>"
6
5
 
7
6
  ---
8
7
 
@@ -25,35 +24,22 @@ If no argument provided, prompt the user for a target.
25
24
 
26
25
  If no violations at $ARGUMENTS, report success and exit.
27
26
 
28
- ## Step 2: Create Plan
27
+ ## Step 2: Compile Brief and Delegate
29
28
 
30
- In plan mode, create a plan that includes the following details:
29
+ Compile the gathered information into a structured brief:
31
30
 
32
- ```markdown
31
+ ```
33
32
  Reduce max file lines threshold to $ARGUMENTS.
34
33
 
35
- ## Files Exceeding Threshold (ordered by line count)
36
-
37
- 1. src/services/user.ts (450 lines, target: $ARGUMENTS)
38
- 2. src/utils/helpers.ts (380 lines, target: $ARGUMENTS)
39
- 3. src/components/Dashboard.tsx (320 lines, target: $ARGUMENTS)
40
- ...
34
+ Files exceeding threshold (ordered by line count):
35
+ 1. [file] - [current] lines (target: $ARGUMENTS)
36
+ 2. ...
41
37
 
42
- ## Configuration Change
43
- - File: eslint.thresholds.json
44
- - Change: maxLines to $ARGUMENTS
38
+ Configuration change: eslint.thresholds.json, maxLines to $ARGUMENTS
45
39
 
46
- ## Refactoring Strategies
47
- - **Extract modules**: Break file into smaller focused modules
48
- - **Remove duplication**: Consolidate repeated logic
49
- - **Delete dead code**: Remove unused functions/code paths
50
- - **Simplify logic**: Use early returns, reduce nesting
40
+ Refactoring strategies: extract modules, remove duplication, delete dead code, simplify logic
51
41
 
52
- ## Acceptance Criteria
53
- - All files at or below $ARGUMENTS lines
54
- - `bun run lint` passes with no max-lines violations
55
-
56
- ## Verification
57
- Command: `bun run lint 2>&1 | grep "max-lines" | wc -l`
58
- Expected: 0
42
+ Verification: `bun run lint 2>&1 | grep "max-lines" | wc -l` → Expected: 0
59
43
  ```
44
+
45
+ Invoke `/plan-create` with this brief to create the implementation plan.
@@ -2,7 +2,6 @@
2
2
  name: plan-reduce-max-lines-per-function
3
3
  description: This skill should be used when reducing the maximum lines per function threshold and fixing all violations. It updates the eslint threshold configuration, identifies functions exceeding the new limit, generates a brief with refactoring strategies, and creates a plan with tasks to split oversized functions.
4
4
  allowed-tools: ["Read", "Bash", "Glob", "Grep"]
5
- argument-hint: "<max-lines-per-function-value>"
6
5
 
7
6
  ---
8
7
 
@@ -26,37 +25,22 @@ If no argument provided, prompt the user for a target.
26
25
 
27
26
  If no violations at $ARGUMENTS, report success and exit.
28
27
 
29
- ## Step 2: Create Plan
28
+ ## Step 2: Compile Brief and Delegate
30
29
 
31
- In plan mode, create a plan that includes the following details:
30
+ Compile the gathered information into a structured brief:
32
31
 
33
- ```markdown
32
+ ```
34
33
  Reduce max lines per function threshold to $ARGUMENTS.
35
34
 
36
- ## Functions Exceeding Threshold (ordered by line count)
37
-
38
- 1. src/services/user.ts:processUser (95 lines, target: $ARGUMENTS)
39
- - Line 45, function spans lines 45-140
40
- 2. src/utils/helpers.ts:validateInput (82 lines, target: $ARGUMENTS)
41
- - Line 23, function spans lines 23-105
42
- ...
35
+ Functions exceeding threshold (ordered by line count):
36
+ 1. [file:function] (lines: X, target: $ARGUMENTS) - Line Y
37
+ 2. ...
43
38
 
44
- ## Configuration Change
45
- - File: eslint.thresholds.json
46
- - Change: maxLinesPerFunction to $ARGUMENTS
39
+ Configuration change: eslint.thresholds.json, maxLinesPerFunction to $ARGUMENTS
47
40
 
48
- ## Refactoring Strategies
49
- - **Extract functions**: Break function into smaller named functions
50
- - **Early returns**: Reduce nesting with guard clauses
51
- - **Extract conditions**: Move complex boolean logic into named variables
52
- - **Use lookup tables**: Replace complex switch/if-else chains with object maps
53
- - **Consolidate logic**: Merge similar code paths
41
+ Refactoring strategies: extract functions, early returns, extract conditions, use lookup tables, consolidate logic
54
42
 
55
- ## Acceptance Criteria
56
- - All functions at or below $ARGUMENTS lines
57
- - `bun run lint` passes with no max-lines-per-function violations
58
-
59
- ## Verification
60
- Command: `bun run lint 2>&1 | grep "max-lines-per-function" | wc -l`
61
- Expected: 0
43
+ Verification: `bun run lint 2>&1 | grep "max-lines-per-function" | wc -l` → Expected: 0
62
44
  ```
45
+
46
+ Invoke `/plan-create` with this brief to create the implementation plan.
@@ -2,7 +2,6 @@
2
2
  name: pull-request-review
3
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
4
  allowed-tools: ["Read", "Bash", "Glob", "Grep"]
5
- argument-hint: "<github-pr-link>"
6
5
  ---
7
6
 
8
7
  # Review PR Comments
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: security-zap-scan
3
+ description: "Run an OWASP ZAP baseline security scan locally using Docker. Checks for the ZAP baseline script, executes the scan, and summarizes findings by risk level with remediation recommendations."
4
+ allowed-tools: ["Bash", "Read"]
5
+ ---
6
+
7
+ # OWASP ZAP Baseline Security Scan
8
+
9
+ Run a ZAP baseline security scan against the local application.
10
+
11
+ ## Workflow
12
+
13
+ 1. **Check prerequisites**:
14
+ - Verify Docker is installed and running: `docker info`
15
+ - Check if `scripts/zap-baseline.sh` exists in the project
16
+
17
+ 2. **Execute scan**:
18
+ - If the script exists, run: `bash scripts/zap-baseline.sh`
19
+ - If the script does not exist, inform the user that this project does not have a ZAP baseline scan configured
20
+
21
+ 3. **Analyze results**:
22
+ - After the scan completes, read `zap-report.html` (or `zap-report.md` for text)
23
+ - Summarize findings:
24
+ - Total number of alerts by risk level (High, Medium, Low, Informational)
25
+ - List each Medium+ finding with its rule ID, name, and recommended fix
26
+ - Categorize findings as "infrastructure-level" (fix at CDN/proxy) vs "application-level" (fix in code)
27
+
28
+ 4. **Handle failures**:
29
+ - If the scan failed, explain what failed and suggest concrete remediation steps
30
+
31
+ ## Execution
32
+
33
+ Run the scan now.
@@ -1,6 +1,6 @@
1
1
  ---
2
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.
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
4
  ---
5
5
 
6
6
  1. Run /sonarqube-check
@@ -2,7 +2,6 @@
2
2
  name: tasks-load
3
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
4
  allowed-tools: ["Read", "Bash", "TaskCreate", "TaskUpdate", "TaskList"]
5
- argument-hint: "<project-name>"
6
5
  ---
7
6
 
8
7
  # Load Project Tasks
@@ -2,7 +2,6 @@
2
2
  name: tasks-sync
3
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
4
  allowed-tools: ["Read", "Write", "Bash", "TaskList", "TaskGet"]
5
- argument-hint: "<project-name>"
6
5
  ---
7
6
 
8
7
  # Sync Tasks to Project
@@ -18,7 +18,6 @@ Always ignore build folders (dist, build, etc) unless specified otherwise
18
18
  Always delete and remove old code completely - no deprecation needed
19
19
  Always add `GIT_SSH_COMMAND="ssh -o ServerAliveInterval=30 -o ServerAliveCountMax=5" ` when running `git push`
20
20
  Always ignore knip configuration hints (warnings) — only fix actual unused exports/dependencies reported as errors
21
- Always err on the side of creating a plan before directly executing a coding task
22
21
 
23
22
  Never modify this file (CLAUDE.md) directly. To add a memory or learning, add it to .claude/rules/PROJECT_RULES.md or create a skill with /skill-creator.
24
23
  Never commit changes to an environment branch (dev, staging, main) directly. This is enforced by the pre-commit hook.
@@ -19,6 +19,28 @@
19
19
  ".claude/skills/project-review",
20
20
  ".claude/skills/project-setup",
21
21
  ".claude/skills/project-verify",
22
- ".claude/skills/prompt-complexity-scorer"
22
+ ".claude/skills/prompt-complexity-scorer",
23
+ ".claude/skills/git:commit",
24
+ ".claude/skills/git:commit-and-submit-pr",
25
+ ".claude/skills/git:prune",
26
+ ".claude/skills/git:submit-pr",
27
+ ".claude/skills/jira:create",
28
+ ".claude/skills/jira:sync",
29
+ ".claude/skills/jira:verify",
30
+ ".claude/skills/lisa:review-implementation",
31
+ ".claude/skills/plan:add-test-coverage",
32
+ ".claude/skills/plan:create",
33
+ ".claude/skills/plan:fix-linter-error",
34
+ ".claude/skills/plan:implement",
35
+ ".claude/skills/plan:local-code-review",
36
+ ".claude/skills/plan:lower-code-complexity",
37
+ ".claude/skills/plan:reduce-max-lines",
38
+ ".claude/skills/plan:reduce-max-lines-per-function",
39
+ ".claude/skills/pull-request:review",
40
+ ".claude/skills/security:zap-scan",
41
+ ".claude/skills/sonarqube:check",
42
+ ".claude/skills/sonarqube:fix",
43
+ ".claude/skills/tasks:load",
44
+ ".claude/skills/tasks:sync"
23
45
  ]
24
46
  }
@@ -0,0 +1,6 @@
1
+ ---
2
+ description: "Run an OWASP ZAP baseline security scan locally using Docker"
3
+ allowed-tools: ["Skill"]
4
+ ---
5
+
6
+ Use the /security-zap-scan skill to run an OWASP ZAP baseline security scan.
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: security-zap-scan
3
+ description: "Run an OWASP ZAP baseline security scan locally using Docker. Checks for the ZAP baseline script, executes the scan, and summarizes findings by risk level with remediation recommendations."
4
+ allowed-tools: ["Bash", "Read"]
5
+ ---
6
+
7
+ # OWASP ZAP Baseline Security Scan
8
+
9
+ Run a ZAP baseline security scan against the local application.
10
+
11
+ ## Workflow
12
+
13
+ 1. **Check prerequisites**:
14
+ - Verify Docker is installed and running: `docker info`
15
+ - Check if `scripts/zap-baseline.sh` exists in the project
16
+
17
+ 2. **Execute scan**:
18
+ - If the script exists, run: `bash scripts/zap-baseline.sh`
19
+ - If the script does not exist, inform the user that this project does not have a ZAP baseline scan configured
20
+
21
+ 3. **Analyze results**:
22
+ - After the scan completes, read `zap-report.html` (or `zap-report.md` for text)
23
+ - Summarize findings:
24
+ - Total number of alerts by risk level (High, Medium, Low, Informational)
25
+ - List each Medium+ finding with its rule ID, name, and recommended fix
26
+ - Categorize findings as "infrastructure-level" (fix at CDN/proxy) vs "application-level" (fix in code)
27
+
28
+ 4. **Handle failures**:
29
+ - If the scan failed, explain what failed and suggest concrete remediation steps
30
+
31
+ ## Execution
32
+
33
+ Run the scan now.
package/package.json CHANGED
@@ -88,7 +88,7 @@
88
88
  "@isaacs/brace-expansion": "^5.0.1"
89
89
  },
90
90
  "name": "@codyswann/lisa",
91
- "version": "1.27.0",
91
+ "version": "1.28.0",
92
92
  "description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
93
93
  "main": "dist/index.js",
94
94
  "bin": {