ai-agent-skills 3.5.0 → 3.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -53
- package/cli.js +3 -2
- package/lib/render-docs.cjs +22 -6
- package/package.json +2 -2
- package/skills.json +60 -60
- package/tui/index.mjs +9 -9
package/README.md
CHANGED
|
@@ -1,43 +1,51 @@
|
|
|
1
|
-
|
|
1
|
+
<h1 align="center">AI Agent Skills</h1>
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<p align="center">
|
|
4
|
+
<strong>My curated library of agent skills, plus the package to build your own.</strong>
|
|
5
|
+
</p>
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
<p align="center">
|
|
8
|
+
A smaller library for Claude Code, Codex, Cursor, and other <code>SKILL.md</code>-compatible agents.
|
|
9
|
+
</p>
|
|
6
10
|
|
|
7
11
|
<!-- GENERATED:library-stats:start -->
|
|
8
|
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
+
<p align="center">
|
|
13
|
+
<a href="https://github.com/MoizIbnYousaf/Ai-Agent-Skills"><img alt="GitHub stars" src="https://img.shields.io/github/stars/MoizIbnYousaf/Ai-Agent-Skills?style=for-the-badge&label=stars&labelColor=313244&color=89b4fa&logo=github&logoColor=cdd6f4" /></a>
|
|
14
|
+
<a href="https://www.npmjs.com/package/ai-agent-skills"><img alt="npm version" src="https://img.shields.io/npm/v/ai-agent-skills?style=for-the-badge&label=version&labelColor=313244&color=b4befe&logo=npm&logoColor=cdd6f4" /></a>
|
|
15
|
+
<a href="https://www.npmjs.com/package/ai-agent-skills"><img alt="npm total downloads" src="https://img.shields.io/npm/dt/ai-agent-skills?style=for-the-badge&label=downloads&labelColor=313244&color=f5e0dc&logo=npm&logoColor=cdd6f4" /></a>
|
|
16
|
+
<a href="https://github.com/MoizIbnYousaf/Ai-Agent-Skills#shelves"><img alt="Library structure" src="https://img.shields.io/badge/library-55%20skills%20%C2%B7%205%20shelves-cba6f7?style=for-the-badge&labelColor=313244&logo=bookstack&logoColor=cdd6f4" /></a>
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
<p align="center"><sub>8 house copies · 47 cataloged upstream</sub></p>
|
|
12
20
|
<!-- GENERATED:library-stats:end -->
|
|
13
21
|
|
|
14
|
-
|
|
22
|
+
<p align="center"><em>Picked, shelved, and maintained by hand.</em></p>
|
|
15
23
|
|
|
16
|
-
##
|
|
24
|
+
## Library
|
|
17
25
|
|
|
18
26
|
`ai-agent-skills` is a CLI library of agent skills for tools like Claude Code, Codex, Cursor, and other SKILL.md-compatible agents.
|
|
19
27
|
|
|
20
|
-
|
|
28
|
+
I organize it the way I work:
|
|
21
29
|
|
|
22
30
|
- Start with a shelf like `frontend` or `workflow`
|
|
23
|
-
-
|
|
24
|
-
- Keep provenance visible
|
|
25
|
-
- Keep
|
|
31
|
+
- Keep the set small enough to browse quickly
|
|
32
|
+
- Keep provenance visible
|
|
33
|
+
- Keep notes that explain why a skill is here
|
|
26
34
|
|
|
27
|
-
|
|
28
|
-
|
|
35
|
+
Use `skills.sh` for the broad ecosystem.
|
|
36
|
+
Use this repo for my kept set.
|
|
29
37
|
|
|
30
|
-
## Why
|
|
38
|
+
## Why Keep It
|
|
31
39
|
|
|
32
40
|
I launched this on December 17, 2025, before `skills.sh` existed and before the ecosystem had a clear default universal installer.
|
|
33
41
|
|
|
34
|
-
Originally this repo was that
|
|
42
|
+
Originally this repo was that installer. That part still matters.
|
|
35
43
|
|
|
36
|
-
|
|
44
|
+
I keep it because the library itself has become useful: shelves, provenance, and notes that make the curation legible.
|
|
37
45
|
|
|
38
|
-
##
|
|
46
|
+
## How It Works
|
|
39
47
|
|
|
40
|
-
|
|
48
|
+
Each skill here is either a house copy or a cataloged upstream pick.
|
|
41
49
|
|
|
42
50
|
- `House copies`
|
|
43
51
|
Local folders under `skills/<name>/`.
|
|
@@ -47,7 +55,7 @@ Every skill in the library is one of two things:
|
|
|
47
55
|
Metadata in `skills.json` with no local folder.
|
|
48
56
|
These stay upstream and install live from the source repo when you ask for them.
|
|
49
57
|
|
|
50
|
-
|
|
58
|
+
Upstream work stays upstream. That keeps the library lean.
|
|
51
59
|
|
|
52
60
|
## Quick Start
|
|
53
61
|
|
|
@@ -84,16 +92,16 @@ Default install targets:
|
|
|
84
92
|
|
|
85
93
|
Legacy agent-specific targets still work through `--agent <name>`.
|
|
86
94
|
|
|
87
|
-
##
|
|
95
|
+
## Browse
|
|
88
96
|
|
|
89
|
-
|
|
97
|
+
Most browsing starts in one of two places:
|
|
90
98
|
|
|
91
99
|
| View | Why it exists | Start here |
|
|
92
100
|
| --- | --- | --- |
|
|
93
101
|
| Shelves | The main way to understand the library: start with the kind of work, then drill into the small set of picks on that shelf. | `npx ai-agent-skills list` |
|
|
94
102
|
| Sources | The provenance view: see which publishers feed which shelves and branches. | `npx ai-agent-skills info frontend-design` |
|
|
95
103
|
|
|
96
|
-
|
|
104
|
+
The other views are still there. They are just secondary:
|
|
97
105
|
|
|
98
106
|
- `npx ai-agent-skills browse` for the TUI
|
|
99
107
|
- `npx ai-agent-skills list --collection my-picks` for a cross-shelf starter stack
|
|
@@ -102,7 +110,7 @@ Secondary surfaces still exist, but they are not the main taxonomy:
|
|
|
102
110
|
|
|
103
111
|
## Shelves
|
|
104
112
|
|
|
105
|
-
|
|
113
|
+
The shelves are the main structure.
|
|
106
114
|
|
|
107
115
|
<!-- GENERATED:shelf-table:start -->
|
|
108
116
|
| Shelf | Skills | What it covers |
|
|
@@ -118,22 +126,22 @@ The full map lives in [WORK_AREAS.md](./WORK_AREAS.md).
|
|
|
118
126
|
|
|
119
127
|
## Collections
|
|
120
128
|
|
|
121
|
-
Collections
|
|
129
|
+
Collections are smaller sets. Useful, but secondary to the shelves.
|
|
122
130
|
|
|
123
131
|
<!-- GENERATED:collection-table:start -->
|
|
124
132
|
| Collection | Why it exists | Start here |
|
|
125
133
|
| --- | --- | --- |
|
|
126
|
-
| `my-picks` |
|
|
127
|
-
| `build-apps` | Frontend and design
|
|
128
|
-
| `swift-agent-skills` |
|
|
129
|
-
| `build-systems` |
|
|
130
|
-
| `test-and-debug` |
|
|
131
|
-
| `docs-and-research` |
|
|
134
|
+
| `my-picks` | A short starter stack. These are the skills I reach for first. | `frontend-design`, `mcp-builder`, `pdf` |
|
|
135
|
+
| `build-apps` | Frontend, UI, and design work for shipping polished apps. | `frontend-design`, `frontend-skill`, `shadcn` |
|
|
136
|
+
| `swift-agent-skills` | The main Swift and Apple-platform set in this library. Install it all at once or pick from it. | `swiftui-pro`, `swiftui-ui-patterns`, `swiftui-design-principles` |
|
|
137
|
+
| `build-systems` | Backend, architecture, MCP, and security work. | `mcp-builder`, `backend-development`, `database-design` |
|
|
138
|
+
| `test-and-debug` | QA, debugging, CI cleanup, and observability. | `playwright`, `webapp-testing`, `gh-fix-ci` |
|
|
139
|
+
| `docs-and-research` | Docs, files, research, and writing work. | `pdf`, `doc-coauthoring`, `docx` |
|
|
132
140
|
<!-- GENERATED:collection-table:end -->
|
|
133
141
|
|
|
134
|
-
## Catalog
|
|
142
|
+
## Curating The Catalog
|
|
135
143
|
|
|
136
|
-
|
|
144
|
+
Use `catalog` when you want to add an upstream skill without vendoring it.
|
|
137
145
|
|
|
138
146
|
```bash
|
|
139
147
|
npx ai-agent-skills catalog openai/skills --list
|
|
@@ -143,15 +151,15 @@ npx ai-agent-skills catalog conorluddy/ios-simulator-skill --skill ios-simulator
|
|
|
143
151
|
npx ai-agent-skills catalog shadcn-ui/ui --skill shadcn --area frontend --branch Components
|
|
144
152
|
```
|
|
145
153
|
|
|
146
|
-
|
|
147
|
-
It adds metadata and
|
|
154
|
+
It does not copy the skill into this repo.
|
|
155
|
+
It adds metadata and placement:
|
|
148
156
|
|
|
149
157
|
- which shelf it belongs on
|
|
150
158
|
- what branch it lives under
|
|
151
159
|
- why it earned a place
|
|
152
160
|
- how it should install later
|
|
153
161
|
|
|
154
|
-
For existing picks, `curate` is the
|
|
162
|
+
For existing picks, `curate` is the quick loop:
|
|
155
163
|
|
|
156
164
|
```bash
|
|
157
165
|
npx ai-agent-skills curate frontend-design --branch Implementation
|
|
@@ -161,7 +169,7 @@ npx ai-agent-skills curate frontend-design --why "A stronger note that matches h
|
|
|
161
169
|
npx ai-agent-skills curate review
|
|
162
170
|
```
|
|
163
171
|
|
|
164
|
-
When I
|
|
172
|
+
When I want a local copy, I use `vendor`:
|
|
165
173
|
|
|
166
174
|
```bash
|
|
167
175
|
npx ai-agent-skills vendor <repo-or-path> --skill <name> --area <shelf> --branch <branch> --why "Why this deserves a local copy."
|
|
@@ -170,7 +178,7 @@ npx ai-agent-skills vendor <repo-or-path> --skill <name> --area mobile --branch
|
|
|
170
178
|
|
|
171
179
|
## Source Repos
|
|
172
180
|
|
|
173
|
-
Current
|
|
181
|
+
Current upstream mix:
|
|
174
182
|
|
|
175
183
|
<!-- GENERATED:source-table:start -->
|
|
176
184
|
| Source repo | Skills |
|
|
@@ -204,8 +212,8 @@ Current source mix:
|
|
|
204
212
|
| `vanab/swiftdata-agent-skill` | 1 |
|
|
205
213
|
<!-- GENERATED:source-table:end -->
|
|
206
214
|
|
|
207
|
-
The two
|
|
208
|
-
I
|
|
215
|
+
The two biggest upstream publishers in this library are Anthropic and OpenAI.
|
|
216
|
+
I browse, pick, and shelve. I do not mirror everything they publish.
|
|
209
217
|
|
|
210
218
|
## Commands
|
|
211
219
|
|
|
@@ -250,8 +258,6 @@ npx ai-agent-skills vendor <repo-or-path> --skill <name> --area <shelf> --branch
|
|
|
250
258
|
|
|
251
259
|
## Testing
|
|
252
260
|
|
|
253
|
-
There are two layers on purpose:
|
|
254
|
-
|
|
255
261
|
- `npm test`
|
|
256
262
|
Fast regression coverage for CLI behavior, schema rules, routing, and local install flows.
|
|
257
263
|
- `npm run test:live`
|
|
@@ -261,7 +267,7 @@ There are two layers on purpose:
|
|
|
261
267
|
|
|
262
268
|
## Legacy Agent Support
|
|
263
269
|
|
|
264
|
-
|
|
270
|
+
Still supported through `--agent <name>`:
|
|
265
271
|
|
|
266
272
|
- `claude`
|
|
267
273
|
- `cursor`
|
|
@@ -276,19 +282,17 @@ These still work through `--agent <name>`:
|
|
|
276
282
|
- `kilocode`
|
|
277
283
|
- `project`
|
|
278
284
|
|
|
279
|
-
##
|
|
280
|
-
|
|
281
|
-
This repo is opinionated on purpose.
|
|
285
|
+
## What I Care About
|
|
282
286
|
|
|
283
|
-
- Small shelves
|
|
284
|
-
-
|
|
285
|
-
-
|
|
286
|
-
- Upstream repos
|
|
287
|
-
- A
|
|
287
|
+
- Small shelves
|
|
288
|
+
- Clear provenance
|
|
289
|
+
- Notes that explain the keep
|
|
290
|
+
- Upstream repos staying upstream
|
|
291
|
+
- A library that looks maintained
|
|
288
292
|
|
|
289
293
|
## Contributing
|
|
290
294
|
|
|
291
|
-
This is a curated library
|
|
295
|
+
This is a curated library.
|
|
292
296
|
|
|
293
297
|
Read [CURATION.md](./CURATION.md) before opening a PR.
|
|
294
298
|
|
package/cli.js
CHANGED
|
@@ -1788,7 +1788,7 @@ function listSkills(category = null, tags = null, collectionId = null, workArea
|
|
|
1788
1788
|
};
|
|
1789
1789
|
log(`\n${colors.bold}Curated Library${colors.reset}`);
|
|
1790
1790
|
log(`${colors.dim}${formatCount(counts.total, 'pick')} on ${formatCount(orderedAreas.length, 'shelf', 'shelves')} · ${formatCount(counts.house, 'house copy', 'house copies')} · ${formatCount(counts.upstream, 'cataloged upstream pick', 'cataloged upstream picks')}${colors.reset}`);
|
|
1791
|
-
log(`${colors.dim}
|
|
1791
|
+
log(`${colors.dim}Browse by shelf first.${colors.reset}\n`);
|
|
1792
1792
|
|
|
1793
1793
|
orderedAreas.forEach(areaId => {
|
|
1794
1794
|
const meta = getWorkAreaMeta(data, areaId);
|
|
@@ -2991,7 +2991,8 @@ function installFromLocalPath(source, agent = 'claude', dryRun = false) {
|
|
|
2991
2991
|
|
|
2992
2992
|
function showHelp() {
|
|
2993
2993
|
log(`
|
|
2994
|
-
${colors.bold}AI Agent Skills${colors.reset}
|
|
2994
|
+
${colors.bold}AI Agent Skills${colors.reset}
|
|
2995
|
+
Curated agent skills library and installer
|
|
2995
2996
|
|
|
2996
2997
|
${colors.bold}Usage:${colors.reset}
|
|
2997
2998
|
npx ai-agent-skills [command] [options]
|
package/lib/render-docs.cjs
CHANGED
|
@@ -37,11 +37,27 @@ function buildLibraryStatsSection(data) {
|
|
|
37
37
|
const total = data.skills.length;
|
|
38
38
|
const house = data.skills.filter((skill) => skill.tier === 'house').length;
|
|
39
39
|
const upstream = total - house;
|
|
40
|
+
const badgeBase = 'https://img.shields.io';
|
|
41
|
+
const repoUrl = 'https://github.com/MoizIbnYousaf/Ai-Agent-Skills';
|
|
42
|
+
const npmUrl = 'https://www.npmjs.com/package/ai-agent-skills';
|
|
43
|
+
const libraryUrl = `${repoUrl}#shelves`;
|
|
44
|
+
const labelBg = '313244';
|
|
45
|
+
const lightText = 'cdd6f4';
|
|
46
|
+
const starsAccent = '89b4fa';
|
|
47
|
+
const versionAccent = 'b4befe';
|
|
48
|
+
const downloadsAccent = 'f5e0dc';
|
|
49
|
+
const libraryAccent = 'cba6f7';
|
|
50
|
+
const libraryMessage = encodeURIComponent(`${total} skills · ${data.workAreas.length} shelves`);
|
|
51
|
+
|
|
40
52
|
return [
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
53
|
+
'<p align="center">',
|
|
54
|
+
` <a href="${repoUrl}"><img alt="GitHub stars" src="${badgeBase}/github/stars/MoizIbnYousaf/Ai-Agent-Skills?style=for-the-badge&label=stars&labelColor=${labelBg}&color=${starsAccent}&logo=github&logoColor=${lightText}" /></a>`,
|
|
55
|
+
` <a href="${npmUrl}"><img alt="npm version" src="${badgeBase}/npm/v/ai-agent-skills?style=for-the-badge&label=version&labelColor=${labelBg}&color=${versionAccent}&logo=npm&logoColor=${lightText}" /></a>`,
|
|
56
|
+
` <a href="${npmUrl}"><img alt="npm total downloads" src="${badgeBase}/npm/dt/ai-agent-skills?style=for-the-badge&label=downloads&labelColor=${labelBg}&color=${downloadsAccent}&logo=npm&logoColor=${lightText}" /></a>`,
|
|
57
|
+
` <a href="${libraryUrl}"><img alt="Library structure" src="${badgeBase}/badge/library-${libraryMessage}-${libraryAccent}?style=for-the-badge&labelColor=${labelBg}&logo=bookstack&logoColor=${lightText}" /></a>`,
|
|
58
|
+
'</p>',
|
|
59
|
+
'',
|
|
60
|
+
`<p align="center"><sub>${house} house copies · ${upstream} cataloged upstream</sub></p>`,
|
|
45
61
|
].join('\n');
|
|
46
62
|
}
|
|
47
63
|
|
|
@@ -126,9 +142,9 @@ function renderWorkAreas(data) {
|
|
|
126
142
|
return ensureTrailingNewline([
|
|
127
143
|
'# Work Areas',
|
|
128
144
|
'',
|
|
129
|
-
'
|
|
145
|
+
'Shelf map for the library.',
|
|
130
146
|
'',
|
|
131
|
-
'
|
|
147
|
+
'House copies stay flat under `skills/<name>/`. The catalog holds the real structure.',
|
|
132
148
|
'',
|
|
133
149
|
sections.join('\n'),
|
|
134
150
|
].join('\n'));
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ai-agent-skills",
|
|
3
|
-
"version": "3.5.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "3.5.1",
|
|
4
|
+
"description": "Curated agent skills library and CLI installer.",
|
|
5
5
|
"main": "cli.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"ai-agent-skills": "cli.js"
|
package/skills.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "3.5.
|
|
2
|
+
"version": "3.5.1",
|
|
3
3
|
"updated": "2026-03-27T00:00:00Z",
|
|
4
4
|
"total": 55,
|
|
5
5
|
"workAreas": [
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
{
|
|
34
34
|
"id": "my-picks",
|
|
35
35
|
"title": "My Picks",
|
|
36
|
-
"description": "
|
|
36
|
+
"description": "A short starter stack. These are the skills I reach for first.",
|
|
37
37
|
"skills": [
|
|
38
38
|
"frontend-design",
|
|
39
39
|
"mcp-builder",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
{
|
|
47
47
|
"id": "build-apps",
|
|
48
48
|
"title": "Build Apps",
|
|
49
|
-
"description": "Frontend and design
|
|
49
|
+
"description": "Frontend, UI, and design work for shipping polished apps.",
|
|
50
50
|
"skills": [
|
|
51
51
|
"frontend-design",
|
|
52
52
|
"frontend-skill",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
{
|
|
59
59
|
"id": "swift-agent-skills",
|
|
60
60
|
"title": "Swift Agent Skills",
|
|
61
|
-
"description": "
|
|
61
|
+
"description": "The main Swift and Apple-platform set in this library. Install it all at once or pick from it.",
|
|
62
62
|
"skills": [
|
|
63
63
|
"swiftui-pro",
|
|
64
64
|
"swiftui-ui-patterns",
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
{
|
|
90
90
|
"id": "build-systems",
|
|
91
91
|
"title": "Build Systems",
|
|
92
|
-
"description": "
|
|
92
|
+
"description": "Backend, architecture, MCP, and security work.",
|
|
93
93
|
"skills": [
|
|
94
94
|
"mcp-builder",
|
|
95
95
|
"backend-development",
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
{
|
|
103
103
|
"id": "test-and-debug",
|
|
104
104
|
"title": "Test & Debug",
|
|
105
|
-
"description": "
|
|
105
|
+
"description": "QA, debugging, CI cleanup, and observability.",
|
|
106
106
|
"skills": [
|
|
107
107
|
"playwright",
|
|
108
108
|
"webapp-testing",
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
{
|
|
115
115
|
"id": "docs-and-research",
|
|
116
116
|
"title": "Docs & Research",
|
|
117
|
-
"description": "
|
|
117
|
+
"description": "Docs, files, research, and writing work.",
|
|
118
118
|
"skills": [
|
|
119
119
|
"pdf",
|
|
120
120
|
"doc-coauthoring",
|
|
@@ -149,7 +149,7 @@
|
|
|
149
149
|
"trust": "verified",
|
|
150
150
|
"syncMode": "live",
|
|
151
151
|
"sourceUrl": "https://github.com/anthropics/skills/tree/main/skills/frontend-design",
|
|
152
|
-
"whyHere": "
|
|
152
|
+
"whyHere": "Still one of the stronger frontend skills around for interface craft, visual direction, and polished product work.",
|
|
153
153
|
"lastVerified": "2026-03-13",
|
|
154
154
|
"vendored": false,
|
|
155
155
|
"installSource": "anthropics/skills/skills/frontend-design",
|
|
@@ -177,7 +177,7 @@
|
|
|
177
177
|
"trust": "verified",
|
|
178
178
|
"syncMode": "live",
|
|
179
179
|
"sourceUrl": "https://github.com/anthropics/skills/tree/main/skills/pdf",
|
|
180
|
-
"whyHere": "
|
|
180
|
+
"whyHere": "Worth keeping as a stable copy for PDF-heavy work.",
|
|
181
181
|
"lastVerified": "2026-03-13",
|
|
182
182
|
"vendored": false,
|
|
183
183
|
"installSource": "anthropics/skills/skills/pdf",
|
|
@@ -202,7 +202,7 @@
|
|
|
202
202
|
"trust": "verified",
|
|
203
203
|
"syncMode": "live",
|
|
204
204
|
"sourceUrl": "https://github.com/anthropics/skills/tree/main/skills/xlsx",
|
|
205
|
-
"whyHere": "
|
|
205
|
+
"whyHere": "Worth keeping as a stable copy for spreadsheet work.",
|
|
206
206
|
"lastVerified": "2026-03-13",
|
|
207
207
|
"vendored": false,
|
|
208
208
|
"installSource": "anthropics/skills/skills/xlsx",
|
|
@@ -227,7 +227,7 @@
|
|
|
227
227
|
"trust": "verified",
|
|
228
228
|
"syncMode": "live",
|
|
229
229
|
"sourceUrl": "https://github.com/anthropics/skills/tree/main/skills/docx",
|
|
230
|
-
"whyHere": "
|
|
230
|
+
"whyHere": "Worth keeping as a stable copy for document work.",
|
|
231
231
|
"lastVerified": "2026-03-13",
|
|
232
232
|
"vendored": false,
|
|
233
233
|
"installSource": "anthropics/skills/skills/docx",
|
|
@@ -252,7 +252,7 @@
|
|
|
252
252
|
"trust": "verified",
|
|
253
253
|
"syncMode": "live",
|
|
254
254
|
"sourceUrl": "https://github.com/anthropics/skills/tree/main/skills/pptx",
|
|
255
|
-
"whyHere": "
|
|
255
|
+
"whyHere": "Worth keeping as a stable copy for presentation work.",
|
|
256
256
|
"lastVerified": "2026-03-13",
|
|
257
257
|
"vendored": false,
|
|
258
258
|
"installSource": "anthropics/skills/skills/pptx",
|
|
@@ -282,7 +282,7 @@
|
|
|
282
282
|
"trust": "verified",
|
|
283
283
|
"syncMode": "live",
|
|
284
284
|
"sourceUrl": "https://github.com/anthropics/skills/tree/main/skills/mcp-builder",
|
|
285
|
-
"whyHere": "
|
|
285
|
+
"whyHere": "One of the clearest MCP skills in the ecosystem. Worth keeping close as a stable copy.",
|
|
286
286
|
"lastVerified": "2026-03-13",
|
|
287
287
|
"vendored": false,
|
|
288
288
|
"installSource": "anthropics/skills/skills/mcp-builder",
|
|
@@ -307,7 +307,7 @@
|
|
|
307
307
|
"trust": "verified",
|
|
308
308
|
"syncMode": "live",
|
|
309
309
|
"sourceUrl": "https://github.com/anthropics/skills/tree/main/skills/skill-creator",
|
|
310
|
-
"whyHere": "
|
|
310
|
+
"whyHere": "Useful when a repo needs a new skill or a cleanup pass on an old one.",
|
|
311
311
|
"lastVerified": "2026-03-13",
|
|
312
312
|
"vendored": false,
|
|
313
313
|
"installSource": "anthropics/skills/skills/skill-creator",
|
|
@@ -332,7 +332,7 @@
|
|
|
332
332
|
"trust": "verified",
|
|
333
333
|
"syncMode": "live",
|
|
334
334
|
"sourceUrl": "https://github.com/anthropics/skills/tree/main/skills/doc-coauthoring",
|
|
335
|
-
"whyHere": "
|
|
335
|
+
"whyHere": "Still one of the better starting points for collaborative writing and document work.",
|
|
336
336
|
"lastVerified": "2026-03-13",
|
|
337
337
|
"vendored": false,
|
|
338
338
|
"installSource": "anthropics/skills/skills/doc-coauthoring",
|
|
@@ -357,7 +357,7 @@
|
|
|
357
357
|
"trust": "verified",
|
|
358
358
|
"syncMode": "live",
|
|
359
359
|
"sourceUrl": "https://github.com/anthropics/skills/tree/main/skills/canvas-design",
|
|
360
|
-
"whyHere": "
|
|
360
|
+
"whyHere": "Useful for visual direction and design craft when a task starts rough.",
|
|
361
361
|
"lastVerified": "2026-03-13",
|
|
362
362
|
"vendored": false,
|
|
363
363
|
"installSource": "anthropics/skills/skills/canvas-design",
|
|
@@ -387,7 +387,7 @@
|
|
|
387
387
|
"trust": "verified",
|
|
388
388
|
"syncMode": "live",
|
|
389
389
|
"sourceUrl": "https://github.com/anthropics/skills/tree/main/skills/webapp-testing",
|
|
390
|
-
"whyHere": "
|
|
390
|
+
"whyHere": "Good web QA guidance with real product-testing value.",
|
|
391
391
|
"lastVerified": "2026-03-13",
|
|
392
392
|
"vendored": false,
|
|
393
393
|
"installSource": "anthropics/skills/skills/webapp-testing",
|
|
@@ -412,7 +412,7 @@
|
|
|
412
412
|
"trust": "verified",
|
|
413
413
|
"syncMode": "live",
|
|
414
414
|
"sourceUrl": "https://github.com/anthropics/skills/tree/main/skills/brand-guidelines",
|
|
415
|
-
"whyHere": "
|
|
415
|
+
"whyHere": "Useful when product work spills into brand and visual system decisions.",
|
|
416
416
|
"lastVerified": "2026-03-13",
|
|
417
417
|
"vendored": false,
|
|
418
418
|
"installSource": "anthropics/skills/skills/brand-guidelines",
|
|
@@ -519,7 +519,7 @@
|
|
|
519
519
|
"trust": "listed",
|
|
520
520
|
"syncMode": "snapshot",
|
|
521
521
|
"sourceUrl": "https://github.com/wshobson/agents/tree/main/plugins/documentation-generation",
|
|
522
|
-
"whyHere": "
|
|
522
|
+
"whyHere": "Still a good documentation skill, even after upstream reorganized around plugins.",
|
|
523
523
|
"tier": "house",
|
|
524
524
|
"vendored": true,
|
|
525
525
|
"distribution": "bundled",
|
|
@@ -549,7 +549,7 @@
|
|
|
549
549
|
"trust": "verified",
|
|
550
550
|
"syncMode": "adapted",
|
|
551
551
|
"sourceUrl": "https://github.com/MoizIbnYousaf/Ai-Agent-Skills/tree/main/skills/ask-questions-if-underspecified",
|
|
552
|
-
"whyHere": "
|
|
552
|
+
"whyHere": "A clean guardrail against agents sprinting through half-specified work.",
|
|
553
553
|
"lastVerified": "2026-03-13",
|
|
554
554
|
"tier": "house",
|
|
555
555
|
"vendored": true,
|
|
@@ -605,7 +605,7 @@
|
|
|
605
605
|
"trust": "listed",
|
|
606
606
|
"syncMode": "mirror",
|
|
607
607
|
"sourceUrl": "https://github.com/ComposioHQ/awesome-claude-skills/tree/master/changelog-generator",
|
|
608
|
-
"whyHere": "
|
|
608
|
+
"whyHere": "Practical release-note help for real ship cycles.",
|
|
609
609
|
"tier": "house",
|
|
610
610
|
"vendored": true,
|
|
611
611
|
"distribution": "bundled",
|
|
@@ -629,7 +629,7 @@
|
|
|
629
629
|
"trust": "listed",
|
|
630
630
|
"syncMode": "mirror",
|
|
631
631
|
"sourceUrl": "https://github.com/ComposioHQ/awesome-claude-skills/tree/master/content-research-writer",
|
|
632
|
-
"whyHere": "
|
|
632
|
+
"whyHere": "Turns research into usable writing.",
|
|
633
633
|
"tier": "house",
|
|
634
634
|
"vendored": true,
|
|
635
635
|
"distribution": "bundled",
|
|
@@ -658,7 +658,7 @@
|
|
|
658
658
|
"trust": "reviewed",
|
|
659
659
|
"syncMode": "live",
|
|
660
660
|
"sourceUrl": "https://github.com/openai/skills/tree/main/skills/.system/openai-docs",
|
|
661
|
-
"whyHere": "
|
|
661
|
+
"whyHere": "Gives the library a direct path into current OpenAI docs and model guidance.",
|
|
662
662
|
"vendored": false,
|
|
663
663
|
"installSource": "openai/skills/skills/.system/openai-docs",
|
|
664
664
|
"tier": "upstream",
|
|
@@ -687,7 +687,7 @@
|
|
|
687
687
|
"trust": "reviewed",
|
|
688
688
|
"syncMode": "live",
|
|
689
689
|
"sourceUrl": "https://github.com/openai/skills/tree/main/skills/.curated/gh-fix-ci",
|
|
690
|
-
"whyHere": "
|
|
690
|
+
"whyHere": "Worth keeping for CI cleanup and broken checks.",
|
|
691
691
|
"vendored": false,
|
|
692
692
|
"installSource": "openai/skills/skills/.curated/gh-fix-ci",
|
|
693
693
|
"tier": "upstream",
|
|
@@ -716,7 +716,7 @@
|
|
|
716
716
|
"trust": "reviewed",
|
|
717
717
|
"syncMode": "live",
|
|
718
718
|
"sourceUrl": "https://github.com/openai/skills/tree/main/skills/.curated/figma",
|
|
719
|
-
"whyHere": "
|
|
719
|
+
"whyHere": "A good fit for UI and design-engineering work.",
|
|
720
720
|
"vendored": false,
|
|
721
721
|
"installSource": "openai/skills/skills/.curated/figma",
|
|
722
722
|
"tier": "upstream",
|
|
@@ -745,7 +745,7 @@
|
|
|
745
745
|
"trust": "listed",
|
|
746
746
|
"syncMode": "live",
|
|
747
747
|
"sourceUrl": "https://github.com/openai/skills/tree/main/skills/.curated/sentry",
|
|
748
|
-
"whyHere": "
|
|
748
|
+
"whyHere": "Useful for debugging and observability work.",
|
|
749
749
|
"vendored": false,
|
|
750
750
|
"installSource": "openai/skills/skills/.curated/sentry",
|
|
751
751
|
"tier": "upstream",
|
|
@@ -774,7 +774,7 @@
|
|
|
774
774
|
"trust": "reviewed",
|
|
775
775
|
"syncMode": "live",
|
|
776
776
|
"sourceUrl": "https://github.com/openai/skills/tree/main/skills/.curated/playwright",
|
|
777
|
-
"whyHere": "
|
|
777
|
+
"whyHere": "Useful when a task needs real browser work, not guessed output.",
|
|
778
778
|
"vendored": false,
|
|
779
779
|
"installSource": "openai/skills/skills/.curated/playwright",
|
|
780
780
|
"tier": "upstream",
|
|
@@ -801,7 +801,7 @@
|
|
|
801
801
|
"trust": "listed",
|
|
802
802
|
"syncMode": "live",
|
|
803
803
|
"sourceUrl": "https://github.com/openai/skills/tree/main/skills/.curated/linear",
|
|
804
|
-
"whyHere": "
|
|
804
|
+
"whyHere": "I actually use Linear, so the workflow shelf should reflect that.",
|
|
805
805
|
"addedDate": "2026-03-21",
|
|
806
806
|
"tier": "upstream",
|
|
807
807
|
"distribution": "live",
|
|
@@ -827,7 +827,7 @@
|
|
|
827
827
|
"trust": "listed",
|
|
828
828
|
"syncMode": "live",
|
|
829
829
|
"sourceUrl": "https://github.com/openai/skills/tree/main/skills/.curated/frontend-skill",
|
|
830
|
-
"whyHere": "
|
|
830
|
+
"whyHere": "Brings a different frontend taste than Anthropic's. The shelf is better with both.",
|
|
831
831
|
"addedDate": "2026-03-21",
|
|
832
832
|
"tier": "upstream",
|
|
833
833
|
"distribution": "live",
|
|
@@ -837,7 +837,7 @@
|
|
|
837
837
|
},
|
|
838
838
|
{
|
|
839
839
|
"name": "shadcn",
|
|
840
|
-
"description": "Manages shadcn components and projects
|
|
840
|
+
"description": "Manages shadcn components and projects, including adding, searching, fixing, debugging, styling, and composing UI. Provides project context, component docs, and usage examples. Applies when working with shadcn/ui, component registries, presets, --preset codes, or any project with a components.json file. Also triggers for \"shadcn init\", \"create an app with --preset\", or \"switch to --preset\".",
|
|
841
841
|
"category": "development",
|
|
842
842
|
"workArea": "frontend",
|
|
843
843
|
"branch": "Components",
|
|
@@ -853,7 +853,7 @@
|
|
|
853
853
|
"trust": "listed",
|
|
854
854
|
"syncMode": "live",
|
|
855
855
|
"sourceUrl": "https://github.com/shadcn-ui/ui/tree/main/skills/shadcn",
|
|
856
|
-
"whyHere": "
|
|
856
|
+
"whyHere": "shadcn/ui is common enough that the shelf should have a dedicated skill.",
|
|
857
857
|
"addedDate": "2026-03-21",
|
|
858
858
|
"tier": "upstream",
|
|
859
859
|
"distribution": "live",
|
|
@@ -879,7 +879,7 @@
|
|
|
879
879
|
"trust": "listed",
|
|
880
880
|
"syncMode": "live",
|
|
881
881
|
"sourceUrl": "https://github.com/emilkowalski/skill/tree/main/skills/emil-design-eng",
|
|
882
|
-
"whyHere": "
|
|
882
|
+
"whyHere": "Sharpens polish, spacing, motion, and restraint in a way nothing else here quite does.",
|
|
883
883
|
"addedDate": "2026-03-21",
|
|
884
884
|
"tier": "upstream",
|
|
885
885
|
"distribution": "live",
|
|
@@ -907,7 +907,7 @@
|
|
|
907
907
|
"trust": "listed",
|
|
908
908
|
"syncMode": "live",
|
|
909
909
|
"sourceUrl": "https://github.com/openai/skills/tree/main/skills/.curated/security-best-practices",
|
|
910
|
-
"whyHere": "
|
|
910
|
+
"whyHere": "Backend work needs a real security lens.",
|
|
911
911
|
"notes": "",
|
|
912
912
|
"labels": [],
|
|
913
913
|
"addedDate": "2026-03-21",
|
|
@@ -933,7 +933,7 @@
|
|
|
933
933
|
"trust": "listed",
|
|
934
934
|
"syncMode": "live",
|
|
935
935
|
"sourceUrl": "https://github.com/openai/skills/tree/main/skills/.curated/notion-spec-to-implementation",
|
|
936
|
-
"whyHere": "
|
|
936
|
+
"whyHere": "A useful bridge between a written spec and actual work.",
|
|
937
937
|
"notes": "",
|
|
938
938
|
"labels": [],
|
|
939
939
|
"addedDate": "2026-03-21",
|
|
@@ -994,7 +994,7 @@
|
|
|
994
994
|
"trust": "reviewed",
|
|
995
995
|
"syncMode": "live",
|
|
996
996
|
"sourceUrl": "https://github.com/twostraws/SwiftUI-Agent-Skill/tree/main/swiftui-pro",
|
|
997
|
-
"whyHere": "
|
|
997
|
+
"whyHere": "A solid anchor for day-to-day SwiftUI work.",
|
|
998
998
|
"lastVerified": "",
|
|
999
999
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1000
1000
|
"labels": [
|
|
@@ -1033,7 +1033,7 @@
|
|
|
1033
1033
|
"trust": "reviewed",
|
|
1034
1034
|
"syncMode": "live",
|
|
1035
1035
|
"sourceUrl": "https://github.com/Dimillian/Skills/tree/main/swiftui-ui-patterns",
|
|
1036
|
-
"whyHere": "
|
|
1036
|
+
"whyHere": "Good component and layout patterns for SwiftUI screens.",
|
|
1037
1037
|
"lastVerified": "",
|
|
1038
1038
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1039
1039
|
"labels": [
|
|
@@ -1072,7 +1072,7 @@
|
|
|
1072
1072
|
"trust": "reviewed",
|
|
1073
1073
|
"syncMode": "live",
|
|
1074
1074
|
"sourceUrl": "https://github.com/arjitj2/swiftui-design-principles",
|
|
1075
|
-
"whyHere": "
|
|
1075
|
+
"whyHere": "Useful when the problem is taste, structure, or visual judgment.",
|
|
1076
1076
|
"lastVerified": "",
|
|
1077
1077
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1078
1078
|
"labels": [
|
|
@@ -1111,7 +1111,7 @@
|
|
|
1111
1111
|
"trust": "reviewed",
|
|
1112
1112
|
"syncMode": "live",
|
|
1113
1113
|
"sourceUrl": "https://github.com/Dimillian/Skills/tree/main/swiftui-view-refactor",
|
|
1114
|
-
"whyHere": "
|
|
1114
|
+
"whyHere": "Useful when a SwiftUI file has grown past the point of comfort.",
|
|
1115
1115
|
"lastVerified": "",
|
|
1116
1116
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1117
1117
|
"labels": [
|
|
@@ -1150,7 +1150,7 @@
|
|
|
1150
1150
|
"trust": "reviewed",
|
|
1151
1151
|
"syncMode": "live",
|
|
1152
1152
|
"sourceUrl": "https://github.com/twostraws/SwiftData-Agent-Skill/tree/main/swiftdata-pro",
|
|
1153
|
-
"whyHere": "
|
|
1153
|
+
"whyHere": "Keeps SwiftData coverage current without freezing it in this repo.",
|
|
1154
1154
|
"lastVerified": "",
|
|
1155
1155
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1156
1156
|
"labels": [
|
|
@@ -1189,7 +1189,7 @@
|
|
|
1189
1189
|
"trust": "reviewed",
|
|
1190
1190
|
"syncMode": "live",
|
|
1191
1191
|
"sourceUrl": "https://github.com/vanab/swiftdata-agent-skill/tree/main/swiftdata-expert-skill",
|
|
1192
|
-
"whyHere": "
|
|
1192
|
+
"whyHere": "A second strong SwiftData voice from upstream.",
|
|
1193
1193
|
"lastVerified": "",
|
|
1194
1194
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1195
1195
|
"labels": [
|
|
@@ -1228,7 +1228,7 @@
|
|
|
1228
1228
|
"trust": "reviewed",
|
|
1229
1229
|
"syncMode": "live",
|
|
1230
1230
|
"sourceUrl": "https://github.com/twostraws/Swift-Concurrency-Agent-Skill/tree/main/swift-concurrency-pro",
|
|
1231
|
-
"whyHere": "
|
|
1231
|
+
"whyHere": "Concurrency bugs are sharp in Swift. The shelf needs specialists here.",
|
|
1232
1232
|
"lastVerified": "",
|
|
1233
1233
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1234
1234
|
"labels": [
|
|
@@ -1267,7 +1267,7 @@
|
|
|
1267
1267
|
"trust": "reviewed",
|
|
1268
1268
|
"syncMode": "live",
|
|
1269
1269
|
"sourceUrl": "https://github.com/Dimillian/Skills/tree/main/swift-concurrency-expert",
|
|
1270
|
-
"whyHere": "
|
|
1270
|
+
"whyHere": "Another strong pass on Swift concurrency, with a different angle than the others.",
|
|
1271
1271
|
"lastVerified": "",
|
|
1272
1272
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1273
1273
|
"labels": [
|
|
@@ -1306,7 +1306,7 @@
|
|
|
1306
1306
|
"trust": "reviewed",
|
|
1307
1307
|
"syncMode": "live",
|
|
1308
1308
|
"sourceUrl": "https://github.com/AvdLee/Swift-Concurrency-Agent-Skill/tree/main/swift-concurrency",
|
|
1309
|
-
"whyHere": "
|
|
1309
|
+
"whyHere": "Worth keeping for AvdLee's take on Swift concurrency review and cleanup.",
|
|
1310
1310
|
"lastVerified": "",
|
|
1311
1311
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1312
1312
|
"labels": [
|
|
@@ -1345,7 +1345,7 @@
|
|
|
1345
1345
|
"trust": "reviewed",
|
|
1346
1346
|
"syncMode": "live",
|
|
1347
1347
|
"sourceUrl": "https://github.com/twostraws/Swift-Testing-Agent-Skill/tree/main/swift-testing-pro",
|
|
1348
|
-
"whyHere": "
|
|
1348
|
+
"whyHere": "Swift testing deserves its own specialists.",
|
|
1349
1349
|
"lastVerified": "",
|
|
1350
1350
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1351
1351
|
"labels": [
|
|
@@ -1384,7 +1384,7 @@
|
|
|
1384
1384
|
"trust": "reviewed",
|
|
1385
1385
|
"syncMode": "live",
|
|
1386
1386
|
"sourceUrl": "https://github.com/bocato/swift-testing-agent-skill/tree/main/swift-testing",
|
|
1387
|
-
"whyHere": "
|
|
1387
|
+
"whyHere": "Useful when the work is test migration, setup, or everyday test cleanup.",
|
|
1388
1388
|
"lastVerified": "",
|
|
1389
1389
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1390
1390
|
"labels": [
|
|
@@ -1423,7 +1423,7 @@
|
|
|
1423
1423
|
"trust": "reviewed",
|
|
1424
1424
|
"syncMode": "live",
|
|
1425
1425
|
"sourceUrl": "https://github.com/AvdLee/Swift-Testing-Agent-Skill/tree/main/swift-testing-expert",
|
|
1426
|
-
"whyHere": "
|
|
1426
|
+
"whyHere": "Adds a second strong testing voice for Swift codebases.",
|
|
1427
1427
|
"lastVerified": "",
|
|
1428
1428
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1429
1429
|
"labels": [
|
|
@@ -1463,7 +1463,7 @@
|
|
|
1463
1463
|
"trust": "reviewed",
|
|
1464
1464
|
"syncMode": "live",
|
|
1465
1465
|
"sourceUrl": "https://github.com/Erikote04/Swift-API-Design-Guidelines-Agent-Skill/tree/main/swift-api-design-guidelines-skill",
|
|
1466
|
-
"whyHere": "
|
|
1466
|
+
"whyHere": "API design leaks across a whole Swift codebase. This earns a place.",
|
|
1467
1467
|
"lastVerified": "",
|
|
1468
1468
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1469
1469
|
"labels": [
|
|
@@ -1502,7 +1502,7 @@
|
|
|
1502
1502
|
"trust": "reviewed",
|
|
1503
1503
|
"syncMode": "live",
|
|
1504
1504
|
"sourceUrl": "https://github.com/dadederk/iOS-Accessibility-Agent-Skill/tree/main/ios-accessibility",
|
|
1505
|
-
"whyHere": "
|
|
1505
|
+
"whyHere": "Mobile needed real accessibility coverage.",
|
|
1506
1506
|
"lastVerified": "",
|
|
1507
1507
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1508
1508
|
"labels": [
|
|
@@ -1516,7 +1516,7 @@
|
|
|
1516
1516
|
},
|
|
1517
1517
|
{
|
|
1518
1518
|
"name": "swift-accessibility-skill",
|
|
1519
|
-
"description": "Apply platform accessibility best practices to SwiftUI, UIKit, and AppKit code.
|
|
1519
|
+
"description": "Apply platform accessibility best practices to SwiftUI, UIKit, and AppKit code. Use it alongside any SwiftUI, UIKit, or AppKit skill. Use it whenever writing, editing, or reviewing platform UI, even when the user does not mention accessibility. Also use it when the user mentions VoiceOver, Voice Control, Dynamic Type, Reduce Motion, screen readers, a11y, WCAG, accessibility audits, accessibilityLabel, UIAccessibility, NSAccessibility, assistive technologies, or Switch Control. Not for server-side Swift, non-UI packages, or CLI tools.",
|
|
1520
1520
|
"category": "development",
|
|
1521
1521
|
"workArea": "mobile",
|
|
1522
1522
|
"branch": "Swift / Accessibility",
|
|
@@ -1541,7 +1541,7 @@
|
|
|
1541
1541
|
"trust": "reviewed",
|
|
1542
1542
|
"syncMode": "live",
|
|
1543
1543
|
"sourceUrl": "https://github.com/PasqualeVittoriosi/swift-accessibility-skill/tree/main/swift-accessibility-skill",
|
|
1544
|
-
"whyHere": "
|
|
1544
|
+
"whyHere": "Keeps accessibility work visible when the code is Swift-first.",
|
|
1545
1545
|
"lastVerified": "",
|
|
1546
1546
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1547
1547
|
"labels": [
|
|
@@ -1580,7 +1580,7 @@
|
|
|
1580
1580
|
"trust": "reviewed",
|
|
1581
1581
|
"syncMode": "live",
|
|
1582
1582
|
"sourceUrl": "https://github.com/rgmez/apple-accessibility-skills/tree/main/skills/appkit-accessibility-auditor",
|
|
1583
|
-
"whyHere": "
|
|
1583
|
+
"whyHere": "AppKit needs its own accessibility pass.",
|
|
1584
1584
|
"lastVerified": "",
|
|
1585
1585
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1586
1586
|
"labels": [
|
|
@@ -1619,7 +1619,7 @@
|
|
|
1619
1619
|
"trust": "reviewed",
|
|
1620
1620
|
"syncMode": "live",
|
|
1621
1621
|
"sourceUrl": "https://github.com/rgmez/apple-accessibility-skills/tree/main/skills/swiftui-accessibility-auditor",
|
|
1622
|
-
"whyHere": "
|
|
1622
|
+
"whyHere": "SwiftUI needs its own accessibility pass.",
|
|
1623
1623
|
"lastVerified": "",
|
|
1624
1624
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1625
1625
|
"labels": [
|
|
@@ -1658,7 +1658,7 @@
|
|
|
1658
1658
|
"trust": "reviewed",
|
|
1659
1659
|
"syncMode": "live",
|
|
1660
1660
|
"sourceUrl": "https://github.com/rgmez/apple-accessibility-skills/tree/main/skills/uikit-accessibility-auditor",
|
|
1661
|
-
"whyHere": "
|
|
1661
|
+
"whyHere": "UIKit needs its own accessibility pass.",
|
|
1662
1662
|
"lastVerified": "",
|
|
1663
1663
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1664
1664
|
"labels": [
|
|
@@ -1697,7 +1697,7 @@
|
|
|
1697
1697
|
"trust": "reviewed",
|
|
1698
1698
|
"syncMode": "live",
|
|
1699
1699
|
"sourceUrl": "https://github.com/efremidze/swift-architecture-skill/tree/main/swift-architecture-skill",
|
|
1700
|
-
"whyHere": "
|
|
1700
|
+
"whyHere": "Architecture choices compound fast in Swift codebases. A dedicated skill helps.",
|
|
1701
1701
|
"lastVerified": "",
|
|
1702
1702
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1703
1703
|
"labels": [
|
|
@@ -1736,7 +1736,7 @@
|
|
|
1736
1736
|
"trust": "reviewed",
|
|
1737
1737
|
"syncMode": "live",
|
|
1738
1738
|
"sourceUrl": "https://github.com/AvdLee/Core-Data-Agent-Skill/tree/main/core-data-expert",
|
|
1739
|
-
"whyHere": "
|
|
1739
|
+
"whyHere": "Core Data still shows up often enough to keep a specialist.",
|
|
1740
1740
|
"lastVerified": "",
|
|
1741
1741
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1742
1742
|
"labels": [
|
|
@@ -1776,7 +1776,7 @@
|
|
|
1776
1776
|
"trust": "reviewed",
|
|
1777
1777
|
"syncMode": "live",
|
|
1778
1778
|
"sourceUrl": "https://github.com/Dimillian/Skills/tree/main/swiftui-performance-audit",
|
|
1779
|
-
"whyHere": "
|
|
1779
|
+
"whyHere": "SwiftUI performance needs its own audit skill.",
|
|
1780
1780
|
"lastVerified": "",
|
|
1781
1781
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1782
1782
|
"labels": [
|
|
@@ -1815,7 +1815,7 @@
|
|
|
1815
1815
|
"trust": "reviewed",
|
|
1816
1816
|
"syncMode": "live",
|
|
1817
1817
|
"sourceUrl": "https://github.com/ivan-magda/swift-security-skill/tree/main/swift-security-expert",
|
|
1818
|
-
"whyHere": "
|
|
1818
|
+
"whyHere": "The mobile shelf should have a Swift-specific security voice.",
|
|
1819
1819
|
"lastVerified": "",
|
|
1820
1820
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1821
1821
|
"labels": [
|
|
@@ -1854,7 +1854,7 @@
|
|
|
1854
1854
|
"trust": "reviewed",
|
|
1855
1855
|
"syncMode": "live",
|
|
1856
1856
|
"sourceUrl": "https://github.com/conorluddy/ios-simulator-skill/tree/main/ios-simulator-skill",
|
|
1857
|
-
"whyHere": "
|
|
1857
|
+
"whyHere": "Agents working on Swift apps need simulator workflows.",
|
|
1858
1858
|
"lastVerified": "",
|
|
1859
1859
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1860
1860
|
"labels": [
|
|
@@ -1868,7 +1868,7 @@
|
|
|
1868
1868
|
},
|
|
1869
1869
|
{
|
|
1870
1870
|
"name": "writing-for-interfaces",
|
|
1871
|
-
"description": "Use when someone asks to write, rewrite, review, or improve text that appears inside a product or interface. Examples: \"review the UX copy\", \"is there a better way to phrase this\", \"rewrite this error message\", \"write copy for this screen/flow/page\", reviewing button labels, improving CLI output messages, writing onboarding copy, settings descriptions, or confirmation dialogs. Trigger whenever the request involves wording shown to end users inside software
|
|
1871
|
+
"description": "Use when someone asks to write, rewrite, review, or improve text that appears inside a product or interface. Examples: \"review the UX copy\", \"is there a better way to phrase this\", \"rewrite this error message\", \"write copy for this screen/flow/page\", reviewing button labels, improving CLI output messages, writing onboarding copy, settings descriptions, or confirmation dialogs. Trigger whenever the request involves wording shown to end users inside software, including apps, web, CLI, email notifications, modals, tooltips, empty states, or alerts. Also trigger for vague requests like \"review the UX\" when interface copy review is implied. Do not trigger for content marketing, blog posts, app store listings, API docs, brand guides, cover letters, or interview questions. This skill is for interface language.",
|
|
1872
1872
|
"category": "document",
|
|
1873
1873
|
"workArea": "mobile",
|
|
1874
1874
|
"branch": "Swift / User Interface",
|
|
@@ -1894,7 +1894,7 @@
|
|
|
1894
1894
|
"trust": "reviewed",
|
|
1895
1895
|
"syncMode": "live",
|
|
1896
1896
|
"sourceUrl": "https://github.com/andrewgleave/skills/tree/main/writing-for-interfaces",
|
|
1897
|
-
"whyHere": "
|
|
1897
|
+
"whyHere": "Interface writing belongs next to UI work, not in a distant docs shelf.",
|
|
1898
1898
|
"lastVerified": "",
|
|
1899
1899
|
"notes": "Curated via twostraws/Swift-Agent-Skills.",
|
|
1900
1900
|
"labels": [
|
package/tui/index.mjs
CHANGED
|
@@ -105,8 +105,8 @@ const SOURCE_NOTES = {
|
|
|
105
105
|
|
|
106
106
|
const CREATOR_HANDLE = '@moizibnyousaf';
|
|
107
107
|
const LIBRARY_SIGNATURE = "Moiz's Curated Agent Skills Library";
|
|
108
|
-
const LIBRARY_THESIS = '
|
|
109
|
-
const LIBRARY_SUPPORT = '
|
|
108
|
+
const LIBRARY_THESIS = 'Start with a shelf.';
|
|
109
|
+
const LIBRARY_SUPPORT = 'A smaller library, kept by hand.';
|
|
110
110
|
|
|
111
111
|
function clamp(value, min, max) {
|
|
112
112
|
return Math.max(min, Math.min(max, value));
|
|
@@ -1138,7 +1138,7 @@ function SkillScreen({skill, previewMode, scope, agent, columns, viewport = null
|
|
|
1138
1138
|
title="Why it belongs"
|
|
1139
1139
|
eyebrow="Editorial note"
|
|
1140
1140
|
lines=${editorialLines}
|
|
1141
|
-
footer="The first screen should
|
|
1141
|
+
footer="The first screen should tell you why a pick is here before it asks you to install it."
|
|
1142
1142
|
/>
|
|
1143
1143
|
${previewMode
|
|
1144
1144
|
? html`
|
|
@@ -1158,7 +1158,7 @@ function SkillScreen({skill, previewMode, scope, agent, columns, viewport = null
|
|
|
1158
1158
|
title="Provenance"
|
|
1159
1159
|
eyebrow="Shelf and source"
|
|
1160
1160
|
lines=${provenanceLines}
|
|
1161
|
-
footer="
|
|
1161
|
+
footer="Shelf placement and provenance stay visible here."
|
|
1162
1162
|
variant="rail"
|
|
1163
1163
|
/>
|
|
1164
1164
|
<${Inspector}
|
|
@@ -1193,7 +1193,7 @@ function SkillScreen({skill, previewMode, scope, agent, columns, viewport = null
|
|
|
1193
1193
|
'Use the open skills CLI to install this skill directly from its upstream repository.',
|
|
1194
1194
|
]}
|
|
1195
1195
|
command=${skillsSpec.command}
|
|
1196
|
-
footer="This path
|
|
1196
|
+
footer="This path installs from the upstream repo."
|
|
1197
1197
|
variant="rail"
|
|
1198
1198
|
/>
|
|
1199
1199
|
`
|
|
@@ -1246,7 +1246,7 @@ function SkillScreen({skill, previewMode, scope, agent, columns, viewport = null
|
|
|
1246
1246
|
eyebrow="skills.sh"
|
|
1247
1247
|
lines=${['Use the open skills CLI to install this skill directly from its upstream repository.']}
|
|
1248
1248
|
command=${skillsSpec.command}
|
|
1249
|
-
footer="This path follows the external skills ecosystem
|
|
1249
|
+
footer="This path follows the external skills ecosystem."
|
|
1250
1250
|
/>
|
|
1251
1251
|
`
|
|
1252
1252
|
: null}
|
|
@@ -1254,7 +1254,7 @@ function SkillScreen({skill, previewMode, scope, agent, columns, viewport = null
|
|
|
1254
1254
|
title="Provenance"
|
|
1255
1255
|
eyebrow="Shelf and source"
|
|
1256
1256
|
lines=${provenanceLines}
|
|
1257
|
-
footer="
|
|
1257
|
+
footer="Shelf placement and provenance stay visible here."
|
|
1258
1258
|
/>
|
|
1259
1259
|
<${Inspector}
|
|
1260
1260
|
title="Neighboring shelf picks"
|
|
@@ -2511,7 +2511,7 @@ function App({catalog: initialCatalog, scope, agent, onExit}) {
|
|
|
2511
2511
|
breadcrumbs=${breadcrumbs}
|
|
2512
2512
|
title=${rootMode === 'areas' ? LIBRARY_THESIS : 'Trusted publishers'}
|
|
2513
2513
|
subtitle=${rootMode === 'areas'
|
|
2514
|
-
? 'Start with the work. Each shelf stays small enough to
|
|
2514
|
+
? 'Start with the work. Each shelf stays small enough to browse quickly.'
|
|
2515
2515
|
: 'See where the picks come from and which lanes each publisher feeds into the library.'}
|
|
2516
2516
|
metaItems=${[`${catalog.total} skills`, `${catalog.areas.length} shelves`, `${catalog.sources.length} sources`, activeTheme.label]}
|
|
2517
2517
|
hint="Arrow keys move · Enter drills in · / searches · : command palette"
|
|
@@ -2913,7 +2913,7 @@ function App({catalog: initialCatalog, scope, agent, onExit}) {
|
|
|
2913
2913
|
${overlay?.type === 'repo-why'
|
|
2914
2914
|
? html`<${TextEntryOverlay}
|
|
2915
2915
|
title="Why it belongs"
|
|
2916
|
-
subtitle="
|
|
2916
|
+
subtitle="Only fully placed upstream picks get saved."
|
|
2917
2917
|
value=${overlay.value}
|
|
2918
2918
|
setValue=${(value) => setOverlay((currentOverlay) => ({...currentOverlay, value}))}
|
|
2919
2919
|
viewport=${viewport}
|