You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+32-4Lines changed: 32 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,16 +17,17 @@ Best for cross-cutting skills that do not have a natural product home.
17
17
1. Copy an existing skill folder under `skills/` as a starting point and rename it.
18
18
2. Update the `SKILL.md` frontmatter so the `name` and `description` clearly explain *what* the skill does and *when* an agent should reach for it.
19
19
3. Add the supporting scripts, templates, and reference docs your instructions point to. Keep skills focused: one well-scoped task per skill is better than one mega-skill.
20
-
4. Register the skill in `.claude-plugin/marketplace.json` with a human-readable description (the marketplace description is for humans browsing the catalog; the `SKILL.md` description is what the agent uses for routing).
21
-
5. Regenerate the Cursor manifest so it tracks the new skill:
20
+
4. Add a `skill-card.md` at the skill root with `## Description`, `## Owner`, and `## License` sections. This is the skill's governance card; see [Skill cards](#skill-cards) and [docs/skill-cards.md](docs/skill-cards.md).
21
+
5. Register the skill in `.claude-plugin/marketplace.json` with a human-readable description (the marketplace description is for humans browsing the catalog; the `SKILL.md` description is what the agent uses for routing).
22
+
6. Regenerate the Cursor manifest so it tracks the new skill:
./.github/scripts/check.sh # validates every SKILL.md and that manifests are in sync
28
29
```
29
-
7. Open a pull request. The `validate` GitHub Actions workflow runs `./.github/scripts/check.sh` and must pass before merge. See [Validating locally](#validating-locally) for the full set of enforced rules.
30
+
8. Open a pull request. The `validate` GitHub Actions workflow runs `./.github/scripts/check.sh` and must pass before merge. See [Validating locally](#validating-locally) for the full set of enforced rules.
30
31
31
32
### Path B: Skills authored in a product repository
32
33
@@ -114,6 +115,7 @@ Link from `SKILL.md` directly to reference files. Do not chain references throug
@@ -153,6 +155,30 @@ Pre-made scripts beat generated code: more reliable, fewer tokens, consistent ac
153
155
- **Make execution intent explicit.** Write *"Run `analyze.py`..."* (execute) or *"See `analyze.py` for the algorithm"* (read), never both.
154
156
- **Use fully qualified MCP tool names.** `ServerName:tool_name`, e.g. `BigQuery:bigquery_schema`. Bare names fail when multiple servers are registered.
155
157
158
+
## Skill cards
159
+
160
+
Every skill ships a `skill-card.md` at its root: a short, human-facing governance record that tells a reviewer what the skill does, who owns it, and under what license it ships, without reading the source. It is not loaded by the agent.
161
+
162
+
The AMD card is intentionally minimal. Three required sections, each a `##` heading with non-empty body text:
163
+
164
+
```markdown
165
+
# Skill Card
166
+
167
+
## Description
168
+
169
+
<one sentence: what the skill does, for whom>
170
+
171
+
## Owner
172
+
173
+
<team or org accountable for maintenance, e.g. AMD>
174
+
175
+
## License
176
+
177
+
<SPDX identifier or link, e.g. MIT>
178
+
```
179
+
180
+
The validator fails any skill whose card is missing or whose required sections are absent or empty. For the full guide, examples, and how federated skills get cards, see [docs/skill-cards.md](docs/skill-cards.md).
Copy file name to clipboardExpand all lines: README.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,12 +39,15 @@ A skill is a self-contained folder that bundles everything an agent needs to per
39
39
skills/
40
40
rocm-doctor/
41
41
SKILL.md
42
+
skill-card.md
42
43
scripts/
43
44
references/
44
45
```
45
46
46
47
When an agent decides a skill is relevant (or you invoke it explicitly), it loads that `SKILL.md` and follows the instructions inside. Descriptions stay in context cheaply; the full body of a skill only loads when the task actually matches.
47
48
49
+
Every skill also ships a `skill-card.md`: a short, human-facing governance card (Description, Owner, License) that tells a reviewer what the skill is and who stands behind it without reading the source. See [docs/skill-cards.md](docs/skill-cards.md).
50
+
48
51
## Why a skill, not a doc?
49
52
50
53
Documentation describes an API surface: every flag, every option, neutral by design. A skill encodes the opinionated path: which flags, which container image, which `gfx` target, which environment variables, in what order. It captures the decisions a senior AMD engineer makes without thinking, in a form the agent can apply consistently across teams and repositories.
@@ -112,6 +115,7 @@ This repo also acts as an **incubator**: a skill can start under `skills/` to it
Every skill in this catalog ships a `skill-card.md` next to its `SKILL.md`. The card is a short, human-facing governance record: it tells a reviewer *what* the skill is, *who* owns it, and *under what license* it ships, without making them read the source first.
4
+
5
+
A `SKILL.md` is written for the agent (routing and instructions). A skill card is written for the people deciding whether to trust, install, or maintain the skill.
6
+
7
+
## Required sections
8
+
9
+
The AMD card is intentionally minimal. Three sections are required, each a top-level `##` heading with non-empty body text:
10
+
11
+
| Section | Question it answers |
12
+
| --- | --- |
13
+
| Description | What does this skill do, in one sentence? |
14
+
| Owner | Who is accountable for maintaining it? |
15
+
| License | What license governs its use and redistribution? |
16
+
17
+
The validator (`.github/scripts/validate_skills.py`) fails any skill whose card is missing or whose required sections are absent or empty.
18
+
19
+
## Template
20
+
21
+
Copy this into `skills/<your-skill>/skill-card.md`:
22
+
23
+
```markdown
24
+
# Skill Card
25
+
26
+
## Description
27
+
28
+
<one sentence: what the skill does, for whom>
29
+
30
+
## Owner
31
+
32
+
<team or org accountable for maintenance, e.g. AMD>
33
+
34
+
## License
35
+
36
+
<SPDX identifier or link, e.g. MIT>
37
+
```
38
+
39
+
## Writing a good Description
40
+
41
+
Keep it to one sentence that states the outcome, matching the marketplace blurb. Avoid restating internal mechanics (that belongs in `SKILL.md`).
42
+
43
+
```
44
+
Good: Diagnose why ROCm, PyTorch, or llama.cpp isn't working on an AMD GPU
45
+
and propose the next step.
46
+
Bad: Runs a series of Python scripts that parse logs and apply regex rules.
47
+
```
48
+
49
+
## Federated skills
50
+
51
+
Skills imported from a product repository (see [`.github/scripts/sources.yml`](../.github/scripts/sources.yml)) are vendored wholesale, so a card authored here would be overwritten on the next import. If upstream ships its own `skill-card.md`, it is kept as-is; otherwise the importer synthesizes a minimal card from the source metadata (description, owner repo, and license). To customize a federated skill's card, add a `skill-card.md` to the skill folder in the upstream repository.
52
+
53
+
## Out of scope (for now)
54
+
55
+
The card stays at Description, Owner, and License. Evaluation results, benchmark data, risk statements, and signing identifiers are not part of the AMD card today; sections can be added later without breaking the validation gate.
Perform GPU kernel correctness and performance evaluation and LLM inference benchmarking with Magpie (HIP/CUDA/PyTorch kernels, vLLM/SGLang benchmarks, TraceLens, and torch-trace gap analysis).
6
+
7
+
## Owner
8
+
9
+
AMD-AGI (federated from [AMD-AGI/Magpie](https://github.com/AMD-AGI/Magpie))
Diagnose why ROCm, PyTorch, or llama.cpp isn't working on an AMD GPU by matching the symptom against a fixed list of known misconfigurations and proposing the next step.
0 commit comments