finish

Runs an end-of-task review, test, changelog, and analysis gate pipeline for Flutter code changes.

548|29|Updated Feb 3, 2026
One-click install
npx skills add https://github.com/hacan359/tonkatsu_box --skill finish-hacan359
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: finish
Source: https://github.com/hacan359/tonkatsu_box/tree/main/.claude/skills/finish
Command: npx skills add https://github.com/hacan359/tonkatsu_box --skill finish-hacan359

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Finished code often ships with redundant logic, untested branches, missing localization keys, stale generated RPC layers, and undocumented changes. This Skill enforces a single end-of-task pipeline that hardens a Flutter/Dart diff before it is committed, without committing or pushing on its own. ## Core Features & Use Cases - Multi-angle code review: Reviews the diff for reuse, quality, and efficiency, then runs correctness, enum-consistency, model-purity, web-readiness, theme-awareness, and localization checks. - Test authoring and gating: Writes behavior-focused tests for new code, then runs a single gate of flutter analyze, flutter test, and dart test across the app, packages/core, and server. - Changelog and docs maintenance: Adds Keep a Changelog entries with GNU-style file lists and updates docs only when the change affects them. - Use Case: After implementing a new collection filter in a Flutter app, run the pipeline to simplify the diff, verify enum and DB-migration rules, add widget and unit tests, update CHANGELOG.md, and confirm the analyze/test gate is green before asking for a commit. ## Quick Start Ask the assistant to run the finish pipeline on the current uncommitted changes to review, test, and document them before committing.

Frequently Asked Questions about finish

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I review and test Flutter code changes before committing?

Run this end-of-task pipeline on the uncommitted diff. It reviews the code from reuse, quality, and efficiency angles, adds behavior-focused tests, updates the changelog, then runs flutter analyze and flutter test as a single gate.

What does the finish pipeline check in a Flutter diff?

It checks correctness, strict typing, SharedPreferences per-profile rules, cross-platform guards, enum single-source-of-truth, model purity, web readiness, theme awareness across dark and sakura palettes, and localization key coverage in every ARB file.

Does the finish skill commit or push changes automatically?

No. The pipeline explicitly does not commit or push. It stops after the analyze and test gate passes, reports what changed with a risk assessment, and waits for an explicit commit instruction from the user.

How are database migrations handled safely in this workflow?

New columns must be added via Migration.addColumnIfAbsent and indexes via CREATE INDEX IF NOT EXISTS, never bare ALTER TABLE statements. The version is bumped in _initDatabase and the migration registered in MigrationRegistry to avoid duplicate-column upgrade failures.

What happens when a test fails during the gate?

Newly written tests are fixed directly, while existing test failures default to treating the production code as wrong and returning to the review phase. If the same error survives two fix attempts, the pipeline stops and reports to the user.

When is the RPC layer regenerated in this pipeline?

Whenever the diff touches DAOs or models under packages/core, the RPC stubs and dispatchers are regenerated with dart run tool/generate_rpc.dart. A generated_up_to_date_test in the gate fails if the committed generated files are stale.