只要前期把护栏搭好,Claude Code 一个周末就能把一个空文件夹做成上线的双语内容站。这篇写的是我自己在跑的流程,包括 Agent 会迷路、需要你出手的那些环节。前提是你看得懂它生成的代码,并且在它写错时敢于驳回。
一句话结论
- 做整个仓库用 Claude Code(终端 Agent,已打包进 Claude Pro,截至 2026 年 6 月月付 20 美元、年付合 17 美元);网页版跨 session 会丢上下文。
- 在生成任何东西之前,先在仓库根放一份精简的
CLAUDE.md。它会在每次 session 开始时被自动读取,能挡掉大部分返工。 - 用 Astro 6(2026 年的当前稳定版)配 Content Layer API,搞定 content collections、MDX 和按语言拆分的 sitemap。
- 要变现的内容站部署到 Cloudflare Pages(免费、允许商用、带宽不限),别用 Vercel Hobby(免费但仅限非商用)。
- 大改用 plan 模式,一个 commit 一件事,每个 diff 都 review。Agent 做增量任务远比白板开始稳。
为什么用 Agent,而不是起步模板
大多数”AI 帮我建了个站”的帖子都跳过了最难的中间段:Agent 一口气生成 40 个文件,一半互相冲突,你花两小时拆解。解法是把 Claude Code 当成一个很强但没真发布过站的初级工程师:给清晰的目录结构、窄任务、每个 commit 都 review。这样它确实能干 80% 的活,剩下 20% 是只有你知道的部分——你的细分主题、分类体系、语气。
Claude Code 只跑 Anthropic 自家模型。截至 2026 年 6 月,主力是 Claude Sonnet 4.6,难一点的推理交给 Claude Opus 4.7,两者通过 API 都是 100 万 token 上下文。在 20 美元的 Pro 订阅下,终端里大约有 20 万 token 的工作上下文,对一个内容仓库来说,只要每次 session 聚焦就够用。
一份能避免大部分返工的初始 CLAUDE.md
这份文件放在仓库根,每次在该目录跑 Claude Code 时都会被自动加载。保持简短、写成声明式。
# 站点说明
技术栈:Astro 6 + MDX + Tailwind。中英双语,目录 src/content/articles/{en,zh}/。
路由:/en/articles/{slug}、/zh/articles/{slug};sitemap 按语言拆分。
Frontmatter 字段:title、description、urlSlug、category、tags[]、publishedAt、lang、translationKey。
# 给 Agent 的硬约束
- 不要凭空发明 frontmatter 字段,加之前先读 src/content/config.ts。
- 翻译对共享 translationKey;slug 和 tags 在 en/zh 之间必须一致。
- 不要在没明确同意时改部署配置(wrangler.toml、firebase.json、vercel.json)。
- 一个 commit 一件事,diff 要能被人 review。声明做完之前先跑 `npm run build`。
最后一行很关键:告诉 Agent 怎么自检,它才不会把跑不起来的代码丢给你。
这套流程适不适合你
- 你已经想清楚要做什么(主题、语言、变现方式),只是想快点上线。
- 你看得懂代码、敢驳回 AI 的建议,而不是照单全收。
- 你能用一段话描述内容结构:分类、frontmatter 字段、路由怎么走。
- 部署目标和域名都已经准备好了。
目标清晰、只想加速时用 Claude Code;还在选技术栈时别用,它会顺着你随口提到的第一个选项一路走到黑。
实操步骤
- 起仓库。 空仓库里先放一份
CLAUDE.md,用人话写清楚:技术栈是 Astro 6 + MDX、语言 en/zh、路由结构、content collection 的字段。 - 在 plan 模式下搭骨架。 切到 plan 模式(截至 2026 年 6 月在 CLI 里按 Shift+Tab),让 Claude Code 搭起 Astro 项目骨架,包括 content collections、i18n 路由、最小布局。先批准方案,再逐行看完生成的
astro.config.mjs和src/content/config.ts再接受。 - 手写 schema 样板。 手写一篇真实文章作为 frontmatter 样板,让 Agent 有具体形状可对照。绝对不要让它自己发明 schema——写到 50 篇时 schema 就改不动了。
- 组件一个个交。
BaseLayout、ArticleLayout、Nav分多次对话来做,每个 review 完再做下一个,别让它一口气生成全套。 - 生成机械性文件。 sitemap、robots.txt、RSS feed 都是定义清楚的任务,AI 做得很稳,三个一起让它做。
- 集中管理 SEO meta。 canonical、hreflang、OpenGraph 这些标签,先列清楚你要哪些,让它做成一个单独的 helper 组件,而不是散在各页面。
- 第一次部署自己动手。 推到 Cloudflare Pages 或 Vercel 时自己来,盯着构建输出,跑通之后再自动化。
- 上线后切到 review 模式。 做新文章和重构时,Agent 的增量能力远强于白板开始。批量琐事(链接审查、alt 文本补全)可以丢给 subagent 并行处理,每个跑在自己的上下文窗口里。
变现内容站部署到哪
如果你的站要挂广告或联盟链接,部署目标的选择就不只是表面问题。Vercel 的 Hobby 套餐免费,但在其 fair-use 条款里被明确限定为非商用——所以靠内容赚钱的站要么上 Pro(每席每月 20 美元),要么换地方。
| 平台(截至 2026 年 6 月) | 免费档 | 免费档可商用? | 带宽 | 构建额度 |
|---|---|---|---|---|
| Cloudflare Pages | 有 | 可以 | 不限 | 500 次/月 |
| Vercel Hobby | 有 | 不可(仅限非商用) | 100 GB 快速传输 | 6,000 构建分钟/月 |
| Netlify Free | 有 | 可以 | 100 GB/月 | 300 构建分钟/月 |
| Firebase Hosting(Spark) | 有 | 可以 | 存储 10 GB,每日传输 360 MB | 无(用 CLI 部署) |
对一个会变现的静态 Astro 内容站,Cloudflare Pages 是默认首选:免费档允许商用、带宽不限——一旦某篇文章起量,这一点就很重要。如果你看重 Vercel 的开发体验和分析、且不在意每月 20 美元,那 Vercel Pro 也值。
容易踩的坑
- 让 Agent 选技术栈。 它会默认拉训练数据里当时流行的那套,可能塞进 Tailwind、shadcn 和十几个你根本不需要的包。把技术栈写进
CLAUDE.md。 - 接受它第一版提的内容 schema。 写到 50 篇再改 frontmatter 就是噩梦。第 3 步自己把 schema 定死。
- 说”做一个好看的首页”却不给约束。 结果只会是个通用 SaaS landing page。要明确指定区块、内容、你真正想要的语气。
- 不分阶段提交。 每次接受改动就 commit 一次,下个任务翻车时你才回得干净。
- 相信它的部署配置。 第一次部署必须自己盯着 build 看,跑通了再用 GitHub Actions 自动化。
- 忘了构建那一步。 Agent 会不跑
npm run build就宣布功能做完。把构建命令写进CLAUDE.md,让它自检。
FAQ
- 一定要用 Claude Code CLI 吗,网页版不行?: 做整个仓库要用 CLI——它能读写项目文件、跑命令。网页版只适合片段级别的提问,跨 session 会丢上下文。截至 2026 年 6 月,CLI 已随 Claude Pro 一起打包,月付 20 美元(年付合 17 美元)。
- Claude Code 用的是哪个模型?: 只用 Anthropic 自家模型。截至 2026 年 6 月,默认主力是 Claude Sonnet 4.6,难推理交给 Claude Opus 4.7。你没法让 Claude Code 去跑 GPT-5.5 或 Gemini 3.1 Pro——那些得用 Cursor 或 Codex。
- 生成的代码能直接信吗?: 当作一个不太熟的同事提的 PR:读、跑、测。把
npm run build写进CLAUDE.md,让 Agent 在宣称成功前先自检。命中率很高,但绝不是 100%。 - Claude Code 双语路由能搞对吗?: 只要你一开始就把路由规则告诉它(
/en/articles/[slug]和/zh/articles/[slug]),并要求每对共享translationKey,就没问题。让它自由发挥就会出各种不一致的路径。 - 可以让它也写文章吗?: 做结构性草稿可以;要发布的内容必须人工 review 一遍——一是为了质量,二是为了不踩搜索引擎和 AdSense 对机器生成内容的政策红线。
- 用 Astro 6 还是留在 Astro 5?: Astro 6 是 2026 年的当前稳定版,它从 Astro 5 继承来的 Content Layer API 正是 content collections 的合适地基。在
CLAUDE.md里把大版本钉死,免得 Agent 把 v5 和 v6 的写法混在一起。