阶段三:高级篇 ⭐⭐⭐ 高级

第 7 章:大型项目的提示词架构

分而治之 — 构建可扩展的多层级提示词体系

🎯 本章学习目标

  1. 掌握三层提示词体系:主提示词 → 模块提示词 → 工具提示词
  2. 学会建立全局一致性维护机制:风格字典、术语表、配置中心
  3. 理解上下文持久化策略:CLAUDE.md + 记忆文件 + 模块文档的组合运用
  4. 能够管理长对话的上下文窗口:信息压缩与刷新
  5. 设计可扩展的项目级提示词架构

7.1 三层提示词体系

在大型项目中,单一提示词无法覆盖所有场景。你需要建立多层级体系,每层有不同的职责和粒度:

🎯 第一层:主提示词(Master Prompt)

职责:定义项目全局规则、技术栈、编码标准、架构约束

存放位置:项目根目录的 CLAUDE.md

每次注入:自动注入每个会话

内容示例:

  • 项目描述与技术栈
  • 目录结构与模块边界
  • 全局编码规范
  • 架构约定与设计模式
  • Git 工作流与测试策略

📐 第二层:模块提示词(Module Prompt)

职责:定义单个模块的职责、接口、依赖、特定约束

存放位置:每个模块目录下的 .claude/context.md

按需注入:当开发该模块时手动引用

内容示例:

  • 模块职责与边界
  • 对外接口定义(API/函数签名)
  • 依赖清单(依赖哪些模块)
  • 数据结构与模型
  • 已知技术债务与待优化项

⚡ 第三层:工具提示词(Tool Prompt)

职责:定义可复用的操作模板(测试生成、重构、审查等)

存放位置:.claude/prompts/ 目录下的模板文件

显式调用:在会话中引用具体的模板文件名

内容示例:

  • "使用 prompts/test-gen.md 模板为当前模块生成测试"
  • "按 prompts/refactor.md 重构以下代码"
  • "根据 prompts/security-audit.md 审查"

7.2 全局一致性维护

风格字典(Style Dictionary)

风格字典是项目级的"命名圣经"。当 AI 生成新代码时,它必须遵循已建立的命名和风格约定。

# 项目风格字典 — 放在 CLAUDE.md 或 .claude/style-dict.md 中
## 命名约定
- 数据库表:snake_case 复数 (disk_infos, user_sessions)
- API 端点:kebab-case (/api/disk-health, /api/user-sessions)
- React/Vue 组件:PascalCase (DiskHealthPanel.vue)
- 配置键:snake_case 层级点号 (storage.default_pool.size)

## 术语表
- "pool" = 存储池(一组磁盘的逻辑集合)
- "share" = 共享目录(暴露给网络的文件夹)
- "volume" = 卷(存储池中分配的独立空间)
- "export" = NFS 导出项

## 代码模式
- 数据库操作 → 使用 Repository 类,不裸写 SQL
- 外部命令调用 → 通过 CommandExecutor 封装,统一错误处理
- 配置读写 → 通过 ConfigManager,不允许直接 os.getenv
- API 响应 → 统一格式 {"data": ..., "error": ..., "meta": {...}}

配置中心模式

项目中所有可配置的值集中管理,AI 在生成代码时引用配置中心而非硬编码值:

# config/constants.py — AI 生成的代码应引用这些值
class StorageDefaults:
    DEFAULT_FS_TYPE = "ext4"
    MOUNT_BASE_PATH = "/mnt/nas"
    MAX_VOLUME_SIZE_GB = 16 * 1024  # 16TB
    HEALTH_CHECK_INTERVAL = 3600     # 1小时

class NetworkDefaults:
    SMB_WORKGROUP = "WORKGROUP"
    NFS_EXPORT_PATH = "/exports"
    FTP_PORT = 21
    MAX_CONNECTIONS = 50

7.3 长周期项目的上下文管理

上下文持久化策略矩阵

机制持久性自动注入适用场景
CLAUDE.md文件持久✅ 每次会话项目全局信息
Memory 系统会话级按需跨会话的事实信息
模块 docs/文件持久按需模块详细设计文档
Scheduled Tasks会话级定时触发定期检查任务
会话摘要自动✅ 长对话对话历史的压缩版本

上下文信息分层

🔥 热数据(每次必带)

CLAUDE.md 核心部分:技术栈、项目结构、编码规范、架构约定

控制在 500-800 token

🌤️ 温数据(当前任务带)

正在修改的模块的 context.md、相关的接口定义、最近变更摘要

控制在 1000-2000 token

❄️ 冷数据(需要时引用)

详细设计文档、历史决策记录、完整 API 文档、测试报告

按需加载,用完即弃

📋 本章提示词模板

模板 7.1:模块 context.md 模板

📋
# 模块:[模块名]
# 所属子系统:[存储 / 网络 / 用户 / 监控]
# 最后更新:[日期]

## 职责
[一句话描述这个模块做什么]

## 对外接口
### 公共 API
- `function_name(params) -> return_type` — [描述]

### 事件
- `event_name` — [描述,谁发布、谁订阅]

## 依赖
- [模块A] — [依赖原因]
- [模块B] — [依赖原因]

## 数据模型
### 核心实体
- `EntityName`:[字段列表和含义]

## 约束条件
- [性能约束]
- [安全约束]
- [兼容性约束]

## 已知问题
- [问题描述] — [跟踪链接]

## 变更日志
- [日期]:[变更描述]

模板 7.2:上下文刷新提示词

📋
## 上下文刷新
我们的对话已经很长了。请总结以下内容,以便在新的对话中快速恢复工作状态:

### 1. 项目状态摘要(300 token 以内)
- 项目名称和总体目标
- 当前开发阶段
- 技术栈

### 2. 已完成的工作(按模块列出)
- [模块名]:[完成的功能]
- ...

### 3. 当前进行中的工作
- [正在做什么]
- [阻塞问题]
- [下一步计划]

### 4. 关键决策记录
- [决策]:[理由]
- ...

### 5. 需要保留的重要上下文
- [代码片段、配置、约定等]
- ...

请将以上内容输出为 Markdown,保存到 .claude/session-summary.md

🛠️ 实战演练:NAS 项目的三层提示词体系

第一层:主提示词(CLAUDE.md)

# NAS OS Project
基于 Debian 12 的轻量级 NAS 操作系统

## 技术栈
Backend: Python 3.11 + FastAPI + SQLAlchemy
Frontend: Vue 3 + TypeScript
System: C (核心工具) + Shell (部署脚本)
DB: SQLite 3 + Redis

## 架构约定
- 严格遵循分层架构: API → Service → Repository → DB
- 所有外部命令通过 CommandExecutor 执行
- 配置通过 ConfigManager 统一管理
- 所有公开 API 需要认证(除 login 和 health)

## 编码规范
[引用 .claude/style-dict.md]

第二层:模块提示词示例(存储模块)

# 模块:存储管理(Storage)
## 职责
管理磁盘发现、挂载、RAID、配额、SMART 监控

## 对外接口
- DiskService.list_all() → list[DiskInfo]
- DiskService.mount(device, point, fs) → bool
- PoolService.create(name, disks, raid_level) → Pool
- HealthService.check(device) → HealthReport

## 依赖
- CommandExecutor (core) — 执行 mount/umount/mdadm 命令
- ConfigManager (core) — 读取存储配置
- EventBus (core) — 发布 disk.failure 等事件

⚠️ 常见坑点

🕳️ 坑 1:CLAUDE.md 变成"大杂烩"

把所有信息都塞进 CLAUDE.md 是最常见的错误。AI 的上下文窗口有限,无关信息会稀释关键信息。遵循"热数据在 CLAUDE.md,温数据在模块文档,冷数据在 docs/"的分层策略。

🕳️ 坑 2:模块文档与代码不同步

当代码变更时,模块的 context.md 往往被遗忘。建立一个习惯:每次重大重构后,让 AI 更新对应模块的 context.md。这可以用一个简单的提示词:"请根据当前代码更新模块的 context.md"。

🕳️ 坑 3:风格字典过于理想化

风格字典应该是描述性的(反映真实代码风格)而非规范性的(描述理想风格)。如果字典说用 snake_case 但代码里到处都是 camelCase,AI 会困惑。先统一代码风格,再固化进字典。

📝 本章小结

  • 三层提示词体系:主提示词(全局规则)→ 模块提示词(模块边界)→ 工具提示词(可复用操作)
  • 风格字典术语表是 AI 生成一致性代码的基础保障
  • 上下文分三层管理:热数据(每次必带)→ 温数据(当前任务)→ 冷数据(按需加载)
  • 定期进行上下文刷新,用模板 7.2 生成会话摘要,确保新会话能快速恢复

🤔 思考练习

  1. 为你的项目建立一个三层的提示词体系:写出主提示词(CLAUDE.md)、挑选一个核心模块写 context.md、建立至少 3 个可复用的工具提示词模板。
  2. 建立项目风格字典(命名约定 + 术语表),然后让 AI 检查项目中是否有违反字典的代码。
  3. 模拟一次上下文刷新:让你的 AI 总结当前对话状态,保存到 session-summary.md,然后在新的对话中引用它继续工作。