원클릭으로
diff-explain-self-review
Force a post-edit walkthrough of every file changed, line by line.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Force a post-edit walkthrough of every file changed, line by line.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Diagnose and fix the dual-channel memory problem in Hermes Agent — when `memory.provider: holographic` (or any external provider) is configured but the agent keeps writing only to `memories/MEMORY.md`, bypassing it. Covers why agents default to the markdown file, the four root causes of routing failure, and three remediation options (SOUL.md rules / disable MEMORY.md / mirror via code). Triggers on 'memory 不生效', 'holographic 没在用', 'agent 都写到 MEMORY.md', '双 memory 系统', 'memory tool vs fact_store', 'on_memory_write', 'memory drift', 'Mirrors 不到', or any 'why is my agent ignoring the configured memory provider' question.
Use when the user works inside ~/Projects/Config/Guix-configs and mentions '改 dotfiles', 'blue home', 'guix system reconfigure', 'shepherd service', 'stow 死链', 'blue stow', 'AGENTS.md 翻新', 'fcitx', 'IME 没输入法', 'Electron 没输入法', 'wireplumber', '二轨 dotfiles', '恢复被删除的 dotfiles', or related. Ten sub-protocols — dotfiles deploy verification, worker delegation, multi-line edit safety, Guix service debugging, GNU Stow mutable config, restoring deleted dotfiles, ISO 移植, 需求澄清, 模块归属陷阱.
跨 agent KB 健康度维护。**触发信号**:每周/长会话后例行维护 / 卡片 >50 张 / 检索质量明显下降 / 用户触发 `/agenote-curate` / 发现重复卡片或矛盾结论 / 新增了对话抽取源。**当上述任一信号出现时立即调用本 skill** 做健康检查+去重+归档+权重重分配+reconcile 多源 memory。基础用法见 `agenote-base`;会话中单次经验记录见 `agenote-review`。
Maintain the personal Guix channel at ~/Projects/Config/jeans (Just Enough AI-geNerated Slops). Use when the user asks to "fix the CI build failure issue", "升级 X 包", "add a package", "check upstream updates", "跑 maak upgrade", "修复 auto-update 流水线的 issue
How to author a Hermes Agent skill the right way. Covers the two non-negotiable structural principles every skill must follow — **self-contained** (all runnable artifacts ship inside the skill directory so backup = usable) and **progressive disclosure** (SKILL.md is a thin router; details live under `references/`, `templates/`, `scripts/`) — the directory layout, file-type rules, decision trees for what goes in SKILL.md vs. a support file, **which of the 12 existing categories a new skill belongs to (never top-level `<skill-name>/`)**, and a checklist before declaring a skill done. Trigger when: writing a new skill, refactoring an existing skill's structure, wondering 'should this go in SKILL.md or references()' / 'which category directory should this skill live into', preparing a skill for backup/share, noticing a self-contained violation, or auditing existing skills. Also trigger when the user complains something is 'too verbose' or 'in the wrong place' — those are progressive-disclosure violations.
When the user says '校对文档 / 检查文档是否还有效 / sync doc with code / 扩写 README / 改写文档 / 把这个 PLAN/plan/任务书做成文档 / 文档并入主文档', or when a `refs/*.md` document may be drifting from the tool/CLI/源码 it describes, or when a PLAN file needs to become a user-facing reference doc. Covers three entry points — check, rewrite, plan-to-doc — backed by a `scripts/doc-check.py` checker that catches silent drift between a doc and its source-of-truth (CLI flags, MCP tool names, file paths). Trigger when the user names a doc path and asks whether it's still accurate, when adding a new CLI/MCP/API surface that old docs don't mention, or when a PLAN/任务书/thread needs to graduate into a stable reference.
| name | diff-explain-self-review |
| description | Force a post-edit walkthrough of every file changed, line by line. |
| version | 0.1.0 |
| author | Hermes |
| metadata | {"hermes":{"tags":["codex","code-review","diff-walkthrough","self-review","scope-creep"],"related_skills":["code-reviewer","skill-authoring"]}} |
A Codex pattern (originated by Tideflow / OpenAI): after the model finishes editing, it must walk through every changed file and justify each diff block in its own words before considering the task done.
The point isn't to add a summary the user asked for. It is to catch the thing strong models do best: silently widening scope — refactors, renames, "harmless" abstractions, boundary tweaks that all look reasonable but weren't asked for.
git diff, git diff --cached, or a saved patch file). The skill
reads the diff verbatim — fabricating a diff defeats the entire purpose.terminal tool. Prefer one of:
git diff for unstaged changes.git diff --cached for staged changes.git diff HEAD~1 for the last commit (after committing).git diff <base>...HEAD for a branch comparison.git diff --stat to expose silent drift."Walk me through every file you changed in this turn, one by one: why this block, what problem it solves, what you changed outside the original task, and which lines are highest-risk for me to review?"
file:line.git diff --stat.After completing any non-trivial code change, run this exact sequence before reporting success to the user. Do not skip steps — the walkthrough is the deliverable, not the diff itself.
Snapshot the diff. Invoke through the terminal tool:
git diff --stat # file-level summary (cheap drift check)
git diff # or: --cached, HEAD~1, <base>...HEAD
Save the full diff to a file (/tmp/diff-<task>.patch) if it is more
than a screen tall — re-pasting raw diffs into the prompt eats context
budget that should go to the review.
Issue the Six Questions (use this prompt, verbatim or paraphrased, in the same turn as the change — not the next session):
Please walk through the diff you just produced, file by file. For each
changed file, answer:
1. Why this file? — what part of the original task requires touching it?
2. What is the *minimal* change that satisfies that requirement?
3. Did you change anything *outside* the task? (renames, formatting,
"while I'm here" cleanups, speculative refactors, abstracting a
helper that didn't need it) — list each, justify why, and admit
which are pure taste.
4. For each affected block, classify it: required / taste / risky.
5. Which 3-5 lines should the user read FIRST to catch the highest-
risk semantics? (auth boundaries, error paths, async cancellations,
schema migrations, public-API signatures, lock acquisition order.)
6. Anything you considered and *didn't* change, but now worry you should
have — open questions you want flagged.
Anchored Reading. Verify the model's answer:
path/to/file.py:42,
not "the config file").Drift check. Compare what the model says it touched against what was actually touched:
git diff --name-only # actual files changed
Any file in --name-only that the walkthrough did not mention is
a silent scope expansion. Stop and ask the user before continuing.
Decide per line / per hunk. Apply one of four actions:
Strong models default to "Keep" almost always. Push back: taste reverts are nearly always cheaper than reading what they wrote.
Surface the result. Tell the user which lines they should read first, in the order the model recommended (highest-risk first). Don't re-paste the diff — the user has it. Don't recap what changed in prose — the model already did, and the user wants the call-to-action ("review lines X-Y first").
git diff (or equivalent). If no VCS,
the skill doesn't apply — do the equivalent manually.file.py:42 and that
line isn't in the diff, it's hallucinating an answer to look thorough.
Always cross-check with git diff or read_file.Run this after every non-trivial edit, before telling the user "done":
git diff --stat | tail -n +2 | wc -l # how many files actually changed
Then check, by hand or with a short script: every file in that count must appear in the model's walkthrough answer by exact path. If any file is missing, the walkthrough failed — re-run with the Six Questions, do not declare done.
Ad-hoc verify scope, not a test suite: this is a self-review protocol the agent runs in-process; the bar is "the user can trust the walkthrough caught silent scope expansion", not "CI is green."