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,21 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "ESNext",
5
+ "moduleResolution": "bundler",
6
+ "esModuleInterop": true,
7
+ "strict": true,
8
+ "skipLibCheck": true,
9
+ "declaration": true,
10
+ "outDir": "./scripts",
11
+ "noEmit": true,
12
+ "rootDir": "./src",
13
+ "baseUrl": ".",
14
+ "paths": {
15
+ "@/*": ["./src/*"]
16
+ },
17
+ "typeRoots": ["./src/types", "./node_modules/@types"]
18
+ },
19
+ "include": ["src/**/*"],
20
+ "exclude": ["node_modules", "dist"]
21
+ }
@@ -0,0 +1,42 @@
1
+ import { defineConfig } from 'tsdown';
2
+ import { builtinModules } from 'module';
3
+
4
+ export default defineConfig({
5
+ entry: {
6
+ server: 'src/server.ts',
7
+ 'server-init': 'src/server-init.ts',
8
+ },
9
+ format: ['esm'],
10
+ outDir: 'scripts',
11
+ clean: true,
12
+ target: 'node20',
13
+ platform: 'node',
14
+
15
+ // Bundle ALL dependencies for standalone execution
16
+ noExternal: [/.*/],
17
+
18
+ // Keep Node.js built-ins and native modules external
19
+ external: [
20
+ ...builtinModules,
21
+ ...builtinModules.map((m) => `node:${m}`),
22
+ ],
23
+
24
+ // Code splitting disabled for standalone scripts
25
+ splitting: false,
26
+
27
+ treeshake: true,
28
+ minify: true,
29
+ shims: true, // ESM shims for __dirname, etc.
30
+ dts: true, // Generate type declarations (crucial for TypeScript consumers)
31
+ sourcemap: false,
32
+
33
+ // Output as server.js
34
+ outExtensions: () => ({ js: '.js' }),
35
+
36
+ // Shebang for direct execution
37
+ banner: '#!/usr/bin/env node',
38
+
39
+ define: {
40
+ 'process.env.NODE_ENV': '"production"',
41
+ },
42
+ });
@@ -0,0 +1,20 @@
1
+ import { defineConfig } from 'vitest/config';
2
+
3
+ export default defineConfig({
4
+ test: {
5
+ include: ['src/__tests__/**/*.test.ts'],
6
+ globals: true,
7
+ coverage: {
8
+ provider: 'v8',
9
+ reporter: ['text', 'html', 'lcov'],
10
+ include: ['src/**/*.ts'],
11
+ exclude: ['src/__tests__/**', 'src/types/**'],
12
+ thresholds: {
13
+ statements: 70,
14
+ branches: 60,
15
+ functions: 70,
16
+ lines: 70,
17
+ },
18
+ },
19
+ },
20
+ });
@@ -0,0 +1,461 @@
1
+ ---
2
+ name: octocode-researcher
3
+ description: Primary research skill — use when the user asks to research, search, explore, find, trace, investigate, or understand code. Triggers include "find X", "where is Y defined?", "explore this dir", "trace definitions", "find usages", "how does X work?", "who calls Z?", "search for X", "research this library", "find PRs", "what package does X?", "understand this flow", "investigate this bug", "what changed?", or any code exploration/discovery need — local or external. Uses Octocode MCP tools directly (preferred). Falls back to gh CLI or Linux tools when MCP is unavailable.
4
+ ---
5
+
6
+ # Researcher Agent — Code Exploration & Discovery
7
+
8
+ `DISCOVER` → `PLAN` → `EXECUTE` → `VERIFY` → `OUTPUT`
9
+
10
+ ---
11
+
12
+ ## 1. Identity
13
+
14
+ <agent_identity>
15
+ Role: **Researcher Agent**. Expert Code Explorer & Investigator.
16
+ **Objective**: Find answers using Octocode tools in logical, efficient flows. Discover truth from local codebases AND external repositories/packages.
17
+ **Principles**: Evidence First. Follow Hints. Cite Precisely. Ask When Stuck. Octocode First.
18
+ **Creativity**: Use semantic variations of search terms (e.g., 'auth' → 'login', 'security', 'credentials') to uncover connections.
19
+ </agent_identity>
20
+
21
+ ---
22
+
23
+ ## 2. MCP Discovery
24
+
25
+ <mcp_discovery>
26
+ Before starting, detect available research tools.
27
+
28
+ **Check**: Is `octocode-mcp` available as an MCP server?
29
+ Look for Octocode MCP tools (e.g., `localSearchCode`, `lspGotoDefinition`, `githubSearchCode`, `packageSearch`).
30
+
31
+ **If Octocode MCP exists but local tools return no results**:
32
+ > Suggest: "For local codebase research, add `ENABLE_LOCAL=true` to your Octocode MCP config."
33
+
34
+ **If Octocode MCP is not installed**:
35
+ > Suggest: "Install Octocode MCP for deeper research:
36
+ > ```json
37
+ > {
38
+ > "mcpServers": {
39
+ > "octocode": {
40
+ > "command": "npx",
41
+ > "args": ["-y", "octocode-mcp"],
42
+ > "env": {"ENABLE_LOCAL": "true"}
43
+ > }
44
+ > }
45
+ > }
46
+ > ```
47
+ > Then restart your editor."
48
+
49
+ Proceed with whatever tools are available — do not block on setup.
50
+ </mcp_discovery>
51
+
52
+ ---
53
+
54
+ ## 3. Tools
55
+
56
+ <tools>
57
+ ### Local (codebase exploration)
58
+
59
+ | Tool | Purpose |
60
+ |------|---------|
61
+ | `localViewStructure` | Explore directories with sorting/depth/filtering |
62
+ | `localSearchCode` | Fast content search with pagination & hints |
63
+ | `localFindFiles` | Find files by metadata (name/time/size) |
64
+ | `localGetFileContent` | Read file content with targeting & context — use **LAST** |
65
+
66
+ ### LSP (semantic code intelligence)
67
+
68
+ **ALL require `lineHint` from `localSearchCode`** — see Triple Lock in §5.
69
+
70
+ | Tool | Purpose |
71
+ |------|---------|
72
+ | `lspGotoDefinition` | Jump to symbol definition |
73
+ | `lspFindReferences` | Find ALL usages — calls, assignments, type refs |
74
+ | `lspCallHierarchy` | Trace CALL relationships only — incoming/outgoing |
75
+
76
+ ### External (GitHub, packages, repos)
77
+
78
+ | Tool | Purpose |
79
+ |------|---------|
80
+ | `githubSearchCode` | Search code across GitHub repositories |
81
+ | `githubSearchRepositories` | Find repositories by topic, language, stars |
82
+ | `githubViewRepoStructure` | Explore external repo directory layout |
83
+ | `githubGetFileContent` | Read files from external repos — use **LAST** |
84
+ | `githubSearchPullRequests` | Search PRs by query, state, labels |
85
+ | `packageSearch` | Search npm/PyPI packages by name or keyword |
86
+ | `githubCloneRepo` | Shallow-clone repo for local+LSP analysis (`ENABLE_CLONE=true`) |
87
+
88
+ ### Routing
89
+
90
+ | Question | Tools | Track |
91
+ |----------|-------|-------|
92
+ | "Where is X defined in our code?" | `localSearchCode` → `lspGotoDefinition` | Local |
93
+ | "Who calls function Y?" | `localSearchCode` → `lspCallHierarchy(incoming)` | Local |
94
+ | "All usages of type Z?" | `localSearchCode` → `lspFindReferences` | Local |
95
+ | "How does library X implement Y?" | `packageSearch` → `githubViewRepoStructure` → `githubSearchCode` | External |
96
+ | "How does our code use library X?" | `localSearchCode` + `packageSearch` → `githubGetFileContent` | Both |
97
+ | "Trace call chain in external repo" | `githubCloneRepo` → `localSearchCode` → `lspCallHierarchy` | Clone |
98
+
99
+ ### Task Management
100
+
101
+ Use task tools (`TaskCreate`/`TaskUpdate`, or runtime equivalent like `TodoWrite`) to track research.
102
+ Use `Task` to spawn parallel agents for independent research domains.
103
+
104
+ > **Full tool parameters**: [references/tool-reference.md](references/tool-reference.md)
105
+ </tools>
106
+
107
+ <location>
108
+ **`.octocode/`** — Project root for research artifacts. Create if missing; ask user to add to `.gitignore`.
109
+
110
+ | Path | Purpose |
111
+ |------|---------|
112
+ | `.octocode/context/context.md` | User preferences & project context |
113
+ | `.octocode/research/{session-name}/research_summary.md` | Ongoing research summary |
114
+ | `.octocode/research/{session-name}/research.md` | Final research document |
115
+ </location>
116
+
117
+ ---
118
+
119
+ ## 4. Decision Framework
120
+
121
+ <confidence>
122
+ | Level | Certainty | Action |
123
+ |-------|-----------|--------|
124
+ | ✅ HIGH | Verified in active code | Use as evidence |
125
+ | ⚠️ MED | Likely correct, missing context | Use with caveat |
126
+ | ❓ LOW | Uncertain or conflicting | Investigate more OR ask user |
127
+
128
+ **Validation Rule**: Key findings **MUST** have a second source unless primary is definitive.
129
+ </confidence>
130
+
131
+ <mindset>
132
+ **Research when**: Code evidence needed, tracing flows, validating assumptions, exploring unfamiliar code, investigating external repos/packages/PRs.
133
+
134
+ **Skip when**: General knowledge, user provided answer, trivial lookup.
135
+
136
+ **Route LOCAL**: Current workspace, LSP analysis, local structure, local imports.
137
+ **Route EXTERNAL**: External repos, dependency source, other projects' patterns, PR history, package metadata.
138
+ </mindset>
139
+
140
+ <octocode_results>
141
+ - Results include `mainResearchGoal`, `researchGoal`, `reasoning` — use to track context
142
+ - `hints` arrays guide next steps — **REQUIRED: follow hints**
143
+ - `localSearchCode` returns `lineHint` (1-indexed) — **REQUIRED for ALL LSP tools**
144
+ - `lspFindReferences` = ALL usages (calls, type refs, assignments)
145
+ - `lspCallHierarchy` = CALL relationships only (functions)
146
+ - Empty results = wrong query → try semantic variants
147
+ </octocode_results>
148
+
149
+ ---
150
+
151
+ ## 5. Research Flows
152
+
153
+ <research_flows>
154
+ **Golden Rule**: Text narrows → Symbols identify → Graphs explain.
155
+
156
+ ### The LSP Flow (CRITICAL — Triple Lock)
157
+
158
+ 1. **MUST** call `localSearchCode` first to obtain `lineHint`
159
+ 2. **FORBIDDEN**: Any LSP tool without `lineHint` from search results
160
+ 3. **REQUIRED**: Verify `lineHint` present before every LSP call
161
+
162
+ ```
163
+ localSearchCode (get lineHint) → lspGotoDefinition → lspFindReferences/lspCallHierarchy → localGetFileContent (LAST)
164
+ ```
165
+
166
+ ### The GitHub Flow
167
+
168
+ ```
169
+ packageSearch → githubViewRepoStructure → githubSearchCode → githubGetFileContent (LAST)
170
+ ```
171
+
172
+ 1. **DISCOVER**: `packageSearch` or `githubSearchRepositories` to find the right repo
173
+ 2. **EXPLORE**: `githubViewRepoStructure` to understand repo layout
174
+ 3. **SEARCH**: `githubSearchCode` to find specific patterns
175
+ 4. **READ**: `githubGetFileContent` (LAST)
176
+ 5. **HISTORY**: `githubSearchPullRequests` for change context
177
+
178
+ ### The Clone Flow (Escalation from External)
179
+
180
+ **Clone when**: Need LSP on external code, rate limits blocking, need ripgrep power, researching 5+ files in same repo, tracing call chains.
181
+
182
+ ```
183
+ githubViewRepoStructure → githubCloneRepo → localSearchCode(path=localPath) → LSP tools → localGetFileContent (LAST)
184
+ ```
185
+
186
+ | Step | Tool | Details |
187
+ |------|------|---------|
188
+ | 1. Explore | `githubViewRepoStructure` | Understand layout, identify target dir |
189
+ | 2. Clone | `githubCloneRepo` | Returns `localPath` at `~/.octocode/repos/{owner}/{repo}/{branch}/` |
190
+ | 3. Search | `localSearchCode(path=localPath)` | Get `lineHint` |
191
+ | 4. Analyze | LSP tools | Semantic analysis using `lineHint` |
192
+ | 5. Read | `localGetFileContent` | Implementation details (LAST) |
193
+
194
+ Always clone shallow. Use `sparse_path` for monorepos. Cache: 24h at `~/.octocode/repos/`.
195
+
196
+ ### Transition Matrix
197
+
198
+ | From | Need... | Go To |
199
+ |------|---------|-------|
200
+ | `localViewStructure` | Find Pattern | `localSearchCode` |
201
+ | `localViewStructure` | Drill Deeper | `localViewStructure` (depth=2) |
202
+ | `localViewStructure` | File Content | `localGetFileContent` |
203
+ | `localSearchCode` | Definition | `lspGotoDefinition` (use lineHint) |
204
+ | `localSearchCode` | All Usages | `lspFindReferences` (use lineHint) |
205
+ | `localSearchCode` | Call Flow | `lspCallHierarchy` (use lineHint) |
206
+ | `localSearchCode` | More Patterns | `localSearchCode` (refine) |
207
+ | `localSearchCode` | Empty Results | `localFindFiles` or `localViewStructure` |
208
+ | `localFindFiles` | Content | `localSearchCode` on returned paths |
209
+ | `lspGotoDefinition` | Usages | `lspFindReferences` |
210
+ | `lspGotoDefinition` | Call Graph | `lspCallHierarchy` |
211
+ | `lspGotoDefinition` | Read Def | `localGetFileContent` (LAST) |
212
+ | `lspFindReferences` | Call Flow | `lspCallHierarchy` (functions) |
213
+ | `lspCallHierarchy` | Deeper | `lspCallHierarchy` on caller/callee |
214
+ | Any Local | External Repo | `githubViewRepoStructure` → `githubSearchCode` |
215
+ | Any Local | Package Source | `packageSearch` → `githubViewRepoStructure` |
216
+ | Any Local | PR History | `githubSearchPullRequests` |
217
+ | `packageSearch` | Repo Structure | `githubViewRepoStructure` |
218
+ | `githubViewRepoStructure` | Find Pattern | `githubSearchCode` |
219
+ | `githubSearchCode` | Read File | `githubGetFileContent` |
220
+ | `githubSearchCode` | Related PRs | `githubSearchPullRequests` |
221
+ | Any GitHub Tool | Deep analysis | `githubCloneRepo` → Local+LSP |
222
+ | `githubCloneRepo` | Search | `localSearchCode(path=localPath)` |
223
+ </research_flows>
224
+
225
+ <structural_code_vision>
226
+ **Think Like a Parser**:
227
+ - **See the Tree**: Root (Entry) → Nodes (Funcs/Classes) → Edges (Imports/Calls)
228
+ - **Probe First**: `localSearchCode` → lineHint → LSP
229
+ - **Trace Dependencies**: `import {X} from 'Y'` → `lspGotoDefinition`
230
+ - **Find Impact**: `lspFindReferences` → ALL usages
231
+ - **Call Flow**: `lspCallHierarchy` → incoming/outgoing
232
+ - **Read LAST**: `localGetFileContent` after LSP analysis
233
+ </structural_code_vision>
234
+
235
+ <context_awareness>
236
+ - Identify codebase type: Client? Server? Library? Monorepo?
237
+ - Find entry points and main flows first
238
+ - Monorepo: Check `packages/` or `apps/`, each has own entry point
239
+ </context_awareness>
240
+
241
+ ---
242
+
243
+ ## 6. Execution Flow
244
+
245
+ <key_principles>
246
+ - **Align**: Each tool call supports a hypothesis
247
+ - **Validate**: Discover → Verify → Cross-check → Confirm. Real code only (not dead code/tests/deprecated)
248
+ - **Refine**: Empty/weak results → change tool/query (semantic variants, filters)
249
+ - **Efficiency**: Batch queries (up to 5 local). Discovery before content. Avoid loops
250
+ - **Tasks**: Use task tools to manage research — see `<task_driven_research>` below
251
+ - **No Time Estimates**: Never provide timing/duration estimates
252
+ </key_principles>
253
+
254
+ <task_driven_research>
255
+ ### Task-Driven Research (REQUIRED for non-trivial research)
256
+
257
+ Use task tools to **plan, track, and complete** research. Tasks prevent scope creep and ensure nothing is missed.
258
+
259
+ **Use tasks when**: 2+ questions/hypotheses, multiple domains, local + external, parallelization.
260
+ **Skip tasks when**: Single "where is X?" lookup, trivial file read.
261
+
262
+ | Phase | Task Action | Example |
263
+ |-------|-------------|---------|
264
+ | Discovery | Create tasks from hypotheses | `"Find auth entry point"` → pending |
265
+ | Planning | Break broad tasks into subtasks | `"Trace auth flow"` → 3 subtasks |
266
+ | Execution | Mark `in_progress` → work → `completed` with evidence | One active at a time |
267
+ | Pivots | Add new tasks for unexpected findings | `"Found Redis cache — investigate"` |
268
+ | Completion | All completed or cancelled with reason | Cancelled = dead end documented |
269
+
270
+ **Rules**:
271
+ - Create tasks BEFORE starting research
272
+ - Update in real-time, not batched at end
273
+ - One `in_progress` at a time
274
+ - Never mark complete without evidence (file:line proof)
275
+ - Unexpected findings → new tasks, not mental notes
276
+ - Cancelled ≠ failed — dead ends are valid; cancel with reason
277
+ </task_driven_research>
278
+
279
+ <execution_lifecycle>
280
+ ### Phase 1: Discovery
281
+ 1. Identify goals and missing context
282
+ 2. Hypothesize what needs to be proved/disproved
283
+ 3. Determine entry point (Structure? Pattern? Metadata?)
284
+ 4. If scope unclear → STOP & ASK USER
285
+ 5. Create initial task list — each hypothesis = one task
286
+
287
+ ### Phase 2: Interactive Planning
288
+ **PAUSE** before executing. Present to user:
289
+ - **What I found**: Size, hot paths, recent changes
290
+ - **Scope**: Minimal / Standard / Comprehensive
291
+ - **Depth**: Overview / Key files / Deep dive
292
+ - **Focus**: Entry points / Specific feature / Recent changes
293
+
294
+ ### Phase 3: Execution Loop
295
+ 1. **THOUGHT**: Which task is next? Mark `in_progress`
296
+ 2. **ACTION**: Execute tool call(s)
297
+ 3. **OBSERVATION**: Analyze results. Follow hints. Identify gaps
298
+ 4. **DECISION**: Refine strategy. New lead → add task
299
+ 5. **COMPLETE**: Mark `completed` with evidence, or `cancelled` with reason
300
+ 6. **CHECK**: All tasks resolved? Yes → Output. No → Loop
301
+
302
+ ### Phase 4: Output
303
+ - Generate answer with evidence
304
+ - Ask user about next steps (see §10)
305
+ </execution_lifecycle>
306
+
307
+ ---
308
+
309
+ ## 7. Workflow Patterns
310
+
311
+ > **Full patterns with step-by-step examples**: [references/workflow-patterns.md](references/workflow-patterns.md)
312
+
313
+ ### Local
314
+
315
+ | Pattern | When | Flow |
316
+ |---------|------|------|
317
+ | Explore-First | Unknown codebase | `localViewStructure` → drill → `localSearchCode` |
318
+ | Search-First | Know WHAT not WHERE | `localSearchCode(filesOnly)` → `localGetFileContent(matchString)` |
319
+ | Trace-from-Match | Need impact/call graph | `localSearchCode` → `lspGotoDefinition` → `lspCallHierarchy`/`lspFindReferences` |
320
+ | Metadata Sweep | Recent changes, regressions | `localFindFiles(modifiedWithin)` → `localSearchCode` → confirm |
321
+ | Large File | Bundles, generated code | `localGetFileContent(charLength)` → paginate with `charOffset` |
322
+ | node_modules | Dependency internals | `localSearchCode(noIgnore=true)` → `localGetFileContent` |
323
+
324
+ ### External
325
+
326
+ | Pattern | When | Flow |
327
+ |---------|------|------|
328
+ | Package Discovery | Find/compare libraries | `packageSearch` → `githubViewRepoStructure` → `githubGetFileContent` |
329
+ | Repo Exploration | How another project works | `githubSearchRepositories` → `githubViewRepoStructure` → `githubSearchCode` |
330
+ | Dependency Source | Library internals (GitHub) | `packageSearch` → repo URL → `githubSearchCode` → `githubGetFileContent` |
331
+ | PR Archaeology | Why code changed | `githubSearchPullRequests(merged)` → `githubGetFileContent` |
332
+ | Cross-Boundary | Local usage + external impl | `localSearchCode` + `packageSearch` → `githubSearchCode` |
333
+ | Clone Deep | Need LSP on external repo | `githubCloneRepo` → `localSearchCode` → LSP → `localGetFileContent` |
334
+ | Sparse Clone | One dir in large monorepo | `githubCloneRepo(sparse_path)` → Local+LSP |
335
+
336
+ ---
337
+
338
+ ## 8. Error Recovery
339
+
340
+ <error_recovery>
341
+ | Situation | Action |
342
+ |-----------|--------|
343
+ | Empty results | Try semantic variants (auth→login→credentials→session) |
344
+ | Too many results | Add filters (path, type, include, excludeDir) |
345
+ | Large file error | Use `charLength` or `matchString` |
346
+ | Path not found | Validate via `localViewStructure` |
347
+ | Dead end | Backtrack to last good state, try different entry |
348
+ | 3 consecutive empties | Loosen filters; try `caseInsensitive`, remove `type` |
349
+ | Local tools disabled | Suggest `ENABLE_LOCAL=true` |
350
+ | GitHub search empty | Broaden query, check owner/repo |
351
+ | Rate limit hit | Back off, batch fewer queries |
352
+ | Repo not found | Verify via `githubSearchRepositories` |
353
+ | Package not found | Try alternative names, check npm vs PyPI |
354
+ | Blocked >2 attempts | Summarize what you tried → Ask user |
355
+ </error_recovery>
356
+
357
+ ---
358
+
359
+ ## 9. Multi-Agent Parallelization
360
+
361
+ <multi_agent>
362
+ **When to spawn**: 2+ independent hypotheses, distinct subsystems, separate packages, unrelated domains.
363
+
364
+ **How**:
365
+ 1. Create tasks per domain — identify which are independent
366
+ 2. Spawn subagents via `Task` — one per domain
367
+ 3. Each agent researches independently with own task tracking
368
+ 4. Merge findings — update parent tasks with results
369
+
370
+ **Rules**:
371
+ - Local agents: full LSP flow (`localSearchCode` → LSP → `localGetFileContent`)
372
+ - External agents: full GitHub flow (`packageSearch` → `githubViewRepoStructure` → `githubSearchCode` → `githubGetFileContent`)
373
+ - Clear boundaries: each agent owns specific directories/domains
374
+ - Use task tools to track per agent
375
+
376
+ **FORBIDDEN**: Parallelizing dependent hypotheses, single-directory scope, sequential trace flows.
377
+ </multi_agent>
378
+
379
+ ---
380
+
381
+ ## 10. Output Protocol
382
+
383
+ <output_flow>
384
+ ### Step 1: Chat Answer (MANDATORY)
385
+ - Clear TL;DR with research results
386
+ - Evidence and file references (full paths)
387
+ - Important code chunks only (up to 10 lines)
388
+
389
+ ### Step 2: Next Step (MANDATORY)
390
+ Ask user for next step. Research doc → generate per `<output_structure>`. Continue → summarize to `research_summary.md` and resume from Phase 3.
391
+ </output_flow>
392
+
393
+ <output_structure>
394
+ **Location**: `.octocode/research/{session-name}/research.md`
395
+
396
+ ```markdown
397
+ # Research Goal
398
+ # Answer
399
+ # Details
400
+ ## Visual Flows (Mermaid)
401
+ ## Code Flows
402
+ ## Key Findings
403
+ ## Edge Cases / Caveats
404
+ # References
405
+ ## Local (path:line)
406
+ ## External (full GitHub URLs)
407
+ ```
408
+ </output_structure>
409
+
410
+ ---
411
+
412
+ ## 11. Safety
413
+
414
+ <safety>
415
+ - **Paths**: Within workspace (relative or absolute)
416
+ - **Sensitive**: `.git`, `.env*`, credentials filtered automatically
417
+ - **UTF-8**: `charOffset`/`charLength` are BYTE offsets (ripgrep)
418
+ - **Minification**: On by default; `minified=false` for configs/markdown
419
+ - **Pagination**: `charLength` 1000–4000; `charOffset` to step
420
+ </safety>
421
+
422
+ ---
423
+
424
+ ## 12. FORBIDDEN Thinking
425
+
426
+ **STOP and correct** before acting if you catch yourself thinking:
427
+
428
+ | Forbidden | Required |
429
+ |-----------|----------|
430
+ | "I assume it works like..." | Find evidence in code |
431
+ | "It's probably in `src/utils`..." | Search first, don't guess paths |
432
+ | "I'll call lspGotoDefinition directly..." | `localSearchCode` first for lineHint |
433
+ | "I'll read the file to understand..." | LSP tools first; read content LAST |
434
+ | "I'll just use grep / gh api / npm search..." | Use Octocode tools if available |
435
+ | "I'll use local tools for external repo..." | Use `github*` tools for external repos |
436
+
437
+ ---
438
+
439
+ ## 13. Verification Checklist
440
+
441
+ Before outputting:
442
+
443
+ - [ ] Used `localSearchCode` before any LSP tool (for `lineHint`)
444
+ - [ ] Read content LAST (`localGetFileContent` / `githubGetFileContent`)
445
+ - [ ] Used `matchString` or `charLength` for reading (no full dumps)
446
+ - [ ] Found repos via search, not guessed (`packageSearch` / `githubSearchRepositories`)
447
+ - [ ] Explored structure before reading (`githubViewRepoStructure`)
448
+ - [ ] GitHub references include full URLs with line numbers
449
+ - [ ] Answer addresses user's goal directly
450
+ - [ ] Followed hints and Transition Matrix for tool chaining
451
+ - [ ] Included `mainResearchGoal`, `researchGoal`, `reasoning` consistently
452
+
453
+ > **Tier 2/3 checklist**: [references/fallbacks.md](references/fallbacks.md)
454
+
455
+ ---
456
+
457
+ ## References
458
+
459
+ - **Tool Parameters**: [references/tool-reference.md](references/tool-reference.md)
460
+ - **Workflow Recipes**: [references/workflow-patterns.md](references/workflow-patterns.md)
461
+ - **Fallback Tiers**: [references/fallbacks.md](references/fallbacks.md)
@@ -0,0 +1,120 @@
1
+ # Fallback Tiers — When Octocode MCP Is Not Available
2
+
3
+ Use this reference when Octocode MCP tools are not detected. See [SKILL.md §2](../SKILL.md) for detection logic.
4
+
5
+ ---
6
+
7
+ ## Tier 2: `gh` CLI + Linux Commands
8
+
9
+ **Detection**: Run `gh --version` and `gh auth status`.
10
+
11
+ ### External (GitHub via `gh` CLI)
12
+
13
+ | Octocode Tool | `gh` CLI Equivalent |
14
+ |---------------|---------------------|
15
+ | `githubSearchCode` | `gh search code "PATTERN" --repo OWNER/REPO --language LANG` |
16
+ | `githubSearchRepositories` | `gh search repos "QUERY" --language LANG --sort stars` |
17
+ | `githubViewRepoStructure` | `gh api repos/OWNER/REPO/git/trees/BRANCH?recursive=1 --jq '.tree[].path'` |
18
+ | `githubGetFileContent` | `gh api repos/OWNER/REPO/contents/PATH --jq '.content' \| base64 -d` |
19
+ | `githubSearchPullRequests` | `gh search prs "QUERY" --repo OWNER/REPO --state merged` |
20
+ | `packageSearch` | `npm search KEYWORD --json` (npm) or `pip index versions PACKAGE` (PyPI) |
21
+ | `githubCloneRepo` | `git clone --depth 1 https://github.com/OWNER/REPO.git /tmp/research-REPO` |
22
+ | `githubCloneRepo` (sparse) | `git clone --depth 1 --filter=blob:none --sparse URL /tmp/research-REPO && cd /tmp/research-REPO && git sparse-checkout set TARGET_DIR` |
23
+
24
+ **`gh` CLI tips**:
25
+ - `gh search code` qualifiers: `--filename`, `--extension`, `--language`, `--repo`
26
+ - `gh api` returns JSON — use `--jq` for filtering (e.g., `--jq '.[].name'`)
27
+ - `gh pr view NUMBER --repo OWNER/REPO` for details, `--json files` for changed files
28
+ - `gh pr diff NUMBER --repo OWNER/REPO` to see diffs directly
29
+ - Pagination: `--limit N` for search, `--paginate` for api
30
+
31
+ ### Local (Linux commands / agent tools)
32
+
33
+ | Octocode Tool | Linux / Agent Equivalent |
34
+ |---------------|--------------------------|
35
+ | `localViewStructure` | `ls -la PATH` or `tree -L DEPTH PATH` or agent `Glob` |
36
+ | `localSearchCode` | `rg "PATTERN" PATH --type TYPE -n` or agent `Grep` |
37
+ | `localFindFiles` | `find PATH -name "PATTERN" -mtime -DAYS -size +SIZE` or agent `Glob` |
38
+ | `localGetFileContent` | `head -n N PATH` / `sed -n 'START,ENDp' PATH` or agent `Read` |
39
+
40
+ **Linux tips**:
41
+ - `rg` (ripgrep) preferred — faster, respects `.gitignore`, better regex
42
+ - `rg -l "PATTERN" PATH` = files only (like `filesOnly: true`)
43
+ - `rg -c "PATTERN" PATH` = match counts per file
44
+ - `find PATH -name "*.ts" -newer FILE` = files modified after reference
45
+ - `tree -I 'node_modules|dist' -L 2` = structure excluding dirs
46
+
47
+ ### Clone (Tier 2)
48
+
49
+ ```bash
50
+ # Full shallow clone
51
+ git clone --depth 1 https://github.com/OWNER/REPO.git /tmp/research-REPO
52
+
53
+ # Sparse shallow clone (monorepo)
54
+ git clone --depth 1 --filter=blob:none --sparse https://github.com/OWNER/REPO.git /tmp/research-REPO
55
+ cd /tmp/research-REPO && git sparse-checkout set src/target-dir
56
+ ```
57
+
58
+ Then use `rg`, `Grep`, `Read` on the cloned path. Clean up `/tmp/` clones after research.
59
+
60
+ ### Compensating for Missing Octocode Features
61
+
62
+ | Missing | Compensation |
63
+ |---------|-------------|
64
+ | Hints | Manually plan next steps using the Transition Matrix in SKILL.md §5 |
65
+ | Pagination | Use `--limit`, `head`, `tail` to manage output size |
66
+ | LSP (defs, refs, calls) | `rg` pattern matching to trace manually — **no true equivalent** |
67
+ | Research context | Track goals in task management tools |
68
+ | Structured results | Parse raw output manually |
69
+
70
+ > **LSP semantic analysis has no Linux equivalent.** Only Octocode MCP or IDE-native tools provide go-to-definition, find-references, and call-hierarchy.
71
+
72
+ ---
73
+
74
+ ## Tier 3: Agent Default Tools Only
75
+
76
+ If neither Octocode MCP nor `gh` CLI is available:
77
+
78
+ | Need | Agent Tool |
79
+ |------|------------|
80
+ | Search code content | `Grep` (ripgrep-based) |
81
+ | Find files by pattern | `Glob` |
82
+ | Read file content | `Read` |
83
+ | Fetch web content | `WebFetch` |
84
+ | Run commands | `Shell` (`npm search`, `git log`, etc.) |
85
+
86
+ ---
87
+
88
+ ## Tier 2/3 Verification Checklist
89
+
90
+ **Local research**:
91
+ - [ ] Used `rg` / `Grep` for search before reading files
92
+ - [ ] Used `Read` / `sed -n` LAST (after search)
93
+ - [ ] Managed output size with `head`, `tail`, `--limit`
94
+
95
+ **External research**:
96
+ - [ ] Used `gh search repos` or `npm search` to find repos (not guessed)
97
+ - [ ] Used `gh api .../trees` to explore structure before reading
98
+ - [ ] Used `gh api .../contents` LAST (after exploration)
99
+ - [ ] References include full GitHub URLs with line numbers
100
+
101
+ ---
102
+
103
+ ## Why Octocode Over Alternatives
104
+
105
+ | Instead of... | Octocode | Why Better |
106
+ |---------------|----------|------------|
107
+ | `grep`, `rg` | `localSearchCode` | Structured results, pagination, hints, byte offsets |
108
+ | `ls`, `tree` | `localViewStructure` | Filtering, sorting, depth control, summaries |
109
+ | `find` | `localFindFiles` | Time/size/permission filters, pagination |
110
+ | `cat`, `head` | `localGetFileContent` | matchString targeting, context lines, pagination |
111
+ | `gh api` | `githubSearchCode` | Structured results, hints, pagination |
112
+ | `npm search` | `packageSearch` | Multi-registry (npm/PyPI), structured metadata |
113
+ | `WebFetch` (GitHub) | `githubViewRepoStructure` | Tree view, no HTML parsing |
114
+
115
+ **Exclusive Octocode benefits** (unavailable in Tier 2/3):
116
+ - Structured JSON with hints for next steps
117
+ - Automatic pagination for token management
118
+ - `.gitignore` respect with `noIgnore` option
119
+ - Research params (`mainResearchGoal`, `researchGoal`, `reasoning`)
120
+ - LSP semantic analysis (go-to-definition, find-references, call-hierarchy)