本章的目标,是通过带你一步步走过 Claude Code 在实践中的实际工作方式,帮助你真正熟悉 Claude Code。我们不会一上来就直接跳进高级功能,而是先建立起对这个系统本身、它所使用的术语,以及它如何与代码库交互的理解。在这个过程中,你会看到 Claude Code 如何观察一个项目、构建上下文,并利用这些上下文来辅助完成编码任务。
我们会先搭建一个简单的 Next.js 项目,并将其与 Claude Code 集成起来。这样,我们就能以一种更具实践性的方式去理解诸如 CLAUDE.md 文件、权限系统,以及为什么“有意识地管理上下文”这件事非常重要。我们还会看看 Claude Code 如何通过 Model Context Protocol(MCP) 使用外部工具进行扩展,以及这种能力在日常工作流里能带来什么。
本章还会介绍规范驱动设计(spec-driven design) ,把它作为一种在代码真正开始编写之前就引导 Claude 行为的方法。通过创建并引用一份规格说明,我们可以影响最终结果的质量和一致性。作为这个过程的一部分,我们会开始搭建一个名为 HookHub 的项目。你在这里构建的 HookHub 项目,会贯穿全书,作为后续进入更高级 agentic workflow(智能体工作流)时的共同参考基线。
本章将涵盖以下主题:
- 搭建 Next.js 项目
- 将 Playwright MCP 连接到 Claude Code
- 使用规范驱动设计
- 基于规范驱动设计实现主页面
好了,我们开始。
安装 Claude Code
在继续之前,请先确保你的机器上已经安装了 Claude Code。
现在,Claude Code 提供了一个原生安装器(native installer),它会自动识别你的操作系统,并安装对应版本。请按照官方安装指南操作:
https://code.claude.com/docs/en/setup#native-install-recommended
该安装器会根据你的机器类型完成安装与更新。安装完成后,你可以运行下面的命令进行验证:
claude --version
确认 Claude Code 已经正确安装后,再继续下面的 Next.js 配置步骤。
本章中所有终端命令的演示都基于 macOS。如果你使用的是 Windows,那么应当在 WSL(Windows Subsystem for Linux) 或类似的类 Unix Shell 环境中运行这些命令。这样可以确保 npx、npm、claude 以及其他 CLI 工具的行为,与示例中展示的一致。
搭建 Next.js 项目
在这一节中,我们会手动搭建 Next.js 项目。虽然也可以直接让 Claude 帮我们创建 Next.js 项目,但由于本地权限问题以及一些需要预先处理的配置,我这里选择手动完成。对于愿意这么做的人来说,只要语法写得正确,Claude 完全有能力替你执行这些 Bash 命令。
我们先从创建一个 Next.js 项目开始。你可以参考 Next.js 官方安装文档(https://nextjs.org/docs/app/getting-started/installation),也可以直接粘贴以下命令:
npx create-next-app@latest
正如下面截图中所示,我们当前位于 project/HookHub 分支。
图 2.1 —— project/hookhub 分支
我们粘贴这条命令,开始初始化 Next.js 项目。系统会弹出一个确认选项,如下所示:
edenmarco@Edens-MacBook-Pro-2 claude-code-crash-course % npx create-next-app@latest
Need to install the following packages:
create-next-app@15.4.6
Ok to proceed? (y)
在粘贴命令之后,你可能会遇到一个错误。这是因为当前用户没有足够权限,无法在系统范围内全局安装这些包。
有两种办法可以解决这个问题。一种是使用 sudo 来运行命令;另一种是调整 npm 的权限设置,使安装能够在无需提升权限的情况下完成。为了简单起见,这里我们使用 sudo 重新执行命令,以获得所需权限。
一旦命令以正确权限执行,Next.js 项目的脚手架过程就会顺利继续。系统会提示你确认若干配置选项。选择默认选项并继续即可。接着,相关依赖会被安装,Next.js 项目的样板代码(boilerplate code)也会被自动生成。
安装完成之后,进入新创建的项目目录:
cd hookhub
然后启动开发服务器:
npm run dev
如果你在错误的目录下运行这个命令,它会执行失败。因此,在运行之前请确保你已经进入项目目录。
当服务器成功启动后,在浏览器中打开 http://localhost:3000。你应该能够看到默认的 Next.js 样板应用。
到这一步为止,Next.js 项目已经在本地运行起来,并且准备好与 Claude Code 集成。重新运行该命令后,我们创建出 hookhub 项目。对所有提示都选择 Yes,并安装所有必要依赖。安装完成后,你就能看到 Next.js 项目的样板代码了。
运行并验证应用
当所有配置完成后,我们进入 hookhub 目录,并使用 npm run dev 启动项目。
这时,Next.js 应用已经运行起来了。打开 localhost:3000,你会看到标准的 Next.js 默认样板应用,如下所示:
图 2.2 —— 运行在 localhost:3000 上的默认 Next.js 应用
初始化 Claude Code
在进行下一步修改之前,我们先回到 Claude Code,为它提供当前项目的上下文信息。这个过程是通过初始化 CLAUDE.md 文件来完成的,以便这些文件后续可以被纳入项目上下文。
Claude Code 是通过 Cursor 集成打开的。我个人更喜欢把 Claude Code 放在界面的中央,把代码编辑器放在右侧,如图所示。这种布局可以让 Claude Code 成为主要驱动者。
图 2.3 —— 通过 Cursor Integration 打开的 Claude Code
当你使用 Claude Code 初始化一个项目时,第一步就是运行 /init 命令。无论这个项目是全新的,还是已经包含大量文件,这一步都是一样的。当 /init 被执行时,Claude 会扫描文件、检查它们的内容,并开始生成对代码库的整体理解。
Claude 会识别技术栈、主要内容和目录结构。所有这些信息都会被写入一个 CLAUDE.md 文件中,后面我们还会进一步深入讲解这些文件。最终,这些 Markdown 文件会分布在项目的不同位置,以支撑上下文工程。它们的目的,就是在每次请求时,都向 LLM 提供高质量的上下文,从而让 LLM 更容易生成准确且有用的代码。
当 Claude 运行时,它的状态会显示为 Booping。
图 2.4 —— Cursor Integration 中的 Booping 状态
在这里,Claude 正在分析仓库、探索目录结构、读取文件内容。接下来,它会创建一个任务来分析代码库结构,并执行一系列批量命令,用于列出文件并读取文件内容。
请注意,对于规模较大的项目,这个过程可能会花更长时间。等到这一切完成后,Claude 会基于它收集到的信息,准备创建 CLAUDE.md 文件,并生成如下内容:
图 2.5 —— 自动生成的 CLAUDE.md 文件,包含项目概览与常用命令
正如你所看到的,一个 CLAUDE.md 文件已经被创建出来,其中包含项目结构以及相关细节。
为了保存这个文件,Claude 会请求你的权限。你可以选择允许它写入该文件,并继续编辑且不再重复提示;也可以拒绝这次修改,以便自己手动调整或直接丢弃。这个权限系统适用于每一次新文件创建和每一次文件编辑。
Opened changes in Cursor
Save file to continue...
Do you want to make this edit to CLAUDE.md?
1. Yes
2. Yes, and don't ask again this session (shift+tab)
3. No, and tell Claude what to do differently (esc)
这是实践安全 agentic coding(智能体式编码)的一个重要组成部分。如果给予它不受限制的访问权限,很快就可能导致意料之外的文件修改和 Bug。保持人为控制,才能确保工作流更加安全。
这里先选择 Yes,并允许在当前会话中不再重复询问。Claude 会完成整个过程,并创建出 CLAUDE.md 文件。
CLAUDE.md 文件的内容
这个文件会包含项目架构、结构,以及如下这类基础信息:
- 项目的目标
- 要解决的业务问题
- 项目如何运行
- 所使用的框架,包括 Next.js
- 文件夹与目录结构
从这一刻开始,每当向 Claude Code 发送 Prompt 时,它都会优先加载相关的 CLAUDE.md 文件。这些文件会随着项目变化而动态演化。当项目发生重大更新时,可以再次运行 /init,并在需要时继续添加更多 CLAUDE.md 文件。
随着更多元数据和结构化信息被提供给 Claude,它的行为会变得更稳定,生成结果的质量也会更高。
Claude Code 现在提供了专用安装器,可以自动处理安装和更新。如果出现问题,重新运行安装器通常就能解决。
退出当前会话并重新启动后,你还会发现一个新的命令:security review。这个命令会引入一个专门用于安全审查的子智能体,它可以帮助进行安全检查与针对常见漏洞的渗透测试。它会分析你的代码库,并标记出一些常见问题,例如不安全的编码模式、错误配置,以及与 OWASP Top 10 风险对齐的漏洞。
关于子智能体的内容,我们会在第 3 章中深入讲解。
将 Playwright MCP 连接到 Claude Code
首先,我们在 Google 中搜索 Playwright MCP。如果你还不熟悉 Playwright,它是一个浏览器自动化工具,可以通过 Model Context Protocol(MCP) 与 Claude Code 连接起来。如果你现在还不知道 MCP 是什么,不用担心,书里后面会详细讲,而且还专门有一整章只讲 MCP。
你可以把 MCP 理解成:我们赋予 Claude Code 的外部能力。在这个仓库里,有关于如何把 Claude Code 连接到 Playwright MCP 的说明。向下滚动,找到下面这条命令:
claude mcp add playwright npx @playwright/mcp@latest
复制这条命令,并把它粘贴到终端里。此时,我们是在使用 Claude Code 的命令行界面(CLI)。
图 2.6 —— 在终端中运行 Claude Code CLI
在终端里,我们输入如下命令:
edenmarco@Edens-MacBook-Pro-2 claude-code-crash-course % claude mcp add playwright npx @playwright/mcp@latest -s user
你会看到,我们将 MCP 的名字指定为 playwright,并使用 npx @playwright/mcp@latest,Claude Code 会通过这里拉取仓库并执行对应代码。真正被执行的代码就是 Playwright MCP,而正是它赋予了 Claude Code 浏览器自动化的额外能力。
我们还加上了 -s user 参数。这会让这个 MCP 在当前用户级别生效,也就是说,对我们打开的每一个 Claude Code 实例都可用。这样做,其实是在利用 Claude Code 的层级体系(hierarchy system),这一点我们会在后面的章节里详细展开。
验证 MCP 连接
现在,重新打开 Claude,并输入 /mcp。按下 Enter 后,我们应该能看到所有连接到 Claude Code 的 MCP Server。
图 2.7 —— 在 Claude Code 中验证 MCP Server 连接
我们可以看到 playwright MCP,也可以看到另一个之前配置过的 MCP,叫做 context7。这也是一个很有用的 MCP,后面会再讲。
使用 Playwright MCP 打开浏览器
为了验证 Playwright MCP 是否成功集成,我们在 Claude Code 中输入 open browser,再加上 cnn.com。这时,我们又会遇到权限系统,类似于下图所示:
图 2.8 —— Playwright MCP 请求打开浏览器时的权限提示
Claude Code 会弹出一个工具使用请求,询问是否允许它运行 Playwright 工具,并导航到 cnn.com 这个 URL。
这是一个连接到 Claude Code 的外部工具,而不是内置工具。所谓内置工具,通常是像编辑文件、创建文件、删除文件之类的能力。和前面一样,这里选择 Yes,并设置为针对这个特定工具不再重复询问。
随后,一个浏览器会被打开,我们现在就来到了 cnn.com。Claude Code 已经通过 Playwright MCP 完成了浏览器自动化,并打开了目标网站。
当我们需要测试用户界面,或者执行 UI 自动化任务时,这个能力就会变得非常有用。
使用 Cursor Rules 作为附加上下文
接下来,打开浏览器并搜索 cursor directory,或者直接访问 https://cursor.directory/。Cursor Directory 是一个可以找到实用 Cursor Rules 的地方。这些规则允许通过 Markdown 文件为 Cursor 提供额外上下文,比如为 AI 编码助手设定某种 persona(人格/角色设定),例如让它表现得像某个特定领域的高级开发者。
这些 Cursor Rules 同样可以与 Claude Code 配合使用。为了实际感受一下这一点,你可以找一条适用于 Next.js 的 Cursor Rule,选中它并复制,如图所示。
图 2.9 —— 在 Cursor Directory 中浏览 Next.js Rules
创建前端记忆上下文
接下来,我们回到 Cursor,把这条规则加入某个 CLAUDE.md 文件中。之前 Claude 已经为我们创建过一个 CLAUDE.md 文件。同时,我们还有一个更大的记忆系统,可以借此为 Claude 提供额外上下文。
在这个例子里,我们希望把这条 Cursor Rule 以及一个“非常懂 Next.js 的人设”提供给 Claude,从而让它生成更好的结果。我们先创建一个名为 memory 的目录,然后在里面创建一个名为 frontend 的子目录。接着,在这个子目录里创建一个 CLAUDE.md 文件,并把刚才复制的 Cursor Rule 粘贴进去。
需要注意的是,这个记忆文件不会被 Claude 自动加载。这并不是问题,而是有意为之。Claude 默认只会自动加载某些特定位置的 CLAUDE.md 文件。在本章里,我们先把记忆结构搭起来。到了第 3 章,我们会配置这些记忆文件在什么时机、以什么方式被加载,从而让它们真正影响响应结果。
我复制的这条规则里,包含类似这样的内容:“You are a senior frontend developer and an expert in React, Next.js, JavaScript, TypeScript, HTML, CSS...” 等等。换句话说,我们是在给 Claude Code 注入一个与当前技术栈高度对齐的、更聚焦的人设。
在前一个 CLAUDE.md 文件中,我们已经告诉过它,我们使用的是 Next.js 技术栈。而在这个新的 CLAUDE.md 文件中,我们则是在给它添加一个 persona。
到这里,上下文对 LLM 的重要性就已经很明显了。于是,我们问 Claude 一个问题:
What are you expert in?
你可能会以为,它会直接复述自己是前端工程、Next.js、TypeScript 等方面的专家,也会引用 CLAUDE.md 里写的那些内容。但它的回答,可能会让你有点意外。
它返回的是一句非常通用的说法:
图 2.10 —— 未加载项目上下文时 Claude 给出的通用回答
正如你看到的,它说的是“expert AI assistant specialized in software engineering and coding tasks”,而没有任何关于 Next.js 或前端的具体信息。这会让人误以为这个文件没有生效。
但实际上,这是设计使然。Claude 有一套自动加载 CLAUDE.md 文件的机制,这部分内容会在第 3 章中详细讲解。同时,也存在另一类文件,叫做 memory files(记忆文件),它们并不会自动加载。
相反,我们可以根据具体上下文,显式地告诉 Claude 什么时候去加载它们。这就打开了上下文工程的大门,而这正是本书后面会深入展开的内容。
核心思路是:我们可以配置 Claude 只在需要的时候加载前端上下文。比如,当它在设计或构建 UI 时加载;只在处理 TypeScript 文件时加载;只在特定目录中工作时加载;或者只在请求明显与前端开发相关时加载。
这样一来,我们就能按照自己的需要,灵活定制 Claude 的行为。书里会演示具体做法,而一个提示是:hooks 可以用来完成这件事。我们还可以从其他文件中引用上下文,并且也有多种与 memory 配合使用的方式,这些内容后面都会深入讲。
使用规范驱动设计
在这一节中,我们不采用 vibe coding 的方式来开发应用,而是使用一种叫做 spec-driven design(规范驱动设计) 的方法。这个概念后面还会进一步展开,但它的基本思想是:先创建一份 spec 文件,用来描述应用本身、使用场景或业务场景,以及可能还包括一些非功能性需求。
我们创建的这个 spec 文件,应当告诉 Claude:在它准备开始写代码时,要优先参考这份 spec 文件。这样做有助于优化上下文窗口的使用效率,也能提高最终生成结果的质量。
一开始,我们按下 Shift + Tab,切换到 Claude Code 的 plan mode(规划模式) 。规划模式非常适合这种任务:我们希望先做只读操作、做一些调研,并规划 Claude 接下来应该做什么。
我在这里输入了下面这段 Prompt,请 Claude 帮我为一个名为 HookHub 的项目编写一份 spec 文件。
I want you to help me write a spec file for a project I am building. It's called "hookhub". It's a place where cool open source Claude hooks are displayed and browsed. Search on Claude hooks and write an initial spec for this. Remember it's an MVP ATM and we need only the functionality of displaying the hooks. Hooks are found in GitHub repositories, they have name, category, description and link to repo. The main page should display the hooks in a grid-like view.
正如这个 Prompt 中所表达的,我做了以下几件事:
- 把 HookHub 描述成一个用来展示和浏览开源 Claude hooks 的地方
- 要求 Claude 去搜索 Claude hooks,并为其写一份初始规格说明
- 明确说明这是一个 MVP,当前只需要“展示 hooks”这一项功能
- 指明 hooks 来自 GitHub 仓库,并且应包含名称、分类、描述和仓库链接
- 说明主页面应当以网格视图展示这些 hooks
这就是完整的 Prompt。这里没有什么花哨技巧,也没有做任何 Prompt Engineering。
一旦提交这个 Prompt,Claude 就只会使用只读工具。在这个阶段,它不会进行任何写入或编辑。
由于我们此时使用的是 plan mode,所以在粘贴 Prompt 之前,还需要先选择模型。大多数情况下,在使用 plan mode 时,我们更倾向于选择具备更强深度推理能力的重型模型。为了控制使用哪个模型,我们运行 /models 命令,并确认选中了最新版 Opus。在写作本书时,它是最适合深度推理的高级模型。粘贴 Prompt 之后,我们看到的只是文本的表示形式,而不是实际原文。
Claude 开始研究 Claude hooks。它会调用 web search 工具,执行与开源 Claude Code hooks 相关的搜索;同时,它还会请求权限去抓取 Anthropic 文档内容,我们批准后它才继续。
研究步骤完成后,Claude 会给出一个类似下面这样的计划:
图 2.11 —— Claude 为 HookHub MVP 规格说明提出的计划
这个计划包括以下内容:
- 创建一份覆盖项目概览的规格说明
- MVP 范围
- Claude Code hook 的数据模型
- UI / UX 要求
- 技术架构
- 用户故事
- 未来扩展考虑
到这里,我们批准这份计划。随后 Claude 切换到 write mode(写入模式),并请求把文件写到 hookhub/SPEC.md。这时先拒绝,并告诉 Claude:把它写到 spec 目录下,文件名改为 CLAUDE.md。
I want you to write it into a spec directory and make this a CLAUDE.md file
Claude 会再次响应,并准备把文件写到 spec/CLAUDE.md。这一次批准,并允许它执行编辑。
Claude 也会第一次给出一个待办事项列表(to-do list)。随后,它开始按照任务逐步推进并提出请求。根据提示,我们逐项批准这些操作。
Claude 会创建 spec 目录,并生成 CLAUDE.md 文件。关于 to-do 的机制,后面我们会详细讨论,但这里先要强调一点:它们对结果质量有着非常重要的影响。这也是 Claude Code 之所以能作为编码智能体表现优秀的原因之一。更准确地说,Claude Code 的行为方式更像一个 deep agent(深度智能体) ,它能够处理长时间运行、多步骤、且需要大量推理的任务。Deep agent 以及 Claude 为什么属于这一类,会在后面的章节中继续展开。
审阅生成出的 Spec
当整个过程完成后,我们现在就拥有了一个新的 CLAUDE.md 文件。
图 2.12 —— 写在 CLAUDE.md 中的 HookHub 产品规格说明
这个文件包含项目概览、产品愿景,以及大量在实现过程中能够帮助 Claude 的信息。
这份 spec 提供了非常有用的上下文,例如 hook 的分类、hook 对象结构、以及应用应该长成什么样子。它还包含构建这个项目所需的步骤。这个文档会被加入到仓库中,并在实现阶段帮助 Claude 生成更高质量的结果。
到这里,你应该已经能感觉到:利用 LLM 来辅助生成 spec,其实是一种非常常见的模式。其他更高级的模式,我们会在后面继续介绍。
最后,把 spec 目录移动到 memory 目录下面。
这时,你的目录结构应当如下:
memory/
├── frontend/
│ └── CLAUDE.md
└── spec/
└── CLAUDE.md
这样,所有长期有效的上下文都可以集中放在一个地方,并在需要时反复复用。
基于 SPEC 实现主页面
在真正开始实现之前,我们先切换模型,改用 Sonnet。然后在 Prompt 中输入:
Can you please help me implement the main page grid as specified in the spec file?
接着,我们使用 @ 符号来标记 spec 文件。我们手上的 spec 文件是 spec/CLAUDE.md。为了把它附加到当前上下文中,我们需要显式 tag 这个文件。
每一次我们发出 Prompt、得到结果、再继续发出下一个 Prompt,实际上都在不断填充上下文。随着时间推移,这会形成很多次我们和 Claude 之间的来回交互。
如果我们在同一个会话里一直这样继续,而不对上下文做任何处理,那么最终就会把上下文窗口塞满。一旦发生这种情况,结果的质量就会开始下降。
有几种方式可以处理这个问题。后面书里会讲到自定义命令,它们可以在保留有用信息的同时,清理或总结上下文窗口。现在,我们先采用一个简单直接但比较朴素的方法。Claude Code 也提供了像 /clear 和 /compact 这样的内置命令,可以在不重启会话的前提下管理上下文窗口。前面已经提到过它们,后面我们还会再回来深入讨论。这里为了简单起见,我们直接通过重启来获得一个全新的上下文环境。
我们先运行 /exit 退出当前 Claude Code 会话。然后重新打开 Claude,进入 HookHub 这个 Next.js 项目目录,并从那里启动 Claude。此时,上下文就是全新且干净的。
我们重新输入 Prompt:
Can you please implement the main page, a grid of the hooks, as specified in the spec file?
这一次,我们发现文件引用找不到。原因在于:Claude Code 是在 HookHub 目录内部打开的,但 memory 目录仍然还在项目根目录的上一级。
为了解决这个问题,我们把 memory 目录向上层级移动,让它位于 hookhub 目录之下。完成这个调整后,文件引用就可以正常工作了。也就是说,此时 memory 目录不再位于 crash course 的根层级,而是已经放进了 HookHub 项目目录内部。
执行实现过程
接着,我们再次输入 Prompt,让 Claude 根据 spec 实现这个 grid 页面。现在,Claude 开始承担主要工作。它会创建一个 to-do list,并开始逐项实现其中的任务。
系统会弹出一些请求,要求你批准文件写入,例如创建 Hooks.ts 文件。批准之后,实现过程就会继续,并且可能需要花一点时间。
当实现完成后,hook card 组件会被创建出来,Claude 也会继续推进剩余步骤。随后,它会运行 lint 检查潜在错误。等这一切结束之后,我们就会看到一份实现总结,里面列出了已经完成的内容,比如卡片组件、Hero 区域、Header,以及其他相关部分。
图 2.13 —— 代码生成后 Claude 给出的实现总结
刷新浏览器中的应用页面,你就会看到一组 Claude Code hook 卡片组成的网格。
图 2.14 —— 基础版 Next.js 应用
这是一个基础的 Next.js 应用。虽然有些功能,比如搜索,还没有实现,但其他一些核心部分已经具备了。整体来看,它已经提供了一个非常扎实的骨架,我们可以在此基础上继续往前构建。
在本书后面,我们还会继续探索 AI coding 的高级 agentic workflow。这包括动态拉起多个子智能体、对 UI 组件进行迭代优化,以及使用 meta-prompting。这个项目将会成为这些实验的基础。
到这里,我们把代码提交到仓库中,以便后续共享。先运行 git status,将所有文件加入暂存区,并确认其中没有包含任何密钥或环境变量。
然后,我们以类似 initial project 这样的提交信息完成 commit,并 push 到仓库。
之后,你就可以在仓库中进入 project/hookhub 分支,查看这些文件,并从这个提交中拉取完全一致的代码。书里还会提供命令,方便你直接 clone 仓库并在本地完成环境搭建。若要获取仓库链接,请参考前言中 Download the example code files 一节。
完成本章所有步骤后,你的 HookHub 项目目录结构应当如下:
hookhub/
├── app/
├── components/
├── memory/
│ ├── frontend/
│ │ └── CLAUDE.md
│ └── spec/
│ └── CLAUDE.md
├── package.json
├── next.config.js
└── ...
如果你的结构和上面一致,那么你就已经为下一章做好了正确准备。
总结
在本章中,我们通过完整走通 Claude Code 的安装与工作流程,建立了一个实用的基础。我们没有直接跳入高级功能,而是先聚焦于理解 Claude Code 如何观察一个项目、如何通过 CLAUDE.md 文件构建上下文,以及它如何依赖显式权限机制来安全地运行。这个基础非常关键,因为你从 Claude Code 得到的结果质量,直接取决于你为它提供的上下文、结构和控制质量。
我们还看到,Claude Code 如何通过 MCP 扩展到内置能力之外,外部工具如 Playwright 如何融入工作流,以及为什么规范驱动设计能够带来更稳定、更可预测的结果。这里构建出来的 HookHub 项目并不只是一个示例,它本身就是一个可以真正运行的基线项目,并且会在我们后续探索更高级的 agentic workflow 时持续被复用。本章引入的每一个概念,后面都会在此基础上继续深化,而不是重新从零开始。
在下一章中,我们将讨论定价与认证、斜杠命令(slash commands)、用户级与项目级配置,以及与 Cursor 的集成。