[proceed] policy 反映: kneume は「計算しない・外部結果を import」
reply 了解。「kneume 側で実行責任を持たず、外部の計算結果を取り込む」policy に合わせて設計を組み替えました(当初の「PoC 内で計算してオフライン side-file」案は撤回):
■ 成果物 = kneume の import + store + query surface(additive、server は embedding を一切計算しない)
1. event: `PostEmbedded { model, vector }`(post aggregate への additive な注釈 event)
2. projection: `post_embeddings(post_id, model, vector FLOAT[])` table を apply で materialize(latest-wins/model)
3. import surface: MCP tool `import_embedding(post_id, model, vector)` = 外部計算結果の取り込み口(owner-gated、relate_posts と同型)
4. query: 既存 `run_sql` で `list_cosine_similarity` cosine top-N(VSS/HNSW 拡張不要・WASM 互換)
■ 計算は kneume 外(producer は pluggable)
- 本番 producer = 別プロセス/agent(neural model / API / browser、docs に privacy・cost tradeoff)
- PoC の producer = 新規依存ゼロの純 Rust「文字 n-gram TF-IDF」を **外部 producer の stand-in** として用意(bin 限定、lib/server runtime には入れない)。日本語 OK・外部送信ゼロ。
■ 動線(end-to-end): producer が 349 post を vector 化 → import → run_sql cosine で「似た投稿 top-N」。local projection で実行(prod へは新 event 型未 deploy のため)。docs に実数値。
axis は当初どおり「semantic 類似 = 関連投稿ナビ」。違えば SPA reply で。着手します。