Claude Code 从 0 到 1 实战三种模式、一张认知地图和一套工程化心法Claude Code 的本质是一个跑在终端里的 Agent——它拿到的不只是对话窗口还有你本机的文件读写权和 Shell 执行权。这意味着它的不确定性远高于网页版聊天框也意味着你的收益上限高得多。下面这张认知地图是我踩了一个月坑之后画出来的也是这篇文章的主线。Claude Code 能力地图权限控制层基础能力层记忆与上下文层扩展生态层三种模式: 默认/Accept Edits/Plan危险旁路: --dangerously-skip-permissionsShell 交互: ! 前缀后台任务: CtrlB / tasks多模态: 拖图/CtrlV 粘贴会话级: compact / clear / resume项目级: CLAUDE.md init/memoryMCP: 连接外部工具如 FigmaHook: 工具调用前后注入脚本Skill vs SubAgent: 共享上下文 vs 独立上下文一、权限三档别只用默认模式Shift Tab循环切三档这是新手最先该记住的快捷键。三档的语义差异比字面看起来更大默认模式每次写文件、跑命令前都弹确认。看似低效但适合陌生项目或生产代码库——你会惊讶于 AI 有多爱顺手做点你没要求的事。Accept Edits 模式终端提示Accept edits on写/改文件自动通过但 Bash 命令仍会询问。这是官方刻意的安全设计也是我日常用得最多的一档——文件层面的误操作可以靠 Git 撤回但rm -rf之类的命令一旦放行就没有后悔药。Plan 模式只讨论不执行。重构、方案评审前置必备。关于--dangerously-skip-permissions这个参数源码泄露分析显示它会直接绕过所有 PreToolUse 校验进入bypass permissions on状态。我的用法是只在一次性沙箱目录或 Docker 容器里开让它全自动跑完一个小需求跑完删容器。千万别在日常主力项目上裸奔。二、终端控制被阻塞主进程怎么办Agent 编码绕不开一个坑让 Claude 起npm run dev主进程就被挂住对话卡死。解法是Ctrl B把长驻服务推到后台/tasks查看列表选中后按K杀进程。另一个高频操作是!前缀——直接在输入框执行本地 Shell 命令比如!ls -s或!open dist/index.html省得切窗口。编辑长 Prompt 时Ctrl G会唤起 VS Code 的临时编辑页写完保存后自动回填到终端避免误触回车把半成品提交出去。多行换行用Shift Enter。三、上下文与记忆CLAUDE.md 才是主力会话内的/compact压缩、/clear清空都救不了Claude 每次开会都失忆这个根本问题——跨会话的记忆载体只有 CLAUDE.md。会话级compact、clear、resume/compact会把冗长的执行日志折叠保留核心逻辑直接降 Token 消耗和响应延迟。Ctrl O可以看当前上下文里到底塞了什么。/clear用于切换到完全不相关的新任务。/resume或claude -c恢复上一次会话。项目级CLAUDE.md 与 /init在新项目第一次启动 Claude Code 时先跑/init它会扫描package.json、README、目录结构生成一份 CLAUDE.md 初稿。如果项目里已经有 CLAUDE.md/init只会给改进建议不会粗暴覆盖。# 项目规范 - 使用 TypeScript 严格模式禁止 any - 组件统一函数式写法样式走 Tailwind - 提交前必须跑 npm run lint失败即阻断 ## 特殊依赖 - 图表库用 ECharts 5.x不要引入 antd charts - 状态管理已有 zustand不要新加 redux ## 约定 - 每次输出末尾追加Done./memory命令可以快速打开项目级随 Git 共享或用户级~/.claude/CLAUDE.md的配置文件编辑。CLAUDE.md 是给 Claude 看的行为指南不是给人看的 README——别把项目介绍塞进去写它不能从代码里推断出来的东西行数控制在 60 行以内效果最好。四、多模态与设计稿还原MCP 是正确姿势传图有两种方式拖拽进终端或者复制后按Ctrl VMac 上也是 Ctrl不是 Cmd。但直接传截图还原 UI 是低效路径。装 Figma 的 MCP Server 之后流程完全不一样Figma MCP ServerClaude Code我Figma MCP ServerClaude Code我/mcp 授权 Figma粘贴 Copy link to selection 链接get design context返回间距/字体/颜色参数get screenshot返回高清截图结合参数生成像素级 UI 代码输出还原后的组件MCPModel Context Protocol的本质是让大模型连接外部工具的标准化协议。Copy link to selection给到的链接能让 Claude 调用get design context拿到精确的间距、字号、色值再配get screenshot做视觉参照还原精度远胜于只看一张位图。五、Hook把工程规范硬编码进 AgentHook 是在工具调用前后自动执行的脚本钩子事件包括 PreToolUse、PostToolUse、Notification 等。这是把团队规范从口头约定变成强制约束的唯一手段。{hooks:{PostToolUse:[{matcher:Write|Edit,hooks:[{type:command,command:jq -r .tool_input.file_path | { read f; if [[ \$f\ *.ts ]]; then npx prettier --write \$f\; fi; }}]}]}}配置文件有三个作用域.claude/settings.local.json本机不提交 Git、.claude/settings.json项目共享、用户目录全局生效。进阶玩法是 PreToolUse 做安全防护——检测到工具要写.env或package-lock.json时返回非零退出码直接阻断操作。记住 Hook 是同步阻塞 Agent 循环的脚本要写得轻不然每次写文件都卡一下。六、Skill vs SubAgent这是最容易混淆的一对这两个词长得像但上下文模型完全不同这是选型的唯一判据。维度Agent SkillSubAgent本质一份动态加载的说明书Prompt 封装一个独立运行的子智能体上下文共享主对话执行日志会撑大当前窗口完全隔离只把最终结果汇报回主对话触发方式自然语言或/skill-name显式调用/agent创建后由主 Agent 委派典型场景日报生成、固定格式输出大规模 Code Review、并行探索模块成本便宜就是 Prompt贵独立上下文 独立模型调用一个通俗类比Skill 是你自己照着菜谱做饭思考过程和厨房状态都留在你当前会话里SubAgent 是把菜谱递给餐馆后厨怎么折腾你不用管最后只收到一份成品。选型判断就一条任务需不需要主对话的上下文写日报要依赖今天的对话历史用 Skill让 Claude 审查一个三万行的老模块跟当前对话毫无关系派 SubAgent 去独立跑主对话保持干净。Skill 的创建方式是在~/.claude/skills/name/skill.md里写 Metadata 指令--- name: daily-report description: 当用户要求生成日报或每日总结时调用 --- 日报格式要求 - 日期YYYY-MM-DD - 开发摘要一句话 - 详细改动功能点列表 - 遇到的问题如有SubAgent 通过/agent- Create new agent 创建可以精细控制其工具权限比如代码审查场景只给 Read/Grep/Glob 只读工具甚至指定用 Haiku 这类便宜模型来省成本。七、Rewind 与版本管理的边界/rewind或双击Esc能回滚到历史节点可选回滚代码和会话或仅回滚会话。但这里有个反直觉的认知Claude 只能回滚它自己写入的文件通过 Bash 命令产生的副作用比如npm install装出来的 node_modules它完全无法感知。所以精准回滚和分支管理仍然交给 GitRewind 只是撤销刚才那段对话影响的快照机制不能替代版本控制。我的习惯是让 Claude 每完成一个阶段就git commit一次这样 Rewind 失效时也有兜底。收尾AI 负责执行人负责决策Claude Code 定位它把写代码这个动作的边际成本压到了接近零但决定写什么、写到什么程度、按什么规范写这三件事依然全部在人手里。CLAUDE.md 写得好不好直接决定它的输出稳定度Hook 配得全不全决定它是否会突破你的工程底线Skill 和 SubAgent 的边界划得清不清决定上下文会不会在半小时内被塞爆。这些配置工作本身就是工程化的一部分——把AI 辅助编程从手艺活变成可复现、可协作、可审计的流程。