$npx -y skills add plidezus/flomo-skills --skill flomo-save-reminder面向中文 flomo 用户的“保存提醒”技能。仅在用户明确要求保存、整理成 flomo memo、扫描当前对话里是否有值得保存的内容,或已授权本轮进行保存提醒时使用。不要仅因普通对话里出现观点、感受或灵感就主动调用。
| 1 | # flomo 保存提醒 |
| 2 | |
| 3 | ## 核心定位 |
| 4 | |
| 5 | 在 AI 对话中,发现那些可能值得留在 flomo 里的片段,整理成用户风格的 memo 草稿,并在写入前确认。 |
| 6 | |
| 7 | 这不是自动记忆一切,也不是会议纪要工具。默认只提醒和起草,不擅自写入。保存动作要保留用户的主动选择。 |
| 8 | |
| 9 | ## 文件结构 |
| 10 | |
| 11 | 本 skill 只放稳定协议: |
| 12 | |
| 13 | - `SKILL.md`:稳定协议,写判断、提醒、采样、写入边界。 |
| 14 | - `../flomo-shared/SKILL.md`:共享 profile 的初始化、刷新和旧版本迁移协议。 |
| 15 | - `../flomo-shared/profile.md`:共享 flomo profile,包含表达画像和用户明确确认过的偏好。 |
| 16 | |
| 17 | 不要把具体用户的标签、口癖、私人内容写进 `SKILL.md`。这些只应该进入共享 profile 或运行时上下文。 |
| 18 | |
| 19 | ## 启动检查 |
| 20 | |
| 21 | 每次使用本 skill 且需要按用户风格生成 memo 草稿前,先读取 `../flomo-shared/profile.md`。 |
| 22 | |
| 23 | profile 状态: |
| 24 | |
| 25 | - 文件不存在:`missing`。 |
| 26 | - 文件为空、仍包含“待生成”、`profile_status: empty`,或 `updated_at` 为空:`empty`。 |
| 27 | - 缺少 `updated_at: YYYY-MM-DD`,或日期无法解析:`invalid`。 |
| 28 | - `updated_at` 距当前日期超过 30 天:`stale`。 |
| 29 | - `profile_status: generated`,`updated_at` 距当前日期不超过 30 天,且没有模板占位:`fresh`。 |
| 30 | |
| 31 | 根据状态处理: |
| 32 | |
| 33 | - `fresh`:直接使用。 |
| 34 | - `stale`:继续当前保存任务,不阻塞;任务结束后或用户同意时,用 `../flomo-shared/SKILL.md` 刷新。 |
| 35 | - `missing` / `empty` / `invalid`:按 `../flomo-shared/SKILL.md` 初始化、修复或迁移;如果用户不同意读取样本,就使用保守草稿并明说未使用个性化画像。 |
| 36 | |
| 37 | 不得在没有检查共享 profile 状态的情况下直接走 fallback。 |
| 38 | |
| 39 | fallback 只能作为降级路径,且必须满足至少一个条件: |
| 40 | |
| 41 | - flomo MCP 不可用。 |
| 42 | - memory 和 memo 采样都失败。 |
| 43 | - 当前环境不能读取或写入共享 profile。 |
| 44 | - 用户明确要求“先别读取我的笔记,直接给草稿”。 |
| 45 | |
| 46 | 进入 fallback 时要明说:没有成功读取或生成共享 profile,所以这次使用保守草稿。 |
| 47 | |
| 48 | ## 首次设置 |
| 49 | |
| 50 | 如果 `profile.md` 中 `User Preferences / Save Reminder / reminder_mode` 为空,先问用户一个简短问题,不要先读取 flomo memo 样本: |
| 51 | |
| 52 | ```markdown |
| 53 | 你希望 flomo 保存提醒怎么工作? |
| 54 | |
| 55 | 1. 只在我说“保存/记一下”时使用 |
| 56 | 2. 我让你扫描当前对话时,帮我挑值得保存的内容 |
| 57 | 3. 本轮对话里,看到特别值得留的内容可以轻提醒 |
| 58 | ``` |
| 59 | |
| 60 | 根据用户选择写入 `profile.md` 的 `User Preferences / Save Reminder`: |
| 61 | |
| 62 | - `explicit_only`:只在用户明确说保存、记一下、整理成 flomo 时使用。 |
| 63 | - `scan_on_request`:用户要求扫描当前对话时,集中判断哪些内容值得保存。 |
| 64 | - `session_light`:仅本轮或用户授权的会话中,允许低频轻提醒。 |
| 65 | |
| 66 | 默认推荐 `scan_on_request`。不要默认开启全局主动提醒。 |
| 67 | |
| 68 | ## 五个保存入口 |
| 69 | |
| 70 | 用以下五个入口判断“是否值得提醒保存”。它们不是标签,也不要直接写进 memo。 |
| 71 | |
| 72 | 1. **想到什么** |
| 73 | - 灵感、问题、判断、观点、假设、类比。 |
| 74 | - 触发:用户把一个想法说清楚,未来可能继续展开。 |
| 75 | |
| 76 | 2. **感受到什么** |
| 77 | - 情绪、内心感受、自我觉察、关系中的体感。 |
| 78 | - 触发:用户不只是发泄,而是形成了对自己或处境的理解。 |
| 79 | |
| 80 | 3. **经历了什么** |
| 81 | - 日记、生活片段、关系现场、和别人交流后的片段。 |
| 82 | - 触发:有具体场景、人物或时间感,未来回看会有意义。 |
| 83 | |
| 84 | 4. **读到/听到什么** |
| 85 | - 书、文章、播客、视频、课程、外部信息。 |
| 86 | - 触发:用户不是只转述,而是把外部内容转成了自己的理解。 |
| 87 | |
| 88 | 5. **做事中学到什么** |
| 89 | - 工作、产品、项目、会议、创作、复盘、决策。 |
| 90 | - 触发:形成经验、判断、下一步、原则或可复用流程。 |
| 91 | |
| 92 | ## 不提醒场景 |
| 93 | |
| 94 | 不要提醒保存: |
| 95 | |
| 96 | - 普通事实问答。 |
| 97 | - 纯临时任务或查询结果。 |
| 98 | - AI 单方面总结,但用户没有产生新想法或新表达。 |
| 99 | - 情绪还在流动中,尚未形成用户愿意留下的表达。 |
| 100 | - 只有链接、摘录或信息转述,没有用户自己的反应。 |
| 101 | - 同一话题短时间内已经提醒过。 |
| 102 | - 内容涉及敏感或第三方隐私,且用户没有明确保存意图。 |
| 103 | - 保存后只会增加噪音,未来很难复用。 |
| 104 | |
| 105 | ## 触发前自检 |
| 106 | |
| 107 | 提醒前问三个问题: |
| 108 | |
| 109 | 1. 未来用户是否可能想找回这句话、这个感受或这个问题? |
| 110 | 2. 这是用户自己的表达,而不是 AI 的发挥吗? |
| 111 | 3. 存下来会增加回看的可能性,而不是增加噪音吗? |
| 112 | |
| 113 | 至少两个答案为“是”,才提醒。 |
| 114 | |
| 115 | ## 上下文来源 |
| 116 | |
| 117 | 优先级如下: |
| 118 | |
| 119 | 1. **用户明确指令** |
| 120 | - 用户指定标签、格式、保存目标时,优先遵守。 |
| 121 | |
| 122 | 2. **共享 profile 的 Expression Profile** |
| 123 | - 读取 `../flomo-shared/profile.md` 的 `Expression Profile`。 |
| 124 | - 主要用于 memo 格式、标签习惯、长度、保存价值判断和草稿风格。 |
| 125 | - 如果存在且未过期,优先读取。 |
| 126 | |
| 127 | 3. **flomo MCP memory 接口** |
| 128 | - 如果有 `memory_user`:用于理解用户相对稳定的身份、偏好和边界。 |
| 129 | - 如果有 `memory_context`:用于理解用户近期关注、项目和语境。 |
| 130 | - 这两个接口是“上下文”,不是“写作风格画像”。不要只凭 memory 直接决定标签或格式。 |
| 131 | |
| 132 | 4. **flomo memo 采样** |
| 133 | - 用于学习真实 memo 风格和标签习惯。 |
| 134 | - 用于补足 memory 中没有的具体写法。 |
| 135 | |
| 136 | 5. **冷启动默认规则** |
| 137 | - 如果没有 memory,也无法读 memo,则使用保守短 memo 草稿,不强行打标签。 |
| 138 | |
| 139 | ## 共享 profile |
| 140 | |
| 141 | `../flomo-shared/profile.md` 是 flomo 相关 skills 共用的 profile,由 `../flomo-shared/SKILL.md` 负责初始化、刷新和迁移。 |
| 142 | |
| 143 | 本 skill 可以读取: |
| 144 | |
| 145 | - `Expression Profile`:用于格式、标签、长度、草稿风格和保存价值判断。 |
| 146 | - `User Preferences / Save Reminder`:用于保存提醒主动性和确认边界。 |
| 147 | |
| 148 | 本 skill 不负责从样本生成画像。需要初始化、刷新或迁移时,交给 `flomo-shared` 的协议。 |
| 149 | |
| 150 | `Expression Profile` 可以从 memo 样本刷新;`User Preferences` 只能由用户明确确认后修改。不要根据 memo 样本推断用户希望更主动、允许自动保存或愿意开启定时。 |
| 151 | |
| 152 | ## MCP memory 处理规则 |
| 153 | |
| 154 | 如果 flomo MCP 提供 memory 接口: |
| 155 | |
| 156 | - 优先轻量读取 `memory_user`,获得稳定偏好、身份、禁区和长期关注。 |
| 157 | - 只在需要理解当前话题时读取 `memory_context`,不要每次提醒都重查。 |
| 158 | - memory 只负责“别误解用户”,不负责“替用户写成 memo”。 |
| 159 | - 标签、格式、长度、语气仍以共享 profile 的 Expression Profile 和真实 memo 样本为准。 |
| 160 | |
| 161 | 如果 flomo MCP 没有 memory 接口,或接口鉴权失败、超时、返回为空: |
| 162 | |
| 163 | - 不阻塞保存提醒。 |
| 164 | - 先读共享 profile。 |
| 165 | - profile 缺失或过期时,按 `flomo-shared` 协议处理。 |
| 166 | - profile 和 memo 都无法读取时,使用保守短草稿,并明确说明没有读取到用户样本。 |
| 167 | - 不要假装已经读取 memory,也不要把通用推断写成用户画像。 |
| 168 | |
| 169 | ## 标签策略 |
| 170 | |
| 171 | 标签不是内容分类,不由“五个保存入口”直接决定。 |
| 172 | |
| 173 | 优先级: |
| 174 | |
| 175 | 1. 用户明确指定的标签。 |
| 176 | 2. 相似 memo 中反复出现的标签。 |
| 177 | 3. 共享 profile 中记录的高置信常用标签。 |
| 178 | 4. 目标 memo 内容中自然出现且用户历史中存在的标签。 |
| 179 | 5. 置信度不足时,少打标签或不打标签。 |
| 180 | |
| 181 | 禁止为了完整而创造新标签。不要在通用协议中写死某个用户的标签。 |
| 182 | |
| 183 | ## memo 草稿标准 |
| 184 | |
| 185 | 好的 memo 草稿应该: |
| 186 | |
| 187 | - 短。 |
| 188 | - 具体。 |
| 189 | - 可搜索。 |
| 190 | - 有用户自己的声音。 |
| 191 | - 保留关键原话。 |
| 192 | - 以后回看仍能理解当时为什么要记。 |
| 193 | - 不替用户过度拔高。 |
| 194 | - 不把 AI 推断写成用户确定判断。 |
| 195 | |
| 196 | 避免: |
| 197 | |
| 198 | - 泛泛总结。 |
| 199 | - 鸡汤化。 |
| 200 | - 过度心理分析。 |
| 201 | - 自动加意义。 |
| 202 | - 为了完整而写太长。 |
| 203 | - “这说明你很重视……”这类空泛句式。 |
| 204 | - 写得像会议纪要或知识库条目。 |
| 205 | |
| 206 | 没有样本时,使用保守默认格式: |
| 207 | |
| 208 | ```markdown |
| 209 | - 一句话写下值得保存的内容。 |
| 210 | - 必要时补充背景、来源或下一步。 |
| 211 | ``` |
| 212 | |
| 213 | ## 提醒话术 |
| 214 | |
| 215 | 默认用低打扰提醒: |
| 216 | |
| 217 | ```markdown |
| 218 | 这句像是可以留在 flomo 里: |
| 219 | |
| 220 | 「……」 |
| 221 | |
| 222 | 我可以整理成一条 memo: |
| 223 | |
| 224 | …… |
| 225 | |
| 226 | 要保存吗? |
| 227 | ``` |
| 228 | |
| 229 | 更轻的版本: |
| 230 | |
| 231 | ```markdown |
| 232 | 这句挺像一条 flomo: |
| 233 | |
| 234 | 「……」 |
| 235 | |
| 236 | 要我帮你记一下吗? |
| 237 | ``` |
| 238 | |
| 239 | 如果用户明确说“记一下”或“保存到 flomo”,不要再解释判断理由,直接整理并写入。 |
| 240 | |
| 241 | ## 写入规则 |
| 242 | |
| 243 | 默认不写入。只有在以下情况写入: |
| 244 | |
| 245 | - 用户明确确认“保存”“可以”“记一下”“存到 flomo”。 |
| 246 | - 用户已提前授权当前类型内容自动保存。 |
| 247 | - 当前任务本身就是保存到 flomo。 |
| 248 | |
| 249 | 写入前: |
| 250 | |
| 251 | - 先读取 flomo 格式规范工具,例如 `get_format_guide`。 |
| 252 | - 标签直接写在正文里。 |
| 253 | - 避免 flomo 不支持的 Markdown:标题、引用、代码块、表格、复杂链接语法等。 |
| 254 | - 避免保存未确认的推断。 |
| 255 | - 对敏感或第三方隐私内容保持克制。 |
| 256 | |
| 257 | 写入后: |
| 258 | |
| 259 | - 返回 memo id。 |
| 260 | - 不要额外扩写。 |
| 261 | |
| 262 | ## 自动保存边界 |
| 263 | |
| 264 | 自动保存必须是例外,不是默认。 |
| 265 | |
| 266 | 可以自动保存: |
| 267 | |
| 268 | - 用户明确授权的内容类型。 |
| 269 | - 用户直接说“以后这类都自动保存”。 |
| 270 | - 明确的用户偏好、产品/工作决策或反复出现的个人原则。 |
| 271 | |
| 272 | 不要自动保存: |
| 273 | |
| 274 | - 敏感第三方信息。 |
| 275 | - 未确认推断。 |
| 276 | - 临时情绪。 |
| 277 | - 普通问答。 |
| 278 | - 低价值摘要。 |
| 279 | |
| 280 | ## 失败处理 |
| 281 | |
| 282 | - 如果 flomo MCP memory 接口不可用:跳过 memory,尝试 memo 采样。 |
| 283 | - 如果共享 profile 缺失、为空或过期:按 `flomo-shared` 协议初始 |