Skip to content

Skills fail to load when junction path is converted from Windows to Unix format #14506

@jaried

Description

@jaried

Description

As a Windows user, I need OpenCode to correctly discover and invoke skills from ~/.claude/skills when ~/.claude is a junction, so that slash autocomplete (/) and skill invocation are both reliable.

Real Problems Observed

  1. A visible /skills page does not prove the fix. The real failure point is slash autocomplete after typing /.
  2. Duplicate skill names exist in real setups (for example, skill-creator appears in both user and system scopes).
  3. Previous name-based dedupe collapsed duplicate-name skills into a single candidate, which hid valid skills.
  4. In-process simulations (tmpdir + OPENCODE_TEST_HOME + Skill.all()) can pass while real user validation still fails.

How to Reproduce

  1. On Windows, set ~/.claude as a junction to a target path (for example, D:\\Tony\\ubuntu_settings\\.claude).
  2. Ensure duplicate-name skills exist across scopes (for example, both ~/.claude/skills/skill-creator/SKILL.md and ~/.claude/skills/.system/skill-creator/SKILL.md).
  3. Launch OpenCode TUI and type /skill-creator.
  4. Observe slash autocomplete behavior and candidate list.

Expected Behavior

  1. Slash autocomplete (/) shows all invokable skill candidates, including duplicate names.
  2. Duplicate-name skills are distinguishable by scope (system, user, project).
  3. Skill labels in autocomplete do not append :skill.
  4. Real foreground TUI validation passes on a real junction-based ~/.claude/skills setup.

Hard Requirements

  • Slash autocomplete must be the primary validation target (not /skills page alone)
  • Duplicate-name skills must be visible and distinguishable by scope
  • Skill labels must not append :skill
  • Real foreground TUI path must be validated (~/.claude/skills + / input + candidate visibility)
  • No completion claim before real foreground path passes

Environment

  • Windows 10/11
  • ~/.claude is a junction
  • OpenCode CLI/TUI on Bun runtime

Acceptance Criteria

  • In foreground TUI, typing /skill-creator shows duplicate candidates with scope disambiguation
  • Skills in Windows junction directories are correctly scanned and invokable
  • Existing symlink functionality is not regressed
  • Non-Windows platforms are not regressed
  • Typecheck and regression tests pass
  • Real e2e validation passes

Metadata

Metadata

Assignees

Labels

coreAnything pertaining to core functionality of the application (opencode server stuff)windows

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions