"So what did you actually change today?" — one numbered table answers it, every row backed by evidence, readable by an outsider.
One-line analogy: change-report is a note-taker who only watches git; changelog is a handoff secretary who hears your whole story first, then checks it against the evidence row by row. It turns real changes into a "mentor handoff table": every change gets a number, stating the old pain → the new behavior → how far it's delivered → how it was verified, plus a file mapping section saying which file belongs to which row.
It always opens with two questions (every time, no guessing)
🎯
① Scope: 本次 or 本功能?
"This conversation's changes" or "this effort's whole lifecycle". The same "record my changes" legitimately means either — so it asks.
🧬
② Granularity: final state or per iteration?
If a plan was replaced mid-way (v1 swapped for v2), it asks: does the table record only each deliverable's final state, or one row per version? If nothing was superseded, it skips the question.
What the handoff table looks like
#
Change item
Original problem
What actually changed
Delivery
Verification
1
Login error classification
Previously every kind of login failure showed the same message — users couldn't tell a wrong password from a network outage
Now wrong password, network errors and server faults each show their own message, so users know whether to retry or change the password
Not uploaded
Local tests pass
Under each row there's a "files changed" section: which file, added/modified/deleted, what it contributes to that item — no code dumps. (Delivered reports are written in formal Chinese by default, or whichever language you ask for.)
Three rules carved in stone
1. Only what really happened. Plans and "we're going to change X" from chat don't count — there must be proof: a file, a diff, a commit, a PR. If nothing provable changed, it prints exactly one line: "本次未发现已经落实的改动,不生成变更表格。" ("No implemented changes found; no table generated.")
2. Plain language (the readability gate). For every row it asks: can someone who never read this conversation retell the change in one plain sentence? "Previously …; now …" phrasing, jargon glossed on first mention, no subject-less noun stacks. Rows that fail get rewritten before delivery — the gate is never skipped.
3. Three-value delivery status, no status inflation.未上传 (local only) → 已上传 (pushed) → 已部署 (live). Verification must name its environment (local / CI / cloud / production) — a local E2E pass never proves an online deployment works.
change-report or changelog?
How to use it
/changelog
记录本次改动 — "record my changes" (→ it first asks: this conversation, or the whole effort?)
相比云端有哪些改动 — "what differs from the cloud?" (→ splits into local uncommitted / local-only / remote-only)
After delivering, it always asks two follow-ups: remove any rows (by number)? Export the table as a PNG image to share? By default it is read-only — it never writes CHANGELOG.md, never commits, never pushes.