
Risk Assessment
- 414 installs
- 305 repo stars
- Updated March 4, 2026
- aj-geddes/useful-ai-prompts
risk-assessment is an agent skill that builds structured project risk registers with likelihood-impact scoring, mitigation plans, and monitoring triggers for developers assessing threats before launch or architecture cha
About
risk-assessment is a useful-ai-prompts agent skill for systematic threat identification and prioritization before milestones or technology introductions. Its Quick Start includes a Python RiskIdentification scaffold with Technical, Resource, and Schedule category checklists covering integration complexity, security vulnerabilities, skill gaps, and scope creep. Four reference guides document identification techniques, analysis matrices, response planning, and monitoring controls. Best practices call for early cross-team involvement, monthly risk-register updates, assigned owners, and transparent stakeholder communication. Use risk-assessment when preparing launch readiness reviews or documenting mitigations for new dependencies—not for ad-hoc worry lists without scores or triggers.
- Maps assets, trust boundaries, and attacker scenarios
- Scores likelihood and impact with actionable mitigations
- Aligns findings to compliance frameworks and policies
- Produces executive and engineering-ready risk registers
Risk Assessment by the numbers
- 414 all-time installs (skills.sh)
- Ranked #542 of 2,203 Security skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill risk-assessmentAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 414 |
|---|---|
| repo stars | ★ 305 |
| Last updated | March 4, 2026 |
| Repository | aj-geddes/useful-ai-prompts ↗ |
How do you run a structured project risk assessment?
Produce structured security risk assessments identifying threats, likelihood, impact, and mitigations before launch or major architecture changes.
Who is it for?
Tech leads documenting security, schedule, and technical risks with mitigations before releases, vendor integrations, or compliance-sensitive launches.
Skip if: Developers needing penetration-test findings, automated CVE scanning, or legal contract review without a project planning context.
When should I use this skill?
A team plans a launch, adopts new technology, adds third-party dependencies, or faces budget or timeline constraints requiring a formal risk register.
What you get
Prioritized risk register, likelihood-impact scores, mitigation plans with owners, and monitoring trigger definitions.
- risk register
- mitigation plan
- monitoring trigger list
By the numbers
- Bundles 4 reference guides across the risk management lifecycle
- Quick Start defines 3 core risk categories: Technical, Resource, Schedule
Files
Risk Assessment
Table of Contents
Overview
Risk assessment is a systematic process of identifying potential threats to project success and developing strategies to mitigate, avoid, or accept them.
When to Use
- Project initiation and planning phases
- Before major milestones or decisions
- When introducing new technologies
- Third-party dependencies or integration
- Organizational or resource changes
- Budget or timeline constraints
- Regulatory or compliance concerns
Quick Start
Minimal working example:
# Risk identification framework
class RiskIdentification:
RISK_CATEGORIES = {
'Technical': [
'Technology maturity',
'Integration complexity',
'Performance requirements',
'Security vulnerabilities',
'Data integrity'
],
'Resource': [
'Team skill gaps',
'Staff availability',
'Budget constraints',
'Equipment/infrastructure',
'Vendor availability'
],
'Schedule': [
'Unrealistic deadlines',
'Dependency delays',
'Scope creep',
'Approval delays',
'Resource conflicts'
],
// ... (see reference guides for full implementation)Reference Guides
Detailed implementations in the references/ directory:
| Guide | Contents |
|---|---|
| Risk Identification Techniques | Risk Identification Techniques |
| Risk Analysis Matrix | Risk Analysis Matrix |
| Risk Response Planning | Risk Response Planning |
| Risk Monitoring & Control | Risk Monitoring & Control |
Best Practices
✅ DO
- Identify risks early in project planning
- Involve diverse team members in risk identification
- Quantify risk impact when possible
- Prioritize based on risk score and exposure
- Develop specific mitigation plans
- Assign clear risk ownership
- Monitor triggers regularly
- Review and update risk register monthly
- Document lessons learned from realized risks
- Communicate risks transparently to stakeholders
❌ DON'T
- Wait until problems occur to identify risks
- Assume risks will not materialize
- Treat all risks as equal priority
- Plan mitigation without clear trigger conditions
- Ignore early warning signs
- Make risk management a one-time activity
- Skip contingency planning for critical risks
- Hide negative risks from stakeholders
- Eliminate all risk (impossible and uneconomical)
- Blame individuals for realized risks
Risk Analysis Matrix
Risk Analysis Matrix
// Qualitative and quantitative risk analysis
class RiskAnalysis {
constructor() {
this.riskMatrix = [];
this.priorityMap = [];
}
// Probability scale 1-5
static PROBABILITY = {
1: { name: "Very Low", percentage: 0.1, color: "Green" },
2: { name: "Low", percentage: 0.3, color: "Green" },
3: { name: "Medium", percentage: 0.5, color: "Yellow" },
4: { name: "High", percentage: 0.7, color: "Orange" },
5: { name: "Very High", percentage: 0.9, color: "Red" },
};
// Impact scale 1-5
static IMPACT = {
1: { name: "Negligible", value: 1, scope: "Minor inconvenience" },
2: { name: "Minor", value: 10, scope: "Some delay or cost" },
3: { name: "Moderate", value: 100, scope: "Significant delay or cost" },
4: { name: "Major", value: 1000, scope: "Critical failure risk" },
5: { name: "Catastrophic", value: 10000, scope: "Project cancellation" },
};
analyzeRisk(risk) {
const probability = this.PROBABILITY[risk.probability];
const impact = this.IMPACT[risk.impact];
// Risk Score = Probability × Impact
const riskScore = risk.probability * risk.impact;
// Risk Exposure = Probability × Financial Impact
const riskExposure = probability.percentage * impact.value;
return {
riskId: risk.id,
riskScore,
riskExposure,
priority: this.calculatePriority(riskScore),
severity: this.calculateSeverity(riskScore),
mitigationUrgency: riskExposure > 100 ? "Immediate" : "Planned",
};
}
calculatePriority(riskScore) {
if (riskScore >= 16) return "Critical";
if (riskScore >= 12) return "High";
if (riskScore >= 6) return "Medium";
if (riskScore >= 2) return "Low";
return "Very Low";
}
calculateSeverity(riskScore) {
return {
score: riskScore,
rating: this.calculatePriority(riskScore),
responseNeeded: riskScore >= 12,
};
}
// Risk Matrix
createRiskMatrix(risks) {
const matrix = {
critical: [],
high: [],
medium: [],
low: [],
veryLow: [],
};
risks.forEach((risk) => {
const analysis = this.analyzeRisk(risk);
const priority = analysis.priority.toLowerCase();
if (matrix[priority]) {
matrix[priority].push({
...risk,
...analysis,
});
}
});
return matrix;
}
}Risk Identification Techniques
Risk Identification Techniques
# Risk identification framework
class RiskIdentification:
RISK_CATEGORIES = {
'Technical': [
'Technology maturity',
'Integration complexity',
'Performance requirements',
'Security vulnerabilities',
'Data integrity'
],
'Resource': [
'Team skill gaps',
'Staff availability',
'Budget constraints',
'Equipment/infrastructure',
'Vendor availability'
],
'Schedule': [
'Unrealistic deadlines',
'Dependency delays',
'Scope creep',
'Approval delays',
'Resource conflicts'
],
'External': [
'Regulatory changes',
'Market conditions',
'Vendor stability',
'Political/economic factors',
'Natural disasters'
],
'Organizational': [
'Stakeholder misalignment',
'Priority changes',
'Organizational restructuring',
'Politics/conflicts',
'Requirement changes'
]
}
@staticmethod
def brainstorm_risks(project_context):
"""
Facilitated brainstorming session to identify risks
"""
risks = []
for category, risk_types in RiskIdentification.RISK_CATEGORIES.items():
for risk_type in risk_types:
risks.append({
'category': category,
'description': risk_type,
'identified_by': [],
'probability': None,
'impact': None
})
return risks
@staticmethod
def analyze_assumptions_as_risks(assumptions):
"""
Convert project assumptions into potential risks
"""
assumption_risks = []
for assumption in assumptions:
assumption_risks.append({
'risk_type': 'Assumption Violation',
'description': f"Assumption '{assumption}' is invalid",
'trigger': f"Evidence that {assumption} is false",
'impact': 'High' if assumption.startswith('Critical') else 'Medium'
})
return assumption_risksRisk Monitoring & Control
Risk Monitoring & Control
// Risk tracking and monitoring dashboard
class RiskMonitoring {
constructor() {
this.risks = [];
this.triggers = [];
this.escalations = [];
}
createRiskRegister(risks) {
return risks.map((risk, index) => ({
id: `RK-${String(index + 1).padStart(3, "0")}`,
description: risk.description,
category: risk.category,
probability: risk.probability,
impact: risk.impact,
riskScore: risk.probability * risk.impact,
responseStrategy: risk.strategy,
owner: risk.owner,
status: "Active",
triggers: risk.triggers,
contingencyPlan: risk.contingency,
createdDate: new Date(),
lastReviewDate: new Date(),
closeDate: null,
}));
}
identifyRiskTriggers(risk) {
return {
riskId: risk.id,
triggers: [
{
trigger: "Vendor communication delay >1 week",
indicator: "No response from vendor",
escalationAction: "Contact vendor PM, evaluate alternatives",
},
{
trigger: "Team member absence >3 days",
indicator: "Unplanned time off",
escalationAction: "Activate cross-training plan",
},
{
trigger: "Performance test fails baseline",
indicator: "Response time > 500ms",
escalationAction: "Emergency optimization sprint",
},
],
reviewFrequency: "Weekly standup",
};
}
monitorRisks(riskRegister) {
const statusReport = {
timestamp: new Date(),
summary: {
total: riskRegister.length,
active: riskRegister.filter((r) => r.status === "Active").length,
mitigated: riskRegister.filter((r) => r.status === "Mitigated").length,
closed: riskRegister.filter((r) => r.status === "Closed").length,
},
criticalRisks: riskRegister.filter((r) => r.riskScore >= 16),
highRisks: riskRegister.filter(
(r) => r.riskScore >= 12 && r.riskScore < 16,
),
triggeredRisks: riskRegister.filter((r) => r.triggered === true),
};
return statusReport;
}
}Risk Response Planning
Risk Response Planning
Risk Response Strategies:
Risk 1: Integration Delay with Third-Party API
Probability: High (4/5)
Impact: Major (4/5)
Risk Score: 16 (Critical)
Response Strategy: MITIGATION
Actions:
- Engage vendor early in planning (Week 1)
- Develop fallback solution in parallel (Week 2-4)
- Allocate 20% more development time (buffer)
- Weekly sync with vendor team
- Performance testing starts Month 2
Owner: Technical Lead
Budget Impact: +$15,000
Timeline: 6 weeks vs. 4 weeks planned
---
Risk 2: Scope Creep from Stakeholders
Probability: High (4/5)
Impact: Moderate (3/5)
Risk Score: 12 (High)
Response Strategy: AVOIDANCE & MITIGATION
Actions:
- Establish change control process (Week 1)
- Lock requirements for Phase 1 (Week 2)
- Monthly scope review meetings
- Create feature backlog for Phase 2
- Strict change request evaluation criteria
Owner: Project Manager
Cost of Avoidance: 5 hours/week PM time
Alternative: Accept 2-week timeline extension
---
Risk 3: Key Person Departure
Probability: Medium (3/5)
Impact: Major (4/5)
Risk Score: 12 (High)
Response Strategy: MITIGATION & CONTINGENCY
Actions:
- Knowledge transfer documentation (ongoing)
- Cross-training second developer (Week 1)
- Maintain up-to-date runbooks
- Competitive salary review (HR)
- Mentoring program setup
Owner: HR Manager
Contingency: Hire contractor within 1 week
Estimated Cost: $20,000Process: [Name]
Purpose
TODO: Why this process exists.
Roles & Responsibilities
| Role | Responsibility |
|---|---|
| TODO | TODO |
Steps
1. TODO: First step 2. TODO: Second step 3. TODO: Third step
Inputs & Outputs
- Input: TODO
- Output: TODO
Success Criteria
- TODO: Define measurable success criteria
Review Cadence
TODO: How often to review this process.
Related skills
How it compares
Use risk-assessment for project risk registers with scores and owners, not for automated dependency CVE reports.
FAQ
What risk categories does risk-assessment include?
risk-assessment Quick Start defines Technical risks like security vulnerabilities and integration complexity, Resource risks like skill gaps and budget limits, and Schedule risks like scope creep and dependency delays. risk-assessment reference guides expand identification and sc
When should developers run risk-assessment?
risk-assessment applies during project initiation, before major milestones, when introducing new technologies, adding third-party dependencies, or facing regulatory and compliance concerns. risk-assessment produces mitigations with owners rather than one-time worry lists.