@anytio/pspm 0.3.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
@@ -9,16 +9,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  ### Added
11
11
 
12
- - **`.pspmignore` support for publish command**: Control which files are excluded when publishing or packing skill packages
13
- - If `.pspmignore` exists, use it for ignore patterns (like `.npmignore`)
14
- - Otherwise, fall back to `.gitignore` if present
15
- - Always ignores `node_modules`, `.git`, and `.pspm-publish` regardless
16
- - Displays which ignore file is being used during publish
17
-
18
- - **Local directory support (file: protocol)**: Install skills from local directories for development and testing
19
- - `pspm add file:../path/to/skill` - Install from local directory
20
- - `localDependencies` field in `pspm.json` for local packages
21
- - Lockfile version bumped to 4 to support `localPackages`
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
22
28
 
23
29
  ## [0.2.0] - 2026-01-23
24
30
 
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,9 +100,10 @@ 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 directory specifiers (for development):**
104
- - `file:../path/to/skill` - Install from local directory
105
- - `file:./subdir/skill` - Relative path from current directory
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`
106
107
 
107
108
  **Agent symlink options:**
108
109
  ```bash
@@ -165,7 +166,7 @@ registry = https://custom-registry.example.com
165
166
 
166
167
  ```json
167
168
  {
168
- "lockfileVersion": 3,
169
+ "lockfileVersion": 5,
169
170
  "registryUrl": "https://pspm.dev",
170
171
  "packages": {
171
172
  "@user/username/skillname": {
@@ -182,6 +183,14 @@ registry = https://custom-registry.example.com
182
183
  "gitCommit": "abc1234567890...",
183
184
  "gitRef": "main"
184
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
+ }
185
194
  }
186
195
  }
187
196
  ```
@@ -206,11 +215,13 @@ project/
206
215
  │ │ ├── username/ # Registry skills
207
216
  │ │ │ └── skillname/
208
217
  │ │ │ └── SKILL.md
209
- │ │ └── _github/ # GitHub skills
210
- │ │ └── owner/
211
- │ │ └── repo/
212
- │ │ └── path/
213
- │ │ └── 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
214
225
  │ └── cache/ # Tarball cache
215
226
  ├── .claude/
216
227
  │ └── skills/ # Symlinks for claude-code agent
@@ -223,23 +234,6 @@ project/
223
234
  └── .pspmrc # User config
224
235
  ```
225
236
 
226
- ## Ignoring Files (.pspmignore)
227
-
228
- Control which files are excluded when publishing with a `.pspmignore` file:
229
-
230
- ```
231
- # .pspmignore - exclude files from publish
232
- *.test.ts
233
- __tests__/
234
- .env*
235
- *.log
236
- ```
237
-
238
- **Behavior:**
239
- - If `.pspmignore` exists, use it for ignore patterns
240
- - Otherwise, fall back to `.gitignore` if present
241
- - Always ignores `node_modules`, `.git`, and `.pspm-publish` regardless
242
-
243
237
  ## Creating a Skill
244
238
 
245
239
  A skill is a directory containing at minimum a `pspm.json` and `SKILL.md`: