mcpField
R
remember

remember

github.com/jsmastery-proAgent 工作流237964 次安装16 周前更新
代码仓库

关于 remember

供使用 AI 的开发者跨会话保存和恢复项目状态的记忆技能,可在会话结束时保存要点,并在新会话开始时恢复。它会排除或遮盖敏感信息,覆盖已有记忆前需先确认。

主要功能

  1. 01保存会话关键背景
  2. 02在新会话恢复背景
  3. 03排除或遮盖机密信息
  4. 04覆盖记忆前征求确认
  5. 05恢复时读取指定背景文件

适用场景

  1. 01在会话之间交接项目状态
  2. 02根据已保存决策继续工作
  3. 03保存后续事项且不记录凭证

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jsmastery-pro/jsm-agent-skill --skill remember

安装后在 Claude Code 中输入/remember确认已加载。

详细介绍

AI 在不同会话之间没有记忆。每个新会话都是从空白开始的。此技能可以解决这个问题。

在会话结束时运行它以保存内容。在新会话开始时运行它以恢复内容。它只做这些事——但只要坚持使用,就不会丢失任何内容。

安全边界

此技能绝不能保存机密信息。如果对话或上下文中出现任何敏感值,不要将其复制到 memory.md。

敏感数据包括(但不限于):

  • API 密钥、访问令牌、刷新令牌、会话令牌
  • 密码、口令、一次性验证码、私钥、证书
  • Cookie、身份验证标头、连接字符串、Webhook 密钥
  • 任何类似凭据的值或看起来像机密的字符串

如果某项信息有用但属于敏感信息,请改为保存经过脱敏的占位符(例如:[REDACTED_API_KEY])。 如果不确定某项信息是否敏感,请将其视为敏感信息并省略或脱敏。

如何调用

在会话结束时保存:

/remember save

在新会话开始时恢复:

/remember restore

如果开发者只运行 /remember 而未指定操作,请询问他们需要哪一种。


保存模式

当开发者运行 /remember save 时:

要记录的内容

查看当前对话,只提取开发者在全新上下文中继续这项工作时真正需要的信息。不要在保存的记忆中包含凭据、API 密钥或令牌等敏感数据。这不是对话记录,也不是对所有内容的总结,而是必要的状态信息。

设想有人要将项目交接给一位能力相当、但不了解今天发生了什么的同事。为了让对方能继续工作而不遗漏任何内容,需要告诉他们什么?

记录:

已完成的工作 — 创建或修改的具体文件、完成的功能、添加的组件。务必具体。不要写“构建了身份验证流程”,而应写“创建了 app/(auth)/login/page.tsx、app/(auth)/callback/page.tsx 和 middleware.ts。Google 和 GitHub 的 OAuth 已端到端打通。”

已作出的决策 — 难以逆转或后续工作所依赖的选择。不是实现细节,而是架构选择。“选择在服务端而非客户端获取数据,避免加载状态,并将敏感逻辑保留在客户端之外。”

已解决的问题 — 花费时间才弄清楚的问题,避免下个会话重复解决。“第三方身份验证回调要求重定向 URL 末尾带斜杠——已在回调处理程序中修复。”

当前状态 — 准确记录目前的进展。哪些功能正常,哪些尚未完成,哪些已知存在问题。

后续工作 — 接下来最需要做的事。描述要具体到下个会话可以立即开始,而不必先摸索从哪里着手。

待解决问题 — 下个会话需要处理的未决事项。

不要记录的内容
  • 可直接从代码中看到的实现细节
  • 已在上下文文件中记录的决策
  • 通过阅读代码库即可推断出的内容
  • 构建过程——只记录构建了什么以及作出了什么决策
  • 任何机密或类似凭据的值(令牌、密钥、密码、Cookie、身份验证标头、连接字符串)
写入前的安全检查

写入 memory.md 前,最后检查一遍内容,确保其中不含任何敏感值。

  • 如果发现敏感内容,请在写入前将其删除或脱敏。
  • 仅保留继续下个会话所需的最少非敏感上下文。
保存位置

将记忆写入项目根目录下的 memory.md。此文件始终只包含最近一次会话的状态。

如果 memory.md 已存在,请向开发者简要总结当前保存的内容,并在覆盖前征求确认:

步骤 1 — 读取 memory.md,提供一行摘要,然后停止并等待开发者输入:

memory.md already exists from a previous session.
Current memory covers: [one-line summary of existing content].

Overwrite with this session's memory? (yes / no)

步骤 2 — 开发者回复后:

  • 如果他们说是,则写入新的 memory.md。
  • 如果他们说否,则不写入任何内容,并回复:
No changes made. memory.md is unchanged.
格式
# Memory — [Feature or Session Name]

Last updated: [date and time]

## What was built

[Specific files, components, features completed this session]

## Decisions made

[Architectural and implementation decisions that future work depends on]

## Problems solved

[Issues resolved this session — so they are not solved again]

## Current state

[Exactly where things stand — what works, what is partial, what is broken]

## Next session starts with

[The very first thing to do in the next session — specific and actionable]

## Open questions

[Anything unresolved that needs addressing]

写入文件后,向开发者确认:

Memory saved to memory.md.

Next session: run /remember restore to pick up from here.

恢复模式

当开发者在新会话开始时运行 /remember restore:

步骤 1 — 查找记忆

在项目根目录查找 memory.md。如果文件不存在,请告知开发者:

No memory.md found in this project.

Either this is the first session, or the file was not saved.
To save memory at the end of a session, run /remember save.
步骤 2 — 阅读所有可用内容

先读取 memory.md。然后检查以下特定上下文文件(如果存在),并且只读取这些文件:

  • CLAUDE.md、.claude/context.md — Claude Code
  • .github/copilot-instructions.md — GitHub Copilot
  • .cursorrules、.cursor/rules/ — Cursor
  • .windsurfrules — Windsurf
  • AGENTS.md — Codex
  • .clinerules — Cline
  • context.md — 通用备用文件

不要扫描或读取此列表之外的其他文件。根据现有内容,尽可能还原完整的上下文。

恢复时,绝不要重复或披露任何来源中的原始机密。如果恢复的上下文中包含机密,只能以脱敏形式概述。

步骤 3 — 确认恢复的内容

不要开始构建。不要假设开发者希望立即继续。请总结恢复的内容,以便开发者确认 Claude 是否正确理解。

Memory restored. Here is where we are:

**Last session:** [what was built]
**Current state:** [what works right now]
**Decisions in place:** [key decisions that are locked]
**Next up:** [what the next session should start with]

Is this correct? Say yes to continue, or correct anything
that does not look right before we proceed.

只有在开发者确认后,会话才继续。

如果记忆不完整或不清楚

如果 memory.md 存在,但缺少重要上下文,请如实说明:

I found memory.md but some context seems missing —
[what is unclear or absent].

Should we continue with what we have, or do you want
to fill in the gaps before we start?

不要猜测。不要擅自假设。指出缺失之处,让开发者决定。


规则

每次会话都以 /remember save 结束。 每次会话都以 /remember restore 开始。

整个系统就是这样。坚持使用才能发挥作用。 偶尔使用的技能并不可靠。

评论

支持 Markdown