The current codebase exhibits inconsistencies in metric and pattern interfaces, where some implementations accept an ast while others take a filepath. Additionally, the unstructured use of dictionaries in config and main complicates maintenance and refactoring.
Historical commit patterns suggest that the intended contract operates on an ast (Abstract Syntax Tree), but this is not formally enforced, leading to potential bugs and technical debt.