Reusable prompt templates for construction AI tasks: cost estimation, schedule analysis, document processing, BIM queries. Structured prompts for consistent results.
SkillScore64Maintained
Automatic
◆AI Engineer pack
Last verified 8/23/2026
What it changes
Passed 14 of 22 test cases with the skill, and 10 of 22 without it.
Without skill45%
With skill64%
Checks it passed that the model alone missed
The root object contains total_delay_days as a top-level key.
The output formats unit costs as floating point numbers instead of currency formatted strings.
The implementation compares supplied keyword keys against input_variables to detect missing keys.
and 3 more in the full report
5 fixed9 passed either way7 still failing1 broke
Pass-rate lift
+18 pp
Tokens
+160%
Agent turns
0%
Response time
-8%
Model gemini-3.6-flashMeasured 8/23/2026v114 of 22 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 5 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 5
Prompt
Write a Python code snippet using the PromptTemplate dataclass where input_variables is defined as ["line_items", "location"], but only location is supplied to format(). Describe the resulting exception behaviour.
What was checked, without and with the skill
Checked
Without skill
With skill
The implementation compares supplied keyword keys against input_variables to detect missing keys.
Missed
Passed
The error output names the specific variable key that was omitted during formatting.
Passed
Passed
case-12 · gemini-3.6-flash · 8/23/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md569 linessingle file
Prompt Templates for Construction AI
Overview
Structured, reusable prompt templates optimized for construction industry AI tasks. These templates ensure consistent, high-quality outputs for cost estimation, schedule analysis, document processing, and BIM data queries.
Template Framework
Base Template Structure
from dataclasses import dataclass, field
from typing import Dict, Any, List, Optional
from string import Template
import json
@dataclass
class PromptTemplate:
name: str
description: str
template: str
input_variables: List[str]
output_format: Optional[str] = None
examples: List[Dict[str, Any]] = field(default_factory=list)
category: str = "general"
version: str = "1.0"
def format(self, **kwargs) -> str:
"""Format template with provided variables."""
# Validate all required variables are provided
missing = [v for v in self.input_variables if v not in kwargs]
if missing:
raise ValueError(f"Missing required variables: {missing}")
# Format template
prompt = Template(self.template).safe_substitute(**kwargs)
# Add output format if specified
if self.output_format:
prompt += f"\n\nOutput Format:\n{self.output_format}"