이 스킬
Industry — Taxonomy 운영 (taxonomyOps)
산업 분류 데이터 (taxonomy.json + nodes.json) 운영자 수동 갱신 절차서 — 신생 산업 추가 / 신규 상장 종목 매핑 / stage 분류 정합성 확인. accountMappings (mappingRefresh) 와 분리된 industry 측 SSOT.
이어 가기
- Industry
engines.industry - accountMappings 보강 4 단계 파이프라인
operation.mappingRefresh
절차
실행 순서
- 1
`stages` 순서 = 밸류체인 흐름 순 (upstream → midstream → downstream).
- 2
`stream` enum: `upstream` / `midstream` / `downstream` 3 종만 (engines.industry.supplyChain SSOT).
- 3
stage `id` 는 camelCase 영문, 산업 내 unique.
- 4
`confidence` 0~1, 0.5 미만 = 신뢰 한계 명시 (Company.industry() 답변에서 표기).
- 5
`matches` 는 사업보고서·제품군에서 추출한 정성 근거.
- 6
같은 종목이 여러 stage 후보 — primary 1 개만 등록 (secondary 매핑은 별도 트랙).
- 7
**신규 상장 종목**: 분기 1 회 일괄 (KRX listing 변경 cron 후속).
- 8
**신생 산업 추가**: 운영자 판단 시점 (산업 분류 trend 변동 시).
- 9
**stage 분류 정정**: 사용자 피드백 또는 사업보고서 검토 후 즉시.
- 10
`taxonomy.json` JSON 파싱 정상 + 모든 stage 의 `stream` enum 안.
- 11
`nodes.json` 의 모든 `chainId` 가 `taxonomy.json` 에 정의됨.
- 12
같은 stage `id` 가 산업 내 unique.
엔진 역할
industry 엔진의 taxonomy 운영 sub-axis. 산업 분류 데이터 두 파일 (taxonomy.json = 산업·stage 정의 / nodes.json = 종목→stage 매핑) 의 운영자 수동 갱신 절차서. accountMappings 측은 operation.mappingRefresh SSOT — 본 spec 은 industry 측 데이터 전용.
공개 호출 방식
import dartlab
# 갱신 후 확인 (호출 형태는 base SKILL 과 동일)
guide = dartlab.industry()
# → 신규 산업 추가 시 목록에 등장
nodes = dartlab.industry("새산업ID")
# → 신규 종목 매핑 확인
c = dartlab.Company("신규종목코드")
print(c.industry())
# → {chainId, stage, confidence, ...} 또는 None 호출 동작
본 spec 은 데이터 갱신 절차서 — 코드 호출 동작은 base SKILL engines.industry 그대로. 갱신 자체는 운영자 수동.
갱신 절차
1. 신규 산업 추가
src/dartlab/industry/taxonomy.json 직접 편집:
{
"신규산업ID": {
"name": "한글 산업명",
"stages": [
{"id": "stageId", "name": "한글 공정명", "stream": "upstream"},
...
]
}
} stages순서 = 밸류체인 흐름 순 (upstream → midstream → downstream).streamenum:upstream/midstream/downstream3 종만 (engines.industry.supplyChain SSOT).- stage
id는 camelCase 영문, 산업 내 unique.
2. 종목 매핑 추가
src/dartlab/industry/nodes.json 편집:
{
"종목코드6자리": {
"chainId": "산업ID",
"stage": "stageId",
"confidence": 0.85,
"matches": ["매칭 키워드 1", "키워드 2"],
"products": ["주요 제품 1", "제품 2"],
"role": "한글 역할 (제조 / 설계 / 장비 / ...)"
}
} confidence0~1, 0.5 미만 = 신뢰 한계 명시 (Company.industry() 답변에서 표기).matches는 사업보고서·제품군에서 추출한 정성 근거.- 같은 종목이 여러 stage 후보 — primary 1 개만 등록 (secondary 매핑은 별도 트랙).
3. 갱신 후 확인 (운영자 수동)
# 1. taxonomy 로드 검증
uv run python -X utf8 -c "from dartlab.industry import loadTaxonomy; print(loadTaxonomy().keys())"
# 2. 신규 산업 가이드
uv run python -X utf8 -c "import dartlab; print(dartlab.industry())"
# 3. 신규 종목 매핑
uv run python -X utf8 -c "import dartlab; print(dartlab.Company('신규코드').industry())"
# 4. capability 카탈로그는 docstring 라이브 빌드 — 재생성 단계 없음 (loadCapabilities 자동 반영).
# (Skill OS 6 JSON 동기화가 필요하면 그건 별도 generateSkills — feedback_no_skill_json_auto_build) 대표 반환 형태
본 spec 은 절차서 — 반환 형태는 base SKILL engines.industry 참조. 갱신 후 동작은 동일.
갱신 빈도
- 신규 상장 종목: 분기 1 회 일괄 (KRX listing 변경 cron 후속).
- 신생 산업 추가: 운영자 판단 시점 (산업 분류 trend 변동 시).
- stage 분류 정정: 사용자 피드백 또는 사업보고서 검토 후 즉시.
자동 매핑 도구·LLM 추론 매핑 금지 (feedback_no_docstring_auto_sweep 동일 사상 — 사람 작성 SSOT).
기본 검증
taxonomy.jsonJSON 파싱 정상 + 모든 stage 의streamenum 안.nodes.json의 모든chainId가taxonomy.json에 정의됨.- 같은 stage
id가 산업 내 unique. - 모든 종목코드 6 자리 string.
관련
- engines.industry — base SKILL
- engines.industry.supplyChain — stream enum SSOT
- operation.mappingRefresh — accountMappings 측 절차 (직교)
런타임
실행 환경별 호환성
| 환경 | 상태 | 비고 / 제한 |
|---|---|---|
| Local Python | supported | · |
| Server | supported | · |
| MCP | supported | · |
| Web AI | limited | · |
| Pyodide | limited | · |