Best for
- Pre-implementation: a roadmap, ADR, or refined ticket needs a risk
- Pre-merge: a non-trivial diff is about to land and the team wants
- Post-incident: surface the risks the team should track to prevent
event4u-app/agent-config/src/skills/risk-officer/SKILL.md
Use when surfacing and prioritising risk before commit — blast-radius framing, mitigations, residual-risk verdict — even if the user just says 'what could go wrong here?'.
Decision brief
Surface risks the implementer or PO is likely to underweight, score them by likelihood × impact, and propose mitigations the team can actually execute. Sibling of threat-modeling (security-only) and blast-radius-analyzer (call-site only) — this skill takes the wider product, ops…
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/risk-officer"Inspect the Agent Skill "risk-officer" from https://github.com/event4u-app/agent-config/blob/0adf49a8ae84b0ff6e2de8759eea43257e020eff/src/skills/risk-officer/SKILL.md at commit 0adf49a8ae84b0ff6e2de8759eea43257e020eff. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Read the input (roadmap step, ticket, diff, post-mortem) and identify the scope in one sentence: "This change does X for users Y, touching systems Z." If you cannot, the artefact is not reviewable — stop and ask.
Pre-implementation: a roadmap, ADR, or refined ticket needs a risk
Read the input (roadmap step, ticket, diff, post-mortem) and identify the scope in one sentence: "This change does X for users Y, touching systems Z." If you cannot, the artefact is not reviewable — stop and ask.
Per lens, list each risk as a single bullet. Reject vague risks — "could break things" is not a risk; "queue worker silently drops messages on retry exhaustion" is.
For every risk, assign L (likelihood: low / med / high) and I (impact: low / med / high). Top-5 sort by LxI rank; cite the trigger condition for each L and I. Do NOT pad to a fixed count — three sharp risks beat ten generic ones.
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 94/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 7 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Surface risks the implementer or PO is likely to underweight, score them by likelihood × impact, and propose mitigations the team can actually execute. Sibling of
threat-modeling(security-only) andblast-radius-analyzer(call-site only) — this skill takes the wider product, ops, and coordination view.
Do NOT use when:
threat-modeling or
judge-security-auditor.blast-radius-analyzer.Read the input (roadmap step, ticket, diff, post-mortem) and identify the scope in one sentence: "This change does X for users Y, touching systems Z." If you cannot, the artefact is not reviewable — stop and ask.
| Lens | Sample questions |
|---|---|
| Product | Wrong outcome shipped, churn, support load, brand impact |
| Operations | Rollback path, observability, on-call burden, alert noise |
| Coordination | Cross-team dependencies, communication gaps, sequencing |
| Data | Loss, corruption, leakage, retention, compliance, residency |
| Time | Schedule slip, opportunity cost, sunk-cost lock-in |
Per lens, list each risk as a single bullet. Reject vague risks — "could break things" is not a risk; "queue worker silently drops messages on retry exhaustion" is.
For every risk, assign L (likelihood: low / med / high) and I
(impact: low / med / high). Top-5 sort by LxI rank; cite the
trigger condition for each L and I. Do NOT pad to a fixed count —
three sharp risks beat ten generic ones.
For the top-5 risks, propose one mitigation that the team can
own. Each mitigation has an owner role (eng, ops, PO, support), a
rough size (S / M / L), and a residual-risk note (what stays after
mitigation). Mitigations the team cannot execute are not mitigations
— flag them as accept or escalate.
| Verdict | When to issue |
|---|---|
proceed | Top-5 risks have owned mitigations; residual is acceptable |
proceed-with-mitigations | Mitigations must land BEFORE or WITH the change |
pause | One or more high × high risks have no executable mitigation |
pause is not a veto — it forces the user to decide explicitly.
Before emitting, verify each top-5 risk has: a concrete trigger, a
scored L×I, an owned mitigation (or explicit accept), and a
residual note. Ensure the verdict matches the worst residual — a
high × high residual without executable mitigation must produce
pause, not proceed.
The report is a single block with these ordered fields:
Target: — one-sentence scope from step 1Top-5 risks: — numbered list, each with L=, I=, trigger,
mitigation, owner, size, residualOther risks tracked: — count of risks below the top-5 cutVerdict: — exactly one of proceed / proceed-with-mitigations
/ pauseRisk-Officer
Target: <one-sentence scope>
Top-5 risks:
1. 🔴 <risk> (L=high, I=high) Trigger: <condition>
Mitigation: <action> Owner: <role> Size: <S/M/L>
Residual: <what remains>
2. 🟡 <risk> (L=med, I=high) ...
Other risks tracked: <count>, summarised below or omitted if low/low.
Verdict: proceed | proceed-with-mitigations | pause
high × high reflexively to be cautious; mis-scoring
destroys the rank.pause as a soft veto on something the user already
decided; issue proceed-with-mitigations and surface the residual.