mcpField
L
lovstudio-fill-form

lovstudio-fill-form

github.com/lovstudioドキュメント7391 回インストール今日更新
リポジトリ

lovstudio-fill-form について

ユーザー提供の情報やコンテキスト内のデータを使って、.docxフォームテンプレートに記入するスキルです。表のラベルと値の欄を検出し、スキャン後に入力済み文書を保存します。

主な機能

  1. 01テンプレート内のフォーム欄をスキャン
  2. 02表の隣接する値セルに入力
  3. 03結合行と段落形式の欄に対応
  4. 04質問前に既存コンテキストを活用
  5. 05入力済み.docxファイルを保存

活用シーン

  1. 01申請書の記入
  2. 02登録フォームテンプレートの入力
  3. 03参照文書を使ったWordフォームの作成

インストール

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

$npx skills add https://github.com/lovstudio/skills --skill lovstudio-fill-form

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

同梱ファイル

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

CHANGELOG.md
README.md
scripts/
fill_form.py

詳細

fill-form — Word フォームテンプレートへの入力

このスキルは、ユーザーから提供されたデータを使って、Word 文書のフォームテンプレート(.docx)に入力します。 表形式のフォームフィールド(1 つのセルにラベル、隣接するセルに値が入る形式)を検出し、 自動的に値を入力します。

使用する場面

  • 空欄を埋める必要がある .docx フォームテンプレートをユーザーが持っている場合
  • ユーザーが申込書、登録フォームなどへの入力を希望する場合
  • 文書のフォームレイアウトに Word の表(ラベル | 値のセルの組み合わせ)が使われている場合
  • ユーザーが 填表、申请表、登记表 に言及するか、フォーム入力の自動化を希望する場合

ワークフロー(必須)

次の手順を必ず順番どおりに実行してください。

ステップ 1:テンプレートをスキャンする

入力可能なすべてのフィールドを検出します。

python lovstudio-fill-form/scripts/fill_form.py --template <path> --scan
ステップ 2:既知のコンテキストから事前入力する

ユーザーに質問する前に、次の情報からできるだけ多くのフィールドを入力します。

  1. ユーザーのメモリ — 名前、役職、組織など
  2. コンテキストファイル — ユーザーが参考資料(例:STARTER-PROMPT.md、プロジェクト文書)を提供している場合は、関連情報を抽出して、内容が多いフィールドに入力します
  3. 会話のコンテキスト — すでに言及された情報

内容が多いフィールド(例:「主要内容/简介/摘要」)については、コンテキストファイル、ユーザーの既知の専門知識、トピックやタイトルをもとに情報を積極的にまとめて文章を作成します。

ステップ 3:不明な項目だけを質問する

AskUserQuestion を使い、コンテキストから入力できないフィールドだけを確認してください。

  • フィールドをまとめて 1 つの質問にします
  • すべてのフィールドが不明な場合は、すべて列挙します
  • ユーザーが一部のフィールドを空欄にしてよいと言った場合(例:「他の人が入力してくれる」)は、その意向を尊重して空欄のままにします
  • すべてのフィールドへの入力をユーザーに強制しないでください
ステップ 4:入力して保存する

長文のシェルエスケープの問題を避けるため、JSON データファイルを書き出してから、次を実行します。

python lovstudio-fill-form/scripts/fill_form.py \
  --template <path> \
  --data-file /tmp/form_data.json

出力先のルール:

  • デフォルト:<template_dir>/<name>_filled.docx(テンプレートと同じディレクトリ)
  • テンプレートが一時ディレクトリまたはシステムパスにある場合は、ユーザーのドキュメントディレクトリに保存するか、保存先をユーザーに尋ねます
  • 明示的に上書きするには --output を使います

CLI リファレンス

引数デフォルト説明
--template(必須)テンプレートの .doc/.docx ファイルへのパス
--output<template_dir>/<name>_filled.docx出力する .docx ファイルのパス
--scanfalse検出されたすべてのフォームフィールドを一覧表示します
--data""フィールドと値の対応を指定する JSON 文字列
--data-file""フィールドと値の対応を指定する JSON ファイルへのパス
--fontPlatform CJK serif入力するテキストのフォント名
--font-size11ポイント単位のフォントサイズ

フィールド検出の仕組み

  1. 表形式(主な方法):すべての表をスキャンし、ラベルと値のセルが並ぶ行を検出します。 ラベルセルには短いテキスト(CJK またはラテン文字)が含まれ、隣接するセルが値の入力欄になります。
  2. 結合された行:「Label:」のパターンを含む、全幅で結合されたセルを広いテキスト入力欄として検出します。
  3. 段落へのフォールバック:表が見つからない場合、段落内の「Label:value」パターンを検出します。

制限事項

  • .doc ファイルは macOS の textutil によって自動的に .docx に変換されますが、表の構造が失われます。 最良の結果を得るには、.docx テンプレートを直接使用してください。.doc しかない場合は、 先に LibreOffice で変換してください:libreoffice --headless --convert-to docx file.doc
  • フィールドは、正規化されたラベルテキスト(空白を削除)で照合されます。ラベルに 特殊な書式が含まれている場合、照合に失敗することがあります。検出結果を確認するには --scan を使ってください。

依存関係

python3 -m pip install python-docx

コメント