done
Final checklist before declaring any task complete. Auto-invoke before saying "done", "ready", "complete", or asking to commit/push.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Final checklist before declaring any task complete. Auto-invoke before saying "done", "ready", "complete", or asking to commit/push.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Use fff MCP / Grep / Read / Glob — never Bash grep/cat/find/head/tail/sed/awk/rg/wc — for file search and read. Use jq for JSON parsing/shaping (not node -e / python -c). A hook hard-blocks the banned Bash calls, and the dedicated tools return clean, cacheable, line-numbered results. Auto-invoke when searching, reading, or counting in files.
Planning and problem-solving discipline: enter plan mode first, write plans in the plan file (not chat), structured research, validation, implementation. Auto-invoke when the user says "plan", "make a plan", or when fixing issues or implementing features.
Use before any action: five-question self-check that catches destructive ops, scope creep, fabrication, premature completion, and ignored instructions. Auto-invoke before executing commands, editing files, or answering factual questions.
Reconcile skill collections, backport from ~/.claude/skills into a marketplace plugins tree, scrubbing proprietary refs. Use when local has diverged from upstream, or when promoting local-only skills to a marketplace.
Communication and scope discipline: how to interact with the user, handle rejection, stay in scope. Always active.
Research discipline: how to investigate before acting, verify claims. Auto-invoke when researching, answering questions, or planning migrations.
| name | done |
| description | Final checklist before declaring any task complete. Auto-invoke before saying "done", "ready", "complete", or asking to commit/push. |
| user-invocable | true |
Complete every gate below, in order, before declaring done. Skipping a gate is how silent regressions ship. Show proof (exit codes, screenshots, measurements), not summaries.
ls measure a different property than content correctness, "on latest version", "bug fixed", or "data landed". Instead observe the real outcome: query the installed version vs upstream; diff actual output against expected; reproduce the user's reported symptom and watch it disappear. Done only if the check would have gone RED on the failure you were asked to prevent.lint:file chaining eslint + typecheck + dead-code) on touched files, not only the full lint./tmp/; visually confirm. Report screenshot paths (Gate 7).pnpm run test:kill-ports); otherwise free the test-server port: lsof -ti :<port>, then confirm it's the test server (ps -p <pid> -o comm=), then kill <pid> (SIGTERM), using kill -9 only if it stays bound after a short wait. Clear stale caches (e.g. rm -rf node_modules/.vite node_modules/.cache/storybook), then run the affected command 3x consecutively.mcp__svelte__svelte-autofixer for .svelte / .svelte.ts / .svelte.js; ruff/black for Python; rustfmt for Rust), run the matching one on every file you touched.console.log, dbg!, print(...), temp constants, commented-out experiments) must be gone. Grep touched files for the markers you added and confirm zero remain. Don't trust memory.agent:dev-server. Screenshots belong in /tmp/: frontend:playwright.).yml workflow file was edited, run pnpx node-actionlint <file> to exit 0.