-
Notifications
You must be signed in to change notification settings - Fork 87
Build a deterministic time-window eligibility engine for GuildPass rules #380
Copy link
Copy link
Closed
Labels
GrantFox OSSGrantFox Open Source Sponsorship program tagGrantFox Open Source Sponsorship program tagMaybe RewardedIssue may qualify for a reward upon successful completion per campaign rulesIssue may qualify for a reward upon successful completion per campaign rulesThird CampaignOfficial FWC26 campaign issue — eligible for campaign scoring and rewardsOfficial FWC26 campaign issue — eligible for campaign scoring and rewardsadvancedAdvanced difficulty tasks requiring significant domain knowledge and implementation effortAdvanced difficulty tasks requiring significant domain knowledge and implementation effortbackendBackend services, application logic, persistence integration, and server-side functionalityBackend services, application logic, persistence integration, and server-side functionalityconsistencyPattern and convention standardization across the codebase for uniformityPattern and convention standardization across the codebase for uniformitypolicyPolicy definition, evaluation, rule engines, and deterministic access decision logicPolicy definition, evaluation, rule engines, and deterministic access decision logic
Description
Activity
Metadata
Metadata
Assignees
Labels
GrantFox OSSGrantFox Open Source Sponsorship program tagGrantFox Open Source Sponsorship program tagMaybe RewardedIssue may qualify for a reward upon successful completion per campaign rulesIssue may qualify for a reward upon successful completion per campaign rulesThird CampaignOfficial FWC26 campaign issue — eligible for campaign scoring and rewardsOfficial FWC26 campaign issue — eligible for campaign scoring and rewardsadvancedAdvanced difficulty tasks requiring significant domain knowledge and implementation effortAdvanced difficulty tasks requiring significant domain knowledge and implementation effortbackendBackend services, application logic, persistence integration, and server-side functionalityBackend services, application logic, persistence integration, and server-side functionalityconsistencyPattern and convention standardization across the codebase for uniformityPattern and convention standardization across the codebase for uniformitypolicyPolicy definition, evaluation, rule engines, and deterministic access decision logicPolicy definition, evaluation, rule engines, and deterministic access decision logic
Difficulty: Advanced
Type: Feature
Recommended labels (if available in this repo): policy, backend, consistency, advanced
Background
GuildPass rules may need to apply only during defined time windows, for example temporary access grants, campaign eligibility, governance periods or reward qualification windows.
This issue introduces a generic time-window evaluator that remains independent of any particular GuildPass domain feature.
Problem
Time-based rules are easy to implement inconsistently. Boundary inclusivity, timezone handling and overlapping intervals can produce different results across modules if there is no common primitive.
Expected Outcome
Implement a pure time-window engine that evaluates whether an instant falls inside one or more configured windows using explicit and deterministic boundary semantics.
Suggested Implementation
A window may resemble:
The engine should:
anyandallsemantics where useful;Acceptance Criteria
pnpm typecheckpasses.pnpm buildpasses.pnpm testpasses.Likely Affected Files/Directories
Independence Requirement
This issue must remain a generic rule-evaluation primitive and must not depend on another policy or domain issue.