Agent skill

Dify Docs Format Check

by langgenius in langgenius/dify-docs

Check formatting compliance in changed documentation against writing-guides/formatting-guide.md and tools/translate/formatting-{zh,ja}.md.

CC-BY-4.0Auto-check passedWriting & Content

Install Dify Docs Format Check

skills CLI
$ npx skills add langgenius/dify-docs --skill dify-docs-format-check -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install langgenius/dify-docs dify-docs-format-check --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/langgenius/dify-docs.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/dify-docs-format-check .claude/skills/dify-docs-format-check && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
dify-docs-format-check
GitHub stars
178
Token cost
~2.7k tokens
SKILL.md length
1,336 words
Files
4
Skills in repo
11
Repo updated
First seen
Licence
CC-BY-4.0

At a glance

Check formatting compliance in changed documentation against writing-guides/formatting-guide.md and tools/translate/formatting-{zh,ja}.md.

  • Works in 6 steps: Read the rule sources for the languages… → Detect the files to audit. Audit entire… → Run the linter for each path group and… → …
  • Says check formatting
  • SKILL.md covers Procedure and Important
  • Runs Python scripts from its folder; calls python3 and git

What it does

Dify Docs Format Check is an agent skill from langgenius/dify-docs. Check formatting compliance in changed documentation against writing-guides/formatting-guide.md and tools/translate/formatting-{zh,ja}.md. Routes by path: en/ files get the English linter and rules; zh/ and ja/ files get the CJK linter and rules. Use after finalizing a draft or a translation batch, or when the user says "check formatting", "format check", "format audit", or "check CJK formatting".

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `check-format-cjk.py`, `check-format-en.py` and `test_check_format_cjk.py`).

It sits in Writing & Content, covering Linting and formatting and Translation. It works with Dify. The licence is CC-BY-4.0.

When your agent uses it

  • Says check formatting
  • Check CJK formatting

Example prompts

  • “check formatting”
  • “format check”
  • “format audit”
  • “/dify-docs-format-check”

Requirements

  • Python 3

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Read the rule sources for the languages in scope. The digests in steps 4-5 are summaries of these files; wherever a digest and its source…
  2. Detect the files to audit. Audit entire files, not just diffs. Default to the files currently under review
  3. Run the linter for each path group and paste its output verbatim into your report
  4. Judgment review — en/ files. Digest of writing-guides/formatting-guide.md (section names in parentheses; the guide wins on conflict). Read…
  5. Judgment review — zh/ and ja/ files. Digest of tools/translate/formatting-zh.md and tools/translate/formatting-ja.md (those files win on…
  6. Report. Paste the raw linter output first, then append judgment findings per file

What it can do on your machine

Read from SKILL.md and the folder at commit 01f1cb6. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Dify Docs Format Check loads about 2.7k tokens when it runs. Until then it costs about 106 tokens; SKILL.md has 1,336 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~106
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from langgenius/dify-docs at commit 01f1cb6, republished under its CC-BY-4.0 licence (© langgenius). 1,336 words, ~2,729 tokens.

Download SKILL.mdSave it as .claude/skills/dify-docs-format-check/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
dify-docs-format-check
description
Check formatting compliance in changed documentation against writing-guides/formatting-guide.md and tools/translate/formatting-{zh,ja}.md. Routes by path: en/ files get the English linter and rules; zh/ and ja/ files get the CJK linter and rules. Use after finalizing a draft or a translation batch, or when the user says "check formatting", "format check", "format audit", or "check CJK formatting".

Formatting Check (en / zh / ja)

Read-only audit of documentation formatting. Mechanical rules are enforced by two linter scripts in this skill directory; judgment-call rules are checked by reading each file. Route by path:

Files underLinterJudgment digest
en/check-format-en.pyStep 4 (English)
zh/check-format-cjk.pyStep 5 (CJK shared + Chinese)
ja/check-format-cjk.pyStep 5 (CJK shared + Japanese)

Procedure

  1. Read the rule sources for the languages in scope. The digests in steps 4-5 are summaries of these files; wherever a digest and its source disagree, the source file wins.

    • writing-guides/formatting-guide.md — all languages
    • tools/translate/formatting-zh.md — when any zh/ file is in scope
    • tools/translate/formatting-ja.md — when any ja/ file is in scope
  2. Detect the files to audit. Audit entire files, not just diffs. Default to the files currently under review:

    bash
    git diff --name-only; git diff --cached --name-only; git status --porcelain | grep '^??'

    Keep .mdx/.md files under en/, zh/, or ja/. If none are detected, ask the user which files to check. Translations ship as a zh/ja pair from one English source, so when both changed, audit both in the same session.

  3. Run the linter for each path group and paste its output verbatim into your report:

    bash
    python3 .claude/skills/dify-docs-format-check/check-format-en.py <en files...>
    python3 .claude/skills/dify-docs-format-check/check-format-cjk.py <zh and ja files...>

    Success signal: each run prints one block per file and ends with Total violations: {n}; exit code is 0 when n = 0, 1 otherwise. A file passed to the wrong script is skipped with a stderr note (skip (non-en) / skip (non-zh/ja)); check-format-cjk.py selects the zh or ja rule set from the file path.

    Then check that the three languages carry the same structure, passing every page in scope whatever its language (a zh or ja path is checked through its English twin):

    bash
    python3 tools/check-parity.py --base origin/main <changed pages...>

    Success signal: PARITY OK: {n} pages; otherwise one line per new mismatch and PARITY ISSUES: {n}, exit 1. The check compares each English page with its twins by path: heading count and level, then per section the paragraphs, list items, code blocks, table rows, the sequence of components, and anchor ids. Heading text is not compared, and the translation disclaimer is skipped. Mismatches already present at the base ref are listed under pre-existing and do not fail the run, because much of the corpus predates this check; report them to the owner with the other pre-existing findings.

    The scripts are the authoritative deterministic rule list. Violation lines print as line [rule-id] message and the messages are self-describing, so do not re-summarize each rule. Rule-ID families: F- frontmatter, H- headings, B- bold/italic, L- lists, C- code, Li- links, I- images, M- Mintlify components, U- UI element references (en only), S- spacing, P- punctuation, CJK- both CJK languages, ZH- Chinese only, JA- Japanese only.

    Five IDs need context the message alone does not give:

    • H-ing-verb (en): section-name gerunds (Troubleshooting, Logging, Getting Started, etc.) are exempt via the SKIP_ING_HEADINGS constant in check-format-en.py. If a flagged heading is a legitimate section concept, propose the addition to SKIP_ING_HEADINGS in your report — do not edit the script.
    • I-alt-empty (en): flags every empty alt as a prompt to confirm the image is genuinely decorative, not as a hard error.
    • CJK-disclaimer-missing: the script looks for the translation disclaimer only within the ~10 lines below the frontmatter, so a disclaimer placed lower in the file still trips it. Pages whose frontmatter sets mode: "custom" or mode: "frame" are exempt — chrome-less landing pages carry no disclaimer (see the formatting guides' Translation Disclaimer exception).
    • CJK-cross-lang-link: /en/... links are flagged everywhere except on the disclaimer line, which is allowed to point at the English source.
    • CJK-latin-spacing: on lines with an even number of ** markers, the script skips every complete bold span, not only UI labels. Manually check each bold span with CJK and Latin/digit adjacency: a literal UI label preserves the product's spacing; emphasized prose needs the normal space. Lines with an odd number of ** markers remain fully checked after code and URLs are stripped. Non-bold quoted labels are not exempt.

    When changing the CJK checker, run python3 .claude/skills/dify-docs-format-check/test_check_format_cjk.py. The regression suite must end with OK and exit 0.

  4. Judgment review — en/ files. Digest of writing-guides/formatting-guide.md (section names in parentheses; the guide wins on conflict). Read each file and check:

    • Headings (§Headings): proper title case — major words capitalized, minor words (a, and, the, of, in, on, to, etc.) lowercase except at the start. Flag sentence case, all-lowercase, or inconsistency.
    • Bold and emphasis (§Bold and Italic, §Quotation Marks): bold only for UI elements, menu paths, tab/field names, and first-use key terms; running-text emphasis is italic or restructured. Flag "word" used emphatically rather than as a quotation or literal-phrase reference.
    • Lists (§Lists): numbered lists only for sequential steps, otherwise dashes; labeled-concept items use - **Label**: description.; items are all sentences (period) or all fragments (no period), never mixed; child content (description, callout, image) indented two spaces under its item.
    • Links (§Links): descriptive link text — flag vague text (this page, here) even when it isn't click here exactly.
    • Images (§Images: Alt Text, Captions, Storage, Naming): alt text in title case describing what the image communicates ("LLM Node Configuration Panel", not "Screenshot of a form"); comparison images shown together each need a caption (the linter cannot detect adjacency); alt="" only for genuinely decorative images; storage path follows the /images/<tier-1>/<tier-2>/... taxonomy; filenames descriptive and specific (workflow-llm-node-parameters.png, not screenshot.png).
    • Tables (§Tables): left-aligned with :---; bold in header row only when it aids clarity; multi-line cells prefer lists or components, falling back to <br/> only when a manual break is unavoidable.
    • Mintlify components (§Mintlify Components): content inside <Info>, <Note>, etc. reads cleanly (bold, links work as expected).
  5. Judgment review — zh/ and ja/ files. Digest of tools/translate/formatting-zh.md and tools/translate/formatting-ja.md (those files win on conflict). The two findings the linter misses most often are translated anchor slugs and {{placeholder}} variables left unchanged in otherwise-translated prompts. Read each file and check:

    • Translatable elements (§Translatable Elements, both files): Tab titles (<Tab title="...">), Frame captions, and image alt text translated; bold UI labels translated; natural-language prompt examples inside code blocks translated with variable placeholders ({{variable_name}}) left unchanged.
    • Anchors (§Cross-Reference Anchors, both files): [text](#anchor) and [text](/path#anchor) use the translated heading slug — the heading ## 响应 produces #响应, not #response. Exception: a target heading or tab carrying an explicit stable ID ({#stable-id}, Tab id, or <a id>) is linked by that English ID in every language — check the target before flagging an English anchor.
    • Chinese style (formatting-zh.md): enumeration comma 、 for parallel items within a sentence (§Enumeration Comma); ellipsis …… used correctly and not combined with 等 in one phrase (§Ellipsis); Arabic numerals for technical content (3 种, not 三种) with idiomatic expressions as the judgment call (§Numbers); translationese — redundant 你的, unnecessary 会, 当...时 wrappers, 能够 for 能, 可以 where 可 suffices (§Translation Quality → Patterns to Eliminate).
    • Japanese style (formatting-ja.md): です/ます maintained in body text (§Writing Style, §Honorifics); headings are noun phrases, not sentences (§Headings); short loanwords (3 morae or fewer) keep the trailing ー, longer ones drop it, and established compounds (ワークフロー, ナレッジベース) match the glossary (§Katakana Conventions); middle dot ・ only where readability needs it, none inside established compounds (§Middle Dot); translationese — redundant あなたの, 〜することができます for 〜できます, 〜とき/〜場合 wrappers, stacked の (§Translation Quality → Patterns to Eliminate).
  6. Report. Paste the raw linter output first, then append judgment findings per file:

    [linter output, verbatim — per file: "### {path}" (the cjk script adds
    " ({lang})"), then "line [rule-id] message" lines or "✅ no deterministic
    issues found", each run ending with "Total violations: {n}"]
    
    ### Judgment findings
    
    **{path}**
    - Line {n}: {description of issue} ({rule area})

    The scripts report only violations; do not invent per-rule "clean" lines they never printed. A file with no violations and no judgment findings needs nothing beyond its ✅ no deterministic issues found line.

Show full SKILL.md (128 more words)Show less

Important

  • Do NOT modify any files. This is a read-only audit: report findings, including any proposed SKIP_ING_HEADINGS additions, for the user to review and apply.
  • When a flagged item is clearly intentional on inspection (an -ing heading that belongs in SKIP_ING_HEADINGS, a _ in a legitimate filename or identifier, a half-width comma inside a Latin acronym, a mainland quotation mark quoted from an external source), surface it but note the ambiguity so the user can decide.
  • Glossary and UI-label wording verification is dify-docs-terminology-check's job — do not check terms against the glossary or codebase i18n files here. When a finding overlaps terminology, note it and point the user at that skill.
  • The Japanese sentence-length and style-mix checks (JA-sentence-too-long, JA-style-mix) are heuristic: they flag candidates for human review, not definitive violations.

© langgenius, CC-BY-4.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files in .claude/skills/dify-docs-format-check of langgenius/dify-docs.

  • SKILL.md
  • check-format-cjk.py
  • check-format-en.py
  • test_check_format_cjk.py

Open the folder on GitHubat commit 01f1cb6

Compare with similar skills

Dify Docs Format Check next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Dify Docs Format Check compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Dify Docs Format Check this skilllanggenius/dify-docs178—~2.7kAutomated safety check: PassCC-BY-4.0
Docs Leadlablup/backend.ai-webui133—~2.9kAutomated safety check: PassLGPL-3.0
Aholo Viewer Docsmanycoretech/aholo-viewer1.1k—~341Automated safety check: PassMIT
Sync Jaaws-samples/sample-amazon-bedrock-agentcore-onboarding133—~1.5kAutomated safety check: PassMIT-0
Hns Oss Docs Readme Syncmodu-ai/moai-adk1.2k—~945Automated safety check: NotesApache-2.0
China Travel Kittczyliu/china-travel-kit194—~1.3kAutomated safety check: PassMIT

Similar skills

  • Docs Lead

    lablup/backend.ai-webui

    A skill your agent uses whenever the user mentions docs, the manual, documentation, terminology, translations, or screenshots — including indirect mentions like "이 PR 문서 영향 봐줘", "문서 점검", "용어 통일"…

    133 GitHub stars~2.9k tokensUpdated today
    Writing & ContentAuto-check passed
  • Aholo Viewer Docs

    manycoretech/aholo-viewer

    Guides writing and maintaining Aholo Viewer documentation: README, AGENTS.md, architecture notes, bilingual manual pages and AI collaboration guides.

    1.1k GitHub stars~341 tokensUpdated today
    Writing & ContentAuto-check passed
  • Sync Ja

    aws-samples/sample-amazon-bedrock-agentcore-onboarding

    Official

    Sync Japanese README translations with English source. An agent skill from aws-samples/sample-amazon-bedrock-agentcore-onboarding.

    133 GitHub stars~1.5k tokensUpdated 6 days ago
    Writing & ContentAuto-check passed
  • Hns Oss Docs Readme Sync

    modu-ai/moai-adk

    README 4-file synchronization procedure for the oss-docs harness: Korean README.ko.md as primary source, en/ja/zh derivation, the shared language-switcher header contract, section-order parity…

    1.2k GitHub stars~945 tokensUpdated today
    DevelopmentAuto-check: notes
  • China Travel Kit

    tczyliu/china-travel-kit

    Research and plan first-time independent trips in China with bilingual, source-aware city data and official live-check entry points.

    194 GitHub stars~1.3k tokensUpdated 1 mo ago
    Writing & ContentAuto-check passed
  • Technology Search

    freestylefly/wesight

    Search tech blogs, developer forums, and IT media (TechCrunch, Hacker News, 36氪, etc.) for software and hardware industry updates with heat ranking and EN↔CN translation.

    943 GitHub stars~3.3k tokensUpdated 7 days ago
    Writing & ContentAuto-check passed

More from langgenius/dify-docs

All 11 skills in this repo
  • Dify Docs Feature Research

    langgenius/dify-docs

    Research a Dify feature before writing or optimizing documentation.

    178 GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Dify Docs Terminology Check

    langgenius/dify-docs

    Audit terminology consistency across documentation against the codebase UI labels and the glossary — in prose and in the UI strings shown in screenshots.

    178 GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Dify Docs API Reference

    langgenius/dify-docs

    Rule pack for the Service API specs ({en,zh,ja}/api-reference/openapiservice.json): spec conventions, app-type scoping, code-verification rules, and the audit machinery.

    178 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Dify Docs Env Vars

    langgenius/dify-docs

    Rule pack for the environment variable reference — en/self-host/deploy/configuration/environments.mdx.

    178 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Dify Docs Write

    langgenius/dify-docs

    The entry point for writing or revising any documentation in this repo: user guides, deployment pages, plugin-dev pages, API specs, the env-var reference, CLI pages.

    178 GitHub stars~3.2k tokensUpdated today
    Auto-check passed
  • Dify Docs Editor Test

    langgenius/dify-docs

    Judge a finished draft as the docs owner would: a fresh agent reads it against the style guide and the reference page in its genre, marks the sentences that fall short, and returns a ship verdict on…

    178 GitHub stars~1.5k tokensUpdated today
    Auto-check passed

Works with

Questions about Dify Docs Format Check

What does Dify Docs Format Check do?

Check formatting compliance in changed documentation against writing-guides/formatting-guide.md and tools/translate/formatting-{zh,ja}.md. Dify Docs Format Check is an agent skill from langgenius/dify-docs.md.

When should I use Dify Docs Format Check?

Dify Docs Format Check fits situations like: says check formatting; check CJK formatting.

How do I install Dify Docs Format Check in Claude Code?

Run `npx skills add langgenius/dify-docs --skill dify-docs-format-check -a claude-code`. Or copy the skill folder (.claude/skills/dify-docs-format-check in langgenius/dify-docs) into .claude/skills/dify-docs-format-check in your project. Claude Code loads it when a task matches its description.

How do I install Dify Docs Format Check in Codex?

Run `npx skills add langgenius/dify-docs --skill dify-docs-format-check -a codex`. Or copy the skill folder (.claude/skills/dify-docs-format-check in langgenius/dify-docs) into .agents/skills/dify-docs-format-check in your project. Codex loads it when a task matches its description.

Can I use Dify Docs Format Check in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add langgenius/dify-docs --skill dify-docs-format-check -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dify-docs-format-check, .gemini/skills/dify-docs-format-check, .github/skills/dify-docs-format-check and .opencode/skills/dify-docs-format-check in your project.

What does Dify Docs Format Check need to run?

Going by SKILL.md and its folder, Dify Docs Format Check needs Python for the scripts in its folder and the command-line tools its instructions call (python3 and git). Our summary lists: Python 3.

Does Dify Docs Format Check access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Dify Docs Format Check safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Dify Docs Format Check use?

Dify Docs Format Check is published under the CC-BY-4.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Dify Docs Format Check use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Dify Docs Format Check?

Skills that share tags, products or a category with Dify Docs Format Check: Docs Lead (lablup/backend.ai-webui, 133 stars), Aholo Viewer Docs (manycoretech/aholo-viewer, 1.1k stars), Sync Ja (aws-samples/sample-amazon-bedrock-agentcore-onboarding, 133 stars) and Hns Oss Docs Readme Sync (modu-ai/moai-adk, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Dify Docs Format Check?

langgenius (a GitHub organization) maintains it in langgenius/dify-docs, which has 178 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 8, 2026.

Source: langgenius/dify-docs on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.