How We Got Here

About PRISM

Program Resolution & Inheritance Structure Map

PRISM exists because inheritance chains should be transparent. When you edit a method buried in a deep class hierarchy, you deserve to know instantly whether your version actually runs.

The Problem

Method shadowing in the dark

You are editing DLEstimatorBase.configure_optimizers. You add logic. You test. But the test passes with the old behavior. Something is wrong.

After 20 minutes of debugging, you discover:LightningTrainer.configure_optimizersalso defines the method. Your base class version never runs—the derived class shadows it. You were editing dead code.

This happens constantly in large inheritance chains. The deeper the hierarchy, the easier it is to edit a method that never executes. Python's MRO is powerful, but invisible until something breaks.

PRISM makes the invisible visible.

How It Works

The 200ms loop

1

Cursor moves

You move your cursor in a Python file.

2

Extension sends request

The TypeScript extension captures the cursor position and file path.

3

Backend analyzes

The Python backend parses the AST, resolves the inheritance chain, computes the Method Resolution Order (C3 linearization), and classifies each method into one of four states.

4

Panel updates

The webview panel renders the MRO chain, method statuses, and a summary of whether your method actually runs.

All of this happens in under 200 milliseconds. No configuration. No waiting.

Built By

Temilola Olowolayemo built PRISM from scratch. Every line of code — TypeScript extension, Python backend, webview UI — was written with the principle that developers deserve tools that respect their time and intelligence.

The idea for PRISM came from my first internship at Uber, working on the Michelangelo Deep Learning team. It was the first time I was working in a codebase of that scale — deep inheritance hierarchies, methods overriding methods overriding methods. I spent more time than I'd like to admit figuring out whether the code I was editing was even the version that ran. I got the job done, but I kept thinking: there has to be a better way to onboard to a new codebase and understand where your changes actually live.

That question sent me down a series of rabbit holes — from the literature on how class resolution works across languages, to the diamond problem, to C3 linearization, and beyond. PRISM is the tool I wish I'd had on day one.

Read the full story in Why I Built PRISM

Going Open Source

Free forever

PRISM is free to use. The codebase is coming to open source after refactoring and code review is complete. We believe good developer tools should be transparent, auditable, and community-driven.

Follow on GitHub