语雀文档skill

SKILL效率
效率 未标注权限 许可证不明确
安装这个技能

当用户想要操作语雀文档时使用本 Skill。支持:推送本地 markdown 到语雀知识库、拉取云端文档到本地、创建/更新/删除文档、查看目录结构(TOC)、智能增量同步(sync)、状态对比(status)。当用户想管理语雀团队成员/权限/知识库设置、跨知识库批量迁移、或操作飞书/钉钉/Notion 等其他平台时,不要使用本 Skill。

一句话选型结论

按资料字段整理

语雀文档skill是效率类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类效率 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_924c5114/yuque-docs-skill
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

效率
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_924c5114仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791737598
正文体量12.8 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
整理待办与日程

把零散任务收进清单,排出优先级。

批量处理重复任务

把固定动作做成模板,重复执行。

把流程写成清单

把口头流程整理成可复用的步骤。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在效率场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
语雀文档skill当前 未标注权限 未标注 未标注 未标注 有
Nano PDF 文档 联网访问 ClawHub 市场 424.9 万 OpenClaw 有
自动更新程序 浏览器控制 ClawHub 市场 296.4 万 OpenClaw 有
Gemini 助手 联网访问 ClawHub 市场 254.7 万 OpenClaw 有
word DOCX 文档 联网访问 ClawHub 市场 239.6 万 OpenClaw 有
Excel XLSX 前端 联网访问 ClawHub 市场 227.0 万 OpenClaw 有

SKILL.md 全文

12.8 KB
模型实际读到的说明书原文,来自技能仓库

Yuque Document Push

Manage documents in a Yuque knowledge base through the OpenAPI. Owns create, read, update, delete of documents and TOC inspection.

What this skill owns

  • CRUD operations on documents within a single Yuque knowledge base.
  • Automatic TOC insertion after document creation.
  • Reading and displaying the knowledge base table of contents.

This skill does NOT own:
- Yuque repository or team management (create/delete repos, manage members).
- Cross-repo operations or batch migration.
- Yuque authentication setup (the user must provide a valid token).

Prerequisites

  1. Python 3.8+ with requests and python-dotenv installed.
  2. A .env file in the project root (created via the setup flow below).

First-time setup

If the user has not configured this skill yet (no .env file, or list returns a config error), follow this flow:

  1. Ask for the knowledge base URL. Tell the user:
    > Please paste your Yuque knowledge base URL, for example: https://xxx.yuque.com/group/book
    >
    > You can find it by opening your knowledge base in the browser and copying the address bar URL.

  2. Ask for the API token. Tell the user:
    > Please paste your Yuque API token.
    >
    > To create one: open Yuque -> click your avatar (top right) -> "Account Settings" -> "Tokens" -> "Create new token". Grant it read/write access to your target knowledge base.
    >
    > Token page: https://www.yuque.com/settings/tokens

  3. Run the setup command. The script auto-parses the URL and validates the connection:
    bash python scripts/yuque_cli.py setup --url "<user_url>" --token "<user_token>"
    - On success: .env is written, connection is verified, .gitignore is checked.
    - On failure: the script prints the exact error (bad token, wrong URL, etc.). Fix and retry.
    - Use --force to overwrite an existing .env.

  4. Confirm by running python scripts/yuque_cli.py list.

Security rules

  • NEVER echo, print, or include the token in your text responses to the user. Pass it only as a CLI argument to the setup script.
  • NEVER commit .env to git. The setup script checks .gitignore and warns if .env is not excluded.
  • NEVER hardcode the token in any file other than .env.
  • If the user pastes a token in chat, immediately use it in the setup command and do not repeat it back.

Default path

  1. Validate prerequisites. Run python scripts/yuque_cli.py list to confirm token and repo are valid.
  2. Identify the action. Determine whether the user wants to create, update, delete, or inspect.
  3. Execute the action using scripts/yuque_cli.py with the matching subcommand.
  4. Verify the result. Use list, get, or toc to confirm the operation succeeded.
  5. Report the outcome: doc ID, title, slug, and any errors.

Command reference

Action Command Key flags
Setup python scripts/yuque_cli.py setup --url URL --token TOKEN --force, --env-path
List python scripts/yuque_cli.py list --offset, --limit
Get python scripts/yuque_cli.py get <id_or_slug>
Create python scripts/yuque_cli.py create -t "Title" -b "Body" -f FILE, --no-toc, --format, --slug
Update python scripts/yuque_cli.py update <id_or_slug> -t "T" -b, -f FILE, --format
Delete python scripts/yuque_cli.py delete <id_or_slug> --confirm --confirm required (not optional)
TOC python scripts/yuque_cli.py toc
Sync python scripts/yuque_cli.py sync --check, --root, --layout, --on-missing
Pull python scripts/yuque_cli.py pull --slug <slug> --all, --overwrite, --root, --layout
Status python scripts/yuque_cli.py status --root, --layout

Global flags available on all commands: --json (machine-readable output), --dry-run (preview without executing).

> Dry-run mode always outputs JSON regardless of the --json flag. Use it to inspect the payload before committing.

Sync workflow

Use sync for "push only what actually changed" instead of blind update. The script maintains .yuque-sync.json (auto-added to .gitignore) tracking each doc's local content hash and remote latest_version_id, so unchanged docs are skipped without any GET-detail call.

First-time init

When the user runs sync/pull/status and no state file exists, the script auto-detects the local layout from .md files under --root (default cwd):

  • flat — all .md files at top level. Slug = file stem.
  • nested — .md files under subdirectories. Slug = file stem (subdirs are organizational only; they do not create TOC groups).
  • frontmatter — every file has --- slug: xxx --- frontmatter at the top. Slug = frontmatter value.
  • empty — no .md files yet; suggest pull --all to seed locally.

If layouts are mixed or partially-frontmatter, the script errors and asks the user to pass --layout flat|nested|frontmatter or normalize the directory.

Frontmatter fields (frontmatter layout)

In frontmatter layout, each .md file begins with a YAML block. Supported fields:

  • slug (required) — the Yuque document slug (URL identifier). Usually English kebab-case, e.g. create-draft-task.
  • title (optional) — the document title pushed to Yuque. Useful when the file name or H1 should not be used as the title.

Example:

---
slug: create-draft-task
title: 创建起草任务
---

# 创建起草任务
正文内容。

The YAML frontmatter is stripped before pushing to Yuque — it never appears in the rendered document body.

Title extraction priority

When sync pushes a document, the title sent to Yuque is resolved in this order:

  1. Frontmatter title field (if present)
  2. First H1 heading (# Heading) in the body
  3. File name stem (without .md extension)
  4. Slug (last resort)

When the title falls back to the file name or slug (steps 3–4), sync --check / status lists these docs under a "Title fallback" section so you know to add an H1 or frontmatter title.

Use sync --force-title to always use the file name stem as the title, ignoring H1 and frontmatter title. This is useful when upstream-generated titles are unreliable.

Automatic body transformations on push

During sync push, the following transformations are applied to the body before sending it to Yuque:

  1. Frontmatter stripping — YAML frontmatter is removed (frontmatter layout only).
  2. Inter-document link rewriting — [text](file.md) links are converted to [text](slug) using the local slug map, so they resolve correctly on Yuque. External URLs (http://...), anchors (#section), and non-.md links are left untouched. Unresolved links are kept as-is and reported as warnings.
  3. Bold format fix — **标签:**值 (bold-close marker directly followed by a non-space character) is rewritten to **标签:** 值, because Yuque's renderer requires a trailing space to recognize the bold-close marker. Already-correct **标签:** 值 is not affected.

On pull, the reverse transformation is applied: slug links are converted back to local file-name links when a matching local file is known.

Sync flow per run

  1. Lists all remote docs once (with optional_properties=latest_version_id) — no per-doc GET.
  2. For each local file, compares normalized SHA-256 of the body and the remote latest_version_id to the values stored in .yuque-sync.json.
  3. Pushes:
    - create for local files with no remote counterpart (auto-adds to TOC).
    - update for local files whose body changed and remote did not.
    - Skips unchanged, conflicts (both sides changed, or remote moved), and non-markdown remotes (with a warning).
  4. After push, if any tracked doc has gone missing locally, stops with exit code 2 and prints a confirmation block (see below). Never auto-deletes remote docs.

Confirmation handling (exit code 2)

sync exits 2 when local files that were previously synced are now missing. This is not an error — it means the script needs an explicit choice from the user. The stdout block describes three options, each with the exact flag to re-run with:

  • --on-missing delete — delete on Yuque too
  • --on-missing pull — restore locally from Yuque
  • --on-missing forget — keep on Yuque, drop from local state

When you see exit code 2, show the printed block to the user (translated to their query language; see Language section), then re-invoke sync --on-missing <choice> once they pick.

Conflicts

If a doc was changed both locally and remotely (or remote moved while local stayed), sync lists it under "Conflicts" and skips it. Resolve manually:

  • pull --slug <slug> --overwrite — accept remote version locally.
  • update <slug> -f path/to/file.md — overwrite remote with local version.

After resolution, the next sync run will reconcile the state file.

Language

The CLI emits English in fixed-format blocks for stability. When relaying CLI output to the user — especially the sync confirmation block, status sections, and error messages — translate the human-readable text into the user's query language. Keep the following literal and untranslated:

  • CLI flag names and values (e.g. --on-missing delete, --layout flat).
  • Doc slugs, IDs, file paths.
  • Section keys in JSON output.

Failure handling

  • Missing .env or token: Stop. Run the first-time setup flow above. Do NOT ask the user to manually edit .env.
  • Invalid YUQUE_REPO format: Stop. Re-run setup with the correct URL.
  • .gitignore missing .env entry: Warn the user immediately. Do not proceed with any API calls until .env is protected.
  • 401 Unauthorized: Stop. Token is invalid or expired — ask the user to regenerate it.
  • 404 Not Found: Stop. The repo path or doc ID/slug is wrong — ask the user to verify.
  • 429 Rate Limited: Wait briefly and retry once. If it fails again, stop and inform the user.
  • No fields provided on update: Stop. At least one of --title, --body, --body-file, --slug, --format, --public must be given.
  • Delete without --confirm: The script refuses. This is intentional — always pass --confirm.
  • sync exit code 2: Not an error. Confirmation required for missing-local files. Show the block to the user, get their choice, re-run with --on-missing <choice>.
  • Layout ambiguous on first sync: Show the script's suggestion to the user; do NOT pick --layout for them — ask which structure they intend.

Do NOT guess doc IDs or slugs. If unknown, run list, toc, or status first to find the target.

Resource navigation

  • scripts/yuque_cli.py — the CLI tool. Run it; do not read it unless debugging.
  • scripts/yuque_cli.py --help and scripts/yuque_cli.py <cmd> --help for full flag details.
  • The project root .env file holds credentials (never commit it).

High-value pitfalls

  1. Creating a document does NOT auto-add it to the TOC. The script handles this by default via append_doc_to_toc. Use --no-toc only if you explicitly want an unlisted document.
  2. The id parameter in get/update/delete can be either an integer doc ID or a string slug. Both work, but slugs are more readable.
  3. Body content with shell-special characters: Use --body-file instead of --body for any non-trivial content to avoid shell quoting issues.
  4. The Yuque Lake format is proprietary. Always use --format markdown (the default) unless the user specifically needs Lake format.
  5. TOC insertion always appends to the repo root as a child node. There is no way to specify a parent node or insert at a specific position via this skill. If the user needs custom TOC structure, they must reorder it manually in the Yuque UI.
  6. sync ignores remote drafts (body_draft). Change detection is based on latest_version_id (the last published version). If a teammate is editing in the Yuque web editor without publishing, that draft will be overwritten by sync update. If you suspect this, use pull --slug <slug> --overwrite to inspect remote first.
  7. Never auto-delete remote docs. sync will only delete remotely when the user explicitly passes --on-missing delete after seeing the confirmation block. Do not pass delete on the user's behalf without an unambiguous yes.

常见问题

5 问
答案由本站依据条目字段整理
语雀文档skill怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_924c5114/yuque-docs-skill。安装方式为未标注。装完刷新技能列表或重开客户端。

语雀文档skill支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

语雀文档skill权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

语雀文档skill收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

语雀文档skill用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。