Impact analysis example
What breaks when you change tRPC (packages/server)?
Real arc impact output on tRPC (packages/server) — same structure as the homepage demo. Know blast radius before you merge.
Project: tRPC (packages/server) · Score: 79.3/100 (Healthy architecture) · 76 modules · 251 edges
Engineering decision simulation
Validation procedure 01 · merge vs. hold before output
Before arc impact
You plan a change to a high fan-in module in tRPC (packages/server). Would you merge without knowing blast radius?
Typical answer: hold — need dependency context.
After arc impact
Structured output below: score, hotspots, corridors, and high-risk modules — same field schema as the homepage proof.
Decision: confirm hold, narrow change, or inspect paths first.
Published as part of the validation record. Run locally: arc impact <file-you-are-changing>
Architectural Risk Map
Where risk accumulates by control surface — drill down Surface → Substrate → Mechanism → Evidence.
See control surfaces →Dependency evidence
Architecture visualization
Diagrams are generated from ArcSight analysis data. Dependency graph and risk map show key modules; subsystem view shows high-level structure.
Architecture score & metrics
Score: 79.3/100 · Stability: 29/100 · Status: moderate_risk · Confidence: 100%
- Dependency cycles: 10
- Duplicate authorities: 58
Modules to inspect
One row per module. Fan-in is direct dependents. Blast radius is downstream modules reachable from that file.
- src/unstable-core-do-not-import/utils17 dependents
- src/unstable-core-do-not-import/error/TRPCError13 dependents
- src/unstable-core-do-not-import13 dependents
- src/unstable-core-do-not-import/procedure13 dependents
- src/unstable-core-do-not-import/types12 dependents
- src/unstable-core-do-not-import/router7 dependents
- src/unstable-core-do-not-import/rpc7 dependents
- src/unstable-core-do-not-import/stream/utils/disposable6 dependents
- src/unstable-core-do-not-import/utils60 modules
- src/unstable-core-do-not-import/types56 modules
- src/unstable-core-do-not-import/error/TRPCError53 modules
- src/unstable-core-do-not-import51 modules
- src/unstable-core-do-not-import/procedure51 modules
- src/unstable-core-do-not-import/router51 modules
- src/unstable-core-do-not-import/rpc51 modules
| Module | Fan-in | Blast | Risk |
|---|---|---|---|
| src/unstable-core-do-not-import/utils | 17 | 60 | HIGH |
| src/unstable-core-do-not-import/types | 12 | 56 | MEDIUM |
| src/unstable-core-do-not-import/error/TRPCError | 13 | 53 | MEDIUM |
| src/unstable-core-do-not-import | 13 | 51 | MEDIUM |
| src/unstable-core-do-not-import/procedure | 13 | 51 | CRITICAL |
| src/unstable-core-do-not-import/router | 7 | 51 | CRITICAL |
| src/unstable-core-do-not-import/rpc | 7 | 51 | CRITICAL |
| src/unstable-core-do-not-import/stream/utils/disposable | 6 | MEDIUM |
Architectural gravity centers
src/unstable-core-do-not-import/utils— concentrates too many responsibilitiessrc/unstable-core-do-not-import/utils— shared utility hubsrc/unstable-core-do-not-import/types— concentrates too many responsibilitiessrc/unstable-core-do-not-import/error/TRPCError— concentrates too many responsibilitiessrc/unstable-core-do-not-import/error/TRPCError— shared utility hub
CLI workflow
Scan → Fix → Finish → Watch. Nothing else required.
arc scanFind issuesarc fixApply fixesarc finishResolve remainingarc watchKeep clean
Key takeaways
- •Structural scan reports dependency cycles — inspect impact paths before refactors that cross module boundaries.
- •High fan-in modules are change-risk zones; run
arc explain <path>before refactoring. - •Run the full workflow (analyze, hotspots, explain, impact, snapshot, drift) in your repo for deterministic architecture insights.
Run ArcSight on your repo
Install the CLI and run analyze, then hotspots and explain for the same workflow.
This case study is generated from ArcSight analysis data. View short analysis. View all analyses