Problem

Finding a pattern in source code does not automatically mean it makes a good test. The hard part is deciding which findings are reliable enough to run as pytest checks.

What I built

  • A Python code reader that records classes, functions, calls, field access, exceptions, boundaries, and common dataclass patterns.
  • Soufflé rules that connect those facts and find useful relationships across the program.
  • A pytest generator that only promotes well-supported checks; uncertain or LLM-suggested results stay separate for human review.

What works today

  • Generated test suites and reports for CutePetsBoston, dacite, bounded Transformers, and a type-checker case study.
  • Reusable checks for dataclass fields, constructors, default values, and conversions.
  • A browser view that shows the path from source facts to Soufflé results, generated tests, validation, and items that still need review.