I asked a deleted file to speak. It lied about line 9.
Description and use
ghostline retrieves the last surviving version of a deleted file from a Git repository and asks an open-weight model to write a short first-person narrative with citations. The model can still produce false statements even when citing real evidence, highlighting the need to inspect source excerpts.
Problem
A deleted file’s last surviving version can still be retrieved and used to generate a narrative, but an open-weight model may produce false statements even when citing real evidence.
Outcome
ghostline demonstrates that while evidence IDs can be verified, the model can still produce false statements, highlighting the need to inspect source excerpts rather than trusting the model’s narrative.
Workflow
- 1. Point ghostline at a repository and a deleted file path.
- 2. ghostline runs
git log --diff-filter=Dto find the deletion commit. - 3. It retrieves the file from the parent commit using
git show PARENT:pathand numbers the source lines into evidence IDs. - 4. The tool sends the evidence blocks to an open-weight model via a chat-completions endpoint.
- 5. The model returns a JSON with a voice, 2–5 citations, and an uncertainty sentence.
- 6. ghostline validates that all cited evidence IDs exist and prints the evidence alongside the voice.
- 7. If any cited ID is missing, the run fails.
Evidence
ghostline is a small Python CLI. Point it at a repository and a deleted path. It finds the most recent deletion commit, retrieves the file from the preceding revision, and gives numbered evidence blocks to an open-weight model.
The model writes a short first-person “ghost” account and selects citations. The CLI refuses to print an answer if any cited evidence ID does not exist.
The model’s voice said the assignment on line 9 “would have stored a potentially failed value.” That sounds plausible. It even cited the source block containing line 9.
The preceding block says: try: value = fetch(key) except TimeoutError: return cache.get(key) cache[key] = value
- Record date: 2026-11-02T05:44:05.038Z