@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.
- package/all/copy-overwrite/.claude/README.md +63 -37
- package/all/copy-overwrite/.claude/commands/jira/sync.md +7 -0
- package/all/copy-overwrite/.claude/commands/plan/add-test-coverage.md +0 -1
- package/all/copy-overwrite/.claude/commands/plan/create.md +3 -3
- package/all/copy-overwrite/.claude/commands/plan/fix-linter-error.md +0 -1
- package/all/copy-overwrite/.claude/commands/plan/implement.md +2 -2
- package/all/copy-overwrite/.claude/commands/plan/reduce-max-lines-per-function.md +0 -1
- package/all/copy-overwrite/.claude/commands/plan/reduce-max-lines.md +0 -1
- package/all/copy-overwrite/.claude/commands/security/zap-scan.md +6 -0
- package/all/copy-overwrite/.claude/hooks/ticket-sync-reminder.sh +20 -0
- package/all/copy-overwrite/.claude/rules/lisa.md +1 -1
- package/all/copy-overwrite/.claude/rules/plan.md +101 -39
- package/all/copy-overwrite/.claude/rules/verfication.md +3 -2
- package/all/copy-overwrite/.claude/settings.json +5 -0
- package/all/copy-overwrite/.claude/skills/git-commit/SKILL.md +0 -1
- package/all/copy-overwrite/.claude/skills/git-commit-and-submit-pr/SKILL.md +1 -2
- package/all/copy-overwrite/.claude/skills/git-submit-pr/SKILL.md +0 -1
- package/all/copy-overwrite/.claude/skills/jira-create/SKILL.md +0 -1
- package/all/copy-overwrite/.claude/skills/jira-sync/SKILL.md +63 -0
- package/all/copy-overwrite/.claude/skills/jira-verify/SKILL.md +0 -1
- package/all/copy-overwrite/.claude/skills/lisa-review-implementation/SKILL.md +0 -1
- package/all/copy-overwrite/.claude/skills/plan-add-test-coverage/SKILL.md +12 -22
- package/all/copy-overwrite/.claude/skills/plan-create/SKILL.md +173 -0
- package/all/copy-overwrite/.claude/skills/plan-fix-linter-error/SKILL.md +13 -31
- package/all/copy-overwrite/.claude/skills/plan-implement/SKILL.md +29 -0
- package/all/copy-overwrite/.claude/skills/plan-lower-code-complexity/SKILL.md +11 -25
- package/all/copy-overwrite/.claude/skills/plan-reduce-max-lines/SKILL.md +11 -25
- package/all/copy-overwrite/.claude/skills/plan-reduce-max-lines-per-function/SKILL.md +11 -27
- package/all/copy-overwrite/.claude/skills/pull-request-review/SKILL.md +0 -1
- package/all/copy-overwrite/.claude/skills/security-zap-scan/SKILL.md +33 -0
- package/all/copy-overwrite/.claude/skills/sonarqube-fix/SKILL.md +1 -1
- package/all/copy-overwrite/.claude/skills/tasks-load/SKILL.md +0 -1
- package/all/copy-overwrite/.claude/skills/tasks-sync/SKILL.md +0 -1
- package/all/copy-overwrite/CLAUDE.md +0 -1
- package/all/deletions.json +23 -1
- package/nestjs/copy-overwrite/.claude/commands/security/zap-scan.md +6 -0
- package/nestjs/copy-overwrite/.claude/skills/security-zap-scan/SKILL.md +33 -0
- 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:
|
|
26
|
+
## Step 2: Compile Brief and Delegate
|
|
28
27
|
|
|
29
|
-
|
|
28
|
+
Compile the gathered information into a structured brief:
|
|
30
29
|
|
|
31
|
-
```
|
|
30
|
+
```
|
|
32
31
|
Increase test coverage from [current]% to $ARGUMENTS%.
|
|
33
32
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
-
|
|
38
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
26
|
+
## Step 2: Compile Brief and Delegate
|
|
28
27
|
|
|
29
|
-
|
|
28
|
+
Compile the gathered information into a structured brief:
|
|
30
29
|
|
|
31
|
-
```
|
|
30
|
+
```
|
|
32
31
|
Fix ESLint violations for rules: $ARGUMENTS
|
|
33
32
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
48
|
-
...
|
|
40
|
+
Fix strategies: extract functions, early returns, apply formatting, add types
|
|
49
41
|
|
|
50
|
-
|
|
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:
|
|
26
|
+
## Step 2: Compile Brief and Delegate
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
Compile the gathered information into a structured brief:
|
|
29
29
|
|
|
30
|
-
```
|
|
30
|
+
```
|
|
31
31
|
Reduce cognitive complexity threshold from [current] to [new].
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
Functions exceeding threshold (ordered by complexity):
|
|
34
|
+
1. [file:function] (complexity: X, target: [new]) - Line Y
|
|
35
|
+
2. ...
|
|
34
36
|
|
|
35
|
-
|
|
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
|
-
|
|
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
|
-
|
|
46
|
-
|
|
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
|
-
|
|
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:
|
|
27
|
+
## Step 2: Compile Brief and Delegate
|
|
29
28
|
|
|
30
|
-
|
|
29
|
+
Compile the gathered information into a structured brief:
|
|
31
30
|
|
|
32
|
-
```
|
|
31
|
+
```
|
|
33
32
|
Reduce max file lines threshold to $ARGUMENTS.
|
|
34
33
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
-
|
|
43
|
-
- File: eslint.thresholds.json
|
|
44
|
-
- Change: maxLines to $ARGUMENTS
|
|
38
|
+
Configuration change: eslint.thresholds.json, maxLines to $ARGUMENTS
|
|
45
39
|
|
|
46
|
-
|
|
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
|
-
|
|
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:
|
|
28
|
+
## Step 2: Compile Brief and Delegate
|
|
30
29
|
|
|
31
|
-
|
|
30
|
+
Compile the gathered information into a structured brief:
|
|
32
31
|
|
|
33
|
-
```
|
|
32
|
+
```
|
|
34
33
|
Reduce max lines per function threshold to $ARGUMENTS.
|
|
35
34
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
|
|
45
|
-
- File: eslint.thresholds.json
|
|
46
|
-
- Change: maxLinesPerFunction to $ARGUMENTS
|
|
39
|
+
Configuration change: eslint.thresholds.json, maxLinesPerFunction to $ARGUMENTS
|
|
47
40
|
|
|
48
|
-
|
|
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
|
-
|
|
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
|
|
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.
|
package/all/deletions.json
CHANGED
|
@@ -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,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.
|
|
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": {
|