Skip to content

Fix Windows symlink compatibility in framework validators #77

Description

@striderZA

The .opencode/agents, .opencode/skills, .opencode/commands, .opencode/rules files are Git symlinks stored as text files containing paths like ../.agents/agents. On Windows checkouts with core.symlinks=false (default without Developer Mode), these materialize as plain text files instead of resolving as symlinks, causing all framework validators to crash with ENOTDIR.

Not affected: Plugin tests (they use temp directories) — these pass on Windows.

Affected validators:

  • tests/agents/validate.mjs — agent/skill/command structural validation
  • tests/workflow/run-all.mjs — 4 workflow integrity suites
  • tests/modules/validate-modules.mjs — module system validation

CI runs on ubuntu-latest where symlinks work, so this is local development friction.

Tasks

  • Update all validators to resolve .agents/ canonical paths directly instead of .opencode/ symlinks, OR
  • Add symlink resolution helper that detects text-file symlinks and reads their target, OR
  • Document Windows Developer Mode / git config core.symlinks true requirement in README

Affected Files

  • tests/agents/validate.mjs (lines 92, 196, 284, 361)
  • tests/workflow/references.mjs (line 32)
  • tests/workflow/paths.mjs
  • tests/workflow/gates.mjs (line 184)
  • tests/workflow/invariants.mjs (line 55)
  • tests/modules/validate-modules.mjs (lines 12-17)

Identified during comprehensive framework review on 2026-07-21

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingcross-platformCross-platform compatibility (Windows/macOS/Linux)framework-reviewIdentified during comprehensive framework reviewpriority-criticalMust fix immediately

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions