Skip to main content

rfc-review-compatibility

Deep-dive review of a technical RFC focused on change-management concerns — API/ABI/wire/on-disk compatibility, version skew, migration tooling, rollout mechanics, reversibility, and consumer impact. Produces a written review report. Use when an RFC touches a stable surface (public API, plugin ABI, on-disk or wire format), or as a follow-up pass after `/rfc-review` flags compatibility as a deeper concern.

Jump to install

Source facts

Repository
ROCm/rocm-libraries
Last source activity
June 5, 2026 at 20:52
Detected SKILL.md language
English
Stars
400
Forks
367

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
5 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
rfc-review-compatibility
description
Deep-dive review of a technical RFC focused on change-management concerns — API/ABI/wire/on-disk compatibility, version skew, migration tooling, rollout mechanics, reversibility, and consumer impact. Produces a written review report. Use when an RFC touches a stable surface (public API, plugin ABI, on-disk or wire format), or as a follow-up pass after `/rfc-review` flags compatibility as a deeper concern.
argument-hint
[<path-or-pr>]
allowed-tools
Read, Grep, Glob, Bash, WebFetch
# RFC Review — Compatibility & Change-Management Deep Dive Focused lens on a single RFC. Where the umbrella `/rfc-review` gives change management one paragraph among five, this skill spends the entire pass on it. A reader of the report should be able to answer: - If we ship this and an N-1 consumer hits the new code, what happens? - If we ship it and discover it's wrong tomorrow, what is the rollback? - Who depends on the surface we're changing, and have they been consulted? ## Usage ``` /rfc-review-compatibility # Find the RFC on the current branch and review it /rfc-review-compatibility docs/rfcs/my-rfc.md # Review a specific RFC file ``` Can be invoked standalone, or as a follow-up when `/rfc-review` recommends a deeper compat pass. ## When to invoke this skill - The RFC proposes a change to a stable surface: public API headers, plugin ABI, exported symbols, wire protocol, on-disk format, configuration schema. - The RFC introduces or modifies a shim, compatibility layer, or version-bridging code. - The RFC describes a deprecation, replacement, or migration of an existing feature. - The umbrella `/rfc-review` ran and flagged compatibility as the area needing a deeper pass. Do NOT invoke for greenfield code with no existing consumers, or for pure internal refactors with no surface exposed to downstreams — the lens has nothing to bite on. ## Workflow ### Step 1 — Locate the RFC In order of preference: 1. Argument path, if provided. 2. PR/branch context: `git log -1 --name-only` and look for added/modified `.md` files under `docs/`, `rfcs/`, `design/`, or paths matching `*rfc*`. 3. If still ambiguous, ask the user for the path. Do not guess across multiple candidates. ### Step 2 — Read the RFC and surrounding surface - Read the full RFC end-to-end. Do not skim — compat issues hide in the parts that look like boilerplate. - Identify the **surface(s) being changed**: which headers, which exported symbols, which plugin entry points, which formats. Use Grep/Glob to confirm what currently exists. - Identify **the current consumers** of that surface where possible. For a shim, that means: who calls the old API today? For a plugin interface, who ships plugins against it? - Note the RFC's own claims about compatibility, migration, rollout, and reversibility — these are what you are evaluating. ### Step 3 — Walk the focused checklist See `prompt.md` for the full per-area checklist. The sub-areas: 1. **Compatibility kinds** — API, ABI, behavior, wire/on-disk format. 2. **Version skew** — client/server, plugin/host, build-time vs runtime. 3. **Migration** — tooling, deprecation timeline, communication. 4. **Rollout** — feature flags, staged rollout, dark-launch. 5. **Reversibility** — rollback story, forward-compat for the rollback. 6. **Consumer/dependency impact** — who is affected, have they been consulted. 7. **Domain hooks** — C++ ABI, plugin interface stability, CUDA/HIP/cuDNN-style API evolution. For each sub-area produce: **strengths** (skip if none), **concerns** (graded `blocking` / `non-blocking`), **questions for the author**. A sub-area with nothing to say is one line — do not pad. ### Step 4 — Ask the user how to deliver the report Before writing, ask the user how they want the report delivered. Offer these options: 1. **On disk next to the RFC** — saved as `<rfc-dir>/review-compat-<YYYY-MM-DD>-<reviewer>.md`. 2. **Inline in chat only** — printed in the conversation, nothing written to disk. 3. **Both** — written to disk and printed inline. Skip this prompt only if the user already stated a preference in the current turn (e.g. "just print it" or "save the review to ..."), in which case respect that and note the choice in your reply. ### Step 5 — Synthesize the report Use `assets/templates/review-report.md` as the structure. Lead with the verdict and blocking concerns; put per-area detail underneath. If writing to disk, use the git user name (`git config user.name`) as `<reviewer>` and tell the user the path when done. ### Step 6 — Recommend deeper passes If the compat review surfaces concerns that need a different specialist (e.g. operational/build concerns, security/threat model), name them at the end of the report. This skill does not try to be the umbrella — it owns one lens deeply. ## Output rules - **No padding.** A sub-area with nothing to say is one line: "Reversibility — no concerns." Do not invent issues. - **Cite the RFC.** Every concern references the specific section/line, so the author can find it. - **Separate blocking from non-blocking.** Blocking means "I would not approve without this resolved." Use sparingly. - **Ask, don't assert.** When a section is ambiguous, ask a question rather than critique a guess. - **Verdict at the top.** One of: `approve`, `approve-with-comments`, `needs-revision`, `block`. One-sentence justification. - **Be specific to the surface.** "ABI concerns" is not a finding; "adding a virtual method to `cudnnHandle` breaks vtable layout for existing plugins" is. ## Examples ``` /rfc-review-compatibility # → finds the RFC on the current branch, runs the compat deep dive /rfc-review-compatibility docs/rfcs/0042-plugin-v2.md # → reviews a specific RFC with the compat lens ```
View on GitHub