You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							146 lines
						
					
					
						
							4.0 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							146 lines
						
					
					
						
							4.0 KiB
						
					
					
				
								# Time Handling in Development Workflow
							 | 
						|
								
							 | 
						|
								**Author**: Matthew Raymer
							 | 
						|
								**Date**: 2025-08-17
							 | 
						|
								**Status**: 🎯 **ACTIVE** - Production Ready
							 | 
						|
								
							 | 
						|
								## Overview
							 | 
						|
								
							 | 
						|
								This guide establishes **how time should be referenced and used** across the
							 | 
						|
								development workflow. It is not tied to any one project, but applies to **all
							 | 
						|
								feature development, issue investigations, ADRs, and documentation**.
							 | 
						|
								
							 | 
						|
								## General Principles
							 | 
						|
								
							 | 
						|
								- **Explicit over relative**: Always prefer absolute dates (`2025-08-17`) over
							 | 
						|
								
							 | 
						|
								  relative references like "last week."
							 | 
						|
								
							 | 
						|
								- **ISO 8601 Standard**: Use `YYYY-MM-DD` format for all date references in
							 | 
						|
								
							 | 
						|
								  docs, issues, ADRs, and commits.
							 | 
						|
								
							 | 
						|
								- **Time zones**: Default to **UTC** unless explicitly tied to user-facing
							 | 
						|
								
							 | 
						|
								  behavior.
							 | 
						|
								
							 | 
						|
								- **Precision**: Only specify as much precision as needed (date vs. datetime vs.
							 | 
						|
								
							 | 
						|
								  timestamp).
							 | 
						|
								
							 | 
						|
								- **Consistency**: Align time references across ADRs, commits, and investigation
							 | 
						|
								
							 | 
						|
								  reports.
							 | 
						|
								
							 | 
						|
								## In Documentation & ADRs
							 | 
						|
								
							 | 
						|
								- Record decision dates using **absolute ISO dates**.
							 | 
						|
								
							 | 
						|
								- For ongoing timelines, state start and end explicitly (e.g., `2025-08-01` →
							 | 
						|
								
							 | 
						|
								  `2025-08-17`).
							 | 
						|
								
							 | 
						|
								- Avoid ambiguous terms like *recently*, *last month*, or *soon*.
							 | 
						|
								
							 | 
						|
								- For time-based experiments (e.g., A/B tests), always include:
							 | 
						|
								
							 | 
						|
								  - Start date
							 | 
						|
								
							 | 
						|
								  - Expected duration
							 | 
						|
								
							 | 
						|
								  - Review date checkpoint
							 | 
						|
								
							 | 
						|
								## In Code & Commits
							 | 
						|
								
							 | 
						|
								- Use **UTC timestamps** in logs, DB migrations, and serialized formats.
							 | 
						|
								
							 | 
						|
								- In commits, link changes to **date-bound ADRs or investigation docs**.
							 | 
						|
								
							 | 
						|
								- For migrations, include both **applied date** and **intended version window**.
							 | 
						|
								
							 | 
						|
								- Use constants for known fixed dates; avoid hardcoding arbitrary strings.
							 | 
						|
								
							 | 
						|
								## In Investigations & Research
							 | 
						|
								
							 | 
						|
								- Capture **when** an issue occurred (absolute time or version tag).
							 | 
						|
								
							 | 
						|
								- When describing failures: note whether they are **time-sensitive** (e.g.,
							 | 
						|
								
							 | 
						|
								  after
							 | 
						|
								  migrations, cache expirations).
							 | 
						|
								
							 | 
						|
								- Record diagnostic timelines in ISO format (not relative).
							 | 
						|
								
							 | 
						|
								- For performance regressions, annotate both **baseline timeframe** and
							 | 
						|
								
							 | 
						|
								  **measurement timeframe**.
							 | 
						|
								
							 | 
						|
								## Collaboration Hooks
							 | 
						|
								
							 | 
						|
								- During reviews, verify **time references are clear, absolute, and
							 | 
						|
								
							 | 
						|
								  standardized**.
							 | 
						|
								
							 | 
						|
								- In syncs, reframe relative terms ("this week") into shared absolute
							 | 
						|
								
							 | 
						|
								  references.
							 | 
						|
								
							 | 
						|
								- Tag ADRs with both **date created** and **review by** checkpoints.
							 | 
						|
								
							 | 
						|
								## Self-Check Before Submitting
							 | 
						|
								
							 | 
						|
								- [ ] Did I check the time using the **developer's actual system time and
							 | 
						|
								
							 | 
						|
								      timezone**?
							 | 
						|
								
							 | 
						|
								- [ ] Am I using absolute ISO dates?
							 | 
						|
								
							 | 
						|
								- [ ] Is UTC assumed unless specified otherwise?
							 | 
						|
								
							 | 
						|
								- [ ] Did I avoid ambiguous relative terms?
							 | 
						|
								
							 | 
						|
								- [ ] If duration matters, did I specify both start and end?
							 | 
						|
								
							 | 
						|
								- [ ] For future work, did I include a review/revisit date?
							 | 
						|
								
							 | 
						|
								---
							 | 
						|
								
							 | 
						|
								**See also**:
							 | 
						|
								
							 | 
						|
								- `.cursor/rules/development/time_implementation.mdc` for
							 | 
						|
								
							 | 
						|
								  detailed implementation instructions
							 | 
						|
								
							 | 
						|
								- `.cursor/rules/development/time_examples.mdc` for practical examples and patterns
							 | 
						|
								
							 | 
						|
								**Status**: Active time handling guidelines
							 | 
						|
								**Priority**: High
							 | 
						|
								**Estimated Effort**: Ongoing reference
							 | 
						|
								**Dependencies**: None
							 | 
						|
								**Stakeholders**: Development team, Documentation team
							 | 
						|
								
							 | 
						|
								**Maintainer**: Matthew Raymer
							 | 
						|
								**Next Review**: 2025-09-17
							 | 
						|
								
							 | 
						|
								## Model Implementation Checklist
							 | 
						|
								
							 | 
						|
								### Before Time-Related Work
							 | 
						|
								
							 | 
						|
								- [ ] **Time Context**: Understand what time information is needed
							 | 
						|
								- [ ] **Format Review**: Review time formatting standards (UTC, ISO 8601)
							 | 
						|
								- [ ] **Platform Check**: Identify platform-specific time requirements
							 | 
						|
								- [ ] **User Context**: Consider user's timezone and preferences
							 | 
						|
								
							 | 
						|
								### During Time Implementation
							 | 
						|
								
							 | 
						|
								- [ ] **UTC Usage**: Use UTC for all system and log timestamps
							 | 
						|
								- [ ] **Format Consistency**: Apply consistent time formatting patterns
							 | 
						|
								- [ ] **Timezone Handling**: Properly handle timezone conversions
							 | 
						|
								- [ ] **User Display**: Format times appropriately for user display
							 | 
						|
								
							 | 
						|
								### After Time Implementation
							 | 
						|
								
							 | 
						|
								- [ ] **Validation**: Verify time formats are correct and consistent
							 | 
						|
								- [ ] **Testing**: Test time handling across different scenarios
							 | 
						|
								- [ ] **Documentation**: Update relevant documentation with time patterns
							 | 
						|
								- [ ] **Review**: Confirm implementation follows time standards
							 | 
						|
								
							 |