skillshop 2.0.0 → 2.1.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.
- package/README.md +217 -104
- package/agents-content/000_communication-writing.block.md +11 -0
- package/agents-content/001_external-actions.block.md +9 -0
- package/agents-content/AGENTS.md +11 -0
- package/package.json +6 -3
- package/skills-content/architecture-scanner/SKILL.md +274 -0
- package/skills-content/architecture-scanner/files.json +10 -0
- package/skills-content/architecture-scanner/scan.sh +823 -0
- package/skills-content/change-review/SKILL.md +76 -0
- package/skills-content/change-review/agents/openai.yaml +4 -0
- package/skills-content/changelog/SKILL.md +99 -0
- package/skills-content/changeset/changeset.md +80 -0
- package/skills-content/code-buddy/SKILL.md +136 -0
- package/skills-content/design-system-catalog/SKILL.md +106 -0
- package/skills-content/design-system-catalog/extract-components.mjs +441 -0
- package/skills-content/design-system-catalog/generate-catalog.sh +255 -0
- package/skills-content/flare/SKILL.md +96 -0
- package/skills-content/grilling/SKILL.md +31 -0
- package/skills-content/install-sigmap/SKILL.md +97 -0
- package/skills-content/one-shot/SKILL.md +51 -0
- package/skills-content/release/SKILL.md +128 -0
- package/skills-content/shadow-clone/SKILL.md +228 -0
- package/skills-content/shadow-clone/extract-signatures.mjs +202 -0
- package/skills-content/shadow-clone/scan-repo.mjs +343 -0
- package/skills-content/ship/SKILL.md +95 -0
- package/skills-content/shots/SKILL.md +89 -0
- package/skills-content/shots/agents/openai.yaml +4 -0
- package/skills-content/skillshop/SKILL.md +104 -0
- package/skills-content/skillz/SKILL.md +15 -0
- package/skills-content/transcript-clean/SKILL.md +55 -0
- package/skills-content/transcript-edit/SKILL.md +80 -0
- package/skills-content/vitest/GENERATION.md +5 -0
- package/skills-content/vitest/SKILL.md +52 -0
- package/skills-content/vitest/references/advanced-environments.md +264 -0
- package/skills-content/vitest/references/advanced-projects.md +300 -0
- package/skills-content/vitest/references/advanced-type-testing.md +237 -0
- package/skills-content/vitest/references/advanced-vi.md +249 -0
- package/skills-content/vitest/references/core-cli.md +166 -0
- package/skills-content/vitest/references/core-config.md +174 -0
- package/skills-content/vitest/references/core-describe.md +193 -0
- package/skills-content/vitest/references/core-expect.md +219 -0
- package/skills-content/vitest/references/core-hooks.md +244 -0
- package/skills-content/vitest/references/core-test-api.md +233 -0
- package/skills-content/vitest/references/features-concurrency.md +250 -0
- package/skills-content/vitest/references/features-context.md +238 -0
- package/skills-content/vitest/references/features-coverage.md +207 -0
- package/skills-content/vitest/references/features-filtering.md +211 -0
- package/skills-content/vitest/references/features-mocking.md +265 -0
- package/skills-content/vitest/references/features-snapshots.md +207 -0
- package/skills-content/workleaf/SKILL.md +77 -0
- package/skills-content/worklog/SKILL.md +145 -0
- package/skills-content/worklog/references/summary-format.md +114 -0
- package/skills-content/worktree/SKILL.md +71 -0
- package/src/agents-instructions.js +219 -0
- package/src/cli.js +87 -23
- package/src/import.js +12 -7
- package/src/index.js +1 -0
- package/src/legacy-agents-content.js +36 -0
- package/src/legacy-cli.js +1234 -0
- package/src/library.js +9 -0
- package/src/specifier.js +11 -0
- package/src/user-install.js +48 -0
package/README.md
CHANGED
|
@@ -1,168 +1,281 @@
|
|
|
1
1
|
# Skillshop
|
|
2
2
|
|
|
3
|
-
Skillshop
|
|
3
|
+
Skillshop installs and manages agent skills. Its CLI includes a bundled skill registry, with the same named install, update, and agent configuration commands as the earlier `skillz` CLI. It also lets project owners export skills from their own npm packages. A skill is a directory containing `SKILL.md` and any supporting files.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
The command is `skillshop`; `sk` runs the same CLI. The previous `skillz` command is no longer an executable alias. Existing `.skillz-lock` and `~/.skillz` state remain readable.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
## For users: manage skills
|
|
8
|
+
|
|
9
|
+
### Install and configure Skillshop
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install --global skillshop
|
|
13
|
+
skillshop init
|
|
11
14
|
```
|
|
12
15
|
|
|
13
|
-
|
|
16
|
+
`init` asks which agents you use and saves their destinations in `~/.skillshop/config.json`. Change the selection later with `skillshop config agents`. Codex and OpenCode use `.agents/skills` inside projects and `~/.agents/skills` for user-level installs. Copilot and Claude use their own skill directories. Shared destinations get one copy.
|
|
14
17
|
|
|
15
|
-
|
|
18
|
+
### Install a named skill
|
|
16
19
|
|
|
17
|
-
|
|
20
|
+
List the skills bundled with Skillshop, then install one:
|
|
18
21
|
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
```bash
|
|
23
|
+
skillshop list
|
|
24
|
+
skillshop one-shot
|
|
25
|
+
# Equivalent: skillshop install one-shot
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Run a project install inside a Git repository. Skillshop copies the skill into each configured project destination and records managed copies in `.skillshop-lock`. It also installs the `skillshop` guidance skill. The lockfile and managed skill directories go into the repository's local Git exclude file, leaving unrelated skill directories alone.
|
|
29
|
+
|
|
30
|
+
To install a named skill for your user account instead:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
skillshop one-shot --global
|
|
34
|
+
# Equivalent: sk install one-shot --global
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
For Codex or OpenCode, this writes `~/.agents/skills/one-shot`. A global install replaces an existing skill directory with that name, including local edits and extra files. Global installs use `~/.skillshop/global-skills.json` for bookkeeping. Each CLI run reconciles recorded installations; it does not install the entire bundled registry.
|
|
38
|
+
|
|
39
|
+
### Update or remove skills
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
skillshop update
|
|
43
|
+
skillshop update one-shot
|
|
44
|
+
skillshop update --push
|
|
45
|
+
skillshop uninstall one-shot
|
|
46
|
+
skillshop uninstall one-shot --global
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
`update` replaces skills managed in the current project's lockfile. `update --push` updates registered projects. Neither command updates global copies; reinstall a global skill by name with `--global`. Project uninstall removes only a skill recorded in `.skillshop-lock`. Global uninstall removes the named skill from configured user directories.
|
|
50
|
+
|
|
51
|
+
An exact version such as `skillshop one-shot@2026.8.21` checks the currently bundled version. It does not fetch a historical release. Use `skillshop migrate` to discover older lockfiles and register their repositories.
|
|
52
|
+
|
|
53
|
+
### Manage agent instructions
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
skillshop agents
|
|
57
|
+
skillshop agents --global
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
The local command updates a managed block in the nearest existing `AGENTS.md`. The global command updates the supported user instruction files. Sibling `*.block.md` fragments are composed in filename order. Text outside Skillshop's managed blocks is preserved.
|
|
61
|
+
|
|
62
|
+
### Use skills from another package
|
|
63
|
+
|
|
64
|
+
A distributor can declare which exported skills a global npm install should place in your user skill directory:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
npm install --global @example/skill-library
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Those declared skills are copied during the package's install script. This package installer targets `~/.agents/skills` by default, independently of the agents selected with `skillshop init`. Updating the package replaces the same named user skills. If scripts are disabled, run `skillshop install-user /path/to/installed-package` manually.
|
|
71
|
+
|
|
72
|
+
To copy one exported skill into a project instead:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
npm install @example/skill-library skillshop
|
|
76
|
+
npx skillshop import @example/skill-library:review
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
The `library:skill` argument names an installed package and one skill it exports. The command copies the skill to `.agents/skills/review` in the current project. Use `--to` for another destination or `--global` to copy it to `~/.agents/skills/review`. This is a snapshot. Reimport with `--force` to replace an existing project copy. `skillshop resolve @example/skill-library:review` reports its source location without copying it.
|
|
80
|
+
|
|
81
|
+
### Example: one user, two scopes
|
|
82
|
+
|
|
83
|
+
Suppose you use Codex and work in `~/work/sample-app`, which is already a Git repository. Select Codex when `skillshop init` prompts, then install one bundled skill for every project and another only for this app:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
skillshop init
|
|
87
|
+
skillshop one-shot --global
|
|
88
|
+
cd ~/work/sample-app
|
|
89
|
+
skillshop changelog
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
The global command writes `~/.agents/skills/one-shot/SKILL.md`. The project command writes `.agents/skills/changelog/SKILL.md` and `.agents/skills/skillshop/SKILL.md` inside `sample-app`, then records both managed skills in `.skillshop-lock`. It does not copy `one-shot` into the project. Running `skillshop update` in `sample-app` refreshes the locked project skills; run `skillshop one-shot --global` again to replace the global copy.
|
|
93
|
+
|
|
94
|
+
Package imports are separate from this lockfile workflow. `import` copies a snapshot from another package; `skillshop update` does not refresh that snapshot. `export` names a skill for consumers of a package and does not install it anywhere.
|
|
95
|
+
|
|
96
|
+
## For project owners: distribute skills
|
|
97
|
+
|
|
98
|
+
### 1. Export the skills
|
|
99
|
+
|
|
100
|
+
In an npm package, put each skill in a directory with a `SKILL.md`. For example:
|
|
101
|
+
|
|
102
|
+
```text
|
|
103
|
+
my-library/
|
|
104
|
+
package.json
|
|
105
|
+
.agents/skills/review/SKILL.md
|
|
106
|
+
.agents/skills/triage/SKILL.md
|
|
27
107
|
```
|
|
28
108
|
|
|
29
|
-
|
|
109
|
+
For example, `.agents/skills/review/SKILL.md` could contain:
|
|
30
110
|
|
|
31
|
-
|
|
111
|
+
```markdown
|
|
112
|
+
---
|
|
113
|
+
name: review
|
|
114
|
+
description: Review a proposed code change
|
|
115
|
+
---
|
|
32
116
|
|
|
33
|
-
|
|
117
|
+
# Review
|
|
34
118
|
|
|
35
|
-
|
|
119
|
+
Read the diff, identify concrete defects, and cite the affected files.
|
|
120
|
+
```
|
|
36
121
|
|
|
37
|
-
|
|
38
|
-
- `skillshop build` requires that source manifest and generates entries only for explicitly named local exports and re-exports. Missing manifests fail validation; empty manifests publish zero skills.
|
|
39
|
-
- `skillshop resolve` and `skillshop import` reject unlisted `skill:*` names, even when their files are present on disk.
|
|
40
|
-
- `skillshop export` and `skillshop unexport` explicitly change that public surface. Removing an export does not delete the repository's local skill files.
|
|
41
|
-
- Aggregators must also explicitly list every upstream skill they re-export; importing a dependency does not re-export its entire library.
|
|
122
|
+
Keep any references or scripts needed by the skill beside its `SKILL.md`; Skillshop copies the whole directory.
|
|
42
123
|
|
|
43
|
-
Skillshop
|
|
124
|
+
Add Skillshop, initialize the export list, and name the skill you want to publish:
|
|
44
125
|
|
|
45
|
-
|
|
126
|
+
```bash
|
|
127
|
+
npm install skillshop
|
|
128
|
+
npx skillshop library init
|
|
129
|
+
npx skillshop export skill:review ./.agents/skills/review
|
|
130
|
+
npx skillshop export skill:triage ./.agents/skills/triage
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
This writes `skillshop.library.json`:
|
|
46
134
|
|
|
47
135
|
```json
|
|
48
136
|
{
|
|
49
137
|
"schemaVersion": 1,
|
|
50
138
|
"exports": {
|
|
51
|
-
"skill:
|
|
52
|
-
|
|
53
|
-
"skill": "skill:clips"
|
|
54
|
-
}
|
|
139
|
+
"skill:review": "./.agents/skills/review",
|
|
140
|
+
"skill:triage": "./.agents/skills/triage"
|
|
55
141
|
}
|
|
56
142
|
}
|
|
57
143
|
```
|
|
58
144
|
|
|
59
|
-
The
|
|
145
|
+
The `exports` map is an explicit allowlist. Skillshop does not scan your repository for other skills. `skillshop export` also builds the library; run `skillshop build` after editing the JSON by hand. The build generates `skillshop.manifest.mjs`, adds the package's `./skillshop` export, and includes declared local skill directories in `package.json#files` when that field exists. Commit the resulting package files with your source.
|
|
60
146
|
|
|
61
|
-
|
|
147
|
+
### 2. Declare user-level installation, if needed
|
|
62
148
|
|
|
63
|
-
|
|
149
|
+
To copy selected skills during a global npm install, add `skillshop.userInstall` and the generic lifecycle command to the distributor's `package.json`:
|
|
64
150
|
|
|
65
|
-
```
|
|
66
|
-
|
|
151
|
+
```json
|
|
152
|
+
{
|
|
153
|
+
"name": "@example/skill-library",
|
|
154
|
+
"version": "1.0.0",
|
|
155
|
+
"dependencies": {
|
|
156
|
+
"skillshop": "^2.1.0"
|
|
157
|
+
},
|
|
158
|
+
"files": [],
|
|
159
|
+
"scripts": {
|
|
160
|
+
"prepack": "skillshop build",
|
|
161
|
+
"postinstall": "skillshop install-user . --if-global"
|
|
162
|
+
},
|
|
163
|
+
"skillshop": {
|
|
164
|
+
"userInstall": ["skill:review"]
|
|
165
|
+
}
|
|
166
|
+
}
|
|
67
167
|
```
|
|
68
168
|
|
|
69
|
-
|
|
169
|
+
Every `userInstall` entry must be unique and appear in `skillshop.library.json`. In this example, `skill:review` installs for the user on a global npm install. `skill:triage` remains available for explicit project imports. The runtime dependency makes the `skillshop` command available to npm's `postinstall` script. `--if-global` skips the user copy on a project-local install. npm's `--ignore-scripts` skips `postinstall` entirely.
|
|
70
170
|
|
|
71
|
-
|
|
72
|
-
skillshop export skill:clips ./.agents/skills/clips
|
|
73
|
-
skillshop export skill:loopz ./.agents/skills/loopz
|
|
74
|
-
skillshop export skill:clips --from @dfosco/clips
|
|
75
|
-
skillshop list
|
|
76
|
-
skillshop validate
|
|
77
|
-
skillshop build
|
|
78
|
-
```
|
|
171
|
+
An install replaces each declared destination directory. If a later release removes a name from `userInstall`, Skillshop does not delete a copy previously installed in a user's directory.
|
|
79
172
|
|
|
80
|
-
|
|
173
|
+
### 3. Check and pack the package
|
|
81
174
|
|
|
82
175
|
```bash
|
|
83
|
-
skillshop
|
|
84
|
-
skillshop
|
|
176
|
+
npx skillshop library list
|
|
177
|
+
npx skillshop validate
|
|
178
|
+
npx skillshop build
|
|
179
|
+
npm pack --dry-run
|
|
85
180
|
```
|
|
86
181
|
|
|
87
|
-
|
|
182
|
+
Check that the npm package contains `skillshop.manifest.mjs`, every exported `SKILL.md`, and any assets those skills need. The export list controls what Skillshop can resolve; it does not prevent your own broad `files` patterns from publishing other files. A real `npm pack` and global install from its tarball are useful checks before a release.
|
|
88
183
|
|
|
89
|
-
|
|
184
|
+
After checking the tarball, publish the package with `npm publish`. Use `npm publish --access public` for a public scoped package.
|
|
90
185
|
|
|
91
|
-
|
|
186
|
+
### Example: what happens after publication
|
|
92
187
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
merge: true,
|
|
99
|
-
});
|
|
100
|
-
// result.installed and result.updated indicate newly copied or changed files.
|
|
188
|
+
With the two-skill package above published as `@example/skill-library`, a global install copies only the declared `skill:review` to the user's skill directory:
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
npm install --global @example/skill-library
|
|
192
|
+
# ~/.agents/skills/review/SKILL.md now comes from the package
|
|
101
193
|
```
|
|
102
194
|
|
|
103
|
-
|
|
195
|
+
An application that needs `skill:triage` can install the package locally and copy that exported skill into its own repository:
|
|
104
196
|
|
|
105
|
-
|
|
197
|
+
```bash
|
|
198
|
+
cd ~/work/sample-app
|
|
199
|
+
npm install @example/skill-library skillshop
|
|
200
|
+
npx skillshop import @example/skill-library:triage
|
|
201
|
+
```
|
|
106
202
|
|
|
107
|
-
|
|
203
|
+
After the distributor publishes an update, reinstalling the package globally replaces the user's `review` directory. The application's `triage` snapshot stays as it was until the application updates the package and imports again with `--force`. The two installation paths are independent.
|
|
108
204
|
|
|
109
|
-
|
|
110
|
-
import { exportSkill, reexportSkill, buildSkillLibrary } from 'skillshop/export';
|
|
111
|
-
import { resolveSkill, importSkill } from 'skillshop/import';
|
|
112
|
-
```
|
|
205
|
+
### Re-export a skill from another library
|
|
113
206
|
|
|
114
|
-
|
|
207
|
+
A package can expose a selected upstream skill under its own name:
|
|
115
208
|
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
source: './.agents/skills/clips',
|
|
121
|
-
});
|
|
209
|
+
```bash
|
|
210
|
+
npm install @example/upstream
|
|
211
|
+
npx skillshop export skill:review --from @example/upstream --skill skill:review
|
|
212
|
+
```
|
|
122
213
|
|
|
123
|
-
|
|
124
|
-
root: process.cwd(),
|
|
125
|
-
specifier: 'skill:loopz',
|
|
126
|
-
from: '@dfosco/clips',
|
|
127
|
-
});
|
|
214
|
+
The resulting export in `skillshop.library.json` is:
|
|
128
215
|
|
|
129
|
-
|
|
216
|
+
```json
|
|
217
|
+
{
|
|
218
|
+
"skill:review": {
|
|
219
|
+
"from": "@example/upstream",
|
|
220
|
+
"skill": "skill:review"
|
|
221
|
+
}
|
|
222
|
+
}
|
|
130
223
|
```
|
|
131
224
|
|
|
132
|
-
|
|
225
|
+
That object is one entry inside the manifest's `exports` map. The upstream package must be a runtime dependency or a non-optional peer dependency. Re-exporting is explicit; depending on another library does not expose all of its skills.
|
|
133
226
|
|
|
134
|
-
|
|
135
|
-
const clips = await resolveSkill({
|
|
136
|
-
library: '@dfosco/clips',
|
|
137
|
-
specifier: 'skill:clips',
|
|
138
|
-
});
|
|
227
|
+
## CLI and JavaScript API
|
|
139
228
|
|
|
140
|
-
|
|
229
|
+
```text
|
|
230
|
+
skillshop init
|
|
231
|
+
skillshop config agents
|
|
232
|
+
skillshop list
|
|
233
|
+
skillshop <name> [--global]
|
|
234
|
+
skillshop install <name> [--global]
|
|
235
|
+
skillshop update [name]
|
|
236
|
+
skillshop update --push
|
|
237
|
+
skillshop uninstall <name> [--global]
|
|
238
|
+
skillshop agents [--global]
|
|
239
|
+
skillshop migrate [root ...]
|
|
240
|
+
skillshop library init
|
|
241
|
+
skillshop library list
|
|
242
|
+
skillshop export skill:<name> <directory>
|
|
243
|
+
skillshop export skill:<name> --from <package> [--skill skill:<source-name>]
|
|
244
|
+
skillshop unexport skill:<name>
|
|
245
|
+
skillshop validate
|
|
246
|
+
skillshop build
|
|
247
|
+
skillshop resolve <library>:<skill>
|
|
248
|
+
skillshop import <library>:<skill> [--global] [--to <directory>] [--force]
|
|
249
|
+
skillshop install-user [package-dir] [--if-global] [--to <skills-dir>]
|
|
141
250
|
```
|
|
142
251
|
|
|
143
|
-
|
|
252
|
+
`init` and `list` keep their bundled-registry meanings. `library init`, `library list`, `validate`, and `build` operate on the package library in the current directory. In a `library:skill` reference, `library` can be an installed package name or a local package directory. `import` defaults to `.agents/skills/<skill>`; `--global` replaces `~/.agents/skills/<skill>`. `unexport` changes the package's public skill list; it does not delete the source directory. Remove a skill from `userInstall` before unexporting it.
|
|
253
|
+
|
|
254
|
+
Applications can use the same operations without invoking the CLI:
|
|
144
255
|
|
|
145
256
|
```js
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
targetDir: '.agents/skills/loopz',
|
|
150
|
-
});
|
|
257
|
+
import { exportSkill, reexportSkill, buildSkillLibrary } from 'skillshop/export';
|
|
258
|
+
import { resolveSkill, importSkill } from 'skillshop/import';
|
|
259
|
+
import { installDeclaredUserSkills } from 'skillshop/user-install';
|
|
151
260
|
```
|
|
152
261
|
|
|
153
|
-
|
|
262
|
+
For example, an application can read an exported skill directly from an installed package, or copy it into a workspace it manages:
|
|
154
263
|
|
|
155
|
-
|
|
264
|
+
```js
|
|
265
|
+
import { readFile } from 'node:fs/promises';
|
|
266
|
+
import { resolveSkill, importSkill } from 'skillshop/import';
|
|
156
267
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
268
|
+
const reference = '@example/skill-library:triage';
|
|
269
|
+
const { manifestPath } = await resolveSkill({ reference });
|
|
270
|
+
const instructions = await readFile(manifestPath, 'utf8');
|
|
271
|
+
// Pass instructions to your agent runtime.
|
|
160
272
|
|
|
161
|
-
|
|
273
|
+
await importSkill({
|
|
274
|
+
reference,
|
|
275
|
+
overwrite: true,
|
|
276
|
+
});
|
|
277
|
+
```
|
|
162
278
|
|
|
163
|
-
|
|
279
|
+
`resolveSkill` leaves the skill inside the installed package. `importSkill` copies its complete directory, including files alongside `SKILL.md`. Set `overwrite: true` only when the application intends to replace an existing destination.
|
|
164
280
|
|
|
165
|
-
|
|
166
|
-
- **Clips** can export `skill:clips` and `skill:loopz`.
|
|
167
|
-
- **A personal library** can aggregate local skills and re-export `skill:*` components from packages such as Clips without vendoring them.
|
|
168
|
-
- **Hypercanvas** can optionally resolve/import Clips workflow skills for Squads.
|
|
281
|
+
`importSkill({ overwrite: true })` replaces a destination. Its optional `merge: true` mode overlays packaged files and preserves unrelated destination files. User-level installation always uses replacement, even when called through `installDeclaredUserSkills`.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
## Communication and writing
|
|
2
|
+
|
|
3
|
+
- Write directly and concisely. Prefer short, distinct sentences over long compound ones.
|
|
4
|
+
- Do not overuse em dashes. There are periods, commas, semicolons, and exclamation marks. Use them.
|
|
5
|
+
- Remove hedges and filler that add no information. Keep technical terms when they add precision.
|
|
6
|
+
- Avoid exact counts unless the number matters. "All the callers" is usually better than "all 4 callers."
|
|
7
|
+
- Short, natural reactions are fine. Use "Good catch!" rather than an inflated response.
|
|
8
|
+
- Avoid throat clearing, restating the question, routine process narration, and closing offers. Brief accountability or correction is fine when it helps the reader.
|
|
9
|
+
- Do not explain in prose what a table or diff already makes clear.
|
|
10
|
+
- State genuine uncertainty briefly. Do not add defensive caveats or pre-empt objections nobody raised.
|
|
11
|
+
- Brevity must not hide important behavior, risk, uncertainty, or evidence.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
### Approval for external actions
|
|
2
|
+
|
|
3
|
+
All external actions require explicit approval before proceeding. Even on autopilot mode, do not post without explicit written authorizaton from the user.
|
|
4
|
+
|
|
5
|
+
- Before posting or editing a PR comment, review reply, issue comment, Slack message, or other external message, show me the exact draft and get an explicit OK. This includes edits to existing messages.
|
|
6
|
+
- Before resolving review threads, requesting reviewers, or changing other visible review state, describe the exact action and get an explicit OK.
|
|
7
|
+
- Create an issue, epic, or PR only when I explicitly request it. Before opening one, show me its proposed title and body and get an explicit OK.
|
|
8
|
+
- A direct request to update an existing PR or issue body authorizes that update without another approval. Fetch the latest body from the host immediately before editing it.
|
|
9
|
+
- Pushing requested commits does not require another approval.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
### Baseline tone
|
|
2
|
+
|
|
3
|
+
This applies to every text that you write.
|
|
4
|
+
|
|
5
|
+
Adopt a skeptical, questioning approach. Don't default to praise, criticize my ideas, provide counterpoints, dig deeper. I need you to find the blind spots in my thinking and account for them, in a straight shooting and constructive way.
|
|
6
|
+
|
|
7
|
+
Don't overuse adjectives, don't compliment or criticize my arguments in a personalized way, just attend to the facts and topics. Tell it like it is; don't sugar-coat responses. Also don't explicitly mention you're NOT praising me or actively say you're “getting to the point”. Don't comment on your tone at all.
|
|
8
|
+
|
|
9
|
+
When explaining things, provide depth of concepts, be extensive, with context, clarity and explanation of concepts along the way.
|
|
10
|
+
|
|
11
|
+
{{ blocks }}
|
package/package.json
CHANGED
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skillshop",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "Build, export, resolve, and
|
|
3
|
+
"version": "2.1.0",
|
|
4
|
+
"description": "Build, export, resolve, and install portable agent skill libraries",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"skillshop": "./src/cli.js",
|
|
8
|
-
"
|
|
8
|
+
"sk": "./src/cli.js"
|
|
9
9
|
},
|
|
10
10
|
"exports": {
|
|
11
11
|
".": "./src/index.js",
|
|
12
12
|
"./library": "./src/library.js",
|
|
13
13
|
"./export": "./src/export.js",
|
|
14
14
|
"./import": "./src/import.js",
|
|
15
|
+
"./user-install": "./src/user-install.js",
|
|
15
16
|
"./specifier": "./src/specifier.js"
|
|
16
17
|
},
|
|
17
18
|
"files": [
|
|
19
|
+
"agents-content/",
|
|
20
|
+
"skills-content/",
|
|
18
21
|
"src/",
|
|
19
22
|
"README.md"
|
|
20
23
|
],
|