AI編集者開発のリアル(8) VS Code から全部やる:tasks.json で ai-editor を手元に統合する

AI編集者開発のリアル(8) VS Code から全部やる:tasks.json で ai-editor を手元に統合する — VS Code, tasks.json, AI 編集者 AIテキスト

こんにちは、パレイド思想部です。

前回はプロジェクトフォルダから連載企画を自動生成するプロジェクトスキャナーを紹介しました。

今回は「日常の使い勝手」の話です。ai-editor は CLI ツールとして設計していますが、毎回ターミナルでコマンドを打つのは面倒です。VS Code の tasks.json に登録すれば、エディタから離れずにすべての操作が完結します。

なぜ tasks.json なのか

ai-editor のコマンドは多岐にわたります。

python -m publish sync --dir blog/articles/
python -m publish generate --series ...
python -m publish review
python -m publish news ingest
python -m publish triad-sync

これを毎回タイプするのは現実的ではありません。シェルスクリプトにまとめる手もありますが、VS Code の tasks.json なら:

  • ショートカットキーで即実行できる
  • 問題マッチャーで出力をパースし、エラー行にジャンプできる
  • タスクの依存関係で「同期 → レビュー」のような連鎖実行ができる
  • 記事の Markdown を編集しながらそのまま同期・プレビューできる

基本構成

.vscode/tasks.json に ai-editor のコマンドを登録します。

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "sync: blog ↔ WP",
      "type": "shell",
      "command": "PYTHONPATH=tools python -m publish sync",
      "group": "build",
      "presentation": {
        "reveal": "always",
        "panel": "shared"
      }
    },
    {
      "label": "sync: current file",
      "type": "shell",
      "command": "PYTHONPATH=tools python -m publish sync --file ${file}",
      "group": "build",
      "presentation": {
        "reveal": "always",
        "panel": "shared"
      }
    },
    {
      "label": "review: all",
      "type": "shell",
      "command": "PYTHONPATH=tools python -m publish review",
      "group": "test"
    },
    {
      "label": "news: batch",
      "type": "shell",
      "command": "PYTHONPATH=tools python -m publish news batch",
      "group": "build"
    },
    {
      "label": "triad: sync",
      "type": "shell",
      "command": "PYTHONPATH=tools python -m publish triad-sync",
      "group": "build"
    }
  ]
}

${file} は VS Code の変数で、現在開いているファイルのパスに展開されます。記事を編集中に「sync: current file」を実行すれば、その記事だけを WordPress に同期できます。

実際に登録しているタスク一覧

当サイトでは以下のタスクを登録しています。

同期系

タスクコマンド用途
sync: blog ↔ WPpublish sync全記事の双方向同期
sync: current filepublish sync --file ${file}今開いている記事だけ同期
sync: force uploadpublish sync --file ${file} --forceコンフリクト無視で強制アップロード

記事生成系

タスクコマンド用途
generate: from scenariopublish generate --file ${file}シナリオ YAML から記事生成
generate: outline onlypublish generate --file ${file} --stop-after a構成案だけ生成して確認

レビュー・分析系

タスクコマンド用途
review: allpublish review全記事の品質チェック
review: seriespublish review --checkers series連載整合チェック
score: currentpublish score ${input:postId}記事 ID を入力してスコアリング

ショートカットキーの割り当て

よく使うタスクにはキーバインドを設定しています。keybindings.json に追加します。

[
  {
    "key": "cmd+shift+s",
    "command": "workbench.action.tasks.runTask",
    "args": "sync: current file"
  },
  {
    "key": "cmd+shift+r",
    "command": "workbench.action.tasks.runTask",
    "args": "review: all"
  }
]

Cmd+Shift+S で今開いている記事を WordPress に即同期。記事を書きながらプレビューしたいときに重宝します。

入力プロンプトの活用

記事 ID の入力が必要なタスク(スコアリング等)は inputs を使います。

{
  "inputs": [
    {
      "id": "postId",
      "description": "記事の post_id を入力",
      "type": "promptString",
      "default": ""
    }
  ]
}

タスク実行時にダイアログが表示され、ID を入力するとコマンドに渡されます。

タスクの連鎖実行

「同期してからレビュー」のように、タスクを連鎖させることもできます。

{
  "label": "sync + review",
  "dependsOn": ["sync: blog ↔ WP", "review: all"],
  "dependsOrder": "sequence"
}

dependsOrder: "sequence" で順番に実行されます。同期が終わってからレビューが走るので、最新の状態でチェックできます。

まとめ

tasks.json の登録は一度やれば終わりですが、効果は毎日積み重なります。

  • ターミナルを開かなくていい
  • コマンドを覚えなくていい
  • ショートカット一発で同期・生成・レビュー
  • 記事を書く → 同期する → レビューする、がシームレスにつながる

「ツールは作ったけど使うのが面倒」にならないための、最後の一手です。

次回予告: 第9回は「Google Analytics 連携」を取り上げます。記事のパフォーマンスを API で取得し、LLM でスコアリング・改善提案を行う仕組みを解説します。

タイトルとURLをコピーしました