Skip to content

Commit 29bd340

Browse files
aRustyDevclaude
andcommitted
docs(plans): add skill management enhancements plan (5 phases)
Comprehensive plan to extract and internalize skill management logic from vercel-labs/skills. Adds 7 new CLI commands (find, add, outdated, update, init, list, remove), 44-agent registry, source parser with ref/subpath/filter support, and interactive prompts. New deps: simple-git (typed git wrapper), xdg-basedir (XDG paths). ~6,400 lines of specification with code examples, test cases, error types, edge cases, and acceptance criteria per task. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 757f16d commit 29bd340

8 files changed

Lines changed: 6527 additions & 0 deletions

File tree

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
---
2+
id: 3f7a1c8e-9d4b-4e2f-a6c0-5b8d3e1f7a2c
3+
project:
4+
id: 00000000-0000-0000-0000-000000000000
5+
title: Skill Management Enhancements
6+
status: draft
7+
tags: [skills, cli, agents, installation]
8+
related:
9+
depends-on: [8a2e4c17-f6d0-4b3a-9e51-3c7d8f1a2b05]
10+
references: [d4e8f2a1-7c3b-4f5e-9a1d-8e6c4b2a0f3d]
11+
---
12+
13+
# Skill Management Enhancements
14+
15+
**Created:** 2026-03-20
16+
**Updated:** 2026-03-20
17+
**Owner:** aRustyDev
18+
19+
## Objectives
20+
21+
| # | Objective | Measurable | Success Metric |
22+
|---|-----------|------------|----------------|
23+
| 1 | Extract and internalize skill management logic from vercel-labs/skills | Yes | All 7 commands (find, add, outdated, update, init, list, remove) working via `just agents skill <verb>` |
24+
| 2 | Support multi-agent skill installation with agent registry | Yes | Skills installable to any of 44 known agents with auto-detection (config dir presence) |
25+
| 3 | Enable flexible source references with branch/tag/hash support | Yes | `owner/repo#ref:path@skill` parsed correctly in all commands |
26+
27+
## Current State
28+
29+
| Metric | Current | Target | Gap |
30+
|--------|---------|--------|-----|
31+
| CLI skill subcommands | 11 (validate, hash, lint, check-all, deps/*, catalog/*) | 18+ (add find, add, outdated, update, init, list, remove) | 7 new commands |
32+
| Source URL formats supported | `owner/repo@skill` only | Full URLs, refs, local paths, well-known URIs | No URL parser |
33+
| Agent targets | Claude Code only (implicit) | 44 agents with auto-detect + `--agent` filter | No agent registry |
34+
| Interactive prompts | None (all batch/non-interactive) | fzf-style search, multiselect, confirmation | No prompt library |
35+
36+
## Phases
37+
38+
| ID | Name | Status | Dependencies | Success Criteria |
39+
|----|------|--------|--------------|------------------|
40+
| phase-1 | Foundation modules | pending | - | source-parser, agents, git, discovery, prompts libraries created with tests |
41+
| phase-2 | Core commands (add, init, list, filters) | pending | phase-1 | Three commands + filter utilities working end-to-end |
42+
| phase-3 | Search and discovery (find) | pending | phase-1; phase-2 for install-on-select | find command with JSON output, configurable limits |
43+
| phase-4 | Update lifecycle (outdated, update) | pending | phase-1 (4.1); phase-2 (4.2) | outdated/update commands with arbitrary data input |
44+
| phase-5 | Integration (remove, info, refactor, tests, docs) | pending | phase-2, phase-3, phase-4 | remove/info commands, refactored externals, integration tests |
45+
46+
### Phase Details
47+
48+
1. [Phase 1: Foundation Modules](./phase/1-foundation-modules.md)
49+
2. [Phase 2: Core Commands + Filters](./phase/2-core-commands.md)
50+
3. [Phase 3: Search and Discovery](./phase/3-search-discovery.md)
51+
4. [Phase 4: Update Lifecycle](./phase/4-update-lifecycle.md)
52+
5. [Phase 5: Integration](./phase/5-integration-filters.md)
53+
54+
## Risks
55+
56+
| Risk | Likelihood | Impact | Mitigation |
57+
|------|------------|--------|------------|
58+
| Agent registry stale (new agents, changed paths) | High | Low | Data-driven registry from JSON, easy to update; track vercel-labs/skills as upstream |
59+
| Breaking existing `skill deps` commands | Medium | High | All new code in new files; existing commands untouched until phase-5 integration |
60+
| Source parser ambiguity (`@` means skill filter vs git ref) | Medium | Medium | Use `#` for ref (like npm), `@` for skill filter — different delimiter than vercel |
61+
| Symlink permission failures on Windows | Low | Medium | Fall back to copy mode automatically (same as vercel-labs/skills) |
62+
| Naming collision with existing `skill check-all` | Medium | Medium | New update-detection command named `outdated` (npm convention); existing `check-all` untouched |
63+
| Over-serialized phases block parallel work | Medium | Medium | Relaxed dependency constraints: phase 3/4 can partially start after phase-1; phase 5.4 refactor starts after phase-1 |
64+
65+
## Timeline
66+
67+
| Milestone | Target | Actual |
68+
|-----------|--------|--------|
69+
| Planning complete | 2026-03-20 | |
70+
| Phase 1 complete | | |
71+
| Phase 2 complete | | |
72+
| All phases complete | | |
73+
74+
## Rollback Strategy
75+
76+
All work in a git worktree. If any phase fails, the worktree can be discarded without affecting main. Each phase produces independent modules that don't modify existing code until phase 5.
77+
78+
## Notes
79+
80+
- This work extracts logic from vercel-labs/skills (MIT licensed) but reimplements it in our Bun/Citty/Valibot stack
81+
- We use `#` for git ref (not `@`) to avoid conflict with the existing `owner/repo@skill` convention
82+
- The agent registry is data we maintain, not a dependency on vercel-labs/skills
83+
- All new modules must use the runtime-aware shims from `lib/runtime.ts` (ADR-016)
84+
- Interactive prompts go in `lib/prompts/` even if initially only used by one command
85+
- Two new dependencies adopted: `simple-git` (typed git CLI wrapper with AbortController, `raw()` for worktrees/sparse-checkout/archive) and `xdg-basedir` (correct XDG path resolution for agent global dirs)
86+
- `skill add` is a parallel installation system — it writes to lock files only, does NOT modify `sources.yaml` (the external deps manifest)
87+
- Agent detection uses config directory presence only (e.g., `~/.cursor` exists), not binary detection
88+
- Coordinates with the skill-inspection pipeline plan — shares `.catalog.ndjson` and search infrastructure
89+
- Naming: `outdated` (not `check`) avoids collision with existing `skill deps check` and `skill check-all`

0 commit comments

Comments
 (0)