Skip to content

Commit 031c2e6

Browse files
Crazytieguyclaude
andcommitted
Handle PM and PT control families special cases
- PM (Program Management) controls are now marked as selected with special text - PT (PII Processing and Transparency) controls remain unselected with special text - Special text is stored in selections.special_text for consistent JSON structure - Frontend displays special text under "Security Impact Levels" heading - PM controls show: "Deployed organization-wide. Supports information security program..." - PT controls show: "Personally Identifiable Information Processing and Transparency..." 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 5d44306 commit 031c2e6

3 files changed

Lines changed: 185 additions & 96 deletions

File tree

cnssi_1253/extract_cnssi_1253.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,16 @@ def parse_control_row(row: List, structure: TableStructure) -> Optional[Dict]:
108108
title = str(row[idx]).strip()
109109
break
110110

111+
# Check for special PM (Program Management) and PT (PII) families
112+
family = control_id.split('-')[0]
113+
special_case_text = None
114+
115+
# Hardcode special text for PM and PT families
116+
if family == 'PM':
117+
special_case_text = "Deployed organization-wide. Supports information security program. Not associated with security control baselines. Independent of any system impact level."
118+
elif family == 'PT':
119+
special_case_text = "Personally Identifiable Information Processing and Transparency control are not allocated to the security control baselines."
120+
111121
# Initialize selections
112122
selections = {
113123
'confidentiality': {'low': False, 'moderate': False, 'high': False},
@@ -160,10 +170,22 @@ def is_selected(val):
160170
for objective in selections.values()
161171
)
162172

173+
# Special case handling for PM and PT families
174+
if family == 'PM':
175+
# PM controls are selected organization-wide
176+
selected = True
177+
elif family == 'PT':
178+
# PT controls are not selected by default
179+
selected = False
180+
163181
# Withdrawn controls are never selected
164182
if is_withdrawn:
165183
selected = False
166184

185+
# Add special case text to selections if applicable
186+
if special_case_text:
187+
selections['special_text'] = special_case_text
188+
167189
result = {
168190
'control_id': control_id,
169191
'title': title,

0 commit comments

Comments
 (0)