0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Codeがやたら賢かった件 — LLM不要で自然言語を理解するアプリが生まれた話

0
Last updated at Posted at 2026-02-14

はじめに

この記事は2026年2月時点の情報に基づいている。

Claude Codeで最初に作ったのは、ゲームじゃなかった。スケジュールアプリだった。

名前は「ゆるスケ」。LINEみたいなチャット画面に予定を打ち込むと、時系列順に整理して表示してくれるだけのアプリ。テストプレイのつもりで作った。

驚いたのは、ユーザーが自然言語で入力した予定をアプリが理解する部分だ。当然LLMのAPIを叩くんだろうと思っていた。OpenAIなりAnthropicなりのAPIキーが必要になるだろうと。
:::details 初心者向け: LLM APIとは
LLM(大規模言語モデル)はChatGPTやClaudeの頭脳にあたる部分。APIはその頭脳を外部から使うための窓口。レストランに例えると、LLMがシェフ、APIが出前サービスのようなもの。自分のアプリからAPIを通じて「この文章を理解して」と頼むと、シェフ(LLM)が解析結果を返してくれる。ただし使うたびに料金がかかる。この記事のアプリは「シェフを雇わなくても、マニュアル(パターンマッチング)だけで十分だった」という話。
:::

ところがClaude Codeが生成したコードを見ると、LLM APIは一切使っていなかった。パターンマッチングだけで自然言語を処理していた。

これが非常に面白かった。

やったこと

Claude Codeに伝えたのはこれだけだ。

LINEみたいなチャット方式で完結するスケジュールアプリを作りたい

するとClaude Codeから質問が返ってきた。「どんな感じにする?」と。画面のレイアウト、入力方式、表示形式。聞かれたことに答えていったら、どんどん形になっていった。

途中で「ここ気に食わない」と言えば直った。技術的な指示は一切していない。自然言語でフィードバックするだけで、ほぼ理想通りのアプリになった。

ターミナルでのやり取りはこんな雰囲気だ。

$ claude
> LINEみたいなチャット方式で完結するスケジュールアプリを作りたい

Claude: どんな機能が欲しいですか?例えば...
  - 予定の追加・削除
  - 日付の自動認識
  - 時系列での表示

> 全部欲しい。あと見た目はLINEっぽくしてほしい

Claude: index.html を作成します...
  (PWA対応のチャットUI、入力パーサー、予定管理ロジックを一括生成)

> いい感じ。でもここ気に食わない、日付が今日だけ太字になってない

Claude: 修正します...

自分が書いたコードは0行。全部Claude Codeが書いた。

LLMなしで自然言語を処理する仕組み

ここが一番面白いところだ。

「明日の14時に歯医者」と入力されたら、アプリはこれを予定として認識しなきゃいけない。普通に考えたらLLMに投げる案件だろう。

Claude Codeが採ったアプローチは違った。正規表現とパターンマッチングの組み合わせだった。
:::details 初心者向け: 正規表現・パターンマッチングとは
正規表現は「テキストの中から特定のパターンを見つけ出す検索ルール」のこと。例えば「数字が2つ並んで、その後に『月』という文字が来る」というパターンを定義すると、「3月」「12月」を自動で見つけられる。パターンマッチングは、この仕組みを使って「このテキストはどのパターンに当てはまるか」を判定する処理のこと。LLMのように文章の意味を理解するのではなく、文字の並び方のルールで機械的に判別する。
:::

// 日付パターンの認識(Claude Codeが生成したコードのイメージ)
const datePatterns = [
  /(\d{1,2})(\d{1,2})日/,      // 「3月15日」
  /(今日|明日|明後日|来週)/,        // 相対日付
  /(\d{1,2})[\/\-](\d{1,2})/,    // 「3/15」「3-15」
];

// 時刻パターンの認識
const timePatterns = [
  /(\d{1,2})(\d{1,2})??/,    // 「14時」「14時30分」
  /(\d{1,2}):(\d{2})/,           // 「14:30」
  /(朝|昼|夕方|夜|午前|午後)/,     // あいまい時刻
];

日本語の日付・時刻表現をパターンとして定義し、マッチした部分を抽出する。残った部分が予定の内容になる。「明日の14時に歯医者」なら、「明日」「14時」を抜き取って、残りの「歯医者」がイベント名。

LLMを使うまでもなかった。日常的なスケジュール入力のバリエーションは、実はそこまで多くない。パターンで十分カバーできた。

Claude Codeは「LLMが必要」とは一度も言わなかった。 最適な手段を自分で判断して、パターンマッチングを選んだ。APIキーの設定もサーバーも不要。ブラウザだけで完結するPWAアプリとして出来上がった。
:::details 初心者向け: PWAとは
PWA(Progressive Web App)は、Webサイトなのにスマホアプリのように使える技術のこと。アプリストアからインストールしなくても、ブラウザで開いてホーム画面に追加するだけで、普通のアプリと同じように使える。オフラインでも動作する場合が多く、サーバー代もかからないのが利点。
:::

なぜこれが重要か

2つの意味で重要だと思った。

1つ目。AIコーディングツールは「言われたことをやる」だけじゃない。

「自然言語を理解するアプリを作りたい」と言ったとき、安易にLLM APIを組み込む実装もあり得た。でもClaude Codeはパターンマッチングで十分だと判断した。ランニングコストゼロ、外部依存ゼロ、オフライン動作可能。技術選定まで含めて最適解を出してきた。

2つ目。非エンジニアでも「技術的に正しい判断」の恩恵を受けられる。

自分はパターンマッチングとLLM APIの使い分けなんて知らなかった。でもClaude Codeがその判断をしてくれたおかげで、シンプルで軽いアプリが出来上がった。技術的な知識がなくても、AIが補完してくれる。

その後どうなったか

ゆるスケの成功体験に味をしめて、本命のゲーム開発に進んだ。

結果は散々だった。3回作り直した。ゾンビサバイバル系を作ろうとして失敗。別のアプローチで失敗。また失敗。

4回目にしてようやく「DUNG: Azure Flame」というローグライクRPGが完成した。Python + Pygameで15,000行超。itch.ioで$2で販売中

最初の成功がスケジュールアプリだったからこそ、ゲームで3回コケても「Claude Codeならいける」という確信があった。ゆるスケがなかったら途中で諦めていたかもしれない。

ちなみに、この開発過程で学んだ「AIが同じミスを繰り返す問題」の解決策は、shared-brainというCLIツール(pip install shared-brain)にまとめた。教訓をYAMLで管理して、Claude CodeのHook機能で自動ブロックする仕組みだ。

まとめ

  • Claude Codeに「LINEみたいなスケジュールアプリ作りたい」と言ったら、本当にできた
  • 自然言語理解にLLM APIが必要だと思い込んでいたが、パターンマッチングで十分だった
  • AIコーディングツールは技術選定まで含めて判断してくれる。非エンジニアにとってはここが一番ありがたい
  • 最初の成功体験が小さくても、次に進む燃料になる。ゆるスケがなければAzure Flameは生まれなかった

「自然言語を理解するアプリにはLLMが必要」。そう思い込んでいた自分の想定を、Claude Codeがあっさり覆した。賢いのは使い手じゃない。道具のほうだった。


関連ツール

  • cc-safe-setup — LLM活用をより安全にするフック集(本番運用10種 + テンプレート5種)。

「AIに任せて大丈夫なのか」という不安を持ったまま800時間使い続けた記録は非エンジニアがClaude Codeを800時間走らせた——失敗と学びの全記録(¥800・第2章まで無料)に書いた。

Claude Codeの能力をもっと引き出したい方へ
Anthropic公式ガイドにない事故防止——Claude Code 800+時間で19点→85点にした全記録では、CLAUDE.mdの設計、Skills、Hooksの実装パターンまで体系的に解説しています。

関連記事


📖 トークン消費に困っているならClaude Codeのトークン消費を半分にする——800時間の運用データから見つけた実践テクニック(¥2,500・はじめに+第1章 無料)


⚠ Opus 4.7緊急情報(2026年4月)
auto modeの安全分類器がOpus 4.6にハードコードされており、Opus 4.7では正常に機能しない(#49618)。hookはモデル非依存で動作するため、分類器の故障に関係なく防御が機能する。→ Opus 4.7 Survival Guide / Safety Scanner

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?