内容
# 技能英雄
在工作过程中练习和跟踪你的代理编码技能。技能英雄是Claude Code的一个插件,它跟踪你的优势,提供在工作单元结束时(从不中断任务)的简短知识检查,对其进行评分,并显示进度仪表盘——一个Elo评级和分级系统,用于与AI编码工具合作。
它捆绑了一个MCP服务器(引擎)、四个技能(设置、测验、状态、学习)和一个工作结束的停止钩子。你不能直接调用它——你与Claude对话(“测验我关于子代理的知识”,“我做得怎么样?”),它会处理其他事情。
---
## 安装(全局 - 推荐)
全局安装技能英雄(默认的`用户`范围),以便在每个Claude Code会话中都可用,而无需在每个项目中重新安装:
```bash
claude plugin marketplace add srobroek/vibe-hero
claude plugin install vibe-hero@vibe-hero # --scope user 是默认的(全局)
```
你的学习档案无论如何都是相同的 - 它位于 `~/.vibe-hero/profile.json` - 所以全局安装只是避免在每个项目中重新安装。
该插件的 `.mcp.json` 通过 `npx -y @vibe-hero/server` 按需启动服务器(下载一次,然后缓存),因此无需构建。
> 支持的主机:Claude Code, Codex, Kiro CLI, Kiro IDE. 在其他任何主机上,技能英雄都会返回“不支持的工具”消息,而不是猜测 - 你正在使用的工具会自动检测,永远不会被询问。
要删除它:
```bash
claude plugin uninstall vibe-hero
claude plugin marketplace remove vibe-hero
```
## 首次运行
在任何Claude会话中,说 **"设置技能英雄。"** 它会询问三个问题(提供测验的频率,是否主动提供,以及测验长度)- 正在学习的工具会自动检测。之后:
| 说这句话 | 会发生什么 |
|---|---|
| *"测验我关于子代理的知识"* | 一个3-5个问题的测验;你的能力会随着你的回答而更新 |
| *"我做得怎么样?"* | 进度仪表盘 - 主题 × 工具矩阵,分数和趋势图 |
| *"我接下来应该学习什么?"* | 针对你最弱或最不熟悉的主题的指导 |
| *(完成一些工作)* | 停止钩子可能会提供相关的或需要复习的测验 |
你通过正确回答越来越难的问题来升级,毕业于100 → 500(入门 → 专家)级别,独立跟踪每个工具和通用技能。
完整的操作指南: [`docs/runbooks/testing-vibe-hero.md`](docs/runbooks/testing-vibe-hero.md).
---
## 你的数据保留在你的机器上
技能英雄记录关于你的一切 - 能力,级别,测验历史,仪表盘的趋势数据 - 都存在于 `~/.vibe-hero/profile.json` 的单个文件中,永远不会上传。该文件只包含成绩,Elo数字和主题ID,永远不会包含你的提示,代码或任何工具输入/输出,你可以通过打开它来确认这一点。技能英雄做的唯一网络请求是下载(见下文);你的活动没有任何内容被传输。
## 问题目录如何被拉取和验证
技能英雄将其完整的问题目录打包在插件中,因此它可以离线工作 - 不需要网络来参加测验。
要获取课程更新而无需重新安装,请使用一个环境变量指向已发布的目录:
```bash
export VIBE_HERO_CONTENT_URL="https://your-host/content" # 服务 manifest.json + 主题文件
```
设置后,更新仅需下载:
1. 它获取 `manifest.json` 以及HTTP `ETag`;`304 Not Modified` 表示没有任何更改,因此不会下载任何内容。
2. 清单列出了每个主题文件的SHA-256哈希值。每个下载的文件都会与其哈希值进行校验;如果哈希值不匹配(损坏或篡改),则更新会被拒绝,并且损坏的内容永远不会被缓存或提供。
3. 在冷取时,每个主题的哈希值都会与捆绑的副本进行比较,因此不会重新下载未更改的主题。
4. 在任何失败(离线,DNS,超时,错误内容)时,它会回退到本地缓存,然后是捆绑的目录 - 没有错误,并且测验仍然有效。
清单 (`content/manifest.json`, 带有每个主题的 `sha256`) 在构建/CI时从 `content/<tool>/*.yaml` 源内容生成。
---
## 它是如何工作的(底层)
- MCP服务器 (`@vibe-hero/server`, 在 `packages/server`) - 引擎:11种工具用于设置,测验,评分,状态,指导,提供和仪表盘。基于Elo的能力估计,带有间隔复习衰减;多选题的确定性评分,自由格式项目的基于评分标准的评判。
- 插件 (`packages/vibe-hero-plugin`) - 技能,停止钩子和 `.mcp.json`,使其在Claude Code中可用,无需手动配置。
- 内容 (`content/`) - 问题目录:大约2800个项目,涵盖29个主题(Claude Code,Codex,Kiro CLI,Kiro IDE和一般软件工程),由原始来源编写。
## 调试和日志记录
MCP服务器具有结构化日志记录,默认情况下关闭。日志是换行分隔的JSON,仅写入stderr(stdout携带JSON-RPC流,因此日志记录在那里会损坏协议)。两个环境变量控制它:
| 变量 | 效果 |
|---|---|
| `VIBE_HERO_DEBUG=1` | 打开调试级别的日志记录。 |
| `VIBE_HERO_DEBUG=/path/to/file.log` | 打开日志记录并将每行输出到该文件 - 当主机吞噬服务器的stderr时使用此方法。 |
| `VIBE_HERO_LOG_LEVEL=trace\|debug\|info\|warn\|error\|silent` | 显式设置日志级别(覆盖`VIBE_HERO_DEBUG`隐含的级别)。默认级别为`silent`。 |
直接运行它并查看日志:
```bash
# 日志输出到终端(stderr)
VIBE_HERO_DEBUG=1 npx -y @vibe-hero/server
# 日志输出到文件,你可以跟踪(使用jq美化NDJSON)
VIBE_HERO_DEBUG=/tmp/vibe-hero.log npx -y @vibe-hero/server
tail -f /tmp/vibe-hero.log | jq .
```
你将看到启动(Node版本,工具数量),客户端握手和检测到的工具,以及每个工具调用和结果。
### 在Claude Code中启用日志记录
插件从其 `.mcp.json` 启动服务器。要为会话打开日志记录,请在那里添加一个 `env` 块(环境变量传递给生成的服务器):
```json
{
"mcpServers": {
"vibe-hero": {
"command": "npx",
"args": ["-y", "@vibe-hero/server"],
"env": { "VIBE_HERO_DEBUG": "/tmp/vibe-hero.log" }
}
}
}
```
然后 `tail -f /tmp/vibe-hero.log | jq .` 当你使用技能英雄时。相同的 `env` 块用于设置 `VIBE_HERO_CONTENT_URL`(远程目录)或 `VIBE_HERO_HOME`(配置文件位置)。
## 许可证
Apache-2.0