AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Redate Commits

skill-kilimcininkoroglu-cli-tweaks-redate-commits · by KilimcininKorOglu

>

No reviews yet
0 installs
7 views
0.0% view→install

Install

$ agentstack add skill-kilimcininkoroglu-cli-tweaks-redate-commits

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-kilimcininkoroglu-cli-tweaks-redate-commits)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Redate Commits? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Redate Commits

Rewrites git commit dates to distribute them across a specified date range, making the history appear as if development occurred over that period.

Usage

/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

Context Gathering (MANDATORY FIRST STEP)

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

Parameters

| 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) |

Distribution Strategy

Weighted Weekdays (Default)

  • Weekdays: 1-3 commits per day, working hours (09:00-18:00)
  • Weekends: occasional 1 commit (roughly 1 in 3 weekends)
  • Most realistic for a solo developer

Grouping Logic

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 days
  • Merge feature/F001 → day after the feature commits
  • chore:, docs: → standalone, can fill gaps
  • fix: → day after the related feat:

Time Distribution Within a Day

  • First commit: 09:00-10:30
  • Second commit: 13:00-15:00
  • Third commit: 15:30-17:00
  • Vary minutes randomly (not exactly on the hour)

Implementation

Step 1: Collect Commits

git log --reverse --format="%H %s"

Step 2: Generate Date Mapping

Create a Python script that:

  1. Lists all commit hashes in chronological order
  2. Groups them by feature/topic based on commit messages
  3. Assigns dates from the range, respecting grouping
  4. Writes a shell filter script

Step 3: Apply with filter-branch

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" = "" ]; then
  export GIT_AUTHOR_DATE=""
  export GIT_COMMITTER_DATE=""
fi

Step 4: Clean Up

git reflog expire --expire=now --all
git gc --prune=now --aggressive

Step 5: Force Push (only if user confirms)

git push --force

Safety Protocol

  • ALWAYS show the planned date distribution BEFORE applying
  • ALWAYS warn that this operation rewrites ALL commit hashes
  • ALWAYS warn that force push will be needed
  • NEVER automatically force push — ask the user first
  • NEVER run on a shared branch without explicit user confirmation
  • If filter-branch fails, the original refs are preserved in refs/original/

Troubleshooting

macOS: declare -A not supported

Use Python for the date mapping script, not bash associative arrays. macOS default shell (zsh) has issues with declare -A in heredocs.

filter-branch snapshot error

If Docker was built from the repo, stale image layers can cause snapshot errors. Run:

docker compose build --no-cache

Verify Results

# 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)

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.