-
Notifications
You must be signed in to change notification settings - Fork 1
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
Design Decision
Current behaviour (broken)
apc collectstores skills inline in~/.apc/cache/bundle.jsonapc installsaves to~/.apc/skills/then copies (fixed in fix(#33): apc install symlinks skills instead of copying them #58) or per-skill symlinks into each toolapc synccreates per-skill symlinks from<tool_skills_dir>/<name>→~/.apc/skills/<name>- New
apc installafter sync → does not auto-propagate to synced tools
Desired behaviour
~/.apc/skills/is the single source of truth for all skills — installed and collectedapc collectwrites extracted skills to~/.apc/skills/<name>/SKILL.md(not inline cache)apc installonly saves to~/.apc/skills/— nothing elseapc syncestablishes a dir-level symlink once:<tool_skills_dir>→~/.apc/skills/- After sync, any
apc installautomatically appears in the tool — no re-sync needed
Per-tool plan
| Tool | Skills dir | Approach |
|---|---|---|
| OpenClaw | ~/.openclaw/skills/ |
✅ Dir-level symlink (exclusive dir) |
| Claude Code | ~/.claude/skills/ |
✅ Dir-level symlink (exclusive dir) |
| Cursor | ~/.cursor/rules/ |
|
| Windsurf | None | N/A |
| Gemini | None | N/A |
| Copilot | ~/.github/instructions/ |
Code changes
src/appliers/base.py: addSKILL_DIR_EXCLUSIVEflag +sync_skills_dir()methodsrc/appliers/openclaw.py+claude.py: setSKILL_DIR_EXCLUSIVE = Truesrc/collect.py: write skills to~/.apc/skills/viasave_skill_file()instead of inline cachesrc/sync_helpers.py: usesync_skills_dir()for exclusive tools; keeplink_skills()for otherssrc/install.py: remove_link_skill_to_targets()— save to~/.apc/skills/only; exclusive tools get it automatically, per-skill tools document that re-sync is neededsrc/cache.py: deprecatesave_skills()/load_skills()for skills (keep for MCP/memory)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request