Skill-Details
warranty-tracker
Directly manages construction closeout warranties and claims.
Vor Nutzung prüfen
Die automatische Prüfung bewertet Relevanz, nicht Sicherheit oder Empfehlung. Lies vor der Nutzung die Quellanweisungen.
SKILL.md
Dieser Auszug wurde bei der Prüfung gespeichert. Die externe Quelle enthält die vollständige und aktuelle Version.
---
name: "warranty-tracker"
description: "Track and manage construction warranties. Monitor expiration dates, claims, and manufacturer documentation."
homepage: "https://datadrivenconstruction.io"
metadata: {"openclaw": {"emoji": "✅", "os": ["darwin", "linux", "win32"], "homepage": "https://datadrivenconstruction.io", "requires": {"bins": ["python3"]}}}
---
# Warranty Tracker
## Business Case
### Problem Statement
Warranty management is often neglected:
- Missing warranty documentation
- Expired warranties untracked
- Difficult to file claims
- Scattered across multiple files
### Solution
Centralized warranty tracking system that monitors expiration dates, stores documentation, and manages claims.
### Business Value
- **Cost savings** - File claims before expiration
- **Organization** - Central warranty repository
- **Compliance** - Meet handover requirements
- **Proactive** - Automatic expiration alerts
## Technical Implementation
```python
import pandas as pd
from datetime import datetime, date, timedelta
from typing import Dict, Any, List, Optional
from dataclasses import dataclass, field
from enum import Enum
class WarrantyType(Enum):
"""Types of warranties."""
MANUFACTURER = "manufacturer"
CONTRACTOR = "contractor"
INSTALLER = "installer"
EXTENDED = "extended"
PERFORMANCE = "performance"
class WarrantyStatus(Enum):
"""Warranty status."""
ACTIVE = "active"
EXPIRING_SOON = "expiring_soon" # Within 90 days
EXPIRED = "expired"
CLAIMED = "claimed"
VOID = "void"
class ClaimStatus(Enum):
"""Warranty claim status."""
DRAFT = "draft"
SUBMITTED = "submitted"
UNDER_REVIEW = "under_review"
APPROVED = "approved"
DENIED = "denied"
RESOLVED = "resolved"
class BuildingSystem(Enum):
"""Building systems."""
STRUCTURAL = "structural"
ROOFING = "roofing"
HVAC = "hvac"
ELECTRICAL = "electrical"
PLUMBING = "plumbing"
ELEVATORS = "elevators"
FIRE_PROTECTION = "fire_protection"
GLAZING = "glazing"
FLOORING = "flooring"
PAINTING = "painting"
APPLIANCES = "appliances"
EXTERIOR = "exterior"
OTHER = "other"
@dataclass
class WarrantyDocument:
"""Warranty document reference."""
document_id: str
filename: str
document_type: str # certificate, manual, conditions
upload_date: date
file_path: str
@dataclass
class Warranty:
"""Warranty record."""
warranty_id: str
item_description: str
system: BuildingSystem
warranty_type: WarrantyType
manufacturer: str
contractor: str
start_date: date
end_date: date
duration_years: int
coverage_details: str
exclusions: str
contact_name: str
contact_phone: str
contact_email: str
location: str
documents: List[WarrantyDocument] = field(default_factory=list)
notes: str = ""
@property
def status(self) -> WarrantyStatus:
"""Calculate current warranty status."""
today = date.today()
if today > self.end_date:
return WarrantyStatus.EXPIRED
elif (self.end_date - today).days <= 90:
return WarrantyStatus.EXPIRING_SOON
else:
return WarrantyStatus.ACTIVE
@property
def days_remaining(self) -> int:
"""Days until warranty expires."""
return (self.end_date - date.today()).days
def to_dict(self) -> Dict[str, Any]:
return {
'warranty_id': self.warranty_id,
'item': self.item_description,
'system': self.system.value,
'type': self.warranty_type.value,
'manufacturer': self.manufacturer,
'contractor': self.contractor,
'start_date': self.start_date.isoformat(),
'end_date': self.end_date.isoformat(),
'duration_years': self.duration_years,
'status': self.status.value,
'days_remaining': self.days_remaining,
'contact': self.contact_email
Vollständige Quelle auf GitHub lesen (öffnet externe Seite)