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.
Creates atomic commits by intelligently grouping changes across domains and writing conventional messages.
/plugin marketplace add howells/arc/plugin install arc@howellsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
<progress_context>
Use Read tool: docs/progress.md (first 50 lines)
Check recent work context to inform commit message writing. </progress_context>
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".
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)"`
Review the git state above. If you need more detail:
Single commit if:
Multiple commits if changes span multiple unrelated domains:
packages/ui, packages/api)apps/web, apps/admin)Common groupings:
packages/<name>/** - Package-specific changesapps/<name>/** - App-specific changes.eslintrc, turbo.json, etc.) - Config*.stories.tsx with their component - Same commit as component*.test.ts with their source - Same commit as sourceFor each logical group:
Stage only files for that group:
git add [files...]
Create commit with conventional message format:
git commit -m "$(cat <<'EOF'
type(scope): description
EOF
)"
Commit types:
feat - New featurefix - Bug fixrefactor - Code refactoringchore - Maintenance, deps, configdocs - Documentationtest - Testsstyle - Formatting, no code changeperf - Performance improvementci - CI/CD changesCommit message rules:
If TypeScript or lint errors block the commit:
CRITICAL RULES:
--no-verify or skip hooksas unknown as, as any)@ts-ignore, @ts-expect-error, or eslint-disable commentsFixing Process:
unknown and narrow it with type guardspush argument provided)Skip this step unless $ARGUMENTS starts with "push".
If pushing:
git push
If the branch has no upstream:
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.
Tell the user:
<arc_log>
After completing this skill, append to the activity log.
See: ${CLAUDE_PLUGIN_ROOT}/references/arc-log.md
Entry: /arc:commit — [N] commits ([summary])
</arc_log>
If you cannot fix an error properly:
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools. Use when the user asks to find skills, browse skill catalogs, install a skill for Claude, or extend Claude's capabilities with reusable AI agent components.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.