Skip to content

Skills · grc

risk-register

Build or update an enterprise or project risk register — each risk written as cause, event and consequence, scored for likelihood and impact on a defined scale, inherent and residual ratings, a named owner, a treatment (avoid, reduce, transfer, accept), controls, a due date and a review trigger — with a heat map, the top risks that need a decision, and a stdlib script that validates the register CSV and flags overdue reviews. Use when the user wants a risk register, a risk log, a RAID log's risk section, a heat map, or says "what are our top risks", "update the risk register", "score these risks".

Pack grcTier standardJob Manage risk and compliancev0.1.2

npx skilldrop-cli install risk-register
Other ways to install

With the sibling skills it hands off to:

npx skilldrop-cli install risk-register --with-related

The whole pack it belongs to:

npx skilldrop-cli install --pack grc

By hand, from a clone of the repo:

cp -R packs/grc/skills/risk-register ~/.claude/skills/

In Claude Code, with the grc plugin installed, invoke it as:

/grc:risk-register

Try it

A realistic prompt from the skill's acceptance evals:

Build a risk register for Acme Retail's ERP migration programme for the steering group next week. Risks from the kickoff: data migration errors in product master data (owner: Data Lead, Jo Park), the systems integrator's key architect rolling off in January (owner: Programme Director, Lee Grant), cutover clashing with Black Friday trading, and finance users not trained in time (owner: Finance Systems Manager, Ravi Mehta). We use a 5x5 scale. Today is 2026-10-01.

What a good result looks like

Example output

Worked example: Northwind Logistics operations risk register · the skill's own worked example, source

Worked example

Input given to the skill

We're Northwind Logistics, three depots. I need a risk register for the operations committee on 1 October. Here's what came out of the workshop: the WMS vendor (one vendor, no exit plan), not enough drivers for peak, ransomware on the depot laptops (old OS, shared admin login), fuel prices, our ISO 9001 surveillance audit with two open non-conformities, the riverside depot flooding, route planning depending on one analyst (we've fixed that, a second analyst is trained), and customer addresses floating around in spreadsheets. Owners: Priya Shah (Head of Ops) for WMS and flooding, Tom Okafor (Fleet) for drivers and routing, Mei Lin (IT Security) for ransomware, Ana Ruiz (Finance Director) for fuel, Ben Hart (Quality) for ISO, Sam Doyle (Data Protection Lead) for the spreadsheets. 5x5 is fine. [followed by the controls and dates for each risk]

The scope (operations, 12-month horizon), the scale (default 5×5) and every owner, control and date came from the user. The skill wrote each risk as cause, event and consequence, and scored inherent and residual.

The register

northwind-register.csv, eight rows. One row as written:

FieldValue
idR-003
titleRansomware on depot laptops
causeDepot laptops run an unsupported OS build and staff share a local admin account
eventRansomware encrypts depot laptops and the file share
consequenceDepot dispatch runs on paper for days and customer data may be exposed
ownerIT Security Lead (Mei Lin)
inherentlikelihood 4 × impact 5 = 20 (critical)
residuallikelihood 2 × impact 4 = 8 (medium)
treatmentreduce
controlsEDR on all endpoints; shared admin account removed; offline backups tested monthly
due_date / next_review2026-09-30 / 2026-10-10
review_triggerAny EDR detection on a depot device or a failed backup restore

Script check

Command:

python3 scripts/check_register.py examples/northwind-register.csv --as-of 2026-10-01 --top 5

Real output (exit code 0):

Risk register check
  file:   examples/northwind-register.csv
  as of:  2026-10-01
  scale:  1-5 likelihood x 1-5 impact
  bands:  low 1-4, medium 5-9, high 10-16, critical 20-25
  rows:   8 read, 8 valid, 7 open

Errors (0)
  none

Warnings (2)
  - line 9 [R-008]: treatment is reduce but no controls are listed
  - line 9 [R-008]: treatment is reduce but residual equals inherent (9); the controls change nothing

Overdue (2)
  - line 4 [R-003]: treatment action overdue by 1 day(s) (due_date 2026-09-30), owner IT Security Lead (Mei Lin)
  - line 6 [R-005]: review overdue by 16 day(s) (next_review 2026-09-15), owner Quality Manager (Ben Hart)

Inherent heat map, open risks (rows = likelihood, columns = impact)
  L\I |   1   2   3   4   5
  -------------------------
    5 |   .   .   .   .   .
    4 |   .   .   .   1   1
    3 |   .   .   1   1   1
    2 |   .   .   .   2   .
    1 |   .   .   .   .   .
  low 0, medium 3, high 3, critical 1

Residual heat map, open risks (rows = likelihood, columns = impact)
  L\I |   1   2   3   4   5
  -------------------------
    5 |   .   .   .   .   .
    4 |   .   .   .   .   .
    3 |   .   .   2   1   .
    2 |   .   .   .   2   1
    1 |   .   .   .   1   .
  low 1, medium 4, high 2, critical 0

Top 5 open risks by residual score
  R-002  residual 12 (high), inherent 16  Driver shortage in peak season  [reduce, owner Fleet Manager (Tom Okafor)]
  R-001  residual 10 (high), inherent 15  Single warehouse management system vendor  [reduce, owner Head of Operations (Priya Shah)]
  R-004  residual 9 (medium), inherent 12  Fuel price spike  [transfer, owner Finance Director (Ana Ruiz)]
  R-008  residual 9 (medium), inherent 9  Customer data in shared spreadsheets  [reduce, owner Data Protection Lead (Sam Doyle)]
  R-003  residual 8 (medium), inherent 20  Ransomware on depot laptops  [reduce, owner IT Security Lead (Mei Lin)]

Result: PASS

Summary handed to the committee

Scale: 5×5, likelihood over 12 months, impact on operations objectives. Low 1–4, medium 5–9, high 10–16, critical 20–25.

Residual heat map: as printed by the script above. No critical residual risks; two high.

Decisions needed (3). Deciders are roles the user did not name; confirm them before the meeting.

  1. R-002 Driver shortage, residual 12 (high). Approve a third agency contract or accept the penalty exposure on the two retail contracts for peak. Decider: Operations Director.
  2. R-001 WMS vendor, residual 10 (high). Approve budget to test the exit plan with a second vendor before year end, or accept single-vendor exposure for another year. Decider: CFO.
  3. R-008 Customer data in spreadsheets, residual 9. No controls are listed and the residual equals the inherent score, so nothing is reducing it yet. Agree a control (for example, planning inside the WMS with exports switched off) and a date. Decider: Sam Doyle with the Head of Operations.

Overdue (2):

  • R-003 ransomware actions were due 30 September, one day ago. Mei Lin to confirm whether the shared admin account removal is complete.
  • R-005 ISO 9001 review was due 15 September. Ben Hart to rescore before the surveillance visit.

Not raised: R-006 flooding is accepted at residual 8 (medium) by its owner, which is within her authority; R-007 is closed and stays in the register as history.

This register prepares material for the operations committee and the risk owners to review. It is not audit or legal advice.

How it's checked

Measured against plain Claude Code (2026-10-23): it met 76% of its checks, against 56% without it, and a blind judge preferred it. How skills are checked

21 assertions across 3 acceptance evals, and 8 trigger queries. Every skill's checks

What the output must do
  • Every risk is written as a cause, an uncertain event and a consequence, not a one-word category
  • The likelihood and impact scale is defined in the output, with what each number means and the review horizon
  • Each risk has both an inherent and a residual score, and residual is never higher than inherent
  • Each risk has one treatment from avoid, reduce, transfer or accept, with an action and a due date, or a named acceptor for accept
  • The cutover risk, which has no owner in the prompt, is flagged as needing an owner rather than given an invented person's name
  • Each open risk has a next review date and a review trigger that names an event, not just 'quarterly'
  • The summary includes a heat map and at most five risks needing a decision, each naming the decision
  • It does not invent controls, people or dates that are not in the prompt; any it proposes are marked as proposals or assumptions
  • Corrects or flags the scoring errors: R04's inherent score of 12 should be 8 (2 × 4), and R06's likelihood of 6 is outside the 1–5 scale
  • Flags R05's residual score dropping from 12 to 3 with no controls listed
  • Does not leave 'Everyone' or a blank as owner on R05 and R06; flags them as needing a named role, without inventing a specific person
  • Identifies the reviews overdue as of 17 October 2026 (R03, R05 and R08)
  • Challenges treating weather as transferred to the insurer, given the exclusions for prior weather warnings and ground conditions and the £25,000 excess, and does not keep R02's residual score of 5 without comment
  • Does not give a percentage probability of the festival making a loss or invent figures; says the register can't support that number
  • Writes register-updated.csv, and the committee summary has 10 bullets or fewer
  • Covers the hazards named: the bouncy castle, the BBQ (fire and food safety), cash handling, and crowds or a lost child
  • Each risk has an owner given as a role (such as 'BBQ lead' or 'treasurer'), not invented personal names
  • Each risk has at least one practical control a volunteer group can actually carry out
  • Scores, if given, use one stated scale consistently
  • Does not invent facts not given, such as existing insurance, trained first aiders, the venue or the date
  • Delivers just the table with at most a line or two around it, as asked
When it should and shouldn't activate

Should activate:

  • Build a risk register for our office move programme
  • Here's our risk log CSV, check it for missing owners and overdue reviews
  • Score these eight risks for likelihood and impact and give me a heat map for the board
  • What are our top risks this quarter and which need a decision from the exec team?

Should leave to another skill:

  • Run a STRIDE threat model on our payments API design
  • Do a DPIA for our new employee monitoring tool
  • Map our controls to SOC 2 criteria and list the evidence the auditor will ask for
  • Log the decision we made to accept the flood risk at the riverside depot

Hands off to

Related skills

agent-threat-model, dpia, nfr-spec, soc2-evidence-map, threat-model

Source

SKILL.md · the whole folder on GitHub.