Doctor
GREENfailed 0 · 2026-06-07T20:16:33+09:00Investment Automation v4.8
GREEN
Low-noise baseline
투자 자동화 체인의 현재 상태를 한눈에 보는 정적 웹 대시보드입니다. 이 화면은 시각화 전용이며 매수/매도/비중결정 신호를 만들지 않습니다.
GREENno_agent watchdog activemanual audit onlyGenerated KST 2026-06-07T20:16:33+09:00 · hash bf46b68db98203da
Operating rule
GREEN이면 조용히 유지합니다. non-GREEN/status change가 있을 때만 v4.2 watchdog이 텔레그램 알림을 냅니다. v4.3 audit와 v4.6 doctor는 수동 실행입니다.
Primary job: cd21520d2ba8
Freeze: FROZEN_STABLE_GREEN
No new automation by default.
Dashboard
GREEN2026-06 · closed · A_closableWatchdog Cron
scheduledcd21520d2ba8 · every 360m · no_agent=TrueAudit
GREEN_WITH_TEST_ALERTSevents 6 · alerts 1 · non-green 0Baseline
FROZEN_STABLE_GREENfreeze 2026-06-07T19:40:16+09:00 · no-new=TrueRunbook
READYscripts 10 · crons 7 · manual audit=TrueArchitecture map
v3.1-v3.9
Source states
SPGI, automation index, inventory, quality, close marker
v4.0
Status dashboard
One compact machine-readable state
v4.1
Alert gate
Silent while GREEN, emits only on change/non-GREEN
v4.2
Scheduled watchdog
no_agent cron every 6h, Telegram only on alert
v4.3
Manual audit
Event history, non-GREEN count, safety check
v4.5-v4.6
Ops + doctor
Runbook and one-command diagnosis
v4.7
Frozen baseline
No more automation by default
Manual commands
버튼을 누르면 명령어가 클립보드에 복사됩니다.
Safety boundary
- Not investment advice
- No buy/sell signal
- No portfolio action
- No position sizing
- No new cron in this dashboard
- Visual/static artifact only
Raw state snapshot
{
"doctor": {
"version": "4.6",
"generated_utc": "2026-06-07T11:16:33Z",
"generated_at_kst": "2026-06-07T20:16:33+09:00",
"period": "weekly",
"doctor_status": "GREEN",
"doctor_hash": "b1da598375f95298",
"not_investment_advice": true,
"read_only": true,
"no_cron_changes": true,
"no_llm_call": true,
"manual_only": true,
"no_buy_sell_signal": true,
"no_portfolio_action": true,
"no_position_sizing": true,
"failed_check_count": 0,
"dashboard_status": "GREEN",
"audit_health": "GREEN_WITH_TEST_ALERTS",
"cron_state": "scheduled"
},
"status": {
"version": "4.0",
"updated_utc": "2026-06-07T11:16:32Z",
"generated_at_kst": "2026-06-07T20:16:32+09:00",
"status": "GREEN",
"month": "2026-06",
"read_only": true,
"no_cron_changes": true,
"no_llm_call": true,
"no_buy_sell_signal": true,
"no_portfolio_action": true,
"no_position_sizing": true,
"active_investment_jobs": 6,
"script_only_zero_llm_jobs": 3,
"llm_assisted_jobs": 3,
"close_status": "closed",
"monthly_record_quality": "A_closable",
"dashboard_hash": "7f6bcb08d554526b"
},
"audit": {
"version": "4.3",
"generated_utc": "2026-06-07T11:16:32Z",
"generated_at_kst": "2026-06-07T20:16:32+09:00",
"period": "weekly",
"health": "GREEN_WITH_TEST_ALERTS",
"period_events": 6,
"emitted_count": 1,
"non_green_count": 0,
"safety_ok": true,
"audit_hash": "5ef14e851e2c2a0f",
"read_only": true,
"no_cron_changes": true,
"no_llm_call": true,
"script_only_audit": true,
"no_buy_sell_signal": true,
"no_portfolio_action": true,
"no_position_sizing": true
},
"cron": {
"version": "4.2",
"created_utc": "2026-06-07T08:05:34Z",
"created_at_kst": "2026-06-07T17:05:34+09:00",
"job_id": "cd21520d2ba8",
"name": "Investment automation status-change watchdog v4.2",
"schedule": "every 360m",
"repeat": "365 times",
"deliver": "origin",
"enabled": true,
"state": "scheduled",
"script": "investment_automation_status_change_watchdog_v41.py",
"workdir": "/opt/data",
"no_agent": true,
"enabled_toolsets": [
"terminal"
],
"not_investment_advice": true,
"read_only": true,
"no_llm_call": true,
"script_only_watchdog": true,
"no_buy_sell_signal": true,
"no_portfolio_action": true,
"no_position_sizing": true,
"green_stdout_silent_verified": true,
"duplicate_existing_job_found_before_create": false,
"creation_note": "First create attempt with absolute script path failed safely; cron requires relative script filename under ~/.hermes/scripts. Re-created with script filename only."
},
"baseline": {
"version": "4.7",
"frozen_utc": "2026-06-07T10:40:16Z",
"frozen_at_kst": "2026-06-07T19:40:16+09:00",
"baseline_name": "investment_automation_v4_stable_low_noise_baseline",
"baseline_status": "FROZEN_STABLE_GREEN",
"doctor_status_at_freeze": "GREEN",
"doctor_failed_check_count": 0,
"primary_watchdog_job_id": "cd21520d2ba8",
"manual_audit_only": true,
"no_new_automation_policy": true,
"freeze_hash": "101c19a4be2f9ef5",
"not_investment_advice": true,
"read_only": true,
"no_cron_changes": true,
"no_new_cron": true,
"no_llm_call": true,
"freeze_no_more_automation_by_default": true,
"no_buy_sell_signal": true,
"no_portfolio_action": true,
"no_position_sizing": true
},
"runbook": {
"version": "4.5",
"generated_utc": "2026-06-07T09:57:35Z",
"generated_at_kst": "2026-06-07T18:57:35+09:00",
"runbook_hash": "e3b0df9b78fc8e08",
"not_investment_advice": true,
"read_only": true,
"no_cron_changes": true,
"no_llm_call": true,
"no_buy_sell_signal": true,
"no_portfolio_action": true,
"no_position_sizing": true,
"core_script_count": 10,
"relevant_cron_count": 7,
"primary_watchdog_job_id": "cd21520d2ba8",
"manual_audit_only": true
}
}