From 9c913829ab6cf03334093ec77a45e8d8379ff007 Mon Sep 17 00:00:00 2001 From: SkyJourney Date: Fri, 8 May 2026 11:50:43 +0800 Subject: [PATCH] =?UTF-8?q?fix(memcore):=20=E5=BC=BA=E5=88=B6=20memory-upd?= =?UTF-8?q?ate/lint=20=E8=B7=AF=E5=BE=84=E9=94=81=E5=AE=9A=EF=BC=8C?= =?UTF-8?q?=E7=A6=81=E6=AD=A2=E5=86=99=E5=85=A5=E7=B3=BB=E7=BB=9F=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E8=AE=B0=E5=BF=86=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 三个技能均追加"⚠ 路径锁定"块,明确唯一操作路径为 $PROJECT_DIR/.claude/memory/,严禁写入 ~/.claude/projects/*/memory/, 消除 auto memory 系统并发干扰;memory-sync Phase 3 补方向锁定注释, 确认远程同步窗口唯一为 Phase 10。 Co-Authored-By: Claude Sonnet 4.6 --- plugins/memcore/skills/memory-lint/SKILL.md | 26 +++++++++++++++-- plugins/memcore/skills/memory-sync/SKILL.md | 2 ++ plugins/memcore/skills/memory-update/SKILL.md | 28 +++++++++++++++++-- 3 files changed, 52 insertions(+), 4 deletions(-) diff --git a/plugins/memcore/skills/memory-lint/SKILL.md b/plugins/memcore/skills/memory-lint/SKILL.md index 5801d7e..8ec2e34 100644 --- a/plugins/memcore/skills/memory-lint/SKILL.md +++ b/plugins/memcore/skills/memory-lint/SKILL.md @@ -1,11 +1,33 @@ --- name: memory-lint -description: 检查本地记忆文件的健康状况。AUTO-FIX类问题直接修改本地文件,NEED-HUMAN类问题写入lint_report.md。以本地.claude/memory/为唯一权威,不推送远程。可独立执行,也作为/memory-sync流程的一部分。调用命令: /memory-lint +description: 检查本地记忆文件的健康状况。AUTO-FIX类问题直接修改本地文件,NEED-HUMAN类问题写入lint_report.md。唯一操作路径为 $PROJECT_DIR/.claude/memory/,严禁读写 ~/.claude/projects/*/memory/ 等项目目录外的任何路径,也不触发 auto memory 系统写入。可独立执行,也作为/memory-sync流程的一部分。调用命令: /memory-lint --- # memory-lint -健康检查 `.claude/memory/`:AUTO-FIX 直修,NEED-HUMAN 写入 `lint_report.md`。**本地权威,不推送远程**。会话目录 = `$PROJECT_DIR`。 +健康检查 `.claude/memory/`:AUTO-FIX 直修,NEED-HUMAN 写入 `lint_report.md`。会话目录 = `$PROJECT_DIR`。 + +--- + +## ⚠ 路径锁定(执行前必读) + +**唯一操作路径**:`$PROJECT_DIR/.claude/memory/`(项目根目录内的 `.claude/memory/`) + +**严禁读写的路径**: +- `~/.claude/projects/*/memory/`(系统自动记忆路径,由 auto memory 系统单独管理) +- `~/.claude/` 下任何其他目录 +- 项目目录(`$PROJECT_DIR`)以外的任何路径 + +**不触发 auto memory**:本技能执行期间产生的所有 lint 修正和报告,均**不写入** auto memory 系统(`~/.claude/projects/{PROJECT_KEY}/memory/`),该路径仅由 `/memory-sync` 的 Phase 10 统一管理。 + +**执行前断言**: +```bash +TARGET="$PROJECT_DIR/.claude/memory" +echo "memory-lint 目标路径:$TARGET" +case "$TARGET" in *"/.claude/projects/"*) + echo "ERROR: 路径含系统自动记忆目录,中止" && exit 1 ;; +esac +``` 目录不存在 → 输出 `⚠ 未找到 .claude/memory/,建议先执行 /memory-sync` 并终止。 diff --git a/plugins/memcore/skills/memory-sync/SKILL.md b/plugins/memcore/skills/memory-sync/SKILL.md index 10725aa..6fcd189 100644 --- a/plugins/memcore/skills/memory-sync/SKILL.md +++ b/plugins/memcore/skills/memory-sync/SKILL.md @@ -53,6 +53,8 @@ ls "$PROJECT_DIR/.claude/memory/" 2>/dev/null ## Phase 3 — 远程 → 本地(只补不覆) +> **方向锁定**:本 Phase 唯一操作是从 `~/.claude/projects/{PROJECT_KEY}/memory/` 补充到 `$PROJECT_DIR/.claude/memory/`(缺失文件单向复制)。Phase 5(memory-update)和 Phase 6(memory-lint)严禁反向写入远程路径,所有远程同步只由 Phase 10 统一执行。 + ```bash for f in ~/.claude/projects/{PROJECT_KEY}/memory/*.md; do fn=$(basename "$f"); local="$PROJECT_DIR/.claude/memory/$fn" diff --git a/plugins/memcore/skills/memory-update/SKILL.md b/plugins/memcore/skills/memory-update/SKILL.md index af9e292..07b8fc6 100644 --- a/plugins/memcore/skills/memory-update/SKILL.md +++ b/plugins/memcore/skills/memory-update/SKILL.md @@ -1,11 +1,35 @@ --- name: memory-update -description: 根据git diff增量范围,更新本地记忆文件和MEMORY.md索引。以本地.claude/memory/为唯一权威,不推送远程。可独立执行,也作为/memory-sync流程的一部分。调用命令: /memory-update +description: 根据git diff增量范围,更新本地记忆文件和MEMORY.md索引。唯一操作路径为 $PROJECT_DIR/.claude/memory/,严禁写入 ~/.claude/projects/*/memory/ 等项目目录外的任何路径,也不触发 auto memory 系统写入。可独立执行,也作为/memory-sync流程的一部分。调用命令: /memory-update --- # memory-update -按 git diff 增量更新本地 `.claude/memory/`。**本地权威,仅操作本地文件**。会话目录 = `$PROJECT_DIR`;目录不存在则 `mkdir -p`。 +按 git diff 增量更新本地 `.claude/memory/`。会话目录 = `$PROJECT_DIR`;目录不存在则 `mkdir -p`。 + +--- + +## ⚠ 路径锁定(执行前必读) + +**唯一操作路径**:`$PROJECT_DIR/.claude/memory/`(项目根目录内的 `.claude/memory/`) + +**严禁写入的路径**: +- `~/.claude/projects/*/memory/`(系统自动记忆路径,由 auto memory 系统单独管理) +- `~/.claude/` 下任何其他目录 +- 项目目录(`$PROJECT_DIR`)以外的任何路径 + +**不触发 auto memory**:本技能执行期间产生的所有记忆内容,均**不写入** auto memory 系统(`~/.claude/projects/{PROJECT_KEY}/memory/`),该路径仅由 `/memory-sync` 的 Phase 10 统一管理。 + +**执行前断言**: +```bash +# 确认目标路径在项目目录内 +TARGET="$PROJECT_DIR/.claude/memory" +echo "memory-update 目标路径:$TARGET" +# 路径含 .claude/projects 则中止 +case "$TARGET" in *"/.claude/projects/"*) + echo "ERROR: 路径含系统自动记忆目录,中止" && exit 1 ;; +esac +``` ---