← 一覧に戻る

📖 用語集

plan-viewerに登場する技術用語の解説
アノテーション Annotation
ひとことで
テキストに注釈・メモを付けること
もう少し詳しく
紙の本に蛍光ペンで線を引いて余白にメモを書くのと同じこと。デジタルでは、テキストをハイライト(色付け)してコメントを紐づける。Webブラウザの標準機能(Selection API)を使って、選択したテキストの位置を取得し、マーカーを付けている。
このプロジェクトでは
plan-viewerの「質問モード」のこと。読んでいる文章をハイライトして質問を付けると、サーバーに保存される。次のClaude Codeセッションで回答を受け取れる。
API Application Programming Interface
ひとことで
プログラム同士が会話するための窓口
もう少し詳しく
あるプログラムが別のプログラムの機能を使いたいとき、直接中身を触るのではなく、決められた形式でリクエストを送る仕組み。レストランの「メニュー」のようなもので、メニューに載っている注文だけができる。
agent-memory エージェントメモリ
ひとことで
AIが学んだ情報を保存する仕組み
もう少し詳しく
Claude Codeが会話を通じて知ったこと(ユーザーの好み、プロジェクトの特性、過去の判断など)をファイルに保存し、次のセッションでも思い出せるようにする仕組み。人間でいう「メモを取る」行為をAIが自動で行う。
このプロジェクトでは
~/.claude/skills/agent-memory/memories/ 以下にMarkdownファイルとして保存される。「やりかけタスク一覧」「ユーザーの性格」などのメモリがある。
バーコード Barcode
ひとことで
商品を識別する縞模様の番号
もう少し詳しく
商品パッケージに印刷されている白黒の縞模様(またはQRコードのような四角い模様)。この中に13桁の数字が埋め込まれていて、世界中で「この番号はこの商品」と決まっている。スマホのカメラで読み取ると、その番号から商品情報を検索できる。
このプロジェクトでは
メシテロでバーコードをスキャンすると、食品の栄養情報が自動入力される。Open Food Factsのデータにはバーコード番号が含まれているため、事前にデータを入れておけばオフラインでも商品を特定できる。
CORS Cross-Origin Resource Sharing
ひとことで
異なるサイト間でデータをやりとりする許可の仕組み
もう少し詳しく
Webブラウザには「別のサイトのデータを勝手に取得してはいけない」というセキュリティルール(同一オリジンポリシー)がある。CORSはこのルールに「でもこのサイトからは許可するよ」という例外を設定する仕組み。サーバー側が「このドメインからのアクセスはOK」と応答ヘッダーで宣言する。CORSに対応していないAPIは、ブラウザから直接呼び出せないため、中継サーバー(プロキシ)を挟む必要がある。
このプロジェクトでは
国交省の不動産APIがCORS非対応のため、Cloudflare Workersで中継サーバーを作り、CORSヘッダーを付与してブラウザからアクセスできるようにしている。一方、国土地理院のAPIはCORS対応済みなので直接呼び出せる。
Codex OpenAI Codex CLI
ひとことで
OpenAIのAIコーディングツール(GPT-5.3搭載)
もう少し詳しく
Claude Codeと同じジャンルの、OpenAI社が提供するAIコーディングアシスタント。コマンドラインで動作し、コードレビューや生成ができる。Claude Codeとは別のAI(GPT-5.3)を使っているので、異なる視点からの意見が得られる。
このプロジェクトでは
重要な設計判断のセカンドオピニオンや、コンテンツのファクトチェックに使っている。「慎重な性格」なので、ミスリードの検出に向いている。
HuggingFace ハギングフェイス
ひとことで
AIモデルの共有プラットフォーム
もう少し詳しく
「GitHubのAIモデル版」。世界中のAI研究者やエンジニアが作ったモデル(音声認識、画像生成、翻訳など)を公開・共有する場所。無料アカウントを作れば、多くのモデルをダウンロードして自分のパソコンで動かせる。アクセストークン(外部ツールからログインするための鍵)を発行して、プログラムからモデルをダウンロードする。
このプロジェクトでは
WhisperXの話者分離機能が、pyannoteというモデルをHuggingFaceからダウンロードするためにアクセストークンが必要。無料で取得できる。
JSON JavaScript Object Notation
ひとことで
データの受け渡しに使う書式
もう少し詳しく
プログラム同士がデータをやり取りするための「共通語」。人間にも読みやすい形式で、「名前: ごはん、カロリー: 234」のように項目名と値のペアで情報を表現する。ファイルの拡張子は .json。WebのAPIではほぼ標準的に使われている。
このプロジェクトでは
食品データはJSON形式のファイル(seed-foods.json, mext-foods.json, off-japan-foods.json)で保存され、アプリ起動時にデータベースに読み込まれる。
KISS Keep It Simple, Stupid
ひとことで
「とにかくシンプルに」という設計原則
もう少し詳しく
複雑なものより単純なもののほうが壊れにくく、理解しやすく、メンテナンスしやすい。「凝った仕組みを作りたい欲」を抑えて、最もシンプルに問題を解決する方法を選ぶこと。
keyset pagination キーセットページネーション
ひとことで
大量データを効率よくページ送りする仕組み
もう少し詳しく
100件のスレッドを20件ずつ表示するとき、「前のページの最後の項目の位置」を覚えておいて、そこから次の20件を取得する方法。ページ番号方式(「3ページ目」)と違い、途中でデータが増減しても表示がずれない。
このプロジェクトでは
スレッド一覧やメッセージ検索でページ送りに使う。「最終更新日 + スレッドID」の2つを組み合わせたカーソルで、同じ秒に更新されたデータがあっても正確にページ送りできる。
MCP Model Context Protocol
ひとことで
AIツールが外部サービスと連携するための共通規格
もう少し詳しく
Claude CodeなどのAIツールが、外部のサービス(チャットボット、データベース、地図など)の機能を使うための「共通言語」。レストランのメニューのように、「どんな機能があるか」「どう呼び出すか」を決めた規格。ツール(機能を呼び出す)とリソース(データを読み取る)の2種類がある。
このプロジェクトでは
chibabot がMCPサーバーとして機能し、Claude Codeから「チバに質問する」「スレッドを作る」「会話を検索する」などの操作ができる。現在は1つのツール(単発質問)だけだが、拡張計画で8ツール+3リソースに増やす。
マニフェスト Manifest
ひとことで
パッケージの「名刺」となる設定ファイル
もう少し詳しく
プラグインやアプリの名前、バージョン、中に何が入っているかを一覧にしたファイル。荷物の「梱包明細書」のように、中身を開けなくても何が含まれているか分かる。JSON形式で書かれることが多い。
このプロジェクトでは
plugin.json がプラグインのマニフェスト。Claude Code がこのファイルを読んで、スキル・フック・コマンドをどこから読み込むか判断する。
OCR Optical Character Recognition
ひとことで
画像から文字を読み取る技術
もう少し詳しく
写真やスキャンした画像の中に写っている文字を、コンピュータが認識してテキストデータに変換する技術。スマホのカメラで名刺を撮ると連絡先が自動入力されるのもOCRの一種。最近はAI(Gemini Visionなど)を使って、複雑なレイアウトの文字も高精度で読み取れるようになった。
このプロジェクトでは
メシテロで、食品の栄養成分表ラベルをカメラで撮影し、カロリー・タンパク質・脂質・炭水化物の数値を自動で読み取るために使っている。Gemini 2.5 FlashというAIモデルが画像を分析して、JSON形式で栄養データを返す。
D1 Cloudflare D1
ひとことで
クラウド上で動くSQLiteデータベース
もう少し詳しく
Cloudflareが提供するデータベースサービス。中身はSQLite(軽量で高速なデータベース)で、クラウド上で動作するため複数のアプリから同じデータにアクセスできる。データを書き込んだら即座に反映される「強整合性」が特長。
このプロジェクトでは
chibabot MCP拡張で会話データの「正本」(データの原本)として使う。これまでスマホ内部に閉じていた会話履歴を、Claude CodeやPWAなど複数のアプリから参照・更新できるようにする。
Demucs デミュークス
ひとことで
音楽と声を分離するAI
もう少し詳しく
Meta社(旧Facebook)が開発した音源分離モデル。BGMと声が混ざった音声から「人の声だけ」「BGMだけ」を取り出せる。カラオケのボーカル除去と同じ原理だが、AI技術で精度が飛躍的に向上している。v4(HT-Demucs)が最新で、業界最高水準の分離品質。
このプロジェクトでは
ボイスセルフモデリングで、YouTube動画の音声からBGMと声を分離するステップに使う。声だけのトラックを取り出さないと、次の話者分離が正確にできないため。
環境変数 Environment Variable
ひとことで
パソコン全体で使える設定値
もう少し詳しく
プログラムが「この値どこに保存する?」「ポート番号は?」と知りたいとき、あらかじめパソコンに登録しておく値のこと。プログラムの外側から動作を変えられるので、コードを書き換えずに設定を変更できる。
このプロジェクトでは
PLAN_VIEWER_DIR という環境変数で、HTMLの保存先フォルダを変更できるようにする。設定しなければ ~/plan-viewer/ が使われる。
Excel エクセル
ひとことで
Microsoftの表計算ソフト
もう少し詳しく
行と列のマス目(セル)にデータを入力して計算や集計ができるソフト。官公庁や企業がデータを公開するときによく使う形式。ファイルの拡張子は .xlsx。プログラムからデータを読み取るには専用のライブラリ(道具)が必要。
このプロジェクトでは
文部科学省の食品成分表がExcel形式で公開されている。セルの結合や特殊な表記(「Tr」=微量)など独特のクセがあるため、専用のパーサー(解析プログラム)で読み取る。
Gemini ジェミニ
ひとことで
Googleが開発したAIモデル
もう少し詳しく
テキスト・画像・音声など複数の種類のデータを理解・生成できるAI。「Flash」(高速・低コスト版)と「Pro」(高精度版)がある。APIを通じてプログラムから利用でき、質問への回答、画像の分析、データの変換などに使える。
このプロジェクトでは
2つの用途で使っている。(1) 栄養成分表の写真からカロリー等を読み取るOCR。(2) 食品の「1人前の量」を推定するバッチ処理。50品ずつまとめて「ごはん1杯は150g」のように聞く。
git submodule サブモジュール
ひとことで
リポジトリの中に別のリポジトリを埋め込む仕組み
もう少し詳しく
本棚に「この本は図書館の○番にあるよ」というメモを挟んでおくようなもの。親リポジトリは子リポジトリの「どのバージョンを使うか」だけを記録する。子リポジトリは独立して管理でき、他のプロジェクトからも参照できる。ただし、子を更新したら親側でも「参照先を更新」する操作が必要。
このプロジェクトでは
Second Brain 同期スクリプトを dotfiles から分離する方法の候補。submodule にすれば、スクリプトだけを他の人と共有しつつ、自分の dotfiles からも使い続けられる。
hook フック
ひとことで
特定タイミングで自動実行される仕組み
もう少し詳しく
コードのある処理が実行される直前・直後に、別の処理を差し込めるポイント。自動ドアのセンサーのように、「人が近づいた」というイベントを検知して「ドアを開ける」処理を起動する。
このプロジェクトでは
Claude Codeの PreToolUse hook で、ExitPlanMode実行前にplan-viewerのHTML生成を促している。
ODbL Open Database License
ひとことで
データベースの「自由に使っていいよ」ライセンス
もう少し詳しく
「このデータは自由に使っていいけど、2つだけ守ってね」というルール。(1) 出典を明記すること(どこのデータか書く)。(2) 改変して公開する場合は同じライセンスで公開すること。Wikipediaのデータライセンスに近い考え方。
このプロジェクトでは
Open Food Factsのデータがこのライセンス。メシテロの設定画面に「製品データ: Open Food Facts (openfoodfacts.org) — Open Database License」と表示して出典を明記する。
OSS Open Source Software
ひとことで
ソースコードを公開して誰でも使えるソフトウェア
もう少し詳しく
プログラムの「設計図」であるソースコードを一般公開し、誰でも閲覧・利用・改変できるようにしたソフトウェア。GitHubというサービスで公開されることが多い。ライセンス(利用条件)によって「商用利用OK」「改変OK」などのルールが決まる。
プラグイン Plugin
ひとことで
後から追加できる拡張機能パッケージ
もう少し詳しく
アプリの基本機能に「差し込む(plug in)」形で追加できる機能の塊。スマホにアプリをインストールするのと似た感覚で、必要な機能だけ選んで追加できる。プラグインの中にはスキル・フック・コマンドなどの部品が含まれる。
このプロジェクトでは
plan-viewer を Claude Code プラグインとして公開する。ユーザーは /plugin install コマンドでインストールするだけで、plan-viewerの全機能(HTML生成・自動チェック・サーバー)が使えるようになる。
POST POSTリクエスト
ひとことで
サーバーにデータを送信する方法
もう少し詳しく
Webブラウザからサーバーへの通信には主に GET(データをもらう)と POST(データを送る)がある。フォームの送信ボタンを押す、コメントを投稿するなど「何かを送りたい」ときに使うのがPOST。
このプロジェクトでは
アノテーション質問機能で、スマホから質問データをplan-viewerサーバーに送信するために使っている。送り先は /api/questions エンドポイント。
レート制限 Rate Limiter
ひとことで
一定時間内のリクエスト回数を制限する仕組み
もう少し詳しく
「1分間に30回まで」のように、サーバーへのアクセス回数に上限を設ける防御機能。遊園地の人気アトラクションに「1時間に○人まで」と制限をかけるのと同じ。悪意のある大量アクセス(DDoS攻撃)からサーバーを守り、全ユーザーが安定して使えるようにする。
このプロジェクトでは
MCPエンドポイントは1分間に10回、REST APIは1分間に30回の制限。IPアドレス単位で制限をかけているため、1人が大量にアクセスしても他のユーザーには影響しない。
Qwen3-TTS チウェンスリーティーティーエス
ひとことで
3秒の音声から声をクローンできるAI
もう少し詳しく
アリババ(中国の大手IT企業)が2026年1月に公開した音声合成AI。テキストを入力すると、人間のように自然な音声で読み上げる。最大の特徴は「3秒の参照音声」だけで、その人の声を再現(クローン)できること。日本語を含む10言語に対応。Apache 2.0ライセンス(商用利用も完全無料)。
このプロジェクトでは
ボイスセルフモデリングで、自分の声の参照音声を使って「自分が声かけしている音声」を生成するエンジン。0.6Bモデル(軽量版)をM1 Macで動かす。
RAG Retrieval-Augmented Generation
ひとことで
AIが外部データを検索してから回答する仕組み
もう少し詳しく
通常のAIは学習済みの知識だけで回答するが、RAGは「まず関連する情報をデータベースから検索し、その情報を参考にして回答する」という2段階の仕組み。図書館で本を調べてからレポートを書くような流れ。これにより、AIの知識にない最新情報や個人的なデータも回答に活用できる。
リポジトリ Repository
ひとことで
プロジェクトのファイルをまとめて管理する場所
もう少し詳しく
ソースコード、設定ファイル、ドキュメントなどプロジェクトに必要なファイル一式を格納するフォルダ。Gitというバージョン管理ツールで「誰がいつ何を変えたか」の履歴も記録される。GitHubに公開すると、世界中の人がアクセスできる。
行レベル制御 Row-Level Security
ひとことで
データベースの行ごとにアクセスを制限する仕組み
もう少し詳しく
マンションの各部屋に鍵がかかっているように、データベースの各行(1件のデータ)に「これは誰のデータか」を記録し、本人のデータしか見えないようにする仕組み。管理者が設定する「フロア全体の鍵」ではなく、1行1行に対する細かい制御。
このプロジェクトでは
すべてのデータベース問い合わせに「このユーザーのデータだけ」という条件を強制的に追加する。スレッドIDだけでデータを取得することは禁止し、必ずユーザーIDとの組み合わせで取得する設計。
Selection API セレクションAPI
ひとことで
ブラウザのテキスト選択を読み取る仕組み
もう少し詳しく
ユーザーがWebページ上で文字を長押し・ドラッグして選択したとき、「どのテキストが選ばれたか」「画面上のどの位置か」をJavaScriptから取得できるブラウザ標準の機能。外部ライブラリなしで使える。
このプロジェクトでは
質問モードで文章を選択したとき、選択テキストの取得とポップオーバーの位置計算に使っている。
soft delete ソフトデリート
ひとことで
データを「削除済み」マークするだけで実際には残す方式
もう少し詳しく
ゴミ箱に入れるのと完全に消すのの違い。soft deleteは「ゴミ箱に入れた」状態で、データ自体はデータベースに残っている。通常の検索では表示されないが、必要なら復元できる。対義語はhard delete(完全削除)。
このプロジェクトでは
スレッドの削除はsoft delete方式。「deleted_at」という項目に削除日時を記録するだけで、データは物理的には残る。さらに、削除時にスレッドのタイトルを確認させることで、誤って別のスレッドを消すミスを防いでいる。
SSRF Server-Side Request Forgery
ひとことで
サーバーを騙して内部ネットワークにアクセスさせる攻撃
もう少し詳しく
「この画像を見て」と言ってURLを渡すとき、URLの先が外部の画像ではなく内部ネットワーク(社内サーバーなど)を指していた場合、サーバーが代わりに内部にアクセスしてしまう攻撃。「代わりに買い物してきて」と頼まれて、実は泥棒の手先にされるようなもの。
このプロジェクトでは
OCR(画像文字読み取り)機能で画像URLを受け取る際に対策が必要。httpsのみ許可、プライベートIPアドレスの拒否、画像以外のデータの拒否、タイムアウトなどの多層防御で防いでいる。
SQLite エスキューライト
ひとことで
スマホに内蔵された軽量データベース
もう少し詳しく
サーバーなしで動く、ファイル1つで完結するデータベース。スマホアプリの定番で、iPhoneもAndroidも標準で搭載している。「何万件ものデータを高速に検索する」「条件に合うデータだけ取り出す」といった処理が得意。
このプロジェクトでは
メシテロの全食品データ(約28,000品)と食事記録をSQLiteで管理している。アプリ起動時にJSONファイルからデータを読み込んでSQLiteに投入する。
ひとことで
ファイルやフォルダへの「透明なショートカット」
もう少し詳しく
Windows のショートカットや macOS のエイリアスに似ているが、もっと透明。アプリから見ると本物のファイルと区別がつかず、そのまま読み書きできる。実体は1つだけなので、symlink 経由で編集しても、直接編集しても、同じファイルが変更される。
このプロジェクトでは
Second Brain 同期スクリプトを分離する方法の候補。独立リポジトリに実体を置き、~/.claude/scripts/ から symlink で参照すれば、1つのファイルを2箇所から使える。
トランザクション Transaction
ひとことで
複数の処理をひとまとめにする仕組み
もう少し詳しく
データベースに100件のデータを入れたいとき、1件ずつバラバラに入れると毎回「保存完了」を確認するので遅い(手紙を1通ずつポストに入れに行くようなもの)。トランザクションを使うと「100件まとめて入れて、全部成功したら保存」とできるので、100倍以上速くなることもある。途中で失敗したら全部やり直しになるので、データが中途半端な状態にならない安全性もある。
このプロジェクトでは
25,000件のOpen Food Factsデータを一括投入するときに使う。トランザクションなしだと数分かかる処理が、数秒で完了する。
Vector DB ベクトルデータベース
ひとことで
「意味の近さ」で検索できるデータベース
もう少し詳しく
通常のデータベースはキーワードの一致で検索するが、Vector DBは文章の「意味」を数値の配列(ベクトル)に変換して保存する。「犬」で検索すると「ワンコ」「ペット」「柴犬」なども見つかる。AIの記憶システムでは、過去の会話から意味的に関連する情報を引き出すために使う。
Voice Cloning ボイスクローニング
ひとことで
AIで特定の人の声を再現する技術
もう少し詳しく
少量の音声サンプル(3秒〜数十秒)からその人の声の特徴を学習し、任意のテキストをその声で読み上げる技術。声の高さ、響き、話し方のクセなどを再現する。2024年以降、オープンソースのツールが急速に進化し、個人のパソコンでも実用的な品質で使えるようになった。
このプロジェクトでは
Feedforward Self-Modeling(自己モデリング)の核心技術。自分の声のサンプルからクローンを作り、上手い人の発話テキストを自分の声で再生成する。
Workers AI ワーカーズエーアイ
ひとことで
Cloudflareが提供するAI実行環境
もう少し詳しく
自分のパソコンにAIを入れなくても、Cloudflareのサーバー上でAIモデルを動かせるサービス。画像認識、テキスト生成、翻訳など様々なAIモデルが用意されていて、APIで簡単に呼び出せる。使った分だけ課金される従量制。
このプロジェクトでは
OCR(画像文字読み取り)機能で、Meta社のLlama 3.2 Vision(画像を理解できるAIモデル)を動かすために使っている。画像をサーバーに送ると、AIが文字を読み取ってテキストとして返す。
WhisperX ウィスパーエックス
ひとことで
文字起こし+話者分離を一気にやるツール
もう少し詳しく
OpenAIが作った音声認識AI「Whisper」をベースに、3つの機能を統合した強化版。(1) 文字起こし(音声→テキスト変換)、(2) 単語タイムスタンプ(各単語が何秒に発話されたか記録)、(3) 話者分離(誰がいつ喋っているかを自動でラベル付け)。通常のWhisperの70倍速で処理できる。
このプロジェクトでは
YouTube動画の音声から「男性が00:05〜00:12に『こんにちは』と言った」のような情報を全自動で抽出する。この情報をもとに男性パートだけを差し替える。
yt-dlp ワイティーディーエルピー
ひとことで
YouTubeから音声・動画をダウンロードするツール
もう少し詳しく
YouTubeなどの動画サイトからコンテンツをダウンロードするコマンドラインツール。旧版の youtube-dl の後継で、より高速で多機能。音声だけの抽出にも対応しており、WAVやMP3など好きな形式で保存できる。オープンソースで無料。
このプロジェクトでは
パイプラインの最初のステップ。杉崎PUAのYouTube動画から音声をWAV形式で取り出す。すでにMacにインストール済み。
yadm Yet Another Dotfiles Manager
ひとことで
dotfiles を Git で管理する専用ツール
もう少し詳しく
パソコンの設定ファイル(dotfiles)をGitで管理するためのツール。通常、設定ファイルはホームフォルダの中にバラバラに散らばっているが、yadm を使うとそれらを1つのリポジトリとしてまとめて管理できる。新しいマシンを買ったとき、yadm clone 1つで同じ環境を再現できる。
このプロジェクトでは
Claude Code の設定ファイル、同期スクリプト、CLAUDE.md などを yadm で管理している。yadm add → commit → push で設定の変更履歴を記録する。
YAGNI You Aren't Gonna Need It
ひとことで
「今必要ないなら作らない」という設計原則
もう少し詳しく
「将来こんな機能も必要になるかも」と先回りして作ると、結局使われないコードが増えて複雑になるだけ。今この瞬間に本当に必要な機能だけを作り、必要になったら追加する考え方。
このプロジェクトでは
v1.0では多言語対応(英語版など)をしない判断がこれに基づく。日本語圏のユーザーから始めて、海外需要が出てから対応すればいい。