compliance-tracker
Track regulatory compliance for construction projects. Monitor permits, certifications, inspections, and regulatory requirements with automated alerts and reporting.
What this skill does
# Compliance Tracker
## Overview
Track and manage regulatory compliance across construction projects. Monitor permits, licenses, certifications, inspections, and regulatory requirements. Automated alerts for expirations and deadlines.
> "Proactive compliance tracking prevents costly project delays and penalties" — DDC Community
## Compliance Categories
```
┌─────────────────────────────────────────────────────────────────┐
│ COMPLIANCE TRACKING │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Permits Certifications Inspections Training │
│ ─────── ────────────── ─────────── ──────── │
│ 🏗️ Building 👷 Workers 📋 Fire 🎓 OSHA │
│ 🔥 Fire 🏢 Company ⚡ Electrical 🦺 Safety │
│ ⚡ Electrical 🔧 Equipment 🔧 Mechanical 🏗️ Trade │
│ 🚰 Plumbing 📜 Insurance 🏗️ Structural 🚗 Equipment │
│ │
└─────────────────────────────────────────────────────────────────┘
```
## Technical Implementation
```python
from dataclasses import dataclass, field
from typing import List, Dict, Optional
from enum import Enum
from datetime import datetime, timedelta
import json
class ComplianceType(Enum):
PERMIT = "permit"
LICENSE = "license"
CERTIFICATION = "certification"
INSURANCE = "insurance"
INSPECTION = "inspection"
TRAINING = "training"
SUBMITTAL = "submittal"
class ComplianceStatus(Enum):
ACTIVE = "active"
PENDING = "pending"
EXPIRED = "expired"
EXPIRING_SOON = "expiring_soon"
NOT_APPLICABLE = "not_applicable"
REJECTED = "rejected"
class Priority(Enum):
CRITICAL = "critical" # Work stoppage if missing
HIGH = "high" # Significant impact
MEDIUM = "medium" # Moderate impact
LOW = "low" # Administrative
@dataclass
class ComplianceItem:
id: str
name: str
compliance_type: ComplianceType
category: str
description: str
# Dates
issue_date: Optional[datetime] = None
expiration_date: Optional[datetime] = None
renewal_date: Optional[datetime] = None
# Status
status: ComplianceStatus = ComplianceStatus.PENDING
priority: Priority = Priority.MEDIUM
# Ownership
responsible_party: str = ""
issuing_authority: str = ""
# Documentation
document_url: str = ""
reference_number: str = ""
notes: str = ""
# Tracking
alert_days_before: int = 30
last_checked: Optional[datetime] = None
@dataclass
class ComplianceAlert:
id: str
compliance_item_id: str
alert_type: str # expiring, expired, action_required
message: str
due_date: datetime
acknowledged: bool = False
acknowledged_by: str = ""
class ComplianceTracker:
"""Track construction regulatory compliance."""
# Standard compliance requirements by project type
STANDARD_REQUIREMENTS = {
"commercial": [
{"name": "Building Permit", "type": ComplianceType.PERMIT, "category": "Building", "priority": Priority.CRITICAL},
{"name": "Fire Permit", "type": ComplianceType.PERMIT, "category": "Fire", "priority": Priority.CRITICAL},
{"name": "Electrical Permit", "type": ComplianceType.PERMIT, "category": "Electrical", "priority": Priority.HIGH},
{"name": "Plumbing Permit", "type": ComplianceType.PERMIT, "category": "Plumbing", "priority": Priority.HIGH},
{"name": "Mechanical Permit", "type": ComplianceType.PERMIT, "category": "Mechanical", "priority": Priority.HIGH},
{"name": "General Liability Insurance", "type": ComplianceType.INSURANCE, "category": "Insurance", "priority": Priority.CRITICAL},
{"name": "Workers Comp Insurance", "type": ComplianceType.INSURANCE, "category": "Insurance", "priority": Priority.CRITICAL},
{"name": "OSHA 10/30 Training", "type": ComplianceType.TRAINING, "category": "Safety", "priority": Priority.HIGH},
],
"residential": [
{"name": "Building Permit", "type": ComplianceType.PERMIT, "category": "Building", "priority": Priority.CRITICAL},
{"name": "Electrical Permit", "type": ComplianceType.PERMIT, "category": "Electrical", "priority": Priority.HIGH},
{"name": "Plumbing Permit", "type": ComplianceType.PERMIT, "category": "Plumbing", "priority": Priority.HIGH},
{"name": "General Liability Insurance", "type": ComplianceType.INSURANCE, "category": "Insurance", "priority": Priority.CRITICAL},
]
}
# Required inspections by permit type
REQUIRED_INSPECTIONS = {
"Building": ["Foundation", "Framing", "Insulation", "Final"],
"Electrical": ["Rough-in", "Service", "Final"],
"Plumbing": ["Underground", "Rough-in", "Final"],
"Mechanical": ["Rough-in", "Final"],
"Fire": ["Underground", "Rough-in", "Final", "Alarm"]
}
def __init__(self, project_id: str, project_name: str):
self.project_id = project_id
self.project_name = project_name
self.compliance_items: Dict[str, ComplianceItem] = {}
self.alerts: List[ComplianceAlert] = []
def initialize_requirements(self, project_type: str = "commercial") -> List[ComplianceItem]:
"""Initialize standard compliance requirements."""
requirements = self.STANDARD_REQUIREMENTS.get(project_type, [])
created = []
for req in requirements:
item = self.add_compliance_item(
name=req["name"],
compliance_type=req["type"],
category=req["category"],
description=f"Standard {req['name']} requirement",
priority=req["priority"]
)
created.append(item)
return created
def add_compliance_item(self, name: str, compliance_type: ComplianceType,
category: str, description: str = "",
priority: Priority = Priority.MEDIUM,
expiration_date: datetime = None,
responsible_party: str = "",
issuing_authority: str = "") -> ComplianceItem:
"""Add compliance item to track."""
item_id = f"COMP-{datetime.now().strftime('%Y%m%d%H%M%S')}-{len(self.compliance_items)}"
item = ComplianceItem(
id=item_id,
name=name,
compliance_type=compliance_type,
category=category,
description=description,
priority=priority,
expiration_date=expiration_date,
responsible_party=responsible_party,
issuing_authority=issuing_authority
)
self.compliance_items[item_id] = item
return item
def update_status(self, item_id: str, status: ComplianceStatus,
issue_date: datetime = None,
expiration_date: datetime = None,
reference_number: str = "",
document_url: str = "") -> ComplianceItem:
"""Update compliance item status."""
if item_id not in self.compliance_items:
raise ValueError(f"Compliance item {item_id} not found")
item = self.compliance_items[item_id]
item.status = status
item.last_checked = datetime.now()
if issue_date:
item.issue_date = issue_date
if expiration_date:
item.expiration_date = expiration_date
if reference_number:
item.reference_number = reference_number
if document_url:
item.document_url = document_url
return item
def check_all_status(self) -> List[ComplianceAlert]:
"""Check status of all items and generate alerts."""
new_alerts = []
today = datetimRelated in Data & Analytics
clawarr-suite
IncludedComprehensive management for self-hosted media stacks (Sonarr, Radarr, Lidarr, Readarr, Prowlarr, Bazarr, Overseerr, Plex, Tautulli, SABnzbd, Recyclarr, Unpackerr, Notifiarr, Maintainerr, Kometa, FlareSolverr). Deep library exploration, analytics, dashboard generation, content management, request handling, subtitle management, indexer control, download monitoring, quality profile sync, library cleanup automation, notification routing, collection/overlay management, and media tracker integration (Trakt, Letterboxd, Simkl).
querying-soql
IncludedSOQL query generation, optimization, and analysis with 100-point scoring. Use this skill when the user needs SOQL/SOSL authoring or optimization: natural-language-to-query generation, relationship queries, aggregates, query-plan analysis, and performance or safety improvements for Salesforce queries. TRIGGER when: user writes, optimizes, or debugs SOQL/SOSL queries, touches .soql files, or asks about relationship queries, aggregates, or query performance. DO NOT TRIGGER when: bulk data operations (use handling-sf-data), Apex DML logic (use generating-apex), or report/dashboard queries.
app-store-optimization
IncludedApp Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklists, and tracking ranking changes.
habit-flow
IncludedAI-powered atomic habit tracker with natural language logging, streak tracking, smart reminders, and coaching. Use for creating habits, logging completions naturally ("I meditated today"), viewing progress, and getting personalized coaching.
app-store-optimization
IncludedApp Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklists, and tracking ranking changes.
visualizing-data
IncludedBuilds dashboards, reports, and data-driven interfaces requiring charts, graphs, or visual analytics. Provides systematic framework for selecting appropriate visualizations based on data characteristics and analytical purpose. Includes 24+ visualization types organized by purpose (trends, comparisons, distributions, relationships, flows, hierarchies, geospatial), accessibility patterns (WCAG 2.1 AA compliance), colorblind-safe palettes, and performance optimization strategies. Use when creating visualizations, choosing chart types, displaying data graphically, or designing data interfaces.