Agent skill

Boost Asio Pro

by alirezarezvani in alirezarezvani/claude-skills

A skill your agent uses when writing or reviewing asynchronous C++ networking code with Boost.Asio or standalone Asio — TCP/UDP servers and clients, SSL/TLS, timers, strands, iocontext, cospawn…

MITAuto-check passedDevelopment

Install Boost Asio Pro

skills CLI
$ npx skills add alirezarezvani/claude-skills --skill boost-asio-pro -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install alirezarezvani/claude-skills boost-asio-pro --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/alirezarezvani/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/engineering/boost-asio-pro .claude/skills/boost-asio-pro && rm -rf skills-src

Use ~/.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/

Facts

Skill name
boost-asio-pro
GitHub stars
28k
Token cost
~2.6k tokens
SKILL.md length
1,119 words
Files
6 (incl. references)
Skills in repo
342
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when writing or reviewing asynchronous C++ networking code with Boost.Asio or standalone Asio — TCP/UDP servers and clients, SSL/TLS, timers, strands, iocontext, cospawn…

  • Works in 3 steps: pick the style (do this before writing… → version floors (verified by compiling,… → the rules that are actually easy to get…
  • Reviewing asynchronous C++ networking code with Boost.Asio
  • SKILL.md covers Overview, Step 1: pick the style (do…, Step 2: version floors… and Step 3: the rules that are…, plus 6 more sections
  • Calls brew

What it does

Boost Asio Pro is an agent skill from alirezarezvani/claude-skills. Use when writing or reviewing asynchronous C++ networking code with Boost.Asio or standalone Asio — TCP/UDP servers and clients, SSL/TLS, timers, strands, iocontext, cospawn, awaitable, asyncread/asyncwrite, asio::spawn, yieldcontext, or pre-C++20 completion-handler callbacks.

Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `references/build.md`, `references/classic-boost.md` and `references/coroutines.md`).

It sits in Development, covering Async programming. It works with C++. The repository describes itself as: 380 Claude Code skills & agent skills & plugins (30+ Agents, 70+ custom commands, 380+ skills, customizable references, scripts)for Claude Code, Codex, Gemini CLI, Cursor, and 8… The licence is MIT.

When your agent uses it

  • Reviewing asynchronous C++ networking code with Boost.Asio
  • Standalone Asio — TCP/UDP servers and clients
  • Asyncread/asyncwrite
  • Pre-C++20 completion-handler callbacks

Example prompts

  • “/boost-asio-pro”

Requirements

  • Docker

Workflow steps

3 steps, taken from the step headings in SKILL.md.

  1. pick the style (do this before writing code)
  2. version floors (verified by compiling, not from docs)
  3. the rules that are actually easy to get wrong

What it can do on your machine

Read from SKILL.md and the folder at commit 19392f7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • brew

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • boost.org
    • github.com
    • think-async.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Boost Asio Pro loads about 2.6k tokens when it runs, and up to ~10k if it reads all its reference files. Until then it costs about 74 tokens; SKILL.md has 1,119 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~74
When it runs · the whole SKILL.md, loaded when a task matches
~2.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~10k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from alirezarezvani/claude-skills at commit 19392f7, republished under its MIT licence (© alirezarezvani). 1,119 words, ~2,615 tokens.

Download SKILL.mdSave it as .claude/skills/boost-asio-pro/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
boost-asio-pro
description
Use when writing or reviewing asynchronous C++ networking code with Boost.Asio or standalone Asio — TCP/UDP servers and clients, SSL/TLS, timers, strands, io_context, co_spawn, awaitable, async_read/async_write, asio::spawn, yield_context, or pre-C++20 completion-handler callbacks.

Boost.Asio / standalone Asio

Overview

Write async C++ networking code that compiles on the user's Boost, not the newest one. Asio's API changed shape three times (classic io_service → io_context → C++20 coroutines) and most Asio code on the internet is from the first era, so pick the style from the toolchain first, then follow that style's reference file.

References: Boost.Asio · standalone Asio

Use this skill whenever async C++ networking code is being written or reviewed — and especially when the target toolchain is old, where coroutine examples simply will not compile. The three worked implementations it references are CI-verified from Boost 1.62 (2016) through 1.90.

Step 1: pick the style (do this before writing code)

Determine the Boost (or Asio) version and the C++ standard actually in use — find_package(Boost) output, dpkg -l libboost-dev, brew info boost, CMAKE_CXX_STANDARD, or ask. Do not assume the newest.

BoostC++ stdStyleRead
≥ 1.77C++20Coroutines (co_await + awaitable<T>) — preferredreferences/coroutines.md
≥ 1.74C++11–17Completion handlers (callbacks) — the portable baselinereferences/pre-cpp20.md
≥ 1.80C++11–17Stackful asio::spawn + yield_context (links Boost.Coroutine — not header-only)references/pre-cpp20.md
1.62–1.65C++11Classic io_service / strand.wrap / expires_from_nowreferences/classic-boost.md

SSL/TLS in any style: references/ssl.md. CMake for any style: references/build.md.

io_context, make_strand, bind_executor, steady_timer, signal_set, async_read/async_write/async_read_until, buffers and resolver are library features — identical in the coroutine and callback styles. Only the suspension mechanism differs.

Step 2: version floors (verified by compiling, not from docs)

Reach for one of these and the build breaks on older distros:

FeatureFloor
experimental/awaitable_operators.hpp (the || / && operators)Boost ≥ 1.77 / Asio ≥ 1.20
as_tuple completion tokenBoost ≥ 1.79 / Asio ≥ 1.21
co_composed (custom composed ops)Boost ≥ 1.85 / Asio ≥ 1.30
3-arg asio::spawn(ex, fn, token)Boost ≥ 1.80 (older Boost has only spawn(ex, fn))
any_io_executor (strand<any_io_executor>, tcp::socket's default executor)Boost ≥ 1.74 — the floor for the callback style; below it, use legacy io_context::strand
io_context, make_strand, expires_afterBoost ≥ 1.66 — below it, classic io_service

Distro floors that bite: Debian bookworm ships Boost 1.74 (no awaitable_operators.hpp — #include fails outright), Ubuntu 20.04 ships 1.71 (no any_io_executor), Debian 9 ships 1.62.

Language, not library: the chrono literals 250ms / 30s are C++14. For a true C++11 build write std::chrono::milliseconds(250).

Step 3: the rules that are actually easy to get wrong

A strand does not serialize writes. A strand serializes handler execution, not whole composed operations. Two async_writes in flight on the same strand still interleave bytes on the wire. Full-duplex (a read loop plus concurrent pushes/replies) needs a per-connection strand and an outbound queue with an in-flight flag, so at most one async_write exists at a time. This is the single most common wrong answer about Asio.

Buffers do not own memory. asio::buffer() is a view. Storage must outlive the operation: coroutine locals are fine across co_await in the same frame; in callback style the same data must become a member, not a local.

Connections must outlive their handlers. enable_shared_from_this, and capture self in every co_spawn / handler — read loop, write loop, and each timer.

Frame with composed reads. async_read (fills the buffer exactly) for a length prefix and then the body; never async_read_some, which returns short.

Wrap as_tuple. Always as_tuple(use_awaitable). Bare as_tuple resolves against the operation's default token and compiles in some contexts, fails in others.

async_accept(make_strand(...)) changes two things: it forces an explicit completion token back on the call, and the accepted socket is basic_stream_socket<tcp, strand<...>>, not tcp::socket. Take it by value or with auto — binding it to tcp::socket& will not compile.

Re-arming a timer resolves the pending wait with operation_aborted. In an idle-timeout loop that is the signal to keep waiting, not an error.

GCC needs -fcoroutines for the C++20 style, and header-only Boost needs BOOST_ERROR_CODE_HEADER_ONLY defined in exactly one place (CMake).

Show full SKILL.md (525 more words)Show less

Anti-Patterns

MistakeFix
Buffer dangling (local goes out of scope during async op)Ensure buffer lifetime ≥ operation lifetime; coroutine locals or members, not callback locals
Forgetting io.run()No handlers dispatch without run() / run_one()
Concurrent socket access without strandWrap in strand<> or serialize via one coroutine chain
Assuming a strand prevents interleaved writesAdd a write queue — see Step 3
Using use_awaitable where deferred sufficesOmit the token (default is deferred) unless using || / &&
Ignoring short reads/writesUse composed async_read / async_write / async_read_until, not async_read_some
Not setting reuse_address on the acceptorSet before bind/listen or restarts hit "address in use"
SSL operations without a strandAll ssl::stream ops need strand synchronization
Blocking inside a handlerNever block in a completion handler
Accepting a socket with the wrong executor typeSee async_accept(make_strand(...)) in Step 3
Requiring the Boost::system componentHeader-only since 1.74: Boost::headers + BOOST_ERROR_CODE_HEADER_ONLY. Only classic (pre-1.66) needs the link
Missing -fcoroutines on GCCBuild fails — add $<$<CXX_COMPILER_ID:GNU>:-fcoroutines>
Writing coroutine code for a Boost that predates itDo Step 1 first

Boost.Asio vs standalone Asio

Same author, same API — namespace and includes differ.

AspectBoost.AsioStandalone Asio
Namespace / includeboost::asio / <boost/asio.hpp>asio / <asio.hpp>
Error codeboost::system::error_codeasio::error_code (or std::error_code)
Install (brew)brew install boostbrew install asio
CMakeBoost::headersmanual include path
Version (2025)1.87–1.90 (with Boost)1.30–1.36 (independent)
Macro prefixBOOST_ASIO_ASIO_

Support both with a shim, then use net:: throughout:

cpp
#ifdef USE_STANDALONE_ASIO
  #include <asio.hpp>
  namespace net = asio;
  using error_code = asio::error_code;
#else
  #include <boost/asio.hpp>
  namespace net = boost::asio;
  using error_code = boost::system::error_code;
#endif
namespace ssl = net::ssl;
using tcp = net::ip::tcp;

Before you call it done

Check the code you just wrote against this list:

  • Style matches the target Boost version and C++ standard (Step 1), and every API used clears its floor (Step 2).
  • Every buffer passed to an async op outlives that op — no callback locals, no dangling string_view.
  • At most one async_write per socket in flight, enforced by a queue + flag, if anything writes concurrently with reading.
  • Every async chain on a shared object runs on the same strand; self captured in every handler and co_spawn.
  • Framing / delimited reads use composed async_read / async_read_until.
  • Errors are handled, not swallowed: as_tuple(use_awaitable) destructured, or the callback's ec checked, on every op.
  • operation_aborted distinguished from real errors wherever a timer is re-armed or an op is cancelled.
  • Acceptor sets reuse_address; shutdown path closes the acceptor and drains sessions.
  • CMake has the standard, -fcoroutines for GCC (C++20 only), BOOST_ERROR_CODE_HEADER_ONLY in one place, and Boost::coroutine only if using stackful spawn.
  • It compiles. Build it — most of the mistakes above are compile-time, and the version floors are only real once tested.

Worked examples

Three CI-verified implementations of the same full-duplex framed-protocol server, one per style — copy from the one matching Step 1. All three live in the upstream repository and are built by CI on every push.

Official documentation

Cross-References

  • engineering/docker-development — the old-Boost verification lanes this skill's floors come from are containerised builds (Debian 9 / bookworm, Fedora).
  • engineering/chaos-engineering — for exercising the failure paths this skill tells you to handle: half-open sockets, idle timeouts, partial frames.
  • engineering-team/playwright-pro — the client-side counterpart when the server built here is driven from browser-based integration tests.

© alirezarezvani, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 5 other files (references) in engineering/boost-asio-pro of alirezarezvani/claude-skills.

  • SKILL.md
  • references/build.md
  • references/classic-boost.md
  • references/coroutines.md
  • references/pre-cpp20.md
  • references/ssl.md

Open the folder on GitHubat commit 19392f7

Compare with similar skills

Boost Asio Pro 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.

Boost Asio Pro compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Boost Asio Pro this skillalirezarezvani/claude-skills28k—~2.6kAutomated safety check: PassMIT
YugabyteDB ASH Instrumentationyugabyte/yugabyte-db11k—~4.5kAutomated safety check: PassCustom licence
Boost Asio Prosickn33/agentic-awesome-skills47k1 repos~3kAutomated safety check: PassMIT
Replay Oriented InstrumentationArabelaTso/Skills-4-SE253—~2.5kAutomated safety check: PassApache-2.0
Python Script Integrationczyt1988/data-workbench102—~5.5kAutomated safety check: PassLGPL-3.0
Code Audit3stoneBrother/code-audit8931 repos~2.7kAutomated safety check: PassNone

Similar skills

  • YugabyteDB ASH Instrumentation

    yugabyte/yugabyte-db

    Procedure for adding or changing YugabyteDB Active Session History wait states in TServer and DocDB C++ code, including the macro to use for sync and async paths.

    11k GitHub stars~4.5k tokensUpdated today
    DevelopmentAuto-check passed
  • Boost Asio Pro

    sickn33/agentic-awesome-skills

    A skill your agent uses when writing asynchronous C++ networking code with Boost.Asio or standalone Asio — TCP/UDP servers and clients, SSL/TLS, timers, strands, composed async ops.

    47k GitHub starsUsed in 1 repo~3k tokens
    DevelopmentAuto-check passed
  • Replay Oriented Instrumentation

    ArabelaTso/Skills-4-SE

    Instruments programs to record execution information for deterministic replay debugging.

    253 GitHub stars~2.5k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Python Script Integration

    czyt1988/data-workbench

    A skill your agent uses when integrating Python scripts with C++ in a DAWorkbench plugin — calling Python from C++, Python multithreading without UI conflicts, Python-to-C++ data exchange, Python UI…

    102 GitHub stars~5.5k tokensUpdated 26 days ago
    Data & AnalyticsAuto-check passed
  • Code Audit

    3stoneBrother/code-audit

    Professional code security audit skill covering 55+ vulnerability types.

    893 GitHub starsUsed in 1 repo~2.7k tokens
    SecurityAuto-check passed
  • Unreal Engine Async and Threading

    quodsoler/unreal-engine-skills

    Picks and applies the right Unreal Engine C++ concurrency API, from UE::Tasks and FPipe to ParallelFor, FRunnable, locks and timers, with game-thread safety rules.

    359 GitHub stars~8k tokensUpdated 10 days ago
    Game DevelopmentAuto-check passed

More from alirezarezvani/claude-skills

All 342 skills in this repo
  • Agile Product Owner

    alirezarezvani/claude-skills

    Writes INVEST-checked user stories with acceptance criteria, splits epics, plans sprints from velocity and ranks the backlog with a weighted score.

    28k GitHub starsUsed in 3 repos~3.2k tokens
    Auto-check passed
  • Product Strategist

    alirezarezvani/claude-skills

    OKR cascade toolkit for product leaders: generates aligned company-to-team OKRs from five strategy types and scores how well they line up.

    28k GitHub starsUsed in 2 repos~1.8k tokens
    Auto-check passed
  • App Store Optimization

    alirezarezvani/claude-skills

    App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store.

    28k GitHub starsUsed in 1 repo~4.2k tokens
    Auto-check passed
  • AWS Solution Architect

    alirezarezvani/claude-skills

    Design AWS architectures for startups using serverless patterns and IaC templates.

    28k GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed
  • Campaign Analytics

    alirezarezvani/claude-skills

    Calculates attribution, funnel and ROI figures for marketing campaigns with three Python scripts that need only the standard library.

    28k GitHub starsUsed in 1 repo~2.1k tokens
    Auto-check passed
  • Code to PRD

    alirezarezvani/claude-skills

    Reverse-engineers a frontend, backend or fullstack codebase into a product requirements document with per-page docs, an enum dictionary and an API inventory.

    28k GitHub starsUsed in 1 repo~4.9k tokens
    Auto-check passed

Works with

Categories

Questions about Boost Asio Pro

What does Boost Asio Pro do?

A skill your agent uses when writing or reviewing asynchronous C++ networking code with Boost.Asio or standalone Asio — TCP/UDP servers and clients, SSL/TLS, timers, strands, iocontext, cospawn…. Boost Asio Pro is an agent skill from alirezarezvani/claude-skills.Asio or standalone Asio — TCP/UDP servers and clients, SSL/TLS, timers, strands, iocontext, cospawn, awaitable, asyncread/asyncwrite, asio::spawn, yieldcontext, or pre-C++20 completion-handler callbacks.

When should I use Boost Asio Pro?

Boost Asio Pro fits situations like: reviewing asynchronous C++ networking code with Boost.Asio; standalone Asio — TCP/UDP servers and clients; asyncread/asyncwrite; pre-C++20 completion-handler callbacks.

How do I install Boost Asio Pro in Claude Code?

Run `npx skills add alirezarezvani/claude-skills --skill boost-asio-pro -a claude-code`. Or copy the skill folder (engineering/boost-asio-pro in alirezarezvani/claude-skills) into .claude/skills/boost-asio-pro in your project. Claude Code loads it when a task matches its description.

How do I install Boost Asio Pro in Codex?

Run `npx skills add alirezarezvani/claude-skills --skill boost-asio-pro -a codex`. Or copy the skill folder (engineering/boost-asio-pro in alirezarezvani/claude-skills) into .agents/skills/boost-asio-pro in your project. Codex loads it when a task matches its description.

Can I use Boost Asio Pro in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add alirezarezvani/claude-skills --skill boost-asio-pro -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/boost-asio-pro, .gemini/skills/boost-asio-pro, .github/skills/boost-asio-pro and .opencode/skills/boost-asio-pro in your project.

What does Boost Asio Pro need to run?

Going by SKILL.md and its folder, Boost Asio Pro needs the command-line tools its instructions call (brew). Our summary lists: Docker.

Does Boost Asio Pro access the network?

SKILL.md names 3 domains. As links in the text: boost.org, github.com and think-async.com. This is read from the text; nothing was executed.

Is Boost Asio Pro safe to install?

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.

What licence does Boost Asio Pro use?

Boost Asio Pro is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Boost Asio Pro use?

About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.7k tokens, read only when the agent opens those files.

What are the alternatives to Boost Asio Pro?

Skills that share tags, products or a category with Boost Asio Pro: YugabyteDB ASH Instrumentation (yugabyte/yugabyte-db, 11k stars), Boost Asio Pro (sickn33/agentic-awesome-skills, 47k stars), Replay Oriented Instrumentation (ArabelaTso/Skills-4-SE, 253 stars) and Python Script Integration (czyt1988/data-workbench, 102 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Boost Asio Pro?

alirezarezvani (a GitHub user) maintains it in alirezarezvani/claude-skills, which has 27,829 GitHub stars. The repository holds 342 skills in this directory. The repository was last updated on August 30, 2026.

Source: alirezarezvani/claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.