himanago

Azure・C#などのMS系技術やLINE関連技術など、好きな技術について書くブログ

SwallowKit アップデート — 多言語バックエンド対応・VS Code 拡張機能&ドキュメントサイト公開

以前の記事で紹介した、Azure 上の Next.js アプリ向けスキーマ駆動開発ツールキット「SwallowKit」ですが、あれから約1ヶ月でかなり大きなアップデートを行いました。

himanago.hatenablog.com

前回の記事の最後に書いていた「今後の展望」のうち、以下の2つを実現しました!

  • バックエンド(Azure Functions)の TypeScript 以外の言語への対応 → C#・Python 対応
  • コーディングエージェント向けのコード生成カスタム指示のサポート → AI フレンドリー機能(AGENTS.md 等の自動生成)

さらに、これらに加えて VS Code 拡張機能のリリースドキュメントサイトの公開開発用シードデータ機能 など、開発体験を大きく向上させる機能追加も行っています。

特に多言語対応と開発用シードデータ対応により、幅広い場面で便利に使えるようになったんじゃないかなと思います!

この記事では、これらの新機能をまとめて紹介します。

新機能一覧

今回のアップデートで追加された主な機能は以下の通りです。

機能 概要
🌐 多言語バックエンド対応 Azure Functions で TypeScript に加え C#・Python を選択可能
🧬 OpenAPI スキーマブリッジ C#/Python バックエンド向けに Zod → OpenAPI → 各言語モデル自動生成
🤖 AI フレンドリー AGENTS.mdCLAUDE.md.github/copilot-instructions.md を自動生成
🧩 VS Code 拡張機能 GUI ウィザード・右クリックスキャフォールド・ステータスバー・スニペット
🌱 開発用シードデータ create-dev-seeds + dev --seed-env で Cosmos DB Emulator のデータを差し替え。ローカルでの動作確認でさまざまなデータパターンを簡単にできるようになった
📚 ドキュメントサイト VitePress 製の英語/日本語ドキュメント公開

それぞれ詳しく見ていきます。

🌐 多言語バックエンド対応(C#・Python)

前回のリリースでは Azure Functions のバックエンドは TypeScript のみでしたが、C# と Python にも対応しました。

swallowkit init 時にバックエンド言語を選択できます。

npx swallowkit init my-app

フラグで直接指定すれば、非対話モードでの実行も可能です。

npx swallowkit init my-app --backend-language csharp

OpenAPI スキーマブリッジ

TypeScript バックエンドの場合は、Zod スキーマを直接 import して共有できますが、C# や Python では Zod を直接使えません。

そこで SwallowKit では、Zod スキーマ → OpenAPI → 各言語のモデルコード という変換パイプラインを自動で実行します。

shared/models/todo.ts (Zod)
        │
        ▼
functions/openapi/todo.openapi.json (OpenAPI)
        │
        ▼
functions/generated/csharp-models/  (C# の場合)
functions/generated/python-models/  (Python の場合)

swallowkit scaffold を実行するだけで、この変換が自動的に行われます。スキーマを変更した場合も、再度 scaffold を実行すれば OpenAPI と各言語のモデルが再生成されます。

フロントエンド・BFF は引き続き Zod を直接利用するため、TypeScript 側の型安全性はそのまま。バックエンドが異なる言語でも、OpenAPI を介して契約の整合性が保たれます。

🤖 AI フレンドリー

昨今、GitHub Copilot・Claude Code・OpenAI Codex などの AI コーディングエージェントを使った開発が一般的になってきています。

SwallowKit では、init コマンドでプロジェクトを初期化すると、複数の AI エージェント向け指示ファイルが自動生成されます。

ファイル 対象エージェント 内容
AGENTS.md OpenAI Codex / 汎用エージェント アーキテクチャ仕様・命名規則・CLI スキルなど
CLAUDE.md Claude Code クイックリファレンス + CLI コマンド一覧
.github/copilot-instructions.md GitHub Copilot 主要ルールの要約(Copilot が自動読み込み)

さらに、GitHub Copilot 向けにはレイヤー別のルールファイルも生成されます。

.github/instructions/
├── shared-models.instructions.md      # shared/models/** 向けルール
├── bff-routes.instructions.md         # app/api/** 向けルール
└── azure-functions.instructions.md    # functions/** 向けルール

これにより、AI エージェントがコードを生成・修正する際に、SwallowKit のアーキテクチャと規約(BFF パターン、Zod スキーマ共有、レイヤー分離など)に従ったコードが出力されやすくなります。

🧩 VS Code 拡張機能

SwallowKit のすべての CLI コマンドを VS Code の GUI から操作できる拡張機能をリリースしました。

marketplace.visualstudio.com

コマンドパレットからの操作

Ctrl+Shift+P でコマンドパレットを開き、SwallowKit と入力すると、利用可能なコマンド一覧が表示されます。

コマンド 説明
SwallowKit: Initialize New Project フォルダ選択 → プロジェクト名 → 各種設定をウィザード形式で入力
SwallowKit: Create Model モデル名を入力して作成、作成後自動的にエディタで開く
SwallowKit: Scaffold CRUD from Model モデルファイルを選んで CRUD コードを自動生成
SwallowKit: Scaffold CRUD (API Only) UI コンポーネントなしで API のみ生成
SwallowKit: Start Dev Server 開発サーバーを起動(シードデータの選択も可能)
SwallowKit: Stop Dev Server 開発サーバーを停止
SwallowKit: Create Dev Seed Templates シードデータテンプレートを生成
SwallowKit: Provision Azure Resources Azure リソースをプロビジョニング

右クリックメニュー

エクスプローラーでモデルファイル(shared/models/*.ts)を右クリックすると、コンテキストメニューから直接 Scaffold を実行できます。

また、shared/models/ フォルダを右クリックすれば、新しいモデルの作成も可能です。

開発サーバーステータスバー

VS Code のステータスバーに SwallowKit の開発サーバー状態が表示されます。

  • 停止中: ○ SwallowKit — クリックで起動
  • 実行中: ▶ SwallowKit: Running(警告色の背景) — クリックで停止

ワンクリックで開発サーバーの起動・停止ができるので、ターミナルを開く手間が省けます。

後述のシードデータも選べます。

TypeScript スニペット

モデル定義でよく使うコードパターンをスニペットとして用意しています。

プレフィックス 説明
skmodel SwallowKit Zod モデルのテンプレート
skfield-string min/max 付き string フィールド
skfield-number min 付き number フィールド
skfield-boolean default 付き boolean フィールド
skfield-enum enum フィールド
skfield-array array フィールド
sknested ネストされたスキーマ参照

たとえば skmodel と入力してタブキーを押すと、モデルの基本構造が一発で入力されます。

🌱 開発用シードデータ

ローカル開発時に、Cosmos DB Emulator のデータを定義済みの JSON から自動で差し替える機能を追加しました。

実際に SwallowKit をベースに開発している際、ローカルデバッグ時に使いたい DB のデータパターンをあらかじめ作っておくことで、Cosmos DB Emulator に入っているデータを入れ替えながら見て行く事ができるようになりました。

Zod スキーマで一気通貫の構造にしているからこそ、ここを SwallowKit コマンドでサポートするのも容易でした。

使い方

まず、シードデータのテンプレートを生成します。

npx swallowkit create-dev-seeds local

これで dev-seeds/local/ ディレクトリに、プロジェクトで定義されたモデルに対応する JSON テンプレートが生成されます。

dev-seeds/
  local/
    todo.json       ← shared/models/todo.ts に対応
    category.json   ← shared/models/category.ts に対応

JSON ファイルを編集して、開発用のデータを定義します。

[
  {
    "id": "seed-todo-001",
    "text": "最初の TODO",
    "completed": false,
    "createdAt": "2026-03-22T00:00:00.000Z",
    "updatedAt": "2026-03-22T00:00:00.000Z"
  },
  {
    "id": "seed-todo-002",
    "text": "2番目の TODO",
    "completed": true,
    "createdAt": "2026-03-22T00:00:01.000Z",
    "updatedAt": "2026-03-22T00:00:01.000Z"
  }
]

あとは --seed-env オプションを指定して開発サーバーを起動するだけです。

npx swallowkit dev --seed-env local

起動時に、JSON ファイルに対応するコンテナのデータが自動的にシードデータで置き換えられます。JSON ファイルが存在しないコンテナのデータはそのまま残ります。

複数の環境(localstaging-debug など)を用意しておけば、テストシナリオに応じた切り替えも簡単です。

VS Code 拡張機能を使えば、SwallowKit: Start Dev Server コマンド実行時にシード環境を選択するプロンプトが表示されるので、さらに便利です。

📚 ドキュメントサイト公開

SwallowKit の公式ドキュメントサイトを VitePress で構築し、GitHub Pages で公開しました。英語・日本語の両方に対応しています。

himanago.github.io

見た目はこんな感じ。GitHub Copilot にお願いして作ってもらいました。

以下のガイドを用意しています。

ページ 内容
Scaffold ガイド CRUD コード自動生成の詳細な使い方
Zod スキーマ共有ガイド スキーマ設計のベストプラクティス
CLI リファレンス 全コマンド・オプションの詳細
デプロイガイド Azure へのデプロイ手順

CLI の使い方だけでなく、アーキテクチャの考え方やスキーマ設計のパターンなども含めて整理されているので、ぜひ参考にしてみてください。

まとめ

今回のアップデートで、SwallowKit は CLI ツールとしてだけでなく、VS Code 拡張機能ドキュメントサイトを通じて、より幅広い開発者にとって使いやすいツールキットに近づけたかなと思います。

前回の記事で「今後の展望」として挙げていた項目のうち、多言語バックエンド対応AI フレンドリー機能を実現できました。

振り返ると、新機能としては以下が加わっています。

  • ✅ Azure Functions バックエンドで C#・Python を選択可能に(OpenAPI ブリッジによるスキーマ連携)
  • AI コーディングエージェント向け指示ファイルAGENTS.md 等)の自動生成
  • VS Code 拡張機能 — GUI ウィザード、右クリック Scaffold、ステータスバー、スニペット
  • 開発用シードデータ — Cosmos DB Emulator のデータを JSON で管理・自動投入
  • ドキュメントサイト — 英語/日本語対応の公式ドキュメント

まだ残っている「認証・認可のサポート」や「Next.js 初期化オプション対応」などについても引き続き取り組んでいきたいと思います。

フィードバックや改善のアイデアがありましたら、ぜひ GitHub リポジトリ の Issues や、VS Code 拡張機能の Issues でお知らせください。

関連リンク