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 skills add Dannykkh/skill-olympus --skill excel2mdgit clone --depth 1 https://github.com/Dannykkh/skill-olympusWrote 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/dannykkh/skill-olympus/excel2md)<a href="https://agentmods.dev/skills/dannykkh/skill-olympus/excel2md"><img src="https://agentmods.dev/badge/skills/dannykkh/skill-olympus/excel2md/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/dannykkh/skill-olympus/excel2md"><img src="https://agentmods.dev/badge/skills/dannykkh/skill-olympus/excel2md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.00063 | $0.01816 |
| Opus 5.5 | $0.00025 | $0.00726 |
| Sonnet 5.5 | $0.00013 | $0.00363 |
| Haiku 4.5 | $0.00006 | $0.00182 |
Grade A, and why
excel2md 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 — 182 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Excel to JSON/Markdown
엑셀 파일을 구조화된 JSON 또는 마크다운으로 변환합니다. 임베디드 이미지도 자동 추출하여 해당 행에 매핑합니다.
Quick Start
/excel2md report.xlsx # JSON (기본)
/excel2md report.xlsx --format md # 마크다운
/excel2md data.xlsx --sheet "매출현황" # 특정 시트
/excel2md data.xlsx --output ./docs # 출력 디렉토리
/excel2md data.xlsx --no-images # 이미지 제외
Step 0: 구조 분석 (First Actions)
변환 전 엑셀 파일의 구조를 먼저 파악합니다.
import openpyxl
wb = openpyxl.load_workbook('data.xlsx', data_only=True)
for sheet_name in wb.sheetnames:
ws = wb[sheet_name]
print(f"\n=== {sheet_name} ===")
print(f" 크기: {ws.max_row}행 × {ws.max_column}열")
print(f" 병합 셀: {len(ws.merged_cells.ranges)}개")
# 헤더 자동 감지 (문자열 비율 기반)
for row_idx in range(1, min(6, ws.max_row + 1)):
row = [ws.cell(row_idx, c).value for c in range(1, ws.max_column + 1)]
str_ratio = sum(1 for v in row if isinstance(v, str)) / max(len(row), 1)
marker = " ← 헤더 후보" if str_ratio > 0.7 else ""
print(f" 행 {row_idx}: {row[:5]}...{marker}")
구조 분석 출력 예시
=== Sheet1 ===
크기: 150행 × 8열
병합 셀: 3개
행 1: ['번호', '이름', '부서', '직급', '입사일']... ← 헤더 후보
행 2: [1, '김철수', '개발팀', '대리', datetime(2020,3,1)]...
=== 매출현황 ===
크기: 50행 × 12열
병합 셀: 12개 (그룹 헤더)
행 1: ['', '', '2025년', None, None, '2026년']... ← 그룹 헤더
행 2: ['지역', '담당자', '1Q', '2Q', '3Q', '1Q']... ← 실제 헤더
Step 1: 데이터 타입 감지 + 변환
타입별 처리 규칙
| 엑셀 타입 | JSON 출력 | MD 출력 |
|---|---|---|
| 문자열 | "text" |
text (파이프·줄바꿈 이스케이프) |
| 정수 | 123 |
천 단위 콤마 1,234 |
| 소수 | 3.14 |
1,234.56 (정수값이면 콤마 정수) |
| 날짜/일시 | "2020-03-01 00:00:00" (datetime을 str()로 — ISO 변환 안 함) |
동일 문자열 |
| 불리언 | true/false |
Yes/No |
| 수식 | 계산 결과값 (data_only=True) |
계산 결과값 |
| 빈 셀 | null |
(공백) |
JSON 셀 직렬화는
None/bool/int/float만 원형 유지하고 나머지(날짜·하이퍼링크 등)는 모두str()로 변환합니다. 하이퍼링크/통화/퍼센트를 구조화 객체({value, format})로 분리하는 기능은 없습니다 — 셀의 텍스트/숫자 값만 출력됩니다.
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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 · 182 lines · 63 tokens per session scan A ecf9ceb6511c
excel2md is a skill published in the GitHub repository Dannykkh/skill-olympus (7 stars, last pushed 3d ago), licensed MIT. It adds 63 tokens to every session and 1,816 once invoked, about $0.0003 per session on Opus 5.5. 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-09-03.
Other skills, from other repositories
capture-pdf
Website-to-PDF capture (all pages + interactive states). Use when: "capture", "pdf", "print", "screenshot", "capture pages".
google-workspace-ops
Operate across Google Drive, Docs, Sheets, and Slides as one workflow surface for plans, trackers, decks, and shared documents. Use when the user needs to find, summarize, edit, migrate, or clean up Google Workspace assets without dropping to raw tool calls.
office-xlsx
Read, create, edit, and validate Excel workbooks, data, and formulas (.xlsx).
document-skills
Professional document creation, editing, and analysis for Office formats (docx, pdf, pptx, xlsx). Use when working with Word documents, PDFs, PowerPoint presentations, or Excel spreadsheets.
document-creator
Use when creating, editing, and generating Office documents programmatically — Word, PowerPoint, Excel, and PDF. One interface for all document formats with shared methodology.
audit-project
Audits the Claude Code configuration of a project against the dotforge template. Generates a report with score and gaps.