Skill 详情
delay-analysis
Specialized construction schedule-delay analysis.
使用前先检查
自动化审核只检查相关性,不代表安全审查或推荐。使用前请阅读来源中的说明。
SKILL.md
这段内容是审核时保存的快照。外部来源才是完整且最新的版本。
---
name: "delay-analysis"
description: "Analyze construction schedule delays for claims and recovery. Perform time impact analysis, identify delay causes, calculate damages, and document for disputes."
homepage: "https://datadrivenconstruction.io"
metadata: {"openclaw": {"emoji": "⏱️", "os": ["darwin", "linux", "win32"], "homepage": "https://datadrivenconstruction.io", "requires": {"bins": ["python3"]}}}
---
# Delay Analysis
## Overview
Analyze construction schedule delays for project recovery and claims. Perform time impact analysis (TIA), identify concurrent delays, calculate delay damages, and prepare documentation for dispute resolution.
> "Proper delay analysis is essential for fair resolution of construction disputes" — DDC Community
## Delay Analysis Methods
```
┌─────────────────────────────────────────────────────────────────┐
│ DELAY ANALYSIS METHODS │
├─────────────────────────────────────────────────────────────────┤
│ │
│ As-Planned vs As-Built │ Time Impact Analysis (TIA) │
│ ───────────────────── │ ──────────────────────────── │
│ Compare original to │ Insert delay events into │
│ actual schedule │ schedule to measure impact │
│ │ │
│ Windows Analysis │ Collapsed As-Built │
│ ──────────────── │ ───────────────── │
│ Divide project into │ Remove delays from as-built │
│ time periods │ to find "but-for" completion │
│ │
└─────────────────────────────────────────────────────────────────┘
```
## Technical Implementation
```python
from dataclasses import dataclass, field
from typing import List, Dict, Optional, Tuple
from datetime import datetime, timedelta
from enum import Enum
from collections import defaultdict
class DelayType(Enum):
EXCUSABLE_COMPENSABLE = "excusable_compensable" # Owner caused - time + money
EXCUSABLE_NON_COMPENSABLE = "excusable_non_compensable" # Neither party - time only
NON_EXCUSABLE = "non_excusable" # Contractor caused - no relief
CONCURRENT = "concurrent" # Both parties - complex
class DelayCause(Enum):
OWNER_CHANGE = "owner_change"
LATE_INFORMATION = "late_information"
DIFFERING_CONDITIONS = "differing_conditions"
PERMIT_DELAY = "permit_delay"
WEATHER = "weather"
LABOR_SHORTAGE = "labor_shortage"
MATERIAL_DELAY = "material_delay"
SUBCONTRACTOR = "subcontractor"
COORDINATION = "coordination"
ACCESS = "access"
FORCE_MAJEURE = "force_majeure"
@dataclass
class DelayEvent:
id: str
description: str
cause: DelayCause
delay_type: DelayType
start_date: datetime
end_date: datetime
affected_activities: List[str]
responsible_party: str
documented: bool = True
supporting_docs: List[str] = field(default_factory=list)
calculated_impact: int = 0 # days
concurrent_with: List[str] = field(default_factory=list)
@dataclass
class ScheduleVersion:
version_id: str
version_type: str # baseline, update, as-built
data_date: datetime
completion_date: datetime
activities: Dict[str, Dict] # activity_id -> {start, finish, duration}
@dataclass
class WindowPeriod:
window_id: str
start_date: datetime
end_date: datetime
planned_progress: float
actual_progress: float
delay_days: int
delay_events: List[str]
responsible_parties: Dict[str, int] # party -> delay days
@dataclass
class DelayAnalysisReport:
project_name: str
analysis_date: datetime
original_completion: datetime
actual_completion: datetime
total_delay: int
excusable_delay: int
non_excusable_delay: int
concurrent_delay: int
del在 GitHub 阅读完整来源 (打开外部页面)