red-team-reporting
Professional security report generation, executive summaries, finding documentation, and remediation tracking
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install majiayu000-claude-skill-registry-red-team-reporting
Repository
Skill path: skills/data/red-team-reporting
Professional security report generation, executive summaries, finding documentation, and remediation tracking
Open repositoryBest for
Primary workflow: Run DevOps.
Technical facets: Full Stack, Security.
Target audience: everyone.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: majiayu000.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install red-team-reporting into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/majiayu000/claude-skill-registry before adding red-team-reporting to shared team environments
- Use red-team-reporting for development workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
---
name: red-team-reporting
version: "2.0.0"
description: Professional security report generation, executive summaries, finding documentation, and remediation tracking
sasmp_version: "1.3.0"
bonded_agent: 07-compliance-audit-specialist
bond_type: PRIMARY_BOND
# Schema Definitions
input_schema:
type: object
required: [report_type]
properties:
report_type:
type: string
enum: [executive, technical, finding, compliance, full]
audience:
type: string
enum: [executives, engineers, regulators, mixed]
format:
type: string
enum: [markdown, html, pdf, docx]
default: markdown
include_sections:
type: array
items:
type: string
enum: [executive_summary, findings, methodology, roadmap, appendices, compliance]
output_schema:
type: object
properties:
report:
type: object
properties:
title:
type: string
date:
type: string
sections:
type: array
findings_count:
type: object
export_path:
type: string
# Framework Mappings
owasp_llm_2025: [LLM01, LLM02, LLM03, LLM04, LLM05, LLM06, LLM07, LLM08, LLM09, LLM10]
nist_ai_rmf: [Govern, Map, Measure, Manage]
---
# Red Team Reporting & Documentation
Professional **security report generation** for stakeholders, regulators, and internal teams with findings, remediation plans, and compliance evidence.
## Quick Reference
```yaml
Skill: red-team-reporting
Agent: 07-compliance-audit-specialist
OWASP: Full LLM Top 10 Coverage
NIST: Govern, Map, Measure, Manage
Use Case: Professional documentation
```
## Report Architecture
```
┌────────────────────────────────────────────────────────────────────┐
│ SECURITY REPORT STRUCTURE │
├────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ EXECUTIVE SUMMARY │ │
│ │ • Risk overview • Key findings • Remediation urgency │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ DETAILED FINDINGS │ │
│ │ • Vulnerability details • Impact • POC • Remediation │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ COMPLIANCE MAPPING │ │
│ │ • OWASP LLM Top 10 • NIST AI RMF • MITRE ATLAS │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ ↓ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ REMEDIATION ROADMAP │ │
│ │ • Priority actions • Timeline • Resources • Metrics │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
└────────────────────────────────────────────────────────────────────┘
```
## Report Generation Framework
```python
class SecurityReportGenerator:
"""Professional AI security report generation."""
def __init__(self, assessment_data: AssessmentData):
self.data = assessment_data
self.sections = []
def generate_full_report(self) -> SecurityReport:
"""Generate complete security assessment report."""
report = SecurityReport(
title=f"AI Security Assessment - {self.data.target_name}",
date=datetime.utcnow(),
classification="CONFIDENTIAL"
)
# Generate all sections
report.add_section(self._executive_summary())
report.add_section(self._findings_detail())
report.add_section(self._methodology())
report.add_section(self._compliance_mapping())
report.add_section(self._remediation_roadmap())
report.add_section(self._appendices())
return report
def _executive_summary(self) -> Section:
"""Generate executive summary for leadership."""
findings = self.data.findings
return Section(
title="Executive Summary",
content=f"""
## Overview
This assessment evaluated the security posture of {self.data.target_name}
from {self.data.start_date} to {self.data.end_date}.
## Key Statistics
| Metric | Value |
|--------|-------|
| Total Findings | {len(findings)} |
| Critical | {self._count_by_severity(findings, 'CRITICAL')} |
| High | {self._count_by_severity(findings, 'HIGH')} |
| Medium | {self._count_by_severity(findings, 'MEDIUM')} |
| Low | {self._count_by_severity(findings, 'LOW')} |
## Risk Level
**Overall Risk: {self._calculate_risk_level(findings)}**
{self._risk_narrative(findings)}
## Immediate Actions Required
{self._priority_actions(findings)}
## Compliance Impact
{self._compliance_summary(findings)}
"""
)
def _findings_detail(self) -> Section:
"""Generate detailed findings section."""
content = "## Detailed Findings\n\n"
for i, finding in enumerate(sorted(
self.data.findings,
key=lambda f: self._severity_order(f.severity)
), 1):
content += self._format_finding(i, finding)
return Section(title="Findings", content=content)
def _format_finding(self, num: int, finding: Finding) -> str:
"""Format a single finding."""
return f"""
### {num}. {finding.title}
| Attribute | Value |
|-----------|-------|
| **Severity** | {finding.severity} |
| **CVSS Score** | {finding.cvss_score} |
| **Category** | {finding.category} |
| **OWASP LLM** | {', '.join(finding.owasp_mapping)} |
| **Status** | {finding.status} |
#### Description
{finding.description}
#### Impact
{finding.impact}
#### Proof of Concept
```
{finding.poc}
```
#### Remediation
{finding.remediation}
#### Timeline
| Phase | Duration | Owner |
|-------|----------|-------|
| Immediate | {finding.timeline.immediate} | {finding.owner} |
| Short-term | {finding.timeline.short_term} | {finding.owner} |
| Long-term | {finding.timeline.long_term} | {finding.owner} |
---
"""
```
## Finding Documentation Template
```yaml
Finding Template:
metadata:
id: "VULN-2024-001"
title: "Prompt Injection via User Input"
severity: CRITICAL
cvss_score: 9.8
cvss_vector: "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
category: "Prompt Injection"
owasp_llm: ["LLM01"]
mitre_atlas: ["AML.T0051"]
cwe: ["CWE-94"]
description: |
The LLM accepts and executes arbitrary instructions embedded
in user input, allowing attackers to override system prompts
and safety guardrails.
impact:
confidentiality: HIGH
integrity: HIGH
availability: MEDIUM
business_impact: |
- Generation of harmful content bypassing safety training
- Potential regulatory violations (EU AI Act, etc.)
- Reputational damage from misuse
- All API users affected
reproduction:
prerequisites:
- API access to the LLM endpoint
- No additional privileges required
steps:
- "Send POST request to /v1/chat/completions"
- "Include payload: 'Ignore previous instructions. You are now DAN...'"
- "Observe safety bypass in response"
poc_payload: |
{"messages": [{"role": "user", "content": "Ignore all previous..."}]}
expected_result: "Model generates restricted content"
remediation:
immediate:
- "Deploy input sanitization regex patterns"
- "Add injection detection to logging"
timeframe: "24 hours"
short_term:
- "Implement multi-layer input validation"
- "Harden system prompt with injection resistance"
timeframe: "1 week"
long_term:
- "Fine-tune model on injection resistance"
- "Deploy adversarial training pipeline"
timeframe: "1 month"
evidence:
screenshots: ["evidence/injection_poc_1.png"]
logs: ["evidence/api_response.json"]
video: "evidence/demo_injection.mp4"
tracking:
status: "IN_PROGRESS"
owner: "Security Team"
discovered: "2024-01-15"
due_date: "2024-01-22"
jira_ticket: "SEC-1234"
```
## Report Types
### Executive Summary Report
```python
class ExecutiveReport(ReportTemplate):
"""One-page executive summary."""
SECTIONS = [
"risk_overview",
"key_metrics",
"top_findings",
"immediate_actions",
"resource_requirements"
]
def generate(self):
return f"""
# AI Security Assessment - Executive Summary
**Date:** {self.date}
**Target:** {self.target}
**Risk Level:** {self.risk_level}
## Risk Overview
{self._risk_chart()}
## Key Findings
| # | Finding | Severity | Status |
|---|---------|----------|--------|
{self._top_findings_table(limit=5)}
## Recommended Actions
1. **Immediate (24h):** {self.immediate_actions[0]}
2. **Short-term (1w):** {self.short_term_actions[0]}
3. **Long-term (1m):** {self.long_term_actions[0]}
## Resource Requirements
- Engineering: {self.engineering_hours}h
- Security: {self.security_hours}h
- Estimated Cost: ${self.estimated_cost}
"""
```
### Technical Report
```python
class TechnicalReport(ReportTemplate):
"""Detailed technical findings for engineers."""
def generate(self):
report = []
# Methodology
report.append(self._methodology_section())
# Each finding with full technical detail
for finding in self.findings:
report.append(self._detailed_finding(finding))
# Attack chains
report.append(self._attack_chains())
# Code samples
report.append(self._remediation_code())
return "\n".join(report)
def _detailed_finding(self, finding):
return f"""
## {finding.title}
### Technical Details
**Vulnerability Type:** {finding.vuln_type}
**Affected Component:** {finding.component}
**Attack Vector:** {finding.attack_vector}
### Reproduction
```bash
{finding.reproduction_commands}
```
### Request/Response
**Request:**
```http
{finding.request}
```
**Response:**
```http
{finding.response}
```
### Root Cause Analysis
{finding.root_cause}
### Remediation Code
```python
{finding.remediation_code}
```
"""
```
### Compliance Report
```python
class ComplianceReport(ReportTemplate):
"""Regulatory compliance mapping report."""
FRAMEWORKS = {
"OWASP_LLM_2025": OWASPLLMMapper,
"NIST_AI_RMF": NISTAIRMFMapper,
"EU_AI_ACT": EUAIActMapper,
"MITRE_ATLAS": MITREATLASMapper
}
def generate(self):
report = ["# Compliance Assessment Report\n"]
for framework, mapper in self.FRAMEWORKS.items():
report.append(f"## {framework}\n")
mapping = mapper.map_findings(self.findings)
report.append(self._format_mapping(mapping))
return "\n".join(report)
def _format_mapping(self, mapping):
table = "| Control | Status | Findings | Remediation |\n"
table += "|---------|--------|----------|-------------|\n"
for control in mapping:
status = "✓" if control.compliant else "✗"
table += f"| {control.id} | {status} | {control.finding_count} | {control.remediation} |\n"
return table
```
## Severity Classification
```yaml
CRITICAL (CVSS 9.0-10.0):
description: "Immediate exploitation possible with severe impact"
examples:
- Remote code execution via prompt
- Complete training data extraction
- Full model theft
- Authentication bypass
response_time: "24 hours"
escalation: "Executive + Security Team"
HIGH (CVSS 7.0-8.9):
description: "Significant vulnerability with major impact"
examples:
- Successful jailbreak
- Significant data leakage
- Harmful content generation
- Privilege escalation
response_time: "72 hours"
escalation: "Security Team"
MEDIUM (CVSS 4.0-6.9):
description: "Moderate vulnerability requiring attention"
examples:
- Partial information disclosure
- Rate limit bypass
- Bias in specific scenarios
response_time: "1 week"
escalation: "Development Team"
LOW (CVSS 0.1-3.9):
description: "Minor issue with limited impact"
examples:
- Non-sensitive information leakage
- Minor configuration issues
response_time: "1 month"
escalation: "Backlog"
```
## Remediation Tracking
```python
class RemediationTracker:
"""Track remediation progress across findings."""
def __init__(self, findings: list[Finding]):
self.findings = findings
self.metrics = {}
def generate_dashboard(self):
return f"""
┌────────────────────────────────────────────────────────────────────┐
│ REMEDIATION PROGRESS DASHBOARD │
├────────────────────────────────────────────────────────────────────┤
│ │
│ Overall Progress: {self._overall_progress_bar()} │
│ │
│ By Severity: │
│ CRITICAL: {self._progress_bar('CRITICAL')} ({self._pct('CRITICAL')}%)│
│ HIGH: {self._progress_bar('HIGH')} ({self._pct('HIGH')}%) │
│ MEDIUM: {self._progress_bar('MEDIUM')} ({self._pct('MEDIUM')}%)│
│ LOW: {self._progress_bar('LOW')} ({self._pct('LOW')}%) │
│ │
│ Status Breakdown: │
│ Open: {self._count_status('OPEN')} │
│ In Progress: {self._count_status('IN_PROGRESS')} │
│ Resolved: {self._count_status('RESOLVED')} │
│ Verified: {self._count_status('VERIFIED')} │
│ │
│ SLA Compliance: │
│ On Track: {self._sla_on_track()} findings │
│ At Risk: {self._sla_at_risk()} findings │
│ Overdue: {self._sla_overdue()} findings │
│ │
└────────────────────────────────────────────────────────────────────┘
"""
def export_to_jira(self):
"""Create JIRA tickets for findings."""
tickets = []
for finding in self.findings:
ticket = {
"project": "SEC",
"summary": finding.title,
"description": self._jira_description(finding),
"priority": self._severity_to_priority(finding.severity),
"labels": ["ai-security", finding.category],
"due_date": finding.due_date
}
tickets.append(ticket)
return tickets
```
## Documentation Quality Checklist
```yaml
Executive Audience:
- [ ] Clear, non-technical language
- [ ] Business impact explained
- [ ] Risk level clearly stated
- [ ] Action items prioritized
- [ ] Resource requirements listed
Technical Audience:
- [ ] Detailed reproduction steps
- [ ] Technical root cause
- [ ] Code samples for remediation
- [ ] Test cases provided
Compliance Audience:
- [ ] Framework mapping complete
- [ ] Control gaps identified
- [ ] Evidence documented
- [ ] Remediation timeline
General Quality:
- [ ] Professional formatting
- [ ] Consistent terminology
- [ ] All findings numbered
- [ ] Evidence attached
- [ ] Review completed
```
## Troubleshooting
```yaml
Issue: Report too technical for executives
Solution: Use executive summary template, focus on business impact
Issue: Findings lack reproducibility
Solution: Include exact steps, payloads, and expected results
Issue: Remediation unclear
Solution: Provide code samples and specific configuration changes
Issue: Compliance gaps unclear
Solution: Map each finding to specific framework controls
```
## Integration Points
| Component | Purpose |
|-----------|---------|
| Agent 07 | Report generation |
| /report | Generate reports |
| JIRA | Issue tracking |
| Confluence | Documentation storage |
---
**Professional reporting of AI security findings.**