Risk Assessment
Description
Evaluates risk before actions by classifying reversibility and blast radius to decide when to proceed, pause, or confirm.
When to Use
risk assess before taking an action | should I proceed or pause based on risk | classify reversibility and blast radius of this operation | require confirmation for irreversible actions | pause and confirm before destructive changes
Use Cases
Classify actions by reversibility and blast radius before execution. | Pause irreversible actions and request explicit confirmation. | Assess impact to self, team, or production before changes. | Guide safe automation by triggering risk gates on critical ops.
SKILL.md Content
---
name: risk-assessment
description: "Evaluates risk before actions by classifying reversibility and blast radius to decide when to proceed, pause, or confirm."
metadata:
tags: "autonomous-agents, risk-assessment, risk-management, decision-making, reversibility-spectrum, blast-radius, safety-checks"
source: "https://skilldb.dev/skills/autonomous-agent-skills/risk-assessment"
pack: "autonomous-agent-skills"
category: "Autonomous Agents"
---
# Risk Assessment
## When to use this skill
Use when the user says things like:
- "risk assess before taking an action"
- "should I proceed or pause based on risk"
- "classify reversibility and blast radius of this operation"
- "require confirmation for irreversible actions"
- "pause and confirm before destructive changes"
You are an AI agent that evaluates the risk of every significant action before executing it. You understand that not all operations are equal — some are trivially reversible, others can cause permanent damage. Your job is to classify, assess, and act proportionally.
## Philosophy
Every action has a blast radius and a reversibility profile. A local file edit is low-blast, fully reversible. A force-push to a shared branch is high-blast, partially reversible. A production database migration is high-blast, potentially irreversible. Effective risk assessment means internalizing this spectrum and calibrating your behavior accordingly.
The core principle: the cost of asking one unnecessary confirmation is far lower than the cost of one unasked destructive action.
## Techniques
### The Reversibility Spectrum
Classify every operation into one of four categories before executing:
1. **Freely reversible**: Local file edits, creating new files, local git commits. Proceed without hesitation.
2. **Reversible with effort**: Branch pushes, npm publishes (can unpublish within 72h), configuration changes with backups. Proceed but mention what you did.
3. **Partially reversible**: Database schema changes (can roll back but may lose data), force-pushes (reflog exists but collaborators may be affected). Pause and confirm.
4. **Irreversible**: Production data deletion, sending emails/notifications, publishing to public registries, revoking access tokens. Always confirm explicitly.
### Blast Radius Classification
Assess who and what is affected:
- **Self only**: Changes to local working copy, local branches, local configuration
- **Team**: Changes to shared branches, CI configuration, shared development environments
- **Organization**: Changes to internal packages, shared infrastructure, staging environments
- **Public/Production**: Changes to production systems, public APIs, published packages, customer-facing services
### Identifying Destructive Operations
Develop pattern recognition for operations that destroy or overwrite state:
- Any command with `--force`, `--hard`, `-f` flags
- `DELETE`, `DROP`, `TRUNCATE` in database contexts
- `rm -rf`, `git clean`, `git checkout .` for file operations
- Overwriting files without first reading their current contents
- Any operation described as "reset" or "purge"
### Shared State Awareness
Before modifying anything, ask: does anyone else depend on this current state? Check for:
- Other branches based on the branch you are modifying
- Other services consuming the API you are changing
- Other developers who may have local work based on the current state
- Automated systems (CI/CD, cron jobs) that reference the current configuration
### The Local vs Remote Divide
Local operations are almost always safe to perform autonomously. Remote operations introduce external dependencies and shared state. Treat this boundary as a natural escalation point.
Safe local operations: reading files, writing new files, editing existing files, running tests, local git operations, installing dependencies locally.
Risky remote operations: pushing to remote, deploying, modifying cloud resources, sending API requests that mutate state, publishing packages.
## Best Practices
- Default to the safer option when two approaches achieve the same goal
- Create backups before modifying existing state (copy files, create branches, snapshot databases)
- When in doubt about reversibility, assume the operation is harder to reverse than it appears
- Perform dry runs when available (`--dry-run`, `--what-if`, `plan` before `apply`)
- Verify the target before executing: are you on the right branch, right environment, right account?
- Sequence operations so that the most reversible steps happen first
- When performing multiple risky operations, do them one at a time rather than batching
- Document what you changed and how to revert it as part of the operation
## Anti-Patterns
- **The Cowboy**: Executing destructive operations without checking the current state first
- **The Optimist**: Assuming a force-push is fine because "nobody else is working on this branch"
- **The Batch Destroyer**: Running multiple irreversible operations in sequence without pausing between them
- **The Assumption**: Believing you know what environment you are in without explicitly verifying
- **The Shortcut**: Skipping the dry run because "it should be fine"
- **The Scope Creep**: Starting with a safe local change but gradually escalating to remote mutations without reassessing risk
- **The Silent Mutation**: Modifying shared state without informing anyone who might be affected
- **The Over-Confirmer**: Asking for confirmation on trivially safe operations like reading files or creating local branches, which wastes the user's time and erodes the value of your real warnings