Claude Code 的工程价值不在"补全几行代码",而在把"读仓库 → 定计划 → 改多文件 → 跑测试 → 调试验证"的完整工作流交给一个可约束、可观测、可回滚的编码智能体。本文按环境搭建、权限与规则配置、自主编码工作流、工程落地四段,配可复用的配置文件与代码示例。
1. 安装与初始化
# 环境要求:Node.js >= 18
node -v
# 安装 Claude Code CLI
npm install -g @anthropic-ai/claude-code
# 在项目根目录启动,自动感知项目结构
cd /path/to/your-project
claude2. 项目侧准备(智能体能干活的前提)
# 1. 工作区干净,随时可回滚
git status
git checkout -b feat/agent-workflow
# 2. 项目要有可执行的验证入口
cat package.json | jq '.scripts'
# { "test": "jest", "lint": "eslint src/", "build": "tsc -p ." }工程原则:没有测试入口的项目,智能体的改动无法自动验证,产出质量不可控。先让项目"可验证",再让智能体"动手改"。
3. 项目说明文件(CLAUDE.md)
# 项目约定
## 技术栈
- TypeScript 5.x + Node 20,包管理使用 pnpm
- 测试框架:Vitest;代码规范:ESLint + Prettier
## 目录约定
- src/api:HTTP 接口层,仅做参数校验与响应封装
- src/services:业务逻辑,禁止直接访问数据库
- src/repositories:数据访问层,唯一允许写 SQL 的地方
## 硬性约束
- 所有导出函数必须有显式返回类型
- 禁止修改 migrations/ 目录下的历史文件
- 提交前必须通过:pnpm lint && pnpm test这是最被低估的配置:项目约定写进
CLAUDE.md,智能体每次任务都会遵循,等于给它一份"入职手册"。
1. 权限配置文件(.claude/settings.json
{
"permissions": {
"allow": [
"Read(**)",
"Bash(pnpm lint:*)",
"Bash(pnpm test:*)",
"Bash(git diff:*)",
"Bash(git status:*)"
],
"deny": [
"Bash(rm -rf:*)",
"Bash(git push:*)",
"Bash(pnpm publish:*)",
"Read(./.env*)",
"Read(./secrets/**)"
]
}
}设计要点:
2. 自定义命令(.claude/commands/)
<!-- .claude/commands/fix-bug.md -->
定位并修复以下 Bug,严格按步骤执行:
1. 复现:阅读报错信息与相关代码,说明根因(不要先改代码)
2. 计划:列出要修改的文件与改动点,等待确认
3. 修复:最小改动原则,不顺手重构无关代码
4. 验证:运行 `pnpm test` 与 `pnpm lint`,失败则自行修正
5. 汇报:输出改动摘要 + 根因说明 + 验证结果
Bug 描述:$ARGUMENTS使用时:/fix-bug 订单列表分页在第 2 页之后重复返回第一页数据
1. 步骤一:先读仓库,再动手
> 先梳理 src/services/order 目录的职责、依赖关系和被调用情况,
> 输出模块结构说明。暂时不要修改任何文件。2. 步骤二:计划先行
> 任务:为订单服务增加"超时未支付自动取消"能力。
> 约束:不改动对外接口签名;新增逻辑放 services 层;必须有单测。
> 请先给出改动计划(文件清单 + 改动点 + 风险),等我确认后再执行。3. 步骤三:执行与自验证
> 按计划执行。每完成一个文件后运行 `pnpm test`,
> 全部完成后运行 `pnpm lint && pnpm test`,失败自行修复直到通过。4. 步骤四:人工验收
# 审查 diff——这是不可跳过的底线
git diff
# 抽查关键改动是否符合业务预期
git diff src/services/order-timeout.service.ts
# 确认验证结果
pnpm test -- --coverage5. 一个真实的自动化任务示例
> 为 src/repositories 下所有 Repository 类补充单元测试:
> - 使用 Vitest + 内存 SQLite
> - 覆盖正常路径、空结果、异常路径
> - 目标:src/repositories 覆盖率 >= 85%
> - 完成后输出覆盖率报告,未达标继续补充这类任务智能体可以完整闭环:读代码 → 写测试 → 跑测试 → 修失败用例 → 出报告。这是它投入产出比最高的场景。
1. 验证闭环接
# .github/workflows/agent-pr-check.yml
name: Agent PR Check
on: [pull_request]
jobs:
verify:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- run: pnpm install --frozen-lockfile
- run: pnpm lint
- run: pnpm test -- --coverage
- name: Coverage Gate
run: |
COV=$(pnpm test -- --coverage --reporter=json | jq '.total.lines.pct')
echo "coverage=$COV"
awk "BEGIN{exit !($COV >= 80)}" || { echo "覆盖率低于 80%"; exit 1; }智能体产出的 PR 必须过 CI——这是把"AI 写的代码"纳入工程标准的唯一方式。
2. 提交规范与追溯
# 智能体产出的提交需可追溯
git commit -m "feat(order): add auto-cancel for unpaid orders
- 新增 OrderTimeoutService,定时扫描超时订单
- 补充单测,services 覆盖率 87%
- Verified: pnpm lint && pnpm test 全部通过
Co-authored-by: Claude Code <noreply@anthropic.com>"3. 团队协作规范
规则 | 说明 |
|---|---|
任务粒度 | 单个任务改动不超过 5 个文件 |
必过门槛 | lint + test + review,三者缺一不可 |
禁止事项 | 架构决策、依赖升级、生产配置由人执行 |
上下文管理 | 长任务每完成一步要求智能体总结进展 |
4. 上下文管理的代码化实践
# 大项目分模块处理,避免一次加载过多无关代码
claude --add-dir src/services/order --add-dir src/repositoriesrm -rf、git push 必须 deny;Claude Code 工程落地的关键,是把它当一个需要入职培训、权限约束、质量验收的工程师来管理:CLAUDE.md 是入职手册,settings.json 是权限边界,计划先行是工作方法,CI 是验收标准,git diff 是最后防线。四步闭环跑顺,它带来的不是打字速度的提升,而是任务吞吐量的量级变化。从给项目写第一份 CLAUDE.md 开始。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。