fix(memcore): 强制 memory-update/lint 路径锁定,禁止写入系统自动记忆路径

三个技能均追加"⚠ 路径锁定"块,明确唯一操作路径为
$PROJECT_DIR/.claude/memory/,严禁写入 ~/.claude/projects/*/memory/,
消除 auto memory 系统并发干扰;memory-sync Phase 3 补方向锁定注释,
确认远程同步窗口唯一为 Phase 10。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
SkyJourney
2026-05-08 11:50:43 +08:00
co-authored by Claude Sonnet 4.6
parent 74cf0310b4
commit 9c913829ab
3 changed files with 52 additions and 4 deletions
+24 -2
View File
@@ -1,11 +1,33 @@
--- ---
name: memory-lint 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 # 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` 并终止。 目录不存在 → 输出 `⚠ 未找到 .claude/memory/,建议先执行 /memory-sync` 并终止。
@@ -53,6 +53,8 @@ ls "$PROJECT_DIR/.claude/memory/" 2>/dev/null
## Phase 3 — 远程 → 本地(只补不覆) ## Phase 3 — 远程 → 本地(只补不覆)
> **方向锁定**:本 Phase 唯一操作是从 `~/.claude/projects/{PROJECT_KEY}/memory/` 补充到 `$PROJECT_DIR/.claude/memory/`(缺失文件单向复制)。Phase 5memory-update)和 Phase 6memory-lint)严禁反向写入远程路径,所有远程同步只由 Phase 10 统一执行。
```bash ```bash
for f in ~/.claude/projects/{PROJECT_KEY}/memory/*.md; do for f in ~/.claude/projects/{PROJECT_KEY}/memory/*.md; do
fn=$(basename "$f"); local="$PROJECT_DIR/.claude/memory/$fn" fn=$(basename "$f"); local="$PROJECT_DIR/.claude/memory/$fn"
+26 -2
View File
@@ -1,11 +1,35 @@
--- ---
name: memory-update 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 # 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
```
--- ---