[{"data":1,"prerenderedAt":972},["ShallowReactive",2],{"navigation":3,"doc-/frontend/i18n":217,"docs-all-paths":917},[4,19,39,63,87,111,127,195,211],{"title":5,"path":6,"stem":7,"children":8},"Welcome","/welcome","01.welcome",[9,11,15],{"title":5,"path":6,"stem":10},"01.welcome/index",{"title":12,"path":13,"stem":14},"Astar とは（5分）","/welcome/product-in-5-min","01.welcome/01.product-in-5-min",{"title":16,"path":17,"stem":18},"事業文脈","/welcome/business-context","01.welcome/02.business-context",{"title":20,"path":21,"stem":22,"children":23},"Getting Started","/getting-started","02.getting-started",[24,27,31,35],{"title":25,"path":21,"stem":26},"はじめかた","02.getting-started/index",{"title":28,"path":29,"stem":30},"リポジトリ取得と環境構築","/getting-started/repo-setup","02.getting-started/01.repo-setup",{"title":32,"path":33,"stem":34},"日々の開発ループ","/getting-started/dev-loop","02.getting-started/02.dev-loop",{"title":36,"path":37,"stem":38},"検証の 4 層","/getting-started/verification-tiers","02.getting-started/03.verification-tiers",{"title":40,"path":41,"stem":42,"children":43},"Architecture","/architecture","03.architecture",[44,47,51,55,59],{"title":45,"path":41,"stem":46},"アーキテクチャ","03.architecture/index",{"title":48,"path":49,"stem":50},"マルチテナンシーと RLS","/architecture/multi-tenancy-rls","03.architecture/01.multi-tenancy-rls",{"title":52,"path":53,"stem":54},"認可モデル","/architecture/authorization","03.architecture/02.authorization",{"title":56,"path":57,"stem":58},"AI サブシステム","/architecture/ai-subsystem","03.architecture/03.ai-subsystem",{"title":60,"path":61,"stem":62},"データモデル","/architecture/data-model","03.architecture/04.data-model",{"title":64,"path":65,"stem":66,"children":67},"Backend","/backend","04.backend",[68,71,75,79,83],{"title":69,"path":65,"stem":70},"バックエンド","04.backend/index",{"title":72,"path":73,"stem":74},"層構造","/backend/layering","04.backend/01.layering",{"title":76,"path":77,"stem":78},"規約","/backend/conventions","04.backend/02.conventions",{"title":80,"path":81,"stem":82},"テスト","/backend/testing","04.backend/03.testing",{"title":84,"path":85,"stem":86},"マイグレーション","/backend/migrations","04.backend/04.migrations",{"title":88,"path":89,"stem":90,"children":91},"Frontend","/frontend","05.frontend",[92,95,99,103,107],{"title":93,"path":89,"stem":94},"フロントエンド","05.frontend/index",{"title":96,"path":97,"stem":98},"モジュール内部構造","/frontend/module-anatomy","05.frontend/01.module-anatomy",{"title":100,"path":101,"stem":102},"API アクセスの一本道","/frontend/api-access-chain","05.frontend/02.api-access-chain",{"title":104,"path":105,"stem":106},"i18n","/frontend/i18n","05.frontend/03.i18n",{"title":108,"path":109,"stem":110},"デザインシステム","/frontend/design-system","05.frontend/04.design-system",{"title":112,"path":113,"stem":114,"children":115},"Go Agent And Cli","/go-agent-and-cli","06.go-agent-and-cli",[116,119,123],{"title":117,"path":113,"stem":118},"Go agent と CLI","06.go-agent-and-cli/index",{"title":120,"path":121,"stem":122},"Go agent","/go-agent-and-cli/go-agent","06.go-agent-and-cli/01.go-agent",{"title":124,"path":125,"stem":126},"CLI","/go-agent-and-cli/cli","06.go-agent-and-cli/02.cli",{"title":128,"path":129,"stem":130,"children":131},"Modules","/modules","07.modules",[132,135,139,143,147,151,155,159,163,167,171,175,179,183,187,191],{"title":133,"path":129,"stem":134},"モジュール","07.modules/index",{"title":136,"path":137,"stem":138},"テーブル","/modules/table","07.modules/01.table",{"title":140,"path":141,"stem":142},"ドキュメントツリー","/modules/document","07.modules/02.document",{"title":144,"path":145,"stem":146},"AIチャット","/modules/ai","07.modules/03.ai",{"title":148,"path":149,"stem":150},"認証・権限","/modules/auth","07.modules/04.auth",{"title":152,"path":153,"stem":154},"AI取込","/modules/organize","07.modules/05.organize",{"title":156,"path":157,"stem":158},"ストレージ","/modules/storage","07.modules/06.storage",{"title":160,"path":161,"stem":162},"NAS同期","/modules/sync","07.modules/07.sync",{"title":164,"path":165,"stem":166},"ワークスペース","/modules/workspace","07.modules/08.workspace",{"title":168,"path":169,"stem":170},"テナントとメンバーシップ","/modules/tenant-membership","07.modules/09.tenant-membership",{"title":172,"path":173,"stem":174},"検索","/modules/search","07.modules/10.search",{"title":176,"path":177,"stem":178},"表示ビュー","/modules/display","07.modules/11.display",{"title":180,"path":181,"stem":182},"テンプレート","/modules/template","07.modules/12.template",{"title":184,"path":185,"stem":186},"メール","/modules/mail","07.modules/13.mail",{"title":188,"path":189,"stem":190},"電話","/modules/phone","07.modules/14.phone",{"title":192,"path":193,"stem":194},"リアルタイム","/modules/realtime","07.modules/15.realtime",{"title":196,"path":197,"stem":198,"children":199},"Infra And Deploy","/infra-and-deploy","08.infra-and-deploy",[200,203,207],{"title":201,"path":197,"stem":202},"インフラとデプロイ","08.infra-and-deploy/index",{"title":204,"path":205,"stem":206},"環境の種類","/infra-and-deploy/environments","08.infra-and-deploy/01.environments",{"title":208,"path":209,"stem":210},"セルフホスト構成","/infra-and-deploy/self-host","08.infra-and-deploy/02.self-host",{"title":212,"path":213,"stem":214,"children":215},"docs-map","/docs-map","09.docs-map/index",[216],{"title":212,"path":213,"stem":214},{"id":218,"title":104,"body":219,"description":912,"extension":913,"meta":914,"navigation":379,"path":105,"seo":915,"stem":106,"__hash__":916},"docs/05.frontend/03.i18n.md",{"type":220,"value":221,"toc":901},"minimark",[222,225,239,246,253,258,268,271,306,313,317,326,409,416,508,530,540,544,547,569,644,651,673,734,749,762,766,784,787,793,819,826,837,841,878,881,897],[223,224,104],"h1",{"id":104},[226,227,228,229,233,234,238],"p",{},"Astar Management のロケールは ",[230,231,232],"strong",{},"ja と ja-plain（やさしい日本語）のみ"," です。英語ロケールは存在しません。",[235,236,237],"code",{},"en"," キーを追加しないでください。",[226,240,241,242,245],{},"原則は ",[230,243,244],{},"i18n-first",": ユーザーに見えるすべての文字列は、必ず i18n キー経由で書きます。テンプレートに直書きした文字列は、ja-plain の差し替えや将来の用語統一を素通りしてしまいます。",[226,247,248,249,252],{},"一次資料は ",[235,250,251],{},"frontend/i18n/CONVENTIONS.md"," です。新しい key をどこに置くか迷ったときは、必ずこのページより先にそちらを確認してください。ここではその要点と、実際に事故が起きた罠を説明します。",[254,255,257],"h2",{"id":256},"二層-グロッサリーの構造","二層 + グロッサリーの構造",[259,260,265],"pre",{"className":261,"code":263,"language":264},[262],"language-text","frontend/i18n/locales/ja/\n├── glossary.json              ← Astar 固有 entity 名の SSoT（最上位）\n├── general.json\n├── foundation/                ← 横断的な共通 UI 文言\n│   ├── actions.json           ← 動詞 / ボタン\n│   ├── common.json            ← フィールド名 / 一般語 / ステータス\n│   ├── form.json              ← バリデーション / submit / cancel\n│   ├── table.json             ← ソート / フィルター / ページネーション\n│   ├── navigation.json        ← サイドバー / breadcrumb\n│   ├── messages.json          ← トースト / 確認ダイアログ\n│   ├── pickers.json           ← icon picker / color picker\n│   ├── search.json\n│   └── datetime.json\n└── modules/{name}/domain.json ← module 固有のドメイン文言のみ\n","text",[235,266,263],{"__ignoreMap":267},"",[226,269,270],{},"新しい key を追加するときの参照優先順序は次の3段階です。",[272,273,274,287,297],"ol",{},[275,276,277,282,283,286],"li",{},[230,278,279],{},[235,280,281],{},"glossary.entities"," に該当があれば ",[235,284,285],{},"@:glossary.entities.X"," で参照する",[275,288,289,282,294,286],{},[230,290,291],{},[235,292,293],{},"foundation.{section}",[235,295,296],{},"@:foundation.{section}.X",[275,298,299,300,305],{},"どちらにも無ければ ",[230,301,302],{},[235,303,304],{},"modules/{name}/domain.json"," に新規追加する",[226,307,308,309,312],{},"module の ",[235,310,311],{},"domain.json"," に書いてよいのは、foundation のテンプレートでは表現できない、その module 固有のドメイン文言だけです。共通語彙を module 側で再定義しないでください。",[254,314,316],{"id":315},"glossary-entity-名の唯一の出所","glossary — entity 名の唯一の出所",[226,318,319,321,322,325],{},[235,320,281],{}," は Astar 固有の18個の正準名詞（table / workspace / dashboard / record / template / role / user / member / widget / property / calendarEvent / storageDevice / tenant / folder / resource / document / file / view）の SSoT です。これらの語は ",[230,323,324],{},"他のどこにも bare 文字列で書きません","。",[259,327,331],{"className":328,"code":329,"language":330,"meta":267,"style":267},"language-json shiki shiki-themes github-light github-dark","// ❌ module 内で entity 名を hardcode\n{ \"modules\": { \"table\": { \"title\": \"テーブル\" } } }\n\n// ✅ linked message 経由\n{ \"modules\": { \"table\": { \"title\": \"@:glossary.entities.table\" } } }\n","json",[235,332,333,342,374,381,387],{"__ignoreMap":267},[334,335,338],"span",{"class":336,"line":337},"line",1,[334,339,341],{"class":340},"sJ8bj","// ❌ module 内で entity 名を hardcode\n",[334,343,345,349,353,356,359,361,364,367,371],{"class":336,"line":344},2,[334,346,348],{"class":347},"sVt8B","{ ",[334,350,352],{"class":351},"sj4cs","\"modules\"",[334,354,355],{"class":347},": { ",[334,357,358],{"class":351},"\"table\"",[334,360,355],{"class":347},[334,362,363],{"class":351},"\"title\"",[334,365,366],{"class":347},": ",[334,368,370],{"class":369},"sZZnC","\"テーブル\"",[334,372,373],{"class":347}," } } }\n",[334,375,377],{"class":336,"line":376},3,[334,378,380],{"emptyLinePlaceholder":379},true,"\n",[334,382,384],{"class":336,"line":383},4,[334,385,386],{"class":340},"// ✅ linked message 経由\n",[334,388,390,392,394,396,398,400,402,404,407],{"class":336,"line":389},5,[334,391,348],{"class":347},[334,393,352],{"class":351},[334,395,355],{"class":347},[334,397,358],{"class":351},[334,399,355],{"class":347},[334,401,363],{"class":351},[334,403,366],{"class":347},[334,405,406],{"class":369},"\"@:glossary.entities.table\"",[334,408,373],{"class":347},[226,410,411,412,415],{},"vue-i18n の ",[235,413,414],{},"@:foo.bar"," 構文で別 key を参照します。",[259,417,419],{"className":328,"code":418,"language":330,"meta":267,"style":267},"{\n  \"modules\": {\n    \"table\": {\n      \"title\": \"@:glossary.entities.table\",\n      \"subtitle\": \"{count}個の@:glossary.entities.table\",\n      \"actions\": {\n        \"create\": \"@:glossary.entities.table を作成\"\n      }\n    }\n  }\n}\n",[235,420,421,426,434,441,453,465,473,484,490,496,502],{"__ignoreMap":267},[334,422,423],{"class":336,"line":337},[334,424,425],{"class":347},"{\n",[334,427,428,431],{"class":336,"line":344},[334,429,430],{"class":351},"  \"modules\"",[334,432,433],{"class":347},": {\n",[334,435,436,439],{"class":336,"line":376},[334,437,438],{"class":351},"    \"table\"",[334,440,433],{"class":347},[334,442,443,446,448,450],{"class":336,"line":383},[334,444,445],{"class":351},"      \"title\"",[334,447,366],{"class":347},[334,449,406],{"class":369},[334,451,452],{"class":347},",\n",[334,454,455,458,460,463],{"class":336,"line":389},[334,456,457],{"class":351},"      \"subtitle\"",[334,459,366],{"class":347},[334,461,462],{"class":369},"\"{count}個の@:glossary.entities.table\"",[334,464,452],{"class":347},[334,466,468,471],{"class":336,"line":467},6,[334,469,470],{"class":351},"      \"actions\"",[334,472,433],{"class":347},[334,474,476,479,481],{"class":336,"line":475},7,[334,477,478],{"class":351},"        \"create\"",[334,480,366],{"class":347},[334,482,483],{"class":369},"\"@:glossary.entities.table を作成\"\n",[334,485,487],{"class":336,"line":486},8,[334,488,489],{"class":347},"      }\n",[334,491,493],{"class":336,"line":492},9,[334,494,495],{"class":347},"    }\n",[334,497,499],{"class":336,"line":498},10,[334,500,501],{"class":347},"  }\n",[334,503,505],{"class":336,"line":504},11,[334,506,507],{"class":347},"}\n",[509,510,511,516,522,527],"ul",{},[275,512,513,514],{},"単独参照: ",[235,515,406],{},[275,517,518,519],{},"文中埋込: ",[235,520,521],{},"\"新しい@:glossary.entities.table\"",[275,523,524,525],{},"補間との併用: ",[235,526,462],{},[275,528,529],{},"ネストした linked message は使いません（深さ1まで）",[226,531,532,533,539],{},"entity 名を hardcode してはいけない理由は実利的です。",[230,534,535,536,538],{},"glossary を linked message 化しておけば、ja-plain 側は ",[235,537,281],{}," を上書きするだけで全 module の用語が一括で切り替わります。"," module 内に bare 文字列で書いてしまうと、その module だけ ja-plain の用語統一から漏れます。",[254,541,543],{"id":542},"foundation-共通語彙の-ssot","foundation — 共通語彙の SSoT",[226,545,546],{},"エンティティに紐づかない属性名や動詞は foundation 側に集約します。",[509,548,549,559],{},[275,550,551,554,555,558],{},[230,552,553],{},"フィールド名","（名前・説明・ステータス・タイプ・カテゴリ・タグ・アイコン・作成日時 …）→ ",[235,556,557],{},"foundation.common.fields"," が SSoT。各 module で再定義しません。",[275,560,561,564,565,568],{},[230,562,563],{},"動詞・ボタン文言","（保存・キャンセル・削除・編集・新規作成・追加・検索・フィルター・エクスポート・コピー・複製 …）→ ",[235,566,567],{},"foundation.actions"," が SSoT。",[259,570,574],{"className":571,"code":572,"language":573,"meta":267,"style":267},"language-typescript shiki shiki-themes github-light github-dark","// Do: foundation テンプレート + glossary entity の組み合わせ\ntoast.success(t('foundation.messages.success.targetCreated', { target: t('glossary.entities.table') }))\n\n// Don't: foundation で表現できるテキストを module domain.json に書く\ntoast.success(t('modules.table.messages.created'))  // ❌\n","typescript",[235,575,576,581,614,618,623],{"__ignoreMap":267},[334,577,578],{"class":336,"line":337},[334,579,580],{"class":340},"// Do: foundation テンプレート + glossary entity の組み合わせ\n",[334,582,583,586,590,593,596,598,601,604,606,608,611],{"class":336,"line":344},[334,584,585],{"class":347},"toast.",[334,587,589],{"class":588},"sScJk","success",[334,591,592],{"class":347},"(",[334,594,595],{"class":588},"t",[334,597,592],{"class":347},[334,599,600],{"class":369},"'foundation.messages.success.targetCreated'",[334,602,603],{"class":347},", { target: ",[334,605,595],{"class":588},[334,607,592],{"class":347},[334,609,610],{"class":369},"'glossary.entities.table'",[334,612,613],{"class":347},") }))\n",[334,615,616],{"class":336,"line":376},[334,617,380],{"emptyLinePlaceholder":379},[334,619,620],{"class":336,"line":383},[334,621,622],{"class":340},"// Don't: foundation で表現できるテキストを module domain.json に書く\n",[334,624,625,627,629,631,633,635,638,641],{"class":336,"line":389},[334,626,585],{"class":347},[334,628,589],{"class":588},[334,630,592],{"class":347},[334,632,595],{"class":588},[334,634,592],{"class":347},[334,636,637],{"class":369},"'modules.table.messages.created'",[334,639,640],{"class":347},"))  ",[334,642,643],{"class":340},"// ❌\n",[254,645,647,650],{"id":646},"jaindexts-マウント漏れの罠",[235,648,649],{},"ja/index.ts"," マウント漏れの罠",[226,652,653,656,657,660,661,664,665,668,669,672],{},[235,654,655],{},"frontend/i18n/locales/ja/index.ts"," は、",[235,658,659],{},"foundation/*.json"," と ",[235,662,663],{},"modules/*/domain.json"," を1ファイルずつ ",[235,666,667],{},"import"," し、最終的な messages オブジェクトへ ",[230,670,671],{},"手作業で列挙して"," マウントするファイルです。",[259,674,676],{"className":571,"code":675,"language":573,"meta":267,"style":267},"// import 部分\nimport tagDomain from './modules/tag/domain.json'\n\n// マウント部分（messages オブジェクトの組み立て）\nmodules: {\n  // ...\n  tag: tagDomain.modules.tag,\n  // ...\n}\n",[235,677,678,683,697,701,706,713,718,726,730],{"__ignoreMap":267},[334,679,680],{"class":336,"line":337},[334,681,682],{"class":340},"// import 部分\n",[334,684,685,688,691,694],{"class":336,"line":344},[334,686,667],{"class":687},"szBVR",[334,689,690],{"class":347}," tagDomain ",[334,692,693],{"class":687},"from",[334,695,696],{"class":369}," './modules/tag/domain.json'\n",[334,698,699],{"class":336,"line":376},[334,700,380],{"emptyLinePlaceholder":379},[334,702,703],{"class":336,"line":383},[334,704,705],{"class":340},"// マウント部分（messages オブジェクトの組み立て）\n",[334,707,708,711],{"class":336,"line":389},[334,709,710],{"class":588},"modules",[334,712,433],{"class":347},[334,714,715],{"class":336,"line":467},[334,716,717],{"class":340},"  // ...\n",[334,719,720,723],{"class":336,"line":475},[334,721,722],{"class":588},"  tag",[334,724,725],{"class":347},": tagDomain.modules.tag,\n",[334,727,728],{"class":336,"line":486},[334,729,717],{"class":340},[334,731,732],{"class":336,"line":492},[334,733,507],{"class":347},[735,736,738],"callout",{"type":737},"warning",[226,739,740,741,744,745,748],{},"i18n キーが JSON ファイルに存在していても、この ",[235,742,743],{},"index.ts"," の import / マウント列挙に追加されていなければ、そのキーは実行時に解決されません。",[235,746,747],{},"t('modules.newFeature.title')"," は生のキー文字列がそのまま画面に表示され、値は空になります。",[226,750,751,752,761],{},"これは lint（missing-key チェック）では検出できません。JSON ファイル上はキーが存在しているため、静的解析からは問題なく見えるからです。",[230,753,754,755,757,758,760],{},"新しい module の ",[235,756,311],{}," を追加したときは、必ず ",[235,759,649],{}," の import とマウントの両方に追記し、実際に画面を目視で確認してください。"," L3 のビジュアル検証が唯一の実効的な検知手段です。",[254,763,765],{"id":764},"動的キー-namespace","動的キー namespace",[226,767,768,771,772,775,776,779,780,783],{},[235,769,770],{},"t()"," に動的に組み立てたキー（",[235,773,774],{},"t(","modules.${moduleName}.title",[235,777,778],{},")"," のような形）を使う場合、ESLint の ",[235,781,782],{},"usedKeys"," リストへの登録が必要です。登録漏れは missing-key lint で検知されます。",[254,785,786],{"id":786},"過剰和訳禁止",[226,788,789,790,325],{},"ja-plain（やさしい日本語）は ja の差分 overlay ですが、ユーザーがすでに知っている外来語まで無理に和訳しません。次のカテゴリは ",[230,791,792],{},"横文字のまま残します",[509,794,795,798,801,804,807,810,813,816],{},[275,796,797],{},"人系: メンバー / ユーザー",[275,799,800],{},"装飾系: アイコン / タグ / バッジ",[275,802,803],{},"記録系: メモ / ノート / コメント",[275,805,806],{},"分類系: タイプ / カテゴリ / ステータス",[275,808,809],{},"動作系: コピー / ペースト / キャンセル / プレビュー",[275,811,812],{},"ファイル系: ファイル / フォルダ / ダウンロード / アップロード",[275,814,815],{},"UI系: メニュー / サイドバー / ボタン / リンク / ログイン / パスワード",[275,817,818],{},"意味ズレ語: ストレージデバイス / リソース / クラウドストレージ",[226,820,821,822,825],{},"和訳を採用してよいかどうかは次の3条件が ",[230,823,824],{},"すべて YES"," の場合のみです。1つでも NO なら横文字のままにします。",[272,827,828,831,834],{},[275,829,830],{},"Excel / freee / kintone 日本語版に一般化された置換語があるか",[275,832,833],{},"法律事務員（紙文化が長い人）にとって紙文化と繋がる語か",[275,835,836],{},"意味のズレや概念の欠落が起きないか",[254,838,840],{"id":839},"新しい-module-を追加するときの手順","新しい module を追加するときの手順",[272,842,843,849,855,861,867,875],{},[275,844,845,848],{},[235,846,847],{},"i18n/locales/ja/modules/{name}/domain.json"," を作成する",[275,850,851,852,854],{},"entity 名は ",[235,853,285],{}," 経由で参照し、bare 文字列で書かない",[275,856,857,858,860],{},"共通フィールド名・動詞は ",[235,859,296],{}," 経由で参照する",[275,862,863,864,866],{},"module 固有のドメイン文言だけを ",[235,865,311],{}," に書く",[275,868,869,874],{},[230,870,871,873],{},[235,872,649],{}," の import とマウント列挙の両方に追記する","（上記の罠を参照）",[275,876,877],{},"ja-plain 側は基本的に書かない（主要 module 以外は ja に fall back する）",[254,879,880],{"id":880},"次の一歩",[509,882,883,889],{},[275,884,885,888],{},[886,887,108],"a",{"href":109}," — UI 文言以外の見た目のルール",[275,890,891,893,894,896],{},[886,892,96],{"href":97}," — ",[235,895,311],{}," を置く module 構造そのもの",[898,899,900],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":267,"searchDepth":344,"depth":344,"links":902},[903,904,905,906,908,909,910,911],{"id":256,"depth":344,"text":257},{"id":315,"depth":344,"text":316},{"id":542,"depth":344,"text":543},{"id":646,"depth":344,"text":907},"ja/index.ts マウント漏れの罠",{"id":764,"depth":344,"text":765},{"id":786,"depth":344,"text":786},{"id":839,"depth":344,"text":840},{"id":880,"depth":344,"text":880},"foundation.* テンプレート / glossary.entities.* 正準名詞 / module domain.json の二層+グロッサリー構造。i18n-first の原則とja/index.tsマウント漏れの罠。","md",{},{"title":104,"description":912},"1TMJwuVfFOCL-Oy_pMqCuiqvNg5EmREL1GH9T6WRwRs",[918,920,921,923,924,925,926,927,928,929,930,931,933,934,935,936,937,939,940,941,942,943,945,947,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,967,968,969,970],{"path":13,"title":919},"Astar とは何か（5分で）",{"path":17,"title":16},{"path":6,"title":922},"ようこそ",{"path":29,"title":28},{"path":33,"title":32},{"path":37,"title":36},{"path":21,"title":25},{"path":49,"title":48},{"path":53,"title":52},{"path":57,"title":56},{"path":61,"title":60},{"path":41,"title":932},"システムアーキテクチャ",{"path":73,"title":72},{"path":77,"title":76},{"path":81,"title":80},{"path":85,"title":84},{"path":65,"title":938},"バックエンドガイド",{"path":97,"title":96},{"path":101,"title":100},{"path":105,"title":104},{"path":109,"title":108},{"path":89,"title":944},"フロントエンドガイド",{"path":121,"title":946},"Go agent — NAS 同期エージェント",{"path":125,"title":948},"astar CLI",{"path":113,"title":117},{"path":137,"title":136},{"path":141,"title":140},{"path":145,"title":144},{"path":149,"title":148},{"path":153,"title":152},{"path":157,"title":156},{"path":161,"title":160},{"path":165,"title":164},{"path":169,"title":168},{"path":173,"title":172},{"path":177,"title":176},{"path":181,"title":180},{"path":185,"title":184},{"path":189,"title":188},{"path":193,"title":192},{"path":129,"title":966},"モジュール索引",{"path":205,"title":204},{"path":209,"title":208},{"path":197,"title":201},{"path":213,"title":971},"docs/ 地図",1785452455101]