如何为 Claude Code 提供完整项目上下文

发布: (2026年2月8日 GMT+8 17:13)
4 分钟阅读
原文: Dev.to

Source: Dev.to

上下文缺口

当你问 Claude Code “我该如何实现这个任务?”时,它需要了解:

  • 哪些文件是相关的(不仅仅是你打开的文件)
  • 这些文件是如何关联的(依赖图、调用路径)
  • 之前尝试过什么(过去的 PR、已回滚的更改)
  • 谁熟悉这块(后续提问的专家)
  • 可能会破坏什么(破坏范围、下游消费者)

没有这些信息,Claude Code 会给出一个合理但通用的答案。有了这些信息,Claude Code 能提供具体、可追踪、可执行的方案。

如何提供上下文

方法 1:手动收集上下文

在向 Claude Code 提问之前,花 30–60 分钟:

  • 确认相关文件并粘贴关键片段。
  • 在 git log 中搜索相关 PR 并粘贴描述。
  • 手动绘制依赖链。

此方法可行,但会抵消使用 Claude Code 的意义——你在手动完成“理解税”,以便给 Claude Code 提供上下文。

方法 2:MCP 工具

通过 MCP 将 Claude Code 连接到代码智能工具。无需手动收集,Claude Code 可以执行如下命令:

> get_feature_files("authentication") → 14 files listed
> get_symbol_call_graph("validateSession", depth=3) → full call chain
> get_file_history("authMiddleware.ts") → last 5 PRs with descriptions
> get_blast_radius("validateSession") → 7 downstream consumers

原本需要 30–60 分钟手动完成的上下文收集,现在只需约 10 秒的工具调用即可完成。

方法 3:预生成构建计划

最高效的做法:在与 Claude Code 交互前,从任务中生成构建计划。将该计划(包含文件映射、依赖分析和历史上下文)作为起始上下文提供。随后 Claude Code 在充分了解代码库的前提下,推理实现策略。

差异对比

没有上下文时

“要实现用户会话刷新,你需要创建一个中间件来检查令牌是否过期并在需要时刷新。”

有上下文时

“根据代码库分析:会话处理位于 src/services/auth/sessionManager.ts。当前实现使用基于 Redis 的会话(见 redisClient.ts)。最近一次对会话 TTL 的修改(PR #412)导致 WebSocket 重连问题,因为 websocketService.ts 中有一个硬编码的计时器与旧 TTL 相匹配。推荐做法:更新 sessionManager.refreshToken(),添加一个供两个服务读取的 TTL 配置常量,并为 WebSocket 计时器对齐添加测试用例。”

同样的 AI,同样的模型,实用性却截然不同——因为是否拥有上下文。

最初发布于 glue.toolsGlue 是预代码智能平台——粘贴任务,获取作战计划。

0 浏览
Back to Blog

相关文章

阅读更多 »