$npx -y skills add apache/magpie --skill list-skillsPrint a human-readable index of every skill in this repository, grouped by family prefix (pr-management, security, setup, …) with each skill's name and the first sentence of its description. The listing is generated on every run from the live .claude/skills/*/SKILL.md f
| 1 | <!-- SPDX-License-Identifier: Apache-2.0 |
| 2 | https://www.apache.org/licenses/LICENSE-2.0 --> |
| 3 | |
| 4 | <!-- Placeholder convention (see AGENTS.md#placeholder-convention-used-in-skill-files): |
| 5 | <project-config> → adopting project's `.apache-magpie/` directory |
| 6 | <tracker> → value of `tracker_repo:` in <project-config>/project.md |
| 7 | <upstream> → value of `upstream_repo:` in <project-config>/project.md |
| 8 | <framework> → `.apache-magpie/apache-magpie` in adopters; `.` in |
| 9 | the framework standalone --> |
| 10 | |
| 11 | # list-skills |
| 12 | |
| 13 | Print a human-readable index of the skills in this repository. |
| 14 | The index is generated on every run from the live |
| 15 | `.claude/skills/*/SKILL.md` files — there is no cached copy to |
| 16 | keep in sync. The skill exists for humans (newcomers reading the |
| 17 | repo, maintainers checking what is available); agents route |
| 18 | invocations via the same frontmatter the script reads, so this |
| 19 | skill is purely informational. |
| 20 | |
| 21 | --- |
| 22 | |
| 23 | ## Prerequisites |
| 24 | |
| 25 | - Python 3.9+ on `PATH` with `PyYAML` importable. The framework's |
| 26 | Python toolchain already meets this; no extra setup. |
| 27 | |
| 28 | --- |
| 29 | |
| 30 | ## Step 1 — Run the listing script |
| 31 | |
| 32 | Run the bundled script and present its output to the user |
| 33 | verbatim: |
| 34 | |
| 35 | ```bash |
| 36 | python3 .claude/skills/magpie-list-skills/scripts/list_skills.py |
| 37 | ``` |
| 38 | |
| 39 | For a layout that puts each description on its own indented line |
| 40 | (easier to read when descriptions are long), pass `--verbose`: |
| 41 | |
| 42 | ```bash |
| 43 | python3 .claude/skills/magpie-list-skills/scripts/list_skills.py --verbose |
| 44 | ``` |
| 45 | |
| 46 | The script: |
| 47 | |
| 48 | - walks `.claude/skills/*/SKILL.md` relative to its own location; |
| 49 | - parses each skill's YAML frontmatter for `name` + `description`; |
| 50 | - groups skills by family prefix (the first hyphen-separated |
| 51 | token, with `pr-management` recognised as a two-token family — |
| 52 | see [`KNOWN_TWO_TOKEN_FAMILIES`](scripts/list_skills.py)); |
| 53 | - prints each skill with the first sentence of its description. |
| 54 | |
| 55 | When a new multi-token family appears (e.g. a hypothetical |
| 56 | `docs-build-*`), add the prefix to `KNOWN_TWO_TOKEN_FAMILIES` in |
| 57 | [`scripts/list_skills.py`](scripts/list_skills.py); otherwise the |
| 58 | new skills land under the single-token head. |
| 59 | |
| 60 | --- |
| 61 | |
| 62 | ## Step 2 — Hand the output to the user |
| 63 | |
| 64 | Quote the script output back to the user as-is. Do not |
| 65 | paraphrase, summarise, or re-order — the value of this skill is |
| 66 | that the listing is the canonical, deterministic view of what |
| 67 | exists. If the user asks for more detail on a specific skill, |
| 68 | read that skill's `SKILL.md` and answer from it. |
| 69 | |
| 70 | --- |
| 71 | |
| 72 | ## Hard rules |
| 73 | |
| 74 | - **Read-only.** This skill never edits, creates, or deletes |
| 75 | files. It only reads `SKILL.md` files under `.claude/skills/`. |
| 76 | - **No paraphrasing.** Always present the script output verbatim. |
| 77 | Paraphrasing reintroduces the staleness this skill exists to |
| 78 | prevent. |
| 79 | |
| 80 | --- |
| 81 | |
| 82 | ## References |
| 83 | |
| 84 | - [`scripts/list_skills.py`](scripts/list_skills.py) — the |
| 85 | listing script Step 1 invokes. |
| 86 | - [`AGENTS.md`](../../AGENTS.md#reusable-skills) — the |
| 87 | framework's "Reusable skills" section, which explains the |
| 88 | `.claude/skills/` layout and frontmatter convention. |
| 89 | - [`write-skill`](../write-skill/SKILL.md) — sibling skill for |
| 90 | authoring a new skill. Use it when the listing reveals a gap |
| 91 | that warrants a new entry. |