docs(agents): add cpp-code-review skill

Add a code review skill with reference files for memory safety,
concurrency, correctness idioms, false positives, cppreference
lookup, and report format. Move the coding conventions from
AGENTS.md into the skill's project-style reference so reviews
enforce them.

Co-authored-by: Qwen 3.8 27B <qwen3.8_27b-q3_k_xl@lmstudio.local>
This commit is contained in:
2026-10-06 08:02:45 +02:00
co-authored by Qwen 3.8 27B
parent edc567331d
commit 38473eb734
9 changed files with 284 additions and 30 deletions
@@ -0,0 +1,25 @@
# Concurrency
Docs: cppreference "Concurrency support library", `std::memory_order`,
`std::atomic`.
- Shared mutable data is protected by a mutex or is `std::atomic`; otherwise
it's a data race (UB).
- Use `std::scoped_lock` / `std::lock_guard` / `std::unique_lock`, never manual
`lock()`/`unlock()`.
- Multiple mutexes locked together with `std::scoped_lock(a, b)` or in a
consistent order.
- No callbacks, I/O, or user code invoked while holding a lock.
- Condition variables wait with a predicate (spurious wakeups).
- `std::thread` is joined or detached before destruction; prefer `std::jthread`
(C++20).
- `std::async` futures: the returned future's destructor blocks; don't discard
it by accident.
- Atomics: `memory_order_relaxed` only when no other memory depends on the
value.
- Lambdas passed to threads don't capture locals by reference that may die
first.
- Static local init is thread-safe; other lazy init (double-checked locking)
needs atomics or `std::call_once`.
- Coroutines: references/pointer parameters may dangle after the first
suspension.