Install
$ agentstack add skill-danielrosehill-claude-data-wrangler-plugin-date-wrangling ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo 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.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
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 →About
Date Wrangling
Transform date/time columns into the format required by the downstream consumer.
When to invoke
- Downstream system (API, SQL column, ML feature, HF dataset) needs a specific date format and the source uses a different one.
- User asks to "convert dates to epoch", "add timezone", "strip timezone", "normalise to ISO 8601", "add a timestamp column".
Supported transformations
| Source | Target | Notes | |---|---|---| | Any parseable date/datetime | ISO 8601 (YYYY-MM-DDTHH:MM:SS±HH:MM) | Default canonical form | | Any | Epoch seconds (Unix timestamp) | Integer seconds since 1970-01-01 UTC | | Any | Epoch milliseconds | Integer ms since epoch (JS / Java convention) | | Any | Epoch microseconds / nanoseconds | For high-precision logging | | Naive datetime | Timezone-aware | Require user to specify the assumed source TZ | | Timezone-aware | UTC | Convert to UTC and keep offset, or strip offset | | Timezone-aware | Naive (strip TZ) | Warn — lossy; confirm with user | | Date + time split | Single datetime | Combine two columns into one | | Single datetime | Date + time split | Produce two columns | | Any | Locale display format (e.g. 01/02/2024 UK) | For human-facing outputs only; never store | | Any | Fiscal year / quarter | Fiscal calendar start month user-configurable | | Any | ISO week date (YYYY-Www-D) | Useful for weekly reporting | | Any | Julian day / day-of-year | Scientific applications |
Procedure
- Locate the source column(s) — confirm which columns hold dates/times. If multiple candidates, list them with sample values and ask user.
- Parse the source format:
- If uniform and parseable, use
pandas.to_datetimewithformat=...(explicit is safer than inference). - If mixed, detect the formats present; do not silently dispatch — list them and confirm per-format handling.
- Ambiguous ordering (
01/02/2024— is it UKDD/MM/YYYYor USMM/DD/YYYY?) → never guess. Ask the user or consult the data dictionary.
- Determine the source timezone:
- If offset/zone is embedded, use it.
- If naive, ask the user what TZ to assume. Common answers: UTC, local, a specific IANA zone (
Europe/London,Asia/Jerusalem).
- Apply the target transformation.
- Write output — new column with descriptive name (
_iso8601,_epoch_ms,_utc), preserving the original by default. Offer overwrite only on explicit request; backup first perCONVENTIONS.md. - Enrich if requested — add derived columns (
year,month,day,week,day_of_week,is_weekend,is_holiday) via thedata-enrichmentskill's temporal options. - Validate — round-trip a sample through the transformation and back to confirm no precision loss (esp. for epoch conversions).
- Update the data dictionary — record the source format, target format, assumed timezone, and any lossy conversion.
Dependencies
pip install pandas python-dateutil
# optional
pip install pytz # legacy TZ database
# Python 3.9+ includes zoneinfo natively
Edge cases
- DST transitions —
02:30on a spring-forward day doesn't exist;02:30on a fall-back day is ambiguous. Default to raising an error with the row indices; offer user policies (skip, pick first occurrence, pick second, shift). - Pre-1970 dates — epoch will be negative; confirm the target system accepts it.
- Unix epoch vs Excel epoch — Excel's 1900-based epoch is a common trap. Detect likely-Excel numeric dates (small values like
45678) and ask before treating them as Unix epoch. - Very precise timestamps — JavaScript's
Dateloses microseconds. Warn if source has sub-ms precision and target is JS-consumed. - Nanosecond overflow — pandas
datetime64[ns]overflows at2262-04-11. For dates beyond that range, usedatetime64[us]or store as strings. - Fiscal calendar — always confirm the start month with the user; don't assume January.
Safety
This skill prefers to add new columns rather than mutate originals. When asked to overwrite, follow the backup policy in CONVENTIONS.md — confirm an existing backup or create one before writing.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: danielrosehill
- Source: danielrosehill/Claude-Data-Wrangler-plugin
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.