お久しぶりです。
昨日に引き続き、AI関連の記事です。
皆様はGemini CLIをご存知でしょうか?
2025年6月末にGoogleからリリースされた、GeminiをCLIで利用可能にするツールです。 c.f.: https://cloud.google.com/blog/ja/topics/developers-practitioners/introducing-gemini-cli/
私は日頃からGemini CLIを使っているわけではありませんが、GitHub Actionsで使うと便利そうなので、試しにブログ記事の校正を自動化してみました。
作成したもの
御託はさておき、まずは結果をご覧ください。
PRを作成すると、以下のようにGemini CLIが実行され、記事の校正が行われます。
校正結果は、PRのコメントとして出力するようにしています。

準備するものやコード
必要なもの
- Google AI StudioのAPIキー
- Gemini CLIを使うために必要です。Gemini CLIはGoogle AI StudioのAPIでも動作します。
事前準備
Google AI StudioのAPIキーをリポジトリのSecretsに登録します。
APIキーの名前はGEMINI_API_KEYとします。

Workflowのコード
以下のコードを.github/workflows/gemini.ymlに追加します。
大したことはしていません。
注意点として、下記のコードはsrc/content/**/*.mdのパスにあるMarkdownファイルが変更された際に、Gemini CLIを使って記事の校正を行います。
必要に応じてパスは変更してください。
name: Correction AI
on:
pull_request:
paths:
# トリガーの対象をより具体的に絞り込む
- 'src/content/**/*.md'
types: [opened]
permissions:
contents: read
pull-requests: write
jobs:
gemini:
runs-on: ubuntu-latest
steps:
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '22.x'
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get changed markdown file content
id: get_files
run: |
# PRのベースブランチのコミット(base.sha)と、このPRの最新のコミット(head.sha)を比較し、
# 変更があったMarkdownファイルの一覧を取得。
echo "Finding changed files between ${{ github.event.pull_request.base.sha }} and ${{ github.event.pull_request.head.sha }}"
files=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }} -- 'src/content/**/*.md')
if [ -z "$files" ]; then
echo "No markdown files changed in 'src/content/**/*.md'."
# 後続のステップが実行されないように、content出力を空に設定します
echo "content=" >> $GITHUB_OUTPUT
exit 0
fi
echo "Found changed markdown files:"
echo "$files"
# 変更されたファイル名を1つの変数に結合
content=""
for file in $files; do
if [ -f "$file" ]; then
content="${content}"$'\n'"- $file"
fi
done
if [ -z "$content" ]; then
echo "Content is empty."
echo "content=" >> $GITHUB_OUTPUT
exit 0
fi
# 複数行のファイル内容を、後続のステップに安全に渡すための記述
echo "content<<EOF" >> $GITHUB_OUTPUT
echo "$content" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name : Run Gemini AI
if: steps.get_files.outputs.content != ''
id: gemini_cli
env:
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
run: |
echo "Set up Google Gemini CLI"
npm install -g @google/gemini-cli
prompt="Markdown形式の記事を、レイアウトやコードブロック、見出し、リストなどの構造は一切変更せずに、日本語として自然で読みやすい文章に校正してください。\n \
- 誤字脱字や文法のミスを修正してください \n \
- 冗長な表現や不自然な言い回しを改善してください \n \
- 口語的な表現は残しても構いませんが、必要に応じてトーンを統一してください \n \
- Markdownの構文(\`---\` や \`\`\` やリンクなど)は変更しないでください \n \
- 改行位置も可能な限り維持してください \n \
- 出力は読み込んだファイルのパスと結果だけ返してください。 \n \
- ファイルへの書き込みは不要です。 \n \
記事は、以下のpathにあるので読み込んでください。 \n \
${{ steps.get_files.outputs.content }}"
output=$(gemini --prompt "$prompt")
if [ -z "$output" ]; then
echo "Gemini AI returned no output."
echo "content=" >> $GITHUB_OUTPUT
exit 0
fi
# 複数行の出力を後続のステップに渡すための記述
echo "content<<EOF" >> $GITHUB_OUTPUT
echo "$output" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Comment on PR
if: steps.get_files.outputs.content != ''
uses: peter-evans/create-or-update-comment@v4
with:
issue-number: ${{ github.event.pull_request.number }}
body: |
## Gemini AIによる校正結果
以下の内容は、Google Gemini AIによって校正された結果です。内容を確認し、必要に応じてマージしてください。
`````
${{ steps.gemini_cli.outputs.content }}
`````
edit-mode: replace
大変だった点
gemini-cli-actionが使えなかった
GoogleのGitHubリポジトリを見ると、GitHub Actions用にgemini-cli-actionというものが用意されています。
はじめはこれを利用しようとしましたが、Geminiからの結果をPRコメントに渡す処理(name: Comment on PR)でうまく受け取れませんでした。
Geminiに色々とお願いしたものの、解決しなかったため、nodeをインストールしてgemini-cliを直接使うことにしました。
Geminiへのプロンプト
Geminiへのプロンプトは、試行錯誤を重ねました。
色々と試した結果、以下のプロンプトが最も効果的でした。
Markdown形式の記事を、レイアウトやコードブロック、見出し、リストなどの構造は一切変更せずに、日本語として自然で読みやすい文章に校正してください。
- 誤字脱字や文法のミスを修正してください
- 冗長な表現や不自然な言い回しを改善してください
- 口語的な表現は残しても構いませんが、必要に応じてトーンを統一してください
- Markdownの構文(\`---\` や \`\`\` やリンクなど)は変更しないでください
- 改行位置も可能な限り維持してください
- 出力は読み込んだファイルのパスと結果だけ返してください。
- ファイルへの書き込みは不要です。
記事は、以下のpathにあるので読み込んでください。
${{ steps.get_files.outputs.content }}"
まとめ
Gemini CLIを使い、GitHub Actionsから記事の校正を自動化する方法を紹介しました。
一人で記事を書いていて文字校正が面倒だと感じている方は、是非AIの力を借りてみてください。
おまけ
この記事は Gemini CLIを使って校正しました。
以下に diff の結果をおいておきます。
diff の結果
diff --git a/src/content/blog/2025/07/2025-07-06/index.md b/src/content/blog/2025/07/2025-07-06/index.md
index a00fe79..2c25f22 100644
--- a/src/content/blog/2025/07/2025-07-06/index.md
+++ b/src/content/blog/2025/07/2025-07-06/index.md
@@ -1,6 +1,6 @@
---
-title: "Github Actions から Gemini CLI を使って記事を校正する"
-description: "めんどくさい記事の校正は Gemini に任せてしまおうという話"
+title: "GitHub ActionsからGemini CLIを使って記事を校正する"
+description: "面倒な記事の校正はGeminiに任せてしまおうという話です。"
date: 2025-07-06
category: "tech"
tags:
@@ -11,22 +11,22 @@ coverImage: "WN8UqUUNrbgR.jpg"
お久しぶりです。
-昨日に引き続き、AI の記事です。
+昨日に引き続き、AI関連の記事です。
-皆様は Gemini CLI をご存知でしょうか?
+皆様はGemini CLIをご存知でしょうか?
-2025年6月末にGoogleから突然リリースされた CLI で Gemini が使えるようになるツールです。
+2025年6月末にGoogleからリリースされた、GeminiをCLIで利用可能にするツールです。
c.f.: https://cloud.google.com/blog/ja/topics/developers-practitioners/introducing-gemini-cli/
-私は日頃から Gemini CLI は使っていないのですが、Github Actions で使うと便利そうなので、試しにブログ記事の校正を自動化してみました。
+私は日頃からGemini CLIを使っているわけではありませんが、GitHub Actionsで使うと便利そうなので、試しにブログ記事の校正を自動化してみました。
-## 作ってみた
+## 作成したもの
-御託はおいておいて、まずは結果を見てください。
+御託はさておき、まずは結果をご覧ください。
-PR を作成したら以下のように Gemini CLI が実行されて記事の校正が行われます。
+PRを作成すると、以下のようにGemini CLIが実行され、記事の校正が行われます。
-校正結果は、PRのコメントにして出力するようにしています。
+校正結果は、PRのコメントとして出力するようにしています。
// ここ画像
@@ -34,26 +34,26 @@ PR を作成したら以下のように Gemini CLI が実行されて記事の
### 必要なもの
-* [Google AI Studio](https://aistudio.google.com) の API KEY
- * Gemini CLI を使うために必要。[Gemini CLI は Google AI Studio の API でも動きます。](https://github.com/google-gemini/gemini-cli?tab=readme-ov-file#use-a-gemini-api-key)
+* [Google AI Studio](https://aistudio.google.com)のAPIキー
+ * Gemini CLIを使うために必要です。[Gemini CLIはGoogle AI StudioのAPIでも動作します。](https://github.com/google-gemini/gemini-cli?tab=readme-ov-file#use-a-gemini-api-key)
### 事前準備
-Google AI Studio の API KEY をリポジトリの Secrets に登録します。
+Google AI StudioのAPIキーをリポジトリのSecretsに登録します。
-API KEY の名前は `GEMINI_API_KEY` とすること。
+APIキーの名前は`GEMINI_API_KEY`とします。

-### Workflow のコード
+### Workflowのコード
-以下のコードを `.github/workflows/gemini.yml` に追加します。
+以下のコードを`.github/workflows/gemini.yml`に追加します。
-大したことはしていない。
+大したことはしていません。
-一応注意として下記のコードは、 `src/content/**/*.md` のパスにある Markdown ファイルが変更されたときに、Gemini CLI を使って記事の校正を行います。
+注意点として、下記のコードは`src/content/**/*.md`のパスにあるMarkdownファイルが変更された際に、Gemini CLIを使って記事の校正を行います。
-適宜パスを変更してください。
+必要に応じてパスは変更してください。
```yaml
name: Correction AI
@@ -172,25 +172,23 @@ jobs:
edit-mode: replace
```
-## 大変だったところ
+## 大変だった点
-### gemini-cli-action が使えなかった
+### gemini-cli-actionが使えなかった
-Google 先生の Github をみると Github Action 用に `gemini-cli-action` というものが用意されています。
+GoogleのGitHubリポジトリを見ると、GitHub Actions用に`gemini-cli-action`というものが用意されています。
https://github.com/google-gemini/gemini-cli-action
-はじめは、これを利用してなんとかしようとしました。
+はじめはこれを利用しようとしましたが、Geminiからの結果をPRコメントに渡す処理(name: Comment on PR)でうまく受け取れませんでした。
-しかし、Gemini からの結果をPRコメントに渡す処理(name: Comment on PR)で受け取れませんでした。
+Geminiに色々とお願いしたものの、解決しなかったため、nodeをインストールして[gemini-cli](https://github.com/google-gemini/gemini-cli)を直接使うことにしました。
-Gemini に色々とお願いしたのですが、うまくいかなかったので node インストールして、 [gemini-cli](https://github.com/google-gemini/gemini-cli) を直接使うことにしました。
+### Geminiへのプロンプト
-### Gemini へのプロンプト
+Geminiへのプロンプトは、試行錯誤を重ねました。
-Gemini へのプロンプトは、色々と試行錯誤しました。
-
-色々と試した結果、以下のプロンプトが一番うまくいきました。
+色々と試した結果、以下のプロンプトが最も効果的でした。
```text
Markdown形式の記事を、レイアウトやコードブロック、見出し、リストなどの構造は一切変更せずに、日本語として自然で読みやすい文章に校正してください。
@@ -204,12 +202,12 @@ Markdown形式の記事を、レイアウトやコードブロック、見出し
記事は、以下のpathにあるので読み込んでください。
${{ steps.get_files.outputs.content }}"
-記事は、以下の内容から取得します。
-${{ steps.get_files.outputs.content }} // ファイルパス
+記事は、以下のpathにあるので読み込んでください。 \n \
+${{ steps.get_files.outputs.content }}"
```
## まとめ
-Gemini CLI を使って、Github Actions から記事の校正を自動化する方法を紹介しました。
+Gemini CLIを使い、GitHub Actionsから記事の校正を自動化する方法を紹介しました。
-一人で記事を書いてて、文字校正めんどくさいと思っている人は是非AIの力を借りてみてください。
+一人で記事を書いていて文字校正が面倒だと感じている方は、是非AIの力を借りてみてください。