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
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions