Skip to content

Phase 3: Skills Module #14

Closed
Closed

Description

@Cesar-M-Diaz

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.
  • 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

  1. added theissue type on Jun 9, 2026
  2. self-assigned this
    on Jun 9, 2026
  3. coderabbitai commented on Jun 9, 2026

    @coderabbitai
    ⚠️ Possible Duplicate Issue(s)
    🔗 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 plan command to generate an implementation plan and prompts that you can use with your favorite coding assistant.

    • Create Plan

    🧪 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:

    issue_enrichment:
      auto_enrich:
        enabled: false

    💬 Have feedback or questions? Drop into our discord!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions