ASCII diagrams + prose covering:
- Storage model: one parked source-of-truth fanned out to 3 lazy mirrors
- Data flow for enable/disable (incremental INDEX updates, no global reindex)
- INDEX.json schema with per-target active[] array
- Interactive pick / disable-pick flows incl. target-picker UX
- The fzf {} shell-escape gotcha and the correct quoting pattern
- Add feynman as third target (~/.feynman/agent/skills) alongside opencode
and claude. Default targets now: opencode,claude,feynman.
- Fix fzf {} preview shell-escape bug: {} in fzf is shell-escaped (wrapped
in single quotes), so "$PARKED/{}/SKILL.md" embedded literal quotes into
the path and broke preview. Switched to "$PARKED"/{}/SKILL.md (variable
quoted, {} unquoted) so bash concatenation yields a clean path.
- pick: after skill multi-select, prompt target picker (all / opencode /
claude / feynman, TAB for multi). ENTER on highlighted "all" = all three.
- disable-pick: rewritten to show union of actives across all 3 targets
with [oc,cl,fy] indicators, then target picker for which to disable from.
- cmd_status: 3-target output with all-three intersection counter.
- reindex: tracks per-target active arrays for all 3.
- New env vars: OPC_FEYNMAN_ACTIVE.
- Default targets: opencode + claude (override via --target / OPC_TARGETS)
- enable/disable/disable-all now iterate over selected targets
- INDEX schema: per-target 'active' array (replaces legacy 'status' enum)
- Status command shows per-target counts + parked
- Reindex scans both ~/.config/opencode/skills and ~/.claude/skills
- PARKED moved to ~/Documents/personas/skills-archive (backward-compat symlink kept)
- bulk filters (domain/subdomain/tag) updated to per-target schema
- jq filters no longer reference legacy 'status' values
Migration: previous OPC_PARKED at ~/Documents/opencode-skills-parked is now a
symlink to personas/skills-archive — existing scripts continue to work.
This addresses the opencode 1.14 'external skills' bloat: opencode auto-scans
~/.claude/skills as well as its own dir, so a 1000-skill Claude archive bloats
the prompt. opc-skills now manages both targets explicitly + lazily.