Agent Skills by ALSEL
OpenAIドキュメント⭐ リポ 0品質スコア 65/100

docx-official

ユーザーが.docxファイルのコンテンツの作成、編集、または分析をリクエストする場合があります。.docxファイルは本質的にはXMLファイルおよび他のリソースを含むZIPアーカイブであり、これらを読み込んだり編集したりできます。異なるタスクに対応するため、複数のツールとワークフローが利用可能です。

description の原文を見る

A user may ask you to create, edit, or analyze the contents of a .docx file. A .docx file is essentially a ZIP archive containing XML files and other resources that you can read or edit. You have different tools and workflows available for different tasks.

SKILL.md 本文

DOCX の作成、編集、分析

概要

ユーザーから .docx ファイルの作成、編集、または内容の分析を依頼されることがあります。.docx ファイルは本質的には XML ファイルおよび他のリソースを含む ZIP アーカイブであり、これらを読み取りまたは編集できます。さまざまなタスクに対して、異なるツールとワークフローが利用可能です。

ワークフロー決定ツリー

内容の読み取り/分析

下記の「テキスト抽出」または「Raw XML アクセス」セクションを使用してください

新規ドキュメント作成

「Word ドキュメントの新規作成」ワークフローを使用してください

既存ドキュメント編集

  • 自分のドキュメント + 簡単な変更 「基本的な OOXML 編集」ワークフローを使用してください

  • 他人のドキュメント 「リドラインワークフロー」 を使用してください (推奨デフォルト)

  • 法律文書、学術文書、ビジネス文書、または政府文書 「リドラインワークフロー」 を使用してください (必須)

内容の読み取りと分析

テキスト抽出

ドキュメントのテキスト内容を読み取るだけの場合は、pandoc を使用してドキュメントをマークダウンに変換してください。Pandoc はドキュメント構造の保持に優れ、変更履歴を表示できます:

# 変更履歴付きでドキュメントをマークダウンに変換
pandoc --track-changes=all path-to-file.docx -o output.md
# オプション: --track-changes=accept/reject/all

Raw XML アクセス

以下の場合に Raw XML アクセスが必要です: コメント、複雑な書式、ドキュメント構造、埋め込みメディア、およびメタデータ。これらの機能のいずれかについては、ドキュメントを解凍して生の XML 内容を読み取る必要があります。

ファイルの解凍

python ooxml/scripts/unpack.py <office_file> <output_directory>

主要なファイル構造

  • word/document.xml - メイン ドキュメント内容
  • word/comments.xml - document.xml で参照されているコメント
  • word/media/ - 埋め込み画像およびメディア ファイル
  • 変更履歴は <w:ins> (挿入) および <w:del> (削除) タグを使用します

Word ドキュメントの新規作成

新しく Word ドキュメントを作成する場合は、docx-js を使用してください。これにより JavaScript/TypeScript を使用して Word ドキュメントを作成できます。

ワークフロー

  1. 必須 - ファイル全体を読み取る: docx-js.md (~500 行) を最初から最後まで完全に読み取ってください。このファイルを読み取る際に範囲制限を設定しないでください。 ドキュメント作成を進める前に、詳細な構文、重要なフォーマット規則、およびベストプラクティスについて、ファイル全体の内容を読み取ってください。
  2. Document、Paragraph、TextRun コンポーネントを使用して JavaScript/TypeScript ファイルを作成してください (すべての依存関係がインストール済みと想定できますが、インストールされていない場合は下記の依存関係セクションを参照してください)
  3. Packer.toBuffer() を使用して .docx としてエクスポートしてください

既存 Word ドキュメントの編集

既存の Word ドキュメントを編集する場合は、Document ライブラリ (OOXML 操作用の Python ライブラリ) を使用してください。このライブラリはインフラストラクチャ セットアップを自動的に処理し、ドキュメント操作用のメソッドを提供します。複雑なシナリオの場合は、ライブラリを通じて基盤となる DOM に直接アクセスできます。

ワークフロー

  1. 必須 - ファイル全体を読み取る: ooxml.md (~600 行) を最初から最後まで完全に読み取ってください。このファイルを読み取る際に範囲制限を設定しないでください。 Document ライブラリ API およびドキュメント ファイルを直接編集するための XML パターンについて、ファイル全体の内容を読み取ってください。
  2. ドキュメントを解凍してください: python ooxml/scripts/unpack.py <office_file> <output_directory>
  3. Document ライブラリを使用して Python スクリプトを作成して実行してください (ooxml.md の「Document ライブラリ」セクションを参照)
  4. 最終ドキュメントをパック化してください: python ooxml/scripts/pack.py <input_directory> <office_file>

Document ライブラリは、一般的な操作用の高レベルメソッドと複雑なシナリオ用の直接 DOM アクセスの両方を提供します。

ドキュメント レビュー用リドラインワークフロー

このワークフローにより、OOXML で実装する前に、マークダウンを使用して包括的な変更履歴を計画できます。重要: 変更履歴を完全に実装するには、すべての変更を体系的に実装する必要があります。

バッチ処理戦略: 関連する変更を 3~10 の変更のバッチにグループ化してください。これにより、デバッグが管理可能になり、効率を維持できます。各バッチをテストしてから次のバッチに進んでください。

原則: 最小限で正確な編集 変更履歴を実装する際は、実際に変更されるテキストのみをマークしてください。変更されていないテキストを繰り返すと、編集が見直しにくくなり、プロフェッショナルに見えません。置換を以下のように分割してください: [変更されていないテキスト] + [削除] + [挿入] + [変更されていないテキスト]。元の実行の RSID を保持するために、オリジナルから <w:r> 要素を抽出して再利用してください。

例 - 文中の「30 日」を「60 日」に変更:

# 悪い例 - 文全体を置換
'<w:del><w:r><w:delText>The term is 30 days.</w:delText></w:r></w:del><w:ins><w:r><w:t>The term is 60 days.</w:t></w:r></w:ins>'

# 良い例 - 変更部分のみをマークし、変更されていないテキストの元の <w:r> を保持
'<w:r w:rsidR="00AB12CD"><w:t>The term is </w:t></w:r><w:del><w:r><w:delText>30</w:delText></w:r></w:del><w:ins><w:r><w:t>60</w:t></w:r></w:ins><w:r w:rsidR="00AB12CD"><w:t> days.</w:t></w:r>'

変更履歴ワークフロー

  1. マークダウン表現を取得: 変更履歴を保持したままドキュメントをマークダウンに変換してください:

    pandoc --track-changes=all path-to-file.docx -o current.md
    
  2. 変更を特定してグループ化: ドキュメントをレビューして必要なすべての変更を特定し、論理的なバッチに整理してください:

    位置の特定方法 (XML 内の変更を見つけるため):

    • セクション/見出し番号 (例: 「セクション 3.2」、「記事 IV」)
    • 番号が付いている場合の段落識別子
    • 一意な周辺テキストを使用した Grep パターン
    • ドキュメント構造 (例: 「最初の段落」、「署名ブロック」)
    • マークダウン行番号を使用しないでください - XML 構造にマップされません

    バッチ整理 (バッチあたり 3~10 の関連変更をグループ化):

    • セクション別: 「バッチ 1: セクション 2 の修正」、「バッチ 2: セクション 5 の更新」
    • 種類別: 「バッチ 1: 日付の修正」、「バッチ 2: 当事者名の変更」
    • 複雑さ別: 単純なテキスト置換から始めて、その後複雑な構造変更に対応
    • 順序別: 「バッチ 1: ページ 1~3」、「バッチ 2: ページ 4~6」
  3. ドキュメントを読み取って解凍:

    • 必須 - ファイル全体を読み取る: ooxml.md (~600 行) を最初から最後まで完全に読み取ってください。このファイルを読み取る際に範囲制限を設定しないでください。 「Document ライブラリ」および「Tracked Change Patterns」セクションに特に注意を払ってください。
    • ドキュメントを解凍: python ooxml/scripts/unpack.py <file.docx> <dir>
    • 提案される RSID を記録: 解凍スクリプトは、変更履歴に使用する RSID を提案します。ステップ 4b で使用するために、この RSID をコピーしてください。
  4. バッチで変更を実装: 変更を論理的にグループ化 (セクション別、種類別、または近接度別) して、単一のスクリプトで一緒に実装してください。このアプローチにより:

    • デバッグが簡単になります (小さいバッチ = エラーの分離が簡単)
    • 段階的な進捗が可能です
    • 効率を維持します (3~10 の変更のバッチサイズが効果的です)

    提案されるバッチグループ化:

    • ドキュメント セクション別 (例: 「セクション 3 の変更」、「定義」、「終了条項」)
    • 変更の種類別 (例: 「日付の変更」、「当事者名の更新」、「法律用語の置換」)
    • 近接度別 (例: 「ページ 1~3 の変更」、「ドキュメント前半の変更」)

    関連する変更の各バッチについて:

    a. テキストを XML にマップ: word/document.xml でテキストを Grep して、テキストが <w:r> 要素でどのように分割されているかを確認してください。

    b. スクリプトを作成して実行: get_node を使用してノードを見つけ、変更を実装してから doc.save() を実行してください。ooxml.md の 「Document ライブラリ」 セクションでパターンを参照してください。

    : スクリプトを作成する直前に必ず word/document.xml を Grep して、現在の行番号を取得し、テキスト内容を確認してください。行番号は各スクリプト実行後に変更されます。

  5. ドキュメントをパック化: すべてのバッチが完了したら、解凍されたディレクトリを .docx に変換し直してください:

    python ooxml/scripts/pack.py unpacked reviewed-document.docx
    
  6. 最終確認: 完全なドキュメントの包括的なチェックを実施してください:

    • 最終ドキュメントをマークダウンに変換:
      pandoc --track-changes=all reviewed-document.docx -o verification.md
      
    • すべての変更が正しく適用されたことを確認:
      grep "original phrase" verification.md  # 見つからないはず
      grep "replacement phrase" verification.md  # 見つかるはず
      
    • 意図しない変更が導入されていないことを確認してください

ドキュメントを画像に変換

Word ドキュメントを視覚的に分析するために、2 ステップのプロセスを使用して画像に変換してください:

  1. DOCX を PDF に変換:

    soffice --headless --convert-to pdf document.docx
    
  2. PDF ページを JPEG 画像に変換:

    pdftoppm -jpeg -r 150 document.pdf page
    

    これにより page-1.jpgpage-2.jpg などのファイルが作成されます。

オプション:

  • -r 150: 解像度を 150 DPI に設定します (品質とサイズのバランスについて調整してください)
  • -jpeg: JPEG 形式で出力 (PNG 形式の場合は -png を使用してください)
  • -f N: 変換する最初のページ (例: -f 2 はページ 2 から開始)
  • -l N: 変換する最後のページ (例: -l 5 はページ 5 で終了)
  • page: 出力ファイルのプリフィックス

特定の範囲の例:

pdftoppm -jpeg -r 150 -f 2 -l 5 document.pdf page  # ページ 2~5 のみを変換

コードスタイルガイドライン

重要: DOCX 操作のコードを生成する場合:

  • 簡潔なコードを記述してください
  • 冗長な変数名と冗長な操作を避けてください
  • 不要な print ステートメントを避けてください

依存関係

必要な依存関係 (必要に応じてインストール):

  • pandoc: sudo apt-get install pandoc (テキスト抽出用)
  • docx: npm install -g docx (新規ドキュメント作成用)
  • LibreOffice: sudo apt-get install libreoffice (PDF 変換用)
  • Poppler: sudo apt-get install poppler-utils (PDF を画像に変換する pdftoppm 用)
  • defusedxml: pip install defusedxml (セキュアな XML 解析用)

いつ使用するか

このスキルは、概要で説明されているワークフローまたはアクションを実行する場合に適用できます。

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
Qureshi-1
リポジトリ
Qureshi-1/Backport-io
ライセンス
MIT
最終更新
2026/5/9

Source: https://github.com/Qureshi-1/Backport-io / ライセンス: MIT

本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: Qureshi-1 · Qureshi-1/Backport-io · ライセンス: MIT