Brings task.md, changelog.md, and files.md back in sync with what the code says shipped. Reads git history and the working tree, never memory, and refuses to log features it cannot see in source. Use when a feature or fix lands, when the user says "update the docs", "sync changelog", "update files.md", "@update", or when task.md and the code disagree.
80
100%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Three files describe a project to the next person who opens it. Keep them true.
| File | Answers |
|---|---|
task.md | What is planned, in flight, and done |
changelog.md | What changed for users, by version and date |
files.md | What each file is for |
Truth comes from the repo, not from the conversation. If the diff does not show it, it did not ship.
git rev-parse --show-toplevel, or the workspace root without git.git log --date=short -n 20, git status --short, git diff --stat, and for the current change git diff HEAD --stat or the staged diff. See references/evidence-rules.md for what counts.Sections: ## To Do, ## In Progress, ## Completed.
- [x] YYYY-MM-DD HH:mm UTC <what>. <PRD path if any>. <files touched>. Verified: <command or outcome>.task.md does not exist, create it with the three headings and the current change under Completed or In Progress based on the evidence.Keep a Changelog format. ## [Unreleased] at the top, then ## [x.y.z] - YYYY-MM-DD blocks, each with ### Added, ### Changed, ### Fixed, ### Removed as needed.
git log --date=short. The release date is the date of the commit that bumped the version, or today's UTC date if it has not been committed yet. Never a placeholder, never a future month.package.json with no matching heading, add the heading.One line per file that matters. Grouped by folder.
## convex/
- `schema.ts` tables and indexes
- `stats.ts` heartbeat mutation with 10s dedup window, page view inserts
## src/hooks/
- `usePageTracking.ts` sends heartbeats, debounced 5s, path change awarenode_modules, _generated, lockfiles, build output, and assets unless they are hand written.When the repo has a convex/ folder, the changelog and files.md can name Convex features, but only ones the source proves. references/convex-detection.md lists what file shows what.
Short version:
convex/convex.config.ts registers it. A dependency in package.json is not proof.convex/crons.ts exists and registers a job.convex/http.ts has a route.convex/auth.config.ts or an auth component is present.Prefer none over an invented value.
changelog.md and files.md are often public. Treat them that way.
.env, .env.local, or any secret store to fill in a doc. Env var names are fine to mention. Values never.[redacted] and say so in one line.task.md, changelog.md, files.md, and PRDs the user points at. Nothing else unless asked.Synced project docs.
changelog.md added 2.1.0 (2026-09-15): 3 added, 1 fixed
files.md added 2 files, updated 1 description
task.md moved 1 item to Completed, 1 still In Progress (verification pending: e2e)
Suggested commit: docs: sync changelog, files, and tasks for 2.1.082d1ce2
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.