v1.0 リリース:SSR i18n 全クリーンアップ + EDGAR S-1 自動発見 + リリース可用性集約
ホームの SSR コピーを全 locale 対応(SEO + aria + section + thead + footer);EDGAR 全文検索による S-1 自動発見;/api/admin/release-readiness で env_checks + データ健全性 + 審査 + 漂移をまとめ、リリースの単一 GO/NO-GO ビューを提供。
全ての変更を公開。プール変更、レポート編集、ファンダメンタル自動同期 — Anchored の検証可能性への中核的なコミットメント。
メソドロジー → 📡 Subscribe (Atom) →ホームの SSR コピーを全 locale 対応(SEO + aria + section + thead + footer);EDGAR 全文検索による S-1 自動発見;/api/admin/release-readiness で env_checks + データ健全性 + 審査 + 漂移をまとめ、リリースの単一 GO/NO-GO ビューを提供。
_localize_home_html(html, locale) が SSR 段階で 80 件のハードコード zh-CN を 4 locale 対応へ置換;SEO meta / aria-label / hero / テーブル見出し / フィルター / footer の全静的コピーをカバー;クローラと初回描画で中国語が出ない。
/stocks/:ticker SSR と /api/stocks/:ticker/chart はコンテンツ言語検出に切替(stored locale を信頼しない);ヒット時に translate_event_headline_cached で DB cache へ書込;初回訪問で翻訳起動、2 回目は 88ms cache ヒット。
≤5% の漂移は stock_fundamentals に自動 INSERT/UPDATE(status='applied' / decided_by='auto');大きな漂移は admin 判断のまま;日次 cron で滞留解消。analytics_events テーブル + 21 件のホワイトリスト + admin funnel 30 日集計 + 3 主要転換率。
検索ボックスが 8007 社の SEC 上場企業をカバー、プール外は「未追跡」表示。新 /changelog?kind=product で過去の製品更新を表示。Research 層は /account で API 呼出統計を確認可能。
ログイン後初回訪問時に「最初の AI ブリーフを生成」ポップ;Pro+ ユーザーの 3 回目訪問でプッシュ購読 toast;hero 価格が通貨切替に追従;モバイル検索は 🔍 アイコンに。
ホームに 6 深掘りテーマカード入口;銘柄詳細に実 watcher 数表示;新 /why-anchored で Seeking Alpha / Motley Fool 7 軸比較。
SEC EDGAR XBRL から 26/29 銘柄のファンダメンタル自動バックフィル(7%→90%);quote_history × events から履歴 score を算出し score_history に 8717 行投入、バックテストが本稼働。
サブページの logo を Home と統一;dark mode 下の「無料 / ¥49 / 月 / 7 日無料試用」コントラスト修正;ニュース翻訳に Google Translate gtx の key 不要フォールバック追加。
SSR サブページの locale 切替時に cookie 同期で跨ページ持続;nav/dropdown コントラスト改善;hero h1 を強い価値訴求に変更し AI ニュース上書きを廃止;6 chip を行動駆動型へ改名;Claude でニュース見出し翻訳。
ハンバーガー drawer 12 リンク + footer 7 リーガル全 4 locale 翻訳;chart イベントドット描画バグ修正;非アンカー銘柄の日次 swap 候補評価 cron 追加(Serenity 選股ロジック参考)。
/account に 5 チャネル(メール/プッシュ)個別スイッチ;銘柄詳細に 30/90/180 切替 + イベントドット tooltip + クリックでソース;watchlist/AI レポート/portfolio 全て CSV 出力;nav に全銘柄検索 autocomplete 追加。
Initial seed from STOCK_META v68
openai: — → 88anthropic: — → 40spacex: — → 0risk: — → coreInitial seed from STOCK_META v68
openai: — → 5anthropic: — → 92spacex: — → 0risk: — → coreInitial seed from STOCK_META v68
openai: — → 90anthropic: — → 25spacex: — → 0risk: — → balancedInitial seed from STOCK_META v68
openai: — → 92anthropic: — → 0spacex: — → 0risk: — → coreInitial seed from STOCK_META v68
openai: — → 75anthropic: — → 75spacex: — → 40risk: — → coreInitial seed from STOCK_META v68
openai: — → 88anthropic: — → 10spacex: — → 0risk: — → balancedInitial seed from STOCK_META v68
openai: — → 0anthropic: — → 82spacex: — → 0risk: — → coreInitial seed from STOCK_META v68
openai: — → 85anthropic: — → 25spacex: — → 0risk: — → speculativeInitial seed from STOCK_META v68
openai: — → 65anthropic: — → 60spacex: — → 25risk: — → balancedInitial seed from STOCK_META v68
openai: — → 48anthropic: — → 45spacex: — → 15risk: — → speculativeInitial seed from STOCK_META v68
openai: — → 40anthropic: — → 40spacex: — → 20risk: — → speculativeInitial seed from STOCK_META v68
openai: — → 40anthropic: — → 40spacex: — → 20risk: — → speculativeInitial seed from STOCK_META v68
openai: — → 35anthropic: — → 35spacex: — → 15risk: — → balancedInitial seed from STOCK_META v68
openai: — → 50anthropic: — → 45spacex: — → 10risk: — → balancedInitial seed from STOCK_META v68
openai: — → 78anthropic: — → 68spacex: — → 5risk: — → balancedInitial seed from STOCK_META v68
openai: — → 60anthropic: — → 55spacex: — → 10risk: — → coreInitial seed from STOCK_META v68
openai: — → 70anthropic: — → 78spacex: — → 0risk: — → balancedInitial seed from STOCK_META v68
openai: — → 70anthropic: — → 30spacex: — → 10risk: — → balancedInitial seed from STOCK_META v68
openai: — → 65anthropic: — → 50spacex: — → 5risk: — → speculativeInitial seed from STOCK_META v68
openai: — → 60anthropic: — → 55spacex: — → 0risk: — → speculativeInitial seed from STOCK_META v68
openai: — → 55anthropic: — → 50spacex: — → 5risk: — → balancedInitial seed from STOCK_META v68
openai: — → 50anthropic: — → 45spacex: — → 5risk: — → speculativeInitial seed from STOCK_META v68
openai: — → 0anthropic: — → 0spacex: — → 85risk: — → eventInitial seed from STOCK_META v68
openai: — → 0anthropic: — → 0spacex: — → 70risk: — → speculativeInitial seed from STOCK_META v68
openai: — → 0anthropic: — → 0spacex: — → 55risk: — → eventInitial seed from STOCK_META v68
openai: — → 70anthropic: — → 40spacex: — → 5risk: — → balancedInitial seed from STOCK_META v68
openai: — → 80anthropic: — → 35spacex: — → 5risk: — → speculativeInitial seed from STOCK_META v68
openai: — → 50anthropic: — → 55spacex: — → 30risk: — → balancedInitial seed from STOCK_META v68
openai: — → 5anthropic: — → 0spacex: — → 60risk: — → speculativeInitial seed from DEEP_REPORT_TOPICS v70
icon: — → ◆tier: — → proInitial seed from DEEP_REPORT_TOPICS v70
icon: — → ◇tier: — → proInitial seed from DEEP_REPORT_TOPICS v70
icon: — → ▲tier: — → proInitial seed from DEEP_REPORT_TOPICS v70
icon: — → ■tier: — → proInitial seed from DEEP_REPORT_TOPICS v70
icon: — → ★tier: — → research