@codyswann/lisa 1.12.8 → 1.13.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 (62) 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/settings.json +2 -1
  31. package/all/copy-overwrite/.claude/skills/git-commit/SKILL.md +49 -0
  32. package/all/copy-overwrite/.claude/skills/git-commit-and-submit-pr/SKILL.md +9 -0
  33. package/all/copy-overwrite/.claude/skills/git-prune/SKILL.md +35 -0
  34. package/all/copy-overwrite/.claude/skills/git-submit-pr/SKILL.md +45 -0
  35. package/all/copy-overwrite/.claude/skills/jira-create/SKILL.md +42 -0
  36. package/all/copy-overwrite/.claude/skills/jira-verify/SKILL.md +30 -0
  37. package/all/copy-overwrite/.claude/skills/lisa-review-implementation/SKILL.md +210 -0
  38. package/all/copy-overwrite/.claude/skills/project-add-test-coverage/SKILL.md +58 -0
  39. package/all/copy-overwrite/.claude/skills/project-archive/SKILL.md +10 -0
  40. package/all/copy-overwrite/.claude/skills/project-bootstrap/SKILL.md +29 -0
  41. package/all/copy-overwrite/.claude/skills/project-debrief/SKILL.md +44 -0
  42. package/all/copy-overwrite/.claude/skills/project-document/SKILL.md +51 -0
  43. package/all/copy-overwrite/.claude/skills/project-execute/SKILL.md +68 -0
  44. package/all/copy-overwrite/.claude/skills/project-fix-linter-error/SKILL.md +67 -0
  45. package/all/copy-overwrite/.claude/skills/project-implement/SKILL.md +39 -0
  46. package/all/copy-overwrite/.claude/skills/project-local-code-review/SKILL.md +89 -0
  47. package/all/copy-overwrite/.claude/skills/project-lower-code-complexity/SKILL.md +62 -0
  48. package/all/copy-overwrite/.claude/skills/project-plan/SKILL.md +179 -0
  49. package/all/copy-overwrite/.claude/skills/project-reduce-max-lines/SKILL.md +63 -0
  50. package/all/copy-overwrite/.claude/skills/project-reduce-max-lines-per-function/SKILL.md +66 -0
  51. package/all/copy-overwrite/.claude/skills/project-research/SKILL.md +166 -0
  52. package/all/copy-overwrite/.claude/skills/project-review/SKILL.md +49 -0
  53. package/all/copy-overwrite/.claude/skills/project-setup/SKILL.md +56 -0
  54. package/all/copy-overwrite/.claude/skills/project-verify/SKILL.md +42 -0
  55. package/all/copy-overwrite/.claude/skills/pull-request-review/SKILL.md +73 -0
  56. package/all/copy-overwrite/.claude/skills/sonarqube-check/SKILL.md +11 -0
  57. package/all/copy-overwrite/.claude/skills/sonarqube-fix/SKILL.md +8 -0
  58. package/all/copy-overwrite/.claude/skills/tasks-load/SKILL.md +89 -0
  59. package/all/copy-overwrite/.claude/skills/tasks-sync/SKILL.md +109 -0
  60. package/all/copy-overwrite/CLAUDE.md +11 -1
  61. package/package.json +1 -1
  62. package/typescript/copy-overwrite/.claude/settings.json +3 -1
@@ -1,67 +1,7 @@
1
1
  ---
2
- description: Automated project execution from planning through debrief (requires gap-free research)
3
- argument-hint: <project-directory>
4
- allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Task, TaskCreate, TaskUpdate, TaskList, TaskGet, Skill
2
+ description: "Automated project execution from planning through debrief (requires gap-free research)"
3
+ allowed-tools: ["Skill"]
4
+ argument-hint: "<project-directory>"
5
5
  ---
6
6
 
7
- Execute complete implementation workflow for $ARGUMENTS.
8
-
9
- ## Execution Rules
10
-
11
- 1. **Continuous execution**: After each step completes, immediately invoke the next
12
- 2. **No summaries**: Do not summarize progress between steps
13
- 3. **No waiting**: Do not wait for user confirmation between steps
14
- 4. **Only stop when done**: Only stop when all steps are completed
15
-
16
- ## Setup
17
-
18
- 1. Set active project marker: `echo "$ARGUMENTS" | sed 's|.*/||' > .claude-active-project`
19
- 2. Read `$ARGUMENTS/research.md` and check "## Open Questions" section
20
- - If gaps exist: STOP with "Cannot proceed - research.md has unresolved open questions"
21
- 3. Check if planning is already complete: `ls $ARGUMENTS/tasks/*.md 2>/dev/null | head -3`
22
- - If task files exist: Skip planning, start at implementation
23
-
24
- ## Create and Execute Tasks
25
-
26
- Create workflow tracking tasks with `metadata.project` set to the project name:
27
-
28
- ```
29
- TaskCreate:
30
- subject: "Planning"
31
- description: "Run /project:plan $ARGUMENTS to create implementation tasks."
32
- metadata: { project: "<project-name>" }
33
-
34
- TaskCreate:
35
- subject: "Implementation"
36
- description: "Run /project:implement $ARGUMENTS to execute all planned tasks."
37
- metadata: { project: "<project-name>" }
38
-
39
- TaskCreate:
40
- subject: "Review"
41
- description: "Run /project:review $ARGUMENTS to review code changes."
42
- metadata: { project: "<project-name>" }
43
-
44
- TaskCreate:
45
- subject: "Documentation"
46
- description: "Run /project:document $ARGUMENTS to update documentation related to changes."
47
- metadata: { project: "<project-name>" }
48
-
49
- TaskCreate:
50
- subject: "Verification"
51
- description: "Run /project:verify $ARGUMENTS to verify all requirements are met."
52
- metadata: { project: "<project-name>" }
53
-
54
- TaskCreate:
55
- subject: "Debrief"
56
- description: "Run /project:debrief $ARGUMENTS to capture learnings."
57
- metadata: { project: "<project-name>" }
58
-
59
- TaskCreate:
60
- subject: "Archive"
61
- description: "Run /project:archive $ARGUMENTS to archive the completed project."
62
- metadata: { project: "<project-name>" }
63
- ```
64
-
65
- **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.
66
-
67
- Report "Project complete and archived" when done.
7
+ Use the /project-execute skill to run the complete project workflow. $ARGUMENTS
@@ -1,66 +1,8 @@
1
1
  ---
2
- description: Fix all violations of one or more ESLint rules across the codebase
3
- allowed-tools: Read, Bash, Glob, Grep
4
- argument-hint: <rule-1> [rule-2] [rule-3] ...
2
+ description: "Fix all violations of one or more ESLint rules across the codebase"
3
+ allowed-tools: ["Skill"]
4
+ argument-hint: "<rule-1> [rule-2] [rule-3] ..."
5
5
  model: sonnet
6
6
  ---
7
7
 
8
- # Fix Linter Errors
9
-
10
- Target rules: $ARGUMENTS
11
-
12
- If no arguments provided, prompt the user for at least one lint rule name.
13
-
14
- ## Step 1: Gather Requirements
15
-
16
- 1. **Parse rules** from $ARGUMENTS (space-separated)
17
- 2. **Run linter** to collect all violations:
18
- ```bash
19
- bun run lint 2>&1
20
- ```
21
- 3. **Group violations** by rule, then by file, noting:
22
- - File path and line numbers
23
- - Violation count per file
24
- - Sample error messages
25
-
26
- ## Step 2: Generate Brief
27
-
28
- Compile findings into a detailed brief:
29
-
30
- ```
31
- Fix ESLint violations for rules: $ARGUMENTS
32
-
33
- ## Violations by Rule
34
-
35
- ### [rule-name-1] (X total violations across Y files)
36
-
37
- 1. src/services/user.ts (5 violations)
38
- - Line 23: [error message]
39
- - Line 45: [error message]
40
- - Line 67: [error message]
41
- ...
42
- 2. src/utils/helpers.ts (3 violations)
43
- - Line 12: [error message]
44
- ...
45
-
46
- ### [rule-name-2] (X total violations across Y files)
47
- ...
48
-
49
- ## Fix Strategies
50
- - **Complexity rules** (sonarjs/*): Extract functions, early returns, simplify conditions
51
- - **Style rules** (prettier/*, import/order): Apply formatting fixes
52
- - **Best practice rules** (react-hooks/*, prefer-const): Refactor to recommended pattern
53
- - **Type rules** (@typescript-eslint/*): Add proper types, remove `any`
54
-
55
- ## Acceptance Criteria
56
- - `bun run lint` passes with zero violations for: $ARGUMENTS
57
- - Each rule's fixes committed separately: `fix(lint): resolve [rule-name] violations`
58
-
59
- ## Verification
60
- Command: `bun run lint 2>&1 | grep -E "($ARGUMENTS)" | wc -l`
61
- Expected: 0
62
- ```
63
-
64
- ## Step 3: Bootstrap Project
65
-
66
- Run `/project:bootstrap` with the generated brief as a text prompt.
8
+ Use the /project-fix-linter-error skill to fix ESLint rule violations. $ARGUMENTS
@@ -1,38 +1,7 @@
1
1
  ---
2
- description: Systematically implements all tasks in a specified project
3
- argument-hint: <project-directory>
4
- allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Task, TaskCreate, TaskUpdate, TaskList, TaskGet, Skill
2
+ description: "Systematically implements all tasks in a specified project"
3
+ allowed-tools: ["Skill"]
4
+ argument-hint: "<project-directory>"
5
5
  ---
6
6
 
7
- ## Setup
8
-
9
- 1. Set active project marker: `echo "$ARGUMENTS" | sed 's|.*/||' > .claude-active-project`
10
- 2. Extract `<project-name>` from the last segment of `$ARGUMENTS`
11
- 3. Use **TaskList** to verify tasks exist for this project (check metadata.project)
12
- 4. If no tasks found, error: "No tasks found. Run /project:plan first"
13
-
14
- ## Implementation
15
-
16
- Use **TaskList** to get current task status.
17
-
18
- **Always execute tasks via subagents** to keep the main context window clean. Launch up to 6 subagents in parallel for unblocked tasks.
19
-
20
- For each pending, unblocked task (filter by `metadata.project` = `<project-name>`):
21
-
22
- 1. Use **TaskUpdate** to mark it `in_progress`
23
- 2. Use **TaskGet** to retrieve full task details
24
- 3. Complete the task following the instructions in its description
25
- 4. Run the verification command and confirm expected output
26
- 5. If verification passes, use **TaskUpdate** to mark it `completed`
27
- 6. If verification fails, keep task `in_progress` and report the failure
28
- 7. Check **TaskList** for newly unblocked tasks
29
-
30
- Continue until all tasks are completed.
31
-
32
- ## Complete
33
-
34
- Use **TaskList** to generate a summary showing:
35
- - Total tasks completed
36
- - Any tasks that failed or remain in progress
37
-
38
- After completing this phase, tell the user: "To continue, run `/project:review $ARGUMENTS`"
7
+ Use the /project-implement skill to implement all planned tasks. $ARGUMENTS
@@ -1,88 +1,7 @@
1
1
  ---
2
- description: Code review local changes on the current branch
3
- disable-model-invocation: false
4
- argument-hint: <project-directory>
2
+ description: "Code review local changes on the current branch"
3
+ allowed-tools: ["Skill"]
4
+ argument-hint: "<project-directory>"
5
5
  ---
6
6
 
7
- Provide a code review for the local changes on the current branch compared to the main branch.
8
-
9
- To do this, follow these steps precisely:
10
-
11
- 1. Use a Haiku agent to check the current git state:
12
- - Run `git branch --show-current` to get the current branch name
13
- - Run `git log main..HEAD --oneline` to see commits on this branch
14
- - Run `git diff main...HEAD --stat` to see changed files
15
- - If the current branch IS main, or there are no commits/changes compared to main, do not proceed.
16
- 2. Use another Haiku agent to give you a list of file paths to (but not the contents of) any relevant CLAUDE.md files from the codebase: the root CLAUDE.md file (if one exists), as well as any CLAUDE.md files in the directories whose files were modified on this branch
17
- 3. Use a Haiku agent to analyze the branch changes:
18
- - Run `git log main..HEAD --format="%s%n%b"` to get commit messages
19
- - Run `git diff main...HEAD` to get the full diff
20
- - Return a summary of the changes
21
- 4. Then, launch 5 parallel Sonnet agents to independently code review the change. The agents should do the following, then return a list of issues and the reason each issue was flagged (eg. CLAUDE.md adherence, bug, historical git context, etc.):
22
- a. Agent #1: Audit the changes to make sure they comply with the CLAUDE.md. Note that CLAUDE.md is guidance for Claude as it writes code, so not all instructions will be applicable during code review.
23
- b. Agent #2: Read the file changes (via `git diff main...HEAD`), then do a shallow scan for obvious bugs. Avoid reading extra context beyond the changes, focusing just on the changes themselves. Focus on large bugs, and avoid small issues and nitpicks. Ignore likely false positives.
24
- c. Agent #3: Read the git blame and history of the code modified, to identify any bugs in light of that historical context
25
- d. Agent #4: Read previous pull requests that touched these files, and check for any comments on those pull requests that may also apply to the current changes.
26
- e. Agent #5: Read code comments in the modified files, and make sure the changes comply with any guidance in the comments.
27
- 5. For each issue found in #4, launch a parallel Haiku agent that takes the diff, issue description, and list of CLAUDE.md files (from step 2), and returns a score to indicate the agent's level of confidence for whether the issue is real or false positive. To do that, the agent should score each issue on a scale from 0-100, indicating its level of confidence. For issues that were flagged due to CLAUDE.md instructions, the agent should double check that the CLAUDE.md actually calls out that issue specifically. The scale is (give this rubric to the agent verbatim):
28
- a. 0: Not confident at all. This is a false positive that doesn't stand up to light scrutiny, or is a pre-existing issue.
29
- b. 25: Somewhat confident. This might be a real issue, but may also be a false positive. The agent wasn't able to verify that it's a real issue. If the issue is stylistic, it is one that was not explicitly called out in the relevant CLAUDE.md.
30
- c. 50: Moderately confident. The agent was able to verify this is a real issue, but it might be a nitpick or not happen very often in practice. Relative to the rest of the changes, it's not very important.
31
- d. 75: Highly confident. The agent double checked the issue, and verified that it is very likely it is a real issue that will be hit in practice. The existing approach is insufficient. The issue is very important and will directly impact the code's functionality, or it is an issue that is directly mentioned in the relevant CLAUDE.md.
32
- e. 100: Absolutely certain. The agent double checked the issue, and confirmed that it is definitely a real issue, that will happen frequently in practice. The evidence directly confirms this.
33
- 6. Filter out any issues with a score less than 80.
34
- 7. Write the review to $ARGUMENTS/claude-review.md. When writing your review, keep in mind to:
35
- a. Keep your output brief
36
- b. Avoid emojis
37
- c. Reference relevant files and line numbers
38
- 8. Briefly summarize $ARGUMENTS/claude-review.md as direct output to the user
39
-
40
- Examples of false positives, for steps 4 and 5:
41
-
42
- - Pre-existing issues
43
- - Something that looks like a bug but is not actually a bug
44
- - Pedantic nitpicks that a senior engineer wouldn't call out
45
- - Issues that a linter, typechecker, or compiler would catch (eg. missing or incorrect imports, type errors, broken tests, formatting issues, pedantic style issues like newlines). No need to run these build steps yourself -- it is safe to assume that they will be run separately as part of CI.
46
- - General code quality issues (eg. lack of test coverage, general security issues, poor documentation), unless explicitly required in CLAUDE.md
47
- - Issues that are called out in CLAUDE.md, but explicitly silenced in the code (eg. due to a lint ignore comment)
48
- - Changes in functionality that are likely intentional or are directly related to the broader change
49
- - Real issues, but on lines that were not modified in the current branch
50
-
51
- Notes:
52
-
53
- - Do not check build signal or attempt to build or typecheck the app. These will run separately, and are not relevant to your code review.
54
- - Use git commands to analyze local changes (not `gh` commands for remote PRs)
55
- - Make a todo list first
56
- - You must cite each bug with file path and line number (eg. if referring to a CLAUDE.md, you must reference it)
57
- - For your final output, follow the following format precisely (assuming for this example that you found 3 issues):
58
-
59
- ---
60
-
61
- ### Code review for branch `<branch-name>`
62
-
63
- Reviewed X commits with changes to Y files.
64
-
65
- Found 3 issues:
66
-
67
- 1. **<brief description of bug>** (CLAUDE.md says "<...>")
68
- - File: `path/to/file.ts:L10-L15`
69
-
70
- 2. **<brief description of bug>** (some/other/CLAUDE.md says "<...>")
71
- - File: `path/to/other-file.ts:L25-L30`
72
-
73
- 3. **<brief description of bug>** (bug due to <reasoning>)
74
- - File: `path/to/another-file.ts:L5-L8`
75
-
76
- ---
77
-
78
- - Or, if you found no issues:
79
-
80
- ---
81
-
82
- ### Code review for branch `<branch-name>`
83
-
84
- Reviewed X commits with changes to Y files.
85
-
86
- No issues found. Checked for bugs and CLAUDE.md compliance.
87
-
88
- ---
7
+ Use the /project-local-code-review skill to review local changes on the current branch. $ARGUMENTS
@@ -1,61 +1,6 @@
1
1
  ---
2
- description: Reduces the code complexity of the codebase by 2 on each run
3
- allowed-tools: Read, Bash, Glob, Grep
2
+ description: "Reduces the code complexity of the codebase by 2 on each run"
3
+ allowed-tools: ["Skill"]
4
4
  ---
5
5
 
6
- # Lower Code Complexity
7
-
8
- Reduces the cognitive complexity threshold by 2 and fixes all violations.
9
-
10
- ## Step 1: Gather Requirements
11
-
12
- 1. **Read current threshold** from eslint config (cognitive-complexity rule)
13
- 2. **Calculate new threshold**: current - 2 (e.g., 15 → 13)
14
- 3. **Run lint** with the new threshold to find violations:
15
- ```bash
16
- bun run lint 2>&1 | grep "cognitive-complexity"
17
- ```
18
- 4. **Note for each violation**:
19
- - File path and line number
20
- - Function name
21
- - Current complexity score
22
-
23
- If no violations at new threshold, report success and exit.
24
-
25
- ## Step 2: Generate Brief
26
-
27
- Compile findings into a detailed brief:
28
-
29
- ```
30
- Reduce cognitive complexity threshold from [current] to [new].
31
-
32
- ## Functions Exceeding Threshold (ordered by complexity)
33
-
34
- 1. src/services/user.ts:processUser (complexity: 18, target: [new])
35
- - Line 45, function spans lines 45-120
36
- 2. src/utils/helpers.ts:validateInput (complexity: 15, target: [new])
37
- - Line 23, function spans lines 23-67
38
- ...
39
-
40
- ## Configuration Change
41
- - File: [eslint config path]
42
- - Change: cognitive-complexity threshold from [current] to [new]
43
-
44
- ## Refactoring Strategies
45
- - **Extract functions**: Break complex logic into smaller, named functions
46
- - **Early returns**: Reduce nesting with guard clauses
47
- - **Extract conditions**: Move complex boolean logic into named variables
48
- - **Use lookup tables**: Replace complex switch/if-else chains with object maps
49
-
50
- ## Acceptance Criteria
51
- - All functions at or below complexity [new]
52
- - `bun run lint` passes with no cognitive-complexity violations
53
-
54
- ## Verification
55
- Command: `bun run lint 2>&1 | grep "cognitive-complexity" | wc -l`
56
- Expected: 0
57
- ```
58
-
59
- ## Step 3: Bootstrap Project
60
-
61
- Run `/project:bootstrap` with the generated brief as a text prompt.
6
+ Use the /project-lower-code-complexity skill to reduce cognitive complexity. $ARGUMENTS
@@ -1,178 +1,7 @@
1
1
  ---
2
- description: Uses the research.md and brief.md file in the specified directory to create a detailed list of tasks to implement the project
3
- argument-hint: <project-directory>
4
- allowed-tools: Read, Bash, Glob, Grep, TaskCreate, TaskUpdate, TaskList, Skill
2
+ description: "Uses the research.md and brief.md file in the specified directory to create a detailed list of tasks to implement the project"
3
+ allowed-tools: ["Skill"]
4
+ argument-hint: "<project-directory>"
5
5
  ---
6
6
 
7
- ## Setup
8
-
9
- Set active project marker: `echo "$ARGUMENTS" | sed 's|.*/||' > .claude-active-project`
10
-
11
- Extract `<project-name>` from the last segment of `$ARGUMENTS`.
12
-
13
- ## Step 1: Read Project Files
14
-
15
- Read `$ARGUMENTS/brief.md` and `$ARGUMENTS/research.md` FULLY (no limit/offset).
16
-
17
- ## Step 2: Validate Research
18
-
19
- Locate "## Open Questions" in research.md.
20
-
21
- **Valid states** (proceed):
22
- - Section contains "None", "[None identified]", "N/A", or is empty
23
- - Section doesn't exist
24
- - All `**Answer**:` fields are filled
25
-
26
- **Invalid state** (stop immediately):
27
- - Questions with unfilled `**Answer**:` fields
28
-
29
- If invalid, report:
30
- ```
31
- CANNOT PROCEED WITH PLANNING
32
-
33
- The research.md file has unanswered open questions.
34
-
35
- Unanswered Questions Found:
36
- [List each question]
37
-
38
- Action Required:
39
- 1. Review $ARGUMENTS/research.md "## Open Questions"
40
- 2. Fill in the **Answer**: field for each question
41
- 3. Re-run /project:plan
42
- ```
43
-
44
- **IMPORTANT**: NEVER modify research.md during validation.
45
-
46
- ## Step 3: Discover Skills
47
-
48
- Read `.claude/skills/*/SKILL.md` files (first 10 lines each) to map skills to applicable tasks.
49
-
50
- ## Step 4: Create Tasks
51
-
52
- ### Determine Task List
53
-
54
- Each task must be small enough to have a **single, specific verification**.
55
- - Ask: "Can I prove this task is done with ONE command or check?"
56
- - Exception: `ui-recording` tasks may verify per-platform (web/iOS/Android)
57
-
58
- **Properly-sized tasks:**
59
- - "Add logout button to header" → single Playwright test
60
- - "Add unit tests for UserService" → single coverage command
61
- - "Create API endpoint for user profile" → single curl command
62
-
63
- **Too large (split these):**
64
- - "Build authentication system" → split into login, logout, session, etc.
65
- - "Add user management feature" → split into list, create, edit, etc.
66
-
67
- ### Create Tasks with TaskCreate
68
-
69
- For each task, use **TaskCreate** with:
70
-
71
- **subject**: Task name in imperative form (e.g., "Add logout button to header")
72
-
73
- **activeForm**: Present continuous form (e.g., "Adding logout button to header")
74
-
75
- **description**: Full task specification in markdown:
76
-
77
- ```markdown
78
- **Type:** Bug | Task | Epic | Story
79
-
80
- ## Description
81
- [Clear description based on type:
82
- - Bug: Symptoms, root cause approach
83
- - Story: Gherkin BDD format (Given/When/Then)
84
- - Task: Straightforward with clear goal
85
- - Epic: Goal overview with sub-tasks]
86
-
87
- ## Acceptance Criteria
88
- - [ ] Criterion 1
89
- - [ ] Criterion 2
90
-
91
- ## Relevant Research
92
- [Extract from research.md: code references, patterns, architecture constraints]
93
-
94
- ## Skills to Invoke
95
- - `/coding-philosophy` - Always required
96
- - [Other applicable skills from Step 3]
97
-
98
- ## Implementation Details
99
- [Files to modify, functions to implement, edge cases]
100
-
101
- ## Testing Requirements
102
- ### Unit Tests
103
- - [ ] `describe('X')/it('should Y')`: Description
104
-
105
- ### Integration Tests
106
- [Or "N/A - no integration points"]
107
-
108
- ### E2E Tests
109
- [Or "N/A - no user-facing changes"]
110
-
111
- ## Verification
112
-
113
- Every task MUST have empirical verification - a command that proves the work is done.
114
-
115
- **Why?** Code that "looks correct" often isn't. The only way to know something works is to run it and observe the result. Verification isn't "I wrote the code" - it's running a command and seeing expected output.
116
-
117
- **Type:** `test` | `ui-recording` | `test-coverage` | `api-test` | `manual-check` | `documentation`
118
-
119
- | Type | When to Use | Example |
120
- |------|-------------|---------|
121
- | `test` | Run specific tests | `npm test -- src/services/user.spec.ts` |
122
- | `ui-recording` | UI/UX changes | `npm run playwright:test ...` |
123
- | `test-coverage` | Coverage threshold | `npm run test:cov -- --collectCoverageFrom='...'` |
124
- | `api-test` | API endpoints | `curl -s http://localhost:3000/api/endpoint` |
125
- | `documentation` | Docs, README | `cat path/to/doc.md \| grep "expected content"` |
126
- | `manual-check` | Config, setup | `cat config.json \| jq '.setting'` |
127
-
128
- **Proof Command:**
129
- ```bash
130
- [Single command that outputs observable proof of completion]
131
- ```
132
-
133
- **Expected Output:**
134
- [Exact or pattern-matched output that proves success]
135
-
136
- ## Learnings
137
- During implementation, collect any discoveries valuable for future developers:
138
- - Gotchas or unexpected behavior encountered
139
- - Edge cases that weren't obvious from requirements
140
- - Better approaches discovered during implementation
141
- - Patterns that should be reused or avoided
142
- - Documentation gaps or misleading information found
143
-
144
- **On task completion**, use `TaskUpdate` to save learnings:
145
- ```
146
- TaskUpdate:
147
- taskId: "<this-task-id>"
148
- metadata: { learnings: ["Learning 1", "Learning 2", ...] }
149
- ```
150
- ```
151
-
152
- **metadata**:
153
- ```json
154
- {
155
- "project": "<project-name>",
156
- "type": "bug|task|epic|story",
157
- "skills": ["/coding-philosophy", ...],
158
- "verification": {
159
- "type": "test|ui-recording|test-coverage|api-test|manual-check|documentation",
160
- "command": "the proof command",
161
- "expected": "what success looks like"
162
- }
163
- }
164
- ```
165
-
166
- ### Set Up Dependencies
167
-
168
- After creating all tasks, use **TaskUpdate** with `addBlockedBy` to establish task order where needed.
169
-
170
- ## Step 5: Report
171
-
172
- Report: "Planning complete - X tasks created for project <project-name>"
173
-
174
- Use **TaskList** to show the created tasks.
175
-
176
- ---
177
-
178
- **IMPORTANT**: Each task description should contain all necessary information from `brief.md` and `research.md` to complete in isolation. Tasks should be independent and as small in scope as possible.
7
+ Use the /project-plan skill to create implementation tasks from research and brief. $ARGUMENTS
@@ -1,65 +1,8 @@
1
1
  ---
2
- description: Reduce max lines per function threshold and fix violations
3
- allowed-tools: Read, Bash, Glob, Grep
4
- argument-hint: <max-lines-per-function-value>
2
+ description: "Reduce max lines per function threshold and fix violations"
3
+ allowed-tools: ["Skill"]
4
+ argument-hint: "<max-lines-per-function-value>"
5
5
  model: sonnet
6
6
  ---
7
7
 
8
- # Reduce Max Lines Per Function
9
-
10
- Target threshold: $ARGUMENTS lines per function
11
-
12
- If no argument provided, prompt the user for a target.
13
-
14
- ## Step 1: Gather Requirements
15
-
16
- 1. **Read current config** from eslint thresholds (eslint.thresholds.json or similar)
17
- 2. **Run lint** with the new threshold to find violations:
18
- ```bash
19
- bun run lint 2>&1 | grep "max-lines-per-function"
20
- ```
21
- 3. **Note for each violation**:
22
- - File path and line number
23
- - Function name
24
- - Current line count
25
-
26
- If no violations at $ARGUMENTS, report success and exit.
27
-
28
- ## Step 2: Generate Brief
29
-
30
- Compile findings into a detailed brief:
31
-
32
- ```
33
- Reduce max lines per function threshold to $ARGUMENTS.
34
-
35
- ## Functions Exceeding Threshold (ordered by line count)
36
-
37
- 1. src/services/user.ts:processUser (95 lines, target: $ARGUMENTS)
38
- - Line 45, function spans lines 45-140
39
- 2. src/utils/helpers.ts:validateInput (82 lines, target: $ARGUMENTS)
40
- - Line 23, function spans lines 23-105
41
- ...
42
-
43
- ## Configuration Change
44
- - File: eslint.thresholds.json
45
- - Change: maxLinesPerFunction to $ARGUMENTS
46
-
47
- ## Refactoring Strategies
48
- - **Extract functions**: Break function into smaller named functions
49
- - **Early returns**: Reduce nesting with guard clauses
50
- - **Extract conditions**: Move complex boolean logic into named variables
51
- - **Use lookup tables**: Replace complex switch/if-else chains with object maps
52
- - **Consolidate logic**: Merge similar code paths
53
-
54
- ## Acceptance Criteria
55
- - All functions at or below $ARGUMENTS lines
56
- - `bun run lint` passes with no max-lines-per-function violations
57
-
58
- ## Verification
59
- Command: `bun run lint 2>&1 | grep "max-lines-per-function" | wc -l`
60
- Expected: 0
61
- ```
62
-
63
- ## Step 3: Bootstrap Project
64
-
65
- Run `/project:bootstrap` with the generated brief as a text prompt.
8
+ Use the /project-reduce-max-lines-per-function skill to reduce function line limits. $ARGUMENTS
@@ -1,62 +1,8 @@
1
1
  ---
2
- description: Reduce max file lines threshold and fix violations
3
- allowed-tools: Read, Bash, Glob, Grep
4
- argument-hint: <max-lines-value>
2
+ description: "Reduce max file lines threshold and fix violations"
3
+ allowed-tools: ["Skill"]
4
+ argument-hint: "<max-lines-value>"
5
5
  model: sonnet
6
6
  ---
7
7
 
8
- # Reduce Max Lines
9
-
10
- Target threshold: $ARGUMENTS lines per file
11
-
12
- If no argument provided, prompt the user for a target.
13
-
14
- ## Step 1: Gather Requirements
15
-
16
- 1. **Read current config** from eslint thresholds (eslint.thresholds.json or similar)
17
- 2. **Run lint** with the new threshold to find violations:
18
- ```bash
19
- bun run lint 2>&1 | grep "max-lines"
20
- ```
21
- 3. **Note for each violation**:
22
- - File path
23
- - Current line count
24
-
25
- If no violations at $ARGUMENTS, report success and exit.
26
-
27
- ## Step 2: Generate Brief
28
-
29
- Compile findings into a detailed brief:
30
-
31
- ```
32
- Reduce max file lines threshold to $ARGUMENTS.
33
-
34
- ## Files Exceeding Threshold (ordered by line count)
35
-
36
- 1. src/services/user.ts (450 lines, target: $ARGUMENTS)
37
- 2. src/utils/helpers.ts (380 lines, target: $ARGUMENTS)
38
- 3. src/components/Dashboard.tsx (320 lines, target: $ARGUMENTS)
39
- ...
40
-
41
- ## Configuration Change
42
- - File: eslint.thresholds.json
43
- - Change: maxLines to $ARGUMENTS
44
-
45
- ## Refactoring Strategies
46
- - **Extract modules**: Break file into smaller focused modules
47
- - **Remove duplication**: Consolidate repeated logic
48
- - **Delete dead code**: Remove unused functions/code paths
49
- - **Simplify logic**: Use early returns, reduce nesting
50
-
51
- ## Acceptance Criteria
52
- - All files at or below $ARGUMENTS lines
53
- - `bun run lint` passes with no max-lines violations
54
-
55
- ## Verification
56
- Command: `bun run lint 2>&1 | grep "max-lines" | wc -l`
57
- Expected: 0
58
- ```
59
-
60
- ## Step 3: Bootstrap Project
61
-
62
- Run `/project:bootstrap` with the generated brief as a text prompt.
8
+ Use the /project-reduce-max-lines skill to reduce file line limits. $ARGUMENTS