Investment 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.

Doctor

GREENfailed 0 · 2026-06-07T20:16:33+09:00

Dashboard

GREEN2026-06 · closed · A_closable

Watchdog Cron

scheduledcd21520d2ba8 · every 360m · no_agent=True

Audit

GREEN_WITH_TEST_ALERTSevents 6 · alerts 1 · non-green 0

Baseline

FROZEN_STABLE_GREENfreeze 2026-06-07T19:40:16+09:00 · no-new=True

Runbook

READYscripts 10 · crons 7 · manual audit=True

Architecture 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
  }
}