73分 HN 热榜验证:普通用户把 Claude Code 当自动补全,高手把它当可编程 Agent。差距就在两个文件。
为什么你需要认真配置 Claude Code
大多数人打开 Claude Code,敲几行需求,看着 AI 生成的代码,要么全盘接受,要么删掉重来。这种用法和「高级版自动补全」没有本质区别。
但真正的差距不在这里。
Claude Code 的核武器藏在两个 Markdown 文件里:CLAUDE.md 和 Skills。配置好这两个东西,Claude Code 的行为会从「被动响应你的指令」变成「主动理解你的项目、记住你的偏好、自主执行复杂任务」。
一位 HN 用户用一句话总结了这种差距:
"The casual user types prompts, accepts suggestions, and treats it like a fancier autocomplete. The daily driver uses it like a programmable agent with memory, custom commands, parallel sessions, and a project setup that compounds over time."
翻译:普通用户输入提示词、接受建议,把它当高级自动补全。日常重度用户把它当可编程 Agent—有记忆、自定义命令、并行会话,项目配置随时间持续增值。
这篇文章会手把手教你配置 CLAUDE.md 和 Skills,附带可直接复制的模板。
第一步:理解 CLAUDE.md 的两种模式
Claude Code 启动时会自动加载项目根目录的 CLAUDE.md。但这个文件有两种截然不同的写法——
模式 A:指令清单(适合明确规范的项目)
告诉 Claude 「这个项目有什么规则、什么不能碰、什么必须遵守」。典型内容:
# Project Rules
## Tech Stack
- Frontend: Next.js 14 (App Router), Tailwind CSS, TypeScript
- Backend: Supabase, tRPC
- Testing: Vitest + Playwright
## NEVER
- Use `any` type in TypeScript
- Introduce new dependencies without approval
- Modify `src/legacy/` folder — it's deprecated
- Skip writing tests for new features
## ALWAYS
- Use server components by default, client components only when needed
- Follow the existing error handling pattern with `Result<T, E>` type
- Keep components under 200 lines
这种模式适合有严格团队规范的场景。每次 Claude 打开项目,都会把这些规则「刻在脑子里」。
模式 B:Boris 模式(适合个人项目 / 灵活探索)
这种写法来自一位叫 Boris 的工程师在 HN 上的分享。核心思路:不告诉 Claude 做什么,而是告诉它怎么做决策。
# Boris Mode
## How I Think
- I prefer clarity over cleverness. If a solution is too smart, simplify it.
- I prioritize developer experience and readability.
- I'd rather have 5 simple functions than 1 complex abstraction.
## How I Code
- I prototype fast, refactor later
- I write tests only for business logic, not for UI
- I prefer functional composition over class inheritance
## My Pet Peeves
- Over-engineered patterns that solve problems I don't have
- Premature optimization
- Configuration files that require reading docs to understand
## Current Focus
- Shipping the onboarding flow this sprint
- Reducing bundle size by 20%
- Cleaning up tech debt in the auth module
Boris 模式的核心洞察:你不可能把所有规则都写下来。但你写下的「思考方式」和「偏好」,Claude 会内化为决策框架,在没有显式指令的场景下也能做出符合你预期的选择。
我个人推荐:指令清单 + Boris 模式的混合体。规则部分用指令,风格部分用 Boris。
第二步:CLAUDE.local.md —— 你的私人覆盖层
这是很多人不知道但极其好用的功能。
CLAUDE.md 通常提交到 Git,属于团队共享配置。但有些东西你不想共享——你个人的代码偏好、你的实验性配置、你的私有工具路径。
这时候,在项目根目录创建 CLAUDE.local.md(确保在 .gitignore 中),Claude Code 会同时加载它,且 .local 的优先级更高。
# Local overrides (don't commit)
## My Tools
- I use Warp terminal with custom aliases
- My preferred AI tool for quick Q&A is `claude` CLI
- Local DB runs on port 5433, not 5432
## My Style
- I like verbose comments in Chinese for complex logic
- I prefer async/await over Promise chains
- I use zod for runtime validation even in internal code
## Experimental
- Testing out Biome as ESLint replacement
- Trying `bun` for script running (faster than tsx)
第三步:Skills —— 你的可复用 Agent 能力模块
如果 CLAUDE.md 是「长期记忆」,Skills 就是「专业技能包」。
Skill 基本结构
---
name: api-designer
description: RESTful API 设计最佳实践——自动检查端点命名、错误码、分页规范
---
# API Designer Skill
## Rules
- All endpoints use `/api/v1/` prefix
- Error responses follow RFC 7807 (Problem Details)
- Pagination uses cursor-based (not offset-based)
- Rate limiting headers must be included in all responses
## Check when reviewing API code
1. Are error codes consistent (4xx for client, 5xx for server)?
2. Is pagination response wrapped in `{ data: [], next_cursor: string | null }`?
3. Are all input fields validated with zod schemas?
4. Do DELETE endpoints return 204 with no body?
## Anti-patterns
- Don't nest resources deeper than 2 levels
- Don't use verbs in URLs (`/getUser` → GET `/users/:id`)
- Don't return raw DB errors to clients
把这个文件保存到项目 .claude/skills/api-designer.md,然后在 CLAUDE.md 中激活:
## Active Skills
- `.claude/skills/api-designer.md` — API 设计审查
- `.claude/skills/db-query-optimizer.md` — SQL 查询优化
之后每次你让 Claude 写 API 代码,它会自动应用 API Designer 的规范。
实战 Skill 模板合集
我整理了三个最常用的 Skill 模板,复制即用:
Skill 1: PR Reviewer(代码审查助手)
---
name: pr-reviewer
description: 代码审查清单——自动检查安全、性能、可维护性问题
---
# PR Reviewer Skill
## Security Checklist
- [ ] User input is validated AND sanitized
- [ ] No secrets/tokens in code
- [ ] SQL queries use parameterized statements
- [ ] Auth checks on every protected endpoint
## Performance Checklist
- [ ] No N+1 queries
- [ ] Large lists are paginated
- [ ] Expensive computations are memoized
- [ ] Images are lazy-loaded
## Maintainability Checklist
- [ ] Function name describes what it does
- [ ] No magic numbers (use named constants)
- [ ] Error messages are actionable
- [ ] New code has tests
## Review Comment Template
当发现问题时,用以下格式给出建议:
**🔴 [严重程度] 文件名:行号**
问题描述 → 为什么是问题 → 建议修改方案
Skill 2: Commit Message Generator
---
name: commit-msg
description: 生成符合 Conventional Commits 规范的提交信息
---
# Commit Message Skill
## Format
`<type>(<scope>): <description>`
## Types
- `feat`: 新功能
- `fix`: Bug 修复
- `refactor`: 重构(不改变行为)
- `perf`: 性能优化
- `test`: 测试相关
- `docs`: 文档
- `chore`: 构建/工具
## Rules
- Description 用英文,50 字符以内
- 重大变更加 `BREAKING CHANGE:` 页脚
- 关联 Issue 用 `Closes #123`
Skill 3: 中文技术写作助手
---
name: cn-tech-writer
description: 中文技术文档写作规范
---
# 中文技术写作规范
## 排版
- 中英文之间加空格:`使用 React 开发`
- 数字与单位之间加空格:`100 MB`
- 代码用反引号包裹:`useState`
## 术语
- 专有名词保持原文大小写:`GitHub`,不是 `github`
- 首次出现的英文术语给出中文解释后括号标注原文
- 技术概念用「」标注,非书名号《》
## 风格
- 用「你」而非「您」
- 主动语态优先
- 每个段落一个核心观点
- 代码块必须标注语言
第四步:被低估的命令
HN 讨论里特别提到两个大部分人没用过的 Claude Code 命令:
/goal
不输入具体指令,而是描述你的目标。Claude 会自主拆解步骤、执行、并汇报进展。
# 而不是:
> 帮我创建一个 Next.js 项目,用 TypeScript,加 Tailwind,配好 ESLint...
# 试试:
> /goal 我要从零搭建一个简单的博客项目,技术栈 Next.js + MDX
Claude 会自己规划:初始化项目 → 配置 Tailwind → 创建 MDX 解析 → 搭建基础路由 → 写第一个示例文章。中间遇到问题会自己查阅文档、尝试解决。
/insights
查看 Claude 在对话过程中积累的「洞察」。帮助发现哪些指令有效、哪些被反复纠正。
第五步:完整的 CLAUDE.md 模板(混合版)
把上面的所有内容整合起来,这是一个生产级模板:
# CLAUDE.md — Project Context
## Project: [项目名称]
## Stack: [技术栈]
---
## My Coding Philosophy (Boris Mode)
- 清晰 > 聪明
- 5 个简单函数 > 1 个复杂抽象
- 先用最直接的方案,跑通了再优化
- 测试只写给业务逻辑,不给 UI 写
## Project Rules
- NEVER: [你的禁区]
- ALWAYS: [你的铁律]
- PREFER: [你的偏好]
## Active Skills
- .claude/skills/api-designer.md
- .claude/skills/pr-reviewer.md
## File Structure
src/
├── app/ # Next.js App Router 页面
├── components/ # 可复用组件(<200 行)
├── lib/ # 工具函数
├── server/ # 服务端逻辑(tRPC routers)
└── types/ # 共享类型定义
## Common Commands
- `pnpm dev` — 启动开发服务器
- `pnpm test` — 运行测试
- `pnpm lint` — 代码检查
## Current Sprint
- [当前重点任务1]
- [当前重点任务2]
一个真实效果对比
假设你要加一个「用户头像上传」功能。
没有 CLAUDE.md:Claude 可能用 any 类型、忘记加文件大小限制、不做图片类型校验、直接把文件存到项目目录。
有 CLAUDE.md(含 Skills):
- API Designer Skill 确保端点命名统一、错误码规范
- PR Reviewer Skill 确保有 Input Validation、文件类型白名单
- Boris 模式确保代码简洁、不过度设计
- .local.md 确保用你习惯的工具链
一次生成,质量接近你手动写的代码。
行动清单
今天就花 15 分钟,把这三个文件建起来:
- CLAUDE.md(5 分钟)— 用混合模板,写下你的核心规则和偏好
- CLAUDE.local.md(3 分钟)— 个人覆盖层,加
.gitignore - Skills 文件夹(7 分钟)— 创建 1-2 个 Skill,从 PR Reviewer 开始
每多一次使用,CLAUDE.md 就多一层积累。这就是「可编程 Agent」与「高级自动补全」的本质区别。
推荐阅读:Claude Code as a Daily Driver — 完整指南(HN 73 分,5月27日热榜)
如果你有自己得意的 CLAUDE.md 配置,欢迎在评论区分享 —— 我会精选优质的收录到下一期「Agent工坊」的配置合集里。
