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,304 +0,0 @@
|
|
|
1
|
-
# Tool Reference
|
|
2
|
-
|
|
3
|
-
Complete parameter reference for Octocode MCP tools.
|
|
4
|
-
|
|
5
|
-
**Required Fields (ALL queries)**: `mainResearchGoal`, `researchGoal`, `reasoning`
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Local Tools
|
|
10
|
-
|
|
11
|
-
> **Priority**: ALWAYS prefer local tools over shell commands (`grep`, `ls`, `find`, `cat`)
|
|
12
|
-
|
|
13
|
-
### localViewStructure
|
|
14
|
-
|
|
15
|
-
Explore local directory structure with filtering and sorting.
|
|
16
|
-
|
|
17
|
-
```typescript
|
|
18
|
-
{
|
|
19
|
-
path: string; // Directory path (required)
|
|
20
|
-
depth?: number; // 1-5 (default 1)
|
|
21
|
-
entriesPerPage?: number; // ≤20
|
|
22
|
-
entryPageNumber?: number; // Pagination
|
|
23
|
-
details?: boolean; // Show file sizes
|
|
24
|
-
hidden?: boolean; // Include dotfiles
|
|
25
|
-
extensions?: string[]; // Filter by extension
|
|
26
|
-
pattern?: string; // Filter by name pattern
|
|
27
|
-
filesOnly?: boolean;
|
|
28
|
-
directoriesOnly?: boolean;
|
|
29
|
-
sortBy?: "name" | "size" | "time" | "extension";
|
|
30
|
-
}
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
**Tips:**
|
|
34
|
-
- Start `depth: 1` at root, drill with `depth: 2` on specific dirs
|
|
35
|
-
- Use `details: true` to see file sizes
|
|
36
|
-
- Check `packages/` or `apps/` for monorepos
|
|
37
|
-
|
|
38
|
-
### localSearchCode
|
|
39
|
-
|
|
40
|
-
Fast pattern search with discovery mode and pagination.
|
|
41
|
-
|
|
42
|
-
```typescript
|
|
43
|
-
{
|
|
44
|
-
pattern: string; // Search pattern (required)
|
|
45
|
-
path: string; // Search root (required)
|
|
46
|
-
filesOnly?: boolean; // Discovery mode - just list files
|
|
47
|
-
type?: string; // "ts", "py", "js" etc
|
|
48
|
-
include?: string[]; // Glob patterns to include
|
|
49
|
-
exclude?: string[]; // Glob patterns to exclude
|
|
50
|
-
excludeDir?: string[]; // Directories to skip
|
|
51
|
-
noIgnore?: boolean; // Search inside node_modules
|
|
52
|
-
matchesPerPage?: number; // 1-100
|
|
53
|
-
filesPerPage?: number; // ≤20
|
|
54
|
-
filePageNumber?: number; // Pagination
|
|
55
|
-
contextLines?: number; // Lines around match
|
|
56
|
-
caseSensitive?: boolean;
|
|
57
|
-
wholeWord?: boolean;
|
|
58
|
-
multiline?: boolean;
|
|
59
|
-
}
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
**Tips:**
|
|
63
|
-
- Start with `filesOnly: true` for discovery (fast, token-efficient)
|
|
64
|
-
- Use `noIgnore: true` to search inside `node_modules`
|
|
65
|
-
- Use `type` for common file extensions
|
|
66
|
-
- Returns `location.charOffset/charLength` as BYTE offsets (ripgrep)
|
|
67
|
-
|
|
68
|
-
**node_modules Example:**
|
|
69
|
-
```typescript
|
|
70
|
-
{ pattern: "createContext", path: "node_modules/react", noIgnore: true }
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### localGetFileContent
|
|
74
|
-
|
|
75
|
-
Read local file content with targeted extraction.
|
|
76
|
-
|
|
77
|
-
```typescript
|
|
78
|
-
{
|
|
79
|
-
path: string; // File path (required)
|
|
80
|
-
// Choose ONE strategy:
|
|
81
|
-
matchString?: string; // Pattern to find
|
|
82
|
-
matchStringContextLines?: number; // 1-50 lines of context
|
|
83
|
-
matchStringIsRegex?: boolean;
|
|
84
|
-
matchStringCaseSensitive?: boolean;
|
|
85
|
-
charOffset?: number; // BYTE offset for pagination
|
|
86
|
-
charLength?: number; // BYTES to read (1000-4000 recommended)
|
|
87
|
-
startLine?: number; // Line range
|
|
88
|
-
endLine?: number;
|
|
89
|
-
fullContent?: boolean; // Small files only
|
|
90
|
-
}
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
**Tips:**
|
|
94
|
-
- Prefer `matchString` over `fullContent` for token efficiency
|
|
95
|
-
- `charOffset`/`charLength` are BYTES, not characters
|
|
96
|
-
- Use `charLength: 2000-4000` for pagination windows
|
|
97
|
-
- Large files require `charLength` or `matchString`
|
|
98
|
-
|
|
99
|
-
### localFindFiles
|
|
100
|
-
|
|
101
|
-
Find files by metadata (name, time, size, permissions).
|
|
102
|
-
|
|
103
|
-
```typescript
|
|
104
|
-
{
|
|
105
|
-
path: string; // Search root (required)
|
|
106
|
-
name?: string; // "*.ts" pattern
|
|
107
|
-
iname?: string; // Case-insensitive name
|
|
108
|
-
names?: string[]; // Multiple patterns
|
|
109
|
-
type?: "f" | "d" | "l"; // file/directory/link
|
|
110
|
-
modifiedWithin?: string; // "7d", "2h", "30m"
|
|
111
|
-
modifiedBefore?: string;
|
|
112
|
-
sizeGreater?: string; // "10M", "1K"
|
|
113
|
-
sizeLess?: string;
|
|
114
|
-
excludeDir?: string[];
|
|
115
|
-
maxDepth?: number; // 1-10
|
|
116
|
-
filesPerPage?: number; // ≤20
|
|
117
|
-
filePageNumber?: number;
|
|
118
|
-
}
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
**Tips:**
|
|
122
|
-
- Results sorted by modified time (most recent first)
|
|
123
|
-
- Use `modifiedWithin: "7d"` to find recent changes
|
|
124
|
-
- Combine with `localGetFileContent` for content
|
|
125
|
-
|
|
126
|
-
---
|
|
127
|
-
|
|
128
|
-
## GitHub Tools
|
|
129
|
-
|
|
130
|
-
### packageSearch
|
|
131
|
-
|
|
132
|
-
Find package repo location from npm/PyPI.
|
|
133
|
-
|
|
134
|
-
```typescript
|
|
135
|
-
{
|
|
136
|
-
name: string; // Package name (required)
|
|
137
|
-
ecosystem: "npm" | "python"; // Registry (required)
|
|
138
|
-
searchLimit?: number; // 1-10 (npm only)
|
|
139
|
-
npmFetchMetadata?: boolean; // Get full npm metadata
|
|
140
|
-
pythonFetchMetadata?: boolean; // Get full PyPI metadata
|
|
141
|
-
}
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
**Tips:**
|
|
145
|
-
- Use `searchLimit: 1` if package name is known
|
|
146
|
-
- Python always returns 1 result (PyPI limitation)
|
|
147
|
-
- Follow with `githubViewRepoStructure` to explore the repo
|
|
148
|
-
|
|
149
|
-
### githubSearchRepositories
|
|
150
|
-
|
|
151
|
-
Discover repos by topics, keywords, stars.
|
|
152
|
-
|
|
153
|
-
```typescript
|
|
154
|
-
{
|
|
155
|
-
keywordsToSearch?: string[]; // Search terms
|
|
156
|
-
topicsToSearch?: string[]; // GitHub topics
|
|
157
|
-
owner?: string; // Org/user filter
|
|
158
|
-
stars?: string; // ">1000", "100..500"
|
|
159
|
-
updated?: string; // ">2024-01-01"
|
|
160
|
-
sort?: "stars" | "forks" | "updated" | "best-match";
|
|
161
|
-
limit?: number; // 1-100
|
|
162
|
-
page?: number;
|
|
163
|
-
}
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
**Tips:**
|
|
167
|
-
- Use `stars: ">1000"` to filter noise in public repos
|
|
168
|
-
- Check `pushedAt` (last code change) > `updatedAt` (meta change)
|
|
169
|
-
- Archived repositories excluded automatically
|
|
170
|
-
|
|
171
|
-
### githubViewRepoStructure
|
|
172
|
-
|
|
173
|
-
Map repository directory layout.
|
|
174
|
-
|
|
175
|
-
```typescript
|
|
176
|
-
{
|
|
177
|
-
owner: string; // Repo owner (required)
|
|
178
|
-
repo: string; // Repo name (required)
|
|
179
|
-
branch: string; // Branch (required)
|
|
180
|
-
path?: string; // Subpath (default "")
|
|
181
|
-
depth?: 1 | 2; // Recursion depth
|
|
182
|
-
entriesPerPage?: number; // ≤200
|
|
183
|
-
entryPageNumber?: number;
|
|
184
|
-
}
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
**Tips:**
|
|
188
|
-
- Start `depth: 1` at root, drill with `depth: 2` on subdirs
|
|
189
|
-
- `depth: 2` is slow on large dirs - use on specific subdirectories
|
|
190
|
-
- Check `packages/` or `apps/` individually for monorepos
|
|
191
|
-
- Auto-filters 85+ directories (.git, node_modules, dist, build, etc.)
|
|
192
|
-
|
|
193
|
-
### githubSearchCode
|
|
194
|
-
|
|
195
|
-
Find code patterns across GitHub.
|
|
196
|
-
|
|
197
|
-
```typescript
|
|
198
|
-
{
|
|
199
|
-
keywordsToSearch: string[]; // Search terms (required)
|
|
200
|
-
match: "file" | "path"; // Content vs paths (required)
|
|
201
|
-
owner?: string; // Narrow to org
|
|
202
|
-
repo?: string; // Narrow to repo
|
|
203
|
-
path?: string; // Directory filter (strict prefix)
|
|
204
|
-
extension?: string; // File type
|
|
205
|
-
filename?: string;
|
|
206
|
-
limit?: number; // 1-100
|
|
207
|
-
page?: number;
|
|
208
|
-
}
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
**WARNING:** NEVER cite search results directly. Search snippets are incomplete. ALWAYS follow up with `githubGetFileContent` to verify.
|
|
212
|
-
|
|
213
|
-
**Tips:**
|
|
214
|
-
- `match: "path"` for finding files by name
|
|
215
|
-
- `match: "file"` for searching content
|
|
216
|
-
- Prefer specifying `owner` & `repo` for precision and cost
|
|
217
|
-
- Start with 1-2 filters; 3+ filters risky (may return empty)
|
|
218
|
-
- Path matching is strict prefix: `path: "pkg"` finds `pkg/file`, NOT `parent/pkg/file`
|
|
219
|
-
|
|
220
|
-
### githubGetFileContent
|
|
221
|
-
|
|
222
|
-
Read file content with targeted extraction.
|
|
223
|
-
|
|
224
|
-
```typescript
|
|
225
|
-
{
|
|
226
|
-
owner: string; // (required)
|
|
227
|
-
repo: string; // (required)
|
|
228
|
-
path: string; // (required)
|
|
229
|
-
branch?: string;
|
|
230
|
-
// Choose ONE strategy:
|
|
231
|
-
startLine?: number; // Line range
|
|
232
|
-
endLine?: number;
|
|
233
|
-
matchString?: string; // Pattern match
|
|
234
|
-
matchStringContextLines?: number; // 1-50
|
|
235
|
-
charOffset?: number; // Byte offset
|
|
236
|
-
charLength?: number; // Bytes to read
|
|
237
|
-
fullContent?: boolean; // Small files only
|
|
238
|
-
}
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
**Tips:**
|
|
242
|
-
- Prefer `matchString` over `fullContent` for token efficiency
|
|
243
|
-
- Max file size: 300KB
|
|
244
|
-
- For pagination, use branch NAME (e.g., "main"), not commit SHA
|
|
245
|
-
|
|
246
|
-
### githubSearchPullRequests
|
|
247
|
-
|
|
248
|
-
Find PR history, metadata, diffs, and discussions.
|
|
249
|
-
|
|
250
|
-
```typescript
|
|
251
|
-
{
|
|
252
|
-
owner?: string;
|
|
253
|
-
repo?: string;
|
|
254
|
-
prNumber?: number; // Ignores all other filters
|
|
255
|
-
query?: string; // Search text
|
|
256
|
-
state?: "open" | "closed";
|
|
257
|
-
merged?: boolean;
|
|
258
|
-
author?: string;
|
|
259
|
-
type?: "metadata" | "fullContent" | "partialContent";
|
|
260
|
-
partialContentMetadata?: Array<{
|
|
261
|
-
file: string;
|
|
262
|
-
additions?: number[];
|
|
263
|
-
deletions?: number[];
|
|
264
|
-
}>;
|
|
265
|
-
withComments?: boolean;
|
|
266
|
-
withCommits?: boolean;
|
|
267
|
-
limit?: number; // 1-10
|
|
268
|
-
}
|
|
269
|
-
```
|
|
270
|
-
|
|
271
|
-
**Tips:**
|
|
272
|
-
- Start with `type: "metadata"` (token-efficient)
|
|
273
|
-
- `prNumber` ignores all other filters
|
|
274
|
-
- Use `type: "partialContent"` for specific file diffs
|
|
275
|
-
- Avoid `type: "fullContent"` on large PRs
|
|
276
|
-
|
|
277
|
-
---
|
|
278
|
-
|
|
279
|
-
## Error Recovery
|
|
280
|
-
|
|
281
|
-
| Situation | Action |
|
|
282
|
-
|-----------|--------|
|
|
283
|
-
| Empty results | Try semantic variants (auth → login, security, credentials) |
|
|
284
|
-
| Too many results | Add filters (path, extension, owner/repo, type) |
|
|
285
|
-
| File too large | Use `matchString` or `charLength` pagination |
|
|
286
|
-
| Path is directory | Use structure tool instead |
|
|
287
|
-
| Rate limit | Wait, try different tool |
|
|
288
|
-
| Local not found | Check path exists, try `hidden: true`, verify .gitignore |
|
|
289
|
-
|
|
290
|
-
## Query Batching
|
|
291
|
-
|
|
292
|
-
- GitHub tools: Max 3 queries per call
|
|
293
|
-
- Local tools: Max 5 queries per call
|
|
294
|
-
- Use parallel queries for independent searches
|
|
295
|
-
|
|
296
|
-
```typescript
|
|
297
|
-
{
|
|
298
|
-
"queries": [
|
|
299
|
-
{ "pattern": "AuthService", "path": "src", "filesOnly": true },
|
|
300
|
-
{ "pattern": "authMiddleware", "path": "src", "filesOnly": true },
|
|
301
|
-
{ "pattern": "AuthUser", "path": "src", "filesOnly": true }
|
|
302
|
-
]
|
|
303
|
-
}
|
|
304
|
-
```
|
|
@@ -1,325 +0,0 @@
|
|
|
1
|
-
# Workflow Patterns
|
|
2
|
-
|
|
3
|
-
Common research flows for different investigation types.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Local-First Patterns
|
|
8
|
-
|
|
9
|
-
### 1. Explore-First (Unknown Codebase)
|
|
10
|
-
|
|
11
|
-
**Use when**: Entry points unclear, mixed tech, new repo.
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
localViewStructure(depth=1) → drill dirs(depth=2) → localSearchCode → localGetFileContent
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
**Steps:**
|
|
18
|
-
1. **Map Root**: View top-level folders (`depth: 1`)
|
|
19
|
-
2. **Drill Down**: Pick one relevant folder (e.g., `src`)
|
|
20
|
-
3. **Search**: Look for architectural keywords (`App`, `Server`, `Main`)
|
|
21
|
-
4. **Read**: Get content of entry file
|
|
22
|
-
|
|
23
|
-
```json
|
|
24
|
-
// 1. Map root
|
|
25
|
-
{ "path": "", "depth": 1 }
|
|
26
|
-
|
|
27
|
-
// 2. Drill into src
|
|
28
|
-
{ "path": "src", "depth": 2 }
|
|
29
|
-
|
|
30
|
-
// 3. Find entry points
|
|
31
|
-
{ "pattern": "createServer|createApp", "path": "src", "filesOnly": true }
|
|
32
|
-
|
|
33
|
-
// 4. Read implementation
|
|
34
|
-
{ "path": "src/index.ts", "matchString": "createApp" }
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
**Pitfall**: Diving deep without map → keep breadth-first.
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
### 2. Search-First (Know WHAT, not WHERE)
|
|
42
|
-
|
|
43
|
-
**Use when**: Feature name, error keyword, class/function known.
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
localSearchCode(filesOnly=true) → localGetFileContent(matchString)
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
**Steps:**
|
|
50
|
-
1. **Discovery**: Find files containing the term (fast)
|
|
51
|
-
2. **Target**: Pick the most likely file
|
|
52
|
-
3. **Read**: Read specific function with context
|
|
53
|
-
|
|
54
|
-
```json
|
|
55
|
-
// 1. Discovery
|
|
56
|
-
{ "pattern": "AuthService", "path": "src", "type": "ts", "filesOnly": true }
|
|
57
|
-
|
|
58
|
-
// 2. Read implementation
|
|
59
|
-
{ "path": "src/auth/AuthService.ts", "matchString": "class AuthService", "matchStringContextLines": 20 }
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
**Pitfall**: Reading full files; prefer `matchString` + small context windows.
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
### 3. Trace-from-Match (Follow the Trail)
|
|
67
|
-
|
|
68
|
-
**Use when**: Found definition, need impact graph (imports/usages).
|
|
69
|
-
|
|
70
|
-
```
|
|
71
|
-
localSearchCode(symbol) → localGetFileContent → localSearchCode(usages) → iterate
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
**Steps:**
|
|
75
|
-
1. **Find Definition**: Search for the symbol
|
|
76
|
-
2. **Read Implementation**: Get context
|
|
77
|
-
3. **Trace Usages**: Search for imports/calls
|
|
78
|
-
4. **Iterate**: Follow 1-3 focused branches (cap depth)
|
|
79
|
-
|
|
80
|
-
```json
|
|
81
|
-
// 1. Find definition
|
|
82
|
-
{ "pattern": "export.*useAuth", "path": "src", "filesOnly": true }
|
|
83
|
-
|
|
84
|
-
// 2. Read implementation
|
|
85
|
-
{ "path": "src/hooks/useAuth.ts", "matchString": "export function useAuth" }
|
|
86
|
-
|
|
87
|
-
// 3. Find usages
|
|
88
|
-
{ "pattern": "import.*useAuth|useAuth\\(", "path": "src", "filesOnly": true }
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
**Pitfall**: Unlimited fan-out; cap depth and batch size.
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
### 4. Metadata-Driven (Recent Changes)
|
|
96
|
-
|
|
97
|
-
**Use when**: Debugging recent breaks, finding config files, large files.
|
|
98
|
-
|
|
99
|
-
```
|
|
100
|
-
localFindFiles(modifiedWithin/size) → localGetFileContent
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
**Steps:**
|
|
104
|
-
1. **Filter**: Find files by metadata (time, size, type)
|
|
105
|
-
2. **Read**: Examine content of candidates
|
|
106
|
-
|
|
107
|
-
```json
|
|
108
|
-
// Find recently modified TypeScript files
|
|
109
|
-
{ "path": "src", "name": "*.ts", "modifiedWithin": "7d" }
|
|
110
|
-
|
|
111
|
-
// Find large files that might need attention
|
|
112
|
-
{ "path": "", "sizeGreater": "100K", "type": "f" }
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
---
|
|
116
|
-
|
|
117
|
-
### 5. node_modules Inspection
|
|
118
|
-
|
|
119
|
-
**Use when**: Debugging dependency behavior, understanding library internals.
|
|
120
|
-
|
|
121
|
-
```
|
|
122
|
-
localSearchCode(noIgnore=true) → localGetFileContent → compare with GitHub source
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
**Steps:**
|
|
126
|
-
1. **Search Inside**: Use `noIgnore: true` to search node_modules
|
|
127
|
-
2. **Read Local**: Get content from installed version
|
|
128
|
-
3. **Cross-Reference**: Compare with canonical GitHub source
|
|
129
|
-
|
|
130
|
-
```json
|
|
131
|
-
// 1. Search inside dependency
|
|
132
|
-
{ "pattern": "createContext", "path": "node_modules/react", "noIgnore": true }
|
|
133
|
-
|
|
134
|
-
// 2. Read local implementation
|
|
135
|
-
{ "path": "node_modules/react/cjs/react.development.js", "matchString": "createContext" }
|
|
136
|
-
|
|
137
|
-
// 3. Compare with canonical (use GitHub tools)
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
|
|
142
|
-
## GitHub Patterns
|
|
143
|
-
|
|
144
|
-
### 6. Package Investigation
|
|
145
|
-
|
|
146
|
-
**Goal**: Understand how a package works internally.
|
|
147
|
-
|
|
148
|
-
```
|
|
149
|
-
packageSearch → githubViewRepoStructure → githubSearchCode → githubGetFileContent
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
**Steps:**
|
|
153
|
-
1. **Locate**: Find the correct repo URL
|
|
154
|
-
2. **Map**: View directory structure (don't map everything)
|
|
155
|
-
3. **Entry**: Find the main entry point (`package.json` main or index file)
|
|
156
|
-
4. **Read**: Get actual content of the entry file
|
|
157
|
-
|
|
158
|
-
```json
|
|
159
|
-
// 1. Find repo
|
|
160
|
-
{ "name": "express", "ecosystem": "npm" }
|
|
161
|
-
|
|
162
|
-
// 2. Map structure
|
|
163
|
-
{ "owner": "expressjs", "repo": "express", "branch": "master", "depth": 1 }
|
|
164
|
-
|
|
165
|
-
// 3. Find entry
|
|
166
|
-
{ "keywordsToSearch": ["index.js"], "match": "path", "owner": "expressjs", "repo": "express" }
|
|
167
|
-
|
|
168
|
-
// 4. Read implementation
|
|
169
|
-
{ "owner": "expressjs", "repo": "express", "path": "lib/express.js", "matchString": "createApplication" }
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
---
|
|
173
|
-
|
|
174
|
-
### 7. Implementation Tracing (Remote)
|
|
175
|
-
|
|
176
|
-
**Goal**: Understand how a feature is implemented in an external library.
|
|
177
|
-
|
|
178
|
-
**Pattern**: Trace from *User Surface* → *Internal Logic* → *Data Layer*.
|
|
179
|
-
|
|
180
|
-
```
|
|
181
|
-
githubSearchCode(surface) → githubGetFileContent → trace imports → repeat
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
**Steps:**
|
|
185
|
-
1. **Surface**: Find the public API/Component (e.g., `useState`)
|
|
186
|
-
2. **Definition**: Read the function definition
|
|
187
|
-
3. **Dependency**: Identify one key internal dependency
|
|
188
|
-
4. **Trace**: Search for that dependency's definition
|
|
189
|
-
5. **Repeat**: Continue until you hit the bottom
|
|
190
|
-
|
|
191
|
-
```json
|
|
192
|
-
// 1. Find feature surface
|
|
193
|
-
{ "keywordsToSearch": ["useState"], "match": "file", "path": "packages/react", "owner": "facebook", "repo": "react" }
|
|
194
|
-
|
|
195
|
-
// 2. Read definition (The Gate: Read before assuming)
|
|
196
|
-
{ "owner": "facebook", "repo": "react", "path": "packages/react/src/ReactHooks.js", "matchString": "export function useState" }
|
|
197
|
-
|
|
198
|
-
// 3. Trace dependency
|
|
199
|
-
{ "keywordsToSearch": ["resolveDispatcher"], "match": "file", "owner": "facebook", "repo": "react" }
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
---
|
|
203
|
-
|
|
204
|
-
### 8. Bug Investigation
|
|
205
|
-
|
|
206
|
-
**Goal**: Find root cause of a bug.
|
|
207
|
-
|
|
208
|
-
```
|
|
209
|
-
githubSearchCode(error) → githubGetFileContent → githubSearchPullRequests
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
**Steps:**
|
|
213
|
-
1. **Locate Error**: Find where the error string/code is defined
|
|
214
|
-
2. **Read Context**: Read the condition causing the error
|
|
215
|
-
3. **Blame/History**: Who changed this last and why?
|
|
216
|
-
|
|
217
|
-
```json
|
|
218
|
-
// 1. Find error source
|
|
219
|
-
{ "keywordsToSearch": ["ENOENT"], "match": "file", "owner": "nodejs", "repo": "node" }
|
|
220
|
-
|
|
221
|
-
// 2. Read context
|
|
222
|
-
{ "owner": "nodejs", "repo": "node", "path": "lib/fs.js", "matchString": "ENOENT" }
|
|
223
|
-
|
|
224
|
-
// 3. Check history
|
|
225
|
-
{ "query": "file reader ENOENT", "owner": "nodejs", "repo": "node", "merged": true, "type": "metadata" }
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
---
|
|
229
|
-
|
|
230
|
-
## Cross-Domain Patterns
|
|
231
|
-
|
|
232
|
-
### 9. Local → GitHub (Upstream Research)
|
|
233
|
-
|
|
234
|
-
**Use when**: Local code uses a dependency, need canonical source.
|
|
235
|
-
|
|
236
|
-
```
|
|
237
|
-
localSearchCode → packageSearch → githubViewRepoStructure → githubGetFileContent
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
```json
|
|
241
|
-
// 1. Find import in local code
|
|
242
|
-
{ "pattern": "import.*from 'axios'", "path": "src", "filesOnly": true }
|
|
243
|
-
|
|
244
|
-
// 2. Find package repo
|
|
245
|
-
{ "name": "axios", "ecosystem": "npm" }
|
|
246
|
-
|
|
247
|
-
// 3. Explore upstream
|
|
248
|
-
{ "owner": "axios", "repo": "axios", "branch": "v1.x", "depth": 1 }
|
|
249
|
-
|
|
250
|
-
// 4. Read canonical implementation
|
|
251
|
-
{ "owner": "axios", "repo": "axios", "path": "lib/core/Axios.js", "matchString": "class Axios" }
|
|
252
|
-
```
|
|
253
|
-
|
|
254
|
-
### 10. GitHub → Local (Impact Analysis)
|
|
255
|
-
|
|
256
|
-
**Use when**: Found upstream change, check local impact.
|
|
257
|
-
|
|
258
|
-
```
|
|
259
|
-
githubSearchPullRequests → extract changed patterns → localSearchCode
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
```json
|
|
263
|
-
// 1. Find breaking change PR
|
|
264
|
-
{ "query": "breaking change v2", "owner": "some-lib", "repo": "lib", "merged": true }
|
|
265
|
-
|
|
266
|
-
// 2. Get changed API (from PR)
|
|
267
|
-
// → Extracted: "oldMethod renamed to newMethod"
|
|
268
|
-
|
|
269
|
-
// 3. Check local usage
|
|
270
|
-
{ "pattern": "oldMethod", "path": "src", "filesOnly": true }
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
---
|
|
274
|
-
|
|
275
|
-
## The Verification Gate
|
|
276
|
-
|
|
277
|
-
**BEFORE claiming a finding, pass this gate:**
|
|
278
|
-
|
|
279
|
-
1. **IDENTIFY**: What exact lines of code prove this?
|
|
280
|
-
2. **FETCH**: Did you read the *actual file content*? (Search snippets don't count)
|
|
281
|
-
3. **VERIFY**: Does the logic actually do what you think?
|
|
282
|
-
4. **CHECK DATES**: Is this code from 5 years ago?
|
|
283
|
-
5. **ONLY THEN**: Output the finding.
|
|
284
|
-
|
|
285
|
-
---
|
|
286
|
-
|
|
287
|
-
## Batch Queries
|
|
288
|
-
|
|
289
|
-
Parallelize independent searches (max 3 GitHub, max 5 local):
|
|
290
|
-
|
|
291
|
-
```json
|
|
292
|
-
{
|
|
293
|
-
"queries": [
|
|
294
|
-
{ "pattern": "AuthService", "path": "src", "filesOnly": true },
|
|
295
|
-
{ "pattern": "authMiddleware", "path": "src", "filesOnly": true },
|
|
296
|
-
{ "pattern": "AuthUser", "path": "src", "filesOnly": true }
|
|
297
|
-
]
|
|
298
|
-
}
|
|
299
|
-
```
|
|
300
|
-
|
|
301
|
-
---
|
|
302
|
-
|
|
303
|
-
## Anti-Patterns
|
|
304
|
-
|
|
305
|
-
| Bad | Good |
|
|
306
|
-
|-----|------|
|
|
307
|
-
| **Citing Search Results** | **Citing File Content** (Read the file!) |
|
|
308
|
-
| **"I assume..."** | **"The code shows..."** |
|
|
309
|
-
| **"Should work like..."** | **"Logic implements..."** |
|
|
310
|
-
| **Broad Search (`auth`)** | **Targeted Search (`class AuthService`)** |
|
|
311
|
-
| **Ignoring Dates** | **Checking `lastModified`** |
|
|
312
|
-
| **Shell commands for search** | **Local tools with pagination** |
|
|
313
|
-
| **Full file dumps** | **matchString + context** |
|
|
314
|
-
|
|
315
|
-
---
|
|
316
|
-
|
|
317
|
-
## Checklist
|
|
318
|
-
|
|
319
|
-
- [ ] **Goal defined?** (Atomic question)
|
|
320
|
-
- [ ] **Local-first?** (Checked workspace before GitHub)
|
|
321
|
-
- [ ] **Code evidence found?** (Line numbers/paths)
|
|
322
|
-
- [ ] **The Gate passed?** (Read full content)
|
|
323
|
-
- [ ] **Cross-referenced?** (Imports/Usage)
|
|
324
|
-
- [ ] **Updated dates checked?**
|
|
325
|
-
- [ ] **Gaps documented?**
|