Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

I asked a deleted file to speak. It lied about line 9.

Описание и применение

ghostline позволяет получить последний существующий вариант удалённого файла из репозитория Git и запросить у открытой модели короткий рассказ с цитатами. Модель может ошибаться, даже если цитаты существуют, что подчёркивает необходимость проверки исходного кода.

Задача

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.

Результат

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.

Рабочий процесс

  • 1. Point ghostline at a repository and a deleted file path.
  • 2. ghostline runs git log --diff-filter=D to find the deletion commit.
  • 3. It retrieves the file from the parent commit using git show PARENT:path and 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.

Доказательства

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

Источник

  • Дата записи: 2026-11-02T05:44:05.038Z