/commit
Creates commits with Conventional Commits format (feat/fix/docs/refactor/test/chore), automatic scope detection, co-author attribution, and pre-commit hook compliance. Validates staged changes, generates descriptive messages focusing on the 'why', and prevents secrets or
$ npx -y skills add yonatangross/orchestkit --skill commit --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/commit
Context preview
The summary Claude sees to decide when to auto-load this skill.
Creates commits with Conventional Commits format (feat/fix/docs/refactor/test/chore), automatic scope detection, co-author attribution, and pre-commit hook compliance. Validates staged changes, generates descriptive messages focusing on the 'why', and prevents secrets or
SKILL.md
commit.SKILL.mdname: commit
license: MIT
compatibility: "Claude Code 2.1.220+."
description: "Creates commits with Conventional Commits format (feat/fix/docs/refactor/test/chore), automatic scope detection, co-author attribution, and pre-commit hook compliance. Validates staged changes, generates descriptive messages focusing on the 'why', and prevents secrets or generated-only files from being committed. Requires an explicit request naming this skill; plain `git commit` during normal work stays a bare CLI call. Use when committing changes or generating commit messages."
argument-hint: "[message]"
context: inherit
version: 1.2.0
author: OrchestKit
tags: [git, commit, version-control, conventional-commits]
user-invocable: true
disable-model-invocation: false
allowed-tools: [Bash, Read, Write, AskUserQuestion]
skills: [chain-patterns]
complexity: low
persuasion-type: discipline
effort: low
hooks:
PreToolUse:
- matcher: "Bash"
command: "${CLAUDE_PLUGIN_ROOT}/hooks/bin/run-hook.mjs skill/commit-convention-loader"
once: true
- matcher: "Bash(git *)"
command: "${CLAUDE_PLUGIN_ROOT}/hooks/bin/run-hook.mjs pretool/bash/git-validator"
metadata:
category: workflow-automation
triggers:
keywords: [commit, comit, "commit message", "stage and commit", "save progress", "save my progress", "wrap it up", "conventional commit"]
examples:
- "commit my changes"
- "create a conventional commit for these files"
- "stage and commit the new tests"
anti-triggers: [push, pr, "pull request", review, rebase, merge]
invocation_hooks:
- "git rev-parse --is-inside-work-tree >/dev/null 2>&1 || echo 'Warning: not inside a git repository'"Smart Commit
Simple, validated commit creation. Run checks locally, no agents needed for standard commits.
> **Note:** If `disableSkillShellExecution` is enabled (CC 2.1.91), the git repository check won't run. This skill requires a git repository.
Quick Start
/ork:commit
/ork:commit fix typo in auth module
Argument Resolution
COMMIT_MSG = "$ARGUMENTS" # Optional commit message, e.g., "fix typo in auth module"
# If provided, use as commit message. If empty, generate from staged changes.
# $ARGUMENTS[0] is the first token (CC 2.1.59 indexed access)
STEP 0: Choose Commit Mode (AskUserQuestion — M118 #1465)
Default is "new commit", but voice-flow needs explicit choice when amend / push / stash is wanted:
# Skip when a flag in the invocation makes the mode unambiguous:
# /ork:commit --amend → skip, mode=amend
# /ork:commit --push → skip, mode=new+push
# /ork:commit --stash → skip, mode=stash-first
# ORK_COMMIT_DEFAULT_MODE=new (or amend|push|stash) → skip, use env value
#
# Otherwise, ask:
AskUserQuestion(questions=[{
"question": "How should this commit land?",
"header": "Commit mode",
"options": [
{"label": "New commit (default)", "description": "Create a new commit, leave HEAD intact"},
{"label": "Amend HEAD", "description": "Fold staged changes into the last commit (LOCAL ONLY — refuses if HEAD is published)"},
{"label": "New commit + push", "description": "Commit then `git push` (refuses on protected branches)"},
{"label": "Stash first", "description": "Stash unrelated working-tree changes, then commit only what was already staged"}
]
}])**Mode-specific guards:**
- **Amend HEAD** — verify HEAD is not on origin (`git rev-list HEAD..origin/<branch>` empty); if it is published, refuse and recommend "New commit" instead.
- **New commit + push** — re-check the protected-branch rule from Phase 1 before pushing; if HEAD's branch is `main`/`master`/`dev`, abort.
- **Stash first** — `git stash push -k -m "ork:commit autostash"` (keep-index), commit, then `git stash pop` after push success.
Workflow
Phase 1: Pre-Commit Safety Check
# CRITICAL: Verify we're not on dev/main
BRANCH=$(git branch --show-current)
if [[ "$BRANCH" == "dev" || "$BRANCH" == "main" || "$BRANCH" == "master" ]]; then
echo "STOP! Cannot commit directly to $BRANCH"
echo "Create a feature branch: git checkout -b issue/<number>-<description>"
exit 1
fi
Phase 2: Run Validation Locally
Run every check that CI runs:
# Backend (Python)
poetry run ruff format --check app/
poetry run ruff check app/
poetry run mypy app/
# Frontend (Node.js)
npm run format:check
npm run lint
npm run typecheck
Fix any failures before proceeding.
Phase 3: Review Changes
git status
git diff --staged # What will be committed
git diff # Unstaged changes
Phase 3b: Agent Attribution (automatic)
Before committing, check for the branch activity ledger at `.claude/agents/activity/{branch}.jsonl`. If it exists and has entries since the last commit, include them in the commit message:
1. Read `.claude/agents/activity/{branch}.jsonl` (one JSON object per line) 2. Filter entries where `ts` is after the last commit timestamp (`git log -1 --format=%cI`) 3. Skip agents with `duration_ms < 5000` (advisory-only agents go in PR, not commits) 4. Add an **"Agents Involved:"** section between the commit body and the Co-Authored-By trailer 5. Add per-agent `Co-Authored-By` trailers: `Co-Authored-By: ork:{agent} <noreply@orchestkit.dev>`
If the ledger doesn't exist or is empty, skip this step — commit normally.
Phase 4: Stage and Commit
> **CC 2.1.113 idiom:** Multi-line Bash with leading `# intent:` comments now shows the full command in the transcript — prefix complex scripts with a one-line intent comment so future readers (and `/recap` scans) can grep the transcript for what happened without re-reading the diff.
# intent: stage the hook change + its test + built artifacts
# Stage files
git add <files>
# Or all: git add .
# Commit with conventional format (with agent attribution if ledger exists)
git commit -m "<type>(#<issue>): <brief description>
- [Change 1]
- [Change 2]
Agents Involved:
backend-system-architect — API desig
Read more
name: commit
license: MIT
compatibility: "Claude Code 2.1.220+."
description: "Creates commits with Conventional Commits format (feat/fix/docs/refactor/test/chore), automatic scope detection, co-author attribution, and pre-commit hook compliance. Validates staged changes, generates descriptive messages focusing on the 'why', and prevents secrets or generated-only files from being committed. Requires an explicit request naming this skill; plain `git commit` during normal work stays a bare CLI call. Use when committing changes or generating commit messages."
argument-hint: "[message]"
context: inherit
version: 1.2.0
author: OrchestKit
tags: [git, commit, version-control, conventional-commits]
user-invocable: true
disable-model-invocation: false
allowed-tools: [Bash, Read, Write, AskUserQuestion]
skills: [chain-patterns]
complexity: low
persuasion-type: discipline
effort: low
hooks:
PreToolUse:
- matcher: "Bash"
command: "${CLAUDE_PLUGIN_ROOT}/hooks/bin/run-hook.mjs skill/commit-convention-loader"
once: true
- matcher: "Bash(git *)"
command: "${CLAUDE_PLUGIN_ROOT}/hooks/bin/run-hook.mjs pretool/bash/git-validator"
metadata:
category: workflow-automation
triggers:
keywords: [commit, comit, "commit message", "stage and commit", "save progress", "save my progress", "wrap it up", "conventional commit"]
examples:
- "commit my changes"
- "create a conventional commit for these files"
- "stage and commit the new tests"
anti-triggers: [push, pr, "pull request", review, rebase, merge]
invocation_hooks:
- "git rev-parse --is-inside-work-tree >/dev/null 2>&1 || echo 'Warning: not inside a git repository'"Smart Commit
Simple, validated commit creation. Run checks locally, no agents needed for standard commits.
> **Note:** If `disableSkillShellExecution` is enabled (CC 2.1.91), the git repository check won't run. This skill requires a git repository.
Quick Start
/ork:commit /ork:commit fix typo in auth module
Argument Resolution
COMMIT_MSG = "$ARGUMENTS" # Optional commit message, e.g., "fix typo in auth module" # If provided, use as commit message. If empty, generate from staged changes. # $ARGUMENTS[0] is the first token (CC 2.1.59 indexed access)
STEP 0: Choose Commit Mode (AskUserQuestion — M118 #1465)
Default is "new commit", but voice-flow needs explicit choice when amend / push / stash is wanted:
# Skip when a flag in the invocation makes the mode unambiguous:
# /ork:commit --amend → skip, mode=amend
# /ork:commit --push → skip, mode=new+push
# /ork:commit --stash → skip, mode=stash-first
# ORK_COMMIT_DEFAULT_MODE=new (or amend|push|stash) → skip, use env value
#
# Otherwise, ask:
AskUserQuestion(questions=[{
"question": "How should this commit land?",
"header": "Commit mode",
"options": [
{"label": "New commit (default)", "description": "Create a new commit, leave HEAD intact"},
{"label": "Amend HEAD", "description": "Fold staged changes into the last commit (LOCAL ONLY — refuses if HEAD is published)"},
{"label": "New commit + push", "description": "Commit then `git push` (refuses on protected branches)"},
{"label": "Stash first", "description": "Stash unrelated working-tree changes, then commit only what was already staged"}
]
}])**Mode-specific guards:**
- **Amend HEAD** — verify HEAD is not on origin (`git rev-list HEAD..origin/<branch>` empty); if it is published, refuse and recommend "New commit" instead.
- **New commit + push** — re-check the protected-branch rule from Phase 1 before pushing; if HEAD's branch is `main`/`master`/`dev`, abort.
- **Stash first** — `git stash push -k -m "ork:commit autostash"` (keep-index), commit, then `git stash pop` after push success.
Workflow
Phase 1: Pre-Commit Safety Check
# CRITICAL: Verify we're not on dev/main BRANCH=$(git branch --show-current) if [[ "$BRANCH" == "dev" || "$BRANCH" == "main" || "$BRANCH" == "master" ]]; then echo "STOP! Cannot commit directly to $BRANCH" echo "Create a feature branch: git checkout -b issue/<number>-<description>" exit 1 fi
Phase 2: Run Validation Locally
Run every check that CI runs:
# Backend (Python) poetry run ruff format --check app/ poetry run ruff check app/ poetry run mypy app/ # Frontend (Node.js) npm run format:check npm run lint npm run typecheck
Fix any failures before proceeding.
Phase 3: Review Changes
git status git diff --staged # What will be committed git diff # Unstaged changes
Phase 3b: Agent Attribution (automatic)
Before committing, check for the branch activity ledger at `.claude/agents/activity/{branch}.jsonl`. If it exists and has entries since the last commit, include them in the commit message:
1. Read `.claude/agents/activity/{branch}.jsonl` (one JSON object per line) 2. Filter entries where `ts` is after the last commit timestamp (`git log -1 --format=%cI`) 3. Skip agents with `duration_ms < 5000` (advisory-only agents go in PR, not commits) 4. Add an **"Agents Involved:"** section between the commit body and the Co-Authored-By trailer 5. Add per-agent `Co-Authored-By` trailers: `Co-Authored-By: ork:{agent} <noreply@orchestkit.dev>`
If the ledger doesn't exist or is empty, skip this step — commit normally.
Phase 4: Stage and Commit
> **CC 2.1.113 idiom:** Multi-line Bash with leading `# intent:` comments now shows the full command in the transcript — prefix complex scripts with a one-line intent comment so future readers (and `/recap` scans) can grep the transcript for what happened without re-reading the diff.
# intent: stage the hook change + its test + built artifacts # Stage files git add <files> # Or all: git add . # Commit with conventional format (with agent attribution if ledger exists) git commit -m "<type>(#<issue>): <brief description> - [Change 1] - [Change 2] Agents Involved: backend-system-architect — API desig
Showing the first part of this file.
The Complete AI Development Toolkit for Claude Code — 114 skills, 37 agents, 212 hooks. Production-ready patterns for full-stack development.
Repo: yonatangross/orchestkit
Other skills on orchestkit.
- /accessibility
Accessibility patterns for WCAG 2.2 compliance, keyboard focus management, React Aria component patterns, cognitive inclusion, native HTML-first philosophy, and user preference honoring. Use when implementing screen reader support, keyboard navigation, ARIA patterns, focus
Open skill - /agent-orchestration
Agent orchestration patterns for agentic loops, multi-agent coordination, alternative frameworks, and multi-scenario workflows. Use when building autonomous agent loops, coordinating multiple agents, evaluating CrewAI/AutoGen/Swarm, or orchestrating complex multi-step scenarios.
Open skill - /ai-ui-generation
AI-assisted UI generation patterns for json-render, v0.app, Google Stitch, Bolt Cloud, and Cursor workflows. Covers prompt engineering for component and full-stack app generation, review checklists for AI-generated code, design token injection, refactoring for design system
Open skill - /analytics
Queries local analytics across OrchestKit projects for agent usage, skill frequency, hook timing, team activity, session replay, cost estimation, and model delegation trends. Privacy-safe with hashed project IDs. Supports time-range filtering and comparative analysis. Use when
Open skill - /animation-motion-design
Animation and motion design patterns using Motion library (formerly Framer Motion) and View Transitions API. Use when implementing component animations, page transitions, micro-interactions, gesture-driven UIs, or ensuring motion accessibility with prefers-reduced-motion.
Open skill - /api-design
API contract design for REST and GraphQL, covering resource shape, URL and header versioning with deprecation windows, RFC 9457 Problem Details error handling, and OpenAPI specs. Use when specifying the wire contract an endpoint exposes, choosing a versioning scheme, or
Open skill

