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 YuYY2004/excel-skills --skill excel-scoutgit clone --depth 1 https://github.com/YuYY2004/excel-skillsWrote 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/yuyy2004/excel-skills/excel-scout)<a href="https://agentmods.dev/skills/yuyy2004/excel-skills/excel-scout"><img src="https://agentmods.dev/badge/skills/yuyy2004/excel-skills/excel-scout/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/yuyy2004/excel-skills/excel-scout"><img src="https://agentmods.dev/badge/skills/yuyy2004/excel-skills/excel-scout.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.00220 | $0.02217 |
| Opus 5 | $0.00110 | $0.01108 |
| Sonnet 5 | $0.00044 | $0.00443 |
| Haiku 4.5 | $0.00022 | $0.00222 |
Grade A, and why
excel-scout 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 11d 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 — 165 lines — stays where its author put it; the contents beside it link to each section on GitHub.
This skill is read-only, no side effects. Uses openpyxl read_only + pandas sampling for fast scanning. It is the prerequisite step for all other operation skills. 本技能只读不写,安全无副作用。用 openpyxl read_only + pandas 采样快速扫描,是其他所有操作技能的前置步骤。
Excel Pre-Operation Scout / Excel 操作前勘察
Purpose / 定位
This skill solves a high-frequency pain point: users describe needs in business language ("convert dates to yyyymmdd", "change country codes to Chinese names"), but don't know which column corresponds to what or what the current values are. Figure out the target columns before operating, to avoid modifying wrong columns.
本技能解决一个高频痛点:用户描述需求时用的是业务语言("把日期转成 yyyymmdd""国别代码改中文"),但不知道文件里哪一列对应、当前值是什么。 在动手前先搞清楚目标列,避免改错列。
User Request (business language) / 用户需求(业务语言)
│
▼
excel-scout: Scan file → Locate target columns → Show current values → Confirm operation scope
扫描文件 → 定位目标列 → 展示当前值 → 确认操作范围
│
▼
Other skills: Execute operations on confirmed target columns / 其他技能: 在已确认的目标列上执行操作
Workflow / 工作流程
1. Receive Requirements / 接收需求
Extract the following from user requirements: / 从用户需求中提取以下信息:
| To Extract / 要提取的 | User Says / 用户说 | Example / 示例 |
|---|---|---|
| File Path / 文件路径 | "test-files/xxx.xlsx" / "测试文件/xxx.xlsx" | Must be explicit / 必须明确 |
| Operation Intent / 操作意图 | "dates to text" / "country codes to Chinese" / "renumber" / "日期转文本""国别改中文""序号重排" | One target column per intent / 每项一个目标列 |
| Column Characteristics / 操作列特征 | Column name keywords / data type / position / 列名关键字 / 数据类型 / 位置 | Infer / 推断 |
2. Scan File / 扫描文件
import os, sys
from openpyxl import load_workbook
from openpyxl.utils import get_column_letter
from datetime import datetime
import pandas as pd
FILE = 'target.xlsx' / FILE = '目标文件.xlsx'
size_mb = os.path.getsize(FILE) / 1024 / 1024
# ====== A. Read headers (fast with read_only) / 读表头 ======
wb = load_workbook(FILE, read_only=True)
ws = wb.active
headers = {}
for cell in ws[1]:
if cell.value:
headers[cell.column] = str(cell.value).strip()
total_cols = len(headers)
print(f'File: {os.path.basename(FILE)} ({size_mb:.0f}MB) / 文件: {os.path.basename(FILE)} ({size_mb:.0f}MB)')
print(f'Columns: {total_cols} / 列数: {total_cols}')
# Print full header inventory / 打印完整表头清单
print(f'\n=== Header Inventory / 表头清单 ===')
for col_idx in sorted(headers.keys()):
cl = get_column_letter(col_idx)
print(f' {cl}({col_idx}): {headers[col_idx]}')
wb.close()
# ====== B. data_only sample scan for date columns / data_only 采样扫描日期列 ======
wb2 = load_workbook(FILE, read_only=True, data_only=True)
ws2 = wb2.active
date_cols = {}
for row in ws2.iter_rows(min_row=2, max_row=min(500, ws2.max_row or 999999)):
for cell in row:
if isinstance(cell.value, datetime) and cell.column not in date_cols:
date_cols[cell.column] = headers.get(cell.column, '?')
wb2.close()
if date_cols:
print(f'\nFound {len(date_cols)} date columns / 发现 {len(date_cols)} 个日期列:')
for c in sorted(date_cols):
print(f' {get_column_letter(c)}({c}): {date_cols[c]}')
# ====== C. pandas sample read (first N rows only) / pandas 采样读数据 ======
df_sample = pd.read_excel(FILE, nrows=5000)
print(f'\nTotal rows (sample cap): {len(df_sample)} / 总行数(采样上限): {len(df_sample)}')
# ====== D. Locate target columns per user requirements / 针对用户需求定位目标列 ======
# For each operation intent, match target columns and display current values
# 对每一项操作意图,匹配目标列并展示当前值
for intent in ['Dates→yyyymmdd / 日期→yyyymmdd', 'Country codes→Chinese / 国别代码→中文', 'Renumber / 序号重排']:
# Match by keyword or data type / 按关键字或数据类型匹配
# Show target column + current value samples / 展示目标列 + 当前值样本
pass
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.
- 11d ago First seen · 165 lines · 220 tokens per session scan A 6d320ac86b16
excel-scout is a skill published in the GitHub repository YuYY2004/excel-skills (2 stars, last pushed 2mo ago), licensed MIT. It adds 220 tokens to every session and 2,217 once invoked, about $0.0011 per session on Opus 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-08-31.
Other skills, from other repositories
spreadsheets
Use when creating, reading, or fixing spreadsheets (.xlsx, .csv). Covers formulas, formatting, charts, data cleaning, and handling the messy real-world files that are not actually tabular.
Excel工具
A guide for using Excel tools to read, write, and recalculate spreadsheet files. It includes a rule for treating the first row as data when a spreadsheet has no column headings.
huashu-data-pro
All-in-one data analysis and productivity assistant. Covers end-to-end workflows for data processing, analytical insights, report writing, PPT creation, and data visualisation. Always approaches tasks from an expert perspective — thinks one step ahead for the user. Proactively confirms with the user when uncertain.…
xlsx
Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or…
thinkcell
Generate, update, and automate think-cell charts and elements in PowerPoint and Excel. Use ANY time the user mentions think-cell, thinkcell, or .ppttc files, or asks to create/update PowerPoint charts following think-cell conventions (waterfall, Mekko, stacked column, Gantt, Harvey ball, scatter/bubble, etc.) …
bug-report-writer
Converts rough notes, casual descriptions, console errors, or quick observations into professional, complete bug reports — exported as a formatted Excel (.xlsx) file ready for Excel, Google Sheets, Jira, or Azure DevOps. Use this skill whenever the user mentions: "write a bug report", "log a bug", "report this issue"…