Skip to content

6.1 概念题——检验你的理解

📋 多工具适用说明

本节的概念题适用于所有 AI 编程工具。题目考察的是通用理解:

  • 项目指令文件 vs 技能包的选择——所有工具都有类似概念
  • 触发时机、权限控制、隔离执行——概念通用

答案中的 Claude Code 特有语法会标注说明。

说明

以下题目检验你对技能包核心概念的理解。每题有参考答案,但建议先独立思考再看答案。


第一题:分类判断

以下内容应该放在项目指令文件还是技能包中?为什么?

💡 提示

各工具的项目指令文件名称不同:Claude Code 用 CLAUDE.md,Cursor 用 .cursorrules,Windsurf 用 .windsurfrules。概念相同,只是叫法不同。

  1. "项目使用 Vue 3 + TypeScript + Pinia"
  2. "部署到生产环境的 6 步流程"
  3. "金额字段必须用整数(分),禁止浮点数"
  4. "REST API 的完整设计规范(30 页)"
  5. "代码审查时检查的 8 个维度"
  6. "测试框架是 Vitest,覆盖率门禁 80%"
参考答案
  1. 项目指令文件——事实,每次都需要
  2. 技能包——流程,只有部署时才需要
  3. 项目指令文件——事实/规则,每次编写相关代码都需要遵守
  4. 技能包——大型参考文档,只有设计 API 时才需要(且应该放在 references/ 下)
  5. 技能包——流程/清单,审查时才需要
  6. 项目指令文件——事实,每次写测试都需要知道

第二题:Frontmatter 配置

为以下场景写出合适的 Frontmatter:

场景:一个自动执行 Python 代码质量检查的 技能包,只在编辑 .py 文件时激活,预授权 ruff 和 pytest 工具。

参考答案
yaml
---
name: python-lint
description: Python 代码质量检查。当编辑 Python 文件、说"检查代码"、"lint"时使用
paths:
  - "src/**/*.py"
  - "tests/**/*.py"
allowed-tools:
  - Bash(ruff check *)
  - Bash(pytest *)
---

注意:不设 disable-model-invocation: true,因为这是只读检查,可以自动触发。


第三题:调用控制

以下技能包 应该设什么调用控制?选择:默认 / disable-model-invocation: true / user-invocable: false

  1. /deploy——部署到生产环境
  2. /api-conventions——API 设计规范参考
  3. /code-review——代码审查清单
  4. /project-status——项目状态仪表盘(只读)
  5. /commit——提交代码并推送到远程
参考答案
  1. disable-model-invocation: true——有副作用,不能自动触发
  2. user-invocable: false——纯知识库,Claude 自动加载,不需要人手动调用
  3. disable-model-invocation: true——虽然只读,但审查应该主动触发
  4. 默认——只读且适合自动触发
  5. disable-model-invocation: true——有副作用(推送代码)

第四题:渐进式披露

一个技能包 的 SKILL.md 有 300 行,其中 200 行是 API 规范的详细定义。你会怎么重构?

参考答案
  1. SKILL.md 保留核心原则(~50 行)和链接
  2. API 规范移到 references/api-spec.md(200 行)
  3. 在 SKILL.md 中用 [api-spec.md](references/api-spec.md) 引用
  4. Claude 按需加载详细规范——讨论 API 时才消耗 token

重构后的目录:

api-guide/
├── SKILL.md(~50 行)
└── references/
    └── api-spec.md(~200 行)

第五题:识别反模式

以下技能包 有什么问题?怎么修复?

markdown
---
description: 帮助开发
---

# 开发助手

## 代码风格
(50 行风格指南)

## 部署步骤
(40 行部署流程)

## API 规范
(100 行 API 规范)

## 数据库设计
(60 行数据库规范)

## 测试约定
(30 行测试指南)
参考答案

踩中了多个反模式:

  1. 描述太模糊(反模式五)——"帮助开发"无法让 Claude 判断何时使用
  2. 技能包太长(反模式一)——280 行,远超推荐
  3. 技能包太通用(反模式四)——什么都包含,等于什么都不聚焦
  4. 混合了事实和流程——代码风格是事实(每次需要),部署步骤是流程(偶尔需要)

修复方案:拆分为 4 个独立技能包

  • /api-guide——API 规范(知识库模式,user-invocable: false)
  • /deploy——部署流程(检查清单模式,disable-model-invocation: true)
  • /db-conventions——数据库设计规范(知识库模式)
  • 代码风格和测试约定留在项目指令文件(每次都需要的事实)

第六题:context: fork 判断

以下技能包 适合用 context: fork 吗?为什么?

  1. "深度探索代码库的认证模块架构"
  2. "代码审查时检查安全漏洞"
  3. "API 设计规范参考"
参考答案
  1. 适合——探索任务会读取大量文件,只需返回摘要,避免上下文污染
  2. 不适合——代码审查需要对话上下文(之前的讨论、PR 描述等),fork 的子代理没有历史
  3. 不适合——这是指南型技能包,没有可执行任务,fork 会返回空结果。应该用 inline 模式或 user-invocable: false

评分标准

对题数水平
5-6熟练掌握,可以开始写真实项目技能包
3-4基本理解,建议回顾对应章节
1-2需要重读课程,重点关注 Stage 1-2

下一节

下一节:设计题——给真实场景设计技能包