
Phase 8 Residual Risk
- 1 installs
- 79 repo stars
- Updated July 30, 2026
- awslabs/threat-modeling-mcp-server
Phase 8 Residual Risk is a Claude Code skill that guides residual-risk analysis and final threat-status decisions in a threat-modeling workflow.
About
Phase 8 Residual Risk is a guide for the residual-risk stage of a threat-modeling workflow run against the threat-modeling MCP server. It assesses what risk remains after all mitigations are applied and drives explicit risk-acceptance decisions with documented justifications. A developer or security reviewer uses it to set a final status on every threat (resolved, not useful, or still identified) and to record acceptance assumptions. It provides a five-factor risk framework and a decision guide, then advances to the next phase.
- Phase 8 guide: assess what risk remains after all mitigations are applied
- Makes explicit risk-acceptance decisions and documents justifications
- Sets final threat status (threatResolved, threatResolvedNotUseful, or threatIdentified)
Phase 8 Residual Risk by the numbers
- 1 all-time installs (skills.sh)
- Ranked #1,835 of 2,203 Security skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
phase-8-residual-risk capabilities & compatibility
- Capabilities
- threat modeling · residual risk analysis · risk acceptance
- Use cases
- security audit
- Pricing
- Free
What phase-8-residual-risk says it does
Assess what risk remains after all mitigations are applied. Make explicit risk acceptance decisions and document justifications.
Not documenting WHY a risk is accepted
npx skills add https://github.com/awslabs/threat-modeling-mcp-server --skill phase-8-residual-riskAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 1 |
|---|---|
| repo stars | ★ 79 |
| Last updated | July 30, 2026 |
| Repository | awslabs/threat-modeling-mcp-server ↗ |
What it does
Assess residual risk after mitigations and set a deliberate final status on each threat with documented justification.
Who is it for?
Security reviewers finalizing a threat model who need to assess residual risk and record acceptance decisions.
Skip if: Early threat identification or mitigation design; it assumes mitigations are already applied.
When should I use this skill?
Assessing remaining risk after mitigations, making risk-acceptance decisions, or updating final threat statuses.
What you get
Every threat reviewed for residual risk with a final status and documented risk-acceptance justification.
- Final status set on each threat
- Risk-acceptance assumptions with business justification
By the numbers
- Five-factor residual-risk assessment framework
- 6-item completion criteria checklist
- 3 final threat statuses
Files
Phase 8: Residual Risk Analysis
Objective
Assess what risk remains after all mitigations are applied. Make explicit risk acceptance decisions and document justifications.
Tools Reference
Review Tools
list_threats()-- Get all threats with current statuslist_mitigations()-- Get all mitigations with statusget_threat(id)-- Detailed view including linked mitigationsget_mitigation(id)-- Detailed view including linked threats
Decision Tools
update_threat(id, status=...)-- Set final threat statusadd_assumption(description, category, impact, rationale)-- Document risk acceptance
Risk Assessment Framework
For each threat, consider:
1. Mitigations in place: What controls address this threat? 2. Mitigation effectiveness: How well do the controls work? 3. Residual likelihood: After controls, how likely is the threat? 4. Residual impact: If it still occurs, what's the damage? 5. Business tolerance: Can the business accept this level of risk?
Final Threat Status Decisions
| Status | Criteria | Action |
|---|---|---|
threatResolved | Threat adequately mitigated by controls | Mark resolved with justification |
threatResolvedNotUseful | Threat not applicable to this system, or risk formally accepted | Mark with business justification |
threatIdentified (keep) | Threat still needs attention, controls insufficient | Document what's still needed |
Decision Guide
Mark as threatResolved when:
- Preventive controls fully address the threat vector
- Detective + corrective controls provide adequate response
- Code validation confirmed implementation
- Industry-standard controls are in place
Mark as threatResolvedNotUseful when:
- The threat scenario is unrealistic for this system
- Business has formally accepted the risk with justification
- The threat is blocked by architectural constraints
Keep as threatIdentified when:
- Controls are planned but not implemented
- Partial mitigation leaves significant residual risk
- No cost-effective mitigation exists yet
Workflow
1. Call `get_phase_8_guidance()` 2. Call `list_threats()` to get the full inventory 3. For each threat: a. Call get_threat(id) to see linked mitigations b. Assess residual risk considering mitigation effectiveness c. Call update_threat(id, status=...) with appropriate status 4. Document risk acceptance with add_assumption():
- "Risk of DDoS accepted: CDN and auto-scaling provide adequate protection"
- "SQL injection risk resolved: all database queries use parameterized statements"
5. Review summary with list_threats(status="threatIdentified") to see remaining open risks
Completion Criteria
- [ ] Every threat reviewed for residual risk
- [ ] Final status set on each threat
- [ ] Risk acceptance assumptions documented with business justification
- [ ] No threats left without a deliberate status decision
- [ ] Call
advance_phase()to proceed to Phase 9
Common Pitfalls
- Marking all threats as resolved without justification
- Not documenting WHY a risk is accepted
- Forgetting to consider combined/cascading risks
- Ignoring threats that lack mitigations
Related skills
FAQ
What final statuses can a threat get?
threatResolved, threatResolvedNotUseful, or kept as threatIdentified, each with criteria and required justification.
What tools does the phase use?
list_threats(), list_mitigations(), get_threat(id), update_threat(id, status=...), and add_assumption() on the threat-modeling MCP server.