بِسْمِ ٱللَّهِ ٱلرَّحْمَـٰنِ ٱلرَّحِيمِ
Other agent folders
Link .claude/skills to .agents/skills so Claude Code sees the same skills, and what happens when a real folder is in the way.
skillmirror keeps every skill in one place per project: .agents/skills. Some agents look somewhere else. Claude Code reads .claude/skills. A bridge is a relative link from that folder to .agents/skills, so both agents see the same files and nothing is copied twice.
my-project/
.agents/skills/coding/SKILL.md
.claude/skills -> ../.agents/skillsSwitch it on
Bridges are off until the vault config names them. Add the key to config.yaml:
targets: [claude]claude is the one name that is known today, and it stands for .claude/skills. Any other name is refused, and so is a name that is listed twice:
error: invalid vault config ~/skills/config.yaml: targets entry "cursor" is not a known agent folder (known: claude)Without the key, skillmirror bridge only says so and changes nothing:
No targets in the vault config. Add a line such as `targets: [claude]` to <vault>/config.yaml.See what is missing
With the key set, status marks every project whose link is not made, and doctor warns about it:
skillmirror status● ~/projects/atlas-api
~ coding outdated (1 file added)
+ claude bridge to .agents/skills not made (`skillmirror bridge`)
● ~/projects/docs-site
~ coding outdated (1 file added)
+ claude bridge to .agents/skills not made (`skillmirror bridge`)
● ~/projects/infra
+ claude bridge to .agents/skills not made (`skillmirror bridge`)
● ~/projects/lumen-app
~ coding outdated (1 file added)
+ claude bridge to .agents/skills not made (`skillmirror bridge`)
4 projects: 0 in sync, 4 differ (3 skill folders outdated, 0 mandatory missing, 4 bridges missing)
AGENTS.md blocks: 1 edited by hand. `skillmirror agents status` has the list, `skillmirror agents sync` brings them up to date.Make the links
skillmirror bridge --dry-run● ~/projects/atlas-api
+ claude would link .claude/skills
● ~/projects/docs-site
+ claude would link .claude/skills
● ~/projects/infra
+ claude would link .claude/skills
● ~/projects/lumen-app
+ claude would link .claude/skills
4 bridges to link, 0 already in place (dry run)The dry run exits 1 because links are missing, so a script can ask the question. Without --dry-run, bridge shows the plan, asks, and makes the links. --yes answers for you:
skillmirror bridge --yes● ~/projects/atlas-api
✓ claude linked .claude/skills
● ~/projects/docs-site
✓ claude linked .claude/skills
● ~/projects/infra
✓ claude linked .claude/skills
● ~/projects/lumen-app
✓ claude linked .claude/skills
4 bridges linked, 0 already in placereadlink ~/projects/infra/.claude/skills../.agents/skillsThe link is relative, so it survives moving or cloning the project. --all also lists the links that are in place. A link is not a replaced folder, so bridge keeps no backup run: to take one away, remove it with rm .claude/skills.
add and init make the link for the project they install into, in the same run, and print the same ✓ claude linked .claude/skills line.
A real folder is in the way
A link is made only where nothing is. If .claude/skills is a real folder or a file, skillmirror does not touch it. A link that leads somewhere else and a linked .claude folder are left alone too. bridge names the project and exits 4:
skillmirror bridge --yes● ~/projects/atlas-api
✗ claude .claude/skills is a real folder or file, so no bridge is made there
hint: move what it holds into .agents/skills, then remove it
0 bridges linked, 3 already in place, 1 need attentiondoctor reports the same thing as a warning, with the same hint:
! bridges ~/projects/atlas-api/.claude/skills: .claude/skills is a real folder or file, so no bridge is made there
hint: move what it holds into .agents/skills, then remove itMove the skills the folder holds into .agents/skills (skillmirror adopt takes them into the vault if they are yours), remove the folder, and run bridge again.