前言
VibeCoding痛点
上下文窗口限制
调试、可维护性难度太大
团队协作问题
从原型到生产的鸿沟
全景架构图
Claude Code 从7个设计维度,构建「可编程 AI 工作流」

L1:对话写代码 - 自然语言交互入口
不同于 IDE 补全,Claude Code 可以读取整个项目、跨文件重构、执行命令并观察输出。
这已经比大多数 Copilot 插件强大得多——但单靠对话是有上限的。
读写文件系统:可以跨目录读取、创建、修改文件,理解整体项目结构
执行Bash命令:运行测试、查看日志、调用 git,观察实际执行结果
@引入文件/目录:精准注入上下文,@src/auth.ts 直接读入对话
模式切换:Shift+Tab 在「计划」「执行」「自动接受」三种模式间切换
💡第一层的核心瓶颈:无持久记忆。
每次重新打开 Claude Code,它对你的项目一无所知。重复解释架构、规范、禁忌事项;
这就是 CLAUDE.md(第 2 层)要解决的问题。
L2:CLAUDE.md / Rules - 自动注入记忆
CLAUDE.md
CLAUDE.md 是一个 Markdown 文件,在每次会话开始时自动注入上下文窗口。
编写 CLAUDE.md 规范
控制在200行以下,较长的文件消耗更多上下文并降低遵守度;
内容太多,可以使用
@语法引用其他文件,或使用.claude/rules/文件进行拆分;擅用 markdown 标题和项目符号,增加可读性、有段落感;
指令要具体,例如:
“使用 2 空格缩进”而不是”正确格式化代码”
“在提交前运行
npm test”而不是”测试您的更改”
检查各层级
CLAUDE.md,避免表述规则不一致或相互矛盾
CLAUDE.md 加载规则
Claude Code会从当前工作目录,向上遍历目录树,来依次读取
CLAUDE.mdClaude Code还会在读取当前工作目录下的子目录中的文件时,读取子目录下的
CLAUDE.md还可以使用
/add-dir或--add-dir命令访问主工作目录外的其他目录(多用于monorepo管理模式)
Rules
.claude/rules/可以配置上下文加载规则,取决于是否配置了 glob 规则。用户级规则加载 优先于 项目规则加载
自动加载
.claude/rules/ 目录下的所有 Markdown 文件,在 Claude Code 启动时会自动加载到上下文中。
# .claude/rules/code-style.md
(没有 frontmatter)
- 使用 2 空格缩进
- 变量名用 camelCase💡每次会话启动都会读入。
按需懒加载
.claude/rules/ 中的文件支持通过 glob 模式按条件激活,
例如 api.md 配置 api/**/*.ts,frontend.md 配置 src/**/*.tsx,只有操作匹配文件时才加载对应规则。
---
globs: ["src/api/**/*.ts", "src/routes/**/*.ts"]
---
# API Security Rules
- Always validate JWT tokens
- Rate limiting on all endpoints💡只有当 Claude 操作
src/api/下的.ts文件时,才会加载这条规则。
L3:Tools/MCP - 赋予调用外部服务的能力
MCP(Model Context Protocol)是一种标准协议,让Claude 像使用 USB一样接入外部服务。
# 添加 GitHub MCP(查 PR、创建 Issue、代码审查)
claude mcp add --transport http github https://mcp.github.com
# 添加 Playwright(自动化浏览器测试)
claude mcp add playwright npx @playwright/mcp@latest
# 查看已安装的 MCP 服务
/mcpL4:Skills - 可复用的工作流
Skills 是封装了「做某件事的最佳方法」的 Markdown 文件。
和 CLAUDE.md 不同,Skills 不是全局常驻的,而是在 Claude 判断当前任务与 Skill 描述匹配时自动加载——按需注入,避免上下文浪费。
---
name: code-review
description: Review code changes for quality, bugs, and style issues
allowed-tools: Read, Grep, Glob # 限制只能用只读工具
hooks:
Stop:
- hooks:
- type: command
command: "./scripts/format-review.sh"
---
你是一位资深代码审查专家。请按以下维度审查代码:
1. 逻辑错误和潜在 bug
2. 性能问题(不必要的循环、N+1 查询等)
3. 安全漏洞(SQL 注入、XSS、未校验输入等)
4. 代码风格和可读性L5:Hooks - 确定性的「硬编码」规则
对比CLAUDE.md,最大的区别是:Hooks 在工具调用的生命周期中插入脚本,无论 Claude 怎么想,代码就是会被执行。
// .claude/settings.json
{
"hooks": {
// 1. 自动格式化(PostToolUse + command)
"PostToolUse": [{
"matcher": "Write|Edit",
"hooks": [{ "type": "command", "command": "npx prettier --write \"$CLAUDE_FILE_PATHS\"" }]
}],
// 2. 拦截危险命令(PreToolUse + command,exit 2 = 阻止)
"PreToolUse": [{
"matcher": "Bash",
"hooks": [{ "type": "command", "command": "./scripts/check-dangerous.sh" }]
}],
// 3. 任务完成桌面通知(Stop + command)
"Stop": [{
"hooks": [{ "type": "command", "command": "notify-send 'Claude Code' '任务完成'" }]
}]
}
}L6:Subagents / Agent Teams
Subagents
Workers 之间不能直接通信,只向主会话汇报。适合「分发 → 收集」场景。
Agent Teams
多个 Agent 互相通信、共享任务列表、挑战彼此输出。适合复杂研究和开发任务。
.claude/
├── agents
│ ├── backend-developer.md
│ ├── frontend-developer.md
│ └── qa-engineer.md
├── plans
│ └── functionality-review.md
├── rules
│ ├── backend
│ │ ├── code-review.md
│ │ ├── code-style.md
│ │ └── testing.md
│ └── frontend
│ ├── code-review.md
│ ├── code-style.md
│ └── testing.md
├── settings.json
├── settings.local.json
└── skills
└── frontend-design
└── SKILL.mdL7:Verifiers - 让Claude自我校验
Verifiers机制可以让Claude Code在完成任务之前,先通过自动化验证。
实现方式:
通过 Stop Hook + agent 类型处理器
在 Claude 准备停止时,触发一个有工具权限的 Subagent 去实际运行测试,若测试失败,则强制 Claude 继续修复。
防止无限循环:
Stop Hook 可能导致循环(修复 → 触发验证 → 验证失败 → 继续修复 → 再次触发)
一定要在 Hook 脚本里检查 stop_hook_active 字段,当已经在 Hook 中时直接返回 exit 0,避免死循环。
// .claude/settings.json
{
"hooks": {
"Stop": [{
"hooks": [{
"type": "agent", // 用 agent 类型,拥有工具访问权
"prompt": "运行 npm test,如果所有测试通过返回 {\"ok\": true},否则返回 {\"ok\": false, \"reason\": \"失败原因\"}"
}]
}]
}
}
# 这样 Claude 在完成修改后:
# 1. 准备停止 → 触发 Stop Hook
# 2. Subagent 实际运行 npm test
# 3. 测试失败 → {ok: false} → Claude 继续修复
# 4. 测试通过 → {ok: true} → 任务真正完成总结
Claude Code把"写代码"这件事做得很好,但生产环境需要的不只是"写代码"——还需要对结果负责的能力。
而负责,需要持续观测、历史上下文、领域知识、和可追溯的决策链,这些目前都不在AI手里。
当前最合理的定位:让一个中级工程师的产出达到高级工程师的速度,但仍然需要高级工程师在场做判断。
【Claude Code系列】七层可编程架构
https://qiyec.site/archives/LiKWhiG6