sota-api-design
State-of-the-art API design and audit guidance (2026) covering REST/HTTP, GraphQL, gRPC, WebSockets/SSE/realtime, webhooks, versioning/evolution, and API…
Master router for the SOTA engineering skills library. Use this skill whenever the user asks to build, design, implement, refactor, harden, optimize, review, or audit an application, service, or codebase and the request spans more than one domain — or when you are unsure which
$ npx -y skills add martinholovsky/SOTA-skills --skill sota --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/sotaContext preview
The summary Claude sees to decide when to auto-load this skill.
Master router for the SOTA engineering skills library. Use this skill whenever the user asks to build, design, implement, refactor, harden, optimize, review, or audit an application, service, or codebase and the request spans more than one domain — or when you are unsure which
name: sota description: >- Master router for the SOTA engineering skills library. Use this skill whenever the user asks to build, design, implement, refactor, harden, optimize, review, or audit an application, service, or codebase and the request spans more than one domain — or when you are unsure which specific sota-* skill applies. Also use when working on a codebase you do not own: reviewing a pull request or diff, responding to code review, evaluating someone else's patch, or preparing an upstream contribution — including mid-session, once you are already reading source, a diff, or CI config. It maps the task (build or audit mode) to the right domain and language skills (Rust, Go, C/C++, JVM, Python, JS/TS, .NET/C#, PHP, Ruby). Trigger keywords: SOTA, best practices, audit my code, security review, compliance, hardening, prod readiness, code quality, pull request, PR review, review comment, maintainer feedback, patch, diff, upstream, contribute, merge request.
A library of 41 domain skills, each with a `SKILL.md` entry point and a `rules/` folder of focused rule files (each under 500 lines). Each skill works in two modes:
canonical format below (it supersedes any per-skill variant): `file:line | rule violated | severity (Critical/High/Medium/Low/Info) | effort (trivial/small/medium/large) | fix`. **Severity resolves the same way:** `rules/03` §1 is the floor. A skill's own Critical/High/Medium/Low table may refine it *within that skill's domain* and must say that it is doing so; an unscoped per-skill table does not outrank the model, and a cross-domain roll-up is always rated on it.
Read only what the task needs: first the relevant skill's `SKILL.md` (it has its own index of `rules/` files with "read this when..." guidance), then only the rules files that match the code in front of you. Never load all skills at once.
0. **Validate every claim — mandatory.** No claim ships unvalidated, in any mode. A claim is validated only by checking it against a primary source: code read in full context at the pinned commit (for findings), official docs/release notes/advisories fetched at use time (for versions, specs, CVEs, tool capabilities), or a reproduced behavior (for bugs). Training data, plausibility, and "the rules file says so" do not validate anything. **A retraction is a claim and carries the same burden.** Withdrawing a statement needs the primary source that falsifies it, exactly as asserting it did; *"I was probably wrong"* is not a finding, and it costs the reader a true statement. A wrong claim gets challenged because it asserts something; a wrong retraction sounds like humility and is waved through — **nobody audits a confession**. Three tells of over-correcting: it arrives within a message or two of an *unrelated* correction; it withdraws something you have evidence on screen for; it is a general loss of confidence rather than a named false proposition and what falsifies it. **The moment after being corrected is the highest-risk moment in a session** — the next claim needs *more* evidence, in **both** directions. Conceding everything is not the opposite of overconfidence; it is overconfidence about your own unreliability. What cannot be validated is either omitted or explicitly marked "needs verification" — never asserted. **Before measuring, state what result would falsify the claim.** If no obtainable result could, the experiment is theater — read the code path that decides the behavior instead of benchmarking its symptoms. 1. **Freshness first.** The library's version/spec/regulation facts were web-verified as of the last refresh (see README). Never trust them — or training data — for anything version- or CVE-sensitive at use time: re-verify current releases and advisories before pinning or recommending — **and equally when you are merely *measuring* a third party's artifact**, which does not feel like a version decision and is where this rule is skipped. **Record the end-of-life date beside the version**, every time. A version can be recalled fluently and with no felt uncertainty; an EOL date effectively cannot, so requiring it forces the lookup that "check this is current" does not. A version with no EOL date beside it has not been looked up. Detail, and what to do with a lapsed one: `sota-devsecops` rules/03 §3.9. 2. **Stop-and-ask on security-relevant decisions.** When a choice materially affects security posture (authn/z model, crypto primitive, trust boundary, secrets handling, network exposure), present the options with a recommendation and ask before proceeding. Do not silently pick. 3. **Evidence over vibes.** Every audit finding cites file:line, maps to a standard (CWE, OWASP, MITRE ATT&CK/ATLAS) where one applies, and proposes a concrete fix. Uncertain findings are marked "needs verification", never asserted. Borderline severities state the deciding assumption ("High if internet-facing; Medium if internal-only"). **A negative claim needs more proof than a positive one**: "no instances of X" and "I only looked one way" are indistinguishable from the outside, so before asserting absence, widen the search and use a second independent method — and state the search you actually ran. **"Independent" means a different failure mode, not a different phrasing.** Field-reported: two searches of the same tree agreed on zero and both were wrong, because both were `grep -r` over a directory of symlinks, which `-r` does not follow. The only check that works is a **positive control** — search for something you have already seen there, in the same invocation; if the control re
Make your AI coding assistant build and audit like your most senior engineer. Your assistant is brilliant — it just doesn't know your standards, and it forgets the ones it does know as the task grows long.
Repo: martinholovsky/SOTA-skills
State-of-the-art API design and audit guidance (2026) covering REST/HTTP, GraphQL, gRPC, WebSockets/SSE/realtime, webhooks, versioning/evolution, and API…
State-of-the-art software and system architecture rules (2026) for both building and auditing. Use when designing, building, refactoring, or extending system…
State-of-the-art rules for writing and auditing asynchronous and concurrent code across runtimes (Python asyncio, JS/Node, Go, Rust, JVM). Use when building…
State-of-the-art C and C++ engineering rules (2026 baseline) that Claude applies when writing or auditing C/C++. Covers modern idioms (RAII, value semantics,…
State-of-the-art CLI and developer-tool UX guidance (2026) covering command and flag design, output and interaction (stdout/stderr, --json, TTY detection, exit…
State-of-the-art cloud infrastructure architecture (2026). Applies when designing, building, or auditing cloud environments on AWS, GCP, or Azure —…