360 Secure SkillHub
360 安全技能中心

Wip File Guard

wip-file-guard 是一个本地 Node 钩子,供 Claude Code CLI 与 OpenClaw 使用:对 CLAUDE.md、SOUL.md、IDENTITY.md、MEMORY.md 等受保护身份文件一律禁止 Write,并在 Edit 净删除超过 2 行时拦截,同时匹配 memory、journal 等路径,可在上下文压缩后继续生效。

parkertoddbrooks
parkertoddbrooks
热度 81.92
最近更新 2026-05-11 17:26:41
分类:安全依赖:代码执行 / 读写文件应用场景:自动化脚本 / 工作流 / DevOps

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add wip-file-guard
Metadata
name
wip-file-guard
description
Hook that blocks destructive edits to protected identity files. For Claude Code CLI and OpenClaw.
license
MIT
interface
["cli","module","hook","plugin","skill"]
metadata
{"display-name":"Identity File Protection","version":"1.0.1","homepage":"https://github.com/wipcomputer/wip-file-guard","author":"Parker Todd Brooks","category":"dev-tools","capabilities":["file-protection","edit-blocking","identity-guard"],"requires":{"bins":["node"]},"openclaw":{"requires":{"bins":["node"]},"install":[{"id":"node","kind":"node","package":"@wipcomputer/wip-file-guard","bins":["wip-file-guard"],"label":"Install via npm"}],"emoji":"🛡️"}}
compatibility
Requires node. Node.js 18+.

wip-file-guard

Hook that blocks destructive edits to protected identity files. For Claude Code CLI and OpenClaw.

When to Use This Skill

Use wip-file-guard for:

  • Protecting CLAUDE.md, SOUL.md, IDENTITY.md, MEMORY.md, and other identity files from being overwritten
  • Blocking AI agents from replacing file content instead of extending it
  • Surviving context compaction (behavioral rules get erased, but hooks don't)

This is a technical guardrail, not a prompt. It blocks the operation before it happens.

Do NOT Use For

  • Protecting binary files or images
  • Blocking all edits (it allows small edits, only blocks destructive ones)
  • Repos without identity files

How It Works

Two rules:

  1. Write is blocked on protected files. Always. Use Edit instead.
  2. Edit is blocked when it removes more than 2 net lines from a protected file.

Protected Files

CLAUDE.md, SHARED-CONTEXT.md, SOUL.md, IDENTITY.md, CONTEXT.md, TOOLS.md, MEMORY.md

Protected Patterns

Any file matching: memory, memories, journal, diary, daily log

API Reference

CLI

node guard.mjs --list          # list protected files
bash test.sh                   # run test suite

Claude Code Hook

Add to ~/.claude/settings.json:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "node \"/path/to/wip-file-guard/guard.mjs\"",
            "timeout": 5
          }
        ]
      }
    ]
  }
}

Troubleshooting

Agent keeps trying to Write

The deny message tells the agent to re-read the file and use Edit instead. If the agent ignores it, it's likely post-compaction and has lost context. The hook will keep blocking.

Edit blocked unexpectedly

Check the net line removal. Edits that remove more than 2 lines from a protected file are blocked. Small edits (adding or replacing 1-2 lines) are allowed.