@codyswann/lisa 1.47.0 → 1.48.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 (216) hide show
  1. package/all/copy-overwrite/.claude/rules/lisa.md +23 -10
  2. package/all/copy-overwrite/.claude/settings.json +10 -230
  3. package/all/deletions.json +67 -1
  4. package/cdk/copy-overwrite/.claude/settings.json +80 -0
  5. package/cdk/create-only/.github/workflows/ci.yml +1 -1
  6. package/cdk/create-only/.github/workflows/deploy.yml +1 -1
  7. package/dist/core/lisa.d.ts +14 -0
  8. package/dist/core/lisa.d.ts.map +1 -1
  9. package/dist/core/lisa.js +47 -0
  10. package/dist/core/lisa.js.map +1 -1
  11. package/expo/copy-overwrite/.claude/settings.json +80 -0
  12. package/expo/copy-overwrite/eslint.expo.ts +2 -2
  13. package/expo/create-only/.github/workflows/ci.yml +1 -1
  14. package/expo/create-only/.github/workflows/deploy.yml +1 -1
  15. package/expo/deletions.json +33 -0
  16. package/expo/package-lisa/package.lisa.json +2 -2
  17. package/nestjs/copy-overwrite/.claude/settings.json +80 -0
  18. package/nestjs/create-only/.github/workflows/ci.yml +1 -1
  19. package/nestjs/create-only/.github/workflows/deploy.yml +1 -1
  20. package/nestjs/deletions.json +8 -0
  21. package/package.json +8 -4
  22. package/rails/copy-overwrite/.claude/settings.json +80 -0
  23. package/rails/create-only/.github/workflows/ci.yml +1 -1
  24. package/rails/deletions.json +11 -1
  25. package/typescript/copy-overwrite/.claude/settings.json +13 -231
  26. package/typescript/copy-overwrite/.github/workflows/claude-ci-auto-fix.yml +1 -0
  27. package/typescript/copy-overwrite/.github/workflows/claude-code-review-response.yml +11 -10
  28. package/typescript/copy-overwrite/.github/workflows/claude-deploy-auto-fix.yml +1 -0
  29. package/typescript/copy-overwrite/.github/workflows/claude-nightly-code-complexity.yml +1 -0
  30. package/typescript/copy-overwrite/.github/workflows/claude-nightly-test-coverage.yml +1 -0
  31. package/typescript/copy-overwrite/.github/workflows/claude-nightly-test-improvement.yml +2 -0
  32. package/typescript/copy-overwrite/.github/workflows/claude.yml +1 -0
  33. package/typescript/copy-overwrite/eslint.typescript.ts +1 -1
  34. package/typescript/create-only/.github/workflows/ci.yml +1 -1
  35. package/typescript/deletions.json +12 -1
  36. package/typescript/package-lisa/package.lisa.json +1 -1
  37. package/all/copy-overwrite/.claude/agents/agent-architect.md +0 -310
  38. package/all/copy-overwrite/.claude/agents/architecture-specialist.md +0 -53
  39. package/all/copy-overwrite/.claude/agents/debug-specialist.md +0 -204
  40. package/all/copy-overwrite/.claude/agents/git-history-analyzer.md +0 -183
  41. package/all/copy-overwrite/.claude/agents/hooks-expert.md +0 -74
  42. package/all/copy-overwrite/.claude/agents/implementer.md +0 -54
  43. package/all/copy-overwrite/.claude/agents/learner.md +0 -44
  44. package/all/copy-overwrite/.claude/agents/performance-specialist.md +0 -95
  45. package/all/copy-overwrite/.claude/agents/product-specialist.md +0 -72
  46. package/all/copy-overwrite/.claude/agents/quality-specialist.md +0 -55
  47. package/all/copy-overwrite/.claude/agents/security-specialist.md +0 -58
  48. package/all/copy-overwrite/.claude/agents/skill-evaluator.md +0 -246
  49. package/all/copy-overwrite/.claude/agents/slash-command-architect.md +0 -87
  50. package/all/copy-overwrite/.claude/agents/test-specialist.md +0 -64
  51. package/all/copy-overwrite/.claude/agents/verification-specialist.md +0 -189
  52. package/all/copy-overwrite/.claude/agents/web-search-researcher.md +0 -112
  53. package/all/copy-overwrite/.claude/commands/git/commit-and-submit-pr.md +0 -7
  54. package/all/copy-overwrite/.claude/commands/git/commit-submit-pr-and-verify.md +0 -7
  55. package/all/copy-overwrite/.claude/commands/git/commit-submit-pr-deploy-and-verify.md +0 -7
  56. package/all/copy-overwrite/.claude/commands/git/commit.md +0 -7
  57. package/all/copy-overwrite/.claude/commands/git/prune.md +0 -6
  58. package/all/copy-overwrite/.claude/commands/git/submit-pr.md +0 -7
  59. package/all/copy-overwrite/.claude/commands/jira/create.md +0 -7
  60. package/all/copy-overwrite/.claude/commands/jira/sync.md +0 -7
  61. package/all/copy-overwrite/.claude/commands/jira/verify.md +0 -7
  62. package/all/copy-overwrite/.claude/commands/lisa/review-implementation.md +0 -7
  63. package/all/copy-overwrite/.claude/commands/plan/add-test-coverage.md +0 -7
  64. package/all/copy-overwrite/.claude/commands/plan/create.md +0 -6
  65. package/all/copy-overwrite/.claude/commands/plan/execute.md +0 -7
  66. package/all/copy-overwrite/.claude/commands/plan/fix-linter-error.md +0 -7
  67. package/all/copy-overwrite/.claude/commands/plan/local-code-review.md +0 -6
  68. package/all/copy-overwrite/.claude/commands/plan/lower-code-complexity.md +0 -6
  69. package/all/copy-overwrite/.claude/commands/plan/reduce-max-lines-per-function.md +0 -7
  70. package/all/copy-overwrite/.claude/commands/plan/reduce-max-lines.md +0 -7
  71. package/all/copy-overwrite/.claude/commands/pull-request/review.md +0 -7
  72. package/all/copy-overwrite/.claude/commands/security/zap-scan.md +0 -6
  73. package/all/copy-overwrite/.claude/commands/sonarqube/check.md +0 -6
  74. package/all/copy-overwrite/.claude/commands/sonarqube/fix.md +0 -6
  75. package/all/copy-overwrite/.claude/commands/tasks/load.md +0 -7
  76. package/all/copy-overwrite/.claude/commands/tasks/sync.md +0 -7
  77. package/all/copy-overwrite/.claude/hooks/check-tired-boss.sh +0 -61
  78. package/all/copy-overwrite/.claude/hooks/debug-hook.sh +0 -47
  79. package/all/copy-overwrite/.claude/hooks/enforce-plan-rules.sh +0 -15
  80. package/all/copy-overwrite/.claude/hooks/notify-ntfy.sh +0 -183
  81. package/all/copy-overwrite/.claude/hooks/setup-jira-cli.sh +0 -52
  82. package/all/copy-overwrite/.claude/hooks/sync-tasks.sh +0 -107
  83. package/all/copy-overwrite/.claude/hooks/ticket-sync-reminder.sh +0 -23
  84. package/all/copy-overwrite/.claude/hooks/track-plan-sessions.sh +0 -164
  85. package/all/copy-overwrite/.claude/rules/coding-philosophy.md +0 -428
  86. package/all/copy-overwrite/.claude/rules/verfication.md +0 -541
  87. package/all/copy-overwrite/.claude/skills/agent-design-best-practices/SKILL.md +0 -219
  88. package/all/copy-overwrite/.claude/skills/git-commit/SKILL.md +0 -48
  89. package/all/copy-overwrite/.claude/skills/git-commit-and-submit-pr/SKILL.md +0 -8
  90. package/all/copy-overwrite/.claude/skills/git-commit-submit-pr-and-verify/SKILL.md +0 -7
  91. package/all/copy-overwrite/.claude/skills/git-commit-submit-pr-deploy-and-verify/SKILL.md +0 -7
  92. package/all/copy-overwrite/.claude/skills/git-prune/SKILL.md +0 -35
  93. package/all/copy-overwrite/.claude/skills/git-submit-pr/SKILL.md +0 -44
  94. package/all/copy-overwrite/.claude/skills/jira-create/SKILL.md +0 -41
  95. package/all/copy-overwrite/.claude/skills/jira-sync/SKILL.md +0 -63
  96. package/all/copy-overwrite/.claude/skills/jira-verify/SKILL.md +0 -29
  97. package/all/copy-overwrite/.claude/skills/lisa-review-implementation/SKILL.md +0 -209
  98. package/all/copy-overwrite/.claude/skills/plan-add-test-coverage/SKILL.md +0 -44
  99. package/all/copy-overwrite/.claude/skills/plan-execute/SKILL.md +0 -89
  100. package/all/copy-overwrite/.claude/skills/plan-fix-linter-error/SKILL.md +0 -45
  101. package/all/copy-overwrite/.claude/skills/plan-local-code-review/SKILL.md +0 -88
  102. package/all/copy-overwrite/.claude/skills/plan-lower-code-complexity/SKILL.md +0 -44
  103. package/all/copy-overwrite/.claude/skills/plan-reduce-max-lines/SKILL.md +0 -45
  104. package/all/copy-overwrite/.claude/skills/plan-reduce-max-lines-per-function/SKILL.md +0 -46
  105. package/all/copy-overwrite/.claude/skills/pull-request-review/SKILL.md +0 -68
  106. package/all/copy-overwrite/.claude/skills/security-zap-scan/SKILL.md +0 -33
  107. package/all/copy-overwrite/.claude/skills/skill-creator/LICENSE.txt +0 -202
  108. package/all/copy-overwrite/.claude/skills/skill-creator/SKILL.md +0 -210
  109. package/all/copy-overwrite/.claude/skills/skill-creator/scripts/__pycache__/quick_validate.cpython-312.pyc +0 -0
  110. package/all/copy-overwrite/.claude/skills/skill-creator/scripts/init_skill.py +0 -305
  111. package/all/copy-overwrite/.claude/skills/skill-creator/scripts/package_skill.py +0 -112
  112. package/all/copy-overwrite/.claude/skills/skill-creator/scripts/quick_validate.py +0 -67
  113. package/all/copy-overwrite/.claude/skills/sonarqube-check/SKILL.md +0 -11
  114. package/all/copy-overwrite/.claude/skills/sonarqube-fix/SKILL.md +0 -8
  115. package/all/copy-overwrite/.claude/skills/tasks-load/SKILL.md +0 -88
  116. package/all/copy-overwrite/.claude/skills/tasks-sync/SKILL.md +0 -108
  117. package/eslint-plugin-code-organization/README.md +0 -149
  118. package/eslint-plugin-code-organization/__tests__/enforce-statement-order.test.js +0 -473
  119. package/eslint-plugin-code-organization/index.js +0 -28
  120. package/eslint-plugin-code-organization/package.json +0 -10
  121. package/eslint-plugin-code-organization/rules/enforce-statement-order.js +0 -162
  122. package/expo/copy-overwrite/.claude/agents/ops-specialist.md +0 -124
  123. package/expo/copy-overwrite/.claude/rules/expo-verification.md +0 -261
  124. package/expo/copy-overwrite/.claude/skills/apollo-client/SKILL.md +0 -238
  125. package/expo/copy-overwrite/.claude/skills/apollo-client/references/mutation-patterns.md +0 -360
  126. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/SKILL.md +0 -360
  127. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/references/atomic-levels.md +0 -417
  128. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/references/folder-structure.md +0 -257
  129. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/references/gluestack-mapping.md +0 -233
  130. package/expo/copy-overwrite/.claude/skills/atomic-design-gluestack/scripts/validate_atomic_structure.py +0 -329
  131. package/expo/copy-overwrite/.claude/skills/container-view-pattern/SKILL.md +0 -299
  132. package/expo/copy-overwrite/.claude/skills/container-view-pattern/references/examples.md +0 -749
  133. package/expo/copy-overwrite/.claude/skills/container-view-pattern/references/patterns.md +0 -318
  134. package/expo/copy-overwrite/.claude/skills/container-view-pattern/scripts/create_component.py +0 -200
  135. package/expo/copy-overwrite/.claude/skills/container-view-pattern/scripts/validate_component.py +0 -209
  136. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/SKILL.md +0 -268
  137. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/references/common-issues.md +0 -619
  138. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/references/file-extensions.md +0 -340
  139. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/references/platform-api.md +0 -276
  140. package/expo/copy-overwrite/.claude/skills/cross-platform-compatibility/scripts/validate_cross_platform.py +0 -416
  141. package/expo/copy-overwrite/.claude/skills/directory-structure/SKILL.md +0 -202
  142. package/expo/copy-overwrite/.claude/skills/directory-structure/scripts/validate_structure.py +0 -445
  143. package/expo/copy-overwrite/.claude/skills/expo-env-config/SKILL.md +0 -309
  144. package/expo/copy-overwrite/.claude/skills/expo-env-config/references/validation-patterns.md +0 -417
  145. package/expo/copy-overwrite/.claude/skills/expo-router-best-practices/SKILL.md +0 -431
  146. package/expo/copy-overwrite/.claude/skills/expo-router-best-practices/references/official-docs.md +0 -290
  147. package/expo/copy-overwrite/.claude/skills/expo-router-best-practices/scripts/generate-route.py +0 -171
  148. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/SKILL.md +0 -411
  149. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/references/color-tokens.md +0 -343
  150. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/references/component-mapping.md +0 -307
  151. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/references/spacing-scale.md +0 -300
  152. package/expo/copy-overwrite/.claude/skills/gluestack-nativewind/scripts/validate_styling.py +0 -315
  153. package/expo/copy-overwrite/.claude/skills/local-state/SKILL.md +0 -362
  154. package/expo/copy-overwrite/.claude/skills/local-state/references/async-storage.md +0 -505
  155. package/expo/copy-overwrite/.claude/skills/local-state/references/persistence-patterns.md +0 -711
  156. package/expo/copy-overwrite/.claude/skills/local-state/references/reactive-variables.md +0 -446
  157. package/expo/copy-overwrite/.claude/skills/ops-browser-uat/SKILL.md +0 -124
  158. package/expo/copy-overwrite/.claude/skills/ops-check-logs/SKILL.md +0 -211
  159. package/expo/copy-overwrite/.claude/skills/ops-db-ops/SKILL.md +0 -119
  160. package/expo/copy-overwrite/.claude/skills/ops-deploy/SKILL.md +0 -119
  161. package/expo/copy-overwrite/.claude/skills/ops-monitor-errors/SKILL.md +0 -99
  162. package/expo/copy-overwrite/.claude/skills/ops-performance/SKILL.md +0 -165
  163. package/expo/copy-overwrite/.claude/skills/ops-run-local/SKILL.md +0 -166
  164. package/expo/copy-overwrite/.claude/skills/ops-verify-health/SKILL.md +0 -101
  165. package/expo/copy-overwrite/.claude/skills/owasp-zap/SKILL.md +0 -56
  166. package/expo/copy-overwrite/.claude/skills/playwright-selectors/SKILL.md +0 -223
  167. package/expo/copy-overwrite/.claude/skills/testing-library/SKILL.md +0 -314
  168. package/expo/copy-overwrite/.claude/skills/testing-library/references/async-patterns.md +0 -420
  169. package/expo/copy-overwrite/.claude/skills/testing-library/references/expo-router-testing.md +0 -556
  170. package/expo/copy-overwrite/.claude/skills/testing-library/references/mocking-patterns.md +0 -590
  171. package/expo/copy-overwrite/.claude/skills/testing-library/references/query-priority.md +0 -291
  172. package/expo/copy-overwrite/eslint-plugin-component-structure/README.md +0 -234
  173. package/expo/copy-overwrite/eslint-plugin-component-structure/__tests__/plugin-index.test.js +0 -89
  174. package/expo/copy-overwrite/eslint-plugin-component-structure/__tests__/require-memo-in-view.test.js +0 -201
  175. package/expo/copy-overwrite/eslint-plugin-component-structure/__tests__/single-component-per-file.test.js +0 -294
  176. package/expo/copy-overwrite/eslint-plugin-component-structure/index.js +0 -37
  177. package/expo/copy-overwrite/eslint-plugin-component-structure/package.json +0 -10
  178. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/enforce-component-structure.js +0 -235
  179. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/no-return-in-view.js +0 -96
  180. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/require-memo-in-view.js +0 -183
  181. package/expo/copy-overwrite/eslint-plugin-component-structure/rules/single-component-per-file.js +0 -243
  182. package/expo/copy-overwrite/eslint-plugin-ui-standards/README.md +0 -192
  183. package/expo/copy-overwrite/eslint-plugin-ui-standards/index.js +0 -31
  184. package/expo/copy-overwrite/eslint-plugin-ui-standards/package.json +0 -10
  185. package/expo/copy-overwrite/eslint-plugin-ui-standards/rules/no-classname-outside-ui.js +0 -56
  186. package/expo/copy-overwrite/eslint-plugin-ui-standards/rules/no-direct-rn-imports.js +0 -60
  187. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/SKILL.md +0 -176
  188. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/advanced-features.md +0 -527
  189. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/project-patterns.md +0 -483
  190. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/quick-start.md +0 -257
  191. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/resolvers-mutations.md +0 -413
  192. package/nestjs/copy-overwrite/.claude/skills/nestjs-graphql/references/types-scalars.md +0 -513
  193. package/nestjs/copy-overwrite/.claude/skills/nestjs-rules/SKILL.md +0 -536
  194. package/nestjs/copy-overwrite/.claude/skills/security-zap-scan/SKILL.md +0 -33
  195. package/nestjs/copy-overwrite/.claude/skills/typeorm-patterns/SKILL.md +0 -275
  196. package/nestjs/copy-overwrite/.claude/skills/typeorm-patterns/references/configuration-patterns.md +0 -487
  197. package/nestjs/copy-overwrite/.claude/skills/typeorm-patterns/references/entity-patterns.md +0 -450
  198. package/nestjs/copy-overwrite/.claude/skills/typeorm-patterns/references/observability-patterns.md +0 -536
  199. package/rails/copy-overwrite/.claude/skills/action-controller-best-practices/SKILL.md +0 -374
  200. package/rails/copy-overwrite/.claude/skills/action-view-best-practices/SKILL.md +0 -335
  201. package/rails/copy-overwrite/.claude/skills/active-record-model-best-practices/SKILL.md +0 -166
  202. package/rails/copy-overwrite/.claude/skills/plan-add-test-coverage/SKILL.md +0 -45
  203. package/rails/copy-overwrite/.claude/skills/plan-fix-linter-error/SKILL.md +0 -45
  204. package/rails/copy-overwrite/.claude/skills/plan-lower-code-complexity/SKILL.md +0 -48
  205. package/rails/copy-overwrite/.claude/skills/plan-reduce-max-lines/SKILL.md +0 -46
  206. package/rails/copy-overwrite/.claude/skills/plan-reduce-max-lines-per-function/SKILL.md +0 -46
  207. package/typescript/copy-overwrite/.claude/hooks/format-on-edit.sh +0 -76
  208. package/typescript/copy-overwrite/.claude/hooks/install-pkgs.sh +0 -64
  209. package/typescript/copy-overwrite/.claude/hooks/lint-on-edit.sh +0 -105
  210. package/typescript/copy-overwrite/.claude/hooks/sg-scan-on-edit.sh +0 -68
  211. package/typescript/copy-overwrite/.claude/skills/jsdoc-best-practices/SKILL.md +0 -432
  212. package/typescript/copy-overwrite/eslint-plugin-code-organization/README.md +0 -149
  213. package/typescript/copy-overwrite/eslint-plugin-code-organization/__tests__/enforce-statement-order.test.js +0 -473
  214. package/typescript/copy-overwrite/eslint-plugin-code-organization/index.js +0 -28
  215. package/typescript/copy-overwrite/eslint-plugin-code-organization/package.json +0 -10
  216. package/typescript/copy-overwrite/eslint-plugin-code-organization/rules/enforce-statement-order.js +0 -162
@@ -1,112 +0,0 @@
1
- ---
2
- name: web-search-researcher
3
- description: Do you find yourself desiring information that you don't quite feel well-trained (confident) on? Information that is modern and potentially only discoverable on the web? Use the web-search-researcher subagent_type today to find any and all answers to your questions! It will research deeply to figure out and attempt to answer your questions! If you aren't immediately satisfied you can get your money back! (Not really - but you can re-run web-search-researcher with an altered prompt in the event you're not satisfied the first time)
4
- color: yellow
5
- model: inherit
6
- ---
7
-
8
- You are an expert web research specialist focused on finding accurate, relevant information from web sources. Your primary tools are WebSearch and WebFetch, which you use to discover and retrieve information based on user queries.
9
-
10
- ## Core Responsibilities
11
-
12
- When you receive a research query, you will:
13
-
14
- 1. **Analyze the Query**: Break down the user's request to identify:
15
- - Key search terms and concepts
16
- - Types of sources likely to have answers (documentation, blogs, forums, academic papers)
17
- - Multiple search angles to ensure comprehensive coverage
18
-
19
- 2. **Execute Strategic Searches**:
20
- - Start with broad searches to understand the landscape
21
- - Refine with specific technical terms and phrases
22
- - Use multiple search variations to capture different perspectives
23
- - Include site-specific searches when targeting known authoritative sources (e.g., "site:docs.stripe.com webhook signature")
24
-
25
- 3. **Fetch and Analyze Content**:
26
- - Use WebFetch to retrieve full content from promising search results
27
- - Prioritize official documentation, reputable technical blogs, and authoritative sources
28
- - Extract specific quotes and sections relevant to the query
29
- - Note publication dates to ensure currency of information
30
-
31
- 4. **Synthesize Findings**:
32
- - Organize information by relevance and authority
33
- - Include exact quotes with proper attribution
34
- - Provide direct links to sources
35
- - Highlight any conflicting information or version-specific details
36
- - Note any gaps in available information
37
-
38
- ## Search Strategies
39
-
40
- ### For API/Library Documentation:
41
-
42
- - Search for official docs first: "[library name] official documentation [specific feature]"
43
- - Look for changelog or release notes for version-specific information
44
- - Find code examples in official repositories or trusted tutorials
45
-
46
- ### For Best Practices:
47
-
48
- - Search for recent articles (include year in search when relevant)
49
- - Look for content from recognized experts or organizations
50
- - Cross-reference multiple sources to identify consensus
51
- - Search for both "best practices" and "anti-patterns" to get full picture
52
-
53
- ### For Technical Solutions:
54
-
55
- - Use specific error messages or technical terms in quotes
56
- - Search Stack Overflow and technical forums for real-world solutions
57
- - Look for GitHub issues and discussions in relevant repositories
58
- - Find blog posts describing similar implementations
59
-
60
- ### For Comparisons:
61
-
62
- - Search for "X vs Y" comparisons
63
- - Look for migration guides between technologies
64
- - Find benchmarks and performance comparisons
65
- - Search for decision matrices or evaluation criteria
66
-
67
- ## Output Format
68
-
69
- Structure your findings as:
70
-
71
- ```
72
- ## Summary
73
- [Brief overview of key findings]
74
-
75
- ## Detailed Findings
76
-
77
- ### [Topic/Source 1]
78
- **Source**: [Name with link]
79
- **Relevance**: [Why this source is authoritative/useful]
80
- **Key Information**:
81
- - Direct quote or finding (with link to specific section if possible)
82
- - Another relevant point
83
-
84
- ### [Topic/Source 2]
85
- [Continue pattern...]
86
-
87
- ## Additional Resources
88
- - [Relevant link 1] - Brief description
89
- - [Relevant link 2] - Brief description
90
-
91
- ## Gaps or Limitations
92
- [Note any information that couldn't be found or requires further investigation]
93
- ```
94
-
95
- ## Quality Guidelines
96
-
97
- - **Accuracy**: Always quote sources accurately and provide direct links
98
- - **Relevance**: Focus on information that directly addresses the user's query
99
- - **Currency**: Note publication dates and version information when relevant
100
- - **Authority**: Prioritize official sources, recognized experts, and peer-reviewed content
101
- - **Completeness**: Search from multiple angles to ensure comprehensive coverage
102
- - **Transparency**: Clearly indicate when information is outdated, conflicting, or uncertain
103
-
104
- ## Search Efficiency
105
-
106
- - Start with 2-3 well-crafted searches before fetching content
107
- - Fetch only the most promising 3-5 pages initially
108
- - If initial results are insufficient, refine search terms and try again
109
- - Use search operators effectively: quotes for exact phrases, minus for exclusions, site: for specific domains
110
- - Consider searching in different forms: tutorials, documentation, Q&A sites, and discussion forums
111
-
112
- Remember: You are the user's expert guide to web information. Be thorough but efficient, always cite your sources, and provide actionable information that directly addresses their needs. Think deeply as you work.
@@ -1,7 +0,0 @@
1
- ---
2
- description: "Create conventional commits for current changes and submits the current branch as a PR for code review"
3
- allowed-tools: ["Skill"]
4
- argument-hint: "[commit-message-hint]"
5
- ---
6
-
7
- Use the /git-commit-and-submit-pr skill to commit and submit a PR. $ARGUMENTS
@@ -1,7 +0,0 @@
1
- ---
2
- description: "Create conventional commits for current changes and submits the current branch as a PR for code review. Then follows the pr to make sure all checks pass and comments are resolved."
3
- allowed-tools: ["Skill"]
4
- argument-hint: "[commit-message-hint]"
5
- ---
6
-
7
- Use the /git-commit-submit-pr-and-verify skill on $ARGUMENTS
@@ -1,7 +0,0 @@
1
- ---
2
- description: "Create conventional commits for current changes and submits the current branch as a PR for code review. Then follows the pr to make sure all checks pass and comments are resolved. And then makes sure the resultant deploy is successful."
3
- allowed-tools: ["Skill"]
4
- argument-hint: "[commit-message-hint]"
5
- ---
6
-
7
- Use the /git-commit-submit-pr-deploy-and-verify skill on $ARGUMENTS
@@ -1,7 +0,0 @@
1
- ---
2
- description: "Create conventional commits for current changes"
3
- allowed-tools: ["Skill"]
4
- argument-hint: "[commit-message-hint]"
5
- ---
6
-
7
- Use the /git-commit skill to create conventional commits for current changes. $ARGUMENTS
@@ -1,6 +0,0 @@
1
- ---
2
- description: "Prune local branches that have been deleted on remote"
3
- allowed-tools: ["Skill"]
4
- ---
5
-
6
- Use the /git-prune skill to prune local branches that have been deleted on remote.
@@ -1,7 +0,0 @@
1
- ---
2
- description: "Push changes and create or update a pull request"
3
- allowed-tools: ["Skill"]
4
- argument-hint: "[pr-title-or-description-hint]"
5
- ---
6
-
7
- Use the /git-submit-pr skill to push changes and create or update a pull request. $ARGUMENTS
@@ -1,7 +0,0 @@
1
- ---
2
- description: "Create JIRA epics/stories/tasks from code files with comprehensive quality requirements"
3
- allowed-tools: ["Skill"]
4
- argument-hint: "<file-or-directory-path> [project-key]"
5
- ---
6
-
7
- Use the /jira-create skill to create JIRA issues from the provided input. $ARGUMENTS
@@ -1,7 +0,0 @@
1
- ---
2
- description: "Sync plan progress to a linked JIRA ticket"
3
- allowed-tools: ["Skill"]
4
- argument-hint: "<ticket-id>"
5
- ---
6
-
7
- Use the /jira-sync skill to sync plan progress to the linked JIRA ticket. $ARGUMENTS
@@ -1,7 +0,0 @@
1
- ---
2
- description: "Verify JIRA ticket meets standards for epic relationships and description quality"
3
- allowed-tools: ["Skill"]
4
- argument-hint: "<TICKET-ID>"
5
- ---
6
-
7
- Use the /jira-verify skill to verify the JIRA ticket meets organizational standards. $ARGUMENTS
@@ -1,7 +0,0 @@
1
- ---
2
- description: "Compare project's Lisa-managed files against Lisa source templates and offer to upstream changes"
3
- allowed-tools: ["Skill"]
4
- argument-hint: "[lisa-dir]"
5
- ---
6
-
7
- Use the /lisa-review-implementation skill to compare project files against Lisa templates. $ARGUMENTS
@@ -1,7 +0,0 @@
1
- ---
2
- description: "Increase test coverage to a specified threshold percentage"
3
- allowed-tools: ["Skill"]
4
- argument-hint: "<threshold-percentage>"
5
- ---
6
-
7
- Use the /plan-add-test-coverage skill to increase test coverage. $ARGUMENTS
@@ -1,6 +0,0 @@
1
- ---
2
- description: "Creates an implementation plan from a ticket URL, file path, or text description"
3
- argument-hint: "<ticket-url | @file-path | description>"
4
- ---
5
-
6
- Use the /plan-execute skill on $ARGUMENTS
@@ -1,7 +0,0 @@
1
- ---
2
- description: "Deploys an agent team to research, implement, review and deploy a plan"
3
- argument-hint: "<ticket-url | @file-path | description>"
4
- ---
5
-
6
-
7
- Use the /plan-execute skill on $ARGUMENTS
@@ -1,7 +0,0 @@
1
- ---
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
- ---
6
-
7
- Use the /plan-fix-linter-error skill to fix linter errors. $ARGUMENTS
@@ -1,6 +0,0 @@
1
- ---
2
- description: "Review local branch changes compared to main"
3
- allowed-tools: ["Skill"]
4
- ---
5
-
6
- Use the /plan-local-code-review skill to review local changes.
@@ -1,6 +0,0 @@
1
- ---
2
- description: "Reduce the cognitive complexity threshold by 2 and fix all violations"
3
- allowed-tools: ["Skill"]
4
- ---
5
-
6
- Use the /plan-lower-code-complexity skill to lower code complexity.
@@ -1,7 +0,0 @@
1
- ---
2
- description: "Reduce max lines per function threshold and fix violations"
3
- allowed-tools: ["Skill"]
4
- argument-hint: "<max-lines-per-function-value>"
5
- ---
6
-
7
- Use the /plan-reduce-max-lines-per-function skill to reduce max function lines. $ARGUMENTS
@@ -1,7 +0,0 @@
1
- ---
2
- description: "Reduce max file lines threshold and fix violations"
3
- allowed-tools: ["Skill"]
4
- argument-hint: "<max-lines-value>"
5
- ---
6
-
7
- Use the /plan-reduce-max-lines skill to reduce max lines. $ARGUMENTS
@@ -1,7 +0,0 @@
1
- ---
2
- description: "Checks for code review comments on a PR and implements them if required."
3
- allowed-tools: ["Skill"]
4
- argument-hint: "<github-pr-link>"
5
- ---
6
-
7
- Use the /pull-request-review skill to check for code review comments and implement them. $ARGUMENTS
@@ -1,6 +0,0 @@
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.
@@ -1,6 +0,0 @@
1
- ---
2
- description: "Uses SonarQube / SonarCloud to get the reason that last pull request failed to pass checks"
3
- allowed-tools: ["Skill"]
4
- ---
5
-
6
- Use the /sonarqube-check skill to check why the last PR failed SonarQube quality gates.
@@ -1,6 +0,0 @@
1
- ---
2
- description: "Run SonarQube check, fix failures, and commit"
3
- allowed-tools: ["Skill"]
4
- ---
5
-
6
- Use the /sonarqube-fix skill to check, fix, and commit SonarQube quality gate failures.
@@ -1,7 +0,0 @@
1
- ---
2
- description: "Load tasks from a project directory into the current session"
3
- allowed-tools: ["Skill"]
4
- argument-hint: "<project-name>"
5
- ---
6
-
7
- Use the /tasks-load skill to load tasks from a project directory. $ARGUMENTS
@@ -1,7 +0,0 @@
1
- ---
2
- description: "Sync current session tasks to a project directory"
3
- allowed-tools: ["Skill"]
4
- argument-hint: "<project-name>"
5
- ---
6
-
7
- Use the /tasks-sync skill to sync current session tasks to a project directory. $ARGUMENTS
@@ -1,61 +0,0 @@
1
- #!/bin/bash
2
- # This file is managed by Lisa.
3
- # Do not edit directly — changes will be overwritten on the next `lisa` run.
4
- # =============================================================================
5
- # CLAUDE.md Compliance Hook - "I'm tired boss" Verification
6
- # =============================================================================
7
- # Verifies Claude's response starts with "I'm tired boss" as required by
8
- # CLAUDE.md. This is a Stop hook that blocks if Claude doesn't comply,
9
- # forcing a retry with an error message.
10
- #
11
- # @see CLAUDE.md - "Always output 'I'm tired boss' before starting any task"
12
- # =============================================================================
13
-
14
- # Read JSON input from stdin
15
- INPUT=$(cat)
16
-
17
- # Extract transcript path
18
- TRANSCRIPT_PATH=$(echo "$INPUT" | grep -o '"transcript_path"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/.*: *"//' | sed 's/"$//')
19
-
20
- # Exit silently if no transcript available
21
- if [ -z "$TRANSCRIPT_PATH" ] || [ ! -f "$TRANSCRIPT_PATH" ]; then
22
- exit 0
23
- fi
24
-
25
- # Extract the last assistant message from the transcript
26
- # Use awk for cross-platform compatibility (tac not available on macOS)
27
- LAST_ASSISTANT=$(awk '/"type"[[:space:]]*:[[:space:]]*"assistant"/{line=$0} END{if(line) print line}' "$TRANSCRIPT_PATH" 2>/dev/null)
28
-
29
- if [ -z "$LAST_ASSISTANT" ]; then
30
- exit 0
31
- fi
32
-
33
- # Extract the text content from the assistant message
34
- # Use jq for robust JSON parsing when available, fallback to grep/sed
35
- RESPONSE_TEXT=""
36
- if command -v jq >/dev/null 2>&1; then
37
- RESPONSE_TEXT=$(echo "$LAST_ASSISTANT" | jq -r '.message.content[] | select(.type == "text") | .text' 2>/dev/null | head -1)
38
- else
39
- # Fallback: simple regex extraction (may fail on escaped quotes)
40
- RESPONSE_TEXT=$(echo "$LAST_ASSISTANT" | grep -o '"text"[[:space:]]*:[[:space:]]*"[^"]*"' | head -1 | sed 's/.*: *"//' | sed 's/"$//')
41
- fi
42
-
43
- # Exit if no text content found
44
- if [ -z "$RESPONSE_TEXT" ]; then
45
- exit 0
46
- fi
47
-
48
- # Check if response starts with "I'm tired boss" (case-sensitive)
49
- REQUIRED_PHRASE="I'm tired boss"
50
- if echo "$RESPONSE_TEXT" | head -1 | grep -q "^$REQUIRED_PHRASE"; then
51
- # Compliance verified
52
- exit 0
53
- fi
54
-
55
- # Non-compliant - block and provide feedback
56
- # Output JSON to block the Stop event
57
- cat << 'EOF'
58
- {"decision":"block","reason":"Your response did not start with \"I'm tired boss\". Read @CLAUDE.md and try again. Every response MUST begin with this exact phrase."}
59
- EOF
60
-
61
- exit 0
@@ -1,47 +0,0 @@
1
- #!/bin/bash
2
- ##
3
- # Debug hook that logs all hook events when CLAUDE_DEBUG=1
4
- # This script is a no-op when CLAUDE_DEBUG is not set or set to 0
5
- ##
6
-
7
- # Exit immediately if debug mode is not enabled
8
- if [[ "${CLAUDE_DEBUG:-0}" != "1" ]]; then
9
- exit 0
10
- fi
11
-
12
- # Read JSON input from stdin
13
- INPUT=$(cat)
14
-
15
- # Parse hook event info using jq
16
- HOOK_EVENT=$(echo "$INPUT" | jq -r '.hook_event_name // "unknown"')
17
- TOOL_NAME=$(echo "$INPUT" | jq -r '.tool_name // "N/A"')
18
- SESSION_ID=$(echo "$INPUT" | jq -r '.session_id // "unknown"')
19
- CWD=$(echo "$INPUT" | jq -r '.cwd // "unknown"')
20
- PERMISSION_MODE=$(echo "$INPUT" | jq -r '.permission_mode // "unknown"')
21
-
22
- # Create debug log directory if it doesn't exist
23
- DEBUG_LOG_DIR="${CLAUDE_PROJECT_DIR:-.}/.claude/debug"
24
- mkdir -p "$DEBUG_LOG_DIR"
25
-
26
- # Log file with session ID
27
- LOG_FILE="$DEBUG_LOG_DIR/hooks-${SESSION_ID}.log"
28
-
29
- # Timestamp
30
- TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
31
-
32
- # Log the event
33
- {
34
- echo "[$TIMESTAMP] Hook: $HOOK_EVENT"
35
- echo " Tool: $TOOL_NAME"
36
- echo " Session: $SESSION_ID"
37
- echo " CWD: $CWD"
38
- echo " Permission Mode: $PERMISSION_MODE"
39
- echo " Full Input:"
40
- echo "$INPUT" | jq '.' | sed 's/^/ /'
41
- echo "---"
42
- } >> "$LOG_FILE"
43
-
44
- # Also output to stderr in verbose mode (won't affect Claude)
45
- echo "[DEBUG] Hook fired: $HOOK_EVENT (tool: $TOOL_NAME)" >&2
46
-
47
- exit 0
@@ -1,15 +0,0 @@
1
- #!/bin/bash
2
- # Reinjects plan-mode rules on every prompt when Claude is in plan mode.
3
- # Wired as a UserPromptSubmit hook in .claude/settings.json.
4
-
5
- INPUT=$(cat)
6
- PERMISSION_MODE=$(echo "$INPUT" | jq -r '.permission_mode // "default"')
7
-
8
- if [ "$PERMISSION_MODE" = "plan" ]; then
9
- PLAN_RULES="$CLAUDE_PROJECT_DIR/.claude/rules/plan.md"
10
- if [ -f "$PLAN_RULES" ]; then
11
- echo "PLAN MODE RULES (reinforced):"
12
- cat "$PLAN_RULES"
13
- fi
14
- fi
15
- exit 0
@@ -1,183 +0,0 @@
1
- #!/bin/bash
2
- # This file is managed by Lisa.
3
- # Do not edit directly — changes will be overwritten on the next `lisa` run.
4
- # =============================================================================
5
- # ntfy.sh Notification Hook for Claude Code
6
- # =============================================================================
7
- # Sends desktop and mobile notifications via ntfy.sh when Claude needs
8
- # attention or finishes a task.
9
- #
10
- # Setup:
11
- # 1. Install ntfy app on mobile (iOS App Store / Android Play Store)
12
- # 2. Subscribe to your unique topic in the app
13
- # 3. Set NTFY_TOPIC environment variable (e.g., in ~/.bashrc or ~/.zshrc):
14
- # export NTFY_TOPIC="my-claude-alerts-xyz123"
15
- #
16
- # @see https://ntfy.sh
17
- # =============================================================================
18
-
19
- # Read JSON input from stdin
20
- INPUT=$(cat)
21
-
22
- # Extract hook event name
23
- HOOK_EVENT=$(echo "$INPUT" | grep -o '"hook_event_name"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/.*: *"//' | sed 's/"$//')
24
-
25
- # Extract notification type (for Notification hooks)
26
- NOTIFICATION_TYPE=$(echo "$INPUT" | grep -o '"notification_type"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/.*: *"//' | sed 's/"$//')
27
-
28
- # Extract message if available
29
- MESSAGE=$(echo "$INPUT" | grep -o '"message"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/.*: *"//' | sed 's/"$//')
30
-
31
- # Extract session ID (first 8 chars for brevity)
32
- FULL_SESSION_ID=$(echo "$INPUT" | grep -o '"session_id"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/.*: *"//' | sed 's/"$//')
33
- SESSION_ID="${FULL_SESSION_ID:0:8}"
34
-
35
- # Extract transcript path for task summary
36
- TRANSCRIPT_PATH=$(echo "$INPUT" | grep -o '"transcript_path"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/.*: *"//' | sed 's/"$//')
37
-
38
- # Determine source (Web vs Local)
39
- if [ "$CLAUDE_CODE_REMOTE" = "true" ]; then
40
- SOURCE="Web"
41
- else
42
- SOURCE="Local"
43
- fi
44
-
45
- # Get project name from current directory
46
- PROJECT_NAME=$(basename "$CLAUDE_PROJECT_DIR" 2>/dev/null || basename "$(pwd)")
47
-
48
- # Load NTFY_TOPIC from local config if not already set
49
- if [ -z "$NTFY_TOPIC" ]; then
50
- # Check for project-local config (gitignored)
51
- if [ -f "$CLAUDE_PROJECT_DIR/.claude/env.local" ]; then
52
- # shellcheck source=/dev/null
53
- source "$CLAUDE_PROJECT_DIR/.claude/env.local"
54
- fi
55
- # Check for user-global config
56
- if [ -z "$NTFY_TOPIC" ] && [ -f "$HOME/.claude/env.local" ]; then
57
- # shellcheck source=/dev/null
58
- source "$HOME/.claude/env.local"
59
- fi
60
- fi
61
-
62
- # Exit silently if still not configured
63
- if [ -z "$NTFY_TOPIC" ]; then
64
- exit 0
65
- fi
66
-
67
- # Extract task summary from transcript (last assistant message, truncated)
68
- TASK_SUMMARY=""
69
- if [ -n "$TRANSCRIPT_PATH" ] && [ -f "$TRANSCRIPT_PATH" ]; then
70
- # Get the last assistant message from the JSONL transcript
71
- # The transcript contains lines with "type":"assistant" and "message" content
72
- # Use awk for cross-platform compatibility (tac is not available on macOS)
73
- LAST_ASSISTANT=$(awk '/"type"[[:space:]]*:[[:space:]]*"assistant"/{line=$0} END{if(line) print line}' "$TRANSCRIPT_PATH" 2>/dev/null)
74
- if [ -n "$LAST_ASSISTANT" ]; then
75
- # Extract the message content - look for text content in the message
76
- # Format: {"message":{"content":[{"type":"text","text":"..."}]}}
77
- # Use jq for robust JSON parsing when available, fallback to grep/sed
78
- if command -v jq >/dev/null 2>&1; then
79
- RAW_SUMMARY=$(echo "$LAST_ASSISTANT" | jq -r '.message.content[] | select(.type == "text") | .text' 2>/dev/null | head -1)
80
- else
81
- # Fallback: simple regex extraction (may fail on escaped quotes)
82
- RAW_SUMMARY=$(echo "$LAST_ASSISTANT" | grep -o '"text"[[:space:]]*:[[:space:]]*"[^"]*"' | head -1 | sed 's/.*: *"//' | sed 's/"$//')
83
- fi
84
- if [ -n "$RAW_SUMMARY" ]; then
85
- # Truncate to 100 chars and clean up newlines
86
- TASK_SUMMARY=$(echo "$RAW_SUMMARY" | tr '\n' ' ' | cut -c1-100)
87
- # Add ellipsis if truncated
88
- if [ ${#RAW_SUMMARY} -gt 100 ]; then
89
- TASK_SUMMARY="${TASK_SUMMARY}..."
90
- fi
91
- fi
92
- fi
93
- fi
94
-
95
- # Build session info string (shown in body)
96
- SESSION_INFO=""
97
- if [ -n "$SESSION_ID" ]; then
98
- SESSION_INFO="Session: $SESSION_ID"
99
- fi
100
-
101
- # Determine notification title and body based on hook type
102
- case "$HOOK_EVENT" in
103
- "Notification")
104
- case "$NOTIFICATION_TYPE" in
105
- "permission_prompt")
106
- TITLE="Claude [$SOURCE] - Permission Required"
107
- BODY="${MESSAGE:-Claude needs your permission to continue}"
108
- if [ -n "$SESSION_INFO" ]; then
109
- BODY="$SESSION_INFO
110
- $BODY"
111
- fi
112
- PRIORITY="high"
113
- TAGS="warning"
114
- ;;
115
- "idle_prompt")
116
- TITLE="Claude [$SOURCE] - Waiting"
117
- BODY="${MESSAGE:-Claude is waiting for your input}"
118
- if [ -n "$SESSION_INFO" ]; then
119
- BODY="$SESSION_INFO
120
- $BODY"
121
- fi
122
- PRIORITY="default"
123
- TAGS="hourglass"
124
- ;;
125
- *)
126
- TITLE="Claude [$SOURCE] - Attention"
127
- BODY="${MESSAGE:-Claude needs your attention}"
128
- if [ -n "$SESSION_INFO" ]; then
129
- BODY="$SESSION_INFO
130
- $BODY"
131
- fi
132
- PRIORITY="default"
133
- TAGS="bell"
134
- ;;
135
- esac
136
- ;;
137
- "Stop")
138
- TITLE="Claude [$SOURCE] - Finished"
139
- BODY="$PROJECT_NAME"
140
- if [ -n "$SESSION_INFO" ]; then
141
- BODY="$SESSION_INFO | $BODY"
142
- fi
143
- if [ -n "$TASK_SUMMARY" ]; then
144
- BODY="$BODY
145
- $TASK_SUMMARY"
146
- fi
147
- PRIORITY="default"
148
- TAGS="white_check_mark"
149
- ;;
150
- "SubagentStop")
151
- TITLE="Claude [$SOURCE] - Subagent Done"
152
- BODY="$PROJECT_NAME"
153
- if [ -n "$SESSION_INFO" ]; then
154
- BODY="$SESSION_INFO | $BODY"
155
- fi
156
- if [ -n "$TASK_SUMMARY" ]; then
157
- BODY="$BODY
158
- $TASK_SUMMARY"
159
- fi
160
- PRIORITY="low"
161
- TAGS="checkered_flag"
162
- ;;
163
- *)
164
- TITLE="Claude [$SOURCE]"
165
- BODY="${MESSAGE:-Event: $HOOK_EVENT}"
166
- if [ -n "$SESSION_INFO" ]; then
167
- BODY="$SESSION_INFO
168
- $BODY"
169
- fi
170
- PRIORITY="default"
171
- TAGS="robot"
172
- ;;
173
- esac
174
-
175
- # Send notification via ntfy.sh
176
- curl -s \
177
- -H "Title: $TITLE" \
178
- -H "Priority: $PRIORITY" \
179
- -H "Tags: $TAGS" \
180
- -d "$BODY" \
181
- "https://ntfy.sh/$NTFY_TOPIC" > /dev/null 2>&1
182
-
183
- exit 0