agentsys 5.1.0 → 5.2.1

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 (1353) hide show
  1. package/.claude-plugin/marketplace.json +105 -42
  2. package/.claude-plugin/plugin.json +2 -2
  3. package/AGENTS.md +2 -15
  4. package/CHANGELOG.md +55 -5
  5. package/README.md +143 -45
  6. package/SECURITY.md +1 -1
  7. package/adapters/README.md +6 -6
  8. package/adapters/codex/README.md +3 -3
  9. package/adapters/codex/install.sh +2 -2
  10. package/adapters/opencode/README.md +3 -3
  11. package/adapters/opencode/install.sh +2 -2
  12. package/agent-knowledge/AGENTS.md +144 -5
  13. package/agent-knowledge/all-in-one-plus-modular-packages.md +576 -0
  14. package/agent-knowledge/cli-browser-automation-agents.md +936 -0
  15. package/agent-knowledge/github-org-project-management.md +319 -0
  16. package/agent-knowledge/github-org-structure-patterns.md +268 -0
  17. package/agent-knowledge/multi-product-org-docs.md +622 -0
  18. package/agent-knowledge/oss-org-naming-patterns.md +368 -0
  19. package/agent-knowledge/resources/all-in-one-plus-modular-packages-sources.json +310 -0
  20. package/agent-knowledge/resources/cli-browser-automation-agents-sources.json +428 -0
  21. package/agent-knowledge/resources/github-org-project-management-sources.json +239 -0
  22. package/agent-knowledge/resources/github-org-structure-patterns-sources.json +293 -0
  23. package/agent-knowledge/resources/multi-product-org-docs-sources.json +514 -0
  24. package/agent-knowledge/resources/oss-org-naming-patterns-sources.json +458 -0
  25. package/agent-knowledge/resources/skill-plugin-distribution-patterns-sources.json +290 -0
  26. package/agent-knowledge/resources/terminal-browsers-agent-automation-sources.json +758 -0
  27. package/agent-knowledge/resources/web-session-persistence-cli-agents-sources.json +528 -0
  28. package/agent-knowledge/skill-plugin-distribution-patterns.md +661 -0
  29. package/agent-knowledge/terminal-browsers-agent-automation.md +776 -0
  30. package/agent-knowledge/web-session-persistence-cli-agents.md +1352 -0
  31. package/bin/cli.js +1369 -18
  32. package/bin/dev-cli.js +15 -24
  33. package/lib/adapter-transforms.js +147 -3
  34. package/lib/cross-platform/index.js +7 -3
  35. package/lib/discovery/index.js +26 -1
  36. package/lib/index.js +2 -0
  37. package/lib/package.json +1 -1
  38. package/lib/patterns/cli-enhancers.js +11 -2
  39. package/lib/sources/policy-questions.js +76 -2
  40. package/lib/state/workflow-state.js +18 -7
  41. package/meta/skills/maintain-cross-platform/SKILL.md +1 -1
  42. package/package.json +4 -4
  43. package/scripts/bump-version.js +1 -6
  44. package/scripts/dev-install.js +1 -1
  45. package/scripts/fix-graduated-repos.js +288 -0
  46. package/scripts/graduate-plugin.js +433 -0
  47. package/scripts/preflight.js +19 -48
  48. package/scripts/scaffold.js +2 -2
  49. package/scripts/setup-hooks.js +2 -9
  50. package/scripts/stamp-version.js +3 -34
  51. package/scripts/validate-agent-skill-compliance.js +2 -0
  52. package/scripts/validate-counts.js +27 -0
  53. package/site/assets/css/design-system/base.css +151 -0
  54. package/site/assets/css/design-system/tokens.css +354 -0
  55. package/site/assets/css/tokens.css +5 -469
  56. package/site/content.json +13 -13
  57. package/site/index.html +14 -13
  58. package/site/ux-spec.md +7 -7
  59. package/adapters/codex/skills/agnix/SKILL.md +0 -137
  60. package/adapters/codex/skills/audit-project/SKILL.md +0 -333
  61. package/adapters/codex/skills/audit-project-agents/SKILL.md +0 -458
  62. package/adapters/codex/skills/audit-project-github/SKILL.md +0 -145
  63. package/adapters/codex/skills/consult/SKILL.md +0 -320
  64. package/adapters/codex/skills/debate/SKILL.md +0 -214
  65. package/adapters/codex/skills/delivery-approval/SKILL.md +0 -338
  66. package/adapters/codex/skills/deslop/SKILL.md +0 -166
  67. package/adapters/codex/skills/drift-detect/SKILL.md +0 -267
  68. package/adapters/codex/skills/enhance/SKILL.md +0 -176
  69. package/adapters/codex/skills/learn/SKILL.md +0 -187
  70. package/adapters/codex/skills/next-task/SKILL.md +0 -545
  71. package/adapters/codex/skills/perf/SKILL.md +0 -468
  72. package/adapters/codex/skills/repo-map/SKILL.md +0 -131
  73. package/adapters/codex/skills/ship/SKILL.md +0 -490
  74. package/adapters/codex/skills/ship-ci-review-loop/SKILL.md +0 -472
  75. package/adapters/codex/skills/ship-deployment/SKILL.md +0 -335
  76. package/adapters/codex/skills/ship-error-handling/SKILL.md +0 -259
  77. package/adapters/codex/skills/sync-docs/SKILL.md +0 -185
  78. package/adapters/opencode/agents/agent-enhancer.md +0 -64
  79. package/adapters/opencode/agents/agnix-agent.md +0 -55
  80. package/adapters/opencode/agents/ci-fixer.md +0 -103
  81. package/adapters/opencode/agents/ci-monitor.md +0 -126
  82. package/adapters/opencode/agents/claudemd-enhancer.md +0 -65
  83. package/adapters/opencode/agents/consult-agent.md +0 -216
  84. package/adapters/opencode/agents/cross-file-enhancer.md +0 -53
  85. package/adapters/opencode/agents/debate-orchestrator.md +0 -169
  86. package/adapters/opencode/agents/delivery-validator.md +0 -114
  87. package/adapters/opencode/agents/deslop-agent.md +0 -87
  88. package/adapters/opencode/agents/docs-enhancer.md +0 -64
  89. package/adapters/opencode/agents/exploration-agent.md +0 -142
  90. package/adapters/opencode/agents/hooks-enhancer.md +0 -65
  91. package/adapters/opencode/agents/implementation-agent.md +0 -205
  92. package/adapters/opencode/agents/learn-agent.md +0 -278
  93. package/adapters/opencode/agents/map-validator.md +0 -64
  94. package/adapters/opencode/agents/perf-analyzer.md +0 -39
  95. package/adapters/opencode/agents/perf-code-paths.md +0 -11
  96. package/adapters/opencode/agents/perf-investigation-logger.md +0 -43
  97. package/adapters/opencode/agents/perf-orchestrator.md +0 -146
  98. package/adapters/opencode/agents/perf-theory-gatherer.md +0 -17
  99. package/adapters/opencode/agents/perf-theory-tester.md +0 -42
  100. package/adapters/opencode/agents/plan-synthesizer.md +0 -228
  101. package/adapters/opencode/agents/planning-agent.md +0 -234
  102. package/adapters/opencode/agents/plugin-enhancer.md +0 -63
  103. package/adapters/opencode/agents/prompt-enhancer.md +0 -57
  104. package/adapters/opencode/agents/simple-fixer.md +0 -106
  105. package/adapters/opencode/agents/skills-enhancer.md +0 -65
  106. package/adapters/opencode/agents/sync-docs-agent.md +0 -152
  107. package/adapters/opencode/agents/task-discoverer.md +0 -79
  108. package/adapters/opencode/agents/test-coverage-checker.md +0 -143
  109. package/adapters/opencode/agents/worktree-manager.md +0 -208
  110. package/adapters/opencode/commands/agnix.md +0 -105
  111. package/adapters/opencode/commands/audit-project-agents.md +0 -124
  112. package/adapters/opencode/commands/audit-project-github.md +0 -144
  113. package/adapters/opencode/commands/audit-project.md +0 -267
  114. package/adapters/opencode/commands/consult.md +0 -328
  115. package/adapters/opencode/commands/debate.md +0 -224
  116. package/adapters/opencode/commands/delivery-approval.md +0 -211
  117. package/adapters/opencode/commands/deslop.md +0 -131
  118. package/adapters/opencode/commands/drift-detect.md +0 -172
  119. package/adapters/opencode/commands/enhance.md +0 -182
  120. package/adapters/opencode/commands/learn.md +0 -115
  121. package/adapters/opencode/commands/next-task.md +0 -392
  122. package/adapters/opencode/commands/perf.md +0 -48
  123. package/adapters/opencode/commands/repo-map.md +0 -68
  124. package/adapters/opencode/commands/ship-ci-review-loop.md +0 -333
  125. package/adapters/opencode/commands/ship-deployment.md +0 -335
  126. package/adapters/opencode/commands/ship-error-handling.md +0 -247
  127. package/adapters/opencode/commands/ship.md +0 -370
  128. package/adapters/opencode/commands/sync-docs.md +0 -107
  129. package/adapters/opencode/skills/agnix/SKILL.md +0 -138
  130. package/adapters/opencode/skills/consult/SKILL.md +0 -318
  131. package/adapters/opencode/skills/debate/SKILL.md +0 -245
  132. package/adapters/opencode/skills/deslop/SKILL.md +0 -168
  133. package/adapters/opencode/skills/discover-tasks/SKILL.md +0 -101
  134. package/adapters/opencode/skills/drift-analysis/SKILL.md +0 -278
  135. package/adapters/opencode/skills/enhance-agent-prompts/SKILL.md +0 -278
  136. package/adapters/opencode/skills/enhance-claude-memory/SKILL.md +0 -389
  137. package/adapters/opencode/skills/enhance-cross-file/SKILL.md +0 -111
  138. package/adapters/opencode/skills/enhance-docs/SKILL.md +0 -287
  139. package/adapters/opencode/skills/enhance-hooks/SKILL.md +0 -556
  140. package/adapters/opencode/skills/enhance-orchestrator/SKILL.md +0 -113
  141. package/adapters/opencode/skills/enhance-plugins/SKILL.md +0 -313
  142. package/adapters/opencode/skills/enhance-prompts/SKILL.md +0 -340
  143. package/adapters/opencode/skills/enhance-skills/SKILL.md +0 -442
  144. package/adapters/opencode/skills/learn/SKILL.md +0 -351
  145. package/adapters/opencode/skills/orchestrate-review/SKILL.md +0 -94
  146. package/adapters/opencode/skills/perf-analyzer/SKILL.md +0 -37
  147. package/adapters/opencode/skills/perf-baseline-manager/SKILL.md +0 -30
  148. package/adapters/opencode/skills/perf-benchmarker/SKILL.md +0 -48
  149. package/adapters/opencode/skills/perf-code-paths/SKILL.md +0 -32
  150. package/adapters/opencode/skills/perf-investigation-logger/SKILL.md +0 -41
  151. package/adapters/opencode/skills/perf-profiler/SKILL.md +0 -38
  152. package/adapters/opencode/skills/perf-theory-gatherer/SKILL.md +0 -35
  153. package/adapters/opencode/skills/perf-theory-tester/SKILL.md +0 -36
  154. package/adapters/opencode/skills/repo-mapping/SKILL.md +0 -85
  155. package/adapters/opencode/skills/sync-docs/SKILL.md +0 -245
  156. package/adapters/opencode/skills/validate-delivery/SKILL.md +0 -111
  157. package/plugins/agnix/.claude-plugin/plugin.json +0 -22
  158. package/plugins/agnix/agents/agnix-agent.md +0 -56
  159. package/plugins/agnix/commands/agnix.md +0 -139
  160. package/plugins/agnix/skills/agnix/SKILL.md +0 -138
  161. package/plugins/audit-project/.claude-plugin/plugin.json +0 -20
  162. package/plugins/audit-project/commands/audit-project-agents.md +0 -458
  163. package/plugins/audit-project/commands/audit-project-github.md +0 -144
  164. package/plugins/audit-project/commands/audit-project.md +0 -336
  165. package/plugins/audit-project/lib/adapter-transforms.js +0 -298
  166. package/plugins/audit-project/lib/collectors/codebase.js +0 -392
  167. package/plugins/audit-project/lib/collectors/docs-patterns.js +0 -713
  168. package/plugins/audit-project/lib/collectors/documentation.js +0 -219
  169. package/plugins/audit-project/lib/collectors/github.js +0 -330
  170. package/plugins/audit-project/lib/collectors/index.js +0 -126
  171. package/plugins/audit-project/lib/config/index.js +0 -14
  172. package/plugins/audit-project/lib/cross-platform/index.js +0 -539
  173. package/plugins/audit-project/lib/discovery/index.js +0 -352
  174. package/plugins/audit-project/lib/drift-detect/collectors.js +0 -37
  175. package/plugins/audit-project/lib/enhance/agent-analyzer.js +0 -421
  176. package/plugins/audit-project/lib/enhance/agent-patterns.js +0 -571
  177. package/plugins/audit-project/lib/enhance/auto-suppression.js +0 -622
  178. package/plugins/audit-project/lib/enhance/benchmark.js +0 -417
  179. package/plugins/audit-project/lib/enhance/cross-file-analyzer.js +0 -930
  180. package/plugins/audit-project/lib/enhance/cross-file-patterns.js +0 -370
  181. package/plugins/audit-project/lib/enhance/docs-analyzer.js +0 -325
  182. package/plugins/audit-project/lib/enhance/docs-patterns.js +0 -671
  183. package/plugins/audit-project/lib/enhance/fixer.js +0 -721
  184. package/plugins/audit-project/lib/enhance/hook-analyzer.js +0 -135
  185. package/plugins/audit-project/lib/enhance/hook-patterns.js +0 -40
  186. package/plugins/audit-project/lib/enhance/index.js +0 -127
  187. package/plugins/audit-project/lib/enhance/plugin-analyzer.js +0 -402
  188. package/plugins/audit-project/lib/enhance/plugin-patterns.js +0 -326
  189. package/plugins/audit-project/lib/enhance/projectmemory-analyzer.js +0 -551
  190. package/plugins/audit-project/lib/enhance/projectmemory-patterns.js +0 -617
  191. package/plugins/audit-project/lib/enhance/prompt-analyzer.js +0 -457
  192. package/plugins/audit-project/lib/enhance/prompt-patterns.js +0 -1484
  193. package/plugins/audit-project/lib/enhance/reporter.js +0 -1348
  194. package/plugins/audit-project/lib/enhance/security-patterns.js +0 -284
  195. package/plugins/audit-project/lib/enhance/skill-analyzer.js +0 -182
  196. package/plugins/audit-project/lib/enhance/skill-patterns.js +0 -147
  197. package/plugins/audit-project/lib/enhance/suppression.js +0 -352
  198. package/plugins/audit-project/lib/enhance/tool-patterns.js +0 -373
  199. package/plugins/audit-project/lib/index.js +0 -270
  200. package/plugins/audit-project/lib/patterns/cli-enhancers.js +0 -611
  201. package/plugins/audit-project/lib/patterns/pipeline.js +0 -948
  202. package/plugins/audit-project/lib/patterns/review-patterns.js +0 -558
  203. package/plugins/audit-project/lib/patterns/slop-analyzers.js +0 -2305
  204. package/plugins/audit-project/lib/patterns/slop-patterns.js +0 -1187
  205. package/plugins/audit-project/lib/perf/analyzer/index.js +0 -22
  206. package/plugins/audit-project/lib/perf/argument-parser.js +0 -105
  207. package/plugins/audit-project/lib/perf/baseline-comparator.js +0 -50
  208. package/plugins/audit-project/lib/perf/baseline-store.js +0 -127
  209. package/plugins/audit-project/lib/perf/benchmark-runner.js +0 -404
  210. package/plugins/audit-project/lib/perf/breaking-point-finder.js +0 -52
  211. package/plugins/audit-project/lib/perf/breaking-point-runner.js +0 -60
  212. package/plugins/audit-project/lib/perf/checkpoint.js +0 -123
  213. package/plugins/audit-project/lib/perf/code-paths.js +0 -86
  214. package/plugins/audit-project/lib/perf/consolidation.js +0 -37
  215. package/plugins/audit-project/lib/perf/constraint-runner.js +0 -71
  216. package/plugins/audit-project/lib/perf/experiment-runner.js +0 -32
  217. package/plugins/audit-project/lib/perf/index.js +0 -41
  218. package/plugins/audit-project/lib/perf/investigation-state.js +0 -874
  219. package/plugins/audit-project/lib/perf/optimization-runner.js +0 -79
  220. package/plugins/audit-project/lib/perf/profilers/go.js +0 -22
  221. package/plugins/audit-project/lib/perf/profilers/index.js +0 -46
  222. package/plugins/audit-project/lib/perf/profilers/java.js +0 -23
  223. package/plugins/audit-project/lib/perf/profilers/node.js +0 -27
  224. package/plugins/audit-project/lib/perf/profilers/python.js +0 -23
  225. package/plugins/audit-project/lib/perf/profilers/rust.js +0 -23
  226. package/plugins/audit-project/lib/perf/profiling-runner.js +0 -75
  227. package/plugins/audit-project/lib/perf/schemas.js +0 -140
  228. package/plugins/audit-project/lib/platform/detect-platform.js +0 -413
  229. package/plugins/audit-project/lib/platform/detection-configs.js +0 -93
  230. package/plugins/audit-project/lib/platform/state-dir.js +0 -132
  231. package/plugins/audit-project/lib/platform/verify-tools.js +0 -182
  232. package/plugins/audit-project/lib/repo-map/cache.js +0 -152
  233. package/plugins/audit-project/lib/repo-map/concurrency.js +0 -29
  234. package/plugins/audit-project/lib/repo-map/index.js +0 -222
  235. package/plugins/audit-project/lib/repo-map/installer.js +0 -212
  236. package/plugins/audit-project/lib/repo-map/queries/go.js +0 -27
  237. package/plugins/audit-project/lib/repo-map/queries/index.js +0 -100
  238. package/plugins/audit-project/lib/repo-map/queries/java.js +0 -38
  239. package/plugins/audit-project/lib/repo-map/queries/javascript.js +0 -55
  240. package/plugins/audit-project/lib/repo-map/queries/python.js +0 -24
  241. package/plugins/audit-project/lib/repo-map/queries/rust.js +0 -73
  242. package/plugins/audit-project/lib/repo-map/queries/typescript.js +0 -38
  243. package/plugins/audit-project/lib/repo-map/runner.js +0 -1364
  244. package/plugins/audit-project/lib/repo-map/updater.js +0 -562
  245. package/plugins/audit-project/lib/repo-map/usage-analyzer.js +0 -407
  246. package/plugins/audit-project/lib/schemas/plugin-manifest.schema.json +0 -57
  247. package/plugins/audit-project/lib/schemas/validator.js +0 -247
  248. package/plugins/audit-project/lib/sources/custom-handler.js +0 -199
  249. package/plugins/audit-project/lib/sources/policy-questions.js +0 -246
  250. package/plugins/audit-project/lib/sources/source-cache.js +0 -165
  251. package/plugins/audit-project/lib/state/workflow-state.js +0 -576
  252. package/plugins/audit-project/lib/types/agent-frontmatter.d.ts +0 -134
  253. package/plugins/audit-project/lib/types/command-frontmatter.d.ts +0 -107
  254. package/plugins/audit-project/lib/types/hook-frontmatter.d.ts +0 -115
  255. package/plugins/audit-project/lib/types/index.d.ts +0 -84
  256. package/plugins/audit-project/lib/types/plugin-manifest.d.ts +0 -102
  257. package/plugins/audit-project/lib/types/skill-frontmatter.d.ts +0 -89
  258. package/plugins/audit-project/lib/utils/atomic-write.js +0 -94
  259. package/plugins/audit-project/lib/utils/cache-manager.js +0 -159
  260. package/plugins/audit-project/lib/utils/command-parser.js +0 -0
  261. package/plugins/audit-project/lib/utils/context-optimizer.js +0 -300
  262. package/plugins/audit-project/lib/utils/deprecation.js +0 -37
  263. package/plugins/audit-project/lib/utils/shell-escape.js +0 -88
  264. package/plugins/audit-project/lib/utils/state-helpers.js +0 -61
  265. package/plugins/consult/.claude-plugin/plugin.json +0 -24
  266. package/plugins/consult/agents/consult-agent.md +0 -222
  267. package/plugins/consult/commands/consult.md +0 -325
  268. package/plugins/consult/skills/consult/SKILL.md +0 -312
  269. package/plugins/debate/.claude-plugin/plugin.json +0 -21
  270. package/plugins/debate/agents/debate-orchestrator.md +0 -175
  271. package/plugins/debate/commands/debate.md +0 -221
  272. package/plugins/debate/lib/adapter-transforms.js +0 -298
  273. package/plugins/debate/lib/collectors/codebase.js +0 -392
  274. package/plugins/debate/lib/collectors/docs-patterns.js +0 -713
  275. package/plugins/debate/lib/collectors/documentation.js +0 -219
  276. package/plugins/debate/lib/collectors/github.js +0 -330
  277. package/plugins/debate/lib/collectors/index.js +0 -126
  278. package/plugins/debate/lib/config/index.js +0 -14
  279. package/plugins/debate/lib/cross-platform/index.js +0 -539
  280. package/plugins/debate/lib/discovery/index.js +0 -352
  281. package/plugins/debate/lib/drift-detect/collectors.js +0 -37
  282. package/plugins/debate/lib/enhance/agent-analyzer.js +0 -421
  283. package/plugins/debate/lib/enhance/agent-patterns.js +0 -571
  284. package/plugins/debate/lib/enhance/auto-suppression.js +0 -622
  285. package/plugins/debate/lib/enhance/benchmark.js +0 -417
  286. package/plugins/debate/lib/enhance/cross-file-analyzer.js +0 -930
  287. package/plugins/debate/lib/enhance/cross-file-patterns.js +0 -370
  288. package/plugins/debate/lib/enhance/docs-analyzer.js +0 -325
  289. package/plugins/debate/lib/enhance/docs-patterns.js +0 -671
  290. package/plugins/debate/lib/enhance/fixer.js +0 -721
  291. package/plugins/debate/lib/enhance/hook-analyzer.js +0 -135
  292. package/plugins/debate/lib/enhance/hook-patterns.js +0 -40
  293. package/plugins/debate/lib/enhance/index.js +0 -127
  294. package/plugins/debate/lib/enhance/plugin-analyzer.js +0 -402
  295. package/plugins/debate/lib/enhance/plugin-patterns.js +0 -326
  296. package/plugins/debate/lib/enhance/projectmemory-analyzer.js +0 -551
  297. package/plugins/debate/lib/enhance/projectmemory-patterns.js +0 -617
  298. package/plugins/debate/lib/enhance/prompt-analyzer.js +0 -457
  299. package/plugins/debate/lib/enhance/prompt-patterns.js +0 -1484
  300. package/plugins/debate/lib/enhance/reporter.js +0 -1348
  301. package/plugins/debate/lib/enhance/security-patterns.js +0 -284
  302. package/plugins/debate/lib/enhance/skill-analyzer.js +0 -182
  303. package/plugins/debate/lib/enhance/skill-patterns.js +0 -147
  304. package/plugins/debate/lib/enhance/suppression.js +0 -352
  305. package/plugins/debate/lib/enhance/tool-patterns.js +0 -373
  306. package/plugins/debate/lib/index.js +0 -270
  307. package/plugins/debate/lib/patterns/cli-enhancers.js +0 -611
  308. package/plugins/debate/lib/patterns/pipeline.js +0 -948
  309. package/plugins/debate/lib/patterns/review-patterns.js +0 -558
  310. package/plugins/debate/lib/patterns/slop-analyzers.js +0 -2305
  311. package/plugins/debate/lib/patterns/slop-patterns.js +0 -1187
  312. package/plugins/debate/lib/perf/analyzer/index.js +0 -22
  313. package/plugins/debate/lib/perf/argument-parser.js +0 -105
  314. package/plugins/debate/lib/perf/baseline-comparator.js +0 -50
  315. package/plugins/debate/lib/perf/baseline-store.js +0 -127
  316. package/plugins/debate/lib/perf/benchmark-runner.js +0 -404
  317. package/plugins/debate/lib/perf/breaking-point-finder.js +0 -52
  318. package/plugins/debate/lib/perf/breaking-point-runner.js +0 -60
  319. package/plugins/debate/lib/perf/checkpoint.js +0 -123
  320. package/plugins/debate/lib/perf/code-paths.js +0 -86
  321. package/plugins/debate/lib/perf/consolidation.js +0 -37
  322. package/plugins/debate/lib/perf/constraint-runner.js +0 -71
  323. package/plugins/debate/lib/perf/experiment-runner.js +0 -32
  324. package/plugins/debate/lib/perf/index.js +0 -41
  325. package/plugins/debate/lib/perf/investigation-state.js +0 -874
  326. package/plugins/debate/lib/perf/optimization-runner.js +0 -79
  327. package/plugins/debate/lib/perf/profilers/go.js +0 -22
  328. package/plugins/debate/lib/perf/profilers/index.js +0 -46
  329. package/plugins/debate/lib/perf/profilers/java.js +0 -23
  330. package/plugins/debate/lib/perf/profilers/node.js +0 -27
  331. package/plugins/debate/lib/perf/profilers/python.js +0 -23
  332. package/plugins/debate/lib/perf/profilers/rust.js +0 -23
  333. package/plugins/debate/lib/perf/profiling-runner.js +0 -75
  334. package/plugins/debate/lib/perf/schemas.js +0 -140
  335. package/plugins/debate/lib/platform/detect-platform.js +0 -413
  336. package/plugins/debate/lib/platform/detection-configs.js +0 -93
  337. package/plugins/debate/lib/platform/state-dir.js +0 -132
  338. package/plugins/debate/lib/platform/verify-tools.js +0 -182
  339. package/plugins/debate/lib/repo-map/cache.js +0 -152
  340. package/plugins/debate/lib/repo-map/concurrency.js +0 -29
  341. package/plugins/debate/lib/repo-map/index.js +0 -222
  342. package/plugins/debate/lib/repo-map/installer.js +0 -212
  343. package/plugins/debate/lib/repo-map/queries/go.js +0 -27
  344. package/plugins/debate/lib/repo-map/queries/index.js +0 -100
  345. package/plugins/debate/lib/repo-map/queries/java.js +0 -38
  346. package/plugins/debate/lib/repo-map/queries/javascript.js +0 -55
  347. package/plugins/debate/lib/repo-map/queries/python.js +0 -24
  348. package/plugins/debate/lib/repo-map/queries/rust.js +0 -73
  349. package/plugins/debate/lib/repo-map/queries/typescript.js +0 -38
  350. package/plugins/debate/lib/repo-map/runner.js +0 -1364
  351. package/plugins/debate/lib/repo-map/updater.js +0 -562
  352. package/plugins/debate/lib/repo-map/usage-analyzer.js +0 -407
  353. package/plugins/debate/lib/schemas/plugin-manifest.schema.json +0 -57
  354. package/plugins/debate/lib/schemas/validator.js +0 -247
  355. package/plugins/debate/lib/sources/custom-handler.js +0 -199
  356. package/plugins/debate/lib/sources/policy-questions.js +0 -246
  357. package/plugins/debate/lib/sources/source-cache.js +0 -165
  358. package/plugins/debate/lib/state/workflow-state.js +0 -576
  359. package/plugins/debate/lib/types/agent-frontmatter.d.ts +0 -134
  360. package/plugins/debate/lib/types/command-frontmatter.d.ts +0 -107
  361. package/plugins/debate/lib/types/hook-frontmatter.d.ts +0 -115
  362. package/plugins/debate/lib/types/index.d.ts +0 -84
  363. package/plugins/debate/lib/types/plugin-manifest.d.ts +0 -102
  364. package/plugins/debate/lib/types/skill-frontmatter.d.ts +0 -89
  365. package/plugins/debate/lib/utils/atomic-write.js +0 -94
  366. package/plugins/debate/lib/utils/cache-manager.js +0 -159
  367. package/plugins/debate/lib/utils/command-parser.js +0 -0
  368. package/plugins/debate/lib/utils/context-optimizer.js +0 -300
  369. package/plugins/debate/lib/utils/deprecation.js +0 -37
  370. package/plugins/debate/lib/utils/shell-escape.js +0 -88
  371. package/plugins/debate/lib/utils/state-helpers.js +0 -61
  372. package/plugins/debate/skills/debate/SKILL.md +0 -264
  373. package/plugins/deslop/.claude-plugin/plugin.json +0 -20
  374. package/plugins/deslop/agents/deslop-agent.md +0 -88
  375. package/plugins/deslop/commands/deslop.md +0 -168
  376. package/plugins/deslop/lib/adapter-transforms.js +0 -298
  377. package/plugins/deslop/lib/collectors/codebase.js +0 -392
  378. package/plugins/deslop/lib/collectors/docs-patterns.js +0 -713
  379. package/plugins/deslop/lib/collectors/documentation.js +0 -219
  380. package/plugins/deslop/lib/collectors/github.js +0 -330
  381. package/plugins/deslop/lib/collectors/index.js +0 -126
  382. package/plugins/deslop/lib/config/index.js +0 -14
  383. package/plugins/deslop/lib/cross-platform/index.js +0 -539
  384. package/plugins/deslop/lib/discovery/index.js +0 -352
  385. package/plugins/deslop/lib/drift-detect/collectors.js +0 -37
  386. package/plugins/deslop/lib/enhance/agent-analyzer.js +0 -421
  387. package/plugins/deslop/lib/enhance/agent-patterns.js +0 -571
  388. package/plugins/deslop/lib/enhance/auto-suppression.js +0 -622
  389. package/plugins/deslop/lib/enhance/benchmark.js +0 -417
  390. package/plugins/deslop/lib/enhance/cross-file-analyzer.js +0 -930
  391. package/plugins/deslop/lib/enhance/cross-file-patterns.js +0 -370
  392. package/plugins/deslop/lib/enhance/docs-analyzer.js +0 -325
  393. package/plugins/deslop/lib/enhance/docs-patterns.js +0 -671
  394. package/plugins/deslop/lib/enhance/fixer.js +0 -721
  395. package/plugins/deslop/lib/enhance/hook-analyzer.js +0 -135
  396. package/plugins/deslop/lib/enhance/hook-patterns.js +0 -40
  397. package/plugins/deslop/lib/enhance/index.js +0 -127
  398. package/plugins/deslop/lib/enhance/plugin-analyzer.js +0 -402
  399. package/plugins/deslop/lib/enhance/plugin-patterns.js +0 -326
  400. package/plugins/deslop/lib/enhance/projectmemory-analyzer.js +0 -551
  401. package/plugins/deslop/lib/enhance/projectmemory-patterns.js +0 -617
  402. package/plugins/deslop/lib/enhance/prompt-analyzer.js +0 -457
  403. package/plugins/deslop/lib/enhance/prompt-patterns.js +0 -1484
  404. package/plugins/deslop/lib/enhance/reporter.js +0 -1348
  405. package/plugins/deslop/lib/enhance/security-patterns.js +0 -284
  406. package/plugins/deslop/lib/enhance/skill-analyzer.js +0 -182
  407. package/plugins/deslop/lib/enhance/skill-patterns.js +0 -147
  408. package/plugins/deslop/lib/enhance/suppression.js +0 -352
  409. package/plugins/deslop/lib/enhance/tool-patterns.js +0 -373
  410. package/plugins/deslop/lib/index.js +0 -270
  411. package/plugins/deslop/lib/patterns/cli-enhancers.js +0 -611
  412. package/plugins/deslop/lib/patterns/pipeline.js +0 -948
  413. package/plugins/deslop/lib/patterns/review-patterns.js +0 -558
  414. package/plugins/deslop/lib/patterns/slop-analyzers.js +0 -2305
  415. package/plugins/deslop/lib/patterns/slop-patterns.js +0 -1187
  416. package/plugins/deslop/lib/perf/analyzer/index.js +0 -22
  417. package/plugins/deslop/lib/perf/argument-parser.js +0 -105
  418. package/plugins/deslop/lib/perf/baseline-comparator.js +0 -50
  419. package/plugins/deslop/lib/perf/baseline-store.js +0 -127
  420. package/plugins/deslop/lib/perf/benchmark-runner.js +0 -404
  421. package/plugins/deslop/lib/perf/breaking-point-finder.js +0 -52
  422. package/plugins/deslop/lib/perf/breaking-point-runner.js +0 -60
  423. package/plugins/deslop/lib/perf/checkpoint.js +0 -123
  424. package/plugins/deslop/lib/perf/code-paths.js +0 -86
  425. package/plugins/deslop/lib/perf/consolidation.js +0 -37
  426. package/plugins/deslop/lib/perf/constraint-runner.js +0 -71
  427. package/plugins/deslop/lib/perf/experiment-runner.js +0 -32
  428. package/plugins/deslop/lib/perf/index.js +0 -41
  429. package/plugins/deslop/lib/perf/investigation-state.js +0 -874
  430. package/plugins/deslop/lib/perf/optimization-runner.js +0 -79
  431. package/plugins/deslop/lib/perf/profilers/go.js +0 -22
  432. package/plugins/deslop/lib/perf/profilers/index.js +0 -46
  433. package/plugins/deslop/lib/perf/profilers/java.js +0 -23
  434. package/plugins/deslop/lib/perf/profilers/node.js +0 -27
  435. package/plugins/deslop/lib/perf/profilers/python.js +0 -23
  436. package/plugins/deslop/lib/perf/profilers/rust.js +0 -23
  437. package/plugins/deslop/lib/perf/profiling-runner.js +0 -75
  438. package/plugins/deslop/lib/perf/schemas.js +0 -140
  439. package/plugins/deslop/lib/platform/detect-platform.js +0 -413
  440. package/plugins/deslop/lib/platform/detection-configs.js +0 -93
  441. package/plugins/deslop/lib/platform/state-dir.js +0 -132
  442. package/plugins/deslop/lib/platform/verify-tools.js +0 -182
  443. package/plugins/deslop/lib/repo-map/cache.js +0 -152
  444. package/plugins/deslop/lib/repo-map/concurrency.js +0 -29
  445. package/plugins/deslop/lib/repo-map/index.js +0 -222
  446. package/plugins/deslop/lib/repo-map/installer.js +0 -212
  447. package/plugins/deslop/lib/repo-map/queries/go.js +0 -27
  448. package/plugins/deslop/lib/repo-map/queries/index.js +0 -100
  449. package/plugins/deslop/lib/repo-map/queries/java.js +0 -38
  450. package/plugins/deslop/lib/repo-map/queries/javascript.js +0 -55
  451. package/plugins/deslop/lib/repo-map/queries/python.js +0 -24
  452. package/plugins/deslop/lib/repo-map/queries/rust.js +0 -73
  453. package/plugins/deslop/lib/repo-map/queries/typescript.js +0 -38
  454. package/plugins/deslop/lib/repo-map/runner.js +0 -1364
  455. package/plugins/deslop/lib/repo-map/updater.js +0 -562
  456. package/plugins/deslop/lib/repo-map/usage-analyzer.js +0 -407
  457. package/plugins/deslop/lib/schemas/plugin-manifest.schema.json +0 -57
  458. package/plugins/deslop/lib/schemas/validator.js +0 -247
  459. package/plugins/deslop/lib/sources/custom-handler.js +0 -199
  460. package/plugins/deslop/lib/sources/policy-questions.js +0 -246
  461. package/plugins/deslop/lib/sources/source-cache.js +0 -165
  462. package/plugins/deslop/lib/state/workflow-state.js +0 -576
  463. package/plugins/deslop/lib/types/agent-frontmatter.d.ts +0 -134
  464. package/plugins/deslop/lib/types/command-frontmatter.d.ts +0 -107
  465. package/plugins/deslop/lib/types/hook-frontmatter.d.ts +0 -115
  466. package/plugins/deslop/lib/types/index.d.ts +0 -84
  467. package/plugins/deslop/lib/types/plugin-manifest.d.ts +0 -102
  468. package/plugins/deslop/lib/types/skill-frontmatter.d.ts +0 -89
  469. package/plugins/deslop/lib/utils/atomic-write.js +0 -94
  470. package/plugins/deslop/lib/utils/cache-manager.js +0 -159
  471. package/plugins/deslop/lib/utils/command-parser.js +0 -0
  472. package/plugins/deslop/lib/utils/context-optimizer.js +0 -300
  473. package/plugins/deslop/lib/utils/deprecation.js +0 -37
  474. package/plugins/deslop/lib/utils/shell-escape.js +0 -88
  475. package/plugins/deslop/lib/utils/state-helpers.js +0 -61
  476. package/plugins/deslop/references/slop-categories.md +0 -122
  477. package/plugins/deslop/scripts/detect.js +0 -134
  478. package/plugins/deslop/skills/deslop/SKILL.md +0 -204
  479. package/plugins/drift-detect/.claude-plugin/plugin.json +0 -23
  480. package/plugins/drift-detect/agents/plan-synthesizer.md +0 -225
  481. package/plugins/drift-detect/commands/drift-detect.md +0 -269
  482. package/plugins/drift-detect/lib/adapter-transforms.js +0 -298
  483. package/plugins/drift-detect/lib/collectors/codebase.js +0 -392
  484. package/plugins/drift-detect/lib/collectors/docs-patterns.js +0 -713
  485. package/plugins/drift-detect/lib/collectors/documentation.js +0 -219
  486. package/plugins/drift-detect/lib/collectors/github.js +0 -330
  487. package/plugins/drift-detect/lib/collectors/index.js +0 -126
  488. package/plugins/drift-detect/lib/config/index.js +0 -14
  489. package/plugins/drift-detect/lib/cross-platform/index.js +0 -539
  490. package/plugins/drift-detect/lib/discovery/index.js +0 -352
  491. package/plugins/drift-detect/lib/drift-detect/collectors.js +0 -37
  492. package/plugins/drift-detect/lib/enhance/agent-analyzer.js +0 -421
  493. package/plugins/drift-detect/lib/enhance/agent-patterns.js +0 -571
  494. package/plugins/drift-detect/lib/enhance/auto-suppression.js +0 -622
  495. package/plugins/drift-detect/lib/enhance/benchmark.js +0 -417
  496. package/plugins/drift-detect/lib/enhance/cross-file-analyzer.js +0 -930
  497. package/plugins/drift-detect/lib/enhance/cross-file-patterns.js +0 -370
  498. package/plugins/drift-detect/lib/enhance/docs-analyzer.js +0 -325
  499. package/plugins/drift-detect/lib/enhance/docs-patterns.js +0 -671
  500. package/plugins/drift-detect/lib/enhance/fixer.js +0 -721
  501. package/plugins/drift-detect/lib/enhance/hook-analyzer.js +0 -135
  502. package/plugins/drift-detect/lib/enhance/hook-patterns.js +0 -40
  503. package/plugins/drift-detect/lib/enhance/index.js +0 -127
  504. package/plugins/drift-detect/lib/enhance/plugin-analyzer.js +0 -402
  505. package/plugins/drift-detect/lib/enhance/plugin-patterns.js +0 -326
  506. package/plugins/drift-detect/lib/enhance/projectmemory-analyzer.js +0 -551
  507. package/plugins/drift-detect/lib/enhance/projectmemory-patterns.js +0 -617
  508. package/plugins/drift-detect/lib/enhance/prompt-analyzer.js +0 -457
  509. package/plugins/drift-detect/lib/enhance/prompt-patterns.js +0 -1484
  510. package/plugins/drift-detect/lib/enhance/reporter.js +0 -1348
  511. package/plugins/drift-detect/lib/enhance/security-patterns.js +0 -284
  512. package/plugins/drift-detect/lib/enhance/skill-analyzer.js +0 -182
  513. package/plugins/drift-detect/lib/enhance/skill-patterns.js +0 -147
  514. package/plugins/drift-detect/lib/enhance/suppression.js +0 -352
  515. package/plugins/drift-detect/lib/enhance/tool-patterns.js +0 -373
  516. package/plugins/drift-detect/lib/index.js +0 -270
  517. package/plugins/drift-detect/lib/patterns/cli-enhancers.js +0 -611
  518. package/plugins/drift-detect/lib/patterns/pipeline.js +0 -948
  519. package/plugins/drift-detect/lib/patterns/review-patterns.js +0 -558
  520. package/plugins/drift-detect/lib/patterns/slop-analyzers.js +0 -2305
  521. package/plugins/drift-detect/lib/patterns/slop-patterns.js +0 -1187
  522. package/plugins/drift-detect/lib/perf/analyzer/index.js +0 -22
  523. package/plugins/drift-detect/lib/perf/argument-parser.js +0 -105
  524. package/plugins/drift-detect/lib/perf/baseline-comparator.js +0 -50
  525. package/plugins/drift-detect/lib/perf/baseline-store.js +0 -127
  526. package/plugins/drift-detect/lib/perf/benchmark-runner.js +0 -404
  527. package/plugins/drift-detect/lib/perf/breaking-point-finder.js +0 -52
  528. package/plugins/drift-detect/lib/perf/breaking-point-runner.js +0 -60
  529. package/plugins/drift-detect/lib/perf/checkpoint.js +0 -123
  530. package/plugins/drift-detect/lib/perf/code-paths.js +0 -86
  531. package/plugins/drift-detect/lib/perf/consolidation.js +0 -37
  532. package/plugins/drift-detect/lib/perf/constraint-runner.js +0 -71
  533. package/plugins/drift-detect/lib/perf/experiment-runner.js +0 -32
  534. package/plugins/drift-detect/lib/perf/index.js +0 -41
  535. package/plugins/drift-detect/lib/perf/investigation-state.js +0 -874
  536. package/plugins/drift-detect/lib/perf/optimization-runner.js +0 -79
  537. package/plugins/drift-detect/lib/perf/profilers/go.js +0 -22
  538. package/plugins/drift-detect/lib/perf/profilers/index.js +0 -46
  539. package/plugins/drift-detect/lib/perf/profilers/java.js +0 -23
  540. package/plugins/drift-detect/lib/perf/profilers/node.js +0 -27
  541. package/plugins/drift-detect/lib/perf/profilers/python.js +0 -23
  542. package/plugins/drift-detect/lib/perf/profilers/rust.js +0 -23
  543. package/plugins/drift-detect/lib/perf/profiling-runner.js +0 -75
  544. package/plugins/drift-detect/lib/perf/schemas.js +0 -140
  545. package/plugins/drift-detect/lib/platform/detect-platform.js +0 -413
  546. package/plugins/drift-detect/lib/platform/detection-configs.js +0 -93
  547. package/plugins/drift-detect/lib/platform/state-dir.js +0 -132
  548. package/plugins/drift-detect/lib/platform/verify-tools.js +0 -182
  549. package/plugins/drift-detect/lib/repo-map/cache.js +0 -152
  550. package/plugins/drift-detect/lib/repo-map/concurrency.js +0 -29
  551. package/plugins/drift-detect/lib/repo-map/index.js +0 -222
  552. package/plugins/drift-detect/lib/repo-map/installer.js +0 -212
  553. package/plugins/drift-detect/lib/repo-map/queries/go.js +0 -27
  554. package/plugins/drift-detect/lib/repo-map/queries/index.js +0 -100
  555. package/plugins/drift-detect/lib/repo-map/queries/java.js +0 -38
  556. package/plugins/drift-detect/lib/repo-map/queries/javascript.js +0 -55
  557. package/plugins/drift-detect/lib/repo-map/queries/python.js +0 -24
  558. package/plugins/drift-detect/lib/repo-map/queries/rust.js +0 -73
  559. package/plugins/drift-detect/lib/repo-map/queries/typescript.js +0 -38
  560. package/plugins/drift-detect/lib/repo-map/runner.js +0 -1364
  561. package/plugins/drift-detect/lib/repo-map/updater.js +0 -562
  562. package/plugins/drift-detect/lib/repo-map/usage-analyzer.js +0 -407
  563. package/plugins/drift-detect/lib/schemas/plugin-manifest.schema.json +0 -57
  564. package/plugins/drift-detect/lib/schemas/validator.js +0 -247
  565. package/plugins/drift-detect/lib/sources/custom-handler.js +0 -199
  566. package/plugins/drift-detect/lib/sources/policy-questions.js +0 -246
  567. package/plugins/drift-detect/lib/sources/source-cache.js +0 -165
  568. package/plugins/drift-detect/lib/state/workflow-state.js +0 -576
  569. package/plugins/drift-detect/lib/types/agent-frontmatter.d.ts +0 -134
  570. package/plugins/drift-detect/lib/types/command-frontmatter.d.ts +0 -107
  571. package/plugins/drift-detect/lib/types/hook-frontmatter.d.ts +0 -115
  572. package/plugins/drift-detect/lib/types/index.d.ts +0 -84
  573. package/plugins/drift-detect/lib/types/plugin-manifest.d.ts +0 -102
  574. package/plugins/drift-detect/lib/types/skill-frontmatter.d.ts +0 -89
  575. package/plugins/drift-detect/lib/utils/atomic-write.js +0 -94
  576. package/plugins/drift-detect/lib/utils/cache-manager.js +0 -159
  577. package/plugins/drift-detect/lib/utils/command-parser.js +0 -0
  578. package/plugins/drift-detect/lib/utils/context-optimizer.js +0 -300
  579. package/plugins/drift-detect/lib/utils/deprecation.js +0 -37
  580. package/plugins/drift-detect/lib/utils/shell-escape.js +0 -88
  581. package/plugins/drift-detect/lib/utils/state-helpers.js +0 -61
  582. package/plugins/drift-detect/skills/drift-analysis/SKILL.md +0 -324
  583. package/plugins/enhance/.claude-plugin/plugin.json +0 -20
  584. package/plugins/enhance/agents/agent-enhancer.md +0 -64
  585. package/plugins/enhance/agents/claudemd-enhancer.md +0 -65
  586. package/plugins/enhance/agents/cross-file-enhancer.md +0 -54
  587. package/plugins/enhance/agents/docs-enhancer.md +0 -64
  588. package/plugins/enhance/agents/hooks-enhancer.md +0 -64
  589. package/plugins/enhance/agents/plugin-enhancer.md +0 -63
  590. package/plugins/enhance/agents/prompt-enhancer.md +0 -58
  591. package/plugins/enhance/agents/skills-enhancer.md +0 -64
  592. package/plugins/enhance/commands/enhance.md +0 -178
  593. package/plugins/enhance/lib/adapter-transforms.js +0 -298
  594. package/plugins/enhance/lib/collectors/codebase.js +0 -392
  595. package/plugins/enhance/lib/collectors/docs-patterns.js +0 -713
  596. package/plugins/enhance/lib/collectors/documentation.js +0 -219
  597. package/plugins/enhance/lib/collectors/github.js +0 -330
  598. package/plugins/enhance/lib/collectors/index.js +0 -126
  599. package/plugins/enhance/lib/config/index.js +0 -14
  600. package/plugins/enhance/lib/cross-platform/index.js +0 -539
  601. package/plugins/enhance/lib/discovery/index.js +0 -352
  602. package/plugins/enhance/lib/drift-detect/collectors.js +0 -37
  603. package/plugins/enhance/lib/enhance/agent-analyzer.js +0 -421
  604. package/plugins/enhance/lib/enhance/agent-patterns.js +0 -571
  605. package/plugins/enhance/lib/enhance/auto-suppression.js +0 -622
  606. package/plugins/enhance/lib/enhance/benchmark.js +0 -417
  607. package/plugins/enhance/lib/enhance/cross-file-analyzer.js +0 -930
  608. package/plugins/enhance/lib/enhance/cross-file-patterns.js +0 -370
  609. package/plugins/enhance/lib/enhance/docs-analyzer.js +0 -325
  610. package/plugins/enhance/lib/enhance/docs-patterns.js +0 -671
  611. package/plugins/enhance/lib/enhance/fixer.js +0 -721
  612. package/plugins/enhance/lib/enhance/hook-analyzer.js +0 -135
  613. package/plugins/enhance/lib/enhance/hook-patterns.js +0 -40
  614. package/plugins/enhance/lib/enhance/index.js +0 -127
  615. package/plugins/enhance/lib/enhance/plugin-analyzer.js +0 -402
  616. package/plugins/enhance/lib/enhance/plugin-patterns.js +0 -326
  617. package/plugins/enhance/lib/enhance/projectmemory-analyzer.js +0 -551
  618. package/plugins/enhance/lib/enhance/projectmemory-patterns.js +0 -617
  619. package/plugins/enhance/lib/enhance/prompt-analyzer.js +0 -457
  620. package/plugins/enhance/lib/enhance/prompt-patterns.js +0 -1484
  621. package/plugins/enhance/lib/enhance/reporter.js +0 -1348
  622. package/plugins/enhance/lib/enhance/security-patterns.js +0 -284
  623. package/plugins/enhance/lib/enhance/skill-analyzer.js +0 -182
  624. package/plugins/enhance/lib/enhance/skill-patterns.js +0 -147
  625. package/plugins/enhance/lib/enhance/suppression.js +0 -352
  626. package/plugins/enhance/lib/enhance/tool-patterns.js +0 -373
  627. package/plugins/enhance/lib/index.js +0 -270
  628. package/plugins/enhance/lib/patterns/cli-enhancers.js +0 -611
  629. package/plugins/enhance/lib/patterns/pipeline.js +0 -948
  630. package/plugins/enhance/lib/patterns/review-patterns.js +0 -558
  631. package/plugins/enhance/lib/patterns/slop-analyzers.js +0 -2305
  632. package/plugins/enhance/lib/patterns/slop-patterns.js +0 -1187
  633. package/plugins/enhance/lib/perf/analyzer/index.js +0 -22
  634. package/plugins/enhance/lib/perf/argument-parser.js +0 -105
  635. package/plugins/enhance/lib/perf/baseline-comparator.js +0 -50
  636. package/plugins/enhance/lib/perf/baseline-store.js +0 -127
  637. package/plugins/enhance/lib/perf/benchmark-runner.js +0 -404
  638. package/plugins/enhance/lib/perf/breaking-point-finder.js +0 -52
  639. package/plugins/enhance/lib/perf/breaking-point-runner.js +0 -60
  640. package/plugins/enhance/lib/perf/checkpoint.js +0 -123
  641. package/plugins/enhance/lib/perf/code-paths.js +0 -86
  642. package/plugins/enhance/lib/perf/consolidation.js +0 -37
  643. package/plugins/enhance/lib/perf/constraint-runner.js +0 -71
  644. package/plugins/enhance/lib/perf/experiment-runner.js +0 -32
  645. package/plugins/enhance/lib/perf/index.js +0 -41
  646. package/plugins/enhance/lib/perf/investigation-state.js +0 -874
  647. package/plugins/enhance/lib/perf/optimization-runner.js +0 -79
  648. package/plugins/enhance/lib/perf/profilers/go.js +0 -22
  649. package/plugins/enhance/lib/perf/profilers/index.js +0 -46
  650. package/plugins/enhance/lib/perf/profilers/java.js +0 -23
  651. package/plugins/enhance/lib/perf/profilers/node.js +0 -27
  652. package/plugins/enhance/lib/perf/profilers/python.js +0 -23
  653. package/plugins/enhance/lib/perf/profilers/rust.js +0 -23
  654. package/plugins/enhance/lib/perf/profiling-runner.js +0 -75
  655. package/plugins/enhance/lib/perf/schemas.js +0 -140
  656. package/plugins/enhance/lib/platform/detect-platform.js +0 -413
  657. package/plugins/enhance/lib/platform/detection-configs.js +0 -93
  658. package/plugins/enhance/lib/platform/state-dir.js +0 -132
  659. package/plugins/enhance/lib/platform/verify-tools.js +0 -182
  660. package/plugins/enhance/lib/repo-map/cache.js +0 -152
  661. package/plugins/enhance/lib/repo-map/concurrency.js +0 -29
  662. package/plugins/enhance/lib/repo-map/index.js +0 -222
  663. package/plugins/enhance/lib/repo-map/installer.js +0 -212
  664. package/plugins/enhance/lib/repo-map/queries/go.js +0 -27
  665. package/plugins/enhance/lib/repo-map/queries/index.js +0 -100
  666. package/plugins/enhance/lib/repo-map/queries/java.js +0 -38
  667. package/plugins/enhance/lib/repo-map/queries/javascript.js +0 -55
  668. package/plugins/enhance/lib/repo-map/queries/python.js +0 -24
  669. package/plugins/enhance/lib/repo-map/queries/rust.js +0 -73
  670. package/plugins/enhance/lib/repo-map/queries/typescript.js +0 -38
  671. package/plugins/enhance/lib/repo-map/runner.js +0 -1364
  672. package/plugins/enhance/lib/repo-map/updater.js +0 -562
  673. package/plugins/enhance/lib/repo-map/usage-analyzer.js +0 -407
  674. package/plugins/enhance/lib/schemas/plugin-manifest.schema.json +0 -57
  675. package/plugins/enhance/lib/schemas/validator.js +0 -247
  676. package/plugins/enhance/lib/sources/custom-handler.js +0 -199
  677. package/plugins/enhance/lib/sources/policy-questions.js +0 -246
  678. package/plugins/enhance/lib/sources/source-cache.js +0 -165
  679. package/plugins/enhance/lib/state/workflow-state.js +0 -576
  680. package/plugins/enhance/lib/types/agent-frontmatter.d.ts +0 -134
  681. package/plugins/enhance/lib/types/command-frontmatter.d.ts +0 -107
  682. package/plugins/enhance/lib/types/hook-frontmatter.d.ts +0 -115
  683. package/plugins/enhance/lib/types/index.d.ts +0 -84
  684. package/plugins/enhance/lib/types/plugin-manifest.d.ts +0 -102
  685. package/plugins/enhance/lib/types/skill-frontmatter.d.ts +0 -89
  686. package/plugins/enhance/lib/utils/atomic-write.js +0 -94
  687. package/plugins/enhance/lib/utils/cache-manager.js +0 -159
  688. package/plugins/enhance/lib/utils/command-parser.js +0 -0
  689. package/plugins/enhance/lib/utils/context-optimizer.js +0 -300
  690. package/plugins/enhance/lib/utils/deprecation.js +0 -37
  691. package/plugins/enhance/lib/utils/shell-escape.js +0 -88
  692. package/plugins/enhance/lib/utils/state-helpers.js +0 -61
  693. package/plugins/enhance/skills/enhance-agent-prompts/SKILL.md +0 -277
  694. package/plugins/enhance/skills/enhance-claude-memory/SKILL.md +0 -387
  695. package/plugins/enhance/skills/enhance-cross-file/SKILL.md +0 -110
  696. package/plugins/enhance/skills/enhance-docs/SKILL.md +0 -298
  697. package/plugins/enhance/skills/enhance-hooks/SKILL.md +0 -554
  698. package/plugins/enhance/skills/enhance-orchestrator/SKILL.md +0 -255
  699. package/plugins/enhance/skills/enhance-plugins/SKILL.md +0 -319
  700. package/plugins/enhance/skills/enhance-prompts/SKILL.md +0 -340
  701. package/plugins/enhance/skills/enhance-skills/SKILL.md +0 -436
  702. package/plugins/learn/.claude-plugin/plugin.json +0 -21
  703. package/plugins/learn/agents/learn-agent.md +0 -331
  704. package/plugins/learn/commands/learn.md +0 -190
  705. package/plugins/learn/lib/adapter-transforms.js +0 -298
  706. package/plugins/learn/lib/collectors/codebase.js +0 -392
  707. package/plugins/learn/lib/collectors/docs-patterns.js +0 -713
  708. package/plugins/learn/lib/collectors/documentation.js +0 -219
  709. package/plugins/learn/lib/collectors/github.js +0 -330
  710. package/plugins/learn/lib/collectors/index.js +0 -126
  711. package/plugins/learn/lib/config/index.js +0 -14
  712. package/plugins/learn/lib/cross-platform/index.js +0 -539
  713. package/plugins/learn/lib/discovery/index.js +0 -352
  714. package/plugins/learn/lib/drift-detect/collectors.js +0 -37
  715. package/plugins/learn/lib/enhance/agent-analyzer.js +0 -421
  716. package/plugins/learn/lib/enhance/agent-patterns.js +0 -571
  717. package/plugins/learn/lib/enhance/auto-suppression.js +0 -622
  718. package/plugins/learn/lib/enhance/benchmark.js +0 -417
  719. package/plugins/learn/lib/enhance/cross-file-analyzer.js +0 -930
  720. package/plugins/learn/lib/enhance/cross-file-patterns.js +0 -370
  721. package/plugins/learn/lib/enhance/docs-analyzer.js +0 -325
  722. package/plugins/learn/lib/enhance/docs-patterns.js +0 -671
  723. package/plugins/learn/lib/enhance/fixer.js +0 -721
  724. package/plugins/learn/lib/enhance/hook-analyzer.js +0 -135
  725. package/plugins/learn/lib/enhance/hook-patterns.js +0 -40
  726. package/plugins/learn/lib/enhance/index.js +0 -127
  727. package/plugins/learn/lib/enhance/plugin-analyzer.js +0 -402
  728. package/plugins/learn/lib/enhance/plugin-patterns.js +0 -326
  729. package/plugins/learn/lib/enhance/projectmemory-analyzer.js +0 -551
  730. package/plugins/learn/lib/enhance/projectmemory-patterns.js +0 -617
  731. package/plugins/learn/lib/enhance/prompt-analyzer.js +0 -457
  732. package/plugins/learn/lib/enhance/prompt-patterns.js +0 -1484
  733. package/plugins/learn/lib/enhance/reporter.js +0 -1348
  734. package/plugins/learn/lib/enhance/security-patterns.js +0 -284
  735. package/plugins/learn/lib/enhance/skill-analyzer.js +0 -182
  736. package/plugins/learn/lib/enhance/skill-patterns.js +0 -147
  737. package/plugins/learn/lib/enhance/suppression.js +0 -352
  738. package/plugins/learn/lib/enhance/tool-patterns.js +0 -373
  739. package/plugins/learn/lib/index.js +0 -270
  740. package/plugins/learn/lib/patterns/cli-enhancers.js +0 -611
  741. package/plugins/learn/lib/patterns/pipeline.js +0 -948
  742. package/plugins/learn/lib/patterns/review-patterns.js +0 -558
  743. package/plugins/learn/lib/patterns/slop-analyzers.js +0 -2305
  744. package/plugins/learn/lib/patterns/slop-patterns.js +0 -1187
  745. package/plugins/learn/lib/perf/analyzer/index.js +0 -22
  746. package/plugins/learn/lib/perf/argument-parser.js +0 -105
  747. package/plugins/learn/lib/perf/baseline-comparator.js +0 -50
  748. package/plugins/learn/lib/perf/baseline-store.js +0 -127
  749. package/plugins/learn/lib/perf/benchmark-runner.js +0 -404
  750. package/plugins/learn/lib/perf/breaking-point-finder.js +0 -52
  751. package/plugins/learn/lib/perf/breaking-point-runner.js +0 -60
  752. package/plugins/learn/lib/perf/checkpoint.js +0 -123
  753. package/plugins/learn/lib/perf/code-paths.js +0 -86
  754. package/plugins/learn/lib/perf/consolidation.js +0 -37
  755. package/plugins/learn/lib/perf/constraint-runner.js +0 -71
  756. package/plugins/learn/lib/perf/experiment-runner.js +0 -32
  757. package/plugins/learn/lib/perf/index.js +0 -41
  758. package/plugins/learn/lib/perf/investigation-state.js +0 -874
  759. package/plugins/learn/lib/perf/optimization-runner.js +0 -79
  760. package/plugins/learn/lib/perf/profilers/go.js +0 -22
  761. package/plugins/learn/lib/perf/profilers/index.js +0 -46
  762. package/plugins/learn/lib/perf/profilers/java.js +0 -23
  763. package/plugins/learn/lib/perf/profilers/node.js +0 -27
  764. package/plugins/learn/lib/perf/profilers/python.js +0 -23
  765. package/plugins/learn/lib/perf/profilers/rust.js +0 -23
  766. package/plugins/learn/lib/perf/profiling-runner.js +0 -75
  767. package/plugins/learn/lib/perf/schemas.js +0 -140
  768. package/plugins/learn/lib/platform/detect-platform.js +0 -413
  769. package/plugins/learn/lib/platform/detection-configs.js +0 -93
  770. package/plugins/learn/lib/platform/state-dir.js +0 -132
  771. package/plugins/learn/lib/platform/verify-tools.js +0 -182
  772. package/plugins/learn/lib/repo-map/cache.js +0 -152
  773. package/plugins/learn/lib/repo-map/concurrency.js +0 -29
  774. package/plugins/learn/lib/repo-map/index.js +0 -222
  775. package/plugins/learn/lib/repo-map/installer.js +0 -212
  776. package/plugins/learn/lib/repo-map/queries/go.js +0 -27
  777. package/plugins/learn/lib/repo-map/queries/index.js +0 -100
  778. package/plugins/learn/lib/repo-map/queries/java.js +0 -38
  779. package/plugins/learn/lib/repo-map/queries/javascript.js +0 -55
  780. package/plugins/learn/lib/repo-map/queries/python.js +0 -24
  781. package/plugins/learn/lib/repo-map/queries/rust.js +0 -73
  782. package/plugins/learn/lib/repo-map/queries/typescript.js +0 -38
  783. package/plugins/learn/lib/repo-map/runner.js +0 -1364
  784. package/plugins/learn/lib/repo-map/updater.js +0 -562
  785. package/plugins/learn/lib/repo-map/usage-analyzer.js +0 -407
  786. package/plugins/learn/lib/schemas/plugin-manifest.schema.json +0 -57
  787. package/plugins/learn/lib/schemas/validator.js +0 -247
  788. package/plugins/learn/lib/sources/custom-handler.js +0 -199
  789. package/plugins/learn/lib/sources/policy-questions.js +0 -246
  790. package/plugins/learn/lib/sources/source-cache.js +0 -165
  791. package/plugins/learn/lib/state/workflow-state.js +0 -576
  792. package/plugins/learn/lib/types/agent-frontmatter.d.ts +0 -134
  793. package/plugins/learn/lib/types/command-frontmatter.d.ts +0 -107
  794. package/plugins/learn/lib/types/hook-frontmatter.d.ts +0 -115
  795. package/plugins/learn/lib/types/index.d.ts +0 -84
  796. package/plugins/learn/lib/types/plugin-manifest.d.ts +0 -102
  797. package/plugins/learn/lib/types/skill-frontmatter.d.ts +0 -89
  798. package/plugins/learn/lib/utils/atomic-write.js +0 -94
  799. package/plugins/learn/lib/utils/cache-manager.js +0 -159
  800. package/plugins/learn/lib/utils/command-parser.js +0 -0
  801. package/plugins/learn/lib/utils/context-optimizer.js +0 -300
  802. package/plugins/learn/lib/utils/deprecation.js +0 -37
  803. package/plugins/learn/lib/utils/shell-escape.js +0 -88
  804. package/plugins/learn/lib/utils/state-helpers.js +0 -61
  805. package/plugins/learn/skills/learn/SKILL.md +0 -349
  806. package/plugins/next-task/.claude-plugin/plugin.json +0 -24
  807. package/plugins/next-task/agents/ci-fixer.md +0 -259
  808. package/plugins/next-task/agents/ci-monitor.md +0 -342
  809. package/plugins/next-task/agents/delivery-validator.md +0 -115
  810. package/plugins/next-task/agents/exploration-agent.md +0 -316
  811. package/plugins/next-task/agents/implementation-agent.md +0 -465
  812. package/plugins/next-task/agents/planning-agent.md +0 -377
  813. package/plugins/next-task/agents/simple-fixer.md +0 -139
  814. package/plugins/next-task/agents/task-discoverer.md +0 -89
  815. package/plugins/next-task/agents/test-coverage-checker.md +0 -451
  816. package/plugins/next-task/agents/worktree-manager.md +0 -257
  817. package/plugins/next-task/commands/delivery-approval.md +0 -341
  818. package/plugins/next-task/commands/next-task.md +0 -547
  819. package/plugins/next-task/hooks/hooks.json +0 -14
  820. package/plugins/next-task/lib/adapter-transforms.js +0 -298
  821. package/plugins/next-task/lib/collectors/codebase.js +0 -392
  822. package/plugins/next-task/lib/collectors/docs-patterns.js +0 -713
  823. package/plugins/next-task/lib/collectors/documentation.js +0 -219
  824. package/plugins/next-task/lib/collectors/github.js +0 -330
  825. package/plugins/next-task/lib/collectors/index.js +0 -126
  826. package/plugins/next-task/lib/config/index.js +0 -14
  827. package/plugins/next-task/lib/cross-platform/index.js +0 -539
  828. package/plugins/next-task/lib/discovery/index.js +0 -352
  829. package/plugins/next-task/lib/drift-detect/collectors.js +0 -37
  830. package/plugins/next-task/lib/enhance/agent-analyzer.js +0 -421
  831. package/plugins/next-task/lib/enhance/agent-patterns.js +0 -571
  832. package/plugins/next-task/lib/enhance/auto-suppression.js +0 -622
  833. package/plugins/next-task/lib/enhance/benchmark.js +0 -417
  834. package/plugins/next-task/lib/enhance/cross-file-analyzer.js +0 -930
  835. package/plugins/next-task/lib/enhance/cross-file-patterns.js +0 -370
  836. package/plugins/next-task/lib/enhance/docs-analyzer.js +0 -325
  837. package/plugins/next-task/lib/enhance/docs-patterns.js +0 -671
  838. package/plugins/next-task/lib/enhance/fixer.js +0 -721
  839. package/plugins/next-task/lib/enhance/hook-analyzer.js +0 -135
  840. package/plugins/next-task/lib/enhance/hook-patterns.js +0 -40
  841. package/plugins/next-task/lib/enhance/index.js +0 -127
  842. package/plugins/next-task/lib/enhance/plugin-analyzer.js +0 -402
  843. package/plugins/next-task/lib/enhance/plugin-patterns.js +0 -326
  844. package/plugins/next-task/lib/enhance/projectmemory-analyzer.js +0 -551
  845. package/plugins/next-task/lib/enhance/projectmemory-patterns.js +0 -617
  846. package/plugins/next-task/lib/enhance/prompt-analyzer.js +0 -457
  847. package/plugins/next-task/lib/enhance/prompt-patterns.js +0 -1484
  848. package/plugins/next-task/lib/enhance/reporter.js +0 -1348
  849. package/plugins/next-task/lib/enhance/security-patterns.js +0 -284
  850. package/plugins/next-task/lib/enhance/skill-analyzer.js +0 -182
  851. package/plugins/next-task/lib/enhance/skill-patterns.js +0 -147
  852. package/plugins/next-task/lib/enhance/suppression.js +0 -352
  853. package/plugins/next-task/lib/enhance/tool-patterns.js +0 -373
  854. package/plugins/next-task/lib/index.js +0 -270
  855. package/plugins/next-task/lib/patterns/cli-enhancers.js +0 -611
  856. package/plugins/next-task/lib/patterns/pipeline.js +0 -948
  857. package/plugins/next-task/lib/patterns/review-patterns.js +0 -558
  858. package/plugins/next-task/lib/patterns/slop-analyzers.js +0 -2305
  859. package/plugins/next-task/lib/patterns/slop-patterns.js +0 -1187
  860. package/plugins/next-task/lib/perf/analyzer/index.js +0 -22
  861. package/plugins/next-task/lib/perf/argument-parser.js +0 -105
  862. package/plugins/next-task/lib/perf/baseline-comparator.js +0 -50
  863. package/plugins/next-task/lib/perf/baseline-store.js +0 -127
  864. package/plugins/next-task/lib/perf/benchmark-runner.js +0 -404
  865. package/plugins/next-task/lib/perf/breaking-point-finder.js +0 -52
  866. package/plugins/next-task/lib/perf/breaking-point-runner.js +0 -60
  867. package/plugins/next-task/lib/perf/checkpoint.js +0 -123
  868. package/plugins/next-task/lib/perf/code-paths.js +0 -86
  869. package/plugins/next-task/lib/perf/consolidation.js +0 -37
  870. package/plugins/next-task/lib/perf/constraint-runner.js +0 -71
  871. package/plugins/next-task/lib/perf/experiment-runner.js +0 -32
  872. package/plugins/next-task/lib/perf/index.js +0 -41
  873. package/plugins/next-task/lib/perf/investigation-state.js +0 -874
  874. package/plugins/next-task/lib/perf/optimization-runner.js +0 -79
  875. package/plugins/next-task/lib/perf/profilers/go.js +0 -22
  876. package/plugins/next-task/lib/perf/profilers/index.js +0 -46
  877. package/plugins/next-task/lib/perf/profilers/java.js +0 -23
  878. package/plugins/next-task/lib/perf/profilers/node.js +0 -27
  879. package/plugins/next-task/lib/perf/profilers/python.js +0 -23
  880. package/plugins/next-task/lib/perf/profilers/rust.js +0 -23
  881. package/plugins/next-task/lib/perf/profiling-runner.js +0 -75
  882. package/plugins/next-task/lib/perf/schemas.js +0 -140
  883. package/plugins/next-task/lib/platform/detect-platform.js +0 -413
  884. package/plugins/next-task/lib/platform/detection-configs.js +0 -93
  885. package/plugins/next-task/lib/platform/state-dir.js +0 -132
  886. package/plugins/next-task/lib/platform/verify-tools.js +0 -182
  887. package/plugins/next-task/lib/repo-map/cache.js +0 -152
  888. package/plugins/next-task/lib/repo-map/concurrency.js +0 -29
  889. package/plugins/next-task/lib/repo-map/index.js +0 -222
  890. package/plugins/next-task/lib/repo-map/installer.js +0 -212
  891. package/plugins/next-task/lib/repo-map/queries/go.js +0 -27
  892. package/plugins/next-task/lib/repo-map/queries/index.js +0 -100
  893. package/plugins/next-task/lib/repo-map/queries/java.js +0 -38
  894. package/plugins/next-task/lib/repo-map/queries/javascript.js +0 -55
  895. package/plugins/next-task/lib/repo-map/queries/python.js +0 -24
  896. package/plugins/next-task/lib/repo-map/queries/rust.js +0 -73
  897. package/plugins/next-task/lib/repo-map/queries/typescript.js +0 -38
  898. package/plugins/next-task/lib/repo-map/runner.js +0 -1364
  899. package/plugins/next-task/lib/repo-map/updater.js +0 -562
  900. package/plugins/next-task/lib/repo-map/usage-analyzer.js +0 -407
  901. package/plugins/next-task/lib/schemas/plugin-manifest.schema.json +0 -57
  902. package/plugins/next-task/lib/schemas/validator.js +0 -247
  903. package/plugins/next-task/lib/sources/custom-handler.js +0 -199
  904. package/plugins/next-task/lib/sources/policy-questions.js +0 -246
  905. package/plugins/next-task/lib/sources/source-cache.js +0 -165
  906. package/plugins/next-task/lib/state/workflow-state.js +0 -576
  907. package/plugins/next-task/lib/types/agent-frontmatter.d.ts +0 -134
  908. package/plugins/next-task/lib/types/command-frontmatter.d.ts +0 -107
  909. package/plugins/next-task/lib/types/hook-frontmatter.d.ts +0 -115
  910. package/plugins/next-task/lib/types/index.d.ts +0 -84
  911. package/plugins/next-task/lib/types/plugin-manifest.d.ts +0 -102
  912. package/plugins/next-task/lib/types/skill-frontmatter.d.ts +0 -89
  913. package/plugins/next-task/lib/utils/atomic-write.js +0 -94
  914. package/plugins/next-task/lib/utils/cache-manager.js +0 -159
  915. package/plugins/next-task/lib/utils/command-parser.js +0 -0
  916. package/plugins/next-task/lib/utils/context-optimizer.js +0 -300
  917. package/plugins/next-task/lib/utils/deprecation.js +0 -37
  918. package/plugins/next-task/lib/utils/shell-escape.js +0 -88
  919. package/plugins/next-task/lib/utils/state-helpers.js +0 -61
  920. package/plugins/next-task/skills/discover-tasks/SKILL.md +0 -191
  921. package/plugins/next-task/skills/orchestrate-review/SKILL.md +0 -239
  922. package/plugins/next-task/skills/validate-delivery/SKILL.md +0 -186
  923. package/plugins/perf/.claude-plugin/plugin.json +0 -20
  924. package/plugins/perf/agents/perf-analyzer.md +0 -43
  925. package/plugins/perf/agents/perf-code-paths.md +0 -16
  926. package/plugins/perf/agents/perf-investigation-logger.md +0 -47
  927. package/plugins/perf/agents/perf-orchestrator.md +0 -344
  928. package/plugins/perf/agents/perf-theory-gatherer.md +0 -25
  929. package/plugins/perf/agents/perf-theory-tester.md +0 -58
  930. package/plugins/perf/commands/perf.md +0 -470
  931. package/plugins/perf/hooks/checkpoint.md +0 -35
  932. package/plugins/perf/hooks/constraint-tester.md +0 -40
  933. package/plugins/perf/lib/adapter-transforms.js +0 -298
  934. package/plugins/perf/lib/collectors/codebase.js +0 -392
  935. package/plugins/perf/lib/collectors/docs-patterns.js +0 -713
  936. package/plugins/perf/lib/collectors/documentation.js +0 -219
  937. package/plugins/perf/lib/collectors/github.js +0 -330
  938. package/plugins/perf/lib/collectors/index.js +0 -126
  939. package/plugins/perf/lib/config/index.js +0 -14
  940. package/plugins/perf/lib/cross-platform/index.js +0 -539
  941. package/plugins/perf/lib/discovery/index.js +0 -352
  942. package/plugins/perf/lib/drift-detect/collectors.js +0 -37
  943. package/plugins/perf/lib/enhance/agent-analyzer.js +0 -421
  944. package/plugins/perf/lib/enhance/agent-patterns.js +0 -571
  945. package/plugins/perf/lib/enhance/auto-suppression.js +0 -622
  946. package/plugins/perf/lib/enhance/benchmark.js +0 -417
  947. package/plugins/perf/lib/enhance/cross-file-analyzer.js +0 -930
  948. package/plugins/perf/lib/enhance/cross-file-patterns.js +0 -370
  949. package/plugins/perf/lib/enhance/docs-analyzer.js +0 -325
  950. package/plugins/perf/lib/enhance/docs-patterns.js +0 -671
  951. package/plugins/perf/lib/enhance/fixer.js +0 -721
  952. package/plugins/perf/lib/enhance/hook-analyzer.js +0 -135
  953. package/plugins/perf/lib/enhance/hook-patterns.js +0 -40
  954. package/plugins/perf/lib/enhance/index.js +0 -127
  955. package/plugins/perf/lib/enhance/plugin-analyzer.js +0 -402
  956. package/plugins/perf/lib/enhance/plugin-patterns.js +0 -326
  957. package/plugins/perf/lib/enhance/projectmemory-analyzer.js +0 -551
  958. package/plugins/perf/lib/enhance/projectmemory-patterns.js +0 -617
  959. package/plugins/perf/lib/enhance/prompt-analyzer.js +0 -457
  960. package/plugins/perf/lib/enhance/prompt-patterns.js +0 -1484
  961. package/plugins/perf/lib/enhance/reporter.js +0 -1348
  962. package/plugins/perf/lib/enhance/security-patterns.js +0 -284
  963. package/plugins/perf/lib/enhance/skill-analyzer.js +0 -182
  964. package/plugins/perf/lib/enhance/skill-patterns.js +0 -147
  965. package/plugins/perf/lib/enhance/suppression.js +0 -352
  966. package/plugins/perf/lib/enhance/tool-patterns.js +0 -373
  967. package/plugins/perf/lib/index.js +0 -270
  968. package/plugins/perf/lib/patterns/cli-enhancers.js +0 -611
  969. package/plugins/perf/lib/patterns/pipeline.js +0 -948
  970. package/plugins/perf/lib/patterns/review-patterns.js +0 -558
  971. package/plugins/perf/lib/patterns/slop-analyzers.js +0 -2305
  972. package/plugins/perf/lib/patterns/slop-patterns.js +0 -1187
  973. package/plugins/perf/lib/perf/analyzer/index.js +0 -22
  974. package/plugins/perf/lib/perf/argument-parser.js +0 -105
  975. package/plugins/perf/lib/perf/baseline-comparator.js +0 -50
  976. package/plugins/perf/lib/perf/baseline-store.js +0 -127
  977. package/plugins/perf/lib/perf/benchmark-runner.js +0 -404
  978. package/plugins/perf/lib/perf/breaking-point-finder.js +0 -52
  979. package/plugins/perf/lib/perf/breaking-point-runner.js +0 -60
  980. package/plugins/perf/lib/perf/checkpoint.js +0 -123
  981. package/plugins/perf/lib/perf/code-paths.js +0 -86
  982. package/plugins/perf/lib/perf/consolidation.js +0 -37
  983. package/plugins/perf/lib/perf/constraint-runner.js +0 -71
  984. package/plugins/perf/lib/perf/experiment-runner.js +0 -32
  985. package/plugins/perf/lib/perf/index.js +0 -41
  986. package/plugins/perf/lib/perf/investigation-state.js +0 -874
  987. package/plugins/perf/lib/perf/optimization-runner.js +0 -79
  988. package/plugins/perf/lib/perf/profilers/go.js +0 -22
  989. package/plugins/perf/lib/perf/profilers/index.js +0 -46
  990. package/plugins/perf/lib/perf/profilers/java.js +0 -23
  991. package/plugins/perf/lib/perf/profilers/node.js +0 -27
  992. package/plugins/perf/lib/perf/profilers/python.js +0 -23
  993. package/plugins/perf/lib/perf/profilers/rust.js +0 -23
  994. package/plugins/perf/lib/perf/profiling-runner.js +0 -75
  995. package/plugins/perf/lib/perf/schemas.js +0 -140
  996. package/plugins/perf/lib/platform/detect-platform.js +0 -413
  997. package/plugins/perf/lib/platform/detection-configs.js +0 -93
  998. package/plugins/perf/lib/platform/state-dir.js +0 -132
  999. package/plugins/perf/lib/platform/verify-tools.js +0 -182
  1000. package/plugins/perf/lib/repo-map/cache.js +0 -152
  1001. package/plugins/perf/lib/repo-map/concurrency.js +0 -29
  1002. package/plugins/perf/lib/repo-map/index.js +0 -222
  1003. package/plugins/perf/lib/repo-map/installer.js +0 -212
  1004. package/plugins/perf/lib/repo-map/queries/go.js +0 -27
  1005. package/plugins/perf/lib/repo-map/queries/index.js +0 -100
  1006. package/plugins/perf/lib/repo-map/queries/java.js +0 -38
  1007. package/plugins/perf/lib/repo-map/queries/javascript.js +0 -55
  1008. package/plugins/perf/lib/repo-map/queries/python.js +0 -24
  1009. package/plugins/perf/lib/repo-map/queries/rust.js +0 -73
  1010. package/plugins/perf/lib/repo-map/queries/typescript.js +0 -38
  1011. package/plugins/perf/lib/repo-map/runner.js +0 -1364
  1012. package/plugins/perf/lib/repo-map/updater.js +0 -562
  1013. package/plugins/perf/lib/repo-map/usage-analyzer.js +0 -407
  1014. package/plugins/perf/lib/schemas/plugin-manifest.schema.json +0 -57
  1015. package/plugins/perf/lib/schemas/validator.js +0 -247
  1016. package/plugins/perf/lib/sources/custom-handler.js +0 -199
  1017. package/plugins/perf/lib/sources/policy-questions.js +0 -246
  1018. package/plugins/perf/lib/sources/source-cache.js +0 -165
  1019. package/plugins/perf/lib/state/workflow-state.js +0 -576
  1020. package/plugins/perf/lib/types/agent-frontmatter.d.ts +0 -134
  1021. package/plugins/perf/lib/types/command-frontmatter.d.ts +0 -107
  1022. package/plugins/perf/lib/types/hook-frontmatter.d.ts +0 -115
  1023. package/plugins/perf/lib/types/index.d.ts +0 -84
  1024. package/plugins/perf/lib/types/plugin-manifest.d.ts +0 -102
  1025. package/plugins/perf/lib/types/skill-frontmatter.d.ts +0 -89
  1026. package/plugins/perf/lib/utils/atomic-write.js +0 -94
  1027. package/plugins/perf/lib/utils/cache-manager.js +0 -159
  1028. package/plugins/perf/lib/utils/command-parser.js +0 -0
  1029. package/plugins/perf/lib/utils/context-optimizer.js +0 -300
  1030. package/plugins/perf/lib/utils/deprecation.js +0 -37
  1031. package/plugins/perf/lib/utils/shell-escape.js +0 -88
  1032. package/plugins/perf/lib/utils/state-helpers.js +0 -61
  1033. package/plugins/perf/skills/perf-analyzer/SKILL.md +0 -37
  1034. package/plugins/perf/skills/perf-baseline-manager/SKILL.md +0 -30
  1035. package/plugins/perf/skills/perf-benchmarker/SKILL.md +0 -52
  1036. package/plugins/perf/skills/perf-code-paths/SKILL.md +0 -32
  1037. package/plugins/perf/skills/perf-investigation-logger/SKILL.md +0 -41
  1038. package/plugins/perf/skills/perf-profiler/SKILL.md +0 -42
  1039. package/plugins/perf/skills/perf-theory-gatherer/SKILL.md +0 -35
  1040. package/plugins/perf/skills/perf-theory-tester/SKILL.md +0 -36
  1041. package/plugins/repo-map/.claude-plugin/plugin.json +0 -22
  1042. package/plugins/repo-map/agents/map-validator.md +0 -60
  1043. package/plugins/repo-map/commands/repo-map.md +0 -133
  1044. package/plugins/repo-map/lib/adapter-transforms.js +0 -298
  1045. package/plugins/repo-map/lib/collectors/codebase.js +0 -392
  1046. package/plugins/repo-map/lib/collectors/docs-patterns.js +0 -713
  1047. package/plugins/repo-map/lib/collectors/documentation.js +0 -219
  1048. package/plugins/repo-map/lib/collectors/github.js +0 -330
  1049. package/plugins/repo-map/lib/collectors/index.js +0 -126
  1050. package/plugins/repo-map/lib/config/index.js +0 -14
  1051. package/plugins/repo-map/lib/cross-platform/index.js +0 -539
  1052. package/plugins/repo-map/lib/discovery/index.js +0 -352
  1053. package/plugins/repo-map/lib/drift-detect/collectors.js +0 -37
  1054. package/plugins/repo-map/lib/enhance/agent-analyzer.js +0 -421
  1055. package/plugins/repo-map/lib/enhance/agent-patterns.js +0 -571
  1056. package/plugins/repo-map/lib/enhance/auto-suppression.js +0 -622
  1057. package/plugins/repo-map/lib/enhance/benchmark.js +0 -417
  1058. package/plugins/repo-map/lib/enhance/cross-file-analyzer.js +0 -930
  1059. package/plugins/repo-map/lib/enhance/cross-file-patterns.js +0 -370
  1060. package/plugins/repo-map/lib/enhance/docs-analyzer.js +0 -325
  1061. package/plugins/repo-map/lib/enhance/docs-patterns.js +0 -671
  1062. package/plugins/repo-map/lib/enhance/fixer.js +0 -721
  1063. package/plugins/repo-map/lib/enhance/hook-analyzer.js +0 -135
  1064. package/plugins/repo-map/lib/enhance/hook-patterns.js +0 -40
  1065. package/plugins/repo-map/lib/enhance/index.js +0 -127
  1066. package/plugins/repo-map/lib/enhance/plugin-analyzer.js +0 -402
  1067. package/plugins/repo-map/lib/enhance/plugin-patterns.js +0 -326
  1068. package/plugins/repo-map/lib/enhance/projectmemory-analyzer.js +0 -551
  1069. package/plugins/repo-map/lib/enhance/projectmemory-patterns.js +0 -617
  1070. package/plugins/repo-map/lib/enhance/prompt-analyzer.js +0 -457
  1071. package/plugins/repo-map/lib/enhance/prompt-patterns.js +0 -1484
  1072. package/plugins/repo-map/lib/enhance/reporter.js +0 -1348
  1073. package/plugins/repo-map/lib/enhance/security-patterns.js +0 -284
  1074. package/plugins/repo-map/lib/enhance/skill-analyzer.js +0 -182
  1075. package/plugins/repo-map/lib/enhance/skill-patterns.js +0 -147
  1076. package/plugins/repo-map/lib/enhance/suppression.js +0 -352
  1077. package/plugins/repo-map/lib/enhance/tool-patterns.js +0 -373
  1078. package/plugins/repo-map/lib/index.js +0 -270
  1079. package/plugins/repo-map/lib/patterns/cli-enhancers.js +0 -611
  1080. package/plugins/repo-map/lib/patterns/pipeline.js +0 -948
  1081. package/plugins/repo-map/lib/patterns/review-patterns.js +0 -558
  1082. package/plugins/repo-map/lib/patterns/slop-analyzers.js +0 -2305
  1083. package/plugins/repo-map/lib/patterns/slop-patterns.js +0 -1187
  1084. package/plugins/repo-map/lib/perf/analyzer/index.js +0 -22
  1085. package/plugins/repo-map/lib/perf/argument-parser.js +0 -105
  1086. package/plugins/repo-map/lib/perf/baseline-comparator.js +0 -50
  1087. package/plugins/repo-map/lib/perf/baseline-store.js +0 -127
  1088. package/plugins/repo-map/lib/perf/benchmark-runner.js +0 -404
  1089. package/plugins/repo-map/lib/perf/breaking-point-finder.js +0 -52
  1090. package/plugins/repo-map/lib/perf/breaking-point-runner.js +0 -60
  1091. package/plugins/repo-map/lib/perf/checkpoint.js +0 -123
  1092. package/plugins/repo-map/lib/perf/code-paths.js +0 -86
  1093. package/plugins/repo-map/lib/perf/consolidation.js +0 -37
  1094. package/plugins/repo-map/lib/perf/constraint-runner.js +0 -71
  1095. package/plugins/repo-map/lib/perf/experiment-runner.js +0 -32
  1096. package/plugins/repo-map/lib/perf/index.js +0 -41
  1097. package/plugins/repo-map/lib/perf/investigation-state.js +0 -874
  1098. package/plugins/repo-map/lib/perf/optimization-runner.js +0 -79
  1099. package/plugins/repo-map/lib/perf/profilers/go.js +0 -22
  1100. package/plugins/repo-map/lib/perf/profilers/index.js +0 -46
  1101. package/plugins/repo-map/lib/perf/profilers/java.js +0 -23
  1102. package/plugins/repo-map/lib/perf/profilers/node.js +0 -27
  1103. package/plugins/repo-map/lib/perf/profilers/python.js +0 -23
  1104. package/plugins/repo-map/lib/perf/profilers/rust.js +0 -23
  1105. package/plugins/repo-map/lib/perf/profiling-runner.js +0 -75
  1106. package/plugins/repo-map/lib/perf/schemas.js +0 -140
  1107. package/plugins/repo-map/lib/platform/detect-platform.js +0 -413
  1108. package/plugins/repo-map/lib/platform/detection-configs.js +0 -93
  1109. package/plugins/repo-map/lib/platform/state-dir.js +0 -132
  1110. package/plugins/repo-map/lib/platform/verify-tools.js +0 -182
  1111. package/plugins/repo-map/lib/repo-map/cache.js +0 -152
  1112. package/plugins/repo-map/lib/repo-map/concurrency.js +0 -29
  1113. package/plugins/repo-map/lib/repo-map/index.js +0 -222
  1114. package/plugins/repo-map/lib/repo-map/installer.js +0 -212
  1115. package/plugins/repo-map/lib/repo-map/queries/go.js +0 -27
  1116. package/plugins/repo-map/lib/repo-map/queries/index.js +0 -100
  1117. package/plugins/repo-map/lib/repo-map/queries/java.js +0 -38
  1118. package/plugins/repo-map/lib/repo-map/queries/javascript.js +0 -55
  1119. package/plugins/repo-map/lib/repo-map/queries/python.js +0 -24
  1120. package/plugins/repo-map/lib/repo-map/queries/rust.js +0 -73
  1121. package/plugins/repo-map/lib/repo-map/queries/typescript.js +0 -38
  1122. package/plugins/repo-map/lib/repo-map/runner.js +0 -1364
  1123. package/plugins/repo-map/lib/repo-map/updater.js +0 -562
  1124. package/plugins/repo-map/lib/repo-map/usage-analyzer.js +0 -407
  1125. package/plugins/repo-map/lib/schemas/plugin-manifest.schema.json +0 -57
  1126. package/plugins/repo-map/lib/schemas/validator.js +0 -247
  1127. package/plugins/repo-map/lib/sources/custom-handler.js +0 -199
  1128. package/plugins/repo-map/lib/sources/policy-questions.js +0 -246
  1129. package/plugins/repo-map/lib/sources/source-cache.js +0 -165
  1130. package/plugins/repo-map/lib/state/workflow-state.js +0 -576
  1131. package/plugins/repo-map/lib/types/agent-frontmatter.d.ts +0 -134
  1132. package/plugins/repo-map/lib/types/command-frontmatter.d.ts +0 -107
  1133. package/plugins/repo-map/lib/types/hook-frontmatter.d.ts +0 -115
  1134. package/plugins/repo-map/lib/types/index.d.ts +0 -84
  1135. package/plugins/repo-map/lib/types/plugin-manifest.d.ts +0 -102
  1136. package/plugins/repo-map/lib/types/skill-frontmatter.d.ts +0 -89
  1137. package/plugins/repo-map/lib/utils/atomic-write.js +0 -94
  1138. package/plugins/repo-map/lib/utils/cache-manager.js +0 -159
  1139. package/plugins/repo-map/lib/utils/command-parser.js +0 -0
  1140. package/plugins/repo-map/lib/utils/context-optimizer.js +0 -300
  1141. package/plugins/repo-map/lib/utils/deprecation.js +0 -37
  1142. package/plugins/repo-map/lib/utils/shell-escape.js +0 -88
  1143. package/plugins/repo-map/lib/utils/state-helpers.js +0 -61
  1144. package/plugins/repo-map/skills/repo-mapping/SKILL.md +0 -83
  1145. package/plugins/ship/.claude-plugin/plugin.json +0 -21
  1146. package/plugins/ship/commands/ship-ci-review-loop.md +0 -472
  1147. package/plugins/ship/commands/ship-deployment.md +0 -335
  1148. package/plugins/ship/commands/ship-error-handling.md +0 -258
  1149. package/plugins/ship/commands/ship.md +0 -492
  1150. package/plugins/ship/lib/adapter-transforms.js +0 -298
  1151. package/plugins/ship/lib/collectors/codebase.js +0 -392
  1152. package/plugins/ship/lib/collectors/docs-patterns.js +0 -713
  1153. package/plugins/ship/lib/collectors/documentation.js +0 -219
  1154. package/plugins/ship/lib/collectors/github.js +0 -330
  1155. package/plugins/ship/lib/collectors/index.js +0 -126
  1156. package/plugins/ship/lib/config/index.js +0 -14
  1157. package/plugins/ship/lib/cross-platform/index.js +0 -539
  1158. package/plugins/ship/lib/discovery/index.js +0 -352
  1159. package/plugins/ship/lib/drift-detect/collectors.js +0 -37
  1160. package/plugins/ship/lib/enhance/agent-analyzer.js +0 -421
  1161. package/plugins/ship/lib/enhance/agent-patterns.js +0 -571
  1162. package/plugins/ship/lib/enhance/auto-suppression.js +0 -622
  1163. package/plugins/ship/lib/enhance/benchmark.js +0 -417
  1164. package/plugins/ship/lib/enhance/cross-file-analyzer.js +0 -930
  1165. package/plugins/ship/lib/enhance/cross-file-patterns.js +0 -370
  1166. package/plugins/ship/lib/enhance/docs-analyzer.js +0 -325
  1167. package/plugins/ship/lib/enhance/docs-patterns.js +0 -671
  1168. package/plugins/ship/lib/enhance/fixer.js +0 -721
  1169. package/plugins/ship/lib/enhance/hook-analyzer.js +0 -135
  1170. package/plugins/ship/lib/enhance/hook-patterns.js +0 -40
  1171. package/plugins/ship/lib/enhance/index.js +0 -127
  1172. package/plugins/ship/lib/enhance/plugin-analyzer.js +0 -402
  1173. package/plugins/ship/lib/enhance/plugin-patterns.js +0 -326
  1174. package/plugins/ship/lib/enhance/projectmemory-analyzer.js +0 -551
  1175. package/plugins/ship/lib/enhance/projectmemory-patterns.js +0 -617
  1176. package/plugins/ship/lib/enhance/prompt-analyzer.js +0 -457
  1177. package/plugins/ship/lib/enhance/prompt-patterns.js +0 -1484
  1178. package/plugins/ship/lib/enhance/reporter.js +0 -1348
  1179. package/plugins/ship/lib/enhance/security-patterns.js +0 -284
  1180. package/plugins/ship/lib/enhance/skill-analyzer.js +0 -182
  1181. package/plugins/ship/lib/enhance/skill-patterns.js +0 -147
  1182. package/plugins/ship/lib/enhance/suppression.js +0 -352
  1183. package/plugins/ship/lib/enhance/tool-patterns.js +0 -373
  1184. package/plugins/ship/lib/index.js +0 -270
  1185. package/plugins/ship/lib/patterns/cli-enhancers.js +0 -611
  1186. package/plugins/ship/lib/patterns/pipeline.js +0 -948
  1187. package/plugins/ship/lib/patterns/review-patterns.js +0 -558
  1188. package/plugins/ship/lib/patterns/slop-analyzers.js +0 -2305
  1189. package/plugins/ship/lib/patterns/slop-patterns.js +0 -1187
  1190. package/plugins/ship/lib/perf/analyzer/index.js +0 -22
  1191. package/plugins/ship/lib/perf/argument-parser.js +0 -105
  1192. package/plugins/ship/lib/perf/baseline-comparator.js +0 -50
  1193. package/plugins/ship/lib/perf/baseline-store.js +0 -127
  1194. package/plugins/ship/lib/perf/benchmark-runner.js +0 -404
  1195. package/plugins/ship/lib/perf/breaking-point-finder.js +0 -52
  1196. package/plugins/ship/lib/perf/breaking-point-runner.js +0 -60
  1197. package/plugins/ship/lib/perf/checkpoint.js +0 -123
  1198. package/plugins/ship/lib/perf/code-paths.js +0 -86
  1199. package/plugins/ship/lib/perf/consolidation.js +0 -37
  1200. package/plugins/ship/lib/perf/constraint-runner.js +0 -71
  1201. package/plugins/ship/lib/perf/experiment-runner.js +0 -32
  1202. package/plugins/ship/lib/perf/index.js +0 -41
  1203. package/plugins/ship/lib/perf/investigation-state.js +0 -874
  1204. package/plugins/ship/lib/perf/optimization-runner.js +0 -79
  1205. package/plugins/ship/lib/perf/profilers/go.js +0 -22
  1206. package/plugins/ship/lib/perf/profilers/index.js +0 -46
  1207. package/plugins/ship/lib/perf/profilers/java.js +0 -23
  1208. package/plugins/ship/lib/perf/profilers/node.js +0 -27
  1209. package/plugins/ship/lib/perf/profilers/python.js +0 -23
  1210. package/plugins/ship/lib/perf/profilers/rust.js +0 -23
  1211. package/plugins/ship/lib/perf/profiling-runner.js +0 -75
  1212. package/plugins/ship/lib/perf/schemas.js +0 -140
  1213. package/plugins/ship/lib/platform/detect-platform.js +0 -413
  1214. package/plugins/ship/lib/platform/detection-configs.js +0 -93
  1215. package/plugins/ship/lib/platform/state-dir.js +0 -132
  1216. package/plugins/ship/lib/platform/verify-tools.js +0 -182
  1217. package/plugins/ship/lib/repo-map/cache.js +0 -152
  1218. package/plugins/ship/lib/repo-map/concurrency.js +0 -29
  1219. package/plugins/ship/lib/repo-map/index.js +0 -222
  1220. package/plugins/ship/lib/repo-map/installer.js +0 -212
  1221. package/plugins/ship/lib/repo-map/queries/go.js +0 -27
  1222. package/plugins/ship/lib/repo-map/queries/index.js +0 -100
  1223. package/plugins/ship/lib/repo-map/queries/java.js +0 -38
  1224. package/plugins/ship/lib/repo-map/queries/javascript.js +0 -55
  1225. package/plugins/ship/lib/repo-map/queries/python.js +0 -24
  1226. package/plugins/ship/lib/repo-map/queries/rust.js +0 -73
  1227. package/plugins/ship/lib/repo-map/queries/typescript.js +0 -38
  1228. package/plugins/ship/lib/repo-map/runner.js +0 -1364
  1229. package/plugins/ship/lib/repo-map/updater.js +0 -562
  1230. package/plugins/ship/lib/repo-map/usage-analyzer.js +0 -407
  1231. package/plugins/ship/lib/schemas/plugin-manifest.schema.json +0 -57
  1232. package/plugins/ship/lib/schemas/validator.js +0 -247
  1233. package/plugins/ship/lib/sources/custom-handler.js +0 -199
  1234. package/plugins/ship/lib/sources/policy-questions.js +0 -246
  1235. package/plugins/ship/lib/sources/source-cache.js +0 -165
  1236. package/plugins/ship/lib/state/workflow-state.js +0 -576
  1237. package/plugins/ship/lib/types/agent-frontmatter.d.ts +0 -134
  1238. package/plugins/ship/lib/types/command-frontmatter.d.ts +0 -107
  1239. package/plugins/ship/lib/types/hook-frontmatter.d.ts +0 -115
  1240. package/plugins/ship/lib/types/index.d.ts +0 -84
  1241. package/plugins/ship/lib/types/plugin-manifest.d.ts +0 -102
  1242. package/plugins/ship/lib/types/skill-frontmatter.d.ts +0 -89
  1243. package/plugins/ship/lib/utils/atomic-write.js +0 -94
  1244. package/plugins/ship/lib/utils/cache-manager.js +0 -159
  1245. package/plugins/ship/lib/utils/command-parser.js +0 -0
  1246. package/plugins/ship/lib/utils/context-optimizer.js +0 -300
  1247. package/plugins/ship/lib/utils/deprecation.js +0 -37
  1248. package/plugins/ship/lib/utils/shell-escape.js +0 -88
  1249. package/plugins/ship/lib/utils/state-helpers.js +0 -61
  1250. package/plugins/sync-docs/.claude-plugin/plugin.json +0 -20
  1251. package/plugins/sync-docs/agents/sync-docs-agent.md +0 -154
  1252. package/plugins/sync-docs/commands/sync-docs.md +0 -186
  1253. package/plugins/sync-docs/lib/adapter-transforms.js +0 -298
  1254. package/plugins/sync-docs/lib/collectors/codebase.js +0 -392
  1255. package/plugins/sync-docs/lib/collectors/docs-patterns.js +0 -713
  1256. package/plugins/sync-docs/lib/collectors/documentation.js +0 -219
  1257. package/plugins/sync-docs/lib/collectors/github.js +0 -330
  1258. package/plugins/sync-docs/lib/collectors/index.js +0 -126
  1259. package/plugins/sync-docs/lib/config/index.js +0 -14
  1260. package/plugins/sync-docs/lib/cross-platform/index.js +0 -539
  1261. package/plugins/sync-docs/lib/discovery/index.js +0 -352
  1262. package/plugins/sync-docs/lib/drift-detect/collectors.js +0 -37
  1263. package/plugins/sync-docs/lib/enhance/agent-analyzer.js +0 -421
  1264. package/plugins/sync-docs/lib/enhance/agent-patterns.js +0 -571
  1265. package/plugins/sync-docs/lib/enhance/auto-suppression.js +0 -622
  1266. package/plugins/sync-docs/lib/enhance/benchmark.js +0 -417
  1267. package/plugins/sync-docs/lib/enhance/cross-file-analyzer.js +0 -930
  1268. package/plugins/sync-docs/lib/enhance/cross-file-patterns.js +0 -370
  1269. package/plugins/sync-docs/lib/enhance/docs-analyzer.js +0 -325
  1270. package/plugins/sync-docs/lib/enhance/docs-patterns.js +0 -671
  1271. package/plugins/sync-docs/lib/enhance/fixer.js +0 -721
  1272. package/plugins/sync-docs/lib/enhance/hook-analyzer.js +0 -135
  1273. package/plugins/sync-docs/lib/enhance/hook-patterns.js +0 -40
  1274. package/plugins/sync-docs/lib/enhance/index.js +0 -127
  1275. package/plugins/sync-docs/lib/enhance/plugin-analyzer.js +0 -402
  1276. package/plugins/sync-docs/lib/enhance/plugin-patterns.js +0 -326
  1277. package/plugins/sync-docs/lib/enhance/projectmemory-analyzer.js +0 -551
  1278. package/plugins/sync-docs/lib/enhance/projectmemory-patterns.js +0 -617
  1279. package/plugins/sync-docs/lib/enhance/prompt-analyzer.js +0 -457
  1280. package/plugins/sync-docs/lib/enhance/prompt-patterns.js +0 -1484
  1281. package/plugins/sync-docs/lib/enhance/reporter.js +0 -1348
  1282. package/plugins/sync-docs/lib/enhance/security-patterns.js +0 -284
  1283. package/plugins/sync-docs/lib/enhance/skill-analyzer.js +0 -182
  1284. package/plugins/sync-docs/lib/enhance/skill-patterns.js +0 -147
  1285. package/plugins/sync-docs/lib/enhance/suppression.js +0 -352
  1286. package/plugins/sync-docs/lib/enhance/tool-patterns.js +0 -373
  1287. package/plugins/sync-docs/lib/index.js +0 -270
  1288. package/plugins/sync-docs/lib/patterns/cli-enhancers.js +0 -611
  1289. package/plugins/sync-docs/lib/patterns/pipeline.js +0 -948
  1290. package/plugins/sync-docs/lib/patterns/review-patterns.js +0 -558
  1291. package/plugins/sync-docs/lib/patterns/slop-analyzers.js +0 -2305
  1292. package/plugins/sync-docs/lib/patterns/slop-patterns.js +0 -1187
  1293. package/plugins/sync-docs/lib/perf/analyzer/index.js +0 -22
  1294. package/plugins/sync-docs/lib/perf/argument-parser.js +0 -105
  1295. package/plugins/sync-docs/lib/perf/baseline-comparator.js +0 -50
  1296. package/plugins/sync-docs/lib/perf/baseline-store.js +0 -127
  1297. package/plugins/sync-docs/lib/perf/benchmark-runner.js +0 -404
  1298. package/plugins/sync-docs/lib/perf/breaking-point-finder.js +0 -52
  1299. package/plugins/sync-docs/lib/perf/breaking-point-runner.js +0 -60
  1300. package/plugins/sync-docs/lib/perf/checkpoint.js +0 -123
  1301. package/plugins/sync-docs/lib/perf/code-paths.js +0 -86
  1302. package/plugins/sync-docs/lib/perf/consolidation.js +0 -37
  1303. package/plugins/sync-docs/lib/perf/constraint-runner.js +0 -71
  1304. package/plugins/sync-docs/lib/perf/experiment-runner.js +0 -32
  1305. package/plugins/sync-docs/lib/perf/index.js +0 -41
  1306. package/plugins/sync-docs/lib/perf/investigation-state.js +0 -874
  1307. package/plugins/sync-docs/lib/perf/optimization-runner.js +0 -79
  1308. package/plugins/sync-docs/lib/perf/profilers/go.js +0 -22
  1309. package/plugins/sync-docs/lib/perf/profilers/index.js +0 -46
  1310. package/plugins/sync-docs/lib/perf/profilers/java.js +0 -23
  1311. package/plugins/sync-docs/lib/perf/profilers/node.js +0 -27
  1312. package/plugins/sync-docs/lib/perf/profilers/python.js +0 -23
  1313. package/plugins/sync-docs/lib/perf/profilers/rust.js +0 -23
  1314. package/plugins/sync-docs/lib/perf/profiling-runner.js +0 -75
  1315. package/plugins/sync-docs/lib/perf/schemas.js +0 -140
  1316. package/plugins/sync-docs/lib/platform/detect-platform.js +0 -413
  1317. package/plugins/sync-docs/lib/platform/detection-configs.js +0 -93
  1318. package/plugins/sync-docs/lib/platform/state-dir.js +0 -132
  1319. package/plugins/sync-docs/lib/platform/verify-tools.js +0 -182
  1320. package/plugins/sync-docs/lib/repo-map/cache.js +0 -152
  1321. package/plugins/sync-docs/lib/repo-map/concurrency.js +0 -29
  1322. package/plugins/sync-docs/lib/repo-map/index.js +0 -222
  1323. package/plugins/sync-docs/lib/repo-map/installer.js +0 -212
  1324. package/plugins/sync-docs/lib/repo-map/queries/go.js +0 -27
  1325. package/plugins/sync-docs/lib/repo-map/queries/index.js +0 -100
  1326. package/plugins/sync-docs/lib/repo-map/queries/java.js +0 -38
  1327. package/plugins/sync-docs/lib/repo-map/queries/javascript.js +0 -55
  1328. package/plugins/sync-docs/lib/repo-map/queries/python.js +0 -24
  1329. package/plugins/sync-docs/lib/repo-map/queries/rust.js +0 -73
  1330. package/plugins/sync-docs/lib/repo-map/queries/typescript.js +0 -38
  1331. package/plugins/sync-docs/lib/repo-map/runner.js +0 -1364
  1332. package/plugins/sync-docs/lib/repo-map/updater.js +0 -562
  1333. package/plugins/sync-docs/lib/repo-map/usage-analyzer.js +0 -407
  1334. package/plugins/sync-docs/lib/schemas/plugin-manifest.schema.json +0 -57
  1335. package/plugins/sync-docs/lib/schemas/validator.js +0 -247
  1336. package/plugins/sync-docs/lib/sources/custom-handler.js +0 -199
  1337. package/plugins/sync-docs/lib/sources/policy-questions.js +0 -246
  1338. package/plugins/sync-docs/lib/sources/source-cache.js +0 -165
  1339. package/plugins/sync-docs/lib/state/workflow-state.js +0 -576
  1340. package/plugins/sync-docs/lib/types/agent-frontmatter.d.ts +0 -134
  1341. package/plugins/sync-docs/lib/types/command-frontmatter.d.ts +0 -107
  1342. package/plugins/sync-docs/lib/types/hook-frontmatter.d.ts +0 -115
  1343. package/plugins/sync-docs/lib/types/index.d.ts +0 -84
  1344. package/plugins/sync-docs/lib/types/plugin-manifest.d.ts +0 -102
  1345. package/plugins/sync-docs/lib/types/skill-frontmatter.d.ts +0 -89
  1346. package/plugins/sync-docs/lib/utils/atomic-write.js +0 -94
  1347. package/plugins/sync-docs/lib/utils/cache-manager.js +0 -159
  1348. package/plugins/sync-docs/lib/utils/command-parser.js +0 -0
  1349. package/plugins/sync-docs/lib/utils/context-optimizer.js +0 -300
  1350. package/plugins/sync-docs/lib/utils/deprecation.js +0 -37
  1351. package/plugins/sync-docs/lib/utils/shell-escape.js +0 -88
  1352. package/plugins/sync-docs/lib/utils/state-helpers.js +0 -61
  1353. package/plugins/sync-docs/skills/sync-docs/SKILL.md +0 -351
@@ -1,1484 +0,0 @@
1
- /**
2
- * Prompt Patterns
3
- * Detection patterns for general prompt engineering best practices
4
- *
5
- * @author Avi Fenesh
6
- * @license MIT
7
- */
8
-
9
- /**
10
- * Estimate tokens from text (1 token ~ 4 characters)
11
- * @param {string} text - Text to estimate
12
- * @returns {number} Estimated token count
13
- */
14
- function estimateTokens(text) {
15
- if (!text || typeof text !== 'string') return 0;
16
- return Math.ceil(text.length / 4);
17
- }
18
-
19
- // Pre-compiled regex patterns for performance (avoid compiling in hot paths)
20
- const FENCE_START_REGEX = /^(\s*)```(\w*)\s*$/;
21
- const FENCE_END_REGEX = /^(\s*)```\s*$/;
22
- // Match both good and bad example tags - skip both for code validation
23
- // (good examples may have simplified/pseudo-code, bad examples intentionally show errors)
24
- const EXAMPLE_TAG_REGEX = /<(?:good|bad)[_-]?example>([\s\S]*?)<\/(?:good|bad)[_-]?example>/gi;
25
-
26
- // Language detection patterns (pre-compiled for code_language_mismatch)
27
- const LOOKS_LIKE_JSON_START = /^\s*[\[{]/;
28
- const LOOKS_LIKE_JSON_CONTENT = /[:,]/;
29
- const NOT_JSON_KEYWORDS = /(function|const|let|var|if|for|while|class)\b/;
30
- // JS patterns require syntax context (not just keywords that might appear in JSON strings)
31
- const LOOKS_LIKE_JS = /\b(function\s*\(|const\s+\w+\s*=|let\s+\w+\s*=|var\s+\w+\s*=|=>\s*[{(]|async\s+function|await\s+\w|class\s+\w+\s*{|import\s+\{|export\s+(const|function|class|default)|require\s*\()/;
32
- const LOOKS_LIKE_PYTHON = /\b(def\s+\w+|import\s+\w+|from\s+\w+\s+import|class\s+\w+:|if\s[^:\n]*:|\s{4}|print\()\b/;
33
-
34
- // Memoization caches for performance (keyed by content hash)
35
- let _lastContent = null;
36
- let _exampleRanges = null;
37
- let _linePositions = null;
38
-
39
- /**
40
- * Extract fenced code blocks from markdown content
41
- * @param {string} content - Markdown content
42
- * @returns {Array<{language: string, code: string, startLine: number, endLine: number}>} Array of code blocks
43
- */
44
- function extractCodeBlocks(content) {
45
- if (!content || typeof content !== 'string') return [];
46
-
47
- const blocks = [];
48
- const lines = content.split('\n');
49
- let inCodeBlock = false;
50
- let currentBlock = null;
51
- let codeLines = [];
52
-
53
- for (let i = 0; i < lines.length; i++) {
54
- const line = lines[i];
55
- const lineNum = i + 1; // 1-indexed
56
-
57
- // Check for code fence start (``` with optional language)
58
- const fenceStartMatch = line.match(FENCE_START_REGEX);
59
- const fenceEndMatch = line.match(FENCE_END_REGEX);
60
-
61
- if (!inCodeBlock && fenceStartMatch) {
62
- // Start of code block
63
- inCodeBlock = true;
64
- currentBlock = {
65
- language: fenceStartMatch[2] || '', // Empty string if no language
66
- startLine: lineNum,
67
- indent: fenceStartMatch[1] || ''
68
- };
69
- codeLines = [];
70
- } else if (inCodeBlock && fenceEndMatch) {
71
- // End of code block
72
- inCodeBlock = false;
73
- if (currentBlock) {
74
- blocks.push({
75
- language: currentBlock.language,
76
- code: codeLines.join('\n'),
77
- startLine: currentBlock.startLine,
78
- endLine: lineNum
79
- });
80
- currentBlock = null;
81
- }
82
- codeLines = [];
83
- } else if (inCodeBlock) {
84
- // Inside code block - collect the code
85
- codeLines.push(line);
86
- }
87
- }
88
-
89
- // Handle unclosed code block at end of file
90
- if (inCodeBlock && currentBlock) {
91
- blocks.push({
92
- language: currentBlock.language,
93
- code: codeLines.join('\n'),
94
- startLine: currentBlock.startLine,
95
- endLine: lines.length
96
- });
97
- }
98
-
99
- return blocks;
100
- }
101
-
102
- /**
103
- * Build example ranges cache for a content string (both good and bad examples)
104
- * @param {string} content - Content to analyze
105
- * @returns {Array<{start: number, end: number}>} Array of example tag ranges
106
- */
107
- function buildExampleRanges(content) {
108
- const ranges = [];
109
- const regex = new RegExp(EXAMPLE_TAG_REGEX.source, EXAMPLE_TAG_REGEX.flags);
110
- let match;
111
-
112
- while ((match = regex.exec(content)) !== null) {
113
- ranges.push({
114
- start: match.index,
115
- end: match.index + match[0].length
116
- });
117
- }
118
- return ranges;
119
- }
120
-
121
- /**
122
- * Build line position cache for a content string
123
- * @param {string} content - Content to analyze
124
- * @returns {Array<number>} Array of character positions for each line start
125
- */
126
- function buildLinePositions(content) {
127
- const positions = [0]; // Line 1 starts at position 0
128
- let pos = 0;
129
- for (let i = 0; i < content.length; i++) {
130
- if (content[i] === '\n') {
131
- positions.push(i + 1);
132
- }
133
- }
134
- return positions;
135
- }
136
-
137
- /**
138
- * Invalidate cache if content changed
139
- * @param {string} content - Current content
140
- */
141
- function ensureCache(content) {
142
- if (content !== _lastContent) {
143
- _lastContent = content;
144
- _exampleRanges = buildExampleRanges(content);
145
- _linePositions = buildLinePositions(content);
146
- }
147
- }
148
-
149
- /**
150
- * Check if a position is inside an example tag (good or bad) (memoized)
151
- * @param {string} content - Full content
152
- * @param {number} position - Character position to check
153
- * @returns {boolean} True if inside example tags
154
- */
155
- function isInsideExampleTag(content, position) {
156
- if (!content || position < 0) return false;
157
-
158
- ensureCache(content);
159
-
160
- for (const range of _exampleRanges) {
161
- if (position >= range.start && position <= range.end) {
162
- return true;
163
- }
164
- }
165
-
166
- return false;
167
- }
168
-
169
- /**
170
- * Get character position for a line number (memoized)
171
- * @param {string} content - Content
172
- * @param {number} lineNumber - 1-indexed line number
173
- * @returns {number} Character position at start of line
174
- */
175
- function getPositionForLine(content, lineNumber) {
176
- if (!content || lineNumber < 1) return 0;
177
-
178
- ensureCache(content);
179
-
180
- const idx = lineNumber - 1;
181
- if (idx < _linePositions.length) {
182
- return _linePositions[idx];
183
- }
184
- return _linePositions[_linePositions.length - 1] || 0;
185
- }
186
-
187
- /**
188
- * Prompt patterns with certainty levels
189
- * Focuses on prompt quality (not agent-specific frontmatter/config)
190
- *
191
- * Categories:
192
- * - clarity: Clear, specific instructions
193
- * - structure: XML tags, sections, organization
194
- * - examples: Few-shot examples
195
- * - context: Context and motivation
196
- * - output: Output format specification
197
- * - anti-pattern: Common mistakes
198
- */
199
- const promptPatterns = {
200
- // ============================================
201
- // CLARITY PATTERNS (HIGH certainty)
202
- // ============================================
203
-
204
- /**
205
- * Vague instructions without specifics
206
- * HIGH certainty - fuzzy language reduces effectiveness
207
- */
208
- vague_instructions: {
209
- id: 'vague_instructions',
210
- category: 'clarity',
211
- certainty: 'HIGH',
212
- autoFix: false,
213
- description: 'Instructions use vague language like "usually", "sometimes", "try to"',
214
- check: (content) => {
215
- if (!content || typeof content !== 'string') return null;
216
-
217
- // Strip lines documenting vague patterns (not actual vague instructions)
218
- const lines = content.split('\n').filter(line => {
219
- const trimmed = line.trim().toLowerCase();
220
- // Skip lines listing vague terms as documentation
221
- if (/vague\s*(instructions?|terms?|language|patterns?)\s*[:"]/.test(trimmed)) return false;
222
- // Skip lines with quoted lists of vague words
223
- if (trimmed.includes('usually') && trimmed.includes('sometimes') && /["']/.test(trimmed)) return false;
224
- return true;
225
- });
226
- const filteredContent = lines.join('\n');
227
-
228
- const vaguePatterns = [
229
- { pattern: /\busually\b/gi, word: 'usually' },
230
- { pattern: /\bsometimes\b/gi, word: 'sometimes' },
231
- { pattern: /\boften\b/gi, word: 'often' },
232
- { pattern: /\brarely\b/gi, word: 'rarely' },
233
- { pattern: /\bmaybe\b/gi, word: 'maybe' },
234
- { pattern: /\bmight\b/gi, word: 'might' },
235
- { pattern: /\bshould probably\b/gi, word: 'should probably' },
236
- { pattern: /\btry to\b/gi, word: 'try to' },
237
- { pattern: /\bas much as possible\b/gi, word: 'as much as possible' },
238
- { pattern: /\bif possible\b/gi, word: 'if possible' },
239
- { pattern: /\bwhen appropriate\b/gi, word: 'when appropriate' },
240
- { pattern: /\bas needed\b/gi, word: 'as needed' }
241
- ];
242
-
243
- const found = [];
244
- for (const { pattern, word } of vaguePatterns) {
245
- const matches = filteredContent.match(pattern);
246
- if (matches) {
247
- found.push({ word, count: matches.length });
248
- }
249
- }
250
-
251
- const totalCount = found.reduce((sum, f) => sum + f.count, 0);
252
-
253
- if (totalCount >= 4) {
254
- const examples = found.slice(0, 3).map(f => `"${f.word}" (${f.count}x)`);
255
- return {
256
- issue: `Found ${totalCount} vague terms: ${examples.join(', ')}`,
257
- fix: 'Replace vague language with specific, deterministic instructions'
258
- };
259
- }
260
- return null;
261
- }
262
- },
263
-
264
- /**
265
- * Negative-only constraints without alternatives
266
- * HIGH certainty - "don't X" less effective than "do Y instead"
267
- */
268
- negative_only_constraints: {
269
- id: 'negative_only_constraints',
270
- category: 'clarity',
271
- certainty: 'HIGH',
272
- autoFix: false,
273
- description: 'Uses "don\'t", "never", "do not" without stating what TO do',
274
- check: (content) => {
275
- if (!content || typeof content !== 'string') return null;
276
-
277
- // Strip lines documenting bad patterns (not actual constraints)
278
- const lines = content.split('\n').filter(line => {
279
- const trimmed = line.trim().toLowerCase();
280
- // Skip lines that document anti-patterns
281
- if (/^-?\s*bad:|^\*\*bad\*\*:|^bad:/.test(trimmed)) return false;
282
- // Skip lines in "Bad/Good" comparison format
283
- if (/^-\s*"don't|^-\s*"never/.test(trimmed)) return false;
284
- return true;
285
- });
286
- const filteredContent = lines.join('\n');
287
-
288
- // Find negative constraints
289
- const negativePatterns = [
290
- /\bdon['']t\s+\w+/gi,
291
- /\bnever\s+\w+/gi,
292
- /\bdo not\s+\w+/gi,
293
- /\bavoid\s+\w+ing\b/gi,
294
- /\brefrain from\b/gi
295
- ];
296
-
297
- const negatives = [];
298
- for (const pattern of negativePatterns) {
299
- const matches = filteredContent.match(pattern);
300
- if (matches) {
301
- negatives.push(...matches.slice(0, 2));
302
- }
303
- }
304
-
305
- // Check if there are positive alternatives nearby
306
- const positiveIndicators = /\binstead\b|\brather\b|\buse\b.*\binstead\b|\bonly\s+\w+/gi;
307
- const hasAlternatives = positiveIndicators.test(filteredContent);
308
-
309
- if (negatives.length >= 5 && !hasAlternatives) {
310
- return {
311
- issue: `${negatives.length} negative constraints without positive alternatives`,
312
- fix: 'For each "don\'t X", also state what TO do instead',
313
- details: negatives.slice(0, 5)
314
- };
315
- }
316
- return null;
317
- }
318
- },
319
-
320
- /**
321
- * Missing explicit output format
322
- * HIGH certainty - prompts should specify expected output
323
- */
324
- missing_output_format: {
325
- id: 'missing_output_format',
326
- category: 'output',
327
- certainty: 'HIGH',
328
- autoFix: true,
329
- description: 'No clear output format specification',
330
- check: (content, filePath) => {
331
- if (!content || typeof content !== 'string') return null;
332
-
333
- // Skip workflow orchestrators that spawn agents/skills rather than produce output directly
334
- const lc = content.toLowerCase();
335
- const isOrchestrator = /##\s*Phase\s+\d+/i.test(content) || content.includes('Task({') ||
336
- (lc.includes('spawn') && lc.includes('agent')) || content.includes('subagent_type') ||
337
- content.includes('await Task(') || (lc.includes('invoke') && lc.includes('skill')) ||
338
- (/\bSkill\b/.test(content) && lc.includes('tool'));
339
- if (isOrchestrator) return null;
340
-
341
- // Skip reference docs and hooks (not prompts that produce conversational output)
342
- const isReferenceOrHook = /[/\\](?:references?|hooks?)[/\\]/i.test(filePath || '') ||
343
- /^##?\s*(?:reference|knowledge|background)/im.test(content);
344
- if (isReferenceOrHook) return null;
345
-
346
- // Check for output format indicators
347
- const outputIndicators = [
348
- /##\s*output\s*(?:format|templates?|expectations?)/i,
349
- /##\s*response\s*format/i,
350
- /##\s*(?:issue|report)\s*format/i,
351
- /##\s*format/i,
352
- /##\s*example\s*(?:input\/)?output/i,
353
- /\brespond\s+(?:with|in)\s+(?:JSON|XML|markdown|YAML)/i,
354
- /\boutput\s+a\s+(?:comprehensive|detailed|structured)/i,
355
- /\boutput\s*:\s*```/i,
356
- /<output_format>/i,
357
- /<response_format>/i,
358
- /your\s+(?:response|output)\s+should\s+(?:be|follow)/i,
359
- /\breturn(?:s|ing)?\s+(?:JSON|structured|formatted)/i
360
- ];
361
-
362
- for (const pattern of outputIndicators) {
363
- if (pattern.test(content)) {
364
- return null;
365
- }
366
- }
367
-
368
- // Only flag if prompt is substantial enough to warrant format spec
369
- const tokens = estimateTokens(content);
370
- if (tokens > 200) {
371
- return {
372
- issue: 'No output format specification found',
373
- fix: 'Add "## Output Format" section or <output_format> tags specifying expected response structure'
374
- };
375
- }
376
- return null;
377
- }
378
- },
379
-
380
- /**
381
- * Aggressive emphasis (CAPS, excessive emphasis)
382
- * HIGH certainty - overuse triggers over-indexing
383
- */
384
- aggressive_emphasis: {
385
- id: 'aggressive_emphasis',
386
- category: 'clarity',
387
- certainty: 'HIGH',
388
- autoFix: true,
389
- description: 'Excessive aggressive emphasis that may cause over-indexing',
390
- check: (content) => {
391
- if (!content || typeof content !== 'string') return null;
392
-
393
- // Detect specific aggressive patterns (CAPS only, not lowercase)
394
- const aggressivePatterns = [
395
- // Intensifiers that add no value (CAPS only)
396
- { pattern: /\bABSOLUTELY\b/g, word: 'ABSOLUTELY' },
397
- { pattern: /\bTOTALLY\b/g, word: 'TOTALLY' },
398
- { pattern: /\bCOMPLETELY\b/g, word: 'COMPLETELY' },
399
- { pattern: /\bENTIRELY\b/g, word: 'ENTIRELY' },
400
- { pattern: /\bDEFINITELY\b/g, word: 'DEFINITELY' },
401
- { pattern: /\bEXTREMELY\b/g, word: 'EXTREMELY' },
402
- // Aggressive phrases (CAPS only)
403
- { pattern: /\bEXTREMELY\s+IMPORTANT\b/g, word: 'EXTREMELY IMPORTANT' },
404
- { pattern: /\bSUPER\s+IMPORTANT\b/g, word: 'SUPER IMPORTANT' },
405
- { pattern: /\bVERY\s+VERY\b/g, word: 'VERY VERY' },
406
- // Excessive punctuation
407
- { pattern: /!{3,}/g, word: '!!!' },
408
- { pattern: /\?{3,}/g, word: '???' }
409
- ];
410
-
411
- const found = [];
412
- for (const { pattern, word } of aggressivePatterns) {
413
- const matches = content.match(pattern);
414
- if (matches) {
415
- found.push({ word, count: matches.length });
416
- }
417
- }
418
-
419
- const totalCount = found.reduce((sum, f) => sum + f.count, 0);
420
-
421
- // Only flag if multiple instances (threshold: 3+)
422
- if (totalCount >= 3) {
423
- const examples = found.slice(0, 3).map(f => `"${f.word}" (${f.count}x)`);
424
- return {
425
- issue: `${totalCount} instances of aggressive emphasis: ${examples.join(', ')}`,
426
- fix: 'Use normal language - models respond well to clear instructions without shouting',
427
- details: found.map(f => f.word)
428
- };
429
- }
430
- return null;
431
- }
432
- },
433
-
434
- // ============================================
435
- // STRUCTURE PATTERNS (HIGH/MEDIUM certainty)
436
- // ============================================
437
-
438
- /**
439
- * Missing XML structure for complex prompts
440
- * HIGH certainty - XML helps structure for Claude/GPT
441
- */
442
- missing_xml_structure: {
443
- id: 'missing_xml_structure',
444
- category: 'structure',
445
- certainty: 'LOW', // Very advisory - XML is optional enhancement
446
- autoFix: true,
447
- description: 'Complex prompt without XML tags for structure',
448
- check: (content) => {
449
- if (!content || typeof content !== 'string') return null;
450
-
451
- const tokens = estimateTokens(content);
452
- const sectionCount = (content.match(/^#{1,6}\s+/gm) || []).length;
453
- const hasCodeBlocks = /```/.test(content);
454
-
455
- // Complex prompt indicators
456
- const isComplex = tokens > 800 || (sectionCount >= 6 && hasCodeBlocks);
457
-
458
- // Check for XML tags
459
- const hasXML = /<[a-z_][a-z0-9_-]*>/i.test(content);
460
-
461
- if (isComplex && !hasXML) {
462
- return {
463
- issue: 'Complex prompt without XML structure tags',
464
- fix: 'Use XML tags like <role>, <constraints>, <examples>, <output_format> for key sections'
465
- };
466
- }
467
- return null;
468
- }
469
- },
470
-
471
- /**
472
- * Inconsistent section formatting
473
- * MEDIUM certainty - consistency aids parsing
474
- */
475
- inconsistent_sections: {
476
- id: 'inconsistent_sections',
477
- category: 'structure',
478
- certainty: 'LOW', // Style preference, not a real issue
479
- autoFix: false,
480
- description: 'Mixed heading styles or inconsistent section patterns',
481
- check: (content) => {
482
- if (!content || typeof content !== 'string') return null;
483
-
484
- // Check for mixed heading styles
485
- const h2Count = (content.match(/^##\s+/gm) || []).length;
486
- const boldHeadingCount = (content.match(/^\*\*[^*]+\*\*\s*$/gm) || []).length;
487
-
488
- if (h2Count >= 2 && boldHeadingCount >= 2) {
489
- return {
490
- issue: 'Mixed heading styles (## and **bold**)',
491
- fix: 'Use consistent heading format throughout the prompt'
492
- };
493
- }
494
-
495
- // Note: Heading hierarchy check moved to heading_hierarchy_gaps pattern
496
-
497
- return null;
498
- }
499
- },
500
-
501
- /**
502
- * Critical info buried in middle
503
- * MEDIUM certainty - lost-in-the-middle effect
504
- */
505
- critical_info_buried: {
506
- id: 'critical_info_buried',
507
- category: 'structure',
508
- certainty: 'MEDIUM',
509
- autoFix: false,
510
- description: 'Important instructions buried in middle of prompt',
511
- check: (content, filePath) => {
512
- if (!content || typeof content !== 'string') return null;
513
-
514
- const lines = content.split('\n').filter(l => l.trim());
515
- if (lines.length < 20) return null;
516
-
517
- // Skip skill files with workflow phases (natural structure)
518
- if (/SKILL\.md$/i.test(filePath || '') &&
519
- /##?\s*(?:workflow|phase\s*\d)/i.test(content)) {
520
- return null;
521
- }
522
-
523
- // Check if file has a dedicated Critical Rules section at the start
524
- const first30Percent = lines.slice(0, Math.floor(lines.length * 0.3)).join('\n');
525
- if (/##?\s*(?:critical|important)\s*rules?\b/i.test(first30Percent)) {
526
- return null; // Has critical rules section at start, structure is intentional
527
- }
528
-
529
- const middleStart = Math.floor(lines.length * 0.3);
530
- const middleEnd = Math.floor(lines.length * 0.7);
531
- const middleSection = lines.slice(middleStart, middleEnd).join('\n');
532
-
533
- // Check for critical keywords in middle (outside code blocks)
534
- // Code blocks are excluded since they contain example code, not actual instructions
535
- const middleWithoutCode = middleSection.replace(/```[\s\S]*?```/g, '');
536
-
537
- // Design decision: Removed 'must' and 'required' from detection patterns
538
- // These words are too common in imperative documentation and cause false positives
539
- // Keeping 'important', 'critical', 'essential', 'mandatory' as stronger indicators
540
- const criticalPatterns = [
541
- /\b(?:important|critical|essential|mandatory)\b/gi,
542
- /\b(?:always|never)\s+\w+/gi,
543
- /\b(?:warning|caution)\s*:/gi
544
- ];
545
-
546
- let criticalInMiddle = 0;
547
- for (const pattern of criticalPatterns) {
548
- const matches = middleWithoutCode.match(pattern);
549
- if (matches) criticalInMiddle += matches.length;
550
- }
551
-
552
- // Design decision: Threshold of 8 chosen based on analysis
553
- // Original threshold of 5 flagged too many workflow files with legitimate
554
- // middle content (phase descriptions, step details). 8 catches files with
555
- // genuinely dense critical instructions in the middle.
556
- if (criticalInMiddle >= 8) {
557
- return {
558
- issue: `${criticalInMiddle} critical instructions in the middle 40% of prompt`,
559
- fix: 'Move critical instructions to the beginning or end (lost-in-the-middle effect)'
560
- };
561
- }
562
- return null;
563
- }
564
- },
565
-
566
- // ============================================
567
- // EXAMPLE PATTERNS (HIGH/MEDIUM certainty)
568
- // ============================================
569
-
570
- /**
571
- * No examples in complex prompt
572
- * HIGH certainty - few-shot improves accuracy
573
- */
574
- missing_examples: {
575
- id: 'missing_examples',
576
- category: 'examples',
577
- certainty: 'MEDIUM', // Context-dependent - not all prompts need examples
578
- autoFix: true,
579
- description: 'Complex prompt without examples (few-shot)',
580
- check: (content, filePath) => {
581
- if (!content || typeof content !== 'string') return null;
582
-
583
- const tokens = estimateTokens(content);
584
-
585
- // Skip if prompt is simple
586
- if (tokens < 300) return null;
587
-
588
- // Skip reference docs, research files, agents, skills, and non-prompt content
589
- const isNonPrompt = /[/\\](?:references?|docs?|agents?)[/\\]/i.test(filePath || '') ||
590
- /(?:RESEARCH|SKILL)\.md$/i.test(filePath || '') ||
591
- /^---\s*\nname:/m.test(content) || // Agent frontmatter
592
- /\*\*Parent document\*\*:/i.test(content) || // Sub-reference file
593
- /^##?\s*(?:reference|research|background|knowledge)/im.test(content);
594
- if (isNonPrompt) return null;
595
-
596
- // Skip workflow orchestrators and command files
597
- const lc2 = content.toLowerCase();
598
- const isOrchestrator = /##\s*Phase\s+\d+/i.test(content) || content.includes('Task({') ||
599
- (lc2.includes('spawn') && lc2.includes('agent')) || content.includes('subagent_type');
600
- if (isOrchestrator) return null;
601
-
602
- // Check for example indicators
603
- const exampleIndicators = [
604
- /##\s*example/i,
605
- /<example>/i,
606
- /<good[_-]?example>/i,
607
- /<bad[_-]?example>/i,
608
- /\bfor example\b/i,
609
- /\be\.g\.\b/i,
610
- /\bsample\s+(?:input|output|response)/i,
611
- /input:\s*\n.{1,500}\noutput:/is
612
- ];
613
-
614
- for (const pattern of exampleIndicators) {
615
- if (pattern.test(content)) {
616
- return null;
617
- }
618
- }
619
-
620
- // Check if it's asking for specific format
621
- const needsExamples = /\bformat\b|\bjson\b|\bxml\b|\bstructured\b/i.test(content);
622
-
623
- if (needsExamples) {
624
- return {
625
- issue: 'Complex prompt with format requirements but no examples',
626
- fix: 'Add 2-5 few-shot examples showing expected input/output format'
627
- };
628
- }
629
- return null;
630
- }
631
- },
632
-
633
- /**
634
- * Example count not optimal (2-5 is ideal)
635
- * MEDIUM certainty - too few or too many examples
636
- */
637
- suboptimal_example_count: {
638
- id: 'suboptimal_example_count',
639
- category: 'examples',
640
- certainty: 'LOW', // Advisory - example count is flexible
641
- autoFix: false,
642
- description: 'Example count outside optimal 2-5 range',
643
- check: (content) => {
644
- if (!content || typeof content !== 'string') return null;
645
-
646
- // Count examples
647
- const exampleSections = (content.match(/##\s*example/gi) || []).length;
648
- const goodExamples = (content.match(/<good[_-]?example>/gi) || []).length;
649
- const badExamples = (content.match(/<bad[_-]?example>/gi) || []).length;
650
- const exampleTags = (content.match(/<example>/gi) || []).length;
651
-
652
- const totalExamples = exampleSections + goodExamples + badExamples + exampleTags;
653
-
654
- if (totalExamples === 0) return null; // Handled by missing_examples
655
-
656
- if (totalExamples === 1) {
657
- return {
658
- issue: 'Only 1 example (optimal: 2-5)',
659
- fix: 'Add at least one more example - single examples may not demonstrate patterns effectively'
660
- };
661
- }
662
-
663
- if (totalExamples > 7) {
664
- return {
665
- issue: `${totalExamples} examples (optimal: 2-5)`,
666
- fix: 'Consider reducing examples to avoid token bloat - keep the most representative ones'
667
- };
668
- }
669
-
670
- return null;
671
- }
672
- },
673
-
674
- /**
675
- * Examples without clear good/bad distinction
676
- * MEDIUM certainty - showing both patterns helps
677
- */
678
- examples_without_contrast: {
679
- id: 'examples_without_contrast',
680
- category: 'examples',
681
- certainty: 'MEDIUM',
682
- autoFix: false,
683
- description: 'Examples lack good/bad contrast for pattern learning',
684
- check: (content) => {
685
- if (!content || typeof content !== 'string') return null;
686
-
687
- // Check if has examples
688
- const hasExamples = /<example>|##\s*example/i.test(content);
689
- if (!hasExamples) return null;
690
-
691
- // Check for contrast indicators
692
- const hasGood = /<good[_-]?example>|\bgood example\b|\bcorrect\b/i.test(content);
693
- const hasBad = /<bad[_-]?example>|\bbad example\b|\bincorrect\b|\bwrong\b/i.test(content);
694
-
695
- // Count total examples
696
- const exampleCount = (content.match(/<example>|##\s*example/gi) || []).length;
697
-
698
- if (exampleCount >= 3 && !hasGood && !hasBad) {
699
- return {
700
- issue: 'Multiple examples without good/bad distinction',
701
- fix: 'Label examples as good/bad or correct/incorrect to clarify expected patterns'
702
- };
703
- }
704
- return null;
705
- }
706
- },
707
-
708
- // ============================================
709
- // CONTEXT PATTERNS (MEDIUM certainty)
710
- // ============================================
711
-
712
- /**
713
- * Missing context/motivation for instructions
714
- * MEDIUM certainty - "why" improves compliance
715
- */
716
- missing_context_why: {
717
- id: 'missing_context_why',
718
- category: 'context',
719
- certainty: 'MEDIUM',
720
- autoFix: false,
721
- description: 'Instructions without explanation of why they matter',
722
- check: (content) => {
723
- if (!content || typeof content !== 'string') return null;
724
-
725
- const tokens = estimateTokens(content);
726
- if (tokens < 400) return null;
727
-
728
- // Count imperatives/rules
729
- const rulePatterns = [
730
- /\b(?:must|should|always|never)\s+\w+/gi,
731
- /\bdo not\b/gi,
732
- /\b(?:required|mandatory)\b/gi
733
- ];
734
-
735
- let ruleCount = 0;
736
- for (const pattern of rulePatterns) {
737
- const matches = content.match(pattern);
738
- if (matches) ruleCount += matches.length;
739
- }
740
-
741
- // Check for "why" explanations
742
- const whyPatterns = [
743
- /\bbecause\b/gi,
744
- /\bsince\b/gi,
745
- /\bthis (?:is|ensures?|prevents?|helps?)/gi,
746
- /\bto (?:ensure|prevent|avoid|maintain)/gi,
747
- /\bwhy:\s/gi,
748
- /\*why\*/i,
749
- // Inline explanations after dashes: "Rule - Explanation with verb"
750
- // Requires verb-like word (ending in s/es/ed/ing) to distinguish from bullet points
751
- /[-–]\s+[A-Z][a-z]+(?:s|es|ed|ing)\s+\w+/g,
752
- // Inline explanations in parens with prose (8+ chars, no code-like content)
753
- /\([^)(){}\[\]]{8,}\)/g,
754
- // Explicit WHY/rationale sections
755
- /##?\s*(?:why|rationale|reason)/gi,
756
- // "for X" explanations: "for efficiency", "for safety"
757
- /\bfor\s+(?:efficiency|safety|performance|security|clarity|consistency|reliability|maintainability)/gi
758
- ];
759
-
760
- let whyCount = 0;
761
- for (const pattern of whyPatterns) {
762
- const matches = content.match(pattern);
763
- if (matches) whyCount += matches.length;
764
- }
765
-
766
- // Ratio check: should have some explanation for rules
767
- if (ruleCount >= 8 && whyCount < ruleCount * 0.3) {
768
- return {
769
- issue: `${ruleCount} rules but few explanations (${whyCount} "why" phrases)`,
770
- fix: 'Add context explaining WHY instructions matter (improves compliance)'
771
- };
772
- }
773
- return null;
774
- }
775
- },
776
-
777
- /**
778
- * Missing instruction hierarchy/priority
779
- * MEDIUM certainty - helps with conflicting instructions
780
- */
781
- missing_instruction_priority: {
782
- id: 'missing_instruction_priority',
783
- category: 'context',
784
- certainty: 'MEDIUM',
785
- autoFix: false,
786
- description: 'No clear priority order for instructions',
787
- check: (content) => {
788
- if (!content || typeof content !== 'string') return null;
789
-
790
- const tokens = estimateTokens(content);
791
- if (tokens < 600) return null;
792
-
793
- // Check for instruction priority indicators
794
- const priorityIndicators = [
795
- /##\s*(?:priority|priorities)/i,
796
- /<instruction[_-]?priority>/i,
797
- /\bin case of conflict/i,
798
- /\bpriority\s*(?:order|:\s*\d)/i,
799
- /\b(?:highest|lowest)\s+priority\b/i,
800
- /\b(?:first|second|third)\s+priority\b/i,
801
- // Numbered rules section (implicit priority order)
802
- /##[ \t]*(?:critical|important)[ \t]*rules?[ \t]*\n[ \t]*1\.\s/i,
803
- // Precedence language
804
- /\btakes?\s+precedence\b/i,
805
- /\boverride[sd]?\b/i,
806
- // Ordered constraint list
807
- /##[ \t]*constraints?[ \t]*\n[ \t]*1\.\s/i
808
- ];
809
-
810
- for (const pattern of priorityIndicators) {
811
- if (pattern.test(content)) {
812
- return null;
813
- }
814
- }
815
-
816
- // Only flag if there are multiple top-level constraint sections (H2 only, not H3+)
817
- // Design decision: H3+ subsections are typically nested within a larger rules block
818
- // and don't indicate separate conflicting constraint sets
819
- const constraintSections = (content.match(/^##\s+(?:constraints?|rules?|requirements?)\b/gim) || []).length;
820
-
821
- // Design decision: Case-sensitive MUST to detect intentional emphasis only
822
- // Lowercase 'must' is common in prose and doesn't indicate constraint emphasis
823
- // Threshold of 10 chosen to avoid flagging files with few emphatic rules
824
- const mustClauses = (content.match(/\bMUST\b/g) || []).length;
825
-
826
- if (constraintSections >= 2 || mustClauses >= 10) {
827
- return {
828
- issue: 'Multiple constraint sections but no instruction priority order',
829
- fix: 'Add priority order: "In case of conflict: 1) Safety rules, 2) System instructions, 3) User requests"'
830
- };
831
- }
832
- return null;
833
- }
834
- },
835
-
836
- // ============================================
837
- // ANTI-PATTERN PATTERNS (HIGH/MEDIUM certainty)
838
- // ============================================
839
-
840
- /**
841
- * Redundant CoT for thinking models
842
- * HIGH certainty - wastes tokens with extended thinking models
843
- */
844
- redundant_cot: {
845
- id: 'redundant_cot',
846
- category: 'anti-pattern',
847
- certainty: 'HIGH',
848
- autoFix: false,
849
- description: '"Think step by step" redundant for models with extended thinking',
850
- check: (content) => {
851
- if (!content || typeof content !== 'string') return null;
852
-
853
- // Skip if this is documentation ABOUT CoT (describes the anti-pattern)
854
- // These files explain why step-by-step is redundant, not actually use it
855
- const lcContent = content.toLowerCase();
856
- if (/step[- ]by[- ]step/i.test(content) && lcContent.includes('redundant')) {
857
- return null;
858
- }
859
-
860
- // Check for explicit CoT instructions
861
- const cotPatterns = [
862
- /\bthink\s+step[- ]by[- ]step\b/gi,
863
- /\bstep[- ]by[- ]step\s+(?:reasoning|thinking|approach)\b/gi,
864
- /\blet['']s\s+think\s+(?:through|about)\s+this\b/gi,
865
- /\breason\s+through\s+each\s+step\b/gi
866
- ];
867
-
868
- const cotMatches = [];
869
- for (const pattern of cotPatterns) {
870
- const matches = content.match(pattern);
871
- if (matches) cotMatches.push(...matches);
872
- }
873
-
874
- if (cotMatches.length >= 2) {
875
- return {
876
- issue: `${cotMatches.length} explicit "step-by-step" instructions`,
877
- fix: 'Remove redundant CoT prompting - Claude 4.x and GPT-4 models reason by default',
878
- details: cotMatches.slice(0, 3)
879
- };
880
- }
881
- return null;
882
- }
883
- },
884
-
885
- /**
886
- * Overly prescriptive process
887
- * MEDIUM certainty - micro-managing reasoning can limit creativity
888
- */
889
- overly_prescriptive: {
890
- id: 'overly_prescriptive',
891
- category: 'anti-pattern',
892
- certainty: 'LOW', // Some workflows need detailed steps
893
- autoFix: false,
894
- description: 'Overly prescriptive step-by-step process that may limit model reasoning',
895
- check: (content) => {
896
- if (!content || typeof content !== 'string') return null;
897
-
898
- // Count numbered steps
899
- const numberedSteps = content.match(/^\s*\d+\.\s+\w+/gm) || [];
900
-
901
- // Check for micro-management indicators
902
- const microManagePatterns = [
903
- /\bfirst,?\s+(?:you\s+)?(?:must|should|need to)\b/gi,
904
- /\bthen,?\s+(?:you\s+)?(?:must|should|need to)\b/gi,
905
- /\bnext,?\s+(?:you\s+)?(?:must|should|need to)\b/gi,
906
- /\bfinally,?\s+(?:you\s+)?(?:must|should|need to)\b/gi
907
- ];
908
-
909
- let microManageCount = 0;
910
- for (const pattern of microManagePatterns) {
911
- const matches = content.match(pattern);
912
- if (matches) microManageCount += matches.length;
913
- }
914
-
915
- if (numberedSteps.length >= 10 || microManageCount >= 6) {
916
- return {
917
- issue: `${numberedSteps.length} numbered steps, ${microManageCount} sequential directives`,
918
- fix: 'Consider high-level goals over step-by-step processes - model creativity may exceed prescribed approach'
919
- };
920
- }
921
- return null;
922
- }
923
- },
924
-
925
- /**
926
- * Prompt bloat (excessive tokens)
927
- * LOW certainty - long prompts cost more
928
- */
929
- prompt_bloat: {
930
- id: 'prompt_bloat',
931
- category: 'anti-pattern',
932
- certainty: 'LOW',
933
- autoFix: false,
934
- description: 'Prompt exceeds recommended token count',
935
- maxTokens: 2500,
936
- check: (content) => {
937
- if (!content || typeof content !== 'string') return null;
938
-
939
- const tokens = estimateTokens(content);
940
-
941
- if (tokens > 2500) {
942
- return {
943
- issue: `Prompt ~${tokens} tokens (recommended max: 2500)`,
944
- fix: 'Consider splitting into smaller prompts or using XML compression'
945
- };
946
- }
947
- return null;
948
- }
949
- },
950
-
951
- // ============================================
952
- // OUTPUT FORMAT PATTERNS (MEDIUM certainty)
953
- // ============================================
954
-
955
- /**
956
- * JSON request without schema
957
- * MEDIUM certainty - schema improves consistency
958
- */
959
- json_without_schema: {
960
- id: 'json_without_schema',
961
- category: 'output',
962
- certainty: 'MEDIUM',
963
- autoFix: false,
964
- description: 'Requests JSON output without providing schema/example',
965
- check: (content) => {
966
- if (!content || typeof content !== 'string') return null;
967
-
968
- // Check if requests JSON (exclude CLI flags and function descriptions)
969
- // Exclude: "--output json", "analyzer returns JSON", "function returns JSON"
970
- const requestsJson = (
971
- (/\b(?:respond|output|return)[ \t]+(?:(?:with|in|as)[ \t]+)?JSON\b/i.test(content) &&
972
- !/--output\s+json/i.test(content) &&
973
- !/(?:analyzer|function|method)\s+returns?\s+JSON/i.test(content))
974
- ) ||
975
- /\bJSON\s+(?:object|response|format)\b/i.test(content);
976
-
977
- if (!requestsJson) return null;
978
-
979
- // Check if provides schema or example
980
- const hasSchema = /\bproperties\b.{1,200}\btype\b/is.test(content) ||
981
- (content.includes('```json') && content.includes('{')) ||
982
- /<json[_-]?schema>/i.test(content) ||
983
- // JSON in JavaScript/TypeScript code blocks (quoted keys)
984
- (/```(?:javascript|js|typescript|ts)\b/.test(content) && /\{\s*"[a-zA-Z]+"/i.test(content)) ||
985
- // JavaScript object literal assignment (const x = { prop: ... })
986
- (/\b(?:const|let|var)\b/.test(content) && /=\s*\{/.test(content)) ||
987
- // JSON example with quoted property names in prose
988
- /\{"[a-zA-Z_]+"[ \t]*:/i.test(content) || /\{\n[ \t]*"[a-zA-Z_]+"[ \t]*:/i.test(content) ||
989
- // Inline schema description: { prop, prop, prop } or { prop: type, ... }
990
- /\{[ \t]*[a-zA-Z_]+[ \t]*,[ \t]*[a-zA-Z_]+[ \t]*,[ \t]*[a-zA-Z_]+/i.test(content) ||
991
- // Interface-style: { prop: value } patterns with multiple lines
992
- /\{\n[ \t]+[a-zA-Z_]+[ \t]*:[ \t]*[\[\{"']/i.test(content);
993
-
994
- if (!hasSchema) {
995
- return {
996
- issue: 'Requests JSON output but no schema or example provided',
997
- fix: 'Add JSON schema or example structure to ensure consistent output format'
998
- };
999
- }
1000
- return null;
1001
- }
1002
- },
1003
-
1004
- // ============================================
1005
- // VERIFICATION PATTERNS (from Claude Code Best Practices)
1006
- // Source: https://code.claude.com/docs/en/best-practices
1007
- // ============================================
1008
-
1009
- /**
1010
- * Missing verification criteria
1011
- * HIGH certainty - single highest-leverage improvement
1012
- * "Give Claude a way to verify its work"
1013
- */
1014
- missing_verification_criteria: {
1015
- id: 'missing_verification_criteria',
1016
- category: 'clarity',
1017
- certainty: 'MEDIUM', // Context-dependent - not all prompts are task-oriented
1018
- autoFix: true,
1019
- description: 'Task lacks verification criteria (tests, screenshots, expected output)',
1020
- check: (content, filePath) => {
1021
- if (!content || typeof content !== 'string') return null;
1022
-
1023
- const tokens = estimateTokens(content);
1024
- if (tokens < 150) return null; // Too short to need verification
1025
-
1026
- // Skip SKILL.md files (implementation definitions, not tasks)
1027
- // Skip agent files (they define behavior, verification is in workflow)
1028
- // Skip command files that delegate to agents (verification in agent)
1029
- const isSkillOrAgent = /SKILL\.md$/i.test(filePath || '') ||
1030
- /[/\\]agents?[/\\]/i.test(filePath || '') ||
1031
- /^---\s*\nname:/m.test(content); // Agent frontmatter
1032
- if (isSkillOrAgent) return null;
1033
-
1034
- // Design decision: Skip commands that delegate to agents
1035
- // When a command uses Task({ subagent_type: ... }), verification responsibility
1036
- // belongs to the spawned agent, not the orchestrating command.
1037
- // This is project-specific syntax for AgentSys plugin system.
1038
- if (/Task\s*\(/i.test(content) && /subagent_type/i.test(content)) return null;
1039
-
1040
- // Check for implementation/action indicators
1041
- const isActionTask = /\b(?:implement|create|build|write|add|fix|update|refactor|modify)\b/i.test(content);
1042
- if (!isActionTask) return null;
1043
-
1044
- // Check for verification indicators
1045
- const verificationPatterns = [
1046
- /\btest(?:s|ing)?\b/i,
1047
- /\bverify\b/i,
1048
- /\bvalidate\b/i,
1049
- /\bscreenshot\b/i,
1050
- /\bexpected\s+(?:output|result|behavior)\b/i,
1051
- /\bshould\s+(?:return|output|produce)\b/i,
1052
- /\bexample\s+(?:input|output)\b/i,
1053
- /\bcheck\s+(?:that|if)\b/i,
1054
- /\brun\s+(?:the\s+)?tests?\b/i,
1055
- /\bcompare\s+(?:to|with)\b/i,
1056
- /\bassert\b/i,
1057
- // Performance verification
1058
- /\bbaseline\b/i,
1059
- /\bbenchmark\b/i,
1060
- /\bprofil(?:e|ing)\b/i
1061
- ];
1062
-
1063
- for (const pattern of verificationPatterns) {
1064
- if (pattern.test(content)) {
1065
- return null;
1066
- }
1067
- }
1068
-
1069
- return {
1070
- issue: 'Task lacks verification criteria - no tests, expected output, or validation steps',
1071
- fix: 'Add verification: "run tests after implementing" or "expected output: X" or "take screenshot and compare"'
1072
- };
1073
- }
1074
- },
1075
-
1076
- /**
1077
- * Unscoped task description
1078
- * HIGH certainty - vague scope leads to wrong solutions
1079
- */
1080
- unscoped_task: {
1081
- id: 'unscoped_task',
1082
- category: 'clarity',
1083
- certainty: 'HIGH',
1084
- autoFix: false,
1085
- description: 'Task description lacks specific scope (file, scenario, constraints)',
1086
- check: (content) => {
1087
- if (!content || typeof content !== 'string') return null;
1088
-
1089
- const tokens = estimateTokens(content);
1090
- if (tokens < 50) return null;
1091
-
1092
- // Check for action without scope
1093
- const vagueActions = [
1094
- /^(?:fix|add|implement|update|change)\s+(?:the|a|some)?\s*\w+$/im,
1095
- /\bfix\s+(?:the\s+)?bug\b/i,
1096
- /\badd\s+(?:a\s+)?(?:feature|function|test)\b/i,
1097
- /\bupdate\s+(?:the\s+)?(?:code|logic)\b/i
1098
- ];
1099
-
1100
- const hasVagueAction = vagueActions.some(p => p.test(content));
1101
-
1102
- // Check for scope indicators
1103
- const scopePatterns = [
1104
- /\bin\s+(?:file|folder|directory|module)\s+\S+/i,
1105
- /\b(?:src|lib|test)\/\S+/,
1106
- /\.(?:js|ts|py|rs|go|java|rb)\b/,
1107
- /\bwhen\s+(?:the|a)\s+\w+/i,
1108
- /\bfor\s+(?:the|a)\s+(?:case|scenario)\b/i,
1109
- /\bspecifically\b/i,
1110
- /\bedge\s+case/i
1111
- ];
1112
-
1113
- const hasScope = scopePatterns.some(p => p.test(content));
1114
-
1115
- if (hasVagueAction && !hasScope && tokens < 200) {
1116
- return {
1117
- issue: 'Task lacks specific scope (which file, what scenario, what constraints)',
1118
- fix: 'Specify: "in src/auth/login.js" or "for the edge case where user is logged out" or "without using library X"'
1119
- };
1120
- }
1121
- return null;
1122
- }
1123
- },
1124
-
1125
- /**
1126
- * Missing pattern reference
1127
- * MEDIUM certainty - pointing to existing patterns improves consistency
1128
- */
1129
- missing_pattern_reference: {
1130
- id: 'missing_pattern_reference',
1131
- category: 'context',
1132
- certainty: 'MEDIUM',
1133
- autoFix: false,
1134
- description: 'Task could benefit from referencing existing patterns in codebase',
1135
- check: (content) => {
1136
- if (!content || typeof content !== 'string') return null;
1137
-
1138
- // Only for tasks that involve creating new things
1139
- const creationTasks = /\b(?:create|add|implement|build)\s+(?:a\s+)?(?:new\s+)?(?:component|widget|endpoint|handler|service|module)\b/i;
1140
- if (!creationTasks.test(content)) return null;
1141
-
1142
- // Check for pattern reference indicators
1143
- // Use string-based checks to avoid ReDoS from overlapping optional groups
1144
- const lcRef = content.toLowerCase();
1145
- if (/\blike\s+\S+\b/i.test(content) ||
1146
- lcRef.includes('similar to') ||
1147
- (lcRef.includes('follow') && lcRef.includes('pattern')) ||
1148
- (lcRef.includes('see ') && lcRef.includes('example')) ||
1149
- (lcRef.includes('look at')) ||
1150
- (/\.(?:js|ts|py)\b/.test(content) && lcRef.includes('example'))) {
1151
- return null;
1152
- }
1153
-
1154
- return {
1155
- issue: 'Creating new code without referencing existing patterns in codebase',
1156
- fix: 'Add: "look at how widgets are implemented in HomePage.tsx" or "follow the pattern in existing handlers"'
1157
- };
1158
- }
1159
- },
1160
-
1161
- /**
1162
- * Missing source direction
1163
- * MEDIUM certainty - directing to sources saves exploration time
1164
- */
1165
- missing_source_direction: {
1166
- id: 'missing_source_direction',
1167
- category: 'context',
1168
- certainty: 'MEDIUM',
1169
- autoFix: false,
1170
- description: 'Question/investigation without directing to likely sources',
1171
- check: (content) => {
1172
- if (!content || typeof content !== 'string') return null;
1173
-
1174
- // Only for investigation/question tasks
1175
- const investigationPatterns = [
1176
- /\bwhy\s+does\b/i,
1177
- /\bhow\s+does\b/i,
1178
- /\bwhere\s+is\b/i,
1179
- /\bwhat\s+(?:is|are|does)\b/i,
1180
- /\bfind\s+(?:out|the)\b/i,
1181
- /\binvestigate\b/i,
1182
- /\bunderstand\b/i
1183
- ];
1184
-
1185
- const isInvestigation = investigationPatterns.some(p => p.test(content));
1186
- if (!isInvestigation) return null;
1187
-
1188
- // Check for source directions
1189
- const sourceDirections = [
1190
- /\blook\s+(?:at|in|through)\b/i,
1191
- /\bcheck\s+(?:the|in)\b/i,
1192
- /\bstart\s+(?:with|from|in)\b/i,
1193
- /\bsee\s+\S+\b/i,
1194
- /\bin\s+(?:the\s+)?\S+\s+(?:file|folder|directory)\b/i,
1195
- /\bgit\s+(?:log|history|blame)\b/i
1196
- ];
1197
-
1198
- for (const pattern of sourceDirections) {
1199
- if (pattern.test(content)) {
1200
- return null;
1201
- }
1202
- }
1203
-
1204
- const tokens = estimateTokens(content);
1205
- if (tokens < 100) {
1206
- return {
1207
- issue: 'Investigation task without directing to likely sources',
1208
- fix: 'Add: "look through git history" or "check the auth flow in src/auth/" or "start in the config files"'
1209
- };
1210
- }
1211
- return null;
1212
- }
1213
- },
1214
-
1215
- // ============================================
1216
- // CODE VALIDATION PATTERNS (HIGH/MEDIUM certainty)
1217
- // ============================================
1218
-
1219
- /**
1220
- * Invalid JSON in code blocks
1221
- * HIGH certainty - JSON syntax errors are unambiguous
1222
- */
1223
- invalid_json_in_code_block: {
1224
- id: 'invalid_json_in_code_block',
1225
- category: 'code-validation',
1226
- certainty: 'HIGH',
1227
- autoFix: false,
1228
- description: 'JSON code block contains invalid JSON syntax',
1229
- check: (content) => {
1230
- if (!content || typeof content !== 'string') return null;
1231
-
1232
- const blocks = extractCodeBlocks(content);
1233
- const jsonBlocks = blocks.filter(b =>
1234
- b.language.toLowerCase() === 'json'
1235
- );
1236
-
1237
- for (const block of jsonBlocks) {
1238
- // Skip if inside bad-example tags
1239
- const position = getPositionForLine(content, block.startLine);
1240
- if (isInsideExampleTag(content, position)) {
1241
- continue;
1242
- }
1243
-
1244
- // Skip empty blocks
1245
- if (!block.code.trim()) continue;
1246
-
1247
- // Skip very large blocks (>50KB) for performance
1248
- if (block.code.length > 50000) continue;
1249
-
1250
- // Skip blocks with placeholder syntax (common in documentation)
1251
- // e.g., [...], {...}, <...>, "...", etc.
1252
- if (/\[\.\.\.\]|\{\.\.\.\}|<\.\.\.>|"\.\.\."|\.\.\./g.test(block.code)) continue;
1253
-
1254
- // Skip blocks with comments (// or /* */) - not valid JSON but common in docs
1255
- if (/\/\/|\/\*/.test(block.code)) continue;
1256
-
1257
- // Skip blocks with template variables (${...}) - pseudo-code, not actual JSON
1258
- if (/\$\{/.test(block.code)) continue;
1259
-
1260
- // Skip blocks with type union syntax (|) - schema docs, not actual JSON
1261
- if (/\|/.test(block.code)) continue;
1262
-
1263
- try {
1264
- JSON.parse(block.code);
1265
- } catch (err) {
1266
- return {
1267
- issue: `Invalid JSON at line ${block.startLine}: ${err.message}`,
1268
- fix: 'Fix JSON syntax error in the code block'
1269
- };
1270
- }
1271
- }
1272
-
1273
- return null;
1274
- }
1275
- },
1276
-
1277
- // NOTE: JavaScript syntax validation removed - too many false positives
1278
- // (modules, async/await, JSX, TypeScript not supported by Function constructor)
1279
- // We can only reliably validate static formats: YAML frontmatter, JSON
1280
-
1281
- /**
1282
- * Code language tag mismatch
1283
- * MEDIUM certainty - heuristic detection may have false positives
1284
- */
1285
- code_language_mismatch: {
1286
- id: 'code_language_mismatch',
1287
- category: 'code-validation',
1288
- certainty: 'MEDIUM',
1289
- autoFix: false,
1290
- description: 'Code block language tag may not match actual content',
1291
- check: (content) => {
1292
- if (!content || typeof content !== 'string') return null;
1293
-
1294
- const blocks = extractCodeBlocks(content);
1295
-
1296
- for (const block of blocks) {
1297
- // Skip blocks without language tag or inside bad-example
1298
- if (!block.language) continue;
1299
- const position = getPositionForLine(content, block.startLine);
1300
- if (isInsideExampleTag(content, position)) continue;
1301
-
1302
- // Skip empty blocks
1303
- const code = block.code.trim();
1304
- if (!code) continue;
1305
-
1306
- const lang = block.language.toLowerCase();
1307
-
1308
- // JSON detection: starts with { or [ and contains : or ,
1309
- const looksLikeJson = LOOKS_LIKE_JSON_START.test(code) &&
1310
- LOOKS_LIKE_JSON_CONTENT.test(code) &&
1311
- !NOT_JSON_KEYWORDS.test(code);
1312
-
1313
- // JavaScript detection: has JS keywords
1314
- const looksLikeJs = LOOKS_LIKE_JS.test(code);
1315
-
1316
- // Python detection: has Python keywords
1317
- const looksLikePython = LOOKS_LIKE_PYTHON.test(code);
1318
-
1319
- // Check for clear mismatches
1320
- if (lang === 'json' && looksLikeJs && !looksLikeJson) {
1321
- return {
1322
- issue: `Line ${block.startLine}: Code tagged as JSON but appears to be JavaScript`,
1323
- fix: 'Change language tag from "json" to "javascript" or "js"'
1324
- };
1325
- }
1326
-
1327
- if (lang === 'json' && looksLikePython && !looksLikeJson) {
1328
- return {
1329
- issue: `Line ${block.startLine}: Code tagged as JSON but appears to be Python`,
1330
- fix: 'Change language tag from "json" to "python"'
1331
- };
1332
- }
1333
-
1334
- if ((lang === 'js' || lang === 'javascript') && looksLikeJson && !looksLikeJs) {
1335
- return {
1336
- issue: `Line ${block.startLine}: Code tagged as JavaScript but appears to be JSON`,
1337
- fix: 'Change language tag to "json"'
1338
- };
1339
- }
1340
-
1341
- if ((lang === 'js' || lang === 'javascript') && looksLikePython && !looksLikeJs) {
1342
- return {
1343
- issue: `Line ${block.startLine}: Code tagged as JavaScript but appears to be Python`,
1344
- fix: 'Change language tag to "python"'
1345
- };
1346
- }
1347
-
1348
- if ((lang === 'python' || lang === 'py') && looksLikeJs && !looksLikePython) {
1349
- return {
1350
- issue: `Line ${block.startLine}: Code tagged as Python but appears to be JavaScript`,
1351
- fix: 'Change language tag to "javascript" or "js"'
1352
- };
1353
- }
1354
- }
1355
-
1356
- return null;
1357
- }
1358
- },
1359
-
1360
- /**
1361
- * Heading hierarchy gaps
1362
- * HIGH certainty - heading levels should not skip
1363
- */
1364
- heading_hierarchy_gaps: {
1365
- id: 'heading_hierarchy_gaps',
1366
- category: 'structure',
1367
- certainty: 'HIGH',
1368
- autoFix: false,
1369
- description: 'Heading hierarchy skips levels (e.g., H1 to H3 without H2)',
1370
- check: (content) => {
1371
- if (!content || typeof content !== 'string') return null;
1372
-
1373
- // Get code block ranges to exclude headings inside them
1374
- const codeBlocks = extractCodeBlocks(content);
1375
- const codeBlockLines = new Set();
1376
- for (const block of codeBlocks) {
1377
- for (let line = block.startLine; line <= block.endLine; line++) {
1378
- codeBlockLines.add(line);
1379
- }
1380
- }
1381
-
1382
- // Extract headings with their levels and line numbers (excluding code blocks)
1383
- const lines = content.split('\n');
1384
- const headings = [];
1385
-
1386
- for (let i = 0; i < lines.length; i++) {
1387
- const lineNum = i + 1;
1388
- // Skip lines inside code blocks
1389
- if (codeBlockLines.has(lineNum)) continue;
1390
-
1391
- const line = lines[i];
1392
- const match = line.match(/^(#{1,6})[ \t]+(\S.*)$/);
1393
- if (match) {
1394
- headings.push({
1395
- level: match[1].length,
1396
- text: match[2].trim(),
1397
- line: lineNum
1398
- });
1399
- }
1400
- }
1401
-
1402
- // Need at least 2 headings to check hierarchy
1403
- if (headings.length < 2) return null;
1404
-
1405
- // Check for gaps in hierarchy
1406
- for (let i = 1; i < headings.length; i++) {
1407
- const current = headings[i];
1408
- const prev = headings[i - 1];
1409
-
1410
- // Only check if going to a more nested level
1411
- if (current.level > prev.level && current.level - prev.level > 1) {
1412
- return {
1413
- issue: `Line ${current.line}: Heading jumps from H${prev.level} to H${current.level} (skipped H${prev.level + 1})`,
1414
- fix: `Add intermediate H${prev.level + 1} heading or adjust heading levels to maintain hierarchy`
1415
- };
1416
- }
1417
- }
1418
-
1419
- return null;
1420
- }
1421
- }
1422
- };
1423
-
1424
- /**
1425
- * Get all patterns
1426
- * @returns {Object} All prompt patterns
1427
- */
1428
- function getAllPatterns() {
1429
- return promptPatterns;
1430
- }
1431
-
1432
- /**
1433
- * Get patterns by certainty level
1434
- * @param {string} certainty - HIGH, MEDIUM, or LOW
1435
- * @returns {Object} Filtered patterns
1436
- */
1437
- function getPatternsByCertainty(certainty) {
1438
- const result = {};
1439
- for (const [name, pattern] of Object.entries(promptPatterns)) {
1440
- if (pattern.certainty === certainty) {
1441
- result[name] = pattern;
1442
- }
1443
- }
1444
- return result;
1445
- }
1446
-
1447
- /**
1448
- * Get patterns by category
1449
- * @param {string} category - clarity, structure, examples, context, output, anti-pattern
1450
- * @returns {Object} Filtered patterns
1451
- */
1452
- function getPatternsByCategory(category) {
1453
- const result = {};
1454
- for (const [name, pattern] of Object.entries(promptPatterns)) {
1455
- if (pattern.category === category) {
1456
- result[name] = pattern;
1457
- }
1458
- }
1459
- return result;
1460
- }
1461
-
1462
- /**
1463
- * Get auto-fixable patterns
1464
- * @returns {Object} Patterns with autoFix: true
1465
- */
1466
- function getAutoFixablePatterns() {
1467
- const result = {};
1468
- for (const [name, pattern] of Object.entries(promptPatterns)) {
1469
- if (pattern.autoFix) {
1470
- result[name] = pattern;
1471
- }
1472
- }
1473
- return result;
1474
- }
1475
-
1476
- module.exports = {
1477
- promptPatterns,
1478
- estimateTokens,
1479
- extractCodeBlocks,
1480
- getAllPatterns,
1481
- getPatternsByCertainty,
1482
- getPatternsByCategory,
1483
- getAutoFixablePatterns
1484
- };