📃

Gemini CLIを使った文書チェックフローを構築した話

に公開

AIが文書生成するために必要なもの

AIに高品質な文書を生成させるために何が必要か?について、ここ1年くらいずっと考えていたのだが、
私の結論は

「文書マネジメントが必須」「組織マネジメントがあるとなおよい」

というなんとも面倒くさい結論だった。

要は ISO 9001 とかに書いてあることの実践である。
そういうのから解放してくれるのがAIなんじゃないの?と思っている人は多いと思う。

私は逆に 実行すると良いと言われていたが人力では限界があったこと にこそAIが活用できると考えた。

とはいえここは今回の本筋でないので省略

文書チェックが必要になった動機

AI活用に組織マネジメントが必須と思って半年くらい、組織マネジメント構築をしていた。

高性能・高速のLLMモデルが次々発表されるので文書を作るのは比較的楽であった。

ただ文書が多くなるほど色々な場所に不整合がでてくる。(現在109ファイル35万3千文字)

ここからもっと文書を作ることになるため「文書マネジメント」に手をつけようと思って1か月くらい。

ファイル命名則や書式のルール整備はできたが、手動で修正するのはなんとも面倒だし間違いも多くなるだろう。

ちょうどGemini CLIがカスタムスラッシュコマンドを使えるようになったということで習得がてら構築を試みた。

文書チェックのターゲット

文書チェックから始まり、改善案の提案、文書修正適用までをフローのターゲットとした。

チェックのワークフロー

1. 成果物チェックを実行するためのタスク依頼書の作成

文書の種類により適用するガイドラインやルールを動的に変更することを考えて、タスク依頼書のワーク定義と、タスク依頼書のテンプレートを作成した。
これでAIに文書を指定してタスクを依頼すると、タスク依頼書が動的に生成できるようになった。

## 1. タスク概要

- **評価対象の成果物:** `CORE-FMT-****-format`
- **担当評価者ペルソナ:** `Evaluator-DocMgmt`
- **期待されるアウトプット:** `PRJ-RPT-DOC-verify-20250806-001.md`

## 2. 評価スコープと基準

本タスクでは、上記「評価対象の成果物」が、以下のチェックリストで定義された全てのルールに適合しているかを検証すること。

- `CORE-CHK-ALL-qms_document_checklist`
- `CORE-CHK-ALL-document_checklist`
- `CORE-CHK-ALL-writing_style_checklist`
- `CORE-CHK-ALL-format_document_checklist`

## 3. 完了の定義

- 上記「評価スコープと基準」で指定された全てのチェックリストの全項目を評価し、
その結果(OK/NGおよび備考)を、期待されるアウトプットである「文書ルール検証報告書」として作成・提出すること。
- 作成・提出とは、指定のファイル名でMarkdown形式のファイルを作成することである。

2. 文書ルールチェックの実行と、文書ルール検証報告書の作成

AIに生成したタスク依頼書を指定してタスクを依頼し、AIが文書チェックを実行する。
AIが文書のルールチェックができるように、文書作成のスタイルガイドを作り、それに適用した文書スタイルのチェックリストを作成した。
また、ルールチェックした後に、検証結果を報告するためのテンプレートを作った。

## 2. 検証結果サマリー

| チェックリスト | 項目数 | OK | NG | N/A |
| :--- | :--- | :--- | :--- | :--- |
| `CORE-CHK-ALL-qms_document_checklist` | 8 | 6 | 2 | 0 |
| `CORE-CHK-ALL-document_checklist` | 2 | 2 | 0 | 0 |
| `CORE-CHK-ALL-writing_style_checklist` | 8 | 8 | 0 | 0 |
| `CORE-CHK-ALL-format_document_checklist` | 6 | 6 | 0 | 0 |

## 3. 検証結果詳細

### 3.1. `CORE-CHK-ALL-qms_document_checklist`

| ID | 結果 | 備考 |
| :--- | :--- | :--- |
| `CHK-QMS-META-01` | OK | `文書ID`が存在し、値が設定されている |
| `CHK-QMS-META-02` | OK | `バージョン / ステータス`が存在し、値が設定されている |

3. 文書ルール検証報告書の分析と修正提案書の作成

AIに文書ルール検証報告書を指定してタスクを依頼し、AIが修正案を作成する。
これも他と同様に修正提案書のフォーマットを作成した。
不具合事項1つずつに修正案をDIFF形式で提案する形式にした。

## 2. 修正対象の不適合サマリー

| チェック項目ID | 不適合内容の要約 |
| :--- | :--- |
| CHK-QMS-META-07 | メタデータ項目の順序が推奨順序と異なる |
| CHK-QMS-APPR-01 | ステータスがApprovedなのに承認日・承認者がN/Aという不整合 |

## 3. 不適合事項と具体的な修正案

### 3.1. CHK-QMS-META-07: メタデータ項目の順序が推奨順序と異なる

- **不適合内容:** メタデータ項目の順序が推奨と異なる。推奨順序:文書ID→バージョン/ステータス→責任レベル/文書タイプ→タイトル→作成日/作成者→承認日/承認者
- **分析と修正方針:** `CORE-SOP-ALL-qms_document-management`の3.1.1節に従い、文書の可読性と一貫性を高めるため、メタデータブロックは推奨される順序で記述する必要がある。
現在の文書では、タイトルが4番目ではなく3番目に配置されているため修正が必要。
- **具体的な修正案:**

```diff
--- a/CORE-FMT-ALL-****-format.md
+++ b/CORE-FMT-ALL-****-format.md
@@ -2,8 +2,8 @@
 
 - **文書ID:** `CORE-FMT-****-format`
 - **バージョン / ステータス:** 1.0 / Approved
-- **責任レベル / 文書タイプ:** ** / FMT
 - **タイトル:** ビジネスサイクル起案書フォーマット
+- **責任レベル / 文書タイプ:** TOP / FMT
 - **作成日 / 作成者(ペルソナID):** 2025-08-06 / `N/A`
 - **承認日 / 承認者(ペルソナID):** 2025-08-06 / `N/A`

4. 修正提案書の作成

AIに修正提案書を指定して、修正を実行させる。
最終成果物が文書そのものでありテンプレートとかは特にない。これで修正が完了する。

Gemini CLI カスタムスラッシュコマンドへの展開。

AIが作る成果物ごとにカスタムスラッシュコマンドを作って段階的に成果物を生成するようにした。

ステップ1:'/doc_verify_create' でチェック指示書を生成
ステップ2:'/doc_verify_exec' でチェック報告書を生成
ステップ3:'/doc_correct_prop' で修正提案書を生成
ステップ4:'/doc_correct_supply'で修正結果を生成

最初はGemini-2.5-Proを使って修正結果を手直ししながらプロンプトを改善していたのだが、
すぐGemini-2.5-Flashに切り替わってしまうためしかたなく使ってみたところ、ルールやテンプレートで自由度を制限したためかFlashでも品質に違いがなかった。
Gimini CLIでないが試した感じだと一部タスクについてはFlash-Liteでも問題なさそうであった。

Gemini CLI カスタムスラッシュコマンドの欠点

これで終わればよかったのだが、別の課題が発生した。

それは 4つのコマンドを手動で実行する必要があること

いくつか回避策は探して試したが、自動でシーケンシャルにコマンドを実行する手段がなかった
一番可能性があるのは 非対話モードによるコマンドの実行であるが、現時点(v0.1.18)では非対話モードでのカスタムスラッシュコマンドの適用ができない制限があるようだ。

代替手段

以下のプロンプトを関連文書と一緒に放り込むという力技を実行。

tomlファイルはgemini cliのカスタムスラッシュコマンドです。

ステップ1:  {評価対象の文書} に対して、 doc_verify_create.tomlを適用して
1つの新規アーティファクトで出力してください。

ステップ2: ステップ1のアーティファクトに対して doc_verify_exec.tomlを適用して
1つの新規アーティファクトで出力してください。

ステップ3: ステップ2のアーティファクトに対して doc_correct_prop.tomlを適用して
1つの新規アーティファクトで出力してください。

ステップ4 ステップ3のアーティファクトに対して doc_correct_supply.tomlを適用して
1つの新規アーティファクトで出力してください。

{評価対象の文書}  は次で提示しますのでまず指示内容を理解してください。

指示内容を理解した後、{評価対象の文書} の文書を使ってステップ1からステップ4の処理を**必ず**順番に進めてください。

Gemini(2.5pro/flash) : NG
Claude(Opus4,Sonnet4) : OK


Gemini CLIで構築したはずが、ClaudeのProjectでチェックしたい文書添付するだけで修正結果がでてくるシステムが爆誕しました。

なぜだ・・・

結果

Gemini CLIのカスタムスラッシュコマンドによる文書チェックの試みは成功。
2.5-Flashで問題なく動き、一部2.5-Flash-Liteレベルでも動きそうなのは予想外の収穫。
ただ自動化するにはGemini CLI自体の機能の充実を待つ必要がありそう。

また、「組織マネジメント文書」「文書マネジメント文書」 を定義しておけば、
自動で文書チェックと文書修正は自動化できそうな感触が得られた。これは予想どおり。

「組織マネジメント文書」「文書マネジメント文書」 自体を育てていくことで、
生成文書の精度があがり、そのチェックも簡単になっていくため、どう育てていくかがキモになりそう。

Discussion