[{"data":1,"prerenderedAt":730},["ShallowReactive",2],{"navigation":3,"doc-/modules/template":217,"docs-all-paths":675},[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":180,"body":219,"description":669,"extension":670,"meta":671,"navigation":672,"path":181,"seo":673,"stem":182,"__hash__":674},"docs/07.modules/12.template.md",{"type":220,"value":221,"toc":660},"minimark",[222,225,229,241,244,353,357,487,491,501,566,569,625],[223,224,180],"h1",{"id":180},[226,227,228],"h2",{"id":228},"一言でいうと",[230,231,232,236,237,240],"p",{},[233,234,235],"code",{},"Template"," は「テーブル・ドキュメント・画面・自動化ルールをひとまとめにして一括投入できる雛形」です。3種類の ",[233,238,239],{},"TemplateType"," があり、単純な「既存テーブルへレコードを流し込む」ものから、複数リソースを組み合わせた複合セット、さらにテンプレート同士を組み合わせるものまで段階があります。業種（法律事務所/visa/it-ops）別のスターターコンテンツとして、テナント作成時に自動投入される用途が中心です。",[226,242,243],{"id":243},"主要ドメイン概念",[245,246,247,260],"table",{},[248,249,250],"thead",{},[251,252,253,257],"tr",{},[254,255,256],"th",{},"概念",[254,258,259],{},"役割",[261,262,263,281,301,326,336],"tbody",{},[251,264,265,270],{},[266,267,268],"td",{},[233,269,235],{},[266,271,272,273,276,277,280],{},"テンプレート本体。",[233,274,275],{},"type: TemplateType"," + ",[233,278,279],{},"content: TemplateContent","（polymorphic JSONB）",[251,282,283,287],{},[266,284,285],{},[233,286,239],{},[266,288,289,292,293,296,297,300],{},[233,290,291],{},"RECORD_SET","（既存テーブルへのレコード一括作成、階層対応） / ",[233,294,295],{},"RESOURCE_SET","（テーブル・フィルタプリセット・ドキュメント構造・ファイル・画面・automationの複合） / ",[233,298,299],{},"WORKSPACE","（複数テンプレートの組み合わせ適用、Phase 2）",[251,302,303,308],{},[266,304,305],{},[233,306,307],{},"TemplateContent",[266,309,310,311,314,315,314,318,321,322,325],{},"sealed interface。",[233,312,313],{},"RecordSetContent"," / ",[233,316,317],{},"ResourceSetContent",[233,319,320],{},"WorkspaceContent"," が ",[233,323,324],{},"@SerialName"," discriminator で分岐",[251,327,328,333],{},[266,329,330],{},[233,331,332],{},"VariableDefinition",[266,334,335],{},"テンプレート適用時にユーザー入力で埋める変数（型・バリデーションルール・表示条件を持つ）",[251,337,338,346],{},[266,339,340,314,343],{},[233,341,342],{},"StarterContentCatalog",[233,344,345],{},"StarterContentSeed",[266,347,348,349,352],{},"業種プラグイン別のスターターコンテンツ定義。テナント作成時に ",[233,350,351],{},"tenant.hasPlugin(pluginId)"," を見て投入",[226,354,356],{"id":355},"backend-構造","Backend 構造",[358,359,360,382,395,401,414,424,469,478],"ul",{},[361,362,363,366,367,370,371,374,375,378,379],"li",{},[233,364,365],{},"api/controller/TemplateController.kt",": CRUD、複製（",[233,368,369],{},"/duplicate","）、適用系3エンドポイント — ",[233,372,373],{},"/{id}/apply","（RECORD_SET）、",[233,376,377],{},"/{id}/apply-resource-set","、",[233,380,381],{},"/{id}/apply-workspace",[361,383,384,387,388,378,391,394],{},[233,385,386],{},"api/controller/TemplateExportController.kt",": 既存フォルダ/ワークスペースをテンプレート化するための export（",[233,389,390],{},"/folder-tree/{folderId}",[233,392,393],{},"/workspace/{workspaceId}","）",[361,396,397,400],{},[233,398,399],{},"domain/service/TemplateService.kt",": CRUD 本体",[361,402,403,314,406,409,410,413],{},[233,404,405],{},"domain/service/ResourceSetApplyService.kt",[233,407,408],{},"WorkspaceApplyService.kt",": 適用フロー本体。",[233,411,412],{},"ResourceSetApplyService.tryApplyResourceSetByKey"," はスターターコンテンツ seeder からも再利用される単一の実体化経路",[361,415,416,419,420,423],{},[233,417,418],{},"domain/service/VariableResolver.kt",": ",[233,421,422],{},"content"," 内の変数プレースホルダをユーザー入力値で解決",[361,425,426,419,429,431,432,435,436,439,440,431,442,445,446,445,449,445,452,445,455,445,458,439,461,431,463,276,466,394],{},[233,427,428],{},"domain/model/content/",[233,430,313],{},"（",[233,433,434],{},"records: List\u003CRecordDefinition>"," + 親子関係の ",[233,437,438],{},"parentField","）、",[233,441,317],{},[233,443,444],{},"tables","/",[233,447,448],{},"filterPresets",[233,450,451],{},"documents",[233,453,454],{},"files",[233,456,457],{},"tableScreens",[233,459,460],{},"automations",[233,462,320],{},[233,464,465],{},"templates: List\u003CTemplateReference>",[233,467,468],{},"applyOrder",[361,470,471,474,475,477],{},[233,472,473],{},"infrastructure/seeder/StarterContentSeeder.kt",": テナント作成時、業種プラグインごとの ",[233,476,295],{}," を可視ワークスペースへ投入する。フォルダ存在ベースの冪等性（同名フォルダが既にあればスキップ）",[361,479,480,314,483,486],{},[233,481,482],{},"infrastructure/listener/StarterContentBootstrapListener.kt",[233,484,485],{},"StarterContentBackfillListener.kt",": テナント作成イベント契機の投入、既存テナントへの後追い投入",[226,488,490],{"id":489},"frontend-構造","Frontend 構造",[230,492,493,496,497,500],{},[233,494,495],{},"app/modules/template/"," は4分類に加えて ",[233,498,499],{},"save-as/"," サブディレクトリを持ちます。",[358,502,503,539],{},[361,504,505,419,508,511,512,378,515,378,518,314,521,314,524,527,528,378,531,534,535,538],{},[233,506,507],{},"composables/",[233,509,510],{},"useTemplates","（一覧）、",[233,513,514],{},"useTemplateDetail",[233,516,517],{},"useTemplateForm",[233,519,520],{},"useTemplateApply",[233,522,523],{},"useResourceSetApply",[233,525,526],{},"useWorkspaceApply","（3種の適用フロー）、",[233,529,530],{},"useVariableResolver",[233,532,533],{},"useConditionalVisibility","（変数の表示条件）、",[233,536,537],{},"useSaveAsTemplate","（既存リソースをテンプレート化）",[361,540,541,419,544,547,548,314,551,554,555,558,559,431,562,565],{},[233,542,543],{},"components/",[233,545,546],{},"TemplateBrowserDialog.vue","（一覧・選択）、",[233,549,550],{},"TemplateApplyDialog.vue",[233,552,553],{},"TemplateVariableInputPanel.vue","（適用時の変数入力）、",[233,556,557],{},"TemplateImpactSummary.vue","（適用結果プレビュー）、",[233,560,561],{},"OrganizeSchemaEditor.vue",[233,563,564],{},"organize"," の護ひな型スキーマ編集UI。テンプレートタイプではなく、テンプレート内で扱う JSONB スキーマの編集器として同居）",[226,567,568],{"id":568},"他モジュールとの辺",[358,570,571,582,590,599,612],{},[361,572,573,419,575,577,578,581],{},[233,574,245],{},[233,576,291],{}," の適用は最終的に ",[233,579,580],{},"RecordService.persistNewRecords"," を通る（テーブルの単一レコード作成経路と同じ）",[361,583,584,419,587,589],{},[233,585,586],{},"editor",[233,588,295],{}," のドキュメント構造・ファイルはドキュメントツリー上に実体化される",[361,591,592,419,595,598],{},[233,593,594],{},"screen",[233,596,597],{},"ResourceSetContent.tableScreens"," で、テーブル雛形と同時にダッシュボード画面も投入できる",[361,600,601,419,604,607,608,611],{},[233,602,603],{},"automation",[233,605,606],{},"ResourceSetContent.automations"," で自動化ルールも同時にプロビジョニングできる（",[233,609,610],{},"AutomationPresetJsonDecoder"," でデコード）",[361,613,614,616,617,620,621,624],{},[233,615,564],{},": 護（mamoru）ひな型（markdown ベース）は別軸の ",[233,618,619],{},"OrganizeSchemaSeeder"," が担当し、",[233,622,623],{},"template"," の seeder とは別フォルダ・別カタログで競合しない（下記callout参照）",[626,627,629],"callout",{"type":628},"warning",[230,630,631,633,634,637,638,641,642,645,646,649,650,652,653,314,655,314,657,659],{},[233,632,239],{}," は過去 ",[233,635,636],{},"ORGANIZE_SCHEMA"," を含む4種でしたが、2026-05 の Phase 4-A で削除されています。OrganizeSchema（護のMDB解析ひな型）は ",[233,639,640],{},"templates.content"," JSONB ベースの管理をやめ、",[233,643,644],{},"document_node"," + markdown frontmatter ベースへ移行済みです（",[233,647,648],{},"OrganizeSchemaMarkdownSerializer"," 参照）。「テンプレートは4種」という古い記述を見かけたら、それは stale です — 現在の ",[233,651,239],{}," は ",[233,654,291],{},[233,656,295],{},[233,658,299],{}," の3種のみ。",{"title":661,"searchDepth":662,"depth":662,"links":663},"",2,[664,665,666,667,668],{"id":228,"depth":662,"text":228},{"id":243,"depth":662,"text":243},{"id":355,"depth":662,"text":356},{"id":489,"depth":662,"text":490},{"id":568,"depth":662,"text":568},"テンプレート (RECORD_SET / RESOURCE_SET / WORKSPACE) と適用フロー。core/template ⇄ app/modules/template の深掘り。","md",{},true,{"title":180,"description":669},"62ptYnDkzWp1RNdpQzVh0QUMx3Fj9ZeGHH_wr1PFN-s",[676,678,679,681,682,683,684,685,686,687,688,689,691,692,693,694,695,697,698,699,700,701,703,705,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,727,728],{"path":13,"title":677},"Astar とは何か（5分で）",{"path":17,"title":16},{"path":6,"title":680},"ようこそ",{"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":690},"システムアーキテクチャ",{"path":73,"title":72},{"path":77,"title":76},{"path":81,"title":80},{"path":85,"title":84},{"path":65,"title":696},"バックエンドガイド",{"path":97,"title":96},{"path":101,"title":100},{"path":105,"title":104},{"path":109,"title":108},{"path":89,"title":702},"フロントエンドガイド",{"path":121,"title":704},"Go agent — NAS 同期エージェント",{"path":125,"title":706},"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":724},"モジュール索引",{"path":205,"title":204},{"path":209,"title":208},{"path":197,"title":201},{"path":213,"title":729},"docs/ 地図",1785452455440]