From ea-assistant
Generate or view the Risk Register by aggregating all risks from across all artifacts in the active engagement. Supports filtering by status, severity, owner, domain, phase, or source artifact.
How this command is triggered — by the user, by Claude, or both
Slash command
/ea-assistant:ea-risks [generate|status|update] [--status open|monitoring|accepted|closed|all] [--severity critical|high|medium|low] [--owner "name"] [--phase A|B|C|D|E|F|G|H] [--artifact "name"] [RIS-NNN field value]This command is limited to the following tools:
The summary Claude sees in its command listing — used to decide when to auto-load this command
You are executing the `/ea-risks` command. Load the `ea-engagement-lifecycle` skill and the `ea-artifact-templates` skill for context. ## Overview The Risk Register aggregates all architecture risks from every artifact in the active engagement into a single cross-cutting view. It tracks likelihood, impact, mitigation, ownership, and status for every risk identified during the engagement. **Risk sources scanned:** - Architecture Vision — §14 Key Risks table - Statement of Architecture Work — Risk section - Migration Plan — §4 Risk Register table - Architecture Compliance Assessment — Outs...
You are executing the /ea-risks command. Load the ea-engagement-lifecycle skill and the ea-artifact-templates skill for context.
The Risk Register aggregates all architecture risks from every artifact in the active engagement into a single cross-cutting view. It tracks likelihood, impact, mitigation, ownership, and status for every risk identified during the engagement.
Risk sources scanned:
risk-register-*.md artifact (for previously curated RIS-NNN entries)EA-projects/*/engagement.json (excluding .archive/) and ask the user to select one.engagement.json to confirm the slug and engagement name.Mode selection (first positional argument, defaults to generate):
| Mode | Invocation | Effect |
|---|---|---|
generate | /ea-risks or /ea-risks generate | Scan all artifacts, aggregate risks, write register file |
status | /ea-risks status | Inline summary only — no file written |
update | /ea-risks update RIS-NNN <field> <value> | Update a single field on an existing risk |
Filter flags (apply to generate and status modes):
| Flag | Values | Effect |
|---|---|---|
--status | open / monitoring / accepted / closed / all | Filter by risk status. Default for generate: all. Default for status: open |
--severity | critical / high / medium / low | Filter by derived risk rating |
--owner "name" | Any string | Case-insensitive partial match on Owner |
--phase | A / B / C / D / E / F / G / H | Filter by phase where risk was identified |
--artifact "name" | Any string | Filter by source artifact (partial match) |
statusgenerate, Step 3 below).Risk Register — {engagement name}
══════════════════════════════════════════
Total: {N} | Open: {N} | Monitoring: {N} | Accepted: {N} | Closed: {N}
By Rating: Critical {N} | High {N} | Medium {N} | Low {N}
By Source: Arch Vision {N} | SoAW {N} | Migration Plan {N} | Compliance {N} | Register {N}
Open owners: {name} ×{N} | {name} ×{N} | Unassigned ×{N}
Sources: {N} artifacts scanned, {N} contained risks
/ea-risks to generate the full register, or /ea-risks --severity critical to focus on critical risks."updateInvoked as: /ea-risks update RIS-NNN <field> <value>
EA-projects/{slug}/artifacts/risk-register-*.md.
/ea-risks to generate one first."RIS-NNN section in the file.status → Open / Monitoring / Accepted / Closedowner → name and role stringmitigation → updated mitigation textcontingency → updated contingency textlikelihood → High / Medium / Lowimpact → High / Medium / Lowlikelihood or impact changes, recalculate the Rating field using the rating matrix (see template guidance).Last Reviewed field to today's date.Closed or Accepted, move the risk row to the Closed / Accepted Risks table and record the resolution.generate (default)EA-projects/{slug}/artifacts/ matching *.md (exclude *.review.md and risk-register-*.md).| Artifact Pattern | Section to Scan | Row Format |
|---|---|---|
architecture-vision*.md | ## 14. Key Risks or ## Key Risks | Risk | Likelihood | Impact | Mitigation table |
statement-of-architecture-work*.md | Any Risk section | Risk | Likelihood | Impact | Mitigation table |
migration-plan*.md | ## 4. Risk Register | Risk ID | Description | Likelihood | Impact | Mitigation | Owner table |
compliance-assessment*.md | Outstanding Risks section | Any risk table or bullet list |
risk-register-*.md | All RIS-NNN: sections | Existing curated risk entries (highest fidelity — use as-is) |
For each risk row found:
High + High → CriticalHigh + Medium OR Medium + High → HighMedium + Medium OR High + Low OR Low + High → MediumMedium + Low OR Low + Medium OR Low + Low → LowRIS-NNN ID if not already assigned (increment from last used ID; preserve existing IDs from prior register).Deduplicate: if the same risk description appears in both an existing risk-register-*.md and another source artifact, use the register version (it is more authoritative).
Count: total artifacts scanned, artifacts with risks, total risk rows.
Apply any flags from Step 2 to the risk list. Partial-match flags (--owner, --artifact) use case-insensitive substring matching.
If filtering results in zero rows, output: "No risks match the applied filters." with the filter summary, then stop without writing a file.
For each Open or Monitoring risk, check whether its description references any G-NNN or OBJ-NNN IDs from engagement.json. If references are present, populate Affected Objectives. If no references are explicit, note — (do not infer).
Populate templates/risk-register.md with the collected data:
generated: frontmatter to today's datefilters: {filter summary}Ask the user:
Output as: 1. Markdown (in-chat) 2. Word document (.docx) 3. Summary table only (inline, no file)
Press Enter or type 1 for Markdown.
EA-projects/{slug}/artifacts/risk-register-{YYYY-MM-DD}.md. Register in engagement.json with phase: "All", status: "Draft". If a risk register for today already exists, append -v2, -v3 etc. Display a brief confirmation with counts..md file first (same as Option 1), then load the ea-generation skill and export to .docx.| Scenario | Handling |
|---|---|
| No artifacts contain risk content | Report "No risks found in any artifact." Offer to create a risk register from scratch using grill-me-premortem |
| Risk row has no likelihood or impact | Include with Rating: Unrated; flag in Summary: "N unrated risks — run /ea-risks update RIS-NNN likelihood <value> to complete" |
| Existing risk register found | Preserve all existing RIS-NNN IDs and curated content; only add new risks from re-scan; update summary counts |
| Same risk in multiple artifacts | Use the most detailed version; record all source artifacts in Source field (comma-separated) |
| Risk with no owner | Set Owner: Unassigned; flag in summary count |
Migration Plan uses MIG-RNNNN IDs | Assign a canonical RIS-NNN and record the source ID in the Source field as Migration Plan (MIG-R001) |
npx claudepluginhub somtimz/plugins --plugin ea-assistant