Agent skill

Rename With Dates

by kdeldycke in kdeldycke/dotfiles

Rename documents and files (PDFs, images, screenshots, etc.) by reading their content to extract the effective/publication date, then renaming them with a "YYYY-MM-DD - Clear descriptive title.ext"…

BSD-2-ClauseAuto-check passedDocuments & Office

Install Rename With Dates

skills CLI
$ npx skills add kdeldycke/dotfiles --skill rename-with-dates -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install kdeldycke/dotfiles rename-with-dates --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/kdeldycke/dotfiles.git skills-src && mkdir -p .claude/skills && cp -r skills-src/dotfiles/.agents/skills/rename-with-dates .claude/skills/rename-with-dates && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
rename-with-dates
GitHub stars
173
Token cost
~3.5k tokens
SKILL.md length
1,935 words
Files
1
Skills in repo
25
Repo updated
First seen
Licence
BSD-2-Clause

At a glance

Rename documents and files (PDFs, images, screenshots, etc.) by reading their content to extract the effective/publication date, then renaming them with a "YYYY-MM-DD - Clear descriptive title.ext"…

  • Works in 8 steps: List files in the target directory… → Skip files that already follow the… → Read each file to find the effective… → …
  • The user wants to organize files with date prefixes based on document content
  • SKILL.md covers Target format, Supported file types, Workflow and Multi-language PDF stripping, plus 2 more sections
  • Calls qpdf, brew and pdftoppm

What it does

Rename With Dates is an agent skill from kdeldycke/dotfiles. Rename documents and files (PDFs, images, screenshots, etc.) by reading their content to extract the effective/publication date, then renaming them with a "YYYY-MM-DD - Clear descriptive title.ext" format. Use when the user wants to organize files with date prefixes based on document content.

Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Designed for Claude Code. Recommended model: Opus.

It sits in Documents & Office, covering File organization. The repository describes itself as: 🍎 macOS dotfiles for Python developers. The licence is BSD-2-Clause.

When your agent uses it

  • The user wants to organize files with date prefixes based on document content
  • Tasks that involve File organization

Example prompts

  • “YYYY-MM-DD - Clear descriptive title.ext”
  • “/rename-with-dates”

Requirements

  • Python 3
  • Compatibility (from SKILL.md): Designed for Claude Code. Recommended model: Opus.

Workflow steps

8 steps, taken from the first numbered list in SKILL.md.

  1. List files in the target directory (default: current working directory, or $ARGUMENTS if provided)
  2. Skip files that already follow the YYYY-MM-DD - Title.ext pattern (but offer to clean up their titles if needed). A bare date with no…
  3. Read each file to find the effective date and understand the content
  4. Choose a clear title
  5. Present a summary table showing current name, detected date, and proposed new name
  6. Rename all files after presenting the plan. On case-insensitive filesystems (macOS APFS), a case-only rename fails with "are the same…
  7. Post-rename analysis — after renaming, scan the folder for cleanup opportunities and present a report with three sections
  8. Verify by listing the final result with plain binaries — ls may be aliased (eza, lsd) and print nothing when piped — and run a compliance…

What it can do on your machine

Read from SKILL.md and the folder at commit 37173b9. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • qpdf
    • brew
    • pdftoppm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Designed for Claude Code. Recommended model: Opus.

    From compatibility in the SKILL.md frontmatter.

Context cost

Rename With Dates loads about 3.5k tokens when it runs. Until then it costs about 78 tokens; SKILL.md has 1,935 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~78
When it runs · the whole SKILL.md, loaded when a task matches
~3.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from kdeldycke/dotfiles at commit 37173b9, republished under its BSD-2-Clause licence (© kdeldycke). 1,935 words, ~3,473 tokens.

Download SKILL.mdSave it as .claude/skills/rename-with-dates/SKILL.md (or your agent's skills folder).
name
rename-with-dates
description
Rename documents and files (PDFs, images, screenshots, etc.) by reading their content to extract the effective/publication date, then renaming them with a "YYYY-MM-DD - Clear descriptive title.ext" format. Use when the user wants to organize files with date prefixes based on document content.
compatibility
Designed for Claude Code. Recommended model: Opus.
argument-hint
[directory or files]

Rename Documents with Date Prefixes

Rename files in a folder by extracting the effective date from their content and giving them a clean, human-readable title.

Target format

YYYY-MM-DD - Clear descriptive title.ext

Title casing: capitalize only the first word and proper nouns (title case), like a sentence.

Examples:

  • 2023-11-01 - General terms and conditions.pdf
  • 2025-08-01 - Credit card fees and charges.pdf
  • 2025-12-01 - Key facts statement - Term deposits.pdf
  • 2024-06-15 - Rewards program earning structure.png
  • 2024-03-01 - Schedule of charges.pdf

Period documents that cover a date range (statement exports, period reports) may extend the prefix to YYYY-MM-DD--YYYY-MM-DD - Title.ext — preserve that convention where a folder already uses it.

Supported file types

  • PDFs: Read the first few pages (and last page if needed) to find dates and understand content. The Read tool rejects PDFs over 20MB: render their pages to images with pdftoppm -png -r 30 and view those instead
  • Images / Screenshots (PNG, JPG, etc.): View the image to understand its content, then summarize it into a clear descriptive title. For screenshots, the date is often embedded in the filename (e.g., Screenshot 2026-01-12 at 11.07.33.png → date is 2026-01-12)
  • Office documents: for .xlsx, read docProps/core.xml inside the zip (unzip -p file.xlsx docProps/core.xml) for dcterms:created; for Apple .numbers, the package often embeds a readable preview.jpg or preview.pdf. A stray .~lock.*# file next to a document is a LibreOffice lock: the document may be open somewhere (possibly on another synced machine); stale locks are trash candidates
  • Emails exported/printed to PDF: use the email's sent date from its header, never the print/export date; derive the title from the subject and outcome of the thread
  • Photo archives: a folder full of personal photos (IMG_1234.jpeg dumps) is an archive, not a document set — propose skipping it wholesale instead of dating each file. Rename a photo only when it acts as a document (appliance rating plate, meter photo, signed-form snapshot), dating it from EXIF DateTimeOriginal via exiftool
  • Other documents: Read content where possible to extract dates and meaning

Workflow

  1. List files in the target directory (default: current working directory, or $ARGUMENTS if provided)

  2. Skip files that already follow the YYYY-MM-DD - Title.ext pattern (but offer to clean up their titles if needed). A bare date with no title (like 2023-08-17.pdf) is not compliant — read the file and add the missing title (often just Invoice or Receipt inside a provider folder, where the folder name already gives context)

  3. Read each file to find the effective date and understand the content:

    • For PDFs:
      • Look for explicit "Effective from..." or "Effective date" statements — prefer these
      • Look for version dates in footers (e.g., "08/2025", "v. August 14, 2023")
      • Beware date-lookalike version codes: a code like V160701.1 reads as YYMMDD but may be template artwork — if the same code appears on documents with different effective dates, it is not a date. Reference codes (like CRN FRM021121) often embed a MMDDYY date and corroborate other evidence at month precision
      • Filenames that are bare reference codes or portal export IDs (like LICDSO202600109568.pdf or bill-3733181.pdf) are almost always invoices or receipts — open them; the code itself rarely matters to the user
      • When two files resolve to the same date and the same title, re-inspect before renaming: one is usually a different document type (like an annual statement of accounts issued the same day as the monthly invoice)
      • Look for dated headers, cover pages, or document stamps
      • Use the effective/applicability date, not the publication or copyright date
    • For images/screenshots:
      • View the image to understand what it shows
      • Extract date from the original filename if it contains one (e.g., Screenshot 2026-01-12 at ...)
      • If the image contains visible dates in its content, prefer those
      • If no date can be found, ask the user
    • Match the date precision to what the document provides: use YYYY-MM-DD for exact dates, YYYY-MM for month-only, YYYY for year-only
  4. Choose a clear title:

    • Use sentence case: capitalize only the first word and proper nouns
    • Be descriptive but concise (e.g., "Credit card fees and charges", not "popularbankname_credit_card_fees_charges")
    • For screenshots: summarize what the image shows (e.g., "Rewards program earning structure", "Account balance overview")
    • Keep well-known abbreviations uppercase: KFS, FAQ, T&C
    • Remove redundant institution names if the folder context already makes it clear
    • When two documents of the same type share the same effective date but cover different product segments, disambiguate in the title (like KFS - Credit cards (Skywards, Cash+ and Live+) vs KFS - Credit cards (Private Bank, Premier and Advance))
    • Manuals and spec sheets: title as Brand Model - Doc type (like Gorenje WHT923E5XUK - Cooker hood manual); vendor doc codes often embed the publication date (Grohe …/02.19 = February 2019)
  5. Present a summary table showing current name, detected date, and proposed new name

  6. Rename all files after presenting the plan. On case-insensitive filesystems (macOS APFS), a case-only rename fails with "are the same file" — do it in two steps through a temporary name

  7. Post-rename analysis — after renaming, scan the folder for cleanup opportunities and present a report with three sections:

    • Duplicates: Compare files with similar titles using MD5 checksums (md5 -r). Files with identical hashes are exact duplicates. Propose keeping one and trashing the others. If an undated file is an exact duplicate of an already-compliant one, do not rename it into a name collision — leave its name untouched and propose trashing it. Also compare content when hashes differ but titles match: re-downloads of the same document often differ only in PDF metadata. Printed document numbers (invoice number, receipt number, DocuSign envelope ID) are reliable fingerprints for catching these content-duplicates.

    • Superseded documents: Identify files that are older versions of the same document type (e.g., "Personal banking general T&C" from 2023 vs 2025). The newer version supersedes the older. Propose trashing the older version.

    • Expired documents: For time-bound documents (campaigns, offers, promotions) that specify a validity period (e.g., "1 November 2025 – 31 December 2025"), check if the end date has passed relative to today. Propose trashing expired ones. Do not flag standing T&Cs, KFS documents, or privacy policies — only documents with explicit campaign/offer end dates.

    • Not applicable: documents covering products or services the user does not hold (other product tiers' T&C, KFS for products never subscribed, forms for other customer segments). Ask the user to confirm their actual holdings, then propose trashing the rest — documents for held products stay, as they are the contractual record of the terms in force.

    When the user approves trashing, move the files into a dated subfolder like ~/.Trash/{folder} cleanup YYYY-MM-DD/ so the whole batch stays grouped and recoverable. Writing into ~/.Trash is typically blocked by the command sandbox — run that step outside the sandbox.

  8. Verify by listing the final result with plain binaries — ls may be aliased (eza, lsd) and print nothing when piped — and run a compliance sweep: /usr/bin/find . -type f | sed 's|.*/||' | grep -Ev '^[0-9]{4}(-[0-9]{2})?(-[0-9]{2})?(--[0-9]{4}-[0-9]{2}-[0-9]{2})? - ' should return only intentionally held files

Multi-language PDF stripping

Many legal/banking documents repeat the same content translated across several languages, organized as consecutive blocks of pages (e.g., pages 1-10 in English, 11-20 in Arabic, 21-30 in Bulgarian). When detected, propose stripping to keep only English and French pages.

Show full SKILL.md (769 more words)Show less
Detection
  1. While reading a PDF, sample pages throughout the document (not just the beginning) to detect language blocks
  2. A document qualifies for stripping only if:
    • The content is repeated in blocks of pages, each block being a full translation of the same content
    • Each page is in a single language — if a page mixes multiple languages (e.g., English and Arabic side by side, or bilingual tables), do NOT propose stripping that document
    • The granularity is the page: each page belongs to exactly one language
  3. Identify the page ranges for each language block (e.g., "Pages 1-25: English, Pages 26-50: Arabic, Pages 51-75: French")
Proposal
  • Present findings clearly: list each language detected and its page range
  • Propose which pages to keep (English and French) and which to remove
  • Ask the user for confirmation before modifying the PDF
  • Use qpdf to extract only the desired pages into a new file (qpdf in.pdf --pages . 1-4 -- out.pdf)
  • Verify before replacing: the original's qpdf --show-npages must match the detected page total, and the stripped output must match the kept range length — skip the file on any mismatch
  • Replace the original file with the stripped version, and stash the pre-strip originals in the Trash batch folder (like ~/.Trash/{folder} cleanup YYYY-MM-DD/pre-strip originals/) as a safety net
  • For more than a handful of files, drive the loop with a small Python script (manifest of filename + keep range + expected total) instead of ad-hoc shell commands
When NOT to strip
  • The document is signed: signed forms and agreements are legal records — never alter them, even when their languages are cleanly block-structured
  • Pages contain multiple languages (bilingual layouts, side-by-side translations)
  • The translations are not full-document blocks (e.g., just a translated summary at the end)
  • The document has only one language
  • You are not confident about the language boundaries

Required tools

This skill depends on third-party CLI tools. At the start of execution, check if each is available and propose to install any that are missing via brew install.

ToolBrew packageUsed for
qpdfqpdfExtracting page ranges from PDFs (multi-language stripping), page counts (--show-npages)
pdftoppmpopplerRendering PDF pages — the Read tool depends on it to view PDFs at all
pdftotextpopplerExtracting text per page for language detection in large PDFs
exiftoolexiftoolReading PDF metadata (CreationDate, ModDate) as date fallback

mdls (macOS built-in) can also be used for metadata.

If a missing tool is needed for the current run, propose the install command and ask the user before proceeding. If the tool is not needed (e.g., no multi-language PDFs detected, so qpdf is not required), skip silently.

If the target folder contains any PDFs, install poppler first thing: without pdftoppm the Read tool cannot render PDF pages, so no PDF can be inspected at all. Note that brew install writes to /opt/homebrew and usually needs to run outside the command sandbox.

Important rules

  • Always extract dates from file content (or filename for screenshots), never from file system metadata
  • For PDFs, read the first few pages (and last page if needed) to find the date
  • For images, always view the image to produce a meaningful title — never just use the original filename
  • If a document has both a publication date and an "Effective from" date, use the effective date
  • If no date can be found in the content or filename, fall back to PDF metadata (CreationDate, ModDate) using mdls or exiftool. Only use file system dates (modification date) as a last resort
  • If no date can be found at all, flag it to the user and ask what to do
  • Use mv for renaming — never copy-and-delete
  • Folders can change while you work (the user may be acting in parallel, or cloud sync may intervene): re-check that files still exist before acting on them, and if files vanish mid-run, surface it to the user — never restore things from the Trash on your own initiative. Folders may also be renamed mid-run: if a move fails, re-resolve the path before assuming the file is gone
  • Reading several look-alike files in one parallel batch (same provider, same visit date, same document family) risks cross-attributing the returned pages to the wrong filename — one run swapped a prescription and a tomography report scanned the same day, and only the user caught it. Read ambiguous siblings one at a time, and after renaming a batch of same-day scans, re-render a page of each renamed file to confirm its content matches the new title
  • For large trees, fan out read-only subagents to extract dates and propose titles per folder, but review their proposals and execute all renames yourself so titles stay consistent across folders

© kdeldycke, BSD-2-Clause. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in dotfiles/.agents/skills/rename-with-dates of kdeldycke/dotfiles.

Open the folder on GitHubat commit 37173b9

Compare with similar skills

Rename With Dates next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Rename With Dates compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Rename With Dates this skillkdeldycke/dotfiles173—~3.5kAutomated safety check: PassBSD-2-Clause
Rename Pdfs Exerealspqrk/autorename-pdf122—~529Automated safety check: PassMIT
Rename Files Date Prefixpnp/sharepoint-skills133—~1.6kAutomated safety check: PassMIT
Tencent DocsLeoYeAI/openclaw-master-skills2.2k—~3kAutomated safety check: PassMIT
Rename Pdfsrealspqrk/autorename-pdf122—~541Automated safety check: PassMIT
Create Simple Promptpnp/copilot-prompts893—~2.6kAutomated safety check: PassMIT

Similar skills

  • Rename Pdfs Exe

    realspqrk/autorename-pdf

    [Production] Rename PDF files using the compiled autorename-pdf-cli.exe.

    122 GitHub stars~529 tokensUpdated 1 mo ago
    Documents & OfficeAuto-check passed
  • Rename Files Date Prefix

    pnp/sharepoint-skills

    Renames all files in a SharePoint document library (including subfolders) to prefix them with their created date in yyMMdd format (e.g., 251203-Status Report.pdf).

    133 GitHub stars~1.6k tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • Tencent Docs

    LeoYeAI/openclaw-master-skills

    Tencent Docs - Provides complete Tencent Docs operations. An agent skill from LeoYeAI/openclaw-master-skills.

    2.2k GitHub stars~3k tokensUpdated 2 mo ago
    Documents & OfficeAuto-check passed
  • Rename Pdfs

    realspqrk/autorename-pdf

    [Dev] Rename PDF files using AI (Python, requires venv). An agent skill from realspqrk/autorename-pdf.

    122 GitHub stars~541 tokensUpdated 1 mo ago
    Documents & OfficeAuto-check passed
  • Create Simple Prompt

    pnp/copilot-prompts

    This skill should be used when the user asks to "create a new prompt sample", "add a new prompt sample", "scaffold a new prompt sample", "create a prompt contribution", "add a prompt", or needs to…

    893 GitHub stars~2.6k tokensUpdated 4 days ago
    AI & LLM EngineeringAuto-check passed
  • WeCom Disk File Operations

    WecomTeam/wecom-cli

    Lists, searches, uploads, downloads and renames files on WeCom Disk (微盘) and creates folders there, through the wecom-cli tool.

    3.2k GitHub starsUsed in 2 repos~4.3k tokens
    Productivity & AutomationAuto-check passed

More from kdeldycke/dotfiles

All 25 skills in this repo
  • Agent Config Self Tune

    kdeldycke/dotfiles

    Audit and tune the configuration of coding agents across Claude Code and pi - settings files (settings.json, settings.local.json), permission rules, instruction files (CLAUDE.md, AGENTS.md), skill…

    173 GitHub stars~3.4k tokensUpdated yesterday
    Auto-check: notes
  • Audit Repo Issues

    kdeldycke/dotfiles

    Analyze a GitHub repository's issues and PRs to find unaddressed feature requests, dismissed ideas, maintenance signals, and opportunities relevant to the current project.

    173 GitHub stars~2.5k tokensUpdated yesterday
    Auto-check passed
  • Brand Assets

    kdeldycke/dotfiles

    Create project logo and banner SVGs, then export them to light and dark PNG variants.

    173 GitHub stars~4.7k tokensUpdated yesterday
    Auto-check passed
  • Fill Web Form

    kdeldycke/dotfiles

    Fill a web form using data extracted from local documents (PDFs, images, spreadsheets).

    173 GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed
  • Repomatic Test Matrix

    kdeldycke/dotfiles

    Choose what a repository's CI test matrix covers. An agent skill from kdeldycke/dotfiles.

    173 GitHub stars~2.2k tokensUpdated yesterday
    Auto-check: notes
  • Sphinx Docs Sync

    kdeldycke/dotfiles

    Compare and synchronize Sphinx documentation against the upstream kdeldycke/repomatic reference, or across sibling projects.

    173 GitHub stars~3.2k tokensUpdated yesterday
    Auto-check: notes

Questions about Rename With Dates

What does Rename With Dates do?

Rename documents and files (PDFs, images, screenshots, etc.) by reading their content to extract the effective/publication date, then renaming them with a "YYYY-MM-DD - Clear descriptive title.ext"…. Rename With Dates is an agent skill from kdeldycke/dotfiles.ext" format.

When should I use Rename With Dates?

Rename With Dates fits situations like: the user wants to organize files with date prefixes based on document content; tasks that involve File organization.

How do I install Rename With Dates in Claude Code?

Run `npx skills add kdeldycke/dotfiles --skill rename-with-dates -a claude-code`. Or copy the skill folder (dotfiles/.agents/skills/rename-with-dates in kdeldycke/dotfiles) into .claude/skills/rename-with-dates in your project. Claude Code loads it when a task matches its description.

How do I install Rename With Dates in Codex?

Run `npx skills add kdeldycke/dotfiles --skill rename-with-dates -a codex`. Or copy the skill folder (dotfiles/.agents/skills/rename-with-dates in kdeldycke/dotfiles) into .agents/skills/rename-with-dates in your project. Codex loads it when a task matches its description.

Can I use Rename With Dates in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add kdeldycke/dotfiles --skill rename-with-dates -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/rename-with-dates, .gemini/skills/rename-with-dates, .github/skills/rename-with-dates and .opencode/skills/rename-with-dates in your project.

What does Rename With Dates need to run?

Going by SKILL.md and its folder, Rename With Dates needs the command-line tools its instructions call (qpdf, brew and pdftoppm). Our summary lists: Python 3. Compatibility (from SKILL.md): Designed for Claude Code. Recommended model: Opus..

Does Rename With Dates access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Rename With Dates safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Rename With Dates use?

Rename With Dates is published under the BSD-2-Clause licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Rename With Dates use?

About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Rename With Dates?

Skills that share tags, products or a category with Rename With Dates: Rename Pdfs Exe (realspqrk/autorename-pdf, 122 stars), Rename Files Date Prefix (pnp/sharepoint-skills, 133 stars), Tencent Docs (LeoYeAI/openclaw-master-skills, 2.2k stars) and Rename Pdfs (realspqrk/autorename-pdf, 122 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Rename With Dates?

kdeldycke (a GitHub user) maintains it in kdeldycke/dotfiles, which has 173 GitHub stars. The repository holds 25 skills in this directory. The repository was last updated on October 9, 2026.

Source: kdeldycke/dotfiles on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.