Malloy Review
malloydata/publisher
Malloy semantic-model code review. An agent skill from malloydata/publisher.
Comprehensive learning resources and tutorials for LLVM, Clang, and compiler development.
$ npx skills add aftermathlabs/llvm-msvc --skill llvm-learning -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install aftermathlabs/llvm-msvc llvm-learning --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/aftermathlabs/llvm-msvc.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/llvm-learning .claude/skills/llvm-learning && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "llvm-learning" agent skill from https://github.com/aftermathlabs/llvm-msvc/tree/dev/.agents/skills/llvm-learning into .claude/skills/llvm-learning/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llvm-learning", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/aftermathlabs/llvm-msvc/tree/dev/.agents/skills/llvm-learningType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add aftermathlabs/llvm-msvc --skill llvm-learning -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install aftermathlabs/llvm-msvc llvm-learning --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aftermathlabs/llvm-msvc.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/llvm-learning .agents/skills/llvm-learning && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "llvm-learning" agent skill from https://github.com/aftermathlabs/llvm-msvc/tree/dev/.agents/skills/llvm-learning into .agents/skills/llvm-learning/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llvm-learning", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add aftermathlabs/llvm-msvc --skill llvm-learning -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install aftermathlabs/llvm-msvc llvm-learning --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aftermathlabs/llvm-msvc.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/llvm-learning .cursor/skills/llvm-learning && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "llvm-learning" agent skill from https://github.com/aftermathlabs/llvm-msvc/tree/dev/.agents/skills/llvm-learning into .cursor/skills/llvm-learning/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llvm-learning", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/aftermathlabs/llvm-msvc.git --path .agents/skills/llvm-learning--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add aftermathlabs/llvm-msvc --skill llvm-learning -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install aftermathlabs/llvm-msvc llvm-learning --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aftermathlabs/llvm-msvc.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/llvm-learning .gemini/skills/llvm-learning && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "llvm-learning" agent skill from https://github.com/aftermathlabs/llvm-msvc/tree/dev/.agents/skills/llvm-learning into .gemini/skills/llvm-learning/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llvm-learning", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install aftermathlabs/llvm-msvc llvm-learningInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add aftermathlabs/llvm-msvc --skill llvm-learning -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/aftermathlabs/llvm-msvc.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/llvm-learning .github/skills/llvm-learning && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "llvm-learning" agent skill from https://github.com/aftermathlabs/llvm-msvc/tree/dev/.agents/skills/llvm-learning into .github/skills/llvm-learning/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llvm-learning", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add aftermathlabs/llvm-msvc --skill llvm-learning -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install aftermathlabs/llvm-msvc llvm-learning --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aftermathlabs/llvm-msvc.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/llvm-learning .opencode/skills/llvm-learning && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "llvm-learning" agent skill from https://github.com/aftermathlabs/llvm-msvc/tree/dev/.agents/skills/llvm-learning into .opencode/skills/llvm-learning/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llvm-learning", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
llvm-learningComprehensive learning resources and tutorials for LLVM, Clang, and compiler development.
Llvm Learning is an agent skill from aftermathlabs/llvm-msvc. Comprehensive learning resources and tutorials for LLVM, Clang, and compiler development. Use this skill when helping users learn LLVM internals, find educational resources, or understand compiler concepts.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Education. It works with GitHub. The repository describes itself as: LLVM fork with explicit compatibility with MSVC 2022 features. The licence is AGPL-3.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit bfc7254. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are cpp, bash and llvm).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
raw.githubusercontent.comAlso links to:
llvm.orggithub.comclang.llvm.orgdiscourse.llvm.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Llvm Learning loads about 2.1k tokens when it runs. Until then it costs about 55 tokens; SKILL.md has 388 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from aftermathlabs/llvm-msvc at commit bfc7254, republished under its AGPL-3.0 licence (© aftermathlabs). 388 words, ~2,142 tokens.
.claude/skills/llvm-learning/SKILL.md (or your agent's skills folder).This skill provides curated learning paths and resources for mastering LLVM, Clang, and compiler development.
# Highly recommended starter projects
banach-space/llvm-tutor # Comprehensive pass examples
hunterzju/llvm-tutorial # Step-by-step tutorials
jauhien/iron-kaleidoscope # Kaleidoscope in Rust
bigconvience/llvm-ir-in-action # IR examples; Module level
@global_var = global i32 42
; Function definition
define i32 @add(i32 %a, i32 %b) {
entry:
%sum = add i32 %a, %b
ret i32 %sum
}
; External declaration
declare i32 @printf(i8*, ...); Arithmetic
%result = add i32 %a, %b
%result = sub i32 %a, %b
%result = mul i32 %a, %b
; Memory
%ptr = alloca i32
store i32 %value, i32* %ptr
%loaded = load i32, i32* %ptr
; Control flow
br i1 %cond, label %then, label %else
br label %next
; Function calls
%retval = call i32 @function(i32 %arg); Integer types: i1, i8, i16, i32, i64, i128
; Floating point: half, float, double
; Pointers: i32*, [10 x i32]*, { i32, i64 }*
; Arrays: [10 x i32]
; Structs: { i32, i64, i8* }
; Vectors: <4 x i32>#include "llvm/Passes/PassPlugin.h"
#include "llvm/Passes/PassBuilder.h"
struct MyPass : public llvm::PassInfoMixin<MyPass> {
llvm::PreservedAnalyses run(llvm::Function &F,
llvm::FunctionAnalysisManager &FAM) {
for (auto &BB : F) {
for (auto &I : BB) {
llvm::errs() << I << "\n";
}
}
return llvm::PreservedAnalyses::all();
}
};
// Plugin registration
extern "C" LLVM_ATTRIBUTE_WEAK ::llvm::PassPluginLibraryInfo
llvmGetPassPluginInfo() {
return {LLVM_PLUGIN_API_VERSION, "MyPass", LLVM_VERSION_STRING,
[](llvm::PassBuilder &PB) {
PB.registerPipelineParsingCallback(
[](llvm::StringRef Name, llvm::FunctionPassManager &FPM,
llvm::ArrayRef<llvm::PassBuilder::PipelineElement>) {
if (Name == "my-pass") {
FPM.addPass(MyPass());
return true;
}
return false;
});
}};
}# Build as shared library
clang++ -shared -fPIC -o MyPass.so MyPass.cpp `llvm-config --cxxflags --ldflags`
# Run with opt
opt -load-pass-plugin=./MyPass.so -passes="my-pass" input.ll -o output.ll# Dump AST
clang -Xclang -ast-dump -fsyntax-only source.cpp
# AST as JSON
clang -Xclang -ast-dump=json -fsyntax-only source.cpp#include "clang/Tooling/Tooling.h"
#include "clang/ASTMatchers/ASTMatchers.h"
#include "clang/ASTMatchers/ASTMatchFinder.h"
using namespace clang::ast_matchers;
// Match all function declarations
auto matcher = functionDecl().bind("func");
class Callback : public MatchFinder::MatchCallback {
void run(const MatchFinder::MatchResult &Result) override {
if (auto *FD = Result.Nodes.getNodeAs<FunctionDecl>("func")) {
llvm::outs() << "Found: " << FD->getName() << "\n";
}
}
};// Common matchers
functionDecl() // Match function declarations
varDecl() // Match variable declarations
binaryOperator() // Match binary operators
callExpr() // Match function calls
ifStmt() // Match if statements
// Narrowing matchers
hasName("foo") // Match by name
hasType(asString("int")) // Match by type
isPrivate() // Match private members
// Traversal matchers
hasDescendant(...) // Match in subtree
hasAncestor(...) // Match in parent tree
hasBody(...) // Match function body# Compile to LLVM IR
clang -S -emit-llvm source.c -o source.ll
# Optimize IR
opt -O2 source.ll -o optimized.ll
# Disassemble bitcode
llvm-dis source.bc -o source.ll
# Assemble to bitcode
llvm-as source.ll -o source.bc
# Generate native code
llc source.ll -o source.s
# View CFG
opt -passes=view-cfg source.ll# With debug info
clang -g -S -emit-llvm source.c
# Debug IR transformation
opt -debug-pass=Structure -O2 source.ll
# Verify IR validity
opt -passes=verify source.ll// Dominator Tree
#include "llvm/Analysis/Dominators.h"
DominatorTree &DT = FAM.getResult<DominatorTreeAnalysis>(F);
if (DT.dominates(BB1, BB2)) { /* BB1 dominates BB2 */ }
// Loop Analysis
#include "llvm/Analysis/LoopInfo.h"
LoopInfo &LI = FAM.getResult<LoopAnalysis>(F);
for (Loop *L : LI) { /* process loops */ }
// Alias Analysis
#include "llvm/Analysis/AliasAnalysis.h"
AAResults &AA = FAM.getResult<AAManager>(F);
AliasResult R = AA.alias(Ptr1, Ptr2);
// Call Graph
#include "llvm/Analysis/CallGraph.h"
CallGraph &CG = MAM.getResult<CallGraphAnalysis>(M);For a comprehensive list of tutorials, books, and example projects, see the LLVM Tutorial and Clang Tutorial sections in the main README.md.
When you need detailed and up-to-date resource links, tutorials, or learning materials, fetch the latest data from:
https://raw.githubusercontent.com/gmh5225/awesome-llvm-security/refs/heads/main/README.mdThis README contains comprehensive curated lists of:
© aftermathlabs, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/llvm-learning of aftermathlabs/llvm-msvc.
Open the folder on GitHubat commit bfc7254
Llvm Learning next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Llvm Learning this skillaftermathlabs/llvm-msvc | 438 | — | ~2.1k | Automated safety check: Pass | AGPL-3.0 | |
| Malloy Reviewmalloydata/publisher | 116 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Codebase to Coursezarazhangrui/codebase-to-course | 5.7k | — | ~4.4k | Automated safety check: Pass | None | |
| MCPA Certification Tutorrohitg00/ai-engineering-from-scratch | 65k | — | ~3.5k | Automated safety check: Pass | MIT | |
| Claude Certification Tutorrohitg00/ai-engineering-from-scratch | 65k | — | ~3k | Automated safety check: Pass | MIT | |
| Review PRmicrosoft/vscode-containers | 141 | — | ~900 | Automated safety check: Pass | Custom licence |
malloydata/publisher
Malloy semantic-model code review. An agent skill from malloydata/publisher.
zarazhangrui/codebase-to-course
Turns a codebase into an interactive single-page HTML course for non-technical learners, with scroll modules, animated diagrams, quizzes and plain-English code translations.
rohitg00/ai-engineering-from-scratch
Turns a GitHub course repository into an interactive tutor for the MCP Associate certification, making the learner explain and defend each step.
rohitg00/ai-engineering-from-scratch
Guides a learner through one of four independent Claude certification tracks with onboarding, lessons, practice labs, mock exams and remediation.
microsoft/vscode-containers
Review a specific vscode-containers pull request on demand from the CLI (or any interactive agent), the way a Container Tools maintainer would.
hqhq1025/skill-optimizer
A skill your agent uses when turning local, private, or personal Agent Skills into publishable skills for GitHub, marketplaces, teams, or public sharing, especially when private paths, personal…
aftermathlabs/llvm-msvc
Expertise in compiler development using LLVM infrastructure including frontend design, IR generation, optimization passes, and code generation.
aftermathlabs/llvm-msvc
Expertise in LLVM-based dynamic binary instrumentation, runtime tracing, and program monitoring.
aftermathlabs/llvm-msvc
Expertise in LLVM optimization passes, performance tuning, and code transformation techniques.
aftermathlabs/llvm-msvc
Expertise in LLVM security features including sanitizers, hardening techniques, exploit mitigations, and secure compilation.
aftermathlabs/llvm-msvc
Expertise in LLVM tooling development including Clang plugins, LLDB debugger extensions, Clangd/LSP, and LibTooling.
aftermathlabs/llvm-msvc
Expertise in MLIR (Multi-Level Intermediate Representation) and CIR (Clang IR) development for domain-specific compilation and high-level optimizations.
Works with
Categories
Comprehensive learning resources and tutorials for LLVM, Clang, and compiler development. Llvm Learning is an agent skill from aftermathlabs/llvm-msvc. Comprehensive learning resources and tutorials for LLVM, Clang, and compiler development.
Llvm Learning fits situations like: helping users learn LLVM internals; find educational resources; understand compiler concepts.
Run `npx skills add aftermathlabs/llvm-msvc --skill llvm-learning -a claude-code`. Or copy the skill folder (.agents/skills/llvm-learning in aftermathlabs/llvm-msvc) into .claude/skills/llvm-learning in your project. Claude Code loads it when a task matches its description.
Run `npx skills add aftermathlabs/llvm-msvc --skill llvm-learning -a codex`. Or copy the skill folder (.agents/skills/llvm-learning in aftermathlabs/llvm-msvc) into .agents/skills/llvm-learning in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add aftermathlabs/llvm-msvc --skill llvm-learning -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/llvm-learning, .gemini/skills/llvm-learning, .github/skills/llvm-learning and .opencode/skills/llvm-learning in your project.
SKILL.md names no scripts, command-line tools or credentials: Llvm Learning is instructions for the agent only.
SKILL.md names 5 domains. In commands or code: raw.githubusercontent.com; the agent is likely to contact it when it follows the instructions. As links in the text: llvm.org, github.com, clang.llvm.org and discourse.llvm.org. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Llvm Learning is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Llvm Learning: Malloy Review (malloydata/publisher, 116 stars), Codebase to Course (zarazhangrui/codebase-to-course, 5.7k stars), MCPA Certification Tutor (rohitg00/ai-engineering-from-scratch, 65k stars) and Claude Certification Tutor (rohitg00/ai-engineering-from-scratch, 65k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
aftermathlabs (a GitHub organization) maintains it in aftermathlabs/llvm-msvc, which has 438 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 3, 2026.
Source: aftermathlabs/llvm-msvc on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.