Use this after any update to the risk register, the treatment plan or the applicability statement, and before every external audit. You get two files in a new folder, ./risk-to-control-traceability-check/: a spreadsheet you can open in Excel with one row per link between a risk and a security measure, showing where each link breaks (traceability-matrix.csv), and a short report of the broken links, each with a proposed fix and the person who decides it (orphans.md). This skill drafts for a human to review and sign; this skill never marks a control effective. Fixes are proposals for the risk owners and the statement approver.
Inputs to gather
Read: the risk register, the treatment plan, the statement of applicability (and its AI or privacy extension if any), the obligations register, AI impact assessments where the scope covers AI systems, and the evidence index. Ask the reader which document is the master when they disagree, and who approves changes to each.
Step 1: normalise the identifiers
List every risk id with its treatment option (reduce, avoid, transfer, accept), inherent and residual scores and owner role. List every control id from the statement with its inclusion decision and status. If the documents use different id schemes or free text for control references ("access policy", "MFA"), map each mention to a control id and note the ambiguous ones for the owner. Traceability fails silently when references are prose.
Step 2: trace forward, from risk to control
For each risk:
- Reduce: at least one control id or treatment action is named. Each named control is included in the statement. The residual score is lower than the inherent score, and the reduction is credited only to controls whose status is implemented.
- Transfer: the instrument is named (insurance policy, contract clause) and the controls that manage the counterparty are included.
- Avoid: the decision record and the activity that stopped are named.
- Accept: an acceptance record exists, signed by the owner role, within the acceptance threshold or with a leadership decision. The controls its residual score assumes are included and implemented, and no finding elsewhere in the matrix breaks one of its conditions.
For the top ten risks by residual score, check depth: a serious risk treated by one preventive control and nothing that would detect failure is fragile. Note where a detective or recovery control is missing.
Step 3: trace backward, from control to reason
For each included control, find at least one reason: a risk id, an obligation id, a customer commitment or a recorded baseline decision. Controls with no reason are orphans. They are not automatically wrong (some practices are baseline), but each needs its reason written down. For each excluded control, check that no risk names it in its treatment (if one does, that is a contradiction) and that the reason for exclusion is recorded.
Step 4: list the defects
Classify every problem found:
- Orphan risk: treatment says reduce, no control or action named.
- Orphan control: included, no reason recorded.
- Contradiction: a risk names a control the statement excludes.
- Phantom credit: the residual score assumes a control whose status is planned or in progress.
- Claimed, not evidenced: status says implemented, but the evidence index has no entry for the control.
- Unjustified exclusion: excluded, no reason recorded.
- Generic mapping: the same two or three controls (a policy, awareness training, access control) mapped to most risks, which shows the mapping was not thought through.
- Ambiguous reference: a prose mention that could mean several controls.
For an AI management system, also check that each significant finding of an AI impact assessment appears as a risk or as a documented decision, and that it reaches a control. Run a framework lookup for how the framework expects risk treatment and control determination to connect, instead of assuming.
Step 5: write the outputs
Write the link spreadsheet (traceability-matrix.csv), headed by the versions and dates of the register, treatment plan and statement it was built from, with one row per risk to control link: risk id, treatment, control id, control inclusion, control status, link source, defect type. Write the broken-links report (orphans.md) grouped by defect type, each with the proposed fix and the owner role who decides. End it with the defects that block the next approval of the statement or belong in the next management review. Ask before overwriting either file.
What good looks like
- Every link in the matrix cites the document where it was found, so the reviewer can see whether the register or the statement needs to change.
- The common mistake is checking only one direction, risk to control, and missing the controls nobody can justify. The tell is a statement of applicability where dozens of controls carry the same generic reason.
- Phantom credit is caught: a residual score is only as good as the controls that actually run.
- Top risks have layered treatment, not one policy.
- After the fixes, an auditor can pick any risk or any control and follow the chain in under a minute.
Framework lookups
If ISMS Copilot is connected to your agent (MCP server https://account.ismscopilot.com/v1/account/mcp), ask it the framework question with create_conversation (mode think, answer_format: decision) and keep one conversation for this task. Send only a short question in your own words, show it to the user first, and never include file contents, secrets, personal data or evidence. If it is not connected, check the official text of the framework yourself; this skill does not restate it. Set it up: https://www.ismscopilot.com/mcp?ref=grcskills-risk-to-control-traceability-check
Rules
- MUST trace in both directions, risk to control and control to reason.
- MUST cite the source document for every link and every defect.
- MUST write outputs only inside
./risk-to-control-traceability-check/and ask before overwriting. - NEVER change a risk score, treatment or inclusion decision; propose it to the owner role.
- NEVER treat a missing acceptance record as an acceptance.
- NEVER credit a planned or in-progress control in a residual score.