1jehuang / 1jehuang/jcode

Allow ~/.jcode/skills to symlink shared skills instead of copying them

Open
#1,255 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

autonomous: no enhancement triage: needs-decision
Dominant language
Rust
Stars
19.9k
Forks
2.3k
Avg merge
2d 7h
Merged PRs (30d)
30

Description

What happens now

On first run, jcode appears to copy every skill from ~/.agents/skills (and/or ~/.claude/skills) into ~/.jcode/skills as independent files. On my machine all 64 entries in ~/.jcode/skills/ are real directories, byte-copies of ~/.agents/skills/, created at the same timestamp as mcp.json/servers.json (first launch of this version). By contrast, ~/.claude/skills/<skill> is a symlink into ~/.agents/skills/<skill>.

Problem

The copies silently drift. I edited reviewing-prs/SKILL.md in ~/.jcode/skills; the .agents/.claude copies stayed on the old version. There's no indication the jcode copy is a fork, and no way to keep them converged short of manual cp/ln.

Request

Offer a way to have ~/.jcode/skills reference shared skills by symlink rather than copy, e.g.:

  • a config.toml option (e.g. [skills] link = true or a skills_dir pointer), and/or
  • prefer symlinking when the source is already a symlink farm like ~/.agents/skills.

Context / possible rationale

This mirrors the documented MCP behavior ("one-time import... then jcode-owned, not synced"). I suspect copying is intentional for edit safety, so editing a jcode skill doesn't mutate the shared .agents source used by other harnesses. If so, a symlink mode should be opt-in with that caveat documented. For users who treat .agents/skills as the single source of truth, copy-on-first-run is just duplication and drift.

Environment

jcode v0.84.0 (57d587899), macOS aarch64.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Start by locating the skill import logic and config.toml handling, then determine how an opt-in symlink mode should interact with existing copy behavior. Done means shared skills can be referenced without silent copies, with the safety caveat documented and relevant behavior covered by tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.