Zenn mizchi
zenn.dev/mizchi
ボックスモデルの要約による簡易 VRT を作ってみた - @mizchi/visc
この記事では、ボックスモデルの視覚的な差分を自動的に検出するツール「visc」を紹介しています。このツールは、指定されたURLをクロールし、DOMのBoundingRectを抽出して、視覚的なボックスモデルの差分を計測します。具体的には、ヒューリスティックなアルゴリズムを用いて、視覚的に近い要素を比較し、SVG形式で差分を出力します。開発者は、手動でのE2Eテストを避けつつ、CSSやJSの変更によるレイアウト崩れを迅速に検知できるようになります。CLIを通じて、複数のビューポートでのテストが可能で、初回実行時には自動キャリブレーションが行われます。 • 視覚的なボックスモデルの差分を自動的に検出するツール「visc」を開発した。 • 指定されたURLをクロールし、DOMのBoundingRectを抽出して比較する。 • ヒューリスティックなアルゴリズムを用いて、視覚的に近い要素を検出し、SVG形式で差分を出力する。 • 手動でのE2Eテストを避け、CSSやJSの変更によるレイアウト崩れを迅速に検知できる。 • CLIを通じて、複数のビューポートでのテストが可能で、初回実行時には自動キャリブレーションが行われる。

opencode + kimi-k2 を動かす
この記事では、AI技術を用いたopencodeとkimi-k2の使用について説明しています。著者は、Claude-codeの調子が悪いため、opencodeとkimi-k2を試すことにしました。SWE-bench Verifiedでのスコアは65.8%で、Gemini 2.5 ProやClaude 4 Sonnetと比較しても高い水準です。kimi-k2のAPI利用料は非常に安価で、出力トークン価格は1Mあたり$2.50と設定されています。設定方法についても詳しく説明されており、openrouterのAPIキーを取得し、opencodeをインストールして設定する手順が記載されています。最終的に、ツールも動作するようになり、著者は使用感についても言及しています。 • Claude-codeの調子が悪いため、opencodeとkimi-k2を試した。 • SWE-bench Verifiedでのスコアは65.8%で、Gemini 2.5 ProやClaude 4 Sonnetと比較して高い。 • kimi-k2のAPI利用料は1Mあたり$2.50と非常に安価。 • openrouterのAPIキーを取得し、opencodeをインストールして設定する手順が説明されている。 • 設定後、ツールも動作するようになったが、日本語入力に問題がある。

モジュールを外から見た振る舞いだけAIレビューさせる smoke-review
この記事では、AIを活用したコードレビュー手法「smoke-review」について説明しています。具体的には、モジュールの外部からの振る舞いをAIにレビューさせることで、実装者バイアスを排除し、効率的なレビューを目指しています。Claude Codeにおいて、5時間のレートリミットが導入されることを受けて、コンテキスト消費を抑えるためのテクニックが実装されました。具体的には、公開APIとテストケースをAIにレビューさせるための設定が行われ、レビュータスクを並列で処理する方法が提案されています。また、型定義を利用してライブラリの使い方を確認するアプローチも紹介されています。 • AIを用いたコードレビュー手法「smoke-review」の導入 • 実装者バイアスを排除するためのアプローチ • 公開APIとテストケースをAIにレビューさせる設定 • レビュータスクを並列で処理する方法の提案 • 型定義を利用したライブラリの使い方確認の重要性

discord から claude-code を操作する(一時的な)サーバーを建てる
この記事では、DiscordからClaude Codeを操作するための一時的なサーバーを構築する方法について説明しています。基本的には、ホストマシンでサーバーを起動し、出先で簡単に操作できることを想定しています。最初にDiscordのトークン、サーバーID、チャンネルIDを取得する必要があります。サーバーが起動すると、Discord BOTがスレッドを作成し、ユーザーの入力を監視します。ユーザーの入力はclaude-code SDKを通じてClaude Codeに送信され、その結果がDiscordに出力されます。注意点として、個人用のDiscordチャンネルでの使用を推奨しており、公開チャンネルでの使用は避けるべきです。実装はDenoスクリプトに含まれており、改造も可能です。 • DiscordからClaude Codeを操作するための一時的なサーバーを構築する方法を説明 • Discordのトークン、サーバーID、チャンネルIDを取得する必要がある • サーバー起動後、Discord BOTがスレッドを作成し、ユーザー入力を監視 • ユーザー入力はclaude-code SDKを通じてClaude Codeに送信され、結果がDiscordに出力される • 個人用のDiscordチャンネルでの使用を推奨し、公開チャンネルでの使用は避けるべき • 実装はDenoスクリプトに含まれており、改造が可能

AIコーディングハンズオンの講師をやりました(株式会社DeNA様の事例)
この記事では、株式会社DeNAでのAIコーディングの社内勉強会の講師を務めた経験について述べています。著者は、AIを活用したプログラミングの講師として、受講者に伝えたいことや講師としての心構えをまとめています。事前準備として、作例のリポジトリを用意しつつも、受講者がゼロからプロンプティングする体験を重視しています。また、当日の進行方法や教材の準備、受講者の期待値コントロールについても触れています。特に、AIの環境構築の難しさや、実際のデモを通じて受講者に体験してもらうことの重要性が強調されています。最後に、勉強会の規模や課題についても言及し、今後の依頼については相談が必要であると述べています。 • AIコーディングの講師としての経験を共有 • 受講者にゼロからプロンプティングする体験を重視 • 事前準備として作例のリポジトリを用意 • 当日の進行方法や教材の準備についての考慮 • AIの環境構築の難しさを体感させる • 受講者の期待値コントロールの重要性 • 勉強会の規模や課題についての言及

Unison 言語から、「次」の言語を考察したい
この記事では、Unison言語についての学習ログが記録されています。Unisonは、従来のプログラミング言語とは異なるワークフローを要求し、純粋関数型とエフェクトシステムを持つ新しいプログラミング言語です。Unisonの特徴として、すべての関数が自己参照ハッシュで表現され、Gitに相当する機能が組み込まれています。Unison Code Manager(UCM)を使用することで、コードの変更を管理し、型チェックとバージョン管理が統合されています。インストール方法や基本的な使い方も説明されており、VSCode拡張を利用してプロジェクトを作成し、簡単なコードを実行する手順が示されています。 • Unisonは従来のプログラミング言語とは異なるワークフローを要求する。 • すべての関数は自己参照ハッシュで表現され、Gitに相当する機能が組み込まれている。 • Unison Code Manager(UCM)を使用してコードの変更を管理し、型チェックとバージョン管理が統合されている。 • インストールはHomebrewを使用するのが簡単で、VSCode拡張も利用可能。 • Unisonでは、純粋関数のテスト結果がキャッシュされる。

速習 Claude Code
この記事は、Claude Code AIの速習ガイドであり、主にインストール方法や基本的な使い方、セッション管理、コマンドの実行方法について説明しています。まず、npmを使用してClaude Codeをインストールし、簡単なコマンドでAIと対話を開始できます。セッションの管理方法として、直近のセッションに戻る方法や、会話履歴をリセットするコマンドが紹介されています。また、セキュリティ設定やカスタムコマンドの作成方法も触れられており、ユーザーが自分のニーズに合わせてAIの動作を調整できるようになっています。最後に、レートリミットについての注意点も記載されています。 • Claude Codeのインストール方法はnpmを使用する • セッション管理の基本的なコマンドが紹介されている • セキュリティ設定は.jsonファイルで行う • カスタムコマンドを作成することで機能を拡張できる • レートリミットに関する注意点が記載されている

lsmcp - 汎用的な LSP の MCP サーバーを作った
この記事では、汎用的なLSP(Language Server Protocol)を使用したMCP(Multi-Channel Protocol)サーバー「lsmcp」の開発について説明しています。前回はTypeScriptに特化したMCPサーバーを作成しましたが、今回はRust、Python、Goなど任意の言語に対応できるように一般化しました。LSPプロセスを起動することで、リネームやオートインポートなどの操作が可能になります。具体的な使用方法として、各言語のサーバーをインストールし、プロジェクト固有の設定を行うことが推奨されています。主な機能には、定義へのジャンプ、参照検索、シンボルのリネーム、コードフォーマットなどが含まれます。今後の展望として、AIがコードベースを理解し、効率的にタスクを実行できるようにするための試行錯誤が必要であることが述べられています。 • 汎用的なLSPを使用したMCPサーバー「lsmcp」を開発した。 • Rust、Python、Goなど任意の言語に対応可能。 • LSPプロセスを起動することで、リネームやオートインポートなどの操作が可能。 • 各言語のサーバーをインストールし、プロジェクト固有の設定を行うことが推奨される。 • 主な機能には、定義へのジャンプ、参照検索、シンボルのリネーム、コードフォーマットなどがある。 • AIがコードベースを理解し、効率的にタスクを実行できるようにするための試行錯誤が必要。

React Ink によるリッチ CLI (ClaudeCodeの裏側のアレ)
この記事では、React Inkを使用してリッチなCLI(コマンドラインインターフェース)を構築する方法について説明しています。React Inkは、Reactのカスタムレンダラーを利用してCLIを作成するためのライブラリで、内部でYogaというレイアウトエンジンを使用しています。これにより、ReactやReact Nativeの知識を活かしてCLIのUIを構築できます。具体的な実装例として、ターミナルで動作するゲームが紹介されており、自動進行のバトルシステムやインベントリ管理などの機能が実装されています。また、React Inkは多くの有名なライブラリでも使用されており、CLIの開発がAIとの相性が良い理由についても言及されています。 • React InkはCLIを構築するためのReactのカスタムレンダラーである。 • Yogaレイアウトエンジンを使用しており、React Nativeと同様のレイアウト計算モデルを持つ。 • ターミナルで動作するゲームの実装例があり、自動進行のバトルシステムやインベントリ管理機能が含まれている。 • Reactの知識を活かしてCLIのアスキーアートUIを作成できる。 • CLIはAIとの相性が良く、テキストベースのインターフェースは自動化が容易である。

gemini-cli の google_web_search が最高
この記事では、gemini-cliのgoogle_web_search機能について説明しています。gemini-cliは、Googleのアカウントに接続することで、Web検索を行うことができるツールです。特に、gemini-cliは、claude-codeの検索機能が貧弱であることを補うために設計されており、使いやすいGoogleの検索結果を提供します。初期化フローやセットアップ方法も紹介されており、npmを使用してインストールする手順が示されています。また、Gemini APIの料金体系についても触れられており、入力トークン数や出力トークン数に基づく従量課金制が説明されています。 • gemini-cliはGoogleのアカウントに接続してWeb検索を行うツールである。 • gemini-cliのgoogle_web_search機能は、claude-codeの検索機能を補完する。 • セットアップはnpmを使用して行い、初期化フローが提供されている。 • Gemini APIの料金は、入力トークン数、出力トークン数、キャッシュされたトークン数に基づく従量課金制である。 • Googleの検索結果を利用できるため、使いやすさが向上している。

AI による自然言語アサーション
この記事では、AI Claude Code SDKを使用して、TypeScriptやPythonコードから自然言語によるアサーションを行う方法について説明しています。具体的には、テスト中にAIを利用して条件を満たすかどうかを確認するアイデアが紹介されています。コード例として、`assertAI`関数が示されており、特定のプロンプトに基づいてAIが応答する仕組みが解説されています。この方法では、AIが条件を満たす場合に特定のマーカーを返すことで、テストが通るかどうかを判断します。しかし、実際のテスト時間は8.8秒かかり、従来の方法に比べて非常に遅く、実用性に疑問が残ると指摘されています。 • AI Claude Code SDKを使用して自然言語によるアサーションを行う方法を提案 • `assertAI`関数を用いて、特定のプロンプトに基づくAIの応答を確認する • AIが条件を満たす場合に特定のマーカーを返す仕組み • テストの実行時間が8.8秒かかり、従来の方法に比べて遅い • 実用性に疑問が残るため、AIによるルールベースの書き換えが必要とされる

ts-similarity でAIと人間が書き散らした重複コードを見つける
この記事では、Rustで実装されたts-similarityというツールを紹介しています。このツールは、TypeScriptで書かれたコードの中からAIと人間が書いた重複コードを検出するためのもので、AST(抽象構文木)を基にした構造比較を行います。主に関数の比較に焦点を当てており、ブルームフィルタやマルチスレッド処理を用いて効率的に重複を検出します。実際の使用例として、複数のファイルを分析し、重複する関数ペアを特定する様子が示されています。また、今後の機能追加として、型定義リテラルの重複検知やコード品質の測定などが挙げられています。 • AIと人間が書いた重複コードを検出するツールの開発 • ASTを基にした構造比較で関数の類似度を検出 • ブルームフィルタによる事前フィルタリングで効率化 • マルチスレッド処理を導入し、処理速度を向上 • 今後の機能追加として型定義リテラルの重複検知やコード品質の測定を計画

TypeScript 環境構築ガイドラインを書いてLLMに再現させる
この記事では、TypeScriptの環境構築ガイドラインを作成し、LLM(Claude)に再現させる方法について説明しています。TypeScriptのツールチェインは多様で、プロジェクト設定が難しいため、再現性のある手順を作成しました。具体的には、プロジェクトの要件をLLMに伝え、適切な設定を追加させる方法を示しています。手順書には、不要なドキュメントを削除する指示も含まれており、AIが混乱しないよう配慮されています。また、各ツールの選択理由や設計思想も明確に記述されています。今後は、LLMが進化することで、ガイドライン自体も自動更新される可能性があると述べています。 • TypeScriptプロジェクトの環境構築が難しい問題を解決するためのガイドラインを作成した。 • LLMにプロジェクトの要件を伝え、適切な設定を追加させる手法を提案している。 • 手順書には不要なドキュメントを削除する指示が含まれており、AIの混乱を防ぐ工夫がされている。 • 各ツールの選択理由や設計思想を明確に記述し、後からの拡張を重視している。 • 今後、LLMの進化によりガイドラインが自動更新される可能性がある。

Claude Code による技術的特異点を見届けろ
この記事では、AI Claude Codeの進化とその影響について論じられています。著者は、Claude Codeが自己改善を通じてソフトウェア開発における知識爆発を引き起こす可能性があると述べています。特に、Claude Codeは自身の開発の90%を自ら行っており、これによりエージェントとモデルの相互作用が進化しています。著者は、AIの自己改善が技術的特異点に近づく可能性があると考え、Claude Codeの機能追加の速さや、ユーザーからのフィードバックを自動的に取り入れる仕組みについても触れています。最終的に、Claude CodeがAI2027で予言されている自己改善AIの実現に寄与する可能性があると結論づけています。 • Claude Codeは自己改善を通じてソフトウェア開発における知識爆発を引き起こす可能性がある。 • Claude Codeの90%は自ら開発されており、エージェントとモデルの相互作用が進化している。 • AIの自己改善が技術的特異点に近づく可能性がある。 • Claude Codeはユーザーからのフィードバックを自動的に取り入れる仕組みを持っている。 • Claude Codeの機能追加の速さが注目されている。

Claude Code 版 Orchestaror で複雑なタスクをステップ実行する
この記事では、Claude Codeを用いたOrchestratorの実装について説明しています。Roo OrchestratorのClaude版を作成し、複雑なタスクを段階的に分解して実行する方法を提案しています。具体的には、タスクを初期分析、ステップ計画、逐次実行、ステップレビュー、進行的集約の5つのプロセスに分け、各ステップで並列にサブタスクを実行します。この手法により、タスクのコストを削減し、効率的に処理することが可能です。また、各サブタスクから得られた結果を次のステップに活用することで、逐次的に理解を深めることができます。 • Roo OrchestratorのClaude版を作成し、複雑なタスクを効率的に分解・実行する手法を提案 • タスクを初期分析、ステップ計画、逐次実行、ステップレビュー、進行的集約の5つのプロセスに分ける • 各ステップで並列にサブタスクを実行し、タスクのコストを削減 • サブタスクから得られた結果を次のステップに活用し、逐次的に理解を深める • タスクの依存関係を明確にし、実行順序を計画することが重要

typescript-mcp で AI に LSP のリファクタリング機能を与える
この記事では、TypeScript用のModel Context Protocol(MCP)を使用して、AIにLSP(Language Server Protocol)のリファクタリング機能を提供する方法について説明しています。まず、npmを使用して必要なパッケージをインストールし、MCPサーバーを立ち上げる手順が示されています。MCPサーバーは、ファイルの移動やシンボルのリネーム、参照の検索など、LSPの機能を提供します。具体的なコマンド例も挙げられ、TypeScriptプロジェクトの設定方法やMCPの使用方法が詳述されています。また、AIがコードを生成する際の課題や、MCPを使用することで得られる安全なリファクタリングの利点についても触れられています。 • TypeScript用のMCPを使用してAIにLSPのリファクタリング機能を提供する方法を解説 • npmで必要なパッケージをインストールし、MCPサーバーを立ち上げる手順を示す • MCPサーバーはファイル移動、シンボルリネーム、参照検索などのLSP機能を提供 • 具体的なコマンド例を挙げてTypeScriptプロジェクトの設定方法を説明 • AIによるコード生成の課題とMCPを使用することで得られる安全なリファクタリングの利点に言及

claude code でローカルなMCPサーバーを叩けるようにする
この記事では、Claude Codeを使用してローカルなMCP(Model Context Protocol)サーバーに接続する方法について説明しています。具体的には、`claude --mcp-config=...`コマンドを使用してローカルMCPサーバーを叩く手順が示されています。プロジェクトルートにある`.mcp.json`ファイルが自動的に認識され、MCPサーバーの実装例として、指定したURLから本文を抽出しMarkdown形式で返す機能が紹介されています。また、Deno環境でのMCPサーバーの起動方法や、Node互換モードでの実装についても触れられています。 • ローカルMCPサーバーに接続するための具体的なコマンドと設定方法が示されている。 • MCPサーバーの実装例として、URLから本文を抽出しMarkdown形式で返す機能が提供されている。 • Deno環境でのMCPサーバーの起動方法が説明されている。 • Node環境でも同様の実装が可能であることが示されている。 • 標準入出力でのサーバー接続方法が具体的に記載されている。

TS で Effect System を作ってみた
この記事では、TypeScriptを用いてEffect Systemを実装する方法について説明しています。Effect Systemは、プログラムの実行をAsyncGeneratorまたはGeneratorのイテレータで表現し、エフェクトの宣言とそれに対応するハンドラを注入する仕組みを持っています。具体的には、エフェクトを定義し、プログラム内でそれを使用することで、型による副作用の記述を強制し、実行時にハンドラの同期/非同期を決定することができます。また、プログラムを分割してテストする際の利点や、内部トレーサビリティを持つテストの書き方についても触れています。 • TypeScriptでEffect Systemを実装する方法を解説 • プログラムの実行をAsyncGeneratorまたはGeneratorで表現 • エフェクトの宣言とハンドラの注入により型による副作用を強制 • 実行時にハンドラの同期/非同期を決定可能 • プログラムを分割して部分的にテストできる利点 • 内部トレーサビリティを持つテストが可能

TypeScript でエフェクトシステムを再現したい
この記事では、TypeScriptを用いてエフェクトシステムを再現する方法について解説しています。著者は、TypeScriptの言語システムが副作用を持つ関数の型を表現するのに限界があると感じ、Async Generatorを利用して副作用の型を宣言する手法を試みました。具体的には、関数に副作用のシグネチャを付与し、代数的データ型を用いて実装と副作用を分離することに重点を置いています。最終的に、Generatorを使用して副作用を持つプログラムを構築し、共通のハンドラーを通じて処理を行う方法を示しています。記事では、具体的なコード例を交えながら、Generatorの使い方やハンドラーの定義方法についても詳しく説明しています。 • TypeScriptのエフェクトシステムの再現に関する技術的な解説 • 副作用を持つ関数の型を表現するためのAsync Generatorの利用 • 代数的データ型を用いた実装と副作用の分離 • Generatorを使用した副作用を持つプログラムの構築方法 • 共通のハンドラーを通じて処理を行う手法の紹介

RooCode に自動でリファクタさせるオーケストレーター用プロンプト
この記事では、RooCodeを用いたオーケストレーター用プロンプトの自動リファクタリングについて説明しています。特に、Deno環境でClaude 4を活用し、リファクタリングのプロセスを改善するための新しいプロンプトが導入されました。リポジトリのリンクが提供されており、特に.rules.mdと01_workflows.mdのファイルが重要です。リファクタリングの際には、ハイラムの法則や単一責任原則を考慮し、ESLintの積極的なルールを適用しています。また、タスク分析やサブタスクの分割を行うことでコスト削減が実現され、特化したプロンプトが用意されています。新機能追加やAPI設計改善に焦点を当てたワークフローも定義されていますが、旧APIとの互換性に関する課題も指摘されています。 • RooCodeを用いたオーケストレーター用プロンプトの自動リファクタリングを実施 • Deno環境でClaude 4を活用し、リファクタリングプロセスを改善 • ハイラムの法則や単一責任原則を考慮したリファクタリング • ESLintの積極的なルールを適用し、デッドコードの削除を実現 • タスク分析やサブタスク分割によりコスト削減を達成 • 特化したプロンプトを用意し、新機能追加やAPI設計改善に焦点を当てたワークフローを定義 • 旧APIとの互換性に関する課題が存在

Deno で eslint を動かす
この記事では、Deno環境でESLintを動かす方法について説明しています。Denoの標準のlint機能ではルールが不足しているため、ESLintを使用することにしました。具体的には、DenoでESLintを実行するためのコマンドや設定ファイルの構成、Node互換モードでの依存関係の追加方法、カスタムルールの作成方法などが詳述されています。また、型チェックはDeno LSPがないため不整合が生じることが指摘されています。最終的に、ESLintを使って構文チェックを行うことができることが確認されました。 • Denoの標準lint機能ではルールが不足しているため、ESLintを使用する必要がある。 • DenoでESLintを動かすためのコマンドは「deno run -A npm:eslint」である。 • 型チェックはDeno LSPがないため、tseslint.configs.strictTypeCheckedは動作しない。 • Node互換モードで依存関係を追加する手順が示されている。 • カスタムルール「no-class」を作成し、クラスの使用を禁止することができる。 • ESLintを使って構文チェックを行うことができ、警告やエラーが表示される。 • 型の解決は自分で行う必要があり、deno-graphやLSPを利用することが可能。

tsgo をビルドしてLSPから会話する
この記事では、TypeScriptのGo移植実装であるtsgoについて説明しています。tsgoの主な目的は、コンパイラの並列化であり、特にTypeCheckerの並列化に焦点を当てています。初期設定では、TypeCheckerを4つ作成し、ソースコードをシャーディングして解析結果を共有メモリに保存します。現在の進捗として、parserとscannerの手作業での移植が完了し、ASTの変換が進められています。また、LSPの実装に関しては、LanguageServiceを移植せず、IPCによるAPI層を構築中です。zodライブラリを使用した型推論の例も示されており、tsgoコマンドを使用してTypeScriptの型チェックを行う方法が説明されています。 • tsgoの主な目的はコンパイラの並列化で、特にTypeCheckerの並列化に焦点を当てている。 • 初期設定ではTypeCheckerを4つ作成し、ソースコードをシャーディングして解析結果を共有メモリに保存する。 • parserとscannerの手作業での移植が完了し、ASTの変換が進められている。 • LSPの実装ではLanguageServiceを移植せず、IPCによるAPI層を構築中である。 • zodライブラリを使用した型推論の例が示されており、tsgoコマンドを使用してTypeScriptの型チェックを行う方法が説明されている。

TS特化Clineプログラミング(テキスト版)
この記事は、TypeScriptに特化したClineプログラミングに関する内容を扱っており、特にプロンプトの作成に関するベストプラクティスを紹介しています。具体的には、効果的なプロンプトの書き方や、テスト駆動開発(TDD)の重要性、自己修復能力を持つコードの生成方法について述べています。また、ファイル配置規則やドメイン型の集約方法、関数型ドメインモデリングの実践例も示されています。さらに、テストカバレッジの向上を目指すための自動生成テストの手法や、ライブラリの置き換えに関する具体的なプロンプトの例も提供されています。全体として、TypeScriptを用いたプログラミングにおける効率的な手法とその実装方法が詳述されています。 • TypeScriptに特化したプロンプト作成のベストプラクティスを紹介 • テスト駆動開発(TDD)の重要性を強調 • 自己修復能力を持つコード生成の方法を提案 • ファイル配置規則やドメイン型の集約方法を示す • テストカバレッジ向上のための自動生成テスト手法を紹介 • ライブラリの置き換えに関する具体的なプロンプトの例を提供

気合の脱 create-react-app からの、AIによるフロントエンド改修の自動化 (株式会社イルシル様)

GiHhub+Zenn 連携で vscode markdown で画像を Ctrl-V したい

Moonbit の宣言的UIライブラリ Rabbit-TEA を試してみる

遂に Cloudflare + Next.js(OpenNext) + Prisma 6.7.0(No Rust) が動く時代が来た

deno lint plugin で例外処理に関するルールを作った

仕事で使うための Cloudflare Workers (WIP)
前半は手元で動かしながら要点を掴み、後半は概念を掴んで何ができるかを知ることを目的とします。

仕事で使うための Cloudflare Workers 入門 Day 5 - ServiceBinding

仕事で使うための Cloudflare Workers 入門 Day 4 - R2/KV/D1/Vectorize
