Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/eddmpython/dartlab/simulatenpx skills add eddmpython/dartlab --skill simulategit clone --depth 1 https://github.com/eddmpython/dartlabWhat 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 | $0.00000 | $0.01619 |
| Opus 5 | $0.00000 | $0.00809 |
| Sonnet 5 | $0.00000 | $0.00324 |
| Haiku 4.5 | $0.00000 | $0.00162 |
Grade A, and why
simulate 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 yesterday.
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 — 184 lines — stays where its author put it; the contents beside it link to each section on GitHub.
엔진 역할
simulate는 회사 원자료와 매크로 시나리오를 macro.path -> rev.path -> proforma -> dcf 결정론 드라이버 시트로 연결하는 L3 엔진이다. 난수를 쓰지 않으며 같은 target, scenario, asOf는 같은 노드별 inputsHash를 만든다. 결과는 미래 확정치가 아니라 입력 가정에 조건부인 변환 결과다.
공개 호출 방식
import dartlab
baseline = dartlab.simulate(
"005930",
scenario="baseline",
horizon=3,
asOf="2024",
)
adverse = dartlab.simulate(
"005930",
scenario="adverse",
horizon=3,
asOf="2024",
)
c = dartlab.Company("005930")
company_result = c.simulate(scenario="adverse", horizon=3, asOf="2024")
설치형 AI 런타임은 다음 canonical 계약을 쓴다.
{
"apiRef": "simulate",
"args": {
"target": "005930",
"scenario": "adverse",
"horizon": 3,
"asOf": "2024"
}
}
호출 동작
- target을 KR Company로 해소하고 지원하지 않는 시장과 시나리오를 차단한다.
- 회사 snapshot과 매크로 preset을 같은 asOf 경계에 고정한다.
- DriverSheet를 위상 순서로 평가해 매출, 마진, proforma, FCF, DCF 노드를 계산한다.
- 각 노드에 provenance, refs, inputsHash, 품질 상태와 gap을 남긴다.
- base와 stress 비교는 target, horizon, asOf를 동일하게 유지하고 scenario만 변경한다.
partial은 실패 값을 0으로 채운 상태가 아니다. 필요한 leaf가 없어서 해당 값이 None인 정직한 결손 상태다.
대표 반환 형태
SimulationResult
scenarioName: str
horizon: int
latestAsOf: str | None
revenuePath: list[float | None]
marginPath: list[float | None]
fcfPath: list[float | None]
dcfPerShare: float | None
quality: ok | partial
gaps: list
audit: list[NodeAudit]
assumptionLedger: dict
lensProducts: dict
답변은 시나리오 이름과 가정, 기준 기간, 조건부 값, 노드 근거를 함께 제시한다. dcfPerShare는 해당 시나리오 가정 아래의 계산값이며 목표주가나 성과 보장이 아니다.
기본 검증
quality,gaps,latestAsOf,inputsHash가 함께 존재하는지 확인한다.- 답변에 인용한 경로와 DCF 수치는 해당
valueRef,dateRef,executionRef와 직접 연결한다. - base와 stress 비교는 target, horizon, asOf가 동일한지 확인한다.
partial의 결손값을 0으로 바꾸지 않고 제한과 필요한 입력을 명시한다.
기대 원장과 거시 상태
- expectation ledger (
dartlab.simulate.expectationCycle, 주기 실행.github/workflows/expectationCycle.yml) 는 관측값, prior, 검증 상태를 분리 보관한다. 표본이 부족하면 검증된 것처럼 표시하지 않는다. - 거시 시뮬레이션은 regime transition 과 결과 container 를 공통 타입으로 유지한다. 시나리오 가정과 실제 관측값을 같은 필드에 섞지 않는다.
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.
- yesterday First seen · 184 lines · 0 tokens per session scan A 9b1c7b8fd100
simulate is a skill published in the GitHub repository eddmpython/dartlab (209 stars, last pushed 10d ago), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 1,619 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
build_workspace_app
This guide covers the full lifecycle of building, running, and serving a custom OpenBB Workspace application from an extension project scaffolded by openbb-cookiecutter. It assumes the project shell already exists (see the developextension skill for scaffolding instructions).
configure_mcp_server
This guide covers installation, configuration, authentication, tool discovery, prompt management, and client integration for openbb-mcp-server.
develop_extension
This is a complete guide for creating a new OpenBB Platform extension from scratch. Follow every phase in order. When the user says "build me an application that does X", use this guide to scaffold, implement, install, and verify the extension.
work_with_server
This guide explains how to call tools, interpret responses, discover capabilities, use prompts, and handle errors when interacting with an OpenBB MCP server.
fin-data-acquisition
根据REFINEDDESIGN.md中的变量定义,自动获取所需数据并生成可执行的回归分析脚本(Python/Stata)。.
alphasift
自动选股 Skill。Use when: 用户要按策略筛选 A 股、列出可用策略、运行双低/放量突破/均衡多因子/资金热度等选股,或保存运行并做 T+N 后验评估。通过 alphasift CLI 或 Python 接口输出候选股票列表。.