Re0 Git

LilMGenius/paperthin/skills/depth/re0-git

作者 LilMGenius7d5dc6235990230e45a24a25c527d81701da5458无许可证收录于 2026年10月9日更新于 2026年10月9日

Rewrite a finished commit's message into a clean, handoff-ready form in your own log style, so `git log` alone tells the story. User-invoked: run it after a commit.

AI 生成的概览

把已有提交的信息改写为干净、可直接交接的形式,并贴合仓库自身的日志风格。

功能
该技能改写已经存在的提交信息,保持文件树逐字节不变,只改动信息(以及按位置决定的日期)。它会采样附近的提交和已记录的规则,以匹配本地日志的风格,然后套用 commit-economy 标准:每个持久变更一条要点,把辅助性改动并入其所服务的变更,去掉 diff 或版本已经能证明的内容。它重新提交时使用 gpg 签名,HEAD 使用 --date=now,较早的提交保留原始日期,并验证 diff 为空且日志本身可读。
适用场景
适用于你已经完成提交之后,当信息因反复 amend 而变得臃肿、过时或夹杂琐碎内容时。它由用户主动调用,用于清理已完成的提交或一小段尚未推送的提交范围,使 git log 本身就能讲清来龙去脉。
运行要求
需要一个包含目标提交的 git 仓库、为提交配置好的 gpg 签名,以及改写历史的权限(未经明确确认,绝不改写已推送或共享的历史)。它不附带脚本,只有说明。

Rewrite a finished commit message so the log hands off on its own — in the author's own voice, not an imposed one.

Goal

Repeated amends and momentum commits leave a message bloated, stale, or padded with trivia. re0-git rewrites the message into a clean version that lets a fresh session continue from git log alone, without reading the diff. It refines what the author already writes. Only the message moves — and timestamps, per the date rule below; the tree never changes.

It is user-invoked — run it once you've decided to commit. A commit-cleanup tool in the agent's reach would bias it toward committing when it shouldn't.

Workflow

  1. Scope the target — usually HEAD, sometimes a short unpushed range.
  2. Read the change (git show --stat, git diff) and any documented commit rules. Then sample nearby non-target messages: start with 10, stop earlier if the convention is obvious, or expand only until the convention is clear.
  3. Resolve mixed logs in this order: documented project rules, nearby commits touching the same area, then same-author commits within that convention. Do not average incompatible styles or let one author's habits override the repo.
  4. Rewrite the message to the commit-economy (below): keep only durable handoff facts, fold supporting edits into the change they serve, and cut anything the diff or tag already proves. Give trivia no bullet of its own.
  5. Re-commit signed, dates per the rule below. For the tip (HEAD): git commit --amend -S --date=now — the --date=now is what moves the author date to now; a bare --amend resets only the committer date and leaves the author date stale. For an older commit, keeping its dates: rebuild it — GIT_AUTHOR_DATE/GIT_COMMITTER_DATE git commit-tree <tree> -p <parent> -S -m "<new message>" — then replay every descendant onto the rebuilt commit (a non-tip rewrite is a rebase, not a ref move), or you orphan them.
  6. Verify and report.

Rules

  • Never create or suggest a commit — re0-git only rewrites the message of a commit that already exists. Using it is never a reason to commit.
  • Message only — the tree must stay byte-identical (git diff <old> <new> empty); never edit content in a re0-git pass.
  • commit-economy — the commit-message standard this skill enforces: one bullet per real, durable change with supporting edits folded in, nothing the diff or version already proves, no co-author tags, matched to the local log's own shape (sampled above). Where that sampling finds no settled shape, fall back to a subject line, a blank line, then one - bullet per change on a single unwrapped line — never prose paragraphs, which explain where a log should list. A step a documented checklist already mandates for any change of this shape (registering a new skill, syncing translated docs after a source edit) is proof the process ran, not a fact about this change — fold it as a trailing clause on the bullet it serves, or drop it if that bullet already implies it; it earns a bullet of its own only when something about how it was done is itself non-obvious. The same bar governs the first draft; re0-git only enforces it on a message that already drifted past it.
  • Dates by position; always gpg-signed. The commit you're finalizing — HEAD — takes both author and committer date = now, because re-cleaning the latest commit is itself continued work. Every older commit (HEAD~1 and back) keeps its original author + committer dates; never restamp the past.
  • Never rewrite pushed or shared history without explicit confirmation — it forces a force-push.

Verification

  1. git diff <old-tip> <new-tip> is empty — content unchanged.
  2. Each rewritten commit is gpg-signed (%G? = G) with dates as intended.
  3. Re-read git log alone, diff hidden — if any cut line turns out to be needed to follow the change, restore it.

来源与署名

来源:LilMGenius/paperthin位于skills/depth/re0-git提交7d5dc62

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架