skilld-harness 3.0.0-beta.3 → 3.0.0-beta.5

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/dist/index.d.mts CHANGED
@@ -117,6 +117,6 @@ interface CreateSkillHarnessOptions {
117
117
  /** HTTP adapter for npm metadata and immutable source archives. */
118
118
  readonly fetch?: (input: string | URL | Request, init?: RequestInit) => Promise<Response>;
119
119
  }
120
- declare function createSkillHarness(options: CreateSkillHarnessOptions): SkillHarness;
121
- export { type CreateSkillHarnessOptions, type GeneratedSkill, type PackageSource, type SkillDestination, type SkillFile, type SkillHarness, type SkillOutputPolicy, type SkillReview, type SkillReviewFinding, type SkillRun, type SkillRunError, type SkillRunOptions, type SkillRunResult, type SourceAttempt, createSkillHarness };
120
+ export declare function createSkillHarness(options: CreateSkillHarnessOptions): SkillHarness;
121
+ export type { CreateSkillHarnessOptions, GeneratedSkill, PackageSource, SkillDestination, SkillFile, SkillHarness, SkillOutputPolicy, SkillReview, SkillReviewFinding, SkillRun, SkillRunError, SkillRunOptions, SkillRunResult, SourceAttempt };
122
122
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/harness.ts"],"mappings":";;UAGiB;WACN;WACA;;KAGC;WAEC;WACA;;WAGA;WACA;WACA;;KAGD;WAEC;WACA,QAAQ;WACR,aAAa;;WAGb;WACA;WACA,aAAa;;WAGb;WACA;;UAGI;WACN;WACA;WACA;WACA;WACA;WACA;;UAGM;WACN,SAAS;;UAGH;WACN;WACA;;UAGM;WACN;WACA;WACA;;UAGM;WACN;WACA;WACA;WACA,OAAO,cAAc;WACrB,gBAAgB,cAAc;;WAE9B,UAAU;;UAGJ;WACN;WACA;WACA;WACA;;UAGM;WACN;WACA;WACA,UAAU,cAAc;;KAGvB;WACK;WAA+B;;WAEjC;WACA;WACA,UAAU,cAAc;WACxB;;WAEE;WAA8B;WAA0B;;WACxD;WAA+B;WAA0B,QAAQ;;WACjE;WAAmC;WAA0B;;WAC7D;WAA6B;WAA0B;;WACvD;WAAkC;WAA0B;WAAuB;;WACnF;WAA4B;;KAEjC;WACK;WAAqB,OAAO,iBAAiB;;WAC7C;WAAsB,OAAO;;UAE7B;WACN,MAAM,OAAO,UAAU,UAAU,oBAAoB,QAAQ;;UAGvD;WACN,SAAS;;WAET,SAAS;;WAET,gBAAgB;WAChB,eAAe,QAAQ;;WAEvB,SAAS,gBAAgB,MAAM,SAAS,OAAO,gBAAgB,QAAQ;;iBCkElE,mBAAmB,SAAS,4BAA4B"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/harness.ts"],"mappings":";;UAGiB;WACN;WACA;;KAGC;WAEC;WACA;;WAGA;WACA;WACA;;KAGD;WAEC;WACA,QAAQ;WACR,aAAa;;WAGb;WACA;WACA,aAAa;;WAGb;WACA;;UAGI;WACN;WACA;WACA;WACA;WACA;WACA;;UAGM;WACN,SAAS;;UAGH;WACN;WACA;;UAGM;WACN;WACA;WACA;;UAGM;WACN;WACA;WACA;WACA,OAAO,cAAc;WACrB,gBAAgB,cAAc;;WAE9B,UAAU;;UAGJ;WACN;WACA;WACA;WACA;;UAGM;WACN;WACA;WACA,UAAU,cAAc;;KAGvB;WACK;WAA+B;;WAEjC;WACA;WACA,UAAU,cAAc;WACxB;;WAEE;WAA8B;WAA0B;;WACxD;WAA+B;WAA0B,QAAQ;;WACjE;WAAmC;WAA0B;;WAC7D;WAA6B;WAA0B;;WACvD;WAAkC;WAA0B;WAAuB;;WACnF;WAA4B;;KAEjC;WACK;WAAqB,OAAO,iBAAiB;;WAC7C;WAAsB,OAAO;;UAE7B;WACN,MAAM,OAAO,UAAU,UAAU,oBAAoB,QAAQ;;UAGvD;WACN,SAAS;;WAET,SAAS;;WAET,gBAAgB;WAChB,eAAe,QAAQ;;WAEvB,SAAS,gBAAgB,MAAM,SAAS,OAAO,gBAAgB,QAAQ;;wBCkElE,mBAAmB,SAAS,4BAA4B"}
@@ -6,6 +6,7 @@ description: Generate or update an Agent Skill for an npm or local package using
6
6
  # Generate a package Skill
7
7
 
8
8
  Create a focused Skill that helps an Agent use one package correctly.
9
+ This Skill is for maintainers who author a draft Skill they own.
9
10
 
10
11
  ## Inputs
11
12
 
@@ -6,6 +6,7 @@ description: Generate or update an Agent Skill from the observed workflows, boun
6
6
  # Generate a project Skill
7
7
 
8
8
  Create a compact, searchable Skill from the project itself.
9
+ This Skill is for maintainers who author a draft Skill they own.
9
10
 
10
11
  ## Inputs
11
12
 
@@ -1,14 +1,29 @@
1
1
  ---
2
2
  name: skilld
3
- description: Search, run, view, install, update, verify, and remove Skills with skilld CLI, including private repository access.
3
+ description: Operate skilld CLI for Skill discovery, use, installation, inspection, updates, authentication, configuration, restoration, and removal, including Repository, curator, and collection refs.
4
4
  ---
5
5
 
6
6
  # Use skilld CLI
7
7
 
8
- Use skilld CLI to search for, run, and install Skills.
8
+ Use skilld CLI to find, load, install, inspect, restore, update, verify, and remove Skills.
9
9
 
10
10
  Run a Skill first. Install a Skill only when the user asks to keep it.
11
11
 
12
+ ## Use Agent output
13
+
14
+ Use `--json` with `search`, `run`, and `update --check`.
15
+ These are the only commands that support JSON output.
16
+ Use `--plain` when another command needs stable text.
17
+
18
+ Check the exit code before reading stdout.
19
+ Read JSON success data only when `_tag` is `Success`.
20
+ Read JSON failures from stderr.
21
+ Report the error `code` and `message`.
22
+
23
+ An update check can exit with code 1 and return valid JSON.
24
+ Read its update relations before treating that exit as a failure.
25
+ Never parse formatted terminal output.
26
+
12
27
  ## Search for a Skill
13
28
 
14
29
  Run a focused search:
@@ -21,11 +36,8 @@ Read `data.items` before choosing a Skill.
21
36
  Use each item's `selector` for a Skill run.
22
37
  Refine the query when several Skills cover different tasks.
23
38
 
24
- Always use `--json` when an Agent runs Skill search.
25
- Check the exit code before reading stdout.
26
- If search fails, read the tagged JSON error from stderr.
27
- Use `--plain` only when another command needs stable text.
28
- Never parse formatted terminal output.
39
+ Do not guess a selector from the Skill name.
40
+ Do not install a search result before reading its description.
29
41
 
30
42
  ## Run a Skill
31
43
 
@@ -63,6 +75,45 @@ A `verified` status covers where the Skill came from.
63
75
  It does not cover what the instructions ask you to do.
64
76
  If the status is `unverified`, tell the user before you follow the Skill.
65
77
 
78
+ ## List the Skills a Repository, curator, or collection names
79
+
80
+ skilld.dev prints refs that name several Skills:
81
+
82
+ - `gh:OWNER/REPOSITORY` names every Skill in one Repository.
83
+ - `@LOGIN` names every Skill in one curator's collections.
84
+ - `@LOGIN/SLUG` names every Skill in one collection.
85
+
86
+ Run one of these refs to list its Skills:
87
+
88
+ ```sh
89
+ skilld run @LOGIN/SLUG --json
90
+ ```
91
+
92
+ The command prints an index and loads no Skill.
93
+ Read `data.items` for each Skill's `name`, `owner`, `repository`, `description`, and `selector`.
94
+ Run the `data.items[].runArgv` array to load one Skill.
95
+ Pick the Skills the current task needs. Do not run every Skill in the index.
96
+
97
+ ## Choose the source
98
+
99
+ Prefer the exact `skilld:` selector returned by Skill search.
100
+ Hosted selectors use immutable artifact delivery from an exact Git commit.
101
+
102
+ Use a local path only for a Skill the user already controls:
103
+
104
+ ```sh
105
+ skilld run ./skills/my-skill --json
106
+ skilld install ./skills/my-skill
107
+ ```
108
+
109
+ Use `--direct` only for an explicit public GitHub selector.
110
+ Direct mode bypasses artifact delivery and gives the `unverified` source status.
111
+ It cannot access a private repository.
112
+ Never add `--direct` merely to bypass a delivery failure.
113
+
114
+ Private repository delivery requires a skilld.dev account and GitHub App access.
115
+ If private access fails, check authentication before changing the selector.
116
+
66
117
  ## Install a Skill
67
118
 
68
119
  Install a Skill when the user wants it in every session.
@@ -75,41 +126,83 @@ Install the selector returned by search into the detected Agent target:
75
126
  skilld install <selector>
76
127
  ```
77
128
 
129
+ The default scope is the current project.
130
+ Project installs update `.skills/skilld-lock.yaml` and selected Agent targets.
131
+
78
132
  Install into global Agent targets:
79
133
 
80
134
  ```sh
81
135
  skilld install <selector> --global
82
136
  ```
83
137
 
138
+ Use `--agent <agent>` when the user names an Agent target.
139
+ Repeat `--agent` when the user names several Agent targets.
140
+ Do not guess a target when detection and `agent.targets` are empty.
141
+
142
+ Use `--mode copy` or `--mode symlink` only when the user chooses a mode.
143
+ Otherwise, use the configured `install.mode`.
144
+
84
145
  Install this skilld-maintained Skill globally:
85
146
 
86
147
  ```sh
87
148
  skilld install skilld --global
88
149
  ```
89
150
 
151
+ Install every Skill a Repository, curator, or collection names:
152
+
153
+ ```sh
154
+ skilld add gh:OWNER/REPOSITORY
155
+ skilld add @LOGIN/SLUG --global
156
+ ```
157
+
158
+ `skilld add` accepts `--global`, `--agent`, and `--mode` like `skilld install`.
159
+ It prints one `Installed Skill` line per Skill.
160
+ Run `skilld run` with the same ref first, then confirm the list with the user.
161
+ `skilld add` with one Skill selector installs that Skill like `skilld install`.
162
+
90
163
  Always use the source selector shown by `skilld search`.
91
- If private repository access is required, run `skilld auth login`.
92
- Do not print access tokens or copy them into project files.
164
+ After installation, report the Skill name, scope, Agent targets, and source status.
165
+
166
+ ## Restore locked Skills
167
+
168
+ Restore the current project from its lockfile:
169
+
170
+ ```sh
171
+ skilld install
172
+ ```
93
173
 
94
- After installation, report the installed Skill name and Agent target.
174
+ Restore global Skills from the global scope:
95
175
 
96
- ## View a Skill
176
+ ```sh
177
+ skilld install --global
178
+ ```
179
+
180
+ A verified remote Skill restores its exact locked commit through artifact delivery.
181
+ An unverified remote Skill requires the recovery command shown by skilld.
182
+ Do not convert a verified source to direct mode during recovery.
183
+
184
+ Never delete a lockfile or Agent target to repair an install.
185
+ Preserve the files and report the exact failure first.
186
+
187
+ ## Inspect installed Skills
97
188
 
98
189
  ```sh
99
190
  skilld list
191
+ skilld list --global
100
192
  skilld view <skill>
193
+ skilld view <skill> --global
101
194
  ```
102
195
 
103
- Use `list` to show installed Skills.
104
- Use `view` to show one Skill's path, source status, and Agent targets.
196
+ Use `list` to find installed names in one scope.
197
+ Use `view` to inspect a Skill before any mutation.
198
+ Read its path, source, source status, and Agent targets.
105
199
 
106
- ## Maintain installed Skills
200
+ ## Check and apply updates
107
201
 
108
202
  ```sh
109
- skilld update <skill>
110
203
  skilld update --check --json
111
- skilld verify <skill>
112
- skilld remove <skill>
204
+ skilld update <skill>
205
+ skilld update <skill> --global
113
206
  ```
114
207
 
115
208
  Use `update --check --json` to inspect update relations without changing files.
@@ -119,5 +212,110 @@ Treat `current`, `pinned`, and `notTracked` as no action.
119
212
  If the relation is `behind` or `diverged`, ask before changing files.
120
213
  If the relation is `unavailable`, report `failure.code` and `failure.message`.
121
214
  Treat `unavailable` as unknown. Do not infer a newer commit.
122
- Use `verify` to check the installed bytes and source status.
123
- Use `remove` only when the request names the Skill to remove.
215
+
216
+ Update one named Skill unless the user explicitly requests all updates.
217
+ Use `--global` only for a Skill in the global scope.
218
+ Leave `--interactive` to a human terminal session.
219
+
220
+ ## Verify source integrity
221
+
222
+ ```sh
223
+ skilld verify <skill>
224
+ ```
225
+
226
+ Use `verify` to check installed bytes against recorded source data.
227
+ A successful check confirms provenance and integrity only.
228
+ It does not approve the Skill instructions.
229
+
230
+ If verification fails, do not hand edit a managed Skill.
231
+ Use `view` to inspect its source before update or restore.
232
+
233
+ ## Report outdated and unmanaged Skills
234
+
235
+ Check the current scope:
236
+
237
+ ```sh
238
+ skilld outdated --plain
239
+ ```
240
+
241
+ Check both scopes and every Agent target directory:
242
+
243
+ ```sh
244
+ skilld outdated --all --plain
245
+ ```
246
+
247
+ Use `outdated` for stale, unverified, local, and unmanaged Skill reports.
248
+ Read every proposed command before using it.
249
+ Never delete an unmanaged Skill unless the user names it for removal.
250
+
251
+ ## Manage account authentication
252
+
253
+ Check account authentication before starting login:
254
+
255
+ ```sh
256
+ skilld auth status --plain
257
+ ```
258
+
259
+ Start login only when private artifact delivery requires it:
260
+
261
+ ```sh
262
+ skilld auth login --plain
263
+ ```
264
+
265
+ Private repository access also requires the skilld GitHub App installation.
266
+ Credentials stay in the operating system keychain.
267
+ Never print access tokens or copy them into files.
268
+
269
+ Log out only when the user explicitly asks:
270
+
271
+ ```sh
272
+ skilld auth logout --plain
273
+ ```
274
+
275
+ ## Manage configuration
276
+
277
+ Read account level configuration before changing it:
278
+
279
+ ```sh
280
+ skilld config list --plain
281
+ skilld config get agent.targets --plain
282
+ skilld config get install.mode --plain
283
+ ```
284
+
285
+ Only `agent.targets` and `install.mode` are supported keys.
286
+ Set a key only when the user explicitly requests a persistent default.
287
+
288
+ ```sh
289
+ skilld config set agent.targets codex,claude-code --plain
290
+ skilld config set install.mode copy --plain
291
+ ```
292
+
293
+ Valid install modes are `copy` and `symlink`.
294
+ Configuration changes affect later commands across projects.
295
+
296
+ ## Remove a Skill
297
+
298
+ Inspect the named Skill and its scope before removal:
299
+
300
+ ```sh
301
+ skilld view <skill> --plain
302
+ skilld remove <skill> --plain
303
+ ```
304
+
305
+ Add `--global` to both commands for a global Skill.
306
+ Remove only the Skill and scope the user names.
307
+ Report the removed Agent targets and whether recovery needs a reinstall.
308
+
309
+ ## Handle failures
310
+
311
+ Preserve the original error code and message.
312
+ Do not hide a failure with a fallback source or scope.
313
+ Do not retry with `--direct` because it changes the source status.
314
+
315
+ For authentication errors, run `skilld auth status` before login.
316
+ For target errors, inspect `agent.targets` and the requested `--agent` values.
317
+ For lockfile errors, preserve the lockfile and report its path.
318
+ For target conflicts, stop before overwriting existing files.
319
+
320
+ If a command partially completes, report every successful and failed Skill.
321
+ Never claim success from generated commands that were not run.
package/dist/skills.d.mts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { HarnessV1Skill } from "@ai-sdk/harness";
2
- declare function harnessSkillNames(): Promise<ReadonlyArray<string>>;
3
- declare function skilldMaintainedSkillNames(): Promise<ReadonlyArray<string>>;
4
- declare function loadSkilldMaintainedSkill(name: string): Promise<HarnessV1Skill>;
5
- declare const DEFAULT_OUTPUT_POLICY: Readonly<{
2
+ export declare function harnessSkillNames(): Promise<ReadonlyArray<string>>;
3
+ export declare function skilldMaintainedSkillNames(): Promise<ReadonlyArray<string>>;
4
+ export declare function loadSkilldMaintainedSkill(name: string): Promise<HarnessV1Skill>;
5
+ export declare const DEFAULT_OUTPUT_POLICY: Readonly<{
6
6
  maxSourceFiles: 2000;
7
7
  maxSourceFileBytes: number;
8
8
  maxSourceBytes: number;
@@ -10,5 +10,4 @@ declare const DEFAULT_OUTPUT_POLICY: Readonly<{
10
10
  maxOutputFileBytes: number;
11
11
  maxOutputBytes: number;
12
12
  }>;
13
- export { DEFAULT_OUTPUT_POLICY, harnessSkillNames, loadSkilldMaintainedSkill, skilldMaintainedSkillNames };
14
13
  //# sourceMappingURL=skills.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.mts","names":[],"sources":["../src/skills.ts"],"mappings":";iBAsDsB,qBAAqB,QAAQ;iBAK7B,8BAA8B,QAAQ;iBAKtC,0BAA0B,eAAe,QAAQ;cAqB1D,uBAAqB"}
1
+ {"version":3,"file":"skills.d.mts","names":[],"sources":["../src/skills.ts"],"mappings":";wBAsDsB,qBAAqB,QAAQ;wBAK7B,8BAA8B,QAAQ;wBAKtC,0BAA0B,eAAe,QAAQ;qBAqB1D,uBAAqB"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "skilld-harness",
3
3
  "type": "module",
4
- "version": "3.0.0-beta.3",
4
+ "version": "3.0.0-beta.5",
5
5
  "description": "Run skilld-maintained Skills with checked, atomic output",
6
6
  "author": {
7
7
  "name": "Harlan Wilton",
@@ -45,18 +45,18 @@
45
45
  "node": ">=22.0.0"
46
46
  },
47
47
  "dependencies": {
48
- "@ai-sdk/harness": "^1.0.87",
48
+ "@ai-sdk/harness": "^1.0.100",
49
49
  "yaml": "^2.9.0",
50
- "zod": "^4.4.3"
50
+ "zod": "^4.5.4"
51
51
  },
52
52
  "devDependencies": {
53
- "@ai-sdk/provider-utils": "^5.0.30",
54
- "@antfu/eslint-config": "^9.3.0",
53
+ "@ai-sdk/provider-utils": "^5.0.36",
54
+ "@antfu/eslint-config": "^9.5.1",
55
55
  "@arethetypeswrong/cli": "^0.18.5",
56
- "@types/node": "^26.3.0",
56
+ "@types/node": "^26.4.1",
57
57
  "@typescript/native": "npm:typescript@7.0.2",
58
58
  "eslint": "^10.9.1",
59
- "obuild": "^0.4.38",
59
+ "obuild": "^0.4.39",
60
60
  "publint": "^0.3.24",
61
61
  "typescript": "npm:@typescript/typescript6@^6.0.2",
62
62
  "vitest": "^4.1.11"