Claude Code 学习站

CCA-F 练习题库· Claude Code Configuration & Workflows

某开发者想要一个 /scaffold skill,用来为新的微服务生成样板代码。该 skill 在产出结果前会运行大量探索性的文件读取和 Bash 命令来了解现有模式,产生数百行中间输出。队友抱怨这会污染他们的主对话上下文。哪个 frontmatter 设置能解决这个问题?

  1. A在 skill 的 frontmatter 里设 allowed-tools: [],执行期间不跑任何 Read 或 Bash,脚手架内容全部来自 skill 正文里自己写的说明。
  2. B在该 skill 的 frontmatter 中设置 context: fork,让该 skill 在隔离的 sub-agent 上下文中运行,不影响主会话。
  3. C把该 skill 文件从 .claude/skills/ 移到 .claude/commands/,让它作为 slash command 运行,其输出不会进入会话。
  4. D在 frontmatter 中加上 argument-hint: "service-name",这样该 skill 接收到的是干净的输入,不会继承会话上下文。

正确答案:B

解析

  • B正确:已对照官方 Claude Code 文档(code.claude.com/docs/en/skills)核实,文档把 context: fork 列为真实存在的 SKILL.md frontmatter 字段——它让 skill 在一个隔离的 forked subagent 中运行,该 subagent 无法访问主对话历史,在那个独立上下文中完成探索性的读取/Bash 工作,只把汇总后的结果返回主会话,正好解决题干描述的中间输出污染问题。各干扰项都不对:
  • Aallowed-tools 并不限制工具可用性(文档说明它只是为一轮预先批准权限,清空它只是取消预批准,而不会隔离上下文——而且屏蔽工具会让一个必须读文件的 skill 直接失效);
  • C错在文档指出 .claude/commands/*.md.claude/skills/*/SKILL.md 行为一致,所以换位置带不来任何隔离;
  • D的 argument-hint/arguments 字段只用于提供输入参数,与上下文隔离毫无关系。

延伸阅读

本题为本站自有原创练习题,非任何官方考试内容;解析对照 Anthropic 公开文档撰写, 如与最新文档不符请以官方为准。想在限时环境下检验水平,可参加 模拟考(题目与本页题库不重叠)。