@burglekitt/gmt
Version:
Temporal-based date and time utilities with timezone support and polyfill integration
278 lines (260 loc) • 15.1 kB
YAML
# skills/_artifacts/skill_tree.yaml
# Generated by skill-tree-generator
# Library: /gmt
# Version: 1.14.0
library:
name: '/gmt'
version: 1.14.0
repository: https://github.com/burglekitt/gmt.git
description: Temporal-based date and time utilities with timezone support and polyfill integration
generated_from:
domain_map: 'skills/_artifacts/domain_map.yaml'
skill_spec: 'skills/_artifacts/skill_spec.md'
generated_at: '2026-08-23'
skills:
# Consumer-facing core skills
- name: Get Current Date/Time
slug: get-current
type: core
domain: core-date-operations
path: 'skills/get-current/SKILL.md'
package: 'packages/gmt'
description: Get the current date, time, or timestamp as ISO 8601 strings
sources:
- 'burglekitt/gmt:packages/gmt/src/plain/get/index.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/get/index.ts'
- 'burglekitt/gmt:packages/gmt/src/utc/get/index.ts'
- 'burglekitt/gmt:packages/gmt/src/unix/get/index.ts'
- name: Parse Date/Time
slug: parse-date-time
type: core
domain: core-date-operations
path: 'skills/parse-date-time/SKILL.md'
package: 'packages/gmt'
description: Parse individual components from date/time strings; also parseRfc2822, parseHttp, parseSql, parseRfc3339 for decoding fixed interchange grammars (email Date headers, HTTP headers, SQL datetime literals, RFC 3339)
sources:
- 'burglekitt/gmt:packages/gmt/src/plain/parse/index.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/parse/parseRfc2822.ts'
- 'burglekitt/gmt:packages/gmt/src/utc/parse/parseHttp.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/parse/parseSql.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/parse/parseRfc3339.ts'
- name: Format Date/Time
slug: format-date-time
type: core
domain: core-date-operations
path: 'skills/format-date-time/SKILL.md'
package: 'packages/gmt'
description: Format date/time values for display with locale support; includes plain absolute (formatDate/Time/DateTime), plain relative (formatRelativeDate/Time/DateTime), standalone locale calendar-name lookups (getLocaleEraNames, getLocaleMonthNames, getLocaleWeekdayNames, getLocaleMeridiems), and fixed-grammar named machine formats (formatRfc2822, formatHttp, formatSql, formatRfc3339)
sources:
- 'burglekitt/gmt:packages/gmt/src/plain/format/index.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/locale/index.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/locale/getLocaleEraNames.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/locale/getLocaleMonthNames.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/locale/getLocaleWeekdayNames.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/format/formatRfc2822.ts'
- 'burglekitt/gmt:packages/gmt/src/utc/format/formatHttp.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/format/formatSql.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/format/formatRfc3339.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/locale/getLocaleMeridiems.ts'
- name: Format Relative Time
slug: format-relative-time
type: core
domain: core-date-operations
path: 'skills/format-relative-time/SKILL.md'
package: 'packages/gmt'
description: Produce human-friendly relative strings ("yesterday", "in 2 hours") across plain, zoned, unix, and utc values
requires:
- format-date-time
sources:
- 'burglekitt/gmt:packages/gmt/src/plain/format/formatRelativeDate.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/format/formatRelativeTime.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/format/formatRelativeDateTime.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/format/formatRelativeZoned.ts'
- 'burglekitt/gmt:packages/gmt/src/unix/format/formatRelativeUnix.ts'
- 'burglekitt/gmt:packages/gmt/src/utc/format/formatRelativeUtc.ts'
- name: Calculate Dates
slug: calculate-dates
type: core
domain: core-date-operations
path: 'skills/calculate-dates/SKILL.md'
package: 'packages/gmt'
description: Add or subtract time from dates; add*/subtract* accept an optional overflow ("constrain" | "reject") option, diff* accept optional smallestUnit/roundingIncrement/roundingMode rounding options, addBusinessDays/subtractBusinessDays skip weekends for Mon–Fri arithmetic, clampDate restricts a date to a range, closestDateTo finds the nearest candidate by calendar distance, getLocaleStartOfWeek/getLocaleEndOfWeek compute locale-driven week boundaries
sources:
- 'burglekitt/gmt:packages/gmt/src/plain/calculate/index.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/calculate/clampDate.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/calculate/closestDateTo.ts'
- name: Durations
slug: durations
type: core
domain: core-date-operations
path: 'skills/durations/SKILL.md'
package: 'packages/gmt'
description: Parse, validate, combine, rebalance, and format ISO 8601 duration strings via isValidDuration, parseDuration, addDuration/subtractDuration, normalizeDuration, and formatDuration; bridge diff* functions to duration strings via diffDateAsDuration/diffDateTimeAsDuration/diffZonedAsDuration/diffUnixAsDuration/diffUtcAsDuration
requires:
- calculate-dates
sources:
- 'burglekitt/gmt:packages/gmt/src/duration/index.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/calculate/diffDateAsDuration.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/calculate/diffDateTimeAsDuration.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/calculate/diffZonedAsDuration.ts'
- 'burglekitt/gmt:packages/gmt/src/unix/calculate/diffUnixAsDuration.ts'
- 'burglekitt/gmt:packages/gmt/src/utc/calculate/diffUtcAsDuration.ts'
- name: Compare Dates
slug: compare-dates
type: core
domain: core-date-operations
path: 'skills/compare-dates/SKILL.md'
package: 'packages/gmt'
description: Compare date values for ordering; use isWeekend/isZonedWeekend for locale-aware weekend checks, isBusinessDay for fixed ISO Mon–Fri business-day checks, and getLocaleDayOfWeek/getLocaleZonedDayOfWeek for locale-relative day-of-week indices
sources:
- 'burglekitt/gmt:packages/gmt/src/plain/compare/index.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/compare/index.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/get/index.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/get/index.ts'
- name: Validate Dates
slug: validate-dates
type: core
domain: core-date-operations
path: 'skills/validate-dates/SKILL.md'
package: 'packages/gmt'
description: Validate date/time strings, timezone identifiers, intervals, and ranges; check whether a timezone observes daylight saving time (hasDaylightSaving); list DST transition instants for a timezone in a given year (getDstTransitions); check point-in-interval and interval-in-interval containment; merge overlapping or adjacent intervals; split intervals into sub-intervals by duration unit
sources:
- 'burglekitt/gmt:packages/gmt/src/plain/validate/index.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/interval/validate/index.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/interval/intervalContainsDate.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/interval/intervalContainsTime.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/interval/intervalContainsDateTime.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/interval/intervalUnionDate.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/interval/intervalUnionTime.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/interval/intervalUnionDateTime.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/interval/splitIntervalByUnitDate.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/interval/splitIntervalByUnitTime.ts'
- 'burglekitt/gmt:packages/gmt/src/plain/interval/splitIntervalByUnitDateTime.ts'
- 'burglekitt/gmt:packages/gmt/src/utc/validate/index.ts'
- 'burglekitt/gmt:packages/gmt/src/utc/interval/validate/index.ts'
- 'burglekitt/gmt:packages/gmt/src/utc/interval/intervalContainsUtc.ts'
- 'burglekitt/gmt:packages/gmt/src/utc/interval/intervalUnionUtc.ts'
- 'burglekitt/gmt:packages/gmt/src/utc/interval/splitIntervalByUnitUtc.ts'
- 'burglekitt/gmt:packages/gmt/src/unix/validate/index.ts'
- 'burglekitt/gmt:packages/gmt/src/unix/interval/validate/index.ts'
- 'burglekitt/gmt:packages/gmt/src/unix/interval/intervalContainsUnix.ts'
- 'burglekitt/gmt:packages/gmt/src/unix/interval/intervalUnionUnix.ts'
- 'burglekitt/gmt:packages/gmt/src/unix/interval/splitIntervalByUnitUnix.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/validate/index.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/validate/hasDaylightSaving.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/get/getDstTransitions.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/interval/validate/index.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/interval/intervalContainsZoned.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/interval/intervalUnionZoned.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/interval/splitIntervalByUnitZoned.ts'
- name: Zoned Date Operations
slug: zoned-date-ops
type: core
domain: zoned-date-operations
path: 'skills/zoned-date-ops/SKILL.md'
package: 'packages/gmt'
description: Work with timezone-aware dates and times; includes formatZonedDateTime, formatZonedRange, formatRelativeZoned, convertPlainDateTimeToZoned with full DST disambiguation control, addZoned/subtractZoned with overlap-only DST disambiguation control, clampZoned/closestZonedTo for range restriction and nearest-candidate selection, and the startOfZoned/endOfZoned/startOfQuarterForZoned/endOfQuarterForZoned/mapZonedHoursInDay/getLocaleZonedStartOfWeek/getLocaleZonedEndOfWeek/getLocaleZonedDayOfWeek family (plus unix/ counterparts) with full disambiguation + offset control
sources:
- 'burglekitt/gmt:packages/gmt/src/zoned/get/index.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/format/index.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/validate/index.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/convert/index.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/calculate/addZoned.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/calculate/subtractZoned.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/calculate/startOfZoned.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/calculate/endOfZoned.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/calculate/startOfQuarterForZoned.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/calculate/endOfQuarterForZoned.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/calculate/getLocaleZonedStartOfWeek.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/calculate/getLocaleZonedEndOfWeek.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/calculate/clampZoned.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/calculate/closestZonedTo.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/map/mapZonedHoursInDay.ts'
- 'burglekitt/gmt:packages/gmt/src/unix/calculate/startOfUnix.ts'
- 'burglekitt/gmt:packages/gmt/src/unix/calculate/endOfUnix.ts'
- 'burglekitt/gmt:packages/gmt/src/unix/calculate/startOfQuarterForUnix.ts'
- 'burglekitt/gmt:packages/gmt/src/unix/calculate/endOfQuarterForUnix.ts'
- name: Convert Temporal Types
slug: convert-types
type: core
domain: conversion
path: 'skills/convert-types/SKILL.md'
package: 'packages/gmt'
description: Convert between plain and zoned (with DST disambiguation control), or unix/utc representations; convertDateToCalendar expresses a date in a non-Gregorian CalendarSystem (gregorian, hebrew, islamic-civil, islamic-tabular, islamic-umalqura, japanese, buddhist, taiwan, persian, indian, ethiopic, ethiopic-amete-alem, coptic)
sources:
- 'burglekitt/gmt:packages/gmt/src/plain/convert/index.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/convert/index.ts'
- 'burglekitt/gmt:packages/gmt/src/unix/convert/index.ts'
- 'burglekitt/gmt:packages/gmt/src/utc/convert/index.ts'
- 'burglekitt/gmt:packages/gmt/src/types/calendar-system.ts'
- 'burglekitt/gmt:packages/gmt/src/internal/ethiopicFamilyCalendar.ts'
# Consumer-facing interval skills
- name: Interval Operations
slug: interval-ops
type: core
domain: interval-operations
path: 'skills/interval-ops/SKILL.md'
package: 'packages/gmt'
description: Range math over two-point intervals — validate, contain, overlap, intersect, union, difference, xor, abut, engulf, construct from a point + duration, split by duration unit, and count calendar-unit boundaries across plain, zoned, unix, and utc
requires: []
sources:
- 'burglekitt/gmt:packages/gmt/src/plain/interval/index.ts'
- 'burglekitt/gmt:packages/gmt/src/zoned/interval/index.ts'
- 'burglekitt/gmt:packages/gmt/src/unix/interval/index.ts'
- 'burglekitt/gmt:packages/gmt/src/utc/interval/index.ts'
- 'burglekitt/gmt:packages/gmt/src/duration/validate/isValidDuration.ts'
# Consumer-facing composition skills
- name: App Integration
slug: app-integration
type: composition
domain: integration
path: 'skills/app-integration/SKILL.md'
package: 'packages/gmt'
description: Integrate gmt with application frameworks
- name: Lint Package Suggestion
slug: lint-package-suggestion
type: composition
domain: integration
path: 'skills/lint-package-suggestion/SKILL.md'
package: 'packages/gmt'
description: Recommend appropriate lint packages from toolchain
requires: []
# Lifecycle skills
- name: Issue Creation
slug: issue-creation
type: lifecycle
domain: core-date-operations
path: 'skills/issue-creation/SKILL.md'
package: 'packages/gmt'
description: Create feature requests with proper details for maintainers
- name: PR Contribution
slug: pr-contribution
type: lifecycle
domain: integration
path: 'skills/pr-contribution/SKILL.md'
package: 'packages/gmt'
description: Contribute improvements via pull requests
# Maintainer skills (document how to work on gmt itself)
- name: New Method Implementation
slug: new-method-implementation
type: core
domain: core-date-operations
path: 'skills/new-method-implementation/SKILL.md'
package: 'packages/gmt'
description: Implement or extend a gmt API in packages/gmt/src
- name: Unit Test Generation
slug: unit-test-generation
type: core
domain: core-date-operations
path: 'skills/unit-test-generation/SKILL.md'
package: 'packages/gmt'
description: Write or update gmt unit tests with deterministic Temporal-safe patterns
requires:
- new-method-implementation
- name: API Expansion Workflow
slug: api-expansion-workflow
type: lifecycle
domain: core-date-operations
path: 'skills/api-expansion-workflow/SKILL.md'
package: 'packages/gmt'
description: Handle feature requests for missing gmt functionality