skillshop 2.2.0 → 4.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 +71 -190
- package/docs/installation-and-dependency-state.md +76 -0
- package/docs/package-library-compatibility.md +194 -0
- package/docs/releases/4.1.0.md +12 -0
- package/package.json +7 -3
- package/skills-content/skillshop/SKILL.md +48 -13
- package/src/cli.js +40 -16
- package/src/dependencies.js +282 -0
- package/src/github-library.js +322 -0
- package/src/import.js +15 -0
- package/src/index.js +2 -0
- package/src/installation-state.js +113 -0
- package/src/legacy-cli.js +858 -103
- package/src/personal-library.js +591 -0
- package/src/user-install.js +34 -1
- package/templates/skillshop-library/README.md +40 -0
- package/templates/skillshop-library/skills/example/SKILL.md +8 -0
- package/templates/skillshop-library/skills/example/references/example.md +3 -0
- package/templates/skillshop-library/skills/example/scripts/run.sh +2 -0
- package/templates/skillshop-library/skillshop-library.json +4 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Skillshop personal library template
|
|
2
|
+
|
|
3
|
+
This is a forkable, plain-folder library for user-authored skills. No `package.json`, build step, or npm metadata is required. Create a GitHub repository named `skillshop-library` under your account to share skills with `skillshop download @owner/skill`.
|
|
4
|
+
|
|
5
|
+
The repository uses `skillshop-library.json` to name its source directory. The default is `skills/`:
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"schemaVersion": 1,
|
|
10
|
+
"skillsDirectory": "skills"
|
|
11
|
+
}
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Add one directory under `skills/` per skill. Each needs a `SKILL.md` with front matter containing `name` and `description`. Author/version metadata is optional. References, scripts, hidden files, binary assets, nested files, and executable modes stay beside the manifest and are copied as part of the complete directory.
|
|
15
|
+
|
|
16
|
+
## Use the library
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
skillshop library init [directory] # select or adopt a local source folder (no migration)
|
|
20
|
+
skillshop library list
|
|
21
|
+
skillshop download @alice/review # add source only
|
|
22
|
+
skillshop install @alice/review # download if absent, then install locally
|
|
23
|
+
skillshop install @alice/review --global
|
|
24
|
+
skillshop install review # install an existing selected source
|
|
25
|
+
skillshop sync # update recorded local and global copies
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
`library init` defaults to the visible `~/skillshop-library` directory. It can also create or select an existing folder with this layout. Existing skill sources and valid config are retained. Add skills by copying their directories into the configured source folder.
|
|
29
|
+
|
|
30
|
+
`download @owner/skill` reads `https://github.com/owner/skillshop-library.git` and adds the selected skill to the personal library without installing it. The `@` is CLI syntax and is stripped from the GitHub owner. Unprefixed `owner/skill` inputs are rejected. A same-name authored or different-origin source fails safely. Use `download @owner/skill --force` only when you intend to replace that library source.
|
|
31
|
+
|
|
32
|
+
`install @owner/skill` downloads when the source is absent and then installs from the personal library. If a same-origin source already exists, local edits are reused without fetching. `install name` uses the selected local source. `--global` selects configured user skill directories.
|
|
33
|
+
|
|
34
|
+
`sync` propagates full-tree changes from the library roots recorded with installed copies. It includes file additions, edits, deletions, binary/reference assets, and mode changes. It replaces content inside those Skillshop-owned directories, repairs divergent installed edits, and removes stale extras. An unchanged copy is left in place. It does not fetch GitHub. Switching the active library does not redirect older installs.
|
|
35
|
+
|
|
36
|
+
`sync` is also the explicit migration step for tracked copies made by older bundled Skillshop installs; `library init` never migrates. A source already in the selected library wins and updates the tracked copies. If the source is missing, Skillshop imports it only when every surviving tracked project and global copy agrees in paths, file bytes, and modes. Conflicts, unknown source kinds, malformed ownership state, unmanaged directories, and package-import snapshots are preserved and reported. Missing recorded destinations are pruned, never recreated.
|
|
37
|
+
|
|
38
|
+
The `skillsDirectory` field can name another safe relative directory inside this library. Set it to `.` to use skill folders directly in the library root.
|
|
39
|
+
|
|
40
|
+
Installation ownership is recorded in `.skillshop-lock` inside each destination skills directory, not at the library or project root. Project dependency declarations (`skillshop.json`) and their reproducibility lock (`skillshop-lock.json`) are a separate opt-in workflow.
|