Skip to content

Commit 0abddd7

Browse files
authored
docs: clarify how to install shiny's bundled Agent Skills (#2447)
1 parent 78b0d97 commit 0abddd7

4 files changed

Lines changed: 23 additions & 14 deletions

File tree

.claude/references/agent-skills.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ specification](https://agentskills.io/specification). Its `SKILL.md` is a
66
grouped router: a short index of topics, each pointing at a
77
`references/<topic>.md` file with the actual instructions. It is **package
88
data**: it ships in the wheel and is discovered by installers such as
9-
[library-skills](https://library-skills.io) (which symlinks it into a
10-
project's `.agents/skills/` or `.claude/skills/`). The `shiny skills
9+
[library-skills](https://library-skills.io), which a user runs from *their*
10+
project (not from a clone of this repo) to symlink the skills of their
11+
installed dependencies into `.agents/skills/` or `.claude/skills/`. The `shiny skills
1112
list|path` CLI subcommands (implemented in `shiny/_main/_skills.py`) are a
1213
zero-dependency way to inspect it: `list` shows each bundled skill's name and
1314
description, and `path <name>` prints the skill's directory so its `SKILL.md`

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1515

1616
### Improvements
1717

18+
* The README and the `shiny skills` CLI help now explain that [`library-skills`](https://library-skills.io) must be run from your own project directory, since it installs the bundled Agent Skills of the packages that project has installed. The previous wording left that precondition implicit, so running the command from an empty directory or from a clone of py-shiny silently installed nothing. (#2447)
19+
1820
* Navsets created with an `id` (e.g. `ui.navset_tab(id="tabs")`) now use that `id` as their `data-tabsetid`, so their tab panes get stable `tab-tabs-0` style DOM ids instead of ones built from a random integer. This makes the rendered markup reproducible across renders and easier to target from custom CSS and JavaScript. Navsets without an `id`, and `ui.nav_menu()` dropdowns, keep the random ID. (Thanks, @pevolution-ahmed!) (#2410)
1921

2022
### Bug fixes

README.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,17 +40,21 @@ You can create and run your first application with `shiny create`, the CLI will
4040

4141
### Agent Skills
4242

43-
The `shiny` package ships bundled [Agent Skills](https://agentskills.io) — reference docs that teach coding agents (Claude Code, Cursor, and others) how to build, style, test, and debug Shiny for Python apps using shiny's public APIs. They are installed with the package, so once `shiny` is a dependency of your project you can make the skills available to your agent with [`library-skills`](https://library-skills.io):
43+
Coding agents write better Shiny apps when they can read Shiny's own documentation. The `shiny` package ships bundled [Agent Skills](https://agentskills.io) for exactly that: reference material that teaches agents (Claude Code, Cursor, and others) how to build, style, test, and debug Shiny for Python apps using shiny's public APIs.
44+
45+
The skills ship inside the package, so installing `shiny` installs them too — you only need to point your agent at them. Run one of these from your project directory:
4446

4547
```sh
46-
# Claude Code (installs into .claude/skills):
48+
# Claude Code (installs into .claude/skills/):
4749
uvx library-skills --claude
4850

49-
# Standard .agents/skills location (add --copy on Windows):
51+
# Any other agent (standard .agents/skills/ location):
5052
uvx library-skills
5153
```
5254

53-
`library-skills` symlinks the packaged skill into your project, so it stays in sync when you upgrade `shiny`. See `shiny skills --help` for more details.
55+
Run this from your own project rather than a clone of this repository: [`library-skills`](https://library-skills.io) reads your project's dependencies and installs the skills bundled with the packages you actually have installed. It symlinks rather than copies, so the skills keep tracking your version of `shiny` as you upgrade. On Windows, add `--copy` if symlinks are unavailable.
56+
57+
To see what's bundled without installing anything, run `shiny skills list`.
5458

5559
## Development
5660

shiny/_main/_skills.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,17 +55,18 @@ def _find_skill(name: str) -> Path:
5555
5656
Agent Skills are reference docs that teach coding agents how to use shiny's
5757
public APIs (debugging, testing, etc.). They ship inside the package under
58-
`shiny/.agents/skills/`.
58+
`shiny/.agents/skills/`, so installing shiny installs them too.
5959
60-
To make these skills available to your coding agent, install them with
61-
`library-skills` (https://library-skills.io), which symlinks the packaged
62-
skill into your project so it stays in sync when you upgrade shiny:
60+
To make them available to your coding agent, run `library-skills`
61+
(https://library-skills.io) from your project directory. It reads your
62+
project's dependencies and symlinks the skills bundled with the packages you
63+
have installed, so they keep tracking your version of shiny as you upgrade:
6364
6465
\b
6566
uvx library-skills --claude # Claude Code (installs into .claude/skills)
66-
uvx library-skills # standard .agents/skills location
67+
uvx library-skills # any other agent (.agents/skills)
6768
68-
(add `--copy` on Windows).
69+
(add `--copy` on Windows if symlinks are unavailable).
6970
""",
7071
)
7172
def skills() -> None:
@@ -82,9 +83,10 @@ def skills_list() -> None:
8283
for skill_dir in skill_dirs:
8384
print(f"{skill_dir.name:<{width}} {_skill_description(skill_dir)}")
8485
print(
85-
"\nInstall these into your coding agent with `library-skills`:\n"
86+
"\nThese ship with the shiny package. To install them into your coding\n"
87+
"agent, run `library-skills` from your project directory:\n"
8688
" uvx library-skills --claude # Claude Code (.claude/skills)\n"
87-
" uvx library-skills # standard .agents/skills location\n"
89+
" uvx library-skills # any other agent (.agents/skills)\n"
8890
"See https://library-skills.io for details."
8991
)
9092

0 commit comments

Comments
 (0)