MCP HubMCP Hub
Вернуться к навыкам

commit-changes

pjt222
Обновлено Yesterday
3 просмотров
17
2
17
Посмотреть на GitHub
Метаgeneral

О программе

Навык commit-changes выполняет индексацию, коммит и правку изменений в Git с использованием conventional commit сообщений. Он позволяет осуществлять выборочную индексацию, создавать описательные сообщения в формате HEREDOC и проверять историю коммитов. Используйте его для сохранения логических единиц работы в системе контроля версий с соблюдением правильных практик коммитов.

Быстрая установка

Claude Code

Рекомендуется
Основной
npx skills add pjt222/agent-almanac -a claude-code
Команда плагинаАльтернативный
/plugin add https://github.com/pjt222/agent-almanac
Git клонированиеАльтернативный
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/commit-changes

Скопируйте и вставьте эту команду в Claude Code для установки этого навыка

Документация

Commit Changes

Stage files selective. Write clear commit messages. Verify commit history.

When Use

  • Save logical unit of work to version control
  • Create commit with descriptive, conventional message
  • Amend most recent commit (message or content)
  • Review what commit before commit

Inputs

  • Required: One or more changed files to commit
  • Optional: Commit message (drafted if not given)
  • Optional: Whether amend previous commit
  • Optional: Co-author attribution

Steps

Step 1: Review Current Changes

Check working tree status. Inspect diffs.

# See which files are modified, staged, or untracked
git status

# See unstaged changes
git diff

# See staged changes
git diff --staged

Got: Clear picture of all modified, staged, untracked files.

If fail: git status fail? Verify inside git repo (git rev-parse --is-inside-work-tree).

Step 2: Stage Files Selective

Stage specific files. Avoid git add . or git add -A — may grab sensitive files or unrelated changes.

# Stage specific files by name
git add src/feature.R tests/test-feature.R

# Stage all changes in a specific directory
git add src/

# Stage parts of a file interactively (not supported in non-interactive contexts)
# git add -p filename

Review staged before commit.

git diff --staged

Got: Only intended files and changes staged. No .env, credentials, large binaries.

If fail: Unstage accidental files with git reset HEAD <file>. Sensitive data staged? Unstage now, before commit.

Step 3: Write Commit Message

Use conventional commits format. Always pass message via HEREDOC for proper formatting.

git commit -m "$(cat <<'EOF'
feat: add weighted mean calculation

Implements weighted_mean() with support for NA handling and
zero-weight filtering. Includes input validation for mismatched
vector lengths.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
EOF
)"

Conventional commit types:

TypeWhen use
featNew feature
fixBug fix
docsDocumentation only
testAdd or update tests
refactorCode change — no fix, no new feature
choreBuild, CI, dependency updates
styleFormatting, whitespace (no logic change)

Got: Commit created with descriptive message. Explains why, not just what.

If fail: Pre-commit hook fail? Fix issue, re-stage with git add, create new commit. No --amend — failed commit never created.

Step 4: Amend Last Commit (Optional)

Only amend if commit not pushed to shared remote.

# Amend message only
git commit --amend -m "$(cat <<'EOF'
fix: correct weighted mean edge case for empty vectors

EOF
)"

# Amend with additional staged changes
git add forgotten-file.R
git commit --amend --no-edit

Got: Previous commit updated in-place. git log -1 shows amended content.

If fail: Commit already pushed? No amend. Create new commit. Force-push amended commits to shared branches breaks history.

Step 5: Verify Commit

# View the last commit
git log -1 --stat

# View recent commit history
git log --oneline -5

# Verify the commit content
git show HEAD

Got: Commit appears in history with correct message, author, file changes.

If fail: Commit has wrong files? Use git reset --soft HEAD~1 to undo commit, keep changes staged. Re-commit correct.

Checks

  • Only intended files in commit
  • No sensitive data (tokens, passwords, .env files) committed
  • Commit message follows conventional commits format
  • Message body explains why change made
  • git log shows commit with correct metadata
  • Pre-commit hooks (if any) passed

Pitfalls

  • Commit too much at once: Each commit = one logical change. Split unrelated changes into separate commits.
  • Using git add . blind: Always review git status first. Prefer stage specific files by name.
  • Amend pushed commits: Never amend commits pushed to shared branch. Rewrites history. Breaks collaborators.
  • Vague commit messages: "fix bug" or "update" tells nothing. Describe what changed and why.
  • Forget --no-edit on content amends: Adding forgotten files to last commit? Use --no-edit — keeps existing message.
  • Hook fail leading to --amend: Pre-commit hook fail → commit never created. --amend would modify previous commit. Always create new commit after fix hook issues.

See Also

  • manage-git-branches - branch workflow before commit
  • create-pull-request - next step after commit
  • resolve-git-conflicts - handle conflicts during merge/rebase
  • configure-git-repository - repo setup and conventions

GitHub репозиторий

pjt222/agent-almanac
Путь: i18n/caveman/skills/commit-changes
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Похожие навыки

content-collections

Мета

Этот навык предоставляет проверенную в продакшене настройку для Content Collections — TypeScript-ориентированного инструмента, который преобразует файлы Markdown/MDX в типобезопасные коллекции данных с валидацией Zod. Используйте его при создании блогов, сайтов документации или контентных приложений на Vite + React для обеспечения типобезопасности и автоматической проверки содержимого. Он охватывает всё: от настройки плагина Vite и компиляции MDX до оптимизации развертывания и валидации схем.

Просмотреть навык

polymarket

Мета

Этот навык позволяет разработчикам создавать приложения на платформе прогнозных рынков Polymarket, включая интеграцию с API для торговли и получения рыночных данных. Он также обеспечивает потоковую передачу данных в реальном времени через WebSocket для отслеживания текущих сделок и рыночной активности. Используйте его для реализации торговых стратегий или создания инструментов, обрабатывающих обновления рынка в реальном времени.

Просмотреть навык

creating-opencode-plugins

Мета

Этот навык помогает разработчикам создавать плагины OpenCode, которые подключаются к более чем 25 типам событий, таким как команды, файлы и операции LSP. Он предоставляет структуру плагина, спецификации API событий и шаблоны реализации для модулей на JavaScript/TypeScript. Используйте его, когда вам нужно перехватывать, отслеживать или расширять жизненный цикл ассистента OpenCode AI с помощью пользовательской событийно-ориентированной логики.

Просмотреть навык

sglang

Мета

SGLang — это высокопроизводительный фреймворк для обслуживания больших языковых моделей (LLM), специализирующийся на быстрой структурированной генерации JSON, regex и рабочих процессов агентов с использованием кэширования префиксов RadixAttention. Он обеспечивает значительно более высокую скорость вывода, особенно для задач с повторяющимися префиксами, что делает его идеальным для сложных структурированных результатов и многократных диалогов. Выбирайте SGLang вместо альтернатив, таких как vLLM, когда вам требуется ограниченное декодирование или вы создаете приложения с интенсивным совместным использованием префиксов.

Просмотреть навык