vault: add Claude Code 新项目开发最佳实践 (2026 调研) + 3 zettels + MOC links
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
---
|
||||
created: "2026-06-27 06:25"
|
||||
type: zettel
|
||||
tags: [zettel, claude-code, workflow, plan-mode, best-practices]
|
||||
source: "Anthropic best-practices 官方文档 (2026)"
|
||||
---
|
||||
|
||||
# Explore-Plan-Implement-Commit 四阶段工作流
|
||||
|
||||
用 Claude Code 干活的官方推荐节奏是**先看、再想、后写、最后交**,而不是一上来就让它改代码。把"改动"推迟到上下文充分、计划成形之后,是质量的最大杠杆。
|
||||
|
||||
四阶段:
|
||||
|
||||
1. **探索 Explore** —— 进 plan mode(只读),让它读代码 / 需求、建立上下文,**不碰任何文件**。
|
||||
2. **规划 Plan** —— 产出详细计划;计划可 `Ctrl+G` 在编辑器里直接改,再确认。
|
||||
3. **实现 Implement** —— 退出 plan mode,**对照计划写代码 + 测试**。
|
||||
4. **提交 Commit** —— 写描述性 commit,开 PR。
|
||||
|
||||
为什么有效:plan mode 的只读约束把"理解"和"修改"在物理上分开,避免模型在尚未看懂全局时就贸然动手;计划成为一份可人工审校、可当 prompt 传递的中间产物。这与"把计划当 prompt"和"阶段间隔离上下文"是同一思想的不同侧面。
|
||||
|
||||
---
|
||||
|
||||
## Related
|
||||
|
||||
- [[20260320100300 Plans as Prompts设计模式]] —— 计划作为可传递的 prompt
|
||||
- [[20260320100100 上下文腐烂与全新窗口隔离]] —— 为什么阶段间要隔离
|
||||
- [[20260627062504 自给自足验证循环配合 TDD]] —— Implement 阶段的自我纠正闭环
|
||||
- [[Claude Code 新项目开发最佳实践 (2026 调研)]]
|
||||
|
||||
## Source
|
||||
|
||||
- https://code.claude.com/docs/en/best-practices
|
||||
33
6 - Zettelkasten/20260627062504 自给自足验证循环配合 TDD.md
Normal file
33
6 - Zettelkasten/20260627062504 自给自足验证循环配合 TDD.md
Normal file
@@ -0,0 +1,33 @@
|
||||
---
|
||||
created: "2026-06-27 06:25"
|
||||
type: zettel
|
||||
tags: [zettel, claude-code, tdd, verification, agentic-loop, best-practices]
|
||||
source: "Anthropic 团队用例 PDF + best-practices (2026)"
|
||||
---
|
||||
|
||||
# 自给自足验证循环配合 TDD
|
||||
|
||||
给 Claude 一个**它自己能跑、能读结果、能据此纠正**的验证手段(build / test / lint),它就能闭环自我迭代而不必每步等人。这个"自给自足循环"(self-sufficient loop)是 agentic 编码可靠性的核心。
|
||||
|
||||
关键在于**验证信号的客观性**:测试通过 / 失败是二值、确定、模型无法自我安慰的反馈。因此**先写测试再写实现(TDD)时效果尤其好** —— 测试先确立了一个明确的 GREEN 目标,模型的每次改动都有可证伪的对照,而不是"我觉得写完了"。
|
||||
|
||||
落地要点:
|
||||
- 在 `CLAUDE.md` 写清"如何运行测试 / lint / build"(否则模型会反复猜错命令)。
|
||||
- 用 **Hooks**(`PostToolUse(Edit|Write)`)把验证变成**确定性自动触发**,不依赖模型自觉去跑。
|
||||
- 对照 RED→GREEN→REFACTOR:先让测试失败,再让模型实现到通过。
|
||||
|
||||
本质:把"目标回溯验证"内建进循环,胜过让模型做"正向任务检查"自评。
|
||||
|
||||
---
|
||||
|
||||
## Related
|
||||
|
||||
- [[20260320100200 目标回溯验证vs正向任务检查]] —— 为什么客观验证优于自评
|
||||
- [[20260319120100 Hook驱动优于提示词驱动]] —— 用 hook 强制验证发生
|
||||
- [[20260627062503 Explore-Plan-Implement-Commit 四阶段工作流]] —— Implement 阶段嵌入此循环
|
||||
- [[Claude Code 新项目开发最佳实践 (2026 调研)]]
|
||||
|
||||
## Source
|
||||
|
||||
- https://www-cdn.anthropic.com/58284b19e702b49db9302d5b6f135ad8871e7658.pdf
|
||||
- https://code.claude.com/docs/en/best-practices
|
||||
38
6 - Zettelkasten/20260627062505 CLAUDE.md 是目录树拼接加载而非覆盖.md
Normal file
38
6 - Zettelkasten/20260627062505 CLAUDE.md 是目录树拼接加载而非覆盖.md
Normal file
@@ -0,0 +1,38 @@
|
||||
---
|
||||
created: "2026-06-27 06:25"
|
||||
type: zettel
|
||||
tags: [zettel, claude-code, memory, claude-md, context]
|
||||
source: "Anthropic memory 官方文档 (2026)"
|
||||
---
|
||||
|
||||
# CLAUDE.md 是目录树拼接加载而非覆盖
|
||||
|
||||
多个 `CLAUDE.md` 不是"最近的那个赢",而是**沿目录树向上发现、全部拼接(append)**。理解这点才能正确分层放置规则。
|
||||
|
||||
机制:
|
||||
- **向上遍历目录树发现**所有 `CLAUDE.md`。
|
||||
- **祖先目录的文件启动时全量加载**;**子目录的嵌套文件在读取该目录时才按需加载**。
|
||||
- 所有命中的文件**拼接而非覆盖** —— 个人(`~/.claude/CLAUDE.md`)、项目(`./CLAUDE.md`)、本地(`./CLAUDE.local.md`)叠加生效。
|
||||
- monorepo 父目录会自动拉取;支持 `@path/import` 引入其它文件。
|
||||
|
||||
推论(分层放置策略):
|
||||
- **跨项目偏好** → `~/.claude/`(用户级)。
|
||||
- **团队共享的项目规范** → `./CLAUDE.md`(入 git)。
|
||||
- **个人临时覆盖** → `./CLAUDE.local.md`(入 `.gitignore`)。
|
||||
- **某子模块专属规则** → 放该子目录的 `CLAUDE.md`,只在进入时按需加载,**省主上下文**。
|
||||
- 单文件 **< 200 行**;过大拆到 `.claude/rules/` 的 path-scoped rules(带 `paths` frontmatter)。
|
||||
|
||||
因为是"拼接 + 全量加载祖先",所以越靠上、越大的文件,对每次会话的 token 成本越高 —— 这正是"保持简洁、按目录就近放置"的底层原因。
|
||||
|
||||
---
|
||||
|
||||
## Related
|
||||
|
||||
- [[20260308223000 Claude Code Memory 日常最佳实践]] —— 5 层 memory 全景与 Auto memory
|
||||
- [[20260319120200 MCP数量与上下文窗口的反比关系]] —— 同样是上下文预算权衡
|
||||
- [[Claude Code 新项目开发最佳实践 (2026 调研)]]
|
||||
|
||||
## Source
|
||||
|
||||
- https://code.claude.com/docs/en/memory
|
||||
- https://code.claude.com/docs/en/best-practices
|
||||
Reference in New Issue
Block a user