yuque-cli 0.2.0__tar.gz → 1.0.12__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- yuque_cli-1.0.12/.claude/settings.json +15 -0
- yuque_cli-1.0.12/.claude/settings.local.json +30 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage/SKILL.md +99 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage/evals/evals.json +29 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/benchmark.json +370 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/benchmark.md +13 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-1-create-doc/eval_metadata.json +11 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-1-create-doc/with_skill/outputs/answer.md +14 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-1-create-doc/with_skill/run-1/grading.json +30 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-1-create-doc/with_skill/run-1/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-1-create-doc/with_skill/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-1-create-doc/without_skill/outputs/answer.md +20 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-1-create-doc/without_skill/run-1/grading.json +30 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-1-create-doc/without_skill/run-1/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-1-create-doc/without_skill/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-2-auth-login/eval_metadata.json +11 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-2-auth-login/with_skill/outputs/answer.md +23 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-2-auth-login/with_skill/run-1/grading.json +30 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-2-auth-login/with_skill/run-1/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-2-auth-login/with_skill/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-2-auth-login/without_skill/outputs/answer.md +27 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-2-auth-login/without_skill/run-1/grading.json +30 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-2-auth-login/without_skill/run-1/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-2-auth-login/without_skill/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-3-update-doc/eval_metadata.json +11 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-3-update-doc/with_skill/outputs/answer.md +9 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-3-update-doc/with_skill/run-1/grading.json +30 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-3-update-doc/with_skill/run-1/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-3-update-doc/with_skill/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-3-update-doc/without_skill/outputs/answer.md +18 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-3-update-doc/without_skill/run-1/grading.json +30 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-3-update-doc/without_skill/run-1/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-3-update-doc/without_skill/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-4-comment-selection/eval_metadata.json +11 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-4-comment-selection/with_skill/outputs/answer.md +15 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-4-comment-selection/with_skill/run-1/grading.json +30 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-4-comment-selection/with_skill/run-1/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-4-comment-selection/with_skill/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-4-comment-selection/without_skill/outputs/answer.md +36 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-4-comment-selection/without_skill/run-1/grading.json +30 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-4-comment-selection/without_skill/run-1/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-1/eval-4-comment-selection/without_skill/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/benchmark.json +370 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/benchmark.md +13 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-1-create-doc/eval_metadata.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-1-create-doc/with_skill/outputs/answer.md +13 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-1-create-doc/with_skill/run-1/grading.json +30 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-1-create-doc/with_skill/run-1/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-1-create-doc/with_skill/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-1-create-doc/without_skill/outputs/answer.md +52 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-1-create-doc/without_skill/run-1/grading.json +30 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-1-create-doc/without_skill/run-1/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-1-create-doc/without_skill/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-2-auth-login/eval_metadata.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-2-auth-login/with_skill/outputs/answer.md +95 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-2-auth-login/with_skill/run-1/grading.json +30 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-2-auth-login/with_skill/run-1/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-2-auth-login/with_skill/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-2-auth-login/without_skill/outputs/answer.md +70 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-2-auth-login/without_skill/run-1/grading.json +30 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-2-auth-login/without_skill/run-1/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-2-auth-login/without_skill/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-3-update-doc/eval_metadata.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-3-update-doc/with_skill/outputs/answer.md +15 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-3-update-doc/with_skill/run-1/grading.json +30 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-3-update-doc/with_skill/run-1/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-3-update-doc/with_skill/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-3-update-doc/without_skill/outputs/answer.md +22 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-3-update-doc/without_skill/run-1/grading.json +30 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-3-update-doc/without_skill/run-1/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-3-update-doc/without_skill/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-4-comment-selection/eval_metadata.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-4-comment-selection/with_skill/outputs/answer.md +36 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-4-comment-selection/with_skill/run-1/grading.json +30 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-4-comment-selection/with_skill/run-1/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-4-comment-selection/with_skill/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-4-comment-selection/without_skill/outputs/answer.md +68 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-4-comment-selection/without_skill/run-1/grading.json +30 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-4-comment-selection/without_skill/run-1/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/iteration-2/eval-4-comment-selection/without_skill/timing.json +1 -0
- yuque_cli-1.0.12/.claude/skills/yuque-cli-usage-workspace/review.html +1325 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/PKG-INFO +3 -3
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/README.md +2 -2
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/pyproject.toml +1 -1
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/src/yuque_cli/cli.py +15 -14
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/src/yuque_cli/urls.py +21 -5
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/test/test_cli.py +5 -5
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/test/test_urls.py +33 -9
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/uv.lock +1 -1
- yuque_cli-0.2.0/.claude/settings.local.json +0 -21
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/.gitignore +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/.python-version +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/.vscode/extensions.json +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/.vscode/settings.json +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/AGENTS.md +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/CLAUDE.md +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/CONTEXT.md +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/docs/adr/0001-use-internal-web-api-with-cookie-auth.md +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/docs/adr/0002-cookie-acquisition-cdp-with-manual-fallback.md +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/docs/adr/0003-doc-update-fetch-then-merge.md +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/docs/internal-api.md +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/main.py +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/mise.toml +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/src/yuque_cli/__init__.py +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/src/yuque_cli/__main__.py +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/src/yuque_cli/appdata.py +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/src/yuque_cli/auth.py +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/src/yuque_cli/client.py +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/src/yuque_cli/config.py +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/src/yuque_cli/errors.py +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/src/yuque_cli/inputs.py +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/src/yuque_cli/output.py +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/src/yuque_cli/session.py +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/test/test_appdata.py +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/test/test_auth.py +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/test/test_client.py +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/test/test_config.py +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/test/test_inputs.py +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/test/test_output.py +0 -0
- {yuque_cli-0.2.0 → yuque_cli-1.0.12}/test/test_session.py +0 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hooks": {
|
|
3
|
+
"Stop": [
|
|
4
|
+
{
|
|
5
|
+
"matcher": "EDIT|Write",
|
|
6
|
+
"hooks": [
|
|
7
|
+
{
|
|
8
|
+
"type": "command",
|
|
9
|
+
"command": "if git diff --name-only HEAD 2>/dev/null | grep -q '^src/\\|^pyproject.toml'; then current=$(grep '^version = ' pyproject.toml | head -1 | sed 's/version = \"\\(.*\\)\"/\\1/'); IFS='.' read -r major minor patch <<< \"$current\"; new=\"$major.$minor.$((patch + 1))\"; sed -i '' \"s/^version = \\\".*\\\"/version = \\\"$new\\\"/\" pyproject.toml && echo \"[版本升级] $current → $new (patch)\"; fi"
|
|
10
|
+
}
|
|
11
|
+
]
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"mcp__chrome-devtools__new_page",
|
|
5
|
+
"Bash(uv run *)",
|
|
6
|
+
"mcp__context7__resolve-library-id",
|
|
7
|
+
"mcp__context7__query-docs",
|
|
8
|
+
"Bash(uv pip *)",
|
|
9
|
+
"Bash(uv add *)",
|
|
10
|
+
"Bash(ps -p 46455 -o command=)",
|
|
11
|
+
"Bash(curl --noproxy '*' -sS -m 3 -i http://127.0.0.1:9222/)",
|
|
12
|
+
"Bash(curl --noproxy '*' -sS -m 3 http://127.0.0.1:9222/json)",
|
|
13
|
+
"Bash(curl --noproxy '*' -sS -m 3 http://127.0.0.1:9222/json/list)",
|
|
14
|
+
"Bash(python *)",
|
|
15
|
+
"mcp__chrome-devtools__take_snapshot",
|
|
16
|
+
"mcp__chrome-devtools__navigate_page",
|
|
17
|
+
"mcp__chrome-devtools__list_pages",
|
|
18
|
+
"WebSearch",
|
|
19
|
+
"Bash(mkdir *)",
|
|
20
|
+
"Write(/Users/liyujun/w/paykka/devops/yuque-cli/.claude/skills/yuque-cli-usage-workspace/*)",
|
|
21
|
+
"Bash(PYTHONPATH=/Users/liyujun/.claude/plugins/cache/claude-plugins-official/skill-creator/0d82eac145a5/skills/skill-creator python *)",
|
|
22
|
+
"Bash(mkdir -p __TRACKED_VAR__/__TRACKED_VAR__/run-1)",
|
|
23
|
+
"Bash([ -f \"$d/$c/grading.json\" ])",
|
|
24
|
+
"Bash(mv __TRACKED_VAR__/__TRACKED_VAR__/grading.json __TRACKED_VAR__/__TRACKED_VAR__/run-1/)",
|
|
25
|
+
"Bash([ -f \"$d/$c/timing.json\" ])",
|
|
26
|
+
"Bash(cp __TRACKED_VAR__/__TRACKED_VAR__/timing.json __TRACKED_VAR__/__TRACKED_VAR__/run-1/)",
|
|
27
|
+
"Bash(python3 -c ' *)"
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: yuque-cli-usage
|
|
3
|
+
description: >
|
|
4
|
+
提供 yuque-cli(语雀命令行客户端)的用法指导。当用户询问语雀 CLI 工具的使用方法、命令语法、认证配置、
|
|
5
|
+
文档/评论/知识库的增删改查操作、或者询问"怎么用 yuque-cli""yuque 命令怎么用""语雀命令行"等相关问题时,
|
|
6
|
+
使用此 skill。即使用户没有明确说 "yuque-cli",只要提到语雀的 CLI/命令行操作就应该触发。
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# yuque-cli 用法指导
|
|
10
|
+
|
|
11
|
+
你是语雀命令行客户端(yuque-cli)的用法顾问。你的职责是**简洁准确地**回答用户关于 yuque-cli 的使用问题。
|
|
12
|
+
|
|
13
|
+
## 信息来源
|
|
14
|
+
|
|
15
|
+
项目文档位于当前仓库,是回答问题的权威来源:
|
|
16
|
+
|
|
17
|
+
| 文档 | 内容 | 何时查阅 |
|
|
18
|
+
| --- | --- | --- |
|
|
19
|
+
| `README.md` | 安装、快速开始、全部命令和选项 | 命令语法、安装问题 |
|
|
20
|
+
| `CONTEXT.md` | 术语定义(space/repo/doc/comment/slug/namespace) | 术语混淆时 |
|
|
21
|
+
| `docs/internal-api.md` | 内部 API 参考 | 底层 API 行为时 |
|
|
22
|
+
| `docs/adr/` | 关键设计决策 | 为什么这样设计 |
|
|
23
|
+
|
|
24
|
+
**回答前务必先读取相关文档**,确保信息准确。
|
|
25
|
+
|
|
26
|
+
## 回答风格
|
|
27
|
+
|
|
28
|
+
- 直接给可用命令,不啰嗦背景
|
|
29
|
+
- 用代码块展示命令示例
|
|
30
|
+
- 如果问题超出已文档化的范围,诚实说明并建议查看源码
|
|
31
|
+
- 术语使用参考 CONTEXT.md:空间(space)、知识库(repo)、文档(doc)、评论(comment)、slug
|
|
32
|
+
|
|
33
|
+
## 核心用法速查
|
|
34
|
+
|
|
35
|
+
以下是最常见场景的快速参考,详细参数请查 README.md。
|
|
36
|
+
|
|
37
|
+
**安装**:`uvx --from yuque-cli@latest yuque`(一键运行,需 uv);或 `uv tool install yuque-cli`(持久安装)。Python ≥ 3.10 即可。
|
|
38
|
+
|
|
39
|
+
**登录**:`yuque auth login`(自动 CDP 抓 cookie);也可 `--cookie` 直接传入、`--manual` 交互粘贴。
|
|
40
|
+
|
|
41
|
+
**常用命令**:
|
|
42
|
+
```bash
|
|
43
|
+
yuque auth status # 查看登录身份
|
|
44
|
+
yuque repo list # 列出我的知识库
|
|
45
|
+
yuque doc list <space>/<repo> # 列出文档
|
|
46
|
+
yuque doc get <space>/<repo>/<slug> # 取文档 Markdown
|
|
47
|
+
yuque doc create <space>/<repo> -t "标题" --body "正文" # 创建文档
|
|
48
|
+
yuque doc update <space>/<repo>/<slug> -t "新标题" # 更新文档
|
|
49
|
+
yuque doc delete <space>/<repo>/<slug> # 删除文档(软删)
|
|
50
|
+
yuque comment list <space>/<repo>/<slug> # 列出评论
|
|
51
|
+
yuque comment create <space>/<repo>/<slug> -b "评论内容" # 添加评论
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## 评论(comment)与划词评论
|
|
55
|
+
|
|
56
|
+
**普通评论**(文档级,不关联具体文字):
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
yuque comment create <space>/<repo>/<slug> -b "评论内容"
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**划词评论**(关联到文档中某段具体文字),需额外传 `--selection` / `-s` 一个 JSON:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
yuque comment create <space>/<repo>/<slug> -b "评论内容" -s '<json>'
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### selection JSON 的结构
|
|
69
|
+
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"paragraph_id": "u-pid",
|
|
73
|
+
"text": "选中的文字",
|
|
74
|
+
"text_offset": 0,
|
|
75
|
+
"selection_range": {
|
|
76
|
+
"start": {"id": "u-eid", "text": "...", "offset": 0, "paragraphId": "u-pid", "paragraphOffset": 0},
|
|
77
|
+
"end": {"id": "u-eid", "text": "...", "offset": 3, "paragraphId": "u-pid", "paragraphOffset": 3}
|
|
78
|
+
},
|
|
79
|
+
"doc_version_id": 123
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
这些 ID 来自语雀文档内部的 Lake 格式结构,**不能凭空编造**。
|
|
84
|
+
|
|
85
|
+
### 获取 selection JSON 所需 ID
|
|
86
|
+
|
|
87
|
+
先用 `--json` 模式拉取文档段落结构:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
yuque --json doc get <space>/<repo>/<slug>
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
输出中的 `paragraphs` 数组包含每个段落的 `id`(即 `paragraph_id`)和内部 `spans` 的 `id`,顶层 `doc_version_id` 即为文档版本号。从其中提取需要的值,拼出上方的 selection JSON。
|
|
94
|
+
|
|
95
|
+
### 重要说明
|
|
96
|
+
|
|
97
|
+
- 不带 `--selection` 就是普通文档级评论,绝大多数场景够用
|
|
98
|
+
- `--selection` 的 JSON 必须是合法 JSON,格式错误会直接报错退出
|
|
99
|
+
- 如果只需要给文档加一条评论、不需要关联到具体文字,直接用普通评论即可
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "yuque-cli-usage",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "我想在语雀的团队空间(team)里的 handbook 知识库中创建一篇新文档,标题叫「新人入职指南」,内容从本地文件 onboarding.md 读取,不想公开。用 yuque-cli 怎么操作?",
|
|
7
|
+
"expected_output": "给出完整的 yuque doc create 命令,包含 -t 标题、-F 文件读入、--private 选项",
|
|
8
|
+
"files": []
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"id": 2,
|
|
12
|
+
"prompt": "yuque auth login 一直卡在等待 Chrome 远程调试,我的 Chrome 没有开那个调试端口,也不想手动粘贴 cookie,有没有其他办法?",
|
|
13
|
+
"expected_output": "说明三种登录方式:CDP 自动(需 Chrome 9222 端口)、--cookie 直接传入、--manual 手动粘贴,给出具体操作",
|
|
14
|
+
"files": []
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"id": 3,
|
|
18
|
+
"prompt": "我需要把一个语雀文档更新一下,只改标题不改正文。文档地址是 https://www.yuque.com/myteam/myproject/api-docs。命令行怎么写?",
|
|
19
|
+
"expected_output": "给出 yuque doc update 命令,用 URL 定位文档、-t 改标题,说明 doc update 未给的字段保持原值的合并语义",
|
|
20
|
+
"files": []
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": 4,
|
|
24
|
+
"prompt": "我想给语雀上 team/project/design-doc 这篇文档添加一条划词评论,评论内容是「这里需要再确认一下」,用 yuque-cli 的命令行怎么操作?",
|
|
25
|
+
"expected_output": "说明普通评论用 comment create -b,划词评论需额外加 --selection 传 JSON,解释 selection JSON 的作用并给出命令示例",
|
|
26
|
+
"files": []
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
}
|
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
{
|
|
2
|
+
"metadata": {
|
|
3
|
+
"skill_name": "yuque-cli-usage",
|
|
4
|
+
"skill_path": "<path/to/skill>",
|
|
5
|
+
"executor_model": "<model-name>",
|
|
6
|
+
"analyzer_model": "<model-name>",
|
|
7
|
+
"timestamp": "2026-06-02T00:55:22Z",
|
|
8
|
+
"evals_run": [
|
|
9
|
+
1,
|
|
10
|
+
2,
|
|
11
|
+
3,
|
|
12
|
+
4
|
|
13
|
+
],
|
|
14
|
+
"runs_per_configuration": 3
|
|
15
|
+
},
|
|
16
|
+
"runs": [
|
|
17
|
+
{
|
|
18
|
+
"eval_id": 1,
|
|
19
|
+
"configuration": "with_skill",
|
|
20
|
+
"run_number": 1,
|
|
21
|
+
"result": {
|
|
22
|
+
"pass_rate": 1.0,
|
|
23
|
+
"passed": 4,
|
|
24
|
+
"failed": 0,
|
|
25
|
+
"total": 4,
|
|
26
|
+
"time_seconds": 23.2,
|
|
27
|
+
"tokens": 23406,
|
|
28
|
+
"tool_calls": 0,
|
|
29
|
+
"errors": 0
|
|
30
|
+
},
|
|
31
|
+
"expectations": [
|
|
32
|
+
{
|
|
33
|
+
"text": "\u547d\u4ee4\u4f7f\u7528 yuque doc create",
|
|
34
|
+
"passed": true,
|
|
35
|
+
"evidence": "\u7ed9\u51fa yuque doc create team/handbook -t \"\u65b0\u4eba\u5165\u804c\u6307\u5357\" -F onboarding.md --private"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"text": "\u5305\u542b\u5fc5\u8981\u53c2\u6570: -t \u6807\u9898, -F \u8bfb\u6587\u4ef6, --private",
|
|
39
|
+
"passed": true,
|
|
40
|
+
"evidence": "\u547d\u4ee4\u4e2d -t\u3001-F\u3001--private \u4e09\u4e2a\u53c2\u6570\u9f50\u5168"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"text": "\u4f4d\u7f6e\u53c2\u6570\u6b63\u786e: team/handbook",
|
|
44
|
+
"passed": true,
|
|
45
|
+
"evidence": "\u6b63\u786e\u4f7f\u7528 team/handbook \u4f5c\u4e3a\u4f4d\u7f6e\u53c2\u6570"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"text": "\u56de\u7b54\u7b80\u6d01\uff0c\u65e0\u5197\u4f59\u80cc\u666f\u4ecb\u7ecd",
|
|
49
|
+
"passed": true,
|
|
50
|
+
"evidence": "\u4ec5 15 \u884c\uff0c\u76f4\u63a5\u7ed9\u547d\u4ee4\u548c\u53c2\u6570\u8bf4\u660e"
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"notes": []
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"eval_id": 2,
|
|
57
|
+
"configuration": "with_skill",
|
|
58
|
+
"run_number": 1,
|
|
59
|
+
"result": {
|
|
60
|
+
"pass_rate": 1.0,
|
|
61
|
+
"passed": 4,
|
|
62
|
+
"failed": 0,
|
|
63
|
+
"total": 4,
|
|
64
|
+
"time_seconds": 48.6,
|
|
65
|
+
"tokens": 33688,
|
|
66
|
+
"tool_calls": 0,
|
|
67
|
+
"errors": 0
|
|
68
|
+
},
|
|
69
|
+
"expectations": [
|
|
70
|
+
{
|
|
71
|
+
"text": "\u63d0\u5230\u4e86 --cookie \u4f5c\u4e3a\u767b\u5f55\u66ff\u4ee3\u65b9\u6848",
|
|
72
|
+
"passed": true,
|
|
73
|
+
"evidence": "\u660e\u786e\u6307\u51fa --cookie \u9009\u9879\uff0c\u7ed9\u51fa\u5b8c\u6574\u547d\u4ee4\u793a\u4f8b"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"text": "\u8bf4\u660e\u4e86 CDP \u9700\u8981 Chrome 9222 \u7aef\u53e3\u7684\u524d\u63d0",
|
|
77
|
+
"passed": true,
|
|
78
|
+
"evidence": "\u5728\u5907\u9009\u65b9\u6848\u4e2d\u7ed9\u51fa Chrome --remote-debugging-port=9222 \u547d\u4ee4"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"text": "\u63d0\u5230\u4e86 --manual \u9009\u9879",
|
|
82
|
+
"passed": true,
|
|
83
|
+
"evidence": "\u63d0\u5230 --manual \u65b9\u5f0f\u4f1a\u63d0\u793a\u4ea4\u4e92\u5f0f\u7c98\u8d34 cookie"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"text": "\u56de\u7b54\u7b80\u6d01\uff0c\u805a\u7126\u4e8e\u89e3\u51b3\u7528\u6237\u95ee\u9898",
|
|
87
|
+
"passed": true,
|
|
88
|
+
"evidence": "24 \u884c\uff0c\u76f4\u63a5\u63a8\u8350 --cookie \u65b9\u6848\u5e76\u6709\u5907\u9009"
|
|
89
|
+
}
|
|
90
|
+
],
|
|
91
|
+
"notes": []
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"eval_id": 3,
|
|
95
|
+
"configuration": "with_skill",
|
|
96
|
+
"run_number": 1,
|
|
97
|
+
"result": {
|
|
98
|
+
"pass_rate": 1.0,
|
|
99
|
+
"passed": 4,
|
|
100
|
+
"failed": 0,
|
|
101
|
+
"total": 4,
|
|
102
|
+
"time_seconds": 20.8,
|
|
103
|
+
"tokens": 22872,
|
|
104
|
+
"tool_calls": 0,
|
|
105
|
+
"errors": 0
|
|
106
|
+
},
|
|
107
|
+
"expectations": [
|
|
108
|
+
{
|
|
109
|
+
"text": "\u547d\u4ee4\u4f7f\u7528 yuque doc update",
|
|
110
|
+
"passed": true,
|
|
111
|
+
"evidence": "yuque doc update myteam/myproject/api-docs -t \"\u65b0\u6807\u9898\""
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"text": "\u53ea\u7528 -t \u6539\u6807\u9898\uff0c\u4e0d\u52a0 -b/-F \u6539\u6b63\u6587",
|
|
115
|
+
"passed": true,
|
|
116
|
+
"evidence": "\u660e\u786e\u6307\u51fa\u4e0d\u52a0 -b/-F \u5c31\u4e0d\u4f1a\u52a8\u6b63\u6587"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"text": "\u8bf4\u660e\u4e86\u672a\u7ed9\u5b57\u6bb5\u4fdd\u6301\u539f\u503c\u7684\u5408\u5e76\u8bed\u4e49",
|
|
120
|
+
"passed": true,
|
|
121
|
+
"evidence": "\u5148\u53d6\u540e\u5408\u5e76\uff1a\u672a\u7ed9\u7684\u5b57\u6bb5\u4fdd\u6301\u539f\u503c"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"text": "\u6b63\u786e\u89e3\u6790 URL \u5f97\u5230 space/repo/slug",
|
|
125
|
+
"passed": true,
|
|
126
|
+
"evidence": "\u89e3\u6790\u51fa myteam/myproject/api-docs"
|
|
127
|
+
}
|
|
128
|
+
],
|
|
129
|
+
"notes": []
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"eval_id": 4,
|
|
133
|
+
"configuration": "with_skill",
|
|
134
|
+
"run_number": 1,
|
|
135
|
+
"result": {
|
|
136
|
+
"pass_rate": 1.0,
|
|
137
|
+
"passed": 4,
|
|
138
|
+
"failed": 0,
|
|
139
|
+
"total": 4,
|
|
140
|
+
"time_seconds": 75.8,
|
|
141
|
+
"tokens": 29844,
|
|
142
|
+
"tool_calls": 0,
|
|
143
|
+
"errors": 0
|
|
144
|
+
},
|
|
145
|
+
"expectations": [
|
|
146
|
+
{
|
|
147
|
+
"text": "\u547d\u4ee4\u4f7f\u7528 yuque comment create",
|
|
148
|
+
"passed": true,
|
|
149
|
+
"evidence": "yuque comment create team/project/design-doc -b ... -s ..."
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"text": "\u63d0\u5230\u4e86 --selection/-s \u7528\u4e8e\u5212\u8bcd\u8bc4\u8bba",
|
|
153
|
+
"passed": true,
|
|
154
|
+
"evidence": "\u660e\u786e\u8bf4\u660e --selection / -s \u4f20\u5165\u9009\u4e2d\u533a\u57df\u7684 JSON"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"text": "\u8bf4\u660e\u4e86 selection JSON \u9700\u4ece --json doc get \u83b7\u53d6\u6bb5\u843d\u7ed3\u6784",
|
|
158
|
+
"passed": true,
|
|
159
|
+
"evidence": "\u9700\u8981\u7528 yuque --json doc get \u5148\u83b7\u53d6\u6bb5\u843d\u7ed3\u6784\u540e\u624d\u80fd\u6784\u9020"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"text": "\u7ed9\u51fa\u4e86\u65e0 --selection \u7684\u666e\u901a\u8bc4\u8bba\u4f5c\u4e3a\u53d8\u901a\u65b9\u6848",
|
|
163
|
+
"passed": true,
|
|
164
|
+
"evidence": "\u4e0d\u5e26 --selection \u5373\u4e3a\u666e\u901a\u6587\u6863\u7ea7\u8bc4\u8bba\uff0c\u7ed9\u51fa\u4e86\u5b8c\u6574\u547d\u4ee4"
|
|
165
|
+
}
|
|
166
|
+
],
|
|
167
|
+
"notes": []
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"eval_id": 1,
|
|
171
|
+
"configuration": "without_skill",
|
|
172
|
+
"run_number": 1,
|
|
173
|
+
"result": {
|
|
174
|
+
"pass_rate": 1.0,
|
|
175
|
+
"passed": 4,
|
|
176
|
+
"failed": 0,
|
|
177
|
+
"total": 4,
|
|
178
|
+
"time_seconds": 45.7,
|
|
179
|
+
"tokens": 31002,
|
|
180
|
+
"tool_calls": 0,
|
|
181
|
+
"errors": 0
|
|
182
|
+
},
|
|
183
|
+
"expectations": [
|
|
184
|
+
{
|
|
185
|
+
"text": "\u547d\u4ee4\u4f7f\u7528 yuque doc create",
|
|
186
|
+
"passed": true,
|
|
187
|
+
"evidence": "\u7ed9\u51fa yuque doc create team/handbook -t \"\u65b0\u4eba\u5165\u804c\u6307\u5357\" -F onboarding.md --private"
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"text": "\u5305\u542b\u5fc5\u8981\u53c2\u6570: -t \u6807\u9898, -F \u8bfb\u6587\u4ef6, --private",
|
|
191
|
+
"passed": true,
|
|
192
|
+
"evidence": "\u547d\u4ee4\u5305\u542b -t\u3001-F\u3001--private"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"text": "\u4f4d\u7f6e\u53c2\u6570\u6b63\u786e: team/handbook",
|
|
196
|
+
"passed": true,
|
|
197
|
+
"evidence": "\u6b63\u786e\u4f7f\u7528 team/handbook"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"text": "\u56de\u7b54\u7b80\u6d01\uff0c\u65e0\u5197\u4f59\u80cc\u666f\u4ecb\u7ecd",
|
|
201
|
+
"passed": true,
|
|
202
|
+
"evidence": "21 \u884c\uff0c\u6709\u989d\u5916\u7684\u7ba1\u9053\u793a\u4f8b\u4f46\u7b97\u8865\u5145\u5b9e\u7528\u4fe1\u606f"
|
|
203
|
+
}
|
|
204
|
+
],
|
|
205
|
+
"notes": []
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"eval_id": 2,
|
|
209
|
+
"configuration": "without_skill",
|
|
210
|
+
"run_number": 1,
|
|
211
|
+
"result": {
|
|
212
|
+
"pass_rate": 0.75,
|
|
213
|
+
"passed": 3,
|
|
214
|
+
"failed": 1,
|
|
215
|
+
"total": 4,
|
|
216
|
+
"time_seconds": 90.1,
|
|
217
|
+
"tokens": 35760,
|
|
218
|
+
"tool_calls": 0,
|
|
219
|
+
"errors": 0
|
|
220
|
+
},
|
|
221
|
+
"expectations": [
|
|
222
|
+
{
|
|
223
|
+
"text": "\u63d0\u5230\u4e86 --cookie \u4f5c\u4e3a\u767b\u5f55\u66ff\u4ee3\u65b9\u6848",
|
|
224
|
+
"passed": true,
|
|
225
|
+
"evidence": "\u65b9\u6848 1 \u5c31\u662f --cookie\uff0c\u7ed9\u51fa\u5b8c\u6574\u7684 control+f \u8fc7\u6ee4\u5f0f\u83b7\u53d6 cookie \u7684 JS \u4ee3\u7801"
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
"text": "\u8bf4\u660e\u4e86 CDP \u9700\u8981 Chrome 9222 \u7aef\u53e3\u7684\u524d\u63d0",
|
|
229
|
+
"passed": true,
|
|
230
|
+
"evidence": "\u65b9\u6848 3 \u7ed9\u51fa Chrome \u8c03\u8bd5\u7aef\u53e3\u542f\u52a8\u547d\u4ee4"
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"text": "\u63d0\u5230\u4e86 --manual \u9009\u9879",
|
|
234
|
+
"passed": false,
|
|
235
|
+
"evidence": "\u7528\u6237\u8bf4\u4e0d\u60f3\u624b\u52a8\u7c98\u8d34\uff0cwithout_skill \u5b8c\u5168\u6ca1\u63d0 --manual\uff0c\u4f46\u8fd9\u662f\u5408\u7406\u7684\u56e0\u4e3a\u7528\u6237\u6392\u9664\u4e86\u8fd9\u4e2a\u9009\u9879"
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
"text": "\u56de\u7b54\u7b80\u6d01\uff0c\u805a\u7126\u4e8e\u89e3\u51b3\u7528\u6237\u95ee\u9898",
|
|
239
|
+
"passed": true,
|
|
240
|
+
"evidence": "28 \u884c\uff0c\u4e09\u79cd\u65b9\u6848\u6e05\u6670\u5f52\u7c7b"
|
|
241
|
+
}
|
|
242
|
+
],
|
|
243
|
+
"notes": []
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"eval_id": 3,
|
|
247
|
+
"configuration": "without_skill",
|
|
248
|
+
"run_number": 1,
|
|
249
|
+
"result": {
|
|
250
|
+
"pass_rate": 1.0,
|
|
251
|
+
"passed": 4,
|
|
252
|
+
"failed": 0,
|
|
253
|
+
"total": 4,
|
|
254
|
+
"time_seconds": 46.5,
|
|
255
|
+
"tokens": 31306,
|
|
256
|
+
"tool_calls": 0,
|
|
257
|
+
"errors": 0
|
|
258
|
+
},
|
|
259
|
+
"expectations": [
|
|
260
|
+
{
|
|
261
|
+
"text": "\u547d\u4ee4\u4f7f\u7528 yuque doc update",
|
|
262
|
+
"passed": true,
|
|
263
|
+
"evidence": "yuque doc update myteam/myproject/api-docs -t \"\u65b0\u7684\u6807\u9898\""
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
"text": "\u53ea\u7528 -t \u6539\u6807\u9898\uff0c\u4e0d\u52a0 -b/-F \u6539\u6b63\u6587",
|
|
267
|
+
"passed": true,
|
|
268
|
+
"evidence": "\u660e\u786e\u8bf4\u53ea\u7ed9 -t \u5c31\u884c\uff0c\u4e0d\u8981\u7ed9 -b \u6216 -F"
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
"text": "\u8bf4\u660e\u4e86\u672a\u7ed9\u5b57\u6bb5\u4fdd\u6301\u539f\u503c\u7684\u5408\u5e76\u8bed\u4e49",
|
|
272
|
+
"passed": true,
|
|
273
|
+
"evidence": "\u6ca1\u7ed9\u7684\u5b57\u6bb5\u4fdd\u6301\u539f\u503c"
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
"text": "\u6b63\u786e\u89e3\u6790 URL \u5f97\u5230 space/repo/slug",
|
|
277
|
+
"passed": true,
|
|
278
|
+
"evidence": "\u89e3\u6790\u51fa myteam\u3001myproject\u3001api-docs"
|
|
279
|
+
}
|
|
280
|
+
],
|
|
281
|
+
"notes": []
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"eval_id": 4,
|
|
285
|
+
"configuration": "without_skill",
|
|
286
|
+
"run_number": 1,
|
|
287
|
+
"result": {
|
|
288
|
+
"pass_rate": 1.0,
|
|
289
|
+
"passed": 4,
|
|
290
|
+
"failed": 0,
|
|
291
|
+
"total": 4,
|
|
292
|
+
"time_seconds": 80.1,
|
|
293
|
+
"tokens": 37902,
|
|
294
|
+
"tool_calls": 0,
|
|
295
|
+
"errors": 0
|
|
296
|
+
},
|
|
297
|
+
"expectations": [
|
|
298
|
+
{
|
|
299
|
+
"text": "\u547d\u4ee4\u4f7f\u7528 yuque comment create",
|
|
300
|
+
"passed": true,
|
|
301
|
+
"evidence": "yuque comment create team/project/design-doc --body ... --selection ..."
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
"text": "\u63d0\u5230\u4e86 --selection/-s \u7528\u4e8e\u5212\u8bcd\u8bc4\u8bba",
|
|
305
|
+
"passed": true,
|
|
306
|
+
"evidence": "--selection \u9009\u9879\uff0c\u8be6\u7ec6\u8bf4\u660e\u4e86 selection JSON \u7ed3\u6784"
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
"text": "\u8bf4\u660e\u4e86 selection JSON \u9700\u4ece --json doc get \u83b7\u53d6\u6bb5\u843d\u7ed3\u6784",
|
|
310
|
+
"passed": true,
|
|
311
|
+
"evidence": "\u64cd\u4f5c\u6b65\u9aa4\u7b2c 1 \u6b65\u5c31\u662f\u7528 --json doc get \u83b7\u53d6\u6bb5\u843d\u7ed3\u6784"
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
"text": "\u7ed9\u51fa\u4e86\u65e0 --selection \u7684\u666e\u901a\u8bc4\u8bba\u4f5c\u4e3a\u53d8\u901a\u65b9\u6848",
|
|
315
|
+
"passed": true,
|
|
316
|
+
"evidence": "\u6ce8\u610f\u4e2d\u8bf4\u660e\u4e0d\u9700\u8981\u5173\u8054\u5230\u5177\u4f53\u6587\u5b57\u76f4\u63a5\u7528\u666e\u901a\u8bc4\u8bba"
|
|
317
|
+
}
|
|
318
|
+
],
|
|
319
|
+
"notes": []
|
|
320
|
+
}
|
|
321
|
+
],
|
|
322
|
+
"run_summary": {
|
|
323
|
+
"with_skill": {
|
|
324
|
+
"pass_rate": {
|
|
325
|
+
"mean": 1.0,
|
|
326
|
+
"stddev": 0.0,
|
|
327
|
+
"min": 1.0,
|
|
328
|
+
"max": 1.0
|
|
329
|
+
},
|
|
330
|
+
"time_seconds": {
|
|
331
|
+
"mean": 42.1,
|
|
332
|
+
"stddev": 25.7478,
|
|
333
|
+
"min": 20.8,
|
|
334
|
+
"max": 75.8
|
|
335
|
+
},
|
|
336
|
+
"tokens": {
|
|
337
|
+
"mean": 27452.5,
|
|
338
|
+
"stddev": 5226.7222,
|
|
339
|
+
"min": 22872,
|
|
340
|
+
"max": 33688
|
|
341
|
+
}
|
|
342
|
+
},
|
|
343
|
+
"without_skill": {
|
|
344
|
+
"pass_rate": {
|
|
345
|
+
"mean": 0.9375,
|
|
346
|
+
"stddev": 0.125,
|
|
347
|
+
"min": 0.75,
|
|
348
|
+
"max": 1.0
|
|
349
|
+
},
|
|
350
|
+
"time_seconds": {
|
|
351
|
+
"mean": 65.6,
|
|
352
|
+
"stddev": 22.8861,
|
|
353
|
+
"min": 45.7,
|
|
354
|
+
"max": 90.1
|
|
355
|
+
},
|
|
356
|
+
"tokens": {
|
|
357
|
+
"mean": 33992.5,
|
|
358
|
+
"stddev": 3394.5358,
|
|
359
|
+
"min": 31002,
|
|
360
|
+
"max": 37902
|
|
361
|
+
}
|
|
362
|
+
},
|
|
363
|
+
"delta": {
|
|
364
|
+
"pass_rate": "+0.06",
|
|
365
|
+
"time_seconds": "-23.5",
|
|
366
|
+
"tokens": "-6540"
|
|
367
|
+
}
|
|
368
|
+
},
|
|
369
|
+
"notes": []
|
|
370
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Skill Benchmark: yuque-cli-usage
|
|
2
|
+
|
|
3
|
+
**Model**: <model-name>
|
|
4
|
+
**Date**: 2026-06-02T00:55:22Z
|
|
5
|
+
**Evals**: 1, 2, 3, 4 (3 runs each per configuration)
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
|
|
9
|
+
| Metric | With Skill | Without Skill | Delta |
|
|
10
|
+
|--------|------------|---------------|-------|
|
|
11
|
+
| Pass Rate | 100% ± 0% | 94% ± 12% | +0.06 |
|
|
12
|
+
| Time | 42.1s ± 25.7s | 65.6s ± 22.9s | -23.5s |
|
|
13
|
+
| Tokens | 27452 ± 5227 | 33992 ± 3395 | -6540 |
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"eval_id": 1,
|
|
3
|
+
"eval_name": "create-doc",
|
|
4
|
+
"prompt": "我想在语雀的团队空间(team)里的 handbook 知识库中创建一篇新文档,标题叫「新人入职指南」,内容从本地文件 onboarding.md 读取,不想公开。用 yuque-cli 怎么操作?",
|
|
5
|
+
"assertions": [
|
|
6
|
+
{"text": "命令使用 yuque doc create", "passed": null},
|
|
7
|
+
{"text": "包含必要参数: -t 标题, -F 读文件, --private", "passed": null},
|
|
8
|
+
{"text": "位置参数正确: team/handbook", "passed": null},
|
|
9
|
+
{"text": "回答简洁,无冗余背景介绍", "passed": null}
|
|
10
|
+
]
|
|
11
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
## 命令
|
|
2
|
+
|
|
3
|
+
```bash
|
|
4
|
+
yuque doc create team/handbook -t "新人入职指南" -F onboarding.md --private
|
|
5
|
+
```
|
|
6
|
+
|
|
7
|
+
## 参数
|
|
8
|
+
|
|
9
|
+
- `team/handbook` — 团队空间 team 下的 handbook 知识库
|
|
10
|
+
- `-t "新人入职指南"` — 文档标题(必填)
|
|
11
|
+
- `-F onboarding.md` — 从本地文件读 Markdown 正文
|
|
12
|
+
- `--private` — 设为不公开
|
|
13
|
+
|
|
14
|
+
前置:确保已登录 `yuque auth login`。
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"expectations": [
|
|
3
|
+
{
|
|
4
|
+
"text": "命令使用 yuque doc create",
|
|
5
|
+
"passed": true,
|
|
6
|
+
"evidence": "给出 yuque doc create team/handbook -t \"新人入职指南\" -F onboarding.md --private"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"text": "包含必要参数: -t 标题, -F 读文件, --private",
|
|
10
|
+
"passed": true,
|
|
11
|
+
"evidence": "命令中 -t、-F、--private 三个参数齐全"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"text": "位置参数正确: team/handbook",
|
|
15
|
+
"passed": true,
|
|
16
|
+
"evidence": "正确使用 team/handbook 作为位置参数"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"text": "回答简洁,无冗余背景介绍",
|
|
20
|
+
"passed": true,
|
|
21
|
+
"evidence": "仅 15 行,直接给命令和参数说明"
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"summary": {
|
|
25
|
+
"passed": 4,
|
|
26
|
+
"failed": 0,
|
|
27
|
+
"total": 4,
|
|
28
|
+
"pass_rate": 1.0
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"total_tokens": 23406, "duration_ms": 23225, "total_duration_seconds": 23.2}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"total_tokens": 23406, "duration_ms": 23225, "total_duration_seconds": 23.2}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
## 前提
|
|
2
|
+
|
|
3
|
+
登录:`yuque auth login`,验证:`yuque auth status`。
|
|
4
|
+
|
|
5
|
+
## 命令
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
yuque doc create team/handbook -t "新人入职指南" -F onboarding.md --private
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 参数说明
|
|
12
|
+
|
|
13
|
+
| 参数 | 含义 |
|
|
14
|
+
|------|------|
|
|
15
|
+
| `team/handbook` | 团队空间 + 知识库名 |
|
|
16
|
+
| `-t "新人入职指南"` | 文档标题(必填) |
|
|
17
|
+
| `-F onboarding.md` | 从本地文件读正文 |
|
|
18
|
+
| `--private` | 不公开 |
|
|
19
|
+
|
|
20
|
+
也可用管道:`cat onboarding.md | yuque doc create team/handbook -t "新人入职指南" --private`
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"expectations": [
|
|
3
|
+
{
|
|
4
|
+
"text": "命令使用 yuque doc create",
|
|
5
|
+
"passed": true,
|
|
6
|
+
"evidence": "给出 yuque doc create team/handbook -t \"新人入职指南\" -F onboarding.md --private"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"text": "包含必要参数: -t 标题, -F 读文件, --private",
|
|
10
|
+
"passed": true,
|
|
11
|
+
"evidence": "命令包含 -t、-F、--private"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"text": "位置参数正确: team/handbook",
|
|
15
|
+
"passed": true,
|
|
16
|
+
"evidence": "正确使用 team/handbook"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"text": "回答简洁,无冗余背景介绍",
|
|
20
|
+
"passed": true,
|
|
21
|
+
"evidence": "21 行,有额外的管道示例但算补充实用信息"
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"summary": {
|
|
25
|
+
"passed": 4,
|
|
26
|
+
"failed": 0,
|
|
27
|
+
"total": 4,
|
|
28
|
+
"pass_rate": 1.0
|
|
29
|
+
}
|
|
30
|
+
}
|