controls-extractor
Skill8 starsChanged 10 months agoMITView on GitHub
Extract and analyze security controls from OSCAL catalogs, profiles, and SSPs. Use this skill to get detailed information about control hierarchies, statements, parameters, and implementation status for compliance analysis.
In this repository15 other files it gives its agents.
- advanced-oscal-validatorSkill
- compliance-report-generatorSkill
- component-definition-builderSkill
- control-implementation-generatorSkill
- control-mapperSkill
- evidence-collectorSkill
- oscal-catalog-providerSkill
- oscal-control-mapperSkill
- oscal-parserSkill
- oscal-ssp-validatorSkill
- oscal-text-converterSkill
- oscal-validatorSkill
- oscal-visualizerSkill
- risk-assessorSkill
- workflow-orchestratorSkill
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 6 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
Use this skill when you need to:
- Distinctive: line 140
If part has sub-parts, extract each
- Distinctive: line 144
When analyzing controls, calculate:
- Very specific: line 157
Check properties for baseline-impact values:
- Distinctive: line 171
When extracting controls, provide:
- Distinctive: line 193
When asked "What access control requirements are in this catalog?":
- Distinctive: line 204
When asked "What controls are missing in this SSP?":
≈ “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.
Files
Controls Extractor Skill
Extract, analyze, and report on security controls from OSCAL documents including catalogs, profiles, and system security plans.
When to Use This Skill
Use this skill when you need to:
- List all controls in a catalog or profile
- Extract control statements and guidance
- Analyze control families and hierarchies
- Find controls by ID, family, or keyword
- Get control statistics and coverage metrics
- Identify control enhancements
⛔ Authoritative Data Requirement
Control extraction works only on user-provided OSCAL documents.
What This Skill Does
- Parses and extracts data from OSCAL documents you provide
- Analyzes structure and relationships within your documents
- Summarizes and reports on what's IN your documents
What This Skill Does NOT Do
- Generate control lists from training knowledge
- Provide control definitions without a catalog document
- Assume what controls exist in a baseline you haven't provided
Required Input
| Task | Required Document |
| List controls | Catalog or Profile JSON/YAML/XML |
| Get control text | Catalog with the control definitions |
| Analyze SSP controls | SSP document |
| Compare baseline | Both baseline profile AND SSP |
If User Asks Without Providing Document
I need the OSCAL document to extract controls from.
For NIST 800-53 controls, you can:
1. Upload the catalog file, or
2. I can fetch from: https://raw.githubusercontent.com/usnistgov/oscal-content/main/nist.gov/SP800-53/rev5/json/NIST_SP-800-53_rev5_catalog.json
I cannot list controls from memory — compliance requires authoritative sources.Control Structure
OSCAL security controls have this hierarchy:
Control Family (Group)
└── Control (e.g., AC-1)
├── Statement (requirement text)
├── Guidance (implementation guidance)
├── Parameters (configurable values)
├── Parts (additional sections)
└── Enhancements (sub-controls like AC-1(1))Control Families (NIST 800-53)
| Family | Name | Description |
| AC | Access Control | User access management |
| AT | Awareness & Training | Security training |
| AU | Audit & Accountability | Logging and monitoring |
| CA | Assessment & Authorization | Security assessments |
| CM | Configuration Management | System configurations |
| CP | Contingency Planning | Disaster recovery |
| IA | Identification & Authentication | User identity |
| IR | Incident Response | Security incidents |
| MA | Maintenance | System maintenance |
| MP | Media Protection | Media handling |
| PE | Physical & Environmental | Physical security |
| PL | Planning | Security planning |
| PM | Program Management | Security program |
| PS | Personnel Security | Personnel controls |
| RA | Risk Assessment | Risk management |
| SA | System Acquisition | Development security |
| SC | System & Communications | Network security |
| SI | System & Information Integrity | Data integrity |
How to Extract Controls
Step 1: Identify Document Type
- Catalog: Contains control definitions
- Profile: Contains control selections/customizations
- SSP: Contains control implementations
Step 2: Navigate to Controls
From Catalog:
catalog → groups → controlsFrom Profile:
profile → imports → include-controlsFrom SSP:
system-security-plan → control-implementation → implemented-requirementsStep 3: Extract Control Details
For each control, extract:
- id: Control identifier (e.g., "AC-1")
- title: Human-readable name
- class: Control classification
- parts: Statement, guidance, etc.
- parameters: Configurable values
- properties: Baseline levels, etc.
- controls: Enhancements (nested)
Step 4: Extract Parts
Control parts include:
- statement: The actual requirement
- guidance: Implementation guidance
- objective: Assessment objectives
- assessment: Assessment methods
To extract statement text:
- Find part with
name="statement" - Get
prosefield for text - If part has sub-parts, extract each
Control Statistics
When analyzing controls, calculate:
- Total control count
- Controls by family
- Enhancement count
- Baseline distribution (LOW/MOD/HIGH)
- Parameter count
Filtering Controls
By Family
Find all controls where ID starts with family prefix (e.g., "AC-")
By Baseline
Check properties for baseline-impact values:
- LOW
- MODERATE
- HIGH
By Status (in SSP)
Check implementation status:
- implemented
- partially-implemented
- planned
- not-applicable
Output Format
When extracting controls, provide:
CONTROLS SUMMARY
================
Total Controls: X
Enhancements: Y
By Family:
- AC (Access Control): N controls
- AU (Audit): N controls
...
Control Details:
- AC-1: Access Control Policy and Procedures
Statement: [requirement text]
Guidance: [implementation guidance]
Enhancements: AC-1(1), AC-1(2)Example Usage
When asked "What access control requirements are in this catalog?":
- Parse the catalog
- Filter controls where ID starts with "AC"
- For each control:
- Extract ID and title
- Get statement text
- Note any enhancements
- Report total count
- List each control with key details
When asked "What controls are missing in this SSP?":
- Parse the SSP
- Identify the imported profile/baseline
- Get required controls from baseline
- Extract implemented controls from SSP
- Compare lists
- Report gaps with control IDs and titles
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
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.

