recipes.fundamental.disclosure.eventRadar.falsifierLedger Recipes Recipe tested

Event Radar Falsifier Ledger

이벤트·반응·내부자·자본 이벤트·컨센서스 신호마다 필요한 반증 조건을 열어 결론 과잉을 막는 L1/L1.5 절차다. 트리거 — 'Event Radar Falsifier Ledger', 'falsifier ledger', 'falsifierLedger'.

이 스킬

Event Radar Falsifier Ledger

이벤트·반응·내부자·자본 이벤트·컨센서스 신호마다 필요한 반증 조건을 열어 결론 과잉을 막는 L1/L1.5 절차다. 트리거 — 'Event Radar Falsifier Ledger', 'falsifier ledger', 'falsifierLedger'.

Recipes tested recipes.fundamental.disclosure.eventRadar.falsifierLedger

연계 절차

이 절차의 단계

  1. 1
    Event Radar Engine Candidate Memo recipes.fundamental.disclosure.eventRadar.engineCandidateMemo

    반복 가능한 신호만 후보로 넘긴다.

  2. 2
    Event Radar Deep Dive recipes.fundamental.disclosure.eventRadar.deepDive

    최종 답변에 open falsifier를 포함한다.

절차

실행 순서

  1. 1

    Company.filings() filings — capital / governance event

  2. 2

    Company.gather('price') latest 40 row — reaction 측정

  3. 3

    Company.gather('flow') latest 40 row — 외인/기관 매매 동조

  4. 4

    buildEventRadarMemo() → 5 claim (event / reaction / insider / capital / consensus) × 2 column (supporting / counterNeeded)

  5. 5

    counter 가 verifiable 한지 — "다른 시장 데이터 부족" 같이 검증 불가능한 counter 는 의미 없음.

  6. 6

    5 claim 외 미커버 영역 (회계 / 거시 / 산업) — 본 ledger 범위 외.

  7. 7

    open 만 보면 over-conservative — 의미 있는 신호도 보류됨.

  8. 8

    claim 간 dependency (event → reaction) 가 ledger 에 직접 반영 X.

  9. 9

    open 다수 → `recipes.fundamental.disclosure.eventRadar.engineCandidateMemo` 로 후보 좁히기.

  10. 10

    resolved 다수 → `recipes.fundamental.disclosure.eventRadar.deepDive` 로 종합 radarScore.

  11. 11

    counterEvidence 가 price/flow → `recipes.fundamental.disclosure.eventRadar.priceFlowReaction` 으로 reaction 정량화.

  12. 12

    open falsifier가 있으면 확정 표현을 쓰지 않는다.

예시

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

  • 이벤트 레이더 반증 ledger

출력

기대 결과

  • claim별 supportingEvidence
  • counterEvidenceNeeded
  • open/notTriggered status

공개 호출 방식

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 []

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

try:
    price_rows = rows(c.gather("price"), limit=40)
except Exception:
    price_rows = []

try:
    flow_rows = rows(c.gather("flow"), limit=40)
except Exception:
    flow_rows = []

memo = buildEventRadarMemo(
    target=target,
    market=str(getattr(c, "market", "KR")),
    companyName=str(getattr(c, "corpName", target)),
    filings=filings,
    priceRows=price_rows,
    flowRows=flow_rows,
)

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

호출 동작

1. 결론 도출

claim 별 open/notTriggered ledger 단정. 예: “5 claim 검증: event(자사주취득) → open (반응 +1.2% 미미, counter=‘거래량 평년 대비 1.5배 미달’) / reaction(가격 +1.2%) → open (시장 동조 의심) / insider → notTriggered / capital(CB발행) → open (희석 모의 미완료) / consensus → notTriggered. open 3건 → 촉매 결론 보류.”

2. 핵심 근거 수집

  • Company.filings() filings — capital / governance event
  • Company.gather(‘price’) latest 40 row — reaction 측정
  • Company.gather(‘flow’) latest 40 row — 외인/기관 매매 동조
  • buildEventRadarMemo() → 5 claim (event / reaction / insider / capital / consensus) × 2 column (supporting / counterNeeded)

3. 메커니즘 분석

5 claim × 각 supportingEvidence + counterEvidenceNeeded 매트릭스

status 판정:
   notTriggered → 해당 claim 자체가 트리거 X (이벤트 없음)
   open         → 트리거 있으나 supporting 약함 OR counter 미해소
   resolved     → supporting 강함 + counter 해소 (확정 결론 가능)

open count ≥ 1 → 확정 결론 보류 (forbidden 발동)
모두 resolved or notTriggered → 결론 가능

counterEvidenceNeeded 빈 문자열 → 본 recipe 실패 (조건 누락)

falsifier 의 역할은 틀릴 수 있는 이유 명시 — radarScore 만으로는 false positive 위험.

4. 반례·한계

  • counter 가 verifiable 한지 — “다른 시장 데이터 부족” 같이 검증 불가능한 counter 는 의미 없음.
  • 5 claim 외 미커버 영역 (회계 / 거시 / 산업) — 본 ledger 범위 외.
  • open 만 보면 over-conservative — 의미 있는 신호도 보류됨.
  • claim 간 dependency (event → reaction) 가 ledger 에 직접 반영 X.

5. 후속 모니터링

  • open 다수 → recipes.fundamental.disclosure.eventRadar.engineCandidateMemo 로 후보 좁히기.
  • resolved 다수 → recipes.fundamental.disclosure.eventRadar.deepDive 로 종합 radarScore.
  • counterEvidence 가 price/flow → recipes.fundamental.disclosure.eventRadar.priceFlowReaction 으로 reaction 정량화.

대표 반환 형태

column의미
claim검증 중인 주장
supportingEvidenceok/watch/risk/missing
counterEvidenceNeeded필요한 반증
statusopen/notTriggered

연계 절차

  1. recipes.fundamental.disclosure.eventRadar.engineCandidateMemo - 반복 가능한 신호만 후보로 넘긴다.
  2. recipes.fundamental.disclosure.eventRadar.deepDive - 최종 답변에 open falsifier를 포함한다.

기본 검증

  • open falsifier가 있으면 확정 표현을 쓰지 않는다.
  • counterEvidenceNeeded가 빈 문자열이면 실패다.

런타임

실행 환경별 호환성

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

실패 회피

흔한 실패 · 절대 금지

흔한 실패
  • 반증 조건 없이 radarScore만 표시
절대 금지
  • open falsifier가 있는데 촉매 결론을 확정하지 않는다.