Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
awslabs avatar

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)
At a glance

phase-8-residual-risk capabilities & compatibility

Capabilities
threat modeling · residual risk analysis · risk acceptance
Use cases
security audit
Pricing
Free
From the docs

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.
SKILL.md
Not documenting WHY a risk is accepted
SKILL.md
npx skills add https://github.com/awslabs/threat-modeling-mcp-server --skill phase-8-residual-risk

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1
repo stars79
Last updatedJuly 30, 2026
Repositoryawslabs/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

SKILL.mdMarkdownGitHub ↗

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 status
  • list_mitigations() -- Get all mitigations with status
  • get_threat(id) -- Detailed view including linked mitigations
  • get_mitigation(id) -- Detailed view including linked threats

Decision Tools

  • update_threat(id, status=...) -- Set final threat status
  • add_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

StatusCriteriaAction
threatResolvedThreat adequately mitigated by controlsMark resolved with justification
threatResolvedNotUsefulThreat not applicable to this system, or risk formally acceptedMark with business justification
threatIdentified (keep)Threat still needs attention, controls insufficientDocument 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.

Securityauditcomplianceappsec

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.