MMASAYABrain
Local-first event & knowledge platform

MASAYABrain.

14種類・17.6万件のイベントを、immutable RAW、SQLite/FTS5、confidence gate、LLM-assisted control planeで「次の一手」に変換する、NAS上のPersonal AI OS。

Private by designUGREEN NAS
Brain検索・判断
根拠
会 話
予 定
財 務
SNS
資 料
11 servicesDocker Compose on NAS
2 SQLite DBsQueue / Knowledgeを分離
OAuth + APIsYouTube / X / LINE / Chatwork
Evidence-firstlineage・confidenceを保持
01 — System intent

検索エンジンではなく、
event-drivenな経営補佐。

MASAYABrainは、会話・予定・案件・財務・SNSを同じevidence graphへ集約し、observed factsderived decisionsを分離したまま、検索・通知・案件管制へ流すシステムです。

11

検索、共有Dashboard、realtime ingest、poller、promoter、brief、botを疎結合で運用。

60s

realtime queueからknowledge DBへのpromotion cycle。briefは15分、外部APIは6時間。

02 — Data landscape

14 source kindsを、
ひとつのevidence面へ。

会話の全文、AIとの対話、投稿履歴、財務原資料などを共通形式へ揃え、ソースや日付をまたいで探せるようにしています。

Indexed evidence176,990RAW_ITEMS = FTS5 ROWS
Source kinds14CHAT / SOCIAL / GOOGLE / FINANCE
Compose services11INGEST → DECISION → DELIVERY
Control-plane projects1013 OPERATION RECORDS

実データベース実測値|2026年8月18日時点

LINE 99,631Chatwork 30,665ChatGPT / Codex 30,597X 11,393Gemini 3,318Finance 1,020Google Drive 176Gmail 50YouTube RSS 40YouTube Analytics 40Calendar 21Profiles 23
03 — How it works

原文から、判断まで。
5段階で信頼を守る。

AIがいきなり原文を書き換えることはありません。事実、整理、推測、判断を別レイヤーに分けます。

受け取る

API、Webhook、エクスポートZIP、CSV・PDFなどからデータを取得。

原本を保全

受け取ったデータは変更せず保存。再処理できる正本にする。

整える

ソースごとの形式を共通化し、重複排除・日時・送信者・本文を整理。

候補を抽出

タスク、人物、案件、期限、金額、意思決定を根拠付きで候補化。

人が確定

低信頼なものは質問へ。確認後に日次提案と案件管理へ反映。

04 — Runtime architecture

Data planeと
deployment planeを分離。

実データはNAS共有へ、Compose・worker・secretはDockerプロジェクトへ。前者は正本、後者は再デプロイ可能なランタイムです。

Data / Knowledge plane

immutable import、正規化JSONL、SQLite/FTS5、control plane、daily briefを保持。

/Volumes/MASAYA/MASAYABrain

Deployment / Secret plane

11サービスのCompose、poller、API、OAuth token、realtime WAL queueを保持。

/Volumes/docker/masaya-brain

01. 原本レイヤー

各サービスから受け取ったZIP、JSON、CSV、PDFを変更せず保管。

imports/inbox/

02. 正規化レイヤー

検索や再構築に使う共通JSONLと展開済みデータ。いつでも作り直せる。

imports/processed_nas/

03. 検索・知識DB

SQLite + FTS5。原文、スレッド、財務、運用メタデータを高速検索。

database/staging_nas.sqlite

04. ワーカーレイヤー

差分取得、キュー昇格、再構築、日次ブリーフをスクリプトとDockerで実行。

scripts/ · docker/

05. 出力レイヤー

検索画面、API、日次ブリーフ、確認キュー、案件コックピットを提供。

search API · daily_brief.json

06. 判断・統制レイヤー

優先順位、公開範囲、資金・納期影響、未確定事項を人とAIで管理。

control_plane · clarification_queue
05 — Compose topology

NAS上で動く、
小さな専門チーム。

DEPLOYED TRUTH: NAS側Composeには11サービス。設定値とDB import historyを突合済み。2026-08-18 JST
brain-search

検索係

全文検索、統計、人物・案件・タスク候補、日次ブリーフを読み取り専用APIで返す。

READ ONLY
brain-dashboard

共有UI

Cloudflare Access identityを要求し、機密語を除外した経営Dashboardと確認回答APIを提供。

ZERO-TRUST UI
brain-realtime

イベントGateway

LINE署名検証、shared-secret ingest、push通知を担当。WAL queueへidempotent insert。

PORT 8788
brain-chatwork

Chatwork connector

全参照可能ルームを5分間隔でAPI pollingし、共通event envelopeへ変換。

API CONNECTED
brain-promoter

Promotion gate

1分ごとに最大100件を評価。現在はChatworkのみauto-promoteし、LINEはqueue保持。

SINGLE WRITER
brain-brief

Materialized view builder

案件、返信、90日資金、SNS、確認キューを15分ごとにatomic replaceで再生成。

15 MIN
brain-youtube

YouTube connector

RSS + Data API v3 + Analytics API v2。OAuth tokenをチャンネルIDへ自動mapping。

OAUTH ACTIVE
brain-x

X connector

X API v2のread-only incremental poller。since_idを保持し、public metricsもupsert。

API ENABLED
brain-project-bot

Control bot

Chatwork指示をDeepSeekで構造化し、進捗・事実・訂正・期限・確認回答を管制。

LLM ENABLED
brain-google-importer

Snapshot watcher

Google JSONL inboxを5分監視。mtime + sizeで変更検知し、source別にidempotent upsert。

5 MIN
cloudflared

Private edge

公開ポートを直接晒さず、Cloudflare TunnelとAccess headerで共有Dashboardを保護。

TUNNEL
06 — Integration matrix

「実装済み」と「稼働中」を
分けて見る。

コードが存在するだけではなく、credentialの設定状態、DBのlineage、直近import runまで突合した現在地です。

Connector
State
Transport / Semantics
Evidence
YouTube
ACTIVE / PARTIAL
RSS + Data API v3 + Analytics API v2 / OAuth readonly
5ch RSS成功・3ch Analytics認証
CChatwork
ACTIVE
REST API polling 5min → shared-secret event endpoint
12,372 promoted events
LLINE
CONNECTED
HMAC-SHA256 webhook + Messaging API push
18 queued events・credentials設定済み
𝕏X
ENABLED
API v2 readonly incremental / since_id cursor
Bearer設定済み・6h poller
GGoogle
SNAPSHOT PIPELINE
Reviewed JSONL → 5min inbox watcher → source upsert
Drive 176 / Gmail 50 / Calendar 21
AIDeepSeek
ACTIVE
Chat Completions / structured JSON / deterministic fallback
project-botで有効
CFCloudflare
DEPLOYED
Tunnel + Access identity header + CSP / no-store
共有Dashboardの境界
Configured ≠ fully covered

YouTube AnalyticsはAPI連携済み。ただし最新runは5ch中3chがOAuth authorization済みで、run statusはpartial。

Queue is a policy boundary

Chatworkは自動昇格、LINEは現在queue保持。connector接続とknowledge採用を意図的に分離している。

Snapshots are first-class

GoogleはAPI直同期だけを「連携」と見なさず、レビュー済みJSONLを再現可能なingestion contractとして扱う。

07 — YouTube deep dive

API連携、
終わっています。

公開メタデータはRSS、所有確認はData API v3の channels?mine=true、非公開KPIはAnalytics API v2。Brand Accountごとのrefresh tokenを列挙し、channel IDへbearerをmappingします。

5 / 5RSS CHANNELS OK
3 / 5OAUTH CHANNELS OK
108LATEST API ROWS
20KPI MERGES / RUN
import_youtube_analytics.pyOAuth 2.0 / readonly
scopes = [
  "yt-analytics.readonly",
  "youtube.readonly"
]

bearers = map_tokens_by_channel_id(token_dir)
rows = analytics.reports.query(
  dimensions="video",
  metrics="views, watchTime, AVD, AVP,
           likes, comments, shares, subscribers"
)

upsert(raw_items, checksum_sha256)
replace(search_fts[rowid])
merge(content_items.kpi_actual_json)
append(import_runs, per_channel_status)
Idempotency

RSSは (source_kind, external_id)、Analytics snapshotは channel:video:period_end を一意キーにupsert。

Derived metric

公開日と集計期間から analyticsActiveDaysviewsPerDay を計算し、チャンネル間比較を正規化。

Secret isolation

client_secret.jsontoken*.json は専用volumeをread-only mount。DB・Git・共有資料に入れない。

08 — HTTP surface

標準ライブラリ中心の、
小さなAPI surface。

検索系はread-only、ingest系はshared secretまたはLINE署名、共有DashboardのwriteはCloudflare Access identity必須です。

GET/healthz · /statshealth / source counts / first-last seen
GET/searchq, source, after, before, limit / source_url lineage
GET/viewspeople | projects | tasks | decisions のcandidate view
GET/brief · /dashboardmaterialized daily brief / management projection
GET/operations · /financecontent operations / review-status filtered transactions
POST:8788/v1/eventsX-Ingest-Token / 2MB上限 / 202 Accepted
POST:8788/v1/line/webhookraw-body HMAC verify / webhookEventId dedupe
POST/api/clarifications/{id}/answerAccess identity / 16KB上限 / atomic JSON write
09 — Storage model

SQLiteを、event storeと
read modelの中間に使う。

RAW lineageを残しつつ、検索・財務・コンテンツ運用のprojectionを同一DBへ置く現実的なlocal-first設計です。

INGESTIONsourcesthreadsraw_itemsimport_runstakeout_files
NORMALIZED / SEARCHmessageschatgpt_messagesgemini_turnssearch_fts [FTS5]
BUSINESS PROJECTIONSfinance_documentsfinance_transactionscalendar_eventscontent_items
OPERATIONSoperation_projectsoperation_channelsoperation_actionsdaily_brief.json
Queue DB

realtime_queue.sqlite はWAL。UNIQUE(source_kind, external_id) とchecksumでduplicate deliveryを吸収。

Knowledge DB

staging_nas.sqlite は約527MB。検索readerはread-only、promotion / pollerだけがwrite可能。

Materialized JSON

daily_brief.json とcontrol planeはatomic temp-file replacement。UIを複雑なjoinから切り離す。

10 — Read models

欲しいのは情報量ではなく、今日の一手。

01

横断検索

ソース・日付・人物・案件をまたいで原文まで戻れる。

02

案件コックピット

進行状況、期限、担当、停滞、未完了アクションを一望。

03

90日資金繰り

既知の収入・支出と未確認前提を分けてシナリオ化。

04

受信トリアージ

今日対応、返信待ち、期限、意思決定、アイデアに整理。

05

コンテンツ運用

YouTube / Xの目的、CTA、制作段階、次の投稿を管理。

06

確認質問

納期・金額など曖昧な項目を、根拠付きで最大3問ずつ確認。

11 — Failure boundaries

賢さより先に、
壊さない設計。

個人データを扱うため、「AIなら何でも自動化」ではなく、誤統合・誤判断・情報流出を避ける仕組みを優先しています。

Lineage

候補はsource_kind / external_id / source_urlへ遡れる。AI outputだけを孤立保存しない。

Confidence gate

explicit / candidate / confirmedを分離。低信頼はclarification queueへ送る。

Immutable RAW

訂正は派生projection側で行い、元データとchecksumを上書きしない。

Privacy projection

共有Dashboardはblocked termsを除外し、検索機能そのものを公開しない。

Single-writer bias

検索readerはread-only。WAL queueを挟み、SMB上SQLiteのmulti-writerを避ける。

Human commit

送金、契約、会計確定、公開投稿はproposal止まり。人間の確定をcommit pointにする。

12 — Current status

動いている部分と、
これから育てる部分。

現在できていること

  • 主要な会話・AI対話・X履歴のNAS移行と全文検索
  • Chatwork REST API / LINE Webhook・Push / X API v2の連携
  • YouTube RSS + Data API v3 + Analytics API v2のOAuth連携
  • 検索API、共有Dashboard、人物・案件・タスクのcandidate view
  • 財務原資料の保全、取引候補化、検索用インデックス
  • 案件・返信・資金・SNSを含む日次ブリーフ生成
  • Chatwork + DeepSeekによる案件bot、事実・訂正・進捗の構造化

次に育てること

  • YouTube残り2チャンネルのBrand Account OAuth認証
  • Google Drive / Sheets / CalendarのAPI cursor型差分同期
  • 人物・案件・アイデアの精度高い自動関連付け
  • YouTube Analyticsの長期時系列・CTR・retention分析の拡充
  • 90日資金繰りの前提入力と月次精度の向上
  • 低信頼候補のreview UXとfeedback loopの強化
  • NASとは別拠点への暗号化バックアップ
Deliberately boring stack

Python stdlib、SQLite、Docker Composeを中心に、運用可能性と可搬性を優先。

Local-first, not local-only

正本はNAS。外部API・Cloudflare・LLMは交換可能なconnectorとして境界化。

Production-shaped MVP

派手なSaaS構成より、idempotency、lineage、failure isolationを先に実装。

過去を保存する箱から、
未来を選ぶ補佐役へ。

MASAYABrainの価値は、データを大量に持つことではありません。忘れていた根拠を必要な瞬間に呼び戻し、いま確認すべきことと、次に動くべきことを明確にする点にあります。