Freelancers and solo developers often dread the Friday status report, a chore that requires reconstructing a week’s worth of work from scattered commit messages. Sankalpkotewar’s new open-source tool, Receipts, addresses this pain point by using a local LLM to draft updates, but it distinguishes itself with a deterministic verification layer that checks every generated sentence against the actual git commit. The project, submitted for the Hacktoberfest Open-Source AI Challenge, highlights a subtle but dangerous failure mode in AI writing: the model rarely invents work that didn’t happen, but it frequently 'promotes' minor changes into impressive-sounding features.
The Problem with Plausible Hallucinations
The core issue Receipts targets is not outright fabrication, but what the author terms 'verb inflation.' In one example, a commit that simply pinned a dependency version was described by the model as 'refactored to pin requests to version 2.31.0,' even though the commit actually removed that version constraint. Another instance showed a code formatting commit ('Run black') being described as 'implemented the export function,' conflating a stylistic change with a functional feature. These sentences are locally defensible—meaning they reference real files or actions—but collectively they create a misleading narrative that no human would likely catch without digging through the diffs.
Deterministic Rules Over Model Trust
Rather than relying on another AI to judge the first, Receipts employs three deterministic rules in app/trace.py to flag suspicious sentences. The 'Grounding' rule ensures that numbers and identifiers in the sentence appear in the cited commit, specifically checking if a version number was added or deleted to catch backwards claims. The 'Inflation' rule compares the leading verb of the sentence against the commit message, flagging cases where 'refactored' is used for a simple 'pin' action. Finally, the 'Scope' rule detects when a sentence claims broad system-wide changes for a commit that only touched a single file. This triage approach doesn’t judge the quality of the writing, but rather highlights which sentences require human review.
Local Execution and Cost Efficiency
The tool runs entirely locally using Google’s gemma3:4b model via Ollama, requiring about two minutes on an eight-core laptop without a GPU. This local-first architecture is critical for privacy, as it avoids sending private client repositories to hosted APIs for data processing. It also enables a feedback loop that metered API services cannot match: the author could run the evaluation harness repeatedly, inspect raw outputs, and refine prompts without incurring costs. This workflow revealed three specific bugs in the checker itself, such as misinterpreting filenames as verbs, which were fixed by directly observing the model’s failures on synthetic fixture repos.
Key Takeaways
- AI models often 'promote' minor commits into major features, creating plausible but misleading status reports.
- Receipts uses deterministic rules (Grounding, Inflation, Scope) to flag these inflations rather than relying on another LLM.
- Running the tool locally with gemma3:4b ensures client data privacy and enables cost-free, iterative prompt engineering.
- The project demonstrates that human-in-the-loop verification is more effective than trying to eliminate AI errors entirely.
The Bottom Line
Receipts proves that the best AI dev tools aren't those that fully automate the work, but those that make the human review process efficient enough to actually happen.