这份文档记录 SkillPulse 从想法到可发布原型的大致过程。它不是逐字逐句的完整聊天记录,而是可公开、可复现的交互脉络:保留关键需求、决策、返工点和工程结果;去掉本机私有会话正文、数据库内容和不适合公开的本地路径细节。
最初目标不是做一个传统后台服务,而是做一个贴近 Codex App 的轻量工具:
- 能看到本机 Skill 被调用了多少次;
- 能知道哪些 Skill 常用、哪些吃灰;
- 能观察 Skill 之间是否形成链路;
- 能辅助维护 Skill 库;
- 界面尽量中文、可视化、低性能占用。
后来项目名确定为 SkillPulse,定位为“Codex Skill 使用小记”。
最早只有一个临时 HTML 使用统计面板。用户指出这应该成为长期使用的 Skill 管理器,而不是一次性文件。于是方向改为:
- Windows-only;
- Codex App overlay;
- 本地读取、本地显示;
- 手动刷新、启动刷新、定时刷新;
- 后续预留跨 Agent 适配。
早期讨论过插件形态,但很快发现不同科研/Skill 工作流差异很大,固定插件难以覆盖。于是把重点改为:
- 用本地应用管理和观察 Skill;
- 让用户可以 fork 源码;
- 让自己的 Codex 根据个人工作流继续改造。
悬浮图标经历了多轮返工:
- 初版窗口太大,影响 Codex 输入;
- 图标不是独立小图标,存在方形边框;
- 跟随 Codex 窗口移动时会闪烁或不居中;
- 后续调整为 16px dock 窗口、圆形图标、右键菜单、随 Codex 窗口隐藏/关闭。
这些返工说明 vibe coding 不是一次生成即结束,而是用户不断指出体验问题,Codex 逐步定位实现细节。
总览页之外,逐步加入:
- Skill 库;
- 趋势;
- 链路;
- 维护;
- 设置;
- 中文备注导入导出。
其中 Skill 库从单列列表升级为多列紧凑卡片,并加入搜索、来源筛选、状态筛选、排序和“可管理/受保护”标记。
链路图是返工最多的部分之一:
- 初版节点重叠严重;
- “星系”式大规模网络看起来炫,但可读性差;
- 后来参考 VOSviewer / D3 force directed graph 的思路;
- 改成只显示强共现网络,弱链路和未成链 Skill 不再强行挤进主图;
- 支持拖拽、缩放、节点标签筛选和网络切换。
由于 LLM 适合生成中文名称和说明,但本地应用不应直接假设联网调用模型,所以采用“用户搬运工”方案:
- SkillPulse 导出 Skill 列表 JSON;
- 用户把 JSON 交给 LLM 翻译/概括;
- LLM 生成结果 JSON;
- SkillPulse 导入结果,按 Skill id 映射中文名称和备注;
- 备注只写入 SkillPulse 本地数据,不污染原始
SKILL.md。
最终形成:
- React + TypeScript 前端;
- Tauri + Rust 后端;
- Windows overlay 原型;
- NSIS 安装包;
- MSI 安装包;
- 中文 README 和公开案例文档。
SkillPulse 是一个小而完整的 vibe coding 参考案例:
- 用户不断提供审美、交互、数据口径和产品方向;
- Codex 负责读代码、改实现、构建、验证和打包;
- 多轮返工是正常过程;
- 用户的判断仍然是产品质量的核心来源;
- 最终产物可以开源,其他人可以继续让自己的 Codex 接着改。
如果你想复刻类似过程,可以按这个节奏和 Codex 协作:
- 先说清楚“我想解决什么问题”,不要急着限定实现。
- 让 Codex 先做一个极小可运行版本。
- 用截图指出不满意的地方。
- 每次只推动一类问题:布局、数据、交互、性能、发布。
- 让 Codex 每轮都运行检查和构建。
- 稳定后再补 README、Release、许可证和过程文档。
这个项目不是官方 Codex 工具,不保证适配未来 Codex 内部日志格式。当前统计基于本机文件和推断逻辑,如果 Codex App 的会话索引格式变化,SkillPulse 也需要随之调整。