@anytio/pspm 0.2.0 → 0.3.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/CHANGELOG.md CHANGED
@@ -5,6 +5,27 @@ All notable changes to the PSPM CLI will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.3.0] - 2026-01-27
9
+
10
+ ### Added
11
+
12
+ - **Local directory support**: Install skills directly from local directories using the `file:` protocol
13
+ - `pspm add file:../my-skill` - Install from relative path
14
+ - `pspm add file:/absolute/path/to/skill` - Install from absolute path
15
+ - `pspm add ../my-skill` - Auto-detected as `file:../my-skill`
16
+ - Local packages are symlinked (not copied) for instant updates during development
17
+ - `localDependencies` section in `pspm.json`
18
+ - `localPackages` section in lockfile (version 5)
19
+ - Local packages stored as symlinks in `.pspm/skills/_local/{name}/`
20
+
21
+ - **Enhanced `list` command**: Shows local packages with `[local]` indicator and path
22
+
23
+ ### Changed
24
+
25
+ - Lockfile version bumped to 5 to support `localPackages`
26
+ - `install` command now processes local dependencies (Phase 2.5 resolve, Phase 4.5 install)
27
+ - `remove` command now handles local package removal
28
+
8
29
  ## [0.2.0] - 2026-01-23
9
30
 
10
31
  ### Changed
package/CLI_GUIDE.md CHANGED
@@ -158,6 +158,11 @@ pspm add github:owner/repo@main # Entire repo, specific branch
158
158
  pspm add github:owner/repo/path/to/skill # Subdirectory, default branch
159
159
  pspm add github:owner/repo/path@v1.0.0 # Subdirectory with tag/ref
160
160
 
161
+ # Local specifier formats:
162
+ pspm add file:../my-skill # Relative path (symlinked)
163
+ pspm add file:/absolute/path/to/skill # Absolute path
164
+ pspm add ../my-skill # Auto-detected as file:../my-skill
165
+
161
166
  # Add multiple skills at once:
162
167
  pspm add @user/alice/skill1 @user/bob/skill2
163
168
 
@@ -196,7 +201,10 @@ pspm list --json
196
201
  # github:owner/repo/skills/react-tips (main@abc1234)
197
202
  # -> .claude/skills/react-tips, .cursor/skills/react-tips
198
203
  #
199
- # Total: 2 skill(s) (1 registry, 1 github)
204
+ # my-local-skill [local] <- ../my-local-skill
205
+ # -> .claude/skills/my-local-skill
206
+ #
207
+ # Total: 3 skill(s) (1 registry, 1 github, 1 local)
200
208
  ```
201
209
 
202
210
  ### Install Skills
@@ -353,7 +361,7 @@ Package manifest file (created with `pspm init`):
353
361
 
354
362
  ```json
355
363
  {
356
- "lockfileVersion": 3,
364
+ "lockfileVersion": 5,
357
365
  "registryUrl": "https://pspm.dev",
358
366
  "packages": {
359
367
  "@user/bsheng/vite_slides": {
@@ -370,6 +378,14 @@ Package manifest file (created with `pspm init`):
370
378
  "gitCommit": "abc1234567890...",
371
379
  "gitRef": "main"
372
380
  }
381
+ },
382
+ "localPackages": {
383
+ "file:../my-skill": {
384
+ "version": "local",
385
+ "path": "../my-skill",
386
+ "resolvedPath": "/absolute/path/to/my-skill",
387
+ "name": "my-skill"
388
+ }
373
389
  }
374
390
  }
375
391
  ```
@@ -402,10 +418,12 @@ project/
402
418
  │ ├── skills/ # Installed skills
403
419
  │ │ ├── {username}/ # Registry skills
404
420
  │ │ │ └── {skillname}/
405
- │ │ └── _github/ # GitHub skills
406
- │ │ └── {owner}/
407
- │ │ └── {repo}/
408
- │ │ └── {path}/
421
+ │ │ ├── _github/ # GitHub skills
422
+ │ │└── {owner}/
423
+ │ │└── {repo}/
424
+ │ │└── {path}/
425
+ │ │ └── _local/ # Local skills (symlinks)
426
+ │ │ └── {name} -> /path/to/source
409
427
  │ └── cache/ # Tarball cache
410
428
  ├── .claude/
411
429
  │ └── skills/ # Symlinks for claude-code agent
package/README.md CHANGED
@@ -100,6 +100,11 @@ pspm install # Install all from lockfile
100
100
  - `github:owner/repo/path/to/skill` - Subdirectory within repo
101
101
  - `github:owner/repo/path/to/skill@v1.0.0` - Subdirectory with tag
102
102
 
103
+ **Local specifier formats:**
104
+ - `file:../my-skill` - Relative path (symlinked, not copied)
105
+ - `file:/absolute/path/to/skill` - Absolute path
106
+ - `../my-skill` - Auto-detected as `file:../my-skill`
107
+
103
108
  **Agent symlink options:**
104
109
  ```bash
105
110
  pspm add <specifier> --agent claude-code,cursor # Link to multiple agents
@@ -161,7 +166,7 @@ registry = https://custom-registry.example.com
161
166
 
162
167
  ```json
163
168
  {
164
- "lockfileVersion": 3,
169
+ "lockfileVersion": 5,
165
170
  "registryUrl": "https://pspm.dev",
166
171
  "packages": {
167
172
  "@user/username/skillname": {
@@ -178,6 +183,14 @@ registry = https://custom-registry.example.com
178
183
  "gitCommit": "abc1234567890...",
179
184
  "gitRef": "main"
180
185
  }
186
+ },
187
+ "localPackages": {
188
+ "file:../my-skill": {
189
+ "version": "local",
190
+ "path": "../my-skill",
191
+ "resolvedPath": "/absolute/path/to/my-skill",
192
+ "name": "my-skill"
193
+ }
181
194
  }
182
195
  }
183
196
  ```
@@ -202,11 +215,13 @@ project/
202
215
  │ │ ├── username/ # Registry skills
203
216
  │ │ │ └── skillname/
204
217
  │ │ │ └── SKILL.md
205
- │ │ └── _github/ # GitHub skills
206
- │ │ └── owner/
207
- │ │ └── repo/
208
- │ │ └── path/
209
- │ │ └── SKILL.md
218
+ │ │ ├── _github/ # GitHub skills
219
+ │ │└── owner/
220
+ │ │└── repo/
221
+ │ │└── path/
222
+ │ │└── SKILL.md
223
+ │ │ └── _local/ # Local skills (symlinks)
224
+ │ │ └── my-skill -> /absolute/path/to/my-skill
210
225
  │ └── cache/ # Tarball cache
211
226
  ├── .claude/
212
227
  │ └── skills/ # Symlinks for claude-code agent