Claude Skill · Open Source

Risk Assessment Workflow

End-to-end automation for security risk management: from raw input to a fully populated risk register row and linked tracking issue. Supports structured assessments and quick intake from unstructured notes, chat threads, or pentest findings.

Type
Claude Skill (SKILL.md)
Works With
Claude Code & Cowork
Output
Risk Register + Tracking Issues
Domain
GRC / Risk Management
↓ Download SKILL.md
How to use this skill
Drop the file into your Claude skills folder and it activates whenever you work on risk assessments, register population, or risk intake processing.
mkdir -p .claude/skills/risk-assessment cp SKILL.md .claude/skills/risk-assessment/SKILL.md

Once installed, Claude references the risk statement patterns, register column structure, and tracking issue templates whenever you mention adding a risk, conducting an assessment, or processing intake submissions. Point it at your own spreadsheet and tracker, and the patterns adapt.

What the skill covers
📥

Quick Intake Mode

Drop in raw notes, a chat thread, or pentest findings. The skill drafts the risk statement, description, and proposed ratings in a single response. Confirm and the system populates everything.

📊

Structured Assessment

Step-by-step guided risk assessment covering all 18 required fields. Likelihood, five impact dimensions, control effectiveness, treatment strategy, and ownership.

📄

Register Population

Google Apps Script templates that write all non-formula columns in a single execution. No cell-by-cell clicking. Spacer columns and formula columns are handled automatically.

🔗

Tracking Issue Creation

Structured issue descriptions with risk analysis, compensating controls, recommendations, and a security metadata table. Column A of the register hyperlinks to the issue as the source of truth.

💬

Self-Service Pipeline

A chat workflow form lets anyone in the company submit a risk. Submissions route to a private review channel. A scheduled task processes approved submissions automatically.

Rules encoded in the workflow
Never assume treatment status

The Treatment Status field is the one value the skill never proposes on its own. Whether a risk is "Not Started," "Accepted," or "In Progress" is a judgment call that belongs to the operator. Always ask.

Apps Script over UI automation

Early attempts to populate the register involved clicking into each cell and typing values. Fragile. A single Apps Script function writes all 28+ columns in one execution. If your workflow involves Google Sheets and you are automating through the UI, write an Apps Script instead.

Separate judgment from mechanics

Humans provide the security assessment: likelihood, impact, ownership, treatment strategy. The system handles the mechanical work: formatting the data, creating the issue, populating the spreadsheet, setting the hyperlink.

Be specific in risk statements

Name the actual vendor, tool, or system. "Unvetted use of Lovable by staff" over "unvetted use of no-code platforms." "Workday" over "HR systems." Specificity is what makes risk statements actionable.

Risk statement pattern
Every risk statement follows the same structure. This consistency makes the register scannable and the risks comparable.
[Threat/Condition] increases the risk of [Risk Event], leading to [Impact/Consequence]

The skill generates statements that name the specific threat, describe the risk event concretely, and tie it to a business consequence. The description field expands on the statement with 2-3 paragraphs covering context, attack vectors, current controls, and potential consequences.

Technologies and patterns
The core patterns are tool-agnostic. Replace the tracker and spreadsheet with your own. The assessment methodology, statement format, and automation approach adapt to any stack.
Google Sheets Google Apps Script Issue Tracker (Linear / Jira) Chat (Slack / Teams) Claude Scheduled Tasks Workflow Forms
↓ Download SKILL.md
SKILL.md (230 lines)
The complete skill file rendered below. Use the download button to save the raw markdown.
Security Risk Assessment Workflow

This skill covers the end-to-end workflow for documenting, assessing, and triaging security risks. The two primary outputs are: (1) a row in the Risk Register spreadsheet, and (2) a corresponding issue in the project tracker for triage and tracking.

Risk intake: quick capture from raw input

The fast path for capturing a new risk. The operator provides raw input and the skill handles generating documentation, populating the spreadsheet, creating the tracking issue, and linking them together.

Input sources
  • Direct chat: Paste raw notes, describe a concern, share a finding, or forward a report
  • Chat thread: Share a thread URL or reference a discussion for the skill to read and extract context
  • Intake channel: A scheduled task scans for approved submissions from a workflow form
Intake flow
  1. Extract risk information from the raw input
  2. Draft the risk statement and description using defined formats
  3. Propose ratings (likelihood + 5 impact dimensions)
  4. Present for confirmation: statement, description, ratings, and ask for owner and Treatment Status
  5. After confirmation: populate spreadsheet, create tracking issue, set hyperlink
  6. Summarize: risk ID, issue URL, row number

The key principle: propose everything upfront. Let the operator correct rather than asking one question at a time.

Risk register structure

The register is a 33-column Google Sheet organized into four sections: Identification (columns A-J), Assessment (L-T), Residual Risk (V-Y), and Treatment (AA-AG). Spacer columns separate the sections. Formula columns calculate inherent and residual risk ratings automatically.

Data integrity rules
  • Never edit formula columns (Overall Impact, Likelihood x Impact, Inherent Risk Rating)
  • Use exact dropdown values for validated fields (Likelihood, Impact, Coverage, Response, Status)
  • Skip spacer columns during population
Risk statement format

Pattern: [Threat/Condition] increases the risk of [Risk Event], leading to [Impact/Consequence]

Be specific: name the actual vendor, tool, or system. Refer to the affected population accurately. Use the full format that includes threat, risk event, and consequence.

Risk description format

Multi-paragraph narratives covering: context, threat scenario, current controls, specific vulnerabilities, and potential consequences. For vulnerability-based risks, include technical details such as CVEs, affected versions, and attack mechanisms.

Conducting a risk assessment

Collect 18 data points covering identification, assessment, controls, and treatment. Draft the risk statement and description, propose all ratings, and confirm with the operator before populating anything.

Impact dimensions
  • Operational: Would this disrupt day-to-day operations?
  • Regulatory: Could this trigger regulatory action?
  • Contractual: Could this violate customer contracts or SLAs?
  • Reputational: Could this damage the organization's reputation?
  • Financial: What is the potential financial impact?

Critical rule: Always ask for Treatment Status. Never assume a value.

Spreadsheet population via Apps Script

Both population and hyperlinking use Google Apps Script for reliability. A single populateRisk() function writes all non-formula columns in one execution. A separate setHyperlinks() function sets rich-text links from column A to the tracking issue URL.

The hyperlink array supports batch operations, so multiple risks can be linked in a single script execution.

Complete workflow
  1. Gather information from raw input or structured intake
  2. Draft the assessment: risk statement, description, proposed ratings
  3. Confirm with the operator (always ask for Treatment Status)
  4. Create the tracking issue first (to get the URL for hyperlinking)
  5. Populate the spreadsheet via Apps Script
  6. Set the hyperlink from column A to the tracking issue
  7. Summarize: risk ID, issue URL, row number
↓ Download SKILL.md