### 使用场景 / Use case 目前的skill管理器功能较为单一 ### 当前问题 / Current limitation 可直接复刻我的开源项目:https://github.com/maojiebc/majia-Popskill ### 期望方案 / Proposed solution _No response_ ### 已考虑的替代方案 / Alternatives considered _No response_
Activity
dash-s-cindy commentedon Aug 12, 2026
判断:这个方向有明确用户价值,建议推进“跨引擎 Skill 管理与状态可视化”的产品设计;当前不宜把 Popskill 作为实现规格直接复刻。Cindy 已经具备 Skill 的多条底层链路,待补的是把分散的发现、安装、引擎挂载、运行时状态和修复动作统一成用户可理解的管理面,并明确哪些操作属于普通文件管理、哪些需要批准或安全审查。
现有能力与代码事实
在
origin/main@764d0b94279dc81acf3ad5fdfc2ca57ea86b22cd:packages/maker-core/src/agents/pi/customization-scanner.ts已按 Pi 实际规则扫描用户级~/.agents/skills、项目.pi/skills,以及从当前目录向最近 Git 根目录回溯的.agents/skills;项目来源标记为runtimeStatus: 'discovered',说明文件系统“发现”与 Pi 运行时“已加载”被有意区分。packages/maker-core/src/agents/pi/index.ts使用每会话隔离的PI_CODING_AGENT_DIR,其中承载本次会话的models.json、Cindy bridge 和受控扩展。该隔离不是缺陷,应继续保留,不能为了方便管理而直接复用整个用户~/.pi/agent,否则会混入 Pi 的 settings、trust、packages、extensions 或凭证相关配置。apps/desktop/src/main/maker-host/shared-global-skills.ts已有受管的跨目录链接逻辑:以~/.agents/skills为共享入口,在.agents、.claude、.codex之间创建链接;真实目录和非托管路径不覆盖,冲突会报告,断链清理由受管路径范围约束。当前类型和实现主要覆盖shared、claude、codex,Pi 原生 config-home 不是简单加一个枚举值就能接入。Popskill 可复用的产品启发
外部项目 majia-Popskill 的核心不是某个特定 UI,而是把本地 Skill 管理抽象成一张能力台账:
这些能力对 Cindy 有参考价值,但不能原样照搬:Popskill 是 macOS-only 的本地应用,依赖“文件系统即数据库”,并直接管理用户目录中的 symlink;Cindy 还需要兼容 Windows、插件批准 receipt、项目资源 containment、Pi 的隔离运行时以及已有 SkillHub/市场数据模型。
相关记录
discovered/loaded状态投影,是当前管理器应复用的运行时事实来源,而不是重新实现一套扫描规则。建议行动
user/project、来源目录、真实路径、引擎、发现状态、运行时加载状态、安装/市场来源和是否为受管链接逐项列出,明确每个字段的唯一事实源。.agents/skills、.claude/skills、.codex/skills、Pi.pi/skills、项目与祖先 Git 目录、真实目录与 symlink 冲突、重复名称、Windows 路径、Pi 新会话get_commands结果,以及 SkillHub/市场安装后的状态一致性。风险与边界
~/.pi/agent,不建议因为“管理器优化”而默认传--approve、开放 packages/extensions 或绕过现有 approval/containment。验证建议:先以现有 scanner、shared-global-skills、SkillHub 和 runtime capability 测试作为回归基线;只读聚合原型完成后,再补跨平台文件变化监听、哈希扫描成本和真实 Electron 交互验证。