--- description: Smart Git commit with automatic lint fixing and CI validation argument-hint: [message] --- Create a Git commit with the following workflow: 1. Run `git status` to see all files (tracked, untracked, modified) 2. **Classify all files** into three categories: - **Project files**: Source code, tests, configs, documentation that belong in repo - **Git-ignored**: Files already matching .gitignore (node_modules, __pycache__, .env, etc.) - **Temporary/scratch**: Random scripts, debug files, test outputs, Claude-generated utilities 3. **Handle temporary files**: - Create /tmp directory if it doesn't exist - Move all temporary/scratch files to /tmp - Create/update /tmp/README.md documenting: - What each file is - Whether it should be kept temporarily or can be deleted - When it was created - Only update .gitignore if a NEW pattern needs to be added (very rare) 4. **Stage project files only** (never use `git add -A`) - Explicitly stage each legitimate project file - Ask for confirmation if unsure about any file 5. Run linters and fix issues (pnpm biome check --write, uv run ruff check --fix, uv run ruff format) 6. Run type checking (pnpm tsc --noEmit for TypeScript, uv run ty check for Python) 7. If lint/type fixes were applied, stage those changes 8. Create a commit with the provided message (or generate one if not provided) IMPORTANT: Always maintain a clean working state. Move scratch work to /tmp. Never commit temporary files. Do NOT run tests as part of commit flow.