关于 day2-create-context-sync-skill
面向 Claude Code 的教学技能,指导用户逐步构建 Context Sync 技能,将所选工具的数据汇集到项目上下文中。课程按区块推进,并以模板为起点逐步定制。
主要功能
- 01按区块分阶段教学
- 02从模板生成技能文件
- 03探索项目结构并连接工具
- 04并行收集与验证数据
- 05配置输出格式并运行技能
适用场景
- 01为项目定制上下文同步流程
- 02选择 Slack、Notion、Gmail 或 Google Calendar 作为数据源
- 03练习通过 MCP 或 API 连接服务
MCP 相关
讲解并引导通过 MCP 或 API 连接所选数据源;选择 MCP 时会搜索服务器并协助登记到 `.mcp.json`。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ ai-native-camp/ camp-1 --skill day2-create-context-sync-skill安装后在 Claude Code 中输入/day2-create-context-sync-skill确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/block0-tool-selection.mdblock1-project-explore.mdblock2-tool-connection.mdblock3-parallel-collection.mdblock4-output-format.mdblock5-finalize.mdtemplates/context-sync.md详细介绍
第 2 天:创建自己的 Context Sync 技能
调用此技能时,必须遵循以下 STOP PROTOCOL。
术语整理
此技能中使用的核心术语:
| 术语 | 说明 |
|---|---|
| MCP | Claude 与外部服务(Slack、Gmail 等)对话的通道。将第 1 天学到的“工具”扩展到外部 |
| subagent | Claude 调用另一个 Claude 并让它执行任务。用于同时处理多项任务 |
| Explore Agent | 用于了解项目文件夹结构的专业 subagent |
| API | 服务提供的数据入口。没有 MCP 时,直接通过代码获取数据的方法 |
| 技能(Skill) | 教 Claude Code 如何执行特定任务的文档。第 1 天 Block 3-2 中体验过的内容 |
STOP PROTOCOL — 绝对禁止违反
此协议是此技能的最高优先级规则。 违反以下规则会毁掉课程。
每个 Block 必须分 2 轮进行
┌─ Phase A (첫 번째 턴) ──────────────────────────────┐
│ 1. references/에서 해당 블록 파일의 EXPLAIN 섹션을 읽는다 │
│ 2. 기능을 설명한다 │
│ 3. references/에서 해당 블록 파일의 EXECUTE 섹션을 읽는다 │
│ 4. "지금 직접 실행해보세요"라고 안내한다 │
│ 5. ⛔ 여기서 반드시 STOP. 턴을 종료한다. │
│ │
│ ❌ 절대 하지 않는 것: 퀴즈 출제, QUIZ 섹션 읽기 │
│ ❌ 절대 하지 않는 것: AskUserQuestion 호출 (Block 0,2,4 제외)│
│ ❌ 절대 하지 않는 것: "실행해봤나요?" 질문 │
└──────────────────────────────────────────────────────────┘
⬇️ 사용자가 돌아와서 "했어", "완료", "다음" 등을 입력한다
┌─ Phase B (두 번째 턴) ──────────────────────────────┐
│ 1. references/에서 해당 블록 파일의 QUIZ 섹션을 읽는다 │
│ 2. AskUserQuestion으로 퀴즈를 출제한다 │
│ 3. 정답/오답 피드백을 준다 │
│ 4. 다음 블록으로 이동할지 AskUserQuestion으로 묻는다 │
│ 5. ⛔ 다음 블록을 시작하면 다시 Phase A부터. │
└──────────────────────────────────────────────────────────┘
核心禁止事项(绝对禁止违反)
- Phase A 中不得调用 AskUserQuestion(Block 0、2、4 除外) — 这 3 个 Block 必须由用户选择,因此例外
- Phase A 中不得出测验题 — 仅在 Phase B 中阅读 QUIZ 部分
- Phase A 中不得询问“试着运行了吗?” — 等待用户先开口
- 不得在一轮中同时进行 EXPLAIN + QUIZ — 必须分成 2 轮
输出官方文档 URL(绝对不可遗漏)
每个 Block 的 Phase A 开始时,必须原样输出对应 reference 文件顶部的 > 官方文档: URL。
📖 공식 문서: [URL]
- 如果 reference 文件中有多个 URL,则全部输出
- 不得概述或省略 URL
Phase A 结束时的必备语句
Phase A 结束时,必须输出以下格式的语句,然后停止:
---
👆 위 내용을 직접 실행해보세요.
실행이 끝나면 "완료" 또는 "다음"이라고 입력해주세요.
此语句之后,不得调用任何工具(包括 AskUserQuestion),也不得输出任何额外文本。
核心策略:先用模板,再逐步自定义
按以下方式进行:
- 在 Block 0 中,用户选择工具后,立即基于
templates/context-sync.md创建技能文件 - 之后在 Block 1~5 中,仅修改/扩展已创建技能的相应部分
- 最后运行完成的技能,确认结果
模板中包含 Slack、Notion、Gmail、Google Calendar 这 4 种工具的示例。 根据用户选择的工具组合,仅保留所需部分;添加新工具时采用相同模式。
Block 与模板章节的对应关系
各 Block 中修改的模板区域:
| Block | 修改目标 | 模板章节 |
|---|---|---|
| 0 | 创建技能框架 | 全部(仅保留所选工具) |
| 1 | 纳入项目背景 | frontmatter description、收集范围 |
| 2 | 确定连接方式 | 各来源的“收集方法” |
| 3 | 执行收集并验证 | “执行流程”章节 + 调整“要提取的信息” |
| 4 | 设置输出格式 | “输出格式”章节 |
| 5 | 最终整理并运行 | 整体收尾 |
Block 特殊规则
- Block 0(选择工具 + 创建技能):Phase A 中进行说明,并通过 AskUserQuestion 选择工具。根据所选结果创建基于模板的技能 → 停止。Phase B 中进行关于已创建技能的测验。
- Block 1(探索项目):Phase A 中通过 Explore Agent 了解项目结构并分享结果 → 停止。Phase B 中进行测验。
- Block 2(连接工具):Phase A 中说明 MCP 与 API 的选择,并通过 AskUserQuestion 提问 → 由 Claude 代为完成设置,用户确认结果 → 停止。Phase B 中进行测验。
- Block 3(执行收集并验证):Phase A 中说明并执行通过 subagent 并行收集 → 区分成功与失败并展示收集结果 → 重试失败的来源 + 检查收集数据的质量 → 停止。Phase B 中进行测验。
- Block 4(设置 Output):Phase A 中说明 Output format 的选择,并通过 AskUserQuestion 提问 → 根据选择修改技能 → 停止。Phase B 中进行测验。
- Block 5(完成并运行):Phase A 中整理最终技能配置 + 实际运行 → 停止。Phase B 中进行综合测验 + 收尾。
Block 0 例外规则
Block 0 的 Phase A 使用 AskUserQuestion。工具选择是之后所有 Block 的前提,因此必须获取用户输入。
Phase A 的进行顺序:
- 阅读并讲解
references/block0-tool-selection.md的 EXPLAIN 部分 - 通过 AskUserQuestion 让用户选择工具(multiSelect: true)
- 阅读
templates/context-sync.md模板 - 根据所选工具,在用户的项目中创建
.claude/skills/my-context-sync/SKILL.md - 仅简要展示已创建文件的整体结构,然后停止(详细内容留待之后的 Block 介绍)
Block 2 例外规则
Block 2 的 Phase A 也使用 AskUserQuestion。需要针对每种工具选择 MCP 或 API 作为连接方式。
核心原则:由 Claude 代为完成设置,用户确认结果。
选择 MCP 时:
- 遵循
references/block2-tool-connection.md中的 MCP 指引 - 使用
scripts/mcp_servers.py从 GitHub README.md 中搜索合适的 MCP 服务 - 展示搜索结果,并由 Claude 将服务注册到
.mcp.json - 使用
/mcp命令,一起确认服务连接状态
选择 API 时:
- 由 Claude 直接编写 API 调用代码
- 保存到用户技能的
scripts/文件夹中
Block 4 例外规则
Block 4 的 Phase A 也使用 AskUserQuestion。需要选择 Output format。
References 文件映射
| 区块 | 文件 | 内容 |
|---|---|---|
| Block 0 | references/block0-tool-selection.md | 工具选择 + 基于模板创建技能 |
| Block 1 | references/block1-project-explore.md | 使用 Explore Agent 了解项目结构 |
| Block 2 | references/block2-tool-connection.md | 选择 MCP 或 API 连接方式 + 执行 |
| Block 3 | references/block3-parallel-collection.md | subagent 并行收集 + 验证结果 |
| Block 4 | references/block4-output-format.md | 选择输出格式(markdown、Slack、Notion) |
| Block 5 | references/block5-finalize.md | 完成最终技能 + 执行 + 收尾 |
文件路径相对于此 SKILL.md。 每个 reference 文件由
## EXPLAIN、## EXECUTE、## QUIZ部分组成。
Templates / Scripts 文件映射
| 文件 | 用途 |
|---|---|
templates/context-sync.md | Context Sync 技能基础模板(包含 Slack、Notion、Gmail、GCal 4 种工具) |
scripts/mcp_servers.py | 在 GitHub 上搜索 MCP 服务 + 解析 README.md + 提供安装说明 |
Gmail/Calendar 等收集脚本由 Claude 在 Block 2 中根据用户的选择直接编写。
进行规则
- 一次进行一个区块
- 使用“下一个”、“skip”或区块编号/名称进行跳转
- 在后续区块中逐步修改 Block 0 创建的技能文件
- 在用户项目的
.claude/skills/my-context-sync/目录中创建技能 - Explore Agent 和 subagent 的使用至关重要,因此应积极利用
- 如果有人询问 Claude Code 相关问题,使用 claude-code-guide Agent(内置工具)作答。回答后,分步骤引导用户亲自操作;提问时使用 AskUserQuestion。如果认为内置 Agent 的回答不准确,则用
curl将官方文档保存到文件,再用 Read 工具仔细阅读,并基于准确信息重新作答
开始
启动技能时,先安装最新课程,再选择区块。
Step 1:安装最新技能
输出以下命令并使用 Bash 执行:
npx skills add ai-native-camp/camp-1 --agent claude-code --yes
简要说明执行结果(例如:“已安装 4 个技能的最新版本”)。
Step 2:选择区块
显示下表,并使用 AskUserQuestion 询问从哪里开始。
| Block | 主题 | 内容 |
|---|---|---|
| 0 | 工具选择 | 选择要 sync 的工具 + 创建技能骨架 |
| 1 | 项目探索 | 使用 Explore 了解项目结构 |
| 2 | 工具连接 | 通过 MCP 或 API 连接工具 |
| 3 | 执行收集和验证 | subagent 并行收集 + 验证结果 |
| 4 | 输出设置 | 选择输出格式 + 修改技能 |
| 5 | 完成 + 执行 | 执行最终技能 + 收尾 |
AskUserQuestion({
"questions": [{
"question": "Day 2: 나만의 Context Sync 스킬 만들기\n\n어디서부터 시작할까요?",
"header": "시작 블록",
"options": [
{"label": "처음부터 (Block 0)", "description": "sync할 도구 고르기 + 스킬 골격 생성"},
{"label": "도구 연결 (Block 2)", "description": "도구 선택은 했고, MCP/API 연결부터"},
{"label": "수집 실행 & 검증 (Block 3)", "description": "연결 완료, 수집부터"},
{"label": "Output 설정 (Block 4)", "description": "수집 완료, 출력 형식부터"}
],
"multiSelect": false
}]
})
选择起始区块后 → 从对应区块的 Phase A 开始。