Extend Claude with skills changedskills
Upstream edited this page at 28 Oct 2026 19:31 UTC, give or take a minute or two: the time comes from Anthropic’s own sitemap rather than from a commit. This site recorded the change at 28 Oct 2026 19:37 UTC.
Upstream edited
Recorded here
Lines+11added
Lines−4removed
From line
391
where the diff opens
First seen
14 Aug 2026
this site's first read of the page
Recorded edits91to this page, all time
#### When no shell command was run ### Angle brackets in a skill description show as `<` and `>` #### Control characters in injected commands
The whole hunk
from line 391, old and new numbered
/
from line 391
391391| Field | Required | Description |
392392| :- | :- | :- |
393393| `name` | No | Command name shown in the `/` menu. Defaults to the directory name. See [How a skill gets its command name](#how-a-skill-gets-its-command-name) for how the field interacts with the name you type to invoke the skill. |
394| `description` | Recommended | What the skill does and when to use it. Claude uses this to decide when to apply the skill. If omitted, uses the first non-empty line of the markdown content. Put the key use case first: the combined `description` and `when_to_use` text is truncated at 1,536 characters in the skill listing to reduce context usage. |
394| `description` | Recommended | What the skill does and when to use it. Claude uses this to decide when to apply the skill. If omitted, uses the first non-empty line of the markdown content. Put the key use case first: the combined `description` and `when_to_use` text is truncated at 1,536 characters in the skill listing to reduce context usage. Angle brackets in the text [show as `<` and `>`](#angle-brackets-in-a-skill-description). |
395395| `when_to_use` | No | Additional context for when Claude should invoke the skill, such as trigger phrases or example requests. Appended to `description` in the skill listing and counts toward the 1,536-character cap. |
396396| `argument-hint` | No | Hint shown during autocomplete to indicate expected arguments. Example: `[issue-number]` or `[filename] [format]`. |
397397| `arguments` | No | Named positional arguments for [`$name` substitution](#available-string-substitutions) in the skill content. Accepts a space-separated string or a YAML list. Names map to argument positions in order. |
from line 774
774774
775775With the default `bash` shell, append `|| true` to any other command you expect to exit non-zero. A check script that exits 1 when it finds problems is one example.
776776
777#### Control characters in injected commands
777#### When no shell command was run
778778
779`No shell command in <name> was run` means one of the file's `!` commands contains a raw control character other than tab or newline, so none of them runs. See [how to find and remove the character](https://code.claude.com/docs/en/errors.md#no-shell-command-was-run).
779`No shell command in <name> was run` means one of its shell commands contains a character the tool doesn't accept. To find and remove the character, see the [error reference](https://code.claude.com/docs/en/errors.md#no-shell-command-was-run).
780780
781781#### Permission checks on injected commands
782782
from line 1224
12241224The Skills row in `/context` reports the size of the listing after the budget is applied, so it matches what the model receives. Before v2.1.196, the row counted the full text of every description and could show a value several times larger than the configured budget.
12251225
12261226To raise the budget, set the [`skillListingBudgetFraction`](https://code.claude.com/docs/en/settings-reference#skilllistingbudgetfraction) setting (for example, `0.02` = 2%) or the `SLASH_COMMAND_TOOL_CHAR_BUDGET` environment variable to a fixed character count. To free budget for other skills, set low-priority entries to `"name-only"` in [`skillOverrides`](#override-skill-visibility-from-settings) so they list without a description. You can also trim the `description` and `when_to_use` text at the source: put the key use case first, since each entry's combined text is capped at 1,536 characters regardless of budget. The cap is configurable with [`skillListingMaxDescChars`](https://code.claude.com/docs/en/settings-reference#skilllistingmaxdescchars).
1227
1228### Angle brackets in a skill description show as `<` and `>`
1229
1230Claude Code displays `<` and `>` in the `description` and `when_to_use` fields as `<` and `>`. To show a placeholder such as `<branch>`, use square brackets or [`argument-hint`](#frontmatter-reference):
1231
1232* **Square brackets**: replace `<branch>` with `[branch]`, which displays as typed
1233* **`argument-hint`**: move the placeholder to a new `argument-hint: <branch>` line. It shows after the command name. If you also upload the skill to claude.ai or the Skills API, [check whether `argument-hint` is accepted there](#using-skill-frontmatter-outside-claude-code) first.
12271234
12281235### Personal skills disappeared
12291236
No line in this hunk matches that.