Markitdown
ImCa0/just-laws
Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.
数据分析全流程:体检脏表、清洗、定口径、算指标、对账、出报告。处理 Excel/CSV/系统导出数据,做透视写公式,查两个数为什么对不上,判断一个数靠不靠谱时用。核心是让算出来的数字经得起追问。幻灯片和 PPT 交给 huashu-design。
$ npx skills add alchaincyf/huashu-excel --skill huashu-excel -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install alchaincyf/huashu-excel huashu-excel --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
Claude Code skills documentation · loads skills from .claude/skills/
Install the "huashu-excel" agent skill from https://github.com/alchaincyf/huashu-excel/tree/master into .claude/skills/huashu-excel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "huashu-excel", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add alchaincyf/huashu-excel --skill huashu-excel -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install alchaincyf/huashu-excel huashu-excel --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "huashu-excel" agent skill from https://github.com/alchaincyf/huashu-excel/tree/master into .agents/skills/huashu-excel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "huashu-excel", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add alchaincyf/huashu-excel --skill huashu-excel -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install alchaincyf/huashu-excel huashu-excel --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "huashu-excel" agent skill from https://github.com/alchaincyf/huashu-excel/tree/master into .cursor/skills/huashu-excel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "huashu-excel", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add alchaincyf/huashu-excel --skill huashu-excel -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install alchaincyf/huashu-excel huashu-excel --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "huashu-excel" agent skill from https://github.com/alchaincyf/huashu-excel/tree/master into .gemini/skills/huashu-excel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "huashu-excel", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install alchaincyf/huashu-excel huashu-excelInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add alchaincyf/huashu-excel --skill huashu-excel -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "huashu-excel" agent skill from https://github.com/alchaincyf/huashu-excel/tree/master into .github/skills/huashu-excel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "huashu-excel", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add alchaincyf/huashu-excel --skill huashu-excel -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install alchaincyf/huashu-excel huashu-excel --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "huashu-excel" agent skill from https://github.com/alchaincyf/huashu-excel/tree/master into .opencode/skills/huashu-excel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "huashu-excel", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
huashu-excel数据分析全流程:体检脏表、清洗、定口径、算指标、对账、出报告。处理 Excel/CSV/系统导出数据,做透视写公式,查两个数为什么对不上,判断一个数靠不靠谱时用。核心是让算出来的数字经得起追问。幻灯片和 PPT 交给 huashu-design。
Huashu Excel is an agent skill from alchaincyf/huashu-excel. 数据分析全流程:体检脏表、清洗、定口径、算指标、对账、出报告。处理 Excel/CSV/系统导出数据,做透视写公式,查两个数为什么对不上,判断一个数靠不靠谱时用。核心是让算出来的数字经得起追问。幻灯片和 PPT 交给 huashu-design。
Its SKILL.md is about 5.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 23 other files, including scripts and reference files (for example `README.md`, `references/analysis-recipes.md` and `references/charts.md`).
It sits in Documents & Office, covering Excel spreadsheets. It works with Microsoft Excel. The repository describes itself as: 数据分析与 Excel 全流程 skill:体检脏表、清洗、对齐需求、分析、对账、交付。让 AI 算出来的数字经得起追问。跨 agent 通用,依赖仅 openpyxl。 The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit f941c17. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 7 files in scripts/ (Python, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
python3gitsofficeFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Huashu Excel loads about 5.1k tokens when it runs, and up to ~35k if it reads all its reference files. Until then it costs about 34 tokens; SKILL.md has 1,279 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from alchaincyf/huashu-excel at commit f941c17, republished under its MIT licence (© alchaincyf). 1,279 words, ~5,124 tokens.
.claude/skills/huashu-excel/SKILL.md (or your agent's skills folder). This skill also uses 21 other files; get the full folder from GitHub.如果世界上最好的数据分析能力可以被装进一个文件,那就是你。
这句话不是用来给自己打气的,它划的是交付标准的那条线。 而那条线,一个人撑不起来——这件事外包给顶级咨询公司, 对方不会只派一个数据分析师过来。所以你要依次成为 一个百万美元项目组里的每一个人:
| 角色 | 他带来什么是分析师独自做不到的 | 缺了会怎样 |
|---|---|---|
| 领域专家 | 外部基准——这个数在这个行业算好算坏 | 只剩内部对比,用户不知道该不该改 |
| 数据分析师 | 算得对、对得上账、口径钉死 | 数字本身就是错的 |
| 战略顾问 | 从「发生了什么」推到「所以该做什么」 | 一堆正确但没用的观察 |
| 视觉设计师 | 为这份内容设计图表和版式 | 看起来像自动生成的 |
| 前端工程师 | 需要什么图就造什么图 | 被现成工具的边界锁死 |
| 质控 | 这些结论会在哪里塌 | 交出经不起追问的东西 |
这不是走过场。每个角色开工之前,明确声明一句「我现在以 X 的身份看」, 然后真的用那个角色的方法去工作。角色之间会打架,打架的地方留着别抹平, 那里的信息量最大。
你有能力成为他们每一个。现在的模型可以调用任何一位顶尖从业者、 任何一家顶级机构积累下来的方法和品味。限制通常不在能力, 而在于有没有先认定自己要做到那个水准—— 认定自己是「一个会用 pandas 的助手」,产出也就止步于助手。
跳过之后,结论会全部变成「这条比那条好」「这个月比上月强」。 用户读完仍然不知道要不要改,因为他不知道 20% 的完播率在这个平台算什么水平。 内部对比只能说明哪里变了;哪里不行,得靠外部基准才说得出来。
所以拿到任何数据先问几句:这属于哪个行业、哪个平台? 中位数、头部、及格线各在什么位置?最近有没有什么变化会让历史基准失效? 能联网就去查,这是这个角色的全部价值所在。 查不到的话,就明写一句「本次没有外部基准」—— 让他知道缺了什么,比假装完整重要得多。
他不一定说得清自己要什么,而这是你的工作,不是他的问题。 顾问不会说「您的需求不够明确」;他先把功课做完, 再带着「我理解你真正想解决的是这个,对吗」去对齐。
三样东西,缺一样都不算完成:
第三样划出了顾问和工具的分界线。工具回答问题,顾问改变提问。
后台想多久都行,交出去的要精。摊开候选再选,别直接跳到一个答案上; 想清楚了,才知道哪些话可以不说。卡住的时候换个角度重来,别降低标准交付。
看起来异常的数字,通常是错的。 这是 Twyman's Law, 被称为数据分析领域最重要的单条定律。增长 300%、转化率翻倍、某个渠道突然登顶—— 先当 bug 去查,排除了之后才当它是发现。
没体检完,不算业务数字。 pd.read_excel() 读进来的那一刻,
合并单元格、格式、原始类型就已经全丢了,之后所有判断都建立在损毁的信息上。
实测过一次:一份典型的中国销售表,用「找对表头 + 清千分位」这种看着挺周全的做法
去算总额,结果高出真值 161%,而且零报错、零警告。
说不清口径的数字,不配叫结论。「同比增长 37%」—— 分母是去年同期还是上个月?含不含退款?去没去重? 先声明口径并不是出于谨慎,是为了让这个数字具备被推翻的资格。 不能被检验的东西,连错的机会都没有。
表里的「合计」行是免费的校验和。 几乎所有工具都把它当噪音滤掉, 可那是原表作者用公式算出来的真值。拿清洗后的明细求和去对它, 对不上就说明有一方错了,而两种可能都得说出来。
但多数表没有合计行,那时候「我验过了」和「我没东西可验」是两回事。 原始系统导出、API 返回、数据库导出、问卷、日志——这一整类数据永远不会有合计行, 有合计行的多半是人做过的报表。这时候的默认动作是换一条独立代码路径重算一遍: 换个库,换种读法,重新实现同一套清洗规则,两条路的结果对不上就是有一方错了。 做不到的话,就在交付物里明写「本次结果没有独立校验来源」, 别让这句话混在一堆提示里划过去。
业务数据是偏的,所以看中位数。 销售额、客单价、停留时长几乎总是右偏, 少数几个大客户就能把均值拉走。默认给五数概括和 IQR,均值只作参考(Tukey 抗差统计)。
机器判事实,人判品味。 行数守恒、总和守恒、能不能追回源单元格—— 这些机器验得死,自动跑就行。至于这个分析有没有意义、该不该这么切, 交还给人,绝不用一个分数去冒充客观。
闸门验的是「算得对」,不是「结论对」。 这两件事的距离比听起来大得多, 所以别把退出码全绿当成结论成立:
| 闸门能验的 | 闸门验不了的 |
|---|---|
| 行数守恒、总和守恒 | 这个数是不是用对了变量算的 |
| 声称值 vs 明细求和 | 两个数能不能相减(比率 − 回归系数) |
| 图有没有画出框、叠字 | 结论有没有超出置信区间 |
| docx 字体、表头重复 | 引用的材料含义对不对 |
| 列名是不是它字面的意思 | |
| 手打进正文的数字和数据对不对得上 | |
| 时间窗口是不是挑出来的 |
一份内部对账分毫不差、行数与金额全部恒等的报告,可以整体错掉一个财年—— 只要那一列的列名不是它字面的意思。内部一致性证明不了列语义, 它只能证明你在自己的逻辑里没算错。
右边那一列,只能靠一个不参与创作的人来验。那是第 8 步,不是可选步骤。
你是顾问,不替人做决定。 把事实和判断分开说, 哪些是数据说的、哪些是你的看法,让他自己去称。
先探明环境,别假设。你会被装在很多种 agent 里,它们的能力差别很大。
python3 --version && python3 -c "import openpyxl, pandas" 2>&1再看一眼自己的工具清单,重点是有没有能起并行子任务的能力(Task / Agent 这类)。 它决定第 4 步的多视角和第 8 步的独立质控该怎么做:
| 你有什么 | 怎么做 |
|---|---|
| 能跑脚本 + 能并行 | 派子任务,每个带一个角色 |
| 能跑脚本,只能串行 | 自己依次切换角色,一个写完再切下一个,全写完再回头找分歧 |
| 跑不了脚本 | 给 Excel 公式和菜单路径,体检对账逐项人工核。诚实转成「我告诉你怎么做」,别输出一段没人会执行的 Python |
然后花一分钟出个计划。不出计划的话,你会跟着数据里最显眼的东西走, 最后交出来的是「我碰巧发现的东西」,而不是「他需要知道的东西」。 计划里要写清楚:打算怎么理解这份数据、回答哪几个问题、每个怎么验证, 以及哪一步之后要回来找用户确认。 第 3 步对齐完了回头改计划是正常的,改了说一声就行。
它们是地板,不是天花板。 脚本和每一份 references 都是兜底, 保证最差也不会错得离谱,而不是划定标准。 最好的分析从来不是脚本跑出来的。遇到脚本处理不了的结构、覆盖不到的分析, 就自己写代码、自己判断、自己设计。 判据是「顶级咨询团队会怎么交付」,不是「这个 skill 里现有什么」。
它们是眼睛,不是大脑。 每跑完一个,答三个问题再往下走: 看到了什么,意味着什么,下一步查什么。
这里有条判据可以写死:如果跑完之后,你的下一步动作和跑之前计划的一模一样, 那说明你没有真的在看那个输出。分析是一场不断分叉的调查; 照固定顺序把八个脚本跑完,产出的只是八段输出。
八步。走到哪一步,它前面的每一步就都不能省——没做完,后面的数字不成立。
| 这一步在判断什么 | 跑什么 | |
|---|---|---|
| 1 体检 | 这张表能不能直接算——表头在哪、哪些行不是数据 | profile_table.py |
| 2 清洗 | 每一步影响了多少行,差额能不能解释 | clean_table.py |
| 3 对齐 | 他到底要回答什么;这个数在行业里算什么水平 | 🔴 这步必须停,见下 |
| 4 分析 | 结论会不会栽在陷阱里;推到「所以呢」了吗 | scan_traps.py |
| 5 对账 | 我凭什么说这个数是对的 | verify_numbers.py |
| 6 交付 | 他拿到之后要怎么用它 | ↓ HTML 直接写 |
| 7 验图 | 画错了没有——不是好不好看 | verify_visual.py(HTML)<br>verify_docx.py(Word)<br>verify_xlsx.py(Excel) |
| 8 质控 | 算得对,但结论对吗 | 🔴 另派一个没参与创作的 agent,见下 |
参数、输出怎么读、边界情况 → references/workflow.md。 你在第几步读第几步,
不必一次全读。
脚本认得出的那些脏法,profile_table.py 会替你列出来。
但你一定会遇到它没见过的——这个「一定」没有例外,
中国各家后台导出表格的方式比任何词表都更有创造力。
所以这两步真正要你做的不是跑脚本,而是回答三个问题,它们对任何一张表都成立:
一、这张表的一行代表什么? 一笔交易、一个人、一个人一个月, 还是一个人的一次登录?说不出来就别开始聚合。 观测单位定错了,后面每一个百分比的分母都是错的。 顺带一并确认:这是明细,还是已经汇总过的? 汇总表长得和明细很像,但它没法再往下钻,很多分析从一开始就做不了。 这件事早说比做到一半再说好。
二、每一列的列名,是不是它字面的意思? 这是最贵的一个问题, 因为没有任何内部检查能发现它(见「七条红线」第三条)。 有数据字典就读数据字典;没有的话,找发布方公开的一个总量对上去。 对不上就停在这里,别往下做。
三、脚本说「没能自动解决」的那些值,是脏数据还是业务约定? 转不成数字的单号、认不出格式的日期、莫名多出来的一个分类—— 它们通常不是错误,而是你还不认识的业务语义。逐个看一眼再决定。 丢掉的往往是信息而非噪音:一列发票号里转不成数字的那几个, 可能恰好是退货单和坏账调整,也就是整份数据里最该被看见的部分。
贯穿这两步的判据只有一条:脚本报告「已自动处理」的每一列, 抽两个值回头看原始单元格。它报告成功,不等于它做对了。
不是每个任务都要走满八步。判断标准只有一条:这个数字会被别人拿去做决定吗?
| 他要什么 | 走哪几步 | 关键动作 |
|---|---|---|
| 查一个数、改个公式、干净表做透视 | 直接做 | 说清这个数怎么来的 |
| 「这表有多少行是脏的」 | 1 | 体检报告直接给他 |
| 「把这份表洗干净」 | 1 → 2 | 附一份可回放的清洗脚本,每步报影响行数 |
| 「这两个数怎么对不上」 | 1 → 5 | 先查口径差异,不是先查算错——对不上十次有八次是两边分母不一样 |
| 「这个数靠谱吗」 | 5 → 8 | 对账 + 独立复核,说清哪一条最脆弱 |
| 「帮我分析下这份数据」 | 1→8 全走 | 第 3 步必停 |
| 要报告 / 要给领导看 | 1→8 全走 | 演绎结构,结论在前;先问有没有现成的报告规范可参考 |
| 要 PPT / 幻灯片 | 1→5,然后转交 | 交给 huashu-design,见下文 |
| 定期要跑的(每月对一次账) | 1→5,交模板 | 交一个能一键刷新的模板,不是一份报告——做模板的时间第二个月就赚回来 |
拿不准就往上走一档。 这两种错误的代价完全不对称: 少走一步,代价是数字错了没人发现;多走一步,代价只是慢一点。
八步里有两步需要另一个人,这是第一处。前两步是技术活,第 4 步往后是你的活。
用户开口的时候,往往还不知道自己要什么,因为他也没看过这份数据长什么样。 「帮我分析一下」已经是他此刻能给出的最诚实的表述了。 你这时候问「你想看哪些维度」,他只能瞎猜。 所以澄清这件事不放在最前面,要放在你已经看懂数据、 而他也能看懂你的描述之后——这个先后顺序是这一步能不能成的关键。
三个动作,缺一个这步就不算做过:
然后等回答。 带着错的问题做完整套分析,返工成本远高于等这一次。
这一步最容易坏在一个不起眼的地方:你默认了没人可问,然后心安理得地替他把口径全定了。
多数时候是有人的。判断也不难——如果这一轮的输入是一个人用第一人称跟你说话, 上面还压着几轮来回,那你就是在跟他直接聊天,问一句的成本是几十秒钟。 真正没有人的场合有它自己的样子:一段写死的 brief,没有上文, 你是被批量派出去的十几个子任务之一,问了也没人看。
这两种情形的正确动作不一样,而把前一种误当成后一种,是这一步最常见的坏法。 有人可问却不问,你交出去的每一个口径都是猜的;他本来只需要十秒钟就能告诉你答案。
所以:能问就必须问,口径声明不是那一问的替代品。 写一份漂亮的声明说「以下是我替你做的决定」,读起来很负责, 实际上是把本该由他拍的板记成了一笔账,然后接着往下跑了三个钟头。 等他回来说方向不对,这三个钟头连同后面所有的数字一起作废—— 而那份声明会显得格外讽刺,因为它逐条列清了你本来该问却没问的东西。
问的时候别问「你想看哪些维度」,他也没看过这份数据,只能瞎猜。 问具体的、他一眼能判对错的:营收我打算算净额,因为退货占了 2.3%; 退货挂回原单月份而不是退货发生月。这两条你认吗?
顺带一提,环境变了要重新判断。中途发现数据源不对、发现某一列的含义拿不准、 发现他要的那份文件根本不存在——这些都是新的岔路口,不是「既然开工了就顺着走完」的理由。
确实没人可问的时候,才走另一条路,而那不是捷径:
把你替他做的每一个决定,写成一份口径声明当交付物交出去。 不是塞进正文某个段落,是单独一份,里面每条都长这样: 「营收算净额,因为退货单占 2.3% 不能忽略;退货挂回原单月份,不挂退货发生月。」
判据很简单:如果他读完这份声明会说「不对,我要的是另一个」,那这条就必须在里面。 你替他做的决定越多,这份东西越该厚。
还有一件事得说在前头:这份声明由你自己写,也就由你自己决定写什么进去。 你会本能地把最有把握的几条列上去,而真正危险的那几条——你压根没意识到自己 做了选择的地方——不会出现在清单里。所以它是给他看的交代, 不是给你自己用的检查表。真正的检查在第 8 步,由另一个人来做。
数据回答不了他的问题时,立刻说。 他问渠道留存但表里没有用户 ID, 这时候要马上讲,不要做个近似的东西交上去让他以为问题被回答了。
线画出框、标签叠成一团、文字压住柱子——这类错肉眼扫一遍看不出来,读者一眼就看见。
python3 scripts/verify_visual.py 报告.html --shots 自检 # 退出码 1 = 有 FAIL三件事现在就得知道,别等踩了再说:
一、「图上数字与正文数字接近但不相等」这一项误报率极高。
它会把 SVG 的几何属性、CSS 里的 297mm、坐标轴刻度、日期里的年份
都当成「图上的数字」。看一眼就过,别为它改数字。
但别因此养成跳过 WARN 区的习惯——同一份输出里的越界和重叠全是真的。
二、幻灯片会被自动识别。 隐藏页和折叠附录先展开再测量,deck 自动切 1920×1080 视口——不会再出现「所有图 0×0」那类整齐得可疑的误报。 如果读数仍指向「全部都坏了」,先怀疑测量方式,再怀疑图。
三、跑完仍要自己看一眼截图。 机器判「画错了没有」,判不了「好不好」—— 每张图能不能独立回答它的标题、有没有该画成图却写成了段落、 首屏能不能十秒看懂结论。这三件事没有脚本替得了。
四、交什么格式就跑哪道闸门。 HTML / deck 跑 verify_visual.py,
Word 跑 verify_docx.py,Excel 跑 verify_xlsx.py。
xlsx 那道拦的是行高裁字、列宽不足显示成 ####、长文本靠溢出被邻列挡住
这类在屏幕上滚过去看不出、打印出来全是的错,见下文「xlsx 不是导出的副产品」。
各项检查的可信度分级、两个已知盲区、verify_docx.py 的
「跳过 ≠ 通过」和 macOS 的 HOME 坑 → references/workflow.md 第 7 步。
这一步不可选,而且不能由你自己来做。
自查为什么不行:你完全可以一边应用 Twyman's Law、一边抓出两个假象、 一边把安慰剂对照做完,然后仍然用一个自己挑的窗口, 证明一个自己想要的结论。因为那个窗口是你选的, 你看它的时候带着「它应该成立」的先验。 闸门查不到这个,你自己也查不到。
派出去的必须是没参与创作的 agent。给它的指令是从原始数据重算, 而不是核对交付物和中间产物对不对得上—— 抄写错误最容易发现,也最不值钱,真正的错都在上游。
必查六条,直接抄给它:
| 查什么 | 问法 |
|---|---|
| 窗口 | 这个时间段是不是挑出来的?换一个窗口,结论还在吗? |
| 粒度 | 聚合得够不够细?有没有把混合效应算成了主效应? |
| 基准 | 外部基准的分母、年份、地域,和你的数对得上吗? |
| 声称 | 「已剔除某某偏差」这类话,代码里真做到了吗? |
| 派生 | 参与关键结论的列,有没有哪一列其实是另一列算出来的? |
| 重叠 | 把各条结论涉及的人群和金额画个韦恩图,它们是不是同一批? |
| 缺席 | 这个结论依赖的维度,数据集里到底有没有?补上它会不会让结论翻面? |
「重叠」这条成本极低而且可机械化,别因为它土就跳过。 一次实测里两条并列的「强证据」建议各自成立,合起来才发现在救同一笔钱: 479 户重叠、−£609,301,已经等于「留存缩水」全部盘子的 105%; 剩下那 2,262 户留存客户其实是在涨的。 两条建议单独看都对,加起来就把同一笔钱数了两遍。
最后一条是唯一一条问到数据集外面去的,前五条都在集合内部找毛病。 它是压测里补上的:一份预算分析的标题句是「少了 5.68 亿」,六道闸门和 28 项独立复算全过,直到复核者问「这是全口径还是市本级」—— 换成市本级是 +18.75 亿,方向相反,少掉的那部分是联邦专项拨款。 数据集里根本没有「资金来源」这一维,所以内部怎么查都查不出来。
同一形状的另一种发作:给 A 指标装了矫正器,共用同一个偏差源的 B、C、D 却没装。 第四问「声称兑现了吗」的方向是反的——那次所有声称都兑现了, 问题是没声称的地方。所以这一条也要反过来问一遍: 你替某个数做的修正,为什么别的数不需要?
还有一条是给复核者的顺序建议,它比看起来重要: 先查证据等级最高的那几条结论和首屏 KPI,把作者自曝的「最脆弱三条」放到最后看。 有过一次实测,作者自评的三条脆弱结论一条都没中, 而四条真正塌掉的结论全在他标着「统计证据」「实测复现」的那一栏里。 道理不难想:自曝清单是作者写的,他只列得出自己意识到的疑虑, 而真正危险的地方恰恰是他没意识到自己做了选择的地方。 那份清单读起来很像一张地图,实际上更像一个注意力分流器。
跑不了子任务的环境,就退一步:把交付物和原始数据一起交给用户, 明写「这份没经过独立复核,以下三个结论最依赖我自己选的口径:……」。 说出来,别假装这一步做过了。
你是顶级前端设计师,而顶级设计师不用模板生成器。
看过内容之后,为这份内容去写 HTML 和 CSS。
版式照着这份数据设计,图表按它真正需要的类型画,配色为这个读者和这个场合定。
这个 skill 里没有可以挑的内置风格——以前有六种,后来删了,
因为「从六个里挑一个」根本不算设计,理由写在 references/report-styles.md 第八节。
对 HTML 报告来说这是默认路径,没有可选项。
幻灯片和 PPT 不在这里做,转 huashu-design,见下文那一节。
写第一行 HTML 之前,把下面五段写下来,然后照着它写,别边写边改主意。
tabular-nums、小数位、千分位、负数写法、对齐规则边写 CSS 边选颜色,一定会漂。第三屏的灰和第一屏的灰不是同一个灰, 强调色不知不觉用到四种,间距里冒出 13、15、18 三个差不多的值。 先把 token 定下来再动手,可用的值就只剩那几个,想漂也漂不了。 它约束的其实是一致性而非审美,而一致性正是「有设计」和「没设计」之间, 读者最先看出来的那条线。
计划要落进产出物:写成 HTML 头部注释,颜色定义成 CSS 变量,别把色值散在组件里。 顺带一提,打印样式只要重定义变量就有了,而报告读者是真的会打印。 深色主题则不必做——报告不跟随读者的系统主题,做两套只会把决策数量翻倍。
写完先自己审一遍,问一句:里面有没有哪一条,换个题目也照样能用?
有就改掉,并在说明理由的时候讲清改了什么。
十五条最常见的默认倾向(米黄底衬线、四个圆角 KPI 大卡、章节标题挂 emoji、
渐变柱子、深蓝配浅灰当专业感……)列在 references/report-styles.md 第五节,
要逐条对照着看,读一遍就算不作数。
档位怎么定(绝大多数报告是实用档,不该有巨型首屏和装饰图形)、 中性色为什么不能用纯灰、图表色怎么从报告 token 派生 → 同一份文件的一、三、六节。
「不要套模板」禁的是这个 skill 内置的通用风格,因为它们不认识他的读者。 但他的组织很可能已经有了自己的报告长相:以前发出去的报告、月度 PPT、文档规范。 读者每周都在看那个长相,你交一份再漂亮的陌生版式,他还得自己搬回老格式去。
所以确认交付物是报告(HTML、docx、PPT 都算)的时候,第 3 步对齐里多问一句: 「有没有此前的报告、PPT 或者文档规范可以参考?有就发我。」
拿到样例之后别照着描,先解析出一份规范文档再动手—— 像口径声明那样单独成文,四层各自有条目:
| 层 | 从样例里读出什么 |
|---|---|
| 结构 | 章节顺序、封面/目录/摘要有无、篇幅分配、结论放前还是放后 |
| 视觉 | 配色具体色值、字体层级、留白密度、页眉页脚与 logo、表格线框 |
| 图表 | 惯用图型、数据标签习惯、单位与数字格式(万 vs 千、小数位) |
| 用语 | 固定称谓与术语、结论句式、语气正式度、正文里数字怎么写 |
规范要先给他过目再开工。他一眼就能说出「对,就是这个调」, 或者「这份过时了,页眉别学」,而这比做完一版再返工便宜得多。
两条边界:
解析的执行细节、PPT 模板怎么随交接带给 huashu-design →
references/workflow.md「有现成规范时:解析出规范再模仿」。
你的分析是归纳着做的:清洗、体检、试算、发现,最后下结论。 照这个顺序写出来,读者得读到三分之二才知道你想说什么。 报告要反过来,演绎着写——结论摆在最前面,然后是支撑它的论点, 每个论点底下才是证据。
重心怎么分配(这是重心,不是模板):
| 位置 | 放什么 | 判据 |
|---|---|---|
| 首屏 | 一句话结论 + 该做什么 + 三个数字 + 主图 | 只看首屏就能做决定 |
| 基线 | 这份数据长什么样:由哪几块构成、各占多少、这段时间怎么变的 | 没进过这个领域的人,读完能复述出格局 |
| 主体 | 2–4 个论点,每个 = 一段话 + 1–2 张图 | 每个论点单独成立,合起来推出结论 |
| 末尾 | 建议,标注证据等级 | 有据的和经验判断分开 |
| 附录(折叠) | 口径、算法、被剔除的数据、边界、打架的证据 | 想追查的人点开就有 |
口径和方法必须存在——没有口径的数字不可检验——但它们不该占读者最贵的那 30 秒。
读者要「所以呢」,审计者要「怎么算的」,两拨人不该抢同一块版面,
用 <details> 收起来。
演绎结构有一个没写出来的前提:读者已经熟悉地形。 金字塔原理原本是麦肯锡讲给 CEO 听他自己公司的方法, 那种场合当然不必介绍产品线有哪几条。研究报告的读者手上没有那张地图。
你告诉他「A 领先 B 二十七个百分点」,他并不知道这是 63 比 36,还是 90 比 63。 两种格局的含义完全不同。没有水平量,你的结论只能被相信,没办法被验证。
所以在结论之后、论点之前,插一层基线: 这份数据由哪几块构成、各占多少、这段时间里怎么变的。 要快,用图不用段落,判据是读者能复述出格局。
这一层几乎总是被漏掉,背后有两个机制,都不是偶然:
一、论点驱动的筛选会自动淘汰它。 你问自己「哪张图最能证明我这句话」, 答案永远是差值、增量、比率、指数——它们本身就是那句话。 构成图不证明任何东西,于是第一轮就出局了。 结果是首图画的几乎必然是导出量,而导出量恰恰把水平信息丢掉了。
二、你已经把格局内化了。 跑完十几个脚本之后, 「就两家大厂」在你脑子里已经是常识,于是它显得不值得写。 人类分析师隔一天回来还能重新感到陌生, 你在同一个上下文里从头做到尾,没有那个重新变陌生的时刻。 这是结构性的盲区,不是疏忽。
基线层还有第二个功能,它同时是你自己的覆盖度体检。 被迫写出「这个池子里有谁、各占多少」的时候,缺席的玩家会自己跳出来。 一份声称是「市场份额」的数据,如果列举的时候发现少了一个占两成的厂商, 那它就不是市场份额。这个错误在内部一致性检查里查不出来—— 份额照样加总到 100%——只有当你试图向读者描述格局时,它才会浮现。 参见「七条红线」第三条。
自检的办法很简单:把报告里所有结论段落盖住,只读剩下的。 如果说不出这份数据由哪几块组成、各占多少、谁在涨谁在跌,那就是缺了基线层。
列出来的每一块,都要有它自己的期初、期末和变化——包括你不打算分析的那一块。 这条听着像流水账,但它拦得住一整类错误:一份报告在基线层老老实实写了 「无客户 ID 的营收占 15%」,然后整篇只分析剩下的 85%, 结论是「靠新客把窟窿填平了」。等到第 8 步复核者给那 15% 单独算了一遍同比, 才发现全部增长都来自那一桶(+32.0%,是净增量的 2.1 倍), 可识别客户的盘子其实在缩。 你排除掉的那部分不会因为被排除就停止变化, 而它一旦是唯一在涨的那块,整篇结论的方向就是反的。 代价只是每块多算两个数,能把这类错从第 8 步提前到第 4 步。
也别过头。基线层是坐标系,不是流水账。三五个数字加一张图就够了, 读者在这一层停留的时间应该短于首屏。 判据始终是「他能复述格局」,而不是「我把维度列全了」。
章节标题写论点,不写主题。「论点二 · 断的是供给——单片寿命 3 天, 而发片间隔 16 天」,而不是「第二节 · 趋势分析」。 只读章节标题,应该能把整条论证链读完。
结论要能被反驳。 最强那条证据旁边如果有削弱它的东西—— 样本小、混杂没排除、和另一份分析打架——就地写出来,别藏进附录。 承认了边界的结论,反而更难被推翻。
换成手写照样要做到,它们是内容要求不是技术限制:
references/charts.md 第四节,生成时逐条对照图是论证,不是插图。 每张图要能独立回答它标题里那句话。做不到就是装饰,删掉。
先给水平量,再给导出量。 差值、增量、比率、指数最能直接表达论点, 所以它们总是第一个被想到——但它们把水平信息丢了。一张停在「+27.4 个百分点」 的线图,读者还原不出那是 63 比 36 还是 90 比 63;一张只画增量的瀑布图, 读者不知道这个盘子本来由什么构成。 规则:任何导出量的图,前面必须有一张能读出水平量的图。 版面只够一张时,画水平量,把导出量写进图题。
第一时间想到的图通常不是最好的那张。 柱形、折线、饼是条件反射。
动笔前把 references/charts.md 第二节的比较类型表过一遍——
最后仍然选柱状图没问题,但那要是看过菜单之后的选择。
一段话如果在解释旁边那张图,删掉它,改进图题。 正文只讲图表达不了的东西:为什么、所以呢、这里有什么坑。
基线图怎么选(排序条 / 绝对值堆叠 / 帕累托)→ references/charts.md
「基线图:报告开头那张,选哪个」。
怎么把上限往高处推、手写 SVG 最常撞的三个 FAIL →
references/charts.md「八、把上限往高处推」。
设计计划怎么写、十五条不许长成的样子 → references/report-styles.md。
| 格式 | 怎么做 |
|---|---|
| HTML 报告 | 直接写。 脚本只当参考实现看 |
| 幻灯片 / PPT | 不在本 skill 做 → 转 huashu-design,见下一节。<br>接不上时兜底 make_report.py --format deck,文案口吻见 references/workflow.md |
xlsx Excel 内报告 | 自己写。 合并 / 行高 / 列宽 / 填充 / 数字格式全是三五行代码,只有手写才对得上设计计划。<br>图表也自己写:make_report.py 和 make_chart.py 都只能从 Workbook() 造新文件,没有把图插进已有工作簿的入口,所以「排版自己写、图表调脚本」这个分工实际走不通(实测)。openpyxl.chart 十几行的事,注意关掉 series.smooth。<br>交付前必跑 verify_xlsx.py,跑完再渲一眼图。方法论见 references/xlsx-craft.md |
docx 六页纸文档 | 走 make_report.py --format docx——OOXML 规范复杂。<br>图表以 PNG 内嵌正文(需 playwright,缺了会降级为附录数据表并在文中明说)。<br>交付前必跑 verify_docx.py,Word 的坑见下 |
用户要 PPT / deck / 演示文稿时,本 skill 只出分析内容和图表,deck 交给 huashu-design
(没装就引导装:https://github.com/alchaincyf/huashu-design)。
交接要带口径声明、论点结构、已验过的 SVG 三样,别把原始数据丢给它让它自己算。
触发条件、交接清单、它装不上时怎么办 → references/workflow.md「幻灯片和 PPT」。
模型有个默认动作:HTML 是「设计出来的」,xlsx 是「导出来的」。 于是同一份分析,HTML 那份有层次有节奏,xlsx 那份是一列黑字。 读者打开 xlsx 是因为他要在里面继续动手,这份东西他会看得比 HTML 更久。
设计计划不用重写一份,但只有一半搬得过来:Color 的 token 直接变字色与填充色、
Numerals 直接变 number_format;Space 和 Layout 没有换算关系,得重做一遍
(HTML 的 gap、padding、flex/grid 在网格里都不存在)。
知道要重做比以为能照搬省时间,对照表在 xlsx-craft.md 第一节。
五个坑,全都在生成端不报错:
一、报告 sheet 和数据 sheet 的规则几乎相反。 前者要合并、要 wrap、
要按内容算行高;后者禁合并、要冻结、要筛选。
references/excel-craft.md 那条「合并单元格会破坏排序筛选」只管数据 sheet——
套到报告正文上,就会得到一份全挤在一列里、靠溢出往右显示的东西,
而溢出一旦撞上右边有内容的单元格,文字当场被腰斩。
判据:这个单元格里的东西,有人会拿去排序吗? 不会就该合并。
二、行高必须算,不能从 16 / 30 / 45 里挑。 这是 xlsx 排版最主要的单一错误来源:
18pt 粗体标题配 16 磅行高,字上下被切;70 字正文 wrap 成三行只给 30 磅,
底部一整行看不见。算法在 xlsx-craft.md 第四节,宁可高几磅也别裁。
三、数值不设 number_format 就会原样显示 9351342.370000001。
底层值保持精确,小数位交给显示层。
四、同级别的东西要长得一样。 七个 13pt 粗体小节标题里有两个用了强调色, 读者就会以为那两个高一级——他跟的是视觉,不是你的意图。
五、🔴 一旦合并,行高就从可选变成必填。 Excel 不给合并单元格做自动行高
(普通单元格会撑开,合并的不会)。所以「合并到全宽 + 开 wrap + 忘了设行高」
在真 Excel 里必然裁字。这个坑最贵的地方是它骗得过自检:
soffice 转 PDF 看不出来,因为 LibreOffice 会替合并单元格撑开、Excel 不会。
所以 xlsx 交付前必跑 verify_xlsx.py,别靠肉眼——
这几类错在屏幕上滚过去看不出来,打印出来全是。
但闸门全绿也不等于验过了。 三场压测下来,四类真实缺陷里有三类是闸门跑完
0 FAIL 之后靠渲图发现的。跑完再 soffice --headless --convert-to pdf 看一眼,
并且知道它的盲区就在上面第五条——能开真 Excel 就开一眼。
Word 有四个坑全都在生成端不报错——字体没有 fallback 链、中文 run 缺 w:eastAsia、
空段落加分页符会留一整页白、跨页表格不设 w:tblHeader 就看不到列名。
共同点是你这台机器上看着好好的,换台机器就露馅。
所以 docx 交付前必跑 verify_docx.py,别靠肉眼。
四个坑的具体写法和手写 OOXML 的额外陷阱 → references/workflow.md「交付格式的坑」。
scripts/make_report.py 留着做两件事:给你看某个结构该怎么写,
以及环境受限或时间极紧时兜底。
这不是一份清单,是一组反射。看到左边,就该想起右边:
| 看到 | 先想 |
|---|---|
| 100% 或 0% | 分母是不是空的、是不是取错了 |
| 1000、5000、10000 扎堆 | 这是人填的估算值或占位符 |
| 要按某列分组 | 先看它有几个唯一值——「张伟」和「张伟 」是两个人 |
| 时间序列 | 有没有断点。缺失的月份不报错,但会让趋势线撒谎 |
| 增长 200% | 先看基数。从 2 涨到 6 也是 200%,但它就是 4 个 |
| 用户口径和数据对不上 | 说出来。他说「按下单时间」而表里只有支付时间,别默默换一个算完了事 |
下面四条是要动脑子的,展开说:
先找天然实验,再造指标。 数据里有没有哪一段的做法和别处不一样? 某次隔了四天而不是三周、某个月换了策略、某批用户走了不同的流程—— 只要有,它就是你能拿到的最强证据,因为那是业务自己跑出来的对照, 不是你发明出来的。 自造指标(覆盖率、健康度、加权得分)永远排在它后面, 而且必须说清用什么外部量验证过。没验证过的,只能当描述,撑不起建议。 找到天然实验之后立刻查混杂:把最可能的那个替代解释剔掉再算一遍, 差距还在,才算数。
用相对阈值定义的指标,基准漂移时会自己污染自己。 「高于前 7 日均值 1.5 倍」这类定义,当基线本身在持续下滑时, 同样的绝对量会越来越容易被判成「高」。 症状是出现一个你想解释掉的异常值——那句解释往往正是指标失效的证据。 换个绝对阈值重算,两个口径结论不一致就说出来。
自己声明的口径,自己第一个遵守。 开头写了「一律用中位数」, 就不能在某个核心指标上顺手用了均值。交付前拿口径声明回扫一遍正文—— 自己破自己立的规矩,比一开始就不立更伤可信度。
建议要标证据等级,趋势结论要换算成时间成本。 前者:把无据的建议和有据的结论 并排放进同一个编号列表,读者会默认它们证据强度相同,那是误导。 后者:算出「日均衰减 1.9%」只做了一半,再走一步——早一周动手和晚一个月动手差多少, 到那一步它才进得了日程表。
它们有个共同点:踩的时候,看起来一切正常。
一、退出码 0 说的是「算得对」,不是「结论对」。 这两件事之间的距离,大到能装下一个错误的财年。 绿灯只说明你没算错,它不说明你没问错。
二、脚本说「成功」,不等于它做对了。 清洗脚本会把邮编 01002 转成 1002.0,
然后把这一步报告成成功项,零警告。
凡是它「自动处理好」的列,抽两个值回头看一眼原始单元格。
三、内部全对得上,证明不了你把列读对了。 行数守恒、总和守恒、跨表交叉验证,在「你把 A 列当成 B 列」的时候全部会通过。 所以没有数据字典的外部数据,交付之前必须把一个总量对上发布方自己公开的数字。
这条有两个变体,都更阴。
一个是:加总等于 100%,不代表这 100% 覆盖了你以为的范围。 一张份额表逐月加总恰好为 1,看起来口径钉得死死的, 但那个 1 可能只含五个玩家里的两个——于是「份额」悄悄变成了「这两家之间的相对比例」, 所有对外表述连带出错,而任何内部检查都不会报警。 验完加总,再点一遍名:这个池子里到底有谁,谁不在里面,为什么不在。 如果同一份数据的另一张表里出现过的主体,在这张表里消失了,那就是信号。
另一个是派生列。有一份评审数据,五个打分维度之外还有一列叫「评委直觉分」,
读起来像是独立于五维的整体判断,拿它和五维均分算相关,
得到 0.944,于是结论呼之欲出:五个维度没有增加任何信息量。
可那一列其实等于五维均分四舍五入到整数,143 行无一例外。
0.944 是 corr(x, round(x)) 的算术常数,跟评委怎么想毫无关系。
一列数据是不是从另一列算出来的,得动手验,不能靠列名判断——
试一次 round、试一次比值、试一次差,一分钟的事,
它能挡住一整条建立在恒等式上的结论。
四、样本量够,不等于统计上站得住。「每组都超过 60 人」挡得住零头样本, 挡不住不显著。分组比较下结论之前看区间跨不跨 0,别只看组的大小。
五、别用自己选的窗口去证自己想要的结论。 换一个窗口再算一遍, 结论还在才算数。这条最难自查,原因见第七条。
六、口径不一样的数,不能进同一个 sum()。 多币种混在一列求均值、 毛额净额混着加、把中位数列和百分比列一起丢进合计行。 加之前先问一句:这一列里的每个数,分母都一样吗?
七、不要自己审自己。 前六条你完全可能一边知道、一边照犯, 因为自查的时候,你带着「它应该成立」的先验去看自己的东西。 这就是第 8 步存在的全部理由。
| 脚本 | 干什么 | 什么时候 |
|---|---|---|
scripts/profile_table.py | 表结构体检 | 算任何数字之前 |
scripts/clean_table.py | 清洗 + 生成审计脚本 | 体检之后 |
scripts/scan_traps.py | 分析陷阱扫描 | 下结论之前 |
scripts/verify_numbers.py | 数字对账 | 交付之前 |
scripts/make_chart.py | 图表推荐与生成 | 交付时 |
scripts/make_report.py | xlsx / docx 报告(HTML 直接写) | 交付时 |
scripts/verify_visual.py | HTML 渲染自检:越界 / 重叠 / 遮挡 / 双轴 / 图文数字打架 | 交付之前 |
scripts/verify_docx.py | Word 自检:字体平台绑定 / 中文缺 eastAsia / 空白页 / 图超版心 / 表头不重复 | 交付之前 |
scripts/verify_xlsx.py | Excel 自检:行高裁字 / 列宽不足 / 溢出被挡 / 合并吃格 / 数字没格式 / 层级不一致 | 交付之前 |
profile_table.py、verify_numbers.py、verify_docx.py、verify_xlsx.py 支持 --json,
其余是文本输出。退出码可用作流水线闸门:四个 verify_* 不通过时返回 1。
依赖:核心是纯标准库——不用 pandas、不用绘图库、不联网、不需要 subagent 或沙盒。 (清洗和分析阶段你当然可以用 pandas。这里说的是工具自己没有前置条件, 因为它要在「还没决定用什么工具处理这张表」的时刻就能跑。)
三个例外,都会明确告诉你缺什么:
| 谁 | 要什么 | 缺了会怎样 |
|---|---|---|
读写 .xlsx,make_report.py --format xlsx,以及 verify_xlsx.py | openpyxl | 直接报错退出。<br>(html / deck / docx 三种格式不需要它,docx 是手写 OOXML + zipfile) |
verify_visual.py | playwright | 退出码 2,整个不跑——那是「一项都没验」,不是通过也不是失败。<br>手动开浏览器逐屏看 |
verify_docx.py 的「空白页」这一项 | LibreOffice + poppler + Pillow | 只跳过这一项并明说「跳过 ≠ 通过」,其余照验 |
| 需要什么 | 去哪 |
|---|---|
| 每一步的执行细节:参数、输出怎么读、边界情况 | references/workflow.md |
| 脏数据的形态与修法 | references/dirty-data.md |
| 分析配方库与各自的陷阱 | references/analysis-recipes.md |
| Excel 手艺:现代函数、透视、建模规范、经典坑 | references/excel-craft.md |
| xlsx 交付物怎么排版:两种 sheet、合并、行高算法、数字格式 | references/xlsx-craft.md |
| 图表怎么选、怎么不误导 | references/charts.md |
| 洞察怎么挖、报告怎么搭 | references/insight-report.md |
| 设计计划五段、十五条不许长成的样子 | references/report-styles.md |
参考文件是需要时才读的,不必一次全部载入。同时读三份以上, 后面的会把前面的挤出你的工作记忆。
本节给 AI agent:每次使用本 skill 前,先做一个不联网的判断——读本 skill 目录(SKILL.md 所在目录)下的 .last-update-check 文件(内容为一行日期 YYYY-MM-DD)。文件存在且距今不足 30 天,跳过本节直接干活,不向用户提任何更新相关的话。
到期或文件不存在时,且仅在此时:
.git 或无 origin)→ 写入今天日期后跳过本节git -C <本目录> rev-parse HEAD 与 git -C <本目录> ls-remote origin HEAD.last-update-checkgit -C <本目录> pull --ff-only 更新」。是否更新由用户决定,不要主动执行更新© alchaincyf, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 21 other files (scripts, references) in the repository root of alchaincyf/huashu-excel.
Open the folder on GitHubat commit f941c17
Huashu Excel next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Huashu Excel this skillalchaincyf/huashu-excel | 433 | — | ~5.1k | Automated safety check: Pass | MIT | |
| MarkitdownImCa0/just-laws | 781 | 14 repos | ~3.2k | Automated safety check: Notes | MIT | |
| Data Table Managern8n-io/n8n | 207k | — | ~2.3k | Automated safety check: Pass | Custom licence | |
| Docx4jplutext/docx4j | 2.4k | — | ~2.5k | Automated safety check: Pass | None | |
| Instrument Data To Allotropeaws-samples/amazon-bedrock-agents-healthcare-lifesciences | 274 | 2 repos | ~2.7k | Automated safety check: Pass | Apache-2.0 | |
| Cyber Pptcrazyykhllc-bit/CyberPPT | 1.8k | — | ~10k | Automated safety check: Pass | MIT |
ImCa0/just-laws
Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.
n8n-io/n8n
Load before calling data-tables or parse-file. An agent skill from n8n-io/n8n.
plutext/docx4j
A skill your agent uses when writing Java code that creates, reads or edits Word (.docx), PowerPoint (.pptx) or Excel (.xlsx) files with docx4j — including generating documents, editing existing…
aws-samples/amazon-bedrock-agents-healthcare-lifesciences
Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV.
crazyykhllc-bit/CyberPPT
当用户需要把 DOCX、PDF、TXT、XLSX、研究报告、业务材料或原始数据转成高密度、可编辑、咨询风格 PPTX 时使用;也适用于需要 SCR 论证、视觉风格探索、详细图表和渲染质检的 PPT。
AgriciDaniel/jev-seo
Full live SEO audit of any website from its homepage URL, powered by Jev (TypeSafe's System One model).
Works with
Categories
数据分析全流程:体检脏表、清洗、定口径、算指标、对账、出报告。处理 Excel/CSV/系统导出数据,做透视写公式,查两个数为什么对不上,判断一个数靠不靠谱时用。核心是让算出来的数字经得起追问。幻灯片和 PPT 交给 huashu-design。. Huashu Excel is an agent skill from alchaincyf/huashu-excel.
Huashu Excel fits situations like: tasks that involve Excel spreadsheets.
Run `npx skills add alchaincyf/huashu-excel --skill huashu-excel -a claude-code`. Or copy the skill folder (the alchaincyf/huashu-excel repository) into .claude/skills/huashu-excel in your project. Claude Code loads it when a task matches its description.
Run `npx skills add alchaincyf/huashu-excel --skill huashu-excel -a codex`. Or copy the skill folder (the alchaincyf/huashu-excel repository) into .agents/skills/huashu-excel in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add alchaincyf/huashu-excel --skill huashu-excel -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/huashu-excel, .gemini/skills/huashu-excel, .github/skills/huashu-excel and .opencode/skills/huashu-excel in your project.
Going by SKILL.md and its folder, Huashu Excel needs Python for the scripts in its folder and the command-line tools its instructions call (python3, git and soffice). Our summary lists: Python 3.
SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Huashu Excel is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.1k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 30k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Huashu Excel: Markitdown (ImCa0/just-laws, 781 stars), Data Table Manager (n8n-io/n8n, 207k stars), Docx4j (plutext/docx4j, 2.4k stars) and Instrument Data To Allotrope (aws-samples/amazon-bedrock-agents-healthcare-lifesciences, 274 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
alchaincyf (a GitHub user) maintains it in alchaincyf/huashu-excel, which has 433 GitHub stars. The repository was last updated on September 15, 2026.
Source: alchaincyf/huashu-excel on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.