> finalize-and-commit
Finalize code changes for production readiness by removing duplicate logic, auditing hardcoded values, verifying build integrity, and structuring clean commits with Conventional Commits format.
curl "https://skillshub.wtf/comsky/remy-skill-recipes/finalize-and-commit?format=md"Skill: Finalize Changes and Commit (Cleanup, Deduplication, Hardcoded Audit)
Type: Execution
Purpose
Finalize current changes for production readiness.
Tasks:
- Remove duplicate logic
- Eliminate unnecessary code
- Audit and resolve hardcoded values
- Ensure consistency and build integrity
- Prepare structured commits
When to Use
- Before committing finalized work to a shared branch
- Before submitting a pull request for review
- After completing a refactoring session that touched multiple files
- When preparing a clean commit history from messy working changes
When NOT to Use
- Work-in-progress code that is still actively being developed
- Trivial single-line fixes (typo, formatting) that need no audit
- Initial prototyping or exploratory coding phases
- Changes already reviewed and approved through another skill
Inputs Required
Do not run this skill without:
- Working tree with uncommitted or staged changes
- Access to project build, lint, and test commands
- Knowledge of project commit conventions (if any)
Optional but recommended:
- Target branch context (e.g., main, release)
- List of intended change scope (files or modules)
Output Format
- Issues Found
- Actions Taken
- Verification Results
- Commit Plan
- Final Commit Messages
Procedure
Gate 0 – Working Set Validation
CRITICAL: The working tree may contain changes from other agent sessions or manual edits. This gate must isolate only the current session's changes without disturbing anything else.
Step 0-1: Identify current session scope
- Review the conversation history and edit history of this session.
- Build an explicit list of files that were created, modified, or deleted by this session.
- If the user provided a scope list (files or modules), use that as the authoritative source.
Step 0-2: Inspect full working tree state
- Run
git statusandgit diff --name-onlyto enumerate all uncommitted changes in the working tree.
Step 0-3: Classify changes
- In-scope: Files that appear in both the session scope (Step 0-1) and the working tree (Step 0-2).
- Out-of-scope: Files that appear in the working tree but were NOT modified by this session. These may belong to other agent sessions, manual edits, or background tooling.
Step 0-4: Protect out-of-scope changes
- NEVER revert, restore, checkout, stash, or discard out-of-scope changes.
- Out-of-scope files must be left exactly as they are in the working tree.
- The only correct action is to exclude them from staging (
git add).
Step 0-5: Confirm with the user
- Present a summary to the user:
- Files to be committed (in-scope)
- Files left untouched (out-of-scope), if any
- Proceed only after the user confirms the commit target set.
- Validate that new/deleted in-scope files do not break entrypoints.
Gate 1 – Duplicate & Dead Code Detection
SCOPING RULE: Focus analysis on in-scope files only (from Gate 0). When checking for duplicates, search for similar patterns in the immediate module/directory first, then expand to adjacent modules only if duplication signals are found.
- Identify repeated logic blocks
- If repeated ≥ 3 times → extract helper
- Avoid over-abstraction
- Remove:
- Unused variables
- Dead branches
- Debug prints
- Stale TODOs without references
Gate 2 – Hardcoded Value Audit
SCOPE ADJUSTMENT: If all in-scope changes are limited to test files, documentation, or type definitions, perform a quick scan (search for numeric literals and string constants in the diff) instead of a full classification audit. The full audit is required when production logic files are in scope.
Classify hardcoded values into:
A) Algorithmic constants → Extract to named constant + documentation
B) Operational policies → Move to config/env + default fallback
C) Test-only values → Restrict to test scope
Ensure:
- No hidden policy decisions remain hardcoded
- Retry limits, timeouts, thresholds are explicit
Gate 3 – Consistency & Quality Review
Verify:
- Error handling patterns consistent
- Logging structure aligned with project conventions
- No PII/secrets exposed
- Public interface compatibility preserved
- No accidental performance regression
Gate 4 – Verification Proof
Run relevant project checks:
- Tests
- Lint
- Typecheck
- Build
If failures occur:
- Fix root cause
- Do not silence or bypass checks
Gate 5 – Commit Structuring
Staging rule: Stage only in-scope files confirmed in Gate 0.
Use git add <specific-file> for each file individually.
Never use git add ., git add -A, or git add --all.
Separate commits logically:
- Refactor (no behavior change)
- Functional change
- Tests / documentation
Use Conventional Commits:
- fix(scope):
- feat(scope):
- refactor(scope):
- test(scope):
- docs(scope):
- chore(scope):
Each commit must explain:
- What changed
- Why it changed
- Risk considerations (if any)
- Test proof
Guardrails
- Do not silence or bypass failing checks.
- Do not combine unrelated changes in a single commit.
- Do not over-abstract when extracting helpers (repeated ≥ 3 times threshold).
- Explicitly state assumptions when classifying hardcoded values.
- If context is insufficient to determine intent, ask for clarification.
- Do not remove code without verifying it is truly unused.
- Respect existing project conventions for commit messages and structure.
- NEVER use
git checkout -- <file>,git restore,git stash,git reset --hard, or any other command that discards or reverts uncommitted changes to files outside the current session's scope. Other sessions or agents may own those changes. - NEVER use
git add .,git add -A, orgit add --all. Always stage files individually withgit add <specific-file>to avoid accidentally including out-of-scope changes. - Working tree changes from other sessions, agents, or manual edits must be left completely untouched.
Failure Patterns
Common bad outputs:
- Lumping all changes into a single large commit without logical separation
- Skipping build/lint/test verification before committing
- Ignoring hardcoded values because they "look fine"
- Over-extracting helpers for code repeated only once or twice
- Removing code that appears dead but is used via reflection or dynamic imports
- Producing commit messages that describe "what" but not "why"
- Reverting or discarding uncommitted changes that belong to other sessions or agents
- Using
git add .orgit add -Awhich accidentally stages out-of-scope changes - Treating "ensure no unintended changes" as "revert unrelated files" instead of "exclude from staging"
Example 1 (Minimal Context)
Input:
3 files changed: a utility function was refactored, an unused import was found, and a debug console.log was left in.
Output:
- Issues Found: unused import in
utils/parse.ts, debug log inapi/handler.ts - Actions Taken: removed unused import, removed debug log
- Verification Results: lint pass, tests pass, build pass
- Commit Plan: single refactor commit (scope is small)
- Final Commit Messages:
refactor(utils): clean up unused import and debug log
Example 2 (Realistic Scenario)
Input:
12 files changed across 3 modules. Includes a retry timeout hardcoded as 3000, duplicated validation logic in 4 handlers, and a new API endpoint.
Output:
- Issues Found: hardcoded retry timeout (3000ms) in
services/retry.ts, duplicated input validation in 4 route handlers, unused helperformatLegacyinutils/format.ts - Actions Taken: extracted retry timeout to config (
RETRY_TIMEOUT_MS), created sharedvalidateInput()helper, removedformatLegacy - Verification Results: all tests pass, lint pass, typecheck pass, build pass
- Commit Plan: 3 commits — (a) refactor: extract shared validation, (b) refactor: move retry timeout to config, (c) feat: add new API endpoint
- Final Commit Messages:
refactor(validation): extract shared validateInput helper from route handlersrefactor(retry): move hardcoded timeout to config as RETRY_TIMEOUT_MSfeat(api): add POST /items endpoint with input validation
Notes
FAST MODE (only if explicitly requested):
- Skip deep hardcoded classification
- Allow single commit only if scope is small
> related_skills --same-repo
> ux-sentinel
Continuously detect recurring UI/UX concepts during frontend discussions, track conversation-wide recurrence, and register repeated concepts as structured knowledge assets in a Notion database via MCP.
> oss-code-analysis
Explore open-source GitHub repository source trees via web browsing to analyze and compare feature implementations at the code level. Supports two modes: cross-project comparison and single-project deep dive. Use when evaluating how OSS projects implement a specific feature, choosing architecture patterns, or benchmarking implementation strategies.
> docs-finalize-and-commit
Finalize documentation changes for production readiness by discovering existing conventions, verifying code-doc alignment, reviewing format/terminology/tone consistency, and structuring clean commits. Counterpart of finalize-and-commit for documentation projects.
> competitive-feature-benchmark
Research and compare how competing products implement a similar feature at the UX and interaction level. Provides structured comparison tables and strategic differentiation recommendations.