Borrowing it
Nothing to install: this file belongs to yazelin/ipas-ai-quiz. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/yazelin/ipas-ai-quiz/master/.claude/skills/add-exam/SKILL.mdgit clone --depth 1 https://github.com/yazelin/ipas-ai-quizWrote 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/yazelin/ipas-ai-quiz/add-exam)<a href="https://agentmods.dev/skills/yazelin/ipas-ai-quiz/add-exam"><img src="https://agentmods.dev/badge/skills/yazelin/ipas-ai-quiz/add-exam/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/yazelin/ipas-ai-quiz/add-exam"><img src="https://agentmods.dev/badge/skills/yazelin/ipas-ai-quiz/add-exam.svg" alt="Reviewed on agentmods" width="80" 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.00067 | $0.01285 |
| Opus 5.5 | $0.00027 | $0.00514 |
| Sonnet 5.5 | $0.00013 | $0.00257 |
| Haiku 4.5 | $0.00007 | $0.00128 |
Grade A, and why
add-exam scanned grade A with 1 finding 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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
該頁是 Next.js SSR,可直接 `curl` 頁面原始碼,用 grep 撈出 `/api/proxy/uploads/certification_resource/.../*.pdf` 的完整連結。把新梯次各科的 PDF 網址記到 `tools/sources.json`。 How it starts
The opening of the file, as written. The whole thing — 51 lines — stays where its author put it; the contents beside it link to each section on GitHub.
加一個新梯次的官方試題
iPAS 每次考完會公告該次試題(本站考古題來源)。將來有新梯次時,照此流程加入。
步驟
-
拿到官方 PDF 直連網址。iPAS AIAP 來源頁:
https://ipd.nat.gov.tw/ipas/certification/AIAP/learning-resources該頁是 Next.js SSR,可直接curl頁面原始碼,用 grep 撈出/api/proxy/uploads/certification_resource/.../*.pdf的完整連結。把新梯次各科的 PDF 網址記到tools/sources.json。 -
抽成題目骨架(每科一份)。用這支,不要自己拿
pdftotext硬幹:node tools/extract-exam.mjs '<PDF網址>' --level 初級 --round 115年第三次 \ --subject "科目1:人工智慧基礎概論" -o /tmp/new-s1.json它會輸出
{level, round, subject, chapter:'', topic:'', question, options[4], answer, explanation:''}, 答案已經是 0-based 且取自 PDF 最左欄的官方答案。為什麼要有這支工具(兩個會「靜默毀題」的坑,都不會讓程式出錯):
-layout的行序會亂,拿它重建題幹會出錯而且看起來完全正常 → 題幹改用不加-layout的原始閱讀順序,-layout那份只拿最左欄答案。- 頁尾「第 N 頁,共 15 頁」會被插進句子中間,長成「判斷零件表面是否存第 2 頁,共 15 頁在細微刮痕」→ 已在解析階段濾除,
check-questions.mjs也有硬檢查擋。
答案用三重驗證(欄位式、座標式、孤立字母鄰接),任何一重對不上就中止,不會給半成品。 注意
-bbox-layout的 y 是每頁重新算的,自己寫檢查時跨頁比 y 會假報大量不一致。 -
填
chapter/topic/explanation(這步才輪到你 AI 判讀):chapter用官方學習指引的章節名,沿用既有題庫已用過的,不要自創。explanation自己寫:為何對 + 逐一駁錯項 + 核心記憶點,中位數約 200 到 250 字。- 每則詳解建議以「正解 (X)」開頭,方便寫一支腳本比對它與官方答案是否一致,不一致就不要產出。
- 字串內不要用半形雙引號
",用「」。 - 夾純英數的括號用半形(
(Supervised Learning)),夾中文的維持全形。既有題庫零例外。
-
帶圖題(題幹有「下圖/程式碼/圖表」純文字抽不到的):先跑
pdfimages -list <pdf>看尺寸分佈——每頁尺寸都一樣的是頁首裝飾,不是題目用圖(115-3 那兩份 30 張全是 1084x454 的裝飾,實際零張帶圖題)。真的有題目用圖才用pdfimages -png -p '<pdf>' /tmp/e取乾淨內嵌圖(忽略每頁固定尺寸的頁首裝飾圖;不要用含左側答案欄的整頁截圖)。圖用pdfimages取出後轉 WebP lossless、命名為<該題 id>.webp存到assets/(例如assets/115-2-m-s3-f1.webp),該題填image: "assets/<id>.webp"。別沿用 PDF 原始圖號(早期 114-2 沒這樣、踩過坑);題幹寫「附圖」就一定要掛上。中文標點用全形(夾純英文括號維持半形)。 -
加入 + 驗證:
node tools/add-questions.mjs /tmp/new.json --dry-run # 先試跑 node tools/add-questions.mjs /tmp/new.json # 沒錯再加 node tools/check-questions.mjs # 健康檢查:圖/檔名/附圖漏掛/結構/標點(要全綠) node core.test.mjs
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 Changed · +9 lines a6a6f08afc07
- 2mo ago First seen · 42 lines · 67 tokens per session scan A 76e3aebcd99c
add-exam is a skill published in the GitHub repository yazelin/ipas-ai-quiz (31 stars, last pushed 1mo ago), licensed MIT. It adds 67 tokens to every session and 1,285 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
add-exam compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| add-examyazelin/ipas-ai-quiz | Skill | 31 | 1mo ago | MIT | A | 67 | Claude Code |
| hr-onboardingnexu-io/open-design | Skill | 106k | yesterday | Apache-2.0 | A | 62 | Claude Code, Codex |
| book-mirrorgarrytan/gbrain | Skill | 32k | yesterday | MIT | A | 138 | Claude Code |
| exam-forecastanthropics/claude-for-legal | Skill | 9.9k | 3d ago | Apache-2.0 | A | 73 | Claude Code |
| lean-formalizewanshuiyin/Auto-claude-code-research-in-sleep | Skill | 19k | 3d ago | MIT | A | 81 | Claude Code |
| eli5companion-inc/feynman | Skill | 10k | 6d ago | MIT | A | 63 | Claude Code, Codex |
| deck-course-modulenexu-io/html-anything | Skill | 9.4k | 25d ago | Apache-2.0 | A | 25 | Claude Code, Codex |