@vegastack/skills 0.16.1 → 0.16.2
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
CHANGED
|
@@ -2,17 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
Installer for VegaStack Agent Skills — a family of self-contained skills for Claude Code, Codex, and Hermes, shipped in one integrity-checked package.
|
|
4
4
|
|
|
5
|
+
Install the whole dev workflow, once per machine:
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
npx @vegastack/skills add --group dev-skills --global
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
`--global` is the recommended install: the skills land in your home directory and are available in every project you open. Drop it for a project-local install when a repository should carry its own copy.
|
|
12
|
+
|
|
13
|
+
See what else is bundled:
|
|
14
|
+
|
|
5
15
|
```sh
|
|
6
|
-
npx @vegastack/skills list
|
|
7
|
-
npx @vegastack/skills add --group dev-skills # the whole dev workflow, one command
|
|
8
|
-
npx @vegastack/skills add dev-architect # or a single skill
|
|
16
|
+
npx @vegastack/skills list
|
|
9
17
|
```
|
|
10
18
|
|
|
11
19
|
## Skills in this package
|
|
12
20
|
|
|
13
21
|
### `dev-skills` — the issue-driven dev workflow
|
|
14
22
|
|
|
15
|
-
Install the family with `add --group dev-skills`.
|
|
23
|
+
Install the family with `add --group dev-skills --global`.
|
|
16
24
|
|
|
17
25
|
| Skill | What it does |
|
|
18
26
|
|---|---|
|
|
@@ -58,13 +66,46 @@ These operate on the vegastack-skills repository itself and do nothing useful in
|
|
|
58
66
|
|
|
59
67
|
A `--group` or `--all` install is **one transaction**: every skill is checked and staged before any of them is committed, so if one fails, none are installed and the destination is left exactly as it was.
|
|
60
68
|
|
|
69
|
+
The ten dev-workflow skills:
|
|
70
|
+
|
|
71
|
+
```sh
|
|
72
|
+
npx @vegastack/skills add --group dev-skills --global
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Everything worth installing outside this repo:
|
|
76
|
+
|
|
77
|
+
```sh
|
|
78
|
+
npx @vegastack/skills add --all --global
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Check the family against the manifest:
|
|
82
|
+
|
|
61
83
|
```sh
|
|
62
|
-
npx @vegastack/skills
|
|
63
|
-
npx @vegastack/skills add --all # everything worth installing in your project
|
|
64
|
-
npx @vegastack/skills verify --group dev-skills # check the family against the manifest
|
|
65
|
-
npx @vegastack/skills remove --group dev-skills # uninstall it again
|
|
84
|
+
npx @vegastack/skills verify --group dev-skills --global
|
|
66
85
|
```
|
|
67
86
|
|
|
87
|
+
Uninstall it again:
|
|
88
|
+
|
|
89
|
+
```sh
|
|
90
|
+
npx @vegastack/skills remove --group dev-skills --global
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Upgrading and health checks
|
|
94
|
+
|
|
95
|
+
Upgrade to the latest release. `--force` is required because `add` refuses to overwrite an installed copy that differs from the bundle rather than silently discarding local edits:
|
|
96
|
+
|
|
97
|
+
```sh
|
|
98
|
+
npx @vegastack/skills@latest add --group dev-skills --global --force
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Diagnose an install — integrity across all skills, plus installed-vs-latest version:
|
|
102
|
+
|
|
103
|
+
```sh
|
|
104
|
+
npx @vegastack/skills doctor --global
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Run `doctor` without `--global` from inside a project to additionally check that project's `.vegastack/dev.md` profile; the global run skips that check, since the profile is per-project by design.
|
|
108
|
+
|
|
68
109
|
## Flags
|
|
69
110
|
|
|
70
111
|
| Flag | Meaning |
|
|
@@ -82,18 +123,22 @@ npx @vegastack/skills remove --group dev-skills # uninstall it again
|
|
|
82
123
|
|
|
83
124
|
`--all` and `--agent all` are different axes and are easy to confuse: `--all` chooses **which skills**, `--agent all` chooses **which agent runtimes**. `add --all --agent all --global` is valid and means every installable skill, on every runtime, in your home directory.
|
|
84
125
|
|
|
85
|
-
Agent targeting is automatic: the CLI detects which agents you have (`~/.claude`, `~/.codex`/`~/.agents`, `~/.hermes`) and targets them without asking — `--agent` overrides. A numbered picker appears only when nothing is detected.
|
|
126
|
+
Agent targeting is automatic: the CLI detects which agents you have (`~/.claude`, `~/.codex`/`~/.agents`, `~/.hermes`) and targets them without asking — `--agent` overrides. A numbered picker appears only when nothing is detected.
|
|
86
127
|
|
|
87
128
|
## Agent surfaces
|
|
88
129
|
|
|
89
|
-
|
|
130
|
+
`--global` is the recommended install and the only one that can cover all three runtimes at once. `--project` is the flag default, so pass `--global` explicitly.
|
|
131
|
+
|
|
132
|
+
| Agent | Global install (recommended) | Project install |
|
|
90
133
|
|---|---|---|
|
|
91
|
-
| Claude Code |
|
|
92
|
-
| Codex |
|
|
93
|
-
| Hermes | — (Hermes discovers skills globally only) |
|
|
134
|
+
| Claude Code | `~/.claude/skills/` | `.claude/skills/` |
|
|
135
|
+
| Codex | `~/.agents/skills/` | `.agents/skills/` |
|
|
136
|
+
| Hermes | `~/.hermes/skills/` | — (Hermes discovers skills globally only) |
|
|
94
137
|
|
|
95
138
|
`--agent hermes` therefore requires `--global`; `--agent all` on a project install covers codex+claude and prints a notice about hermes.
|
|
96
139
|
|
|
140
|
+
Prefer a project install when a repository should carry its own copy — so collaborators get the same skills from a checkout, or so one project can pin a version while the rest of the machine moves on. Pick one or the other per skill rather than both: in Claude Code a personal (global) skill takes precedence over a project one, so a project-local copy would not override a global install of the same skill.
|
|
141
|
+
|
|
97
142
|
## Integrity model
|
|
98
143
|
|
|
99
144
|
The package ships a checksum manifest that is verified at install and by `verify` — it proves the installed bytes match what was packed, not who published it. Publisher identity is attested separately by npm provenance, generated by the trusted-publishing release pipeline. Verify it with `npm audit signatures` or on the package's npm page.
|
package/package.json
CHANGED
|
@@ -5,8 +5,10 @@ TODO: one-paragraph summary for humans and agents browsing the repo. The agent e
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
7
7
|
```sh
|
|
8
|
-
npx @vegastack/skills add {{name}}
|
|
8
|
+
npx @vegastack/skills add {{name}} --global
|
|
9
9
|
```
|
|
10
|
+
{{groupInstallBlock}}
|
|
11
|
+
`--global` installs into your home directory, where the skill is available in every project; drop it for a project-local install.
|
|
10
12
|
|
|
11
13
|
## What's in this skill
|
|
12
14
|
|
|
@@ -247,9 +247,12 @@ export async function scaffoldSkill({ name, dir, group = null, write = false, no
|
|
|
247
247
|
// The generated test imports the repo validator by relative path, so its depth follows the
|
|
248
248
|
// skill's: skills/<name>/tests/ is three levels up, skills/<group>/<name>/tests/ is four.
|
|
249
249
|
const validatorPath = `${group ? '../../../..' : '../../..'}/packages/cli/scripts/validate-skill.mjs`
|
|
250
|
-
// Only a grouped skill gets the family-install
|
|
251
|
-
// command naming a group that does not exist.
|
|
252
|
-
|
|
250
|
+
// Only a grouped skill gets the family-install block; an ungrouped one would otherwise ship a
|
|
251
|
+
// command naming a group that does not exist. It is its own fence, not a second line in the
|
|
252
|
+
// first one: pasting a shared fence would run the alternative too.
|
|
253
|
+
const groupInstallBlock = group
|
|
254
|
+
? `\nOr the whole ${group} family at once:\n\n\`\`\`sh\nnpx @vegastack/skills add --group ${group} --global\n\`\`\`\n`
|
|
255
|
+
: ''
|
|
253
256
|
|
|
254
257
|
const outputs = templateFiles.map(([source, output]) => [source, output ?? `tests/${name}.test.ts`])
|
|
255
258
|
const plan = { name, group, target, files: outputs.map(([, output]) => output), wrote: false }
|
|
@@ -264,7 +267,7 @@ export async function scaffoldSkill({ name, dir, group = null, write = false, no
|
|
|
264
267
|
.replaceAll('{{name}}', name)
|
|
265
268
|
.replaceAll('{{date}}', date)
|
|
266
269
|
.replaceAll('{{validatorPath}}', validatorPath)
|
|
267
|
-
.replaceAll('{{
|
|
270
|
+
.replaceAll('{{groupInstallBlock}}', groupInstallBlock)
|
|
268
271
|
const destination = join(staging, output)
|
|
269
272
|
await mkdir(dirname(destination), { recursive: true })
|
|
270
273
|
await writeFile(destination, rendered)
|
package/skill-integrity.json
CHANGED
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
"files": {
|
|
160
160
|
"SKILL.md": "310ac32ff4d557cc166a470fd1866060dfc5f03898e8ff3da9c406b84580742b",
|
|
161
161
|
"agents/openai.yaml": "df320cf32a8db06c213f7892844dab810b7e96cfbf32502d25185d4a4167ef87",
|
|
162
|
-
"assets/templates/README.md.template": "
|
|
162
|
+
"assets/templates/README.md.template": "74750e59514bff2211b043f6584ed75271529ff4b304e82b207c282396d3e2a1",
|
|
163
163
|
"assets/templates/REFRESH.md.template": "ff86afade565d668333e7f6d0432213760fd68a62b8ba22897a8601b74c94ac0",
|
|
164
164
|
"assets/templates/SKILL.md.template": "b038775f97b13b54227fe41a767a48cdaa922a93d1732f22c2d1d79bff52ca00",
|
|
165
165
|
"assets/templates/openai.yaml.template": "2fbf488369825109d6cad4f17e7b729a40d9e3c43c7f01bc5dfa16361d59c086",
|
|
@@ -170,7 +170,7 @@
|
|
|
170
170
|
"references/eval-playbook.md": "1f463dfea8d69b7022712776794369892643aa020186fe3a3707c493a6c2d4e9",
|
|
171
171
|
"refresh/REFRESH.md": "695f3283b27c14accf4095137898ce1f6dc40749483c5a5705e80aa9693f08c2",
|
|
172
172
|
"refresh/sources.json": "e554e80c72c16dc70587361804db9e0cf2716c128820b2612d5983a009b2b242",
|
|
173
|
-
"scripts/scaffold-skill.mjs": "
|
|
173
|
+
"scripts/scaffold-skill.mjs": "d9edbe912ca20aad29afe1b0b904f85bbc4c9bfefb2c75e2986949ce00cb7fae"
|
|
174
174
|
}
|
|
175
175
|
}
|
|
176
176
|
}
|