@stefafafan/skm 0.1.4 → 0.1.6
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 +53 -33
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
# skm
|
|
1
|
+
# skm - A package manager for Agent Skills
|
|
2
2
|
|
|
3
3
|
<a href="https://www.npmjs.com/package/@stefafafan/skm"><img alt="NPM Version" src="https://img.shields.io/npm/v/%40stefafafan%2Fskm"></a>
|
|
4
4
|
|
|
5
|
-
`skm` is a package manager
|
|
5
|
+
`skm` is a package manager for [Agent Skills](https://agentskills.io).
|
|
6
|
+
It pins skills to exact commit hashes for reproducible installs and lets teams alias skill names consistently.
|
|
6
7
|
|
|
7
8
|
See [stefafafan/skm-demo](https://github.com/stefafafan/skm-demo) for real examples of how `skm` is used in a project.
|
|
8
9
|
|
|
@@ -13,12 +14,47 @@ See [stefafafan/skm-demo](https://github.com/stefafafan/skm-demo) for real examp
|
|
|
13
14
|
|
|
14
15
|
## Motivation
|
|
15
16
|
|
|
16
|
-
Agent Skills are convenient, but
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
Agent Skills are convenient, but currently have some downsides:
|
|
18
|
+
|
|
19
|
+
### No `skm`
|
|
20
|
+
|
|
21
|
+
- Copy and paste skills manually in different ways.
|
|
22
|
+
- No idea if upstream skills have updates.
|
|
23
|
+
- No naming convention, leading to inconsistent skill names across the team
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
project/
|
|
27
|
+
└── .agents/
|
|
28
|
+
└── skills/ <-- Files within this directory edited manually in many ways.
|
|
29
|
+
├── commit-msg-helper/
|
|
30
|
+
│ └── SKILL.md
|
|
31
|
+
├── stefans-best-skill/
|
|
32
|
+
│ └── SKILL.md
|
|
33
|
+
├── infra-master/
|
|
34
|
+
│ └── SKILL.md
|
|
35
|
+
└── ultra_fast_coder_skill/ <-- Random named skills depending on skill author
|
|
36
|
+
└── SKILL.md
|
|
37
|
+
```
|
|
20
38
|
|
|
21
|
-
`skm`
|
|
39
|
+
### With `skm`
|
|
40
|
+
|
|
41
|
+
- Standardized way of installing/updating skills. `skills.json` shows a clear outline of managed skills.
|
|
42
|
+
- `skills.lock.json` stores resolved commit hashes for reproducible installs.
|
|
43
|
+
- `skm rename` lets projects keep consistent local skill names.
|
|
44
|
+
|
|
45
|
+
```text
|
|
46
|
+
project/
|
|
47
|
+
├── skills.json <-- This file is edited (via skm add, skm rename, etc.)
|
|
48
|
+
├── skills.lock.json <-- Contains exact commit hash for each skill installed. Reproducible.
|
|
49
|
+
└── .agents/
|
|
50
|
+
└── skills/
|
|
51
|
+
├── commit-message-writer/
|
|
52
|
+
│ └── SKILL.md
|
|
53
|
+
├── github-actions-pinner/
|
|
54
|
+
│ └── SKILL.md
|
|
55
|
+
└── web-security-reviewer/ <-- Skill renamed via skm, making things under-control.
|
|
56
|
+
└── SKILL.md
|
|
57
|
+
```
|
|
22
58
|
|
|
23
59
|
## Installation
|
|
24
60
|
|
|
@@ -65,7 +101,7 @@ git commit
|
|
|
65
101
|
|
|
66
102
|
### For global settings
|
|
67
103
|
|
|
68
|
-
Basically the same, but with `--global`
|
|
104
|
+
You can use `skm` to manage global skills as well. Basically the same, but with `--global`
|
|
69
105
|
|
|
70
106
|
```bash
|
|
71
107
|
skm init --global
|
|
@@ -106,35 +142,19 @@ skm add https://github.com/stefafafan/skills
|
|
|
106
142
|
|
|
107
143
|
Repository-wide imports discover every nested directory containing `SKILL.md`.
|
|
108
144
|
|
|
109
|
-
##
|
|
110
|
-
|
|
111
|
-
The following files are used by `skm`
|
|
112
|
-
|
|
113
|
-
- `skills.json`
|
|
114
|
-
- user-facing intent
|
|
115
|
-
- `skills.lock.json`
|
|
116
|
-
- resolved commit hash and integrity data
|
|
117
|
-
- `.skm/`
|
|
118
|
-
- internal state and stored contents
|
|
119
|
-
- `.agents/skills/`
|
|
120
|
-
- the derived skills
|
|
145
|
+
## Files read/edited by `skm`
|
|
121
146
|
|
|
122
|
-
The
|
|
147
|
+
The following files are used by `skm`:
|
|
123
148
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
```sh
|
|
131
|
-
echo '.skm' >> .gitignore
|
|
132
|
-
```
|
|
149
|
+
| File | Purpose |
|
|
150
|
+
| ------------------ | ----------------------------------------------------------------------- |
|
|
151
|
+
| `skills.json` | User-facing intent — what skills you want |
|
|
152
|
+
| `skills.lock.json` | Resolved commit hashes for reproducible installs |
|
|
153
|
+
| `.skm/` | Internal state and cached contents (recommended to add to `.gitignore`) |
|
|
154
|
+
| `.agents/skills/` | The derived skills, read by your coding agent |
|
|
133
155
|
|
|
134
156
|
## FAQ
|
|
135
157
|
|
|
136
158
|
### Q: My Coding Agent doesn't support `.agents/skills`
|
|
137
159
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
If you don't mind, you can use the workaround of symbolic links (e.g. make `.claude/skills` a symlink of `.agents/skills`).
|
|
160
|
+
Although some agents support `.agents/skills`, there are still many agents that use different paths. Until the standard is more widely adopted, symbolic links are the recommended workaround (for example, making `.claude/skills` a symlink for `.agents/skills`).
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stefafafan/skm",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"private": false,
|
|
5
|
-
"description": "A package manager for AI Agent Skills.
|
|
5
|
+
"description": "A package manager for AI Agent Skills. Reproducible installs and consistent naming for teams.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"agents",
|
|
8
8
|
"cli",
|