如果你曾在使用像Claude Code这样的AI编码助手时,需要在多个代码仓库(例如前端、后端、共享库)之间切换,那么你一定深有体会:AI常常会“忘记”当前项目、混淆不同仓库的约定,导致你不得不花费大量时间重复解释它本该知道的事情。
幸运的是,这个问题并非无解。下面将介绍两种核心策略来解决这一痛点。
核心问题:Claude Code的上下文窗口是独立的
Claude Code在不同的会话或不同的仓库之间,并没有持久的记忆。当你打开一个新项目时,它会重新开始;当你在一个会话中从API仓库切换到前端仓库时,第一个仓库的上下文并不会自动转移。这在以下场景中尤为突出:
- 你的API和前端共享类型定义,但它们位于不同的仓库中。
- 你需要同时在两个仓库中进行协调一致的修改。
- 你的后端开发规范与前端规范存在差异。
- 你正在进行一项涉及多个代码库的迁移工作。
方案一:共享CLAUDE.md策略
在每个代码仓库的根目录创建一个CLAUDE.md文件,用于相互引用和定义项目规范:
# API Repo - CLAUDE.md
## This project
REST API using Node.js + Express + PostgreSQL
Auth: JWT tokens, 15min access / 7day refresh
## Paired with: frontend repo at ../frontend
Frontend expects:
- All API responses: { data: ..., error: null } or { data: null, error: "message" }
- Date format: ISO 8601 strings (not timestamps)
- Auth header: Bearer {accessToken}
## Shared types
See ../shared-types/index.ts for TypeScript interfaces
Any API change that affects response shape MUST update shared-types first
同样,在前端仓库中,CLAUDE.md文件可以这样编写:
# Frontend Repo - CLAUDE.md
## This project
Next.js 14 + TypeScript + Tailwind
## Paired with: API repo at ../api
API base URL: http://localhost:3001
All fetch calls use: src/lib/api.ts (do not call fetch directly)
Error handling: check error field on response, never .catch() alone
## When making API changes
1. Check ../api/CLAUDE.md for response format
2. Update src/types/ to match any schema changes
3. Update src/lib/api.ts if adding new endpoints
现在,当Claude Code读取你的CLAUDE.md文件时,它就能立即理解不同仓库之间的相互关系和约定。
方案二:上下文交接文件
当你需要跨多个仓库进行活跃开发时,可以在你的工作区根目录创建一个临时的CONTEXT.md文件:
workspace/
CONTEXT.md ← Claude reads this first
api/
frontend/
shared-types/
这个CONTEXT.md文件可以包含当前任务的具体细节,指导Claude Code理解跨仓库操作:
# Active work context - 2026-04-08
## Current task
Adding user avatar upload feature
- API changes: POST /api/users/avatar, returns { avatarUrl: string }
- Frontend changes: ProfilePage.tsx needs upload button + preview
- Database: Added avatar_url column to users table (migration already run)
## St