octocode-cli 1.2.6 → 1.2.8

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 +7063 -6934
  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,304 @@
1
+ # Improvement Roadmap
2
+
3
+ Research-backed upgrade plan for the weakest parts of the skill: security analysis, test-quality analysis, semantic analysis, output/reporting, and test-suite quality.
4
+
5
+ For validation policy, see the Principles section in [SKILL.md](../SKILL.md) and [validate & investigate](./validate-investigate.md).
6
+
7
+ **Status legend**: Done, Partial, Planned
8
+
9
+ ---
10
+
11
+ ## 1. Security Analysis
12
+
13
+ ### Current weakness
14
+
15
+ The current security layer is strong on breadth but still depends heavily on single-file heuristics. That creates false positives for patterns that look dangerous but are not proven dangerous in context.
16
+
17
+ ### Target architecture
18
+
19
+ Move from isolated pattern detection to a lightweight taint model:
20
+
21
+ `sources -> propagators -> sanitizers -> sinks -> evidence trace`
22
+
23
+ Keep cheap AST rules for obvious cases:
24
+ - `eval`
25
+ - `new Function`
26
+ - direct `innerHTML`
27
+ - hardcoded secrets
28
+
29
+ Upgrade the noisier rules to dataflow-backed analysis:
30
+ - `prototype-pollution-risk`
31
+ - `sql-injection-risk`
32
+ - `unsafe-html`
33
+ - `unvalidated-input-sink`
34
+ - `input-passthrough-risk`
35
+
36
+ ### Concrete upgrades
37
+
38
+ - Add sink-specific rule models for SQL, HTML, command execution, file writes, path joins, and object merge/write sites.
39
+ - Add sanitizer catalogs for common validation and encoding patterns.
40
+ - Add confidence scoring per rule: `high`, `medium`, `low`.
41
+ - Add finding evidence: source parameter, propagation steps, sink call, sanitizer status.
42
+ - Suppress structural false positives where the dynamic key is synthesized locally and never user-controlled.
43
+
44
+ ### P0 work
45
+
46
+ - Split current security detectors into `pattern` rules and `flow` rules. *(Partial — detectors use evidence/confidence/ruleId)*
47
+ - Add fixture tests for true positive and false positive pairs. *(Partial — test file exists)*
48
+ - Add `confidence` and `evidence` fields to security findings. *(Done — `toSecurityFinding` in security.ts)*
49
+
50
+ ### P1 work
51
+
52
+ - Build intra-procedural taint tracking inside a function body. *(Planned)*
53
+ - Add reusable source/sink/sanitizer definitions. *(Planned)*
54
+ - Add validation playbooks for each security category using Octocode local tools. *(Partial — playbooks.md covers some)*
55
+
56
+ ---
57
+
58
+ ## 2. Test-Quality Analysis
59
+
60
+ ### Current weakness
61
+
62
+ The current test-quality pass mostly counts assertions, mocks, and setup hooks. That is helpful, but still shallow for real flakiness and false-confidence detection.
63
+
64
+ ### Target architecture
65
+
66
+ Extend test analysis from simple counters to behavior-aware checks:
67
+
68
+ - assertion presence
69
+ - assertion reachability on all paths
70
+ - cleanup and restore behavior
71
+ - deterministic execution
72
+ - framework misuse
73
+
74
+ ### Concrete upgrades
75
+
76
+ - Detect async tests that neither `await` nor return a promise.
77
+ - Detect `test.only`, `describe.only`, `skip`, and `todo`.
78
+ - Detect fake timers without restore and mock/spy state not reset or restored.
79
+ - Detect time, randomness, environment, and global-state coupling.
80
+ - Detect snapshot-only tests and interaction-only tests with no outcome assertions.
81
+ - Detect cleanup that exists on one path but not all paths.
82
+
83
+ ### P0 work
84
+
85
+ - Add dedicated detector tests for test-quality rules. *(Done — test-quality.test.ts)*
86
+ - Add rules for focused tests, fake timers without restore, and missing mock restoration. *(Done — all 8 categories implemented)*
87
+ - Add a richer `testProfile` summary for timers, mocks, async patterns, and cleanup hooks. *(Done — TestProfile in interfaces.ts)*
88
+
89
+ ### P1 work
90
+
91
+ - Add code-path-aware assertion and cleanup checks. *(Planned)*
92
+ - Add framework-specific adapters for Vitest/Jest style APIs. *(Planned)*
93
+ - Add flaky-test tags and recommended remediation steps. *(Planned)*
94
+
95
+ ---
96
+
97
+ ## 3. Semantic Analysis
98
+
99
+ ### Current weakness
100
+
101
+ Semantic analysis is valuable, but it currently rebuilds a fresh TypeScript language service and uses a constant script version. That limits scale and wastes work on repeated scans.
102
+
103
+ ### Target architecture
104
+
105
+ Adopt a persistent project-backed semantic engine:
106
+
107
+ - cache by `tsconfig`
108
+ - track file versions
109
+ - reuse TypeScript project state across scans
110
+ - support project references cleanly
111
+
112
+ ### Concrete upgrades
113
+
114
+ - Replace ad hoc `LanguageService` creation with a project-service wrapper.
115
+ - Separate semantic fact collection from detector execution.
116
+ - Cache export references, inheritance chains, implementation maps, and symbol relationships.
117
+ - Expose semantic facts to detectors through a stable query surface instead of repeated tree walks.
118
+
119
+ ### P0 work
120
+
121
+ - Introduce a semantic cache keyed by root + tsconfig + file versions. *(Planned)*
122
+ - Stop hardcoding script version `"1"`. *(Planned)*
123
+ - Benchmark semantic scan cost before and after caching. *(Planned)*
124
+
125
+ ### P1 work
126
+
127
+ - Move to a Project Service style lifecycle. *(Planned)*
128
+ - Support project references and monorepo workspaces. *(Planned)*
129
+ - Share semantic state between multiple detectors in a single run. *(Partial — `runSemanticDetectors` shares ctx)*
130
+
131
+ ---
132
+
133
+ ## 4. Output & Reporting
134
+
135
+ ### Current weakness
136
+
137
+ The output is rich, but report generation is currently brittle and the output contract is not explicit enough to protect downstream tooling.
138
+
139
+ ### Target architecture
140
+
141
+ Treat findings and reports as a versioned API:
142
+
143
+ - one normalized internal result model
144
+ - multiple emitters from that model
145
+ - stable schema version
146
+ - stable rule IDs
147
+ - optional SARIF output
148
+
149
+ ### Concrete upgrades
150
+
151
+ - Normalize `summary.json`, `findings.json`, and Markdown generation around one canonical result object.
152
+ - Add `schemaVersion`, `confidence`, `evidence`, and `ruleId`.
153
+ - Add SARIF emission with stable fingerprints.
154
+ - Add diff/baseline mode so teams can adopt the tool incrementally.
155
+ - Add contract tests for output shapes and golden tests for Markdown rendering.
156
+
157
+ ### P0 work
158
+
159
+ - Fix the report regression first. *(Done)*
160
+ - Add dedicated golden tests for `summary.md`, `summary.json`, and `findings.json`. *(Done — output-contract.test.ts)*
161
+ - Add contract assertions around required keys and nullable fields. *(Done — schemaVersion, REPORT_SCHEMA_VERSION)*
162
+
163
+ ### P1 work
164
+
165
+ - Add SARIF emitter. *(Planned)*
166
+ - Add baseline and diff output modes. *(Planned)*
167
+ - Add category-level and confidence-level summary slices. *(Planned)*
168
+
169
+ ---
170
+
171
+ ## 5. Test-Suite Quality
172
+
173
+ ### Current weakness
174
+
175
+ The suite is large, but the failing report tests show that critical output paths can still regress together. Some important detector modules do not have focused test files.
176
+
177
+ ### Target architecture
178
+
179
+ Use layered testing:
180
+
181
+ - focused detector unit tests
182
+ - integration tests for orchestration
183
+ - golden tests for reports
184
+ - property-based tests for AST invariants
185
+ - mutation testing for critical rules
186
+
187
+ ### Concrete upgrades
188
+
189
+ - Add dedicated tests for `security-detectors`, `test-quality-detectors`, and `tree-sitter-analyzer`.
190
+ - Add property-based tests for AST search and report invariants.
191
+ - Add mutation testing for high-risk detectors and output generation.
192
+ - Add smoke tests that run the scanner against its own source and assert key categories.
193
+
194
+ ### P0 work
195
+
196
+ - Restore a green Vitest run. *(Done)*
197
+ - Add missing focused test files. *(Partial — 34 test files, some detector modules still untested)*
198
+ - Lock down report and findings schema expectations. *(Done — output-contract.test.ts)*
199
+
200
+ ### P1 work
201
+
202
+ - Add property-based tests with `fast-check`. *(Planned)*
203
+ - Add mutation testing with Stryker for critical modules. *(Planned)*
204
+ - Add self-scan fixture snapshots for detector stability. *(Planned)*
205
+
206
+ ---
207
+
208
+ ## 6. Architecture Analysis Depth
209
+
210
+ ### Current weakness
211
+
212
+ The current architecture layer is strongest at file-level import analysis and architecture heuristics, but it still underuses graph science and AST/dataflow techniques that would make boundary and coupling defects more explainable.
213
+
214
+ ### Target architecture
215
+
216
+ Treat architecture analysis as a hybrid of graph evidence and structural evidence:
217
+
218
+ - graph evidence for dependency shape, chokepoints, layering, and subsystem boundaries
219
+ - AST/semantic evidence for code roles, boundary leaks, side effects, and repeated orchestration
220
+
221
+ ### Graph technique upgrades
222
+
223
+ - Add SCC condensation graphs so large file-level cycles collapse into interpretable cycle clusters.
224
+ - Add folder/package graphs to surface subsystem-level cycles and cross-boundary chatter.
225
+ - Add articulation-point and bridge-edge detection to identify brittle chokepoints.
226
+ - Add broker or betweenness-centrality scoring to find modules that mediate too many paths.
227
+ - Add change-coupling overlays from git history to catch architecture defects the import graph misses.
228
+
229
+ ### AST and semantic technique upgrades
230
+
231
+ - Add relational or composite AST rules for architecture motifs, not just single-node patterns.
232
+ - Add symbol-level usage graphs so cohesion and feature-envy checks work below the file level.
233
+ - Add CFG/dataflow checks for boundary leaks, initialization order, and validation-before-sink behavior.
234
+ - Add import-time effect tracing to classify module-scope I/O, registration, and global mutation.
235
+ - Add boundary-role detection so controllers, services, domain modules, and infrastructure code can be checked semantically instead of only by path names.
236
+
237
+ ### P0 work
238
+
239
+ - Expand the docs and playbooks so agents interpret architecture findings through graph and AST lenses together. *(Done — tool-workflows.md, playbooks.md)*
240
+ - Surface existing hub-node and hotspot signals more explicitly in result reading guidance. *(Done — hotFiles in summary.md)*
241
+ - Add fixture-based tests for graph-hotspot interpretation and architecture-summary rendering. *(Partial)*
242
+
243
+ ### P1 work
244
+
245
+ - Implement SCC condensation and package-level dependency views. *(Partial — SCC clusters implemented in graph-analytics.ts)*
246
+ - Add broker centrality and articulation-point scoring to hotspot analysis. *(Done — broker-module, bridge-module in graph-analytics.ts)*
247
+ - Add relational AST rules for boundary leaks, split-brain modules, and import-time orchestration. *(Partial — import-side-effect-risk implemented)*
248
+
249
+ ### P2 work
250
+
251
+ - Add lightweight local dataflow for architecture rules.
252
+ - Combine graph scores with AST evidence into a single architecture-confidence model.
253
+ - Add change-coupling overlays and folder/community clustering for subsystem discovery.
254
+
255
+ ---
256
+
257
+ ## Delivery Phases
258
+
259
+ ### Phase 0: Stabilize
260
+
261
+ - Fix output/reporting regressions.
262
+ - Make Vitest green.
263
+ - Add missing focused tests.
264
+ - Enforce Octocode local-tool validation in the skill docs and playbooks.
265
+ - Tighten architecture reading guidance around graph and AST signals.
266
+
267
+ ### Phase 1: Improve Precision
268
+
269
+ - Add security taint modeling inside a function body.
270
+ - Add richer test-quality rules for cleanup, timers, mocks, and async behavior.
271
+ - Add confidence and evidence fields to findings.
272
+
273
+ ### Phase 2: Improve Scale
274
+
275
+ - Add persistent semantic state and project-backed analysis.
276
+ - Add semantic fact caching.
277
+ - Add baseline/diff mode and SARIF output.
278
+
279
+ ### Phase 3: Deepen Coverage
280
+
281
+ - Add optional interprocedural summaries.
282
+ - Add property-based and mutation testing.
283
+ - Externalize more AST-only rules into rule packs.
284
+ - Add deeper graph and subsystem analysis for architecture defects.
285
+
286
+ ---
287
+
288
+ ## Research Basis
289
+
290
+ - TypeScript Compiler API wiki: https://github.com/microsoft/TypeScript/wiki/Using-the-Compiler-API
291
+ - typescript-eslint Project Service docs: https://typescript-eslint.io/packages/project-service/generated/
292
+ - typescript-eslint Project Service blog: https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/website/blog/2025-05-29-project-service.mdx
293
+ - Semgrep taint analysis overview: https://github.com/semgrep/semgrep-docs/blob/main/docs/writing-rules/data-flow/taint-mode/overview.md
294
+ - ast-grep relational rules: https://github.com/ast-grep/ast-grep.github.io/blob/main/website/guide/rule-config/relational-rule.md
295
+ - ESLint code path analysis: https://eslint.org/docs/latest/extend/code-path-analysis
296
+ - Tree-sitter predicates and directives: https://tree-sitter.github.io/tree-sitter/using-parsers/queries/3-predicates-and-directives.html
297
+ - dependency-cruiser rules reference: https://github.com/sverweij/dependency-cruiser/blob/main/doc/rules-reference.md
298
+ - CodeQL data flow analysis: https://github.com/github/codeql/blob/main/docs/codeql/writing-codeql-queries/about-data-flow-analysis.rst
299
+ - CodeQL JS/TS data flow guide: https://github.com/github/codeql/blob/main/docs/codeql/codeql-language-guides/analyzing-data-flow-in-javascript-and-typescript.rst
300
+ - Vitest coverage reporters: https://github.com/vitest-dev/vitest/blob/main/docs/config/coverage.md
301
+ - Vitest timers guide: https://vitest.dev/guide/mocking/timers
302
+ - Stryker JS usage: https://github.com/stryker-mutator/stryker-js/blob/master/docs/usage.md
303
+ - fast-check getting started: https://fast-check.dev/docs/introduction/getting-started/
304
+ - GitHub SARIF fingerprints: https://docs.github.com/en/code-security/reference/code-scanning/sarif-files/sarif-support-for-code-scanning
@@ -0,0 +1,144 @@
1
+ # Output Files
2
+
3
+ Each scan writes to `.octocode/scan/<timestamp>/`:
4
+
5
+ | File | Contents | When to Read |
6
+ |------|----------|-------------|
7
+ | `summary.md` | Health scores, tags, severity, per-pillar counts, top recs, change risk hotspots | **Always first** |
8
+ | `summary.json` | Machine-readable scan metadata, `agentOutput`, `analysisSummary`, `investigationPrompts`, `parseErrors[]` | Programmatic access |
9
+ | `architecture.json` | Dep graph, arch findings, `hotFiles[]`, `graphSignals[]`, chokepoints, optional advanced graph overlays | Cycles, coupling, SDP, D metric, test gaps, side-effect risk |
10
+ | `code-quality.json` | Up to 28 quality findings, severity/category breakdowns | Duplicates, complexity, perf |
11
+ | `dead-code.json` | Up to 10 hygiene findings, severity/category breakdowns | Dead code cleanup |
12
+ | `file-inventory.json` | Per-file: functions, flows, metrics, `issueIds[]` | Deep-diving a specific file |
13
+ | `findings.json` | ALL findings sorted by severity with `ruleId`, `analysisLens`, `confidence`, `impact`, `correlatedSignals[]`, `recommendedValidation`, and optional `flowTrace[]` | Complete sorted list |
14
+ | `ast-trees.txt` | `Kind[startLine:endLine]` per file (on by default, disable with `--no-tree`) | Structural overview |
15
+ | `graph.md` | Mermaid dependency graph (only with `--graph`) | Visual architecture |
16
+
17
+ ---
18
+
19
+ ## JSON Key Reference
20
+
21
+ ### `summary.json`
22
+
23
+ ```
24
+ schemaVersion, generatedAt, repoRoot, options, parser,
25
+ summary { totalPackages, totalFiles, totalNodes, totalFunctions, totalFlows, totalDependencyFiles, byPackage },
26
+ agentOutput { totalFindings, highPriority, mediumPriority, lowPriority,
27
+ topRecommendations[] { id, file, severity, category, title, reason, suggestedFix },
28
+ filesWithIssues[] { file, issueCount, issueIds } },
29
+ analysisSummary { graphSignals[], astSignals[], strongestGraphSignal, strongestAstSignal, combinedSignals[], recommendedValidation },
30
+ strongestGraphSignal, strongestAstSignal, combinedSignals[], recommendedValidation, investigationPrompts[],
31
+ parseErrors[] { file, message },
32
+ outputFiles { summary, architecture, codeQuality, deadCode, fileInventory, findings, ... }
33
+ ```
34
+
35
+ Use `summary.json` to drive the first decision:
36
+
37
+ - Use `agentOutput.topRecommendations[]` and `filesWithIssues[]` to decide where to drill in first
38
+ - Use `summary.md` or `architecture.json` for graph-specific detail such as `cycles`, `criticalPaths`, and hotspots
39
+ - If top recommendations are mostly complexity, duplication, or side-effect findings, switch to AST-first investigation
40
+ - If graph-heavy recommendations and AST-heavy recommendations appear together, plan a combined investigation before proposing refactors
41
+
42
+ ### `findings.json`
43
+
44
+ ```
45
+ generatedAt,
46
+ optimizationFindings[] { id, ruleId, severity, category, analysisLens, confidence,
47
+ file, lineStart, lineEnd, title, reason,
48
+ files[], suggestedFix { strategy, steps[] }, impact, tags[],
49
+ correlatedSignals[], recommendedValidation, flowTrace[], lspHints[] },
50
+ totalFindings
51
+ ```
52
+
53
+ Filter: `jq '.optimizationFindings[] | select(.tags | contains(["coupling"]))' findings.json`
54
+
55
+ Use `findings.json` to correlate categories:
56
+
57
+ - `feature-envy` + `low-cohesion` = likely boundary error
58
+ - `layer-violation` + `feature-envy` = likely dependency leak
59
+ - `import-side-effect-risk` + hotspot tags = likely startup risk
60
+ - `dependency-critical-path` + complexity tags = likely change chokepoint
61
+
62
+ ### `architecture.json`
63
+
64
+ ```
65
+ schemaVersion, generatedAt,
66
+ dependencyGraph { totalModules, totalEdges, criticalModules[], cycles[], criticalPaths[], ... },
67
+ dependencyFindings[], findings[], findingsCount,
68
+ severityBreakdown { critical, high, medium, low },
69
+ categoryBreakdown { "dependency-cycle": N, ... },
70
+ hotFiles[] { file, riskScore, fanIn, fanOut, complexityScore, exportCount, inCycle, onCriticalPath },
71
+ graphSignals[], chokepoints[], criticalHubCandidates[],
72
+ sccClusters[] (with `--graph-advanced`), packageGraphSummary (with `--graph-advanced`), packageHotspots[] (with `--graph-advanced`)
73
+ ```
74
+
75
+ Use `architecture.json` as the graph lens:
76
+
77
+ - `criticalModules[]` = hub nodes already surfaced by the dependency summary
78
+ - `cycles[]` = immediate structural loops
79
+ - `criticalPaths[]` = long change propagation chains
80
+ - `hotFiles[]` = current approximation of graph chokepoints
81
+ - `graphSignals[]` = already-interpreted graph narratives for triage
82
+ - `chokepoints[]` = broker and articulation-style structural pressure points
83
+ - `categoryBreakdown` = whether the repo’s architecture risk is mostly cycles, layering, cohesion, or side effects
84
+
85
+ Good investigation prompts:
86
+
87
+ - "Do critical hub modules also appear in hotFiles or critical paths?"
88
+ - "Which files are both hot and on a critical path?"
89
+ - "Which layer violations cluster around the same folder?"
90
+ - "Do side-effectful modules also have high fan-in?"
91
+
92
+ ### `code-quality.json`
93
+
94
+ ```
95
+ generatedAt, duplicateFlows { duplicateFunctions[], redundantFlows[] },
96
+ optimizationOpportunities[] { type, message, file, lineStart, lineEnd, details },
97
+ findings[], findingsCount, severityBreakdown, categoryBreakdown
98
+ ```
99
+
100
+ ### `dead-code.json`
101
+
102
+ ```
103
+ generatedAt, findings[], findingsCount, severityBreakdown, categoryBreakdown
104
+ ```
105
+
106
+ ### `file-inventory.json`
107
+
108
+ ```
109
+ generatedAt, fileCount,
110
+ fileInventory[] { package, file, parseEngine, nodeCount, kindCounts,
111
+ functions[] { name, lineStart, lineEnd, complexity, cognitiveComplexity, ... },
112
+ flows[], dependencyProfile { internalDependencies[], externalDependencies[],
113
+ declaredExports[], importedSymbols[], reExports[] },
114
+ emptyCatches[], switchesWithoutDefault[], anyCount, magicNumbers[],
115
+ topLevelEffects[], effectProfile, symbolUsageSummary, boundaryRoleHints[], cfgFlags,
116
+ prototypePollutionSites[], issueIds[] }
117
+ ```
118
+
119
+ Use `file-inventory.json` as the AST lens:
120
+
121
+ - `functions[]` = shape and complexity of orchestration
122
+ - `flows[]` = repeated control structures
123
+ - `dependencyProfile` = exported/imported symbol detail for cohesion and feature-envy follow-up
124
+ - `topLevelEffects[]` = hidden initialization / import-time work
125
+ - `effectProfile` = summarized import-time risk
126
+ - `symbolUsageSummary` = compact symbol/import/export shape for boundary follow-up
127
+ - `boundaryRoleHints[]` = lightweight role inference for the file
128
+ - `cfgFlags` = lightweight flow clues for validation, cleanup, exit behavior, and async boundaries (with `--flow`)
129
+
130
+ If `architecture.json` names a hotspot, use `file-inventory.json` to explain why that hotspot is structurally hard to change.
131
+
132
+ ---
133
+
134
+ ## Reading `ast-trees.txt`
135
+
136
+ For format, navigation commands, and usage guide, see [ast-tree-search.md](./ast-tree-search.md).
137
+
138
+ On by default (`--emit-tree`). Suppress with `--no-tree`. Tree depth: `--tree-depth N` (default: 4).
139
+
140
+ ---
141
+
142
+ ## Legacy Single-File Mode (`--out path/to/file.json`)
143
+
144
+ Keys: `summary`, `fileInventory[]`, `duplicateFlows`, `dependencyGraph`, `dependencyFindings[]`, `optimizationFindings[]`, `agentOutput`, `parseErrors[]`.