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).
Summary
The home/
claudeinstaller injects anecc/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 extraecc/level changes what../../resolves to.Affected (observed) files
After a
profile: fullinstall to~/.claude(repoCommit5b173d2):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
5b173d2, repoVersion2.0.0, manifestVersion1claudehome install,profile: full, OS: Windows 11agnix(broken-markdown-link rule)Related
Possibly related to namespace handling in #2316 (stale ECC install detection after marketplace rename to
ecc@ecc).