mcpField
C
challenge

challenge

github.com/athola开发34878 次安装1 天前更新
代码仓库

关于 challenge

用于从知识库生成挑战并评估开发者回答的技能。它按知识条目和挑战类型自适应出题,并记录得分与连续答对情况。

主要功能

  1. 01根据知识条目自适应选题
  2. 02展示带上下文的问题
  3. 03按通过、部分通过或失败评分
  4. 04记录进度与连续答对情况
  5. 05失败时展示答案和解释

适用场景

  1. 01检查开发者对项目知识的掌握
  2. 02在开发过程中进行知识测验

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/athola/claude-night-market --skill challenge

安装后在 Claude Code 中输入/challenge确认已加载。

详细介绍

Run Gauntlet 挑战

展示知识库中的挑战并评估答案。

不要使用的情况

  • 知识库尚不存在(使用 gauntlet:extract)
  • 为新贡献者提供循序渐进的引导路径(使用 gauntlet:onboard)

回合内 Provider 设置

生成挑战前,注册回合内变体 provider,以免仅为生成一个同伴 Claude 而调用 Anthropic API (问题 #464)。在 Claude Code 之外,这一操作 不会执行,默认的 Anthropic provider 仍保持启用。

from gauntlet.providers.in_loop import (
    register_in_loop_provider_if_inside_claude_code,
)
register_in_loop_provider_if_inside_claude_code()

步骤

  1. 加载状态:读取 .gauntlet/knowledge.json 和开发者 进度

  2. 检查待处理的挑战:如果 .gauntlet/state/pending_challenge.json 存在,则先将 开发者最近的一条消息作为答案进行评估,再生成新挑战

  3. 生成挑战:使用自适应权重选择一个知识条目和挑战类型

  4. 展示挑战:显示问题及其上下文

  5. 评估答案:为回答评分(通过/部分通过/未通过)

  6. 记录结果:更新开发者进度和连续答对次数

  7. 通过时:如果来自 pre-commit gate,则写入通过令牌。在会话中时,展示 下一项挑战。

  8. 未通过时:展示正确答案及说明。展示 新挑战。

评分

结果分数连续答对次数
通过1.0+1
部分通过0.5重置
未通过0.0重置

完成条件

  • 在生成挑战前,.gauntlet/knowledge.json 必须存在且可读取;如果文件缺失,技能会显示错误 并建议运行 gauntlet:extract
  • 每次挑战尝试都会产生一个分数(1.0/0.5/0.0),写入 开发者的进度存储,并更新连续答对次数
  • .gauntlet/state/pending_challenge.json 存在时,必须先进行评估,再 生成新挑战;评估后删除或更新该文件
  • 未通过时,必须先展示正确答案及说明,再展示下一项挑战(不得悄然跳过)

评论

支持 Markdown