Skip to content

bug: installer injects 'ecc/' namespace but doesn't rewrite '../../rules/...' links in skills (broken after install) #2340

Description

@blaisepl54-byte

Summary

The home/claude installer injects an ecc/ namespace segment into destination paths (skills/skills/ecc/, rules/rules/ecc/) but does not rewrite intra-file relative links inside skills. Skills that link to a sibling top-level dir using the source-relative ../../rules/... therefore break after install, because the extra ecc/ level changes what ../../ resolves to.

Affected (observed) files

After a profile: full install to ~/.claude (repoCommit 5b173d2):

  • skills/ecc/react-patterns/SKILL.md../../rules/react/hooks.md, ../../rules/react/
  • skills/ecc/react-performance/SKILL.md../../rules/react/
  • skills/ecc/react-testing/SKILL.md../../rules/react/testing.md

(4 broken links / 3 skills observed; any skill linking ../../rules/... is affected.)

Root cause (path math)

Source layout — link is correct:
ECC/skills/react-patterns/SKILL.md + ../../rules/react/ECC/ECC/rules/react/

Installed layout — installer adds ecc/ to both sides, link not rewritten:
~/.claude/skills/ecc/react-patterns/SKILL.md + ../../rules/react/~/.claude/skills/~/.claude/skills/rules/react/ ✘ (does not exist)

The rules actually land at ~/.claude/rules/ecc/react/, so the install-correct link would be ../../../rules/ecc/react/.

Proposed fix

During the copy/transform step, rewrite relative links that traverse to a sibling top-level dir to account for the injected ecc/ namespace on both the source and destination side — e.g. ../../rules/<x>../../../rules/ecc/<x>. Alternatively, keep links namespace-agnostic (resolve against an install root token) rather than source-relative ../../.

Workaround

Manually patch the installed links (../../rules/react/../../../rules/ecc/react/), but this is clobbered on the next install/update.

Environment

  • Repo commit: 5b173d2, repoVersion 2.0.0, manifestVersion 1
  • Target: claude home install, profile: full, OS: Windows 11
  • Detected via agnix (broken-markdown-link rule)

Related

Possibly related to namespace handling in #2316 (stale ECC install detection after marketplace rename to ecc@ecc).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions