Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/eddmpython/dartlabnpx agentmods add skills/eddmpython/dartlab/panelWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/eddmpython/dartlab/panel)<a href="https://agentmods.dev/skills/eddmpython/dartlab/panel"><img src="https://agentmods.dev/badge/skills/eddmpython/dartlab/panel/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/eddmpython/dartlab/panel"><img src="https://agentmods.dev/badge/skills/eddmpython/dartlab/panel.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00000 | $0.11985 |
| Opus 5.5 | $0.00000 | $0.04794 |
| Sonnet 5.5 | $0.00000 | $0.02397 |
| Haiku 4.5 | $0.00000 | $0.01199 |
Grade A, and why
panel scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 514 lines — stays where its author put it; the contents beside it link to each section on GitHub.
엔진 역할
panel 은 DART 공시 본문을 정부 표준 XBRL 분류(canonicalKey) 뼈대 위에서 항목(행) × 기간(열)
wide 로 수평화하는 엔진이다. 양식(era)·회사마다 흔들리는 ACLASS·제목을 기간 간 정렬 가능한
형태로 고정한다. Panel(code) / c.panel 을 잡는 순간 그 회사의 큰 분기별 시계열 wide
pl.DataFrame 이 된다 (Panel 은 pl.DataFrame subclass).
핵심 설계:
- 정렬키 = native canonicalKey —
disclosureKey는 정부 발행 ACLASS(DART XBRL 표준 Link Role)를 scope-strip 한 순수함수 산출(mapper.canonicalKey, BS_C→BS / NT_C_D826380→NT_D826380). 손매핑과 학습 없이 원천 표준 키를 유지한다. - 행 순서·계층 = 정부 서식 뼈대(spine) —
blockOrder는 보고서마다 0 리셋이라 read 가 재발견 못 하고canonicalKey는 정렬 가능 번호가 아니다 → 정부 문서 표시순서·트리를 빌드 시 1회 명시 spine 으로 굽는다.build.buildSpine이 기준 종목 한 회사(정부 표준 서식이라 reference 하나로 충분) 최신 사업보고서(Q4)를 raw 파싱 →rowIdentity(keyed=disclosureKey / narrative=NARR::chapter␟section)별 문서순서·parentKey →spine/spineData.py(생성 .py, git-diff 추적) 생성.read.readWide가SPINEdict 로(chapterRank 우선, spineOrder 차선)정렬 → 표지→I→II→III→재무→주석 정부순서(챕터 단위 그룹핑, '(첨부)' 본문 중간 삽입도 자기 챕터로 모음). 회사간 비교는disclosureKey(같은 항목 같은 키)로 — 회사간 순서 표준화/합의는 panel 책임 밖(scan 엔진의 cross-market 일).parentKey트리는 Phase 2 셀 세분화 토대. - TOC 표준 = SPINE 수렴 (라벨 통일) — TOC 는 최신 골격(SPINE)으로 고정하고, 과거 era 의 비슷한 섹션
명칭 변형을 표준 노드로 수렴한다.
read.anchorNarrativeToSpine3중 수렴(전부 bounded, 자유 fuzzy 0): ① 챕터-자기행 변형(로마/【 헤더, canonical 라벨=자기 chapter)→canonical 챕터 라벨 ② SPINE 제목코어 일치 = 표면 표기 정규화("6.배당 등"→"6.배당", 옛 번호→현행 번호) ③ 서식개정 era-alias (canonical/canonicalData.NARRATIVE_ERA_ALIASES, 운영자 수동 — 2018 외감법 V 재편: 옛 INS_* keyed 감사절 포함 "감사대상업무"→"1. 외부감사에 관한 사항" 등). keyed/narrative 균일 적용 — sectionLeaf 는 그룹핑 라벨(wide 식별=disclosureKey)이라 셀 식별 무손실(non-null 셀수 불변 게이트 실측). 같은 번호의 다른 항목(옛 I.5 의결권현황 vs 현행 I.5 정관)·1:N 구조분할(옛 "7. 증권의발행" vs 현행 7-1/7-2)· 현행 대응물 없는 단종 섹션(독립된 감사인의 감사보고서)은 등재 금지 — 분리 유지(honest, 병합=진짜 정보손실). 뷰어 TS 미러viewer/pipeline/narrativeSpine.ts·viewer/canonical.ts1:1 동기. - 매퍼 체계 (파일·구분·순서) — 수렴 매퍼는 새 파서 신설 없이 이 체계 안에서만 자란다:
① 데이터 SSOT =
canonical/canonicalData.py(운영자 수동: CANONICAL_L1 14챕터 키워드 · NARRATIVE_ERA_ALIASES 서식개정 alias · CERT_NODE_IDS) ② 챕터 수렴 =canonical.canonicalChapterExpr(sectionPath deepest + XII(상세표) 우선[상세표 자식 제목의 챕터 키워드 오배정 차단] + NT_→III) ③ 섹션 수렴 =read.sectionLeafConvergeExpr(단일 Expr SSOT — 자기행·SPINE 코어·era-alias) ④ 검열 =audit.auditToc— 전종목 lazy 스캔(projection 5컬럼)으로 ②③ 적용 후 잔존 불변식 위반 (misplacedDetail·duplicateNumber·selfVariant·coreVariant) 탐지. read 와 같은 Expr 공용이라 검열 결과 = 사용자가 보는 TOC 와 동형. 새 위반 발견 → 운영자가 ① 에 등재(자동 수정 금지). - 단일 패키지 자급 — schema·mapper·spine·build·read 가
providers/dart/panel/한 곳. 수집 (OpenDART API)은 이미providers/dart/openapi라 build 도 providers 가 자급 (gather panel 폐기). - BUILD/READ import 격리 — build(
build/, lxml/zipfile)는 무거운 zip→16col·spine 생산, read 표면 (panel.py·read.py·spine/)은 build 를 import 안 함 → read 표면 lxml 0 (콜드 <1s, R2). KR 정규화는 native canonicalKey 단독(bridge lookup 농장 0) — US cross-market 정규화는 후속(별도 설계, scan panel bridge 재사용). - 태그 무손실 — contentRaw = 원본 XML 그대로 저장. 기본 read 는 plain(태그 strip),
tag=True면 원본 XML (collapse 단계 1회 strip, raw wide 2중 materialize 회피).
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 514 lines · 0 tokens per session scan A 6323c15f67cd
panel is a skill published in the GitHub repository eddmpython/dartlab (225 stars, last pushed 4d ago), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 11,985 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
sas-fas-analyst
Evidence-first deep investment research for US equities and crypto assets, with independent bull and bear cases, forensic checks, long-horizon valuation, and optional personalized buy, sell, short, and position-sizing decisions. Use when the user invokes SAS, requests deep fundamental or token analysis, asks whether a…
tradingagents-korea-analysis
A stock-analysis skill for companies listed in South Korea’s KRX markets, including KOSPI and KOSDAQ.
vnpy-export
Export a Vibe-Trading backtest strategy to a runnable vnpy CtaTemplate Python class — supports A-share equities, futures, and crypto via BarGenerator + ArrayManager.
connect-recommend
Use this skill when the user asks about Stripe Connect configuration, charge patterns, Dashboard access, or how to get started with Connect, is building a marketplace, platform, multi-vendor store, gig platform, or subscription platform, needs to pay out sellers, vendors, or providers, mentions split payments, revenue…
t0
A stock-trading calculator for T+0, meaning buying and selling the same stock during one trading day, with trading fees and stamp tax included.
miniqmt-to-bigqmt
A conversion guide for moving Python trading strategies from miniQMT, an external trading setup, into the Python environment built into bigQMT, a trading client. It covers code changes, compatibility checks, deployment, and live-trading verification.