internal · architecture overview
Architecture
kenny.boats (Quant Desk · Project Dali) の全体像。 12 個のデータソースから GitHub Actions の 2 workflow (daily heavy 約 36 step + hourly lite 7 step) を経て、 Vercel + Next.js で公開するまでの完全フロー。 譲渡先 / 監査人 / Claude セッション 両方が読む reference。
最終更新: 2026-05-22 (Dali 3 セッション化 + X 自動投稿 + CF Worker cron-trigger + /briefing 市況分岐 + 注目ニュース統合、 16 commits)
概要
物理学・数学・LLM を組み合わせて、 グローバル流動性と FX 市場を毎日自動で読み解くデスク。 マクロ統計・中央銀行声明・機関投資家ポジショニング・LLM judgment を GitHub Actions の 2 workflow (daily heavy 約 36 step + hourly lite 7 step) で自動更新し、 kenny.boats で公開している研究プラットフォーム。
1. データフロー (マインドマップ)
外部データソース → cron pipeline → 永続蓄積 → Vercel 配信 → 各 route で表示、 という一方向の流れ。
┌──────────────────────────────────────────┐
│ 外部データソース (12 個、 1 次情報) │
└──────────────────────────────────────────┘
│
┌────────┬────────┬────────┼────────┬────────┬────────┐
▼ ▼ ▼ ▼ ▼ ▼ ▼
FRED CFTC COT Twelve Binance ForexFct 中銀声明 YouTube
(米マクロ) Data Futures (HTML) Shopify
↓
Claude Haiku
4.5 NLP
(hawk-dove)
│
▼
┌──────────────────────────────────────────────────────┐
│ GitHub Actions cron 2 workflow: │
│ - daily_update.yml (heavy 約 36 step、 07/15:30/20:30) │
│ - hourly_market_refresh.yml (lite 7 step、 毎時) │
│ │
│ fetch → z-score → backtest → LLM Oracle 判断 │
│ (Sonnet 4.6 SC×3) │
└──────────────────────────────────────────────────────┘
│
▼
┌──────────────────────────────┐
│ data/raw/*.parquet (永続蓄積)│
│ + market_payload.json (集約)│
└──────────────────────────────┘
│
▼
┌──────────────────────────────┐
│ Vercel auto-deploy │
│ kenny.boats (Next.js) │
└──────────────────────────────┘
│
┌──────────────────────┼──────────────────────┐
▼ ▼ ▼
Console 13 route Marketing / EC 管理者向け
(流動性 / マクロ / (about / products / (/admin /kpi)
FX デスク / etc) research / sponsors)
│ │
▼ ▼
個人投資家 譲渡先 / 監査人
機関投資家 法務 / 経理2. データソース 一覧 (12 source)
各 source の取得頻度・コスト・認証要件。 SLA 違反時は次の cron run で自動 retry、 fail しても dashboard は前回 parquet を表示続行。
| Source | 取得内容 | 更新頻度 | コスト | 認証 |
|---|---|---|---|---|
| FRED | 米国マクロ 29 系列 + 利回り 7 系列 | 月次〜日次 | 無料 | 不要 |
| MOF (財務省) | JGB 日次利回り 1Y〜40Y | 日次 15:00 JST | 無料 | 不要 |
| CFTC COT | 機関フロー TFF + DCOT 21 contracts | 週次 (3 日 lag) | 無料 | 不要 |
| TIC | 主要外国保有米国債 (日本 / 中国 / 等) | 月次 (5 ヶ月 lag) | 無料 | 不要 |
| Twelve Data Pro | FX 14 + 株 + Crypto + 商品 = 55 ticker × 5 TF | chart: real-time WS / parquet: 毎時 | $229/月 | API key (CF Worker 経由) |
| Binance Futures | BTC/ETH OI + funding rate + 合成清算 heatmap | 毎時 | 無料 | 不要 |
| ForexFactory | 経済指標カレンダー (過去 7d + 未来 7d) | 週次 XML | 無料 | 不要 |
| Financial Juice | 中銀 / FX ニュース headlines (RSS) | リアルタイム | 無料 | 不要 |
| 6 中央銀行 | FRB / 日銀 / BoE / ECB / RBA / BoC 公式声明 | 声明日 | 無料 | 不要 |
| Anthropic Claude | Sonnet 4.6 (LLM Oracle) + Haiku 4.5 (NLP) | 日次 1 回 | ~¥8K/月 | API key (GitHub Secrets) |
| YouTube API | チャンネル KPI (登録者 / 視聴 / 純増) | 日次 | 無料 | OAuth refresh |
| Shopify | REDFOX.store の月次 EC 売上 KPI | リアルタイム | プラン込み | service account |
3. Route map (kenny.boats の構成)
主要コンソール 13 route (Shell 経由)
独立 page
4. Quant logic (採用戦略 + LLM Oracle)
採用 3 戦略を 8 個 (TSMOM × 5 pair + Macro Event × 3) として equal-weight 合成、 in-sample Sharpe 0.81 (cum +962%, max DD 201%)。 注: in-sample / OoS では性能異なる。
TSMOM Long-only
Moskowitz-Ooi-Pedersen 201212 ヶ月 log return z > threshold で entry、 21 日 hold
5 pair 採用: USDJPY (0.5σ, Sharpe 0.67) / EURJPY (1.5σ, 0.68) / GBPJPY (1.5σ, 1.61) / USDCAD (1.0σ, 0.69) / AUDUSD (1.5σ, 0.63)
Macro Event Surprise
Andersen 2003 系FRED inflation YoY z > 1σ で entry
3 event 採用: Core PCE 21d (Sharpe 0.94) / Core CPI 1d (1.03) / PCE 21d (0.71)
Multi-Factor USDJPY Composite
Phase 4 (Grinold-Kahn + Black-Litterman)19 factor を Bayes shrinkage + IC sign hybrid で合成
USDJPY 専用 (BoJ / JGB / 19 factor / EURJPY cointegration)
LLM Oracle Per-Pair (Anthropic Claude Sonnet 4.6 + Haiku 4.5、 Phase 11)
10 pair (6 USD ストレート + 4 クロス円) を 3 stage で深堀。 1 日 3 セッション (東京 07:30 / ロンドン 15:30 / NY 20:30 JST 前)、 同セッション dedup で月 ~$14 cost。
- Stage 1 (Haiku 4.5): 全 10 pair 統合 bias から global regime 判定
- Stage 2 (Sonnet 4.6、 並列 10): 各 pair を自前 context (合成シグナル時系列 + 金利 / CFTC / 実現ボラ / 4h チャート / news) で深堀、 他 pair は判断重み LOW
- Stage 3 (Haiku 4.5): 10 pair judgment を集約し取引推奨 4 + 避けるべき 4 ランキング
- 各 pair 出力: bias + confidence + long_term_strategy (multi-day swing) + short_term_strategy (intraday、 次セッションまで) の dual-horizon + 代替シナリオ + risk factors
- 予測精度は
/internal/synchronize(Synchronize Rate) で partial-credit 連続採点 (long/short 並列 stream、 random 50% baseline 併記)
4.5 Panel ⇄ 計算 ⇄ Source トレース表 (バグ時の影響範囲特定用)
「画面の何か数値がおかしい」 と気付いた時の trace map。 panel → payload field → 計算 script → 上流 source の順で辿れる。 ARCHITECTURE.md §9.5 と完全同期。
| Panel | payload field | 計算 script | 数式 / ロジック概要 | 上流 source |
|---|---|---|---|---|
| DaliStrategyRow (per_pair Oracle、 10 pair) | llm_oracle_per_pair.judgment.pairs[PAIR] | llm_oracle_per_pair.py | Stage 1 Haiku regime + Stage 2 Sonnet 並列 10 深堀 + Stage 3 Haiku ranking。 各 pair に long_term (multi-day swing) + short_term (intraday、 次セッションまで) の dual-horizon 戦略、 pair-specific context 厳密分離 | Anthropic + Twelve Data + FRED + CFTC + Financial Juice + CME |
| SynchronizeView (/internal/synchronize) | synchronize.json (sync_scores/*) | score_dali_sync.py + build_sync_payload.py | Dali brief の予測精度を partial-credit 採点 (A 方向 / B シナリオ被覆 / D 較正)。 long/short 並列 stream を composite_sync = 0.40 short + 0.60 long で合成、 random 50% baseline 併記 | oracle_archive/* + Twelve Data OHLCV (1day/1h) |
| PortfolioSharpePanel | portfolio_combined | backtest_portfolio_combined.py | 8 戦略 (TSMOM×5 + Macro Event×3) union calendar 平均、 Sharpe = mean/std × √252 | tsmom_signals + macro_event_alpha |
| TsmomSignalPanel | tsmom_signals[] | generate_ui_payload.py: build_tsmom_signals | 12m log return z (rolling 1260d) > pair 別 thr (0.5σ〜1.5σ) で signal | Twelve Data 1day |
| MacroEventAlphaPanel | macro_event_alpha | generate_ui_payload.py: _macro_surprise_z | event z = (latest - rolling_mean) / std (60mo window)、 採用 3 event ±1σ、 composite は equal-weight mean | FRED (CPILFESL / PCEPI / PCEPILFE) |
| MultiFactorBiasPanel (USDJPY 専用) | usdjpy_factor_bias | generate_ui_payload.py: build_usdjpy_factor_bias | 19 factor を Bayes shrinkage + IC sign hybrid 合成、 weight = (τ × prior + (1-τ) × ic²) × sign, τ=0.5 | FRED + MOF JGB + Twelve Data + USDJPY composite backtest |
| DeskScreen (4h chart + options + CFTC TWAP) | ohlcv_4h[PAIR] + cftc_positioning + cme_options_walls | DeskScreen.tsx 内部 + 共通 fetch | 4h OHLCV 500 本 + CME gamma wall (5 majors + BTC 実、 KEN PC Playwright daily 07:15 JST) + CFTC TWAP entry + 共和分 spread + driver decomposition | Twelve Data 4h + CME daily settle (KEN PC) + CFTC + FRED |
| NetLiquidityPanel | net_liquidity_chart | generate_ui_payload.py: build_net_liquidity_chart | net = (WALCL − TGA − RRP) × 1000B$、 3週変化 ±50B で trend 拡大/縮小判定 | FRED (WALCL / WTREGEN / RRPONTSYD) |
| CrossAssetScreen | cross_asset | generate_ui_payload.py: build_cross_asset | 11 asset の 60d rolling Pearson + partial corr (SPX 統制)、 9×9 matrix | Twelve Data 1day |
| PositioningScreen | cftc_positioning + cftc_backtest | fetch_cot_data.py + backtest_cftc_lev.py | lev_money_z = (net - rolling_mean(52w)) / std(52w)、 crowding label ±1σ/±2σ | CFTC TFF (FX/Eq/Rates) + DCOT (Commodities) Socrata |
| CryptoFlowScreen | crypto_positioning | fetch_crypto_oi.py | BTC/ETH OI + funding + 合成 liquidation heatmap (5x/10x/25x/50x/100x mix 仮定) | Binance Futures public API |
| CBStatementsScreen | cb_statements | fetch_cb_statements.py + score_cb_statements_llm.py | hawk-dove z (lex / 1000 語)、 最新声明は Haiku 4.5 で再採点、 古い声明はレキシコンのみ | 6 中銀公式 site + Anthropic Haiku |
| MacroOverlayScreen (各 MacroCell) | macro[] | generate_ui_payload.py: build_macro_metrics | metric ごとに latest + delta + sparkline 24mo + stale フラグ (source 別 cutoff) | FRED + 中銀 NLP + OECD/Eurostat |
| WorldMonitor (4 mode map) | monitor_stats + regional_scores + capital_gravity + contagion + overheat | generate_ui_payload.py: build_world_monitor | 4 mode: Capital Gravity / Contagion / Overheat / Risk Surface の country-level composite | FRED + Twelve Data + 集約 |
4.6 障害時の影響範囲マトリクス
ある data source / service が止まった時、 どこが機能不全になるか + 自動回復可否 + 復旧手順。 ARCHITECTURE.md §9.6 と同期。
| 止まる Source | 壊れる場所 | 自動回復 | 復旧手順 |
|---|---|---|---|
| FRED (米マクロ) | /macro-overlay 全 cell / /us-economic 29 系列 / /liquidity-flows NetLiquidity / USDJPY 19 factor (rate_diff + real_yield) / Macro Event Alpha 3 event | ✅ 自動 | retry 3 回 (1s/2s/4s) → 次 cron で再試行、 既存 parquet 維持 |
| MOF JGB | USDJPY 19 factor の policy_bias + rate_diff JPY side | ✅ 自動 | MOF サーバー復旧待ち、 既存 parquet 維持 |
| CFTC COT | /positioning 21 contracts / cftc_backtest / USDJPY 19 factor の cftc_z | ✅ 自動 (週次) | 次の金曜 release で再取得、 週内は前週値で表示 |
| Twelve Data | /desk 4h chart / KeyInstruments / MarketHeatmap / GlobalEquityHeatmap / CrossAsset 60d 相関 / TSMOM signal 計算 | ⚠️ 部分自動 | API key rotate (SHINZO 操作) + status 確認、 fallback secondary なし、 既存 parquet で前回値を表示続行 |
| Binance Futures | /crypto-flow 全 panel (BTC/ETH OI + funding + heatmap) | ✅ 自動 | 次 cron で再試行、 一時障害は parquet 維持 |
| ForexFactory | /calendar event | ✅ 自動 | 次週 XML 取得失敗時は前週蓄積で前進、 raw XML 永続 |
| Financial Juice RSS | LLM Oracle prompt の news context | ⚠️ 部分自動 | 失敗時は前回 news で代用、 LLM judgment は若干古い文脈で生成 (致命的でない) |
| 6 中銀公式 scraping | /cb-statements 最新声明 Haiku score | ⚠️ 部分自動 | scraping エラー時は最新声明だけ欠落、 過去蓄積は表示続行 |
| Anthropic Claude API | LLM Oracle Per-Pair (10 pair dual-horizon) / Synchronize Rate / Haiku CB statements / weekly dreaming_reflect | ⚠️ silent skip | requirements.txt anthropic + Secrets ANTHROPIC_API_KEY 必須。 失敗時は前回 judgment 維持、 SHINZO 確認まで silent (2026-05-16 〜 5/18 の 2 日 stale 事案の root cause) |
| YouTube API | /kpi YouTube section | ✅ 自動 (graceful skip) | secrets 失効時は placeholder JSON、 /kpi で 「Secrets 未登録」 表示 |
| Shopify Admin | /kpi Shopify section | ✅ 自動 | GCP service account 失効時は placeholder、 SHINZO が GCP console で rotate |
| Vercel deploy | サイト全体が古い state で固定 (data fetch は client 側で継続) | ⚠️ 部分 | Vercel dashboard で previous deployment を promote、 git revert で次 deploy |
| GitHub Actions runner | 全 cron pipeline (約 36 step) | ❌ SHINZO 介入要 | GitHub status 確認 / workflow_dispatch で manual trigger、 復旧後 cron 通常運用 |
| Cloudflare Worker (td-proxy) | /desk Live USDJPY ticker (1m WS feed) | ⚠️ 部分自動 | Worker dashboard で deploy 再実行、 fallback は client-side REST で 1m 補完 |
「数値が変」 と気付いた時の 5 step trace
- どの URL / どの section / どの数値?
- 上の Panel Trace 表で panel → payload field
- 同表で計算 script を特定
- 同表で上流 source を特定
- Impact Matrix で source 止まり / script bug → 他に何が壊れるか確認
例: 「/desk/usdjpy の Dali 戦略 (LLM Oracle) confidence が 0.0」 → Panel Trace の DaliStrategyRow → payload.llm_oracle_per_pair.judgment.pairs.USDJPY→ llm_oracle_per_pair.py → Anthropic (Haiku regime + Sonnet 深堀) → Impact Matrix Anthropic 行 = silent skip risk → 確認: git log -- data/raw/llm_oracle_per_pair.parquetの最終 commit 日時、 GitHub Actions log で 「anthropic not installed」 や 「ANTHROPIC_API_KEY not set」 WARN 確認
5. Cron pipeline (GitHub Actions、 2 workflow)
失敗履歴は data/raw/cron_runs.jsonlに永続記録、 GitHub UI に頼らず repo 内で trace 可能。 両 workflow はconcurrency: data-refreshで serialize、 push 衝突を回避。
5.1 daily_update.yml (heavy、 約 36 step、 3 回/日)
07:00 / 15:30 / 20:30 JST に自動実行。 完走時間 4-9 分 (LLM dedup 日は 2 分)。 LLM Oracle / FRED / CFTC / TIC 等 release-based or cost-bound source を含む。
- Fetch 系 10 step (FRED / MOF / CFTC / TIC / Crypto / Sunday USDJPY / Twelve Data / X / YouTube / ForexFactory / FJ News)
- Score / NLP 1 step (CB statements Haiku 4.5 採点)
- Analysis / backtest 2 step (liquidity / CFTC lev_z)
- Generate UI payload (1st pass) 1 step
- Time-series snapshot 2 step (signals_history / TSMOM paper trade)
- LLM Oracle Per-Pair 1 step (Stage 1 Haiku regime + Stage 2 Sonnet 並列 10 + Stage 3 Haiku ranking、 3 セッション) + Dali brief X 投稿 1 step
- Portfolio backtest 1 step + Generate UI payload (2nd pass) 1 step
- Synchronize Rate 2 step (score_dali_sync 採点 / build_sync_payload payload)
- Admin inventory / Forge cron stats + harness graph / Cost dashboard / automation health / MOF monitor 各 1 step
- Cron run summary + assert outputs 各 1 step / Commit and push 1 step (git push origin main)
5.2 hourly_market_refresh.yml (lite、 7 step、 毎時、 2026-05-19 新設)
毎時 00 分 UTC (24 回/日)、 ~30 秒/run、 LLM 呼出なし。 cost neutral な high-frequency 更新のみ (Twelve Data Pro plan quota 13% 使用、 Binance / CoinGecko / Financial Juice 無料)。 KeyInstruments / MarketHeatmap / 4h chart の last price + chg_pct lag が 8-10h → 1h 以内 fresh。
- fetch_crypto_oi.py (Binance public)
- fetch_sunday_usdjpy.py (CoinGecko + TD)
- fetch_twelve_data.py (55 ticker × 5 TF、 主要 ボトルネック ~10s)
- fetch_financial_juice_news.py (RSS)
- generate_ui_payload.py (既存 Oracle/Portfolio parquet を os.path.exists で自動 re-embed、 Oracle field 維持)
- build_admin_inventory.py
- Commit + push (`Hourly market refresh [skip ci]`、 empty-commit guard + rebase guard)
5.49 自律改善 layer 構造化 (2026-05-23、 24 件 1 日完結)
KEN「今週 1 週間の振り返り、 ハーネス / スキル / データ構造、 現段階これが一番いい状態?」 → silent skip / cron fail / memory stale / render-truth gap の 4 構造的弱点を 1 セッションで全層構造化。 詳細: CLAUDE.md §18 + ARCHITECTURE.md §11 + memory project_session_2026_05_23。
- P0 cron 監視 chain 3 件: Discord webhook 通知 (`if: failure()`) + output staleness assertion (critical 15 + warn 1) + memory staleness audit (session_start step 8)
- P1 自律改善 強化 6 件: visual_verify_after_push.yml auto-trigger + Node.js v6 bump + quant-reviewer 復活 + Secret rotation reminder (quarterly) + pre-commit hook 強化 + Cost dashboard 14 項目
- P2 残課題 4 件: visual_verify root cause 3 fix (gitignore 解除 + load + parser fix) + MOF JGB 復旧 monitor + Cost 動的化 (TD 自動、 Anthropic 個人 account 制約撤回) + memory audit auto-invoke
- 過剰剪定 3 件: monthly_secret_audit → quarterly (12 → 4 回/年)、 MOF monitor hourly → daily (96% 削減)、 pre-commit pair-integrity grep 削除。 cron 月 732 → 34 回 (95% 削減)
- 足りない 3 件: メタ監視 (各 monitor に heartbeat file)、 memory 自動 prune (`memory_prune_audit.py`、 46 entry / 0 候補)、 closure 可視化 (`build_automation_health.py` + `/admin` AutomationHealthSection)
- 副次 fix 5 件: Crypto OI Binance → Bybit (HTTP 451 ジオブロック解消)、 MOF JGB 5/6 停止確認、 YouTube Secrets 全 5 件登録済確認、 DISCORD_WEBHOOK_URL 登録 (PowerShell UTF-8 fix)、 LLM 土日 skip ($14.5 → $10.4/月)
達成度: 構造 floor 85% 最適。 silent skip → 通知 → fix → 再 verify → メタ監視まで chain 完成、 KEN 操作 残 ゼロ。 残 15% は数週運用後の dead code 剪定 + meta-meta monitor (heartbeat 自身の監視) + memory layer 自動圧縮、 ROI 低で別 phase 推奨。
5.48 Dali 3 セッション化 + X 自動投稿 infra (2026-05-22、 16 commits)
KEN 指示「24h LIVE 配信 (東京/ロンドン/NY) と整合させて Dali ブリーフも 1 日 3 回 cron 発火」 + 「Dali ブリーフ X 自動投稿」 を 1 セッションで完成。 詳細: CLAUDE.md §16 + memory project_session_2026_05_22。
- Dali 3 セッション化: cron 時刻 07:30 / 15:30 / 20:30 JST (東京/ロンドン/NY 開始前)。 `llm_oracle_per_pair.py` 改修: `_now_jst()` で JST date bug 修正、 (date, session) 単位 dedup、 セッション別 JSON + `oracle_archive/YYYY-MM-DD_{session}.json` 永続蓄積。 コスト $5/月 → $14/月
- /briefing 市況/指標 分岐: top picker → 市況 (Dali 履歴 text link) / 指標 (10 指標 grid)、 推奨/避ける カードを `/desk/[pair]` リンク化、 archive 50 件 を `market_brief_history` に embed
- CF Worker `cron-trigger`: GitHub Actions cron 5-10 時間遅延問題対策、 4 cron triggers (daily 3 + hourly 1)、 数秒精度で workflow_dispatch、 Paid plan ($5/月) で cron 上限 5/account → 250/worker に拡張、 fallback は GitHub schedule 残置
- X 自動投稿 cross-repo dispatch: nexus は X credentials 不要、 fx-indicator-business の既存 `manual-x-post.yml` (Ruby x_poster.rb) を workflow_dispatch で叩く。 `format_dali_x_post.py` standard variant (1023 chars: thesis + 推奨 4 + 避け 4 + 詳細 URL) + `post_dali_to_x.py` で 各セッション完了直後に自動投稿
- 注目ニュース セクション: Financial Juice RSS (~1082 件) から 24h 抽出、 relevance keyword (中銀/CPI/NFP/金利/為替/コモディティ/政治/BTC) match + noise keyword (Apple/MS/Tesla 等個別企業) 除外、 最新順 3 件 (standard) / 5 件 (detailed)
- TopTicker SNS 動線: Discord (紫 #5865F2) + YouTube (赤 #FF0000、 @REDFOX99007) + X (黒 #000000、 @redfox99007) 3 button、 公式ブランドカラー + 公式 SVG icon、 全 page 共通
- cron commit fix: `data/insiders/` / `data/forge/` / `data/raw/oracle_archive/` を git add 漏れで cron 2 連続失敗、 3 dir 追加で解消
end-to-end: CF Worker cron (数秒精度) → daily_update.yml → llm_oracle_per_pair → post_dali_to_x → fx-indicator-business manual-x-post → @redfox99007 X 投稿。 1 日 3 投稿で 自動運用 開始。
5.47 Composite Signal framework (2026-05-20、 Phase 1〜3 完成 17 commits)
KEN「対称性 + 固有 edge 区別」 + 「合成 signal 構成要素 method 明示」 要求で 2 層 framework 構築。 全 pair 対称な Common Factor と pair-specific Edge を decomposed display、 USDJPY だけ 19 factor で深掘りという非対称性を矯正。 詳細: CLAUDE.md §15.13 + memory project_composite_signal_2026_05_20。
- Layer 1 Common Factor (10 block × 6 pair = 38 key、 100% real): C-01 Policy Rate Diff / C-02 10Y Yield Diff / C-03 Real Yield Diff / C-04 CB Hawk-Dove (NLP) / C-05 TSMOM / C-06 Carry-to-Vol / C-07 CFTC Lev_z / C-08 Risk-On/Off / C-09 Liquidity / C-10 Yield Curve。 全 pair で同じ計算式の signal を symmetric matrix で表示
- Layer 2 Edge (25 block、 26/27 real = 96%): pair 固有の driver (USDJPY: EURJPY coint / BoJ NLP / 19 factor / 日経 / 日銀 BS、 AUDUSD: Iron Ore / 中国 PMI / 中国 CPI / 中国政策金利 / PBoC NLP / Copper、 USDCAD: WTI / NatGas / BoC NLP / Brent-WTI / 米 ISM、 BTCUSD: OI / funding / dominance 等)。 残 1 cell = BTC ETF flow (Farside HTML scrape 別 phase)
- frontend 3 panel (`PairCommonFactorPanel` 10×6 matrix + `PairEdgePanel` pair-specific + `PairCompositeScorePanel` Common ×0.6 + Edge ×0.4 の statistical hero)、 Shell `03 / COMPOSITE SIGNAL` section 新設、 既存 03 DEEP DIVE / 04 DRIVERS は 04/05 に番号繰下げ
- NLP 新規 RBA / BoC scraper: RBA `/monetary-policy/int-rate-decisions/` から 19 件 + BoC `/press/press-releases/` から 4 件 scrape、 Claude Haiku 4.5 で 159 件 hawk-dove scoring。 RBA latest z=+1.56 (強 hawkish)、 BoC z≈0 (中立)、 C-04 aud = -1.79 σ / cad = -0.81 σ 真値化。 RBA は Chrome UA で 403 bot detection、 'kenny.boats-bot/1.0' UA で 200
- EU HICP 取得 fix: FRED series ID typo (`CP0000EZ19M086NES` → `NEST` 末尾 T 追加) で EU column populate、 C-03 eur = 1.67 pp 真値化
- Edge raw 4 cell 追加 (free public API のみ): Iron Ore (FRED/PIORECRUSDM monthly) + China Mfg Confidence (FRED/CHNBSCICP02STSAM OECD BTS = PMI proxy) + WTI true level (FRED/DCOILWTICO daily) + BTC dominance (CoinGecko `/api/v3/global`)
- Sign convention pair-direction normalize: USDXXX (USDJPY/USDCAD) = positive z LONG pair、 XXXUSD (EURUSD/GBPUSD/AUDUSD) = positive z SHORT pair (counter 弱い)、 BTCUSD = own momentum direct。 threshold |z| ≥ 1.0 STRONG / 0.3 ≤ |z| < 1.0 partial / else NEUTRAL
- 17 commits 投入: Phase 1〜2-D の 13 commits (backend composite logic) + Phase 2-E (NLP) `e6e9f7c` + Phase 2-F (Edge cell) `f8e6596` + Phase 3 frontend `8a2ce80` + docs sync `77a4dfa`
framework 完成度: Layer 1 = 100% / Layer 2 Edge = 96%。 これで /desk/[pair] page で 全 6 pair が「対称な合成 signal」 + 「pair 固有 edge」 + 「統合 LONG/SHORT bias」 の 3 panel で見れる。 USDJPY 専用の 19 factor 深掘り (04 / DEEP DIVE) と並行、 brand 「機関を可視化するクオンツ」 主張に対する非対称性矯正完了。
5.46 Inventory + Sunset + Regime Aggregator round (2026-05-19/20)
Phase 5 後続 1 集中 session で実装。 13 commits 投入、 institutional macro quant 視点での「素材 inventory + 構造整理 + 将来 regime layer 設計」 を一気に整備。 詳細: CLAUDE.md §15。
- Desk pair sunset (8 → 6) → Phase 11 で 10 に拡張: USDCHF / NZDUSD を sunset (institutional driver 不在) → 6 USD ストレート (4 majors + USDCAD + BTCUSD) に整理後、 Phase 11 (2026-05-21) で クロス円 4 (EURJPY / GBPJPY / AUDJPY / CADJPY) を追加し計 10 pair。 全 pair が per_pair Oracle 対象
- /internal/inventory editor: 内製 spreadsheet (706 行 client component、 robots noindex)、 137 row × 10 cat × 822 cell、 7 status (✅/🟣/⚠/⏳/🟡/❌/N/A)、 PAT 1-click GitHub commit で SHINZO ↔ Claude 双方向同期、 Archived cat で削除履歴 reference
- Inventory 拡張 + Factor decomposition: USDJPY 19 factor を 個別 19 factor row に decompose、 USDJPY template bias 構造排除、 機関 quant 視点で不足材料 26 row 追加 (Tier S / Auction / Commodity / Geopolitical 等)
- Regime Aggregator design (2026-05-20): raw 700+ cell → 27 aggregator (5 global + 15 per-zone + 4 pair composite + 3 既存)、 AQR / Bridgewater 標準 approach、 実装は別 phase
- 02 STRATEGY contamination fix (Phase 1-2-3): pair-aware 再 gate、 7 pair 用 PairDriverPanel 新設、 PAIR_META description を実 UI 状態に整合化
- USD common driver 9 → 32 row 拡張: ドル円 pipeline で取得済 USD-side raw macro を全 USD-pair で再利用
- Risk Framework saga (path B): v1 公開準備 → SHINZO「この段階で意味なくないか」 判断で revert、 internal design spec 化、 公開昇格 4 条件明示
- /sponsors hero: Shopify 累積購入金額 (¥1,365 / 3 件)、 MCP-fetched + manual refresh、 /kpi と同 pattern
- /briefing 2 階層化: 10 指標 grid (GDP/JOLTS 追加 9→11) + L2 個別 briefing 一覧 + post-release retrospective
- Global top gateway: GatewayCards 4 destination card grid、 world-monitor の RouteFooter 後ろ
- /about 拡張: Sub-Agent System section + Dali Workflow section、 全公開 page で KEN → SHINZO 表記統一
SHINZO rule encoded: 「お金がかかるものはやらない」 (paid data source 永久除外、 free or self-built proxy で代替) + 「Composite を decompose、 individual factor で per-pair visibility」 (USDJPY template bias 排除)。 詳細 memory feedback_no_paid_sources + feedback_factor_decomposition。
5.45 Phase 5 design 刷新 (2026-05-19)
15 brand designer (Apple / Stripe / Linear / Airbnb / Notion / Figma / Robinhood / Revolut / Wise / Pinterest / VSCO / Instagram / Aesop / SSENSE / Zara) を 並列 audit、 8 utility sub-agent で解析、 SHINZO 7 decisions approved 後 1 session で 20+ commits 投入。
- DLS primitives 16 件 (`frontend/src/components/dls/`): Heading / Text / Num / Badge / SourceBadge / Term / Toggle / DataState / DataView / PanelShell / SectionGroup / Inspector / TodayHeadline / SaveButton / CommandPalette / CurrencySwitcher
- Sidebar IA 13 flat → 4 bucket (観測 / 判断 / ファンダ / 記録) + MobileBottomNav (5 tab thumb-zone)
- Cmd+K verb engine 5 commands (theme:toggle/dark/light, copy:link, shortcuts) + `?` ShortcutsOverlay
- Desk page 構造刷新: chart 上 DaliQuickReadout summary band、 chart 下 SectionGroup 3 group (01 DALI / 02 STRATEGY / 03 DEEP DIVE)、 OptionsLegend → Toggle wrap
- Watchlist (`/watchlist` route) + SaveButton primitive (localStorage v1、 Phase D で Clerk migration)
- Glossary 62 quant 用語 + whenBreaks 3-line schema (`/lib/glossary.ts`)
- Multi-currency (JPY/USD/EUR) on /sponsors
- Serif font Shippori Mincho (editorial route hero 限定、 D-1)
- Chart LIVE: candle.update native pattern + livePriceLine + zoom persist + price flash + 10 pair × 6 tf supported (一部 status 保留)
詳細: CLAUDE.md §14 + memory project_phase5_design_overhaul。 dep 追加 0 (Radix / cmdk / tailwind-merge 全 self-built)。
5.5 Persona ownership + 改修フロー (Dali / Thorp 分業)
2026-05-19 に Thorp persona を sub-agent system + 物理 infra の運用 owner として正式実装 (ADR-011)。 kenny.boats への改修は 2 business agent の分業 で進む — Dali (frontend + data analysis content) + Thorp (sub-agent system + cron / CF Worker / Vercel / Secret)。 詳細は CLAUDE.md §13 参照。
Domain ownership
| Layer | Owner | 副 owner consult 要件 |
|---|---|---|
| Frontend code / text / SEO / pair-specific integrity | Dali | sub-agent UI 追加時は Thorp |
| Macro data 解析 content (中銀 NLP / 19 factor / Oracle prompt) | Dali | — |
| Python data pipeline (scripts/) | Dali | 新 source が cron yml 変更を伴うなら Thorp |
| Cron workflow yml (.github/workflows/) | Thorp | データ流量が Dali 領域に影響するなら Dali |
| CF Worker (cf_worker/td_proxy/) | Thorp | frontend WS client 影響なら Dali |
| Vercel deploy / rollback | Thorp | — |
| Secret management (rotation / 新規) | Thorp (proposal) + SHINZO (execution) | 影響 source 主 owner |
| Sub-agent system (.claude/agents/) | Thorp | dispatcher 他 persona 影響なら該当 persona |
改修フロー 4 pattern
- Pattern A: Dali が新データ source / panel 追加 → cron yml 変更必要なら Thorp consult、 1 commit で同期
- Pattern B: Thorp が新 infra (cron split / CF Worker 拡張 / Secret rotation) → Dali に impact consult
- Pattern C: Incident response → Thorp owns root cause + 復旧 + postmortem、 data layer 影響あれば Dali consult
- Pattern D: Sub-agent system iteration → Thorp owns end-to-end、 他 business persona affect なら consult
Recursion resolve
Dali ↔ Thorp は peer 関係、 互いを管理しない。 互いの dispatcher / mandate 変更は SHINZO judgment 経由のみ。 self-amendment は両 persona とも forbidden。 Dalio Bridgewater「Idea Meritocracy + founder veto」 structure (SHINZO = founder)。
⚠6. 法的位置付け / Disclaimer
- 本サイトは投資助言業者ではありません (金融商品取引法 28 条 非登録)。 LLM Oracle や全 panel の出力は 参考情報のみ で、 特定銘柄の売買を推奨するものではありません。
- 過去 backtest 数値 (Sharpe 0.81 / win 59.2% / 等) は in-sample、 OoS 性能は異なります。 実運用では spread / slippage / 流動性で劣化する想定。
- 投資判断はご自身の責任で行ってください。 当社は投資判断による損失について責任を負いません。
関連 link / 参考
7. 詳細仕様書 (`docs/` 配下)
外部 dev / 譲渡先 engineering team が 「各 page の目的・機能・ロジック」 を read するための structured spec。 Robinhood + Stripe DD 観点 audit を経て 2026-05-19 に 17 docs を追加 (法務 2 件は協議後追加予定)。
技術 contract
- PAYLOAD_SCHEMA.md — `market_payload.json` 全 field reference + nullable 意味 + enum 値 catalog
- SCHEMA_EVOLUTION.md — schema version history + breaking change policy (12 ヶ月 grace)
- CRON_PIPELINE_CONTRACT.md — 約 36 step の input/output/failure mode/retry + 依存 graph
- DATA_SOURCE_SLA.md — 10+ source の retry / stale ceiling / fallback / alert trigger
- CF_WORKER_API.md — Cloudflare Worker `td-proxy` WS/REST endpoint spec
- BRIEFING_IMPLEMENTATION.md — `/briefing` 6 layer 実装詳細 (Deep Research / Quant / Nowcast / Backtest / Struct / Synthesis)
運用 / ops
- INCIDENT_RESPONSE.md — cron fail / LLM down / Vercel down の runbook
- ERROR_CODES.md — structured error code catalog (FR-/TD-/LLM- 等、 resolution path 付き)
- OBSERVABILITY.md — monitoring / alerting / cost tracking
- TEST_MODE.md — 各 script の --dry-run / --force flag matrix
- AUDIT_LOG_SPEC.md — LLM judgment immutable archive + user action log spec
- PERFORMANCE_BENCHMARKS.md — cron / LLM / frontend / payload size の baseline + SLO
Billing / 移行 / 外部 dev
- SPONSOR_BILLING.md — Shopify webhook → sponsor display sync の技術 spec
- SPONSOR_VALUE_PROP.md — 6 tier 価格根拠 (露出 / reach / SLA 明文化)
- AUTH_CLERK_MIGRATION.md — Clerk 導入計画 (Shopify webhook 連携 / paywall)
- DATA_RESIDENCY_STRATEGY.md — US-east → CF edge → JP region 3 phase roadmap
- INTEGRATION_GUIDE.md — external consumer 用 sample (curl / Python / TypeScript) + SDK roadmap
- ARCHITECTURE_DECISION_LOG.md — ADR-001 〜 009 (主要 architectural decision 履歴)
※ 法務関連 (金商法 § 28 disclosure / GDPR-CCPA-APPI 対応) は SHINZO 法務協議後に別途追加予定。