octocode-cli 1.2.5 → 1.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -63
- package/README.md +86 -109
- package/out/octocode-cli.js +7027 -7014
- package/package.json +8 -6
- package/skills/README.md +97 -120
- package/skills/octocode-code-engineer/.claude/settings.local.json +18 -0
- package/skills/octocode-code-engineer/.octocode/rfc/RFC-code-engineer-weakness-fixes.md +255 -0
- package/skills/octocode-code-engineer/.plan/VALIDATED_PLAN.md +223 -0
- package/skills/octocode-code-engineer/README.md +178 -0
- package/skills/octocode-code-engineer/SKILL.md +418 -0
- package/skills/octocode-code-engineer/coverage/architecture.ts.html +7828 -0
- package/skills/octocode-code-engineer/coverage/ast-helpers.ts.html +211 -0
- package/skills/octocode-code-engineer/coverage/ast-search.ts.html +1795 -0
- package/skills/octocode-code-engineer/coverage/base.css +224 -0
- package/skills/octocode-code-engineer/coverage/block-navigation.js +87 -0
- package/skills/octocode-code-engineer/coverage/cache.ts.html +376 -0
- package/skills/octocode-code-engineer/coverage/cli.ts.html +982 -0
- package/skills/octocode-code-engineer/coverage/clover.xml +3217 -0
- package/skills/octocode-code-engineer/coverage/collect-effects.ts.html +664 -0
- package/skills/octocode-code-engineer/coverage/collect-input-sources.ts.html +577 -0
- package/skills/octocode-code-engineer/coverage/collect-performance.ts.html +331 -0
- package/skills/octocode-code-engineer/coverage/collect-prototype-pollution.ts.html +421 -0
- package/skills/octocode-code-engineer/coverage/collect-security.ts.html +604 -0
- package/skills/octocode-code-engineer/coverage/collect-test-profile.ts.html +589 -0
- package/skills/octocode-code-engineer/coverage/coverage-final.json +30 -0
- package/skills/octocode-code-engineer/coverage/dependencies.ts.html +997 -0
- package/skills/octocode-code-engineer/coverage/dependency-summary.ts.html +688 -0
- package/skills/octocode-code-engineer/coverage/discovery.ts.html +322 -0
- package/skills/octocode-code-engineer/coverage/favicon.png +0 -0
- package/skills/octocode-code-engineer/coverage/graph-analytics.ts.html +1510 -0
- package/skills/octocode-code-engineer/coverage/index.html +536 -0
- package/skills/octocode-code-engineer/coverage/index.ts.html +826 -0
- package/skills/octocode-code-engineer/coverage/metrics.ts.html +553 -0
- package/skills/octocode-code-engineer/coverage/pipeline.ts.html +2044 -0
- package/skills/octocode-code-engineer/coverage/prettify.css +1 -0
- package/skills/octocode-code-engineer/coverage/prettify.js +2 -0
- package/skills/octocode-code-engineer/coverage/report-analysis.ts.html +1570 -0
- package/skills/octocode-code-engineer/coverage/report-writer.ts.html +1102 -0
- package/skills/octocode-code-engineer/coverage/security-detectors.ts.html +1747 -0
- package/skills/octocode-code-engineer/coverage/semantic-detectors.ts.html +2152 -0
- package/skills/octocode-code-engineer/coverage/semantic.ts.html +1897 -0
- package/skills/octocode-code-engineer/coverage/sort-arrow-sprite.png +0 -0
- package/skills/octocode-code-engineer/coverage/sorter.js +210 -0
- package/skills/octocode-code-engineer/coverage/summary-md.ts.html +1222 -0
- package/skills/octocode-code-engineer/coverage/test-quality-detectors.ts.html +1039 -0
- package/skills/octocode-code-engineer/coverage/tree-sitter-analyzer.ts.html +955 -0
- package/skills/octocode-code-engineer/coverage/ts-analyzer.ts.html +1213 -0
- package/skills/octocode-code-engineer/coverage/types.ts.html +2473 -0
- package/skills/octocode-code-engineer/coverage/utils.ts.html +820 -0
- package/skills/octocode-code-engineer/eslint.config.mjs +54 -0
- package/skills/octocode-code-engineer/minify-scripts.mjs +32 -0
- package/skills/octocode-code-engineer/package.json +54 -0
- package/skills/octocode-code-engineer/references/agent-ast-reading-rfc.md +95 -0
- package/skills/octocode-code-engineer/references/architecture-techniques.md +121 -0
- package/skills/octocode-code-engineer/references/ast-search.md +210 -0
- package/skills/octocode-code-engineer/references/ast-tree-search.md +151 -0
- package/skills/octocode-code-engineer/references/cli-reference.md +167 -0
- package/skills/octocode-code-engineer/references/concepts.md +107 -0
- package/skills/octocode-code-engineer/references/finding-categories.md +128 -0
- package/skills/octocode-code-engineer/references/improvement-roadmap.md +304 -0
- package/skills/octocode-code-engineer/references/output-files.md +144 -0
- package/skills/octocode-code-engineer/references/playbooks.md +204 -0
- package/skills/octocode-code-engineer/references/present-results.md +136 -0
- package/skills/octocode-code-engineer/references/tool-workflows.md +566 -0
- package/skills/octocode-code-engineer/references/validate-investigate.md +225 -0
- package/skills/octocode-code-engineer/scripts/analysis/dependencies.js +1 -0
- package/skills/octocode-code-engineer/scripts/analysis/dependency-summary.js +1 -0
- package/skills/octocode-code-engineer/scripts/analysis/discovery.js +1 -0
- package/skills/octocode-code-engineer/scripts/analysis/graph-analytics.js +1 -0
- package/skills/octocode-code-engineer/scripts/analysis/semantic.js +1 -0
- package/skills/octocode-code-engineer/scripts/ast/helpers.js +1 -0
- package/skills/octocode-code-engineer/scripts/ast/metrics.js +1 -0
- package/skills/octocode-code-engineer/scripts/ast/search.js +2 -0
- package/skills/octocode-code-engineer/scripts/ast/tree-search.js +2 -0
- package/skills/octocode-code-engineer/scripts/ast/tree-sitter.js +1 -0
- package/skills/octocode-code-engineer/scripts/ast/ts-analyzer.js +1 -0
- package/skills/octocode-code-engineer/scripts/collectors/chains.js +1 -0
- package/skills/octocode-code-engineer/scripts/collectors/effects.js +1 -0
- package/skills/octocode-code-engineer/scripts/collectors/input-sources.js +1 -0
- package/skills/octocode-code-engineer/scripts/collectors/performance.js +1 -0
- package/skills/octocode-code-engineer/scripts/collectors/prototype-pollution.js +1 -0
- package/skills/octocode-code-engineer/scripts/collectors/security.js +1 -0
- package/skills/octocode-code-engineer/scripts/collectors/test-profile.js +1 -0
- package/skills/octocode-code-engineer/scripts/common/is-direct-run.js +1 -0
- package/skills/octocode-code-engineer/scripts/common/utils.js +1 -0
- package/skills/octocode-code-engineer/scripts/detectors/code-quality.js +1 -0
- package/skills/octocode-code-engineer/scripts/detectors/cohesion.js +1 -0
- package/skills/octocode-code-engineer/scripts/detectors/coupling.js +1 -0
- package/skills/octocode-code-engineer/scripts/detectors/cycle.js +1 -0
- package/skills/octocode-code-engineer/scripts/detectors/dead-code.js +1 -0
- package/skills/octocode-code-engineer/scripts/detectors/import-style.js +1 -0
- package/skills/octocode-code-engineer/scripts/detectors/index.js +1 -0
- package/skills/octocode-code-engineer/scripts/detectors/security.js +1 -0
- package/skills/octocode-code-engineer/scripts/detectors/semantic.js +1 -0
- package/skills/octocode-code-engineer/scripts/detectors/shared.js +1 -0
- package/skills/octocode-code-engineer/scripts/detectors/test-quality.js +1 -0
- package/skills/octocode-code-engineer/scripts/index.js +1 -0
- package/skills/octocode-code-engineer/scripts/pipeline/cache.js +1 -0
- package/skills/octocode-code-engineer/scripts/pipeline/cli.js +1 -0
- package/skills/octocode-code-engineer/scripts/pipeline/main.js +2 -0
- package/skills/octocode-code-engineer/scripts/reporting/analysis.js +1 -0
- package/skills/octocode-code-engineer/scripts/reporting/summary-md.js +1 -0
- package/skills/octocode-code-engineer/scripts/reporting/writer.js +1 -0
- package/skills/octocode-code-engineer/scripts/types/constants.js +1 -0
- package/skills/octocode-code-engineer/scripts/types/index.js +1 -0
- package/skills/octocode-code-engineer/scripts/types/interfaces.js +1 -0
- package/skills/octocode-code-engineer/src/analysis/dependencies.test.ts +545 -0
- package/skills/octocode-code-engineer/src/analysis/dependencies.ts +406 -0
- package/skills/octocode-code-engineer/src/analysis/dependency-summary.test.ts +566 -0
- package/skills/octocode-code-engineer/src/analysis/dependency-summary.ts +257 -0
- package/skills/octocode-code-engineer/src/analysis/discovery.test.ts +420 -0
- package/skills/octocode-code-engineer/src/analysis/discovery.ts +87 -0
- package/skills/octocode-code-engineer/src/analysis/graph-analytics.test.ts +449 -0
- package/skills/octocode-code-engineer/src/analysis/graph-analytics.ts +534 -0
- package/skills/octocode-code-engineer/src/analysis/semantic.test.ts +1533 -0
- package/skills/octocode-code-engineer/src/analysis/semantic.ts +830 -0
- package/skills/octocode-code-engineer/src/ast/helpers.test.ts +185 -0
- package/skills/octocode-code-engineer/src/ast/helpers.ts +62 -0
- package/skills/octocode-code-engineer/src/ast/metrics.test.ts +304 -0
- package/skills/octocode-code-engineer/src/ast/metrics.ts +204 -0
- package/skills/octocode-code-engineer/src/ast/search.test.ts +647 -0
- package/skills/octocode-code-engineer/src/ast/search.ts +648 -0
- package/skills/octocode-code-engineer/src/ast/tree-search.test.ts +199 -0
- package/skills/octocode-code-engineer/src/ast/tree-search.ts +392 -0
- package/skills/octocode-code-engineer/src/ast/tree-sitter.test.ts +407 -0
- package/skills/octocode-code-engineer/src/ast/tree-sitter.ts +402 -0
- package/skills/octocode-code-engineer/src/ast/ts-analyzer.test.ts +1864 -0
- package/skills/octocode-code-engineer/src/ast/ts-analyzer.ts +509 -0
- package/skills/octocode-code-engineer/src/collectors/chains.ts +74 -0
- package/skills/octocode-code-engineer/src/collectors/effects.test.ts +490 -0
- package/skills/octocode-code-engineer/src/collectors/effects.ts +332 -0
- package/skills/octocode-code-engineer/src/collectors/input-sources.test.ts +144 -0
- package/skills/octocode-code-engineer/src/collectors/input-sources.ts +196 -0
- package/skills/octocode-code-engineer/src/collectors/performance.test.ts +82 -0
- package/skills/octocode-code-engineer/src/collectors/performance.ts +141 -0
- package/skills/octocode-code-engineer/src/collectors/prototype-pollution.test.ts +55 -0
- package/skills/octocode-code-engineer/src/collectors/prototype-pollution.ts +162 -0
- package/skills/octocode-code-engineer/src/collectors/security.test.ts +124 -0
- package/skills/octocode-code-engineer/src/collectors/security.ts +309 -0
- package/skills/octocode-code-engineer/src/collectors/test-profile.test.ts +97 -0
- package/skills/octocode-code-engineer/src/collectors/test-profile.ts +269 -0
- package/skills/octocode-code-engineer/src/common/is-direct-run.test.ts +32 -0
- package/skills/octocode-code-engineer/src/common/is-direct-run.ts +13 -0
- package/skills/octocode-code-engineer/src/common/utils.test.ts +463 -0
- package/skills/octocode-code-engineer/src/common/utils.ts +304 -0
- package/skills/octocode-code-engineer/src/detectors/code-quality.ts +966 -0
- package/skills/octocode-code-engineer/src/detectors/cohesion.ts +539 -0
- package/skills/octocode-code-engineer/src/detectors/coupling.ts +323 -0
- package/skills/octocode-code-engineer/src/detectors/cycle.ts +349 -0
- package/skills/octocode-code-engineer/src/detectors/dead-code.ts +320 -0
- package/skills/octocode-code-engineer/src/detectors/import-style.ts +376 -0
- package/skills/octocode-code-engineer/src/detectors/index.test.ts +3061 -0
- package/skills/octocode-code-engineer/src/detectors/index.ts +88 -0
- package/skills/octocode-code-engineer/src/detectors/security.test.ts +882 -0
- package/skills/octocode-code-engineer/src/detectors/security.ts +821 -0
- package/skills/octocode-code-engineer/src/detectors/semantic.ts +758 -0
- package/skills/octocode-code-engineer/src/detectors/shared.ts +49 -0
- package/skills/octocode-code-engineer/src/detectors/test-quality.test.ts +388 -0
- package/skills/octocode-code-engineer/src/detectors/test-quality.ts +367 -0
- package/skills/octocode-code-engineer/src/index.test.ts +4425 -0
- package/skills/octocode-code-engineer/src/index.ts +403 -0
- package/skills/octocode-code-engineer/src/pipeline/cache.test.ts +199 -0
- package/skills/octocode-code-engineer/src/pipeline/cache.ts +130 -0
- package/skills/octocode-code-engineer/src/pipeline/cli.test.ts +493 -0
- package/skills/octocode-code-engineer/src/pipeline/cli.ts +344 -0
- package/skills/octocode-code-engineer/src/pipeline/main.test.ts +174 -0
- package/skills/octocode-code-engineer/src/pipeline/main.ts +1074 -0
- package/skills/octocode-code-engineer/src/pipeline.test.ts +84 -0
- package/skills/octocode-code-engineer/src/reporting/analysis.test.ts +782 -0
- package/skills/octocode-code-engineer/src/reporting/analysis.ts +688 -0
- package/skills/octocode-code-engineer/src/reporting/output-contract.test.ts +463 -0
- package/skills/octocode-code-engineer/src/reporting/summary-md.test.ts +421 -0
- package/skills/octocode-code-engineer/src/reporting/summary-md.ts +714 -0
- package/skills/octocode-code-engineer/src/reporting/writer.ts +430 -0
- package/skills/octocode-code-engineer/src/sanity.test.ts +47 -0
- package/skills/octocode-code-engineer/src/types/constants.ts +248 -0
- package/skills/octocode-code-engineer/src/types/index.ts +80 -0
- package/skills/octocode-code-engineer/src/types/interfaces.ts +682 -0
- package/skills/octocode-code-engineer/tsconfig.json +17 -0
- package/skills/octocode-code-engineer/vitest.config.ts +8 -0
- package/skills/octocode-documentation-writer/README.md +113 -0
- package/skills/octocode-documentation-writer/SKILL.md +886 -0
- package/skills/octocode-documentation-writer/references/agent-discovery-analysis.md +453 -0
- package/skills/octocode-documentation-writer/references/agent-documentation-writer.md +255 -0
- package/skills/octocode-documentation-writer/references/agent-engineer-questions.md +247 -0
- package/skills/octocode-documentation-writer/references/agent-orchestrator.md +370 -0
- package/skills/octocode-documentation-writer/references/agent-qa-validator.md +227 -0
- package/skills/octocode-documentation-writer/references/agent-researcher.md +250 -0
- package/skills/octocode-documentation-writer/schemas/analysis-schema.json +886 -0
- package/skills/octocode-documentation-writer/schemas/discovery-tasks.json +96 -0
- package/skills/octocode-documentation-writer/schemas/documentation-structure.json +373 -0
- package/skills/octocode-documentation-writer/schemas/partial-discovery-schema.json +102 -0
- package/skills/octocode-documentation-writer/schemas/partial-research-schema.json +98 -0
- package/skills/octocode-documentation-writer/schemas/qa-results-schema.json +113 -0
- package/skills/octocode-documentation-writer/schemas/questions-schema.json +228 -0
- package/skills/octocode-documentation-writer/schemas/research-schema.json +104 -0
- package/skills/octocode-documentation-writer/schemas/state-schema.json +222 -0
- package/skills/octocode-documentation-writer/schemas/work-assignments-schema.json +74 -0
- package/skills/octocode-plan/SKILL.md +122 -116
- package/skills/octocode-prompt-optimizer/SKILL.md +617 -0
- package/skills/octocode-pull-request-reviewer/README.md +249 -0
- package/skills/octocode-pull-request-reviewer/SKILL.md +479 -0
- package/skills/octocode-pull-request-reviewer/references/dependency-check.md +74 -0
- package/skills/octocode-pull-request-reviewer/references/domain-reviewers.md +24 -0
- package/skills/octocode-pull-request-reviewer/references/execution-lifecycle.md +441 -0
- package/skills/octocode-pull-request-reviewer/references/flow-analysis-protocol.md +64 -0
- package/skills/octocode-pull-request-reviewer/references/output-template.md +174 -0
- package/skills/octocode-pull-request-reviewer/references/parallel-agent-protocol.md +182 -0
- package/skills/octocode-pull-request-reviewer/references/review-guidelines.md +26 -0
- package/skills/octocode-pull-request-reviewer/references/verification-checklist.md +40 -0
- package/skills/octocode-research/.claude/settings.local.json +46 -0
- package/skills/octocode-research/.octocode/plan/code-review-fixes/plan.md +312 -0
- package/skills/octocode-research/.octocode/plan/code-review-fixes/research.md +212 -0
- package/skills/octocode-research/.octocode/plans/NODE_SERVER_START_PLAN.md +755 -0
- package/skills/octocode-research/.octocode/research/code-review/research.md +371 -0
- package/skills/octocode-research/.octocode/review/IMPROVEMENTS.md +391 -0
- package/skills/octocode-research/.octocode/review/REVIEW_PLAN.md +289 -0
- package/skills/octocode-research/.octocode/review/REVIEW_REPORT.md +356 -0
- package/skills/octocode-research/AGENTS.md +349 -0
- package/skills/octocode-research/README.md +494 -0
- package/skills/octocode-research/SKILL.md +652 -274
- package/skills/octocode-research/docs/API_REFERENCE.md +562 -0
- package/skills/octocode-research/docs/ARCHITECTURE.md +554 -0
- package/skills/octocode-research/docs/FLOWS.md +577 -0
- package/skills/octocode-research/docs/OVERVIEW.md +564 -0
- package/skills/octocode-research/docs/SERVER_FLOWS.md +631 -0
- package/skills/octocode-research/ecosystem.config.cjs +88 -0
- package/skills/octocode-research/eslint.config.mjs +27 -0
- package/skills/octocode-research/package.json +84 -0
- package/skills/octocode-research/references/GUARDRAILS.md +40 -0
- package/skills/octocode-research/references/PARALLEL_AGENT_PROTOCOL.md +178 -0
- package/skills/octocode-research/references/roast-prompt.md +149 -0
- package/skills/octocode-research/scripts/server-init.d.ts +2 -0
- package/skills/octocode-research/scripts/server-init.js +2 -0
- package/skills/octocode-research/scripts/server.d.ts +8 -0
- package/skills/octocode-research/scripts/server.js +445 -0
- package/skills/octocode-research/src/__tests__/integration/circuitBreaker.test.ts +205 -0
- package/skills/octocode-research/src/__tests__/integration/routes.test.ts +374 -0
- package/skills/octocode-research/src/__tests__/unit/circuitBreaker.test.ts +245 -0
- package/skills/octocode-research/src/__tests__/unit/errorHandler.test.ts +183 -0
- package/skills/octocode-research/src/__tests__/unit/httpPreprocess.test.ts +157 -0
- package/skills/octocode-research/src/__tests__/unit/logger.test.ts +143 -0
- package/skills/octocode-research/src/__tests__/unit/queryParser.test.ts +130 -0
- package/skills/octocode-research/src/__tests__/unit/responseBuilder.test.ts +469 -0
- package/skills/octocode-research/src/__tests__/unit/retry.test.ts +205 -0
- package/skills/octocode-research/src/index.ts +186 -0
- package/skills/octocode-research/src/mcpCache.ts +49 -0
- package/skills/octocode-research/src/middleware/errorHandler.ts +65 -0
- package/skills/octocode-research/src/middleware/logger.ts +61 -0
- package/skills/octocode-research/src/middleware/queryParser.ts +115 -0
- package/skills/octocode-research/src/middleware/readiness.ts +17 -0
- package/skills/octocode-research/src/routes/github.ts +197 -0
- package/skills/octocode-research/src/routes/local.ts +175 -0
- package/skills/octocode-research/src/routes/lsp.ts +177 -0
- package/skills/octocode-research/src/routes/package.ts +127 -0
- package/skills/octocode-research/src/routes/prompts.ts +138 -0
- package/skills/octocode-research/src/routes/tools.ts +677 -0
- package/skills/octocode-research/src/server-init.ts +363 -0
- package/skills/octocode-research/src/server.ts +285 -0
- package/skills/octocode-research/src/types/errorGuards.ts +151 -0
- package/skills/octocode-research/src/types/express.d.ts +76 -0
- package/skills/octocode-research/src/types/guards.ts +98 -0
- package/skills/octocode-research/src/types/mcp.ts +119 -0
- package/skills/octocode-research/src/types/responses.ts +199 -0
- package/skills/octocode-research/src/types/toolTypes.ts +33 -0
- package/skills/octocode-research/src/utils/asyncTimeout.ts +116 -0
- package/skills/octocode-research/src/utils/circuitBreaker.ts +492 -0
- package/skills/octocode-research/src/utils/colors.ts +53 -0
- package/skills/octocode-research/src/utils/errorQueue.ts +71 -0
- package/skills/octocode-research/src/utils/logEmoji.ts +103 -0
- package/skills/octocode-research/src/utils/logger.ts +413 -0
- package/skills/octocode-research/src/utils/resilience.ts +169 -0
- package/skills/octocode-research/src/utils/responseBuilder.ts +495 -0
- package/skills/octocode-research/src/utils/responseFactory.ts +100 -0
- package/skills/octocode-research/src/utils/responseParser.ts +272 -0
- package/skills/octocode-research/src/utils/retry.ts +280 -0
- package/skills/octocode-research/src/utils/routeFactory.ts +117 -0
- package/skills/octocode-research/src/utils/url.ts +20 -0
- package/skills/octocode-research/src/validation/httpPreprocess.ts +155 -0
- package/skills/octocode-research/src/validation/index.ts +2 -0
- package/skills/octocode-research/src/validation/schemas.ts +578 -0
- package/skills/octocode-research/src/validation/toolCallSchema.ts +132 -0
- package/skills/octocode-research/tsconfig.json +21 -0
- package/skills/octocode-research/tsdown.config.ts +42 -0
- package/skills/octocode-research/vitest.config.ts +20 -0
- package/skills/octocode-researcher/SKILL.md +461 -0
- package/skills/octocode-researcher/references/fallbacks.md +120 -0
- package/skills/{octocode-local-search → octocode-researcher}/references/tool-reference.md +132 -49
- package/skills/{octocode-local-search → octocode-researcher}/references/workflow-patterns.md +204 -4
- package/skills/octocode-rfc-generator/SKILL.md +223 -0
- package/skills/octocode-rfc-generator/references/rfc-template.md +193 -0
- package/skills/octocode-roast/SKILL.md +63 -21
- package/skills/octocode-implement/SKILL.md +0 -293
- package/skills/octocode-implement/references/execution-phases.md +0 -317
- package/skills/octocode-implement/references/tool-reference.md +0 -403
- package/skills/octocode-implement/references/workflow-patterns.md +0 -385
- package/skills/octocode-local-search/SKILL.md +0 -449
- package/skills/octocode-pr-review/SKILL.md +0 -391
- package/skills/octocode-pr-review/references/domain-reviewers.md +0 -105
- package/skills/octocode-pr-review/references/execution-lifecycle.md +0 -116
- package/skills/octocode-pr-review/references/research-flows.md +0 -75
- package/skills/octocode-research/references/tool-reference.md +0 -304
- package/skills/octocode-research/references/workflow-patterns.md +0 -325
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Tools Reference
|
|
2
2
|
|
|
3
|
-
Complete parameter reference for Octocode Local
|
|
3
|
+
Complete parameter reference for Octocode tools (Local + External).
|
|
4
4
|
|
|
5
5
|
**Required Fields (ALL queries)**: `mainResearchGoal`, `researchGoal`, `reasoning`
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
+
# Part 1: Local Tools
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
9
13
|
## localViewStructure
|
|
10
14
|
|
|
11
15
|
Explore local directory structure with filtering and sorting.
|
|
@@ -257,72 +261,151 @@ Parallelize independent searches (max 5 queries per call):
|
|
|
257
261
|
|
|
258
262
|
---
|
|
259
263
|
|
|
260
|
-
|
|
264
|
+
# Part 2: External Tools (GitHub & Packages)
|
|
265
|
+
|
|
266
|
+
## githubSearchCode
|
|
267
|
+
|
|
268
|
+
Search code across GitHub repositories.
|
|
269
|
+
|
|
270
|
+
```typescript
|
|
271
|
+
{
|
|
272
|
+
query: string; // Search query (required) — GitHub code search syntax
|
|
273
|
+
owner?: string; // Filter by repo owner
|
|
274
|
+
repo?: string; // Filter by repo name (requires owner)
|
|
275
|
+
language?: string; // Filter by language
|
|
276
|
+
path?: string; // Filter by file path
|
|
277
|
+
extension?: string; // Filter by file extension
|
|
278
|
+
filename?: string; // Filter by filename
|
|
279
|
+
resultsPerPage?: number; // Results per page
|
|
280
|
+
pageNumber?: number; // Page number
|
|
281
|
+
}
|
|
282
|
+
```
|
|
261
283
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
| Path not found | Verify with `localViewStructure` first |
|
|
268
|
-
| Path is directory | Use `localViewStructure` instead |
|
|
269
|
-
| .gitignore blocking | Use `noIgnore: true` (for node_modules) |
|
|
270
|
-
| Special chars in pattern | Use `fixedString: true` |
|
|
284
|
+
**Tips:**
|
|
285
|
+
- Narrow to `owner`/`repo` ASAP for faster, more relevant results
|
|
286
|
+
- Use `path` to scope searches (e.g., `path:src/auth`)
|
|
287
|
+
- Use `extension` to filter by file type
|
|
288
|
+
- Combine with `githubGetFileContent` to read matched files
|
|
271
289
|
|
|
272
290
|
---
|
|
273
291
|
|
|
274
|
-
##
|
|
292
|
+
## githubSearchRepositories
|
|
275
293
|
|
|
276
|
-
|
|
277
|
-
```json
|
|
278
|
-
// Step 1: Find files
|
|
279
|
-
{ "pattern": "useAuth", "path": "src", "filesOnly": true }
|
|
294
|
+
Find repositories by topic, language, stars.
|
|
280
295
|
|
|
281
|
-
|
|
282
|
-
{
|
|
296
|
+
```typescript
|
|
297
|
+
{
|
|
298
|
+
query: string; // Search query (required)
|
|
299
|
+
language?: string; // Filter by language
|
|
300
|
+
sort?: "stars" | "forks" | "updated"; // Sort order
|
|
301
|
+
order?: "asc" | "desc";
|
|
302
|
+
resultsPerPage?: number;
|
|
303
|
+
pageNumber?: number;
|
|
304
|
+
}
|
|
283
305
|
```
|
|
284
306
|
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
307
|
+
**Tips:**
|
|
308
|
+
- Use for discovering repos when you don't know the exact name
|
|
309
|
+
- Sort by `stars` for popular/battle-tested repos
|
|
310
|
+
- Sort by `updated` for actively maintained repos
|
|
311
|
+
|
|
312
|
+
---
|
|
313
|
+
|
|
314
|
+
## githubViewRepoStructure
|
|
289
315
|
|
|
290
|
-
|
|
291
|
-
|
|
316
|
+
Explore external repo directory layout.
|
|
317
|
+
|
|
318
|
+
```typescript
|
|
319
|
+
{
|
|
320
|
+
owner: string; // Repo owner (required)
|
|
321
|
+
repo: string; // Repo name (required)
|
|
322
|
+
branch?: string; // Branch name (default: main/master)
|
|
323
|
+
path?: string; // Sub-path within repo
|
|
324
|
+
depth?: number; // Directory depth (1-5)
|
|
325
|
+
}
|
|
292
326
|
```
|
|
293
327
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
328
|
+
**Tips:**
|
|
329
|
+
- Use BEFORE `githubGetFileContent` to understand layout
|
|
330
|
+
- Start `depth: 1` at root, drill with `depth: 2` on specific dirs
|
|
331
|
+
- Identify `src/`, `lib/`, `packages/` for entry points
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
## githubGetFileContent
|
|
298
336
|
|
|
299
|
-
|
|
300
|
-
|
|
337
|
+
Read files from external GitHub repos.
|
|
338
|
+
|
|
339
|
+
```typescript
|
|
340
|
+
{
|
|
341
|
+
owner: string; // Repo owner (required)
|
|
342
|
+
repo: string; // Repo name (required)
|
|
343
|
+
path: string; // File path (required)
|
|
344
|
+
branch?: string; // Branch name
|
|
345
|
+
matchString?: string; // Pattern to find within file
|
|
346
|
+
matchStringContextLines?: number; // Lines around match
|
|
347
|
+
}
|
|
301
348
|
```
|
|
302
349
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
350
|
+
**Tips:**
|
|
351
|
+
- Use `matchString` for large files (avoid reading entire file)
|
|
352
|
+
- Use LAST in the external flow — after search/structure exploration
|
|
353
|
+
- Generate full GitHub URLs for references: `https://github.com/{owner}/{repo}/blob/{branch}/{path}`
|
|
307
354
|
|
|
308
|
-
|
|
309
|
-
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
## githubSearchPullRequests
|
|
310
358
|
|
|
311
|
-
|
|
312
|
-
|
|
359
|
+
Search PRs by query, state, labels.
|
|
360
|
+
|
|
361
|
+
```typescript
|
|
362
|
+
{
|
|
363
|
+
query: string; // Search query (required)
|
|
364
|
+
owner?: string; // Repo owner
|
|
365
|
+
repo?: string; // Repo name
|
|
366
|
+
state?: "open" | "closed" | "merged";
|
|
367
|
+
sort?: "created" | "updated" | "comments";
|
|
368
|
+
order?: "asc" | "desc";
|
|
369
|
+
resultsPerPage?: number;
|
|
370
|
+
pageNumber?: number;
|
|
371
|
+
}
|
|
313
372
|
```
|
|
314
373
|
|
|
374
|
+
**Tips:**
|
|
375
|
+
- Use `state: "merged"` for understanding change history
|
|
376
|
+
- Combine with `githubGetFileContent` to read files from specific commits
|
|
377
|
+
- Narrow to `owner`/`repo` for relevant results
|
|
378
|
+
|
|
315
379
|
---
|
|
316
380
|
|
|
317
|
-
##
|
|
381
|
+
## packageSearch
|
|
318
382
|
|
|
319
|
-
|
|
320
|
-
|-----|------|
|
|
321
|
-
| `fullContent: true` on large files | `matchString` or `charLength` |
|
|
322
|
-
| Shell `grep` command | `localSearchCode` |
|
|
323
|
-
| Shell `find` command | `localFindFiles` |
|
|
324
|
-
| Shell `cat` command | `localGetFileContent` |
|
|
325
|
-
| Reading entire codebase | Targeted discovery then content |
|
|
326
|
-
| Ignoring hints | Follow hints for next steps |
|
|
327
|
-
| Hard-coded paths | Verify with `localViewStructure` |
|
|
383
|
+
Search npm/PyPI packages by name or keyword.
|
|
328
384
|
|
|
385
|
+
```typescript
|
|
386
|
+
{
|
|
387
|
+
query: string; // Package name or keyword (required)
|
|
388
|
+
registry?: "npm" | "pypi"; // Registry to search (default: npm)
|
|
389
|
+
resultsPerPage?: number;
|
|
390
|
+
}
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
**Tips:**
|
|
394
|
+
- Use to find repo URL for a package, then follow with `githubViewRepoStructure`
|
|
395
|
+
- Returns package metadata: name, description, version, repo URL, downloads
|
|
396
|
+
- Use FIRST when investigating an external dependency
|
|
397
|
+
|
|
398
|
+
---
|
|
399
|
+
|
|
400
|
+
## Query Batching (External)
|
|
401
|
+
|
|
402
|
+
GitHub tools support batching (max 3 queries per call):
|
|
403
|
+
|
|
404
|
+
```json
|
|
405
|
+
{
|
|
406
|
+
"queries": [
|
|
407
|
+
{ "query": "useState", "owner": "facebook", "repo": "react" },
|
|
408
|
+
{ "query": "useEffect", "owner": "facebook", "repo": "react" }
|
|
409
|
+
]
|
|
410
|
+
}
|
|
411
|
+
```
|
package/skills/{octocode-local-search → octocode-researcher}/references/workflow-patterns.md
RENAMED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
# Workflow Patterns
|
|
2
2
|
|
|
3
|
-
Common research flows for local code exploration.
|
|
3
|
+
Common research flows for local and external code exploration.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Part 1: Local Patterns
|
|
4
8
|
|
|
5
9
|
---
|
|
6
10
|
|
|
@@ -355,7 +359,7 @@ localSearchCode(error message) → trace throw/catch → find root cause
|
|
|
355
359
|
|
|
356
360
|
---
|
|
357
361
|
|
|
358
|
-
## Anti-Patterns
|
|
362
|
+
## Anti-Patterns (Local)
|
|
359
363
|
|
|
360
364
|
| Bad | Good |
|
|
361
365
|
|-----|------|
|
|
@@ -370,9 +374,194 @@ localSearchCode(error message) → trace throw/catch → find root cause
|
|
|
370
374
|
|
|
371
375
|
---
|
|
372
376
|
|
|
373
|
-
|
|
377
|
+
# Part 2: External Patterns
|
|
378
|
+
|
|
379
|
+
## Pattern 11: Package Discovery
|
|
380
|
+
|
|
381
|
+
**Use when**: Finding the right library, comparing packages, evaluating options.
|
|
382
|
+
|
|
383
|
+
```
|
|
384
|
+
packageSearch(keyword) → githubViewRepoStructure → githubGetFileContent(README)
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
**Steps:**
|
|
388
|
+
1. **Search**: Find packages matching use case
|
|
389
|
+
2. **Evaluate**: Check stars, downloads, last update
|
|
390
|
+
3. **Explore**: View repo structure of top candidates
|
|
391
|
+
4. **Read**: Check README, examples, source quality
|
|
392
|
+
|
|
393
|
+
**Example Flow:**
|
|
394
|
+
```json
|
|
395
|
+
// 1. Search packages
|
|
396
|
+
{ "query": "rate-limiter express", "registry": "npm" }
|
|
397
|
+
|
|
398
|
+
// 2. View top result repo
|
|
399
|
+
{ "owner": "express-rate-limit", "repo": "express-rate-limit", "depth": 2 }
|
|
374
400
|
|
|
375
|
-
|
|
401
|
+
// 3. Read README
|
|
402
|
+
{ "owner": "express-rate-limit", "repo": "express-rate-limit", "path": "README.md" }
|
|
403
|
+
|
|
404
|
+
// 4. Read source
|
|
405
|
+
{ "owner": "express-rate-limit", "repo": "express-rate-limit", "path": "src/lib.ts", "matchString": "export" }
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
**Pitfall**: Stopping at npm metadata → always read the actual source.
|
|
409
|
+
|
|
410
|
+
**Success Criteria**: Found best package with evidence (stars, maintenance, API quality).
|
|
411
|
+
|
|
412
|
+
---
|
|
413
|
+
|
|
414
|
+
## Pattern 12: External Repo Exploration
|
|
415
|
+
|
|
416
|
+
**Use when**: Understanding how another project implements something.
|
|
417
|
+
|
|
418
|
+
```
|
|
419
|
+
githubSearchRepositories → githubViewRepoStructure → githubSearchCode → githubGetFileContent
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
**Steps:**
|
|
423
|
+
1. **Find Repo**: Search by topic/keyword or use known repo
|
|
424
|
+
2. **Map Structure**: View repo layout
|
|
425
|
+
3. **Search Pattern**: Find the specific implementation
|
|
426
|
+
4. **Read Source**: Get implementation details
|
|
427
|
+
|
|
428
|
+
**Example Flow:**
|
|
429
|
+
```json
|
|
430
|
+
// 1. Find repo (skip if known)
|
|
431
|
+
{ "query": "nextjs authentication", "sort": "stars" }
|
|
432
|
+
|
|
433
|
+
// 2. Map structure
|
|
434
|
+
{ "owner": "vercel", "repo": "next.js", "depth": 1 }
|
|
435
|
+
|
|
436
|
+
// 3. Search for auth patterns
|
|
437
|
+
{ "query": "getServerSession", "owner": "vercel", "repo": "next.js", "path": "packages" }
|
|
438
|
+
|
|
439
|
+
// 4. Read implementation
|
|
440
|
+
{ "owner": "vercel", "repo": "next.js", "path": "packages/next/src/server/auth.ts", "matchString": "getServerSession" }
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
**Pitfall**: Searching too broadly → narrow to specific owner/repo ASAP.
|
|
444
|
+
|
|
445
|
+
**Success Criteria**: Found specific implementation with line references.
|
|
446
|
+
|
|
447
|
+
---
|
|
448
|
+
|
|
449
|
+
## Pattern 13: Dependency Source Investigation
|
|
450
|
+
|
|
451
|
+
**Use when**: Need to understand how an imported library works internally.
|
|
452
|
+
|
|
453
|
+
```
|
|
454
|
+
packageSearch → get repo URL → githubViewRepoStructure → githubSearchCode → githubGetFileContent
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
**Steps:**
|
|
458
|
+
1. **Find Package**: Get repo URL from package metadata
|
|
459
|
+
2. **Map Layout**: Understand library structure
|
|
460
|
+
3. **Search**: Find the exported function/class
|
|
461
|
+
4. **Read**: Get the implementation
|
|
462
|
+
|
|
463
|
+
**Example Flow:**
|
|
464
|
+
```json
|
|
465
|
+
// 1. Find package repo URL
|
|
466
|
+
{ "query": "zod", "registry": "npm" }
|
|
467
|
+
|
|
468
|
+
// 2. View structure
|
|
469
|
+
{ "owner": "colinhacks", "repo": "zod", "depth": 2 }
|
|
470
|
+
|
|
471
|
+
// 3. Search for specific feature
|
|
472
|
+
{ "query": "z.object", "owner": "colinhacks", "repo": "zod", "path": "src" }
|
|
473
|
+
|
|
474
|
+
// 4. Read implementation
|
|
475
|
+
{ "owner": "colinhacks", "repo": "zod", "path": "src/types.ts", "matchString": "object(" }
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
**Pitfall**: Only reading installed node_modules version → canonical GitHub source shows latest intent.
|
|
479
|
+
|
|
480
|
+
**Success Criteria**: Understand how the dependency works at the source level.
|
|
481
|
+
|
|
482
|
+
---
|
|
483
|
+
|
|
484
|
+
## Pattern 14: PR Archaeology
|
|
485
|
+
|
|
486
|
+
**Use when**: Understanding why code changed, tracing regression origins, reviewing decisions.
|
|
487
|
+
|
|
488
|
+
```
|
|
489
|
+
githubSearchPullRequests → read PR files → trace changes
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
**Steps:**
|
|
493
|
+
1. **Search PRs**: Find merged PRs matching the topic
|
|
494
|
+
2. **Read Context**: Get PR description and changed files
|
|
495
|
+
3. **Trace Changes**: Read specific files at that point in time
|
|
496
|
+
|
|
497
|
+
**Example Flow:**
|
|
498
|
+
```json
|
|
499
|
+
// 1. Find relevant PRs
|
|
500
|
+
{ "query": "fix auth token refresh", "owner": "myorg", "repo": "backend", "state": "merged" }
|
|
501
|
+
|
|
502
|
+
// 2. Read changed files from PR
|
|
503
|
+
{ "owner": "myorg", "repo": "backend", "path": "src/auth/tokenRefresh.ts", "matchString": "refreshToken" }
|
|
504
|
+
```
|
|
505
|
+
|
|
506
|
+
**Pitfall**: Reading only PR titles → read the actual changed files.
|
|
507
|
+
|
|
508
|
+
**Success Criteria**: Understood the change motivation and implementation.
|
|
509
|
+
|
|
510
|
+
---
|
|
511
|
+
|
|
512
|
+
## Pattern 15: Cross-Boundary Research (Local + External)
|
|
513
|
+
|
|
514
|
+
**Use when**: Local code uses external library, need to understand both sides.
|
|
515
|
+
|
|
516
|
+
```
|
|
517
|
+
LOCAL: localSearchCode(import) → lspGotoDefinition
|
|
518
|
+
EXTERNAL: packageSearch → githubSearchCode → githubGetFileContent
|
|
519
|
+
MERGE: Compare and document
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
**Steps:**
|
|
523
|
+
1. **Local**: Find how the dependency is used locally
|
|
524
|
+
2. **External**: Find how the dependency works at source
|
|
525
|
+
3. **Merge**: Compare usage with intended API
|
|
526
|
+
|
|
527
|
+
**Example Flow:**
|
|
528
|
+
```json
|
|
529
|
+
// LOCAL — find usage
|
|
530
|
+
{ "pattern": "import.*from 'next-auth'", "path": "src", "filesOnly": true }
|
|
531
|
+
// → then lspGotoDefinition on the import, lspFindReferences for all usages
|
|
532
|
+
|
|
533
|
+
// EXTERNAL — find source
|
|
534
|
+
{ "query": "next-auth", "registry": "npm" }
|
|
535
|
+
// → then githubViewRepoStructure + githubSearchCode + githubGetFileContent
|
|
536
|
+
|
|
537
|
+
// MERGE: Is local usage correct? Are there missed features? Breaking changes?
|
|
538
|
+
```
|
|
539
|
+
|
|
540
|
+
**Pitfall**: Researching one side only → always trace both local usage AND external implementation.
|
|
541
|
+
|
|
542
|
+
**Success Criteria**: Understand both sides and their interaction.
|
|
543
|
+
|
|
544
|
+
---
|
|
545
|
+
|
|
546
|
+
## Anti-Patterns (External)
|
|
547
|
+
|
|
548
|
+
| Bad | Good |
|
|
549
|
+
|-----|------|
|
|
550
|
+
| **`gh api` for GitHub** | **`githubSearchCode` / `githubGetFileContent`** |
|
|
551
|
+
| **`WebFetch` for GitHub** | **Octocode GitHub tools** |
|
|
552
|
+
| **`npm search` in shell** | **`packageSearch`** |
|
|
553
|
+
| **Guessing owner/repo** | **`packageSearch` or `githubSearchRepositories` first** |
|
|
554
|
+
| **Reading entire large files** | **`matchString` targeting** |
|
|
555
|
+
| **Broad GitHub search** | **Narrow to owner/repo ASAP** |
|
|
556
|
+
| **Skipping structure** | **`githubViewRepoStructure` before reading** |
|
|
557
|
+
|
|
558
|
+
---
|
|
559
|
+
|
|
560
|
+
# Checklists
|
|
561
|
+
|
|
562
|
+
## Local Research Checklist
|
|
563
|
+
|
|
564
|
+
Before completing local research:
|
|
376
565
|
|
|
377
566
|
- [ ] **Goal defined?** (Atomic question)
|
|
378
567
|
- [ ] **Code evidence found?** (Line numbers/paths)
|
|
@@ -381,3 +570,14 @@ Before completing research:
|
|
|
381
570
|
- [ ] **Gaps documented?**
|
|
382
571
|
- [ ] **User checkpoint offered?** (Continue/Save)
|
|
383
572
|
|
|
573
|
+
## External Research Checklist
|
|
574
|
+
|
|
575
|
+
Before completing external research:
|
|
576
|
+
|
|
577
|
+
- [ ] **Repo/package found via search?** (Not guessed)
|
|
578
|
+
- [ ] **Structure explored first?** (`githubViewRepoStructure`)
|
|
579
|
+
- [ ] **References include full GitHub URLs?** (With line numbers)
|
|
580
|
+
- [ ] **Source verified?** (Read actual code, not just metadata)
|
|
581
|
+
- [ ] **Gaps documented?**
|
|
582
|
+
- [ ] **User checkpoint offered?** (Continue/Save)
|
|
583
|
+
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: octocode-rfc-generator
|
|
3
|
+
description: Research-driven RFC and design document generator. Use when the user asks to "create an RFC", "write a design doc", "propose a migration", "how should we architect X", "evaluate options for X", "write a technical proposal", "compare approaches", or needs a technical decision document before coding. Outputs a validated RFC with research evidence, alternatives, recommendation, and implementation plan. For planning with implementation, use octocode-plan instead.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# RFC Agent — Research, Reason, Plan
|
|
7
|
+
|
|
8
|
+
`UNDERSTAND` → `RESEARCH` → `DRAFT RFC` → `VALIDATE` → `DELIVER`
|
|
9
|
+
|
|
10
|
+
**Output**: `.octocode/rfc/RFC-{meaningful-name}.md`
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Identity & Principles
|
|
15
|
+
|
|
16
|
+
<agent_identity>
|
|
17
|
+
**Role**: RFC Agent — Technical Decision Maker.
|
|
18
|
+
**Objective**: Research deeply, reason about alternatives, write a validated RFC, then produce an implementation plan anchored to it.
|
|
19
|
+
**Core loop**: Understand → Research → Write evidence-based RFC → Validate → Deliver.
|
|
20
|
+
|
|
21
|
+
**Principles**:
|
|
22
|
+
- **Big picture first** — understand the full system flow before zooming into details. Every decision affects something upstream or downstream.
|
|
23
|
+
- **Never hallucinate** — if you don't know, research. If research is empty, say "unknown" — never fabricate evidence, references, or claims.
|
|
24
|
+
- **Architecture over patching** — solve the root cause, not the symptom. Ask "why does this problem exist?" before "how do I fix it?"
|
|
25
|
+
- **Simple over clever** — the best solution is the simplest one that solves the problem. If the design needs a paragraph to explain a single decision, it's too complex.
|
|
26
|
+
- **Research before writing** — no RFC content without evidence. Every claim traces to research.
|
|
27
|
+
- **Alternatives are mandatory** — never just "do X" (npm: "even if it seems like a stretch").
|
|
28
|
+
- **Motivation is king** — most important section (Rust, React, npm agree).
|
|
29
|
+
- **Drawbacks build trust** — honest cost analysis makes proposals credible.
|
|
30
|
+
- **Quality over speed** — a clean RFC prevents months of rework. But timely over perfect — a good RFC now beats a perfect one never.
|
|
31
|
+
- **No time estimates** — never provide duration estimates.
|
|
32
|
+
- **Ask when stuck** — if uncertain, research more or ask user.
|
|
33
|
+
</agent_identity>
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Setup
|
|
38
|
+
|
|
39
|
+
<mcp_discovery>
|
|
40
|
+
Before starting, detect available research tools.
|
|
41
|
+
|
|
42
|
+
**Check**: Is `octocode-mcp` available as an MCP server?
|
|
43
|
+
Look for Octocode MCP tools (e.g., `localSearchCode`, `lspGotoDefinition`, `githubSearchCode`, `packageSearch`).
|
|
44
|
+
|
|
45
|
+
**If Octocode MCP exists but local tools return no results**:
|
|
46
|
+
> Suggest: "For local codebase research, add `ENABLE_LOCAL=true` to your Octocode MCP config."
|
|
47
|
+
|
|
48
|
+
**If Octocode MCP is not installed**:
|
|
49
|
+
> Suggest: "Install Octocode MCP for deeper research:
|
|
50
|
+
> ```json
|
|
51
|
+
> {
|
|
52
|
+
> "mcpServers": {
|
|
53
|
+
> "octocode": {
|
|
54
|
+
> "command": "npx",
|
|
55
|
+
> "args": ["-y", "octocode-mcp"],
|
|
56
|
+
> "env": {"ENABLE_LOCAL": "true"}
|
|
57
|
+
> }
|
|
58
|
+
> }
|
|
59
|
+
> }
|
|
60
|
+
> ```
|
|
61
|
+
> Then restart your editor."
|
|
62
|
+
|
|
63
|
+
Proceed with whatever tools are available — do not block on setup.
|
|
64
|
+
</mcp_discovery>
|
|
65
|
+
|
|
66
|
+
<tools>
|
|
67
|
+
**Local codebase** — use Octocode local search + LSP tools:
|
|
68
|
+
`localSearchCode`, `localViewStructure`, `localFindFiles`, `localGetFileContent`, `lspGotoDefinition`, `lspFindReferences`, `lspCallHierarchy`
|
|
69
|
+
|
|
70
|
+
**External research** — use Octocode external search tools:
|
|
71
|
+
`githubSearchCode`, `githubSearchRepositories`, `githubGetFileContent`, `githubSearchPullRequests`, `packageSearch`
|
|
72
|
+
|
|
73
|
+
The MCP server knows how to use these tools — just call them with your research goal.
|
|
74
|
+
|
|
75
|
+
**Delegation via skills** (when available):
|
|
76
|
+
|
|
77
|
+
| Need | Delegate to |
|
|
78
|
+
|------|-------------|
|
|
79
|
+
| Local codebase research | `octocode-researcher` skill (local track) |
|
|
80
|
+
| External research (GitHub, packages, PRs) | `octocode-researcher` skill (external track) |
|
|
81
|
+
</tools>
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Execution
|
|
86
|
+
|
|
87
|
+
### Phase 1: Understand
|
|
88
|
+
|
|
89
|
+
Clarify the problem before doing anything.
|
|
90
|
+
|
|
91
|
+
1. **What** is the problem? Define in 1-2 sentences.
|
|
92
|
+
2. **Why** does it need an RFC? (multiple valid approaches, broad impact, architecture decision, new technology)
|
|
93
|
+
3. **Who** is affected? (packages, services, teams)
|
|
94
|
+
4. **What** are the constraints? (tech stack, compatibility, performance)
|
|
95
|
+
5. Check `.octocode/context/context.md` for project context.
|
|
96
|
+
|
|
97
|
+
Present to user:
|
|
98
|
+
```
|
|
99
|
+
Problem: {statement}
|
|
100
|
+
Scope: {what's affected}
|
|
101
|
+
Constraints: {key constraints}
|
|
102
|
+
Proceed with research?
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
If problem is unclear → ask user. Do not proceed without clarity.
|
|
106
|
+
If this is a trivial single-file change → suggest skipping RFC, switch to plan mode directly.
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
### Phase 2: Research
|
|
111
|
+
|
|
112
|
+
Dual-track research using Octocode MCP tools.
|
|
113
|
+
|
|
114
|
+
**Track A — Local codebase**:
|
|
115
|
+
- How does the codebase handle this today?
|
|
116
|
+
- Which files, modules, packages are impacted?
|
|
117
|
+
- What patterns and abstractions exist?
|
|
118
|
+
- What dependencies are involved?
|
|
119
|
+
- Where does the current approach break down?
|
|
120
|
+
|
|
121
|
+
**Track B — External best practices** (GitHub + npm + web):
|
|
122
|
+
- How do major projects solve this? (GitHub repos, PRs)
|
|
123
|
+
- What packages/libraries exist? (npm, PyPI)
|
|
124
|
+
- What are known trade-offs and pitfalls?
|
|
125
|
+
- Any prior art or benchmarks?
|
|
126
|
+
|
|
127
|
+
**Which tracks to run**:
|
|
128
|
+
|
|
129
|
+
| Scenario | Tracks | Example |
|
|
130
|
+
|----------|--------|---------|
|
|
131
|
+
| Most RFCs | Both A + B in parallel | "Add caching layer" — need local API flow + external cache patterns |
|
|
132
|
+
| Internal refactor | A only (skip B) | "Move auth logic from service X to shared module Y" |
|
|
133
|
+
| Greenfield, no existing code | B only (skip A) | "Choose a database for the new service" |
|
|
134
|
+
| Technology evaluation | B heavy, A light | "Should we use Redis or Memcached?" |
|
|
135
|
+
|
|
136
|
+
When both tracks run, spawn them as parallel agents. When comparing multiple technologies, spawn separate agents per domain.
|
|
137
|
+
|
|
138
|
+
**Quality bar**:
|
|
139
|
+
- Every finding is a **code reference** (file + line) or a **URL** (docs, blog, benchmark)
|
|
140
|
+
- Each reference explains **how it supports the RFC thesis** — not just "see this" but "proves X because Y"
|
|
141
|
+
- Key claims verified with a second source
|
|
142
|
+
|
|
143
|
+
When local and external findings disagree: local conventions win → official external docs → community patterns. If conflict persists → present both in RFC with trade-offs.
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
### Phase 3: Draft RFC
|
|
148
|
+
|
|
149
|
+
Write the RFC using the template in `references/rfc-template.md`. Core sections:
|
|
150
|
+
|
|
151
|
+
| # | Section | Purpose |
|
|
152
|
+
|---|---------|----------|
|
|
153
|
+
| 1 | **Summary** | One paragraph — reader understands the core idea |
|
|
154
|
+
| 2 | **Motivation** | Problem, current state (file refs), evidence, impact. Most important section. |
|
|
155
|
+
| 3 | **Guide-Level Explanation** | Teach it as if already implemented — examples, naming/terminology, adoption strategy, docs impact |
|
|
156
|
+
| 4 | **Reference-Level Explanation** | Technical design, diagrams, API changes, corner cases, compatibility & adoption |
|
|
157
|
+
| 5 | **Drawbacks** | Honest costs — simpler alternatives?, breaking changes, blast radius |
|
|
158
|
+
| 6 | **Rationale & Alternatives** | Minimum 2 alternatives + comparison matrix + trade-offs |
|
|
159
|
+
| 7 | **Prior Art** | What exists already — lessons from others |
|
|
160
|
+
| 8 | **Unresolved Questions** | Open questions: before acceptance / during implementation / out of scope / bikeshedding |
|
|
161
|
+
| 9 | **References** | Local (`file:line`) + External (full URLs) |
|
|
162
|
+
| 10 | **Implementation Plan** | Phased steps, risk mitigations, testing strategy, rollout plan |
|
|
163
|
+
|
|
164
|
+
Every claim traces to research. No unsubstantiated recommendations.
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
### Phase 4: Validate
|
|
169
|
+
|
|
170
|
+
Self-review the RFC. Check:
|
|
171
|
+
|
|
172
|
+
- [ ] Problem statement is specific — a reader understands _why_ without prior context
|
|
173
|
+
- [ ] Current state documented with actual file references from research
|
|
174
|
+
- [ ] At least 2 alternatives with evidence-backed trade-offs
|
|
175
|
+
- [ ] Recommendation follows logically from the comparison
|
|
176
|
+
- [ ] Drawbacks are honest, not hand-waved
|
|
177
|
+
- [ ] Risks have mitigations
|
|
178
|
+
- [ ] All references are real (file:line or full URLs from research)
|
|
179
|
+
- [ ] No claims without evidence — if you can't prove it, move it to Unresolved Questions
|
|
180
|
+
- [ ] Implementation steps ordered by dependency, not preference
|
|
181
|
+
|
|
182
|
+
**Evidence discipline**: Every claim needs a **code reference** (`file:line` with full URL) or a **URL** (docs, benchmark, blog). Each must explain **how it supports the RFC thesis** — not just "see this" but "proves X because Y".
|
|
183
|
+
|
|
184
|
+
**Reasoning traps to watch for**:
|
|
185
|
+
- **Anchoring** — Don't fall in love with your first idea. Research alternatives with equal rigor.
|
|
186
|
+
- **Confirmation bias** — Actively search for evidence AGAINST your recommendation.
|
|
187
|
+
- **Sunk cost** — If research reveals your initial approach is wrong, pivot.
|
|
188
|
+
- **False dichotomy** — "X or Y" is rarely complete. Look for hybrids, phased rollouts, or "do nothing".
|
|
189
|
+
- **Handwaving risks** — "Low risk" without evidence = unknown risk.
|
|
190
|
+
- **Appeal to popularity** — "Everyone uses X" is not a reason. WHY do they use it, and does that reason apply here?
|
|
191
|
+
|
|
192
|
+
If any check fails → fix before presenting.
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
### Phase 5: Deliver
|
|
197
|
+
|
|
198
|
+
Present the RFC summary to user:
|
|
199
|
+
```
|
|
200
|
+
RFC: {Title}
|
|
201
|
+
Recommendation: {1-2 sentences}
|
|
202
|
+
Alternatives: {count} considered
|
|
203
|
+
Risk: {Low|Medium|High}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Then ask: **"Do you want to start implementing this RFC?"**
|
|
207
|
+
|
|
208
|
+
- **Yes** → Save to `.octocode/rfc/RFC-{meaningful-name}.md`, then switch to the agent's default plan mode to execute the Implementation Plan.
|
|
209
|
+
- **No** → Save to `.octocode/rfc/RFC-{meaningful-name}.md`.
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## Error Recovery
|
|
214
|
+
|
|
215
|
+
| Situation | Action |
|
|
216
|
+
|-----------|--------|
|
|
217
|
+
| Research returns empty | Broaden scope, try semantic variants |
|
|
218
|
+
| No external patterns | Ask user for known references |
|
|
219
|
+
| Greenfield (no local code) | Focus external research, note "no existing implementation" |
|
|
220
|
+
| Conflicting approaches | Present both as alternatives |
|
|
221
|
+
| Blocked after 2 attempts | Summarize → ask user |
|
|
222
|
+
| Scope too broad | Suggest splitting into multiple RFCs |
|
|
223
|
+
|