decomp-tu-build

decomp-tu-build is a skill for Claude Code, Codex from tangosdev/sm64ds-decomp. It costs 142 tokens per session (2,767 once invoked), scanned A, original, MIT.

A procedure for rebuilding and checking merged C++ translation units in the sm64ds-decomp project. It compiles the merged source with the project’s fixed compiler, checks each member against the original program, and runs relocation checks.

In plain words
What is it for?
Use it when merging one-function files into a real C++ source file, checking compiled bytes, and progressing through the project’s verification stages.
Why use it?
It provides a repeatable way to prove that combining source files still produces the expected program output.

Skill for Claude CodeCodex

Install

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.

agentmods
npx agentmods add skills/tangosdev/sm64ds-decomp/decomp-tu-build
Any agent
npx skills add tangosdev/sm64ds-decomp --skill decomp-tu-build
Clone the repo
git clone --depth 1 https://github.com/tangosdev/sm64ds-decomp

Made for: Claude Code, Codex.

Wrote 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.

agentmods badge for decomp-tu-build

README.md
[![agentmods](https://agentmods.dev/badge/skills/tangosdev/sm64ds-decomp/decomp-tu-build.svg)](https://agentmods.dev/skills/tangosdev/sm64ds-decomp/decomp-tu-build)
Your own site
<a href="https://agentmods.dev/skills/tangosdev/sm64ds-decomp/decomp-tu-build"><img src="https://agentmods.dev/badge/skills/tangosdev/sm64ds-decomp/decomp-tu-build.svg" alt="Measured on agentmods" height="20"></a>
Per session 142 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,767 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00142 $0.02767
Opus 5 $0.00071 $0.01384
Sonnet 5 $0.00028 $0.00553
Haiku 4.5 $0.00014 $0.00277

Measured 6d ago against content hash 85b0e4b8e90c, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-05, from the pricing page.

Security

Grade A, and why

decomp-tu-build 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.

.claude/skills/decomp-tu-build/SKILL.md · 187 lines

How it starts

The opening of the file, as written. The whole thing — 187 lines — stays where its author put it; the contents beside it link to each section on GitHub.

The TU rebuild / verify loop

src/ holds ~11k one-function files, a shape the original build never had. tools/tu_map.py recovers the real .cpp boundaries; this skill is about executing the merge and proving it. For deciding which functions belong together, read decomp-tu-slicing first — a class is not a file.

0. Prerequisites, in this exact order

python tools/rtti_extract.py     # -> build/rtti.json
python tools/rtti_vtables.py     # -> build/rtti_vtables.json
python tools/tu_map.py           # -> build/tu_map.json

build/ is gitignored, so a fresh worktree has none of this — always regenerate.

Nothing enforces that order. tu_map.py reads build/rtti_vtables.json if it is present and silently falls back to an empty label table if it is not, so a missing prerequisite produces a complete, self-consistent, wrong map — 516 TUs instead of 532 — with every gate passing and exit 0. Verify the prerequisites yourself; no exit code will do it for you, and --check will not either (it exits 0 on failure too). The full damage table is in decomp-tu-slicing §0.

tubuild.py regenerates the map only when it is entirely absent; a stale-but-present map is reported as a note and then used as-is.

--blind is a negative control, not an opt-out: it drops the mangled-name signal and scores what the map retains on RTTI alone, which is the honest measure for the anonymous overlays. It is not something to reach for in a normal run. There is no flag that suppresses the RTTI labels while keeping the names.

Figures move whenever the map changes — run the command rather than quoting these. Measured on main at 343eab070 with the full chain: 74 modules, 11,091 functions, 532 TUs, boundaries {low: 68, medium: 110, high: 280}, 400/532 carrying a class.

1. The loop

python tools/tubuild.py list                      # candidate worklist
python tools/tubuild.py inspect ov045/PoleLift    # one candidate, full detail
python tools/tubuild.py create  ov062/Chuckya     # generate a shadow .cpp
python tools/tubuild.py compile ov045/PoleLift
python tools/tubuild.py verify  ov045/PoleLift    # byte + relocation verification
python tools/tubuild.py partial ov045/PoleLift    # N derived per-function objects
python tools/tubuild.py linkcheck ov002/LevelObjects
python tools/tubuild.py promote  ov045/PoleLift   # --dry-run only

Read the full file on GitHub · 187 lines

Changes

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.

  1. 6d ago First seen · 187 lines · 142 tokens per session scan A 85b0e4b8e90c

Subscribe to this mod's changes

decomp-tu-build is a skill published in the GitHub repository tangosdev/sm64ds-decomp (146 stars, last pushed today), licensed MIT. It adds 142 tokens to every session and 2,767 once invoked, about $0.0007 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.

Related

Other skills, from other repositories

th08-semantic

Replace raw TH08 object offsets, anonymous fields, and absolute field views with evidence-backed C++ types and names while preserving accepted VC7 bytes and playable modern-port behavior. Use for semantic cleanup of already-authored source; do not use for new function recovery or target-linked library work.

N0zoM1z0/th08 · 62 tokens

buffer-overflow-stack

Identify, exploit, and write custom payloads for classic Stack-Based Buffer Overflows in 32-bit and 64-bit applications. Use this skill when conducting exploit development, reverse engineering custom network protocols, or preparing for advanced certifications (OSCP, OSEP). Covers fuzzing, controlling EIP/RIP…

ShulkwiSEC/bb-huge · 86 tokens

analyzing-java-jar-malware

Analyzes Java/JAR malware (such as Adwind/jRAT-class cross-platform RATs) by inventorying the archive, reading the manifest entry point, detecting obfuscators and string encryption, and flagging suspicious runtime, reflection, and networking class usage. Activates for requests to analyze a malicious JAR, inspect Java…

meltedinhex/analyst-ai-pack · 83 tokens

gdb

Debug and trace C/C++/Rust programs with the GNU Debugger (GDB) without blocking the agent. Use when you need to set tracepoints, inspect variables, or monitor a running process while staying responsive to the user.

betab0t/skills · 50 tokens

zoom-meeting-sdk-unreal

Zoom Meeting SDK for Unreal Engine wrapper integrations. Use when building Unreal projects that embed Zoom meetings with C++ and Blueprint wrappers, including wrapper-to-SDK mapping concerns.

anthropics/knowledge-work-plugins · 41 tokens

new-cpp-lint

Create a new C++ lint rule, test it, run it across the codebase, and selectively apply fixes. Usage - /new-cpp-lint.

FastLED/FastLED · 41 tokens