engines.company.governance Engines observed

Company Governance

Company.governance — 기업지배구조보고서 (15 핵심지표) · 이사회 구성 · 감사위원회 · 최대주주 분석. 사외이사 비율 · CEO/Chair 분리 · 누적투표제 등 미국 proxy 가 표준화하지 못한 한국 지배구조 깊이.

이 스킬

Company Governance

Company.governance — 기업지배구조보고서 (15 핵심지표) · 이사회 구성 · 감사위원회 · 최대주주 분석. 사외이사 비율 · CEO/Chair 분리 · 누적투표제 등 미국 proxy 가 표준화하지 못한 한국 지배구조 깊이.

Engines observed engines.company.governance

절차

실행 순서

  1. 1

    종목코드 → Company 객체 생성

  2. 2

    Company.governance() 호출 (선택 period)

  3. 3

    15 핵심지표 dict 확인 + 미준수 narrative 추적

  4. 4

    사외이사/감사위/최대주주 sub-key 별 추가 분석

  5. 5

    rceptNo + section sourceRef 답변 본문 인용

예시

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

  • 삼성전자 사외이사 비율 5 년 추세 - Company.governance + period loop
  • POSCO 15 핵심지표 yes/no + 미준수 사유 - Company.governance + disclosure key
  • 카카오 CEO Chair 분리 여부 - Company.governance + board.ceoChairSeparated
  • 셀트리온 최대주주 변경 이력 - Company.governance + majorHolder
  • LG화학 감사위원회 독립성 - Company.governance + auditCommittee.independenceScore
  • NAVER 누적투표제 도입 - Company.governance + disclosure.indicator15

출력

기대 결과

  • 15 핵심지표 yes/no
  • 미준수 사유 narrative
  • 사외이사 비율 추세

공개 호출 방식

import dartlab

c = dartlab.Company("005930")

# 최신 지배구조보고서
gov = c.governance()
print(gov["board"])               # 이사회 구성 (사외이사 비율 등)
print(gov["auditCommittee"])      # 감사위원회 독립성
print(gov["majorHolder"])         # 최대주주
print(gov["disclosure"])          # 15 핵심지표 yes/no + 미준수 narrative

# 5 년 추세
import polars as pl
trends = pl.concat([
    c.governance(period=f"{y}").to_frame()
    for y in range(2020, 2026)
])

호출 동작

  • target = 종목코드 (KOSPI/KOSDAQ) 또는 ticker (EDGAR). 한국 강제: KOSPI 시가총액 ≥ 1 조 원 기업은 기업지배구조보고서 의무.
  • period 미명시 = 최신 보고서. 명시 = 해당 회계연도 보고서.
  • 반환 dict 의 key 4 종 (board · auditCommittee · majorHolder · disclosure).
  • 15 핵심지표 disclosure key 안에 yes/no boolean + 미준수 narrative string.
  • DART OpenAPI 의 corp_outline + corp_report 조합으로 추출. rceptNo + section 보존.

대표 반환 형태

{
  "board": {
    "totalDirectors": int,
    "outsideDirectors": int,
    "outsideRatio": float,
    "ceoChairSeparated": bool,
    "members": [{"name": str, "role": str, "isOutside": bool, ...}]
  },
  "auditCommittee": {
    "totalMembers": int,
    "outsideMembers": int,
    "independenceScore": float
  },
  "majorHolder": {
    "topHolder": str,
    "topHolderRatio": float,
    "treasuryRatio": float,
    "foreignRatio": float
  },
  "disclosure": {
    "indicator1_boardIndependence": {"compliant": bool, "narrative": str, "rceptNo": str},
    ...
    "indicator15_cumulativeVoting": {"compliant": bool, "narrative": str, "rceptNo": str}
  }
}

기본 검증

  • 답변의 사외이사 비율 · CEO/Chair 분리 · 누적투표제 등 수치 claim 은 모두 rceptNo + section paragraph 에 묶인다.
  • 15 핵심지표 yes/no 만 답변 본문에 박지 말고 미준수 narrative 도 같이 인용 (한국 corporate governance code 의 explain-or-comply 원칙).
  • KOSPI < 1 조 원 기업은 governance 보고서 미의무 → 본 skill 의 fallback = Company.disclosure(category=“기업지배구조”) · 결과 None 처리.
  • Company.governance() docstring 변경 시 본 skill 의 capabilityRefs · examples · 반환 형태 동기화.
  • 외부 본문 (DART 원본 narrative) 은 wrapExternalInResult 의 untrusted marker 강제.

런타임

실행 환경별 호환성

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

실패 회피

흔한 실패 · 절대 금지

흔한 실패
  • 한국 기업지배구조보고서 (KOSPI ≥ 1 조 원 AUM 강제) 의 15 핵심지표 양식을 미국 proxy 의 CD&A 와 혼동
  • 사외이사 비율을 NEO-5 만으로 산출 (한국은 전체 등기/미등기 임원 disclosure)
  • rceptNo 인용 없이 governance 본문을 인용
절대 금지
  • DART rceptNo 또는 section ref 없이 지배구조 분석 결론을 내지 않는다
  • 15 핵심지표의 yes/no 만으로 결론짓지 않고 미준수 narrative 까지 확인한다