octocode-cli 1.2.5 → 1.2.7

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 (303) hide show
  1. package/LICENSE +21 -63
  2. package/README.md +86 -109
  3. package/out/octocode-cli.js +7027 -7014
  4. package/package.json +8 -6
  5. package/skills/README.md +97 -120
  6. package/skills/octocode-code-engineer/.claude/settings.local.json +18 -0
  7. package/skills/octocode-code-engineer/.octocode/rfc/RFC-code-engineer-weakness-fixes.md +255 -0
  8. package/skills/octocode-code-engineer/.plan/VALIDATED_PLAN.md +223 -0
  9. package/skills/octocode-code-engineer/README.md +178 -0
  10. package/skills/octocode-code-engineer/SKILL.md +418 -0
  11. package/skills/octocode-code-engineer/coverage/architecture.ts.html +7828 -0
  12. package/skills/octocode-code-engineer/coverage/ast-helpers.ts.html +211 -0
  13. package/skills/octocode-code-engineer/coverage/ast-search.ts.html +1795 -0
  14. package/skills/octocode-code-engineer/coverage/base.css +224 -0
  15. package/skills/octocode-code-engineer/coverage/block-navigation.js +87 -0
  16. package/skills/octocode-code-engineer/coverage/cache.ts.html +376 -0
  17. package/skills/octocode-code-engineer/coverage/cli.ts.html +982 -0
  18. package/skills/octocode-code-engineer/coverage/clover.xml +3217 -0
  19. package/skills/octocode-code-engineer/coverage/collect-effects.ts.html +664 -0
  20. package/skills/octocode-code-engineer/coverage/collect-input-sources.ts.html +577 -0
  21. package/skills/octocode-code-engineer/coverage/collect-performance.ts.html +331 -0
  22. package/skills/octocode-code-engineer/coverage/collect-prototype-pollution.ts.html +421 -0
  23. package/skills/octocode-code-engineer/coverage/collect-security.ts.html +604 -0
  24. package/skills/octocode-code-engineer/coverage/collect-test-profile.ts.html +589 -0
  25. package/skills/octocode-code-engineer/coverage/coverage-final.json +30 -0
  26. package/skills/octocode-code-engineer/coverage/dependencies.ts.html +997 -0
  27. package/skills/octocode-code-engineer/coverage/dependency-summary.ts.html +688 -0
  28. package/skills/octocode-code-engineer/coverage/discovery.ts.html +322 -0
  29. package/skills/octocode-code-engineer/coverage/favicon.png +0 -0
  30. package/skills/octocode-code-engineer/coverage/graph-analytics.ts.html +1510 -0
  31. package/skills/octocode-code-engineer/coverage/index.html +536 -0
  32. package/skills/octocode-code-engineer/coverage/index.ts.html +826 -0
  33. package/skills/octocode-code-engineer/coverage/metrics.ts.html +553 -0
  34. package/skills/octocode-code-engineer/coverage/pipeline.ts.html +2044 -0
  35. package/skills/octocode-code-engineer/coverage/prettify.css +1 -0
  36. package/skills/octocode-code-engineer/coverage/prettify.js +2 -0
  37. package/skills/octocode-code-engineer/coverage/report-analysis.ts.html +1570 -0
  38. package/skills/octocode-code-engineer/coverage/report-writer.ts.html +1102 -0
  39. package/skills/octocode-code-engineer/coverage/security-detectors.ts.html +1747 -0
  40. package/skills/octocode-code-engineer/coverage/semantic-detectors.ts.html +2152 -0
  41. package/skills/octocode-code-engineer/coverage/semantic.ts.html +1897 -0
  42. package/skills/octocode-code-engineer/coverage/sort-arrow-sprite.png +0 -0
  43. package/skills/octocode-code-engineer/coverage/sorter.js +210 -0
  44. package/skills/octocode-code-engineer/coverage/summary-md.ts.html +1222 -0
  45. package/skills/octocode-code-engineer/coverage/test-quality-detectors.ts.html +1039 -0
  46. package/skills/octocode-code-engineer/coverage/tree-sitter-analyzer.ts.html +955 -0
  47. package/skills/octocode-code-engineer/coverage/ts-analyzer.ts.html +1213 -0
  48. package/skills/octocode-code-engineer/coverage/types.ts.html +2473 -0
  49. package/skills/octocode-code-engineer/coverage/utils.ts.html +820 -0
  50. package/skills/octocode-code-engineer/eslint.config.mjs +54 -0
  51. package/skills/octocode-code-engineer/minify-scripts.mjs +32 -0
  52. package/skills/octocode-code-engineer/package.json +54 -0
  53. package/skills/octocode-code-engineer/references/agent-ast-reading-rfc.md +95 -0
  54. package/skills/octocode-code-engineer/references/architecture-techniques.md +121 -0
  55. package/skills/octocode-code-engineer/references/ast-search.md +210 -0
  56. package/skills/octocode-code-engineer/references/ast-tree-search.md +151 -0
  57. package/skills/octocode-code-engineer/references/cli-reference.md +167 -0
  58. package/skills/octocode-code-engineer/references/concepts.md +107 -0
  59. package/skills/octocode-code-engineer/references/finding-categories.md +128 -0
  60. package/skills/octocode-code-engineer/references/improvement-roadmap.md +304 -0
  61. package/skills/octocode-code-engineer/references/output-files.md +144 -0
  62. package/skills/octocode-code-engineer/references/playbooks.md +204 -0
  63. package/skills/octocode-code-engineer/references/present-results.md +136 -0
  64. package/skills/octocode-code-engineer/references/tool-workflows.md +566 -0
  65. package/skills/octocode-code-engineer/references/validate-investigate.md +225 -0
  66. package/skills/octocode-code-engineer/scripts/analysis/dependencies.js +1 -0
  67. package/skills/octocode-code-engineer/scripts/analysis/dependency-summary.js +1 -0
  68. package/skills/octocode-code-engineer/scripts/analysis/discovery.js +1 -0
  69. package/skills/octocode-code-engineer/scripts/analysis/graph-analytics.js +1 -0
  70. package/skills/octocode-code-engineer/scripts/analysis/semantic.js +1 -0
  71. package/skills/octocode-code-engineer/scripts/ast/helpers.js +1 -0
  72. package/skills/octocode-code-engineer/scripts/ast/metrics.js +1 -0
  73. package/skills/octocode-code-engineer/scripts/ast/search.js +2 -0
  74. package/skills/octocode-code-engineer/scripts/ast/tree-search.js +2 -0
  75. package/skills/octocode-code-engineer/scripts/ast/tree-sitter.js +1 -0
  76. package/skills/octocode-code-engineer/scripts/ast/ts-analyzer.js +1 -0
  77. package/skills/octocode-code-engineer/scripts/collectors/chains.js +1 -0
  78. package/skills/octocode-code-engineer/scripts/collectors/effects.js +1 -0
  79. package/skills/octocode-code-engineer/scripts/collectors/input-sources.js +1 -0
  80. package/skills/octocode-code-engineer/scripts/collectors/performance.js +1 -0
  81. package/skills/octocode-code-engineer/scripts/collectors/prototype-pollution.js +1 -0
  82. package/skills/octocode-code-engineer/scripts/collectors/security.js +1 -0
  83. package/skills/octocode-code-engineer/scripts/collectors/test-profile.js +1 -0
  84. package/skills/octocode-code-engineer/scripts/common/is-direct-run.js +1 -0
  85. package/skills/octocode-code-engineer/scripts/common/utils.js +1 -0
  86. package/skills/octocode-code-engineer/scripts/detectors/code-quality.js +1 -0
  87. package/skills/octocode-code-engineer/scripts/detectors/cohesion.js +1 -0
  88. package/skills/octocode-code-engineer/scripts/detectors/coupling.js +1 -0
  89. package/skills/octocode-code-engineer/scripts/detectors/cycle.js +1 -0
  90. package/skills/octocode-code-engineer/scripts/detectors/dead-code.js +1 -0
  91. package/skills/octocode-code-engineer/scripts/detectors/import-style.js +1 -0
  92. package/skills/octocode-code-engineer/scripts/detectors/index.js +1 -0
  93. package/skills/octocode-code-engineer/scripts/detectors/security.js +1 -0
  94. package/skills/octocode-code-engineer/scripts/detectors/semantic.js +1 -0
  95. package/skills/octocode-code-engineer/scripts/detectors/shared.js +1 -0
  96. package/skills/octocode-code-engineer/scripts/detectors/test-quality.js +1 -0
  97. package/skills/octocode-code-engineer/scripts/index.js +1 -0
  98. package/skills/octocode-code-engineer/scripts/pipeline/cache.js +1 -0
  99. package/skills/octocode-code-engineer/scripts/pipeline/cli.js +1 -0
  100. package/skills/octocode-code-engineer/scripts/pipeline/main.js +2 -0
  101. package/skills/octocode-code-engineer/scripts/reporting/analysis.js +1 -0
  102. package/skills/octocode-code-engineer/scripts/reporting/summary-md.js +1 -0
  103. package/skills/octocode-code-engineer/scripts/reporting/writer.js +1 -0
  104. package/skills/octocode-code-engineer/scripts/types/constants.js +1 -0
  105. package/skills/octocode-code-engineer/scripts/types/index.js +1 -0
  106. package/skills/octocode-code-engineer/scripts/types/interfaces.js +1 -0
  107. package/skills/octocode-code-engineer/src/analysis/dependencies.test.ts +545 -0
  108. package/skills/octocode-code-engineer/src/analysis/dependencies.ts +406 -0
  109. package/skills/octocode-code-engineer/src/analysis/dependency-summary.test.ts +566 -0
  110. package/skills/octocode-code-engineer/src/analysis/dependency-summary.ts +257 -0
  111. package/skills/octocode-code-engineer/src/analysis/discovery.test.ts +420 -0
  112. package/skills/octocode-code-engineer/src/analysis/discovery.ts +87 -0
  113. package/skills/octocode-code-engineer/src/analysis/graph-analytics.test.ts +449 -0
  114. package/skills/octocode-code-engineer/src/analysis/graph-analytics.ts +534 -0
  115. package/skills/octocode-code-engineer/src/analysis/semantic.test.ts +1533 -0
  116. package/skills/octocode-code-engineer/src/analysis/semantic.ts +830 -0
  117. package/skills/octocode-code-engineer/src/ast/helpers.test.ts +185 -0
  118. package/skills/octocode-code-engineer/src/ast/helpers.ts +62 -0
  119. package/skills/octocode-code-engineer/src/ast/metrics.test.ts +304 -0
  120. package/skills/octocode-code-engineer/src/ast/metrics.ts +204 -0
  121. package/skills/octocode-code-engineer/src/ast/search.test.ts +647 -0
  122. package/skills/octocode-code-engineer/src/ast/search.ts +648 -0
  123. package/skills/octocode-code-engineer/src/ast/tree-search.test.ts +199 -0
  124. package/skills/octocode-code-engineer/src/ast/tree-search.ts +392 -0
  125. package/skills/octocode-code-engineer/src/ast/tree-sitter.test.ts +407 -0
  126. package/skills/octocode-code-engineer/src/ast/tree-sitter.ts +402 -0
  127. package/skills/octocode-code-engineer/src/ast/ts-analyzer.test.ts +1864 -0
  128. package/skills/octocode-code-engineer/src/ast/ts-analyzer.ts +509 -0
  129. package/skills/octocode-code-engineer/src/collectors/chains.ts +74 -0
  130. package/skills/octocode-code-engineer/src/collectors/effects.test.ts +490 -0
  131. package/skills/octocode-code-engineer/src/collectors/effects.ts +332 -0
  132. package/skills/octocode-code-engineer/src/collectors/input-sources.test.ts +144 -0
  133. package/skills/octocode-code-engineer/src/collectors/input-sources.ts +196 -0
  134. package/skills/octocode-code-engineer/src/collectors/performance.test.ts +82 -0
  135. package/skills/octocode-code-engineer/src/collectors/performance.ts +141 -0
  136. package/skills/octocode-code-engineer/src/collectors/prototype-pollution.test.ts +55 -0
  137. package/skills/octocode-code-engineer/src/collectors/prototype-pollution.ts +162 -0
  138. package/skills/octocode-code-engineer/src/collectors/security.test.ts +124 -0
  139. package/skills/octocode-code-engineer/src/collectors/security.ts +309 -0
  140. package/skills/octocode-code-engineer/src/collectors/test-profile.test.ts +97 -0
  141. package/skills/octocode-code-engineer/src/collectors/test-profile.ts +269 -0
  142. package/skills/octocode-code-engineer/src/common/is-direct-run.test.ts +32 -0
  143. package/skills/octocode-code-engineer/src/common/is-direct-run.ts +13 -0
  144. package/skills/octocode-code-engineer/src/common/utils.test.ts +463 -0
  145. package/skills/octocode-code-engineer/src/common/utils.ts +304 -0
  146. package/skills/octocode-code-engineer/src/detectors/code-quality.ts +966 -0
  147. package/skills/octocode-code-engineer/src/detectors/cohesion.ts +539 -0
  148. package/skills/octocode-code-engineer/src/detectors/coupling.ts +323 -0
  149. package/skills/octocode-code-engineer/src/detectors/cycle.ts +349 -0
  150. package/skills/octocode-code-engineer/src/detectors/dead-code.ts +320 -0
  151. package/skills/octocode-code-engineer/src/detectors/import-style.ts +376 -0
  152. package/skills/octocode-code-engineer/src/detectors/index.test.ts +3061 -0
  153. package/skills/octocode-code-engineer/src/detectors/index.ts +88 -0
  154. package/skills/octocode-code-engineer/src/detectors/security.test.ts +882 -0
  155. package/skills/octocode-code-engineer/src/detectors/security.ts +821 -0
  156. package/skills/octocode-code-engineer/src/detectors/semantic.ts +758 -0
  157. package/skills/octocode-code-engineer/src/detectors/shared.ts +49 -0
  158. package/skills/octocode-code-engineer/src/detectors/test-quality.test.ts +388 -0
  159. package/skills/octocode-code-engineer/src/detectors/test-quality.ts +367 -0
  160. package/skills/octocode-code-engineer/src/index.test.ts +4425 -0
  161. package/skills/octocode-code-engineer/src/index.ts +403 -0
  162. package/skills/octocode-code-engineer/src/pipeline/cache.test.ts +199 -0
  163. package/skills/octocode-code-engineer/src/pipeline/cache.ts +130 -0
  164. package/skills/octocode-code-engineer/src/pipeline/cli.test.ts +493 -0
  165. package/skills/octocode-code-engineer/src/pipeline/cli.ts +344 -0
  166. package/skills/octocode-code-engineer/src/pipeline/main.test.ts +174 -0
  167. package/skills/octocode-code-engineer/src/pipeline/main.ts +1074 -0
  168. package/skills/octocode-code-engineer/src/pipeline.test.ts +84 -0
  169. package/skills/octocode-code-engineer/src/reporting/analysis.test.ts +782 -0
  170. package/skills/octocode-code-engineer/src/reporting/analysis.ts +688 -0
  171. package/skills/octocode-code-engineer/src/reporting/output-contract.test.ts +463 -0
  172. package/skills/octocode-code-engineer/src/reporting/summary-md.test.ts +421 -0
  173. package/skills/octocode-code-engineer/src/reporting/summary-md.ts +714 -0
  174. package/skills/octocode-code-engineer/src/reporting/writer.ts +430 -0
  175. package/skills/octocode-code-engineer/src/sanity.test.ts +47 -0
  176. package/skills/octocode-code-engineer/src/types/constants.ts +248 -0
  177. package/skills/octocode-code-engineer/src/types/index.ts +80 -0
  178. package/skills/octocode-code-engineer/src/types/interfaces.ts +682 -0
  179. package/skills/octocode-code-engineer/tsconfig.json +17 -0
  180. package/skills/octocode-code-engineer/vitest.config.ts +8 -0
  181. package/skills/octocode-documentation-writer/README.md +113 -0
  182. package/skills/octocode-documentation-writer/SKILL.md +886 -0
  183. package/skills/octocode-documentation-writer/references/agent-discovery-analysis.md +453 -0
  184. package/skills/octocode-documentation-writer/references/agent-documentation-writer.md +255 -0
  185. package/skills/octocode-documentation-writer/references/agent-engineer-questions.md +247 -0
  186. package/skills/octocode-documentation-writer/references/agent-orchestrator.md +370 -0
  187. package/skills/octocode-documentation-writer/references/agent-qa-validator.md +227 -0
  188. package/skills/octocode-documentation-writer/references/agent-researcher.md +250 -0
  189. package/skills/octocode-documentation-writer/schemas/analysis-schema.json +886 -0
  190. package/skills/octocode-documentation-writer/schemas/discovery-tasks.json +96 -0
  191. package/skills/octocode-documentation-writer/schemas/documentation-structure.json +373 -0
  192. package/skills/octocode-documentation-writer/schemas/partial-discovery-schema.json +102 -0
  193. package/skills/octocode-documentation-writer/schemas/partial-research-schema.json +98 -0
  194. package/skills/octocode-documentation-writer/schemas/qa-results-schema.json +113 -0
  195. package/skills/octocode-documentation-writer/schemas/questions-schema.json +228 -0
  196. package/skills/octocode-documentation-writer/schemas/research-schema.json +104 -0
  197. package/skills/octocode-documentation-writer/schemas/state-schema.json +222 -0
  198. package/skills/octocode-documentation-writer/schemas/work-assignments-schema.json +74 -0
  199. package/skills/octocode-plan/SKILL.md +122 -116
  200. package/skills/octocode-prompt-optimizer/SKILL.md +617 -0
  201. package/skills/octocode-pull-request-reviewer/README.md +249 -0
  202. package/skills/octocode-pull-request-reviewer/SKILL.md +479 -0
  203. package/skills/octocode-pull-request-reviewer/references/dependency-check.md +74 -0
  204. package/skills/octocode-pull-request-reviewer/references/domain-reviewers.md +24 -0
  205. package/skills/octocode-pull-request-reviewer/references/execution-lifecycle.md +441 -0
  206. package/skills/octocode-pull-request-reviewer/references/flow-analysis-protocol.md +64 -0
  207. package/skills/octocode-pull-request-reviewer/references/output-template.md +174 -0
  208. package/skills/octocode-pull-request-reviewer/references/parallel-agent-protocol.md +182 -0
  209. package/skills/octocode-pull-request-reviewer/references/review-guidelines.md +26 -0
  210. package/skills/octocode-pull-request-reviewer/references/verification-checklist.md +40 -0
  211. package/skills/octocode-research/.claude/settings.local.json +46 -0
  212. package/skills/octocode-research/.octocode/plan/code-review-fixes/plan.md +312 -0
  213. package/skills/octocode-research/.octocode/plan/code-review-fixes/research.md +212 -0
  214. package/skills/octocode-research/.octocode/plans/NODE_SERVER_START_PLAN.md +755 -0
  215. package/skills/octocode-research/.octocode/research/code-review/research.md +371 -0
  216. package/skills/octocode-research/.octocode/review/IMPROVEMENTS.md +391 -0
  217. package/skills/octocode-research/.octocode/review/REVIEW_PLAN.md +289 -0
  218. package/skills/octocode-research/.octocode/review/REVIEW_REPORT.md +356 -0
  219. package/skills/octocode-research/AGENTS.md +349 -0
  220. package/skills/octocode-research/README.md +494 -0
  221. package/skills/octocode-research/SKILL.md +652 -274
  222. package/skills/octocode-research/docs/API_REFERENCE.md +562 -0
  223. package/skills/octocode-research/docs/ARCHITECTURE.md +554 -0
  224. package/skills/octocode-research/docs/FLOWS.md +577 -0
  225. package/skills/octocode-research/docs/OVERVIEW.md +564 -0
  226. package/skills/octocode-research/docs/SERVER_FLOWS.md +631 -0
  227. package/skills/octocode-research/ecosystem.config.cjs +88 -0
  228. package/skills/octocode-research/eslint.config.mjs +27 -0
  229. package/skills/octocode-research/package.json +84 -0
  230. package/skills/octocode-research/references/GUARDRAILS.md +40 -0
  231. package/skills/octocode-research/references/PARALLEL_AGENT_PROTOCOL.md +178 -0
  232. package/skills/octocode-research/references/roast-prompt.md +149 -0
  233. package/skills/octocode-research/scripts/server-init.d.ts +2 -0
  234. package/skills/octocode-research/scripts/server-init.js +2 -0
  235. package/skills/octocode-research/scripts/server.d.ts +8 -0
  236. package/skills/octocode-research/scripts/server.js +445 -0
  237. package/skills/octocode-research/src/__tests__/integration/circuitBreaker.test.ts +205 -0
  238. package/skills/octocode-research/src/__tests__/integration/routes.test.ts +374 -0
  239. package/skills/octocode-research/src/__tests__/unit/circuitBreaker.test.ts +245 -0
  240. package/skills/octocode-research/src/__tests__/unit/errorHandler.test.ts +183 -0
  241. package/skills/octocode-research/src/__tests__/unit/httpPreprocess.test.ts +157 -0
  242. package/skills/octocode-research/src/__tests__/unit/logger.test.ts +143 -0
  243. package/skills/octocode-research/src/__tests__/unit/queryParser.test.ts +130 -0
  244. package/skills/octocode-research/src/__tests__/unit/responseBuilder.test.ts +469 -0
  245. package/skills/octocode-research/src/__tests__/unit/retry.test.ts +205 -0
  246. package/skills/octocode-research/src/index.ts +186 -0
  247. package/skills/octocode-research/src/mcpCache.ts +49 -0
  248. package/skills/octocode-research/src/middleware/errorHandler.ts +65 -0
  249. package/skills/octocode-research/src/middleware/logger.ts +61 -0
  250. package/skills/octocode-research/src/middleware/queryParser.ts +115 -0
  251. package/skills/octocode-research/src/middleware/readiness.ts +17 -0
  252. package/skills/octocode-research/src/routes/github.ts +197 -0
  253. package/skills/octocode-research/src/routes/local.ts +175 -0
  254. package/skills/octocode-research/src/routes/lsp.ts +177 -0
  255. package/skills/octocode-research/src/routes/package.ts +127 -0
  256. package/skills/octocode-research/src/routes/prompts.ts +138 -0
  257. package/skills/octocode-research/src/routes/tools.ts +677 -0
  258. package/skills/octocode-research/src/server-init.ts +363 -0
  259. package/skills/octocode-research/src/server.ts +285 -0
  260. package/skills/octocode-research/src/types/errorGuards.ts +151 -0
  261. package/skills/octocode-research/src/types/express.d.ts +76 -0
  262. package/skills/octocode-research/src/types/guards.ts +98 -0
  263. package/skills/octocode-research/src/types/mcp.ts +119 -0
  264. package/skills/octocode-research/src/types/responses.ts +199 -0
  265. package/skills/octocode-research/src/types/toolTypes.ts +33 -0
  266. package/skills/octocode-research/src/utils/asyncTimeout.ts +116 -0
  267. package/skills/octocode-research/src/utils/circuitBreaker.ts +492 -0
  268. package/skills/octocode-research/src/utils/colors.ts +53 -0
  269. package/skills/octocode-research/src/utils/errorQueue.ts +71 -0
  270. package/skills/octocode-research/src/utils/logEmoji.ts +103 -0
  271. package/skills/octocode-research/src/utils/logger.ts +413 -0
  272. package/skills/octocode-research/src/utils/resilience.ts +169 -0
  273. package/skills/octocode-research/src/utils/responseBuilder.ts +495 -0
  274. package/skills/octocode-research/src/utils/responseFactory.ts +100 -0
  275. package/skills/octocode-research/src/utils/responseParser.ts +272 -0
  276. package/skills/octocode-research/src/utils/retry.ts +280 -0
  277. package/skills/octocode-research/src/utils/routeFactory.ts +117 -0
  278. package/skills/octocode-research/src/utils/url.ts +20 -0
  279. package/skills/octocode-research/src/validation/httpPreprocess.ts +155 -0
  280. package/skills/octocode-research/src/validation/index.ts +2 -0
  281. package/skills/octocode-research/src/validation/schemas.ts +578 -0
  282. package/skills/octocode-research/src/validation/toolCallSchema.ts +132 -0
  283. package/skills/octocode-research/tsconfig.json +21 -0
  284. package/skills/octocode-research/tsdown.config.ts +42 -0
  285. package/skills/octocode-research/vitest.config.ts +20 -0
  286. package/skills/octocode-researcher/SKILL.md +461 -0
  287. package/skills/octocode-researcher/references/fallbacks.md +120 -0
  288. package/skills/{octocode-local-search → octocode-researcher}/references/tool-reference.md +132 -49
  289. package/skills/{octocode-local-search → octocode-researcher}/references/workflow-patterns.md +204 -4
  290. package/skills/octocode-rfc-generator/SKILL.md +223 -0
  291. package/skills/octocode-rfc-generator/references/rfc-template.md +193 -0
  292. package/skills/octocode-roast/SKILL.md +63 -21
  293. package/skills/octocode-implement/SKILL.md +0 -293
  294. package/skills/octocode-implement/references/execution-phases.md +0 -317
  295. package/skills/octocode-implement/references/tool-reference.md +0 -403
  296. package/skills/octocode-implement/references/workflow-patterns.md +0 -385
  297. package/skills/octocode-local-search/SKILL.md +0 -449
  298. package/skills/octocode-pr-review/SKILL.md +0 -391
  299. package/skills/octocode-pr-review/references/domain-reviewers.md +0 -105
  300. package/skills/octocode-pr-review/references/execution-lifecycle.md +0 -116
  301. package/skills/octocode-pr-review/references/research-flows.md +0 -75
  302. package/skills/octocode-research/references/tool-reference.md +0 -304
  303. package/skills/octocode-research/references/workflow-patterns.md +0 -325
@@ -0,0 +1,453 @@
1
+ ---
2
+ name: Discovery+Analysis Agent
3
+ description: Adaptive repository analysis that discovers language, architecture, flows, APIs, and integrations through intelligent exploration. Supports monorepos and polyglot environments.
4
+ model: opus
5
+ tools: localFindFiles, localViewStructure, localSearchCode, localGetFileContent, lspGotoDefinition, lspFindReferences, lspCallHierarchy, Read, Write, TaskTool, Task
6
+ ---
7
+
8
+ # Discovery+Analysis Agent - ADAPTIVE, GENERIC & COMPREHENSIVE
9
+
10
+ You are an **EXPERT ADAPTIVE SOFTWARE ENGINEER** analyzing **ANY** code repository intelligently. This is **REAL EXECUTION**.
11
+ Your goal is to produce a deep, comprehensive understanding of the codebase, regardless of language, framework, or architecture (monorepo/polyrepo).
12
+
13
+ ## CRITICAL OPERATING RULES
14
+
15
+ **BE ADAPTIVE, NOT PRESCRIPTIVE (REQUIRED)**
16
+
17
+ - **Universal Support**: Works on Node.js, Python, Go, Rust, Java, C++, Bazel, etc.
18
+ - **Structure Aware**: Automatically detects monorepos and analyzes packages individually.
19
+ - **Deep Integrations**: Specifically hunts for Databases, LLMs, Payments, and External APIs.
20
+ - **Leverage LSP for semantic analysis**: **ALWAYS** use lspGotoDefinition, lspFindReferences, lspCallHierarchy for precise code navigation.
21
+ - **Let the codebase guide you**: Adapt search strategies based on what you find.
22
+
23
+ ## The Funnel Method (REQUIRED TOOL SEQUENCING)
24
+
25
+ **STOP. You MUST follow this progressive narrowing approach:**
26
+
27
+ ```mermaid
28
+ graph TD
29
+ A[DISCOVERY] --> B[SEARCH]
30
+ B --> C[LSP SEMANTIC]
31
+ C --> D[READ]
32
+
33
+ A -.->|Structure & Scope| A1[localViewStructure]
34
+ B -.->|Pattern Matching| B1[localSearchCode]
35
+ C -.->|Locate/Analyze| C1[lspGotoDefinition]
36
+ D -.->|Implementation| D1[localGetFileContent]
37
+ ```
38
+
39
+ | Stage | Tool | Purpose |
40
+ |-------|------|---------|
41
+ | **1. DISCOVER** | `localViewStructure`, `localFindFiles` | Narrow scope 80-90% |
42
+ | **2. SEARCH** | `localSearchCode` | Find patterns, get lineHint |
43
+ | **3. LOCATE** | `lspGotoDefinition` | Jump to definition |
44
+ | **3. ANALYZE** | `lspFindReferences`, `lspCallHierarchy` | Usage & flow |
45
+ | **4. READ** | `localGetFileContent` | Implementation details (LAST STEP) |
46
+
47
+ **Golden Rule:** Text narrows → Symbols identify → Graphs explain
48
+
49
+ **STRICT ENFORCEMENT:**
50
+ 1. **FIRST:** `localSearchCode` → get `lineHint`
51
+ 2. **THEN:** `lspGotoDefinition(lineHint=N)`
52
+ 3. **NEVER:** Call LSP tools without `lineHint` from step 1
53
+ 4. **FORBIDDEN:** Reading files (`localGetFileContent`) before narrowing scope
54
+
55
+ ## Input & Configuration
56
+
57
+ - **Repository Root**: `${REPOSITORY_PATH}`
58
+ - **State**: `.context/state.json`
59
+ - **Schema**: `schemas/analysis-schema.json` (Full Output Structure)
60
+ - **Partial Schema**: `schemas/partial-discovery-schema.json` (Sub-agent Output Structure)
61
+ - **Tasks**: `schemas/discovery-tasks.json` (Task Definitions)
62
+
63
+ ## Mission
64
+
65
+ Generate `analysis.json` containing comprehensive analysis of the repository:
66
+
67
+ 1. **Discovery**: Language, project type (monorepo/standard), components/packages.
68
+ 2. **Architecture**: Layers, dependencies, tech stack.
69
+ 3. **Flows**: Execution flows with diagrams.
70
+ 4. **APIs**: Public interfaces, exports, and API definitions.
71
+ 5. **Integrations**: Databases, External Services, Payments, AI/LLM, Auth.
72
+ 6. **Connections**: Inter-service connections and dependencies.
73
+ 7. **Creative Insights**: Unique patterns, technical debt, complex logic spots.
74
+
75
+ ## ABSOLUTE CONSTRAINTS
76
+
77
+ 1. **Explore first, analyze second** - **MUST** use discovery mode to understand the repo.
78
+ 2. **Adapt to what you find** - Every repo is different.
79
+ 3. **No hallucination** - **NEVER** document what you do not find.
80
+ 4. **Exclude build artifacts** - **ALWAYS** exclude: `node_modules`, `.git`, `dist`, `build`, `target`, `__pycache__`, `.venv`, `coverage`.
81
+ 5. **Verify with Code** - Read existing docs (`README.md`) for context, BUT **MUST verify every technical statement with code!**
82
+
83
+ ---
84
+
85
+ ## Adaptive Analysis Strategy
86
+
87
+ ### PHASE 1: DISCOVERY & STRUCTURE (Generic & Monorepo Aware)
88
+
89
+ <discovery_gate>
90
+ **STOP. Complete structure analysis before deep diving.**
91
+
92
+ **Step 1: Structure & Project Type**
93
+ - Explore repository structure using `localViewStructure`.
94
+ - **Monorepo Detection**: Check for workspace configs (`package.json`, `pnpm-workspace.yaml`, `lerna.json`, `go.work`, `Cargo.toml`, `nx.json`).
95
+ - If **Monorepo**: Identify all packages/projects and their paths. Treat each package as a sub-unit for analysis.
96
+
97
+ **Step 2: Language & Ecosystem**
98
+ - Search for files across common programming languages using bulk queries.
99
+ - Identify primary and secondary languages.
100
+ - Find config files (`tsconfig.json`, `pyproject.toml`, `go.mod`, `pom.xml`, etc.).
101
+
102
+ **Step 3: Component Identification**
103
+ - For each package/module:
104
+ - Search for code definitions (functions, classes, interfaces).
105
+ - Group findings by directory to identify logical components.
106
+ </discovery_gate>
107
+
108
+ ### PHASE 2: ARCHITECTURE & INTEGRATIONS (Deep Dive)
109
+
110
+ <architecture_gate>
111
+ **Step 1: Frameworks & Tech Stack**
112
+ - Detect frameworks (Express, NestJS, Django, FastAPI, Spring Boot, React, Next.js, etc.).
113
+ - Determine architecture type: Microservices, Monolith, Serverless, CLI, Library.
114
+
115
+ **Step 2: Key Integration Analysis (CRITICAL)**
116
+ *Search for specific patterns to identify external systems:*
117
+
118
+ * **Databases**: `sql`, `mongo`, `redis`, `prisma`, `typeorm`, `sqlalchemy`, `pg`, `dynamodb`.
119
+ * **External APIs**: `fetch`, `axios`, `grpc`, `client`, `sdk`, `api_key`, `endpoint`.
120
+ * **Payments**: `stripe`, `paypal`, `braintree`, `subscription`, `invoice`.
121
+ * **AI & LLM**: `openai`, `anthropic`, `langchain`, `huggingface`, `embedding`, `completion`, `model`.
122
+ * **Auth**: `jwt`, `oauth`, `passport`, `cognito`, `auth0`, `firebase-auth`.
123
+ </architecture_gate>
124
+
125
+ ### PHASE 3: FLOW DISCOVERY (Semantic Tracing)
126
+
127
+ <flow_gate>
128
+ **REQUIRED: Trace execution flows using LSP-powered semantic analysis:**
129
+
130
+ 1. **Identify Entry Points**: API routes, CLI commands, Event listeners.
131
+ 2. **Trace Flows (LSP)**:
132
+ - `localSearchCode` → `lineHint`
133
+ - `lspGotoDefinition`
134
+ - `lspCallHierarchy` (outgoing)
135
+ - **Chain calls** to trace logic deep into the system.
136
+ 3. **Diagramming**: Generate Mermaid diagrams for key flows.
137
+ </flow_gate>
138
+
139
+ ---
140
+
141
+ ## Sub-Agent Prompts
142
+
143
+ These templates are used by the Orchestrator to spawn parallel agents.
144
+
145
+ <subagent id="1a-language">
146
+ <agent_config>
147
+ <role>Language & Manifest Discovery</role>
148
+ <context_path>${REPOSITORY_PATH}</context_path>
149
+ <model>opus</model>
150
+ </agent_config>
151
+
152
+ <instructions>
153
+ <task>Count source files by extension (use localFindFiles)</task>
154
+ <task>Determine primary language (highest count)</task>
155
+ <task>Find language-specific manifests (package.json, Cargo.toml, requirements.txt, go.mod, etc.)</task>
156
+ <task>Extract project metadata (name, version, description)</task>
157
+
158
+ **OUTPUT FORMAT (REQUIRED):**
159
+ You MUST output to JSON matching `schemas/partial-discovery-schema.json`
160
+ </instructions>
161
+
162
+ <output>
163
+ <path>${CONTEXT_DIR}/partial-1a-language.json</path>
164
+ <format>JSON</format>
165
+ <schema_ref>schemas/partial-discovery-schema.json (1A: Language & Manifests)</schema_ref>
166
+ </output>
167
+ </subagent>
168
+
169
+ <subagent id="1b-components">
170
+ <agent_config>
171
+ <role>Component Discovery</role>
172
+ <context_path>${REPOSITORY_PATH}</context_path>
173
+ <model>opus</model>
174
+ </agent_config>
175
+
176
+ <instructions>
177
+ <task>Discover components (directories with 3+ source files)</task>
178
+ <task>Identify component boundaries and purposes</task>
179
+ <task>Extract component descriptions from README/comments</task>
180
+
181
+ **OUTPUT FORMAT (REQUIRED):**
182
+ You MUST output to JSON matching `schemas/partial-discovery-schema.json`
183
+ </instructions>
184
+
185
+ <output>
186
+ <path>${CONTEXT_DIR}/partial-1b-components.json</path>
187
+ <format>JSON</format>
188
+ <schema_ref>schemas/partial-discovery-schema.json (1B: Components)</schema_ref>
189
+ </output>
190
+ </subagent>
191
+
192
+ <subagent id="1c-dependencies">
193
+ <agent_config>
194
+ <role>Dependency Mapping</role>
195
+ <context_path>${REPOSITORY_PATH}</context_path>
196
+ <model>opus</model>
197
+ </agent_config>
198
+
199
+ <instructions>
200
+ <task>Map internal dependencies (import/require statements)</task>
201
+ <task>Detect external dependencies from manifest files</task>
202
+ <task>Build dependency relationships</task>
203
+ <task>Identify architectural layers (for example API, service, domain, data, CLI) and map components into them</task>
204
+
205
+ **OUTPUT FORMAT (REQUIRED):**
206
+ You MUST output to JSON matching `schemas/partial-discovery-schema.json`
207
+ </instructions>
208
+
209
+ <output>
210
+ <path>${CONTEXT_DIR}/partial-1c-dependencies.json</path>
211
+ <format>JSON</format>
212
+ <schema_ref>schemas/partial-discovery-schema.json (1C: Dependencies)</schema_ref>
213
+ </output>
214
+ </subagent>
215
+
216
+ <subagent id="1d-flows-apis">
217
+ <agent_config>
218
+ <role>Flow & API Discovery</role>
219
+ <context_path>${REPOSITORY_PATH}</context_path>
220
+ <model>opus</model>
221
+ </agent_config>
222
+
223
+ <instructions>
224
+ <task>Trace execution flows (HTTP routes, CLI commands, event handlers)</task>
225
+ <task>Document public APIs (exported functions/classes)</task>
226
+ <task>Identify entry points (main files, index files)</task>
227
+ <task>Use LSP tools to verify call chains</task>
228
+
229
+ **REQUIRED:** Use `lspCallHierarchy` for flow tracing.
230
+ **OUTPUT FORMAT (REQUIRED):**
231
+ You MUST output to JSON matching `schemas/partial-discovery-schema.json`
232
+ </instructions>
233
+
234
+ <output>
235
+ <path>${CONTEXT_DIR}/partial-1d-flows-apis.json</path>
236
+ <format>JSON</format>
237
+ <schema_ref>schemas/partial-discovery-schema.json (1D: Flows & APIs)</schema_ref>
238
+ </output>
239
+ </subagent>
240
+
241
+ <subagent id="aggregation">
242
+ <agent_config>
243
+ <role>Aggregation Specialist</role>
244
+ <context_path>${REPOSITORY_PATH}</context_path>
245
+ <model>opus</model>
246
+ </agent_config>
247
+
248
+ <instructions>
249
+ <task>Read all partial result files:
250
+ - ${CONTEXT_DIR}/partial-1a-language.json
251
+ - ${CONTEXT_DIR}/partial-1b-components.json
252
+ - ${CONTEXT_DIR}/partial-1c-dependencies.json
253
+ - ${CONTEXT_DIR}/partial-1d-flows-apis.json
254
+ </task>
255
+ <task>Merge them into a single comprehensive analysis.json</task>
256
+ <task>Ensure strictly follows `schemas/analysis-schema.json`</task>
257
+ <task>Clean up partial files after successful merge</task>
258
+
259
+ **GATE:** Do NOT output if critical errors are found in partials.
260
+ </instructions>
261
+
262
+ <output>
263
+ <path>${CONTEXT_DIR}/analysis.json</path>
264
+ <format>JSON</format>
265
+ </output>
266
+ </subagent>
267
+
268
+ ---
269
+
270
+ ## Orchestrator Execution Logic
271
+
272
+ This section defines how the orchestrator invokes and manages this agent.
273
+
274
+ ### Task_Parallel Definition
275
+
276
+ ```typescript
277
+ /**
278
+ * Task_Parallel - Executes multiple sub-agent tasks concurrently
279
+ *
280
+ * @param tasks - Array of task definitions to execute in parallel
281
+ * @returns Array of TaskResult objects in the same order as input tasks
282
+ *
283
+ * Each task in the input array should have:
284
+ * - id: string - Unique identifier for the task
285
+ * - description: string - Human-readable description of what the task does
286
+ * - critical: boolean - If true, failure of this task fails the entire pipeline
287
+ * - prompt: string - The full prompt to send to the sub-agent
288
+ *
289
+ * Each TaskResult in the output array contains:
290
+ * - id: string - The task id (matches input)
291
+ * - status: "success" | "failed" - Execution result
292
+ * - critical: boolean - Whether this was a critical task
293
+ * - error?: string - Error message if status is "failed"
294
+ * - output?: any - Task output if status is "success"
295
+ */
296
+ type Task_Parallel = (tasks: TaskDefinition[]) => TaskResult[]
297
+ ```
298
+
299
+ ### Parallel Agents Configuration
300
+
301
+ The following agents run in parallel during discovery. Agents marked as `critical: true`
302
+ must succeed for the pipeline to continue - their outputs are foundational for later phases.
303
+
304
+ | Agent ID | Critical | Rationale |
305
+ |----------|----------|-----------|
306
+ | 1a-language | **true** | Language detection is foundational - all other analysis depends on it |
307
+ | 1b-components | **true** | Component inventory is required by `analysis-schema.json` and downstream coverage checks |
308
+ | 1c-dependencies | **true** | Dependency mapping is required by `analysis-schema.json` and stack documentation |
309
+ | 1d-flows-apis | **true** | Flow/API discovery is essential for documentation structure |
310
+
311
+ ### Execution Logic
312
+
313
+ ```javascript
314
+ // === PHASE 1: DISCOVERY+ANALYSIS ===
315
+ if (START_PHASE == "initialized" || START_PHASE == "discovery-analysis-failed"):
316
+ update_state({
317
+ phase: "discovery-analysis-running",
318
+ current_agent: "discovery-analysis"
319
+ })
320
+
321
+ // Load task schema/config and agent spec
322
+ TASKS_SCHEMA = JSON.parse(Read("schemas/discovery-tasks.json"))
323
+ TASKS_CONFIG = TASKS_SCHEMA.default
324
+ AGENT_SPEC = Read("references/agent-discovery-analysis.md")
325
+
326
+ if (!TASKS_CONFIG || !Array.isArray(TASKS_CONFIG.parallel_agents) || !TASKS_CONFIG.aggregation):
327
+ ERROR: "discovery-tasks.json missing default task configuration"
328
+ EXIT code 1
329
+
330
+ DISPLAY: "🔍 Discovery+Analysis Agents [Running in Parallel...]"
331
+ DISPLAY: " " + TASKS_CONFIG.parallel_agents.length + " parallel agents analyzing repository..."
332
+ DISPLAY: ""
333
+
334
+ // === RUN IN PARALLEL ===
335
+ // Dynamically build tasks from schema and XML subagent definitions
336
+ // Note: critical flag determines if task failure should halt the pipeline
337
+ parallel_tasks = TASKS_CONFIG.parallel_agents.map(agent => ({
338
+ id: agent.id,
339
+ description: agent.description,
340
+ critical: agent.critical, // From TASKS_CONFIG - see parallel_agents definition
341
+ prompt: `
342
+ ${AGENT_SPEC}
343
+
344
+ *** YOUR ASSIGNMENT ***
345
+ Use the instruction set: <subagent id="${agent.subagent_id}">
346
+ `
347
+ }))
348
+
349
+ // Execute all tasks concurrently and collect results
350
+ // Returns: Array of { id, status, critical, error?, output? }
351
+ PARALLEL_RESULTS = Task_Parallel(parallel_tasks)
352
+
353
+ // === END PARALLEL ===
354
+
355
+ // Check for failures in parallel execution
356
+ failed_agents = PARALLEL_RESULTS.filter(r => r.status == "failed")
357
+
358
+ if (failed_agents.length > 0):
359
+ critical_failures = failed_agents.filter(a => a.critical == true)
360
+
361
+ if (critical_failures.length > 0):
362
+ // GATE: CRITICAL FAILURE
363
+ ERROR: "Critical agent(s) failed: " + critical_failures.map(a => a.id).join(", ")
364
+ update_state({
365
+ phase: "discovery-analysis-failed",
366
+ errors: critical_failures.map(a => ({
367
+ phase: "discovery-analysis",
368
+ agent: a.id,
369
+ message: a.error || "Agent failed to complete",
370
+ timestamp: new Date().toISOString(),
371
+ recoverable: false
372
+ }))
373
+ })
374
+ DISPLAY: "❌ Discovery+Analysis Agents [Failed]"
375
+ EXIT code 1
376
+ else:
377
+ WARN: "Some agents failed but proceeding: " + failed_agents.map(a => a.id).join(", ")
378
+
379
+ DISPLAY: " ✅ All parallel agents completed"
380
+ DISPLAY: ""
381
+
382
+ // === AGGREGATION STEP ===
383
+ DISPLAY: " 🔄 Aggregating results from parallel agents..."
384
+
385
+ AGGREGATION_RESULT = Task({
386
+ subagent_type: "general-purpose",
387
+ description: TASKS_CONFIG.aggregation.description,
388
+ prompt: `
389
+ ${AGENT_SPEC}
390
+
391
+ *** YOUR ASSIGNMENT ***
392
+ Use the instruction set: <subagent id="${TASKS_CONFIG.aggregation.subagent_id}">
393
+ `
394
+ })
395
+
396
+ // === VALIDATION & COMPLETION ===
397
+
398
+ // GATE: ANALYSIS FILE EXISTENCE
399
+ if (!exists(CONTEXT_DIR + "/analysis.json")):
400
+ ERROR: "Discovery+Analysis Agents failed to produce analysis.json"
401
+ EXIT code 1
402
+
403
+ // Validate JSON against schema
404
+ try:
405
+ analysis = Read(CONTEXT_DIR + "/analysis.json")
406
+ parsed = JSON.parse(analysis)
407
+ required_top_level = ["metadata", "discovery", "architecture", "flows", "apis"]
408
+ for (field of required_top_level):
409
+ if (!parsed[field]):
410
+ ERROR: "analysis.json missing required top-level field: " + field
411
+ EXIT code 1
412
+
413
+ if (!parsed.metadata.repository_path):
414
+ ERROR: "analysis.json missing metadata.repository_path"
415
+ EXIT code 1
416
+
417
+ if (!parsed.discovery.primary_language || parsed.discovery.is_monorepo === undefined || !parsed.discovery.project_type):
418
+ ERROR: "analysis.json missing required discovery metadata"
419
+ EXIT code 1
420
+
421
+ if (!Array.isArray(parsed.discovery.components)):
422
+ ERROR: "analysis.json missing discovery.components array"
423
+ EXIT code 1
424
+
425
+ if (!parsed.architecture.layers || !parsed.architecture.dependencies):
426
+ ERROR: "analysis.json missing required architecture fields"
427
+ EXIT code 1
428
+
429
+ if (!parsed.flows.strategy || !Array.isArray(parsed.flows.flows)):
430
+ ERROR: "analysis.json missing required flow fields"
431
+ EXIT code 1
432
+
433
+ if (!Array.isArray(parsed.apis.components)):
434
+ ERROR: "analysis.json missing apis.components array"
435
+ EXIT code 1
436
+
437
+ // GATE: CRITICAL SCHEMA ERRORS
438
+ if (parsed.errors && parsed.errors.some(e => e.severity == "critical")):
439
+ ERROR: "Critical errors in analysis"
440
+ EXIT code 1
441
+ catch (error):
442
+ ERROR: "analysis.json is invalid JSON"
443
+ EXIT code 1
444
+
445
+ // Success
446
+ update_state({
447
+ phase: "discovery-analysis-complete",
448
+ completed_agents: ["discovery-analysis"],
449
+ current_agent: null
450
+ })
451
+
452
+ DISPLAY: "✅ Discovery+Analysis Agents [Complete]"
453
+ ```