Skip to main content

amdsmi-interrogate

Use whenever amd-smi work begins from a design — a Confluence Feature Design, a Jira/SWDEV ticket, a driver hand-off, or a user description. Reconciles the design against what the code actually does, questions it adversarially, and produces an approved spec. This is the single front door to any feature or behavior change.

跳到安装

来源信息

仓库
ROCm/rocm-systems
最近来源活动
2026年6月17日 14:24
检测到的 SKILL.md 语言
英语
星标
497
分支
406

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
amdsmi-interrogate
description
Use whenever amd-smi work begins from a design — a Confluence Feature Design, a Jira/SWDEV ticket, a driver hand-off, or a user description. Reconciles the design against what the code actually does, questions it adversarially, and produces an approved spec. This is the single front door to any feature or behavior change.
# Interrogate — amd-smi The front door for any feature or behavior change. A design arrives from somewhere upstream; your job is to **turn it into an implementable, contradiction-free spec** before a line of code is written. amd-smi work starts from a design, and this skill handles it — including the rare case where the design must be generated from scratch. **Announce at start:** "I'm using the `amdsmi-interrogate` skill." **The governing principle:** *the design is a hypothesis; the code is ground truth.* amd-smi Feature Designs routinely drift from what actually shipped. Never trust a design's claim about current behavior — verify it against the source, and treat every gap between the two as something to resolve, not assume. <HARD-GATE> No source edits, no wrapper/CLI bindings, no implementation skill until a written spec exists and the user has explicitly approved it. Even a "trivial" change gets a spec — three sentences is fine, but it gets written and approved. </HARD-GATE> ## Knowledge Lives Here (agent-owned, not public docs) - **Glossary:** `.claude/context/CONTEXT.md` — canonical domain terms. The only agent-owned file checked into the repo. - **Specs:** ephemeral. Write to `${TMPDIR:-/tmp}/amdsmi-agent-specs/YYYY-MM-DD-<topic>-design.md`. Specs are scratch artifacts for the current session's hand-off chain; they are deliberately **not** committed and disappear with the temp dir. ## 1. Source the Design Pull the upstream material before asking the user anything you could read yourself: - **Confluence AMDSMI space** — via the `confluence-atlassian-cloud` MCP server when available. Designs live under the AMD SMI space, typically the **AMD SMI Feature Designs** page tree (`amd.atlassian.net/wiki/spaces/AMDSMI/`). Treat these as the upstream intent — and as possibly stale. - **Jira / SWDEV ticket** — via `jira-atlassian-amd-hub` when available. - **Driver hand-off or user prose** — whatever was pasted. If the MCP servers aren't reachable, ask the user to paste the page/ticket rather than guessing its contents. Record the Confluence page and/or ticket id in the spec for traceability. Read `CONTEXT.md` first for any pinned terms the design uses. If there is genuinely **no upstream design**, switch to generate mode: walk the user through the problem one question at a time, propose 2–3 approaches with a recommendation, and converge on a design — *then* interrogate it with the rest of this skill. ## 2. Establish Ground Truth Before interrogating, read the actual code in every cascade layer the design touches (`project-layout` rule maps them: header → `amd_smi.cc` → wrapper → interface → CLI → docs). Write down where the design and the code **already disagree** — wrong return codes, renamed fields, a flag the design assumes but the code doesn't have. These drift points are your sharpest interrogation material. ## 3. Interrogate (one question at a time) Adversarial by design. Ask **one** question, wait for the answer, then follow the dependency it exposes. Give your own recommended answer each time. If the code can answer it, read the code instead of asking. Attack along these axes: - **Drift** — "The design says this returns a partial value; `amd_smi.cc` returns `AMDSMI_STATUS_INVAL`. Which is the intended behavior?" - **Necessity / scope** — Is each piece required by the ticket, or gold-plating? What's the smallest version that satisfies the upstream need? - **Terminology** — Pin overloaded words to one meaning, checked against `CONTEXT.md` ("device" → BDF, processor handle, or socket?). Flag glossary conflicts. - **Cascade reach** — Does the value actually have to surface at the CLI / JSON layer, or stop deeper? Which layers genuinely change? - **Edge cases** — Invent concrete scenarios (partitioned GPU, missing sysfs node, multi-socket) that force precision. If the request spans multiple independent subsystems, stop and decompose — each gets its own intake → spec → plan. ## 4. Pin the amd-smi Specifics The spec is not done until every row is answered: | Concern | Question | |---------|----------| | **Cascade impact** | Which layers change: header → `amd_smi.cc` → wrapper → interface → CLI → docs | | **Backward compat** | Public C API is a contract — additions are safe, signature changes break ABI | | **Error path** | New `amdsmi_status_t`? Mapping to `AmdSmiException`? | | **Test plan** | Which suites: C++ GTest, Python unit/integration, CLI | | **Hardware dependency** | Requires GPU? Specific ASIC? Partition mode? Test environment? | | **Build / packaging** | New CMake option? New install file? RPM + DEB both? | | **Changelog** | Entry for `CHANGELOG.md` under the next version | ## 5. Record What You Learned - **`CONTEXT.md`** — add a resolved term the moment it's pinned; don't batch. - **Spec** — write to `${TMPDIR:-/tmp}/amdsmi-agent-specs/YYYY-MM-DD-<topic>-design.md`, including the upstream source link and any design-vs-code drift you reconciled. `mkdir -p` the directory first. Self-review (placeholders, contradictions, scope, ambiguity, cascade completeness), fix inline, then ask the user to approve. The spec is session-scoped scratch; do not commit it. ## 6. Hand Off After the user approves the spec, invoke `writing-plans`. Invoke no other skill from here, and write no production code. ## Knowledge-Extraction Mode When there's no design and the user just wants to build out `CONTEXT.md`, run steps 2 and 3 only: interrogate a subsystem, cross-check against the code (and the AMDSMI Confluence space for upstream intent), and record resolved terms as you go. ## Red Flags — STOP - Trusting the design's description of current behavior without reading the code - "Too simple to need a spec" - Jumping to "what file do I edit" - Bundling multiple questions into one message - Proposing one approach (in generate mode) without alternatives - Skipping the user approval gate
在 GitHub 查看