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/provos/ironcurtain/memory-safety-c-cppnpx skills add provos/ironcurtain --skill memory-safety-c-cppgit clone --depth 1 https://github.com/provos/ironcurtainWrote 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/provos/ironcurtain/memory-safety-c-cpp)<a href="https://agentmods.dev/skills/provos/ironcurtain/memory-safety-c-cpp"><img src="https://agentmods.dev/badge/skills/provos/ironcurtain/memory-safety-c-cpp.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.1 | $0.00113 | $0.04486 |
| Opus 5 | $0.00056 | $0.02243 |
| Sonnet 5 | $0.00023 | $0.00897 |
| Haiku 4.5 | $0.00011 | $0.00449 |
Grade A, and why
memory-safety-c-cpp 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 6d 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 — 168 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Memory-Safety Bugs in C/C++
Reference vocabulary for native C/C++ code with sanitizer support. Catalogs the bug classes, patterns, and exploitability factors a memory-safety investigation needs to reason about.
Bug-class taxonomy
Identifiers below are the canonical IDs to use when naming a bug class in any artifact. Map each to the oracle that catches it and the root-cause CWE.
| Bug class | Oracle | Root-cause CWE | Where it lives |
|---|---|---|---|
heap_overflow |
ASAN heap-buffer-overflow |
CWE-122 | Read or write past a heap allocation |
stack_overflow |
ASAN stack-buffer-overflow |
CWE-121 | Read or write past a stack frame buffer |
out_of_bounds_read |
ASAN OOB-read | CWE-125 | Generic OOB load — distinct from heap/stack only by site |
out_of_bounds_write |
ASAN OOB-write | CWE-787 | Generic OOB store |
use_after_free |
ASAN heap-use-after-free |
CWE-416 | Pointer dereferenced after the allocation it pointed to was freed |
double_free |
ASAN attempting double-free |
CWE-415 | free() called twice on the same allocation |
integer_overflow |
UBSAN signed-integer-overflow / unsigned-integer-overflow |
CWE-190 | Arithmetic produces a value outside the type's range |
type_confusion |
ASAN OOB or UBSAN vptr |
CWE-843 | A value is interpreted as a different type than it was created with — frequently across vtable / dispatch-table boundaries |
format_string |
ASAN OOB / UBSAN | CWE-134 | Attacker-controlled bytes reach the format-spec argument of a printf-family call |
null_deref |
SIGSEGV (caught by ASAN as SEGV on unknown address 0x000000000000) |
CWE-476 | Dereference of a pointer the attacker can force to NULL |
uninitialized_memory |
MSan use-of-uninitialized-value |
CWE-457 | Read of memory before it was written |
race_condition |
TSAN data race |
CWE-362 | Concurrent unsynchronized access (a TOCTOU is a special case where the racing accesses are check-then-use) |
memory_leak |
LSan / ASAN leak report | CWE-401 | Heap allocation lost without free() |
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.
- 6d ago First seen · 168 lines · 113 tokens per session scan A b3c5e3177560
memory-safety-c-cpp is a skill published in the GitHub repository provos/ironcurtain (600 stars, last pushed 2d ago), licensed Apache-2.0. It adds 113 tokens to every session and 4,486 once invoked, about $0.0006 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-30.
Other skills, from other repositories
dingtalk-message
钉钉消息发送技能。支持企业内部机器人(批量单聊/群聊)和 Webhook 自定义机器人两种接入方式,支持多机器人管理,支持文本、Markdown、链接、ActionCard、FeedCard等多种消息类型。.
fix-flakes
Diagnose and fix flaky tests tracked as open kind/flake issues in kubernetes-sigs/agent-sandbox — reproduce the flake, apply a minimal fix, and open a PR linking the issue. Use when asked to fix a flake, work through kind/flake issues, or when run on a schedule after dev/tools/flake-report has filed flake issues.
reminder
Set reminders and manage todos with natural language. Uses built-in cron scheduling, no external service needed.
mindos
MindOS: local knowledge assistant & shared KB. Keeps decisions, notes, SOPs, debugging lessons, research findings, preferences across sessions/agents. Core: save notes, search KB, organize files, run workflows, review, append CSV, hand off context, distill lessons. NOT for app source or paths outside KB. Triggers…
daily-briefing
Daily briefing aggregating weather, reminders, news, and calendar. Delivered on schedule via any channel.
email-assistant
Read, search, draft, and send emails via Himalaya CLI or Python IMAP/SMTP. Requires email account configuration.