Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Validate NIST SP 800-53 control implementation with evidence mapping, gap analysis, automated testing, and compliance reporting across 20 control families.
.claude/skills/williamzujkowski-nist-sp-800-53-compliance-validator/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 287% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 112% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 395% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 442% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 332% | 0% |
Invoke this skill when validating NIST SP 800-53 control implementation, conducting compliance assessments, identifying gaps, or generating evidence-based compliance reports for federal systems, contractors, or organizations adopting NIST frameworks.
Trigger Conditions:
Out of Scope:
NOW_ET using NIST/time.gov semantics (America/New_York, ISO-8601).Abort Conditions:
Use Case: Fast path for common scenarios (80% of requests).
Steps:
| Baseline | Control Count | Use Case | |----------|---------------|----------| | LOW | 125 controls | Low-impact systems (public info) | | MODERATE | 325 controls | Moderate-impact (most federal systems) | | HIGH | 421 controls | High-impact (national security, critical infrastructure) |
| Control ID | Control Name | Family | Validation Check | |------------|--------------|--------|------------------| | AC-2 | Account Management | Access Control | User account policies exist, periodic review evidence | | SI-2 | Flaw Remediation | System Integrity | Patch management process, vulnerability scan results | | CM-2 | Baseline Configuration | Configuration Mgmt | Configuration baselines documented, change control | | IA-2 | Identification & Auth | Identification/Auth | MFA enabled, authentication logs | | AU-2 | Event Logging | Audit & Accountability | Audit policy configured, log retention evidence |
Output: Baseline mapping, 5-control quick check, gap score, top 3 priorities.
Use Case: Full control family validation for production assessments.
Steps:
Complete Control Families (1,189 controls total):
| ID | Family Name | Controls | Focus Area | |----|-------------|----------|------------| | AC | Access Control | 25 | User access, permissions, least privilege | | AT | Awareness and Training | 6 | Security training, role-based awareness | | AU | Audit and Accountability | 16 | Event logging, audit review, log protection | | CA | Assessment, Authorization, Monitoring | 9 | Security assessments, continuous monitoring, authorization | | CM | Configuration Management | 14 | Baseline configs, change control, inventory | | CP | Contingency Planning | 13 | Backup, disaster recovery, alternate processing | | IA | Identification and Authentication | 12 | MFA, credential management, authenticator management | | IR | Incident Response | 10 | Incident handling, reporting, testing | | MA | Maintenance | 6 | System maintenance, remote maintenance, tools | | MP | Media Protection | 8 | Media sanitization, storage, transport | | PE | Physical and Environmental Protection | 20 | Physical access, visitor control, environmental controls | | PL | Planning | 11 | Security planning, architecture, privacy | | PM | Program Management | 31 | Risk management strategy, governance | | PS | Personnel Security | 9 | Position categorization, termination, sanctions | | PT | PII Processing and Transparency | 8 | Privacy controls, consent, data minimization | | RA | Risk Assessment | 10 | Risk assessments, vulnerability scanning | | SA | System and Services Acquisition | 23 | SDLC security, supply chain, developer testing | | SC | System and Communications Protection | 51 | Network security, crypto, transmission integrity | | SI | System and Information Integrity | 23 | Flaw remediation, malware protection, monitoring | | SR | Supply Chain Risk Management | 12 | Supply chain risk, supplier assessments, provenance |
Total: 1,189 controls across 20 families (NIST SP 800-53 Rev 5.2.0, accessed 2025-10-26T18:38:09-0400).
Assessment Methods (per NIST SP 800-53A):
| Method | Description | Evidence Examples | |--------|-------------|-------------------| | Examine | Review documentation, policies, procedures | Policies, plans, procedures, configs, logs | | Interview | Discuss with responsible personnel | Interview notes, attestations, walkthroughs | | Test | Execute technical validation, scanning, testing | Scan results, penetration tests, automated checks |
Control Assessment Example (AC-2: Account Management):
yamlcontrol_id: AC-2 control_name: Account Management family: AC (Access Control) baseline: MODERATE assessment_objectives: - AC-2a: Organization manages system accounts (types, establish, activate, modify, review, disable, remove) - AC-2(1): Automated account management (enhancements) - AC-2(2): Automated account removal/disabling assessment_methods: examine: - Account management policy and procedures - Configuration baselines for account creation - Account review logs (periodic review evidence) interview: - System administrators on account lifecycle - HR on termination processes test: - Automated scan: verify inactive accounts disabled after 90 days - Test account creation workflow: verify approval required - Verify MFA enforcement for privileged accounts evidence_artifacts: - account_policy.pdf (policy document) - user_access_review_2025-Q3.xlsx (quarterly review) - qualys_scan_2025-10-15.pdf (automated compliance scan) - iam_config_baseline.json (baseline configuration) validation_result: Implemented (Green) findings: All assessment objectives met with documented evidence compliance_score: 100%
Evidence Collection (60-70% of compliance effort - automate for efficiency):
| Control Family | Evidence Type | Automated Collection | Manual Collection | |----------------|---------------|----------------------|-------------------| | AC (Access Control) | IAM configs, user lists, MFA logs | ✅ Config exports, SIEM logs | Policies, interviews | | SI (System Integrity) | Patch status, vuln scans, AV logs | ✅ Qualys/Nessus scans, SCCM | Patch procedures | | CM (Config Mgmt) | Config baselines, change logs | ✅ Git commits, Terraform state | Change board minutes | | AU (Audit/Accountability) | Audit logs, SIEM retention | ✅ Splunk/ELK exports | Log retention policy | | IA (Identification/Auth) | MFA enrollment, auth logs | ✅ Okta/AD reports | Authentication policy |
Automation Benefits:
Gap Analysis Workflow:
| Gap Type | Description | Remediation Effort | |----------|-------------|--------------------| | Implementation Gap | Control not implemented | High (design, deploy, test) | | Evidence Gap | Control implemented, no evidence | Low (document, collect artifacts) | | Partial Implementation | Control partially implemented | Medium (complete missing aspects) | | Enhancement Gap | Base control OK, enhancements missing | Medium (add enhancements) |
python# Risk score = (Control Criticality × Impact × Likelihood) / Effort # Criticality: LOW=1, MODERATE=2, HIGH=3 # Impact: 1-5 (data breach, downtime, regulatory) # Likelihood: 1-5 (exploitability, threat landscape) # Effort: hours to remediate def calculate_priority(control): criticality = {"LOW": 1, "MODERATE": 2, "HIGH": 3}[control.baseline] impact = control.impact_score # 1-5 likelihood = control.likelihood_score # 1-5 effort = control.remediation_hours risk_score = (criticality * impact * likelihood) / effort return risk_score # Sort gaps by risk_score descending → prioritized remediation list
| Priority | Control | Gap Type | Effort | Risk Score | Deadline | |----------|---------|----------|--------|------------|----------| | 1 | SI-2 (Flaw Remediation) | Implementation | 40h | 18.0 | 30 days | | 2 | IA-2(1) (MFA) | Partial | 20h | 15.0 | 45 days | | 3 | CM-2 (Baseline Config) | Evidence | 8h | 12.0 | 60 days | | 4 | AC-2(4) (Auto Account Mgmt) | Enhancement | 30h | 10.0 | 90 days |
OSCAL Artifacts:
Generate OSCAL SAR (Security Assessment Report):
json{ "assessment-results": { "uuid": "550e8400-e29b-41d4-a716-446655440000", "metadata": { "title": "NIST SP 800-53 Assessment Results", "published": "2025-10-26T18:38:09-04:00", "version": "1.0", "oscal-version": "1.1.2" }, "import-ap": { "href": "#assessment-plan-uuid" }, "results": [ { "uuid": "result-uuid-1", "title": "AC-2 Account Management Assessment", "finding": { "uuid": "finding-uuid-1", "title": "AC-2 Implemented with Evidence", "description": "Account management controls fully implemented.", "related-observations": [ { "observation-uuid": "obs-uuid-1", "type": "examine", "description": "Account management policy reviewed and current." }, { "observation-uuid": "obs-uuid-2", "type": "test", "description": "Automated test: Inactive accounts disabled after 90 days." } ] }, "risk": { "status": "satisfied" } } ], "assessment-log": { "entries": [ { "title": "Assessment Start", "start": "2025-10-15T09:00:00-04:00", "end": "2025-10-26T17:00:00-04:00" } ] } } }
OSCAL POA&M for Gaps:
json{ "plan-of-action-and-milestones": { "uuid": "poam-uuid-1", "metadata": { "title": "NIST SP 800-53 Remediation Plan", "published": "2025-10-26T18:38:09-04:00" }, "poam-items": [ { "uuid": "poam-item-1", "title": "Implement SI-2 Flaw Remediation", "description": "Deploy automated patch management solution.", "related-findings": ["finding-uuid-si2"], "milestones": [ { "uuid": "milestone-1", "title": "Deploy SCCM/Patch Management", "description": "Install and configure patch management platform.", "target-date": "2025-11-25" }, { "uuid": "milestone-2", "title": "Test Patch Deployment", "description": "Pilot patch deployment to test systems.", "target-date": "2025-12-10" } ] } ] } }
Output: Complete control family assessment, evidence mapping, gap analysis, remediation plan, OSCAL SAR/POA&M.
Use Case: Continuous monitoring, multi-system assessments, automated testing at scale.
Steps:
NIST SP 800-137 Continuous Monitoring Framework:
Automated Control Testing (60-80% effort reduction):
| Control Family | Automated Test | Tool/Method | Frequency | |----------------|----------------|-------------|-----------| | AC (Access Control) | Inactive account detection | SIEM query, IAM API | Daily | | SI (System Integrity) | Vulnerability scanning | Qualys, Nessus, Tenable | Weekly | | CM (Config Management) | Configuration drift detection | Chef InSpec, AWS Config | Continuous | | AU (Audit/Accountability) | Log collection and retention | Splunk, ELK, SIEM | Continuous | | IA (Identification/Auth) | MFA enrollment rate | Okta/AD reports | Daily |
Continuous Monitoring Dashboard:
NIST SP 800-53 Compliance Dashboard (Real-Time)
Overall Compliance Score: 87% (325/375 controls implemented)
Control Families (MODERATE Baseline):
┌─────────────────────────────────────────────────────────────┐
│ AC (Access Control): ████████░░ 85% (21/25) │
│ SI (System Integrity): ███████░░░ 78% (18/23) │
│ CM (Configuration Mgmt): ██████████ 92% (13/14) │
│ AU (Audit/Accountability): ████████░░ 81% (13/16) │
│ IA (Identification/Auth): ██████████ 100% (12/12) │
└─────────────────────────────────────────────────────────────┘
Recent Findings (Last 7 Days):
❌ SI-2: 15 systems missing critical patches (detected 2025-10-24)
⚠️ AC-2(3): 3 inactive accounts not disabled (detected 2025-10-25)
✅ CM-2: Configuration drift remediated on 10 systems (2025-10-26)
Trending:
↗ Compliance improved 5% from 82% → 87% (last 30 days)
↘ Open findings decreased from 45 → 32 (last 30 days)Scenario: Assess 50 federal systems across 3 data centers.
Approach:
Common Controls (Inheritance):
| Control | Common Control Provider | Inheriting Systems | |---------|-------------------------|---------------------| | PE-2 (Physical Access) | Data Center Operations | All systems in DC1, DC2, DC3 | | IR-1 (Incident Response Policy) | CISO Office | All organizational systems | | CP-1 (Contingency Planning Policy) | Business Continuity Team | All organizational systems |
Benefit: Assess common controls once, inherit across all systems (reduce duplication).
Policy-as-Code Validation:
python# Example: Chef InSpec test for AC-2 (Account Management) control 'AC-2' do impact 1.0 title 'Account Management' desc 'Verify inactive accounts are disabled after 90 days' # Check all user accounts describe command('lastlog -b 90') do its('stdout') { should eq '' } # No logins in last 90 days end # Verify accounts are disabled users = command('awk -F: \'{print $1}\' /etc/passwd').stdout.split("\n") users.each do |user| describe user(user) do it { should_not be_disabled } if user_last_login(user) < 90.days.ago end end end
Infrastructure Scanning:
bash# AWS Config rule for SI-2 (Flaw Remediation) aws configservice put-config-rule --config-rule '{ "ConfigRuleName": "ec2-managedinstance-patch-compliance-status-check", "Description": "Checks if patches are applied to EC2 instances", "Source": { "Owner": "AWS", "SourceIdentifier": "EC2_MANAGEDINSTANCE_PATCH_COMPLIANCE_STATUS_CHECK" }, "Scope": { "ComplianceResourceTypes": ["AWS::EC2::Instance"] } }'
Key Updates in Release 5.2.0:
Executive Order 14306 Compliance:
Output: Continuous monitoring architecture, multi-system assessment, policy-as-code automation, 5.2.0 compliance.
Uncertainty Thresholds:
Required Fields:
yamlbaseline: - level: "LOW" | "MODERATE" | "HIGH" | "CUSTOM" control_count: integer control_families: array (AC, SI, CM, etc.) validation_results: - control_id: string (e.g., "AC-2") control_name: string family: string implementation_status: "Implemented" | "Partial" | "Not Implemented" evidence_artifacts: array (file names, URLs) compliance_score: float (0-100%) findings: string (summary) evidence_mapping: - control_family: string automated_evidence: array (log files, configs, scan results) manual_evidence: array (policies, interviews, procedures) collection_method: "automated" | "manual" | "hybrid" gap_analysis: - gap_type: "Implementation" | "Evidence" | "Partial" | "Enhancement" control_id: string risk_score: float remediation_effort: integer (hours) priority: integer (1=highest) deadline: date remediation_plan: - control_id: string remediation_action: string assigned_to: string (role/team) effort_estimate: integer (hours) target_date: date dependencies: array (other controls) oscal_outputs: - sar: object (OSCAL SAR JSON) poam: object (OSCAL POA&M JSON) format: "json" | "xml" | "yaml" compliance_metrics: - overall_score: float (0-100%) by_family: object ({AC: 85%, SI: 78%, ...}) trend: "improving" | "stable" | "declining" finding_count: integer continuous_monitoring: # If T3 - enabled: boolean assessment_frequency: string (daily, weekly, monthly) automated_tests: array (test names) dashboard_url: string
Token Tier Minimums:
AC-2 Account Management Validation:
yamlcontrol_id: AC-2 control_name: Account Management family: AC (Access Control) implementation_status: Implemented evidence_artifacts: - account_management_policy.pdf - quarterly_user_review_2025-Q3.xlsx - qualys_inactive_account_scan.pdf compliance_score: 100% findings: All assessment objectives met. Automated testing confirms inactive accounts disabled after 90 days.
See examples/nist-moderate-baseline-assessment.txt for a complete MODERATE baseline assessment.
Official NIST Documentation:
OSCAL Integration:
Automation Tools:
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 8,025 | 18,431 | +130% | 1 | 1 | 0% | 1,579 | 11,038 | +599% | 0 | 0 | — |
case-02 | fail→pass | 8,657 | 6,147 | -29% | 1 | 1 | 0% | 2,138 | 8,281 | +287% | 0 | 0 | — |
case-21 | pass→pass | 3,391 | 1,903 | -44% | 1 | 1 | 0% | 688 | 7,199 | +946% | 0 | 0 | — |
case-03 | fail→fail | 20,664 | 17,184 | -17% | 1 | 1 | 0% | 4,370 | 10,764 | +146% | 0 | 0 | — |
case-04 | fail→fail | 31,222 | 24,783 | -21% | 1 | 1 | 0% | 6,215 | 13,153 | +112% | 0 | 0 | — |
case-05 | fail→pass | 28,923 | 25,152 | -13% | 1 | 1 | 0% | 6,205 | 13,143 | +112% | 0 | 0 | — |
case-06 | pass→pass | 11,250 | 9,383 | -17% | 1 | 1 | 0% | 2,145 | 8,856 | +313% | 0 | 0 | — |
case-07 | pass→pass | 12,663 | 10,659 | -16% | 1 | 1 | 0% | 2,296 | 9,192 | +300% | 0 | 0 | — |
case-22 | pass→pass | 5,092 | 4,116 | -19% | 1 | 1 | 0% | 950 | 7,714 | +712% | 0 | 0 | — |
case-08 | fail→pass | 8,094 | 7,396 | -9% | 1 | 1 | 0% | 1,738 | 8,605 | +395% | 0 | 0 | — |
case-09 | fail→pass | 8,774 | 8,342 | -5% | 1 | 1 | 0% | 1,565 | 8,486 | +442% | 0 | 0 | — |
case-10 | fail→pass | 10,653 | 9,362 | -12% | 1 | 1 | 0% | 2,079 | 8,985 | +332% | 0 | 0 | — |
case-11 | fail→pass | 6,185 | 4,326 | -30% | 1 | 1 | 0% | 1,325 | 7,784 | +487% | 0 | 0 | — |
case-12 | pass→pass | 8,859 | 4,099 | -54% | 1 | 1 | 0% | 1,901 | 7,813 | +311% | 0 | 0 | — |
case-13 | fail→pass | 16,804 | 16,060 | -4% | 1 | 1 | 0% | 3,176 | 9,958 | +214% | 0 | 0 | — |
case-14 | fail→pass | 9,564 | 8,427 | -12% | 1 | 1 | 0% | 1,783 | 8,528 | +378% | 0 | 0 | — |
case-15 | fail→pass | 11,305 | 9,575 | -15% | 1 | 1 | 0% | 1,958 | 8,559 | +337% | 0 | 0 | — |
case-16 | fail→pass | 12,271 | 5,119 | -58% | 1 | 1 | 0% | 2,125 | 7,736 | +264% | 0 | 0 | — |
case-17 | fail→pass | 24,099 | 19,490 | -19% | 1 | 1 | 0% | 3,955 | 10,713 | +171% | 0 | 0 | — |
case-18 | fail→pass | 6,382 | 4,423 | -31% | 1 | 1 | 0% | 1,245 | 7,769 | +524% | 0 | 0 | — |
case-19 | pass→pass | 9,790 | 17,209 | +76% | 1 | 1 | 0% | 1,978 | 10,077 | +409% | 0 | 0 | — |
case-20 | fail→pass | 10,749 | 13,335 | +24% | 1 | 1 | 0% | 1,984 | 9,804 | +394% | 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. The headline lift of +59 percentage points is the difference between those two pass rates over the 22 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.