project-memory-init
Skill0 starsChanged 21 days agoMITView on GitHub
初始化或升级工作区的跨会话文件记忆体系:生成 AGENTS.md 与 docs/PROGRESS.md、 KNOWN-ISSUES.md、DECISIONS.md,运维工作区追加 RUNBOOK.md。当用户说「初始化 项目 / 初始化工作区 / 建立项目记忆 / 生成 AGENTS.md / 记忆规范 / 新目录开工」, 或在一个没有记忆文件的新目录开始长期工作时使用。只支持开发与运维两类; 知识/学习类目录不初始化(技能会说明原因)。不覆盖已有文件,不写密钥, 不编造命令。
1 other project uses a version of this.
Adopted by
Most recently taken up by
- juanitourquiza/shipframetheir own version, first seen Oct 23, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- juanitourquiza/shipframe★ 4same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
Files
项目记忆初始化
把空白或半空白的工作区,变成「新会话一进来就知道上下文」的文件记忆工作区。 只写显式 Markdown 文件,不建数据库、不装依赖、不引入自动记忆。
先读参考(按需渐进加载)
| 文件 | 何时读 |
reference/SPEC.zh.md | 开始前至少读 §1、§3、§10;生成后按 §11 自检 |
templates/AGENTS.base.md + 对应类型文件 | 生成 AGENTS.md 时 |
templates/PROGRESS.md 等文档模板 | 生成 docs/ 时 |
scripts/verify-memory.mjs | 生成后必须运行 |
所有相对路径都相对于本技能目录(技能加载时会给出 base directory)。
输出矩阵
| 工作区类型 | AGENTS.md 专属节 | 必建文件 |
开发 dev | 定位与边界 / 技术栈 / 常用命令 / 项目结构 | AGENTS.md、docs/PROGRESS.md、docs/KNOWN-ISSUES.md、docs/DECISIONS.md |
运维 ops | 管理对象 / 环境与访问 / 危险操作红线 / 常用操作 | 同上 + docs/RUNBOOK.md |
混合场景(有代码又有部署):主类型取 dev,额外生成 docs/RUNBOOK.md,并在 AGENTS.md 的「记忆文件」节加一行指针。
不支持的场景:知识/学习类目录(无代码 manifest、主体是 Markdown/PDF/资料、或用户说「学习/调研/资料整理」)。 这类目录不初始化、不生成任何文件:它们通常一个目录里跑多个不同主题的会话,而本体系的 PROGRESS/DECISIONS 是线性项目模型,会互相覆盖、只增噪音。遇到时只做说明,并给出替代做法:
- 依赖
session_search/@会话引用回查历史会话; - 真正值得留的结论,按主题手写
docs/notes/<主题>.md(一个主题一个文件),不做四件套、不建进度。
旧项目已有 AGENTS.md 时:只补缺失文件与缺失节,绝不覆盖、绝不改写已有「必须保留本节原文」的节。
已有文件时怎么处理
- AGENTS.md 已存在:先
read。只追加缺失的类型专属节/指针节;已有节不改;两个保护节原样保留。类型以文件头部「> 类型:」为准,冲突时问用户一次;旧文件没有类型行时,只在标题下补> 类型: 开发/运维一行(不编造建立日期),不改其他内容。 - docs 文件已存在:不覆盖。PROGRESS 只在内容为空/仅模板时补初始化条目,否则跳过并在汇报里说明;其余文件同理。
- 部分存在、部分缺失:只补缺;生成后仍跑校验,把「已存在跳过」和「新建」分开列表。
- 用户要求重建:先说明会丢失哪些内容,得到确认后再做;默认不重建。
可选:全局偏好
只有用户明确说「初始化全局偏好 / 个人全局约定」时,才生成 $DSH_HOME/AGENTS.md(默认 ~/.dsh/AGENTS.md),
使用 templates/AGENTS.global.md,≤ 20 行;先确认再写,已存在则不覆盖。项目内容绝不写进全局文件。
执行流程
第 1 步:侦察(只读,不写文件)
- 确认会话工作目录
pwd;若在子目录,向上找.git,没有.git就把当前目录当工作区根目录。 - 先检查 opt-out 标记:根目录存在
.dsh/no-project-memory,或AGENTS.md顶部有> 记忆: 关闭→ 该工作区被标记为临时/不共享记忆,停止,不生成任何文件,只向用户确认「该工作区已标记为不初始化记忆」。 - 检查已存在的记忆文件:
AGENTS.md、AGENTS.local.md、CLAUDE.md、docs/PROGRESS.md、docs/KNOWN-ISSUES.md、docs/DECISIONS.md、docs/RUNBOOK.md。 - 收集类型信号(见下表)。用
read读 README、manifest、已有文档;不要执行项目命令,不要安装依赖。
| 类型 | 强信号 | 弱信号 |
| dev | package.json / pyproject.toml / go.mod / Cargo.toml / pom.xml / *.csproj / src/ | Makefile、测试目录、.github/workflows/、git 里有代码提交 |
| ops | docker-compose.y*ml / ansible.cfg / inventory* / *.tf / k8s 清单 / 服务器清单 / 已有 RUNBOOK | README 写「部署/运维/服务器」、目录名含 deploy/ops/infra |
| 知识(不初始化) | 无代码 manifest,主体是 Markdown/PDF/资料 | 目录名含 notes/学习/调研/knowledge、用户说「学习/调研/资料整理」 |
第 2 步:判定类型与采集事实
类型:按上表判定。若同时有代码和部署文件 → dev + RUNBOOK。若目录为空且用户消息也没给信息 → 默认 dev,不要为此单独发问。
知识类判定为「不初始化」:命中知识信号且没有 dev/ops 强信号 → 停止,不写任何文件,向用户说明「知识/学习类目录不适用本记忆体系」并给出替代做法(见输出矩阵)。用户明确坚持要建时,也不要生成四件套;最多按主题写 docs/notes/<主题>.md,并说明这不是本规范的一部分。
提问策略:最多问 一轮,最多 3 个问题(用 ask_user_question),且只在「类型无法判定」或「项目名/一句话说明完全无法推断」时问;用户说「直接生成 / 不用问 / 快速」时一律不问。能从文件推断的绝不问。
采集(只填可核实项,推不出的用 (待补充:…)):
- 项目名:manifest 的
name,否则目录 basename;去掉版本号后缀。 - 一句话说明:用户消息 > README 第一段 >
(待补充:一句话说明)。 - 定位与边界(dev):是什么/给谁、不做什么;从 README/用户消息提取,推不出就
(待补充),不要写仓库概览。 - dev:技术栈(只写不可从 manifest 直接看出的约束)、安装/开发/测试/构建命令(
package.jsonscripts、Makefile、pyproject、README 命令段)、顶层目录职责(只写非显而易见的归属/放置规则,不列完整目录树)。 - ops:管理对象(主机/服务/域名)、不管理/非目标、环境(生产/测试)、访问入口与凭据存放位置(只写位置)、变更窗口、常用操作、备份与回滚方式。
- 工作约定:最多写 1~3 条能从仓库或用户消息确认、且工具无法强制的硬规矩;没有就写
(待补充:代码风格 / 提交规范 / 必跑命令)。 - 既有业务文档:
docs/下非记忆文件(设计规格、审查报告、问题清单等)不要删、不要移动;在 AGENTS.md「记忆文件」节加 1~3 行「领域文档 → 路径 + 何时读」指针(没有就跳过)。
第 3 步:生成文件
使用 write 工具写文件(不要用 bash heredoc 或 sed 生成,否则当前会话拿不到指令更新)。按顺序:
- AGENTS.md:
templates/AGENTS.base.md为主体,把{{PROFILE_SECTIONS}}换成templates/AGENTS.<dev|ops>.md全文,把{{TRIGGER_SECTION}}换成templates/TRIGGER.<dev|ops>.md全文,把{{EXTRA_POINTERS}}换成额外指针(docs/RUNBOOK.md指针,或空)。 - docs/PROGRESS.md:初始「当前状态」=「刚初始化记忆体系,尚未开始实质工作。」;「已完成」保留初始化条目;「下一步」写一个具体的
- [ ] (待补充:第一个具体任务)。 - docs/KNOWN-ISSUES.md、docs/DECISIONS.md:按模板;DECISIONS 保留「初始化文件记忆体系」条目。
- 按类型追加:
ops→docs/RUNBOOK.md;dev+ 部署信号 →docs/RUNBOOK.md。 - 替换所有
{{...}}模板标记:{{SPEC_VERSION}}填2.3;{{PROFILE_LABEL}}填 开发/运维;{{WHAT_WHO}}/{{NON_GOALS}}填定位/非目标;{{EXTRA_DECISION}}按类型填、RUNBOOK.md或空;{{FILE_LIST}}填实际生成的文件;{{DATETIME}}填当前时间。未知值写(待补充:…),禁止编造命令、地址、版本号。 - 写完立即
read一遍 AGENTS.md 与 PROGRESS.md,刷新当前会话的指令快照。 - 可选:用户明确说「配置本机 / 本机私有」时,才用
templates/AGENTS.local.template.md生成AGENTS.local.md(≤20 行,不写密钥),并提醒加入.gitignore;默认不生成。
第 4 步:自检(必须)
node "<本技能目录>/scripts/verify-memory.mjs" "<工作区根目录>"- 先修完全部
ERROR(模板标记残留、缺节、保护节被改写、疑似密钥、缺文件)。 WARN((待补充)、文件超预算、本机私有文件未 gitignore、缺版本行)逐条列进汇报,不要假装没有。- 若脚本报类型不符,可加
--profile=dev|ops重跑。 - 脚本对「已标记不初始化」「知识/学习类目录」「未初始化且无信号」三种情况会输出「跳过」并 exit 0,不算失败。
第 5 步:汇报
用一张表列出「文件 / 行数 / 状态」,然后:
- 说明类型与判定依据(一句话)。
- 列出所有
(待补充:…),告诉用户最少要补哪几项。 - 明确说明:技能只生成了骨架,AGENTS.md 需要人工审阅/定稿;不要声称「已自动写好」。
- 若保留了既有业务文档,说明它们没被改动、在 AGENTS.md 里加了哪些指针。
- 建议下一步:
git init+ commit(是否执行先问用户),然后开工。 - 提醒:以后每次收尾更新 PROGRESS.md;踩坑记 KNOWN-ISSUES;定案记 DECISIONS;删/移文档前先 grep 引用(SPEC §9.12);按任务形状读对应文件(见 SPEC §9.10)。
硬性边界
- 不覆盖:已存在的 AGENTS.md、docs 文件不覆盖;只补缺。需要重建时先问用户并说明会丢失什么。
- 不改保护节:含「(必须保留本节原文)」的两节必须逐字保留,不增删改。
- 不写秘密:任何密钥/令牌/密码/账号都不入库,只写「去哪找」;本机私有文件也一样。
- 不编造:命令、地址、依赖版本、运维对象必须来自文件或用户;不确定就标
(待补充)。 - 不执行:不运行项目命令、不装依赖、不
git commit(除非用户明确要求)。 - 不越界:只写上面矩阵里的文件;不顺手生成 README、CI、代码骨架;不生成
CLAUDE.md/GEMINI.md副本。 - 不对知识目录初始化:知识/学习/资料类目录一律不生成记忆文件;不要为了"看起来完整"而套用开发模板。
- 不动用户既有文档:不删除、不移动、不重命名用户已有的设计/审查/问题清单等业务文档;只加指针。确实需要整理时,先
grep -rIl查引用,建议归档到docs/archive/而不是删除,并由用户确认。 - 不替人定稿:自动生成只是骨架;不把风格/linter 规则写进 AGENTS.md,不假装完成人工审阅。
- 一轮提问:最多问一轮、最多 3 个问题;能从上下文推断的不问。
跨机器说明
本技能是纯 Markdown + Node 脚本,无依赖,Windows/Linux/macOS 通用。两种安装方式:
- 纯技能:把整个目录放到
~/.dsh/skills/project-memory-init/(或~/.agents/skills/),或运行node scripts/install.mjs。 - bundle 插件(推荐一键):在 DSH 的「添加插件」里粘贴 Git 仓库地址(如
https://github.com/<user>/<repo>),安装后重启/新会话即可;插件会把内置技能注册到全局。
装好后新开一个会话,说「初始化项目」就会触发;也可输入 /project-memory-init。若技能不存在,用同目录的 BOOTSTRAP-PROMPT.md 作为一次性提示词。
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

