Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Automate compliance checks for NIST, FedRAMP, FISMA, GDPR, HIPAA, and fintech regulations with OSCAL artifact generation and evidence validation.
.claude/skills/williamzujkowski-compliance-automation-engine/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 3279% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 236% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 187% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 145% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 263% | 0% |
⚠️ DEPRECATION NOTICE
This skill has been deprecated as of 2025-10-26 and refactored into the compliance-orchestrator agent (/agents/compliance-orchestrator/AGENT.md).
Reason for deprecation: This skill violated CLAUDE.md principles by implementing a 15-step procedure (T1: 2 steps, T2: 7 steps, T3: 8 steps) when skills should be ≤2 steps. Multi-step compliance workflows require proper orchestration and are better suited as agents.
Migration path: Use the compliance-orchestrator agent with the following command:
bashorchestrator use compliance-orchestrator \ --framework [fedramp-moderate|nist-800-53|fisma|hipaa|gdpr] \ --control-baseline [low|moderate|high] \ --evidence-path /path/to/evidence \ --system-context @system_context.json \ --validation-mode [quick|standard|comprehensive]
See /agents/compliance-orchestrator/MIGRATION.md for detailed migration instructions.
Timeline:
Original Purpose (for historical reference):
Trigger conditions:
Use this skill when:
Do NOT use this skill for:
Time normalization:
NOW_ET = <NIST time.gov semantics, America/New_York, ISO-8601>
Example: 2025-10-25T21:30:36-04:00Input validation:
framework must be one of: nist-csf, nist-800-53, fedramp, fisma, gdpr, hipaa, pci-dss, sox, fintech-compositecontrol_baseline required for NIST/FedRAMP frameworks: low, moderate, highevidence_path must exist and be readable; skip if empty (report as gap)system_context must include at minimum: system_name, system_id, boundary_description, authorization_boundaryvalidation_mode defaults to standard (T2) if not specifiedFramework version checks:
Dependency checks:
Goal: Rapid assessment of control coverage and critical gaps for 80% use cases
Target scenarios:
Steps:
framework + control_baselinecoverage_pct = (controls_with_evidence / total_controls) * 100critical_gaps = controls with family priority 1 and zero evidencestatus = "ready" if coverage_pct >= 95 else "gaps-identified"json { "framework": "fedramp-moderate", "total_controls": 325, "implemented": 310, "in_progress": 10, "not_started": 5, "coverage_pct": 95.4, "critical_gaps": ["AC-2(1)", "AU-6(1)", "IR-4"], "status": "gaps-identified", "next_action": "address critical gaps before full assessment" }
Token budget: ~1800 tokens (control list loading + basic logic)
Goal: Detailed control-by-control validation with evidence mapping and OSCAL SSP generation
Target scenarios:
Steps:
evidence_path for artifactsimplemented, partially-implemented, planned, not-applicablemetadata: system info, responsible parties, publication timestamp (NOW_ET)import-profile: reference to applied baseline (e.g., FedRAMP Moderate)system-characteristics: boundary, data flows, componentssystem-implementation: components, users, inventorycontrol-implementation: per-control implementation statements and evidence referencesback-matter: evidence artifacts as resources Priority 1 (Critical - Required for ATO):
Gap: No evidence of automated account provisioning/deprovisioning Recommendation: Implement SCIM with IdP; document in AC-2 policy Effort: 2-4 weeks | Owner: IAM team
Priority 2 (High - Required for full compliance):
Gap: Logs collected but no automated analysis/alerting Recommendation: Deploy SIEM with correlation rules; reference in AU-6 procedure Effort: 4-6 weeks | Owner: SecOps team
Token budget: ~5500 tokens (detailed control iteration + OSCAL generation)
Key decision points:
Goal: Deep-dive multi-framework analysis with cross-framework mapping, continuous monitoring design, and full OSCAL artifact suite generation
Target scenarios:
Steps:
SSP (System Security Plan):
system_context)SAP (Security Assessment Plan):
SAR (Security Assessment Report):
POA&M (Plan of Action & Milestones):
json { "metrics": [ {"control": "AC-2", "metric": "failed_login_attempts", "threshold": 5, "period": "15min"}, {"control": "AU-6", "metric": "unreviewed_audit_records", "threshold": 1000, "period": "24h"}, {"control": "CM-3", "metric": "unapproved_config_changes", "threshold": 0, "period": "1h"} ], "alerting": { "critical": ["AC-*", "IA-*", "SC-*"], "high": ["AU-*", "CM-*", "IR-*"] } }
Token budget: ~11500 tokens (multi-framework mapping + full OSCAL suite + monitoring design)
Key decision points:
Ambiguity resolution:
partially-implemented with justification; require manual adjudicationAbort conditions:
framework not recognized → emit error and list valid frameworkssystem_context missing required fields → emit TODO list of missing fieldsTier escalation triggers:
Quality thresholds:
compliance_report (JSON):
json{ "metadata": { "timestamp": "2025-10-25T21:30:36-04:00", "framework": "fedramp-moderate", "system_id": "SYS-001", "system_name": "Example SaaS Platform", "assessment_tier": "T3" }, "summary": { "total_controls": 325, "implemented": 310, "partially_implemented": 10, "planned": 3, "not_applicable": 2, "coverage_pct": 95.4, "status": "ready-with-findings", "estimated_ato_date": "2025-12-15" }, "gaps": [ { "control_id": "AC-2(1)", "title": "Account Management | Automated Account Management", "severity": "critical", "gap_description": "No evidence of automated account provisioning", "risk_score": 300, "remediation": { "recommendation": "Implement SCIM with IdP", "effort_weeks": 4, "owner": "IAM Team", "target_date": "2025-11-22" } } ], "metrics": { "controls_by_family": {"AC": 25, "AU": 18, "...": "..."}, "evidence_count": 847, "evidence_types": {"policy": 45, "procedure": 68, "config": 312, "test": 422} } }
oscal_artifacts (object):
json{ "ssp": "<OSCAL 1.1.2 compliant SSP JSON>", "sap": "<OSCAL SAP JSON if T3>", "sar": "<OSCAL SAR JSON if T3>", "poam": "<OSCAL POA&M JSON if gaps exist>" }
remediation_plan (markdown):
Prioritized list with:
dashboard_data (JSON):
Time-series compatible metrics for visualization:
Required fields (all tiers):
metadata.timestamp (NOW_ET)summary.total_controlssummary.coverage_pctsummary.statusOptional fields (T2+):
oscal_artifacts.sspremediation_planOptional fields (T3 only):
oscal_artifacts.sap, .sar, .poamdashboard_datamulti_framework_mappingExample 1: T2 FedRAMP Moderate Assessment
yaml# Input framework: fedramp-moderate control_baseline: moderate evidence_path: /compliance/evidence/fedramp-mod system_context: system_name: "Cloud SaaS Platform" system_id: "CSP-001" boundary_description: "AWS GovCloud VPC with web/app/db tiers" authorization_boundary: "All components in VPC vpc-abc123" validation_mode: standard # Processing (excerpt) # Loaded 325 controls from FedRAMP Moderate baseline # Scanned 847 evidence files # Identified 10 gaps (3 critical, 5 high, 2 medium) # Generated OSCAL SSP (245KB JSON) # Output (summary) coverage: 96.9% status: ready-with-findings critical_gaps: ["AC-2(1)", "AU-6(1)", "IR-4(1)"] oscal_ssp_generated: true remediation_priority: "Address 3 critical gaps in 4-6 weeks"
Token budgets (enforced):
Safety checks:
Auditability:
Determinism:
Validation requirements:
NIST Publications:
OSCAL Resources:
FedRAMP Resources:
Regulatory Resources:
Cloud Provider Compliance:
Tools and Validation:
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 9,410 | 7,402 | -21% | 1 | 1 | 0% | 257 | 8,683 | +3279% | 0 | 0 | — |
case-02 | fail→fail | 23,438 | 16,642 | -29% | 1 | 1 | 0% | 5,687 | 11,369 | +100% | 0 | 0 | — |
case-03 | fail→fail | 25,956 | 13,381 | -48% | 1 | 1 | 0% | 6,244 | 10,219 | +64% | 0 | 0 | — |
case-04 | pass→pass | 15,386 | 7,769 | -50% | 1 | 1 | 0% | 3,204 | 8,367 | +161% | 0 | 0 | — |
case-05 | fail→pass | 15,358 | 13,467 | -12% | 1 | 1 | 0% | 2,792 | 9,373 | +236% | 0 | 0 | — |
case-06 | fail→fail | 14,792 | 13,189 | -11% | 1 | 1 | 0% | 2,722 | 9,479 | +248% | 0 | 0 | — |
case-07 | fail→pass | 11,636 | 3,907 | -66% | 1 | 1 | 0% | 2,683 | 7,709 | +187% | 0 | 0 | — |
case-08 | fail→pass | 12,584 | 4,455 | -65% | 1 | 1 | 0% | 3,241 | 7,933 | +145% | 0 | 0 | — |
case-09 | pass→pass | 5,984 | 4,927 | -18% | 1 | 1 | 0% | 1,466 | 7,996 | +445% | 0 | 0 | — |
case-10 | fail→pass | 10,834 | 6,004 | -45% | 1 | 1 | 0% | 2,245 | 8,147 | +263% | 0 | 0 | — |
case-11 | pass→pass | 5,106 | 3,445 | -33% | 1 | 1 | 0% | 1,160 | 7,679 | +562% | 0 | 0 | — |
case-12 | fail→pass | 6,722 | 4,157 | -38% | 1 | 1 | 0% | 1,371 | 7,812 | +470% | 0 | 0 | — |
case-13 | fail→pass | 9,474 | 6,249 | -34% | 1 | 1 | 0% | 1,841 | 8,238 | +347% | 0 | 0 | — |
case-14 | pass→pass | 8,558 | 3,942 | -54% | 1 | 1 | 0% | 1,645 | 7,630 | +364% | 0 | 0 | — |
case-15 | fail→pass | 8,877 | 6,500 | -27% | 1 | 1 | 0% | 1,947 | 8,332 | +328% | 0 | 0 | — |
case-16 | fail→pass | 6,696 | 2,988 | -55% | 1 | 1 | 0% | 1,455 | 7,522 | +417% | 0 | 0 | — |
case-17 | fail→pass | 7,070 | 2,246 | -68% | 1 | 1 | 0% | 1,456 | 7,378 | +407% | 0 | 0 | — |
case-18 | pass→pass | 12,164 | 9,715 | -20% | 1 | 1 | 0% | 2,494 | 8,704 | +249% | 0 | 0 | — |
case-19 | fail→pass | 11,343 | 4,152 | -63% | 1 | 1 | 0% | 1,941 | 7,874 | +306% | 0 | 0 | — |
case-20 | pass→pass | 3,213 | 2,664 | -17% | 1 | 1 | 0% | 584 | 7,418 | +1170% | 0 | 0 | — |
case-21 | fail→pass | 8,355 | 7,367 | -12% | 1 | 1 | 0% | 1,839 | 8,694 | +373% | 0 | 0 | — |
case-22 | pass→pass | 14,693 | 12,807 | -13% | 1 | 1 | 0% | 2,646 | 9,245 | +249% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +55 percentage points is the difference between those two pass rates over the 21 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.