commit
Smart commit and push with auto-splitting across domains. Creates atomic commits. Use when asked to "commit", "push changes", "save my work", or after completing implementation work. Automatically groups changes into logical commits.
Best use case
commit is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Smart commit and push with auto-splitting across domains. Creates atomic commits. Use when asked to "commit", "push changes", "save my work", or after completing implementation work. Automatically groups changes into logical commits.
Teams using commit should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/commit/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How commit Compares
| Feature / Agent | commit | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Smart commit and push with auto-splitting across domains. Creates atomic commits. Use when asked to "commit", "push changes", "save my work", or after completing implementation work. Automatically groups changes into logical commits.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
<arc_runtime> This workflow requires the full Arc bundle, not a prompts-only install. Paths in this skill use these conventions: - `agents/...`, `references/...`, `disciplines/...`, `templates/...`, `scripts/...`, `rules/...`, `skills/<name>/...` are Arc-owned files at the plugin root. Resolve the plugin root from this skill's filesystem location — it's the directory containing `agents/` and `skills/`. - `./...` is local to this skill's directory. - `.ruler/...`, `docs/...`, `src/...`, or any project-relative path refers to the user's project repository. </arc_runtime> <progress_context> **Use Read tool:** `docs/arc/progress.md` (first 50 lines) Check recent work context to inform commit message writing. </progress_context> # Commit Changes Commit and push changes, intelligently splitting into separate commits when changes span multiple domains. Usage: - `/arc:commit` - Auto-analyze and commit (may create multiple commits) - `/arc:commit push` - Commit and push $ARGUMENTS will be either empty or "push". ## Current Git State **Status:** ``` !`git status --porcelain 2>/dev/null || echo "(no changes)"` ``` **Changes summary:** ``` !`git diff --stat 2>/dev/null | head -20 || echo "(no diff)"` ``` **Recent commits (for style reference):** ``` !`git log --oneline -5 2>/dev/null || echo "(no commits)"` ``` ## Instructions ### 1. Analyze Changes Review the git state above. If you need more detail: ### 2. Determine Commit Strategy **Single commit** if: - All changes are in the same domain/area, OR - Changes are tightly coupled (e.g., feature + its tests) **Multiple commits** if changes span multiple unrelated domains: - Different packages (e.g., `packages/ui`, `packages/api`) - Different apps (e.g., `apps/web`, `apps/admin`) - Config vs source changes - Unrelated features or fixes ### 3. Group Files by Domain Common groupings: - `packages/<name>/**` - Package-specific changes - `apps/<name>/**` - App-specific changes - Root config files (`.eslintrc`, `turbo.json`, etc.) - Config - `*.stories.tsx` with their component - Same commit as component - `*.test.ts` with their source - Same commit as source ### 4. Create Commits For each logical group: 1. Stage only files for that group: ```bash git add [files...] ``` 2. Create commit with conventional message format: ```bash git commit -m "$(cat <<'EOF' type(scope): description EOF )" ``` **Commit types:** - `feat` - New feature - `fix` - Bug fix - `refactor` - Code refactoring - `chore` - Maintenance, deps, config - `docs` - Documentation - `test` - Tests - `style` - Formatting, no code change - `perf` - Performance improvement - `ci` - CI/CD changes **Commit message rules:** - Use imperative mood: "add" not "added", "fix" not "fixed" - First line under 72 characters - Each commit should be atomic (single purpose) - If you need "and" in the message, consider splitting the commit ### 5. Handle Pre-commit Hook Failures If TypeScript or lint errors block the commit: **CRITICAL RULES:** - NEVER use `--no-verify` or skip hooks - NEVER use force casting (e.g., `as unknown as`, `as any`) - NEVER use `@ts-ignore`, `@ts-expect-error`, or eslint-disable comments - NEVER use type assertions to bypass errors - NEVER add empty catch blocks or suppress errors - Fix the ROOT CAUSE of each error **Fixing Process:** 1. Read the error output carefully 2. Identify the exact files and line numbers with issues 3. For TypeScript errors: - Read the file and understand the type error - Fix the types properly by adding correct type annotations - If a type is unclear, use `unknown` and narrow it with type guards - Update interfaces/types as needed 4. For lint errors: - Read the file and understand the lint rule violation - Fix the code to comply with the rule properly - Refactor if needed to follow best practices 5. Stage the fixes with the relevant commit 6. Retry the commit 7. Repeat until all errors are resolved ### 6. Push Changes (only if `push` argument provided) **Skip this step** unless $ARGUMENTS starts with "push". If pushing: ```bash git push ``` If the branch has no upstream: ```bash git push -u origin $(git branch --show-current) ``` If push fails (e.g., diverged history), report the issue - do NOT force push unless explicitly authorized. ### 7. Report Results Tell the user: - How many commits were created - Summary of each commit (hash, message) - Push status (if pushed), or remind them to push when ready <arc_log> **After completing this skill, append to the activity log.** See: `references/arc-log.md` Entry: `/arc:commit — [N] commits ([summary])` </arc_log> ## Failure Scenarios If you cannot fix an error properly: - Explain why the error exists - Describe what the proper fix would require (e.g., architectural changes, missing types, etc.) - Ask for guidance - Do NOT commit with workarounds
Related Skills
vision
Create or review a high-level vision document capturing project goals and purpose. Use when asked to "define the vision", "what is this project", "set goals", or when starting a new project that needs clarity on purpose and direction.
using-arc
Use when starting any conversation - establishes Arc's skill routing, instruction priority, and bootstrap rules
tidy
Clean up completed plans in docs/arc/plans/. Archives or deletes finished plans. Use when asked to "clean up plans", "tidy the docs", "archive old plans", or after completing implementation to remove stale planning documents.
testing
Comprehensive testing strategy. Creates test plans covering unit, integration, and E2E. Uses specialist agents for each test type. Supports vitest and Playwright with auth testing guidance for Clerk and WorkOS.
suggest
Opinionated recommendations for what to work on next based on Linear issues, tasks, and codebase. Use when asked "what should I work on", "what's next", "suggest priorities", or when starting a session and unsure where to begin.
seo
Deep SEO audit for web projects. Analyzes codebase for crawlability, indexability, on-page SEO, structured data, social previews, and technical foundations. Optionally runs Lighthouse and PageSpeed against a live URL. Reports findings with severity, offers direct fixes or /arc:detail plans. Use when asked to "audit SEO", "check SEO", "review SEO", or "is my site SEO-ready".
responsive
Audit and fix responsive/mobile issues across every page of a project, using browser screenshots at two breakpoints (375px mobile, 1440px desktop). Design-aware: reads existing design docs to preserve aesthetic intent, not just "make it fit." Use when asked to "make it responsive", "fix mobile", "responsive audit", or after building a desktop-first UI that needs mobile adaptation.
refactor
Discover architectural friction and propose structural refactors with competing interface designs. Focuses on deepening shallow modules, consolidating coupled code, and improving testability. Use when asked to "improve the architecture", "find refactoring opportunities", "deepen modules", "consolidate coupling", "make this more testable", or "find architectural friction".
prune-agents
Kill orphaned Claude subagent processes that didn't exit cleanly. Use when asked to "prune agents", "clean up agents", "kill orphaned processes", or when subagents accumulate from Task tool usage.
progress
Internal skill for progress journal management. Other skills append to docs/arc/progress.md for cross-session context. Not invoked directly by users.
naming
Generate and validate project names. Reads codebase context, produces candidates using tech naming strategies, and checks domain + GitHub availability. Use when naming a new project, renaming, or validating an existing name.
letsgo
Production readiness checklist covering domains, SEO, security, and deployment. Use when asked to "ship it", "deploy to production", "go live", "launch", or when preparing a project for production deployment.