finalize
Wrap-up checklist after completing work. Use when: (1) user says "finalize", "wrap up", "are you done?", "did you commit?", or similar, (2) before handoff/end of task, (3) to verify nothing was forgotten. Runs git status check, test/type/lint gates, critical review, and commits remaining changes.
When & Why to Use This Skill
The Finalize skill is a comprehensive automated workflow assistant designed to ensure high-quality code delivery and project integrity. It streamlines the 'Definition of Done' by executing a multi-step checklist that includes Git status verification, automated quality gates (testing, linting, and type-checking across various languages), and a rigorous critical self-review to catch security vulnerabilities or edge cases before the final commit.
Use Cases
- Feature Completion & Handoff: Automatically verify that all project-specific tests and linting rules pass before finalizing a task or handing over code for peer review.
- Pre-Commit Quality Assurance: Use as a safety net to detect uncommitted changes, unfinished TODOs, and potential breaking changes in Node.js, Python, Go, or Rust environments.
- Security and Edge Case Auditing: Perform a systematic adversarial review of new code to identify injection risks, null pointer exceptions, and boundary condition errors before deployment.
- Standardized Git Workflow: Streamline the process of staging changes and generating descriptive, high-quality commit messages that explain the 'why' behind the code.
| name | finalize |
|---|---|
| description | > |
| Wrap-up checklist after completing work. Use when | (1) user says "finalize", "wrap up", |
Finalize
Run this checklist before considering work complete.
1. Git Status Check
git status
git diff --stat
If uncommitted changes exist, proceed through remaining steps before committing.
2. Task Completion Check
- Review conversation for any unfinished TODOs or skipped items
- Check TodoWrite list - are all items marked completed?
- If anything incomplete, finish it before proceeding
3. Run Quality Gates
Run project-appropriate checks. Detect from project structure:
| Files present | Commands to run |
|---|---|
package.json |
npm test, npm run lint, npm run typecheck (or equivalents) |
pyproject.toml / setup.py |
pytest, mypy ., ruff check . (or project equivalents) |
Cargo.toml |
cargo test, cargo clippy |
go.mod |
go test ./..., go vet ./... |
Check package.json scripts or project config for actual command names. Fix any failures before proceeding.
4. Critical Self-Review
Review all changes with adversarial mindset:
- Security: injection, auth issues, exposed secrets?
- Edge cases: nil/null, empty collections, boundary conditions?
- Error handling: failures caught and handled appropriately?
- Breaking changes: backwards compatibility maintained?
- Tests: new code has test coverage?
If issues found, fix them. Re-run quality gates after fixes.
5. Commit
If all gates pass and changes look good:
git add -A
git commit -m "<descriptive message with why, not just what>"
Report final status to user.