octocode-cli 1.2.6 → 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 +85 -142
  3. package/out/octocode-cli.js +7026 -6945
  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,371 @@
1
+ # Code Review: octocode-research Skill
2
+
3
+ **Date:** 2026-01-22
4
+ **Target:** `/Users/guybary/Documents/octocode-mcp/skills/octocode-research`
5
+ **Version:** 2.2.0
6
+ **Overall Rating:** ⭐⭐⭐⭐☆ (Good Quality)
7
+
8
+ ---
9
+
10
+ ## Research Goal
11
+
12
+ Comprehensive code review of the octocode-research skill covering architecture, API routes, utilities, middleware, validation, types, and test coverage.
13
+
14
+ ---
15
+
16
+ ## Answer (TL;DR)
17
+
18
+ The codebase demonstrates **mature engineering practices** with clean architecture, comprehensive type safety via Zod schemas, and thoughtful resilience patterns (circuit breaker, retry, timeout). Key strengths include race condition prevention in server initialization, strong path traversal security, and a well-designed route factory pattern.
19
+
20
+ **Primary concerns requiring attention:**
21
+ 1. Missing jitter in retry backoff (thundering herd risk)
22
+ 2. No rate limiting middleware
23
+ 3. Test coverage gaps for security-critical code (`safePath`, `readiness.ts`)
24
+ 4. Some `any` types in Express declarations weakening type safety
25
+
26
+ ---
27
+
28
+ ## Details
29
+
30
+ ### Codebase Structure
31
+
32
+ ```
33
+ src/
34
+ ├── index.ts # Entry point/exports
35
+ ├── server.ts # Main HTTP server (~8.9KB)
36
+ ├── server-init.ts # Initialization with locking (~10.2KB)
37
+ ├── mcpCache.ts # MCP content caching
38
+ ├── middleware/
39
+ │ ├── errorHandler.ts # Centralized error handling
40
+ │ ├── logger.ts # Request logging with correlation IDs
41
+ │ ├── queryParser.ts # Batch query parsing
42
+ │ └── readiness.ts # Initialization gate
43
+ ├── routes/
44
+ │ ├── github.ts # GitHub API routes
45
+ │ ├── local.ts # Local file operations
46
+ │ ├── lsp.ts # LSP integration
47
+ │ ├── package.ts # Package search
48
+ │ ├── prompts.ts # Prompt management
49
+ │ └── tools.ts # Tool execution (~20.2KB, largest)
50
+ ├── types/
51
+ │ ├── errorGuards.ts # Error type guards
52
+ │ ├── express.d.ts # Express type augmentation
53
+ │ ├── guards.ts # General type guards
54
+ │ ├── mcp.ts # MCP types
55
+ │ ├── responses.ts # Response types
56
+ │ └── toolTypes.ts # Tool parameter types
57
+ ├── utils/
58
+ │ ├── circuitBreaker.ts # Circuit breaker pattern (~14.1KB)
59
+ │ ├── retry.ts # Retry with backoff
60
+ │ ├── resilience.ts # Resilience composition
61
+ │ ├── responseBuilder.ts # Response construction
62
+ │ ├── logger.ts # File logging with rotation
63
+ │ └── ... (8 more utilities)
64
+ └── validation/
65
+ ├── schemas.ts # Zod validation schemas (~18.7KB)
66
+ ├── toolCallSchema.ts # Tool call validation
67
+ └── httpPreprocess.ts # HTTP input preprocessing
68
+ ```
69
+
70
+ **Stats:** 45 TypeScript files, 8 directories, ~260KB source code
71
+
72
+ ---
73
+
74
+ ## Code Flows
75
+
76
+ ### Server Startup Flow
77
+
78
+ ```
79
+ npm run server-init
80
+
81
+
82
+ ┌─────────────────────┐
83
+ │ server-init.ts │
84
+ │ - Acquire lock │
85
+ │ - Check health │
86
+ │ - Start if needed │
87
+ └─────────────────────┘
88
+
89
+
90
+ ┌─────────────────────┐
91
+ │ server.ts │
92
+ │ - Create Express │
93
+ │ - Mount routes │
94
+ │ - Initialize MCP │
95
+ │ - PM2 ready signal │
96
+ └─────────────────────┘
97
+
98
+
99
+ ┌─────────────────────┐
100
+ │ Idle monitoring │
101
+ │ - 30min timeout │
102
+ │ - Auto-restart │
103
+ └─────────────────────┘
104
+ ```
105
+
106
+ ### Request Flow
107
+
108
+ ```
109
+ Request
110
+
111
+
112
+ ┌──────────────────┐
113
+ │ express.json() │
114
+ └──────────────────┘
115
+
116
+
117
+ ┌──────────────────┐
118
+ │ Activity tracker │
119
+ └──────────────────┘
120
+
121
+
122
+ ┌──────────────────┐
123
+ │ requestLogger │
124
+ │ (X-Request-ID) │
125
+ └──────────────────┘
126
+
127
+
128
+ ┌──────────────────┐
129
+ │ readinessCheck │
130
+ │ (503 if init) │
131
+ └──────────────────┘
132
+
133
+
134
+ ┌──────────────────┐
135
+ │ Route handler │
136
+ │ ┌──────────────┐ │
137
+ │ │ Validation │ │
138
+ │ │ (Zod schema) │ │
139
+ │ └──────────────┘ │
140
+ │ ┌──────────────┐ │
141
+ │ │ Resilience │ │
142
+ │ │ timeout → │ │
143
+ │ │ circuit → │ │
144
+ │ │ retry │ │
145
+ │ └──────────────┘ │
146
+ │ ┌──────────────┐ │
147
+ │ │ MCP Tool │ │
148
+ │ └──────────────┘ │
149
+ │ ┌──────────────┐ │
150
+ │ │ Response │ │
151
+ │ │ Builder │ │
152
+ │ └──────────────┘ │
153
+ └──────────────────┘
154
+
155
+
156
+ ┌──────────────────┐
157
+ │ errorHandler │
158
+ │ (if error) │
159
+ └──────────────────┘
160
+
161
+
162
+ Response
163
+ ```
164
+
165
+ ### Resilience Layer
166
+
167
+ ```
168
+ withGitHubResilience(operation)
169
+
170
+
171
+ ┌─────────────────────────┐
172
+ │ withTimeout (30s) │
173
+ │ ┌─────────────────────┐ │
174
+ │ │ withCircuitBreaker │ │
175
+ │ │ ┌─────────────────┐ │ │
176
+ │ │ │ withRetry │ │ │
177
+ │ │ │ (3 attempts, │ │ │
178
+ │ │ │ exp backoff) │ │ │
179
+ │ │ └─────────────────┘ │ │
180
+ │ └─────────────────────┘ │
181
+ └─────────────────────────┘
182
+ ```
183
+
184
+ ---
185
+
186
+ ## Key Findings
187
+
188
+ ### Strengths
189
+
190
+ #### 1. Race Condition Prevention (`server-init.ts:60-130`)
191
+ - File-based locking with PID tracking
192
+ - Stale lock detection (checks if PID process is alive)
193
+ - Atomic lock acquisition using `O_CREAT | O_EXCL` flags
194
+ - Exponential backoff in health polling
195
+
196
+ #### 2. Path Security (`httpPreprocess.ts:64-108`)
197
+ ```typescript
198
+ export const safePath = z.string().refine((p) => {
199
+ if (p.includes('\0')) return false; // Null byte injection
200
+ const normalized = path.normalize(p);
201
+ if (normalized.includes('..')) return false; // Directory traversal
202
+ if (os.platform() !== 'win32' && p.includes('\\')) return false;
203
+ // URL-encoded traversal patterns checked
204
+ });
205
+ ```
206
+
207
+ #### 3. Circuit Breaker Implementation (`circuitBreaker.ts`)
208
+ - Clean state machine (closed → open → half-open → closed)
209
+ - Memory leak prevention with `cleanupStaleCircuits()`, MAX_CIRCUITS=100
210
+ - Per-tool circuit isolation
211
+ - `CircuitOpenError` includes `retryAfterMs` for informed backoff
212
+
213
+ #### 4. Route Factory Pattern (`routeFactory.ts:21-45`)
214
+ ```typescript
215
+ export function createRouteHandler<TQuery, TParams, TResponse>(
216
+ config: RouteConfig<TQuery, TParams, TResponse>
217
+ ): RequestHandler {
218
+ // Consistent: validation → resilience → transform → response
219
+ }
220
+ ```
221
+
222
+ #### 5. Comprehensive Type Guards (`types/guards.ts`, `types/errorGuards.ts`)
223
+ - Properly narrowing type guards using `is` return types
224
+ - Utility functions: `hasProperty`, `hasStringProperty`, `getErrorStatus`
225
+
226
+ ### Issues
227
+
228
+ #### High Priority
229
+
230
+ | Issue | File:Line | Impact |
231
+ |-------|-----------|--------|
232
+ | Missing jitter in retry backoff | `retry.ts:129` | Thundering herd on rate limits |
233
+ | No rate limiting middleware | All routes | Abuse/DDoS vulnerability |
234
+ | Test setup doesn't match server | `routes.test.ts:78-81` | Tests may pass but miss real bugs |
235
+ | No tests for safePath validator | `httpPreprocess.ts` | Security code untested |
236
+
237
+ #### Medium Priority
238
+
239
+ | Issue | File:Line | Impact |
240
+ |-------|-----------|--------|
241
+ | `any` types in Express declarations | `express.d.ts:16,24,25,28,37` | Loses type safety |
242
+ | Pre-configured circuits can be deleted | `circuitBreaker.ts:415-419` | Circuits lose custom config |
243
+ | package.ts doesn't use factory | `package.ts:14-40` | Inconsistent error handling |
244
+ | GET routes lack MAX_QUERIES check | `queryParser.ts` | Resource exhaustion |
245
+ | No path length validation | `httpPreprocess.ts` | DoS via long paths |
246
+ | Initialization resolves early | `server.ts:225-248` | Callers may assume ready |
247
+
248
+ #### Low Priority
249
+
250
+ | Issue | File:Line | Impact |
251
+ |-------|-----------|--------|
252
+ | Hardcoded PORT, timeouts | `server.ts:16-18` | Inflexible deployment |
253
+ | Inconsistent logging (emojis) | `circuitBreaker.ts` | Log parsing issues |
254
+ | AbortController not passed through | `tools.ts` POST handler | Can't cancel mid-flight |
255
+ | Untyped catch blocks | Multiple files | Weaker type safety |
256
+
257
+ ---
258
+
259
+ ## Edge Cases / Caveats
260
+
261
+ ### Known Limitations
262
+
263
+ 1. **Comma in query values** - `toArray` preprocessor splits on comma without escaping, so values containing commas will be incorrectly split
264
+
265
+ 2. **Float handling** - `toNumber` preprocessor only handles integers (`/^\d+$/`), floats passed as strings
266
+
267
+ 3. **404 handler isolation** - 404 handler sends response directly without calling `next()`, so it bypasses errorHandler middleware
268
+
269
+ 4. **Test environment drift** - Integration tests mount routes at `/` instead of `/tools`, may miss path-related bugs
270
+
271
+ ### Security Considerations
272
+
273
+ | Area | Status | Notes |
274
+ |------|--------|-------|
275
+ | Path Traversal | ✅ Protected | Multiple attack vectors blocked |
276
+ | Input Validation | ✅ Comprehensive | Zod schemas on all inputs |
277
+ | Error Exposure | ⚠️ Partial | Validation details exposed to clients |
278
+ | Rate Limiting | ❌ Missing | Add express-rate-limit |
279
+ | DoS Prevention | ⚠️ Partial | No path length limit |
280
+
281
+ ---
282
+
283
+ ## Recommendations
284
+
285
+ ### Immediate Actions
286
+
287
+ ```typescript
288
+ // 1. Add jitter to retry.ts:129
289
+ const jitter = 0.5 + Math.random(); // 0.5 to 1.5
290
+ delay = Math.min(delay * config.backoffMultiplier * jitter, config.maxDelayMs);
291
+
292
+ // 2. Add rate limiting to server.ts
293
+ import rateLimit from 'express-rate-limit';
294
+ app.use(rateLimit({ windowMs: 60000, max: 100 }));
295
+
296
+ // 3. Add path length validation to httpPreprocess.ts
297
+ if (p.length > 4096) return false; // Before other checks
298
+ ```
299
+
300
+ ### Short-term
301
+
302
+ 4. Add unit tests for `safePath` security validation
303
+ 5. Add unit tests for `readiness.ts` middleware
304
+ 6. Refactor `package.ts` to use `createRouteHandler`
305
+ 7. Fix `routes.test.ts` to mount at `/tools` with full middleware
306
+
307
+ ### Long-term
308
+
309
+ 8. Replace `any` with `unknown` in Express type declarations
310
+ 9. Extract configuration to environment variables
311
+ 10. Consider OpenAPI spec generation from Zod schemas
312
+ 11. Add structured JSON logging option for production
313
+
314
+ ---
315
+
316
+ ## Test Coverage Summary
317
+
318
+ | Component | Tested | Missing |
319
+ |-----------|--------|---------|
320
+ | Circuit breaker | ✅ Excellent | - |
321
+ | Retry logic | ✅ Excellent | - |
322
+ | Response builder | ✅ Excellent | - |
323
+ | Error handler | ✅ Good | Stack trace exposure |
324
+ | Logger | ⚠️ Partial | requestLogger middleware |
325
+ | Query parser | ⚠️ Partial | parseAndValidate function |
326
+ | Schemas | ⚠️ Partial | Transform functions |
327
+ | Readiness | ❌ None | Full middleware |
328
+ | safePath | ❌ None | Security validation |
329
+ | Routes integration | ⚠️ Fair | Config doesn't match server |
330
+
331
+ ---
332
+
333
+ ## References
334
+
335
+ ### Architecture & Entry Points
336
+ - `/Users/guybary/Documents/octocode-mcp/skills/octocode-research/src/server.ts` - Main server
337
+ - `/Users/guybary/Documents/octocode-mcp/skills/octocode-research/src/server-init.ts` - Initialization
338
+ - `/Users/guybary/Documents/octocode-mcp/skills/octocode-research/src/index.ts` - Exports
339
+
340
+ ### Routes
341
+ - `/Users/guybary/Documents/octocode-mcp/skills/octocode-research/src/routes/tools.ts` - Tool execution (largest)
342
+ - `/Users/guybary/Documents/octocode-mcp/skills/octocode-research/src/routes/github.ts` - GitHub API
343
+ - `/Users/guybary/Documents/octocode-mcp/skills/octocode-research/src/routes/local.ts` - Local files
344
+ - `/Users/guybary/Documents/octocode-mcp/skills/octocode-research/src/routes/lsp.ts` - LSP integration
345
+ - `/Users/guybary/Documents/octocode-mcp/skills/octocode-research/src/routes/package.ts` - Package search
346
+ - `/Users/guybary/Documents/octocode-mcp/skills/octocode-research/src/routes/prompts.ts` - Prompts
347
+
348
+ ### Utilities
349
+ - `/Users/guybary/Documents/octocode-mcp/skills/octocode-research/src/utils/circuitBreaker.ts` - Circuit breaker
350
+ - `/Users/guybary/Documents/octocode-mcp/skills/octocode-research/src/utils/retry.ts` - Retry logic
351
+ - `/Users/guybary/Documents/octocode-mcp/skills/octocode-research/src/utils/resilience.ts` - Resilience composition
352
+ - `/Users/guybary/Documents/octocode-mcp/skills/octocode-research/src/utils/responseBuilder.ts` - Response building
353
+ - `/Users/guybary/Documents/octocode-mcp/skills/octocode-research/src/utils/logger.ts` - File logging
354
+
355
+ ### Validation
356
+ - `/Users/guybary/Documents/octocode-mcp/skills/octocode-research/src/validation/schemas.ts` - Zod schemas
357
+ - `/Users/guybary/Documents/octocode-mcp/skills/octocode-research/src/validation/httpPreprocess.ts` - Security validation
358
+ - `/Users/guybary/Documents/octocode-mcp/skills/octocode-research/src/validation/toolCallSchema.ts` - Tool call validation
359
+
360
+ ### Types
361
+ - `/Users/guybary/Documents/octocode-mcp/skills/octocode-research/src/types/express.d.ts` - Express augmentation
362
+ - `/Users/guybary/Documents/octocode-mcp/skills/octocode-research/src/types/guards.ts` - Type guards
363
+ - `/Users/guybary/Documents/octocode-mcp/skills/octocode-research/src/types/errorGuards.ts` - Error guards
364
+
365
+ ### Tests
366
+ - `/Users/guybary/Documents/octocode-mcp/skills/octocode-research/src/__tests__/unit/` - Unit tests
367
+ - `/Users/guybary/Documents/octocode-mcp/skills/octocode-research/src/__tests__/integration/` - Integration tests
368
+
369
+ ---
370
+
371
+ Created by Octocode Research Agent 🔍🐙