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 agentmods add skills/nikhil-robinson/embedded_guru/datanpx skills add nikhil-robinson/embedded_guru --skill datagit clone --depth 1 https://github.com/nikhil-robinson/embedded_guruWrote 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/nikhil-robinson/embedded_guru/data)<a href="https://agentmods.dev/skills/nikhil-robinson/embedded_guru/data"><img src="https://agentmods.dev/badge/skills/nikhil-robinson/embedded_guru/data.svg" alt="Measured on agentmods" 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 | $0.00064 | $0.12485 |
| Opus 5 | $0.00032 | $0.06242 |
| Sonnet 5 | $0.00013 | $0.02497 |
| Haiku 4.5 | $0.00006 | $0.01248 |
Grade D, and why
embedded-guru scanned grade D with 2 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 4d 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.
Tells the agent never to refusehighAnti-refusal
Suppressing the ability to decline removes a core safety control; a later harmful request then succeeds.
**On having no board yet:** Do not refuse to continue. Do two things: Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
To find an existing profile when you don't yet know the student's name, list `~/.claude/embedded_guru/` and read the first profile found. If multiple student directories exist, ask which student this session is for. How it starts
The opening of the file, as written. The whole thing — 853 lines — stays where its author put it; the contents beside it link to each section on GitHub.
EmbeddedGuru
You are EmbeddedGuru — a senior firmware engineer turned mentor. You have shipped production code on Cortex-M, RISC-V, AVR, and ESP platforms. You have debugged SPI timing at 3am with a logic analyzer. You know what breaks in the field and why.
You do not tutor. You mentor. The difference: a tutor explains things the student asks about. A mentor knows what the student needs to hear before they know to ask. You are direct. You are occasionally blunt. You never apologize for not giving answers — you frame it as the pedagogically correct choice because it is.
Your job is not to make the student feel good. It is to make them dangerous at firmware. Those two things sometimes conflict. Choose the second one.
Graph Paths
Two knowledge graphs power this skill. Query them before producing any output — never generate protocol facts, hardware capabilities, or student state from memory.
Curriculum graph (built on first /guru call, then read-only):
~/.claude/embedded_guru/curriculum/graphify-out/graph.json
Student graph (updated at the end of every session):
~/.claude/embedded_guru/<name>/graphify-out/graph.json
Query syntax:
graphify query "<question>" --graph ~/.claude/embedded_guru/curriculum/graphify-out/graph.json
graphify query "<question>" --graph ~/.claude/embedded_guru/<name>/graphify-out/graph.json
If the student graph does not exist yet (new student), fall back to their markdown files directly until the session-end update builds it.
On First Invocation: Routing
Step 0 — Bootstrap curriculum graph (once, silently)
Check if the curriculum graph exists:
ls ~/.claude/embedded_guru/curriculum/graphify-out/graph.json
If it does not exist, build it now before doing anything else:
graphify ~/.claude/embedded_guru/curriculum/ --no-viz
This runs inside Claude Code where auth is already available. It takes ~30 seconds. Do not mention it to the student unless it fails. If it fails, continue in degraded mode — fall back to reading the curriculum markdown files directly for any protocol facts or register values.
What ships with it
14 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.
- curriculum/concepts/CAN.md 7.1 KB
- curriculum/concepts/DMA.md 5.8 KB
- curriculum/concepts/FreeRTOS.md 5.9 KB
- curriculum/concepts/I2C.md 5.7 KB
- curriculum/concepts/SPI.md 5.1 KB
- curriculum/concepts/UART.md 4.9 KB
- curriculum/concepts/watchdog.md 4.5 KB
- curriculum/hardware/boards.md 8.3 KB
- curriculum/milestones/Automotive.md 5.0 KB
- curriculum/milestones/Industrial.md 5.9 KB
- curriculum/milestones/IoT.md 5.0 KB
- curriculum/milestones/Medical.md 5.3 KB
- curriculum/mistakes/common_mistakes.md 8.8 KB
- curriculum/standards/standards.md 6.8 KB
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.
- 4d ago First seen · 853 lines · 64 tokens per session scan D 95b0eb54ae70
embedded-guru is a skill published in the GitHub repository nikhil-robinson/embedded_guru (5 stars, last pushed 2mo ago), licensed MIT. It adds 64 tokens to every session and 12,485 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it D with 2 findings (tells the agent never to refuse, reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
devin-akin-perspective
Devin Akin 视角 — CWNP 联合创始人 / CWNE 流派奠基 / Wi-Fi Vitae 播客主持 / Divergent Dynamics 创办人. 加载后让 AI 用「RF 物理是地基, vendor 是装修」/「教育是 bottleneck 不是技术」/「AIOps 多数是营销层叠加」三大镜片审视企业 Wi-Fi 决策, 特别是 vendor 选型 / 培训路径 / 厂商话术辨别 / AIOps 评估场景. 反 marketing 倾向 + 25 年 instructor 视角 + vendor-neutral 立场. 触发词: 「Akin 怎么看」「这个 vendor 培训值不值」「vendor…
pdf-press
Teaches agents how to generate Markdown, HTML (with embedded SVG), and Mermaid content that renders beautifully to multi-page PDF via writepdf, with proper page breaks, compact professional layouts, brand and domain-adaptive color schemes, multi-column support for scientific papers, magazine-style editorial documents…
docx-press
Teaches agents how to author Markdown that renders cleanly into DOCX via writedocx, with heading hierarchy (up to 6 levels), tables, lists, blockquotes, code blocks, citations, embedded images, SVG diagrams (rendered to PNG first), and document structure patterns for reports, proposals, and technical documents.
service-learning-project-designer
Design a service-learning project connecting genuine community need with embedded curriculum learning. Use when planning community projects, civic engagement, or social action units.
skill-extractor
Extract actionable Claude Code skills from raw source material — transcripts, conversations, workflows, expertise dumps. This skill identifies repeatable, promptable workflows embedded in content and scores them by leverage. Use when processing a corpus (podcast transcripts, blog posts, course material) to discover…
harness
Harness engineering guide — maps all sensors and feedforward guides, teaches self-correction protocol when a CI sensor fires. Use when a sensor fires, before making code changes, or when setting up agent context for a new task. Triggers: "harness", "sensor fire", "CI failure", "self-correction".