v0.6.1
Fixed
refs doctor'sskillcheck no longer reports a skill that is installed and working as
missing. It only ever looked in~/.claude/skills/refsand~/.codex/skills/refs, but
npx skills add kaisers-io/refs— the documented installer — writes neither: it keeps one
real copy in a shared.agents/skills/refsdirectory and symlinks each agent's own
directory at it. A Claude Code user was rescued by that symlink; anyone without one — a
Codex-only user, or anyone whose install went to the current project rather than$HOME—
was told to install a skill they already had, and never saw the version comparison that
0.6.0made the point of this check. Five locations are now checked, in this order:
~/.agents/skills/refs/SKILL.md(shared ~/.agents),$CLAUDE_CONFIG_DIRor~/.claude
(Claude Code),$CODEX_HOMEor~/.codex(Codex),<cwd>/.agents/skills/refs
(project ./.agents), and<cwd>/.claude/skills/refs(project ./.claude). The last two
are there becauseskills addinstalls into the current project unless-gis passed, and
implies-ywhen it runs inside an agent, so an agent-driven install never touches$HOME
at all — and because naming a single agent (skills add … -a claude-code) switches the
installer to copy mode, which skips the shared.agentsdirectory entirely and writes only
that agent's own. Unlike its global counterpart, the project path takes no env override:
the installer hardcodes a relative.claude/skillsthere. Codex needs no counterpart at
all, being a universal agent whose project install lands in./.agentsin every mode. The
locations are deduplicated by resolved real path, so the usual symlinked install is
reported once rather than once per agent, while two genuinely independent copies are both
compared and a problem in either wins.refs doctor's "skill not found" message no longer claims the skill is not installed, and
no longer names directories it did not search. That list of locations is best-effort and
cannot be otherwise: the paths are theskillsinstaller's implementation detail rather
than a documented contract, the canonical directory has moved before, and 74 agents carry a
global skills directory of their own. A skill installed for some other agent still works
and is simply invisible here, so thedetailnow names the locations it searched and keeps
the install hint for the case where the skill really is missing. Those names are derived
from the paths actually resolved, so with$CLAUDE_CONFIG_DIRor$CODEX_HOMEset the
message names the override rather than the~/.claude/~/.codexit replaced — an override
moves the search, it does not widen it, and pointing anyone at the directory the check just
skipped would be worse than saying nothing. It stays awarn, never afail— the skill's
own capability gate comparesrefs --versionagainst the pin in the file the agent already
loaded and depends on none of this.
Published retroactively on 2026-08-10, the day this repository became public. The text above is this version's CHANGELOG.md entry, unedited — including anything it said while the repository was still private.