Hermes 高频 Skills 防护整改计划:分步执行提示词

适用计划:/home/lin/.hermes/projects/hermes-skill-audit/docs/2026-05-14-remediation-plan.md

目标:把整改计划拆成可复制、可审计、可逐步执行的提示词。

使用方式:每次只复制一个阶段的提示词给 Agent;等该阶段完成并验证后,再进入下一阶段。

使用原则

  1. 一次只执行一个阶段:不要把多个阶段合并给 Agent,避免越界修改。
  2. 先本地原型,再 active-layer promotion:任何写入 /home/lin/.hermes/skills/**、memory、runtime、cron 的动作,都必须先经过 Phase 0.5。
  3. 没有证据不算完成:每一步都必须输出路径、命令、exit code、文件大小、校验结果。
  4. 默认不写 memory、不改 active skill、不 commit:除非提示词里明确授权。
  5. 遇到不确定边界先停止:不要让 Agent 自行扩大范围。

Prompt 0:启动前目标复述与边界确认

用途:开始执行前,让 Agent 重新确认项目目标、非目标和当前阶段边界。

请读取并复述本次整改项目目标:
/home/lin/.hermes/projects/hermes-skill-audit/docs/2026-05-14-remediation-plan.md

要求:
- 只读,不修改任何文件。
- 用中文输出。
- 说明本项目要解决的真实事故路径是什么。
- 说明本项目的直接目标、工程目标、治理目标、安全目标和非目标。
- 明确当前尚未授权修改 active skills / wrapper / cron / runtime / memory / Hermes core。
- 最后给出你建议先执行的最小阶段集合。

不要执行计划,只做目标澄清。

验收标准:


Prompt 1:Phase 0 基线检查

用途:确认计划和审查文档存在,建立执行前基线。

请执行 Phase 0:冻结与基线记录。

计划文件:
/home/lin/.hermes/projects/hermes-skill-audit/docs/2026-05-14-remediation-plan.md

审查结论文档:
/home/lin/.hermes/projects/hermes-skill-audit/docs/2026-05-14-top10-skills-guardrail-audit.md

要求:
- 只读检查,不修改 active skills / wrapper / cron / runtime / memory / Hermes core。
- 验证两个文档存在且非空。
- 输出每个文件的路径、行数、字节数、sha256。
- 检查当前项目是否为 git repo;如果不是,只说明事实,不初始化 git。
- 输出“当前状态:尚未执行整改,尚未修改 active skills”。

完成条件:
- 两个文档均存在且非空。
- 输出完整证据。

验收标准:


Prompt 2:Phase 0.5-spec 建立 evidence / promotion 模板

用途:先建立 active-layer promotion 的审计模板,不实际修改 active layer。

请执行 Phase 0.5-spec:建立 active-layer promotion preflight 模板。

范围:
- 只在项目目录内创建模板和说明:
  /home/lin/.hermes/projects/hermes-skill-audit/
- 不修改 /home/lin/.hermes/skills/**。
- 不写 memory。
- 不修改 wrapper / cron / runtime / Hermes core。

请创建一个 project-local 模板目录:
/home/lin/.hermes/projects/hermes-skill-audit/templates/promotion-evidence/

模板至少包含:
1. decision-record.md
2. before-checksums.txt.example
3. after-checksums.txt.example
4. restore.sh.example
5. restore-dry-run.txt.example
6. restore-verify-command.txt.example
7. README.md

模板内容必须说明:
- 何时需要使用 Phase 0.5。
- 如何记录用户授权来源。
- 如何记录允许修改和禁止修改的文件。
- 如何生成 before-files/ 或 before-active-layer.tar.gz。
- 如何恢复。
- memory 写入的撤销/替换要求。

验证:
- 列出模板文件。
- 输出每个模板文件大小。
- 说明本步骤没有修改 active layer。

验收标准:


Prompt 3:Phase 1-local 发布脚本原型设计

用途:先在 project-local 目录设计分享教程发布 gate,不提升到 active skill。

请执行 Phase 1-local 的第一步:设计 project-local 分享教程发布脚本原型。

计划文件:
/home/lin/.hermes/projects/hermes-skill-audit/docs/2026-05-14-remediation-plan.md

工作目录:
/home/lin/.hermes/projects/hermes-skill-audit/prototypes/article-tutorial-publish/

要求:
- 只在上述 prototypes 目录内创建文件。
- 不修改 /home/lin/.hermes/skills/**。
- 不发布到 jedi,除非后续单独授权真实样例测试。
- 不写 memory。

请实现或准备以下内容:
1. publish_article_tutorial.py 原型脚本。
2. fixtures/ 目录:
   - tutorial-valid.md
   - tutorial-empty.md
   - 教程-中文文件名.md
   - not-markdown.txt
3. fake-bin/ 目录:
   - fake-ssh
   - fake-scp
4. README.md:说明脚本输入、输出 JSON、失败 JSON、测试方法。

脚本要求:
- 输入 Markdown。
- 生成 sibling HTML。
- 验证 doctype/title/TOC/copy-code。
- 默认不覆盖已有 sibling HTML。
- 支持 --ssh-bin / --scp-bin。
- SSH 参数必须包含 BatchMode、ConnectTimeout、StrictHostKeyChecking、UserKnownHostsFile。
- stdout 输出严格 JSON。
- stderr 输出诊断。
- exit code 作为成功/失败判据。

验证:
- 运行本地 fixture 测试,不连接真实 jedi。
- 输出每个测试的命令、exit code、JSON 摘要。

验收标准:


Prompt 4:Phase 1-local 运行 fixture 测试

用途:专门运行发布脚本的本地测试,避免实现和验证混在一起。

请执行 Phase 1-local 的 fixture 验证。

工作目录:
/home/lin/.hermes/projects/hermes-skill-audit/prototypes/article-tutorial-publish/

要求:
- 只读运行和生成测试输出;如需写测试结果,只写入该 prototypes 目录下的 evidence/。
- 不连接真实 jedi。
- 不修改 active skills / memory / runtime。

请运行并记录以下测试:
1. tutorial-valid.md:应成功生成 HTML。
2. tutorial-empty.md:应失败,stdout 为 status=error。
3. 教程-中文文件名.md:应成功。
4. not-markdown.txt:应失败。
5. path traversal 输入:应失败。
6. sibling HTML 已存在:默认应失败。
7. fake ssh/scp:验证 SSH/SCP 参数包含:
   - BatchMode=yes
   - ConnectTimeout=10
   - StrictHostKeyChecking=yes
   - UserKnownHostsFile=<explicit-known-hosts>
8. host key 缺失模拟:应失败且不等待交互。

输出:
- 每个测试的命令。
- exit code。
- stdout JSON。
- stderr 摘要。
- evidence 路径。

完成条件:
- 所有预期成功/失败均符合预期。
- 失败场景也输出可解析 JSON。

验收标准:


Prompt 5:Phase 1-local 真实 jedi 发布 smoke

用途:在本地原型通过后,做一次真实远程发布 smoke。此步骤有远程副作用,需单独确认。

请执行 Phase 1-local 的真实 jedi 发布 smoke。

授权范围:
- 允许使用 project-local 原型脚本发布一个测试 Markdown + HTML 到:
  jedi:/home/lin/download/documents/tutorials
- 只发布带有 smoke/test 前缀的测试文件。
- 不修改 active skills。
- 不写 memory。
- 不修改 runtime / cron / wrapper。

工作目录:
/home/lin/.hermes/projects/hermes-skill-audit/prototypes/article-tutorial-publish/

要求:
1. 使用一个测试 Markdown 文件,文件名包含 smoke 和时间戳。
2. 调用原型 publish_article_tutorial.py。
3. 使用真实 ssh/scp 连接 jedi。
4. stdout 必须为严格 JSON。
5. 远程验证:Markdown 和 HTML 存在且 size > 0。
6. 检查 HTML 包含 doctype、title、TOC、copy-code。
7. 输出本地路径、远程路径、文件大小、exit code。
8. 不删除远程 smoke 文件,除非我明确要求。

停止条件:
- jedi SSH 不可达。
- host key 策略无法非交互验证。
- JSON 不可解析。
- 远程验证失败。

验收标准:


Prompt 6:Phase 2-local memory proposal 机制

用途:设计 memory 写入前的 routing proposal,只验证,不写入 memory。

请执行 Phase 2-local:memory proposal / routing 机制设计与验证。

范围:
- 只在项目目录下写入 proposal 设计文档和测试样例:
  /home/lin/.hermes/projects/hermes-skill-audit/prototypes/memory-routing/
- 不调用 memory 工具。
- 不 patch skill。
- 不修改 wiki / runtime / cron / active skills。

请创建:
1. memory-proposal-schema.md
2. fixtures.jsonl
3. expected-results.jsonl
4. README.md

proposal schema 必须包含:
- candidate
- target: memory|user|skill|wiki|project|todo|none
- ttl_class: stable|workflow|temporary
- rationale
- rejected_layers
- action: propose_memory|propose_skill_patch|propose_wiki_write|propose_project_doc|do_not_persist
- side_effect: none|memory_write|skill_patch|wiki_write|project_doc_write
- requires_user_confirmation: true|false

必须包含本次事故回归样例:
输入:“分享教程默认发布到 jedi 目录”。
期望:
- 不直接写 memory。
- 发布流程进入 skill proposal。
- 若保留偏好,也只是候选,需要用户确认。
- requires_user_confirmation=true。

验证:
- 输出 fixtures 和 expected results。
- 说明没有调用 memory 工具。

验收标准:


Prompt 7:Phase 5 P0-C 默认 commit 授权门最小补丁计划

用途:在真正 patch active skills 前,先写最小补丁计划和 fixture,不直接修改。

请为 Phase 5:P0-C 默认 commit 授权门写最小补丁计划。

涉及 skills:
- requesting-code-review
- writing-plans
- subagent-driven-development

要求:
- 只写项目内计划和 fixtures,不修改 active skill。
- 输出建议 patch 点,但不要执行 patch。
- 不 commit。
- 不写 memory。

请创建目录:
/home/lin/.hermes/projects/hermes-skill-audit/prototypes/commit-authorization-gate/

请写入:
1. patch-plan.md
2. fixtures/review-only.md
3. fixtures/write-plan-only.md
4. fixtures/execute-and-commit.md
5. expected-results.md

规则目标:
- “帮我 review”不得出现 commit 命令。
- “写个 plan”不得出现 commit 命令。
- “执行并提交”必须先识别明确授权,再允许 commit。
- 用户说“继续/好的/是”不算 commit 授权。

输出:
- 每个 skill 的最小 patch 建议。
- 每个 fixture 的预期行为。
- 哪些语句算明确授权,哪些不算。
- 后续如要 patch active skill,必须先走 Phase 0.5。

验收标准:


Prompt 8:Phase 1 + Phase 3a 合并 promotion 执行提示词

用途:当本地原型全部通过后,一次性提升事故相关 active skill 变更。此步骤会修改 active skills,必须单独确认。

请执行 Phase 1 + Phase 3a 合并 promotion。

前置条件:
- Phase 1-local fixture 全部通过。
- Phase 1-local 真实 jedi smoke 通过。
- Phase 2-local memory routing 验证通过。
- Phase 0.5 evidence 模板已准备好。

授权范围:
只允许修改以下 active skill 相关文件:
1. /home/lin/.hermes/skills/productivity/article-and-content-summarization/scripts/publish_article_tutorial.py
2. /home/lin/.hermes/skills/productivity/article-and-content-summarization/SKILL.md
3. /home/lin/.hermes/skills/productivity/article-and-content-summarization/references/article-output-modes.md
4. /home/lin/.hermes/skills/hermes/hermes-knowledge-and-workflow-governance/SKILL.md
5. 必要时新增一个 governance reference 文件,但必须先说明路径。

禁止:
- 修改 Hermes core。
- 修改 cron/runtime/gateway/wrapper。
- 写 memory。
- commit。
- 修改不在授权列表中的 skill。

执行要求:
1. 创建 evidence bundle。
2. 生成 before snapshot 和 before-files/tarball。
3. 写 decision-record.md。
4. 写 restore.sh、restore-dry-run.txt、restore-verify-command.txt。
5. 提升 publish_article_tutorial.py。
6. patch article skill:要求“可分享教程”必须调用脚本 gate。
7. patch governance skill:加入 memory proposal / routing preflight。
8. 在 SKILL.md 前 80 行内加入或链接 Non-negotiable gates。
9. 运行验证:
   - skill_view 读回。
   - publish script help。
   - 使用真实样例或 smoke 验证脚本。
   - memory routing 事故样例不写 memory。
10. 记录 after-checksums。

完成输出:
- 修改文件列表。
- evidence bundle 路径。
- before/after checksum 路径。
- restore.sh 路径。
- 验证命令和 exit code。

验收标准:


Prompt 9:Phase 4 continue / next step 状态机规则计划

用途:先为 “继续/下一步” 弱指令写规则计划,不直接修改。

请为 Phase 4:continue / next step 状态机规则写项目内计划。

涉及 skills:
- market-watch-automation
- writing-plans
- subagent-driven-development
- hermes-project-and-extension-management

要求:
- 只写计划和 fixtures,不修改 active skills。
- 不写 memory。
- 不 commit。

请创建:
/home/lin/.hermes/projects/hermes-skill-audit/prototypes/continue-state-machine/

内容包括:
1. state-machine-rules.md
2. fixtures/continue.md
3. fixtures/continue-phase-2.md
4. fixtures/continue-commit.md
5. expected-results.md

规则目标:
- 用户只说“继续”时,默认只读状态检查。
- 如果下一步包含写文件、发布、commit、runtime/data 修改,必须说明副作用并等待明确授权。
- 上下文压缩后 phase 不确定时,不推进副作用动作。
- “好的/是/继续”不算高风险授权。

输出:
- 建议规则文本。
- 每个 skill 的适配注意事项。
- 后续 active patch 必须走 Phase 0.5。

验收标准:


Prompt 10:Phase 6 长 skill 瘦身试点计划

用途:最后阶段才使用,先选低风险 skill 做试点。

请为 Phase 6:P3 高频长 skill 瘦身试点写计划。

要求:
- 只写计划,不修改 active skill。
- 首个试点优先选择低风险 skill 或只读类片段。
- 不选择 runtime/data/commit 相关 skill 作为首个试点。
- 不把安全硬规则只放到 references。

请输出:
1. 推荐首个试点 skill,并说明为什么低风险。
2. 当前主 SKILL.md 中必须保留的硬规则类型。
3. 可迁移到 references 的内容类型。
4. 验证方式:
   - 关键约束仍在前 80 行。
   - references 可读取。
   - 真实任务不丢关键约束。
5. 停止条件:
   - 安全边界不可见。
   - 触发路径不清。
   - 执行时不会主动加载 reference。

不要执行瘦身,只写计划。

验收标准:


推荐实际执行节奏

第一轮只执行:

  1. Prompt 0:目标复述
  2. Prompt 1:Phase 0 基线检查
  3. Prompt 2:Phase 0.5-spec 模板
  4. Prompt 3:Phase 1-local 原型设计
  5. Prompt 4:Phase 1-local fixture 测试
  6. Prompt 6:Phase 2-local memory proposal

暂缓:

原因:先证明本地 gate、evidence 和 proposal 可行,再决定是否进入 active-layer 修改。

最终判断

这组提示词的核心目的不是让 Agent “更认真”,而是把每一步都约束成:

明确输入 → 明确边界 → 明确产物 → 明确验证 → 明确停止条件 → 明确回滚

只有这样,才能降低 AI 在长会话、弱指令、默认行为和副作用任务中的不确定性。