recipes.fundamental.disclosure.eventRadar.sourceCoverageAudit Recipes Recipe observed

Event Radar Source Coverage Audit

이벤트 레이더 실행 전에 filing, news, price, flow, insider, ownership, dividend, split, consensus, scan primitive의 row coverage를 확인하는 L1/L1.5 절차다.

이 스킬

Event Radar Source Coverage Audit

이벤트 레이더 실행 전에 filing, news, price, flow, insider, ownership, dividend, split, consensus, scan primitive의 row coverage를 확인하는 L1/L1.5 절차다.

Recipes observed recipes.fundamental.disclosure.eventRadar.sourceCoverageAudit

이어 가기

절차

실행 순서

  1. 1

    sourceCoverageAudit가 비어 있으면 실패다.

  2. 2

    missing source를 답변 한계에 포함한다.

예시

이런 질문이 들어오면 이 skill 을 쓴다

  • 이벤트 레이더 source coverage 확인

출력

기대 결과

  • source별 rowCount와 latestDate
  • missing source와 requiredFor

공개 호출 방식

AI 도구 실행 순서는 EngineCall 우선이다. 아래 Python 블록은 확보한 L1/L1.5 근거를 buildEventRadarMemo로 묶는 RunPython fallback 절차다.

import dartlab
from dartlab.synth.eventRadar import buildEventRadarMemo

target = "005930"
c = dartlab.Company(target)

def rows(value, limit=30):
    if hasattr(value, "head") and hasattr(value, "to_dicts"):
        return value.head(limit).to_dicts()
    if isinstance(value, list):
        return value[:limit]
    return []

def gather_rows(axis, limit=30):
    try:
        return rows(c.gather(axis), limit=limit)
    except Exception:
        try:
            return rows(dartlab.gather(axis, target=target), limit=limit)
        except Exception:
            return []

try:
    filings = rows(c.disclosure(), limit=50)
except Exception:
    filings = []

memo = buildEventRadarMemo(
    target=target,
    market=str(getattr(c, "market", "KR")),
    companyName=str(getattr(c, "corpName", target)),
    filings=filings,
    newsRows=gather_rows("news", limit=20),
    priceRows=gather_rows("price", limit=40),
    flowRows=gather_rows("flow", limit=40),
    insiderRows=gather_rows("insiderTrading", limit=20),
    ownershipRows=gather_rows("ownership", limit=20),
    dividendRows=gather_rows("dividends", limit=20),
    splitRows=gather_rows("splits", limit=20),
    consensusRows=gather_rows("consensus", limit=12),
)

emit_result(
    table=memo["tables"]["sourceCoverageAudit"],
    values=memo["headline"],
    date=memo["asOf"],
    sources=memo["sources"],
)

호출 동작

1. 결론 도출

9 source coverage audit 단정. 예: “9 source audit — filings 50 rows latest 2026-05-26 / news 18 / price 40 / flow 40 / insiderTrading 0 (missing — KR 임원 신고 미수신) / ownership 12 / dividends 16 / splits 4 / consensus 12 → 8 of 9 ok + 1 missing (insiderOwnershipSignal 후속 제한 발생).”

2. 핵심 근거 수집

  • Company.disclosure() filings (limit 50)
  • Company.gather() × 8 axis (news / price / flow / insiderTrading / ownership / dividends / splits / consensus)
  • 각 source rowCount + latestDate 추출
  • buildEventRadarMemo() → sourceCoverageAudit table

3. 메커니즘 분석

9 source × (rowCount + latestDate + status + requiredFor)
   status 판정:
     rowCount ≥ 1 → ok
     rowCount = 0 → missing
     stale (latestDate > 30d) → watch

requiredFor 매핑 (어떤 후속 recipe 가 필요로 하나):
   filings → eventInbox + capitalActionMonitor + falsifierLedger
   news    → eventInbox
   price   → priceFlowReaction + falsifierLedger + visualDecisionPack (priceChart)
   flow    → priceFlowReaction
   insider → insiderOwnershipSignal
   ownership → insiderOwnershipSignal
   dividends → capitalActionMonitor
   splits  → capitalActionMonitor
   consensus → consensusDriftWatch

missing source 의 영향:
   priceRows 결손 → priceChart 비활성 + priceFlowReaction 결론 X
   filings 결손  → eventInbox 결론 X (whole pack 차단)
   insider 결손  → insiderOwnershipSignal 만 미산출 (전체 차단 X)

이벤트 레이더의 첫 중단점 — 실행 전 게이트. missing source 가 어떤 후속 recipe 를 차단하는지 명시 필수.

4. 반례·한계

  • 결손 source 를 0 또는 없음으로 단정 → forbidden 위반 (불확실로 표기).
  • priceRows 결손인데 priceChart 만들면 false visualization.
  • filings 결손인데 eventInbox 정상 처리 시 missing 누락.
  • KR vs US source 비대칭 (insider 신고 형식 다름) — market 별 조정 필요.

5. 후속 모니터링

  • 8+ source ok → recipes.fundamental.disclosure.eventRadar.index 로 전체 pack 진입.
  • missing 다수 → recipes.fundamental.disclosure.eventRadar.deepDive 의 ledger 결손 처리 점검.
  • stale (≥30일) → 데이터 sync recipe 또는 manual refresh trigger.

대표 반환 형태

column의미
datasetsource 이름
statusok/missing
rowCountrow 수
latestDate가장 최신 날짜
requiredFor필요한 후속 판단

연계 절차

  1. recipes.fundamental.disclosure.eventRadar.index - 전체 팩 진입.
  2. recipes.fundamental.disclosure.eventRadar.deepDive - 전체 ledger로 연결.

기본 검증

  • sourceCoverageAudit가 비어 있으면 실패다.
  • missing source를 답변 한계에 포함한다.

런타임

실행 환경별 호환성

환경상태비고 / 제한
Local Python supported
Server supported
MCP supported
Web AI supported
Pyodide limited

실패 회피

흔한 실패 · 절대 금지

흔한 실패
  • priceRows 없이 priceChart를 선택
  • filings 결손인데 eventInbox를 정상으로 처리
절대 금지
  • 결손 source를 0 또는 없음으로 단정하지 않는다.