Solutions
Find what's called but never defined.
Ghost methods are symbols your code calls that don't exist anywhere in the codebase. They're the product of deleted code, typos, missing dependencies, and refactors that didn't finish. Axiom Refract finds every one of them.
Phantom calls hiding in plain sight.
A ghost method is a function, method, or symbol that appears at a call site but has no corresponding definition anywhere in the analyzed codebase. The code says “call this function.” The function doesn't exist.
In compiled languages, the compiler catches most of these. In interpreted languages, dynamic languages, and polyglot codebases — which is most production software — ghost methods survive until they detonate at runtime.
Your linter doesn't find them. Your type checker misses the dynamic ones. Your tests only cover the happy paths. Axiom Refract scans the entire call graph.
Why ghost methods exist.
Deleted Code, Surviving Calls
Someone removed a utility function or helper module but didn't grep for every call site. The import still compiles in some languages. The function call still sits in the code. It's a runtime error waiting for the right trigger.
Typos in Method Names
A function is called getUserProfile but the definition says getUserProfle. In dynamically typed languages, the linter won't catch it. The tests might not cover it. The user hits it on a Tuesday afternoon.
Dynamic Dispatch Gaps
Metaprogramming, reflection, string-based method resolution — these patterns create call sites that no static analyzer can fully resolve. Axiom Refract flags them as ghost methods with their call site counts, so you can investigate the ones that matter.
Missing Dependencies
A package was removed from package.json but the import statements survived. A peer dependency was assumed but never installed. The code references symbols from a library that isn't there.
Cross-Module Drift
Module A was refactored. Module B still calls the old interface. In a monorepo with 200 packages, nobody noticed. In a polyglot codebase with Python calling Go calling TypeScript, nobody could notice.
How Axiom Refract finds them.
Axiom Refract parses every file in your codebase using Tree-sitter AST analysis across 145+ languages. It builds a complete call graph — every function definition, every call site, every import chain. Then it cross-references: for every symbol that appears at a call site, does a definition exist?
If the answer is no, it's flagged as a ghost method. Each ghost includes:
Symbol Name
The exact function, method, or symbol that's called but never defined.
Call Site Count
How many places in the codebase reference this phantom symbol. One call site is a curiosity. Twelve call sites is a pattern.
Likely Source
Where the ghost probably came from — deleted file, missing dependency, renamed function — based on codebase history and structural analysis.
Affected Zone
Which architectural zone contains the ghost method calls, so you can assign the fix to the right team.
Actionable, not just informational.
Ghost methods aren't academic curiosities. A ghost method with 15 call sites is a systemic risk — it means 15 code paths that will fail when they hit a specific branch. Axiom Refract ranks ghosts by call site count so you fix the dangerous ones first.
Ghost method findings are also available via MCP, so your AI coding agents can check for phantoms before generating code that calls functions that don't exist — a common failure mode for AI-assisted development.
Find the phantom calls hiding in your codebase.
Upload your repository. Axiom Refract scans the full call graph and reports every symbol that's referenced but never defined — with call site counts, likely sources, and zone assignments.