@lythos/skill-deck 0.14.4 → 0.14.6

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 CHANGED
@@ -8,16 +8,16 @@
8
8
 
9
9
  ```bash
10
10
  # Add a skill from skills.sh (owner/repo syntax — no conversion needed)
11
- bunx @lythos/skill-deck@0.14.4 add vercel-labs/agent-skills
11
+ bunx @lythos/skill-deck@0.14.6 add vercel-labs/agent-skills
12
12
 
13
13
  # Or with @skill filter (same as npx skills add):
14
- bunx @lythos/skill-deck@0.14.4 add mattpocock/skills@tdd
14
+ bunx @lythos/skill-deck@0.14.6 add mattpocock/skills@tdd
15
15
 
16
16
  # Or FQ locator:
17
- bunx @lythos/skill-deck@0.14.4 add github.com/anthropics/skills/skills/frontend-design
17
+ bunx @lythos/skill-deck@0.14.6 add github.com/anthropics/skills/skills/frontend-design
18
18
 
19
19
  # Sync working set (deny-by-default):
20
- bunx @lythos/skill-deck@0.14.4 link
20
+ bunx @lythos/skill-deck@0.14.6 link
21
21
  ```
22
22
 
23
23
  ## For AI Agents
@@ -25,7 +25,7 @@ bunx @lythos/skill-deck@0.14.4 link
25
25
  This package exposes a **CLI**. Invoke via:
26
26
 
27
27
  ```bash
28
- bunx @lythos/skill-deck@0.14.4 <command> [options]
28
+ bunx @lythos/skill-deck@0.14.6 <command> [options]
29
29
  ```
30
30
 
31
31
  No installation required. `bunx` auto-downloads the package.
@@ -73,15 +73,15 @@ prompt = "Search for latest info, then generate professional document with diagr
73
73
 
74
74
  | Situation | Command |
75
75
  |-----------|---------|
76
- | Sync working set with `skill-deck.toml` | `bunx @lythos/skill-deck@0.14.4 link` |
77
- | Validate `skill-deck.toml` before committing | `bunx @lythos/skill-deck@0.14.4 validate` |
78
- | Download a skill to cold pool and add to deck | `bunx @lythos/skill-deck@0.14.4 add owner/repo` |
79
- | Pull latest versions of declared skills | `bunx @lythos/skill-deck@0.14.4 refresh` |
80
- | Refresh a single skill by alias | `bunx @lythos/skill-deck@0.14.4 refresh tdd` |
81
- | Remove a skill from deck and working set | `bunx @lythos/skill-deck@0.14.4 remove tdd` |
82
- | Switch skill to symlink mode (live) | `bunx @lythos/skill-deck@0.14.4 to-symlink tdd` |
83
- | Switch skill to snapshot mode (pinned) | `bunx @lythos/skill-deck@0.14.4 to-snapshot tdd` |
84
- | Use a custom deck file or working dir | `bunx @lythos/skill-deck@0.14.4 link --deck ./my-deck.toml --workdir /path/to/project` |
76
+ | Sync working set with `skill-deck.toml` | `bunx @lythos/skill-deck@0.14.6 link` |
77
+ | Validate `skill-deck.toml` before committing | `bunx @lythos/skill-deck@0.14.6 validate` |
78
+ | Download a skill to cold pool and add to deck | `bunx @lythos/skill-deck@0.14.6 add owner/repo` |
79
+ | Pull latest versions of declared skills | `bunx @lythos/skill-deck@0.14.6 refresh` |
80
+ | Refresh a single skill by alias | `bunx @lythos/skill-deck@0.14.6 refresh tdd` |
81
+ | Remove a skill from deck and working set | `bunx @lythos/skill-deck@0.14.6 remove tdd` |
82
+ | Switch skill to symlink mode (live) | `bunx @lythos/skill-deck@0.14.6 to-symlink tdd` |
83
+ | Switch skill to snapshot mode (pinned) | `bunx @lythos/skill-deck@0.14.6 to-snapshot tdd` |
84
+ | Use a custom deck file or working dir | `bunx @lythos/skill-deck@0.14.6 link --deck ./my-deck.toml --workdir /path/to/project` |
85
85
 
86
86
  ### Commands
87
87
 
@@ -104,13 +104,13 @@ prompt = "Search for latest info, then generate professional document with diagr
104
104
 
105
105
  | `--alias <alias>` | Explicit alias for the skill (default: basename of path) | — |
106
106
  | `--type <type>` | Target section for `add`: `innate`, `tool`, or `transient` | `tool` |
107
- | `--mode <mode>` | Link mode for `add`/`link`: `symlink` (default) or `snapshot` (copy, for Codex compat) | `symlink` |
107
+ | `--mode <mode>` | Link mode for `add`/`link`: `symlink` (default) or `snapshot` (copy, pinned to cold pool HEAD) | `symlink` |
108
108
 
109
109
  ### Safety guards
110
110
 
111
111
  `link` refuses to operate if `working_set` resolves to your home directory or root (`/`).
112
112
 
113
- **Snapshot mode** (`--mode snapshot` or `link --mode snapshot`): copies the source directory into the working set instead of symlinking. This is needed for agents that don't support symlinks (e.g. Codex #11314). Snapshots are pinned to the cold pool version at link time. Use `deck to-symlink <alias>` to switch back to symlink mode, or `deck to-snapshot <alias>` to pin a symlink as a snapshot.
113
+ **Snapshot mode** (`--mode snapshot` or `link --mode snapshot`): copies the source directory into the working set instead of symlinking. Snapshots are pinned to the cold pool version at link time useful when you want the working set to be a stable copy rather than a live symlink that follows cold pool updates. Use `deck to-symlink <alias>` to switch back to symlink mode, or `deck to-snapshot <alias>` to pin a symlink as a snapshot.
114
114
 
115
115
  ### Exit codes
116
116
 
@@ -143,7 +143,7 @@ source = "https://github.com/lythos-labs/lythoskill/blob/HEAD/skills/lythoskill-
143
143
  EOF
144
144
 
145
145
  # 2. Link — creates symlinks in .claude/skills/
146
- bunx @lythos/skill-deck@0.14.4 link
146
+ bunx @lythos/skill-deck@0.14.6 link
147
147
  ```
148
148
 
149
149
  ### Key Concepts
@@ -229,7 +229,7 @@ Caution: deck's deny-by-default will remove any skills not declared in your deck
229
229
 
230
230
  | Symptom | Cause | Fix |
231
231
  |---------|-------|-----|
232
- | `❌ Skill not found: <name>` | Skill declared in deck but not in cold pool | `bunx @lythos/skill-deck@0.14.4 add github.com/owner/repo/skill` or clone manually into cold pool |
232
+ | `❌ Skill not found: <name>` | Skill declared in deck but not in cold pool | `bunx @lythos/skill-deck@0.14.6 add github.com/owner/repo/skill` or clone manually into cold pool |
233
233
  | `link` skips entries with warnings | Real files/directories exist in working set (not symlinks) | Delete the real directories in `working_set` and re-run `link`. Never create directories manually there |
234
234
  | `refresh` reports "Not a git repository" | Skill was copied (not cloned) into cold pool | Re-clone with `git clone` or use `deck add` which clones by default |
235
235
  | `deck update` prints deprecation warning | `update` was renamed to `refresh` in v0.8+ | Use `deck refresh` instead |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lythos/skill-deck",
3
- "version": "0.14.4",
3
+ "version": "0.14.6",
4
4
  "description": "Declarative skill deck governance — cold pool, working set, deny-by-default",
5
5
  "keywords": [
6
6
  "ai-agent",
@@ -31,8 +31,8 @@
31
31
  ],
32
32
  "dependencies": {
33
33
  "@iarna/toml": "^2.2.5",
34
- "@lythos/cold-pool": "^0.14.4",
35
- "@lythos/infra": "^0.14.4",
34
+ "@lythos/cold-pool": "^0.14.6",
35
+ "@lythos/infra": "^0.14.6",
36
36
  "yaml": "^2.8.3",
37
37
  "zod": "^4.3.6"
38
38
  },
package/src/add.ts CHANGED
@@ -272,7 +272,7 @@ export async function addSkill(
272
272
  console.error(` Network probe failed — the host may be unreachable or blocked.`)
273
273
  console.error(``)
274
274
  console.error(` To fix:`)
275
- console.error(` export LYTHOSKILL_GH_MIRROR="https://your-mirror.com"`)
275
+ console.error(` export LYTHOS_GH_MIRROR="https://your-mirror.com"`)
276
276
  console.error(` # Or set LYTHOS_SOCKS_PROXY for SOCKS5 routing`)
277
277
  console.error(` # See: AGENTS.md → Network Restrictions`)
278
278
  process.exit(1)
package/src/cli.ts CHANGED
@@ -114,12 +114,17 @@ switch (command) {
114
114
  updateDeck(deckPath, workdir, updateTarget)
115
115
  break
116
116
  }
117
- case 'validate':
118
- await validateDeck(deckPath, workdir, {
117
+ case 'validate': {
118
+ let validateDeckPath = deckPath
119
+ if (!validateDeckPath && args[1] && !args[1].startsWith('-')) {
120
+ validateDeckPath = resolveDeckPathSync(args[1]).path
121
+ }
122
+ await validateDeck(validateDeckPath, workdir, {
119
123
  remote,
120
124
  format: format === 'json' ? 'json' : 'text',
121
125
  })
122
126
  break
127
+ }
123
128
  case 'remove': {
124
129
  const removeTarget = args[1] && !args[1].startsWith('-') ? args[1] : undefined
125
130
  if (!removeTarget) {
package/src/refresh.ts CHANGED
@@ -127,7 +127,7 @@ export async function refreshDeck(
127
127
  if (!probe) {
128
128
  console.error(`⚠️ Network probe failed for ${probeUrl}`)
129
129
  console.error(` Refresh may fail for git targets. To fix:`)
130
- console.error(` export LYTHOSKILL_GH_MIRROR="https://your-mirror.com"`)
130
+ console.error(` export LYTHOS_GH_MIRROR="https://your-mirror.com"`)
131
131
  console.error(` # Or set LYTHOS_SOCKS_PROXY for SOCKS5 routing`)
132
132
  console.error(` Continuing anyway — per-target errors will be reported below.`)
133
133
  console.error()
@@ -82,7 +82,7 @@ export async function fetchDeckUrl(url: string, io?: FetchDeckIO): Promise<strin
82
82
  }
83
83
 
84
84
  if (!res?.ok) {
85
- throw new Error(`Failed to fetch deck: ${normalized}\n Set LYTHOSKILL_GH_MIRROR to use a custom mirror, or LYTHOS_SOCKS_PROXY for SOCKS5.`)
85
+ throw new Error(`Failed to fetch deck: ${normalized}\n Set LYTHOS_GH_MIRROR to use a custom mirror, or LYTHOS_SOCKS_PROXY for SOCKS5.`)
86
86
  }
87
87
 
88
88
  writeFn(dest, await res.text())