awesome-slash 3.3.3 → 3.4.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 (433) hide show
  1. package/.claude-plugin/marketplace.json +42 -12
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +26 -8
  4. package/README.md +42 -5
  5. package/adapters/opencode-plugin/index.ts +2 -0
  6. package/bin/cli.js +8 -5
  7. package/lib/enhance/hook-analyzer.js +135 -0
  8. package/lib/enhance/hook-patterns.js +40 -0
  9. package/lib/enhance/index.js +14 -0
  10. package/lib/enhance/reporter.js +1 -1
  11. package/lib/enhance/skill-analyzer.js +144 -0
  12. package/lib/enhance/skill-patterns.js +51 -0
  13. package/lib/index.js +2 -0
  14. package/lib/perf/analyzer/index.js +22 -0
  15. package/lib/perf/argument-parser.js +105 -0
  16. package/lib/perf/baseline-comparator.js +50 -0
  17. package/lib/perf/baseline-store.js +127 -0
  18. package/lib/perf/benchmark-runner.js +380 -0
  19. package/lib/perf/breaking-point-finder.js +52 -0
  20. package/lib/perf/breaking-point-runner.js +60 -0
  21. package/lib/perf/checkpoint.js +123 -0
  22. package/lib/perf/code-paths.js +86 -0
  23. package/lib/perf/consolidation.js +37 -0
  24. package/lib/perf/constraint-runner.js +71 -0
  25. package/lib/perf/experiment-runner.js +32 -0
  26. package/lib/perf/index.js +41 -0
  27. package/lib/perf/investigation-state.js +839 -0
  28. package/lib/perf/optimization-runner.js +79 -0
  29. package/lib/perf/profilers/go.js +22 -0
  30. package/lib/perf/profilers/index.js +46 -0
  31. package/lib/perf/profilers/java.js +23 -0
  32. package/lib/perf/profilers/node.js +27 -0
  33. package/lib/perf/profilers/python.js +23 -0
  34. package/lib/perf/profilers/rust.js +23 -0
  35. package/lib/perf/profiling-runner.js +56 -0
  36. package/lib/perf/schemas.js +140 -0
  37. package/lib/repo-map/index.js +1 -2
  38. package/lib/repo-map/runner.js +89 -14
  39. package/lib/repo-map/updater.js +6 -17
  40. package/mcp-server/index.js +105 -60
  41. package/package.json +1 -1
  42. package/plugins/audit-project/.claude-plugin/plugin.json +1 -1
  43. package/plugins/audit-project/lib/enhance/hook-analyzer.js +135 -0
  44. package/plugins/audit-project/lib/enhance/hook-patterns.js +40 -0
  45. package/plugins/audit-project/lib/enhance/index.js +14 -0
  46. package/plugins/audit-project/lib/enhance/reporter.js +1 -1
  47. package/plugins/audit-project/lib/enhance/skill-analyzer.js +144 -0
  48. package/plugins/audit-project/lib/enhance/skill-patterns.js +51 -0
  49. package/plugins/audit-project/lib/index.js +2 -0
  50. package/plugins/audit-project/lib/perf/analyzer/index.js +22 -0
  51. package/plugins/audit-project/lib/perf/argument-parser.js +105 -0
  52. package/plugins/audit-project/lib/perf/baseline-comparator.js +50 -0
  53. package/plugins/audit-project/lib/perf/baseline-store.js +127 -0
  54. package/plugins/audit-project/lib/perf/benchmark-runner.js +380 -0
  55. package/plugins/audit-project/lib/perf/breaking-point-finder.js +52 -0
  56. package/plugins/audit-project/lib/perf/breaking-point-runner.js +60 -0
  57. package/plugins/audit-project/lib/perf/checkpoint.js +123 -0
  58. package/plugins/audit-project/lib/perf/code-paths.js +86 -0
  59. package/plugins/audit-project/lib/perf/consolidation.js +37 -0
  60. package/plugins/audit-project/lib/perf/constraint-runner.js +71 -0
  61. package/plugins/audit-project/lib/perf/experiment-runner.js +32 -0
  62. package/plugins/audit-project/lib/perf/index.js +41 -0
  63. package/plugins/audit-project/lib/perf/investigation-state.js +839 -0
  64. package/plugins/audit-project/lib/perf/optimization-runner.js +79 -0
  65. package/plugins/audit-project/lib/perf/profilers/go.js +22 -0
  66. package/plugins/audit-project/lib/perf/profilers/index.js +46 -0
  67. package/plugins/audit-project/lib/perf/profilers/java.js +23 -0
  68. package/plugins/audit-project/lib/perf/profilers/node.js +27 -0
  69. package/plugins/audit-project/lib/perf/profilers/python.js +23 -0
  70. package/plugins/audit-project/lib/perf/profilers/rust.js +23 -0
  71. package/plugins/audit-project/lib/perf/profiling-runner.js +56 -0
  72. package/plugins/audit-project/lib/perf/schemas.js +140 -0
  73. package/plugins/audit-project/lib/repo-map/index.js +1 -2
  74. package/plugins/audit-project/lib/repo-map/runner.js +89 -14
  75. package/plugins/audit-project/lib/repo-map/updater.js +6 -17
  76. package/plugins/deslop/.claude-plugin/plugin.json +1 -1
  77. package/plugins/deslop/lib/enhance/hook-analyzer.js +135 -0
  78. package/plugins/deslop/lib/enhance/hook-patterns.js +40 -0
  79. package/plugins/deslop/lib/enhance/index.js +14 -0
  80. package/plugins/deslop/lib/enhance/reporter.js +1 -1
  81. package/plugins/deslop/lib/enhance/skill-analyzer.js +144 -0
  82. package/plugins/deslop/lib/enhance/skill-patterns.js +51 -0
  83. package/plugins/deslop/lib/index.js +2 -0
  84. package/plugins/deslop/lib/perf/analyzer/index.js +22 -0
  85. package/plugins/deslop/lib/perf/argument-parser.js +105 -0
  86. package/plugins/deslop/lib/perf/baseline-comparator.js +50 -0
  87. package/plugins/deslop/lib/perf/baseline-store.js +127 -0
  88. package/plugins/deslop/lib/perf/benchmark-runner.js +380 -0
  89. package/plugins/deslop/lib/perf/breaking-point-finder.js +52 -0
  90. package/plugins/deslop/lib/perf/breaking-point-runner.js +60 -0
  91. package/plugins/deslop/lib/perf/checkpoint.js +123 -0
  92. package/plugins/deslop/lib/perf/code-paths.js +86 -0
  93. package/plugins/deslop/lib/perf/consolidation.js +37 -0
  94. package/plugins/deslop/lib/perf/constraint-runner.js +71 -0
  95. package/plugins/deslop/lib/perf/experiment-runner.js +32 -0
  96. package/plugins/deslop/lib/perf/index.js +41 -0
  97. package/plugins/deslop/lib/perf/investigation-state.js +839 -0
  98. package/plugins/deslop/lib/perf/optimization-runner.js +79 -0
  99. package/plugins/deslop/lib/perf/profilers/go.js +22 -0
  100. package/plugins/deslop/lib/perf/profilers/index.js +46 -0
  101. package/plugins/deslop/lib/perf/profilers/java.js +23 -0
  102. package/plugins/deslop/lib/perf/profilers/node.js +27 -0
  103. package/plugins/deslop/lib/perf/profilers/python.js +23 -0
  104. package/plugins/deslop/lib/perf/profilers/rust.js +23 -0
  105. package/plugins/deslop/lib/perf/profiling-runner.js +56 -0
  106. package/plugins/deslop/lib/perf/schemas.js +140 -0
  107. package/plugins/deslop/lib/repo-map/index.js +1 -2
  108. package/plugins/deslop/lib/repo-map/runner.js +89 -14
  109. package/plugins/deslop/lib/repo-map/updater.js +6 -17
  110. package/plugins/drift-detect/.claude-plugin/plugin.json +1 -1
  111. package/plugins/drift-detect/lib/enhance/hook-analyzer.js +135 -0
  112. package/plugins/drift-detect/lib/enhance/hook-patterns.js +40 -0
  113. package/plugins/drift-detect/lib/enhance/index.js +14 -0
  114. package/plugins/drift-detect/lib/enhance/reporter.js +1 -1
  115. package/plugins/drift-detect/lib/enhance/skill-analyzer.js +144 -0
  116. package/plugins/drift-detect/lib/enhance/skill-patterns.js +51 -0
  117. package/plugins/drift-detect/lib/index.js +2 -0
  118. package/plugins/drift-detect/lib/perf/analyzer/index.js +22 -0
  119. package/plugins/drift-detect/lib/perf/argument-parser.js +105 -0
  120. package/plugins/drift-detect/lib/perf/baseline-comparator.js +50 -0
  121. package/plugins/drift-detect/lib/perf/baseline-store.js +127 -0
  122. package/plugins/drift-detect/lib/perf/benchmark-runner.js +380 -0
  123. package/plugins/drift-detect/lib/perf/breaking-point-finder.js +52 -0
  124. package/plugins/drift-detect/lib/perf/breaking-point-runner.js +60 -0
  125. package/plugins/drift-detect/lib/perf/checkpoint.js +123 -0
  126. package/plugins/drift-detect/lib/perf/code-paths.js +86 -0
  127. package/plugins/drift-detect/lib/perf/consolidation.js +37 -0
  128. package/plugins/drift-detect/lib/perf/constraint-runner.js +71 -0
  129. package/plugins/drift-detect/lib/perf/experiment-runner.js +32 -0
  130. package/plugins/drift-detect/lib/perf/index.js +41 -0
  131. package/plugins/drift-detect/lib/perf/investigation-state.js +839 -0
  132. package/plugins/drift-detect/lib/perf/optimization-runner.js +79 -0
  133. package/plugins/drift-detect/lib/perf/profilers/go.js +22 -0
  134. package/plugins/drift-detect/lib/perf/profilers/index.js +46 -0
  135. package/plugins/drift-detect/lib/perf/profilers/java.js +23 -0
  136. package/plugins/drift-detect/lib/perf/profilers/node.js +27 -0
  137. package/plugins/drift-detect/lib/perf/profilers/python.js +23 -0
  138. package/plugins/drift-detect/lib/perf/profilers/rust.js +23 -0
  139. package/plugins/drift-detect/lib/perf/profiling-runner.js +56 -0
  140. package/plugins/drift-detect/lib/perf/schemas.js +140 -0
  141. package/plugins/drift-detect/lib/repo-map/index.js +1 -2
  142. package/plugins/drift-detect/lib/repo-map/runner.js +89 -14
  143. package/plugins/drift-detect/lib/repo-map/updater.js +6 -17
  144. package/plugins/enhance/.claude-plugin/plugin.json +1 -1
  145. package/plugins/enhance/agents/agent-enhancer.md +2 -0
  146. package/plugins/enhance/agents/claudemd-enhancer.md +2 -0
  147. package/plugins/enhance/agents/docs-enhancer.md +2 -0
  148. package/plugins/enhance/agents/enhancement-orchestrator.md +59 -13
  149. package/plugins/enhance/agents/enhancement-reporter.md +3 -1
  150. package/plugins/enhance/agents/hooks-enhancer.md +12 -0
  151. package/plugins/enhance/agents/plugin-enhancer.md +2 -0
  152. package/plugins/enhance/agents/prompt-enhancer.md +2 -0
  153. package/plugins/enhance/agents/skills-enhancer.md +12 -0
  154. package/plugins/enhance/commands/enhance.md +120 -3
  155. package/plugins/enhance/lib/enhance/hook-analyzer.js +135 -0
  156. package/plugins/enhance/lib/enhance/hook-patterns.js +40 -0
  157. package/plugins/enhance/lib/enhance/index.js +14 -0
  158. package/plugins/enhance/lib/enhance/reporter.js +1 -1
  159. package/plugins/enhance/lib/enhance/skill-analyzer.js +144 -0
  160. package/plugins/enhance/lib/enhance/skill-patterns.js +51 -0
  161. package/plugins/enhance/lib/index.js +2 -0
  162. package/plugins/enhance/lib/perf/analyzer/index.js +22 -0
  163. package/plugins/enhance/lib/perf/argument-parser.js +105 -0
  164. package/plugins/enhance/lib/perf/baseline-comparator.js +50 -0
  165. package/plugins/enhance/lib/perf/baseline-store.js +127 -0
  166. package/plugins/enhance/lib/perf/benchmark-runner.js +380 -0
  167. package/plugins/enhance/lib/perf/breaking-point-finder.js +52 -0
  168. package/plugins/enhance/lib/perf/breaking-point-runner.js +60 -0
  169. package/plugins/enhance/lib/perf/checkpoint.js +123 -0
  170. package/plugins/enhance/lib/perf/code-paths.js +86 -0
  171. package/plugins/enhance/lib/perf/consolidation.js +37 -0
  172. package/plugins/enhance/lib/perf/constraint-runner.js +71 -0
  173. package/plugins/enhance/lib/perf/experiment-runner.js +32 -0
  174. package/plugins/enhance/lib/perf/index.js +41 -0
  175. package/plugins/enhance/lib/perf/investigation-state.js +839 -0
  176. package/plugins/enhance/lib/perf/optimization-runner.js +79 -0
  177. package/plugins/enhance/lib/perf/profilers/go.js +22 -0
  178. package/plugins/enhance/lib/perf/profilers/index.js +46 -0
  179. package/plugins/enhance/lib/perf/profilers/java.js +23 -0
  180. package/plugins/enhance/lib/perf/profilers/node.js +27 -0
  181. package/plugins/enhance/lib/perf/profilers/python.js +23 -0
  182. package/plugins/enhance/lib/perf/profilers/rust.js +23 -0
  183. package/plugins/enhance/lib/perf/profiling-runner.js +56 -0
  184. package/plugins/enhance/lib/perf/schemas.js +140 -0
  185. package/plugins/enhance/lib/repo-map/index.js +1 -2
  186. package/plugins/enhance/lib/repo-map/runner.js +89 -14
  187. package/plugins/enhance/lib/repo-map/updater.js +6 -17
  188. package/plugins/enhance/skills/agent-prompts/SKILL.md +31 -0
  189. package/plugins/enhance/skills/claude-memory/SKILL.md +31 -0
  190. package/plugins/enhance/skills/hooks/SKILL.md +31 -0
  191. package/plugins/enhance/skills/orchestrator/SKILL.md +32 -0
  192. package/plugins/enhance/skills/plugins/SKILL.md +31 -0
  193. package/plugins/enhance/skills/prompts/SKILL.md +30 -0
  194. package/plugins/enhance/skills/reporter/SKILL.md +22 -0
  195. package/plugins/enhance/skills/skills/SKILL.md +30 -0
  196. package/plugins/next-task/.claude-plugin/plugin.json +1 -1
  197. package/plugins/next-task/lib/enhance/hook-analyzer.js +135 -0
  198. package/plugins/next-task/lib/enhance/hook-patterns.js +40 -0
  199. package/plugins/next-task/lib/enhance/index.js +14 -0
  200. package/plugins/next-task/lib/enhance/reporter.js +1 -1
  201. package/plugins/next-task/lib/enhance/skill-analyzer.js +144 -0
  202. package/plugins/next-task/lib/enhance/skill-patterns.js +51 -0
  203. package/plugins/next-task/lib/index.js +2 -0
  204. package/plugins/next-task/lib/perf/analyzer/index.js +22 -0
  205. package/plugins/next-task/lib/perf/argument-parser.js +105 -0
  206. package/plugins/next-task/lib/perf/baseline-comparator.js +50 -0
  207. package/plugins/next-task/lib/perf/baseline-store.js +127 -0
  208. package/plugins/next-task/lib/perf/benchmark-runner.js +380 -0
  209. package/plugins/next-task/lib/perf/breaking-point-finder.js +52 -0
  210. package/plugins/next-task/lib/perf/breaking-point-runner.js +60 -0
  211. package/plugins/next-task/lib/perf/checkpoint.js +123 -0
  212. package/plugins/next-task/lib/perf/code-paths.js +86 -0
  213. package/plugins/next-task/lib/perf/consolidation.js +37 -0
  214. package/plugins/next-task/lib/perf/constraint-runner.js +71 -0
  215. package/plugins/next-task/lib/perf/experiment-runner.js +32 -0
  216. package/plugins/next-task/lib/perf/index.js +41 -0
  217. package/plugins/next-task/lib/perf/investigation-state.js +839 -0
  218. package/plugins/next-task/lib/perf/optimization-runner.js +79 -0
  219. package/plugins/next-task/lib/perf/profilers/go.js +22 -0
  220. package/plugins/next-task/lib/perf/profilers/index.js +46 -0
  221. package/plugins/next-task/lib/perf/profilers/java.js +23 -0
  222. package/plugins/next-task/lib/perf/profilers/node.js +27 -0
  223. package/plugins/next-task/lib/perf/profilers/python.js +23 -0
  224. package/plugins/next-task/lib/perf/profilers/rust.js +23 -0
  225. package/plugins/next-task/lib/perf/profiling-runner.js +56 -0
  226. package/plugins/next-task/lib/perf/schemas.js +140 -0
  227. package/plugins/next-task/lib/repo-map/index.js +1 -2
  228. package/plugins/next-task/lib/repo-map/runner.js +89 -14
  229. package/plugins/next-task/lib/repo-map/updater.js +6 -17
  230. package/plugins/perf/.claude-plugin/plugin.json +20 -0
  231. package/plugins/perf/agents/perf-analyzer.md +40 -0
  232. package/plugins/perf/agents/perf-code-paths.md +12 -0
  233. package/plugins/perf/agents/perf-investigation-logger.md +44 -0
  234. package/plugins/perf/agents/perf-orchestrator.md +311 -0
  235. package/plugins/perf/agents/perf-theory-gatherer.md +12 -0
  236. package/plugins/perf/agents/perf-theory-tester.md +43 -0
  237. package/plugins/perf/commands/perf.md +467 -0
  238. package/plugins/perf/hooks/checkpoint.md +27 -0
  239. package/plugins/perf/hooks/constraint-tester.md +40 -0
  240. package/plugins/perf/lib/config/index.js +14 -0
  241. package/plugins/perf/lib/cross-platform/index.js +462 -0
  242. package/plugins/perf/lib/drift-detect/collectors.js +861 -0
  243. package/plugins/perf/lib/enhance/agent-analyzer.js +421 -0
  244. package/plugins/perf/lib/enhance/agent-patterns.js +569 -0
  245. package/plugins/perf/lib/enhance/docs-analyzer.js +325 -0
  246. package/plugins/perf/lib/enhance/docs-patterns.js +671 -0
  247. package/plugins/perf/lib/enhance/fixer.js +468 -0
  248. package/plugins/perf/lib/enhance/hook-analyzer.js +135 -0
  249. package/plugins/perf/lib/enhance/hook-patterns.js +40 -0
  250. package/plugins/perf/lib/enhance/index.js +92 -0
  251. package/plugins/perf/lib/enhance/plugin-analyzer.js +402 -0
  252. package/plugins/perf/lib/enhance/plugin-patterns.js +326 -0
  253. package/plugins/perf/lib/enhance/projectmemory-analyzer.js +541 -0
  254. package/plugins/perf/lib/enhance/projectmemory-patterns.js +470 -0
  255. package/plugins/perf/lib/enhance/prompt-analyzer.js +429 -0
  256. package/plugins/perf/lib/enhance/prompt-patterns.js +783 -0
  257. package/plugins/perf/lib/enhance/reporter.js +1310 -0
  258. package/plugins/perf/lib/enhance/security-patterns.js +284 -0
  259. package/plugins/perf/lib/enhance/skill-analyzer.js +144 -0
  260. package/plugins/perf/lib/enhance/skill-patterns.js +51 -0
  261. package/plugins/perf/lib/enhance/tool-patterns.js +373 -0
  262. package/plugins/perf/lib/index.js +248 -0
  263. package/plugins/perf/lib/patterns/cli-enhancers.js +606 -0
  264. package/plugins/perf/lib/patterns/pipeline.js +785 -0
  265. package/plugins/perf/lib/patterns/review-patterns.js +558 -0
  266. package/plugins/perf/lib/patterns/slop-analyzers.js +2281 -0
  267. package/plugins/perf/lib/patterns/slop-patterns.js +1197 -0
  268. package/plugins/perf/lib/perf/analyzer/index.js +22 -0
  269. package/plugins/perf/lib/perf/argument-parser.js +105 -0
  270. package/plugins/perf/lib/perf/baseline-comparator.js +50 -0
  271. package/plugins/perf/lib/perf/baseline-store.js +127 -0
  272. package/plugins/perf/lib/perf/benchmark-runner.js +380 -0
  273. package/plugins/perf/lib/perf/breaking-point-finder.js +52 -0
  274. package/plugins/perf/lib/perf/breaking-point-runner.js +60 -0
  275. package/plugins/perf/lib/perf/checkpoint.js +123 -0
  276. package/plugins/perf/lib/perf/code-paths.js +86 -0
  277. package/plugins/perf/lib/perf/consolidation.js +37 -0
  278. package/plugins/perf/lib/perf/constraint-runner.js +71 -0
  279. package/plugins/perf/lib/perf/experiment-runner.js +32 -0
  280. package/plugins/perf/lib/perf/index.js +41 -0
  281. package/plugins/perf/lib/perf/investigation-state.js +839 -0
  282. package/plugins/perf/lib/perf/optimization-runner.js +79 -0
  283. package/plugins/perf/lib/perf/profilers/go.js +22 -0
  284. package/plugins/perf/lib/perf/profilers/index.js +46 -0
  285. package/plugins/perf/lib/perf/profilers/java.js +23 -0
  286. package/plugins/perf/lib/perf/profilers/node.js +27 -0
  287. package/plugins/perf/lib/perf/profilers/python.js +23 -0
  288. package/plugins/perf/lib/perf/profilers/rust.js +23 -0
  289. package/plugins/perf/lib/perf/profiling-runner.js +56 -0
  290. package/plugins/perf/lib/perf/schemas.js +140 -0
  291. package/plugins/perf/lib/platform/detect-platform.js +360 -0
  292. package/plugins/perf/lib/platform/detection-configs.js +93 -0
  293. package/plugins/perf/lib/platform/state-dir.js +132 -0
  294. package/plugins/perf/lib/platform/verify-tools.js +167 -0
  295. package/plugins/perf/lib/repo-map/cache.js +151 -0
  296. package/plugins/perf/lib/repo-map/index.js +211 -0
  297. package/plugins/perf/lib/repo-map/installer.js +205 -0
  298. package/plugins/perf/lib/repo-map/queries/go.js +27 -0
  299. package/plugins/perf/lib/repo-map/queries/index.js +100 -0
  300. package/plugins/perf/lib/repo-map/queries/java.js +38 -0
  301. package/plugins/perf/lib/repo-map/queries/javascript.js +55 -0
  302. package/plugins/perf/lib/repo-map/queries/python.js +24 -0
  303. package/plugins/perf/lib/repo-map/queries/rust.js +73 -0
  304. package/plugins/perf/lib/repo-map/queries/typescript.js +38 -0
  305. package/plugins/perf/lib/repo-map/runner.js +1079 -0
  306. package/plugins/perf/lib/repo-map/updater.js +419 -0
  307. package/plugins/perf/lib/schemas/validator.js +247 -0
  308. package/plugins/perf/lib/sources/custom-handler.js +199 -0
  309. package/plugins/perf/lib/sources/policy-questions.js +246 -0
  310. package/plugins/perf/lib/sources/source-cache.js +164 -0
  311. package/plugins/perf/lib/state/workflow-state.js +538 -0
  312. package/plugins/perf/lib/types/agent-frontmatter.d.ts +134 -0
  313. package/plugins/perf/lib/types/command-frontmatter.d.ts +107 -0
  314. package/plugins/perf/lib/types/hook-frontmatter.d.ts +115 -0
  315. package/plugins/perf/lib/types/index.d.ts +84 -0
  316. package/plugins/perf/lib/types/plugin-manifest.d.ts +102 -0
  317. package/plugins/perf/lib/types/skill-frontmatter.d.ts +89 -0
  318. package/plugins/perf/lib/utils/cache-manager.js +154 -0
  319. package/plugins/perf/lib/utils/context-optimizer.js +300 -0
  320. package/plugins/perf/lib/utils/deprecation.js +37 -0
  321. package/plugins/perf/lib/utils/shell-escape.js +88 -0
  322. package/plugins/perf/skills/analyzer/SKILL.md +37 -0
  323. package/plugins/perf/skills/baseline/SKILL.md +30 -0
  324. package/plugins/perf/skills/benchmark/SKILL.md +43 -0
  325. package/plugins/perf/skills/code-paths/SKILL.md +32 -0
  326. package/plugins/perf/skills/investigation-logger/SKILL.md +41 -0
  327. package/plugins/perf/skills/profile/SKILL.md +33 -0
  328. package/plugins/perf/skills/theory/SKILL.md +35 -0
  329. package/plugins/perf/skills/theory-tester/SKILL.md +36 -0
  330. package/plugins/repo-map/.claude-plugin/plugin.json +1 -1
  331. package/plugins/repo-map/commands/repo-map.md +4 -10
  332. package/plugins/repo-map/lib/enhance/hook-analyzer.js +135 -0
  333. package/plugins/repo-map/lib/enhance/hook-patterns.js +40 -0
  334. package/plugins/repo-map/lib/enhance/index.js +14 -0
  335. package/plugins/repo-map/lib/enhance/reporter.js +1 -1
  336. package/plugins/repo-map/lib/enhance/skill-analyzer.js +144 -0
  337. package/plugins/repo-map/lib/enhance/skill-patterns.js +51 -0
  338. package/plugins/repo-map/lib/index.js +2 -0
  339. package/plugins/repo-map/lib/perf/analyzer/index.js +22 -0
  340. package/plugins/repo-map/lib/perf/argument-parser.js +105 -0
  341. package/plugins/repo-map/lib/perf/baseline-comparator.js +50 -0
  342. package/plugins/repo-map/lib/perf/baseline-store.js +127 -0
  343. package/plugins/repo-map/lib/perf/benchmark-runner.js +380 -0
  344. package/plugins/repo-map/lib/perf/breaking-point-finder.js +52 -0
  345. package/plugins/repo-map/lib/perf/breaking-point-runner.js +60 -0
  346. package/plugins/repo-map/lib/perf/checkpoint.js +123 -0
  347. package/plugins/repo-map/lib/perf/code-paths.js +86 -0
  348. package/plugins/repo-map/lib/perf/consolidation.js +37 -0
  349. package/plugins/repo-map/lib/perf/constraint-runner.js +71 -0
  350. package/plugins/repo-map/lib/perf/experiment-runner.js +32 -0
  351. package/plugins/repo-map/lib/perf/index.js +41 -0
  352. package/plugins/repo-map/lib/perf/investigation-state.js +839 -0
  353. package/plugins/repo-map/lib/perf/optimization-runner.js +79 -0
  354. package/plugins/repo-map/lib/perf/profilers/go.js +22 -0
  355. package/plugins/repo-map/lib/perf/profilers/index.js +46 -0
  356. package/plugins/repo-map/lib/perf/profilers/java.js +23 -0
  357. package/plugins/repo-map/lib/perf/profilers/node.js +27 -0
  358. package/plugins/repo-map/lib/perf/profilers/python.js +23 -0
  359. package/plugins/repo-map/lib/perf/profilers/rust.js +23 -0
  360. package/plugins/repo-map/lib/perf/profiling-runner.js +56 -0
  361. package/plugins/repo-map/lib/perf/schemas.js +140 -0
  362. package/plugins/repo-map/lib/repo-map/index.js +1 -2
  363. package/plugins/repo-map/lib/repo-map/runner.js +89 -14
  364. package/plugins/repo-map/lib/repo-map/updater.js +6 -17
  365. package/plugins/ship/.claude-plugin/plugin.json +1 -1
  366. package/plugins/ship/lib/enhance/hook-analyzer.js +135 -0
  367. package/plugins/ship/lib/enhance/hook-patterns.js +40 -0
  368. package/plugins/ship/lib/enhance/index.js +14 -0
  369. package/plugins/ship/lib/enhance/reporter.js +1 -1
  370. package/plugins/ship/lib/enhance/skill-analyzer.js +144 -0
  371. package/plugins/ship/lib/enhance/skill-patterns.js +51 -0
  372. package/plugins/ship/lib/index.js +2 -0
  373. package/plugins/ship/lib/perf/analyzer/index.js +22 -0
  374. package/plugins/ship/lib/perf/argument-parser.js +105 -0
  375. package/plugins/ship/lib/perf/baseline-comparator.js +50 -0
  376. package/plugins/ship/lib/perf/baseline-store.js +127 -0
  377. package/plugins/ship/lib/perf/benchmark-runner.js +380 -0
  378. package/plugins/ship/lib/perf/breaking-point-finder.js +52 -0
  379. package/plugins/ship/lib/perf/breaking-point-runner.js +60 -0
  380. package/plugins/ship/lib/perf/checkpoint.js +123 -0
  381. package/plugins/ship/lib/perf/code-paths.js +86 -0
  382. package/plugins/ship/lib/perf/consolidation.js +37 -0
  383. package/plugins/ship/lib/perf/constraint-runner.js +71 -0
  384. package/plugins/ship/lib/perf/experiment-runner.js +32 -0
  385. package/plugins/ship/lib/perf/index.js +41 -0
  386. package/plugins/ship/lib/perf/investigation-state.js +839 -0
  387. package/plugins/ship/lib/perf/optimization-runner.js +79 -0
  388. package/plugins/ship/lib/perf/profilers/go.js +22 -0
  389. package/plugins/ship/lib/perf/profilers/index.js +46 -0
  390. package/plugins/ship/lib/perf/profilers/java.js +23 -0
  391. package/plugins/ship/lib/perf/profilers/node.js +27 -0
  392. package/plugins/ship/lib/perf/profilers/python.js +23 -0
  393. package/plugins/ship/lib/perf/profilers/rust.js +23 -0
  394. package/plugins/ship/lib/perf/profiling-runner.js +56 -0
  395. package/plugins/ship/lib/perf/schemas.js +140 -0
  396. package/plugins/ship/lib/repo-map/index.js +1 -2
  397. package/plugins/ship/lib/repo-map/runner.js +89 -14
  398. package/plugins/ship/lib/repo-map/updater.js +6 -17
  399. package/plugins/sync-docs/.claude-plugin/plugin.json +1 -1
  400. package/plugins/sync-docs/lib/enhance/hook-analyzer.js +135 -0
  401. package/plugins/sync-docs/lib/enhance/hook-patterns.js +40 -0
  402. package/plugins/sync-docs/lib/enhance/index.js +14 -0
  403. package/plugins/sync-docs/lib/enhance/reporter.js +1 -1
  404. package/plugins/sync-docs/lib/enhance/skill-analyzer.js +144 -0
  405. package/plugins/sync-docs/lib/enhance/skill-patterns.js +51 -0
  406. package/plugins/sync-docs/lib/index.js +2 -0
  407. package/plugins/sync-docs/lib/perf/analyzer/index.js +22 -0
  408. package/plugins/sync-docs/lib/perf/argument-parser.js +105 -0
  409. package/plugins/sync-docs/lib/perf/baseline-comparator.js +50 -0
  410. package/plugins/sync-docs/lib/perf/baseline-store.js +127 -0
  411. package/plugins/sync-docs/lib/perf/benchmark-runner.js +380 -0
  412. package/plugins/sync-docs/lib/perf/breaking-point-finder.js +52 -0
  413. package/plugins/sync-docs/lib/perf/breaking-point-runner.js +60 -0
  414. package/plugins/sync-docs/lib/perf/checkpoint.js +123 -0
  415. package/plugins/sync-docs/lib/perf/code-paths.js +86 -0
  416. package/plugins/sync-docs/lib/perf/consolidation.js +37 -0
  417. package/plugins/sync-docs/lib/perf/constraint-runner.js +71 -0
  418. package/plugins/sync-docs/lib/perf/experiment-runner.js +32 -0
  419. package/plugins/sync-docs/lib/perf/index.js +41 -0
  420. package/plugins/sync-docs/lib/perf/investigation-state.js +839 -0
  421. package/plugins/sync-docs/lib/perf/optimization-runner.js +79 -0
  422. package/plugins/sync-docs/lib/perf/profilers/go.js +22 -0
  423. package/plugins/sync-docs/lib/perf/profilers/index.js +46 -0
  424. package/plugins/sync-docs/lib/perf/profilers/java.js +23 -0
  425. package/plugins/sync-docs/lib/perf/profilers/node.js +27 -0
  426. package/plugins/sync-docs/lib/perf/profilers/python.js +23 -0
  427. package/plugins/sync-docs/lib/perf/profilers/rust.js +23 -0
  428. package/plugins/sync-docs/lib/perf/profiling-runner.js +56 -0
  429. package/plugins/sync-docs/lib/perf/schemas.js +140 -0
  430. package/plugins/sync-docs/lib/repo-map/index.js +1 -2
  431. package/plugins/sync-docs/lib/repo-map/runner.js +89 -14
  432. package/plugins/sync-docs/lib/repo-map/updater.js +6 -17
  433. package/scripts/perf/repo-map-create.js +46 -0
@@ -1,68 +1,88 @@
1
1
  {
2
2
  "name": "awesome-slash",
3
- "description": "8 specialized plugins for AI workflow automation - task orchestration, PR workflow, slop detection, code review, drift detection, enhancement analysis, documentation sync, and repo mapping",
4
- "version": "3.3.3",
3
+ "description": "9 specialized plugins for AI workflow automation - task orchestration, PR workflow, slop detection, code review, drift detection, enhancement analysis, documentation sync, repo mapping, and perf investigations",
4
+ "version": "3.4.0",
5
5
  "owner": {
6
6
  "name": "Avi Fenesh",
7
7
  "url": "https://github.com/avifenesh"
8
8
  },
9
9
  "repository": "https://github.com/avifenesh/awesome-slash",
10
- "keywords": ["ai", "llm", "agents", "agentic", "claude-code", "opencode", "codex", "mcp", "automation", "workflow", "code-review", "multi-agent"],
10
+ "keywords": [
11
+ "ai",
12
+ "llm",
13
+ "agents",
14
+ "agentic",
15
+ "claude-code",
16
+ "opencode",
17
+ "codex",
18
+ "mcp",
19
+ "automation",
20
+ "workflow",
21
+ "code-review",
22
+ "multi-agent"
23
+ ],
11
24
  "plugins": [
12
25
  {
13
26
  "name": "next-task",
14
27
  "source": "./plugins/next-task",
15
28
  "description": "Master workflow orchestrator: autonomous workflow with model optimization (opus/sonnet/haiku), two-file state management, workflow enforcement gates, 14 specialist agents",
16
- "version": "3.3.3",
29
+ "version": "3.4.0",
17
30
  "category": "productivity"
18
31
  },
19
32
  {
20
33
  "name": "ship",
21
34
  "source": "./plugins/ship",
22
35
  "description": "Complete PR workflow: commit to production, skips review when called from next-task, removes task from registry on cleanup, automatic rollback",
23
- "version": "3.3.3",
36
+ "version": "3.4.0",
24
37
  "category": "deployment"
25
38
  },
26
39
  {
27
40
  "name": "deslop",
28
41
  "source": "./plugins/deslop",
29
42
  "description": "3-phase AI slop detection: regex patterns (HIGH), multi-pass analyzers (MEDIUM), CLI tools (LOW)",
30
- "version": "3.3.3",
43
+ "version": "3.4.0",
31
44
  "category": "development"
32
45
  },
33
46
  {
34
47
  "name": "audit-project",
35
48
  "source": "./plugins/audit-project",
36
49
  "description": "Multi-agent iterative code review until zero issues remain",
37
- "version": "3.3.3",
50
+ "version": "3.4.0",
38
51
  "category": "development"
39
52
  },
40
53
  {
41
54
  "name": "drift-detect",
42
55
  "source": "./plugins/drift-detect",
43
56
  "description": "Deep repository analysis to realign project plans with code reality - detects drift, gaps, and creates prioritized reconstruction plans",
44
- "version": "3.3.3",
57
+ "version": "3.4.0",
45
58
  "category": "productivity"
46
59
  },
47
60
  {
48
61
  "name": "enhance",
49
62
  "source": "./plugins/enhance",
50
63
  "description": "Master enhancement orchestrator: parallel analyzer execution for plugins, agents, docs, CLAUDE.md, and prompts with unified reporting",
51
- "version": "3.3.3",
64
+ "version": "3.4.0",
52
65
  "category": "development"
53
66
  },
54
67
  {
55
68
  "name": "sync-docs",
56
69
  "source": "./plugins/sync-docs",
57
70
  "description": "Standalone documentation sync: find outdated refs, update CHANGELOG, flag stale examples based on code changes",
58
- "version": "3.3.3",
71
+ "version": "3.4.0",
59
72
  "category": "development"
60
73
  },
61
74
  {
62
75
  "name": "repo-map",
63
76
  "source": "./plugins/repo-map",
64
77
  "description": "AST-based repository map generation using ast-grep with incremental updates for faster drift analysis",
65
- "version": "3.3.3",
78
+ "version": "3.4.0",
79
+ "category": "development"
80
+ },
81
+ {
82
+ "name": "perf",
83
+ "source": "./plugins/perf",
84
+ "description": "Rigorous performance investigation workflow with baselines, profiling, hypotheses, and evidence-backed decisions",
85
+ "version": "3.4.0",
66
86
  "category": "development"
67
87
  }
68
88
  ],
@@ -70,6 +90,16 @@
70
90
  "name": "awesome-slash",
71
91
  "source": "./mcp-server",
72
92
  "description": "Cross-platform MCP server with 3-phase slop detection pipeline and enhance analyzers",
73
- "tools": ["workflow_status", "workflow_start", "workflow_resume", "workflow_abort", "task_discover", "review_code", "slop_detect", "enhance_analyze", "repo_map"]
93
+ "tools": [
94
+ "workflow_status",
95
+ "workflow_start",
96
+ "workflow_resume",
97
+ "workflow_abort",
98
+ "task_discover",
99
+ "review_code",
100
+ "slop_detect",
101
+ "enhance_analyze",
102
+ "repo_map"
103
+ ]
74
104
  }
75
105
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "awesome-slash",
3
- "version": "3.3.3",
3
+ "version": "3.4.0",
4
4
  "description": "Professional-grade slash commands for Claude Code with cross-platform support",
5
5
  "keywords": [
6
6
  "workflow",
package/CHANGELOG.md CHANGED
@@ -7,16 +7,34 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
- ## [3.3.3] - 2026-01-29
10
+ ## [3.4.0] - 2026-01-29
11
+
12
+ ### Added
13
+ - **Repo-map perf script** - Reusable benchmark runner for repo-map creation
14
+
15
+ ### Changed
16
+ - **/perf benchmarking** - Added oneshot mode plus multi-run aggregation with duration/runs controls
17
+
18
+ ### Removed
19
+ - **Repo-map docs analysis** - Dropped documentation scanning and legacy docs fields from repo-map output
20
+
21
+ ## [3.4.0-rc.1] - 2026-01-29
22
+
23
+ ### Added
24
+ - **/perf Plugin** - Structured performance investigations with baselines, profiling, hypotheses, and evidence-backed decisions
25
+ - **/perf Command** - Phase-based workflow for baselining, breaking points, constraints, profiling, and consolidation
26
+ - **/perf Skills & Agents** - Baseline, benchmark, profiling, theory testing, code paths, and investigation logging
27
+ - **/enhance Hooks Analyzer** - New hook checks for frontmatter completeness and safety cues
28
+ - **/enhance Skills Analyzer** - New SKILL.md checks for frontmatter and trigger phrase clarity
29
+ - **Enhance MCP Tool** - `enhance_analyze` now supports `hooks` and `skills` focus targets
30
+
31
+ ### Changed
32
+ - **Enhance Orchestrator** - Expanded to run hooks/skills analyzers alongside existing enhancers
33
+ - **Docs** - Expanded /perf usage, requirements, and architecture references
11
34
 
12
35
  ### Fixed
13
- - **Windows Path Template Substitution** - Fixed plugin path template substitution across 18 command/agent files
14
- - Replaced `'${CLAUDE_PLUGIN_ROOT}'.replace()` with runtime `process.env` access
15
- - Pattern: `(process.env.CLAUDE_PLUGIN_ROOT || process.env.PLUGIN_ROOT || '').replace(/\/g, '/')`
16
- - Supports both CLAUDE_PLUGIN_ROOT and PLUGIN_ROOT for cross-platform compatibility
17
- - Added validation for missing environment variables in bash sections
18
- - Bash pattern: `${CLAUDE_PLUGIN_ROOT:-$PLUGIN_ROOT}` with explicit error handling
19
- - Fixes: Template strings in require() paths were not being substituted at runtime on Windows
36
+ - **/perf Path Safety** - Validate investigation ids and baseline versions to prevent path traversal
37
+ - **/perf Optimization Runner** - Explicit warm-up before experiment capture
20
38
 
21
39
  ## [3.3.2] - 2026-01-29
22
40
 
package/README.md CHANGED
@@ -14,9 +14,10 @@ AI models can write code. That's not the hard part anymore. The hard part is eve
14
14
 
15
15
  | Section | What's there |
16
16
  |---------|--------------|
17
- | [Commands](#commands) | All 8 commands with jump links |
17
+ | [Commands](#commands) | All 9 commands with jump links |
18
18
  | [What This Does](#what-this-project-does) | The problem and how this solves it |
19
19
  | [What's Different](#what-makes-this-different) | Why this isn't just another AI tool |
20
+ | [What's New](#whats-new-in-v340) | Latest release highlights |
20
21
  | [Design Philosophy](#design-philosophy) | The thinking behind the architecture |
21
22
  | [Command Details](#command-details) | Deep dive into each command |
22
23
  | [Installation](#installation) | Get started in 2 commands |
@@ -34,8 +35,17 @@ AI models can write code. That's not the hard part anymore. The hard part is eve
34
35
  | [`/audit-project`](#audit-project) | Multi-agent code review until issues resolved | [→](#audit-project) |
35
36
  | [`/drift-detect`](#drift-detect) | Compares your docs to actual code state | [→](#drift-detect) |
36
37
  | [`/repo-map`](#repo-map) | Builds a cached AST repo map for fast analysis | [→](#repo-map) |
37
- | [`/enhance`](#enhance) | Analyzes prompts, plugins, docs for improvements | [→](#enhance) |
38
+ | [`/enhance`](#enhance) | Analyzes prompts, plugins, agents, docs, hooks, skills | [→](#enhance) |
38
39
  | [`/sync-docs`](#sync-docs) | Syncs documentation with code changes | [→](#sync-docs) |
40
+ | [`/perf`](#perf) | Runs structured performance investigations | [→](#perf) |
41
+
42
+ ---
43
+
44
+ ## What's New in v3.4.0
45
+
46
+ - **/perf benchmarking upgrades** with oneshot runs, multi-run aggregation, and configurable duration/runs
47
+ - **Repo-map simplification** by removing documentation analysis and legacy docs fields
48
+ - **Repo-map perf script** for consistent map creation benchmarks
39
49
 
40
50
  ---
41
51
 
@@ -433,7 +443,6 @@ Multi-agent collection wastes tokens on coordination. JavaScript collectors are
433
443
 
434
444
  - Cached file→symbols map (exports, functions, classes)
435
445
  - Import graph for dependency hints
436
- - Optional docs analysis (features, checkboxes)
437
446
 
438
447
  Output is cached at `{state-dir}/repo-map.json` and exposed via the MCP `repo_map` tool.
439
448
 
@@ -455,9 +464,9 @@ Tools like `/drift-detect` and planners can use the map instead of re-scanning t
455
464
 
456
465
  ### /enhance
457
466
 
458
- **Purpose:** Analyzes your prompts, plugins, agents, and docs for improvement opportunities.
467
+ **Purpose:** Analyzes your prompts, plugins, agents, docs, hooks, and skills for improvement opportunities.
459
468
 
460
- **Five analyzers run in parallel:**
469
+ **Seven analyzers run in parallel:**
461
470
 
462
471
  | Analyzer | What it checks |
463
472
  |----------|----------------|
@@ -466,6 +475,8 @@ Tools like `/drift-detect` and planners can use the map instead of re-scanning t
466
475
  | claudemd-enhancer | CLAUDE.md/AGENTS.md structure, token efficiency |
467
476
  | docs-enhancer | Documentation readability, RAG optimization |
468
477
  | prompt-enhancer | Prompt engineering patterns, clarity, examples |
478
+ | hooks-enhancer | Hook frontmatter, structure, safety |
479
+ | skills-enhancer | SKILL.md structure, trigger phrases |
469
480
 
470
481
  **Each finding includes:**
471
482
  - Certainty level (HIGH/MEDIUM/LOW)
@@ -484,6 +495,32 @@ Tools like `/drift-detect` and planners can use the map instead of re-scanning t
484
495
 
485
496
  ---
486
497
 
498
+ ### /perf
499
+
500
+ **Purpose:** Run structured performance investigations with baselines, profiling, and evidence‑backed decisions.
501
+
502
+ **Usage:**
503
+
504
+ ```bash
505
+ /perf # Start new investigation
506
+ /perf --resume # Resume previous investigation
507
+ ```
508
+
509
+ **Phase flags (advanced):**
510
+
511
+ ```bash
512
+ /perf --phase baseline --command "npm run bench" --version v1.2.0
513
+ /perf --phase breaking-point --command "npm run bench" --param-min 1 --param-max 500
514
+ /perf --phase constraints --command "npm run bench" --cpu 1 --memory 1GB
515
+ /perf --phase hypotheses --hypotheses-file perf-hypotheses.json
516
+ /perf --phase code-paths
517
+ /perf --phase optimization --change "reduce allocations"
518
+ /perf --phase decision --verdict stop --rationale "no measurable improvement"
519
+ /perf --phase consolidation --version v1.2.0
520
+ ```
521
+
522
+ ---
523
+
487
524
  ### /sync-docs
488
525
 
489
526
  **Purpose:** Sync documentation with actual code changes—find outdated refs, update CHANGELOG, flag stale examples.
@@ -45,6 +45,8 @@ const AGENT_THINKING_CONFIG: Record<string, { budget: number; description: strin
45
45
  "docs-enhancer": { budget: 16000, description: "Docs improvement" },
46
46
  "claudemd-enhancer": { budget: 16000, description: "Project memory optimization" },
47
47
  "prompt-enhancer": { budget: 16000, description: "Prompt quality analysis" },
48
+ "hooks-enhancer": { budget: 16000, description: "Hook best-practices review" },
49
+ "skills-enhancer": { budget: 16000, description: "Skill prompt review" },
48
50
  }
49
51
 
50
52
  // Workflow phases where certain actions are blocked
package/bin/cli.js CHANGED
@@ -135,7 +135,7 @@ function installForClaude() {
135
135
  }
136
136
 
137
137
  // PLUGINS_ARRAY - Install or update plugins
138
- const plugins = ['next-task', 'ship', 'deslop', 'audit-project', 'drift-detect', 'enhance', 'sync-docs', 'repo-map'];
138
+ const plugins = ['next-task', 'ship', 'deslop', 'audit-project', 'drift-detect', 'enhance', 'sync-docs', 'repo-map', 'perf'];
139
139
  for (const plugin of plugins) {
140
140
  console.log(` Installing ${plugin}...`);
141
141
  try {
@@ -152,7 +152,7 @@ function installForClaude() {
152
152
  }
153
153
 
154
154
  console.log('\n✅ Claude Code installation complete!\n');
155
- console.log('Commands: /next-task, /ship, /deslop, /audit-project, /drift-detect, /enhance');
155
+ console.log('Commands: /next-task, /ship, /deslop, /audit-project, /drift-detect, /enhance, /perf');
156
156
  return true;
157
157
  } catch (err) {
158
158
  console.log('❌ Auto-install failed. Manual installation:');
@@ -249,7 +249,8 @@ function installForOpenCode(installDir, options = {}) {
249
249
  ['audit-project.md', 'audit-project', 'audit-project.md'],
250
250
  ['ship.md', 'ship', 'ship.md'],
251
251
  ['drift-detect.md', 'drift-detect', 'drift-detect.md'],
252
- ['repo-map.md', 'repo-map', 'repo-map.md']
252
+ ['repo-map.md', 'repo-map', 'repo-map.md'],
253
+ ['perf.md', 'perf', 'perf.md']
253
254
  ];
254
255
 
255
256
  // Helper function to transform content for OpenCode
@@ -311,7 +312,7 @@ function installForOpenCode(installDir, options = {}) {
311
312
  fs.mkdirSync(agentsDir, { recursive: true });
312
313
 
313
314
  console.log(' Installing agents for OpenCode...');
314
- const pluginDirs = ['next-task', 'enhance', 'audit-project', 'drift-detect', 'ship', 'deslop', 'repo-map'];
315
+ const pluginDirs = ['next-task', 'enhance', 'audit-project', 'drift-detect', 'ship', 'deslop', 'repo-map', 'perf'];
315
316
  let agentCount = 0;
316
317
 
317
318
  for (const pluginName of pluginDirs) {
@@ -388,7 +389,7 @@ function installForOpenCode(installDir, options = {}) {
388
389
  console.log(` Commands: ${commandsDir}`);
389
390
  console.log(` Agents: ${agentsDir}`);
390
391
  console.log(` Plugin: ${pluginDir}`);
391
- console.log(' Access via: /next-task, /ship, /deslop, /audit-project, /drift-detect, /enhance, /sync-docs');
392
+ console.log(' Access via: /next-task, /ship, /deslop, /audit-project, /drift-detect, /enhance, /sync-docs, /perf');
392
393
  console.log(' MCP tools: workflow_status, workflow_start, workflow_resume, task_discover, review_code, slop_detect, enhance_analyze, repo_map');
393
394
  console.log(' Native features: Auto-thinking selection, workflow enforcement, session compaction\n');
394
395
  return true;
@@ -495,6 +496,8 @@ AI_STATE_DIR = ".codex"
495
496
  'Use when user asks to "check plan drift", "compare docs to code", "verify roadmap", "scan for reality gaps". Analyzes documentation vs actual code to detect drift and outdated plans.'],
496
497
  ['repo-map', 'repo-map', 'repo-map.md',
497
498
  'Use when user asks to "create repo map", "generate repo map", "update repo map", "repo map status", "map symbols". Builds and updates AST-based repo map using ast-grep.'],
499
+ ['perf', 'perf', 'perf.md',
500
+ 'Use when user asks to "run perf", "performance investigation", "benchmark regression", "profiling workflow", "baseline performance". Runs structured perf investigations with baselines, profiling, hypotheses, and decisions.'],
498
501
  ['delivery-approval', 'next-task', 'delivery-approval.md',
499
502
  'Use when user asks to "validate delivery", "approve for shipping", "check if ready to ship", "verify task completion". Autonomous validation that tests pass, build succeeds, and requirements are met.'],
500
503
  ['sync-docs', 'sync-docs', 'sync-docs.md',
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Hook analyzer for /enhance.
3
+ */
4
+
5
+ const fs = require('fs');
6
+ const path = require('path');
7
+ const { hookPatterns } = require('./hook-patterns');
8
+ const { parseMarkdownFrontmatter } = require('./agent-analyzer');
9
+
10
+ function analyzeHook(hookPath) {
11
+ const results = {
12
+ hookName: path.basename(hookPath, '.md'),
13
+ hookPath,
14
+ structureIssues: []
15
+ };
16
+
17
+ if (!fs.existsSync(hookPath)) {
18
+ results.structureIssues.push({
19
+ issue: 'File not found',
20
+ file: hookPath,
21
+ certainty: 'HIGH',
22
+ patternId: 'file_not_found'
23
+ });
24
+ return results;
25
+ }
26
+
27
+ let content = '';
28
+ try {
29
+ content = fs.readFileSync(hookPath, 'utf8');
30
+ } catch (err) {
31
+ results.structureIssues.push({
32
+ issue: `Failed to read file: ${err.message}`,
33
+ file: hookPath,
34
+ certainty: 'HIGH',
35
+ patternId: 'read_error'
36
+ });
37
+ return results;
38
+ }
39
+
40
+ const missingFm = hookPatterns.missing_frontmatter.check(content);
41
+ if (missingFm) {
42
+ results.structureIssues.push({
43
+ ...missingFm,
44
+ file: hookPath,
45
+ certainty: hookPatterns.missing_frontmatter.certainty,
46
+ patternId: hookPatterns.missing_frontmatter.id
47
+ });
48
+ }
49
+
50
+ const { frontmatter } = parseMarkdownFrontmatter(content);
51
+ const missingName = hookPatterns.missing_name.check(frontmatter);
52
+ if (missingName) {
53
+ results.structureIssues.push({
54
+ ...missingName,
55
+ file: hookPath,
56
+ certainty: hookPatterns.missing_name.certainty,
57
+ patternId: hookPatterns.missing_name.id
58
+ });
59
+ }
60
+
61
+ const missingDescription = hookPatterns.missing_description.check(frontmatter);
62
+ if (missingDescription) {
63
+ results.structureIssues.push({
64
+ ...missingDescription,
65
+ file: hookPath,
66
+ certainty: hookPatterns.missing_description.certainty,
67
+ patternId: hookPatterns.missing_description.id
68
+ });
69
+ }
70
+
71
+ return results;
72
+ }
73
+
74
+ function analyzeAllHooks(hooksDir) {
75
+ const results = [];
76
+ if (!fs.existsSync(hooksDir)) return results;
77
+
78
+ const hookFiles = [];
79
+ const skipDirs = new Set(['node_modules', '.git', 'dist', 'build', 'out', 'target']);
80
+
81
+ function walk(dir) {
82
+ let entries;
83
+ try {
84
+ entries = fs.readdirSync(dir, { withFileTypes: true });
85
+ } catch (err) {
86
+ return;
87
+ }
88
+
89
+ for (const entry of entries) {
90
+ const fullPath = path.join(dir, entry.name);
91
+ if (entry.isDirectory()) {
92
+ if (!skipDirs.has(entry.name)) {
93
+ walk(fullPath);
94
+ }
95
+ continue;
96
+ }
97
+
98
+ if (!entry.isFile() || !entry.name.endsWith('.md')) continue;
99
+ const parts = fullPath.split(path.sep);
100
+ if (parts.includes('hooks')) {
101
+ hookFiles.push(fullPath);
102
+ }
103
+ }
104
+ }
105
+
106
+ walk(hooksDir);
107
+
108
+ for (const file of hookFiles) {
109
+ results.push(analyzeHook(file));
110
+ }
111
+
112
+ return results;
113
+ }
114
+
115
+ function analyze(options = {}) {
116
+ const {
117
+ hook,
118
+ hooksDir = 'plugins/enhance/hooks'
119
+ } = options;
120
+
121
+ if (hook) {
122
+ const hookPath = hook.endsWith('.md')
123
+ ? hook
124
+ : path.join(hooksDir, `${hook}.md`);
125
+ return analyzeHook(hookPath);
126
+ }
127
+
128
+ return analyzeAllHooks(hooksDir);
129
+ }
130
+
131
+ module.exports = {
132
+ analyzeHook,
133
+ analyzeAllHooks,
134
+ analyze
135
+ };
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Hook patterns for /enhance.
3
+ */
4
+
5
+ const hookPatterns = {
6
+ missing_frontmatter: {
7
+ id: 'missing_frontmatter',
8
+ certainty: 'HIGH',
9
+ check(content) {
10
+ if (!content || !content.trim().startsWith('---')) {
11
+ return { issue: 'Missing YAML frontmatter in hook file' };
12
+ }
13
+ return null;
14
+ }
15
+ },
16
+ missing_name: {
17
+ id: 'missing_name',
18
+ certainty: 'HIGH',
19
+ check(frontmatter) {
20
+ if (!frontmatter || !frontmatter.name) {
21
+ return { issue: 'Missing name in hook frontmatter' };
22
+ }
23
+ return null;
24
+ }
25
+ },
26
+ missing_description: {
27
+ id: 'missing_description',
28
+ certainty: 'HIGH',
29
+ check(frontmatter) {
30
+ if (!frontmatter || !frontmatter.description) {
31
+ return { issue: 'Missing description in hook frontmatter' };
32
+ }
33
+ return null;
34
+ }
35
+ }
36
+ };
37
+
38
+ module.exports = {
39
+ hookPatterns
40
+ };
@@ -16,6 +16,8 @@ const projectmemoryAnalyzer = require('./projectmemory-analyzer');
16
16
  const projectmemoryPatterns = require('./projectmemory-patterns');
17
17
  const promptAnalyzer = require('./prompt-analyzer');
18
18
  const promptPatterns = require('./prompt-patterns');
19
+ const hookAnalyzer = require('./hook-analyzer');
20
+ const skillAnalyzer = require('./skill-analyzer');
19
21
  const reporter = require('./reporter');
20
22
  const fixer = require('./fixer');
21
23
 
@@ -26,6 +28,8 @@ module.exports = {
26
28
  docsAnalyzer,
27
29
  projectmemoryAnalyzer,
28
30
  promptAnalyzer,
31
+ hookAnalyzer,
32
+ skillAnalyzer,
29
33
 
30
34
  // Pattern modules
31
35
  pluginPatterns,
@@ -72,6 +76,16 @@ module.exports = {
72
76
  promptApplyFixes: promptAnalyzer.applyFixes,
73
77
  promptGenerateReport: promptAnalyzer.generateReport,
74
78
 
79
+ // Convenience exports - Hooks
80
+ analyzeHook: hookAnalyzer.analyzeHook,
81
+ analyzeAllHooks: hookAnalyzer.analyzeAllHooks,
82
+ hooksAnalyze: hookAnalyzer.analyze,
83
+
84
+ // Convenience exports - Skills
85
+ analyzeSkill: skillAnalyzer.analyzeSkill,
86
+ analyzeAllSkills: skillAnalyzer.analyzeAllSkills,
87
+ skillsAnalyze: skillAnalyzer.analyze,
88
+
75
89
  // Convenience exports - Orchestrator
76
90
  generateOrchestratorReport: reporter.generateOrchestratorReport,
77
91
  deduplicateOrchestratorFindings: reporter.deduplicateOrchestratorFindings
@@ -1091,7 +1091,7 @@ function generateOrchestratorReport(aggregatedResults, options = {}) {
1091
1091
  lines.push('| Enhancer | HIGH | MEDIUM | LOW | Auto-Fixable |');
1092
1092
  lines.push('|----------|------|--------|-----|--------------|');
1093
1093
 
1094
- const enhancerTypes = ['plugin', 'agent', 'claudemd', 'docs', 'prompt'];
1094
+ const enhancerTypes = ['plugin', 'agent', 'claudemd', 'docs', 'prompt', 'hooks', 'skills'];
1095
1095
  let totalHigh = 0, totalMedium = 0, totalLow = 0, totalAutoFix = 0;
1096
1096
 
1097
1097
  for (const enhancer of enhancerTypes) {