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 AlexBybye/SCUT_CS --skill material_convertergit clone --depth 1 https://github.com/AlexBybye/SCUT_CSWrote 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/alexbybye/scut_cs/material_converter)<a href="https://agentmods.dev/skills/alexbybye/scut_cs/material_converter"><img src="https://agentmods.dev/badge/skills/alexbybye/scut_cs/material_converter.svg" alt="Measured on agentmods" height="20"></a>- NVIDIA SkillSpector pass
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.00000 | $0.01339 |
| Opus 5 | $0.00000 | $0.00669 |
| Sonnet 5 | $0.00000 | $0.00268 |
| Haiku 4.5 | $0.00000 | $0.00134 |
Grade A, and why
material_converter 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 8d 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 — 73 lines — stays where its author put it; the contents beside it link to each section on GitHub.
技能:学科资料转 Markdown(material-to-markdown)
收录于仓库
apps/tools/material_converter/SKILL.md。此技能描述“如何用 AI 把学科资料/下的文件转成合格的知识库 Markdown”,并指明 AI 能做什么、绝不能做什么。
能做什么
- 按
apps/scut-senior/docs/MATERIAL_TO_MARKDOWN_SOP.mdv1.7 走完整转换流程; - 调用确定性抽取工具
apps/tools/material_converter拿到忠实骨架(标题/段落/表格/图片、 原生 OMML→LaTeX、page/slide/heading 锚点、manifest 记录); - AI 语义归一化(工具不含、需要由 AI/模型完成):
- 扫描稿/手写稿的 OCR 校正、版面与阅读顺序恢复;
- 把 MathType/OLE 公式预览图转成 LaTeX(只转能逐项对得上原件的);
- 给出历年题的题目边界候选,供人工确认;
- 对低置信 OCR 位置做重点检查并写
notes。
不做什么(SOP §4 红线)
- 不总结、缩写、解释、纠错、补写、或根据常识/答案猜公式、数字、单位、术语、代码;
- 不把工具或 AI 输出直接标
passed;最终结论由人工审核决定; - 不改动原文;原资料疑似有错时原样保留,在
notes说明; - 不破解加密 zip(准入判断跳过),不上传第三方云解析,不执行宏。
执行流程
- 课程接入:先确认
packages/contracts/v1/courses.json已注册该课程(course_id/aliases/repository_paths)。 - 隐私前置:含学生/贡献者姓名、班级、学号的文件名先
git mv脱敏;元数据/正文真实 身份信息清除或记notes;试卷密封线模板字段保留。 - 确定性抽取:
cd apps/tools/material_converter .venv/bin/python -m material_converter.main --course <文件夹名> --validate - AI 语义归一化:
无视觉模型时跳过 4b/4c,直接人工回填 formulas.json 后执行 4d。# 4a. 导出作业包(公式图清单 + OCR 页清单) .venv/bin/python -m material_converter.main --emit-ai-jobs # 4b. GLM-4V 视觉转写公式图(三道闸:三票多数决 → 确定性校验 → mathtext 渲染闸; # 凭证放仓库根 .cache/glm4v.env,见 README;未过闸的自动保留 PNG) .venv/bin/python -m material_converter.main --vision-run --vision-workers 4 # 先试小样: --vision-run 20 # 4c. 按内容哈希传播转写结果到全部作业包(同一张图只转一次) .venv/bin/python -m material_converter.main --vision-propagate # 4d. 应用回知识库(替换为 $...$、清理已用资产、状态保持 pending) .venv/bin/python -m material_converter.main --finalize - 人工审核:逐文件对照原件,确认公式/题界/顺序/隐私,然后才把该行置
passed。
关键约定
manifest.title是source_title的事实源;course/title/frontmatter 必须一致;- 每份资料归一门课;同资料误放其他目录只处理一份规范来源;无答案版是答案版严格子集时只转答案版;
- 无文本层/乱码 PDF 采用整页图片方案(本仓库既定模式),
notes注明“待人工决定 OCR”; - 转换中间产物(
.work/、.ai_jobs/、staging、调试 HTML)不入 Git;knowledge/不留临时产物。
六条红线(每条都有真实事故背书,跑批前必读)
- 修复必须进管线代码+回归用例;禁止对生成物做一次性脚本后处理(复发过)。
- soffice 等模块级配置在使用点惰性解析;每个调用点自检(曾静默 kept-as-vector=1024)。
- 从 manifest 的 course 拼磁盘路径一律经
knowledge_dir()(probability 是 legacy 目录, 直接拼 course_id 会静默扑空、误删文件)。 - 过滤条件先打印 distinct 值核对再执行;删除类操作先输出将删清单(字段值写错过三次)。
- 清→跑→验证压缩进单次调用;破坏性操作前先 tar 快照(备份两次挽救误删)。
- 题目锚点:试卷类用强+弱信号(中文序号/第X题/阿拉伯顿号 + 数字点号/括号号,排除小数), 练习解答类只用强信号防列表误标;锚点是工具提议,须人工确认。
What ships with it
19 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.
- bootstrap.ps1 1.6 KB runs code
- bootstrap.sh 1.4 KB runs code
- material_converter/__init__.py 0 B runs code
- material_converter/__main__.py 48 B runs code
- material_converter/ai_stage.py 7.2 KB runs code
- material_converter/convert.py 24 KB runs code
- material_converter/courses.py 3.1 KB runs code
- material_converter/docx2md.py 22 KB runs code
- material_converter/main.py 13 KB runs code
- material_converter/omml2latex.py 15 KB runs code
- material_converter/pdf2md.py 2.9 KB runs code
- material_converter/ppt_legacy.py 1.9 KB runs code
- material_converter/pptx2md.py 4.2 KB runs code
- material_converter/propagate_vision.py 2.5 KB runs code
- material_converter/vision_worker.py 10 KB runs code
- probe_report.py 3.7 KB runs code
- README.md 9.2 KB
- requirements.txt 104 B
- spot_check_report.py 7.7 KB runs code
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.
- 8d ago First seen · 73 lines · 0 tokens per session scan A 22aebc8f3f07
material_converter is a skill published in the GitHub repository AlexBybye/SCUT_CS (107 stars, last pushed today), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,339 tokens. 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-30.
Other skills, from other repositories
lineage-skill
Turn courses, books, video, audio, PDFs, slides, transcripts, OCR, notes, and long-form materials into source-grounded learning Skills that teach unseen concepts progressively with reliable terminal ASCII or SVG visuals, ask two end-of-lesson questions together by default, give focused feedback, schedule review, test…
tutor-setup
Transforms knowledge sources into an Obsidian StudyVault. Two modes: (1) Document Mode — PDF/text/web sources → study notes with practice questions. (2) Codebase Mode — source code project → onboarding vault for new developers. Mode is auto-detected based on project markers in CWD.
dojo-notebook
A project notebook that keeps short, organised notes from the Codojo learning and project-improvement process. It adds new points to existing sections and combines notes that cover the same idea.
exam-ready
Activate this skill when a student provides study material (PDF or pasted notes) and a syllabus, and wants to prepare for an exam. Extracts key definitions, points, keywords, diagrams, exam-ready sentences, and practice questions strictly from the provided material.
transcricao-mentoradas
ISAURA — Agente de Transcricao e Materiais Complementares para mentoradas. Pipeline completo: recebe videos/links YouTube, transcreve com timestamps via Gemini, gera materiais complementares POR BLOCO (workbook interativo, checklist, resumo executivo — em JSON, HTML interativo e PDF), cria plataforma visual estilo…
book-distiller
Distills books (PDF, EPUB, TXT) into structured AI Agent skills and Gemini Gems. Use when you need to transform a book's methodology into an actionable AI persona.