語彙
このアプリケーションで cart とは何を指すのか。業務の言葉(ユビキタス言語)を、人にも機械にも読める形で置きます。
Semantic SSOT
コードは安くなりました。けれど「何を作るべきか」という意味は、いまも高いままです。同じ業務上の事実が、仕様書・コード・テスト・DB制約・FAQへ、別々の方言で何度も書き写される。ALPSは、その意味だけを書く小さな仕様です。BEAR.Sundayは、ここから実装・ドキュメント・AIの道具を射影します。
The thin waist
源泉(物語・レガシーコード・ドメイン)を成果物(図・スキーマ・コード・道具)へ素朴につなぐと、 組み合わせは N×M になります。あいだに意味だけの腰を一つ通せば、N+M に畳まれ、すべての変換が 一点で合流します。インターネットの IP、コンパイラの LLVM IR と同じ形。ALPSは 「アプリケーションの意味」の腰です。
N個の源泉
user stories ・ legacy code ・ domain ・ requirements
収束 ↓
ALPS — 蜂の腰 / thin waist
意味のSSOT
語彙 ・ 状態 ・ 遷移(safe・idempotent・unsafe)
射影 ↓
M個の射影
図 ・ OpenAPI ・ JSON Schema ・ llms.txt ・ Fake ・ Tests ・ Code ・ MCP/Tool ・ Hypermedia
素朴に繋ぐと N×M。腰を一つ通せば N+M。
What ALPS writes (and won't)
ALPS(Application-Level Profile Semantics)は、RESTとハイパーメディア設計の系譜から生まれた、 Amundsenらによる小さな仕様です。書けるのはほぼ三種類だけ。意図的に退屈で、その退屈さは 設計されたものです。
{ "id": "Cart", "type": "semantic", "title": "買い物カゴ",
"tag": "flow-checkout",
"descriptor": [{ "href": "#doAddItem" }] },
{ "id": "doAddItem", "type": "unsafe", "rt": "#Cart",
"doc": "商品をカゴに追加する" }どのテーブルに保存されるかも、どの画面に出るかも書かれていません。書く場所がないからです。
このアプリケーションで cart とは何を指すのか。業務の言葉(ユビキタス言語)を、人にも機械にも読める形で置きます。
アプリケーションにどんな状態があるのか。画面ではなく、意味としての状態です。
状態から状態への遷移と、それが safe(観測するだけ)か idempotent(繰り返しても同じ)か unsafe(やり直せない変更)か。RESTの意味論がそのまま語彙になります。
画面レイアウトも、永続化方式も、性能要件も書けません。書けないからこそ、どの成果物とも競合せず、共通の通り道になれます。書けないことの一覧こそが、ALPSの設計です。
Projection & tags
各記述子には自由なタグを付けられます。チェックアウトのフローに flow-checkout、ゲストに許す操作に actor-guest、レガシー由来の概念に src-legacy。すると「チェックアウトだけの状態遷移図」や 「ゲストから見えるシステム」は、新しく書き起こす文書ではなく、同じモデルへの射影クエリになります。
営業に見せる図、セキュリティレビューの図、移行計画の図は、三つの別文書ではなく、一つのモデルへの 三つの問いです。「一つのモデル、多くのビュー」——意味だけをモデルに入れ、残りを射影に任せたから、 モデルは小さいまま、人間が統治できます。
Three doors
意味が一箇所に在るとして、誰がどう触れるのか。答えは、フェーズごとに違うプロトコルで、です。
AIエージェントが照会・検証・編集する。全文を渡さず「この状態から出る遷移は?」と問い、必要な200トークンだけを受け取る。モデルについて読むのではなく、モデルと対話する。
人間が同じ知能に触れる。壊れた参照はその場で警告され、概念の改名はすべての参照へ波及する。意図の表明から意味の確定まで、構文という中間業者が消える。
動くアプリケーション自身が、意味で構造化された応答を運ぶ。本番を操作するエージェントは、そのシステムを設計したのと同じ意味モデルに接地する。
The reader arrived
2000年に定式化されたHATEOASが想定したのは、意味を読んで自律的に次の遷移を選ぶ「機械クライアント」 でした。その読み手は二十年あまり現れなかった。人間にはUIが要り、機械は愚かすぎたからです。
その読み手が、いま到着しました。しかも、コードを安くしたのと同じ技術として。大規模言語モデルは、 意味のドリフトを危機に変えた当のものであり、同時に、意味を機械可読にしておくことを、ついに報われる 投資に変えた読み手でもあります。危機と、解決の条件が、同じ技術で同時に届いた。
Where BEAR sits
BEAR.Sundayが強いのは、腰の下半分——射影です。ResourceObjectから、HALやハイパーメディア(実行時)、 ApiDoc・OpenAPI・JSON Schema・llms.txt(ドキュメント)、ToolUse/MCP(AIの道具)が生まれます。 ALPSをSSOTに置けば、コードも文書も道具も、同じ意味から射影され、実装とドキュメントがずれません。 CIで「ずれが無い」ことさえ証明できます。
意味を取り込んで作り直すのではなく、独立した標準として腰に置き、そこへ繋ぐ。これは 「取り込まず、つなぐ」の到達点です。意味の発掘そのもの(上半分)は、ALPSと専用ツールの仕事です。
Start with one resource