commit
Create well-structured atomic commits with conventional commit messages. Use when ready to commit working changes.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Create well-structured atomic commits with conventional commit messages. Use when ready to commit working changes.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Write a feature spec from requirements in .claude/input/. Use when starting a new feature, before implementation begins.
Orchestrate the full spec → implement → review → fix → commit pipeline. Use when shipping a complete feature end-to-end.
Break a concept document, draft, or product brief into independent PRDs that each feed into /ship. Use when input contains multiple features or a big-picture vision.
Ship decomposed PRDs in parallel. Analyzes file conflicts, groups into batches, runs /ship in isolated worktrees, merges results. Use after /decompose.
Implement a feature from a spec file in .claude/specs/. Use after a spec is written and approved.
Audit dependencies for vulnerabilities and scan for committed secrets. Use periodically or when security alerts flag a dependency.
| name | commit |
| description | Create well-structured atomic commits with conventional commit messages. Use when ready to commit working changes. |
| disable-model-invocation | true |
| argument-hint | [--all] |
| effort | medium |
| metadata | {"note":"When invoked by /ship, runs with sonnet model for cost efficiency"} |
Create one or more commits from the current working tree changes.
$ARGUMENTS is optional. Pass --all to skip the diff analysis and commit everything as a single commit.
git status to see staged and unstaged changesgit diff HEAD (staged + unstaged) to understand the full scope of changesIf multiple distinct concerns are detected (and --all was not passed):
If a single concern (or --all was passed):
Read project commit conventions: Check if .claude/rules/branch-management.md exists. If it does, read it to understand project-specific branch naming and commit message conventions. Then:
git branch --show-current to get the current branch name^(\d+)\.(Bug|Improvement|Feature)\.([^.]+)\.(.+)$ extracts ticket ID from segment 1)^(\d+)\.(.+)$ to extract at least the ticket numberbranch-management.md exists, skip this stepBacklog check: if the commit message references a task/PRD identifier (e.g. PRD-17, TASK-5), search for a backlog or tracker file in .claude/input/ that contains that identifier as a heading. If found and the heading does not already have a ✅ marker, add ✅ to the heading and include the file in the commit. Skip this step if no backlog file exists.
Run pre-commit checks in this order — read the commands from CLAUDE.md (skip any not listed):
a. Typecheck (e.g. tsc --noEmit)
b. Lint (e.g. npm run lint)
/4_test, not commit gatesStage the appropriate files:
git add <files>git add -ACompose the commit message using conventional commit format:
<emoji> <type>(<scope>): <short description>
<scope> is optional — use the primary directory or module affected (e.g. scoring, ui, store)Type → emoji mapping:
| Type | Emoji | Use when |
|---|---|---|
feat | ✨ | New feature or capability |
fix | 🐛 | Bug fix |
docs | 📝 | Documentation only |
refactor | ♻️ | Code restructured, no behaviour change |
test | ✅ | Tests added or updated |
chore | 🔧 | Build, config, tooling, dependencies |
perf | ⚡️ | Performance improvement |
style | 🎨 | Formatting, whitespace, no logic change |
ci | 🚀 | CI/CD pipeline changes |
revert | ⏪️ | Reverts a previous commit |
Project-specific ticket suffix: If a ticket ID was extracted in step 4, append #<ticketId> to the end of the commit message. Ensure the # is NOT at the start of the message (git treats leading # as a comment). The final format becomes:
<emoji> <type>(<scope>): <short description> #<ticketId>
Example: ✨ feat(ui): add loading spinner to search results #1234
If the project's branch-management.md defines a different commit message format, follow that format instead.
Create the commit:
git commit -m "<message>"
If multiple commits were planned, repeat steps 7–9 for each remaining group
Report: