ドキュメント&知識ベース · JimLiu/baoyu-skills

baoyu-translate

ユーザーが「translate」、「翻訳」、「精翻」、「translate article」、「translate to Chinese」、「translate to English」、「改成中文」、「改成英文」、「convert to Chinese」、「localize」、「本地化」、「refined translation」、「精细翻译」、「proofread translation」、「快速翻译」、「快翻」、「这篇文章翻译一下」と要求した場合、または翻訳意図を持ってURLやファイルを提供した場合に使用するスキル。カスタム用語集に対応し、3つのモード(quick/normal/refined)をサポートする。

L4 高権限 · 段階的認可と監査V1 コミット固定コマンド実行ネットワーク通信ファイル書き込みDual-pass Audit
Author JimLiuGitHub JimLiu/baoyu-skills ↗Stars 25926License MIT(仓库根 LICENSE:Copyright (c) 2026 Jim Liu;根 package.json 同声明 "license": "MIT")Commit 1567581c26
管理レベルは Skill の能力と推奨統制措置を示すものであり、品質や安全性の認証、利用可否の判定ではありません。使用の可否はユーザーおよび管理者が決定します。Agent 環境によって制約が異なるため、自動保護を仮定しないでください。第三者製 Skill の著作権は原著作者に帰属し、利用リスクは利用者が負います。

1仕組みと動作原理

3段階のモード(quick / normal / refined)はスクリプトの引数ではなく、プロンプトでオーケストレーションされたパイプラインである。quickは直接翻訳、normalは分析後に翻訳、refinedは「分析→翻訳→レビュー→推敲→リライト」を実行し、段階的にディスクへ保存する。

skills/baoyu-translate/SKILL.md
| Refined | `--mode refined` | Analyze → Translate → Review → Polish | Publication-quality, important documents |
ここでの処理内容:スクリプトはチャンク分割のみを担当し、訳文の品質はSKILL.mdに定義された手順と参考ファイル(refined-workflow.md)によって駆動される。各ステップの生成物は出力ディレクトリに残るため、すべての作業履歴を追跡可能。

長文のチャンク分割は純粋にローカルで行われるMarkdownブロックレベルの分割である。chunk.tsがmarkdown-itを用いてブロック境界を解析し、単語数(デフォルト5000)で分割し、長すぎるブロックは行単位・単語単位の分割にフォールバックする。

skills/baoyu-translate/scripts/chunk.ts
const maxWords = options.maxWords ?? 5000
Markdownのブロック境界で分割するのは、見出し・リスト・テーブル・コードブロックを破壊しないためである。中国語の文字数が過小評価されないよう、CJK文字は独立してカウントされる。

チャンクをまたぐ訳語の一致はモデルの記憶ではなく「共有コンテキストファイル」に依存する。メインエージェントがトーン、背景、マージ済み用語集、翻訳の難所を02-prompt.mdに書き込み、各チャンクのサブエージェントが同一のファイルを参照する。

skills/baoyu-translate/SKILL.md
Consistency is guaranteed by the shared `02-prompt.md`
これこそが、並列翻訳を行っても用語のブレが発生しない理由である。コンテキストは会話履歴ではなくファイルとして保持される。

用語のソースは4段階でマージされ、優先順位が明確に定められている:EXTEND.mdインライン → EXTEND.md外部用語ファイル → 内蔵EN→ZHテーブル → CLI --glossary(最優先)。

skills/baoyu-translate/SKILL.md
Merge glossaries: EXTEND.md `glossary` (inline) + EXTEND.md `glossary_files` (external files, paths relative to EXTEND.md location) + built-in glossary + `--glossary` file (CLI overrides all)
内蔵テーブルreferences/glossary-en-zh.mdにより、技術用語や製品名の統一的な訳出が即座に可能となる。

各チャンクに対してサブエージェントを1つ起動して並列翻訳を行い、サブエージェントにホストツールがない場合は逐次的なインライン翻訳にフォールバックできる。

skills/baoyu-translate/SKILL.md
Spawn one subagent **per chunk**, all in parallel
サブエージェントのプロンプトテンプレートはreferences/subagent-prompt-template.mdにある。{output_dir}/02-prompt.mdを共有コンテキストとして読み込み、訳文をchunks/chunk-{NN}-draft.mdに書き出す。

初回使用時はブロッキング設定を行う。EXTEND.mdが見つからない場合は必ずユーザーの好みを尋ねて書き込み、デフォルト値による無断実行を許可しない。

skills/baoyu-translate/references/config/first-time-setup.md
**BLOCKING OPERATION**: This setup MUST complete before ANY translation.
「デフォルトの対象言語が意図と異なる」といった暗黙のエラーを防ぐ。同時にプロジェクト/XDG/ホームディレクトリのいずれかの階層のEXTEND.mdに設定を永続化する。

URL入力時にネットワーク通信を行わないのはスクリプト側である。SKILL.mdはエージェントに「ソースの実体化」(Webコンテンツを取得してローカルmdとして保存すること)のみを要求し、スクリプトは最初から最後までローカルファイルのみを処理する。

skills/baoyu-translate/references/workflow-mechanics.md
| URL | Fetch content, save to `translate/{slug}.md` |
ここでの処理内容:ネットワークアクションはホストエージェントの責務とし、スキル付属のスクリプトはネットワーク通信面をゼロに維持している(chunk.tsはfs/path/markdown-itのみをインポート)。

出力ディレクトリの命名規則は固定されており、衝突時は上書きせずリネームしてバックアップする:`{source-dir}/{source-basename}-{target-lang}/`(既存の場合は先にリネーム)。

skills/baoyu-translate/references/workflow-mechanics.md
Create a subdirectory next to the source file: `{source-dir}/{source-basename}-{target-lang}/`
固定ファイル名(translation.md / 01-analysis.md … 05-revision.md)との組み合わせにより、複数回の翻訳が互いに上書きされず、比較可能となる。

2コア機能

013段階の翻訳モード(quick直訳 / normal分析後翻訳 / refined出版品質レビュー・推敲)
029種類のトーンスタイル + 4種類の対象読者プリセット(テキストによるカスタム記述も可能)
03カスタム用語集(インライン/外部ファイル/内蔵EN→ZH/CLIの4段階マージ)
04長文の自動チャンク分割 + チャンクごとのサブエージェント並列翻訳(共有プロンプトで一貫性を担保)
05設定可能なチャンク閾値とサイズ(EXTEND.mdのchunk_threshold / chunk_max_words)
06精緻翻訳の全工程記録:01-analysis / 02-prompt / 03-draft / 04-critique / 05-revision / translation.md
07明確化された翻訳原則:直訳ではなくリライト、用語の一貫性維持、Markdown構造の保持、必要に応じた説明的注釈の追加
08納品後の画像内言語チェック(原文が残っている可能性のある画像をリストアップ。注意喚起のみで自動変更は行わない)
09EXTEND.mdによる設定の永続化(プロジェクト/XDG/ホームディレクトリの3階層、初回起動時のブロッキング設定)

3外部依存関係

KindDependency / Endpoint
packagemarkdown-it 14.1.1(唯一运行时依赖)
packagemarkdown-it 运行时 import
clibun(脚本 shebang 运行时)
clinpx -y bun(无 bun 时的回退运行时)
networkhomepage 元数据 URL(静态 frontmatter,任何步骤都不抓取)

4推奨統制措置と判定根拠

安全運用のための推奨統制措置
Agent 向け
段階的・都度認可、サンドボックス推奨
管理者向け
承認フロー、ロールバック可能、全履歴監査
判定根拠(ファイルパスと抜粋)
  • scripts/: ローカルスクリプトまたはコマンドの実行: ${BUN_X} {baseDir}/scripts/main.ts <file> [--max-words N] [--output-dir D](
  • 网络端点: 外部ネットワークアクセスの宣言: スキル付属スクリプトのネットワーク呼び出しはゼロ:chunk.tsはfs / path / markdown-itのみをインポートし、package.jsonにhtは含まれない
  • 本地工作目录: ファイル読み書きおよび成果物の出力: {source-dir}/{source-basename}-{target-lang}/ 出力ディレクトリ(既存の場合は事前に{name}.backup-Yにリネーム)
監査ノート: 判定対象=本スキルディレクトリ:付属のscripts/main.ts + chunk.ts(markdown-itによる完全ローカルなチャンク分割)を含み、唯一の依存関係は[email protected]。動作は1つのローカルファイルを読み込み、chunks/と出力ディレクトリを書き出すのみ。ディレクトリ全体でネットワークエンドポイントなし、認証情報/環境変数の読み込みなし、子プロセスのspawnなし → 青(スクリプトを内包し能動的にディスク書き込みを行うため緑ではない。スキル自身は一切の外部エンドポイントにアクセスせず画像生成や翻訳バックエンドにも関与しないため黄ではない)。URL入力の取得はホストエージェント側で発生し(SKILL.mdはソースの実体化のみを要求)、基準に基づき判定ランクの根拠とはしないがリスクには明記済み。

5二重目の独立検証

  • [ok] 脚本零网络、零凭证 — chunk.ts 仅 import fs/path/markdown-it,main.ts 仅 import node:process + ./chunk.js;grep http/fetch/curl/process.env/API_KEY 在两个脚本内零命中。
  • [ok] 切块逻辑与 SKILL.md 描述一致 — chunk.ts 用 markdown-it 解析、在块边界切分、超长块退化处理,默认 maxWords 5000,与 SKILL.md『Splits at markdown block boundaries to preserve structure』一致;frontmatter 被单独抽出为 chunks/frontmatter.md。
  • [ok] 依赖面 = markdown-it 单包 — package.json 仅声明 markdown-it 14.1.1,bun.lock 中的其余条目均为其传递依赖(argparse/entities/linkify-it/mdurl/punycode.js/uc.micro),无 postinstall、无网络行为。
  • [ok] subagent 分工与模板内容 — subagent-prompt-template.md 明确 shared context → 02-prompt.md、每块产出 chunks/chunk-{NN}-draft.md;spawn 动作由 agent 执行,脚本不 spawn 任何进程。
  • [ok] URL 输入的网络归属 — workflow-mechanics.md 把 URL 处理写成 agent 的『Fetch content』动作;本 skill 目录内无抓取代码,故网络面不落在 skill 自身。
  • [ok] EXTEND.md 路径不一致(轻微) — SKILL.md 列三条路径(含 XDG),references/config/extend-schema.md 只列项目与家目录两条;属文档不一致,不影响判级,已在 traits/risks 采信 SKILL.md 的三档说法。
  • [ok] 元数据与 pin — 本地 HEAD = 1567581c26ec29f4216c6e6835415bf30343b0e3;GitHub API MIT / 25926 stars / pushed_at 2026-09-10T15:13:43Z;仓库根 LICENSE 为 MIT。

6結論

  • チャンク分割と並列翻訳の設計により、長文における一貫性の課題を本質的に解決:共有コンテキストファイルにより並列チャンク間のブレを防止。
  • 全プロセスが記録され、追跡・再開が可能:分析/プロンプト/初稿/レビュー/推敲が個別のファイルとして保存され、問題発生時に特定ステップを検証可能。
  • 階層化された用語管理:インライン → 外部ファイル → 内蔵テーブル → CLIオーバーライドの順で適用され、CLIが最優先されるため、厳格な訳名ルールを持つチームに最適。
  • リスク面が極めて限定的:単一のローカルスクリプトのみに依存し、外部通信、認証情報の読み込み、プロセス起動(spawn)を行わない。スクリプトは機械が得意で間違いの起こらないチャンク分割のみを担当。
  • 過去の成果物を上書きしない:ディレクトリ衝突時はリネームしてバックアップするため、複数回の翻訳結果を比較可能。
  • 最適な用途: 「出版品質」の中国語/英語の長文を必要とする個人やチームに最適:技術ブログ、チュートリアル、調査レポート、書籍の草稿章節。また、固定用語集を持つチーム(EXTEND.mdで訳語を固定)、並列処理で速度を上げたい長文(分割+サブエージェント)、校閲のために各工程の成果物を保持したいワークフローにも適している。
    不向きな用途: 一文のみの短い翻訳(quickモード以外のオーバーヘッドに見合わない)、エージェント/サブエージェント機能がなく長文の逐次処理を待てない環境、スキル自身が任意のWebコンテンツを自動スクレイピングすることを期待するシナリオ(取得はホスト側の責務)、および信頼できないWebテキストを人間によるレビューなしで直接翻訳・公開するワークフローには適していない。
    Install Agent-Ready
    ① Verified Mirror 2026-09-15
    Option A · Direct DownloadDownload baoyu-translate.tar.gz
    sha256: 38c8846f411e3248…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 1567581c26.