Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add datadrivenconstruction/DDC_Skills_for_AI_Agents_in_Construction --skill standards-compliance-checkergit clone --depth 1 https://github.com/datadrivenconstruction/DDC_Skills_for_AI_Agents_in_ConstructionWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/datadrivenconstruction/ddc_skills_for_ai_agents_in_construction/standards-compliance-checker)<a href="https://agentmods.dev/skills/datadrivenconstruction/ddc_skills_for_ai_agents_in_construction/standards-compliance-checker"><img src="https://agentmods.dev/badge/skills/datadrivenconstruction/ddc_skills_for_ai_agents_in_construction/standards-compliance-checker/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/datadrivenconstruction/ddc_skills_for_ai_agents_in_construction/standards-compliance-checker"><img src="https://agentmods.dev/badge/skills/datadrivenconstruction/ddc_skills_for_ai_agents_in_construction/standards-compliance-checker.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00031 | $0.02508 |
| Opus 5 | $0.00015 | $0.01254 |
| Sonnet 5 | $0.00006 | $0.00502 |
| Haiku 4.5 | $0.00003 | $0.00251 |
Grade A, and why
standards-compliance-checker scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
Copies of this mod
1 near-identical copy found in the catalogue:
- standards-compliance-checker — 100% identical, 0 lines differ
How it starts
The opening of the file, as written. The whole thing — 314 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Standards Compliance Checker
Business Case
Problem Statement
Construction data compliance challenges:
- Multiple standards to meet
- Complex validation rules
- Inconsistent implementations
- Manual checking is error-prone
Solution
Automated compliance checking against major construction data standards including ISO 19650, IFC, COBie, and UniFormat.
Technical Implementation
from typing import Dict, Any, List, Optional
from dataclasses import dataclass, field
from enum import Enum
import re
class Standard(Enum):
ISO_19650 = "iso_19650"
IFC = "ifc"
COBIE = "cobie"
UNIFORMAT = "uniformat"
OMNICLASS = "omniclass"
MASTERFORMAT = "masterformat"
class ComplianceLevel(Enum):
COMPLIANT = "compliant"
MINOR_ISSUES = "minor_issues"
MAJOR_ISSUES = "major_issues"
NON_COMPLIANT = "non_compliant"
@dataclass
class ComplianceIssue:
rule_id: str
rule_name: str
severity: str # error, warning, info
message: str
field: str = ""
value: Any = None
@dataclass
class ComplianceReport:
standard: Standard
total_rules: int
passed: int
failed: int
warnings: int
compliance_level: ComplianceLevel
issues: List[ComplianceIssue] = field(default_factory=list)
class StandardsComplianceChecker:
"""Check compliance with construction data standards."""
def __init__(self):
self.rules: Dict[Standard, List[Dict]] = self._load_rules()
def _load_rules(self) -> Dict[Standard, List[Dict]]:
"""Load compliance rules for each standard."""
return {
Standard.ISO_19650: [
{"id": "ISO-001", "name": "File naming convention", "field": "filename",
"pattern": r"^[A-Z]{2,6}-[A-Z]{2,4}-[A-Z]{2,3}-[A-Z0-9]{2,4}-[A-Z]{2,3}-[A-Z]{2,4}-[A-Z0-9]{3,8}$"},
{"id": "ISO-002", "name": "Status code valid", "field": "status",
"values": ["WIP", "S0", "S1", "S2", "S3", "S4", "A", "B", "CR"]},
{"id": "ISO-003", "name": "Revision format", "field": "revision",
"pattern": r"^P[0-9]{2}|C[0-9]{2}$"},
],
Standard.IFC: [
{"id": "IFC-001", "name": "GUID format", "field": "global_id",
"pattern": r"^[0-9A-Za-z_$]{22}$"},
{"id": "IFC-002", "name": "Name required", "field": "name", "required": True},
{"id": "IFC-003", "name": "ObjectType defined", "field": "object_type", "required": True},
],
Standard.COBIE: [
{"id": "COB-001", "name": "Facility name", "field": "facility_name", "required": True},
{"id": "COB-002", "name": "Space name format", "field": "space_name",
"pattern": r"^[A-Z0-9]{2,10}[-_]?[A-Z0-9]{0,10}$"},
{"id": "COB-003", "name": "Component type", "field": "component_type", "required": True},
{"id": "COB-004", "name": "Manufacturer info", "field": "manufacturer", "required": True},
],
Standard.UNIFORMAT: [
{"id": "UNI-001", "name": "Level 1 code", "field": "level1",
"values": ["A", "B", "C", "D", "E", "F", "G", "Z"]},
{"id": "UNI-002", "name": "Code format", "field": "code",
"pattern": r"^[A-G][0-9]{4}$"},
],
Standard.MASTERFORMAT: [
{"id": "MF-001", "name": "Division format", "field": "division",
"pattern": r"^[0-9]{2}$"},
{"id": "MF-002", "name": "Section format", "field": "section",
"pattern": r"^[0-9]{2}\s?[0-9]{2}\s?[0-9]{2}(\.[0-9]{2})?$"},
]
}
def check_compliance(self, data: Dict[str, Any],
standard: Standard) -> ComplianceReport:
"""Check data against specified standard."""
rules = self.rules.get(standard, [])
issues = []
passed = 0
failed = 0
warnings = 0
for rule in rules:
result = self._check_rule(data, rule)
if result:
issues.append(result)
if result.severity == "error":
failed += 1
else:
warnings += 1
else:
passed += 1
# Determine compliance level
if failed == 0 and warnings == 0:
level = ComplianceLevel.COMPLIANT
elif failed == 0:
level = ComplianceLevel.MINOR_ISSUES
elif failed <= len(rules) * 0.3:
level = ComplianceLevel.MAJOR_ISSUES
else:
level = ComplianceLevel.NON_COMPLIANT
return ComplianceReport(
standard=standard,
total_rules=len(rules),
passed=passed,
failed=failed,
warnings=warnings,
compliance_level=level,
issues=issues
)
def _check_rule(self, data: Dict[str, Any], rule: Dict) -> Optional[ComplianceIssue]:
"""Check single compliance rule."""
field = rule.get('field', '')
value = data.get(field)
# Required check
if rule.get('required') and (value is None or value == ''):
return ComplianceIssue(
rule_id=rule['id'],
rule_name=rule['name'],
severity="error",
message=f"Required field '{field}' is missing",
field=field
)
# Skip other checks if value is empty
if value is None or value == '':
return None
# Pattern check
if 'pattern' in rule:
if not re.match(rule['pattern'], str(value)):
return ComplianceIssue(
rule_id=rule['id'],
rule_name=rule['name'],
severity="error",
message=f"Field '{field}' does not match required format",
field=field,
value=value
)
# Allowed values check
if 'values' in rule:
if value not in rule['values']:
return ComplianceIssue(
rule_id=rule['id'],
rule_name=rule['name'],
severity="error",
message=f"Field '{field}' must be one of: {rule['values']}",
field=field,
value=value
)
return None
def check_multiple_standards(self, data: Dict[str, Any],
standards: List[Standard]) -> Dict[str, ComplianceReport]:
"""Check data against multiple standards."""
reports = {}
for standard in standards:
reports[standard.value] = self.check_compliance(data, standard)
return reports
def check_batch(self, records: List[Dict[str, Any]],
standard: Standard) -> Dict[str, Any]:
"""Check multiple records against standard."""
all_issues = []
compliant_count = 0
for i, record in enumerate(records):
report = self.check_compliance(record, standard)
if report.compliance_level == ComplianceLevel.COMPLIANT:
compliant_count += 1
for issue in report.issues:
all_issues.append({
'record_index': i,
'rule_id': issue.rule_id,
'field': issue.field,
'message': issue.message
})
return {
'standard': standard.value,
'total_records': len(records),
'compliant_records': compliant_count,
'compliance_rate': round(compliant_count / len(records) * 100, 1) if records else 0,
'total_issues': len(all_issues),
'issues': all_issues
}
def add_custom_rule(self, standard: Standard, rule: Dict):
"""Add custom compliance rule."""
if standard not in self.rules:
self.rules[standard] = []
self.rules[standard].append(rule)
def generate_report_summary(self, report: ComplianceReport) -> str:
"""Generate human-readable report summary."""
lines = [
f"Compliance Report: {report.standard.value.upper()}",
"=" * 40,
f"Total Rules: {report.total_rules}",
f"Passed: {report.passed}",
f"Failed: {report.failed}",
f"Warnings: {report.warnings}",
f"Status: {report.compliance_level.value.upper()}",
"",
"Issues:"
]
for issue in report.issues:
lines.append(f" [{issue.severity.upper()}] {issue.rule_id}: {issue.message}")
return "\n".join(lines)
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 314 lines · 31 tokens per session scan A 707cb744fe7c
standards-compliance-checker is a skill published in the GitHub repository datadrivenconstruction/DDC_Skills_for_AI_Agents_in_Construction (310 stars, last pushed 21d ago), licensed MIT. It adds 31 tokens to every session and 2,508 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
compliance-audit
Audits codebases against compliance frameworks (SOC2, HIPAA, PCI-DSS, GDPR, ISO27001, etc.) using parallel agents per subdirectory/sub-repo. Produces a detailed markdown report with line-level code references. Use when you need to check a directory or monorepo for compliance violations before an audit or review.
legal-discovery
Audit e-discovery and litigation document review systems -- data collection pipelines (PST, MBOX, SharePoint, Slack), document processing (OCR via Tesseract/ABBYY, metadata extraction, deduplication), Technology Assisted Review (TAR 1.0/2.0/CAL with recall/precision tracking).
litigation-predictor
Audit litigation analytics and case outcome prediction systems -- ML outcome models (logistic regression, gradient boosting, neural nets with temporal train/test splits), settlement range modeling (Monte Carlo simulation, comparable case matching, BATNA analysis).
sales-readiness
Audit whether a product is ready for enterprise sales. Use when you need to assess SSO/SAML/SCIM support, RBAC maturity, multi-tenancy data isolation, audit logging coverage, public API quality, SLA operational readiness, SOC2/ISO27001 certification gaps, GDPR data residency controls.
audit-support
Analyzes audit readiness systems for internal control testing, evidence collection workflows, statistical sampling methodology, audit finding documentation, and remediation tracking using PCAOB, ISA, and SOX compliance frameworks..
case-outcome-predictor
Audit legal case prediction systems for bias, fairness, accuracy, and ethical guardrails. Use when: 'check my prediction model for bias', 'audit case outcome fairness', 'evaluate legal ML model', 'review sentencing prediction ethics', 'analyze bail risk algorithm', 'fairness metrics for justice system AI'.