agent-skill-manager 2.12.0 → 2.14.0

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.
Files changed (68) hide show
  1. package/README.backup.md +1237 -0
  2. package/README.md +367 -681
  3. package/data/bundles/ios-release.json +45 -10
  4. package/data/skill-index/Affitor_affiliate-skills.json +171 -171
  5. package/data/skill-index/AvdLee_Core-Data-Agent-Skill.json +147 -0
  6. package/data/skill-index/AvdLee_Swift-Concurrency-Agent-Skill.json +147 -0
  7. package/data/skill-index/AvdLee_Swift-Testing-Agent-Skill.json +147 -0
  8. package/data/skill-index/AvdLee_SwiftUI-Agent-Skill.json +429 -0
  9. package/data/skill-index/AvdLee_Xcode-Build-Optimization-Agent-Skill.json +1121 -0
  10. package/data/skill-index/Dimillian_Skills.json +2605 -0
  11. package/data/skill-index/Egonex-AI_Understand-Anything.json +1317 -0
  12. package/data/skill-index/Eronred_aso-skills.json +129 -129
  13. package/data/skill-index/GPTomics_bioSkills.json +8673 -6081
  14. package/data/skill-index/Galaxy-Dawn_claude-scholar.json +144 -144
  15. package/data/skill-index/Imbad0202_academic-research-skills.json +41 -41
  16. package/data/skill-index/K-Dense-AI_claude-scientific-skills.json +1239 -633
  17. package/data/skill-index/Leonxlnx_taste-skill.json +47 -47
  18. package/data/skill-index/Master-cai_Research-Paper-Writing-Skills.json +4 -4
  19. package/data/skill-index/MiniMax-AI_skills.json +78 -78
  20. package/data/skill-index/Paramchoudhary_ResumeSkills.json +408 -68
  21. package/data/skill-index/addyosmani_agent-skills.json +3971 -0
  22. package/data/skill-index/affaan-m_everything-claude-code.json +1983 -1120
  23. package/data/skill-index/alirezarezvani_claude-skills.json +3214 -1707
  24. package/data/skill-index/anthropics_skills.json +67 -67
  25. package/data/skill-index/antonbabenko_terraform-skill.json +4 -4
  26. package/data/skill-index/badlogic_pi-skills.json +29 -29
  27. package/data/skill-index/briiirussell_cybersecurity-skills.json +314 -125
  28. package/data/skill-index/bytedance_deer-flow.json +86 -86
  29. package/data/skill-index/coreyhaines31_marketingskills.json +549 -191
  30. package/data/skill-index/davidondrej_skills.json +5050 -0
  31. package/data/skill-index/entireio_skills.json +196 -41
  32. package/data/skill-index/garrytan_gstack.json +8814 -0
  33. package/data/skill-index/github_awesome-copilot.json +2480 -1177
  34. package/data/skill-index/google_skills.json +6380 -522
  35. package/data/skill-index/heygen-com_hyperframes.json +958 -374
  36. package/data/skill-index/himself65_finance-skills.json +84 -84
  37. package/data/skill-index/ivan-magda_uikit-expert-skill.json +147 -0
  38. package/data/skill-index/kemiljk_fluid-design.json +4 -4
  39. package/data/skill-index/kepano_obsidian-skills.json +19 -19
  40. package/data/skill-index/luongnv89_asm.json +135 -9
  41. package/data/skill-index/luongnv89_idd.json +1186 -0
  42. package/data/skill-index/luongnv89_skills.json +1496 -667
  43. package/data/skill-index/mattpocock_skills.json +1900 -655
  44. package/data/skill-index/mvanhorn_last30days-skill.json +153 -0
  45. package/data/skill-index/nextlevelbuilder_ui-ux-pro-max-skill.json +124 -124
  46. package/data/skill-index/obra_superpowers.json +57 -57
  47. package/data/skill-index/romainsimon_paperasse.json +26 -26
  48. package/data/skill-index/rudrankriyam_app-store-connect-cli-skills.json +3726 -0
  49. package/data/skill-index/santifer_career-ops.json +798 -0
  50. package/data/skill-index/sickn33_antigravity-awesome-skills.json +75987 -36692
  51. package/data/skill-index/slavingia_skills.json +38 -38
  52. package/data/skill-index/twostraws_Swift-Concurrency-Agent-Skill.json +147 -0
  53. package/data/skill-index/twostraws_Swift-Testing-Agent-Skill.json +147 -0
  54. package/data/skill-index/twostraws_SwiftData-Agent-Skill.json +147 -0
  55. package/data/skill-index/twostraws_SwiftUI-Agent-Skill.json +147 -0
  56. package/data/skill-index/warpdotdev_oz-skills.json +52 -52
  57. package/data/skill-index/zarazhangrui_follow-builders.json +4 -4
  58. package/data/skill-index-resources.json +173 -2
  59. package/dist/agent-skill-manager.js +512 -402
  60. package/dist/{chunk-APSM2WG3.js → chunk-EOTW3XHQ.js} +1 -1
  61. package/dist/chunk-P5N3FU3P.js +3 -0
  62. package/dist/{chunk-5MMJGI6J.js → chunk-UZ62MVXU.js} +2 -2
  63. package/dist/config-KPT63KLE.js +2 -0
  64. package/dist/{lock-6S53S4SC.js → lock-NOXBNSZW.js} +1 -1
  65. package/dist/{src-NB45CVD2.js → src-IHHUE6TP.js} +1 -1
  66. package/package.json +1 -1
  67. package/dist/chunk-GHPE6SB3.js +0 -3
  68. package/dist/config-FRM3YOMA.js +0 -2
package/README.md CHANGED
@@ -15,690 +15,486 @@
15
15
  <a href="https://nodejs.org"><img src="https://img.shields.io/badge/Node.js-%E2%89%A5%2018-339933.svg" alt="Node.js" /></a>
16
16
  </p>
17
17
 
18
- <h1 align="center">One tool to manage every AI agent's skills</h1>
18
+ # CLI to install and manage agent skills
19
19
 
20
- <p align="center">
21
- Stop juggling skill directories across Claude Code, Codex, Cursor, Windsurf, and 10+ other AI agents.<br/>
22
- <strong>agent-skill-manager</strong> (<code>asm</code>) gives you a single TUI and CLI to install, search, audit, and organize all your agent skills — everywhere.
23
- </p>
24
-
25
- <p align="center">
26
- <a href="#get-started-in-30-seconds"><strong>Get Started in 30 Seconds &rarr;</strong></a>
27
- &nbsp;&nbsp;|&nbsp;&nbsp;
28
- <a href="https://luongnv.com/asm/"><strong>Browse 2,800+ Skills Online &rarr;</strong></a>
29
- </p>
30
-
31
- ---
32
-
33
- ### 🌐 ASM Catalog — Browse Skills in Your Browser
34
-
35
- Don't want to install anything yet? **[Explore the full skill catalog online &rarr;](https://luongnv.com/asm/)**
36
-
37
- Search, filter by category or repo, and copy install commands — all from a single page. No signup, no backend, no tracking. Share filtered views via URL (e.g. `?q=code-review&cat=development`).
38
-
39
- ---
40
-
41
- <p align="center">
42
- <img src="assets/screenshots/tui.png" alt="agent-skill-manager TUI dashboard" width="800" />
43
- </p>
44
-
45
- ---
46
-
47
- ## Your AI agent skills are a mess
20
+ **agent-skill-manager** (`asm`) is a scriptable CLI built for AI agents and automation — install, search, audit, and organize skills across Claude Code, Codex, Cursor, and 16 more tools. Every command supports `--json` and `--yes` for non-interactive use. An optional TUI (`asm`) is available for local browsing.
48
21
 
49
- You use Claude Code at work, Codex for side projects, and OpenClaw for experiments. Each tool keeps skills in its own hidden directory with its own conventions. Here's what that looks like in practice:
22
+ [**Get Started**](#getting-started) · [**Browse 4,300+ skills**](https://luongnv.com/asm/#/skills) · [**Full docs**](#documentation)
50
23
 
51
- - **Skills scattered everywhere** — `~/.claude/skills/`, `~/.codex/skills/`, `~/.openclaw/skills/`, project-level `.claude/skills/`... you have the same skill installed three times and can't remember which version is where
52
- - **No visibility** — there's no quick way to see what's installed, what's duplicated, or what's outdated across all your agents
53
- - **Installing is manual and risky** — you clone repos, copy folders, hope the SKILL.md is valid, and pray you didn't just install something that exfiltrates your codebase
24
+ ## Problems `asm` solves
54
25
 
55
- The more AI agents you use, the worse this gets. Every new tool adds another skill directory to babysit.
26
+ | Pain | Without `asm` | With `asm` |
27
+ | ----------------------- | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
28
+ | Scattered installs | Same skill copied into `~/.claude/skills/`, `~/.codex/skills/`, `~/.cursor/rules/` — different versions, no single view | One `asm list` across all 19 providers and scopes |
29
+ | No inventory | `ls` through hidden dirs; no idea what is installed, duplicated, or outdated | `asm search`, `asm inspect`, `asm stats`, `asm audit` |
30
+ | Risky manual installs | Clone repos, copy folders, hope `SKILL.md` is valid | `asm install` validates frontmatter, scans security, pins registry commits |
31
+ | Agent-unfriendly output | Human-only copy-paste workflows | Structured JSON via `--json`; skip prompts with `--yes` |
32
+ | New agent, new chore | Every tool adds another skill directory to track | Add or disable providers in one config file |
56
33
 
57
- ## `asm` brings order to the chaos
34
+ ## At a glance
58
35
 
59
- **agent-skill-manager** is a single command that manages skills across every AI coding agent you use. One TUI. One CLI. Every agent.
60
-
61
- - **See everything at once** — List, search, and filter skills across all providers and scopes from one dashboard. No more `ls`-ing through hidden directories.
62
- - **Install from GitHub in one command** `asm install github:user/repo` handles cloning, validation, and placement. Supports single-skill repos, multi-skill collections, subfolder URLs, and private repos via SSH.
63
- - **Catch problems before they bite** Built-in security scanning flags dangerous patterns (shell execution, network access, credential exposure, obfuscation) before you install. Duplicate audit finds and cleans redundant skills across providers.
64
- - **Create, test, and publish skills** Scaffold new skills with `asm init`, symlink them for live development with `asm link`, audit for security issues, verify metadata, and publish to the [ASM Registry](https://github.com/luongnv89/asm-registry) with a single command. [See the full local dev workflow &darr;](#build-test-and-ship-your-own-skills)
65
- - **Works with every major agent** 19 providers built-in: Claude Code, Codex, OpenClaw, Cursor, Windsurf, Cline, Roo Code, Continue, GitHub Copilot, Aider, OpenCode, Zed, Augment, Amp, Gemini CLI, Google Antigravity, Pi, Hermes, and a generic Agents provider. Add custom providers in seconds via config.
66
- - **Two interfaces, one tool** — Full interactive TUI with keyboard navigation, search, and detail views. Or use the CLI with `--json` for scripting and automation.
67
-
68
- <p align="center">
69
- <img src="assets/screenshots/asm-stats.png" alt="asm stats — skill statistics across all providers" width="700" />
70
- <br/><em>asm stats — totals, disk usage, and per-provider breakdown at a glance</em>
71
- </p>
36
+ | | |
37
+ | ------------------- | ------------------------------------------------------------------------------ |
38
+ | **Catalog** | 4,394 skills from 54 repos [browse online](https://luongnv.com/asm/#/skills) |
39
+ | **Providers** | 19 agents (Claude, Codex, Cursor, Windsurf, Copilot, …) |
40
+ | **Agent-ready CLI** | `--json`, `--yes`, `--machine` on list, search, install, audit, eval |
41
+ | **Security** | Pre-install scan for shell exec, network access, credential exposure |
42
+ | **License** | MITno accounts, no telemetry |
72
43
 
73
44
  ## How it works
74
45
 
75
- 1. **Install `asm`** — one command via npm or curl
76
- 2. **Run `asm`** — it auto-discovers skills across all configured agent directories
77
- 3. **Manage everything** install, search, inspect, audit, and uninstall skills from the TUI or CLI
78
- 4. **Stay safe** security scan skills before installing, detect duplicates, and clean up with confidence
46
+ ```mermaid
47
+ graph LR
48
+ A[AI agent / script] --> B["asm command --json"]
49
+ B --> C[Discover skill dirs]
50
+ B --> D[Install / audit / search]
51
+ D --> E{Security scan}
52
+ E --> F[Validate SKILL.md]
53
+ F --> G[Agent provider paths]
54
+ H[GitHub / Registry] --> D
55
+ ```
79
56
 
80
- <p align="center">
81
- <a href="#get-started-in-30-seconds"><strong>Start Managing Your Skills &rarr;</strong></a>
82
- </p>
57
+ 1. Install `asm` once (npm or curl).
58
+ 2. Run commands from your agent, shell, or CI — no prompts when you pass `--yes`.
59
+ 3. Parse JSON output to decide what to install, remove, or audit next.
83
60
 
84
- <p align="center">
85
- <img src="assets/screenshots/asm-search-code-review.png" alt="asm search — find installed and available skills" width="700" />
86
- <br/><em>asm search code-review — finds installed skills and suggests new ones from indexed repos</em>
87
- </p>
61
+ ## Features
88
62
 
89
- ---
63
+ | Feature | What you get |
64
+ | ------------------------ | ------------------------------------------------------------------- |
65
+ | Cross-provider inventory | `asm list --json` — every skill, every agent, one response |
66
+ | One-command install | `asm install github:user/repo` or `asm install skill-name` |
67
+ | Agent-parseable output | `--json` on list, search, inspect, install, audit |
68
+ | Duplicate audit | `asm audit --yes` removes redundant skills non-interactively |
69
+ | Security scan | `asm audit security` before install |
70
+ | Authoring pipeline | `asm init`, `asm link`, `asm eval`, `asm publish` |
71
+ | Bundles | `asm bundle install` — curated sets in one pass |
72
+ | Local library | `asm install --library` — install once, `asm activate` per provider |
73
+ | Cross-tool linking | Reinstall or symlink when a skill already exists in another tool |
90
74
 
91
- ## Build, Test, and Ship Your Own Skills
75
+ ## Getting started
92
76
 
93
- `asm` isn't just for consuming skills — it's the complete toolkit for **creating, developing, auditing, and testing skills locally** before you share them.
77
+ Install (npm):
94
78
 
95
- ### 1. Scaffold a new skill
79
+ ```bash
80
+ npm install -g agent-skill-manager
81
+ ```
96
82
 
97
- Interactive mode pick a target tool:
83
+ List installed skills (JSON for agents):
98
84
 
99
85
  ```bash
100
- asm init my-skill
86
+ asm list --json
101
87
  ```
102
88
 
103
- Scaffold directly into Claude Code:
89
+ Install a skill:
104
90
 
105
91
  ```bash
106
- asm init my-skill -p claude
92
+ asm install github:anthropics/skills --yes
107
93
  ```
108
94
 
109
- Scaffold in a custom directory:
95
+ Search installed and catalog skills:
110
96
 
111
97
  ```bash
112
- asm init my-skill --path ./skills
98
+ asm search "code review" --json
113
99
  ```
114
100
 
115
- This creates a `my-skill/SKILL.md` with valid YAML frontmatter and a markdown template ready to fill in.
101
+ Alternative install: `curl -sSL https://raw.githubusercontent.com/luongnv89/agent-skill-manager/main/install.sh | bash`
116
102
 
117
- ### 2. Develop with live reload via symlink
103
+ Node.js 18+ required. Optional TUI: run `asm` with no arguments.
118
104
 
119
- `asm link` creates a symlink from your local skill directory into an agent's skill folder. Because it's a symlink, every edit you make to the source is immediately visible to the agent — no reinstall needed.
105
+ ## Common tasks
120
106
 
121
- #### Target a specific tool
107
+ | Task | Command |
108
+ | -------------------------- | ------------------------------------------------ |
109
+ | Machine-readable inventory | `asm list --json` |
110
+ | Skill metadata for agents | `asm inspect my-skill --json` |
111
+ | Non-interactive install | `asm install code-review -p claude --yes --json` |
112
+ | Remove duplicates | `asm audit --yes` |
113
+ | Scan before install | `asm audit security github:user/repo` |
114
+ | Scaffold a new skill | `asm init my-skill -p claude` |
115
+ | Live dev via symlink | `asm link ./my-skill -p claude` |
116
+ | Publish to registry | `asm publish ./my-skill --yes` |
117
+ | Install a bundle | `asm bundle install frontend-dev --yes` |
122
118
 
123
- ```bash
124
- # Link into Claude Code
125
- asm link ./my-skill -p claude
119
+ Full command reference, flags, and examples: [CLI Commands](#cli-commands). Catalog UI and bundles: [luongnv.com/asm](https://luongnv.com/asm/).
126
120
 
127
- # Link into Codex
128
- asm link ./my-skill -p codex
121
+ ## FAQ
129
122
 
130
- # Interactive — pick the tool from a prompt
131
- asm link ./my-skill
132
- ```
123
+ **Is it free?**
124
+ MIT licensed. No accounts or paywalls.
133
125
 
134
- #### Link multiple skills at once
126
+ **Is this built for AI agents?**
127
+ Yes. Commands return structured JSON (`--json`), accept non-interactive flags (`--yes`, `--machine`), and map to discrete actions an agent can chain — list inventory, search catalog, install, audit, uninstall.
135
128
 
136
- Pass several paths in a single command to link them all in one step:
129
+ **Which agents are supported?**
130
+ 19 providers: Claude Code, Codex, OpenClaw, Cursor, Windsurf, Cline, Roo Code, Continue, GitHub Copilot, Aider, OpenCode, Zed, Augment, Amp, Gemini CLI, Google Antigravity, Pi, Hermes, and a generic Agents provider. Disable any via `asm config edit`.
137
131
 
138
- ```bash
139
- asm link ./skill-a ./skill-b ./skill-c -p claude
140
- ```
132
+ **What about the TUI?**
133
+ Run `asm` with no args for an optional local browser. The CLI is the primary interface for scripts, CI, and agent tool calls.
141
134
 
142
- You can also point at a folder that contains multiple skills (each in its own subdirectory with a `SKILL.md`):
135
+ **Private repos?**
136
+ `asm install github:user/repo --transport ssh --yes`
143
137
 
144
- ```bash
145
- # Link every skill found inside ./my-skills-folder
146
- asm link ./my-skills-folder -p claude
147
- ```
138
+ **SKILL.md format?**
139
+ A directory with `SKILL.md` (YAML frontmatter + markdown body). Run `asm init my-skill` to scaffold one.
148
140
 
149
- #### Override the symlink name
141
+ ## Get started
150
142
 
151
143
  ```bash
152
- asm link ./my-skill --name my-alias -p claude
144
+ npm install -g agent-skill-manager
153
145
  ```
154
146
 
155
- #### Force-overwrite an existing symlink
156
-
157
147
  ```bash
158
- asm link ./my-skill -p claude --force
148
+ asm list --json
159
149
  ```
160
150
 
161
- Edit the source files changes are reflected immediately in the agent. This is the fastest iteration loop for skill development.
151
+ [**Browse catalog**](https://luongnv.com/asm/#/skills) · [**Documentation**](#documentation) · [**Contributing**](CONTRIBUTING.md) · MIT Licensed
162
152
 
163
- ### 3. Audit your skill for security issues
153
+ ---
164
154
 
165
- Audit an installed skill by name:
155
+ <details>
156
+ <summary><strong>Build, test, and ship skills</strong></summary>
157
+
158
+ ### Scaffold
166
159
 
167
160
  ```bash
168
- asm audit security my-skill
161
+ asm init my-skill
169
162
  ```
170
163
 
171
- Audit a local directory:
172
-
173
164
  ```bash
174
- asm audit security ./path/to/my-skill
165
+ asm init my-skill -p claude
175
166
  ```
176
167
 
177
- Audit every installed skill:
178
-
179
168
  ```bash
180
- asm audit security --all
169
+ asm init my-skill --path ./skills
181
170
  ```
182
171
 
183
- The security scanner flags dangerous patterns — shell execution, network access, credential exposure, obfuscation, and external URLs — so you can catch problems before users install your skill.
184
-
185
- ### 4. Inspect and verify metadata
186
-
187
- Check name, version, description, file count:
172
+ ### Develop with live reload
188
173
 
189
174
  ```bash
190
- asm inspect my-skill
175
+ asm link ./my-skill -p claude
191
176
  ```
192
177
 
193
- Machine-readable output for CI:
194
-
195
178
  ```bash
196
- asm inspect my-skill --json
179
+ asm link ./skill-a ./skill-b ./skill-c -p claude
197
180
  ```
198
181
 
199
- ### 5. Test the install flow locally
200
-
201
- Once your skill is on GitHub, verify that end users can install it cleanly.
202
-
203
- Install your own skill as a user would:
204
-
205
182
  ```bash
206
- asm install github:you/awesome-skill
183
+ asm link ./my-skills-folder -p claude
207
184
  ```
208
185
 
209
- Install to a specific tool:
210
-
211
186
  ```bash
212
- asm install github:you/awesome-skill -p claude
187
+ asm link ./my-skill --name my-alias -p claude --force
213
188
  ```
214
189
 
215
- Install a specific skill from a multi-skill repo:
190
+ ### Audit and inspect
216
191
 
217
192
  ```bash
218
- asm install github:you/skills --path skills/awesome-skill
193
+ asm audit security my-skill
219
194
  ```
220
195
 
221
- Force reinstall to test upgrades:
222
-
223
196
  ```bash
224
- asm install github:you/awesome-skill --force
197
+ asm audit security ./path/to/my-skill
225
198
  ```
226
199
 
227
- Non-interactive install (useful for CI):
228
-
229
200
  ```bash
230
- asm install github:you/awesome-skill -p claude --yes --json
201
+ asm audit security --all
231
202
  ```
232
203
 
233
- This catches issues that local development misses — broken repo structure, missing files, invalid frontmatter in a clean install context.
234
-
235
- ### 6. Publish to the ASM Registry
236
-
237
- Once your skill is ready and on GitHub, submit it to the [ASM Registry](https://github.com/luongnv89/asm-registry) so anyone can install it by name:
204
+ ```bash
205
+ asm inspect my-skill
206
+ ```
238
207
 
239
208
  ```bash
240
- asm publish ./my-skill
209
+ asm inspect my-skill --json
241
210
  ```
242
211
 
243
- This runs a security audit, generates a signed manifest, forks the registry, and opens a pull request automatically. Once merged, your skill is globally discoverable:
212
+ ### Test install flow
244
213
 
245
214
  ```bash
246
- # Anyone can install it by name — no URL needed
247
- asm install my-skill
215
+ asm install github:you/awesome-skill
248
216
  ```
249
217
 
250
- Preview what the manifest will look like before submitting:
251
-
252
218
  ```bash
253
- asm publish --dry-run ./my-skill
219
+ asm install github:you/awesome-skill -p claude --force --yes --json
254
220
  ```
255
221
 
256
- Override security warnings (caution: review findings first):
222
+ ### Publish to ASM Registry
257
223
 
258
224
  ```bash
259
- asm publish --force ./my-skill
225
+ asm publish ./my-skill
260
226
  ```
261
227
 
262
- Skip confirmation in CI:
263
-
264
228
  ```bash
265
- asm publish --yes ./my-skill
229
+ asm publish --dry-run ./my-skill
266
230
  ```
267
231
 
268
- > **Requires:** [`gh` CLI](https://cli.github.com) authenticated with `gh auth login`. The publish command uses `gh` to fork the registry, create a branch, write the manifest, and open the PR — all without leaving your terminal.
232
+ Requires [`gh` CLI](https://cli.github.com) authenticated with `gh auth login`.
269
233
 
270
- ### Typical local development workflow
234
+ ### Typical workflow
271
235
 
272
- 1. **Scaffold** — `asm init awesome-skill -p claude`
273
- 2. Edit your `SKILL.md`
274
- 3. **Link for live testing** — `asm link ./awesome-skill -p claude`
275
- 4. Test with your AI agent
276
- 5. **Security audit** — `asm audit security awesome-skill`
277
- 6. **Verify metadata** — `asm inspect awesome-skill`
278
- 7. **Score quality** — `asm eval ./awesome-skill`
236
+ 1. `asm init awesome-skill -p claude`
237
+ 2. Edit `SKILL.md`
238
+ 3. `asm link ./awesome-skill -p claude`
239
+ 4. Test with your agent
240
+ 5. `asm audit security awesome-skill`
241
+ 6. `asm inspect awesome-skill`
242
+ 7. `asm eval ./awesome-skill`
279
243
  8. Push to GitHub
280
- 9. **Verify install flow** — `asm install github:you/awesome-skill`
281
- 10. **Publish to registry** — `asm publish ./awesome-skill`
282
-
283
- Whether you're building skills for yourself or publishing them for the community, `asm` gives you the full create → develop → audit → ship pipeline in one tool.
284
-
285
- ---
286
-
287
- ## Skill Verification
288
-
289
- Skills indexed by `asm` are automatically evaluated against a set of verification criteria. Skills that pass all criteria receive a **verified** badge in the catalog and `"verified": true` in the index JSON. Skills that fail any criterion are still indexed but marked as unverified.
290
-
291
- ### Verification Criteria
292
-
293
- A skill must satisfy **all four** of the following to be verified:
244
+ 9. `asm install github:you/awesome-skill`
245
+ 10. `asm publish ./awesome-skill`
294
246
 
295
- 1. **Valid frontmatter** -- The SKILL.md file must contain YAML frontmatter with both a `name` and a `description` field. Empty or whitespace-only values fail this check.
296
-
297
- 2. **Meaningful body content** -- The markdown body (everything after the frontmatter block) must contain at least 20 characters of instruction text. A SKILL.md that is only frontmatter with no real guidance for the agent will fail.
247
+ </details>
298
248
 
299
- 3. **No malicious patterns** -- The full SKILL.md content is scanned for dangerous code patterns:
300
- - `atob()` calls (runtime base64 decoding / obfuscation)
301
- - Suspicious base64-encoded strings (40+ character base64 blocks with padding)
302
- - Hex-escape sequences (4+ consecutive `\xNN` escapes)
303
- - Hardcoded credentials (`API_KEY`, `SECRET_KEY`, or `PASSWORD` assignments)
249
+ <details>
250
+ <summary><strong>Skill verification and quality eval</strong></summary>
304
251
 
305
- 4. **Proper structure** -- The skill directory must exist and contain a `SKILL.md` file that the ingestion pipeline can read.
252
+ Indexed skills are evaluated automatically. Skills passing all criteria get a **verified** badge in the catalog.
306
253
 
307
- ### How to Reproduce Locally
254
+ **Verification criteria (all required):**
308
255
 
309
- You can verify your skill before publishing:
256
+ 1. Valid frontmatter with `name` and `description`
257
+ 2. Body content with at least 20 characters of instruction text
258
+ 3. No malicious patterns (`atob()`, suspicious base64, hex escapes, hardcoded credentials)
259
+ 4. Directory contains a readable `SKILL.md`
310
260
 
311
261
  ```bash
312
- # Index your repo -- verification runs automatically during ingestion
313
262
  asm index ingest github:your-user/your-repo
263
+ ```
314
264
 
315
- # Check the output JSON for the verified field
265
+ ```bash
316
266
  asm index search "your-skill" --json
317
267
  ```
318
268
 
319
- Each indexed skill in the output JSON includes `"verified": true` or `"verified": false`. If verification fails, the ingestion debug log (set `ASM_DEBUG=1`) prints the specific reasons.
320
-
321
- ### Quality Evaluation (`asm eval`)
322
-
323
- Static verification tells you the SKILL.md is well-formed. `asm eval` goes further: the built-in `quality` provider runs a scored rubric over structure, frontmatter, clarity, prompt engineering, context efficiency, safety, testability, and naming — and emits per-category scores plus concrete suggestions for improvement. Zero setup, zero API keys, zero external binaries.
269
+ **Quality scoring** (`asm eval`) runs a rubric over structure, clarity, safety, and naming:
324
270
 
325
271
  ```bash
326
- # Score the skill and print recommendations
327
272
  asm eval ./my-skill
273
+ ```
328
274
 
329
- # CI-friendly machine-readable output
275
+ ```bash
330
276
  asm eval ./my-skill --machine
277
+ ```
331
278
 
332
- # Apply deterministic auto-fixes to SKILL.md
279
+ ```bash
333
280
  asm eval ./my-skill --fix
281
+ ```
334
282
 
335
- # List registered eval providers
283
+ ```bash
336
284
  asm eval-providers list
337
285
  ```
338
286
 
339
- The eval surface is a pluggable provider framework: each provider implements a common `EvalProvider` contract and resolves via semver range. See [`docs/eval-providers.md`](./docs/eval-providers.md) for the provider model.
287
+ See [`docs/eval-providers.md`](./docs/eval-providers.md) for the provider model.
340
288
 
341
- ---
342
-
343
- ## ASM Registry — Install and Publish Skills by Name
289
+ </details>
344
290
 
345
- The [ASM Registry](https://github.com/luongnv89/asm-registry) is the curated index of community-published skills. Once a skill is listed, anyone can install it by name — no GitHub URL needed.
291
+ <details>
292
+ <summary><strong>ASM Registry</strong></summary>
346
293
 
347
- ### Install from the registry
294
+ The [ASM Registry](https://github.com/luongnv89/asm-registry) lists community-published skills. Install by name — no GitHub URL needed.
348
295
 
349
296
  ```bash
350
- # Install by bare name (searches the registry)
351
297
  asm install code-review
352
-
353
- # Install by scoped name (author/skill — always unambiguous)
354
- asm install luongnv89/code-review
355
-
356
- # Force a fresh registry fetch (bypasses the 1-hour cache)
357
- asm install code-review --no-cache
358
298
  ```
359
299
 
360
- `asm install` resolves the name against the registry index, downloads the manifest, clones the exact pinned commit, and installs the skill to your agent.
361
-
362
- ### Publish your skill to the registry
363
-
364
300
  ```bash
365
- asm publish ./my-skill
366
- ```
367
-
368
- The publish pipeline:
369
-
370
- 1. **Validates** your `SKILL.md` frontmatter (name, description, version)
371
- 2. **Security audit** — blocks dangerous skills automatically; warns on risky patterns
372
- 3. **Generates a manifest** with the current commit SHA and a `skill_path` for multi-skill repos
373
- 4. **Opens a PR** against [luongnv89/asm-registry](https://github.com/luongnv89/asm-registry) via the `gh` CLI
374
-
375
- The registry CI validates schema, checks author identity, runs a duplicate check, typosquat detection, and an independent security scan before any maintainer reviews. Once merged, the index rebuilds automatically and your skill is live.
376
-
377
- | Flag | Description |
378
- | ----------- | ------------------------------------------ |
379
- | `--dry-run` | Preview the manifest without creating a PR |
380
- | `--force` | Override warning-level security findings |
381
- | `--yes` | Skip the confirmation prompt |
382
- | `--machine` | Output as a machine-readable JSON envelope |
383
-
384
- ### How registry resolution works
385
-
386
- When you run `asm install code-review`:
387
-
388
- 1. `asm` fetches the registry index (cached for 1 hour at `~/.config/agent-skill-manager/registry-cache.json`)
389
- 2. Finds the manifest for `code-review` — including the pinned `commit` and `skill_path`
390
- 3. Clones the repository at that exact commit and navigates to the skill subdirectory
391
- 4. Installs as if you had run `asm install github:author/repo#commit:skill_path`
392
-
393
- If multiple authors publish a skill with the same name, `asm` shows a disambiguation prompt. Use a scoped name (`author/skill`) to skip it.
394
-
395
- ---
396
-
397
- ## Get Started in 30 Seconds
398
-
399
- ### npm (recommended)
400
-
401
- ```bash
402
- npm install -g agent-skill-manager
301
+ asm install luongnv89/code-review
403
302
  ```
404
303
 
405
- > Runs on **Node.js ≥ 18** for both the CLI and the interactive TUI. No other runtime required.
406
-
407
- ### One-liner install
408
-
409
304
  ```bash
410
- curl -sSL https://raw.githubusercontent.com/luongnv89/agent-skill-manager/main/install.sh | bash
305
+ asm install code-review --no-cache
411
306
  ```
412
307
 
413
- This installs `agent-skill-manager` globally. Then just run:
414
-
415
308
  ```bash
416
- asm
309
+ asm publish ./my-skill
417
310
  ```
418
311
 
419
- <p align="center">
420
- <a href="#cli-commands"><strong>See All Commands &rarr;</strong></a>
421
- </p>
422
-
423
- <a id="troubleshooting"></a>
424
-
425
- ### Shadowed installs
426
-
427
- If you have multiple `asm` binaries on `PATH` (for example, a leftover install from an older package manager), shells resolve whichever appears first and a fresh upgrade can be silently shadowed.
428
-
429
- **Diagnose:** `asm --version` detects and warns when it sees multiple `asm` binaries on `PATH`. For a full report, run `asm doctor` — it lists the resolved path and any shadowed installs.
312
+ | Flag | Description |
313
+ | ----------- | ---------------------------------------- |
314
+ | `--dry-run` | Preview manifest without creating a PR |
315
+ | `--force` | Override warning-level security findings |
316
+ | `--yes` | Skip confirmation |
317
+ | `--machine` | JSON output |
430
318
 
431
- **Fix:** remove the stale install with your package manager, then re-run `asm --version` to confirm only one binary is left.
319
+ **Resolution flow:** fetch index (1-hour cache) find manifest with pinned commit clone at exact commit install.
432
320
 
433
- ---
434
-
435
- ## Open-Source Skill Collections
321
+ </details>
436
322
 
437
- A curated list of skill repositories you can install with a single command. Over **2,800 skills** available across these collections:
323
+ <details>
324
+ <summary><strong>Open-source skill collections</strong></summary>
438
325
 
439
- > **Last updated:** 2026-03-28
326
+ Over **2,800 skills** across curated repositories. Use `asm search <term>` to discover, then `asm install github:owner/repo`.
440
327
 
441
- | Repository | Description | Stars | Skills |
442
- | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------- | -----: | -----: |
443
- | [anthropic-skills](https://github.com/anthropics/skills) | Official Agent Skills from Anthropic | 95,957 | 18 |
444
- | [superpowers](https://github.com/obra/superpowers) | Agentic skills framework & development methodology | 89,816 | 14 |
445
- | [everything-claude-code](https://github.com/affaan-m/everything-claude-code) | Performance optimization system for Claude Code, Codex, and beyond | 81,392 | 183 |
446
- | [agency-agents](https://github.com/msitarzewski/agency-agents) | Specialized expert agents with personality and proven deliverables | 50,749 | — |
447
- | [ui-ux-pro-max-skill](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill) | Design intelligence for building professional UI/UX | 43,112 | 7 |
448
- | [antigravity-awesome-skills](https://github.com/sickn33/antigravity-awesome-skills) | 1,000+ battle-tested skills for Claude Code, Cursor, and more | 25,047 | 1,322 |
449
- | [marketingskills](https://github.com/coreyhaines31/marketingskills) | Marketing skills — CRO, copywriting, SEO, analytics, growth | 14,099 | 33 |
450
- | [agentskills](https://github.com/agentskills/agentskills) | Specification and documentation for Agent Skills | 13,342 | — |
451
- | [claude-skills](https://github.com/alirezarezvani/claude-skills) | 192 skills for engineering, marketing, product, compliance, C-level | 7,434 | 451 |
452
- | [taste-skill](https://github.com/Leonxlnx/taste-skill) | Gives your AI good taste — stops generic, boring output | 3,389 | 7 |
453
- | [affiliate-skills](https://github.com/Affitor/affiliate-skills) | Full affiliate marketing funnel: research to deploy | 99 | 48 |
454
- | [skills](https://github.com/luongnv89/skills) | Reusable skills to supercharge your AI agents | 1 | 35 |
328
+ > Last updated: 2026-07-07
455
329
 
456
- Install any collection with an interactive picker:
330
+ | Repository | Description | Stars | Skills |
331
+ | ----------------------------------------------------------------------------------- | ----------------------------------------------- | -----: | -----: |
332
+ | [anthropic-skills](https://github.com/anthropics/skills) | Official Agent Skills from Anthropic | 95,957 | 18 |
333
+ | [superpowers](https://github.com/obra/superpowers) | Agentic skills framework | 89,816 | 14 |
334
+ | [everything-claude-code](https://github.com/affaan-m/everything-claude-code) | Performance optimization for Claude Code, Codex | 81,392 | 183 |
335
+ | [agency-agents](https://github.com/msitarzewski/agency-agents) | Specialized expert agents | 50,749 | — |
336
+ | [ui-ux-pro-max-skill](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill) | Design intelligence for UI/UX | 43,112 | 7 |
337
+ | [antigravity-awesome-skills](https://github.com/sickn33/antigravity-awesome-skills) | 1,000+ skills for Claude Code, Cursor | 25,047 | 1,322 |
338
+ | [marketingskills](https://github.com/coreyhaines31/marketingskills) | Marketing — CRO, SEO, growth | 14,099 | 33 |
339
+ | [agentskills](https://github.com/agentskills/agentskills) | Agent Skills specification | 13,342 | — |
340
+ | [claude-skills](https://github.com/alirezarezvani/claude-skills) | 192 skills across engineering, marketing | 7,434 | 451 |
341
+ | [taste-skill](https://github.com/Leonxlnx/taste-skill) | Stops generic AI output | 3,389 | 7 |
342
+ | [affiliate-skills](https://github.com/Affitor/affiliate-skills) | Affiliate marketing funnel | 99 | 48 |
343
+ | [skills](https://github.com/luongnv89/skills) | Reusable agent skills | 1 | 35 |
457
344
 
458
345
  ```bash
459
346
  asm install github:anthropics/skills
460
347
  ```
461
348
 
462
- Or install everything at once:
463
-
464
349
  ```bash
465
350
  asm install github:anthropics/skills --all
466
351
  ```
467
352
 
468
- <p align="center">
469
- <img src="assets/screenshots/asm-inspect-oss-ready.png" alt="asm inspect — detailed skill information" width="700" />
470
- <br/><em>asm inspect oss-ready — version, creator, and every tool installation at once</em>
471
- </p>
472
-
473
- ---
474
-
475
- ## Supported Agent Tools
476
-
477
- `asm` ships with **19 built-in providers**, all enabled by default. Disable any you don't need via `asm config edit`.
478
-
479
- | Tool | Global Path | Project Path | Default |
480
- | ------------------ | --------------------------------- | ----------------------- | :-----: |
481
- | Claude Code | `~/.claude/skills/` | `.claude/skills/` | enabled |
482
- | Codex | `~/.codex/skills/` | `.codex/skills/` | enabled |
483
- | OpenClaw | `~/.openclaw/skills/` | `.openclaw/skills/` | enabled |
484
- | Agents (generic) | `~/.agents/skills/` | `.agents/skills/` | enabled |
485
- | Cursor | `~/.cursor/rules/` | `.cursor/rules/` | enabled |
486
- | Windsurf | `~/.windsurf/rules/` | `.windsurf/rules/` | enabled |
487
- | Cline | `~/Documents/Cline/Rules/` | `.clinerules/` | enabled |
488
- | Roo Code | `~/.roo/rules/` | `.roo/rules/` | enabled |
489
- | Continue | `~/.continue/rules/` | `.continue/rules/` | enabled |
490
- | GitHub Copilot | `~/.github/instructions/` | `.github/instructions/` | enabled |
491
- | Aider | `~/.aider/skills/` | `.aider/skills/` | enabled |
492
- | OpenCode | `~/.config/opencode/skills/` | `.opencode/skills/` | enabled |
493
- | Zed | `~/.config/zed/prompt_overrides/` | `.zed/rules/` | enabled |
494
- | Augment | `~/.augment/rules/` | `.augment/rules/` | enabled |
495
- | Amp | `~/.amp/skills/` | `.amp/skills/` | enabled |
496
- | Gemini CLI | `~/.gemini/skills/` | `.gemini/skills/` | enabled |
497
- | Google Antigravity | `~/.antigravity/skills/` | `.antigravity/skills/` | enabled |
498
- | Pi | `~/.pi/skills/` | `.pi/skills/` | enabled |
499
- | Hermes | `~/.hermes/skills/` | `.hermes/skills/` | enabled |
500
-
501
- Disable a provider — opens config in `$EDITOR`, set `"enabled": false` for any provider:
502
-
503
- ```bash
504
- asm config edit
505
- ```
506
-
507
- Need a tool not listed? Add a custom provider entry to the config.
508
-
509
- ---
510
-
511
- ## FAQ
512
-
513
- **Is it free?**
514
- Yes. `asm` is MIT licensed and free forever. No accounts, no telemetry, no paywalls.
515
-
516
- **Is it actively maintained?**
517
- Yes — actively developed with frequent tagged releases (46 and counting, latest v2.11.0). Check the [changelog](docs/CHANGELOG.md) for the full history.
518
-
519
- **Which AI agents does it support?**
520
- 19 providers built-in: Claude Code, Codex, OpenClaw, Cursor, Windsurf, Cline, Roo Code, Continue, GitHub Copilot, Aider, OpenCode, Zed, Augment, Amp, Gemini CLI, Google Antigravity, Pi, Hermes, and a generic Agents provider. All 19 are enabled by default; disable any you don't need via `asm config edit`. You can also add any custom agent that stores skills as directories with a `SKILL.md` file.
521
-
522
- **How does it compare to managing skills manually?**
523
- Manual management means remembering where each agent stores skills, cloning repos by hand, checking for duplicates yourself, and having no security scanning. `asm` automates all of that with one command.
524
-
525
- <p align="center">
526
- <img src="assets/screenshots/asm-audit.png" alt="asm audit — duplicate detection across providers" width="700" />
527
- <br/><em>asm audit — finds duplicate groups and tells you exactly which to keep</em>
528
- </p>
529
-
530
- **Can I use it with private repos?**
531
- Yes. Use `--transport ssh` or `--transport auto` to clone private repos via SSH.
532
-
533
- **Is it safe to install skills from GitHub?**
534
- `asm` includes built-in security scanning that flags dangerous patterns (shell execution, network access, credential exposure, obfuscation) before installation. Run `asm audit security github:user/repo` to scan any skill before installing.
535
-
536
- <p align="center">
537
- <img src="assets/screenshots/asm-audit-security-oss-ready.png" alt="asm audit security — security scanning report" width="700" />
538
- <br/><em>asm audit security oss-ready — flags external URLs, shell execution, and credential access</em>
539
- </p>
353
+ </details>
540
354
 
541
- **What's the SKILL.md format?**
542
- Every skill is a directory containing a `SKILL.md` file with YAML frontmatter (name, description, version) followed by markdown instructions the AI agent loads at runtime. Run `asm init my-skill` to scaffold one.
355
+ <details>
356
+ <summary><strong>Supported agent tools</strong></summary>
357
+
358
+ 19 built-in providers, all enabled by default. Disable via `asm config edit`.
359
+
360
+ | Tool | Global Path | Project Path |
361
+ | ------------------ | --------------------------------- | ----------------------- |
362
+ | Claude Code | `~/.claude/skills/` | `.claude/skills/` |
363
+ | Codex | `~/.codex/skills/` | `.codex/skills/` |
364
+ | OpenClaw | `~/.openclaw/skills/` | `.openclaw/skills/` |
365
+ | Agents (generic) | `~/.agents/skills/` | `.agents/skills/` |
366
+ | Cursor | `~/.cursor/rules/` | `.cursor/rules/` |
367
+ | Windsurf | `~/.windsurf/rules/` | `.windsurf/rules/` |
368
+ | Cline | `~/Documents/Cline/Rules/` | `.clinerules/` |
369
+ | Roo Code | `~/.roo/rules/` | `.roo/rules/` |
370
+ | Continue | `~/.continue/rules/` | `.continue/rules/` |
371
+ | GitHub Copilot | `~/.github/instructions/` | `.github/instructions/` |
372
+ | Aider | `~/.aider/skills/` | `.aider/skills/` |
373
+ | OpenCode | `~/.config/opencode/skills/` | `.opencode/skills/` |
374
+ | Zed | `~/.config/zed/prompt_overrides/` | `.zed/rules/` |
375
+ | Augment | `~/.augment/rules/` | `.augment/rules/` |
376
+ | Amp | `~/.amp/skills/` | `.amp/skills/` |
377
+ | Gemini CLI | `~/.gemini/skills/` | `.gemini/skills/` |
378
+ | Google Antigravity | `~/.antigravity/skills/` | `.antigravity/skills/` |
379
+ | Pi | `~/.pi/skills/` | `.pi/skills/` |
380
+ | Hermes | `~/.hermes/skills/` | `.hermes/skills/` |
381
+
382
+ Add custom providers in config.
543
383
 
544
- ---
384
+ </details>
545
385
 
546
- ## Start Managing Your Skills Today
386
+ <details>
387
+ <summary><strong>Troubleshooting: shadowed installs</strong></summary>
547
388
 
548
- You're already using AI agents. You're already installing skills. The only question is whether you keep doing it manually — or let `asm` handle it.
389
+ Multiple `asm` binaries on `PATH` can shadow a fresh upgrade.
549
390
 
550
- MIT licensed. Free forever. One install command.
391
+ **Diagnose:** `asm --version` warns about multiple binaries. Run `asm doctor` for a full report.
551
392
 
552
- <p align="center">
553
- <a href="#get-started-in-30-seconds"><strong>Install agent-skill-manager &rarr;</strong></a>
554
- </p>
393
+ **Fix:** Remove the stale install with your package manager, then confirm with `asm --version`.
555
394
 
556
- ---
395
+ </details>
557
396
 
558
- <details>
397
+ <details id="cli-commands">
559
398
  <summary><strong>CLI Commands</strong></summary>
560
399
 
561
- ### Interactive TUI
562
-
563
- ```bash
564
- asm
565
- ```
566
-
567
400
  ### Commands
568
401
 
569
- | Command | Description |
570
- | ------------------------------- | ----------------------------------------------------- |
571
- | `asm list` | List all discovered skills |
572
- | `asm search <query>` | Search by name/description/provider |
573
- | `asm inspect <skill-name>` | Show detailed info for a skill |
574
- | `asm install <source>` | Install a skill from GitHub or the registry |
575
- | `asm publish [path]` | Publish a skill to the ASM Registry |
576
- | `asm uninstall <skill-name>` | Remove a skill (with confirmation) |
577
- | `asm init <name>` | Scaffold a new skill with SKILL.md template |
578
- | `asm link <path> [<path2> ...]` | Symlink one or more local skills for live development |
579
- | `asm audit` | Detect duplicate skills |
580
- | `asm audit security <name>` | Run security audit on a skill |
581
- | `asm eval <skill>` | Score a skill and print improvement suggestions |
582
- | `asm eval-providers list` | List registered eval providers and versions |
583
- | `asm stats` | Show aggregate skill metrics dashboard |
584
- | `asm export` | Export skill inventory as JSON manifest |
585
- | `asm index ingest <repo>` | Index a skill repo for searching |
586
- | `asm index search <query>` | Search indexed skills |
587
- | `asm index list` | List indexed repositories |
588
- | `asm index remove <owner/repo>` | Remove a repo from the index |
589
- | `asm bundle list` | List saved or pre-defined bundles (`--predefined`) |
590
- | `asm bundle install <name>` | Install every skill in a bundle in one pass |
591
- | `asm bundle create <name>` | Create a bundle from installed skills |
592
- | `asm bundle show <name>` | Show bundle details and skill list |
593
- | `asm bundle modify <name>` | Add/remove skills or update bundle metadata |
594
- | `asm bundle export <name>` | Export a bundle to a JSON file |
595
- | `asm bundle remove <name>` | Remove a saved bundle |
596
- | `asm config show` | Print current config |
597
- | `asm config path` | Print config file path |
598
- | `asm config reset` | Reset config to defaults |
599
- | `asm config edit` | Open config in $EDITOR |
600
-
601
- ### Global Options
402
+ | Command | Description |
403
+ | ------------------------------- | ------------------------------------ | ----------------------------------------- |
404
+ | `asm list` | List all discovered skills |
405
+ | `asm search <query>` | Search by name/description/provider |
406
+ | `asm inspect <skill-name>` | Show detailed info for a skill |
407
+ | `asm install <source>` | Install from GitHub or registry |
408
+ | `asm publish [path]` | Publish to ASM Registry |
409
+ | `asm uninstall <skill-name>` | Remove a skill |
410
+ | `asm init <name>` | Scaffold a new skill |
411
+ | `asm link <path> [<path2> ...]` | Symlink skills for live dev |
412
+ | `asm audit` | Detect duplicate skills |
413
+ | `asm audit security <name>` | Security audit |
414
+ | `asm eval <skill>` | Score skill quality |
415
+ | `asm eval-providers list` | List eval providers |
416
+ | `asm stats` | Aggregate installed skill metrics |
417
+ | `asm stats repo <repo>` | Per-repo indexed skill stats |
418
+ | `asm stats author <owner>` | Per-author indexed skill stats |
419
+ | `asm stats index` | Indexed catalog stats summary |
420
+ | `asm activate <skill>` | Link a library skill into a provider |
421
+ | `asm deactivate <skill>` | Remove a library activation symlink |
422
+ | `asm library list | update` | Manage centrally installed library skills |
423
+ | `asm export` | Export inventory as JSON |
424
+ | `asm index ingest <repo>` | Index a skill repo |
425
+ | `asm index search <query>` | Search indexed skills |
426
+ | `asm index list` | List indexed repos |
427
+ | `asm index remove <owner/repo>` | Remove repo from index |
428
+ | `asm bundle list` | List bundles (`--predefined`) |
429
+ | `asm bundle install <name>` | Install every skill in a bundle |
430
+ | `asm bundle create <name>` | Create bundle from installed skills |
431
+ | `asm bundle show <name>` | Show bundle details |
432
+ | `asm bundle modify <name>` | Add/remove skills |
433
+ | `asm bundle export <name>` | Export bundle to JSON |
434
+ | `asm bundle remove <name>` | Remove saved bundle |
435
+ | `asm config show` | Print config |
436
+ | `asm config path` | Print config path |
437
+ | `asm config reset` | Reset to defaults |
438
+ | `asm config edit` | Open config in `$EDITOR` |
439
+
440
+ ### Global options
602
441
 
603
442
  ```text
604
- -h, --help Show help for any command
605
- -v, --version Print version and exit
606
- --json Output as JSON (list, search, inspect, audit)
607
- -s, --scope <scope> Filter: global, project, or both (default: both)
608
- --sort <field> Sort by: name, version, or location (default: name)
609
- -y, --yes Skip confirmation prompts
443
+ -h, --help Show help
444
+ -v, --version Print version
445
+ --json JSON output
446
+ -s, --scope <scope> global, project, or both
447
+ --sort <field> name, version, or location
448
+ -y, --yes Skip confirmations
610
449
  --no-color Disable ANSI colors
611
450
  ```
612
451
 
613
452
  ### Examples
614
453
 
615
- List all global skills sorted by provider location:
616
-
617
454
  ```bash
618
455
  asm list --scope global --sort location
619
456
  ```
620
457
 
621
- When you have many skills installed, `asm list` offers condensed views:
622
-
623
458
  ```bash
624
- asm list --summary # counts by tool/scope/effort only
625
- asm list --compact # one line per skill
626
- asm list --group-by tool # group rows under tool headers
627
- asm list --limit 20 # show only the first 20 rows
459
+ asm list --summary
628
460
  ```
629
461
 
630
- Search for skills and output JSON:
631
-
632
462
  ```bash
633
- asm search "code review" --json
463
+ asm list --compact --group-by tool --limit 20
634
464
  ```
635
465
 
636
- Inspect a specific skill:
637
-
638
466
  ```bash
639
- asm inspect my-skill
467
+ asm search "code review" --json
640
468
  ```
641
469
 
642
- Remove duplicates automatically:
643
-
644
470
  ```bash
645
471
  asm audit --yes
646
472
  ```
647
473
 
648
- Security audit a skill before installing:
649
-
650
474
  ```bash
651
475
  asm audit security github:user/repo
652
476
  ```
653
477
 
654
- Audit all installed skills:
655
-
656
478
  ```bash
657
479
  asm audit security --all
658
480
  ```
659
481
 
660
- Score a skill with the static quality provider:
661
-
662
482
  ```bash
663
483
  asm eval ./my-skill
664
484
  ```
665
485
 
666
- List registered eval providers:
667
-
668
- ```bash
669
- asm eval-providers list
670
- ```
671
-
672
- Scaffold a skill, link it for live testing, audit, and inspect:
673
-
674
486
  ```bash
675
487
  asm init my-skill -p claude
676
488
  ```
677
489
 
678
490
  ```bash
679
- # Link globally (available in all projects)
680
491
  asm link ./my-skill -p claude
681
-
682
- # Link multiple skills at once
683
- asm link ./skill-a ./skill-b -p claude
684
- ```
685
-
686
- ```bash
687
- asm audit security my-skill
688
492
  ```
689
493
 
690
- ```bash
691
- asm inspect my-skill --json
692
- ```
693
-
694
- Uninstall without confirmation:
695
-
696
494
  ```bash
697
495
  asm uninstall old-skill --yes
698
496
  ```
699
497
 
700
- Index a skill repo and search it:
701
-
702
498
  ```bash
703
499
  asm index ingest github:anthropics/skills
704
500
  ```
@@ -707,41 +503,33 @@ asm index ingest github:anthropics/skills
707
503
  asm index search "frontend design" --json
708
504
  ```
709
505
 
710
- **Skill bundles** — install a curated set of skills in one command. Pre-defined bundles ship with ASM for common workflows (frontend, devops, iOS release, content writing). Browse them at [luongnv.com/asm/bundles](https://luongnv.com/asm/bundles/) or list them locally:
506
+ **Bundles** — pre-defined sets for common workflows. Browse at [luongnv.com/asm/#/bundles](https://luongnv.com/asm/#/bundles):
711
507
 
712
508
  ```bash
713
509
  asm bundle list --predefined
714
510
  ```
715
511
 
716
- Install every skill in a pre-defined bundle:
717
-
718
512
  ```bash
719
513
  asm bundle install frontend-dev
720
514
  ```
721
515
 
722
- Install from a bundle file (custom or shared):
723
-
724
516
  ```bash
725
517
  asm bundle install ./my-bundle.json
726
518
  ```
727
519
 
728
- Build a custom bundle from your installed skills, then export it to share:
729
-
730
520
  ```bash
731
521
  asm bundle create my-workflow
732
522
  asm bundle export my-workflow ./my-workflow.json
733
523
  ```
734
524
 
735
- A bundle is a JSON file with a `name`, `description`, `author`, and a list of `skills` (each with `name` + `installUrl`). The schema is validated on install — see `src/utils/types.ts` (`BundleManifest`). You can also assemble a custom bundle visually on the website's [/bundles](https://luongnv.com/asm/bundles/) page and export it as JSON.
525
+ **iOS/Swift catalog:** ASM indexes public Swift/Apple skill repos. Use `asm bundle install ios-release` or search for `swift`, `swiftui`, `swift testing`, `uikit`, `swiftdata`, `app store connect`.
736
526
 
737
527
  </details>
738
528
 
739
529
  <details>
740
- <summary><strong>Installing Skills from GitHub</strong></summary>
530
+ <summary><strong>Installing skills from GitHub</strong></summary>
741
531
 
742
- Install skills directly from GitHub repositories — supports both single-skill repos and multi-skill collections.
743
-
744
- **Single-skill repo** (SKILL.md at root):
532
+ **Single-skill repo:**
745
533
 
746
534
  ```bash
747
535
  asm install github:user/my-skill
@@ -751,7 +539,7 @@ asm install github:user/my-skill
751
539
  asm install github:user/my-skill#v1.0.0 -p claude
752
540
  ```
753
541
 
754
- **Multi-skill repo** (skills in subdirectories):
542
+ **Multi-skill repo:**
755
543
 
756
544
  ```bash
757
545
  asm install github:user/skills --path skills/code-review
@@ -761,13 +549,7 @@ asm install github:user/skills --path skills/code-review
761
549
  asm install github:user/skills --all -p claude -y
762
550
  ```
763
551
 
764
- Interactive picker:
765
-
766
- ```bash
767
- asm install github:user/skills
768
- ```
769
-
770
- **Subfolder URL** (auto-detects branch and path):
552
+ **Subfolder URL:**
771
553
 
772
554
  ```bash
773
555
  asm install https://github.com/user/skills/tree/main/skills/agent-config
@@ -777,91 +559,67 @@ asm install https://github.com/user/skills/tree/main/skills/agent-config
777
559
  asm install github:user/skills#main:skills/agent-config
778
560
  ```
779
561
 
780
- **Private repos** (SSH transport):
562
+ **Private repos:**
781
563
 
782
564
  ```bash
783
565
  asm install github:user/private-skill --transport ssh
784
566
  ```
785
567
 
786
- Try HTTPS, fallback to SSH:
787
-
788
568
  ```bash
789
569
  asm install github:user/private-skill -t auto
790
570
  ```
791
571
 
792
- **Vercel skills CLI** (delegates to `npx skills add`, then registers in asm):
572
+ **Vercel skills CLI:**
793
573
 
794
574
  ```bash
795
575
  asm install github:user/skills --method vercel --skill my-skill
796
576
  ```
797
577
 
798
- ```bash
799
- asm install https://github.com/user/skills -m vercel --skill my-skill -y
800
- ```
801
-
802
- **Other options:**
578
+ | Flag | Description |
579
+ | ------------------------ | ------------------------------ |
580
+ | `-p, --tool <name>` | Target agent |
581
+ | `--name <name>` | Override directory name |
582
+ | `--path <subdir>` | Install from subdirectory |
583
+ | `--all` | Install all skills in repo |
584
+ | `-m, --method <method>` | `default` or `vercel` |
585
+ | `-t, --transport <mode>` | `https`, `ssh`, or `auto` |
586
+ | `--library` | Install into the local library |
587
+ | `-f, --force` | Overwrite existing |
588
+ | `-y, --yes` | Skip confirmation |
589
+ | `--json` | JSON output |
803
590
 
804
- ```bash
805
- asm install github:user/my-skill --name custom-name
806
- ```
807
-
808
- ```bash
809
- asm install github:user/my-skill --force
810
- ```
811
-
812
- ```bash
813
- asm install github:user/my-skill -p claude --yes --json
814
- ```
815
-
816
- **Source format:** `github:owner/repo[#branch-or-tag]` or `github:owner/repo#ref:path` for subfolder installs. HTTPS GitHub URLs with `/tree/` paths are also supported — the branch and subfolder are auto-detected.
817
-
818
- **Install flags:**
819
-
820
- | Flag | Description |
821
- | ------------------------ | ---------------------------------------------------------- |
822
- | `-p, --tool <name>` | Target tool (claude, codex, cursor, windsurf, etc.) |
823
- | `--name <name>` | Override skill directory name |
824
- | `--path <subdir>` | Install a specific skill from a subdirectory |
825
- | `--all` | Install all skills found in the repo |
826
- | `-m, --method <method>` | Install method: `default` or `vercel` (default: `default`) |
827
- | `--skill <name>` | Alias for `--path` (Vercel skills CLI compatibility) |
828
- | `-t, --transport <mode>` | Transport: `https`, `ssh`, or `auto` (default: `auto`) |
829
- | `-f, --force` | Overwrite if skill already exists |
830
- | `-y, --yes` | Skip confirmation prompt |
831
- | `--json` | Output result as JSON |
832
-
833
- **Multi-skill repo support:** `asm` scans for skills in subdirectories (up to 5 levels deep). Repos with only nested skills use that scan by default. Repos with **both** a root `SKILL.md` and nested skills install the root skill by default; use `--all` to install every discovered skill (root plus nested). In interactive mode, discovery shows a numbered picker. Use `--path` to target a specific skill.
834
-
835
- **Indexing (`asm index ingest` / `npm run preindex`):** Discovery always includes a root `SKILL.md` when present **and** any nested skills in subdirectories, so curated indexes do not silently drop skills when a repo adds a root-level skill.
836
-
837
- The install command clones the repository, validates `SKILL.md` files, scans for security warnings, previews skill metadata, and installs to the selected provider's global skill directory. Requires `git` on PATH.
591
+ Multi-skill repos: scans up to 5 levels deep. Root `SKILL.md` installs by default; use `--all` for every skill. Requires `git` on PATH.
838
592
 
839
593
  </details>
840
594
 
841
595
  <details>
842
- <summary><strong>TUI Keyboard Shortcuts</strong></summary>
843
-
844
- | Key | Action |
845
- | -------------- | ------------------------------------- |
846
- | `↑/↓` or `j/k` | Navigate skill list |
847
- | `Enter` | View skill details |
848
- | `d` | Uninstall selected skill |
849
- | `/` | Search / filter skills |
850
- | `Esc` | Back / clear filter / close dialog |
851
- | `Tab` | Cycle scope: Global → Project → Both |
852
- | `s` | Cycle sort: Name → Version → Location |
853
- | `r` | Refresh / rescan skills |
854
- | `c` | Open configuration |
855
- | `a` | Audit duplicates |
856
- | `q` | Quit |
857
- | `?` | Toggle help overlay |
596
+ <summary><strong>Optional TUI (run <code>asm</code> with no args)</strong></summary>
597
+
598
+ Local browser for skills. The CLI above is the primary interface for agents and automation.
599
+
600
+ ### Keyboard shortcuts
601
+
602
+ | Key | Action |
603
+ | -------------- | ---------------- |
604
+ | `↑/↓` or `j/k` | Navigate list |
605
+ | `Enter` | View details |
606
+ | `d` | Uninstall |
607
+ | `/` | Search / filter |
608
+ | `Esc` | Back / clear |
609
+ | `Tab` | Cycle scope |
610
+ | `s` | Cycle sort |
611
+ | `r` | Refresh |
612
+ | `c` | Configuration |
613
+ | `a` | Audit duplicates |
614
+ | `q` | Quit |
615
+ | `?` | Help |
858
616
 
859
617
  </details>
860
618
 
861
619
  <details>
862
620
  <summary><strong>Configuration</strong></summary>
863
621
 
864
- On first run, a config file is created at `~/.config/agent-skill-manager/config.json` with 19 default providers, all enabled:
622
+ On first run, config is created at `~/.config/agent-skill-manager/config.json`:
865
623
 
866
624
  ```json
867
625
  {
@@ -995,26 +753,22 @@ On first run, a config file is created at `~/.config/agent-skill-manager/config.
995
753
  }
996
754
  ```
997
755
 
998
- - **Enable providers** — Set `"enabled": true` to start scanning a provider
999
- - **Custom paths** — Add arbitrary directories via `customPaths`
1000
- - **Disable providers** — Set `"enabled": false` to skip scanning a provider
1001
- - **Preferences** Set default scope and sort order
1002
-
1003
- Manage config from the CLI (`asm config show|path|reset|edit`) or toggle providers in the TUI by pressing `c`.
756
+ - Set `"enabled": true` to start scanning a provider
757
+ - Add arbitrary directories via `customPaths`
758
+ - Set `"enabled": false` to skip a provider
759
+ - Manage via `asm config show|path|reset|edit` or press `c` in the TUI
1004
760
 
1005
761
  </details>
1006
762
 
1007
763
  <details>
1008
- <summary><strong>SKILL.md Format</strong></summary>
764
+ <summary><strong>SKILL.md format</strong></summary>
1009
765
 
1010
- Every skill is a directory containing a `SKILL.md` file. The file starts with a YAML frontmatter block followed by markdown instructions that the AI agent loads at runtime.
1011
-
1012
- ### Frontmatter
766
+ Every skill is a directory with a `SKILL.md` file YAML frontmatter plus markdown instructions.
1013
767
 
1014
768
  ```yaml
1015
769
  ---
1016
770
  name: my-skill
1017
- description: "A short description of what this skill does"
771
+ description: "What this skill does"
1018
772
  license: "MIT"
1019
773
  compatibility: "Claude Code, Codex"
1020
774
  allowed-tools: Bash Read Grep Glob WebFetch
@@ -1025,47 +779,21 @@ metadata:
1025
779
  ---
1026
780
  ```
1027
781
 
1028
- | Field | Required | Description |
1029
- | ------------------ | :------: | --------------------------------------------------- |
1030
- | `name` | yes | Unique skill identifier (used in list/search) |
1031
- | `description` | yes | One-line summary shown in listings |
1032
- | `license` | no | SPDX license identifier (e.g., `MIT`, `Apache-2.0`) |
1033
- | `compatibility` | no | Comma-separated list of compatible AI agents |
1034
- | `allowed-tools` | no | Space or comma-delimited tool names the skill uses |
1035
- | `effort` | no | Effort level: `low`, `medium`, `high`, or `max` |
1036
- | `metadata.version` | no | Semver version string (defaults to `0.0.0`) |
1037
- | `metadata.creator` | no | Author name and optional email |
1038
-
1039
- > **Version resolution:** `asm` prefers `metadata.version` over a top-level `version` field. If neither is present, the version defaults to `0.0.0`. Both formats are supported for backward compatibility.
1040
-
1041
- ### Body
1042
-
1043
- The markdown body after the frontmatter is loaded by the AI agent as the skill's instructions. A typical structure:
1044
-
1045
- ```markdown
1046
- # my-skill
1047
-
1048
- Describe what this skill does here.
1049
-
1050
- ## When to Use
1051
-
1052
- - Trigger conditions for this skill
1053
-
1054
- ## Instructions
1055
-
1056
- - Step-by-step instructions for the agent
1057
- ```
1058
-
1059
- ### Scaffold a new skill
1060
-
1061
- Creates `my-skill/SKILL.md` in the default provider:
782
+ | Field | Required | Description |
783
+ | ------------------ | -------- | ------------------------------ |
784
+ | `name` | yes | Unique identifier |
785
+ | `description` | yes | One-line summary |
786
+ | `license` | no | SPDX identifier |
787
+ | `compatibility` | no | Compatible agents |
788
+ | `allowed-tools` | no | Tools the skill uses |
789
+ | `effort` | no | `low`, `medium`, `high`, `max` |
790
+ | `metadata.version` | no | Semver (default `0.0.0`) |
791
+ | `metadata.creator` | no | Author |
1062
792
 
1063
793
  ```bash
1064
794
  asm init my-skill
1065
795
  ```
1066
796
 
1067
- Creates in Claude Code's skill directory:
1068
-
1069
797
  ```bash
1070
798
  asm init my-skill -p claude
1071
799
  ```
@@ -1073,7 +801,7 @@ asm init my-skill -p claude
1073
801
  </details>
1074
802
 
1075
803
  <details>
1076
- <summary><strong>From Source</strong></summary>
804
+ <summary><strong>From source</strong></summary>
1077
805
 
1078
806
  ```bash
1079
807
  git clone https://github.com/luongnv89/agent-skill-manager.git
@@ -1081,120 +809,80 @@ cd agent-skill-manager
1081
809
  npm install
1082
810
  ```
1083
811
 
1084
- Bundle to `dist/`:
1085
-
1086
812
  ```bash
1087
813
  npm run build
1088
814
  ```
1089
815
 
1090
- Run from source (development):
1091
-
1092
816
  ```bash
1093
817
  npm start
1094
818
  ```
1095
819
 
1096
- ### Advanced Install
1097
-
1098
- Download and inspect the install script before running:
820
+ Inspect install script before running:
1099
821
 
1100
822
  ```bash
1101
823
  curl -sSL https://raw.githubusercontent.com/luongnv89/agent-skill-manager/main/install.sh -o install.sh
1102
- ```
1103
-
1104
- ```bash
1105
824
  less install.sh
1106
- ```
1107
-
1108
- ```bash
1109
825
  bash install.sh
1110
826
  ```
1111
827
 
1112
828
  </details>
1113
829
 
1114
830
  <details>
1115
- <summary><strong>Project Structure</strong></summary>
831
+ <summary><strong>Project structure</strong></summary>
1116
832
 
1117
833
  ```text
1118
834
  agent-skill-manager/
1119
- ├── bin/ # CLI entry point (source)
1120
- │ └── agent-skill-manager.ts
1121
- ├── dist/ # Built bundle (npm package ships this)
1122
- │ └── agent-skill-manager.js
1123
- ├── scripts/
1124
- │ └── build.ts # Build script with version injection
835
+ ├── bin/ # CLI entry point
836
+ ├── dist/ # Built bundle (npm ships this)
837
+ ├── scripts/ # Build, preindex, catalog
1125
838
  ├── src/
1126
- │ ├── index.tsx # TUI app bootstrap & keyboard handling (ink)
1127
- │ ├── cli.ts # CLI command parser & dispatcher
1128
- │ ├── config.ts # Config loading & saving
1129
- │ ├── scanner.ts # Skill directory scanning & filtering
1130
- ├── auditor.ts # Duplicate detection & reporting
1131
- │ ├── installer.ts # GitHub skill installation pipeline
1132
- │ ├── uninstaller.ts # Safe skill removal logic
1133
- │ ├── formatter.ts # Output formatting (tables, detail, JSON)
1134
- │ ├── utils/
1135
- │ │ ├── types.ts # Shared TypeScript types
1136
- │ │ ├── colors.ts # TUI color palette
1137
- │ │ ├── version.ts # Version constant
1138
- │ │ ├── frontmatter.ts # SKILL.md frontmatter parser
1139
- │ │ └── editor.ts # $EDITOR command parser
1140
- │ └── views/
1141
- │ ├── dashboard.tsx # Main dashboard layout
1142
- │ ├── skill-list.tsx # Scrollable skill list
1143
- │ ├── skill-detail.tsx # Skill detail view
1144
- │ ├── confirm.tsx # Uninstall confirmation dialog
1145
- │ ├── duplicates.tsx # Duplicate audit view
1146
- │ ├── config.tsx # In-TUI config editor
1147
- │ └── help.tsx # Help view
839
+ │ ├── index.tsx # TUI (ink)
840
+ │ ├── cli.ts # CLI dispatcher
841
+ │ ├── scanner.ts # Skill discovery
842
+ │ ├── installer.ts # GitHub install pipeline
843
+ └── views/ # TUI views
1148
844
  ├── docs/ # Extended documentation
1149
- ├── ARCHITECTURE.md # System design & data flow
1150
- ├── DEVELOPMENT.md # Local setup & debugging
1151
- │ ├── DEPLOYMENT.md # Publishing & CI pipeline
1152
- │ ├── CHANGELOG.md # Version history
1153
- │ └── brand_kit.md # Logo, colors, typography
1154
- ├── assets/
1155
- │ ├── logo/ # SVG logos (full, mark, wordmark, icon, favicon)
1156
- │ └── screenshots/ # TUI screenshots
1157
- ├── install.sh # One-command installer (curl | bash)
1158
- ├── package.json
1159
- ├── tsconfig.json
1160
- └── README.md
845
+ ├── assets/ # Logos and screenshots
846
+ ├── install.sh # curl installer
847
+ └── package.json
1161
848
  ```
1162
849
 
1163
850
  </details>
1164
851
 
1165
852
  <details>
1166
- <summary><strong>Tech Stack</strong></summary>
853
+ <summary><strong>Tech stack</strong></summary>
1167
854
 
1168
- - **Runtime:** Node.js 18 (CLI and TUI both run on Node alone)
1169
- - **Language:** TypeScript + TSX (ESNext, strict mode)
1170
- - **Build:** esbuild (ships pre-built via npm)
1171
- - **TUI Framework:** [Ink](https://github.com/vadimdemedes/ink) + [@inkjs/ui](https://github.com/vadimdemedes/ink-ui)
1172
- - **Testing:** Vitest (+ ink-testing-library for TUI)
855
+ - **Runtime:** Node.js 18+
856
+ - **Language:** TypeScript + TSX
857
+ - **Build:** esbuild
858
+ - **TUI:** [Ink](https://github.com/vadimdemedes/ink) + [@inkjs/ui](https://github.com/vadimdemedes/ink-ui)
859
+ - **Testing:** Vitest
1173
860
  - **CI:** GitHub Actions + pre-commit hooks
1174
861
 
1175
862
  </details>
1176
863
 
1177
- <details>
864
+ <details id="documentation">
1178
865
  <summary><strong>Documentation</strong></summary>
1179
866
 
1180
- | Document | Description |
1181
- | ---------------------------------------- | -------------------------------------------------- |
1182
- | [Architecture](docs/ARCHITECTURE.md) | System design, components, and data flow |
1183
- | [Eval Providers](docs/eval-providers.md) | Pluggable eval framework and how to add a provider |
1184
- | [Development](docs/DEVELOPMENT.md) | Local setup, testing, and debugging |
1185
- | [Deployment](docs/DEPLOYMENT.md) | Publishing and CI pipeline |
1186
- | [Changelog](docs/CHANGELOG.md) | Version history |
1187
- | [Brand Kit](docs/brand_kit.md) | Logo, colors, and typography |
1188
- | [Contributing](CONTRIBUTING.md) | How to contribute |
1189
- | [Security](SECURITY.md) | Vulnerability reporting |
1190
- | [Code of Conduct](CODE_OF_CONDUCT.md) | Community guidelines |
867
+ | Document | Description |
868
+ | ---------------------------------------- | --------------------------- |
869
+ | [Architecture](docs/ARCHITECTURE.md) | System design and data flow |
870
+ | [Eval Providers](docs/eval-providers.md) | Pluggable eval framework |
871
+ | [Development](docs/DEVELOPMENT.md) | Local setup and debugging |
872
+ | [Deployment](docs/DEPLOYMENT.md) | Publishing and CI |
873
+ | [Changelog](docs/CHANGELOG.md) | Version history |
874
+ | [Brand Kit](docs/brand_kit.md) | Logo, colors, typography |
875
+ | [Contributing](CONTRIBUTING.md) | How to contribute |
876
+ | [Security](SECURITY.md) | Vulnerability reporting |
877
+ | [Code of Conduct](CODE_OF_CONDUCT.md) | Community guidelines |
878
+
879
+ **Landing page:** [luongnv.com/asm](https://luongnv.com/asm/) — catalog, bundles, author/repo stats, filtered search.
1191
880
 
1192
881
  </details>
1193
882
 
1194
883
  ---
1195
884
 
1196
- <!-- NOTE: The single source of truth for acknowledgements data is website/data/acknowledgements.json.
1197
- When updating contributors or dependencies, edit that JSON file first, then sync this section and website/index.html. -->
885
+ <!-- NOTE: Single source of truth for acknowledgements is website/data/acknowledgements.json -->
1198
886
 
1199
887
  ## Acknowledgements
1200
888
 
@@ -1207,25 +895,23 @@ agent-skill-manager/
1207
895
 
1208
896
  ### Dependencies
1209
897
 
1210
- | Library | Description |
1211
- | ------------------------------------------------------- | ------------------------------------------------------------------------------- |
1212
- | [ink](https://github.com/vadimdemedes/ink) | React renderer for interactive command-line apps — powers the asm TUI |
1213
- | [@inkjs/ui](https://github.com/vadimdemedes/ink-ui) | Prebuilt ink components (inputs, spinners, lists) used across the TUI views |
1214
- | [react](https://github.com/facebook/react) | UI library backing the ink TUI components and the web catalog |
1215
- | [react-dom](https://github.com/facebook/react) | React DOM renderer for the browser-based skill catalog |
1216
- | [react-window](https://github.com/bvaughn/react-window) | Windowed list virtualization for the browser-based skill catalog |
1217
- | [yaml](https://github.com/eemeli/yaml) | JavaScript parser and stringifier for YAML — used to parse SKILL.md frontmatter |
1218
-
1219
- ---
898
+ | Library | Description |
899
+ | ------------------------------------------------------- | ------------------------------- |
900
+ | [ink](https://github.com/vadimdemedes/ink) | React renderer for the TUI |
901
+ | [@inkjs/ui](https://github.com/vadimdemedes/ink-ui) | Prebuilt ink components |
902
+ | [react](https://github.com/facebook/react) | UI for TUI and web catalog |
903
+ | [react-dom](https://github.com/facebook/react) | DOM renderer for catalog |
904
+ | [react-window](https://github.com/bvaughn/react-window) | List virtualization for catalog |
905
+ | [yaml](https://github.com/eemeli/yaml) | SKILL.md frontmatter parser |
1220
906
 
1221
907
  ## Roadmap
1222
908
 
1223
- Track our progress and upcoming features on the [project kanban board](https://github.com/users/luongnv89/projects/6). See [prd.md](prd.md) for the full product requirements and [tasks.md](tasks.md) for the sprint-based development plan.
909
+ [Project kanban](https://github.com/users/luongnv89/projects/6) · [prd.md](prd.md) · [tasks.md](tasks.md)
1224
910
 
1225
911
  ## Contributing
1226
912
 
1227
- Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
913
+ See [CONTRIBUTING.md](CONTRIBUTING.md).
1228
914
 
1229
915
  ## License
1230
916
 
1231
- [MIT](LICENSE) — free to use, modify, and distribute. See the [LICENSE](LICENSE) file for details.
917
+ [MIT](LICENSE)