Skip to content
Back to skills

DSD변환

ASecurity

DART 에 공시된 감사보고서 · 연결감사보고서(접수번호, DART 에서 받은 PDF, 공시서류원본 xml)를 DART 편집기 파일(dsd)로 바꾼다. 본문(문단 · 표 · 칸 · 숫자 · 서식 표시)은 원문 그대로 두고, 공시 때 빠진 편집기 요소(삽입 위치 13곳 · 목차 · 안내문 · 문서 머리 · meta.xml)와 문단 안 줄바꿈(DART 공시 화면 기준)만 되살린다. 회사가 dsd 를 주지 않을 때, 초도 감사라 전기 dsd 가 없을 때, 작년 공시로 올해 dsd 를 시작할 때 쓴다. "다트 보고서 dsd 로", "공시 원문 dsd 변환", "DART 받은 거 dsd 로 바꿔줘", "작년 감사보고서 dsd 로", "전기 dsd 없어", "다트에서 받은 PDF 로 dsd", "접수번호로 dsd", "dsd 변환", "작년 공시로 dsd", "DSD변환 어떻게 써", "설치했어"가 언급되면 트리거. 다음 기수 초안 · 롤포워드는 DSD초안, dsd 숫자 검증은 DSD푸팅...

  • 6 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 11, 2026
ai-agentspythonapi

Works with

  • api

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 19 files and shows the line behind each finding

Scanned November 11, 2026

npx -y skills add hany202507/finance-ai-skills --skill 'DSD변환' --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of DSD변환?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for DSD변환
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/hany202507-dsd-finance-ai-skills/badge)](https://www.skillsdirectory.com/skills/hany202507-dsd-finance-ai-skills)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: DSD변환
description: 'DART 에 공시된 감사보고서 · 연결감사보고서(접수번호, DART 에서 받은 PDF, 공시서류원본 xml)를 DART 편집기 파일(dsd)로 바꾼다. 본문(문단 · 표 · 칸 · 숫자 · 서식 표시)은 원문 그대로 두고, 공시 때 빠진 편집기 요소(삽입 위치 13곳 · 목차 · 안내문 · 문서 머리 · meta.xml)와 문단 안 줄바꿈(DART 공시 화면 기준)만 되살린다. 회사가 dsd 를 주지 않을 때, 초도 감사라 전기 dsd 가 없을 때, 작년 공시로 올해 dsd 를 시작할 때 쓴다. "다트 보고서 dsd 로", "공시 원문 dsd 변환", "DART 받은 거 dsd 로 바꿔줘", "작년 감사보고서 dsd 로", "전기 dsd 없어", "다트에서 받은 PDF 로 dsd", "접수번호로 dsd", "dsd 변환", "작년 공시로 dsd", "DSD변환 어떻게 써", "설치했어"가 언급되면 트리거. 다음 기수 초안 · 롤포워드는 DSD초안, dsd 숫자 검증은 DSD푸팅 스킬이다.'
---

# DSD변환

DART 공시 원문 하나만 있으면 된다. 감사 폴더가 없어도 된다. 엔진이 다 하고 AI 판단은 없다. 이 스킬은 명령을 고르고, 결과 줄을 읽어 사용자에게 전한다.

- 엔진: 이 스킬 폴더의 `scripts/`. 감사 엔진에서 dsd 변환과 원고 엑셀에 쓰는 부분만 담았다(`scripts/audit/report/dsd_convert.py` 변환 · `dsd_draft.py` 원고 판독 · `dsd_draft_book.py` 원고 엑셀 · `dsd_build.py` 원고 → dsd · `dart_fetch.py` OpenDART 받기).
- 명령: `python scripts/run.py <convert · check · build> …`. 스킬 폴더에서 부르고 환경변수 `PYTHONIOENCODING=utf-8` 을 준다. 옵션은 `python scripts/run.py convert -h`.
- 의존성: `pip install -r requirements.txt`(openpyxl · pyyaml).

## 처음 쓰는 사람에게(설치 직후 · 「어떻게 써」)

설치한 뒤 처음 부르거나 「DSD변환 어떻게 써」 라고 하면 아래를 짧게 알려 준다. Claude 에게 보낼 문장으로 적는다(터미널 명령은 적지 않는다). 사용자가 접수번호나 파일을 이미 줬으면 안내 없이 바로 1절부터 돌린다.

1. 「<접수번호> dsd 로 바꿔 줘」 또는 「<DART 에서 받은 PDF · 원문 xml 경로> dsd 로 바꿔 줘」. 결과 폴더를 말하지 않으면 파일 옆(접수번호면 지금 폴더)에 둔다.
2. 다음 해 dsd 를 시작하려면 변환한 dsd 로 [DSD초안](../DSD초안/) 스킬을 부른다(「이 전기 dsd 로 당기 초안 만들어 줘」).
3. 접수번호 · PDF 로 받으려면 OpenDART 인증키를 환경변수 `DART_API_KEY` 에 둔다(https://opendart.fss.or.kr 에서 발급). 원문 xml 이 이미 있으면 필요 없다.
4. 만든 dsd 는 DART 편집기로 열어 본 뒤에 쓴다.

## 1. 무엇을 받았는지 보고 명령을 고른다

| 가진 것 | 명령 |
|---|---|
| 접수번호(14자리) | `python scripts/run.py convert <접수번호> --out <폴더>` |
| DART 에서 받은 PDF | `python scripts/run.py convert "<PDF>" --out <폴더>` (PDF 이름 · 쪽에서 접수번호를 찾아 원문을 받는다) |
| 공시서류원본 xml | `python scripts/run.py convert "<xml>"` |
| 고친 원고 엑셀 | `python scripts/run.py build "<원고.xlsx>"` |

인증키는 환경변수에서만 읽고 화면 · 파일에 적지 않는다. 받지 못하면 「원문을 받지 못함: …」 으로 종료 코드 2 다.

회사명만 알면 OpenDART 공시 목록(`list.json`, `corp_code`)에서 「감사보고서 (YYYY.12)」 접수번호를 찾아 넣는다. 사업보고서 · 반기보고서 안의 감사보고서는 서식이 달라 바꾸지 않는다(「감사보고서(00760) · 연결감사보고서(00761) 원문만」 으로 멈춘다). 2019년 무렵 이전의 옛 dart3 원문도 받지 않는다.

## 2. 결과

| 파일 | 내용 |
|---|---|
| `<회사>_<결산연도>_감사보고서_변환.dsd` | 원문 그대로 바꾼 dsd. 연결이면 `…_연결감사보고서_변환.dsd` |

첫 줄에 「본문 원문과 같음」 이 나와야 한다. 「다름」 이면 종료 코드 1 이고 그 dsd 를 넘기지 않는다. `python scripts/run.py check <원문 xml> <변환.dsd>` 로 다시 보고 보고한다.

## 3. 사용자에게 전할 것

1. 만든 파일과 첫 줄(서식 · 회사 · 결산일 · 삽입 위치 수 · 본문 같음 · 되살린 줄바꿈 수).
2. DART 편집기 5.1 에서 열린다(2026-11-06 확인: 감사보고서 · 연결감사보고서 둘 · 다음 기수 초안 모두 목차 · 재무제표 · 주석 · 외부감사 실시내용이 보이고, 파일형식 검사의 구조 검사를 넘는다). 편집기에서 재무제표마다 [재무제표 > 재무제표 검사] 를 돌린 뒤 파일형식 검사를 하라고 전한다. 공시 원문에는 그 검사 기록이 없어 처음 검사 때 「재무제표 검사를 다시 하여야 합니다」 가 뜬다. 재무제표 검사가 회사가 만든 계정(계정코드 `99999999999999`)을 「표준과 다릅니다」 로 짚으면 편집기에서 표준 계정과 짝짓는다(회사가 저장한 원래 dsd 에서도 같은 줄이 나온다). `--bare` 판은 편집기가 「오류가 발견되어 문서를 열 수 없습니다」 로 거절하니 쓰지 않는다.
3. 결과 줄의 알림을 그대로 옮긴다.
   - 연결 감사보고서: 편집기 샘플이 없어 별도 틀을 연결 이름으로 바꾼 추정 틀이다. 2026-11-06 편집기에서 연결 두 건(라이브러리 표 · 직접 만든 표)이 열렸고 구조 검사를 넘었다.
   - 「감사보고서」 FILENAME 추정: 감사인의 감사보고서 라이브러리 파일 이름은 확인한 편집기 파일에 없었다.
   - 「직접 만든 표」: K-IFRS 회사처럼 재무제표를 라이브러리 표가 아닌 일반 표로 만든 원문이다. 재무제표 삽입 위치는 비워 두었다.
   - 「공시 화면이 없어 … 줄바꿈을 되살리지 못했다」: 공시 원문 xml 에는 문단 · 칸 안 줄바꿈이 없다. 접수번호 · PDF 로 받으면 같은 보고서의 DART 공시 화면(`<이름>.view.html`)도 받아 화면대로 되살린다. xml 만 받았으면 공시 화면을 원문과 같은 폴더에 `<원문 이름>.view.html` 로 두거나 `--view` 로 준다. 화면을 받지 못해도 변환은 되고, 편집기에서 긴 문단이 한 줄로 이어져 보일 뿐이다.
   - 「그림 n개 … dsd 에 들어가지 않았다」: 공시서류원본 zip 에는 그림 파일이 없다. 상장사 내부회계관리제도 운영실태보고서 · 부정위험 내부통제 붙임이 그림으로 들어 있어, 그대로 편집기에서 열면 파일형식 검사가 「이미지 파일 형식이 올바르지 않습니다」 로 막는다. 회사에서 그림 파일을 받아 편집기에서 그 그림을 지우고 다시 넣는다.
   - 상장사는 감사보고서 · 연결감사보고서가 사업보고서 접수번호 안에 붙어 있다(`<접수번호>_00760.xml` · `_00761.xml`). 정정 사업보고서 접수번호에는 붙임이 없을 수 있어 원래 사업보고서 접수번호로 받는다.
4. 요약 코드(자산총계 · 감사의견 구분 등)는 원문 값 그대로다. 당기 감사에 쓸 때는 편집기 「문서 헤더정보」 에서 고친다. 이 스킬은 감사의견을 정하지 않는다.

변환이 끝나면 전기 dsd 가 생긴 것이다. 당기 초안(당기 숫자 → 전기 칸, 기수 · 해 +1, 기초 채우기, 원고 엑셀 · 초안 검산)은 DSD초안 스킬로 이어서 만든다. 회사가 준 전기 dsd 도 같은 스킬로 초안을 만든다.

## 변환이 바꾸는 것

공시 원문은 편집기 dsd 의 본문(contents.xml)과 같은 dart4 꼴인데 편집기 요소를 걷어 낸 판이다. 같은 보고서의 공시 원문과 편집기 저장 파일을 견주어 다른 곳 다섯을 찾았고, 변환은 그 다섯만 되돌린다.

| 번호 | 편집기 dsd | 공시 원문 | 변환 |
|---|---|---|---|
| 1 | `DOCUMENT-HEADER` 가 서식 이름 · 판 · 회사명 · 요약 코드를 감싼다 | 감싸개 없음 | 감싼다 |
| 2 | `TOC` 가 목차 제목 · 목차 표 · 쪽 나눔을 감싼다 | 감싸개 없음 | 감싼다 |
| 3 | 삽입 위치(INSERTION) 13곳. 라이브러리로 넣은 절은 그 안에 `LIBRARY > FILENAME` | LIBRARY 만 남음 | 13곳을 편집기 차례대로 되살리고 원문 LIBRARY 를 맞는 곳에 넣는다 |
| 4 | 안내문(WARNING) 둘 | 없음 | 편집기와 같은 위치에 둔다 |
| 5 | 라이브러리가 넣은 재무제표 제목에만 ENG | 2025년 공시부터 목차 · 절 · 표지 칸에도 ENG | LIBRARY 에 들지 않은 요소의 ENG 를 뺀다 |

공시 원문에서 빠진 문단 · 칸 안 줄바꿈(편집기의 `&cr;`)은 공시 화면이 있으면 화면대로 되살린다. 글자 · 숫자 · 요소는 그대로이고 「본문 원문과 같음」 은 줄바꿈 표시를 빼고 견준다. 빈 문단 줄바꿈은 화면에도 없어 되살리지 않는다(세로 여백만 다르다). meta.xml 은 원문 머리에서 만든다.

## 하지 않는 것

- 원문 글 · 숫자를 고치지 않는다. 바꾸는 것은 위 다섯 가지와 공시 화면대로 되살린 줄바꿈뿐이다.
- 고객 dsd · 원고 엑셀을 저장소나 공유 폴더에 올리지 않는다.

Files in this skill

  • README.md3.8 KB
  • SKILL.md9.1 KB
  • requirements.txt24 B
  • scripts/audit/__init__.py273 B
  • scripts/audit/errors.py503 B
  • scripts/audit/folder.py30.5 KB
  • scripts/audit/report/__init__.py159 B
  • scripts/audit/report/base.py12.6 KB
  • scripts/audit/report/dart_fetch.py14.7 KB
  • scripts/audit/report/dsd.py62.8 KB
  • scripts/audit/report/dsd_breaks.py15.9 KB
  • scripts/audit/report/dsd_build.py43.8 KB
  • scripts/audit/report/dsd_compare.py23.4 KB
  • scripts/audit/report/dsd_convert.py21.7 KB
  • scripts/audit/report/dsd_draft.py86.1 KB
  • scripts/audit/report/dsd_draft_book.py21.8 KB
  • scripts/audit/report/dsd_frame.py10.4 KB
  • scripts/audit/report/dsd_grid.py44.3 KB
  • scripts/audit/report/dsd_links.py86.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in ai-agents →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.