[{"data":1,"prerenderedAt":686},["ShallowReactive",2],{"navigation":3,"doc-/modules/organize":217,"docs-all-paths":631},[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":152,"body":219,"description":625,"extension":626,"meta":627,"navigation":628,"path":153,"seo":629,"stem":154,"__hash__":630},"docs/07.modules/05.organize.md",{"type":220,"value":221,"toc":616},"minimark",[222,226,230,234,237,304,308,357,510,514,530,554,558,579],[223,224,152],"h1",{"id":225},"ai取込",[227,228,229],"h2",{"id":229},"一言でいうと",[231,232,233],"p",{},"Astar の「転記を根絶する」中核機能。PDF・画像・スキャン文書を OCR にかけ、AI にテーブルのスキーマへ抽出させ、確認を経てテーブルのレコードとして書き込むパイプライン。単発の変換ではなく、ステップの列（OCR アンカリング → 抽出 → 検証 → ギャップ検出 → レコード挿入）として実装された明示的なワークフローで、途中経過は SSE で配信される。",[227,235,236],{"id":236},"主要ドメイン概念",[238,239,240,253],"table",{},[241,242,243],"thead",{},[244,245,246,250],"tr",{},[247,248,249],"th",{},"概念",[247,251,252],{},"役割",[254,255,256,265,280,288,296],"tbody",{},[244,257,258,262],{},[259,260,261],"td",{},"Organize Job",[259,263,264],{},"1回の取込実行。対象文書・出力テーブル・状態を持つ",[244,266,267,273],{},[259,268,269],{},[270,271,272],"code",{},"AiExtractorPort",[259,274,275,276,279],{},"AI へ抽出を依頼するポート。実装は AI チャット基盤（",[270,277,278],{},"AIChatServiceAdapter","）を再利用する",[244,281,282,285],{},[259,283,284],{},"Fund Flow Candidate",[259,286,287],{},"護 (mamoru) の入出金明細のような「候補レコード」。マージ・重複排除の対象になる",[244,289,290,293],{},[259,291,292],{},"Gap（ギャップ）",[259,294,295],{},"抽出結果のうち、必須項目が埋まらなかった箇所。ユーザーへの確認を促す",[244,297,298,301],{},[259,299,300],{},"triage-capture",[259,302,303],{},"「AIに渡す」フォルダに投げ込まれた文書を自動で仕分けする automation スキル",[227,305,307],{"id":306},"backend-構造","Backend 構造",[231,309,310,313,314,317,318,317,321,324,325,328,329,328,332,328,335,328,338,328,341,328,344,328,347,328,350,328,353,356],{},[270,311,312],{},"core/organize/"," は ",[270,315,316],{},"api","/",[270,319,320],{},"domain",[270,322,323],{},"infrastructure"," の直下に加えて、責務ごとのサブパッケージ（",[270,326,327],{},"workflow","・",[270,330,331],{},"extraction",[270,333,334],{},"pack",[270,336,337],{},"learning",[270,339,340],{},"interview",[270,342,343],{},"citation",[270,345,346],{},"convert",[270,348,349],{},"videoevidence",[270,351,352],{},"publicaccess",[270,354,355],{},"review","）を持つ、モジュール内モジュールの構成になっている。",[358,359,360,371,410,439,448,454,464,487,499],"ul",{},[361,362,363,366,367,370],"li",{},[270,364,365],{},"api/controller/OrganizeController",": Organize Job の起動 (",[270,368,369],{},"POST"," / idempotency key 対応)・進捗取得・リトライ・レコードマージ・ファンドフロー候補の取得を公開する",[361,372,373,376,377,380,381,384,385,384,388,317,391,384,394,384,397,384,400,317,403,384,406,409],{},[270,374,375],{},"workflow/domain/service/",": パイプライン本体。",[270,378,379],{},"OrganizeWorkflowRunner"," がステップ列を順に実行する。ステップは ",[270,382,383],{},"ResolveDocumentsStep"," → ",[270,386,387],{},"OcrAnchorStep",[270,389,390],{},"ExtractSingleDocumentStep",[270,392,393],{},"ExtractMultiTableDocumentStep",[270,395,396],{},"ValidateExtractionStep",[270,398,399],{},"GapDetectionStep",[270,401,402],{},"InsertRecordsStep",[270,404,405],{},"InsertMultiTableRecordsStep",[270,407,408],{},"FinalizeSingleTableJobStep"," のように、明示的な Step クラスとして分解されている（単一テーブル抽出と複数テーブル抽出で別系統のステップを持つ）",[361,411,412,415,416,418,419,422,423,426,427,430,431,434,435,438],{},[270,413,414],{},"extraction/domain/",": ",[270,417,272],{},"（AI 抽出のポート）、",[270,420,421],{},"ExtractionRouter","、",[270,424,425],{},"PromptGeneratorService","（抽出プロンプト生成）、",[270,428,429],{},"ExtractionResponseParser"," / ",[270,432,433],{},"ExtractionValidatorPort","（AI 応答の検証）、",[270,436,437],{},"ExtractionCorrectionLoop","（検証エラー時の再試行）",[361,440,441,328,444,447],{},[270,442,443],{},"citation/domain/service/SourceReferenceService",[270,445,446],{},"OcrAlignmentService",": 抽出値が元文書のどこに書かれていたかを紐付ける「根拠出典」機能",[361,449,450,453],{},[270,451,452],{},"learning/domain/service/LearnedCorrectionService",": ユーザーが手動修正した内容を学習し、次回の抽出精度を上げる",[361,455,456,459,460,463],{},[270,457,458],{},"pack/",": 抽出結果を既存の書式（フォーマットパック）に流し込んで文書生成する（",[270,461,462],{},"PackPipelineService"," 等）",[361,465,466,415,469,472,473,317,476,479,480,317,483,486],{},[270,467,468],{},"review/domain/service/",[270,470,471],{},"PassbookBalanceCheckService","（通帳残高整合性チェック）、",[270,474,475],{},"FundFlowCandidateQueryService",[270,477,478],{},"FundFlowCandidateStatusService","（入出金候補の一覧・状態管理）、",[270,481,482],{},"RecordMergeService",[270,484,485],{},"RecordDeduplicationService","（重複レコードのマージ）",[361,488,489,415,492,328,495,498],{},[270,490,491],{},"infrastructure/listener/",[270,493,494],{},"OrganizeWorkspaceBootstrapListener",[270,496,497],{},"OrganizeTemplateBackfillListener","（ワークスペース作成時の初期化系リスナー）",[361,500,501,502,505,506,509],{},"進捗配信は ",[270,503,504],{},"workflow/api/controller/OrganizeJobEventController"," + ",[270,507,508],{},"OrganizeSseEmitterFactory"," が SSE で行う",[227,511,513],{"id":512},"frontend-構造","Frontend 構造",[231,515,516,519,520,328,523,328,526,529],{},[270,517,518],{},"app/modules/organize/"," は規約の4分類に ",[270,521,522],{},"services",[270,524,525],{},"validators",[270,527,528],{},"utils"," を加えた構成。",[358,531,532,548],{},[361,533,534,415,537,539,540,543,544,547],{},[270,535,536],{},"components/",[270,538,458],{},"（フォーマットパック UI）、",[270,541,542],{},"convert/","（変換 UI）、",[270,545,546],{},"workspace/","（取込先ワークスペース選択）",[361,549,550,553],{},[270,551,552],{},"composables/",": Organize Job の起動・進捗購読・結果確認のロジック",[227,555,557],{"id":556},"listener駆動と-triage-capture","listener駆動と triage-capture",[231,559,560,561,564,565,567,568,570,571,574,575,578],{},"AI 取込は「ユーザーが明示的に取込ボタンを押す」経路（",[270,562,563],{},"OrganizeController.startOrganize","）に加えて、automation の ",[270,566,300],{}," スキル経由でも起動する。事務所メンバーが、テンプレート適用などの明示操作で ",[270,569,300],{}," 自動化を追加した「AIに渡す」フォルダへ文書を投げ込むと、",[270,572,573],{},"document.created"," イベントが ",[270,576,577],{},"AutomationRuleEventDispatcher"," によって dispatch され、スキルが文書を読んで適切な業務テーブルへ振り分ける。新規テナントへ実行ルールを自動投入する経路はない。",[580,581,583],"callout",{"type":582},"warning",[231,584,585,587,588,591,592,595,596,599,600,603,604,607,608,611,612,615],{},[270,586,300],{}," の自動実行は本来、AI メンバーを紐付けない ",[270,589,590],{},"AUTO"," document イベントとして拒否されるはずの経路（",[270,593,594],{},"validateSkillRequiresAiMember","）だが、",[270,597,598],{},"document.*"," イベントに限り ",[270,601,602],{},"event.actorUserId","（＝文書を投げ込んだ本人）の権限で実行される特例になっている。",[270,605,606],{},"EVENT_SYSTEM_USER"," への昇格は発生しない。フィルタも ",[270,609,610],{},"/*/AIに渡す/*"," という直下限定パターンで、",[270,613,614],{},"**"," にすると「AIに渡す」フォルダ自身の作成イベントにまで誤爆するため意図的に一段階に絞られている——このパターンを新しい automation ルールのひな形にする際は、フィルタの階層をそのままコピーしないこと。",{"title":617,"searchDepth":618,"depth":618,"links":619},"",2,[620,621,622,623,624],{"id":229,"depth":618,"text":229},{"id":236,"depth":618,"text":236},{"id":306,"depth":618,"text":307},{"id":512,"depth":618,"text":513},{"id":556,"depth":618,"text":557},"PDF/画像 → OCR → AI → 構造化レコードのパイプライン。listener駆動、triage-capture。backend core/organize ⇄ frontend app/modules/organize の深掘り。","md",{},true,{"title":152,"description":625},"qsNnchprXdOdjyPIYZRoMfjDtzpm8TPfbtaRTVVGXiQ",[632,634,635,637,638,639,640,641,642,643,644,645,647,648,649,650,651,653,654,655,656,657,659,661,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,681,682,683,684],{"path":13,"title":633},"Astar とは何か（5分で）",{"path":17,"title":16},{"path":6,"title":636},"ようこそ",{"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":646},"システムアーキテクチャ",{"path":73,"title":72},{"path":77,"title":76},{"path":81,"title":80},{"path":85,"title":84},{"path":65,"title":652},"バックエンドガイド",{"path":97,"title":96},{"path":101,"title":100},{"path":105,"title":104},{"path":109,"title":108},{"path":89,"title":658},"フロントエンドガイド",{"path":121,"title":660},"Go agent — NAS 同期エージェント",{"path":125,"title":662},"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":680},"モジュール索引",{"path":205,"title":204},{"path":209,"title":208},{"path":197,"title":201},{"path":213,"title":685},"docs/ 地図",1785452455342]