关于 mode-creator
mode-creator 是为 claude-mem 设计和安装自定义笔记模式的引导式技能。它会询问用户需求、拟定观察类型和概念标签,并可配置 Telegram 提醒及验证模式是否生效。
主要功能
- 01询问工作内容与笔记需求
- 02拟定观察类型和概念标签
- 03验证并安装自定义模式
- 04可选配置 Telegram 提醒
- 05重启工作进程并验证启动上下文
适用场景
- 01按专业领域调整记忆记录方式
- 02选择要记录的内容及要跳过的日常活动
- 03为指定笔记类型或标签设置提醒
- 04确认自定义模式已启用
MCP 相关
该技能可调用 session_start_context MCP 工具验证启动上下文,也会配置提供此上下文的本地工作进程。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ thedotmack/ claude-mem --skill mode-creator安装后在 Claude Code 中输入/mode-creator确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
evals/evals.jsonreferences/mode-authoring.mdtelegram.mdscripts/configure-telegram.mjsinstall-mode.mjs详细介绍
模式创建器
创建一个实用的笔记系统,而不只是生成有效的 JSON 文件。与用户访谈,提出一套精简的分类体系,获得批准后将其持久安装,配置可选提醒,重启工作进程,并证明活动模式已出现在启动上下文中。
基本原则
- 使用可用的交互式提问工具(
AskUserQuestion、request_user_input或等效工具)进行访谈。每次少量提问,并等待用户回答后再继续。 - 说明观察类型是互斥的笔记类别,而概念是可重复使用的标签。除非用户先使用术语,否则避免使用行话。
- 在创建新模式之前,检查现有的捆绑模式和用户模式。如果复用或改编相近模式对用户更有帮助,就采用这种做法。
- 不要修改插件缓存或捆绑模式。将自定义文件安装到已解析的 claude-mem 数据目录下的
modes/文件夹中。 - 不要在聊天、命令参数、日志或工具输出中暴露 Telegram 令牌。将其视为密码。
- 保留无关设置和现有 Telegram 触发器。辅助工具会创建带时间戳的备份,并合并所请求的触发器。
- 本地工作进程运行时支持自定义模式。如果
CLAUDE_MEM_RUNTIME为server,请说明此工作流无法安全地将用户专属模式安装到共享服务器上,并在修改前停止。 - 现有观察保留原有类型。新模式仅适用于之后生成的观察。
1. 以说明目的开场
在第一个交互式问题中,先发送以下消息:
自定义模式可让你针对手头的工作记录笔记。如果你是法学院学生,可能希望记下每次判例确立规则、教授指出考试陷阱或不同学说发生冲突的情况。如果你是建筑师,可能希望记录每项设计决策、规范限制、客户偏好或现场发现。你目前在做什么?
不要一开始就询问模式名称或 JSON 字段。先了解用户的工作。
如果用户的回答与代码相关,请说:
代码模式已经很适合软件开发。自定义变体或许会更适合你,因为它还能追踪[根据用户的工作推断出的 2–4 种具体笔记],并为[2–4 个有用的跨领域主题]添加标签。你想保留标准代码模式,还是进行自定义?
给出具体建议。例如,对于机器学习平台工程师,可以建议记录实验结果、数据契约变更、生产事故、模型决策、成本发现和可复现性风险,而不是泛泛地说“自定义笔记”。如果用户选择标准代码模式,不要创建重复文件;继续询问可选通知并完成验证。
2. 了解哪些内容值得记住
通过后续问题了解:
- 三个他们希望下周还能查到的时刻或发现示例。
- 应跳过的日常活动。
- 他们之后会搜索的人名、案件、材料、客户、限制条件、实验、事故等实体和决策。
- 绝不能记录或发送到 Telegram 的敏感信息。
- 笔记应该有所取舍,还是尽量详细。
根据对话中已有的信息推断答案,避免重复提问。当用户的回答较宽泛时,提出示例供其选择或修改。
3. 提议模式
起草前,请阅读 references/mode-authoring.md。
提议以下内容:
- 清晰的模式名称和小写 ID。
- 通常包含 4–8 种观察类型。每条观察记录恰好归入一种类型。
- 通常包含 4–8 个概念标签。一条观察记录可以带有多个概念标签。
- 各用一句话说明记录和跳过的策略。
- 提供两个模式会记录的真实示例,以及两个会跳过的示例。
用通俗语言呈现提案,并使用交互式提问工具征求批准。允许用户重命名、添加、删除或改写类别。用户批准分类体系和隐私边界之前,不要编写或安装模式。
优先采用继承式 ID,例如 code--architecture-practice,这样模式可以复用 claude-mem 稳定的输出协议,同时替换领域分类体系和行为提示词。父模式 code 是实现基础;覆盖内容必须从提示词中移除代码专属语义。仅当确实不适合继承时,才使用独立模式。
4. 询问是否需要 Telegram 提醒
分类体系获批后,询问:
当 claude-mem 记录特定类型或标签时,你希望收到 Telegram 通知吗?提醒会包含观察类型、标题、副标题、项目和观察 ID,因此请避免选择可能暴露敏感内容的类别。
如果用户同意:
- 让用户从已批准的模式中选择具体的观察类型和/或概念标签。
- 说明匹配方式为 OR:明确启用提醒后,任何选定的类型或概念都会触发提醒。仅选择触发条件并不会启用发送;每条观察记录的提醒默认关闭。征得用户同意后,在运行安装程序或凭据助手后,将
CLAUDE_MEM_TELEGRAM_OBSERVATION_ALERTS_ENABLED设为"true",写入已解析的数据目录中的settings.json。 - 询问用户是否已将 Telegram 机器人连接到 claude-mem。
- 阅读 references/telegram.md,然后引导新用户使用 BotFather 和安全设置助手。
如果用户不同意,保持所有 Telegram 设置不变。
5. 起草、验证并安装
解析包含此 SKILL.md 的绝对目录;所有助手路径都相对于此目录。
将已批准的模式写入临时 JSON 文件。使用作者参考文档中规定的精确继承覆盖结构。然后在不修改任何内容的情况下进行验证:
node <skill-directory>/scripts/install-mode.mjs \
--mode <temporary-mode.json> \
--mode-id <parent--custom-id> \
--dry-run
安装前修复所有验证错误。然后安装并激活模式:
node <skill-directory>/scripts/install-mode.mjs \
--mode <temporary-mode.json> \
--mode-id <parent--custom-id> \
--telegram-types <comma-separated-approved-types> \
--telegram-concepts <comma-separated-approved-concepts>
如果用户拒绝提醒,则省略两个 Telegram 标志。安装程序会:
- 将覆盖内容与父模式合并,并验证完整模式。
- 将源覆盖内容安装到
<data-dir>/modes/下。 - 在
settings.json中设置CLAUDE_MEM_MODE。 - 合并已批准的提醒触发条件,不删除现有触发条件。
- 以原子方式写入,并报告任何备份路径。
检查其 JSON 结果。如果 ok 不为 true,不得声称安装成功。
6. 必要时连接 Telegram
如果用户请求提醒,且机器人令牌和聊天 ID 均已存在,则询问用户是否允许复用这些凭据并发送测试消息。如果缺少凭据,请说明 Telegram 参考文档中的 BotFather 步骤。
仅在明确征得同意后运行凭据助手:
node <skill-directory>/scripts/configure-telegram.mjs \
--types <comma-separated-approved-types> \
--concepts <comma-separated-approved-concepts>
助手通过隐藏的终端输入接收令牌,使用 getMe 验证令牌,查找或询问聊天 ID,发送测试消息,并以仅所有者可访问的权限存储设置。切勿将令牌作为参数传递。
如果 Agent 环境无法让用户控制交互式终端,则显示准确的助手命令,并暂停操作,让用户在本地运行。这是唯一可接受的人工操作边界;不得要求用户将令牌粘贴到聊天中作为替代方案。用户确认后,仅检查凭据字段是否存在,绝不打印其值。
7. 重启并验证结果
重启前先读取已配置的运行时。对于 worker 运行时,使用已验证的 CLI 重启路径:
npx claude-mem restart
npx claude-mem status
如果 CLI shim 不可用,请使用 Bun 运行已安装插件的 scripts/worker-service.cjs restart。如果已验证的 CLI 路径可用,切勿直接发送重启 HTTP 请求。
请验证以下所有内容:
- 重启报告有一个新的健康 worker,并成功退出。
- 已安装的文件存在于解析后的数据目录中。
settings.json中指定了预期的CLAUDE_MEM_MODE,且未显示任何机密。- 如果有可用的
session_start_contextMCP 工具,请使用它请求完整的启动上下文。否则,向已配置的本地 worker 调用/api/context/inject?project=mode-creator-verification&full=true。 - 启动上下文包含
Mode: <mode name> (<mode id>)。 - 如果已配置 Telegram,测试消息已送达。
如果 worker 回退到 code,请检查 worker 日志中的模式验证或查找错误,修复模式,然后重复重启。不要将回退描述为成功启用。
8. 清晰交接
最后说明:
- 活跃模式的名称和 ID。
- 已安装路径。
- 观察类型和概念。
- Telegram 触发类型/概念,或“未更改”。
- 重启和启动上下文验证结果。
- 用于回滚的备份路径。
- 一个简短示例,说明新模式现在会记住什么。
交接内容中绝不要包含 Telegram 机器人令牌。