Skip to content

OpenCode skill path is inconsistent between runtime, bootstrap text, and tests #847

Description

@LanternCX
  • I searched existing issues and this is not a duplicate

Environment

Field Value
Superpowers version 5.0.4
Harness (Claude Code, Cursor, etc.) OpenCode
Harness version
Model openai/gpt-5.4
OS + shell macOS (darwin)

Is this a Superpowers issue or a platform issue?

  • I confirmed this issue does not occur without Superpowers installed

What happened?

OpenCode skill path handling is internally inconsistent after the auto-register change. The plugin now loads bundled skills from the installed package path (for example node_modules/superpowers/skills), but the bootstrap text still tells users that Superpowers skills live in ~/.config/opencode/skills/superpowers/, and the OpenCode tests were still checking ~/.config/opencode/superpowers/skills.

This leaves three different paths presented as the source of truth:

  1. Runtime plugin behavior: package-local skills/
  2. Bootstrap help text: ~/.config/opencode/skills/superpowers/
  3. Tests: ~/.config/opencode/superpowers/skills

That makes debugging installation issues and maintaining the OpenCode integration unnecessarily confusing.

Steps to reproduce

  1. Install Superpowers in OpenCode using the current plugin-based installation flow.
  2. Inspect .opencode/plugins/superpowers.js and note that runtime registration uses path.resolve(__dirname, '../../skills').
  3. Start OpenCode with Superpowers enabled and inspect the injected bootstrap text; it reports ~/.config/opencode/skills/superpowers/ as the skills location.
  4. Inspect tests/opencode/test-plugin-loading.sh and tests/opencode/test-priority.sh; they check ~/.config/opencode/superpowers/skills instead.

Expected behavior

OpenCode runtime behavior, user-facing bootstrap text, and OpenCode tests should all describe and validate the same skills path model.

Actual behavior

They describe three different path models at once, even though the real runtime source is the bundled package skills/ directory.

Debug log or conversation transcript

Relevant implementation evidence:

  • .opencode/plugins/superpowers.js:51 registers the runtime skills directory with path.resolve(__dirname, '../../skills')
  • .opencode/plugins/superpowers.js:72 reports ~/.config/opencode/skills/superpowers/ in bootstrap text
  • tests/opencode/test-plugin-loading.sh:35 and tests/opencode/test-plugin-loading.sh:45 check ~/.config/opencode/superpowers/skills
  • tests/opencode/test-priority.sh:21 and tests/opencode/test-priority.sh:68 also assume ~/.config/opencode/superpowers/skills

Related history:

  • #328 includes a user report noting that the plugin message and actual skill location did not match
  • #339 reports OpenCode skill installation/path confusion
  • #343 is another OpenCode path/documentation inconsistency (plugin vs plugins)
  • #753 changed OpenCode to auto-register bundled skills, which appears to be where the current runtime/documentation split was introduced

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingopencodeskillsSkill system, development, and individual skills

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions