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 OutlineDriven/outline-driven-development --skill compiler-frontendgit clone --depth 1 https://github.com/OutlineDriven/outline-driven-developmentWrote 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/outlinedriven/outline-driven-development/compiler-frontend)<a href="https://agentmods.dev/skills/outlinedriven/outline-driven-development/compiler-frontend"><img src="https://agentmods.dev/badge/skills/outlinedriven/outline-driven-development/compiler-frontend/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/outlinedriven/outline-driven-development/compiler-frontend"><img src="https://agentmods.dev/badge/skills/outlinedriven/outline-driven-development/compiler-frontend.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.00045 | $0.02792 |
| Opus 5 | $0.00023 | $0.01396 |
| Sonnet 5 | $0.00009 | $0.00558 |
| Haiku 4.5 | $0.00005 | $0.00279 |
Grade A, and why
compiler-frontend 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 3d 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 — 218 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Compiler frontend
Contract
| Field | Bound contract |
|---|---|
| Trigger | A user implements a language or DSL, adds expression parsing to an interpreter or config format, designs AST nodes in C or Rust, needs scoped symbols, basic type checking, error recovery, or wants a typed AST lowered to LLVM IR. |
| Authority | Reversible local: writes only the frontend source files the user names inside the project; rollback is version control. No remote mutation. |
| Side effect | Frontend source files are created or edited; a test input is lexed, parsed, checked, and, when requested, emitted as IR and verified. |
| Done | Each requested stage compiles, runs on the supplied test inputs, and the verification named for that stage passes: token stream matches, precedence tests pass, undefined and mismatched types are reported, generated IR passes the LLVM verifier. |
Inputs
- Language description (required): the token set, the grammar or a set of example programs, and the operators with their precedence and associativity.
- Implementation language (required): C or Rust. C samples below use the LLVM C API in
llvm-c/; in Rust use theinkwellorllvm-syscrates. - Requested stages (required): any subset of lexer, parser, symbol table, type checker, IR emitter.
- Test inputs (required): at least one valid program per stage and one program with an error the stage must report.
Procedure
-
Fix the pipeline: source to lexer (tokens) to parser (AST) to type checker to IR generator to LLVM IR. Write down which stages this task delivers. Done when: the delivered stages and their input and output types are listed.
-
Write the lexer as a hand-written state machine. Tokens carry a kind, a pointer into the source, a length, and any literal value. Skip whitespace, then dispatch on the first character: digits build an integer, letters build an identifier, single characters map to punctuation.
typedef enum { TOK_EOF, TOK_INT, TOK_IDENT, TOK_PLUS, TOK_MINUS, TOK_LPAREN, TOK_RPAREN, TOK_SEMI, TOK_EQ, TOK_RETURN } TokenKind; typedef struct { TokenKind kind; const char *start; int length; int64_t int_val; } Token; typedef struct { const char *src; int pos; int line; } Lexer; Token lexer_next(Lexer *l) { while (l->src[l->pos] == ' ' || l->src[l->pos] == '\n') l->pos++; const char *start = &l->src[l->pos]; if (isdigit((unsigned char)l->src[l->pos])) { int64_t val = 0; while (isdigit((unsigned char)l->src[l->pos])) val = val * 10 + (l->src[l->pos++] - '0'); return (Token){ TOK_INT, start, (int)(&l->src[l->pos] - start), val }; } if (isalpha((unsigned char)l->src[l->pos])) { while (isalnum((unsigned char)l->src[l->pos])) l->pos++; return (Token){ TOK_IDENT, start, (int)(&l->src[l->pos] - start), 0 }; } switch (l->src[l->pos++]) { case '+': return (Token){ TOK_PLUS, start, 1, 0 }; case '(': return (Token){ TOK_LPAREN, start, 1, 0 }; case ')': return (Token){ TOK_RPAREN, start, 1, 0 }; case ';': return (Token){ TOK_SEMI, start, 1, 0 }; default: return (Token){ TOK_EOF, start, 0, 0 }; } }
What ships with it
1 file 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.
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.
- 3d ago First seen · 218 lines · 45 tokens per session scan A 701a9128565b
compiler-frontend is a skill published in the GitHub repository OutlineDriven/outline-driven-development (52 stars, last pushed 3d ago), licensed Apache-2.0. It adds 45 tokens to every session and 2,792 once invoked, about $0.0002 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-09-06.
Other skills, from other repositories
memory-safety-patterns
Implement memory-safe programming with RAII, ownership, smart pointers, and resource management across Rust, C++, and C. Use when writing safe systems code, managing resources, or preventing memory bugs.
memory-safety-patterns
Implement memory-safe programming with RAII, ownership, smart pointers, and resource management across Rust, C++, and C. Use when writing safe systems code, managing resources, or preventing memory bugs.
memory-model
C++ and Rust memory model skill for concurrent programming. Use when understanding memory ordering, writing lock-free data structures, using std::atomic or Rust atomics, diagnosing data races, or selecting the correct memory order for atomic operations. Activates on queries about memory ordering, acquire-release…
webassembly-expert
Create production-ready WebAssembly modules for web and server environments with optimal performance and seamless JavaScript integration. Use when the user mentions WebAssembly or Wasm, WASI, compiling Rust/C/C++ to the browser, Emscripten, wasmtime, or JavaScript-to-Wasm interop for performance-critical code.
rust-formal-verification
Use when Rust code, especially unsafe or panic-critical paths, needs a Kani, Verus, or Creusot harness written, run, and its failure read. Not for choosing the proof policy: use proof-driven.
libafl
Use when a LibAFL fuzzer needs an executor, observer, feedback, mutator, scheduler, or objective composed around a target. Not for remote, credential, publish, deploy, or irreversible changes.