Repository navigation
Phase 3: Skills Module #14
Description
Phase 3: Skills Module
Implement skill copying, harness-specific linking with idempotent handling, and multi-harness tracking.
Tasks
-
Task 9: Implement skill copier module — Create skill-copier.ts to copy skills from source directory to
~/.agents/skills/. Read skill list from bundle descriptor. Copy SKILL.md and any supporting files. Track installed skills with paths.- Depends on: Task 4
- Files:
packages/core/src/skills/skill-copier.ts - Testing: Unit tests with mock file system. Test copying multiple skills, handling missing source files, permission errors.
-
Task 10: Implement skill linker module — Create skill-linker.ts to create harness-specific skill links with idempotent handling. Platform-aware linking strategy:
- Unix: Use
fs.symlink()for all harnesses, copy for Pi - Windows: Use
fs.symlink(target, path, 'junction')for directory links. Fall back to file copy if junction creation fails. Always copy for Pi.
Idempotent strategy per target path:
- Symlink/junction pointing to correct source: skip (no-op)
- Symlink/junction that is broken or points elsewhere: remove and recreate
- Regular file or directory: rename with
.bak.<timestamp>suffix, then create link - Target does not exist: create link
- Depends on: Task 9
- Files:
packages/core/src/skills/skill-linker.ts - Testing: Unit tests for each idempotent case, different harness types, broken symlinks. Add Windows-specific test cases.
- Unix: Use
-
Task 11: Implement skill tracker module — Create skill-tracker.ts to record installed skills in tracking file. Store skill name, path, installation timestamp, and harness association (array of harness IDs). All paths must be normalized with
path.resolve(). Support add/remove harness entries per skill for multi-harness installs. Handle missing/corrupted tracking file gracefully.- Depends on: Task 9
- Files:
packages/core/src/skills/skill-tracker.ts,packages/core/src/skills/index.ts - Testing: Unit tests for tracking file read/write, multi-harness install/uninstall, targeted uninstall by harness, missing/corrupted tracking file handling.
Activity
coderabbitai commentedon Jun 9, 2026
🔗 Related PRs
nodesource/nsentinel-vscode-extension#37 - separate ncm skills for future claude and codex extensions [merged]
nodesource/nsentinel-vscode-extension#52 - Cesar/skills intall fix [merged]
#1 - Initial spec design [merged]
📝 Issue Planner
Check the box below or use the
@coderabbitai plancommand to generate an implementation plan and prompts that you can use with your favorite coding assistant.🧪 Issue enrichment is currently in open beta.
You can configure auto-planning by selecting labels in the issue_enrichment configuration.
To disable automatic issue enrichment, add the following to your
.coderabbit.yaml:💬 Have feedback or questions? Drop into our discord!