mcpField
S
Skywork Document

Skywork Document

github.com/skyworkaiドキュメント207372 回インストール30 週間前に更新
リポジトリ

Skywork Document について

Skywork Documentは、Skywork Office Doc APIを通じて書式付き文書を生成するOpenClaw向けスキルです。参考ファイル、言語、形式を指定でき、必要に応じてサーバー側でウェブ検索を行います。利用にはSKYWORK_API_KEYの設定が必要です。

主な機能

  1. 01文章作成指示から文書を生成
  2. 02アップロードした参考ファイルを利用
  3. 03言語と出力形式を選択
  4. 04必要に応じてAPI側でウェブ検索
  5. 05リモートリンクとローカルファイルパスを提示

活用シーン

  1. 01参考資料に基づくレポートの作成
  2. 02指定言語での文書作成
  3. 03DOCX、PDF、HTML、Markdown形式での出力

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/skyworkai/skywork-skills --skill skywork-document

インストール後、Claude Code で/skywork-documentを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
apikey-fetch.md
scripts/
constant.py
parse_file.py
create_doc.py
skywork_auth.py

詳細

Doc — プロフェッショナルなドキュメント生成

Skywork Office Doc API を呼び出して、プロフェッショナルで美しく書式設定されたドキュメントを生成します。


前提条件

API キーの設定(最初に必須)

このスキルを使用するには、OpenClaw で SKYWORK_API_KEY を設定する必要があります。

まだ API キーをお持ちでない場合は、こちらをご覧ください: https://skywork.ai

詳しい設定手順については、こちらをご覧ください: references/apikey-fetch.md


プライバシーとリモート呼び出し(使用前にお読みください)

  • リモートへのアップロードと処理:このスキルは、ユーザーが提供したファイルをアップロードし、ユーザーのリクエスト全文を一言一句そのまま Skywork サービスに送信します。リモートサービスとそのデータ取り扱いポリシーを信頼できる場合を除き、機密情報や秘密情報を含めないでください。
  • ウェブ検索:このスキルで言及されるウェブ検索は、ローカルのスクリプトではなく、サーバー側の Skywork Doc API によって実行されます。

ワークフロー

ステップ 0:意図の認識(重要 — 最初に行ってください)

スクリプトを呼び出す前に、ユーザーのリクエストを分析して、以下を判断してください:

  1. ユーザーは参照ファイルを提供していますか?または、執筆タスクを進めるために特定のファイルが必要であることを示していますか?

    • ファイルパス、添付ファイル、「この PDF に基づいて」「アップロードしたドキュメントを使って」などの記述を確認します。事前に情報を収集している場合(例:ウェブ検索や他のツール)、執筆タスクに役立つ情報をファイルとしてディスクに保存し、ステップ 1 で参照ファイルとして渡します。
    • はいの場合:ファイルパスを特定/抽出して、ステップ 1 に進みます
    • いいえの場合:ステップ 2 に進みます
  2. 出力言語は何ですか?

    • ユーザーのリクエストの言語、または明示された要件を分析します。指定がない場合は、ユーザーの言語またはアップロードされたファイルで使われている言語から推測します。
    • --language パラメーターを設定します:English、中文简体 など。
    • デフォルト:English
  3. 希望する形式は何ですか?

    • キーワードを確認します:「Word document」→ docx、「PDF」→ pdf、「HTML」→ html、「Markdown」→ md
    • 指定がない場合のデフォルト:docx
    • 対応形式:docx、pdf、html、md
  4. コンテンツのプロンプトはどのように作成しますか?

    • --content パラメーターは、書き換えの指示のようなものです。
    • ユーザーの要件(複数の会話ターンにまたがる場合もあります)をまとめます。
    • 具体的に記述します。構成、セクション、トーン、重要なポイントを説明してください。冗長になりすぎたり、ユーザーの元の要件から大きく逸脱したりしないようにし、意図に沿った内容にします。
ステップ 1:参照ファイルの解析(ユーザーがファイルを提供した場合)

重要:

  • parse_file.py が処理するファイルは一度に 1 つです。複数のファイルを処理する場合は、ファイルごとに呼び出してください。
  • スペースを含むファイルパスは引用符で囲み、引数が正しく渡されるようにしてください。
  • 執筆タスクに必要な参照資料はすべてファイルとして解析してください。セッション中にすでに解析済みのファイルは再解析せず、その file_id を再利用してください。

単一ファイル:

python3 <skill-dir>/scripts/parse_file.py /path/to/reference.pdf

複数ファイル(ファイルごとにスクリプトを呼び出します。処理を速めるため、並列実行できます):

# Parse file 1
python3 <skill-dir>/scripts/parse_file.py /path/to/file1.pdf

# Parse file 2
python3 <skill-dir>/scripts/parse_file.py /path/to/file2.xlsx

# Parse file 3
python3 <skill-dir>/scripts/parse_file.py "/path/to/file3 with blank in it.docx"

各スクリプト呼び出しの出力:

[parse] File: reference.pdf (2,458,123 bytes)
...
[success] File parsed!
  File ID:    2032146192467681280
  ...
PARSED_FILE: {"file_id":"2032146192467681280","filename":"reference.pdf","url":""}

すべての PARSED_FILE 出力を抽出し、JSON 配列にまとめます:

[
  {"file_id":"2032146192467681280","filename":"file1.pdf","url":""},
  {"file_id":"2032146192467681281","filename":"file2.xlsx","url":""},
  {"file_id":"2032146192467681282","filename":"file3.docx","url":""}
]

この配列は、以下の --files パラメーターを通じて create_doc.py に渡されます。

ステップ 2:ドキュメントの作成

参照ファイルなしの場合:

python3 <skill-dir>/scripts/create_doc.py \
  --title "Document_Title" \
  --content "Detailed content prompt based on user requirements..." \
  --language English \
  --format docx

参照ファイルありの場合(ステップ 1 で収集した file_id を使用):

python3 <skill-dir>/scripts/create_doc.py \
  --title "Analysis_Report" \
  --content "Based on the uploaded reference files, create a comprehensive analysis report..." \
  --files '[{"file_id":"id1","filename":"file1.pdf","url":""},{"file_id":"id2","filename":"file2.xlsx","url":""}]' \
  --language English \
  --format docx

title フィールドにスペースを含めないでください。

出力:

[doc] Creating document: "Analysis Report"
...
[success] Document created!
  File ID:   abc-123
  Path:      /output/doc/some_file.html
  URL:       https://...
  Time:      15.2s
ステップ 3:結果を渡す

create_doc.py の実行が完了したら、最終的な JSON 出力を解析します。ユーザーがドキュメントにアクセスする方法が 2 つ含まれています。必ず両方を提示してください。

  • file_url — リモートダウンロードリンク(クラウド URL)です。ユーザーがブラウザーで開いたり共有したりできるよう、クリック可能なハイパーリンクとして含めてください。
  • file_path — ユーザーのマシンに自動ダウンロードされたファイルの絶対ローカルパスです。手動でダウンロードせずにすぐファイルを見つけられるよう、このパスを明示してください。

返信例(ユーザーの言語に合わせて表現を調整してください):

ドキュメントの準備ができました!

file_path が空(ダウンロードに失敗した場合)でも、file_url は提示し、手動でダウンロードできることをユーザーに伝えてください。


スクリプトのパラメーター

parse_file.py
  • file - 参照ファイルへのパス(必須)
  • --json - 結果全体を JSON として出力します(任意)

主要な出力:PARSED_FILE: <json> — ステップ 2 用にこれを抽出します

create_doc.py
  • --title - ドキュメントのタイトル(必須)
  • --content - コンテンツプロンプト。作成する内容を記述します(必須)
    • 書き換えの指示に相当します。ユーザーの要件をまとめてください
    • 構成、セクション、文体、要点を具体的に指定してください
  • --files - parse_file.py から取得したファイルオブジェクトの JSON 配列(任意)
    • 形式:[{"file_id":"xxx","filename":"yyy","url":""}]
  • --language - 出力言語(任意、既定値:English)
    • 例:English、中文简体、中文繁體、日本語、한국어、Français、Deutsch、Español、...
  • --format - 出力形式(任意、既定値:docx)
    • 対応形式:docx、pdf、html、md

重要な注意事項

  1. まず意図を把握する - スクリプトを実行する前に、必ずユーザーのリクエストを分析してください。
  2. ウェブ検索機能を内蔵 - Doc API は、ドキュメント作成に必要な関連情報を収集するため、必要に応じてウェブ検索を自動的に実行します。外部で事前に資料を検索するかどうかは任意です。どちらの方法でも問題ありません。
  3. ファイル ID が橋渡し役 - parse_file.py が出力する file_id を、--files を使って create_doc.py に渡してください。
  4. コンテンツはサーバーが取得 - file_id を使ってサーバーが取得するため、parsed_content を手動で貼り付ける必要はありません。
  5. コンテンツは書き換えの指示 - ユーザーの要件を、明確で詳細なプロンプトにまとめてください。ユーザーの指示が長く複雑な場合でも、すべての要件を盛り込み、省略しないでください。
  6. 生成には時間がかかります - ドキュメントの生成には通常 5~10 分かかります。複雑なドキュメントの場合は、さらに時間がかかることがあります。
  7. スクリプトは自動的に待機 - create_doc.py は SSE(Server-Sent Events)を使用して長時間接続を維持し、リアルタイムで進捗状況を受け取ります。スクリプトは完了まで自動的に最大 3~10 分待機します。手動でポーリングする必要はありません。スクリプトの終了を待つだけで、結果が出力されます。
  8. 進捗状況の表示 - 生成中、スクリプトはリアルタイムの進捗バーを表示します。AI エージェントは、ユーザーが見通しを持てるよう、この状況を伝えてください。
  9. 最終ドキュメントの提供 - 重要:create_doc.py が正常に実行されると、出力 JSON には file_url(リモートダウンロードリンク)と file_path(ファイルが自動保存されたローカルパス)の両方が含まれます。必ず両方をユーザーに提示してください。オンラインで共有または開けるクリック可能な file_url と、ユーザーが自分のマシンですぐにファイルを見つけられる file_path の両方を返してください。file_path が空の場合は、その旨をユーザーに伝え、手動ダウンロード用に file_url を提示してください。

エラー処理

エラー解決方法
NO_TOKEN / INVALID_TOKEN / 401認証に失敗しました(返信ではエラーコード/生のメッセージを保持してください)。OpenClaw で SKYWORK_API_KEY が設定されていることを確認するか、有効なキーにローテーションしてください(references/apikey-fetch.md を参照)。メンバーシップのアップグレードを提案しないでください。
Cannot reach serverネットワーク接続を確認してください
JSON parse error--files の JSON には二重引用符を使用してください
特典が不足していますスクリプトやログに、たとえば Insufficient benefit. Please upgrade your account at {url} と表示されることがあります。以下を参照してください
特典が不足している場合の返信方法

上記を検出した場合は、ユーザーが現在使用している言語で返信してください。英語のメッセージをそのまま繰り返さないでください。次の形式を使用します。

  • 「申し訳ありません。ドキュメントの生成に失敗しました。このスキルを使用するには、Skywork メンバーシップのアップグレードが必要です」という内容と、単一の行動喚起リンクを伝えます。
  • 形式:ユーザーの言語での短い一文と、[今すぐアップグレード →](url) またはその言語に相当するリンク。
  • URL:ログ/スクリプトの出力からアップグレード URL を抽出します(例:at https://... の部分)。

技術的な注意事項

  • 生成には 5~10 分かかるため、十分なタイムアウトを設定してください。create_doc.py の実行には時間がかかる場合があります。SSE イベントが届いたら、各段階をユーザーに表示してください。これにより、生成中もユーザーに進捗を知らせることができます。

コメント