agentsys 5.0.3 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1248) hide show
  1. package/.claude-plugin/marketplace.json +109 -39
  2. package/.claude-plugin/plugin.json +2 -2
  3. package/AGENTS.md +2 -14
  4. package/CHANGELOG.md +65 -5
  5. package/README.md +143 -44
  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 +1289 -18
  32. package/bin/dev-cli.js +15 -24
  33. package/lib/adapter-transforms.js +171 -7
  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/gen-adapters.js +6 -7
  47. package/scripts/generate-docs.js +4 -2
  48. package/scripts/graduate-plugin.js +433 -0
  49. package/scripts/plugins.txt +1 -0
  50. package/scripts/preflight.js +19 -48
  51. package/scripts/scaffold.js +2 -2
  52. package/scripts/setup-hooks.js +2 -9
  53. package/scripts/stamp-version.js +3 -34
  54. package/scripts/validate-agent-skill-compliance.js +2 -0
  55. package/scripts/validate-counts.js +27 -0
  56. package/site/assets/css/design-system/base.css +151 -0
  57. package/site/assets/css/design-system/tokens.css +354 -0
  58. package/site/assets/css/tokens.css +5 -469
  59. package/site/content.json +13 -13
  60. package/site/index.html +14 -13
  61. package/site/ux-spec.md +7 -7
  62. package/adapters/codex/skills/agnix/SKILL.md +0 -138
  63. package/adapters/codex/skills/audit-project/SKILL.md +0 -334
  64. package/adapters/codex/skills/audit-project-agents/SKILL.md +0 -459
  65. package/adapters/codex/skills/audit-project-github/SKILL.md +0 -146
  66. package/adapters/codex/skills/consult/SKILL.md +0 -245
  67. package/adapters/codex/skills/delivery-approval/SKILL.md +0 -339
  68. package/adapters/codex/skills/deslop/SKILL.md +0 -167
  69. package/adapters/codex/skills/drift-detect/SKILL.md +0 -268
  70. package/adapters/codex/skills/enhance/SKILL.md +0 -177
  71. package/adapters/codex/skills/learn/SKILL.md +0 -188
  72. package/adapters/codex/skills/next-task/SKILL.md +0 -546
  73. package/adapters/codex/skills/perf/SKILL.md +0 -469
  74. package/adapters/codex/skills/repo-map/SKILL.md +0 -132
  75. package/adapters/codex/skills/ship/SKILL.md +0 -491
  76. package/adapters/codex/skills/ship-ci-review-loop/SKILL.md +0 -473
  77. package/adapters/codex/skills/ship-deployment/SKILL.md +0 -336
  78. package/adapters/codex/skills/ship-error-handling/SKILL.md +0 -260
  79. package/adapters/codex/skills/sync-docs/SKILL.md +0 -186
  80. package/adapters/opencode/agents/agent-enhancer.md +0 -65
  81. package/adapters/opencode/agents/agnix-agent.md +0 -56
  82. package/adapters/opencode/agents/ci-fixer.md +0 -104
  83. package/adapters/opencode/agents/ci-monitor.md +0 -127
  84. package/adapters/opencode/agents/claudemd-enhancer.md +0 -66
  85. package/adapters/opencode/agents/consult-agent.md +0 -124
  86. package/adapters/opencode/agents/cross-file-enhancer.md +0 -54
  87. package/adapters/opencode/agents/delivery-validator.md +0 -115
  88. package/adapters/opencode/agents/deslop-agent.md +0 -88
  89. package/adapters/opencode/agents/docs-enhancer.md +0 -65
  90. package/adapters/opencode/agents/exploration-agent.md +0 -143
  91. package/adapters/opencode/agents/hooks-enhancer.md +0 -66
  92. package/adapters/opencode/agents/implementation-agent.md +0 -206
  93. package/adapters/opencode/agents/learn-agent.md +0 -279
  94. package/adapters/opencode/agents/map-validator.md +0 -65
  95. package/adapters/opencode/agents/perf-analyzer.md +0 -40
  96. package/adapters/opencode/agents/perf-code-paths.md +0 -12
  97. package/adapters/opencode/agents/perf-investigation-logger.md +0 -44
  98. package/adapters/opencode/agents/perf-orchestrator.md +0 -147
  99. package/adapters/opencode/agents/perf-theory-gatherer.md +0 -18
  100. package/adapters/opencode/agents/perf-theory-tester.md +0 -43
  101. package/adapters/opencode/agents/plan-synthesizer.md +0 -229
  102. package/adapters/opencode/agents/planning-agent.md +0 -235
  103. package/adapters/opencode/agents/plugin-enhancer.md +0 -64
  104. package/adapters/opencode/agents/prompt-enhancer.md +0 -58
  105. package/adapters/opencode/agents/simple-fixer.md +0 -107
  106. package/adapters/opencode/agents/skills-enhancer.md +0 -66
  107. package/adapters/opencode/agents/sync-docs-agent.md +0 -153
  108. package/adapters/opencode/agents/task-discoverer.md +0 -80
  109. package/adapters/opencode/agents/test-coverage-checker.md +0 -144
  110. package/adapters/opencode/agents/worktree-manager.md +0 -209
  111. package/adapters/opencode/commands/agnix.md +0 -106
  112. package/adapters/opencode/commands/audit-project-agents.md +0 -125
  113. package/adapters/opencode/commands/audit-project-github.md +0 -145
  114. package/adapters/opencode/commands/audit-project.md +0 -268
  115. package/adapters/opencode/commands/consult.md +0 -252
  116. package/adapters/opencode/commands/delivery-approval.md +0 -212
  117. package/adapters/opencode/commands/deslop.md +0 -132
  118. package/adapters/opencode/commands/drift-detect.md +0 -173
  119. package/adapters/opencode/commands/enhance.md +0 -183
  120. package/adapters/opencode/commands/learn.md +0 -116
  121. package/adapters/opencode/commands/next-task.md +0 -393
  122. package/adapters/opencode/commands/perf.md +0 -49
  123. package/adapters/opencode/commands/repo-map.md +0 -69
  124. package/adapters/opencode/commands/ship-ci-review-loop.md +0 -334
  125. package/adapters/opencode/commands/ship-deployment.md +0 -336
  126. package/adapters/opencode/commands/ship-error-handling.md +0 -248
  127. package/adapters/opencode/commands/ship.md +0 -371
  128. package/adapters/opencode/commands/sync-docs.md +0 -108
  129. package/adapters/opencode/skills/agnix/SKILL.md +0 -139
  130. package/adapters/opencode/skills/consult/SKILL.md +0 -308
  131. package/adapters/opencode/skills/deslop/SKILL.md +0 -169
  132. package/adapters/opencode/skills/discover-tasks/SKILL.md +0 -102
  133. package/adapters/opencode/skills/drift-analysis/SKILL.md +0 -279
  134. package/adapters/opencode/skills/enhance-agent-prompts/SKILL.md +0 -279
  135. package/adapters/opencode/skills/enhance-claude-memory/SKILL.md +0 -390
  136. package/adapters/opencode/skills/enhance-cross-file/SKILL.md +0 -112
  137. package/adapters/opencode/skills/enhance-docs/SKILL.md +0 -288
  138. package/adapters/opencode/skills/enhance-hooks/SKILL.md +0 -557
  139. package/adapters/opencode/skills/enhance-orchestrator/SKILL.md +0 -114
  140. package/adapters/opencode/skills/enhance-plugins/SKILL.md +0 -314
  141. package/adapters/opencode/skills/enhance-prompts/SKILL.md +0 -341
  142. package/adapters/opencode/skills/enhance-skills/SKILL.md +0 -443
  143. package/adapters/opencode/skills/learn/SKILL.md +0 -352
  144. package/adapters/opencode/skills/orchestrate-review/SKILL.md +0 -95
  145. package/adapters/opencode/skills/perf-analyzer/SKILL.md +0 -38
  146. package/adapters/opencode/skills/perf-baseline-manager/SKILL.md +0 -31
  147. package/adapters/opencode/skills/perf-benchmarker/SKILL.md +0 -49
  148. package/adapters/opencode/skills/perf-code-paths/SKILL.md +0 -33
  149. package/adapters/opencode/skills/perf-investigation-logger/SKILL.md +0 -42
  150. package/adapters/opencode/skills/perf-profiler/SKILL.md +0 -39
  151. package/adapters/opencode/skills/perf-theory-gatherer/SKILL.md +0 -36
  152. package/adapters/opencode/skills/perf-theory-tester/SKILL.md +0 -37
  153. package/adapters/opencode/skills/repo-mapping/SKILL.md +0 -86
  154. package/adapters/opencode/skills/sync-docs/SKILL.md +0 -246
  155. package/adapters/opencode/skills/validate-delivery/SKILL.md +0 -112
  156. package/plugins/agnix/.claude-plugin/plugin.json +0 -22
  157. package/plugins/agnix/agents/agnix-agent.md +0 -56
  158. package/plugins/agnix/commands/agnix.md +0 -139
  159. package/plugins/agnix/skills/agnix/SKILL.md +0 -138
  160. package/plugins/audit-project/.claude-plugin/plugin.json +0 -20
  161. package/plugins/audit-project/commands/audit-project-agents.md +0 -458
  162. package/plugins/audit-project/commands/audit-project-github.md +0 -144
  163. package/plugins/audit-project/commands/audit-project.md +0 -336
  164. package/plugins/audit-project/lib/adapter-transforms.js +0 -278
  165. package/plugins/audit-project/lib/collectors/codebase.js +0 -392
  166. package/plugins/audit-project/lib/collectors/docs-patterns.js +0 -713
  167. package/plugins/audit-project/lib/collectors/documentation.js +0 -219
  168. package/plugins/audit-project/lib/collectors/github.js +0 -330
  169. package/plugins/audit-project/lib/collectors/index.js +0 -126
  170. package/plugins/audit-project/lib/config/index.js +0 -14
  171. package/plugins/audit-project/lib/cross-platform/index.js +0 -539
  172. package/plugins/audit-project/lib/discovery/index.js +0 -352
  173. package/plugins/audit-project/lib/drift-detect/collectors.js +0 -37
  174. package/plugins/audit-project/lib/enhance/agent-analyzer.js +0 -421
  175. package/plugins/audit-project/lib/enhance/agent-patterns.js +0 -571
  176. package/plugins/audit-project/lib/enhance/auto-suppression.js +0 -622
  177. package/plugins/audit-project/lib/enhance/benchmark.js +0 -417
  178. package/plugins/audit-project/lib/enhance/cross-file-analyzer.js +0 -930
  179. package/plugins/audit-project/lib/enhance/cross-file-patterns.js +0 -370
  180. package/plugins/audit-project/lib/enhance/docs-analyzer.js +0 -325
  181. package/plugins/audit-project/lib/enhance/docs-patterns.js +0 -671
  182. package/plugins/audit-project/lib/enhance/fixer.js +0 -721
  183. package/plugins/audit-project/lib/enhance/hook-analyzer.js +0 -135
  184. package/plugins/audit-project/lib/enhance/hook-patterns.js +0 -40
  185. package/plugins/audit-project/lib/enhance/index.js +0 -127
  186. package/plugins/audit-project/lib/enhance/plugin-analyzer.js +0 -402
  187. package/plugins/audit-project/lib/enhance/plugin-patterns.js +0 -326
  188. package/plugins/audit-project/lib/enhance/projectmemory-analyzer.js +0 -551
  189. package/plugins/audit-project/lib/enhance/projectmemory-patterns.js +0 -617
  190. package/plugins/audit-project/lib/enhance/prompt-analyzer.js +0 -457
  191. package/plugins/audit-project/lib/enhance/prompt-patterns.js +0 -1484
  192. package/plugins/audit-project/lib/enhance/reporter.js +0 -1348
  193. package/plugins/audit-project/lib/enhance/security-patterns.js +0 -284
  194. package/plugins/audit-project/lib/enhance/skill-analyzer.js +0 -182
  195. package/plugins/audit-project/lib/enhance/skill-patterns.js +0 -147
  196. package/plugins/audit-project/lib/enhance/suppression.js +0 -352
  197. package/plugins/audit-project/lib/enhance/tool-patterns.js +0 -373
  198. package/plugins/audit-project/lib/index.js +0 -270
  199. package/plugins/audit-project/lib/patterns/cli-enhancers.js +0 -611
  200. package/plugins/audit-project/lib/patterns/pipeline.js +0 -948
  201. package/plugins/audit-project/lib/patterns/review-patterns.js +0 -558
  202. package/plugins/audit-project/lib/patterns/slop-analyzers.js +0 -2305
  203. package/plugins/audit-project/lib/patterns/slop-patterns.js +0 -1187
  204. package/plugins/audit-project/lib/perf/analyzer/index.js +0 -22
  205. package/plugins/audit-project/lib/perf/argument-parser.js +0 -105
  206. package/plugins/audit-project/lib/perf/baseline-comparator.js +0 -50
  207. package/plugins/audit-project/lib/perf/baseline-store.js +0 -127
  208. package/plugins/audit-project/lib/perf/benchmark-runner.js +0 -404
  209. package/plugins/audit-project/lib/perf/breaking-point-finder.js +0 -52
  210. package/plugins/audit-project/lib/perf/breaking-point-runner.js +0 -60
  211. package/plugins/audit-project/lib/perf/checkpoint.js +0 -123
  212. package/plugins/audit-project/lib/perf/code-paths.js +0 -86
  213. package/plugins/audit-project/lib/perf/consolidation.js +0 -37
  214. package/plugins/audit-project/lib/perf/constraint-runner.js +0 -71
  215. package/plugins/audit-project/lib/perf/experiment-runner.js +0 -32
  216. package/plugins/audit-project/lib/perf/index.js +0 -41
  217. package/plugins/audit-project/lib/perf/investigation-state.js +0 -874
  218. package/plugins/audit-project/lib/perf/optimization-runner.js +0 -79
  219. package/plugins/audit-project/lib/perf/profilers/go.js +0 -22
  220. package/plugins/audit-project/lib/perf/profilers/index.js +0 -46
  221. package/plugins/audit-project/lib/perf/profilers/java.js +0 -23
  222. package/plugins/audit-project/lib/perf/profilers/node.js +0 -27
  223. package/plugins/audit-project/lib/perf/profilers/python.js +0 -23
  224. package/plugins/audit-project/lib/perf/profilers/rust.js +0 -23
  225. package/plugins/audit-project/lib/perf/profiling-runner.js +0 -75
  226. package/plugins/audit-project/lib/perf/schemas.js +0 -140
  227. package/plugins/audit-project/lib/platform/detect-platform.js +0 -413
  228. package/plugins/audit-project/lib/platform/detection-configs.js +0 -93
  229. package/plugins/audit-project/lib/platform/state-dir.js +0 -132
  230. package/plugins/audit-project/lib/platform/verify-tools.js +0 -182
  231. package/plugins/audit-project/lib/repo-map/cache.js +0 -152
  232. package/plugins/audit-project/lib/repo-map/concurrency.js +0 -29
  233. package/plugins/audit-project/lib/repo-map/index.js +0 -222
  234. package/plugins/audit-project/lib/repo-map/installer.js +0 -212
  235. package/plugins/audit-project/lib/repo-map/queries/go.js +0 -27
  236. package/plugins/audit-project/lib/repo-map/queries/index.js +0 -100
  237. package/plugins/audit-project/lib/repo-map/queries/java.js +0 -38
  238. package/plugins/audit-project/lib/repo-map/queries/javascript.js +0 -55
  239. package/plugins/audit-project/lib/repo-map/queries/python.js +0 -24
  240. package/plugins/audit-project/lib/repo-map/queries/rust.js +0 -73
  241. package/plugins/audit-project/lib/repo-map/queries/typescript.js +0 -38
  242. package/plugins/audit-project/lib/repo-map/runner.js +0 -1364
  243. package/plugins/audit-project/lib/repo-map/updater.js +0 -562
  244. package/plugins/audit-project/lib/repo-map/usage-analyzer.js +0 -407
  245. package/plugins/audit-project/lib/schemas/plugin-manifest.schema.json +0 -57
  246. package/plugins/audit-project/lib/schemas/validator.js +0 -247
  247. package/plugins/audit-project/lib/sources/custom-handler.js +0 -199
  248. package/plugins/audit-project/lib/sources/policy-questions.js +0 -246
  249. package/plugins/audit-project/lib/sources/source-cache.js +0 -165
  250. package/plugins/audit-project/lib/state/workflow-state.js +0 -576
  251. package/plugins/audit-project/lib/types/agent-frontmatter.d.ts +0 -134
  252. package/plugins/audit-project/lib/types/command-frontmatter.d.ts +0 -107
  253. package/plugins/audit-project/lib/types/hook-frontmatter.d.ts +0 -115
  254. package/plugins/audit-project/lib/types/index.d.ts +0 -84
  255. package/plugins/audit-project/lib/types/plugin-manifest.d.ts +0 -102
  256. package/plugins/audit-project/lib/types/skill-frontmatter.d.ts +0 -89
  257. package/plugins/audit-project/lib/utils/atomic-write.js +0 -94
  258. package/plugins/audit-project/lib/utils/cache-manager.js +0 -159
  259. package/plugins/audit-project/lib/utils/command-parser.js +0 -0
  260. package/plugins/audit-project/lib/utils/context-optimizer.js +0 -300
  261. package/plugins/audit-project/lib/utils/deprecation.js +0 -37
  262. package/plugins/audit-project/lib/utils/shell-escape.js +0 -88
  263. package/plugins/audit-project/lib/utils/state-helpers.js +0 -61
  264. package/plugins/consult/.claude-plugin/plugin.json +0 -24
  265. package/plugins/consult/agents/consult-agent.md +0 -129
  266. package/plugins/consult/commands/consult.md +0 -248
  267. package/plugins/consult/skills/consult/SKILL.md +0 -301
  268. package/plugins/deslop/.claude-plugin/plugin.json +0 -20
  269. package/plugins/deslop/agents/deslop-agent.md +0 -88
  270. package/plugins/deslop/commands/deslop.md +0 -168
  271. package/plugins/deslop/lib/adapter-transforms.js +0 -278
  272. package/plugins/deslop/lib/collectors/codebase.js +0 -392
  273. package/plugins/deslop/lib/collectors/docs-patterns.js +0 -713
  274. package/plugins/deslop/lib/collectors/documentation.js +0 -219
  275. package/plugins/deslop/lib/collectors/github.js +0 -330
  276. package/plugins/deslop/lib/collectors/index.js +0 -126
  277. package/plugins/deslop/lib/config/index.js +0 -14
  278. package/plugins/deslop/lib/cross-platform/index.js +0 -539
  279. package/plugins/deslop/lib/discovery/index.js +0 -352
  280. package/plugins/deslop/lib/drift-detect/collectors.js +0 -37
  281. package/plugins/deslop/lib/enhance/agent-analyzer.js +0 -421
  282. package/plugins/deslop/lib/enhance/agent-patterns.js +0 -571
  283. package/plugins/deslop/lib/enhance/auto-suppression.js +0 -622
  284. package/plugins/deslop/lib/enhance/benchmark.js +0 -417
  285. package/plugins/deslop/lib/enhance/cross-file-analyzer.js +0 -930
  286. package/plugins/deslop/lib/enhance/cross-file-patterns.js +0 -370
  287. package/plugins/deslop/lib/enhance/docs-analyzer.js +0 -325
  288. package/plugins/deslop/lib/enhance/docs-patterns.js +0 -671
  289. package/plugins/deslop/lib/enhance/fixer.js +0 -721
  290. package/plugins/deslop/lib/enhance/hook-analyzer.js +0 -135
  291. package/plugins/deslop/lib/enhance/hook-patterns.js +0 -40
  292. package/plugins/deslop/lib/enhance/index.js +0 -127
  293. package/plugins/deslop/lib/enhance/plugin-analyzer.js +0 -402
  294. package/plugins/deslop/lib/enhance/plugin-patterns.js +0 -326
  295. package/plugins/deslop/lib/enhance/projectmemory-analyzer.js +0 -551
  296. package/plugins/deslop/lib/enhance/projectmemory-patterns.js +0 -617
  297. package/plugins/deslop/lib/enhance/prompt-analyzer.js +0 -457
  298. package/plugins/deslop/lib/enhance/prompt-patterns.js +0 -1484
  299. package/plugins/deslop/lib/enhance/reporter.js +0 -1348
  300. package/plugins/deslop/lib/enhance/security-patterns.js +0 -284
  301. package/plugins/deslop/lib/enhance/skill-analyzer.js +0 -182
  302. package/plugins/deslop/lib/enhance/skill-patterns.js +0 -147
  303. package/plugins/deslop/lib/enhance/suppression.js +0 -352
  304. package/plugins/deslop/lib/enhance/tool-patterns.js +0 -373
  305. package/plugins/deslop/lib/index.js +0 -270
  306. package/plugins/deslop/lib/patterns/cli-enhancers.js +0 -611
  307. package/plugins/deslop/lib/patterns/pipeline.js +0 -948
  308. package/plugins/deslop/lib/patterns/review-patterns.js +0 -558
  309. package/plugins/deslop/lib/patterns/slop-analyzers.js +0 -2305
  310. package/plugins/deslop/lib/patterns/slop-patterns.js +0 -1187
  311. package/plugins/deslop/lib/perf/analyzer/index.js +0 -22
  312. package/plugins/deslop/lib/perf/argument-parser.js +0 -105
  313. package/plugins/deslop/lib/perf/baseline-comparator.js +0 -50
  314. package/plugins/deslop/lib/perf/baseline-store.js +0 -127
  315. package/plugins/deslop/lib/perf/benchmark-runner.js +0 -404
  316. package/plugins/deslop/lib/perf/breaking-point-finder.js +0 -52
  317. package/plugins/deslop/lib/perf/breaking-point-runner.js +0 -60
  318. package/plugins/deslop/lib/perf/checkpoint.js +0 -123
  319. package/plugins/deslop/lib/perf/code-paths.js +0 -86
  320. package/plugins/deslop/lib/perf/consolidation.js +0 -37
  321. package/plugins/deslop/lib/perf/constraint-runner.js +0 -71
  322. package/plugins/deslop/lib/perf/experiment-runner.js +0 -32
  323. package/plugins/deslop/lib/perf/index.js +0 -41
  324. package/plugins/deslop/lib/perf/investigation-state.js +0 -874
  325. package/plugins/deslop/lib/perf/optimization-runner.js +0 -79
  326. package/plugins/deslop/lib/perf/profilers/go.js +0 -22
  327. package/plugins/deslop/lib/perf/profilers/index.js +0 -46
  328. package/plugins/deslop/lib/perf/profilers/java.js +0 -23
  329. package/plugins/deslop/lib/perf/profilers/node.js +0 -27
  330. package/plugins/deslop/lib/perf/profilers/python.js +0 -23
  331. package/plugins/deslop/lib/perf/profilers/rust.js +0 -23
  332. package/plugins/deslop/lib/perf/profiling-runner.js +0 -75
  333. package/plugins/deslop/lib/perf/schemas.js +0 -140
  334. package/plugins/deslop/lib/platform/detect-platform.js +0 -413
  335. package/plugins/deslop/lib/platform/detection-configs.js +0 -93
  336. package/plugins/deslop/lib/platform/state-dir.js +0 -132
  337. package/plugins/deslop/lib/platform/verify-tools.js +0 -182
  338. package/plugins/deslop/lib/repo-map/cache.js +0 -152
  339. package/plugins/deslop/lib/repo-map/concurrency.js +0 -29
  340. package/plugins/deslop/lib/repo-map/index.js +0 -222
  341. package/plugins/deslop/lib/repo-map/installer.js +0 -212
  342. package/plugins/deslop/lib/repo-map/queries/go.js +0 -27
  343. package/plugins/deslop/lib/repo-map/queries/index.js +0 -100
  344. package/plugins/deslop/lib/repo-map/queries/java.js +0 -38
  345. package/plugins/deslop/lib/repo-map/queries/javascript.js +0 -55
  346. package/plugins/deslop/lib/repo-map/queries/python.js +0 -24
  347. package/plugins/deslop/lib/repo-map/queries/rust.js +0 -73
  348. package/plugins/deslop/lib/repo-map/queries/typescript.js +0 -38
  349. package/plugins/deslop/lib/repo-map/runner.js +0 -1364
  350. package/plugins/deslop/lib/repo-map/updater.js +0 -562
  351. package/plugins/deslop/lib/repo-map/usage-analyzer.js +0 -407
  352. package/plugins/deslop/lib/schemas/plugin-manifest.schema.json +0 -57
  353. package/plugins/deslop/lib/schemas/validator.js +0 -247
  354. package/plugins/deslop/lib/sources/custom-handler.js +0 -199
  355. package/plugins/deslop/lib/sources/policy-questions.js +0 -246
  356. package/plugins/deslop/lib/sources/source-cache.js +0 -165
  357. package/plugins/deslop/lib/state/workflow-state.js +0 -576
  358. package/plugins/deslop/lib/types/agent-frontmatter.d.ts +0 -134
  359. package/plugins/deslop/lib/types/command-frontmatter.d.ts +0 -107
  360. package/plugins/deslop/lib/types/hook-frontmatter.d.ts +0 -115
  361. package/plugins/deslop/lib/types/index.d.ts +0 -84
  362. package/plugins/deslop/lib/types/plugin-manifest.d.ts +0 -102
  363. package/plugins/deslop/lib/types/skill-frontmatter.d.ts +0 -89
  364. package/plugins/deslop/lib/utils/atomic-write.js +0 -94
  365. package/plugins/deslop/lib/utils/cache-manager.js +0 -159
  366. package/plugins/deslop/lib/utils/command-parser.js +0 -0
  367. package/plugins/deslop/lib/utils/context-optimizer.js +0 -300
  368. package/plugins/deslop/lib/utils/deprecation.js +0 -37
  369. package/plugins/deslop/lib/utils/shell-escape.js +0 -88
  370. package/plugins/deslop/lib/utils/state-helpers.js +0 -61
  371. package/plugins/deslop/references/slop-categories.md +0 -122
  372. package/plugins/deslop/scripts/detect.js +0 -134
  373. package/plugins/deslop/skills/deslop/SKILL.md +0 -204
  374. package/plugins/drift-detect/.claude-plugin/plugin.json +0 -23
  375. package/plugins/drift-detect/agents/plan-synthesizer.md +0 -225
  376. package/plugins/drift-detect/commands/drift-detect.md +0 -269
  377. package/plugins/drift-detect/lib/adapter-transforms.js +0 -278
  378. package/plugins/drift-detect/lib/collectors/codebase.js +0 -392
  379. package/plugins/drift-detect/lib/collectors/docs-patterns.js +0 -713
  380. package/plugins/drift-detect/lib/collectors/documentation.js +0 -219
  381. package/plugins/drift-detect/lib/collectors/github.js +0 -330
  382. package/plugins/drift-detect/lib/collectors/index.js +0 -126
  383. package/plugins/drift-detect/lib/config/index.js +0 -14
  384. package/plugins/drift-detect/lib/cross-platform/index.js +0 -539
  385. package/plugins/drift-detect/lib/discovery/index.js +0 -352
  386. package/plugins/drift-detect/lib/drift-detect/collectors.js +0 -37
  387. package/plugins/drift-detect/lib/enhance/agent-analyzer.js +0 -421
  388. package/plugins/drift-detect/lib/enhance/agent-patterns.js +0 -571
  389. package/plugins/drift-detect/lib/enhance/auto-suppression.js +0 -622
  390. package/plugins/drift-detect/lib/enhance/benchmark.js +0 -417
  391. package/plugins/drift-detect/lib/enhance/cross-file-analyzer.js +0 -930
  392. package/plugins/drift-detect/lib/enhance/cross-file-patterns.js +0 -370
  393. package/plugins/drift-detect/lib/enhance/docs-analyzer.js +0 -325
  394. package/plugins/drift-detect/lib/enhance/docs-patterns.js +0 -671
  395. package/plugins/drift-detect/lib/enhance/fixer.js +0 -721
  396. package/plugins/drift-detect/lib/enhance/hook-analyzer.js +0 -135
  397. package/plugins/drift-detect/lib/enhance/hook-patterns.js +0 -40
  398. package/plugins/drift-detect/lib/enhance/index.js +0 -127
  399. package/plugins/drift-detect/lib/enhance/plugin-analyzer.js +0 -402
  400. package/plugins/drift-detect/lib/enhance/plugin-patterns.js +0 -326
  401. package/plugins/drift-detect/lib/enhance/projectmemory-analyzer.js +0 -551
  402. package/plugins/drift-detect/lib/enhance/projectmemory-patterns.js +0 -617
  403. package/plugins/drift-detect/lib/enhance/prompt-analyzer.js +0 -457
  404. package/plugins/drift-detect/lib/enhance/prompt-patterns.js +0 -1484
  405. package/plugins/drift-detect/lib/enhance/reporter.js +0 -1348
  406. package/plugins/drift-detect/lib/enhance/security-patterns.js +0 -284
  407. package/plugins/drift-detect/lib/enhance/skill-analyzer.js +0 -182
  408. package/plugins/drift-detect/lib/enhance/skill-patterns.js +0 -147
  409. package/plugins/drift-detect/lib/enhance/suppression.js +0 -352
  410. package/plugins/drift-detect/lib/enhance/tool-patterns.js +0 -373
  411. package/plugins/drift-detect/lib/index.js +0 -270
  412. package/plugins/drift-detect/lib/patterns/cli-enhancers.js +0 -611
  413. package/plugins/drift-detect/lib/patterns/pipeline.js +0 -948
  414. package/plugins/drift-detect/lib/patterns/review-patterns.js +0 -558
  415. package/plugins/drift-detect/lib/patterns/slop-analyzers.js +0 -2305
  416. package/plugins/drift-detect/lib/patterns/slop-patterns.js +0 -1187
  417. package/plugins/drift-detect/lib/perf/analyzer/index.js +0 -22
  418. package/plugins/drift-detect/lib/perf/argument-parser.js +0 -105
  419. package/plugins/drift-detect/lib/perf/baseline-comparator.js +0 -50
  420. package/plugins/drift-detect/lib/perf/baseline-store.js +0 -127
  421. package/plugins/drift-detect/lib/perf/benchmark-runner.js +0 -404
  422. package/plugins/drift-detect/lib/perf/breaking-point-finder.js +0 -52
  423. package/plugins/drift-detect/lib/perf/breaking-point-runner.js +0 -60
  424. package/plugins/drift-detect/lib/perf/checkpoint.js +0 -123
  425. package/plugins/drift-detect/lib/perf/code-paths.js +0 -86
  426. package/plugins/drift-detect/lib/perf/consolidation.js +0 -37
  427. package/plugins/drift-detect/lib/perf/constraint-runner.js +0 -71
  428. package/plugins/drift-detect/lib/perf/experiment-runner.js +0 -32
  429. package/plugins/drift-detect/lib/perf/index.js +0 -41
  430. package/plugins/drift-detect/lib/perf/investigation-state.js +0 -874
  431. package/plugins/drift-detect/lib/perf/optimization-runner.js +0 -79
  432. package/plugins/drift-detect/lib/perf/profilers/go.js +0 -22
  433. package/plugins/drift-detect/lib/perf/profilers/index.js +0 -46
  434. package/plugins/drift-detect/lib/perf/profilers/java.js +0 -23
  435. package/plugins/drift-detect/lib/perf/profilers/node.js +0 -27
  436. package/plugins/drift-detect/lib/perf/profilers/python.js +0 -23
  437. package/plugins/drift-detect/lib/perf/profilers/rust.js +0 -23
  438. package/plugins/drift-detect/lib/perf/profiling-runner.js +0 -75
  439. package/plugins/drift-detect/lib/perf/schemas.js +0 -140
  440. package/plugins/drift-detect/lib/platform/detect-platform.js +0 -413
  441. package/plugins/drift-detect/lib/platform/detection-configs.js +0 -93
  442. package/plugins/drift-detect/lib/platform/state-dir.js +0 -132
  443. package/plugins/drift-detect/lib/platform/verify-tools.js +0 -182
  444. package/plugins/drift-detect/lib/repo-map/cache.js +0 -152
  445. package/plugins/drift-detect/lib/repo-map/concurrency.js +0 -29
  446. package/plugins/drift-detect/lib/repo-map/index.js +0 -222
  447. package/plugins/drift-detect/lib/repo-map/installer.js +0 -212
  448. package/plugins/drift-detect/lib/repo-map/queries/go.js +0 -27
  449. package/plugins/drift-detect/lib/repo-map/queries/index.js +0 -100
  450. package/plugins/drift-detect/lib/repo-map/queries/java.js +0 -38
  451. package/plugins/drift-detect/lib/repo-map/queries/javascript.js +0 -55
  452. package/plugins/drift-detect/lib/repo-map/queries/python.js +0 -24
  453. package/plugins/drift-detect/lib/repo-map/queries/rust.js +0 -73
  454. package/plugins/drift-detect/lib/repo-map/queries/typescript.js +0 -38
  455. package/plugins/drift-detect/lib/repo-map/runner.js +0 -1364
  456. package/plugins/drift-detect/lib/repo-map/updater.js +0 -562
  457. package/plugins/drift-detect/lib/repo-map/usage-analyzer.js +0 -407
  458. package/plugins/drift-detect/lib/schemas/plugin-manifest.schema.json +0 -57
  459. package/plugins/drift-detect/lib/schemas/validator.js +0 -247
  460. package/plugins/drift-detect/lib/sources/custom-handler.js +0 -199
  461. package/plugins/drift-detect/lib/sources/policy-questions.js +0 -246
  462. package/plugins/drift-detect/lib/sources/source-cache.js +0 -165
  463. package/plugins/drift-detect/lib/state/workflow-state.js +0 -576
  464. package/plugins/drift-detect/lib/types/agent-frontmatter.d.ts +0 -134
  465. package/plugins/drift-detect/lib/types/command-frontmatter.d.ts +0 -107
  466. package/plugins/drift-detect/lib/types/hook-frontmatter.d.ts +0 -115
  467. package/plugins/drift-detect/lib/types/index.d.ts +0 -84
  468. package/plugins/drift-detect/lib/types/plugin-manifest.d.ts +0 -102
  469. package/plugins/drift-detect/lib/types/skill-frontmatter.d.ts +0 -89
  470. package/plugins/drift-detect/lib/utils/atomic-write.js +0 -94
  471. package/plugins/drift-detect/lib/utils/cache-manager.js +0 -159
  472. package/plugins/drift-detect/lib/utils/command-parser.js +0 -0
  473. package/plugins/drift-detect/lib/utils/context-optimizer.js +0 -300
  474. package/plugins/drift-detect/lib/utils/deprecation.js +0 -37
  475. package/plugins/drift-detect/lib/utils/shell-escape.js +0 -88
  476. package/plugins/drift-detect/lib/utils/state-helpers.js +0 -61
  477. package/plugins/drift-detect/skills/drift-analysis/SKILL.md +0 -324
  478. package/plugins/enhance/.claude-plugin/plugin.json +0 -20
  479. package/plugins/enhance/agents/agent-enhancer.md +0 -64
  480. package/plugins/enhance/agents/claudemd-enhancer.md +0 -65
  481. package/plugins/enhance/agents/cross-file-enhancer.md +0 -54
  482. package/plugins/enhance/agents/docs-enhancer.md +0 -64
  483. package/plugins/enhance/agents/hooks-enhancer.md +0 -64
  484. package/plugins/enhance/agents/plugin-enhancer.md +0 -63
  485. package/plugins/enhance/agents/prompt-enhancer.md +0 -58
  486. package/plugins/enhance/agents/skills-enhancer.md +0 -64
  487. package/plugins/enhance/commands/enhance.md +0 -178
  488. package/plugins/enhance/lib/adapter-transforms.js +0 -278
  489. package/plugins/enhance/lib/collectors/codebase.js +0 -392
  490. package/plugins/enhance/lib/collectors/docs-patterns.js +0 -713
  491. package/plugins/enhance/lib/collectors/documentation.js +0 -219
  492. package/plugins/enhance/lib/collectors/github.js +0 -330
  493. package/plugins/enhance/lib/collectors/index.js +0 -126
  494. package/plugins/enhance/lib/config/index.js +0 -14
  495. package/plugins/enhance/lib/cross-platform/index.js +0 -539
  496. package/plugins/enhance/lib/discovery/index.js +0 -352
  497. package/plugins/enhance/lib/drift-detect/collectors.js +0 -37
  498. package/plugins/enhance/lib/enhance/agent-analyzer.js +0 -421
  499. package/plugins/enhance/lib/enhance/agent-patterns.js +0 -571
  500. package/plugins/enhance/lib/enhance/auto-suppression.js +0 -622
  501. package/plugins/enhance/lib/enhance/benchmark.js +0 -417
  502. package/plugins/enhance/lib/enhance/cross-file-analyzer.js +0 -930
  503. package/plugins/enhance/lib/enhance/cross-file-patterns.js +0 -370
  504. package/plugins/enhance/lib/enhance/docs-analyzer.js +0 -325
  505. package/plugins/enhance/lib/enhance/docs-patterns.js +0 -671
  506. package/plugins/enhance/lib/enhance/fixer.js +0 -721
  507. package/plugins/enhance/lib/enhance/hook-analyzer.js +0 -135
  508. package/plugins/enhance/lib/enhance/hook-patterns.js +0 -40
  509. package/plugins/enhance/lib/enhance/index.js +0 -127
  510. package/plugins/enhance/lib/enhance/plugin-analyzer.js +0 -402
  511. package/plugins/enhance/lib/enhance/plugin-patterns.js +0 -326
  512. package/plugins/enhance/lib/enhance/projectmemory-analyzer.js +0 -551
  513. package/plugins/enhance/lib/enhance/projectmemory-patterns.js +0 -617
  514. package/plugins/enhance/lib/enhance/prompt-analyzer.js +0 -457
  515. package/plugins/enhance/lib/enhance/prompt-patterns.js +0 -1484
  516. package/plugins/enhance/lib/enhance/reporter.js +0 -1348
  517. package/plugins/enhance/lib/enhance/security-patterns.js +0 -284
  518. package/plugins/enhance/lib/enhance/skill-analyzer.js +0 -182
  519. package/plugins/enhance/lib/enhance/skill-patterns.js +0 -147
  520. package/plugins/enhance/lib/enhance/suppression.js +0 -352
  521. package/plugins/enhance/lib/enhance/tool-patterns.js +0 -373
  522. package/plugins/enhance/lib/index.js +0 -270
  523. package/plugins/enhance/lib/patterns/cli-enhancers.js +0 -611
  524. package/plugins/enhance/lib/patterns/pipeline.js +0 -948
  525. package/plugins/enhance/lib/patterns/review-patterns.js +0 -558
  526. package/plugins/enhance/lib/patterns/slop-analyzers.js +0 -2305
  527. package/plugins/enhance/lib/patterns/slop-patterns.js +0 -1187
  528. package/plugins/enhance/lib/perf/analyzer/index.js +0 -22
  529. package/plugins/enhance/lib/perf/argument-parser.js +0 -105
  530. package/plugins/enhance/lib/perf/baseline-comparator.js +0 -50
  531. package/plugins/enhance/lib/perf/baseline-store.js +0 -127
  532. package/plugins/enhance/lib/perf/benchmark-runner.js +0 -404
  533. package/plugins/enhance/lib/perf/breaking-point-finder.js +0 -52
  534. package/plugins/enhance/lib/perf/breaking-point-runner.js +0 -60
  535. package/plugins/enhance/lib/perf/checkpoint.js +0 -123
  536. package/plugins/enhance/lib/perf/code-paths.js +0 -86
  537. package/plugins/enhance/lib/perf/consolidation.js +0 -37
  538. package/plugins/enhance/lib/perf/constraint-runner.js +0 -71
  539. package/plugins/enhance/lib/perf/experiment-runner.js +0 -32
  540. package/plugins/enhance/lib/perf/index.js +0 -41
  541. package/plugins/enhance/lib/perf/investigation-state.js +0 -874
  542. package/plugins/enhance/lib/perf/optimization-runner.js +0 -79
  543. package/plugins/enhance/lib/perf/profilers/go.js +0 -22
  544. package/plugins/enhance/lib/perf/profilers/index.js +0 -46
  545. package/plugins/enhance/lib/perf/profilers/java.js +0 -23
  546. package/plugins/enhance/lib/perf/profilers/node.js +0 -27
  547. package/plugins/enhance/lib/perf/profilers/python.js +0 -23
  548. package/plugins/enhance/lib/perf/profilers/rust.js +0 -23
  549. package/plugins/enhance/lib/perf/profiling-runner.js +0 -75
  550. package/plugins/enhance/lib/perf/schemas.js +0 -140
  551. package/plugins/enhance/lib/platform/detect-platform.js +0 -413
  552. package/plugins/enhance/lib/platform/detection-configs.js +0 -93
  553. package/plugins/enhance/lib/platform/state-dir.js +0 -132
  554. package/plugins/enhance/lib/platform/verify-tools.js +0 -182
  555. package/plugins/enhance/lib/repo-map/cache.js +0 -152
  556. package/plugins/enhance/lib/repo-map/concurrency.js +0 -29
  557. package/plugins/enhance/lib/repo-map/index.js +0 -222
  558. package/plugins/enhance/lib/repo-map/installer.js +0 -212
  559. package/plugins/enhance/lib/repo-map/queries/go.js +0 -27
  560. package/plugins/enhance/lib/repo-map/queries/index.js +0 -100
  561. package/plugins/enhance/lib/repo-map/queries/java.js +0 -38
  562. package/plugins/enhance/lib/repo-map/queries/javascript.js +0 -55
  563. package/plugins/enhance/lib/repo-map/queries/python.js +0 -24
  564. package/plugins/enhance/lib/repo-map/queries/rust.js +0 -73
  565. package/plugins/enhance/lib/repo-map/queries/typescript.js +0 -38
  566. package/plugins/enhance/lib/repo-map/runner.js +0 -1364
  567. package/plugins/enhance/lib/repo-map/updater.js +0 -562
  568. package/plugins/enhance/lib/repo-map/usage-analyzer.js +0 -407
  569. package/plugins/enhance/lib/schemas/plugin-manifest.schema.json +0 -57
  570. package/plugins/enhance/lib/schemas/validator.js +0 -247
  571. package/plugins/enhance/lib/sources/custom-handler.js +0 -199
  572. package/plugins/enhance/lib/sources/policy-questions.js +0 -246
  573. package/plugins/enhance/lib/sources/source-cache.js +0 -165
  574. package/plugins/enhance/lib/state/workflow-state.js +0 -576
  575. package/plugins/enhance/lib/types/agent-frontmatter.d.ts +0 -134
  576. package/plugins/enhance/lib/types/command-frontmatter.d.ts +0 -107
  577. package/plugins/enhance/lib/types/hook-frontmatter.d.ts +0 -115
  578. package/plugins/enhance/lib/types/index.d.ts +0 -84
  579. package/plugins/enhance/lib/types/plugin-manifest.d.ts +0 -102
  580. package/plugins/enhance/lib/types/skill-frontmatter.d.ts +0 -89
  581. package/plugins/enhance/lib/utils/atomic-write.js +0 -94
  582. package/plugins/enhance/lib/utils/cache-manager.js +0 -159
  583. package/plugins/enhance/lib/utils/command-parser.js +0 -0
  584. package/plugins/enhance/lib/utils/context-optimizer.js +0 -300
  585. package/plugins/enhance/lib/utils/deprecation.js +0 -37
  586. package/plugins/enhance/lib/utils/shell-escape.js +0 -88
  587. package/plugins/enhance/lib/utils/state-helpers.js +0 -61
  588. package/plugins/enhance/skills/enhance-agent-prompts/SKILL.md +0 -277
  589. package/plugins/enhance/skills/enhance-claude-memory/SKILL.md +0 -387
  590. package/plugins/enhance/skills/enhance-cross-file/SKILL.md +0 -110
  591. package/plugins/enhance/skills/enhance-docs/SKILL.md +0 -298
  592. package/plugins/enhance/skills/enhance-hooks/SKILL.md +0 -554
  593. package/plugins/enhance/skills/enhance-orchestrator/SKILL.md +0 -255
  594. package/plugins/enhance/skills/enhance-plugins/SKILL.md +0 -319
  595. package/plugins/enhance/skills/enhance-prompts/SKILL.md +0 -340
  596. package/plugins/enhance/skills/enhance-skills/SKILL.md +0 -436
  597. package/plugins/learn/.claude-plugin/plugin.json +0 -21
  598. package/plugins/learn/agents/learn-agent.md +0 -331
  599. package/plugins/learn/commands/learn.md +0 -190
  600. package/plugins/learn/lib/adapter-transforms.js +0 -278
  601. package/plugins/learn/lib/collectors/codebase.js +0 -392
  602. package/plugins/learn/lib/collectors/docs-patterns.js +0 -713
  603. package/plugins/learn/lib/collectors/documentation.js +0 -219
  604. package/plugins/learn/lib/collectors/github.js +0 -330
  605. package/plugins/learn/lib/collectors/index.js +0 -126
  606. package/plugins/learn/lib/config/index.js +0 -14
  607. package/plugins/learn/lib/cross-platform/index.js +0 -539
  608. package/plugins/learn/lib/discovery/index.js +0 -352
  609. package/plugins/learn/lib/drift-detect/collectors.js +0 -37
  610. package/plugins/learn/lib/enhance/agent-analyzer.js +0 -421
  611. package/plugins/learn/lib/enhance/agent-patterns.js +0 -571
  612. package/plugins/learn/lib/enhance/auto-suppression.js +0 -622
  613. package/plugins/learn/lib/enhance/benchmark.js +0 -417
  614. package/plugins/learn/lib/enhance/cross-file-analyzer.js +0 -930
  615. package/plugins/learn/lib/enhance/cross-file-patterns.js +0 -370
  616. package/plugins/learn/lib/enhance/docs-analyzer.js +0 -325
  617. package/plugins/learn/lib/enhance/docs-patterns.js +0 -671
  618. package/plugins/learn/lib/enhance/fixer.js +0 -721
  619. package/plugins/learn/lib/enhance/hook-analyzer.js +0 -135
  620. package/plugins/learn/lib/enhance/hook-patterns.js +0 -40
  621. package/plugins/learn/lib/enhance/index.js +0 -127
  622. package/plugins/learn/lib/enhance/plugin-analyzer.js +0 -402
  623. package/plugins/learn/lib/enhance/plugin-patterns.js +0 -326
  624. package/plugins/learn/lib/enhance/projectmemory-analyzer.js +0 -551
  625. package/plugins/learn/lib/enhance/projectmemory-patterns.js +0 -617
  626. package/plugins/learn/lib/enhance/prompt-analyzer.js +0 -457
  627. package/plugins/learn/lib/enhance/prompt-patterns.js +0 -1484
  628. package/plugins/learn/lib/enhance/reporter.js +0 -1348
  629. package/plugins/learn/lib/enhance/security-patterns.js +0 -284
  630. package/plugins/learn/lib/enhance/skill-analyzer.js +0 -182
  631. package/plugins/learn/lib/enhance/skill-patterns.js +0 -147
  632. package/plugins/learn/lib/enhance/suppression.js +0 -352
  633. package/plugins/learn/lib/enhance/tool-patterns.js +0 -373
  634. package/plugins/learn/lib/index.js +0 -270
  635. package/plugins/learn/lib/patterns/cli-enhancers.js +0 -611
  636. package/plugins/learn/lib/patterns/pipeline.js +0 -948
  637. package/plugins/learn/lib/patterns/review-patterns.js +0 -558
  638. package/plugins/learn/lib/patterns/slop-analyzers.js +0 -2305
  639. package/plugins/learn/lib/patterns/slop-patterns.js +0 -1187
  640. package/plugins/learn/lib/perf/analyzer/index.js +0 -22
  641. package/plugins/learn/lib/perf/argument-parser.js +0 -105
  642. package/plugins/learn/lib/perf/baseline-comparator.js +0 -50
  643. package/plugins/learn/lib/perf/baseline-store.js +0 -127
  644. package/plugins/learn/lib/perf/benchmark-runner.js +0 -404
  645. package/plugins/learn/lib/perf/breaking-point-finder.js +0 -52
  646. package/plugins/learn/lib/perf/breaking-point-runner.js +0 -60
  647. package/plugins/learn/lib/perf/checkpoint.js +0 -123
  648. package/plugins/learn/lib/perf/code-paths.js +0 -86
  649. package/plugins/learn/lib/perf/consolidation.js +0 -37
  650. package/plugins/learn/lib/perf/constraint-runner.js +0 -71
  651. package/plugins/learn/lib/perf/experiment-runner.js +0 -32
  652. package/plugins/learn/lib/perf/index.js +0 -41
  653. package/plugins/learn/lib/perf/investigation-state.js +0 -874
  654. package/plugins/learn/lib/perf/optimization-runner.js +0 -79
  655. package/plugins/learn/lib/perf/profilers/go.js +0 -22
  656. package/plugins/learn/lib/perf/profilers/index.js +0 -46
  657. package/plugins/learn/lib/perf/profilers/java.js +0 -23
  658. package/plugins/learn/lib/perf/profilers/node.js +0 -27
  659. package/plugins/learn/lib/perf/profilers/python.js +0 -23
  660. package/plugins/learn/lib/perf/profilers/rust.js +0 -23
  661. package/plugins/learn/lib/perf/profiling-runner.js +0 -75
  662. package/plugins/learn/lib/perf/schemas.js +0 -140
  663. package/plugins/learn/lib/platform/detect-platform.js +0 -413
  664. package/plugins/learn/lib/platform/detection-configs.js +0 -93
  665. package/plugins/learn/lib/platform/state-dir.js +0 -132
  666. package/plugins/learn/lib/platform/verify-tools.js +0 -182
  667. package/plugins/learn/lib/repo-map/cache.js +0 -152
  668. package/plugins/learn/lib/repo-map/concurrency.js +0 -29
  669. package/plugins/learn/lib/repo-map/index.js +0 -222
  670. package/plugins/learn/lib/repo-map/installer.js +0 -212
  671. package/plugins/learn/lib/repo-map/queries/go.js +0 -27
  672. package/plugins/learn/lib/repo-map/queries/index.js +0 -100
  673. package/plugins/learn/lib/repo-map/queries/java.js +0 -38
  674. package/plugins/learn/lib/repo-map/queries/javascript.js +0 -55
  675. package/plugins/learn/lib/repo-map/queries/python.js +0 -24
  676. package/plugins/learn/lib/repo-map/queries/rust.js +0 -73
  677. package/plugins/learn/lib/repo-map/queries/typescript.js +0 -38
  678. package/plugins/learn/lib/repo-map/runner.js +0 -1364
  679. package/plugins/learn/lib/repo-map/updater.js +0 -562
  680. package/plugins/learn/lib/repo-map/usage-analyzer.js +0 -407
  681. package/plugins/learn/lib/schemas/plugin-manifest.schema.json +0 -57
  682. package/plugins/learn/lib/schemas/validator.js +0 -247
  683. package/plugins/learn/lib/sources/custom-handler.js +0 -199
  684. package/plugins/learn/lib/sources/policy-questions.js +0 -246
  685. package/plugins/learn/lib/sources/source-cache.js +0 -165
  686. package/plugins/learn/lib/state/workflow-state.js +0 -576
  687. package/plugins/learn/lib/types/agent-frontmatter.d.ts +0 -134
  688. package/plugins/learn/lib/types/command-frontmatter.d.ts +0 -107
  689. package/plugins/learn/lib/types/hook-frontmatter.d.ts +0 -115
  690. package/plugins/learn/lib/types/index.d.ts +0 -84
  691. package/plugins/learn/lib/types/plugin-manifest.d.ts +0 -102
  692. package/plugins/learn/lib/types/skill-frontmatter.d.ts +0 -89
  693. package/plugins/learn/lib/utils/atomic-write.js +0 -94
  694. package/plugins/learn/lib/utils/cache-manager.js +0 -159
  695. package/plugins/learn/lib/utils/command-parser.js +0 -0
  696. package/plugins/learn/lib/utils/context-optimizer.js +0 -300
  697. package/plugins/learn/lib/utils/deprecation.js +0 -37
  698. package/plugins/learn/lib/utils/shell-escape.js +0 -88
  699. package/plugins/learn/lib/utils/state-helpers.js +0 -61
  700. package/plugins/learn/skills/learn/SKILL.md +0 -349
  701. package/plugins/next-task/.claude-plugin/plugin.json +0 -24
  702. package/plugins/next-task/agents/ci-fixer.md +0 -259
  703. package/plugins/next-task/agents/ci-monitor.md +0 -342
  704. package/plugins/next-task/agents/delivery-validator.md +0 -115
  705. package/plugins/next-task/agents/exploration-agent.md +0 -316
  706. package/plugins/next-task/agents/implementation-agent.md +0 -465
  707. package/plugins/next-task/agents/planning-agent.md +0 -377
  708. package/plugins/next-task/agents/simple-fixer.md +0 -139
  709. package/plugins/next-task/agents/task-discoverer.md +0 -89
  710. package/plugins/next-task/agents/test-coverage-checker.md +0 -451
  711. package/plugins/next-task/agents/worktree-manager.md +0 -257
  712. package/plugins/next-task/commands/delivery-approval.md +0 -341
  713. package/plugins/next-task/commands/next-task.md +0 -547
  714. package/plugins/next-task/hooks/hooks.json +0 -14
  715. package/plugins/next-task/lib/adapter-transforms.js +0 -278
  716. package/plugins/next-task/lib/collectors/codebase.js +0 -392
  717. package/plugins/next-task/lib/collectors/docs-patterns.js +0 -713
  718. package/plugins/next-task/lib/collectors/documentation.js +0 -219
  719. package/plugins/next-task/lib/collectors/github.js +0 -330
  720. package/plugins/next-task/lib/collectors/index.js +0 -126
  721. package/plugins/next-task/lib/config/index.js +0 -14
  722. package/plugins/next-task/lib/cross-platform/index.js +0 -539
  723. package/plugins/next-task/lib/discovery/index.js +0 -352
  724. package/plugins/next-task/lib/drift-detect/collectors.js +0 -37
  725. package/plugins/next-task/lib/enhance/agent-analyzer.js +0 -421
  726. package/plugins/next-task/lib/enhance/agent-patterns.js +0 -571
  727. package/plugins/next-task/lib/enhance/auto-suppression.js +0 -622
  728. package/plugins/next-task/lib/enhance/benchmark.js +0 -417
  729. package/plugins/next-task/lib/enhance/cross-file-analyzer.js +0 -930
  730. package/plugins/next-task/lib/enhance/cross-file-patterns.js +0 -370
  731. package/plugins/next-task/lib/enhance/docs-analyzer.js +0 -325
  732. package/plugins/next-task/lib/enhance/docs-patterns.js +0 -671
  733. package/plugins/next-task/lib/enhance/fixer.js +0 -721
  734. package/plugins/next-task/lib/enhance/hook-analyzer.js +0 -135
  735. package/plugins/next-task/lib/enhance/hook-patterns.js +0 -40
  736. package/plugins/next-task/lib/enhance/index.js +0 -127
  737. package/plugins/next-task/lib/enhance/plugin-analyzer.js +0 -402
  738. package/plugins/next-task/lib/enhance/plugin-patterns.js +0 -326
  739. package/plugins/next-task/lib/enhance/projectmemory-analyzer.js +0 -551
  740. package/plugins/next-task/lib/enhance/projectmemory-patterns.js +0 -617
  741. package/plugins/next-task/lib/enhance/prompt-analyzer.js +0 -457
  742. package/plugins/next-task/lib/enhance/prompt-patterns.js +0 -1484
  743. package/plugins/next-task/lib/enhance/reporter.js +0 -1348
  744. package/plugins/next-task/lib/enhance/security-patterns.js +0 -284
  745. package/plugins/next-task/lib/enhance/skill-analyzer.js +0 -182
  746. package/plugins/next-task/lib/enhance/skill-patterns.js +0 -147
  747. package/plugins/next-task/lib/enhance/suppression.js +0 -352
  748. package/plugins/next-task/lib/enhance/tool-patterns.js +0 -373
  749. package/plugins/next-task/lib/index.js +0 -270
  750. package/plugins/next-task/lib/patterns/cli-enhancers.js +0 -611
  751. package/plugins/next-task/lib/patterns/pipeline.js +0 -948
  752. package/plugins/next-task/lib/patterns/review-patterns.js +0 -558
  753. package/plugins/next-task/lib/patterns/slop-analyzers.js +0 -2305
  754. package/plugins/next-task/lib/patterns/slop-patterns.js +0 -1187
  755. package/plugins/next-task/lib/perf/analyzer/index.js +0 -22
  756. package/plugins/next-task/lib/perf/argument-parser.js +0 -105
  757. package/plugins/next-task/lib/perf/baseline-comparator.js +0 -50
  758. package/plugins/next-task/lib/perf/baseline-store.js +0 -127
  759. package/plugins/next-task/lib/perf/benchmark-runner.js +0 -404
  760. package/plugins/next-task/lib/perf/breaking-point-finder.js +0 -52
  761. package/plugins/next-task/lib/perf/breaking-point-runner.js +0 -60
  762. package/plugins/next-task/lib/perf/checkpoint.js +0 -123
  763. package/plugins/next-task/lib/perf/code-paths.js +0 -86
  764. package/plugins/next-task/lib/perf/consolidation.js +0 -37
  765. package/plugins/next-task/lib/perf/constraint-runner.js +0 -71
  766. package/plugins/next-task/lib/perf/experiment-runner.js +0 -32
  767. package/plugins/next-task/lib/perf/index.js +0 -41
  768. package/plugins/next-task/lib/perf/investigation-state.js +0 -874
  769. package/plugins/next-task/lib/perf/optimization-runner.js +0 -79
  770. package/plugins/next-task/lib/perf/profilers/go.js +0 -22
  771. package/plugins/next-task/lib/perf/profilers/index.js +0 -46
  772. package/plugins/next-task/lib/perf/profilers/java.js +0 -23
  773. package/plugins/next-task/lib/perf/profilers/node.js +0 -27
  774. package/plugins/next-task/lib/perf/profilers/python.js +0 -23
  775. package/plugins/next-task/lib/perf/profilers/rust.js +0 -23
  776. package/plugins/next-task/lib/perf/profiling-runner.js +0 -75
  777. package/plugins/next-task/lib/perf/schemas.js +0 -140
  778. package/plugins/next-task/lib/platform/detect-platform.js +0 -413
  779. package/plugins/next-task/lib/platform/detection-configs.js +0 -93
  780. package/plugins/next-task/lib/platform/state-dir.js +0 -132
  781. package/plugins/next-task/lib/platform/verify-tools.js +0 -182
  782. package/plugins/next-task/lib/repo-map/cache.js +0 -152
  783. package/plugins/next-task/lib/repo-map/concurrency.js +0 -29
  784. package/plugins/next-task/lib/repo-map/index.js +0 -222
  785. package/plugins/next-task/lib/repo-map/installer.js +0 -212
  786. package/plugins/next-task/lib/repo-map/queries/go.js +0 -27
  787. package/plugins/next-task/lib/repo-map/queries/index.js +0 -100
  788. package/plugins/next-task/lib/repo-map/queries/java.js +0 -38
  789. package/plugins/next-task/lib/repo-map/queries/javascript.js +0 -55
  790. package/plugins/next-task/lib/repo-map/queries/python.js +0 -24
  791. package/plugins/next-task/lib/repo-map/queries/rust.js +0 -73
  792. package/plugins/next-task/lib/repo-map/queries/typescript.js +0 -38
  793. package/plugins/next-task/lib/repo-map/runner.js +0 -1364
  794. package/plugins/next-task/lib/repo-map/updater.js +0 -562
  795. package/plugins/next-task/lib/repo-map/usage-analyzer.js +0 -407
  796. package/plugins/next-task/lib/schemas/plugin-manifest.schema.json +0 -57
  797. package/plugins/next-task/lib/schemas/validator.js +0 -247
  798. package/plugins/next-task/lib/sources/custom-handler.js +0 -199
  799. package/plugins/next-task/lib/sources/policy-questions.js +0 -246
  800. package/plugins/next-task/lib/sources/source-cache.js +0 -165
  801. package/plugins/next-task/lib/state/workflow-state.js +0 -576
  802. package/plugins/next-task/lib/types/agent-frontmatter.d.ts +0 -134
  803. package/plugins/next-task/lib/types/command-frontmatter.d.ts +0 -107
  804. package/plugins/next-task/lib/types/hook-frontmatter.d.ts +0 -115
  805. package/plugins/next-task/lib/types/index.d.ts +0 -84
  806. package/plugins/next-task/lib/types/plugin-manifest.d.ts +0 -102
  807. package/plugins/next-task/lib/types/skill-frontmatter.d.ts +0 -89
  808. package/plugins/next-task/lib/utils/atomic-write.js +0 -94
  809. package/plugins/next-task/lib/utils/cache-manager.js +0 -159
  810. package/plugins/next-task/lib/utils/command-parser.js +0 -0
  811. package/plugins/next-task/lib/utils/context-optimizer.js +0 -300
  812. package/plugins/next-task/lib/utils/deprecation.js +0 -37
  813. package/plugins/next-task/lib/utils/shell-escape.js +0 -88
  814. package/plugins/next-task/lib/utils/state-helpers.js +0 -61
  815. package/plugins/next-task/skills/discover-tasks/SKILL.md +0 -191
  816. package/plugins/next-task/skills/orchestrate-review/SKILL.md +0 -239
  817. package/plugins/next-task/skills/validate-delivery/SKILL.md +0 -186
  818. package/plugins/perf/.claude-plugin/plugin.json +0 -20
  819. package/plugins/perf/agents/perf-analyzer.md +0 -43
  820. package/plugins/perf/agents/perf-code-paths.md +0 -16
  821. package/plugins/perf/agents/perf-investigation-logger.md +0 -47
  822. package/plugins/perf/agents/perf-orchestrator.md +0 -344
  823. package/plugins/perf/agents/perf-theory-gatherer.md +0 -25
  824. package/plugins/perf/agents/perf-theory-tester.md +0 -58
  825. package/plugins/perf/commands/perf.md +0 -470
  826. package/plugins/perf/hooks/checkpoint.md +0 -35
  827. package/plugins/perf/hooks/constraint-tester.md +0 -40
  828. package/plugins/perf/lib/adapter-transforms.js +0 -278
  829. package/plugins/perf/lib/collectors/codebase.js +0 -392
  830. package/plugins/perf/lib/collectors/docs-patterns.js +0 -713
  831. package/plugins/perf/lib/collectors/documentation.js +0 -219
  832. package/plugins/perf/lib/collectors/github.js +0 -330
  833. package/plugins/perf/lib/collectors/index.js +0 -126
  834. package/plugins/perf/lib/config/index.js +0 -14
  835. package/plugins/perf/lib/cross-platform/index.js +0 -539
  836. package/plugins/perf/lib/discovery/index.js +0 -352
  837. package/plugins/perf/lib/drift-detect/collectors.js +0 -37
  838. package/plugins/perf/lib/enhance/agent-analyzer.js +0 -421
  839. package/plugins/perf/lib/enhance/agent-patterns.js +0 -571
  840. package/plugins/perf/lib/enhance/auto-suppression.js +0 -622
  841. package/plugins/perf/lib/enhance/benchmark.js +0 -417
  842. package/plugins/perf/lib/enhance/cross-file-analyzer.js +0 -930
  843. package/plugins/perf/lib/enhance/cross-file-patterns.js +0 -370
  844. package/plugins/perf/lib/enhance/docs-analyzer.js +0 -325
  845. package/plugins/perf/lib/enhance/docs-patterns.js +0 -671
  846. package/plugins/perf/lib/enhance/fixer.js +0 -721
  847. package/plugins/perf/lib/enhance/hook-analyzer.js +0 -135
  848. package/plugins/perf/lib/enhance/hook-patterns.js +0 -40
  849. package/plugins/perf/lib/enhance/index.js +0 -127
  850. package/plugins/perf/lib/enhance/plugin-analyzer.js +0 -402
  851. package/plugins/perf/lib/enhance/plugin-patterns.js +0 -326
  852. package/plugins/perf/lib/enhance/projectmemory-analyzer.js +0 -551
  853. package/plugins/perf/lib/enhance/projectmemory-patterns.js +0 -617
  854. package/plugins/perf/lib/enhance/prompt-analyzer.js +0 -457
  855. package/plugins/perf/lib/enhance/prompt-patterns.js +0 -1484
  856. package/plugins/perf/lib/enhance/reporter.js +0 -1348
  857. package/plugins/perf/lib/enhance/security-patterns.js +0 -284
  858. package/plugins/perf/lib/enhance/skill-analyzer.js +0 -182
  859. package/plugins/perf/lib/enhance/skill-patterns.js +0 -147
  860. package/plugins/perf/lib/enhance/suppression.js +0 -352
  861. package/plugins/perf/lib/enhance/tool-patterns.js +0 -373
  862. package/plugins/perf/lib/index.js +0 -270
  863. package/plugins/perf/lib/patterns/cli-enhancers.js +0 -611
  864. package/plugins/perf/lib/patterns/pipeline.js +0 -948
  865. package/plugins/perf/lib/patterns/review-patterns.js +0 -558
  866. package/plugins/perf/lib/patterns/slop-analyzers.js +0 -2305
  867. package/plugins/perf/lib/patterns/slop-patterns.js +0 -1187
  868. package/plugins/perf/lib/perf/analyzer/index.js +0 -22
  869. package/plugins/perf/lib/perf/argument-parser.js +0 -105
  870. package/plugins/perf/lib/perf/baseline-comparator.js +0 -50
  871. package/plugins/perf/lib/perf/baseline-store.js +0 -127
  872. package/plugins/perf/lib/perf/benchmark-runner.js +0 -404
  873. package/plugins/perf/lib/perf/breaking-point-finder.js +0 -52
  874. package/plugins/perf/lib/perf/breaking-point-runner.js +0 -60
  875. package/plugins/perf/lib/perf/checkpoint.js +0 -123
  876. package/plugins/perf/lib/perf/code-paths.js +0 -86
  877. package/plugins/perf/lib/perf/consolidation.js +0 -37
  878. package/plugins/perf/lib/perf/constraint-runner.js +0 -71
  879. package/plugins/perf/lib/perf/experiment-runner.js +0 -32
  880. package/plugins/perf/lib/perf/index.js +0 -41
  881. package/plugins/perf/lib/perf/investigation-state.js +0 -874
  882. package/plugins/perf/lib/perf/optimization-runner.js +0 -79
  883. package/plugins/perf/lib/perf/profilers/go.js +0 -22
  884. package/plugins/perf/lib/perf/profilers/index.js +0 -46
  885. package/plugins/perf/lib/perf/profilers/java.js +0 -23
  886. package/plugins/perf/lib/perf/profilers/node.js +0 -27
  887. package/plugins/perf/lib/perf/profilers/python.js +0 -23
  888. package/plugins/perf/lib/perf/profilers/rust.js +0 -23
  889. package/plugins/perf/lib/perf/profiling-runner.js +0 -75
  890. package/plugins/perf/lib/perf/schemas.js +0 -140
  891. package/plugins/perf/lib/platform/detect-platform.js +0 -413
  892. package/plugins/perf/lib/platform/detection-configs.js +0 -93
  893. package/plugins/perf/lib/platform/state-dir.js +0 -132
  894. package/plugins/perf/lib/platform/verify-tools.js +0 -182
  895. package/plugins/perf/lib/repo-map/cache.js +0 -152
  896. package/plugins/perf/lib/repo-map/concurrency.js +0 -29
  897. package/plugins/perf/lib/repo-map/index.js +0 -222
  898. package/plugins/perf/lib/repo-map/installer.js +0 -212
  899. package/plugins/perf/lib/repo-map/queries/go.js +0 -27
  900. package/plugins/perf/lib/repo-map/queries/index.js +0 -100
  901. package/plugins/perf/lib/repo-map/queries/java.js +0 -38
  902. package/plugins/perf/lib/repo-map/queries/javascript.js +0 -55
  903. package/plugins/perf/lib/repo-map/queries/python.js +0 -24
  904. package/plugins/perf/lib/repo-map/queries/rust.js +0 -73
  905. package/plugins/perf/lib/repo-map/queries/typescript.js +0 -38
  906. package/plugins/perf/lib/repo-map/runner.js +0 -1364
  907. package/plugins/perf/lib/repo-map/updater.js +0 -562
  908. package/plugins/perf/lib/repo-map/usage-analyzer.js +0 -407
  909. package/plugins/perf/lib/schemas/plugin-manifest.schema.json +0 -57
  910. package/plugins/perf/lib/schemas/validator.js +0 -247
  911. package/plugins/perf/lib/sources/custom-handler.js +0 -199
  912. package/plugins/perf/lib/sources/policy-questions.js +0 -246
  913. package/plugins/perf/lib/sources/source-cache.js +0 -165
  914. package/plugins/perf/lib/state/workflow-state.js +0 -576
  915. package/plugins/perf/lib/types/agent-frontmatter.d.ts +0 -134
  916. package/plugins/perf/lib/types/command-frontmatter.d.ts +0 -107
  917. package/plugins/perf/lib/types/hook-frontmatter.d.ts +0 -115
  918. package/plugins/perf/lib/types/index.d.ts +0 -84
  919. package/plugins/perf/lib/types/plugin-manifest.d.ts +0 -102
  920. package/plugins/perf/lib/types/skill-frontmatter.d.ts +0 -89
  921. package/plugins/perf/lib/utils/atomic-write.js +0 -94
  922. package/plugins/perf/lib/utils/cache-manager.js +0 -159
  923. package/plugins/perf/lib/utils/command-parser.js +0 -0
  924. package/plugins/perf/lib/utils/context-optimizer.js +0 -300
  925. package/plugins/perf/lib/utils/deprecation.js +0 -37
  926. package/plugins/perf/lib/utils/shell-escape.js +0 -88
  927. package/plugins/perf/lib/utils/state-helpers.js +0 -61
  928. package/plugins/perf/skills/perf-analyzer/SKILL.md +0 -37
  929. package/plugins/perf/skills/perf-baseline-manager/SKILL.md +0 -30
  930. package/plugins/perf/skills/perf-benchmarker/SKILL.md +0 -52
  931. package/plugins/perf/skills/perf-code-paths/SKILL.md +0 -32
  932. package/plugins/perf/skills/perf-investigation-logger/SKILL.md +0 -41
  933. package/plugins/perf/skills/perf-profiler/SKILL.md +0 -42
  934. package/plugins/perf/skills/perf-theory-gatherer/SKILL.md +0 -35
  935. package/plugins/perf/skills/perf-theory-tester/SKILL.md +0 -36
  936. package/plugins/repo-map/.claude-plugin/plugin.json +0 -22
  937. package/plugins/repo-map/agents/map-validator.md +0 -60
  938. package/plugins/repo-map/commands/repo-map.md +0 -133
  939. package/plugins/repo-map/lib/adapter-transforms.js +0 -278
  940. package/plugins/repo-map/lib/collectors/codebase.js +0 -392
  941. package/plugins/repo-map/lib/collectors/docs-patterns.js +0 -713
  942. package/plugins/repo-map/lib/collectors/documentation.js +0 -219
  943. package/plugins/repo-map/lib/collectors/github.js +0 -330
  944. package/plugins/repo-map/lib/collectors/index.js +0 -126
  945. package/plugins/repo-map/lib/config/index.js +0 -14
  946. package/plugins/repo-map/lib/cross-platform/index.js +0 -539
  947. package/plugins/repo-map/lib/discovery/index.js +0 -352
  948. package/plugins/repo-map/lib/drift-detect/collectors.js +0 -37
  949. package/plugins/repo-map/lib/enhance/agent-analyzer.js +0 -421
  950. package/plugins/repo-map/lib/enhance/agent-patterns.js +0 -571
  951. package/plugins/repo-map/lib/enhance/auto-suppression.js +0 -622
  952. package/plugins/repo-map/lib/enhance/benchmark.js +0 -417
  953. package/plugins/repo-map/lib/enhance/cross-file-analyzer.js +0 -930
  954. package/plugins/repo-map/lib/enhance/cross-file-patterns.js +0 -370
  955. package/plugins/repo-map/lib/enhance/docs-analyzer.js +0 -325
  956. package/plugins/repo-map/lib/enhance/docs-patterns.js +0 -671
  957. package/plugins/repo-map/lib/enhance/fixer.js +0 -721
  958. package/plugins/repo-map/lib/enhance/hook-analyzer.js +0 -135
  959. package/plugins/repo-map/lib/enhance/hook-patterns.js +0 -40
  960. package/plugins/repo-map/lib/enhance/index.js +0 -127
  961. package/plugins/repo-map/lib/enhance/plugin-analyzer.js +0 -402
  962. package/plugins/repo-map/lib/enhance/plugin-patterns.js +0 -326
  963. package/plugins/repo-map/lib/enhance/projectmemory-analyzer.js +0 -551
  964. package/plugins/repo-map/lib/enhance/projectmemory-patterns.js +0 -617
  965. package/plugins/repo-map/lib/enhance/prompt-analyzer.js +0 -457
  966. package/plugins/repo-map/lib/enhance/prompt-patterns.js +0 -1484
  967. package/plugins/repo-map/lib/enhance/reporter.js +0 -1348
  968. package/plugins/repo-map/lib/enhance/security-patterns.js +0 -284
  969. package/plugins/repo-map/lib/enhance/skill-analyzer.js +0 -182
  970. package/plugins/repo-map/lib/enhance/skill-patterns.js +0 -147
  971. package/plugins/repo-map/lib/enhance/suppression.js +0 -352
  972. package/plugins/repo-map/lib/enhance/tool-patterns.js +0 -373
  973. package/plugins/repo-map/lib/index.js +0 -270
  974. package/plugins/repo-map/lib/patterns/cli-enhancers.js +0 -611
  975. package/plugins/repo-map/lib/patterns/pipeline.js +0 -948
  976. package/plugins/repo-map/lib/patterns/review-patterns.js +0 -558
  977. package/plugins/repo-map/lib/patterns/slop-analyzers.js +0 -2305
  978. package/plugins/repo-map/lib/patterns/slop-patterns.js +0 -1187
  979. package/plugins/repo-map/lib/perf/analyzer/index.js +0 -22
  980. package/plugins/repo-map/lib/perf/argument-parser.js +0 -105
  981. package/plugins/repo-map/lib/perf/baseline-comparator.js +0 -50
  982. package/plugins/repo-map/lib/perf/baseline-store.js +0 -127
  983. package/plugins/repo-map/lib/perf/benchmark-runner.js +0 -404
  984. package/plugins/repo-map/lib/perf/breaking-point-finder.js +0 -52
  985. package/plugins/repo-map/lib/perf/breaking-point-runner.js +0 -60
  986. package/plugins/repo-map/lib/perf/checkpoint.js +0 -123
  987. package/plugins/repo-map/lib/perf/code-paths.js +0 -86
  988. package/plugins/repo-map/lib/perf/consolidation.js +0 -37
  989. package/plugins/repo-map/lib/perf/constraint-runner.js +0 -71
  990. package/plugins/repo-map/lib/perf/experiment-runner.js +0 -32
  991. package/plugins/repo-map/lib/perf/index.js +0 -41
  992. package/plugins/repo-map/lib/perf/investigation-state.js +0 -874
  993. package/plugins/repo-map/lib/perf/optimization-runner.js +0 -79
  994. package/plugins/repo-map/lib/perf/profilers/go.js +0 -22
  995. package/plugins/repo-map/lib/perf/profilers/index.js +0 -46
  996. package/plugins/repo-map/lib/perf/profilers/java.js +0 -23
  997. package/plugins/repo-map/lib/perf/profilers/node.js +0 -27
  998. package/plugins/repo-map/lib/perf/profilers/python.js +0 -23
  999. package/plugins/repo-map/lib/perf/profilers/rust.js +0 -23
  1000. package/plugins/repo-map/lib/perf/profiling-runner.js +0 -75
  1001. package/plugins/repo-map/lib/perf/schemas.js +0 -140
  1002. package/plugins/repo-map/lib/platform/detect-platform.js +0 -413
  1003. package/plugins/repo-map/lib/platform/detection-configs.js +0 -93
  1004. package/plugins/repo-map/lib/platform/state-dir.js +0 -132
  1005. package/plugins/repo-map/lib/platform/verify-tools.js +0 -182
  1006. package/plugins/repo-map/lib/repo-map/cache.js +0 -152
  1007. package/plugins/repo-map/lib/repo-map/concurrency.js +0 -29
  1008. package/plugins/repo-map/lib/repo-map/index.js +0 -222
  1009. package/plugins/repo-map/lib/repo-map/installer.js +0 -212
  1010. package/plugins/repo-map/lib/repo-map/queries/go.js +0 -27
  1011. package/plugins/repo-map/lib/repo-map/queries/index.js +0 -100
  1012. package/plugins/repo-map/lib/repo-map/queries/java.js +0 -38
  1013. package/plugins/repo-map/lib/repo-map/queries/javascript.js +0 -55
  1014. package/plugins/repo-map/lib/repo-map/queries/python.js +0 -24
  1015. package/plugins/repo-map/lib/repo-map/queries/rust.js +0 -73
  1016. package/plugins/repo-map/lib/repo-map/queries/typescript.js +0 -38
  1017. package/plugins/repo-map/lib/repo-map/runner.js +0 -1364
  1018. package/plugins/repo-map/lib/repo-map/updater.js +0 -562
  1019. package/plugins/repo-map/lib/repo-map/usage-analyzer.js +0 -407
  1020. package/plugins/repo-map/lib/schemas/plugin-manifest.schema.json +0 -57
  1021. package/plugins/repo-map/lib/schemas/validator.js +0 -247
  1022. package/plugins/repo-map/lib/sources/custom-handler.js +0 -199
  1023. package/plugins/repo-map/lib/sources/policy-questions.js +0 -246
  1024. package/plugins/repo-map/lib/sources/source-cache.js +0 -165
  1025. package/plugins/repo-map/lib/state/workflow-state.js +0 -576
  1026. package/plugins/repo-map/lib/types/agent-frontmatter.d.ts +0 -134
  1027. package/plugins/repo-map/lib/types/command-frontmatter.d.ts +0 -107
  1028. package/plugins/repo-map/lib/types/hook-frontmatter.d.ts +0 -115
  1029. package/plugins/repo-map/lib/types/index.d.ts +0 -84
  1030. package/plugins/repo-map/lib/types/plugin-manifest.d.ts +0 -102
  1031. package/plugins/repo-map/lib/types/skill-frontmatter.d.ts +0 -89
  1032. package/plugins/repo-map/lib/utils/atomic-write.js +0 -94
  1033. package/plugins/repo-map/lib/utils/cache-manager.js +0 -159
  1034. package/plugins/repo-map/lib/utils/command-parser.js +0 -0
  1035. package/plugins/repo-map/lib/utils/context-optimizer.js +0 -300
  1036. package/plugins/repo-map/lib/utils/deprecation.js +0 -37
  1037. package/plugins/repo-map/lib/utils/shell-escape.js +0 -88
  1038. package/plugins/repo-map/lib/utils/state-helpers.js +0 -61
  1039. package/plugins/repo-map/skills/repo-mapping/SKILL.md +0 -83
  1040. package/plugins/ship/.claude-plugin/plugin.json +0 -21
  1041. package/plugins/ship/commands/ship-ci-review-loop.md +0 -472
  1042. package/plugins/ship/commands/ship-deployment.md +0 -335
  1043. package/plugins/ship/commands/ship-error-handling.md +0 -258
  1044. package/plugins/ship/commands/ship.md +0 -492
  1045. package/plugins/ship/lib/adapter-transforms.js +0 -278
  1046. package/plugins/ship/lib/collectors/codebase.js +0 -392
  1047. package/plugins/ship/lib/collectors/docs-patterns.js +0 -713
  1048. package/plugins/ship/lib/collectors/documentation.js +0 -219
  1049. package/plugins/ship/lib/collectors/github.js +0 -330
  1050. package/plugins/ship/lib/collectors/index.js +0 -126
  1051. package/plugins/ship/lib/config/index.js +0 -14
  1052. package/plugins/ship/lib/cross-platform/index.js +0 -539
  1053. package/plugins/ship/lib/discovery/index.js +0 -352
  1054. package/plugins/ship/lib/drift-detect/collectors.js +0 -37
  1055. package/plugins/ship/lib/enhance/agent-analyzer.js +0 -421
  1056. package/plugins/ship/lib/enhance/agent-patterns.js +0 -571
  1057. package/plugins/ship/lib/enhance/auto-suppression.js +0 -622
  1058. package/plugins/ship/lib/enhance/benchmark.js +0 -417
  1059. package/plugins/ship/lib/enhance/cross-file-analyzer.js +0 -930
  1060. package/plugins/ship/lib/enhance/cross-file-patterns.js +0 -370
  1061. package/plugins/ship/lib/enhance/docs-analyzer.js +0 -325
  1062. package/plugins/ship/lib/enhance/docs-patterns.js +0 -671
  1063. package/plugins/ship/lib/enhance/fixer.js +0 -721
  1064. package/plugins/ship/lib/enhance/hook-analyzer.js +0 -135
  1065. package/plugins/ship/lib/enhance/hook-patterns.js +0 -40
  1066. package/plugins/ship/lib/enhance/index.js +0 -127
  1067. package/plugins/ship/lib/enhance/plugin-analyzer.js +0 -402
  1068. package/plugins/ship/lib/enhance/plugin-patterns.js +0 -326
  1069. package/plugins/ship/lib/enhance/projectmemory-analyzer.js +0 -551
  1070. package/plugins/ship/lib/enhance/projectmemory-patterns.js +0 -617
  1071. package/plugins/ship/lib/enhance/prompt-analyzer.js +0 -457
  1072. package/plugins/ship/lib/enhance/prompt-patterns.js +0 -1484
  1073. package/plugins/ship/lib/enhance/reporter.js +0 -1348
  1074. package/plugins/ship/lib/enhance/security-patterns.js +0 -284
  1075. package/plugins/ship/lib/enhance/skill-analyzer.js +0 -182
  1076. package/plugins/ship/lib/enhance/skill-patterns.js +0 -147
  1077. package/plugins/ship/lib/enhance/suppression.js +0 -352
  1078. package/plugins/ship/lib/enhance/tool-patterns.js +0 -373
  1079. package/plugins/ship/lib/index.js +0 -270
  1080. package/plugins/ship/lib/patterns/cli-enhancers.js +0 -611
  1081. package/plugins/ship/lib/patterns/pipeline.js +0 -948
  1082. package/plugins/ship/lib/patterns/review-patterns.js +0 -558
  1083. package/plugins/ship/lib/patterns/slop-analyzers.js +0 -2305
  1084. package/plugins/ship/lib/patterns/slop-patterns.js +0 -1187
  1085. package/plugins/ship/lib/perf/analyzer/index.js +0 -22
  1086. package/plugins/ship/lib/perf/argument-parser.js +0 -105
  1087. package/plugins/ship/lib/perf/baseline-comparator.js +0 -50
  1088. package/plugins/ship/lib/perf/baseline-store.js +0 -127
  1089. package/plugins/ship/lib/perf/benchmark-runner.js +0 -404
  1090. package/plugins/ship/lib/perf/breaking-point-finder.js +0 -52
  1091. package/plugins/ship/lib/perf/breaking-point-runner.js +0 -60
  1092. package/plugins/ship/lib/perf/checkpoint.js +0 -123
  1093. package/plugins/ship/lib/perf/code-paths.js +0 -86
  1094. package/plugins/ship/lib/perf/consolidation.js +0 -37
  1095. package/plugins/ship/lib/perf/constraint-runner.js +0 -71
  1096. package/plugins/ship/lib/perf/experiment-runner.js +0 -32
  1097. package/plugins/ship/lib/perf/index.js +0 -41
  1098. package/plugins/ship/lib/perf/investigation-state.js +0 -874
  1099. package/plugins/ship/lib/perf/optimization-runner.js +0 -79
  1100. package/plugins/ship/lib/perf/profilers/go.js +0 -22
  1101. package/plugins/ship/lib/perf/profilers/index.js +0 -46
  1102. package/plugins/ship/lib/perf/profilers/java.js +0 -23
  1103. package/plugins/ship/lib/perf/profilers/node.js +0 -27
  1104. package/plugins/ship/lib/perf/profilers/python.js +0 -23
  1105. package/plugins/ship/lib/perf/profilers/rust.js +0 -23
  1106. package/plugins/ship/lib/perf/profiling-runner.js +0 -75
  1107. package/plugins/ship/lib/perf/schemas.js +0 -140
  1108. package/plugins/ship/lib/platform/detect-platform.js +0 -413
  1109. package/plugins/ship/lib/platform/detection-configs.js +0 -93
  1110. package/plugins/ship/lib/platform/state-dir.js +0 -132
  1111. package/plugins/ship/lib/platform/verify-tools.js +0 -182
  1112. package/plugins/ship/lib/repo-map/cache.js +0 -152
  1113. package/plugins/ship/lib/repo-map/concurrency.js +0 -29
  1114. package/plugins/ship/lib/repo-map/index.js +0 -222
  1115. package/plugins/ship/lib/repo-map/installer.js +0 -212
  1116. package/plugins/ship/lib/repo-map/queries/go.js +0 -27
  1117. package/plugins/ship/lib/repo-map/queries/index.js +0 -100
  1118. package/plugins/ship/lib/repo-map/queries/java.js +0 -38
  1119. package/plugins/ship/lib/repo-map/queries/javascript.js +0 -55
  1120. package/plugins/ship/lib/repo-map/queries/python.js +0 -24
  1121. package/plugins/ship/lib/repo-map/queries/rust.js +0 -73
  1122. package/plugins/ship/lib/repo-map/queries/typescript.js +0 -38
  1123. package/plugins/ship/lib/repo-map/runner.js +0 -1364
  1124. package/plugins/ship/lib/repo-map/updater.js +0 -562
  1125. package/plugins/ship/lib/repo-map/usage-analyzer.js +0 -407
  1126. package/plugins/ship/lib/schemas/plugin-manifest.schema.json +0 -57
  1127. package/plugins/ship/lib/schemas/validator.js +0 -247
  1128. package/plugins/ship/lib/sources/custom-handler.js +0 -199
  1129. package/plugins/ship/lib/sources/policy-questions.js +0 -246
  1130. package/plugins/ship/lib/sources/source-cache.js +0 -165
  1131. package/plugins/ship/lib/state/workflow-state.js +0 -576
  1132. package/plugins/ship/lib/types/agent-frontmatter.d.ts +0 -134
  1133. package/plugins/ship/lib/types/command-frontmatter.d.ts +0 -107
  1134. package/plugins/ship/lib/types/hook-frontmatter.d.ts +0 -115
  1135. package/plugins/ship/lib/types/index.d.ts +0 -84
  1136. package/plugins/ship/lib/types/plugin-manifest.d.ts +0 -102
  1137. package/plugins/ship/lib/types/skill-frontmatter.d.ts +0 -89
  1138. package/plugins/ship/lib/utils/atomic-write.js +0 -94
  1139. package/plugins/ship/lib/utils/cache-manager.js +0 -159
  1140. package/plugins/ship/lib/utils/command-parser.js +0 -0
  1141. package/plugins/ship/lib/utils/context-optimizer.js +0 -300
  1142. package/plugins/ship/lib/utils/deprecation.js +0 -37
  1143. package/plugins/ship/lib/utils/shell-escape.js +0 -88
  1144. package/plugins/ship/lib/utils/state-helpers.js +0 -61
  1145. package/plugins/sync-docs/.claude-plugin/plugin.json +0 -20
  1146. package/plugins/sync-docs/agents/sync-docs-agent.md +0 -154
  1147. package/plugins/sync-docs/commands/sync-docs.md +0 -186
  1148. package/plugins/sync-docs/lib/adapter-transforms.js +0 -278
  1149. package/plugins/sync-docs/lib/collectors/codebase.js +0 -392
  1150. package/plugins/sync-docs/lib/collectors/docs-patterns.js +0 -713
  1151. package/plugins/sync-docs/lib/collectors/documentation.js +0 -219
  1152. package/plugins/sync-docs/lib/collectors/github.js +0 -330
  1153. package/plugins/sync-docs/lib/collectors/index.js +0 -126
  1154. package/plugins/sync-docs/lib/config/index.js +0 -14
  1155. package/plugins/sync-docs/lib/cross-platform/index.js +0 -539
  1156. package/plugins/sync-docs/lib/discovery/index.js +0 -352
  1157. package/plugins/sync-docs/lib/drift-detect/collectors.js +0 -37
  1158. package/plugins/sync-docs/lib/enhance/agent-analyzer.js +0 -421
  1159. package/plugins/sync-docs/lib/enhance/agent-patterns.js +0 -571
  1160. package/plugins/sync-docs/lib/enhance/auto-suppression.js +0 -622
  1161. package/plugins/sync-docs/lib/enhance/benchmark.js +0 -417
  1162. package/plugins/sync-docs/lib/enhance/cross-file-analyzer.js +0 -930
  1163. package/plugins/sync-docs/lib/enhance/cross-file-patterns.js +0 -370
  1164. package/plugins/sync-docs/lib/enhance/docs-analyzer.js +0 -325
  1165. package/plugins/sync-docs/lib/enhance/docs-patterns.js +0 -671
  1166. package/plugins/sync-docs/lib/enhance/fixer.js +0 -721
  1167. package/plugins/sync-docs/lib/enhance/hook-analyzer.js +0 -135
  1168. package/plugins/sync-docs/lib/enhance/hook-patterns.js +0 -40
  1169. package/plugins/sync-docs/lib/enhance/index.js +0 -127
  1170. package/plugins/sync-docs/lib/enhance/plugin-analyzer.js +0 -402
  1171. package/plugins/sync-docs/lib/enhance/plugin-patterns.js +0 -326
  1172. package/plugins/sync-docs/lib/enhance/projectmemory-analyzer.js +0 -551
  1173. package/plugins/sync-docs/lib/enhance/projectmemory-patterns.js +0 -617
  1174. package/plugins/sync-docs/lib/enhance/prompt-analyzer.js +0 -457
  1175. package/plugins/sync-docs/lib/enhance/prompt-patterns.js +0 -1484
  1176. package/plugins/sync-docs/lib/enhance/reporter.js +0 -1348
  1177. package/plugins/sync-docs/lib/enhance/security-patterns.js +0 -284
  1178. package/plugins/sync-docs/lib/enhance/skill-analyzer.js +0 -182
  1179. package/plugins/sync-docs/lib/enhance/skill-patterns.js +0 -147
  1180. package/plugins/sync-docs/lib/enhance/suppression.js +0 -352
  1181. package/plugins/sync-docs/lib/enhance/tool-patterns.js +0 -373
  1182. package/plugins/sync-docs/lib/index.js +0 -270
  1183. package/plugins/sync-docs/lib/patterns/cli-enhancers.js +0 -611
  1184. package/plugins/sync-docs/lib/patterns/pipeline.js +0 -948
  1185. package/plugins/sync-docs/lib/patterns/review-patterns.js +0 -558
  1186. package/plugins/sync-docs/lib/patterns/slop-analyzers.js +0 -2305
  1187. package/plugins/sync-docs/lib/patterns/slop-patterns.js +0 -1187
  1188. package/plugins/sync-docs/lib/perf/analyzer/index.js +0 -22
  1189. package/plugins/sync-docs/lib/perf/argument-parser.js +0 -105
  1190. package/plugins/sync-docs/lib/perf/baseline-comparator.js +0 -50
  1191. package/plugins/sync-docs/lib/perf/baseline-store.js +0 -127
  1192. package/plugins/sync-docs/lib/perf/benchmark-runner.js +0 -404
  1193. package/plugins/sync-docs/lib/perf/breaking-point-finder.js +0 -52
  1194. package/plugins/sync-docs/lib/perf/breaking-point-runner.js +0 -60
  1195. package/plugins/sync-docs/lib/perf/checkpoint.js +0 -123
  1196. package/plugins/sync-docs/lib/perf/code-paths.js +0 -86
  1197. package/plugins/sync-docs/lib/perf/consolidation.js +0 -37
  1198. package/plugins/sync-docs/lib/perf/constraint-runner.js +0 -71
  1199. package/plugins/sync-docs/lib/perf/experiment-runner.js +0 -32
  1200. package/plugins/sync-docs/lib/perf/index.js +0 -41
  1201. package/plugins/sync-docs/lib/perf/investigation-state.js +0 -874
  1202. package/plugins/sync-docs/lib/perf/optimization-runner.js +0 -79
  1203. package/plugins/sync-docs/lib/perf/profilers/go.js +0 -22
  1204. package/plugins/sync-docs/lib/perf/profilers/index.js +0 -46
  1205. package/plugins/sync-docs/lib/perf/profilers/java.js +0 -23
  1206. package/plugins/sync-docs/lib/perf/profilers/node.js +0 -27
  1207. package/plugins/sync-docs/lib/perf/profilers/python.js +0 -23
  1208. package/plugins/sync-docs/lib/perf/profilers/rust.js +0 -23
  1209. package/plugins/sync-docs/lib/perf/profiling-runner.js +0 -75
  1210. package/plugins/sync-docs/lib/perf/schemas.js +0 -140
  1211. package/plugins/sync-docs/lib/platform/detect-platform.js +0 -413
  1212. package/plugins/sync-docs/lib/platform/detection-configs.js +0 -93
  1213. package/plugins/sync-docs/lib/platform/state-dir.js +0 -132
  1214. package/plugins/sync-docs/lib/platform/verify-tools.js +0 -182
  1215. package/plugins/sync-docs/lib/repo-map/cache.js +0 -152
  1216. package/plugins/sync-docs/lib/repo-map/concurrency.js +0 -29
  1217. package/plugins/sync-docs/lib/repo-map/index.js +0 -222
  1218. package/plugins/sync-docs/lib/repo-map/installer.js +0 -212
  1219. package/plugins/sync-docs/lib/repo-map/queries/go.js +0 -27
  1220. package/plugins/sync-docs/lib/repo-map/queries/index.js +0 -100
  1221. package/plugins/sync-docs/lib/repo-map/queries/java.js +0 -38
  1222. package/plugins/sync-docs/lib/repo-map/queries/javascript.js +0 -55
  1223. package/plugins/sync-docs/lib/repo-map/queries/python.js +0 -24
  1224. package/plugins/sync-docs/lib/repo-map/queries/rust.js +0 -73
  1225. package/plugins/sync-docs/lib/repo-map/queries/typescript.js +0 -38
  1226. package/plugins/sync-docs/lib/repo-map/runner.js +0 -1364
  1227. package/plugins/sync-docs/lib/repo-map/updater.js +0 -562
  1228. package/plugins/sync-docs/lib/repo-map/usage-analyzer.js +0 -407
  1229. package/plugins/sync-docs/lib/schemas/plugin-manifest.schema.json +0 -57
  1230. package/plugins/sync-docs/lib/schemas/validator.js +0 -247
  1231. package/plugins/sync-docs/lib/sources/custom-handler.js +0 -199
  1232. package/plugins/sync-docs/lib/sources/policy-questions.js +0 -246
  1233. package/plugins/sync-docs/lib/sources/source-cache.js +0 -165
  1234. package/plugins/sync-docs/lib/state/workflow-state.js +0 -576
  1235. package/plugins/sync-docs/lib/types/agent-frontmatter.d.ts +0 -134
  1236. package/plugins/sync-docs/lib/types/command-frontmatter.d.ts +0 -107
  1237. package/plugins/sync-docs/lib/types/hook-frontmatter.d.ts +0 -115
  1238. package/plugins/sync-docs/lib/types/index.d.ts +0 -84
  1239. package/plugins/sync-docs/lib/types/plugin-manifest.d.ts +0 -102
  1240. package/plugins/sync-docs/lib/types/skill-frontmatter.d.ts +0 -89
  1241. package/plugins/sync-docs/lib/utils/atomic-write.js +0 -94
  1242. package/plugins/sync-docs/lib/utils/cache-manager.js +0 -159
  1243. package/plugins/sync-docs/lib/utils/command-parser.js +0 -0
  1244. package/plugins/sync-docs/lib/utils/context-optimizer.js +0 -300
  1245. package/plugins/sync-docs/lib/utils/deprecation.js +0 -37
  1246. package/plugins/sync-docs/lib/utils/shell-escape.js +0 -88
  1247. package/plugins/sync-docs/lib/utils/state-helpers.js +0 -61
  1248. package/plugins/sync-docs/skills/sync-docs/SKILL.md +0 -351
package/bin/cli.js CHANGED
@@ -8,10 +8,12 @@
8
8
  * Remove: npm uninstall -g agentsys && agentsys --remove
9
9
  */
10
10
 
11
- const { execSync } = require('child_process');
11
+ const { execSync, execFileSync } = require('child_process');
12
12
  const fs = require('fs');
13
13
  const path = require('path');
14
14
  const readline = require('readline');
15
+ const https = require('https');
16
+ const { createGunzip } = require('zlib');
15
17
 
16
18
  const VERSION = require('../package.json').version;
17
19
  // Use the installed npm package directory as source (no git clone needed)
@@ -20,7 +22,7 @@ const discovery = require('../lib/discovery');
20
22
  const transforms = require('../lib/adapter-transforms');
21
23
 
22
24
  // Valid tool names
23
- const VALID_TOOLS = ['claude', 'opencode', 'codex'];
25
+ const VALID_TOOLS = ['claude', 'opencode', 'codex', 'cursor'];
24
26
 
25
27
  function getInstallDir() {
26
28
  const home = process.env.HOME || process.env.USERPROFILE;
@@ -54,7 +56,7 @@ function getConfigPath(platform) {
54
56
 
55
57
  function commandExists(cmd) {
56
58
  try {
57
- execSync(`${process.platform === 'win32' ? 'where' : 'which'} ${cmd}`, { stdio: 'pipe' });
59
+ execFileSync(process.platform === 'win32' ? 'where.exe' : 'which', [cmd], { stdio: 'pipe' });
58
60
  return true;
59
61
  } catch {
60
62
  return false;
@@ -84,6 +86,9 @@ function parseArgs(args) {
84
86
  stripModels: true, // Default: strip models
85
87
  tool: null, // Single tool
86
88
  tools: [], // Multiple tools
89
+ only: [], // --only flag: selective plugin install
90
+ subcommand: null, // 'update', 'list', 'install', 'remove', 'search'
91
+ subcommandArg: null, // argument for subcommand (e.g. plugin name)
87
92
  };
88
93
 
89
94
  for (let i = 0; i < args.length; i++) {
@@ -102,6 +107,10 @@ function parseArgs(args) {
102
107
  } else if (arg === '--strip-models') {
103
108
  // Legacy flag, now default behavior
104
109
  result.stripModels = true;
110
+ } else if (arg === '--only' && args[i + 1]) {
111
+ const pluginList = args[i + 1].split(',').map(p => p.trim()).filter(Boolean);
112
+ result.only.push(...pluginList);
113
+ i++;
105
114
  } else if (arg === '--tool' && args[i + 1]) {
106
115
  const tool = args[i + 1].toLowerCase();
107
116
  if (VALID_TOOLS.includes(tool)) {
@@ -121,6 +130,20 @@ function parseArgs(args) {
121
130
  result.tools.push(tool);
122
131
  }
123
132
  i++;
133
+ } else if (['update', 'list', 'install', 'remove', 'search'].includes(arg)) {
134
+ result.subcommand = arg;
135
+ // Check for subcommand --help
136
+ if (args[i + 1] && (args[i + 1] === '--help' || args[i + 1] === '-h')) {
137
+ result.subcommandArg = '--help';
138
+ i++;
139
+ // For 'list': accept --all, --agents, --skills, --commands, --hooks, --plugins
140
+ } else if (arg === 'list' && args[i + 1] && ['--all', '--agents', '--skills', '--commands', '--hooks', '--plugins'].includes(args[i + 1])) {
141
+ result.subcommandArg = args[i + 1];
142
+ i++;
143
+ } else if (args[i + 1] && !args[i + 1].startsWith('-')) {
144
+ result.subcommandArg = args[i + 1];
145
+ i++;
146
+ }
124
147
  }
125
148
  }
126
149
 
@@ -191,6 +214,929 @@ function installDependencies(installDir) {
191
214
  execSync('npm install --production', { cwd: installDir, stdio: 'inherit' });
192
215
  }
193
216
 
217
+ // --- External Plugin Fetching ---
218
+
219
+ function getPluginCacheDir() {
220
+ const home = process.env.HOME || process.env.USERPROFILE;
221
+ return path.join(home, '.agentsys', 'plugins');
222
+ }
223
+
224
+ function loadMarketplace() {
225
+ const marketplacePath = path.join(PACKAGE_DIR, '.claude-plugin', 'marketplace.json');
226
+ if (!fs.existsSync(marketplacePath)) {
227
+ console.error('[ERROR] marketplace.json not found at ' + marketplacePath);
228
+ process.exit(1);
229
+ }
230
+ return JSON.parse(fs.readFileSync(marketplacePath, 'utf8'));
231
+ }
232
+
233
+ /**
234
+ * Resolve the source URL string from a plugin's source field.
235
+ * Handles both legacy string format ("https://...") and the new object
236
+ * format ({ source: "url", url: "https://..." }) from Claude Code plugin schema.
237
+ * Returns null for local/bundled sources or missing values.
238
+ */
239
+ function resolveSourceUrl(source) {
240
+ if (!source) return null;
241
+ if (typeof source === 'string') return source;
242
+ if (typeof source === 'object' && source.url) return source.url;
243
+ return null;
244
+ }
245
+
246
+ /**
247
+ * Resolve plugin dependencies transitively.
248
+ *
249
+ * Circular dependencies are expected and handled: the `visiting` Set tracks
250
+ * the current DFS path and short-circuits any back-edge (e.g. next-task ->
251
+ * ship -> next-task), adding the already-visited node to `resolved` and
252
+ * returning immediately so the traversal terminates without infinite recursion.
253
+ *
254
+ * @param {string[]} names - Plugin names to resolve
255
+ * @param {Object} marketplace - Parsed marketplace.json
256
+ * @returns {string[]} All required plugin names (deduplicated, topologically ordered)
257
+ */
258
+ function resolvePluginDeps(names, marketplace) {
259
+ const pluginMap = {};
260
+ for (const p of marketplace.plugins) {
261
+ pluginMap[p.name] = p;
262
+ }
263
+
264
+ // Validate requested names exist
265
+ for (const name of names) {
266
+ if (!pluginMap[name]) {
267
+ console.error(`[ERROR] Unknown plugin: ${name}. Available: ${marketplace.plugins.map(p => p.name).join(', ')}`);
268
+ process.exit(1);
269
+ }
270
+ }
271
+
272
+ const resolved = new Set();
273
+ const visiting = new Set();
274
+
275
+ function visit(name) {
276
+ if (resolved.has(name)) return;
277
+ if (visiting.has(name)) {
278
+ // Circular dep - just add it and stop recursing
279
+ resolved.add(name);
280
+ return;
281
+ }
282
+ visiting.add(name);
283
+
284
+ visiting.delete(name);
285
+ resolved.add(name);
286
+ }
287
+
288
+ for (const name of names) {
289
+ visit(name);
290
+ }
291
+
292
+ return [...resolved];
293
+ }
294
+
295
+ /**
296
+ * Download a GitHub repo tarball and extract to cache directory.
297
+ *
298
+ * @param {string} name - Plugin name
299
+ * @param {string} source - GitHub source URL (e.g. "github:agent-sh/agentsys-plugin-next-task")
300
+ * @param {string} version - Expected version string
301
+ * @returns {Promise<string>} Path to extracted plugin directory
302
+ */
303
+ async function fetchPlugin(name, source, version) {
304
+ const cacheDir = getPluginCacheDir();
305
+ const pluginDir = path.join(cacheDir, name);
306
+ const versionFile = path.join(pluginDir, '.version');
307
+
308
+ // Check cache
309
+ if (fs.existsSync(versionFile)) {
310
+ const cached = fs.readFileSync(versionFile, 'utf8').trim();
311
+ if (cached === version) {
312
+ return pluginDir;
313
+ }
314
+ }
315
+
316
+ // Parse source formats:
317
+ // "https://github.com/owner/repo" or "https://github.com/owner/repo#ref"
318
+ // "github:owner/repo" or "github:owner/repo#ref"
319
+ let owner, repo, ref;
320
+ const urlMatch = source.match(/github\.com\/([^/]+)\/([^/#]+)(?:#(.+))?/);
321
+ const shortMatch = !urlMatch && source.match(/^github:([^/]+)\/([^#]+)(?:#(.+))?$/);
322
+ const match = urlMatch || shortMatch;
323
+ if (!match) {
324
+ throw new Error(`Unsupported source format for ${name}: ${source}`);
325
+ }
326
+ owner = match[1];
327
+ repo = match[2].replace(/\.git$/, '');
328
+ ref = match[3] || `v${version}`;
329
+
330
+ console.log(` Fetching ${name}@${version} from ${owner}/${repo}...`);
331
+
332
+ // Clean and recreate
333
+ if (fs.existsSync(pluginDir)) {
334
+ fs.rmSync(pluginDir, { recursive: true, force: true });
335
+ }
336
+ fs.mkdirSync(pluginDir, { recursive: true });
337
+
338
+ // Download and extract tarball, falling back to main branch if version tag 404s
339
+ const tarballUrl = `https://api.github.com/repos/${owner}/${repo}/tarball/${ref}`;
340
+ try {
341
+ await downloadAndExtractTarball(tarballUrl, pluginDir);
342
+ } catch (err) {
343
+ if (ref !== 'main' && err.message && err.message.includes('404')) {
344
+ const mainUrl = `https://api.github.com/repos/${owner}/${repo}/tarball/main`;
345
+ await downloadAndExtractTarball(mainUrl, pluginDir);
346
+ } else {
347
+ throw err;
348
+ }
349
+ }
350
+
351
+ // Write version marker
352
+ fs.writeFileSync(versionFile, version);
353
+
354
+ return pluginDir;
355
+ }
356
+
357
+ /**
358
+ * Download a tarball from URL and extract to dest directory.
359
+ * Strips the top-level directory from the tarball (GitHub tarballs have owner-repo-sha/).
360
+ */
361
+ function downloadAndExtractTarball(url, dest) {
362
+ return new Promise((resolve, reject) => {
363
+ const ghToken = process.env.GITHUB_TOKEN || process.env.GH_TOKEN;
364
+ const request = (reqUrl, redirectCount = 0) => {
365
+ if (redirectCount > 5) {
366
+ reject(new Error(`Too many redirects fetching tarball from ${url}`));
367
+ return;
368
+ }
369
+ const headers = {
370
+ 'User-Agent': `agentsys/${VERSION}`,
371
+ 'Accept': 'application/vnd.github+json'
372
+ };
373
+ if (ghToken) headers['Authorization'] = `Bearer ${ghToken}`;
374
+ https.get(reqUrl, { headers }, (res) => {
375
+ // Follow redirects (GitHub API returns 302 to S3)
376
+ if (res.statusCode === 301 || res.statusCode === 302) {
377
+ res.resume();
378
+ request(res.headers.location, redirectCount + 1);
379
+ return;
380
+ }
381
+
382
+ if (res.statusCode !== 200) {
383
+ res.resume();
384
+ const hint = res.statusCode === 403 ? ' (rate limited — set GITHUB_TOKEN env var)' : '';
385
+ reject(new Error(`HTTP ${res.statusCode}${hint} fetching tarball from ${reqUrl}`));
386
+ return;
387
+ }
388
+
389
+ // Use tar command to extract (available on all supported platforms)
390
+ // On Windows/MSYS2, convert backslash paths to forward slashes for tar
391
+ const tarDest = process.platform === 'win32' ? dest.replace(/\\/g, '/') : dest;
392
+ const tar = require('child_process').spawn('tar', [
393
+ 'xz', '--strip-components=1', '-C', tarDest
394
+ ], { stdio: ['pipe', 'inherit', 'pipe'] });
395
+
396
+ let stderr = '';
397
+ tar.stderr.on('data', (d) => { stderr += d; });
398
+
399
+ res.pipe(tar.stdin);
400
+
401
+ tar.on('close', (code) => {
402
+ if (code !== 0) {
403
+ reject(new Error(`tar extraction failed (code ${code}): ${stderr}`));
404
+ } else {
405
+ resolve();
406
+ }
407
+ });
408
+
409
+ tar.on('error', reject);
410
+ }).on('error', reject);
411
+ };
412
+
413
+ request(url);
414
+ });
415
+ }
416
+
417
+ /**
418
+ * Discover plugins from the external cache directory (~/.agentsys/plugins/).
419
+ * Falls back to PACKAGE_DIR/plugins/ if cache doesn't exist (bundled install).
420
+ *
421
+ * @param {string[]} [onlyPlugins] - If provided, only return these plugins
422
+ * @returns {string} The root directory to use for plugin discovery
423
+ */
424
+ function resolvePluginRoot(onlyPlugins) {
425
+ const cacheDir = getPluginCacheDir();
426
+ // If we have cached external plugins, use the cache dir
427
+ if (fs.existsSync(cacheDir)) {
428
+ const entries = fs.readdirSync(cacheDir).filter(e => {
429
+ const pluginJson = path.join(cacheDir, e, '.claude-plugin', 'plugin.json');
430
+ return fs.existsSync(pluginJson);
431
+ });
432
+ if (entries.length > 0) {
433
+ // Return a synthetic root where plugins/ is the cache dir
434
+ // We need to restructure: cache has ~/.agentsys/plugins/<name>/
435
+ // but discovery expects <root>/plugins/<name>/
436
+ // The cache dir IS the plugins dir, so root is its parent
437
+ return path.join(cacheDir, '..');
438
+ }
439
+ }
440
+ // Fallback to bundled
441
+ return PACKAGE_DIR;
442
+ }
443
+
444
+ /**
445
+ * Fetch all requested plugins (with dependency resolution) to the cache.
446
+ *
447
+ * @param {string[]} pluginNames - Plugins to fetch (empty = all)
448
+ * @param {Object} marketplace - Parsed marketplace.json
449
+ * @returns {Promise<string[]>} Names of fetched plugins
450
+ */
451
+ async function fetchExternalPlugins(pluginNames, marketplace) {
452
+ const pluginMap = {};
453
+ for (const p of marketplace.plugins) {
454
+ pluginMap[p.name] = p;
455
+ }
456
+
457
+ // Determine which plugins to fetch
458
+ let toFetch;
459
+ if (pluginNames.length > 0) {
460
+ toFetch = resolvePluginDeps(pluginNames, marketplace);
461
+ } else {
462
+ toFetch = marketplace.plugins.map(p => p.name);
463
+ }
464
+
465
+ console.log(`\nFetching ${toFetch.length} plugin(s): ${toFetch.join(', ')}\n`);
466
+
467
+ const fetched = [];
468
+ const failed = [];
469
+ for (const name of toFetch) {
470
+ const plugin = pluginMap[name];
471
+ if (!plugin) continue;
472
+
473
+ // If source is local (starts with ./), plugin is bundled - just use PACKAGE_DIR
474
+ const sourceUrl = resolveSourceUrl(plugin.source);
475
+ if (!sourceUrl || sourceUrl.startsWith('./') || sourceUrl.startsWith('../')) {
476
+ // Bundled plugin, no fetch needed
477
+ fetched.push(name);
478
+ continue;
479
+ }
480
+
481
+ try {
482
+ await fetchPlugin(name, sourceUrl, plugin.version);
483
+ fetched.push(name);
484
+ } catch (err) {
485
+ failed.push(name);
486
+ console.error(` [ERROR] Failed to fetch ${name}: ${err.message}`);
487
+ }
488
+ }
489
+
490
+ if (failed.length > 0) {
491
+ const missingDeps = failed.filter(f => toFetch.includes(f) && !pluginNames.includes(f));
492
+ if (missingDeps.length > 0) {
493
+ console.error(`\n [WARN] Missing dependencies: ${missingDeps.join(', ')}`);
494
+ console.error(` Some plugins may not work correctly without their dependencies.`);
495
+ }
496
+ }
497
+
498
+ return fetched;
499
+ }
500
+
501
+ /**
502
+ * List installed plugins and their components.
503
+ * @param {string} [filter] - 'all', 'plugins', 'agents', 'skills', 'commands', 'hooks', or null (default: plugins summary)
504
+ */
505
+ function listInstalledPlugins(filter) {
506
+ const cacheDir = getPluginCacheDir();
507
+ const installed = loadInstalledJson();
508
+ const showAll = filter === 'all' || filter === '--all';
509
+ const showPlugins = !filter || filter === 'plugins' || filter === '--plugins' || showAll;
510
+ const showAgents = filter === 'agents' || filter === '--agents' || showAll;
511
+ const showSkills = filter === 'skills' || filter === '--skills' || showAll;
512
+ const showCommands = filter === 'commands' || filter === '--commands' || showAll;
513
+ const showHooks = filter === 'hooks' || filter === '--hooks' || showAll;
514
+
515
+ console.log(`\nagentsys v${VERSION}\n`);
516
+
517
+ // Gather all cached plugins
518
+ const plugins = [];
519
+ if (fs.existsSync(cacheDir)) {
520
+ const entries = fs.readdirSync(cacheDir).filter(e => {
521
+ return fs.statSync(path.join(cacheDir, e)).isDirectory();
522
+ }).sort();
523
+ for (const name of entries) {
524
+ const pluginDir = path.join(cacheDir, name);
525
+ const versionFile = path.join(pluginDir, '.version');
526
+ const ver = fs.existsSync(versionFile) ? fs.readFileSync(versionFile, 'utf8').trim() : 'unknown';
527
+ const components = loadComponents(pluginDir);
528
+ const entry = installed.plugins[name] || {};
529
+ const hooksFile = path.join(pluginDir, 'hooks', 'hooks.json');
530
+ const hasHooks = fs.existsSync(hooksFile);
531
+ plugins.push({ name, version: ver, components, entry, hasHooks, dir: pluginDir });
532
+ }
533
+ }
534
+
535
+ if (plugins.length === 0) {
536
+ console.log('No plugins installed. Run: agentsys install <plugin>\n');
537
+ return;
538
+ }
539
+
540
+ if (showPlugins && !showAll) {
541
+ // Default view: plugin summary
542
+ console.log('PLUGINS');
543
+ for (const p of plugins) {
544
+ const scope = p.entry.scope || 'full';
545
+ const scopeTag = scope === 'partial' ? '[partial]' : '[full]';
546
+ const platforms = p.entry.platforms ? p.entry.platforms.join(', ') : '';
547
+ const counts = [];
548
+ if (p.components.agents.length) counts.push(`${p.components.agents.length} agents`);
549
+ if (p.components.skills.length) counts.push(`${p.components.skills.length} skills`);
550
+ if (p.components.commands.length) counts.push(`${p.components.commands.length} cmds`);
551
+ if (p.hasHooks) counts.push('hooks');
552
+ console.log(` ${p.name.padEnd(18)} ${p.version.padEnd(10)} ${scopeTag.padEnd(10)} ${counts.join(', ')} ${platforms}`);
553
+ }
554
+ console.log();
555
+ console.log(` ${plugins.length} plugins. Use --all, --agents, --skills, --commands, --hooks for details.`);
556
+ console.log();
557
+ return;
558
+ }
559
+
560
+ if (showAll || showPlugins) {
561
+ console.log('PLUGINS');
562
+ for (const p of plugins) {
563
+ const scope = p.entry.scope || 'full';
564
+ const scopeTag = scope === 'partial' ? '[partial]' : '[full]';
565
+ console.log(` ${p.name}@${p.version} ${scopeTag}`);
566
+ }
567
+ console.log();
568
+ }
569
+
570
+ if (showAgents) {
571
+ console.log('AGENTS');
572
+ let total = 0;
573
+ for (const p of plugins) {
574
+ for (const a of p.components.agents) {
575
+ console.log(` ${p.name}:${a.name.padEnd(28)} ${(a.model || '').padEnd(8)} ${a.description || ''}`);
576
+ total++;
577
+ }
578
+ }
579
+ if (total === 0) console.log(' (none)');
580
+ console.log();
581
+ }
582
+
583
+ if (showSkills) {
584
+ console.log('SKILLS');
585
+ let total = 0;
586
+ for (const p of plugins) {
587
+ for (const s of p.components.skills) {
588
+ console.log(` ${p.name}:${s.name.padEnd(28)} ${s.description || ''}`);
589
+ total++;
590
+ }
591
+ }
592
+ if (total === 0) console.log(' (none)');
593
+ console.log();
594
+ }
595
+
596
+ if (showCommands) {
597
+ console.log('COMMANDS');
598
+ let total = 0;
599
+ for (const p of plugins) {
600
+ for (const c of p.components.commands) {
601
+ console.log(` /${c.name.padEnd(29)} ${c.description || ''}`);
602
+ total++;
603
+ }
604
+ }
605
+ if (total === 0) console.log(' (none)');
606
+ console.log();
607
+ }
608
+
609
+ if (showHooks) {
610
+ console.log('HOOKS');
611
+ let total = 0;
612
+ for (const p of plugins) {
613
+ if (p.hasHooks) {
614
+ try {
615
+ const hooks = JSON.parse(fs.readFileSync(path.join(p.dir, 'hooks', 'hooks.json'), 'utf8'));
616
+ const hookList = Array.isArray(hooks) ? hooks : (hooks.hooks || []);
617
+ for (const h of hookList) {
618
+ const event = h.event || h.matcher || 'unknown';
619
+ console.log(` ${p.name}:${String(event).padEnd(28)} ${h.description || ''}`);
620
+ total++;
621
+ }
622
+ } catch { /* skip malformed hooks */ }
623
+ }
624
+ }
625
+ if (total === 0) console.log(' (none)');
626
+ console.log();
627
+ }
628
+ }
629
+
630
+ /**
631
+ * Re-fetch all installed external plugins (update to latest versions).
632
+ */
633
+ async function updatePlugins() {
634
+ console.log(`\nagentsys v${VERSION} - Updating plugins\n`);
635
+
636
+ const marketplace = loadMarketplace();
637
+ const cacheDir = getPluginCacheDir();
638
+
639
+ if (!fs.existsSync(cacheDir)) {
640
+ console.log('No cached plugins found. Run agentsys to install first.');
641
+ return;
642
+ }
643
+
644
+ // Get currently installed external plugins
645
+ const installed = fs.readdirSync(cacheDir).filter(e => {
646
+ return fs.statSync(path.join(cacheDir, e)).isDirectory();
647
+ });
648
+
649
+ if (installed.length === 0) {
650
+ console.log('No external plugins installed.');
651
+ return;
652
+ }
653
+
654
+ // Force re-fetch by removing version files
655
+ for (const name of installed) {
656
+ const versionFile = path.join(cacheDir, name, '.version');
657
+ if (fs.existsSync(versionFile)) {
658
+ fs.unlinkSync(versionFile);
659
+ }
660
+ }
661
+
662
+ await fetchExternalPlugins(installed, marketplace);
663
+ console.log('\n[OK] Plugins updated.');
664
+ }
665
+
666
+ // --- installed.json manifest ---
667
+
668
+ function getInstalledJsonPath() {
669
+ const home = process.env.HOME || process.env.USERPROFILE;
670
+ return path.join(home, '.agentsys', 'installed.json');
671
+ }
672
+
673
+ function loadInstalledJson() {
674
+ const p = getInstalledJsonPath();
675
+ if (fs.existsSync(p)) {
676
+ try {
677
+ return JSON.parse(fs.readFileSync(p, 'utf8'));
678
+ } catch {
679
+ return { plugins: {} };
680
+ }
681
+ }
682
+ return { plugins: {} };
683
+ }
684
+
685
+ function saveInstalledJson(data) {
686
+ const p = getInstalledJsonPath();
687
+ fs.mkdirSync(path.dirname(p), { recursive: true });
688
+ fs.writeFileSync(p, JSON.stringify(data, null, 2) + '\n');
689
+ }
690
+
691
+ function recordInstall(name, version, platforms, granular) {
692
+ const data = loadInstalledJson();
693
+ const entry = {
694
+ version,
695
+ installedAt: new Date().toISOString(),
696
+ platforms,
697
+ scope: 'full'
698
+ };
699
+ if (granular && granular.scope === 'partial') {
700
+ entry.scope = 'partial';
701
+ entry.agents = granular.agents || [];
702
+ entry.skills = granular.skills || [];
703
+ entry.commands = granular.commands || [];
704
+ }
705
+ data.plugins[name] = entry;
706
+ saveInstalledJson(data);
707
+ }
708
+
709
+ function recordRemove(name) {
710
+ const data = loadInstalledJson();
711
+ delete data.plugins[name];
712
+ saveInstalledJson(data);
713
+ }
714
+
715
+ // --- Core version compatibility check ---
716
+
717
+ /**
718
+ * Simple semver range check. Supports ">=X.Y.Z" format.
719
+ * Returns true if ver satisfies the range.
720
+ */
721
+ function satisfiesRange(ver, range) {
722
+ if (!range) return true;
723
+ const parseVer = (s) => {
724
+ const m = s.match(/^(\d+)\.(\d+)\.(\d+)/);
725
+ return m ? [parseInt(m[1]), parseInt(m[2]), parseInt(m[3])] : null;
726
+ };
727
+
728
+ const greaterEq = range.match(/^>=(.+)$/);
729
+ if (greaterEq) {
730
+ const required = parseVer(greaterEq[1]);
731
+ const actual = parseVer(ver);
732
+ if (!required || !actual) return true;
733
+ for (let i = 0; i < 3; i++) {
734
+ if (actual[i] > required[i]) return true;
735
+ if (actual[i] < required[i]) return false;
736
+ }
737
+ return true; // equal
738
+ }
739
+ return true; // unknown range format, don't block
740
+ }
741
+
742
+ function checkCoreCompat(pluginEntry) {
743
+ // Core version compat check removed - field deprecated in schema
744
+ }
745
+
746
+ // --- Granular install helpers ---
747
+
748
+ /**
749
+ * Parse "plugin:component" install target format.
750
+ * @param {string} arg - e.g. "next-task:ci-fixer" or "next-task" or "next-task@1.0.0"
751
+ * @returns {{ plugin: string, component: string|null, version: string|null }}
752
+ */
753
+ function parseInstallTarget(arg) {
754
+ if (!arg || typeof arg !== 'string') {
755
+ return { plugin: null, component: null, version: null };
756
+ }
757
+
758
+ let plugin = arg;
759
+ let component = null;
760
+ let version = null;
761
+
762
+ // Check for colon (component separator) before @ (version separator)
763
+ const colonIdx = plugin.indexOf(':');
764
+ if (colonIdx > 0) {
765
+ component = plugin.slice(colonIdx + 1) || null;
766
+ plugin = plugin.slice(0, colonIdx);
767
+ }
768
+
769
+ // Check for @version on the plugin part
770
+ const atIdx = plugin.indexOf('@');
771
+ if (atIdx > 0) {
772
+ version = plugin.slice(atIdx + 1) || null;
773
+ plugin = plugin.slice(0, atIdx);
774
+ }
775
+
776
+ return { plugin: plugin || null, component, version };
777
+ }
778
+
779
+ /**
780
+ * Load components.json from a cached plugin directory.
781
+ * @param {string} pluginDir - Path to the cached plugin directory
782
+ * @returns {{ agents: Array, skills: Array, commands: Array }}
783
+ */
784
+ function loadComponents(pluginDir) {
785
+ const componentsPath = path.join(pluginDir, 'components.json');
786
+ if (fs.existsSync(componentsPath)) {
787
+ try {
788
+ const data = JSON.parse(fs.readFileSync(componentsPath, 'utf8'));
789
+ return {
790
+ agents: data.agents || [],
791
+ skills: data.skills || [],
792
+ commands: data.commands || []
793
+ };
794
+ } catch {
795
+ // Fall through to filesystem scan
796
+ }
797
+ }
798
+
799
+ // Fallback: scan filesystem
800
+ const components = { agents: [], skills: [], commands: [] };
801
+
802
+ const agentsDir = path.join(pluginDir, 'agents');
803
+ if (fs.existsSync(agentsDir)) {
804
+ const files = fs.readdirSync(agentsDir).filter(f => f.endsWith('.md'));
805
+ for (const f of files) {
806
+ components.agents.push({ name: f.replace(/\.md$/, ''), file: `agents/${f}` });
807
+ }
808
+ }
809
+
810
+ const skillsDir = path.join(pluginDir, 'skills');
811
+ if (fs.existsSync(skillsDir)) {
812
+ const dirs = fs.readdirSync(skillsDir, { withFileTypes: true }).filter(d => d.isDirectory());
813
+ for (const d of dirs) {
814
+ if (fs.existsSync(path.join(skillsDir, d.name, 'SKILL.md'))) {
815
+ components.skills.push({ name: d.name, dir: `skills/${d.name}` });
816
+ }
817
+ }
818
+ }
819
+
820
+ const commandsDir = path.join(pluginDir, 'commands');
821
+ if (fs.existsSync(commandsDir)) {
822
+ const files = fs.readdirSync(commandsDir).filter(f => f.endsWith('.md'));
823
+ for (const f of files) {
824
+ components.commands.push({ name: f.replace(/\.md$/, ''), file: `commands/${f}` });
825
+ }
826
+ }
827
+
828
+ return components;
829
+ }
830
+
831
+ /**
832
+ * Resolve which type a component belongs to.
833
+ * @param {{ agents: Array, skills: Array, commands: Array }} components
834
+ * @param {string} name - Component name to find
835
+ * @returns {{ type: string, name: string, file?: string, dir?: string }|null}
836
+ */
837
+ function resolveComponent(components, name) {
838
+ if (!name || !components) return null;
839
+
840
+ for (const agent of components.agents) {
841
+ if (agent.name === name) return { type: 'agent', name: agent.name, file: agent.file };
842
+ }
843
+ for (const skill of components.skills) {
844
+ if (skill.name === name) return { type: 'skill', name: skill.name, dir: skill.dir };
845
+ }
846
+ for (const cmd of components.commands) {
847
+ if (cmd.name === name) return { type: 'command', name: cmd.name, file: cmd.file };
848
+ }
849
+ return null;
850
+ }
851
+
852
+ /**
853
+ * Build a filter object from a resolved component.
854
+ * @param {{ type: string, name: string }} resolved
855
+ * @returns {{ agents: string[], skills: string[], commands: string[] }}
856
+ */
857
+ function buildFilterFromComponent(resolved) {
858
+ const filter = { agents: [], skills: [], commands: [] };
859
+ if (resolved.type === 'agent') filter.agents.push(resolved.name);
860
+ else if (resolved.type === 'skill') filter.skills.push(resolved.name);
861
+ else if (resolved.type === 'command') filter.commands.push(resolved.name);
862
+ return filter;
863
+ }
864
+
865
+ // --- Detect which platforms are installed ---
866
+
867
+ function detectInstalledPlatforms() {
868
+ const home = process.env.HOME || process.env.USERPROFILE;
869
+ const platforms = [];
870
+ if (fs.existsSync(path.join(home, '.claude'))) platforms.push('claude');
871
+ const opencodeDir = getOpenCodeConfigDir();
872
+ if (fs.existsSync(opencodeDir)) platforms.push('opencode');
873
+ if (fs.existsSync(path.join(home, '.codex'))) platforms.push('codex');
874
+ // Cursor rules are project-scoped; detect only if Cursor rules/commands/skills exist in CWD
875
+ const cursorDir = path.join(process.cwd(), '.cursor');
876
+ if (fs.existsSync(path.join(cursorDir, 'rules')) || fs.existsSync(path.join(cursorDir, 'commands')) || fs.existsSync(path.join(cursorDir, 'skills'))) platforms.push('cursor');
877
+ return platforms;
878
+ }
879
+
880
+ // --- install subcommand ---
881
+
882
+ async function installPlugin(nameWithVersion, args) {
883
+ // Parse plugin:component and name[@version]
884
+ const target = parseInstallTarget(nameWithVersion);
885
+ let name = target.plugin;
886
+ let requestedVersion = target.version;
887
+ const componentName = target.component;
888
+
889
+ // Legacy fallback: handle plain name@version (parseInstallTarget already handles this)
890
+ if (!name) {
891
+ console.error('[ERROR] Usage: agentsys install <plugin[:component][@version]>');
892
+ process.exit(1);
893
+ }
894
+
895
+ const marketplace = loadMarketplace();
896
+ const pluginMap = {};
897
+ for (const p of marketplace.plugins) {
898
+ pluginMap[p.name] = p;
899
+ }
900
+
901
+ if (!pluginMap[name]) {
902
+ console.error(`[ERROR] Unknown plugin: ${name}`);
903
+ console.error(`Available: ${marketplace.plugins.map(p => p.name).join(', ')}`);
904
+ process.exit(1);
905
+ }
906
+
907
+ const plugin = pluginMap[name];
908
+ checkCoreCompat(plugin);
909
+
910
+ // Resolve deps
911
+ const toFetch = resolvePluginDeps([name], marketplace);
912
+ console.log(`\nInstalling ${name} (+ deps: ${toFetch.filter(n => n !== name).join(', ') || 'none'})\n`);
913
+
914
+ // Fetch all
915
+ for (const depName of toFetch) {
916
+ const dep = pluginMap[depName];
917
+ const depSourceUrl = resolveSourceUrl(dep && dep.source);
918
+ if (!dep || !depSourceUrl || depSourceUrl.startsWith('./')) continue;
919
+ checkCoreCompat(dep);
920
+ const ver = depName === name && requestedVersion ? requestedVersion : dep.version;
921
+ try {
922
+ await fetchPlugin(depName, depSourceUrl, ver);
923
+ } catch (err) {
924
+ console.error(` [ERROR] Failed to fetch ${depName}: ${err.message}`);
925
+ }
926
+ }
927
+
928
+ // Determine platforms
929
+ let platforms;
930
+ if (args.tool) {
931
+ platforms = [args.tool];
932
+ } else if (args.tools.length > 0) {
933
+ platforms = args.tools;
934
+ } else {
935
+ platforms = detectInstalledPlatforms();
936
+ if (platforms.length === 0) platforms = ['claude']; // default
937
+ }
938
+
939
+ console.log(`Installing for platforms: ${platforms.join(', ')}`);
940
+
941
+ // Resolve component filter if a specific component was requested
942
+ let filter = null;
943
+ if (componentName) {
944
+ const cacheDir = getPluginCacheDir();
945
+ const pluginDir = path.join(cacheDir, name);
946
+ if (!fs.existsSync(pluginDir)) {
947
+ console.error(`[ERROR] Plugin ${name} not found in cache after fetch.`);
948
+ process.exit(1);
949
+ }
950
+ const components = loadComponents(pluginDir);
951
+ const resolved = resolveComponent(components, componentName);
952
+ if (!resolved) {
953
+ const allNames = [
954
+ ...components.agents.map(a => a.name),
955
+ ...components.skills.map(s => s.name),
956
+ ...components.commands.map(c => c.name)
957
+ ];
958
+ console.error(`[ERROR] Component "${componentName}" not found in plugin ${name}.`);
959
+ if (allNames.length > 0) {
960
+ console.error(`Available components: ${allNames.join(', ')}`);
961
+ }
962
+ process.exit(1);
963
+ }
964
+ filter = buildFilterFromComponent(resolved);
965
+ console.log(` Installing ${resolved.type}: ${resolved.name}`);
966
+ }
967
+
968
+ // Use cache as install source
969
+ const installDir = getInstallDir();
970
+ const needsLocal = platforms.includes('opencode') || platforms.includes('codex') || platforms.includes('cursor');
971
+ if (needsLocal && !fs.existsSync(path.join(installDir, 'lib'))) {
972
+ // Need local install for transforms
973
+ cleanOldInstallation(installDir);
974
+ copyFromPackage(installDir);
975
+ }
976
+
977
+ for (const platform of platforms) {
978
+ if (platform === 'claude') {
979
+ if (filter) {
980
+ console.log(' [NOTE] Claude Code installs whole plugins (granular not supported). Installing full plugin.');
981
+ }
982
+ // Claude uses marketplace install
983
+ if (commandExists('claude')) {
984
+ try { execSync('claude plugin marketplace add agent-sh/agentsys', { stdio: 'pipe' }); } catch {}
985
+ for (const depName of toFetch) {
986
+ if (!/^[a-z0-9][a-z0-9-]*$/.test(depName)) continue;
987
+ try {
988
+ execSync(`claude plugin install ${depName}@agentsys`, { stdio: 'pipe' });
989
+ } catch {
990
+ try { execSync(`claude plugin update ${depName}@agentsys`, { stdio: 'pipe' }); } catch {}
991
+ }
992
+ }
993
+ }
994
+ }
995
+ // OpenCode and Codex get handled through normal install flow with cached plugins
996
+ }
997
+
998
+ if (platforms.includes('opencode') && installDir) {
999
+ installForOpenCode(installDir, { stripModels: args.stripModels, filter });
1000
+ }
1001
+ if (platforms.includes('codex') && installDir) {
1002
+ installForCodex(installDir, { filter });
1003
+ }
1004
+ if (platforms.includes('cursor') && installDir) {
1005
+ installForCursor(installDir, { filter });
1006
+ }
1007
+
1008
+ // Record in installed.json
1009
+ for (const depName of toFetch) {
1010
+ const dep = pluginMap[depName];
1011
+ const ver = depName === name && requestedVersion ? requestedVersion : (dep ? dep.version : 'unknown');
1012
+ if (depName === name && filter) {
1013
+ recordInstall(depName, ver, platforms, {
1014
+ scope: 'partial',
1015
+ agents: filter.agents,
1016
+ skills: filter.skills,
1017
+ commands: filter.commands
1018
+ });
1019
+ } else {
1020
+ recordInstall(depName, ver, platforms);
1021
+ }
1022
+ }
1023
+
1024
+ console.log(`\n[OK] Installed ${name} successfully.`);
1025
+ }
1026
+
1027
+ // --- remove subcommand ---
1028
+
1029
+ function removePlugin(name) {
1030
+ const installed = loadInstalledJson();
1031
+
1032
+ if (!installed.plugins[name]) {
1033
+ console.error(`[ERROR] Plugin ${name} is not installed.`);
1034
+ process.exit(1);
1035
+ }
1036
+
1037
+ const platforms = installed.plugins[name].platforms || [];
1038
+
1039
+ // Remove from cache
1040
+ const cacheDir = getPluginCacheDir();
1041
+ const pluginCacheDir = path.join(cacheDir, name);
1042
+ if (fs.existsSync(pluginCacheDir)) {
1043
+ fs.rmSync(pluginCacheDir, { recursive: true, force: true });
1044
+ console.log(` Removed from cache: ${name}`);
1045
+ }
1046
+
1047
+ // Remove from platforms
1048
+ if (platforms.includes('claude') && commandExists('claude')) {
1049
+ try {
1050
+ execSync(`claude plugin uninstall ${name}@agentsys`, { stdio: 'pipe' });
1051
+ console.log(` Removed from Claude Code: ${name}`);
1052
+ } catch {}
1053
+ }
1054
+
1055
+ if (platforms.includes('opencode')) {
1056
+ const opencodeDir = getOpenCodeConfigDir();
1057
+ console.log(` [NOTE] OpenCode files may need manual cleanup in ${opencodeDir}`);
1058
+ }
1059
+
1060
+ if (platforms.includes('codex')) {
1061
+ const home = process.env.HOME || process.env.USERPROFILE;
1062
+ const skillsDir = path.join(home, '.codex', 'skills');
1063
+ console.log(` [NOTE] Codex skill files may need manual cleanup in ${skillsDir}`);
1064
+ }
1065
+
1066
+ // Update installed.json
1067
+ recordRemove(name);
1068
+ console.log(`\n[OK] Removed ${name}.`);
1069
+ }
1070
+
1071
+ // --- search subcommand ---
1072
+
1073
+ function searchPlugins(term) {
1074
+ const marketplace = loadMarketplace();
1075
+
1076
+ // Handle "plugin:" prefix to list components of a specific plugin
1077
+ if (term && term.endsWith(':')) {
1078
+ const pluginName = term.slice(0, -1);
1079
+ const cacheDir = getPluginCacheDir();
1080
+ const pluginDir = path.join(cacheDir, pluginName);
1081
+ if (!fs.existsSync(pluginDir)) {
1082
+ console.log(`Plugin "${pluginName}" is not cached. Install it first: agentsys install ${pluginName}`);
1083
+ return;
1084
+ }
1085
+ const components = loadComponents(pluginDir);
1086
+ console.log(`\nComponents of ${pluginName}:\n`);
1087
+ if (components.agents.length > 0) {
1088
+ console.log(' Agents:');
1089
+ for (const a of components.agents) {
1090
+ const desc = a.description ? ` - ${a.description}` : '';
1091
+ console.log(` ${a.name}${desc}`);
1092
+ }
1093
+ }
1094
+ if (components.skills.length > 0) {
1095
+ console.log(' Skills:');
1096
+ for (const s of components.skills) {
1097
+ const desc = s.description ? ` - ${s.description}` : '';
1098
+ console.log(` ${s.name}${desc}`);
1099
+ }
1100
+ }
1101
+ if (components.commands.length > 0) {
1102
+ console.log(' Commands:');
1103
+ for (const c of components.commands) {
1104
+ const desc = c.description ? ` - ${c.description}` : '';
1105
+ console.log(` ${c.name}${desc}`);
1106
+ }
1107
+ }
1108
+ const total = components.agents.length + components.skills.length + components.commands.length;
1109
+ console.log(`\n${total} component(s) found.`);
1110
+ return;
1111
+ }
1112
+
1113
+ let plugins = marketplace.plugins;
1114
+
1115
+ if (term) {
1116
+ const lower = term.toLowerCase();
1117
+ plugins = plugins.filter(p =>
1118
+ p.name.toLowerCase().includes(lower) ||
1119
+ (p.description && p.description.toLowerCase().includes(lower))
1120
+ );
1121
+ }
1122
+
1123
+ if (plugins.length === 0) {
1124
+ console.log(`No plugins found${term ? ` matching "${term}"` : ''}.`);
1125
+ return;
1126
+ }
1127
+
1128
+ // Print table
1129
+ const nameWidth = Math.max(14, ...plugins.map(p => p.name.length)) + 2;
1130
+ const verWidth = 10;
1131
+ console.log(`\n${'NAME'.padEnd(nameWidth)}${'VERSION'.padEnd(verWidth)}DESCRIPTION`);
1132
+ console.log(`${'─'.repeat(nameWidth)}${'─'.repeat(verWidth)}${'─'.repeat(40)}`);
1133
+ for (const p of plugins) {
1134
+ const desc = p.description ? (p.description.length > 60 ? p.description.slice(0, 57) + '...' : p.description) : '';
1135
+ console.log(`${p.name.padEnd(nameWidth)}${(p.version || '').padEnd(verWidth)}${desc}`);
1136
+ }
1137
+ console.log(`\n${plugins.length} plugin(s) found.`);
1138
+ }
1139
+
194
1140
  function installForClaude() {
195
1141
  console.log('\n[INSTALL] Installing for Claude Code...\n');
196
1142
 
@@ -198,7 +1144,7 @@ function installForClaude() {
198
1144
  console.log('[WARN] Claude Code CLI not detected.');
199
1145
  console.log(' Install it first: https://claude.ai/code\n');
200
1146
  console.log(' Then run in Claude Code:');
201
- console.log(' /plugin marketplace add avifenesh/agentsys');
1147
+ console.log(' /plugin marketplace add agent-sh/agentsys');
202
1148
  console.log(' /plugin install next-task@agentsys\n');
203
1149
  return false;
204
1150
  }
@@ -207,7 +1153,7 @@ function installForClaude() {
207
1153
  // Add GitHub marketplace
208
1154
  console.log('Adding marketplace...');
209
1155
  try {
210
- execSync('claude plugin marketplace add avifenesh/agentsys', { stdio: 'pipe' });
1156
+ execSync('claude plugin marketplace add agent-sh/agentsys', { stdio: 'pipe' });
211
1157
  } catch {
212
1158
  // May already exist
213
1159
  }
@@ -249,7 +1195,7 @@ function installForClaude() {
249
1195
  return true;
250
1196
  } catch (err) {
251
1197
  console.log('[ERROR] Auto-install failed. Manual installation:');
252
- console.log(' /plugin marketplace add avifenesh/agentsys');
1198
+ console.log(' /plugin marketplace add agent-sh/agentsys');
253
1199
  console.log(' /plugin install next-task@agentsys');
254
1200
  return false;
255
1201
  }
@@ -270,7 +1216,7 @@ function installForClaudeDevelopment() {
270
1216
  // Remove marketplace plugins first
271
1217
  console.log('Removing marketplace plugins...');
272
1218
  try {
273
- execSync('claude plugin marketplace remove avifenesh/agentsys', { stdio: 'pipe' });
1219
+ execSync('claude plugin marketplace remove agent-sh/agentsys', { stdio: 'pipe' });
274
1220
  console.log(' [OK] Removed marketplace');
275
1221
  } catch {
276
1222
  // May not exist
@@ -328,7 +1274,7 @@ function installForClaudeDevelopment() {
328
1274
 
329
1275
  function installForOpenCode(installDir, options = {}) {
330
1276
  console.log('\n[INSTALL] Installing for OpenCode...\n');
331
- const { stripModels = true } = options;
1277
+ const { stripModels = true, filter = null } = options;
332
1278
 
333
1279
  if (stripModels) {
334
1280
  console.log(' [INFO] Model specifications stripped (default). Use --no-strip to include.');
@@ -389,6 +1335,11 @@ function installForOpenCode(installDir, options = {}) {
389
1335
 
390
1336
  // Transform and copy command files
391
1337
  for (const [target, plugin, source] of commandMappings) {
1338
+ // Apply filter: skip commands not in the filter list
1339
+ if (filter && filter.commands.length > 0) {
1340
+ const cmdName = target.replace(/\.md$/, '');
1341
+ if (!filter.commands.includes(cmdName)) continue;
1342
+ }
392
1343
  const srcPath = path.join(installDir, 'plugins', plugin, 'commands', source);
393
1344
  const destPath = path.join(commandsDir, target);
394
1345
  if (fs.existsSync(srcPath)) {
@@ -420,6 +1371,11 @@ function installForOpenCode(installDir, options = {}) {
420
1371
  if (fs.existsSync(srcAgentsDir)) {
421
1372
  const agentFiles = fs.readdirSync(srcAgentsDir).filter(f => f.endsWith('.md'));
422
1373
  for (const agentFile of agentFiles) {
1374
+ // Apply filter: skip agents not in the filter list
1375
+ if (filter && filter.agents.length > 0) {
1376
+ const agentName = agentFile.replace(/\.md$/, '');
1377
+ if (!filter.agents.includes(agentName)) continue;
1378
+ }
423
1379
  const srcPath = path.join(srcAgentsDir, agentFile);
424
1380
  const destPath = path.join(agentsDir, agentFile);
425
1381
  let content = fs.readFileSync(srcPath, 'utf8');
@@ -457,6 +1413,10 @@ function installForOpenCode(installDir, options = {}) {
457
1413
  .filter(d => d.isDirectory());
458
1414
  for (const skillDir of skillDirs) {
459
1415
  const skillName = skillDir.name;
1416
+ // Apply filter: skip skills not in the filter list
1417
+ if (filter && filter.skills.length > 0) {
1418
+ if (!filter.skills.includes(skillName)) continue;
1419
+ }
460
1420
  const srcSkillPath = path.join(srcSkillsDir, skillName, 'SKILL.md');
461
1421
  if (fs.existsSync(srcSkillPath)) {
462
1422
  const destSkillDir = path.join(skillsDestDir, skillName);
@@ -480,8 +1440,9 @@ function installForOpenCode(installDir, options = {}) {
480
1440
  return true;
481
1441
  }
482
1442
 
483
- function installForCodex(installDir) {
1443
+ function installForCodex(installDir, options = {}) {
484
1444
  console.log('\n[INSTALL] Installing for Codex CLI...\n');
1445
+ const { filter = null } = options;
485
1446
 
486
1447
  const home = process.env.HOME || process.env.USERPROFILE;
487
1448
  const configDir = path.join(home, '.codex');
@@ -519,6 +1480,10 @@ function installForCodex(installDir) {
519
1480
  const skillMappings = discovery.getCodexSkillMappings(installDir);
520
1481
 
521
1482
  for (const [skillName, plugin, sourceFile, description] of skillMappings) {
1483
+ // Apply filter: skip commands/skills not in the filter list
1484
+ if (filter && filter.commands.length > 0) {
1485
+ if (!filter.commands.includes(skillName)) continue;
1486
+ }
522
1487
  if (!description) {
523
1488
  console.log(` [WARN] Skipping skill ${skillName}: missing description`);
524
1489
  continue;
@@ -555,6 +1520,101 @@ function installForCodex(installDir) {
555
1520
  return true;
556
1521
  }
557
1522
 
1523
+ function installForCursor(installDir, options = {}) {
1524
+ console.log('\n[INSTALL] Installing for Cursor...\n');
1525
+ const { filter = null } = options;
1526
+ const cwd = process.cwd();
1527
+
1528
+ // Create target directories (all project-scoped)
1529
+ const skillsDir = path.join(cwd, '.cursor', 'skills');
1530
+ const commandsDir = path.join(cwd, '.cursor', 'commands');
1531
+ const rulesDir = path.join(cwd, '.cursor', 'rules');
1532
+ fs.mkdirSync(skillsDir, { recursive: true });
1533
+ fs.mkdirSync(commandsDir, { recursive: true });
1534
+ fs.mkdirSync(rulesDir, { recursive: true });
1535
+
1536
+ // Cleanup old agentsys files from rules dir
1537
+ for (const f of fs.readdirSync(rulesDir).filter(f => f.startsWith('agentsys-') && f.endsWith('.mdc'))) {
1538
+ fs.unlinkSync(path.join(rulesDir, f));
1539
+ }
1540
+
1541
+ // Cleanup old agentsys files from commands dir (only those matching known commands)
1542
+ const commandMappingsForCleanup = discovery.getCommandMappings(installDir);
1543
+ const knownCommandFiles = new Set(commandMappingsForCleanup.map(([target]) => target));
1544
+ for (const f of fs.readdirSync(commandsDir).filter(f => f.endsWith('.md'))) {
1545
+ if (knownCommandFiles.has(f)) {
1546
+ fs.unlinkSync(path.join(commandsDir, f));
1547
+ }
1548
+ }
1549
+
1550
+ // Collect known skill names from discovery before cleanup
1551
+ const pluginDirs = discovery.discoverPlugins(installDir);
1552
+ const knownSkillNames = new Set();
1553
+ for (const pluginName of pluginDirs) {
1554
+ const srcSkillsDir = path.join(installDir, 'plugins', pluginName, 'skills');
1555
+ if (!fs.existsSync(srcSkillsDir)) continue;
1556
+ for (const d of fs.readdirSync(srcSkillsDir, { withFileTypes: true })) {
1557
+ if (d.isDirectory() && /^[a-zA-Z0-9_-]+$/.test(d.name)) knownSkillNames.add(d.name);
1558
+ }
1559
+ }
1560
+
1561
+ // Cleanup old agentsys skill dirs (only known names, preserve user-created skills)
1562
+ for (const entry of fs.readdirSync(skillsDir, { withFileTypes: true })) {
1563
+ if (entry.isDirectory() && knownSkillNames.has(entry.name)) {
1564
+ fs.rmSync(path.join(skillsDir, entry.name), { recursive: true, force: true });
1565
+ }
1566
+ }
1567
+
1568
+ // Install skills
1569
+ let skillCount = 0;
1570
+ for (const pluginName of pluginDirs) {
1571
+ const srcSkillsDir = path.join(installDir, 'plugins', pluginName, 'skills');
1572
+ if (!fs.existsSync(srcSkillsDir)) continue;
1573
+ const entries = fs.readdirSync(srcSkillsDir, { withFileTypes: true }).filter(d => d.isDirectory());
1574
+ for (const entry of entries) {
1575
+ if (!/^[a-zA-Z0-9_-]+$/.test(entry.name)) continue;
1576
+ if (filter && filter.skills && filter.skills.length > 0 && !filter.skills.includes(entry.name)) continue;
1577
+ const srcPath = path.join(srcSkillsDir, entry.name, 'SKILL.md');
1578
+ if (!fs.existsSync(srcPath)) continue;
1579
+ const destDir = path.join(skillsDir, entry.name);
1580
+ fs.mkdirSync(destDir, { recursive: true });
1581
+ let content = fs.readFileSync(srcPath, 'utf8');
1582
+ content = transforms.transformSkillForCursor(content, {
1583
+ pluginInstallPath: path.join(installDir, 'plugins', pluginName)
1584
+ });
1585
+ fs.writeFileSync(path.join(destDir, 'SKILL.md'), content);
1586
+ skillCount++;
1587
+ }
1588
+ }
1589
+
1590
+ // Install commands
1591
+ const commandMappings = discovery.getCommandMappings(installDir);
1592
+ let cmdCount = 0;
1593
+ for (const [target, plugin, source] of commandMappings) {
1594
+ if (filter && filter.commands && filter.commands.length > 0) {
1595
+ const cmdName = target.replace(/\.md$/, '');
1596
+ if (!filter.commands.includes(cmdName)) continue;
1597
+ }
1598
+ const srcPath = path.join(installDir, 'plugins', plugin, 'commands', source);
1599
+ if (!fs.existsSync(srcPath)) {
1600
+ console.log(` [WARN] Source file not found: ${srcPath}`);
1601
+ continue;
1602
+ }
1603
+ let content = fs.readFileSync(srcPath, 'utf8');
1604
+ content = transforms.transformCommandForCursor(content, {
1605
+ pluginInstallPath: path.join(installDir, 'plugins', plugin)
1606
+ });
1607
+ fs.writeFileSync(path.join(commandsDir, target), content);
1608
+ cmdCount++;
1609
+ }
1610
+
1611
+ console.log(`\n[OK] Cursor installation complete!`);
1612
+ console.log(` Skills: ${skillCount} installed to ${skillsDir}`);
1613
+ console.log(` Commands: ${cmdCount} installed to ${commandsDir}`);
1614
+ console.log(' All content is project-scoped and auto-loaded by Cursor.\n');
1615
+ return true;
1616
+ }
1617
+
558
1618
  function removeInstallation() {
559
1619
  const installDir = getInstallDir();
560
1620
 
@@ -571,6 +1631,113 @@ function removeInstallation() {
571
1631
  console.log(' - Claude: /plugin marketplace remove agentsys');
572
1632
  console.log(' - OpenCode: Remove files under ~/.config/opencode/ (commands/*.md, agents/*.md, skills/*/SKILL.md) and ~/.config/opencode/plugins/agentsys.ts');
573
1633
  console.log(' - Codex: Remove ~/.codex/skills/*/');
1634
+ console.log(' - Cursor: Remove .cursor/skills/, .cursor/commands/, and .cursor/rules/agentsys-*.mdc from your project');
1635
+ }
1636
+
1637
+ function printSubcommandHelp(subcommand) {
1638
+ const helps = {
1639
+ install: `
1640
+ agentsys install — Install plugins and components
1641
+
1642
+ Usage:
1643
+ agentsys install <plugin> Install a full plugin (all agents, skills, commands)
1644
+ agentsys install <plugin>:<component> Install a single agent, skill, or command
1645
+ agentsys install <plugin>@<version> Install a specific version
1646
+
1647
+ Examples:
1648
+ agentsys install next-task Install next-task + dependencies (deslop, ship, sync-docs)
1649
+ agentsys install next-task:ci-fixer Install just the ci-fixer agent
1650
+ agentsys install deslop:deslop Install just the deslop skill
1651
+ agentsys install enhance:enhance-docs Install just the enhance-docs skill
1652
+ agentsys install perf@1.2.0 Install perf at version 1.2.0
1653
+
1654
+ Options:
1655
+ --tool <name> Install for a specific platform (claude, opencode, codex, cursor)
1656
+ --tools <list> Install for multiple platforms (comma-separated)
1657
+
1658
+ Notes:
1659
+ - Dependencies are resolved automatically (e.g., deslop requires next-task)
1660
+ - The full plugin is cached locally; granular install only affects what gets
1661
+ copied to platform directories (OpenCode, Codex)
1662
+ - Claude Code always installs whole plugins (platform limitation)
1663
+ - Use "agentsys search <plugin>:" to list available components
1664
+ `,
1665
+ list: `
1666
+ agentsys list — List installed plugins and components
1667
+
1668
+ Usage:
1669
+ agentsys list Plugin summary (name, version, scope, counts)
1670
+ agentsys list --all Show everything (plugins, agents, skills, commands, hooks)
1671
+ agentsys list --plugins Show plugins with version and scope
1672
+ agentsys list --agents Show all agents across all installed plugins
1673
+ agentsys list --skills Show all skills across all installed plugins
1674
+ agentsys list --commands Show all commands (slash commands)
1675
+ agentsys list --hooks Show all hooks
1676
+
1677
+ Output format:
1678
+ AGENTS
1679
+ plugin:agent-name model description
1680
+ SKILLS
1681
+ plugin:skill-name description
1682
+ COMMANDS
1683
+ /command-name description
1684
+ HOOKS
1685
+ plugin:event description
1686
+
1687
+ Scope tags:
1688
+ [full] All components of the plugin are installed
1689
+ [partial] Only selected components are installed
1690
+ `,
1691
+ search: `
1692
+ agentsys search — Search available plugins and components
1693
+
1694
+ Usage:
1695
+ agentsys search List all available plugins
1696
+ agentsys search <term> Filter plugins by name or description
1697
+ agentsys search <plugin>: List all components (agents, skills, commands) of a plugin
1698
+
1699
+ Examples:
1700
+ agentsys search Show all 13 plugins
1701
+ agentsys search perf Find plugins matching "perf"
1702
+ agentsys search next-task: Show next-task's 10 agents, 3 skills, 2 commands
1703
+ agentsys search :ci-fixer Search all plugins for "ci-fixer"
1704
+
1705
+ Output:
1706
+ NAME VERSION DESCRIPTION
1707
+ next-task 1.0.0 Master workflow orchestrator
1708
+ deslop 1.0.0 Clean AI slop from code
1709
+ `,
1710
+ remove: `
1711
+ agentsys remove — Remove an installed plugin
1712
+
1713
+ Usage:
1714
+ agentsys remove <plugin> Remove plugin from cache and platform directories
1715
+
1716
+ Notes:
1717
+ - Warns if another installed plugin depends on the one being removed
1718
+ - Claude Code: runs "claude plugin uninstall <plugin>@agentsys"
1719
+ - OpenCode/Codex: notes manual cleanup may be needed
1720
+ - Updates installed.json manifest
1721
+ `,
1722
+ update: `
1723
+ agentsys update — Update installed plugins to latest versions
1724
+
1725
+ Usage:
1726
+ agentsys update Re-fetch all installed plugins from GitHub
1727
+
1728
+ Notes:
1729
+ - Clears cached versions and re-downloads latest from each plugin's GitHub repo
1730
+ - Only updates plugins already in the cache (~/.agentsys/plugins/)
1731
+ - Does not change platform installations — run "agentsys" again to re-install
1732
+ `
1733
+ };
1734
+
1735
+ const text = helps[subcommand];
1736
+ if (text) {
1737
+ console.log(text);
1738
+ } else {
1739
+ console.log(`No help available for "${subcommand}". Run: agentsys --help`);
1740
+ }
574
1741
  }
575
1742
 
576
1743
  function printHelp() {
@@ -579,19 +1746,36 @@ agentsys v${VERSION} - Workflow automation for AI coding assistants
579
1746
 
580
1747
  Usage:
581
1748
  agentsys Interactive installer (select platforms)
582
- agentsys --tool <name> Install for single tool (claude, opencode, codex)
1749
+ agentsys --tool <name> Install for single tool (claude, opencode, codex, cursor)
583
1750
  agentsys --tools <list> Install for multiple tools (comma-separated)
1751
+ agentsys --only <plugins> Install only specified plugins (comma-separated, resolves deps)
584
1752
  agentsys --development Development mode: install to ~/.claude/plugins
585
1753
  agentsys --no-strip, -ns Include model specifications (stripped by default)
586
1754
  agentsys --remove Remove local installation
587
1755
  agentsys --version, -v Show version
588
1756
  agentsys --help, -h Show this help
1757
+ agentsys install <plugin> Install a specific plugin (resolves deps)
1758
+ agentsys install <p>:<comp> Install a single agent, skill, or command
1759
+ agentsys install <p>@<ver> Install a specific version
1760
+ agentsys remove <plugin> Remove an installed plugin
1761
+ agentsys search [term] Search available plugins
1762
+ agentsys search <plugin>: List components of a plugin
1763
+ agentsys list List installed plugins (summary)
1764
+ agentsys list --all List everything (plugins, agents, skills, commands, hooks)
1765
+ agentsys list --plugins List plugins only
1766
+ agentsys list --agents List all agents across plugins
1767
+ agentsys list --skills List all skills across plugins
1768
+ agentsys list --commands List all commands across plugins
1769
+ agentsys list --hooks List all hooks across plugins
1770
+ agentsys update Re-fetch latest versions of installed plugins
589
1771
 
590
1772
  Non-Interactive Examples:
591
1773
  agentsys --tool claude # Install for Claude Code only
592
1774
  agentsys --tool opencode # Install for OpenCode only
593
1775
  agentsys --tools "claude,opencode" # Install for both
594
- agentsys --tools claude,opencode,codex # Install for all three
1776
+ agentsys --tools claude,opencode,codex,cursor # Install for all
1777
+ agentsys --only next-task # Install next-task + its dependencies
1778
+ agentsys --only "next-task,perf" # Install specific plugins + deps
595
1779
 
596
1780
  Development Mode:
597
1781
  agentsys --development # Install plugins directly to ~/.claude/plugins
@@ -609,12 +1793,13 @@ Supported Platforms:
609
1793
  claude - Claude Code (marketplace install or development mode)
610
1794
  opencode - OpenCode (local commands + native plugin)
611
1795
  codex - Codex CLI (local skills)
1796
+ cursor - Cursor (project-scoped .mdc rules)
612
1797
 
613
1798
  Install: npm install -g agentsys && agentsys
614
1799
  Update: npm update -g agentsys && agentsys
615
1800
  Remove: npm uninstall -g agentsys && agentsys --remove
616
1801
 
617
- Docs: https://github.com/avifenesh/agentsys
1802
+ Docs: https://github.com/agent-sh/agentsys
618
1803
  `);
619
1804
  }
620
1805
 
@@ -639,6 +1824,46 @@ async function main() {
639
1824
  return;
640
1825
  }
641
1826
 
1827
+ // Handle subcommand help
1828
+ if (args.subcommandArg === '--help') {
1829
+ printSubcommandHelp(args.subcommand);
1830
+ return;
1831
+ }
1832
+
1833
+ // Handle subcommands
1834
+ if (args.subcommand === 'list') {
1835
+ listInstalledPlugins(args.subcommandArg);
1836
+ return;
1837
+ }
1838
+
1839
+ if (args.subcommand === 'update') {
1840
+ await updatePlugins();
1841
+ return;
1842
+ }
1843
+
1844
+ if (args.subcommand === 'search') {
1845
+ searchPlugins(args.subcommandArg);
1846
+ return;
1847
+ }
1848
+
1849
+ if (args.subcommand === 'install') {
1850
+ if (!args.subcommandArg) {
1851
+ console.error('[ERROR] Usage: agentsys install <plugin[@version]>');
1852
+ process.exit(1);
1853
+ }
1854
+ await installPlugin(args.subcommandArg, args);
1855
+ return;
1856
+ }
1857
+
1858
+ if (args.subcommand === 'remove') {
1859
+ if (!args.subcommandArg) {
1860
+ console.error('[ERROR] Usage: agentsys remove <plugin>');
1861
+ process.exit(1);
1862
+ }
1863
+ removePlugin(args.subcommandArg);
1864
+ return;
1865
+ }
1866
+
642
1867
  // Determine which tools to install
643
1868
  let selected = [];
644
1869
 
@@ -673,7 +1898,8 @@ async function main() {
673
1898
  const options = [
674
1899
  { value: 'claude', label: 'Claude Code' },
675
1900
  { value: 'opencode', label: 'OpenCode' },
676
- { value: 'codex', label: 'Codex CLI' }
1901
+ { value: 'codex', label: 'Codex CLI' },
1902
+ { value: 'cursor', label: 'Cursor' }
677
1903
  ];
678
1904
 
679
1905
  selected = await multiSelect(
@@ -684,15 +1910,28 @@ async function main() {
684
1910
  if (selected.length === 0) {
685
1911
  console.log('\nNo platforms selected. Exiting.');
686
1912
  console.log('\nFor Claude Code, you can also install directly:');
687
- console.log(' /plugin marketplace add avifenesh/agentsys');
1913
+ console.log(' /plugin marketplace add agent-sh/agentsys');
688
1914
  process.exit(0);
689
1915
  }
690
1916
  }
691
1917
 
692
1918
  console.log(`\nInstalling for: ${selected.join(', ')}\n`);
693
1919
 
694
- // Only copy to ~/.agentsys if OpenCode or Codex selected (they need local files)
695
- const needsLocalInstall = selected.includes('opencode') || selected.includes('codex');
1920
+ // Fetch external plugins to cache
1921
+ const marketplace = loadMarketplace();
1922
+ const onlyPlugins = args.only;
1923
+ const pluginNames = onlyPlugins.length > 0 ? onlyPlugins : marketplace.plugins.map(p => p.name);
1924
+
1925
+ // Check core version compatibility
1926
+ for (const pName of pluginNames) {
1927
+ const entry = marketplace.plugins.find(p => p.name === pName);
1928
+ if (entry) checkCoreCompat(entry);
1929
+ }
1930
+
1931
+ await fetchExternalPlugins(pluginNames, marketplace);
1932
+
1933
+ // Only copy to ~/.agentsys if OpenCode, Codex, or Cursor selected (they need local files)
1934
+ const needsLocalInstall = selected.includes('opencode') || selected.includes('codex') || selected.includes('cursor');
696
1935
  let installDir = null;
697
1936
 
698
1937
  if (needsLocalInstall) {
@@ -725,6 +1964,11 @@ async function main() {
725
1964
  failedPlatforms.push('codex');
726
1965
  }
727
1966
  break;
1967
+ case 'cursor':
1968
+ if (!installForCursor(installDir)) {
1969
+ failedPlatforms.push('cursor');
1970
+ }
1971
+ break;
728
1972
  }
729
1973
  }
730
1974
 
@@ -739,7 +1983,7 @@ async function main() {
739
1983
  }
740
1984
  console.log('\nTo update: npm update -g agentsys');
741
1985
  console.log('To remove: npm uninstall -g agentsys && agentsys --remove');
742
- console.log('\nDocs: https://github.com/avifenesh/agentsys');
1986
+ console.log('\nDocs: https://github.com/agent-sh/agentsys');
743
1987
  }
744
1988
 
745
1989
  // Export for testing when required as module
@@ -750,4 +1994,31 @@ if (require.main === module) {
750
1994
  });
751
1995
  }
752
1996
 
753
- module.exports = { parseArgs, VALID_TOOLS };
1997
+ module.exports = {
1998
+ parseArgs,
1999
+ VALID_TOOLS,
2000
+ resolvePluginDeps,
2001
+ fetchPlugin,
2002
+ fetchExternalPlugins,
2003
+ resolvePluginRoot,
2004
+ loadMarketplace,
2005
+ getPluginCacheDir,
2006
+ listInstalledPlugins,
2007
+ updatePlugins,
2008
+ installPlugin,
2009
+ removePlugin,
2010
+ searchPlugins,
2011
+ loadInstalledJson,
2012
+ saveInstalledJson,
2013
+ recordInstall,
2014
+ recordRemove,
2015
+ satisfiesRange,
2016
+ checkCoreCompat,
2017
+ detectInstalledPlatforms,
2018
+ getInstalledJsonPath,
2019
+ parseInstallTarget,
2020
+ loadComponents,
2021
+ resolveComponent,
2022
+ buildFilterFromComponent,
2023
+ installForCursor
2024
+ };