specbolt CLAUDE.md

specbolt CLAUDE.md is an instructions file for coding agents from mattgodbolt/specbolt. It costs 782 tokens per session, scanned A, original, BSD-3-Clause.

Project-specific instructions for building and testing Specbolt, a C++ project that uses CMake to manage builds and can optionally use upcoming C++26 features such as reflection and modules.

In plain words
What is it for?
Building, testing, formatting, and changing the Specbolt codebase across debug, release, modules, reflection, SDL, and WASI-related configurations.
Why use it?
They give a coding agent the required compilers, libraries, build presets, test commands, and rules for optional features, reducing setup mistakes and incorrect changes.

Instructions file

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 instructions/mattgodbolt/specbolt/claude-md
Clone the repo
git clone --depth 1 https://github.com/mattgodbolt/specbolt

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 specbolt CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/mattgodbolt/specbolt/claude-md.svg)](https://agentmods.dev/instructions/mattgodbolt/specbolt/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/mattgodbolt/specbolt/claude-md"><img src="https://agentmods.dev/badge/instructions/mattgodbolt/specbolt/claude-md.svg" alt="Measured on agentmods" height="20"></a>
Per session 782 This file is loaded in full into every session.
When invoked 782 The same file — it is already loaded in full.
Security scan A 1 finding. 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 $0.00782 $0.00782
Opus 5 $0.00391 $0.00391
Sonnet 5 $0.00156 $0.00156
Haiku 4.5 $0.00078 $0.00078

Measured 5d ago against content hash 2f81d159ac3a, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

specbolt CLAUDE.md scanned grade A with 1 finding 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 5d 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.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

mkdir -p ~/opt && curl -fsSL https://s3.amazonaws.com/compiler-explorer/opt/gcc-16.2.0.tar.xz | tar Jxf - -C ~/opt
CLAUDE.md · 55 lines

How it starts

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

Build

Requires clang-20+ (for C++26 modules + libc++), CMake 3.30+, Ninja, SDL2, readline.

Presets live in CMakePresets.json. The common ones:

cmake --preset debug            # Debug, no modules — works with clang or gcc
cmake --preset debug-modules    # Debug with C++ modules (needs clang + libc++)
cmake --preset release          # RelWithDebInfo, no modules (runs zexdoc tests)
cmake --preset debug-reflection # Debug with C++26 reflection (needs gcc 16+)
cmake --build --preset debug
ctest --preset debug

Pick the compiler with CC=… CXX=… or by setting CMAKE_CXX_COMPILER in a local CMakeUserPresets.json (gitignored) that inherits from one of the public presets.

The zexdoc regression tests are intentionally skipped in Debug (too slow); they run in RelWithDebInfo.

Run: ./build/debug/sdl/specbolt_sdl

C++26 reflection

Reflection (P2996) needs gcc 16+; no clang release implements it yet, and the WASI build is on clang, so anything reflective must be optional. cmake/reflection.cmake probes for it and exposes:

  • opt::reflection — link against it to get -freflection and the SPECBOLT_REFLECTION define. Guard reflective code on that macro, or exclude the target in CMake with if (SPECBOLT_HAS_REFLECTION).
  • SPECBOLT_REFLECTION cache variable — AUTO (default, use if available), ON (require it; configure fails otherwise), OFF.

No distro packages gcc 16, so grab a compiler-explorer build — the same thing CI uses:

mkdir -p ~/opt && curl -fsSL https://s3.amazonaws.com/compiler-explorer/opt/gcc-16.2.0.tar.xz | tar Jxf - -C ~/opt
CC=~/opt/gcc-16.2.0/bin/gcc CXX=~/opt/gcc-16.2.0/bin/g++ cmake --preset debug-reflection

Reflection works inside module interface units on gcc 16 — including template for in a module purview, and exported templates that reflect on their own parameters and get instantiated in importing TUs. The reflection presets still set SPECBOLT_MODULES=OFF to keep the reflection and modules axes separable; flip it in a CMakeUserPresets.json to build both together.

Read the full file on GitHub · 55 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. 5d ago First seen · 55 lines · 782 tokens per session scan A 2f81d159ac3a

Subscribe to this mod's changes

specbolt CLAUDE.md is an instructions file published in the GitHub repository mattgodbolt/specbolt (41 stars, last pushed 15d ago), licensed BSD-3-Clause. It adds 782 tokens to every session, about $0.0039 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.