{
    "generated_at": "2026-09-18 18:14:48",
    "root": "/volume1/web/gpt",
    "overall": "FAIL",
    "summary": {
        "ok": 78,
        "warn": 14,
        "fail": 3,
        "total": 95,
        "overall": "FAIL"
    },
    "checks": [
        {
            "group": "core_files",
            "name": "api.php",
            "status": "OK",
            "detail": "found / 2026-09-18 09:05:02",
            "meta": {
                "exists": true,
                "size": 64179,
                "mtime": "2026-09-18 09:05:02"
            }
        },
        {
            "group": "core_files",
            "name": "engine.php",
            "status": "OK",
            "detail": "found / 2026-09-10 10:53:45",
            "meta": {
                "exists": true,
                "size": 15780,
                "mtime": "2026-09-10 10:53:45"
            }
        },
        {
            "group": "core_files",
            "name": "engine_modules/agent/Agent.php",
            "status": "OK",
            "detail": "found / 2026-06-26 23:00:18",
            "meta": {
                "exists": true,
                "size": 91826,
                "mtime": "2026-06-26 23:00:18"
            }
        },
        {
            "group": "core_files",
            "name": "engine_modules/tools/ToolSelector.php",
            "status": "OK",
            "detail": "found / 2026-09-18 09:05:02",
            "meta": {
                "exists": true,
                "size": 181476,
                "mtime": "2026-09-18 09:05:02"
            }
        },
        {
            "group": "core_files",
            "name": "engine_modules/tools/bootstrap.php",
            "status": "OK",
            "detail": "found / 2026-09-18 09:05:02",
            "meta": {
                "exists": true,
                "size": 12441,
                "mtime": "2026-09-18 09:05:02"
            }
        },
        {
            "group": "core_files",
            "name": "engine_modules/tools/ToolRegistry.php",
            "status": "OK",
            "detail": "found / 2026-09-18 17:20:52",
            "meta": {
                "exists": true,
                "size": 3464,
                "mtime": "2026-09-18 17:20:52"
            }
        },
        {
            "group": "core_files",
            "name": "engine_modules/tools/ToolExecutor.php",
            "status": "OK",
            "detail": "found / 2026-05-06 15:10:56",
            "meta": {
                "exists": true,
                "size": 13927,
                "mtime": "2026-05-06 15:10:56"
            }
        },
        {
            "group": "core_files",
            "name": "engine_modules/tools/CallableGatePolicy.php",
            "status": "OK",
            "detail": "found / 2026-05-26 19:32:30",
            "meta": {
                "exists": true,
                "size": 4566,
                "mtime": "2026-05-26 19:32:30"
            }
        },
        {
            "group": "core_files",
            "name": "engine_modules/tools/PersonalExpenseTool.php",
            "status": "OK",
            "detail": "found / 2026-05-02 12:30:40",
            "meta": {
                "exists": true,
                "size": 4945,
                "mtime": "2026-05-02 12:30:40"
            }
        },
        {
            "group": "core_files",
            "name": "engine_modules/services/PersonalExpenseParseService.php",
            "status": "OK",
            "detail": "found / 2026-09-18 17:48:05",
            "meta": {
                "exists": true,
                "size": 6853,
                "mtime": "2026-09-18 17:48:05"
            }
        },
        {
            "group": "core_files",
            "name": "engine_modules/services/PersonalExpenseSaveService.php",
            "status": "OK",
            "detail": "found / 2026-05-13 12:14:17",
            "meta": {
                "exists": true,
                "size": 8483,
                "mtime": "2026-05-13 12:14:17"
            }
        },
        {
            "group": "core_files",
            "name": "tools/update_all_docs.php",
            "status": "OK",
            "detail": "found / 2026-05-04 11:51:46",
            "meta": {
                "exists": true,
                "size": 4389,
                "mtime": "2026-05-04 11:51:46"
            }
        },
        {
            "group": "core_files",
            "name": "tools/update_work_docs_from_ssh_answers.php",
            "status": "OK",
            "detail": "found / 2026-05-03 16:27:06",
            "meta": {
                "exists": true,
                "size": 12379,
                "mtime": "2026-05-03 16:27:06"
            }
        },
        {
            "group": "core_files",
            "name": "tools/php_function_call_inventory.php",
            "status": "OK",
            "detail": "found / 2026-05-04 06:42:15",
            "meta": {
                "exists": true,
                "size": 19498,
                "mtime": "2026-05-04 06:42:15"
            }
        },
        {
            "group": "core_files",
            "name": "tools/php_callable_surface_report.php",
            "status": "OK",
            "detail": "found / 2026-05-04 09:41:07",
            "meta": {
                "exists": true,
                "size": 10643,
                "mtime": "2026-05-04 09:41:07"
            }
        },
        {
            "group": "core_files",
            "name": "tools/php_callable_gate_check.php",
            "status": "OK",
            "detail": "found / 2026-05-04 09:53:13",
            "meta": {
                "exists": true,
                "size": 5466,
                "mtime": "2026-05-04 09:53:13"
            }
        },
        {
            "group": "core_files",
            "name": "tools/php_callable_gate_smoke.php",
            "status": "OK",
            "detail": "found / 2026-05-04 09:53:52",
            "meta": {
                "exists": true,
                "size": 4416,
                "mtime": "2026-05-04 09:53:52"
            }
        },
        {
            "group": "core_files",
            "name": "tools/codefix_write_policy_smoke.php",
            "status": "OK",
            "detail": "found / 2026-05-04 10:32:46",
            "meta": {
                "exists": true,
                "size": 4407,
                "mtime": "2026-05-04 10:32:46"
            }
        },
        {
            "group": "core_files",
            "name": "tools/system_gate_authority_enforcement_smoke.php",
            "status": "OK",
            "detail": "found / 2026-05-04 11:51:06",
            "meta": {
                "exists": true,
                "size": 7938,
                "mtime": "2026-05-04 11:51:06"
            }
        },
        {
            "group": "core_files",
            "name": "tools/php_object_call_graph.php",
            "status": "OK",
            "detail": "found / 2026-05-04 06:49:19",
            "meta": {
                "exists": true,
                "size": 62216,
                "mtime": "2026-05-04 06:49:19"
            }
        },
        {
            "group": "core_files",
            "name": "tools/php_object_call_graph_unresolved_triage.php",
            "status": "OK",
            "detail": "found / 2026-05-04 06:47:44",
            "meta": {
                "exists": true,
                "size": 14860,
                "mtime": "2026-05-04 06:47:44"
            }
        },
        {
            "group": "core_files",
            "name": "tools/php_object_call_graph_residual_report.php",
            "status": "OK",
            "detail": "found / 2026-05-06 10:03:51",
            "meta": {
                "exists": true,
                "size": 7502,
                "mtime": "2026-05-06 10:03:51"
            }
        },
        {
            "group": "tool_registry",
            "name": "registry_load",
            "status": "OK",
            "detail": "class=ToolRegistry count=56",
            "meta": []
        },
        {
            "group": "tool_registry",
            "name": "bootstrap_failed_tools",
            "status": "OK",
            "detail": "failed=0",
            "meta": {
                "items": []
            }
        },
        {
            "group": "tool_registry",
            "name": "has_personal_expense",
            "status": "OK",
            "detail": "registered",
            "meta": []
        },
        {
            "group": "tool_registry",
            "name": "has_history_memo",
            "status": "OK",
            "detail": "registered",
            "meta": []
        },
        {
            "group": "tool_registry",
            "name": "has_history_search",
            "status": "OK",
            "detail": "registered",
            "meta": []
        },
        {
            "group": "tool_registry",
            "name": "has_payment",
            "status": "OK",
            "detail": "registered",
            "meta": []
        },
        {
            "group": "tool_registry",
            "name": "has_schedule",
            "status": "OK",
            "detail": "registered",
            "meta": []
        },
        {
            "group": "tool_registry",
            "name": "has_customer",
            "status": "OK",
            "detail": "registered",
            "meta": []
        },
        {
            "group": "tool_registry",
            "name": "has_worklog",
            "status": "OK",
            "detail": "registered",
            "meta": []
        },
        {
            "group": "tool_registry",
            "name": "has_code_map",
            "status": "OK",
            "detail": "registered",
            "meta": []
        },
        {
            "group": "patch_markers",
            "name": "Agent personal expense catch-all",
            "status": "WARN",
            "detail": "marker not found",
            "meta": []
        },
        {
            "group": "patch_markers",
            "name": "Agent weather bi guard",
            "status": "OK",
            "detail": "AGENT_WEATHER_SINGLE_BI_FALSE_POSITIVE_GUARD_V1",
            "meta": []
        },
        {
            "group": "patch_markers",
            "name": "Bootstrap registry cleanup",
            "status": "OK",
            "detail": "ECOSYSTEM_BOOTSTRAP_REGISTRY_CLEANUP_V1",
            "meta": []
        },
        {
            "group": "patch_markers",
            "name": "Schedule history combo",
            "status": "OK",
            "detail": "SCHEDULE_HISTORY_COMBO_ROUTE_V2",
            "meta": []
        },
        {
            "group": "patch_markers",
            "name": "History period filter",
            "status": "OK",
            "detail": "HISTORY_SEARCH_PERIOD_FILTER_V2",
            "meta": []
        },
        {
            "group": "patch_markers",
            "name": "PersonalExpenseTool",
            "status": "OK",
            "detail": "PERSONAL_EXPENSE_TOOL_V1",
            "meta": []
        },
        {
            "group": "patch_markers",
            "name": "CodeFix controlled write policy",
            "status": "OK",
            "detail": "CODE_FIX_SYSTEM_CONTROLLED_WRITE_POLICY_V1",
            "meta": []
        },
        {
            "group": "patch_markers",
            "name": "Callable gate runtime policy",
            "status": "OK",
            "detail": "CALLABLE_GATE_RUNTIME_POLICY_V1",
            "meta": []
        },
        {
            "group": "patch_markers",
            "name": "Callable gate ToolExecutor hook",
            "status": "OK",
            "detail": "CALLABLE_GATE_TOOL_EXECUTOR_RUNTIME_HOOK_V1",
            "meta": []
        },
        {
            "group": "patch_markers",
            "name": "Callable gate Agent hook",
            "status": "OK",
            "detail": "CALLABLE_GATE_AGENT_RUNTIME_HOOK_V1",
            "meta": []
        },
        {
            "group": "patch_markers",
            "name": "SystemGate authority fields",
            "status": "OK",
            "detail": "SYSTEM_GATE_AUTHORITY_FIELDS_V2",
            "meta": []
        },
        {
            "group": "patch_markers",
            "name": "RouteDecision authority contract",
            "status": "OK",
            "detail": "ROUTE_DECISION_AUTHORITY_CONTRACT_V2",
            "meta": []
        },
        {
            "group": "patch_markers",
            "name": "RouteSanity allowed tools enforcement",
            "status": "OK",
            "detail": "ROUTE_SANITY_ALLOWED_TOOLS_ENFORCE_V2",
            "meta": []
        },
        {
            "group": "patch_markers",
            "name": "ToolSelector person domain split",
            "status": "OK",
            "detail": "TOOL_SELECTOR_PERSON_DOMAIN_KEYWORD_SPLIT_V1",
            "meta": []
        },
        {
            "group": "patch_markers",
            "name": "ToolExecutor system gate allowed tools",
            "status": "OK",
            "detail": "TOOL_EXECUTOR_SYSTEM_GATE_ALLOWED_TOOLS_V1",
            "meta": []
        },
        {
            "group": "patch_markers",
            "name": "Agent system gate allowed tools",
            "status": "WARN",
            "detail": "marker not found",
            "meta": []
        },
        {
            "group": "patch_markers",
            "name": "ToolSelector route module extraction",
            "status": "OK",
            "detail": "TOOL_SELECTOR_ROUTE_MODULE_EXTRACTION_V1",
            "meta": []
        },
        {
            "group": "patch_markers",
            "name": "ToolSelector history route extraction",
            "status": "OK",
            "detail": "TOOL_SELECTOR_HISTORY_ROUTE_EXTRACTION_V1",
            "meta": []
        },
        {
            "group": "patch_markers",
            "name": "ToolSelector code route pre intent",
            "status": "OK",
            "detail": "TOOL_SELECTOR_CODE_ROUTE_PRE_INTENT_RULE_V1",
            "meta": []
        },
        {
            "group": "patch_markers",
            "name": "ToolSelector early log code route extraction",
            "status": "OK",
            "detail": "TOOL_SELECTOR_EARLY_LOG_CODE_GUARD_ROUTE_EXTRACTION_V1",
            "meta": []
        },
        {
            "group": "patch_markers",
            "name": "ToolSelector worklog period route extraction",
            "status": "OK",
            "detail": "TOOL_SELECTOR_WORKLOG_PERIOD_ROUTE_EXTRACTION_V1",
            "meta": []
        },
        {
            "group": "patch_markers",
            "name": "History period human record format",
            "status": "OK",
            "detail": "HISTORY_PERIOD_HUMAN_RECORD_FORMAT_V2",
            "meta": []
        },
        {
            "group": "patch_markers",
            "name": "History period memo inbox source",
            "status": "OK",
            "detail": "HISTORY_PERIOD_MEMO_INBOX_SOURCE_V1",
            "meta": []
        },
        {
            "group": "pending",
            "name": "pending_count",
            "status": "WARN",
            "detail": "pending=184",
            "meta": []
        },
        {
            "group": "pending",
            "name": "suspicious_personal_expense_pending",
            "status": "OK",
            "detail": "count=0",
            "meta": {
                "items": []
            }
        },
        {
            "group": "database",
            "name": "pdo",
            "status": "OK",
            "detail": "connected",
            "meta": []
        },
        {
            "group": "database",
            "name": "table_personal_memo_inbox",
            "status": "OK",
            "detail": "rows=63",
            "meta": []
        },
        {
            "group": "database",
            "name": "table_personal_expense_records",
            "status": "OK",
            "detail": "rows=2",
            "meta": []
        },
        {
            "group": "database",
            "name": "table_personal_expense_items",
            "status": "OK",
            "detail": "rows=5",
            "meta": []
        },
        {
            "group": "database",
            "name": "table_incomes",
            "status": "OK",
            "detail": "rows=308",
            "meta": []
        },
        {
            "group": "database",
            "name": "table_schedule_events",
            "status": "OK",
            "detail": "rows=84",
            "meta": []
        },
        {
            "group": "database",
            "name": "table_calendar_projects",
            "status": "OK",
            "detail": "rows=74",
            "meta": []
        },
        {
            "group": "dirty_rows",
            "name": "incomes",
            "status": "OK",
            "detail": "dirty_candidates=0",
            "meta": []
        },
        {
            "group": "dirty_rows",
            "name": "schedule_events",
            "status": "OK",
            "detail": "dirty_candidates=0",
            "meta": []
        },
        {
            "group": "dirty_rows",
            "name": "calendar_projects",
            "status": "OK",
            "detail": "dirty_candidates=0",
            "meta": []
        },
        {
            "group": "docs",
            "name": "WORK_STATE.md",
            "status": "WARN",
            "detail": "mtime=2026-05-23 00:38:03 age_sec=10258605",
            "meta": {
                "exists": true,
                "size": 3345,
                "mtime": "2026-05-23 00:38:03"
            }
        },
        {
            "group": "docs",
            "name": "WORK_REPORT.md",
            "status": "WARN",
            "detail": "mtime=2026-05-23 00:38:03 age_sec=10258605",
            "meta": {
                "exists": true,
                "size": 2858,
                "mtime": "2026-05-23 00:38:03"
            }
        },
        {
            "group": "docs",
            "name": "repair_jobs/SSH_ANSWER_INDEX.md",
            "status": "WARN",
            "detail": "mtime=2026-05-23 00:38:03 age_sec=10258605",
            "meta": {
                "exists": true,
                "size": 15120,
                "mtime": "2026-05-23 00:38:03"
            }
        },
        {
            "group": "docs",
            "name": "reports/auto_work_summary.md",
            "status": "WARN",
            "detail": "mtime=2026-05-23 00:38:03 age_sec=10258605",
            "meta": {
                "exists": true,
                "size": 411,
                "mtime": "2026-05-23 00:38:03"
            }
        },
        {
            "group": "docs",
            "name": "reports/personal_expense_pipeline_status.md",
            "status": "WARN",
            "detail": "mtime=2026-05-23 00:38:01 age_sec=10258607",
            "meta": {
                "exists": true,
                "size": 641,
                "mtime": "2026-05-23 00:38:01"
            }
        },
        {
            "group": "docs",
            "name": "reports/system_ecosystem_audit.md",
            "status": "WARN",
            "detail": "mtime=2026-05-23 00:38:03 age_sec=10258605",
            "meta": {
                "exists": true,
                "size": 15044,
                "mtime": "2026-05-23 00:38:03"
            }
        },
        {
            "group": "ssh_answers",
            "name": "latest_title",
            "status": "WARN",
            "detail": "",
            "meta": []
        },
        {
            "group": "ssh_answers",
            "name": "recent_ok_count",
            "status": "OK",
            "detail": "ok=0",
            "meta": []
        },
        {
            "group": "ssh_answers",
            "name": "resolved_need_check_count",
            "status": "OK",
            "detail": "resolved=6",
            "meta": []
        },
        {
            "group": "ssh_answers",
            "name": "recent_need_check_count",
            "status": "OK",
            "detail": "resolved_by=RESOLVE_RECENT_NEED_CHECK_CLEANUP_V1_OK resolved_titles=ecosystem_recent_run_events_panel_fix_v1_repair,ecosystem_recent_run_events_panel_fix_v1,real_tool_execution_path_probe_v1,tool_executor_run_event_probe_v1,save_receipt_route_spec_and_guard_fix_v2,save_receipt_read_tool_v1",
            "meta": {
                "items": [
                    {
                        "file": "20260525_132825_git_tracking_candidate_plan_v1.txt",
                        "path": "/volume1/web/gpt/repair_jobs/ssh_answers/20260525_132825_git_tracking_candidate_plan_v1.txt",
                        "title": "20260525_132825_git_tracking_candidate_plan_v1.txt",
                        "created_at": "2026-05-25 13:28:25",
                        "judgment": "SYSTEM_CRITICAL_STATUS_AUDIT_V1_PASS_WITH_GIT_WARN",
                        "url": "repair_jobs/ssh_answers/20260525_132825_git_tracking_candidate_plan_v1.txt"
                    },
                    {
                        "file": "20260525_132431_git_untracked_root_cause_probe_v1.txt",
                        "path": "/volume1/web/gpt/repair_jobs/ssh_answers/20260525_132431_git_untracked_root_cause_probe_v1.txt",
                        "title": "20260525_132431_git_untracked_root_cause_probe_v1.txt",
                        "created_at": "2026-05-25 13:24:31",
                        "judgment": "SYSTEM_CRITICAL_STATUS_AUDIT_V1_PASS_WITH_GIT_WARN",
                        "url": "repair_jobs/ssh_answers/20260525_132431_git_untracked_root_cause_probe_v1.txt"
                    }
                ]
            },
            "message": "resolved_by=RESOLVE_RECENT_NEED_CHECK_CLEANUP_V1_OK resolved_titles=ecosystem_recent_run_events_panel_fix_v1_repair,ecosystem_recent_run_events_panel_fix_v1,real_tool_execution_path_probe_v1,tool_executor_run_event_probe_v1,save_receipt_route_spec_and_guard_fix_v2,save_receipt_read_tool_v1",
            "resolved_by": "ECOSYSTEM_RESOLVED_NEED_CHECK_FILTER_V1"
        },
        {
            "group": "routing_regression",
            "name": "natural_query_expected_tool",
            "status": "WARN",
            "detail": "overall=FAIL total=4 ok=0 warn=0 fail=4"
        },
        {
            "group": "route_module_pipeline",
            "name": "toolselector_route_module_call_edges",
            "status": "OK",
            "detail": "overall=OK total=30 ok=30 warn=0 fail=0",
            "meta": {
                "items": []
            }
        },
        {
            "group": "system_gate_authority",
            "name": "allowed_tools_and_approval_enforced",
            "status": "FAIL",
            "detail": "overall=FAIL total=8 ok=7 fail=1",
            "meta": {
                "items": [
                    {
                        "file": "schedule",
                        "query": "5월 히스토리 조회"
                    }
                ]
            }
        },
        {
            "group": "history_period_routes",
            "name": "month_recent_history_period_list",
            "status": "FAIL",
            "detail": "overall=FAIL total=4 ok=3 fail=1",
            "meta": {
                "items": [
                    {
                        "file": "keyword_children_history",
                        "query": "애들 히스토리"
                    }
                ]
            }
        },
        {
            "group": "history_period_sources",
            "name": "personal_memo_inbox_called",
            "status": "OK",
            "detail": "overall=OK total=10 ok=10 fail=0",
            "meta": {
                "items": []
            }
        },
        {
            "group": "history_period_answer_format",
            "name": "saved_record_human_readable_list",
            "status": "OK",
            "detail": "overall=OK total=11 ok=11 fail=0",
            "meta": {
                "items": []
            }
        },
        {
            "group": "function_call_inventory",
            "name": "php_functions_and_calls_visible",
            "status": "OK",
            "detail": "files=1458 classes=601 functions=6267 calls=76514",
            "meta": {
                "items": []
            }
        },
        {
            "group": "object_call_graph",
            "name": "object_method_resolution_visible",
            "status": "OK",
            "detail": "scopes=6262 edges=11821 object=6692/7122 static=4686/4699",
            "meta": {
                "items": []
            }
        },
        {
            "group": "object_call_graph_triage",
            "name": "unresolved_calls_classified",
            "status": "OK",
            "detail": "unresolved=443 classified=443 high=295 medium=27 low=75 info=46",
            "meta": {
                "items": []
            }
        },
        {
            "group": "object_call_graph_residual",
            "name": "low_info_residual_accepted",
            "status": "WARN",
            "detail": "unresolved=443 high=295 medium=27 accepted=428 needs_review=15",
            "meta": {
                "items": [
                    {
                        "file": "reports/php_object_call_graph_residual.json",
                        "query": "residual_needs_review"
                    }
                ]
            }
        },
        {
            "group": "callable_surface",
            "name": "function_direct_call_policy",
            "status": "OK",
            "detail": "functions=6267 callable=1804 blocked_or_internal=4463",
            "meta": {
                "items": []
            }
        },
        {
            "group": "callable_gate",
            "name": "direct_call_gate_smoke",
            "status": "OK",
            "detail": "overall=OK ok=3 fail=0 total=3",
            "meta": {
                "items": []
            }
        },
        {
            "group": "routing_regression",
            "name": "life_memo_pending_no_pollution",
            "item": "life_memo_pending_no_pollution",
            "status": "FAIL",
            "detail": "overall=FAIL total=4 ok=0 fail=4"
        },
        {
            "group": "codefix_write_policy",
            "name": "approved_write_gate",
            "status": "OK",
            "detail": "overall=OK ok=4 fail=0 total=4",
            "meta": {
                "items": []
            }
        },
        {
            "group": "run_events",
            "name": "latest_event_quality",
            "status": "OK",
            "detail": "latest=2026-09-18 18:02:17 judgment=REQUEST_FINISHED has_error=false current_bytes=4480178 rotation_threshold_bytes=67108864 latest_bytes=8041 tail_max_bytes=8630 tail_errors=16 tail_empty_output=0 tail_repeated_inputs=9 tail_duplicate_rows=0",
            "meta": {
                "latest_input": "시스템의 문제점이 뭐야",
                "tail_total": 40,
                "current_bytes": 4480178,
                "rotation_threshold_bytes": 67108864,
                "latest_bytes": 8041,
                "tail_max_bytes": 8630,
                "tail_errors": 16,
                "tail_empty_output": 0,
                "tail_repeated_inputs": [
                    {
                        "input": "코드 전체 훑어봐",
                        "count": 4
                    },
                    {
                        "input": "ToolSelector.php 누가 부르나?",
                        "count": 2
                    },
                    {
                        "input": "없는회사이름테스트zz 고객 삭제해줘",
                        "count": 2
                    },
                    {
                        "input": "engine.php 문제점",
                        "count": 3
                    },
                    {
                        "input": "engine_modules/core/engine_core.php 문제점",
                        "count": 2
                    },
                    {
                        "input": "시스템의 문제점이 뭐야",
                        "count": 13
                    },
                    {
                        "input": "시스템 코드 다시 점검해줘",
                        "count": 3
                    },
                    {
                        "input": "시스템 이상하면 어디부터 보면 돼?",
                        "count": 3
                    },
                    {
                        "input": "엔진 오류나면 뭐부터 확인해?",
                        "count": 2
                    }
                ],
                "tail_duplicate_rows": []
            }
        },
        {
            "group": "runtime_logs",
            "name": "active_log_size_guard",
            "status": "WARN",
            "detail": "oversized_active_logs py_rag_trace=488257997",
            "meta": {
                "logs": {
                    "py_rag_trace": {
                        "path": "/volume1/gpt_data/logs/py_rag_trace.log",
                        "exists": true,
                        "bytes": 488257997,
                        "threshold_bytes": 67108864
                    },
                    "gpt_reasoning": {
                        "path": "/volume1/web/gpt/logs/gpt_reasoning.log",
                        "exists": true,
                        "bytes": 4953579,
                        "threshold_bytes": 67108864
                    },
                    "api_log": {
                        "path": "/volume1/web/gpt/logs/api.log",
                        "exists": true,
                        "bytes": 3192378,
                        "threshold_bytes": 67108864
                    }
                }
            }
        },
        {
            "group": "rag_index",
            "name": "faiss_freshness",
            "status": "WARN",
            "detail": "index_too_old age_sec=12679606",
            "meta": {
                "reports_dir": "/volume1/gpt_data/rag/reports",
                "docs": {
                    "path": "/volume1/gpt_data/rag/reports/rag_docs.jsonl",
                    "exists": true,
                    "bytes": 62188963,
                    "mtime": "2026-04-25 00:08:47"
                },
                "news_docs": {
                    "path": "/volume1/gpt_data/rag/reports/rag_docs_news.jsonl",
                    "exists": true,
                    "bytes": 34159050,
                    "mtime": "2026-04-24 23:22:25"
                },
                "index": {
                    "path": "/volume1/gpt_data/rag/reports/rag_faiss.index",
                    "exists": true,
                    "bytes": 57845805,
                    "mtime": "2026-04-25 00:08:43"
                },
                "stats": {
                    "path": "/volume1/web/gpt/reports/rag_index_stats_latest.json",
                    "exists": true,
                    "age_sec": 10208766,
                    "current": false,
                    "ok": true,
                    "docs_count": 18830,
                    "index_ntotal": 18830,
                    "index_dim": 768
                },
                "lag_sec": 4,
                "index_age_sec": 12679606,
                "freshness_tolerance_sec": 300,
                "max_index_age_sec": 2592000
            }
        },
        {
            "group": "local_lm",
            "name": "recent_gateway_quality",
            "status": "OK",
            "detail": "latest_gateway_call_ok latest=2026-09-18 18:15:12 source=python_gateway model=exaone-3.5-7.8b-instruct purpose=python_rag_lm_messages latest_ms=288 latest_tps=83.33 recent_total=160 recent_ok=160 recent_fail=0 avg_ok_ms=5486 max_ok_ms=20274 avg_tps=76.3",
            "meta": {
                "logs": {
                    "php_gateway": {
                        "path": "/volume1/web/gpt/reports/local_llm_gateway_calls_v1.jsonl",
                        "exists": true,
                        "tail_rows": 80,
                        "bytes": 2096146
                    },
                    "python_gateway": {
                        "path": "/volume1/web/gpt/reports/python_local_lm_gateway_calls_v1.jsonl",
                        "exists": true,
                        "tail_rows": 80,
                        "bytes": 1199698
                    }
                },
                "latest": {
                    "ok": true,
                    "lm_used": true,
                    "provider": "lmstudio",
                    "base_url": "http://192.168.1.5:1234/v1",
                    "model": "exaone-3.5-7.8b-instruct",
                    "purpose": "python_rag_lm_messages",
                    "trace_id": "python_lm_20260918_181512_69ec1887",
                    "latency_ms": 288,
                    "http_code": 200,
                    "curl_error": "",
                    "json_error": "",
                    "prompt_tokens": 265,
                    "completion_tokens": 24,
                    "total_tokens": 289,
                    "tokens_per_sec": 83.33,
                    "content": "이번 달 특별한 이벤트나 일정이 있으신가요? 좀 더 구체적으로 말씀해 주시겠어요?",
                    "content_preview": "이번 달 특별한 이벤트나 일정이 있으신가요? 좀 더 구체적으로 말씀해 주시겠어요?",
                    "logged_at": "2026-09-18 18:15:12",
                    "_source": "python_gateway"
                },
                "recent_total": 160,
                "recent_ok": 160,
                "recent_fail": 0,
                "avg_ok_latency_ms": 5486,
                "max_ok_latency_ms": 20274,
                "avg_tokens_per_sec": 76.3,
                "http_400_by_model": [],
                "performance_probe": {
                    "path": "/volume1/web/gpt/reports/local_lm_performance_latest.json",
                    "exists": true,
                    "ok": true,
                    "age_sec": 10198872,
                    "created_at": "2026-05-23 17:14:18",
                    "chat_latency_ms": 596,
                    "tokens_per_sec": 3.36
                }
            }
        }
    ],
    "resolved_need_check_filter": {
        "marker": "ECOSYSTEM_RESOLVED_NEED_CHECK_FILTER_V1",
        "applied_at": "2026-09-18 18:15:33",
        "resolved_titles": [
            "ecosystem_recent_run_events_panel_fix_v1_repair",
            "ecosystem_recent_run_events_panel_fix_v1",
            "real_tool_execution_path_probe_v1",
            "tool_executor_run_event_probe_v1",
            "save_receipt_route_spec_and_guard_fix_v2",
            "save_receipt_read_tool_v1"
        ],
        "recent_need_check_count_raw": 2,
        "active_need_check_count_after_filter": 2,
        "archive_need_check_count_raw": 30,
        "archive_active_need_check_count_after_filter": 30,
        "fixed_items": 1
    },
    "md_inventory": {
        "marker": "MD_INVENTORY_HEALTH_APPEND_V1",
        "generated_at": "2026-09-18 18:15:50",
        "total": 5418,
        "core": 10,
        "empty": 2,
        "core_stale": 10,
        "old": 5256,
        "very_old": 1,
        "report": "reports/md_inventory.md",
        "json": "reports/md_inventory.json"
    },
    "md_scope_policy": {
        "marker": "MD_SCOPE_POLICY_HEALTH_APPEND_V1",
        "generated_at": "2026-09-18 18:15:50",
        "helper_exists": true,
        "mode_counts": {
            "default": 231,
            "logs": 372,
            "external": 4801,
            "all": 4801
        },
        "report": "reports/md_scope_policy.md",
        "json": "reports/md_scope_policy.json"
    }
}
