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 +``` ---