Git Log - Commit & Documentation
Generate structured commit messages and maintain comprehensive git log documentation for the VRP toolkit project.
When to Use
Use this skill when:
- •Preparing to commit changes to the repository
- •Reviewing git history to understand recent changes
- •Maintaining the project's change documentation
- •Need quick reference for common git commands
- •Want to ensure consistent commit message formatting
Core Workflow: Commit & Log
Step 1: Analyze Changes
Before committing, analyze the current changes:
git status git diff --staged # If changes already staged git diff # If changes not staged
Key questions to answer:
- •What files were modified/added/deleted?
- •What is the nature of changes (feature, bug fix, docs, refactor)?
- •What scope is affected (e.g., architecture, setup, migration)?
Step 2: Generate Commit Message
Based on the changes, generate a commit message following Conventional Commits format:
Format: <type>(<scope>): <subject>
Common types for this project:
- •
feat: New feature or functionality - •
fix: Bug fix - •
docs: Documentation changes - •
refactor: Code refactoring (no behavior change) - •
test: Adding or updating tests - •
chore: Maintenance tasks, dependency updates - •
style: Code style changes (formatting, etc.)
Common scopes for this project:
- •
architecture: Changes to overall architecture - •
migration: File migrations from SDR_stochastic - •
setup: Project setup, installation, dependencies - •
alns: ALNS algorithm changes - •
pdptw: PDPTW problem definition - •
data: Data layer changes - •
visualization: Visualization tools - •
tutorials: Tutorial notebooks
Subject guidelines:
- •Use imperative mood: "add" not "added" or "adds"
- •First letter lowercase
- •No period at end
- •Keep under 50 characters if possible
Body (optional but recommended):
- •Explain what changed and why
- •Use bullet points for multiple changes
- •Reference issues or related work
Examples:
feat(architecture): implement unified Solver interface for problem-algorithm separation - Create VRPProblem, VRPSolution, Solver abstract base classes - Implement ALNSSolver adapter pattern - Update quickstart tutorial to demonstrate new interface
chore: update migration progress (9/9 files) - Update CLAUDE.md completed tasks section - Add migration entry to MIGRATION_LOG.md - Update progress statistics
Step 3: Maintain Git Log Documentation
After committing, update the git log documentation file (.claude/GIT_LOG.md):
File structure:
# Git Log - VRP Toolkit Project *Comprehensive record of all commits with detailed information.* ## Recent Commits (newest first) ### 2026-01-01 - feat(architecture): implement unified Solver interface **Hash:** 4569fa1 **Author:** [Author Name] **Date:** 2026-01-01 12:34:56 **Changes:** - Created base.py module with abstract base classes - Implemented adapter pattern for backward compatibility - Updated quickstart tutorial **Files modified:** - vrp_toolkit/algorithms/base.py - vrp_toolkit/algorithms/alns/solver.py - tutorials/01_quickstart.ipynb --- ### 2025-12-31 - chore: update migration progress (9/9) **Hash:** 9590014 **Author:** [Author Name] **Date:** 2025-12-31 10:20:30 **Changes:** - Updated CLAUDE.md with completed migration status - Added final migration entry to MIGRATION_LOG.md **Files modified:** - .claude/CLAUDE.md - .claude/MIGRATION_LOG.md
Update process:
- •Extract commit information:
git log -1 --pretty=format:"%H|%an|%ad|%s" --date=iso - •Get changed files:
git show --name-only --pretty=format:"" HEAD - •Format entry using template above
- •Add to top of "Recent Commits" section in
.claude/GIT_LOG.md - •Keep only last 20-30 commits in main section (archive older ones if needed)
Step 4: Execute Commit
Provide the user with exact commands to execute:
# Stage changes git add [file1] [file2] ... # Commit with generated message git commit -m "feat(architecture): implement unified Solver interface - Create VRPProblem, VRPSolution, Solver abstract base classes - Implement ALNSSolver adapter pattern - Update quickstart tutorial to demonstrate new interface" # Push to remote (if desired) git push
Quick Command Reference
Status & Diff
git status -s # Short status git diff # Unstaged changes git diff --staged # Staged changes git diff HEAD~1 # Compare with previous commit
Commit Operations
git commit -am "msg" # Stage tracked files and commit git commit --amend # Amend last commit git commit --amend --no-edit # Amend without changing message
Branch Operations
git checkout -b feature-name # Create and switch branch git switch -c feature-name # Modern equivalent git branch -d branch-name # Delete local branch
History & Log
git log --oneline -10 # Last 10 commits, one line git log --oneline --graph --all # Graphical history git show HEAD # Show last commit details
Undo & Reset
git restore --staged file.py # Unstage file git restore file.py # Discard unstaged changes git reset --soft HEAD~1 # Undo commit, keep changes
Integration with Other Skills
update-progress: After updating CLAUDE.md and MIGRATION_LOG.md, use git-workflow to commit the documentation updates.
migrate-module: After migrating files, use git-workflow to commit the migrated code.
build-session-context: Read GIT_LOG.md to understand recent changes when starting a session.
update-task-board: Use GIT_LOG.md to track completion of development tasks.
Project-Specific Patterns
Migration Commits
git add vrp_toolkit/problems/pdptw.py git commit -m "feat(migration): migrate instance.py to pdptw.py - Extract generic Instance class - Add type hints and docstrings - Create basic test suite"
Progress Update Commits
git add .claude/CLAUDE.md .claude/MIGRATION_LOG.md git commit -m "chore: update migration progress (5/9 files) - Mark instance.py migration as completed - Update progress statistics - Add detailed migration entry"
Tutorial/Example Commits
git add tutorials/01_quickstart.ipynb git commit -m "docs: add quickstart tutorial - Show basic instance creation - Demonstrate ALNS solving - Include visualization examples"
GIT_LOG.md Maintenance
Initial Setup
If .claude/GIT_LOG.md doesn't exist, create it with the structure above.
Regular Updates
After each commit, update GIT_LOG.md with the new commit information.
Archive Strategy
- •Keep last 20 commits in "Recent Commits" section
- •Move older commits to "Archive" section at bottom
- •Consider monthly archives if volume is high
Automation Notes
When AI uses this skill, it should:
- •Analyze current git changes
- •Generate appropriate commit message
- •Show user exact commands to execute
- •After commit, update GIT_LOG.md with new entry
- •Keep GIT_LOG.md organized and readable
Troubleshooting
Empty Commit Message
If commit message seems generic, ask:
- •What specific functionality was added/fixed?
- •Which files were most significantly changed?
- •What problem does this change solve?
Multiple Change Types
If changes include mixed types (e.g., feat and fix):
- •Create separate commits if possible
- •If must combine, use most significant type and explain in body
Missing GIT_LOG.md
If file doesn't exist, create it with current commit history:
# Get last 20 commits for initial log git log --oneline -20