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,418 @@
1
+ ---
2
+ name: octocode-code-engineer
3
+ description: "Code engineering platform: CLI scanner + AST engine + Octocode MCP local/LSP tools. Use for any engineering task — not just reviews. Understand unfamiliar code, explore architecture, write code with blast radius awareness, plan refactors safely, audit quality, review changes, analyze test gaps, check security, or assess dependency health. Integrates into your coding workflow: pre-implementation checks, impact-aware coding, and post-change verification."
4
+ compatibility: "Requires Node.js >= 18. Works with any AI coding agent. Best with Octocode MCP local + LSP tools for hybrid validation. Pre-built scripts only; no install or build step required."
5
+ ---
6
+
7
+ # Octocode Code Engineer
8
+
9
+ Code engineering platform — understand, build, and improve code with full codebase awareness.
10
+
11
+ The scanner is a hypothesis generator, not a source of truth. Every finding must be validated before it becomes a recommendation.
12
+
13
+ **Architecture principle: deterministic detection + AI-powered validation.** Detectors use cheap structural AST signals (loop depth, call count, fan-in/fan-out, statement count) to flag candidates. They intentionally do NOT hardcode domain-specific heuristics (regex patterns, method name lists, keyword matching). The AI agent is the smart layer — it uses its tools (AST search, LSP, localGetFileContent) to read the actual code, confirm or dismiss the hypothesis, and explain the evidence. This separation keeps detectors fast, maintainable, and language-generic while the agent adapts to any codebase.
14
+
15
+ ## Capabilities
16
+
17
+ Use this skill throughout your engineering workflow — not just for reviews.
18
+
19
+ **Understand & Navigate**
20
+
21
+ | Mode | Trigger | What it does |
22
+ |------|---------|-------------|
23
+ | **Codebase Exploration** | "how does X work", "explore this module", "understand this codebase" | Structure → Search → Fetch funnel with LSP semantic tracing |
24
+ | **Pre-Implementation Check** | "before I build X", "where should this live" | Layout → existing patterns → dependency map → pick safe location |
25
+
26
+ **Build & Change**
27
+
28
+ | Mode | Trigger | What it does |
29
+ |------|---------|-------------|
30
+ | **Smart Coding** | "implement this", "code this safely", "add feature", "fix this" | Pre-check (blast radius, consumers, coupling) → code → verify (re-scan, lint, test, build) |
31
+ | **Refactoring Planning** | "plan this refactor", "safe to rename", "how to restructure" | Impact analysis → blast radius → test/prod split → decomposition candidates |
32
+
33
+ **Analyze & Improve**
34
+
35
+ | Mode | Trigger | What it does |
36
+ |------|---------|-------------|
37
+ | **Architecture Analysis** | "check architecture", "find cycles", "dependency analysis" | Dependency graph, cycles, SCC clusters, coupling hotspots, chokepoints, layer violations |
38
+ | **Quality Audit** | "audit code", "find issues", "scan for problems" | Scan → triage → validate → present → plan fixes → apply → verify |
39
+ | **Code Quality Review** | "review this module", "is this code good" | AST smell sweep + complexity + dead code + maintainability |
40
+ | **Code Review** | "review impact of changes", "what does this PR touch" | Change impact → architecture delta → new issues → test coverage |
41
+ | **Test Strategy** | "test coverage gaps", "what needs testing" | Coverage mapping + test quality (requires `--include-tests`) + critical untested code (graph-based, always on) |
42
+ | **Security Analysis** | "security review", "find vulnerabilities", "check sensitive flows" | Map project security context → identify critical paths (auth, payments, user data, DB, external services) → trace sensitive flows with LSP → validate scanner findings → check exposure points (APIs, logs, errors, third-party) |
43
+ | **Dependency Health** | "unused deps", "import analysis" | Dead-code scan + reference counting + import mapping |
44
+
45
+ ## Flow at a Glance
46
+
47
+ **Explore** (understand code):
48
+ ```
49
+ Structure (localViewStructure, ast/tree-search.js, index.js --graph)
50
+ → Search (localSearchCode, ast/search.js, lspFindReferences)
51
+ → Fetch (localGetFileContent, lspGotoDefinition)
52
+ → Present understanding with evidence
53
+ ```
54
+
55
+ **Code** (implement with awareness):
56
+ ```
57
+ Pre-check: blast radius (lspFindReferences → consumer count, test/prod split)
58
+ → Architecture safety (index.js --scope=<target> --graph → coupling/cycle risk)
59
+ → Existing patterns (ast/search.js, localSearchCode → follow conventions)
60
+ → Code the change
61
+ → Verify: lint + test + build + re-scan --scope=<changed>
62
+ ```
63
+
64
+ **Analyze** (architecture health):
65
+ ```
66
+ index.js --graph --graph-advanced --flow --semantic
67
+ → architecture.json: cycles, SCC clusters, chokepoints, hotFiles, critical paths
68
+ → Validate with LSP: fan-in/fan-out per module, consumer maps
69
+ → Present architecture health with evidence
70
+ ```
71
+
72
+ **Audit** (quality review):
73
+ ```
74
+ Scan (CLI) → Read summary.md → Triage findings.json
75
+ → Validate each finding with Octocode local tools
76
+ → Present validated findings → ASK user before planning fixes
77
+ → Apply fixes (TDD when possible) → lint + test + build
78
+ → Re-scan to verify finding count drops
79
+ ```
80
+
81
+ ## Tools
82
+
83
+ Three layers work together — use any combination that fits the problem.
84
+
85
+ **Layer 1: CLI scan scripts** — broad hypothesis generation, structural proof
86
+
87
+ | Script | Purpose |
88
+ |--------|---------|
89
+ | `scripts/index.js` | Full scan with `--scope`, `--graph`, `--flow`, `--semantic`; scoped re-scan for verification |
90
+ | `scripts/ast/search.js` | Structural search on source files (`@ast-grep/napi`); 16 presets, pattern/kind/rule modes; zero false-positive structural checks |
91
+ | `scripts/ast/tree-search.js` | Fast AST triage from scan artifacts; decides where to look before deeper tools |
92
+
93
+ **Layer 2: Octocode local tools** — fast text search, file discovery, targeted reading
94
+
95
+ | Tool | Purpose |
96
+ |------|---------|
97
+ | `localSearchCode` | The bridge tool — provides `lineHint` for all LSP calls; `filesOnly=true` for fast discovery |
98
+ | `localGetFileContent` | `matchString` jumps to exact section; `charOffset` pagination for large files; `fullContent` for small files |
99
+ | `localViewStructure` | Project layout at any depth; `filesOnly`/`directoriesOnly` filters |
100
+ | `localFindFiles` | `sortBy=size` finds hotspots; `modifiedWithin` finds active code; multi-name patterns |
101
+
102
+ **Layer 3: LSP tools** — semantic proof (definitions, usages, call chains)
103
+
104
+ | Tool | Purpose |
105
+ |------|---------|
106
+ | `lspFindReferences` | Definitive consumer count; `includePattern`/`excludePattern` for test/prod split; works on types, vars, exports |
107
+ | `lspCallHierarchy` | `incoming` = who calls this; `outgoing` = what does this call; `fromRanges[]` for exact sites. **Functions only** — fails on types/vars |
108
+ | `lspGotoDefinition` | Jump to where a symbol is defined; cross-file resolution |
109
+
110
+ ### Research Approach
111
+
112
+ Three primitives power every investigation: **Search** (find targets), **Fetch** (read evidence), **Structure** (see shape). Chain them as a funnel:
113
+
114
+ ```
115
+ STRUCTURE → SEARCH → FETCH
116
+ 80-90% 90-99% 100%
117
+ ```
118
+
119
+ **Core rules:**
120
+ - `localSearchCode` always first → produces `lineHint` for all LSP tools. Never guess `lineHint`.
121
+ - `ast/search.js` for structural proof (zero false positives); `ast/tree-search.js` for fast triage from scan artifacts.
122
+ - `lspFindReferences` for types/vars/exports; `lspCallHierarchy` for functions only (fails on types).
123
+ - `localGetFileContent(matchString=...)` for targeted reading; `fullContent` only for files <200 lines.
124
+ - `localViewStructure` before deep reading — know the layout first.
125
+ - Reverse the funnel when `lspHints` from `findings.json` provide exact coordinates.
126
+
127
+ For the complete methodology (all tool tables, flags, decision tables, AST presets, efficiency tips) and all validated hybrid workflows, see [tool workflows](./references/tool-workflows.md).
128
+
129
+ The agent decides which tools to use. No required order — pick what makes sense for the finding. If Octocode MCP is unavailable, fall back to CLI-only and mark confidence explicitly.
130
+
131
+ **MCP detection**: try any local tool (e.g. `localSearchCode`). If it fails → MCP not available, use CLI-only.
132
+
133
+ ## Principles
134
+
135
+ - Findings are leads, not facts — validate with Octocode local tools before presenting.
136
+ - **Be the smart layer**: detectors flag structural candidates; you decide what's real. Read the code (`localGetFileContent`, `ast/search.js`), trace relationships (`lspCallHierarchy`, `lspFindReferences`), check context. Dismiss findings that don't hold up. Promote findings with strong evidence. Explain your reasoning with `file:line` citations.
137
+ - **Use `lspHints`**: many findings include `lspHints[]` — pre-computed tool calls that point you to the fastest validation path. Run them before inventing your own.
138
+ - Read `summary.md` first: scope, health scores, analysis signals, hotspots, recommended validation.
139
+ - Let the problem drive tool choice — pick the tools that fit the finding, not a fixed sequence.
140
+ - CLI-only is the fallback when Octocode MCP is unavailable, not the default.
141
+ - Use `--help` and reference docs for flags, categories, and presets — do not restate them.
142
+ - Detect the project environment before running commands — see Project Environment.
143
+ - **TDD when possible**: for behavioral or logic fixes, write a failing test first, then make it pass. Skip for mechanical cleanups (comment removal, dead re-export deletion). See [TDD Fix Playbook](./references/playbooks.md).
144
+ - **Validate fixes with the project toolchain**: after each fix batch, run the project's lint (with `--fix` if supported), tests, and build. Do not present fixes as done until the toolchain passes.
145
+ - **Hygiene is part of every fix**: when touching a file, also remove redundant comments (comments that just restate the code) and redundant re-exports (barrel re-exports with 0 consumers). See [playbooks](./references/playbooks.md).
146
+ - **Use the task tool** to create a todo list at the start of every review — one item per workflow step. Update status as you go. Always stop and ask the user before planning fixes (after Step 5) and before applying them (after Step 6).
147
+ - Run only the pre-built scripts in `scripts/`. Never execute files from `src/`.
148
+ - Use absolute paths with MCP/LSP tools.
149
+ - Do not present live-code claims without validation when local/LSP tools are available.
150
+ - Do not recommend broad refactors from one noisy finding.
151
+ - If the scan and validation disagree, say so explicitly and lower confidence.
152
+ - **Use shell commands for mechanical file operations**: for renaming, moving files, and bulk import-path rewrites, prefer `mv`, `sed`, `find + xargs`, `rg` over manual edits. Batch changes into scripts when touching many files. Detect the OS (`uname`) if commands differ across platforms (e.g. `sed -i` on Linux vs `sed -i ''` on macOS).
153
+
154
+ ## Project Environment
155
+
156
+ Never hardcode tool names. Detect the project setup before running lint, build, or test commands:
157
+
158
+ 1. **Package manager**: `yarn.lock` → yarn, `pnpm-lock.yaml` → pnpm, `package-lock.json` → npm.
159
+ 2. **Scripts**: read `package.json` `scripts` (both root and package-level in monorepos). Use actual script names — do not invent commands.
160
+ 3. **Workspace context**: in monorepos, check `workspaces` config to decide between root-level (`yarn workspace <name> test`) or package-level (`cd packages/foo && yarn test`).
161
+
162
+ ### Validation Commands
163
+
164
+ After detecting the project environment, identify these three commands for post-fix validation:
165
+
166
+ | Command | How to detect | Fallback |
167
+ |---------|--------------|----------|
168
+ | **Lint** | `scripts.lint` in `package.json`. If the script wraps eslint/biome/oxlint, use `<pm> run lint --fix`. | Skip lint step, warn user |
169
+ | **Test** | `scripts.test` in `package.json`. In monorepos, prefer package-level test scope. | Skip test step, warn user |
170
+ | **Build** | `scripts.build` in `package.json`. | Skip build step, warn user |
171
+
172
+ Run all three after every fix batch. If lint `--fix` auto-corrects files, stage those corrections as part of the fix. If tests fail, investigate before continuing — the fix may have introduced a regression.
173
+
174
+ ## Quick Start
175
+
176
+ **Placeholders** used throughout this skill:
177
+
178
+ - `<SKILL_DIR>` — absolute path to this skill's directory (where `SKILL.md` lives). All script paths are relative to it.
179
+ - `<CURRENT_SCAN>` — timestamped scan output directory (e.g., `.octocode/scan/2026-03-19T00-01-19-468Z`). Find it at the top of `summary.md` or use the latest directory in `.octocode/scan/`.
180
+ - `<TARGET_ROOT>` — root of the codebase being analyzed. Defaults to cwd, override with `--root`.
181
+
182
+ Minimum path for a fresh scan — adapt based on the question:
183
+
184
+ ```bash
185
+ # 1. Scan (from target repo root)
186
+ node <SKILL_DIR>/scripts/index.js --graph --flow
187
+ # 2. Summary
188
+ cat .octocode/scan/<latest>/summary.md
189
+ # 3. Top findings
190
+ cat .octocode/scan/<latest>/findings.json | jq '.optimizationFindings[:5]'
191
+ # 4. Structural search (source files)
192
+ node <SKILL_DIR>/scripts/ast/search.js -p 'console.log($$$ARGS)' --root ./src --json
193
+ # 5. AST snapshot search (scan output)
194
+ node <SKILL_DIR>/scripts/ast/tree-search.js -i .octocode/scan -k function_declaration --limit 25
195
+ ```
196
+
197
+ Use `--help` on any script for the full flag reference.
198
+
199
+ ## Workflow
200
+
201
+ ### Choose Your Mode
202
+
203
+ | Your goal | Mode | Entry point |
204
+ |-----------|------|------------|
205
+ | Understand code, explore a module, trace a flow | **Explore** | Structure → Search → Fetch |
206
+ | Write code, implement features, fix bugs | **Code** | Pre-check → Implement → Verify |
207
+ | Check architecture health, find cycles/coupling | **Analyze** | Full scan → Validate → Report |
208
+ | Audit quality, review code, find issues to fix | **Audit** | Scan → Triage → Validate → Fix → Verify |
209
+
210
+ The agent picks the right mode based on your request. Modes compose — e.g. "implement X" triggers **Code** mode, which uses **Explore** internally to understand the target area first.
211
+
212
+ ---
213
+
214
+ ### Explore Mode
215
+
216
+ Use when understanding code — tracing flows, learning a codebase, finding where things live, pre-implementation research.
217
+
218
+ **Step 1. Orient** — see the shape before searching:
219
+ ```
220
+ localViewStructure(depth=2, directoriesOnly=true) → project layout
221
+ localFindFiles(sortBy="size", sizeGreater="10k") → hotspot files
222
+ ast/tree-search.js -k function_declaration --limit 25 → code structure triage
223
+ ```
224
+
225
+ **Step 2. Search** — find what you need:
226
+ ```
227
+ localSearchCode(pattern="target", filesOnly=true) → text matches + lineHint
228
+ ast/search.js -p 'pattern' --json --root <dir> → structural matches
229
+ lspFindReferences(lineHint=N) → all usages of a symbol
230
+ lspCallHierarchy(incoming/outgoing, depth=1) → call relationships
231
+ ```
232
+
233
+ **Step 3. Deep-dive** — read evidence, trace across files:
234
+ ```
235
+ localGetFileContent(matchString="target", contextLines=5) → read specific section
236
+ lspGotoDefinition(lineHint=N) → jump to definition
237
+ lspCallHierarchy chain → follow call path across files
238
+ ```
239
+
240
+ **Step 4. Present** — explain with evidence (`file:line` citations, call chains, dependency maps).
241
+
242
+ ---
243
+
244
+ ### Code Mode
245
+
246
+ Use when implementing features, fixing bugs, refactoring, or making any code change. Wraps every change with pre-check and verification.
247
+
248
+ **Step 1. Understand the target** (uses Explore internally):
249
+ ```
250
+ localViewStructure(path="target/dir", depth=2) → module layout
251
+ localGetFileContent(matchString="targetFunction", contextLines=10) → current code
252
+ lspGotoDefinition(lineHint=N) → follow definitions
253
+ ```
254
+
255
+ **Step 2. Pre-check — blast radius**:
256
+ ```
257
+ lspFindReferences(lineHint=N, includeDeclaration=false) → total consumers
258
+ lspFindReferences(excludePattern=["**/tests/**"]) → production consumers
259
+ lspFindReferences(includePattern=["**/tests/**"]) → test coverage
260
+ lspCallHierarchy(incoming, depth=1) → direct callers
261
+ ```
262
+
263
+ **Step 3. Architecture safety**:
264
+ ```
265
+ index.js --scope=<target-files> --features=architecture --graph → coupling/cycle risk
266
+ ast/search.js -p 'similar-pattern' --json --root <nearby-dir> → follow existing conventions
267
+ ```
268
+
269
+ **Step 4. Implement the change**.
270
+
271
+ **Step 5. Verify**:
272
+ ```
273
+ index.js --scope=<changed-files> --features=code-quality,architecture → no new issues
274
+ ast/search.js --preset any-type --json --root <changed-dir> → no new : any
275
+ lspFindReferences(lineHint=N) → moved/renamed symbols resolve
276
+ <pm> run lint --fix && <pm> run test && <pm> run build → toolchain passes
277
+ ```
278
+
279
+ **If LSP unavailable** (Steps 2, 5): fall back to `localSearchCode` for usage counting, `ast/search.js` for structural verification, and scan JSON (`architecture.json` hotFiles/fan-in) for dependency data. Mark confidence as `medium` (structural) instead of `high` (semantic).
280
+
281
+ **Decision gates**:
282
+ - Step 2: >20 production consumers = high-risk, consider feature flag or incremental approach
283
+ - Step 3: target touches cycle member or hotfile = extra caution
284
+ - Step 5: new findings or test failures = fix before committing
285
+
286
+ ---
287
+
288
+ ### Analyze Mode
289
+
290
+ Use for architecture health checks, dependency analysis, cycle detection, coupling assessment.
291
+
292
+ **Step 1. Full architecture scan**:
293
+ ```
294
+ index.js --graph --graph-advanced --flow --features=architecture
295
+ summary.md → architecture health score
296
+ architecture.json → cycles, hotFiles, sccClusters, chokepoints → raw data
297
+ graph.md → Mermaid visualization
298
+ ```
299
+
300
+ **Step 2. Validate hotspots with LSP**:
301
+ ```
302
+ lspFindReferences(lineHint=N, includeDeclaration=false) → fan-in per module
303
+ lspCallHierarchy(outgoing, depth=1) → fan-out per module
304
+ ast/search.js -p 'import { $$$N } from $MOD' --json → cross-module imports
305
+ ```
306
+
307
+ **Step 3. Present** — architecture health report with cycle list, SCC clusters, chokepoints, hotfiles (ranked), boundary violations, critical paths, fan-in/fan-out per module.
308
+
309
+ ---
310
+
311
+ ### Audit Mode
312
+
313
+ Use for quality audits, code reviews, finding and fixing issues. This is the full review loop.
314
+
315
+ **Step 1. Scan** — get hypotheses:
316
+
317
+ ```bash
318
+ node <SKILL_DIR>/scripts/index.js [flags] # default entry point
319
+ node <SKILL_DIR>/scripts/index.js --graph --flow # good starting point
320
+ node <SKILL_DIR>/scripts/index.js --help # full flag reference
321
+ ```
322
+
323
+ | Flag | When to use |
324
+ |------|-------------|
325
+ | `--features=architecture` | Cycles, coupling, reachability, dependency pressure |
326
+ | `--features=code-quality` | Complexity, maintainability, duplication, performance smells |
327
+ | `--features=dead-code` | Dead exports, unused deps, boundary violations |
328
+ | `--features=security` | Sink-risk, validation-sensitive findings |
329
+ | `--features=test-quality` | Flaky or misleading test patterns |
330
+ | `--graph` | Dependency structure, hotspots, critical paths |
331
+ | `--flow` | Path-sensitive claims, control-flow evidence |
332
+ | `--semantic` | Type-aware design signals (adds ~3-5s) |
333
+ | `--scope=<path>` | Narrow to specific path, file, or `file:symbol` |
334
+
335
+ **Step 2. Read outputs** — `summary.md` first (health scores → analysis signals → top recommendations), then `findings.json` (work queue with `lspHints`, `impact`, `suggestedFix`).
336
+
337
+ | File | Use for |
338
+ |------|---------|
339
+ | `summary.md` | Health scores, severity ordering, analysis signals, top recommendations |
340
+ | `summary.json` | Machine-readable metadata, `agentOutput`, `investigationPrompts` |
341
+ | `findings.json` | Full prioritized finding queue with `lspHints`, `impact`, `suggestedFix` |
342
+ | `architecture.json` | Dependency graph, cycles, critical paths, hotspots, chokepoints |
343
+ | `code-quality.json` | Complexity, duplicates, god modules/functions |
344
+ | `dead-code.json` | Dead exports, boundary violations, unused deps |
345
+ | `security.json` / `test-quality.json` | Pillar-specific findings |
346
+ | `file-inventory.json` | Per-file functions, flows, dependencies, effects |
347
+ | `ast-trees.txt` | AST snapshot for structural triage |
348
+ | `graph.md` | Mermaid dependency graph (with `--graph`) |
349
+
350
+ For JSON key schemas and field reference, see [output files](./references/output-files.md).
351
+
352
+ **AST tools — which one to use:**
353
+
354
+ | Tool | Searches | Input | Purpose |
355
+ |------|----------|-------|---------|
356
+ | `ast/tree-search.js` | Generated `ast-trees.txt` from a scan | `-i .octocode/scan` (auto-resolves latest) | Fast structure triage — decide where to look |
357
+ | `ast/search.js` | Actual source files on disk | `--root <dir>` | Structural proof — find code by AST shape |
358
+
359
+ Do not point `ast/search.js` at `.octocode/scan/...` output files — it searches source files, not generated AST text artifacts.
360
+
361
+ **Step 3. Triage** — prioritize findings with high severity, clusters in the same call path, security-sensitive items, architecture signals that align with hotspots. Label each: `observed`, `suspected`, or `validated`.
362
+
363
+ **Step 4. Validate** — every finding must be confirmed before presenting as fact.
364
+
365
+ Detectors produce structural candidates (loops × calls × depth). You are the intelligence layer. Read the code, trace the graph, and decide:
366
+
367
+ 1. **Check `lspHints`** — if the finding has `lspHints[]`, run those tool calls first. They're pre-computed shortcuts to the fastest validation.
368
+ 2. **Read evidence** — `localGetFileContent(matchString=functionName)` to see the actual code. Look for the concrete behavior the detector suspected (e.g., collection mutation inside a loop, unvalidated input reaching a sink, function doing too many things).
369
+ 3. **Trace context** — `lspCallHierarchy` / `lspFindReferences` to understand callers, consumers, blast radius.
370
+ 4. **Decide** — `confirmed` (evidence supports), `dismissed` (false positive — explain why), `uncertain` (need more data — say what's missing).
371
+
372
+ | Finding type | Read the code for | Trace context with | Dismiss when |
373
+ |-------------|-------------------|-------------------|-------------|
374
+ | Unbounded collection | Collection mutation (.push/.add/.set) inside loops | `lspCallHierarchy(incoming)` — is it hot path? | No mutation in body, or bounded by guard/limit |
375
+ | Dead export | — | `lspFindReferences` → 0 refs = confirmed | Dynamic usage, runtime reflection |
376
+ | Security sink | Unsanitized input reaching sink call | `lspCallHierarchy(incoming)` → trace data source; map project context first (auth, payments, DB, external services) | Input validated upstream; see [security analysis](./references/validate-investigate.md#security-analysis) for full flow |
377
+ | God function | Multiple responsibilities in body | `lspCallHierarchy(outgoing)` → what it calls | Single responsibility, just long |
378
+ | Coupling hotspot | What the module exposes | `lspFindReferences` per export → consumer map | Intentionally shared utility |
379
+
380
+ For detailed per-category guidance, see [playbooks](./references/playbooks.md) and [validate & investigate](./references/validate-investigate.md).
381
+
382
+ **CLI-only fallback** (if Octocode MCP unavailable): use `ast/search.js` for structural verification, re-scan with `--scope`. Mark confidence: `high` = structural, `medium` = semantic, `low` = behavioral.
383
+
384
+ **Step 5. Present** — what the scan suggested → what validation confirmed/disproved → what remains uncertain. Always include `file:line` evidence and confidence. See [present results](./references/present-results.md).
385
+
386
+ **After presenting, ask:** "Want me to plan fixes?" Do not jump into fixes automatically.
387
+
388
+ **Step 6. Plan fixes** (on user request) — prioritized improvement plan:
389
+ 1. Immediate fixes for validated high-signal problems
390
+ 2. Short follow-up checks for suspected issues
391
+ 3. Structural improvements for recurring patterns
392
+ 4. Re-scan scope and validation steps
393
+
394
+ **After presenting the plan, ask:** "Should I apply these fixes?"
395
+
396
+ **Step 7. Apply fixes** (on user approval):
397
+ 1. TDD-first for behavioral fixes — write failing test → fix → pass → full suite. Skip TDD for mechanical cleanups.
398
+ 2. When touching a file: remove redundant comments (restate the code) and dead re-exports (0 consumers via `lspFindReferences`).
399
+ 3. Validate with project toolchain: lint (`--fix`) → tests → build.
400
+
401
+ **Step 8. Verify** — re-scan with `--scope`, compare finding counts, report before/after delta.
402
+
403
+ ## References
404
+
405
+ Use these when you need specifics instead of copying detailed reference material into the response:
406
+
407
+ - [CLI reference](./references/cli-reference.md) — all flags, thresholds, presets
408
+ - [Output files](./references/output-files.md) — JSON schemas, key reference, reading guide
409
+ - [AST tree search](./references/ast-tree-search.md) — `ast/tree-search.js` usage and examples
410
+ - [AST search](./references/ast-search.md) — `ast/search.js` patterns, rules, presets
411
+ - [Tool workflows](./references/tool-workflows.md) — 18 hybrid workflows: audits, architecture, smart coding, quality, refactoring, exploration, testing, security, reviews
412
+ - [Validation and investigation](./references/validate-investigate.md) — reasoning loop, hybrid validation, taint tracing, lspHints
413
+ - [Playbooks](./references/playbooks.md) — per-category validate & fix, TDD, validation, comments, re-exports
414
+ - [Finding categories](./references/finding-categories.md) — all detectable categories by pillar
415
+ - [Present results](./references/present-results.md) — summary sections, decision heuristics, templates
416
+ - [Architecture techniques](./references/architecture-techniques.md) — SCC, broker, symbol-level analysis
417
+ - [Concepts](./references/concepts.md) — metric definitions (SDP, cognitive complexity, Halstead, MI)
418
+ - [Improvement roadmap](./references/improvement-roadmap.md) — planned upgrades for security, semantic, test quality