从会聊天到能交付AI 应用开发实习中我这样用 Claude Code本文记录的是个人在 AI 应用开发实习中的通用工作流。示例均为脱敏、抽象后的工程场景不涉及任何业务代码、线上数据、内部账号、配额或公司流程。刚开始用 Claude Code 时我把它当成“终端里的聊天助手”问一个问题、让它改一处代码、再问下一个问题。这样当然有效但很快会遇到两个问题对话越长越乱以及一旦允许它执行命令就不知道该把控制权交到什么程度。后来我逐渐意识到Claude Code 的价值不只是生成代码而是把理解代码库、提出计划、修改文件、运行验证、遵守规则串成一个可控的工程闭环。下面整理一套我自己常用的工作方式也把一些容易忽略的命令和安全边界放进来。说明Claude Code 更新很快。文中的命令以官方当前文档为准如果你的本机没有某个命令直接输入/查看可用列表并用claude --help核对启动参数。一、先改变一个定位它不是“自动写代码”而是项目协作者和网页聊天不同Claude Code 可以在项目目录里读取文件、搜索代码、修改文件并调用终端工具。因此一个高质量任务不应该只写“帮我实现 XX”而应把验收标准、边界和验证方式交代清楚。例如下面这段提示词比“给登录接口加限流”稳定得多请先阅读 auth 模块和现有 Redis 封装不要修改代码。 输出 1. 当前登录链路和可能的限流接入点 2. 两种实现方案及各自风险 3. 你建议的方案、需要改动的文件和测试策略。 等我确认方案后再开始实现。不要连接真实 Redis也不要执行任何会修改数据库数据的命令。我通常把一次任务拆成四个阶段先理解让它定位入口、调用链、已有约定和测试。再计划让它给出文件级改动清单、风险和验证方式。小步实现一次只做一个可验证的子任务。验证和复盘要求它跑限定范围的测试、查看 diff并解释仍未覆盖的风险。提示词写得具体不是“束缚模型”反而是在减少反复澄清和返工。尤其是明确“不做什么”往往比补充一堆实现细节更重要。二、把权限模式当作工作流开关Claude Code 可以通过Shift Tab在不同权限模式之间切换。常用的不是“永远全开”而是根据任务所处阶段切换阶段推荐模式为什么看代码、排查问题、设计方案Plan只分析不改文件、不跑命令适合先摸清情况连续修改本地代码Accept Edits减少反复确认文件编辑有副作用的终端操作仍应谨慎不确定命令影响或仓库较敏感Manual / Default关键工具调用由人确认临时沙箱、一次性脚本Bypass Permissions只在隔离且可回滚的环境使用需要特别强调claude --dangerously-skip-permissions等价于跳过权限提示不是提升产出的“性能开关”。它只适合没有真实凭证、没有生产数据、可以随时销毁的沙箱。真实仓库、共享环境、数据库和 Redis 操作宁可多一次确认也不要用“全信任”换方便。一个很实用的习惯是大任务先进入 Plan 模式确认计划后再切回可编辑模式。这能明显减少“它改得很勤快但方向不对”的情况。三、会话管理把上下文当作有限而宝贵的工作内存长会话并不天然更好。需求变更、日志、无关讨论和大段文件内容都会占用上下文让模型更容易忽略早期约束。因此我会主动管理会话。几个高频命令# 在当前目录继续最近一次会话claude-c# 从会话选择器中恢复历史会话claude--resume/rename 登录限流方案 /context /compact 请保留已确认的限流方案、文件改动和未完成测试丢弃排查过程中的无关日志。 /btw 这个项目的 token 刷新逻辑在哪个文件/rename给会话起一个能看懂的名字。隔几天回来继续做时特别有用。claude -c在当前项目继续最近一轮会话。claude --resume或/resume选择并恢复历史会话。/context查看当前上下文被什么内容占用。/compact把已完成讨论压缩为摘要继续同一个任务。最好附上“哪些结论必须保留”。/btw问一个不希望污染主线上下文的临时问题。它适合快速确认小事实不适合需要读文件、跑命令的排查。我的经验是当任务从“实现”切换到“排障”或“另一个需求”时优先新开会话当只是同一任务变长时再用/compact。不要期待模型自动分辨所有上下文的重要程度。四、终端不是附属品让结果回到同一条对话里在 Claude Code 输入框前加!可以直接执行终端命令例如!gitstatus!npmtest----runInBand!rgrateLimitsrctest这样命令输出会回到当前对话上下文接下来可以直接问“为什么这个测试失败”或者“根据这份 grep 结果入口应该放在哪里”不过不要把它当作“让 AI 随便敲命令”的理由。对于安装依赖、删文件、改配置、写数据库、调用云资源等操作我会把动作和边界说清楚可以运行单元测试和只读的 git 命令。 不要执行 git push、git commit、npm publish、删除文件、迁移数据库或访问远程 Redis。 如果必须执行上述操作先列出精确命令并等待我确认。五、Hook把“请记住”升级成能执行的工程规则提示词中的“请记住”会随着会话变长而被稀释Hook 则是在特定事件发生时由 Claude Code 的运行环境执行的确定性规则。它很适合处理那些无论模型是否记得都必须遵守的事情。例如团队里最需要保护的往往不是代码文件而是数据操作。下面的例子会在 Claude 准备运行 Bash 命令时识别常见的数据库和 Redis 写操作并强制弹出确认。这里使用ask而不是一刀切deny是为了让本地开发仍可在人工确认后继续。在项目的.claude/settings.json中注册 Hook{hooks:{PreToolUse:[{matcher:Bash,hooks:[{type:command,command:${CLAUDE_PROJECT_DIR}/.claude/hooks/guard-data-ops.sh}]}]}}再创建.claude/hooks/guard-data-ops.sh#!/usr/bin/env bashset-euopipefailinput$(cat)command$(printf%s$input|jq-r.tool_input.command // )if[[$command~(mysql|psql|redis-cli|DROP|DELETE|UPDATE|FLUSHALL|FLUSHDB)]];thenjq-n{ hookSpecificOutput: { hookEventName: PreToolUse, permissionDecision: ask, permissionDecisionReason: 检测到可能影响数据库或 Redis 的操作请人工确认环境、目标和回滚方案。 } }fi这个例子需要本机有jqWindows 环境则可以把 Hook 改为 PowerShell 脚本。真正落地时匹配规则应尽量收窄到团队实际使用的命令、环境和目录避免因为规则过宽而不断误报。除了数据保护Hook 还适合在git commit前检查提交信息是否符合团队规范在任务完成、等待确认或后台任务结束时发送桌面/IM 通知阻止危险命令例如面向错误目录的删除在写文件后异步触发 lint 或指定测试。关键区别在于Prompt 是建议Hook 是运行时约束。不过 Hook 本身也是可执行脚本必须像生产代码一样审查、版本管理和最小权限化。六、一个完整例子给接口补一个限流能力下面是我会实际给 Claude Code 的任务序列场景是给一个已有后端服务补登录限流。它不依赖具体业务适合改成自己的项目。第一步只读摸底进入 Plan 模式。请只读分析当前仓库 1. 找到登录接口、鉴权中间件、Redis 客户端封装和相关测试 2. 说明现有异常返回格式 3. 给出固定窗口、滑动窗口两种限流接入方案 4. 标出需要我确认的点。 不要修改文件、不要连接任何远程服务。第二步确认方案后实现采用“按 IP 用户标识”的固定窗口方案5 分钟最多 10 次失败登录。 只改 auth 模块和对应单元测试复用现有 Redis 封装 达到阈值时沿用项目已有的错误码格式。 先列出将修改的文件。实现后运行相关测试并给出 git diff 摘要。 不要提交代码不要连接远程 Redis。第三步把复查拆给不同视角请从以下三个角度复查刚才的改动 1. 正确性边界条件、并发和过期时间 2. 性能Redis 调用次数和热路径 3. 可维护性命名、重复逻辑、测试可读性。 不要直接修改先按“必须改 / 建议改 / 无需改”输出结论。这比一句“帮我实现限流”多花几十秒却能把 AI 的执行路径、改动范围和验证标准固定下来。最终仍然要由开发者看 diff、跑测试、理解风险工具只能提高反馈速度不能替你承担工程责任。七、我现在固定保留的习惯最后压缩成一张自己的检查清单大改动先 Plan确认后再编辑。提示词必须写清验收标准、范围和禁止事项。对话到 70% 左右就看一次/context必要时/compact。会话要命名不同任务不要硬塞进同一上下文。把数据库、Redis、部署、发布等高风险操作从“口头提醒”升级为权限规则或 Hook。允许它跑测试但不要把“测试通过”当成“需求已经正确”。每次准备交付前都看一遍 diff涉及真实环境时确认目标、命令和回滚方案。Claude Code 最强的地方不是把人从开发流程中拿掉而是让人把精力从机械的搜索、修改和往返验证转移到需求判断、架构取舍和风险控制上。把计划、上下文、权限、验证这几件事建立起来它才会从一个“会写代码的聊天框”变成真正可协作的开发工具。参考资料Claude Code CommandsClaude Code CLI referenceClaude Code Hooks referenceClaude Code permission modes