Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Jan 29, 2026

Formalizes the fuzzy schedule time syntax with a W3C-compliant specification document.

Changes

  • New specification: docs/src/content/docs/reference/fuzzy-schedule-specification.md (1,110 lines)
    • RFC 2119 conformance with MUST/SHALL/SHOULD keywords
    • ABNF grammar for complete syntax coverage
    • Flexible hash algorithm requirements with FNV-1a as reference implementation
    • Three conformance levels (Basic, Standard, Complete)
    • 50+ test cases across syntax, time formats, timezones, and scattering

Coverage

Syntax patterns: Daily (basic/around/between), weekly (basic/day/constrained), hourly, intervals (minutes/hours/days/weeks), bi-weekly, tri-weekly

Time formats: 24-hour (HH:MM), 12-hour (Ham/Hpm), keywords (midnight/noon)

Timezone support: UTC offset syntax (utc±N, utc±HH:MM), conversion algorithm, day boundary handling

Scattering algorithm: Flexible hash function requirements (determinism, distribution, stability, integer output) with FNV-1a as recommended reference implementation. Alternative hash functions (MurmurHash, xxHash, CityHash) are explicitly supported. Workflow identifier format (owner/repo/path), day/time wrapping logic.

Hash Function Flexibility

The specification allows implementations to use any hash function that meets the requirements:

  • Determinism: Same input produces same output across platforms
  • Distribution: Uniformly distributed outputs
  • Stability: No behavior changes across versions
  • Integer output: Suitable for modulo operations

FNV-1a is provided as a reference implementation (SHOULD use), with explicit support for alternatives like MurmurHash, xxHash, and CityHash.

Example

# Fuzzy schedule with timezone
schedule: daily around 14:00 utc+9

# Generates placeholder
FUZZY:DAILY_AROUND:5:0 * * *

# Scatters within 4:00-6:00 UTC (±60min window)
# Workflow A: 13 4 * * * (4:13 AM UTC)
# Workflow B: 42 5 * * * (5:42 AM UTC)

Located alongside mcp-gateway.md for consistency with existing specifications.


Custom agent used: w3c-specification-writer
AI technical specification writer following W3C conventions and best practices for formal specifications

Original prompt

Create a w3c style specification for the fuzzy schedule time syntax. Store generated spec in the same folder as mcp-gateway specification.

Custom agent used: w3c-specification-writer
AI technical specification writer following W3C conventions and best practices for formal specifications


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Create W3C style specification for fuzzy schedule time syntax Add W3C-style specification for fuzzy schedule time syntax Jan 29, 2026
Copilot AI requested a review from pelikhan January 29, 2026 05:49

#### 6.2.1 Hash Algorithm

An implementation MUST use the FNV-1a (Fowler-Noll-Vo) 32-bit hash algorithm defined as:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot an implementation may use any hash function

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated in a9d17dc. The specification now allows any hash function that meets the requirements (determinism, distribution, stability, integer output). FNV-1a is recommended as a reference implementation (SHOULD), and alternative hash functions like MurmurHash, xxHash, or CityHash are explicitly permitted. The FNV reference has been moved from normative to informative references.

- Relaxed FNV-1a requirement from MUST to SHOULD
- Added general hash function requirements (determinism, distribution, stability)
- Allowed alternative hash functions (MurmurHash, xxHash, CityHash)
- Moved FNV reference from normative to informative
- Bumped version to 1.1.0

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI requested a review from pelikhan January 29, 2026 06:04
@pelikhan pelikhan marked this pull request as ready for review January 29, 2026 06:10
@pelikhan pelikhan merged commit 6817d80 into main Jan 29, 2026
1 check passed
@pelikhan pelikhan deleted the copilot/create-fuzzy-schedule-specification branch January 29, 2026 06:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants