Validates FedRAMP Plan of Action and Milestones (POAM) files for structural integrity, naming conventions, deduplication, and cross-sheet consistency
Use this skill when you need to validate a FedRAMP Plan of Action and Milestones (POAM) file before submission or continuous monitoring updates. The POAM tracks system weaknesses and deficiencies with corrective actions and timelines according to FedRAMP requirements (accessed 2025-10-25T21:04:34-04:00: https://www.fedramp.gov/assets/resources/documents/CSP_POAM_Template_Completion_Guide.pdf).
Trigger conditions:
Required validations before proceeding:
Input availability:
poam_tsv file exists and is readableTime context:
NOW_ET using NIST time.gov semantics (America/New_York, ISO-8601)Schema availability:
naming_convention provided, validate JSON schema structurerequired_fields, date_format, severity_levelsEncoding check:
Abort conditions:
Goal: Fast validation for 80% of common issues
Parse header row:
POA&M Item ID, Control Identifier, Weakness DescriptionRisk Level (or Severity), Scheduled Completion Date, StatusRow-level format checks:
Output (JSON):
{
"errors": [
{"row": 12, "field": "Scheduled Completion Date", "issue": "Invalid date format", "severity": "error"}
],
"warnings": [],
"stats": {"total_rows": 47, "duplicates": 0, "missing_required": 3}
}
Decision rule:
Token budget: ≤2k
Goal: Enforce naming standards and detect duplicates
Apply naming convention schema:
POA&M Item ID format (e.g., POAM-YYYY-### or custom regex)Control Identifier against NIST 800-53 rev4/rev5 catalogStatus values: {Open, In Progress, Completed, Risk Accepted}Deduplication logic:
Control Identifier, Weakness Description, Resource)Timeline validation (FedRAMP requirements):
NOW_ET comparisonSources cited:
Enhanced output:
warnings for near-duplicates and overdue timelinesduplicates count in statsToken budget: ≤6k
Goal: Deep validation across Open/Closed sheets and logical integrity
Sheet relationship checks:
Completion Date and Status = CompletedRisk scoring consistency:
Risk LevelWeakness Description with known CVE/CWE patternsMilestone progression:
Original Detection Date ≤ Scheduled Completion DateResources Required field is populated for High/Moderate itemsRationale generation:
Comprehensive markdown report:
## Critical Issues (3)
- Row 12: Invalid completion date (blocks submission)
- Row 23: Duplicate weakness (merge required)
## Warnings (7)
- Row 8: Timeline exceeds FedRAMP requirement (High: 30 days)
## Recommendations
- Update naming convention to include fiscal year prefix
- Consider automated CVE enrichment for weakness descriptions
Token budget: ≤12k
Ambiguity thresholds:
Abort/stop conditions:
Escalation triggers:
Primary output (findings.json):
{
"errors": [
{
"row": 12,
"field": "Scheduled Completion Date",
"issue": "Invalid date format (expected YYYY-MM-DD)",
"severity": "error"
}
],
"warnings": [
{
"row": 8,
"field": "Risk Level",
"issue": "High-severity item overdue by 15 days",
"severity": "warning"
}
],
"stats": {
"total_rows": 47,
"duplicates": 2,
"missing_required": 3,
"overdue_high": 1,
"overdue_moderate": 4
}
}
Secondary output (fix_suggestions.md):
Required fields in all outputs:
timestamp: ISO-8601 Eastern Time (NOW_ET)skill_version: "1.0.0"input_file: original filenameExample 1: Basic T1 validation (≤30 lines)
# Input: poam_tsv = "fedramp_poam_2025.tsv"
findings = {
"errors": [
{"row": 5, "field": "POA&M Item ID", "issue": "Missing"},
{"row": 12, "field": "Date", "issue": "Invalid '13/45/2025'"}
],
"warnings": [
{"row": 8, "issue": "High overdue 15d"}
],
"stats": {"total_rows": 47, "duplicates": 2}
}
fix_suggestions = """
## Critical (2)
- Row 5: Add POA&M Item ID (POAM-2025-NNN)
- Row 12: Fix date (YYYY-MM-DD)
## Warnings (1)
- Row 8: High past 30-day window
"""
import json
print(json.dumps(findings))
print(fix_suggestions)
# Output: JSON findings + markdown suggestions
Token budgets (mandatory):
Safety checks:
Auditability:
Determinism:
Performance targets:
Official FedRAMP guidance:
NIST references:
OSCAL resources:
Helper tools (linked in resources/):
naming_convention_schema.json - Default FedRAMP field validation rulessimilarity_thresholds.yaml - Tunable deduplication parameters