@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 # what is bundled, by group
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 add --group dev-skills # the ten dev-workflow 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. Installs are project-local by default; pass `--global` for the home directory (required for Hermes).
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
- | Agent | Project install | Global install |
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 | `.claude/skills/` | `~/.claude/skills/` |
92
- | Codex | `.agents/skills/` | `~/.agents/skills/` |
93
- | Hermes | — (Hermes discovers skills globally only) | `~/.hermes/skills/` |
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vegastack/skills",
3
- "version": "0.16.1",
3
+ "version": "0.16.2",
4
4
  "description": "Installer and verifier for VegaStack Agent Skills (Claude Code, Codex, and Hermes)",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -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}}{{groupInstallLine}}
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 line; an ungrouped one would otherwise ship a
251
- // command naming a group that does not exist.
252
- const groupInstallLine = group ? `\nnpx @vegastack/skills add --group ${group} # or the whole ${group} family` : ''
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('{{groupInstallLine}}', groupInstallLine)
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)
@@ -159,7 +159,7 @@
159
159
  "files": {
160
160
  "SKILL.md": "310ac32ff4d557cc166a470fd1866060dfc5f03898e8ff3da9c406b84580742b",
161
161
  "agents/openai.yaml": "df320cf32a8db06c213f7892844dab810b7e96cfbf32502d25185d4a4167ef87",
162
- "assets/templates/README.md.template": "49dccb4e9b5bdb07c254f9142502b3fd11fd5b083d8661b0ae6a567dec79de74",
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": "849370bd152e488c66753882928cdb18db356f21468647c8e0a51ee58a385183"
173
+ "scripts/scaffold-skill.mjs": "d9edbe912ca20aad29afe1b0b904f85bbc4c9bfefb2c75e2986949ce00cb7fae"
174
174
  }
175
175
  }
176
176
  }