Dependency impact analysis
Skill SWEStash/swe-workflow-skills/plugins/security/skills/dependency-impact-analysis
Map the blast radius of a change before implementing — find dependents, classify breaking vs additive, identify coordination needs, produce a propagation plan. Triggers: what will break if I change this, blast radius, impact analysis, breaking change, who depends on this, downstream impact, safe to rename, shared schema change, dependency graph.From its SKILL.md
npx -y skills add SWEStash/swe-workflow-skills --skill dependency-impact-analysisAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.7 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
Dependency Impact Analysis
Understand what will break before breaking it. Changing a shared component without mapping its dependents leads to cascading failures — often discovered in production.
Step 1: Define the Change
Be precise about what is changing:
- What is the component? (API endpoint, database table/column, library function, event schema, shared module)
- What specifically is changing? (Field renamed, parameter added, type changed, behavior changed, endpoint removed)
- What is the deployment boundary? (Single service, multiple services, public API accessible by external clients)
A vague "I'm changing the user model" is too broad. "I'm renaming the email field to email_address in the users table and the User API response" is specific enough to analyze.
Step 2: Map All Dependents
Find everything that depends on the component being changed.
For API endpoints:
- Search for the endpoint path across all service repositories
- Check API gateway logs for callers (especially for public APIs)
- Review API documentation and SDKs for external consumers
- Check internal service-to-service call graphs or service mesh metrics
For database tables/columns:
- Search all codebases for table name and column name references
- Check ORM models, raw SQL queries, stored procedures, migration files
- Look for database views, triggers, or materialized views that reference the column
- Check reporting tools and data pipelines that read from the table directly
For shared libraries/packages:
- Check the package registry or dependency graph for what imports this library
- Search for the specific function/class/type being changed across all consumers
- Check version constraints — which consumers would receive this change automatically?
For event schemas:
- Find all producers of this event type
- Find all consumers (subscribers) of this event type
- Check event replay systems or data warehouses that store these events
For shared modules/types:
- Search the codebase for all import statements referencing the module
- Check generated clients (OpenAPI codegen, gRPC stubs) that depend on the schema
Step 3: Classify Impact by Dependent
For each dependent found, classify the impact:
| Impact type | Definition | Action required |
|---|---|---|
| Breaking | Dependent will fail or produce wrong results without modification | Must coordinate: update before or simultaneously |
| Additive | Change adds capability but doesn't break existing behavior | No action required; dependent can opt in |
| Internal | Change is within a single service, no external interface changes | No coordination needed |
| Latent | Dependent doesn't use the changed part yet, but may assume current behavior | Monitor; communicate the change |
Breaking change examples:
- Renaming a required request field
- Changing a field type
- Removing an endpoint
- Adding a required (non-nullable, no default) column to a table
- Changing event schema to remove a field
Additive change examples:
- Adding a new optional field to a response
- Adding a new endpoint
- Adding a nullable column with a default
- Deprecating (but not removing) a field
Step 4: Produce the Change Propagation Plan
For each breaking change, define the coordination plan:
Option A: Simultaneous deploy (for small, closely-coupled services under one team)
- Update all dependents in the same deployment window
- Risk: all services must be deployed together — failure in one blocks all
Option B: Versioned transition (recommended for shared APIs)
- Deploy v2 of the interface alongside v1 (both exist simultaneously)
- Migrate consumers to v2 one by one
- Remove v1 once all consumers have migrated
Option C: Expand-contract (recommended for database and event schema changes)
- Expand: add new field/column alongside old (both exist, old still works)
- Migrate: update consumers to use new field
- Contract: remove old field after all consumers are migrated
Communication plan:
- Which teams own dependent services?
- How will they be notified?
- What is the migration deadline?
- Is there a deprecation period?
Principles Applied
- Functional independence: Minimize blast radius — prefer additive changes over breaking changes when both achieve the same goal
- KISS: The simplest propagation plan is the one with the fewest simultaneous moving parts. Prefer sequential migration over big-bang deploys.
- YAGNI: Don't change more than necessary. If the change can be made additive (old behavior still works), prefer that over a breaking change.
- Explicit over implicit: Undocumented contracts are the most dangerous dependencies — they're discovered when broken, not before
Cross-Skill References
api-design— design the new API contract after impact is understoodfeature-planning— incorporate the dependency coordination into the implementation planarchitecture-design— if analysis reveals excessive coupling, document an ADR for reducing itdata-modeling— use for schema change design once impact is mappeddeployment-repo— when impact crosses repo boundaries in a polyrepo, use the deployment repo's compatibility matrix and contract tests to validate migration paths
What ships with it: 2 files
8.1 KB alongside SKILL.md
evals/
- evals.json2.5 KB
references/
- impact-patterns.md5.5 KB