浏览 AI 使用教程
操作教程

Claude Code怎么读项目:用三文件搜索示例追踪入口和数据流

提供完整的小型搜索项目,跟着命令入口、数据文件和筛选函数定位大小写问题,要求每个判断对应真实文件与复现命令。

Claude Code终端协作与项目工作流主视觉
本文目录 · 跳到当前步骤

第一次接手仓库,先问“为什么搜索 MCP 没结果”,比要求“讲解整个项目”更容易得到可核查的答案。前者会约束读取范围,后者很容易变成文件夹名称的复述。

建立一个完整的教学项目

准备 Node.js 22 或之后的版本。在新的 repo-demo 目录保存以下三个文件,不需要安装依赖。先在终端确认 node --version,再从这个目录启动 Claude Code。

articles.mjs:

javascript
export const articles = [
  { id: 'a1', title: 'MCP 入门' },
  { id: 'a2', title: 'Skills 使用说明' }
];

filter.mjs:

javascript
export function filterArticles(items, query) {
  return items.filter(item => item.title.toLowerCase().includes(query));
}

search.mjs:

javascript
import { articles } from './articles.mjs';
import { filterArticles } from './filter.mjs';
const query = process.argv[2] ?? '';
console.log(JSON.stringify(filterArticles(articles, query), null, 2));

这段代码故意只转换标题的大小写,没有转换查询词。先复现,不要急着改:

powershell
node search.mjs mcp
node search.mjs MCP

预期第一条返回 a1,第二条返回空数组。没有报错不等于功能符合你的期望,结果差异就是这次需要解释的问题。

给Claude Code的第一条任务

text
先只读当前repo-demo,不编辑文件。
问题:node search.mjs mcp能返回文章,MCP却返回空数组。
请沿命令入口追踪查询词和文章数据,给出入口→处理→输出。
每个判断附实际文件和相关代码,列出还调用filterArticles的文件。
你可以执行上述两条本地命令验证,不新增依赖。
最后指出最小修改位置,但本轮先不要修改。

如果真实项目有 CLAUDE.md,先让它读取并说明当前任务涉及的规则。也可以使用 官方的项目探索方式进入计划阶段;“计划”仍需要文件证据,不能只列泛泛阅读顺序。

一份合格解释应该包含什么

问题 本例中可复查的答案
从哪里进入? search.mjs 从 process.argv[2] 接收查询词
数据来自哪里? 同目录 articles.mjs 导出的两条记录
哪一步改变大小写? filter.mjs 只对 item.title 调用 toLowerCase()
为什么结果不同? 小写标题包含 mcp,不包含大写字符串 MCP
输出到哪里? search.mjs 的 console.log,未写文件、未请求网络
谁还受影响? 需要搜索所有 filterArticles 调用点;这份三文件工件中只有入口文件调用

若终端装有 ripgrep,可用 rg -n "filterArticles" . 查调用点;否则用编辑器全项目搜索。不能因为函数名看起来像前端筛选,就凭空加上浏览器输入框或数据库依赖。

解释成立后,才定义下一轮修改

下一轮可以要求:“让查询忽略英文大小写,并增加大写、小写、无匹配、空查询四种测试。空查询仍返回全部文章。”最后一句固定了边界,避免工具在修大小写时顺手改变空查询行为。

对于真实仓库,还要检查同一筛选函数有没有被后台接口、导出脚本或其他页面复用。如果只读了当前三个文件,只能报告这个范围,不应声称完成了全仓架构审查。

2026-10-11,在 Windows、Node.js 24.15.0 下实际执行了本文三个文件:小写查询返回a1,大写查询返回空数组,空查询返回两条记录。这个检查验证了教学工件的行为;未调用 Claude Code,模型是否正确解释仍需另行记录。

资料来源

下一步

继续阅读与你当前问题相关的教程: