verification-loop-construction
Comprehensive verification system for construction automation deliverables. Use after completing estimates, schedules, reports, or data processing tasks to ensure quality.
What this skill does
# Verification Loop for Construction Automation
A systematic verification framework ensuring quality of construction automation outputs before delivery or deployment.
## When to Use
Invoke this skill:
- After generating cost estimates
- After creating or updating schedules
- After processing BIM/CAD data
- After generating reports (daily, weekly, monthly)
- After running data pipelines
- Before submitting documents to clients
- Before deploying automation workflows
## Verification Phases
### Phase 1: Data Integrity Check
```python
def verify_data_integrity(output: dict) -> VerificationResult:
"""Check data completeness and consistency"""
checks = []
# Completeness check
required_fields = get_required_fields(output['type'])
missing = [f for f in required_fields if f not in output]
checks.append({
'name': 'Completeness',
'status': 'PASS' if not missing else 'FAIL',
'details': f'Missing fields: {missing}' if missing else 'All required fields present'
})
# Consistency check
inconsistencies = find_inconsistencies(output)
checks.append({
'name': 'Consistency',
'status': 'PASS' if not inconsistencies else 'WARN',
'details': inconsistencies or 'No inconsistencies found'
})
# Referential integrity
broken_refs = check_references(output)
checks.append({
'name': 'Referential Integrity',
'status': 'PASS' if not broken_refs else 'FAIL',
'details': f'Broken references: {broken_refs}' if broken_refs else 'All references valid'
})
return VerificationResult(checks)
```
#### Data Integrity Checklist
- [ ] All required fields populated
- [ ] No duplicate records
- [ ] Foreign keys resolve correctly
- [ ] Date formats consistent
- [ ] Currency values formatted correctly
- [ ] Units of measure standardized
### Phase 2: Business Logic Verification
```python
def verify_business_logic(output: dict) -> VerificationResult:
"""Verify construction-specific business rules"""
checks = []
# Cost estimate checks
if output['type'] == 'cost_estimate':
# Verify totals match line items
calculated_total = sum(item['amount'] for item in output['line_items'])
declared_total = output['total']
variance = abs(calculated_total - declared_total)
checks.append({
'name': 'Total Accuracy',
'status': 'PASS' if variance < 0.01 else 'FAIL',
'details': f'Calculated: {calculated_total}, Declared: {declared_total}'
})
# Verify markup applied correctly
for item in output['line_items']:
expected_markup = item['base_cost'] * (1 + item['markup_rate'])
if abs(item['amount'] - expected_markup) > 0.01:
checks.append({
'name': f'Markup Check - {item["id"]}',
'status': 'FAIL',
'details': f'Expected: {expected_markup}, Got: {item["amount"]}'
})
# Schedule checks
if output['type'] == 'schedule':
# Verify dependencies
for task in output['tasks']:
for pred_id in task.get('predecessors', []):
pred = find_task(output['tasks'], pred_id)
if pred and pred['end_date'] > task['start_date']:
checks.append({
'name': f'Dependency Violation - {task["id"]}',
'status': 'FAIL',
'details': f'Task starts before predecessor {pred_id} ends'
})
# Verify resource allocation
resource_conflicts = find_resource_conflicts(output['tasks'])
checks.append({
'name': 'Resource Conflicts',
'status': 'PASS' if not resource_conflicts else 'WARN',
'details': resource_conflicts or 'No resource conflicts'
})
return VerificationResult(checks)
```
#### Business Logic Checklist
**For Cost Estimates:**
- [ ] Line item totals = declared subtotals
- [ ] Subtotals + markups = grand total
- [ ] Tax calculations correct
- [ ] Contingency applied consistently
- [ ] Unit prices within expected ranges
- [ ] Quantities match QTO
**For Schedules:**
- [ ] Dependencies respected (no backwards links)
- [ ] Critical path calculated correctly
- [ ] No resource over-allocation
- [ ] Milestones properly dated
- [ ] Working days/calendar correct
- [ ] Float values logical
**For BIM Data:**
- [ ] Element counts match expected
- [ ] Property values within ranges
- [ ] Spatial relationships valid
- [ ] Level associations correct
- [ ] Classification codes valid
### Phase 3: Format & Standards Compliance
```python
def verify_standards_compliance(output: dict) -> VerificationResult:
"""Verify compliance with construction standards"""
checks = []
# CSI classification check
if 'csi_codes' in output:
invalid_codes = []
for code in output['csi_codes']:
if not validate_csi_code(code):
invalid_codes.append(code)
checks.append({
'name': 'CSI Code Validation',
'status': 'PASS' if not invalid_codes else 'WARN',
'details': f'Invalid codes: {invalid_codes}' if invalid_codes else 'All codes valid'
})
# CWICR mapping check
if output.get('cwicr_mapped'):
unmapped = [item for item in output['items'] if not item.get('cwicr_id')]
checks.append({
'name': 'CWICR Mapping',
'status': 'PASS' if not unmapped else 'WARN',
'details': f'{len(unmapped)} items unmapped' if unmapped else 'All items mapped'
})
# Document format check
if output['type'] == 'report':
format_issues = validate_report_format(output)
checks.append({
'name': 'Report Format',
'status': 'PASS' if not format_issues else 'WARN',
'details': format_issues or 'Format compliant'
})
return VerificationResult(checks)
```
#### Standards Compliance Checklist
- [ ] CSI MasterFormat codes valid (6-digit)
- [ ] UniFormat codes valid (if used)
- [ ] CWICR mappings present
- [ ] ISO dates (YYYY-MM-DD)
- [ ] Currency format consistent
- [ ] Measurement units consistent (metric/imperial)
### Phase 4: Output Quality Check
```python
def verify_output_quality(output: dict) -> VerificationResult:
"""Check output quality and presentation"""
checks = []
# Formatting check
if output['format'] == 'excel':
checks.extend([
{
'name': 'Column Headers',
'status': check_headers_present(output),
'details': 'Headers in first row'
},
{
'name': 'Number Formatting',
'status': check_number_format(output),
'details': 'Currencies and percentages formatted'
},
{
'name': 'Print Area',
'status': check_print_area(output),
'details': 'Print area set for clean output'
}
])
if output['format'] == 'pdf':
checks.extend([
{
'name': 'Page Layout',
'status': check_page_layout(output),
'details': 'Margins and orientation correct'
},
{
'name': 'Images Rendered',
'status': check_images(output),
'details': 'All images/charts visible'
},
{
'name': 'Fonts Embedded',
'status': check_fonts(output),
'details': 'Fonts embedded for portability'
}
])
# Data visualization check
if 'charts' in output:
for chart in output['charts']:
checks.append({
'name': f'Chart - {chart["title"]}',
'status': validate_chart(chart),
'details': 'Labels, legends, and daRelated in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.