claude/skills/redate-commits/SKILL.md
This skill MUST be invoked when the user says "commit tarihlerini değiştir", "redate commits", "spread commits", "backdate" or any variation requesting git commit date rewriting across a date range. Rewrites both author and committer dates using git filter-branch, distributing commits realistically across the specified period.
npx skillsauth add kilimcininkoroglu/cli-tweaks redate-commitsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Rewrites git commit dates to distribute them across a specified date range, making the history appear as if development occurred over that period.
/redate-commits 2026-02-01 2026-03-31 # Default: weighted weekdays
/redate-commits 2026-01-01 2026-06-30 --weekdays-only
/redate-commits 2026-02-01 2026-03-31 --include-weekends
Before doing anything, gather the commit history:
git log --oneline --format="%H %ai %s" | head -20 # Recent commits with dates
git log --oneline | wc -l # Total commit count
git log --reverse --format="%H %s" | head -5 # Oldest commits
git log --reverse --format="%H %s" | tail -5 # Newest commits
| Parameter | Description | Default |
|-----------|-------------|---------|
| start-date | First date (YYYY-MM-DD) | Required |
| end-date | Last date (YYYY-MM-DD) | Required |
| --weekdays-only | Mon-Fri only | No |
| --include-weekends | All 7 days equally | No |
| --weighted-weekdays | Heavy weekdays, light weekends | Yes (default) |
Commits should be grouped by feature/topic, not randomly scattered. Related commits (same feature branch, same module) should land on the same day or consecutive days.
Analyze commit messages to identify logical groups:
feat(T001-T005) → same feature, same day or 2 daysMerge feature/F001 → day after the feature commitschore:, docs: → standalone, can fill gapsfix: → day after the related feat:git log --reverse --format="%H %s"
Create a Python script that:
FILTER_BRANCH_SQUELCH_WARNING=1 git filter-branch -f \
--env-filter "$(cat /tmp/git_date_filter.sh)" \
-- --all
The filter script format:
if [ "$GIT_COMMIT" = "<hash>" ]; then
export GIT_AUTHOR_DATE="<date>"
export GIT_COMMITTER_DATE="<date>"
fi
git reflog expire --expire=now --all
git gc --prune=now --aggressive
git push --force
filter-branch fails, the original refs are preserved in refs/original/declare -A not supportedUse Python for the date mapping script, not bash associative arrays. macOS default shell (zsh) has issues with declare -A in heredocs.
If Docker was built from the repo, stale image layers can cause snapshot errors. Run:
docker compose build --no-cache
# Check first and last commit dates
git log --format="%ai %s" | tail -1 # Should be start-date
git log --format="%ai %s" | head -1 # Should be end-date
# Check weekend distribution
git log --format="%ad" --date=format:"%u %Y-%m-%d" | sort | uniq -c
# Column 1 = count, Column 2 = day-of-week (1=Mon, 7=Sun)
development
This skill MUST be invoked when the user says "version update skill oluştur", "create version update skill", "versiyon skill'i oluştur", "update-version skill", "version-update skill yap" or any variation requesting creation of a project-local version update skill. SHOULD also invoke when user mentions "versiyon güncelleme skill'i kur", "setup version bumping", or asks to automate version management for the current project. Scans the project for version files, build commands, and changelog, then generates a tailored version-update skill in .factory/skills/.
development
This skill MUST be invoked when the user says "task-plan", "görev planla", "break down this PRD", "create tasks from spec", "PRD'yi parçala", "görevleri oluştur" or any variation requesting task breakdown from a specification document. SHOULD also invoke when user mentions "feature breakdown", "sprint planning", "task tracking", or wants to manage a structured development workflow with features and tasks.
testing
This skill MUST be invoked when the user says "commit tarihlerini değiştir", "redate commits", "spread commits", "backdate" or any variation requesting git commit date rewriting across a date range. Rewrites both author and committer dates using git filter-branch, distributing commits realistically across the specified period.
development
This skill MUST be invoked when the user says "UIKit", "iOS geliştirme", "programmatic UI", "table view", "collection view", "Auto Layout", "UIViewController", "UINavigationController", "Core Animation", "UIKit review", "UIKit build", "iOS view controller", "UIKit pattern", "programmatic layout", or any variation requesting UIKit development, review, or improvement. Covers programmatic UIKit with Auto Layout, table/collection views, navigation, animation, networking, architecture, and 20 reference documents with production-ready patterns.