agentleFS
euCanneuCann/OSCAL-GRC-SKILLS/skills/advanced-oscal-validator/SKILL.md

advanced-oscal-validator

Skill8 starsChanged 10 months agoMITView on GitHub

Perform comprehensive OSCAL validation using community-inspired patterns including JSON schema validation, business rule validation, cross-reference checking, and best practices from IBM Trestle, oscal-pydantic, and Lula. Use for thorough document quality assurance.

The file

We split this skill into the rules it gives an agent

10 rules. About 0 are common, 10 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈10

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use this skill when you need to:

    line 12
  2. Distinctive:

    Check business rules and best practices

    line 15
  3. Distinctive:

    Ensure FedRAMP-specific requirements are met

    line 17
  4. Distinctive:

    All required control families present

    line 91
  5. Distinctive:

    Verify profile import exists

    line 183
  6. Distinctive:

    Check all baseline controls addressed

    line 184
  7. Distinctive:

    Verify component has title

    line 189
  8. Distinctive:

    Check control implementations reference valid controls

    line 190
  9. Distinctive:

    When asked "Thoroughly validate this SSP":

    line 229
  10. Distinctive:

    Check all UUIDs for format and uniqueness

    line 233

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Advanced OSCAL Validator Skill

Perform comprehensive OSCAL document validation using advanced patterns inspired by community tools including IBM Trestle, oscal-pydantic, and Defense Unicorns' Lula.

When to Use This Skill

Use this skill when you need to:

  • Perform thorough validation beyond basic structure
  • Validate against NIST OSCAL JSON schemas
  • Check business rules and best practices
  • Validate cross-references and links
  • Ensure FedRAMP-specific requirements are met

⛔ Authoritative Data Requirement

Validation checks user-provided documents against structural rules.

What This Skill Does (Safe)

  • Validates OSCAL structure and syntax
  • Checks UUID formats and references
  • Verifies required fields are present
  • Confirms cross-references resolve
  • Applies business rule logic to YOUR document

What Requires Authoritative Sources

Validation TypeRequires
Baseline completenessThe baseline profile being validated against
Control reference validationThe catalog that controls reference
FedRAMP-specific rulesFedRAMP baseline

For Baseline Validation

To validate SSP completeness against a baseline, I need both:
1. Your SSP document (provided)
2. The baseline profile it should meet (e.g., FedRAMP Moderate)

I cannot determine if controls are missing without the authoritative baseline.

Validation Levels

LevelDescriptionChecks
SchemaJSON schema complianceStructure, types, required fields
SemanticBusiness logicUUIDs, references, dates
QualityBest practicesCompleteness, clarity
FrameworkFedRAMP/NIST specificBaseline compliance

Advanced Validation Categories

Schema Validation

Validate against official NIST OSCAL JSON schemas:

  • Catalog schema
  • Profile schema
  • SSP schema
  • Component definition schema
  • Assessment schemas

UUID Validation

  • Format: RFC 4122 compliant
  • Uniqueness: No duplicates within document
  • References: All UUID refs resolve

Cross-Reference Validation

  • Control references exist in imported catalogs
  • Party references resolve within document
  • Component references are valid
  • Resource links are accessible

Business Rule Validation

RuleDescription
BIZ-001SSP must import a profile
BIZ-002All baseline controls must be addressed
BIZ-003Implementation status required for each control
BIZ-004Responsible parties must be defined
BIZ-005System characteristics must be complete

FedRAMP-Specific Validation

  • All required control families present
  • POA&M references valid
  • Required attachments present
  • Naming conventions followed

Validation Report Structure

ADVANCED VALIDATION REPORT
==========================
Document: ssp.json
Type: System Security Plan
Schema Version: 1.2.0
Validation Date: 2024-01-15

SUMMARY
-------
Schema Valid: ✅ Yes
Semantically Valid: ⚠️ Warnings
Quality Score: 85/100

SCHEMA VALIDATION
-----------------
Status: PASS
- Structure: Valid
- Required Fields: All present
- Data Types: Correct

UUID VALIDATION
---------------
Total UUIDs: 245
Unique: 245 ✅
Invalid Format: 0 ✅
Orphaned References: 2 ⚠️
  - #uuid-abc123 not found
  - #uuid-def456 not found

CROSS-REFERENCE VALIDATION
--------------------------
Control References: 320/325 valid
  Missing: AC-1(1), CM-7(1), SI-4(2), ...
  
Party References: 12/12 valid ✅
Component References: 45/45 valid ✅

BUSINESS RULES
--------------
✅ BIZ-001: Profile imported
⚠️ BIZ-002: 5 controls not addressed
✅ BIZ-003: All have implementation status
✅ BIZ-004: Responsible parties defined
⚠️ BIZ-005: System boundary incomplete

QUALITY CHECKS
--------------
- Implementation narratives: 95% complete
- Evidence references: 80% complete
- Parameter values: 100% set
- Remarks clarity: Good

RECOMMENDATIONS
---------------
1. Add missing control implementations
2. Resolve orphaned UUID references
3. Complete system boundary description

How to Perform Advanced Validation

Step 1: Schema Validation

  1. Identify document type from root element
  2. Fetch appropriate NIST schema
  3. Validate document against schema
  4. Collect all schema violations

Step 2: UUID Analysis

  1. Extract all UUIDs from document
  2. Validate format (8-4-4-4-12 hex)
  3. Check for duplicates
  4. Build reference graph
  5. Find orphaned references

Step 3: Cross-Reference Check

  1. Extract all internal references (#uuid-...)
  2. Extract all control-id references
  3. Resolve each reference
  4. Report unresolved references

Step 4: Business Rule Evaluation

Apply business rules based on document type:

For SSP:

  • Verify profile import exists
  • Check all baseline controls addressed
  • Validate implementation statements present
  • Confirm responsible parties assigned

For Component Definition:

  • Verify component has title
  • Check control implementations reference valid controls
  • Validate capability descriptions

Step 5: Quality Assessment

Score based on:

  • Completeness of narratives
  • Presence of evidence references
  • Parameter value coverage
  • Clarity and specificity

Validation Patterns from Community

From IBM Trestle

  • Workspace-based validation
  • Model assembly validation
  • Profile resolution checking

From oscal-pydantic

  • Type-safe validation
  • Field-level constraints
  • Nested object validation

From Lula

  • Control validation automation
  • Policy-as-code patterns
  • Continuous validation

Common Validation Issues

IssueSeverityFix
Missing metadata.titleERRORAdd title
Invalid UUID formatERRORRegenerate UUID
Orphaned referenceWARNINGUpdate or remove
Missing implementationWARNINGAdd narrative
Empty remarksINFOAdd context

Example Usage

When asked "Thoroughly validate this SSP":

  1. Parse the SSP document
  2. Validate against OSCAL SSP schema
  3. Check all UUIDs for format and uniqueness
  4. Resolve all cross-references
  5. Apply SSP business rules
  6. Score quality metrics
  7. Generate comprehensive validation report
  8. Provide prioritized fix recommendations

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.