返回顶部
f

file-change-tracker文件变更追踪

Mandatory before the first file-changing action in a new edit batch. Use before creating, editing, overwriting, patching, renaming, moving, deleting, or generating files. Run PRE once at batch start with the explicit target paths, then run POST when the batch is complete. Do not use for read-only inspection, search, grep, diff-only review, or explanation-only tasks.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
115
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

file-change-tracker

文件变更追踪器

在新编辑批次中执行首次文件变更操作前必须使用。

这是一项安全技能。
如果任务将创建文件、创建脚本、创建README、编辑内容、覆盖文件、应用补丁、重命名或移动文件、删除文件、更改配置、更新文档、重构代码,或运行生成文件的命令,请先停止,确定目标路径,并在进行任何文件变更前运行pre。
不得先进行文件变更再试图事后保护。
不得因为任务看起来很小、很简单或易于重新创建而跳过此技能。
不得在同一批次内的每次增量变更前都运行pre。
必须在批次开始时运行一次pre,然后执行文件变更,批次完成后运行post。

触发规则

一旦计划包含任何文件变更操作,立即使用此技能。
触发条件是计划中的文件变更,而非实现机制。
不要等待特定的git任务、大型任务或高风险任务。
如果任何文件将被创建、编辑、覆盖、打补丁、重命名、移动、删除或生成,此技能适用。

不适用场景

不适用于只读检查、仅解释任务、搜索、grep、列出文件或仅diff审查。

此技能的作用

此技能为文件变更添加了一个轻量级的本地保护层。
当前的辅助实现使用本地git记录恢复点,将范围检查限定在显式路径,并提供回滚指导。

在首次文件变更操作前,它为任务的显式目标路径创建或记录一个恢复点。
任务完成后,在需要时记录结果,显示最近的提交,并告知用户回滚可用。
每次pre调用都会在.git/.guarded-edit/sessions/下打开一个独立的文件变更会话,因此重叠的编辑批次不会互相覆盖状态。

何时使用

以下任务必须使用:

  • - 编辑现有文件
  • 创建新文件,如脚本、辅助工具、配置文件、README、文档或提示
  • 删除、重命名或移动文件
  • 跨已知文件集重构
  • 更改配置文件
  • 对已知路径应用补丁
  • 运行会修改已知文件集的shell命令
  • 将代码或其他文件生成到已知路径

不适用于只读检查、仅解释任务、搜索、grep或仅diff审查。

范围规则

此版本是路径显式的。

在首次文件变更操作前,收集预期会变更的文件或目录,并将其传递给pre。
如果目标路径尚未确定,请先确定,然后在任何write、apply_patch、覆盖、重命名、移动、删除或创建文件的shell命令之前运行pre。
然后辅助工具将把其状态检查、暂存和提交的范围限定在这些目标路径上,而非整个工作空间。

如果目标路径集后来扩大,不得默默继续编辑。
在触及这些新增路径之前,使用扩展后的路径列表运行一个新的pre。

强制排除规则

文件变更追踪器使用专用的gitignore风格排除文件,而非在SKILL.md中嵌入默认模式。

活动的排除文件始终是:

  1. 1. {baseDir}/guarded-edit.ignore

不得包含与活动排除规则匹配的目标路径。
任何与活动排除规则不匹配的路径都可以包含在文件变更范围内,但需服从显式的任务意图。

这允许用户通过编辑位于SKILL.md旁边的单个文件来控制忽略的路径,而无需编辑技能文本本身。

索引安全规则

此辅助工具对索引有意采取保守态度。

如果声明的目标路径已包含暂存的变更,pre和post必须失败,而不是尝试重新暂存这些路径。
这避免了扁平化hunk级别的暂存或以其他方式重写用户对这些受保护文件已有的暂存状态。
请先解决、提交或贮藏这些暂存的变更,然后在这些目标路径上开始一个干净的文件变更批次。

必需的工作流程

1. 首次文件变更操作前

运行:

bash
{baseDir}/scripts/helper.sh pre <简短原因> -- <路径> [<路径> ...]

示例:

bash
{baseDir}/scripts/helper.sh pre 修复登录验证 -- src/auth/login.ts src/auth/schema.ts
{baseDir}/scripts/helper.sh pre 创建新闻脚本和文档 -- scripts/news_hotspot.py scripts/README.md
{baseDir}/scripts/helper.sh pre 更新技能元数据 -- SKILL.md README.md README.user.md
{baseDir}/scripts/helper.sh pre 重新生成解析器输出 -- src/parser generated/

2. 执行变更

仅更改此文件变更批次声明的目标路径。

3. 必要时进行验证

当任务需要时,运行测试、linter、类型检查或针对性的健全性检查。

4. 变更完成后

运行:

bash
{baseDir}/scripts/helper.sh post <简短原因>
{baseDir}/scripts/helper.sh report 5
{baseDir}/scripts/helper.sh rollback-help

如果在此批次完成前开始了另一个文件变更批次,请显式选择目标会话。
当存在多个打开的会话时,post和rollback-help将失败而不是猜测。

bash
{baseDir}/scripts/helper.sh sessions 5
{baseDir}/scripts/helper.sh post <简短原因> --session <会话id>
{baseDir}/scripts/helper.sh rollback-help --session <会话id>

5. 向用户报告

report应保持PRE和POST可见,并包含最近3到5条路径范围的记录。PRE、POST和最近的记录都应呈现为id + 注释,以便用户不必从裸SHA中推断含义。

始终告知用户:

  • - PRE快照是什么,显示为id + 注释
  • POST快照是什么或为何未创建,显示为id + 注释
  • 当前辅助实现使用了哪个仓库
  • 哪些目标路径受到保护
  • 当前会话id
  • 当前会话注释
  • 当前会话是仍打开还是已关闭
  • 最近3到5个已保存的会话,同时显示会话id和注释
  • 最近3到5条路径范围的提交记录,显示为id + 注释
  • 支持回滚
  • 此任务最安全的回滚命令
  • 活动的排除文件

报告模板

text
已完成本次修改,并已做文件变更保护。

仓库: <仓库根目录>

当前会话:

  • - id: <会话id>
  • 状态: <打开或关闭>
  • 注释: <会话注释>

保护路径:

  • - <路径1>
  • <路径2>

PRE 快照: sha> 主题>
POST 快照: sha 或 none> 主题 或 原因>

最近 5 次记录:

  • - <主题1>
  • <主题2>
  • <主题3>
  • <主题4>
  • <主题5>

最近会话:
<会话输出,包含会话id + 会话注释 + pre/post摘要>

支持回退。
如需回到本次修改前,优先使用 rollback-help 输出的按路径 restore 命令,例如:
git restore --source= --staged --worktree --pathspec-from-file=<会话路径文件> --pathspec-file-nul
如需查看还能恢复到哪里,可用:
git reflog -n 10

如果存在POST提交且用户可能更喜欢保留历史的回滚,也请提及:

bash
git revert

行为规则

  • - 如果当前辅助实现需要本地git仓库而当前目录还不是,则必须自动初始化一个。
  • 如果当前辅助实现缺少git身份信息,则必须设置仓库本地的user.name和user.email。
  • 必须尊重.gitignore和{baseDir}/guarded-edit.ignore。
  • 必须将检查、暂存和提交的范围限定在pre中的显式目标路径。
  • 必须将每个文件变更批次保存在.git/.guarded-edit/sessions/下各自的会话中。
  • 当有多个文件变更会话仍打开时,post和rollback-help必须要求--session <会话id>而不是猜测。
  • 如果声明的目标路径被{baseDir}/guarded-edit.ignore排除,则必须失败。
  • 声明的目标路径内未被忽略的新文件、生成的工件、二进制文件和意外放置的敏感文件也可能包含在快照中。
  • 除非用户明确要求,否则绝不推送。
  • 除非用户明确要求,否则绝不重写历史。
  • 绝不隐藏失败。
  • 如果PRE失败,停止有风险的变更并告知用户。
  • 如果目标路径已有暂存的变更,则失败而不是重写目标路径的索引状态。
  • 如果当前文件变更会话没有PRE快照,则不要默默运行POST。
  • post使用来自pre存储的路径集。不应默默扩大范围。
  • rollback-help必须优先提供路径范围的恢复指导,而非整个仓库的硬重置指导。
  • 向用户显示的命令应是shell安全的。

提交策略

PRE步骤

  • - 如果仓库对声明的目标路径已有干净的HEAD,则将其重用为恢复点。
  • 如果

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 file-change-tracker-1776090362 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 file-change-tracker-1776090362 技能

通过命令行安装

skillhub install file-change-tracker-1776090362

下载

⬇ 下载 file-change-tracker v1.0.0(免费)

文件大小: 14.23 KB | 发布时间: 2026-4-14 14:04

v1.0.0 最新 2026-4-14 14:04
Initial release of file-change-tracker, a safety skill for managing file change batches.

- Enforces pre/post file change workflows using local git recovery points.
- Requires explicit declaration of target paths before any file-changing actions.
- Integrates a dedicated exclusion file (`guarded-edit.ignore`) to manage ignored paths.
- Prevents overlap with existing staged changes for declared paths.
- Provides detailed reporting and rollback guidance, including session tracking.
- Not for read-only, explanation-only, or diff-review tasks.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部