skills/project-risk-register/SKILL.md
Identifies, assesses, and prioritizes project risks using probability-times-impact scoring (risk matrix), then assigns owners, mitigation plans, contingencies, and triggers to track risk evolution over the project lifecycle. Use when managing project uncertainty, building a risk register, conducting risk assessments, defining risk mitigation plans, or when user mentions risk register, risk management, probability-impact matrix, or asks "what could go wrong with this project?".
npx skillsauth add lyndonkl/claude project-risk-registerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Risk Matrix (5×5 Probability×Impact):
Impact → 1 2 3 4 5
Prob ↓ Minimal Minor Moderate Major Severe
5 High │ Medium │ Medium │ High │ High │ Critical│
│ 5 │ 10 │ 15 │ 20 │ 25 │
4 │ Low │ Medium │ Medium │ High │ High │
│ 4 │ 8 │ 12 │ 16 │ 20 │
3 Medium │ Low │ Low │ Medium │ Medium │ High │
│ 3 │ 6 │ 9 │ 12 │ 15 │
2 │ Low │ Low │ Low │ Medium │ Medium │
│ 2 │ 4 │ 6 │ 8 │ 10 │
1 Low │ Low │ Low │ Low │ Low │ Medium │
│ 1 │ 2 │ 3 │ 4 │ 5 │
Risk Thresholds:
Example: Software Migration Project
| Risk ID | Risk | Prob | Impact | Score | Owner | Mitigation | Contingency | |---------|------|------|--------|-------|-------|------------|-------------| | R-001 | Third-party API deprecated mid-project | 3 | 4 | 12 (Medium) | Eng Lead | Contact vendor for deprecation timeline | Build abstraction layer for quick swap | | R-002 | Key engineer leaves during critical phase | 2 | 5 | 10 (Medium) | EM | Knowledge sharing, pair programming | Contract backup engineer | | R-003 | Data migration takes 3× longer than estimated | 4 | 4 | 16 (High) | Data Lead | Pilot migration on 10% data first | Extend timeline, reduce scope |
Copy this checklist and track your progress:
Risk Register Progress:
- [ ] Step 1: Identify risks across categories
- [ ] Step 2: Assess probability and impact
- [ ] Step 3: Calculate risk scores and prioritize
- [ ] Step 4: Assign owners and define responses
- [ ] Step 5: Monitor and update regularly
Step 1: Identify risks across categories
Brainstorm what could go wrong using structured categories (technical, schedule, resource, external, scope). See Common Patterns for category checklists. Use resources/template.md for register structure.
Step 2: Assess probability and impact
Score each risk on probability (1-5: rare to almost certain) and impact (1-5: minimal to severe). Involve subject matter experts for accuracy. See Risk Scoring Framework for definitions.
Step 3: Calculate risk scores and prioritize
Multiply Probability × Impact for each risk. Plot on risk matrix (5×5 grid) to visualize risk profile. Focus mitigation on Critical/High risks first. See resources/methodology.md for advanced techniques like Monte Carlo simulation.
Step 4: Assign owners and define responses
For each High/Critical risk, assign named owner (not "team"), define mitigation (reduce probability), contingency (reduce impact), and triggers (when to activate contingency). See resources/template.md for response planning structure.
Step 5: Monitor and update regularly
Review risk register weekly (active projects) or monthly (longer projects). Update probabilities/impacts as context changes, add new risks, retire closed risks, track mitigation progress. See Guardrails for monitoring cadence.
Risk categories (use for brainstorming):
By project type:
By risk response type:
Typical risk profile evolution:
Probability Scale (1-5):
Impact Scale (1-5) - adjust dimensions for project context:
For Schedule Impact:
For Budget Impact:
For Scope/Quality Impact:
Composite Impact (when multiple dimensions affected):
Example Scoring:
Risk: "Key engineer leaves mid-project"
Ensure quality:
Identify risks proactively, not reactively: Run risk workshops before problems occur
Be specific, not vague: "Integration fails" is vague, "Vendor API rate limits block migration" is specific
Separate probability and impact: Don't conflate "bad if it happens" with "likely to happen"
Assign named owners, not teams: "Engineering team" is not accountable, "Sarah (Tech Lead)" is
Define mitigation AND contingency: Mitigation reduces probability, contingency handles if it occurs anyway
Update regularly: Stale risk register is worse than none (false confidence)
Retire closed risks: Don't let register grow indefinitely, archive mitigated/irrelevant risks
Escalate critical risks immediately: Don't wait for weekly meeting if Critical risk emerges
Resources:
Success criteria:
Common mistakes:
When to use alternatives:
testing
Cluster a conference's event records into a small set of coarse themes with finer sub-clusters, an explicit outlier bucket, and soft (multi-membership) affinities — using the hybrid embed-then-label pipeline (embed abstracts, reduce, density-cluster, then LLM-label the clusters) when embedding libraries are available, and an LLM-reasoned hierarchical fallback when they are not. Embeddings do the grouping; the LLM only names the groups. Conference-agnostic. Use when turning structured event records into a navigable theme map for preference elicitation and scheduling, when you need 6-8 reasonable themes rather than 20 muddy ones, or when overlapping talks must belong to more than one theme. Trigger keywords - theme clustering, cluster talks, embed then label, soft membership, outlier talks, conference themes, topic map.
development
Build a personal conference schedule as a constraint-optimization problem — hard constraints (no time overlap, room-to-room travel time, capacity/registration, the attendee's own must-attends and blackouts) plus a user-owned weighted objective trading interest against breadth, pacing (maximize contiguous free time), and serendipity. Surfaces unbreakable conflicts (two high-value overlapping talks the model cannot rank) as decisions for the human rather than silently picking, and reports what each choice traded away. Conference-agnostic. Use to turn a preference profile plus a theme map into a day-by-day plan, to resolve overlapping sessions, or to balance a packed vs paced schedule. Trigger keywords - schedule optimization, conference schedule, constraint optimization, overlapping talks, contiguous free time, conflict surfacing, packed vs paced.
development
Parse a heterogeneous conference program (markdown, HTML, PDF-derived text, or JSON) into normalized event records with per-field confidence scores and independent classification axes (topic, depth, format, prerequisites, recorded, capacity). Detects the program's format before extracting, treats every inferred field as uncertain (present vs inferred vs missing), and flags thin or missing abstracts so downstream enrichment can target them. Conference-agnostic. Use when ingesting a conference or event schedule into a structured store, normalizing a talk/session list, or extracting per-session metadata with calibrated confidence. Trigger keywords - program ingestion, parse schedule, session extraction, event records, conference program, talk metadata, per-field confidence.
development
Build a personalized preference profile from a small number of well-chosen, cluster-grounded questions instead of a long survey. Represents the person's interests as an uncertainty region over the theme map, picks the single highest-information-gain choice-based question (contrasting real talks from different clusters), balances exploiting known interests against exploring uncertain ones, deliberately injects outlier probes to fight selection bias, and stops as soon as the schedule would be stable. Also elicits the user-owned objective weights and hard constraints. Interactive — runs where it can actually ask the person. Conference-agnostic. Use to turn a theme map into a preference profile, to decide what to ask a conference attendee, or to elicit scheduling priorities. Trigger keywords - preference elicitation, ask few questions, information gain, choice-based questions, selection bias probe, objective weights, attendee preferences.