agentleFS
iAstroUnicorniAstroUnicorn/astro-skills/skills/kernel-security/SKILL.md

kernel-security

Skill0 starsChanged 4 months agoApache-2.0View on GitHub

灵魂文件写入安全、备份归口与Git提交规范,所有Agent必须遵守的底层安全协议。

  • Reads credentials

The file

Files
SKILL.md

内核安全协议

两个核心任务:别互相踩(并发安全),别丢数据(备份安全)。 所有 Agent 必须遵守,自动执行,不可跳过。


核心原则

  1. 读写分离 — 灵魂文件(SOUL/IDENTITY/USER/MEMORY.md)只改自己的,不碰别人的。
  2. 备份先行 — 编辑灵魂文件前必须先备份,备份失败则停止。
  3. Git 兜底 — 改完必须 commit,git 历史就是安全网。
  4. 精确修改 — 先读后改,用字符串精确替换,不全文重写。

灵魂文件清单

这些文件是核心,修改时必须严格遵守安全协议:

文件用途修改频率
SOUL.md灵魂/本质定义极低
IDENTITY.md身份/角色定义低
USER.md用户信息/偏好中
MEMORY.md记忆/历史记录中高

⚠️ 以上文件禁止全文重写,必须精确替换修改。


操作规则

1. 灵魂文件写入

读取 → 定位 → 替换 → 验证 → 失败重试(上限 3 次)

详细步骤:

  1. 先读全文:读取目标文件,理解完整上下文
  2. 定位目标:找到需要修改的精确位置
  3. 精确替换:用 SEARCH/REPLACE 方式修改,确保只改目标位置
  4. 验证生效:重新读取修改后的内容,确认改动正确
  5. 失败重试:如果替换失败,重新读取再试,最多 3 次
  6. 超次终止:超过 3 次仍失败 → 终止并报告冲突

为什么要精确替换:

  • 防止误删其他内容
  • 减少合并冲突概率
  • 便于审计(diff 更清晰)

2. 备份归口

${BACKUP_ROOT}\<Agent名>\YYYY-MM-DD\SOUL_<HHmmss>.bak

Windows 默认路径:<你的工作区>\Backups\<Agent名>\YYYY-MM-DD\(示例:D:\Workspace\Backups\...)

备份规则:

规则说明
文件名精确到秒SOUL_143025.bak,禁止用原名覆盖
只写自己目录每个 Agent 只能写自己的目录,写错 = 事故
备份先行编辑灵魂文件前必须先备份
备份失败则停止备份不成功,不允许继续修改
保留周期备份保留 30 天,过期自动清理

<Agent名> 解析方式:

  • 优先从当前工作目录名解析
  • 其次从 IDENTITY.md 的 name 字段读取
  • 都没有则标记为 unknown

3. 环境变量配置

${BACKUP_ROOT} 语法说明:

  • ${BACKUP_ROOT} 是环境变量名
  • 变量为空时使用默认值:<你的工作区>\Backups(按环境自行配置)
  • 不要去掉 $ 和 {},否则变量解析失效
配置方式命令/方法有效期
PowerShell 永久[Environment]::SetEnvironmentVariable("BACKUP_ROOT", "路径", "User")永久
当前会话临时$env:BACKUP_ROOT = "路径"本会话
.env 文件在项目根目录创建 .env,写 BACKUP_ROOT=路径项目级

.env 文件已被 .gitignore 忽略,不会提交到仓库。


4. Git 提交规范

<type>(<scope>): <主题>

type 类型:

type用途示例
feat新功能、新文档、新技能feat(crossweb): 新增 Jina Reader 支持
fix修复错误fix(context-guard): 修正 60% 阈值计算
chore备份、归档、清理chore: 备份 SOUL.md 2026-07-17
docs文档更新docs(INDEX): 更新技能池版本到 v11.3
refactor重构(不改功能)refactor(archive): 优化模板结构

什么时候 commit:

场景操作
修改核心文件前先 commit 一个快照(chore)
完成独立任务后立即 commit
会话结束前所有产出必须 commit
切换任务前当前任务的产出必须 commit

commit 前检查清单:

  • ✅ 已确认 diff 正确
  • ✅ 没有误改其他文件
  • ✅ 提交信息符合规范
  • ✅ 敏感信息(密钥、token)已排除

中断后回溯(咳嗽规则)

基于当前上下文判断,不依赖历史记忆。

规则:

  1. 中断发生 → 停止当前操作
  2. 回读刚才写入的文件,确认内容完整
  3. 完整 → 继续;不完整 → 从备份恢复后再继续

常见中断场景:

  • 会话意外终止
  • 网络中断
  • 工具调用失败
  • 用户打断

💡 就像咳嗽时要捂住嘴,中断时要先确认手里的东西没掉地上。


并发安全(多 Agent 场景)

多个 Agent 同时操作时,避免互相踩踏:

场景做法
同一文件并发修改先读后改,发现版本变化则重新读取
同一目录并发写入不同 Agent 写不同子目录,避免交叉
Git 并发提交先 pull 再 push,冲突了就 rebase

最小执行单元

输入:

  • 目标文件路径、预期修改点、当前任务边界。

执行:

  • 先读取目标文件,确认当前内容和修改范围。
  • 对灵魂文件先创建时间戳备份,再做精确替换。
  • 修改后复读目标片段,确认变更只影响预期位置。

输出:

  • 修改了哪些文件。
  • 备份位置(如有)。
  • 验证结果和需要用户注意的风险。

完成标准:

  • 没有未验证写入。
  • 备份、修改、复读三步闭环完成。
  • 失败时停止继续写入,并说明可恢复路径。

失败处理:

  • 备份失败:停止修改。
  • 精确替换失败:重新读取后最多重试 3 次。
  • 验证不一致:从备份恢复或等待人工确认。

禁止事项

  • ❌ 未读取直接写入("我记得内容是..." 不算)
  • ❌ 编辑失败后用 Write 全文重写
  • ❌ 对 memory/ 目录直接 Write(各 Agent 写各自的日记)
  • ❌ 写错备份目录(写到别人的备份目录里)
  • ❌ commit 前不检查 diff
  • ❌ 跳过备份直接修改灵魂文件
  • ❌ 用覆盖式写入(Write)代替精确替换(Edit)

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.