OuijaBlame

a séance for the engineer who left

    Drag the planchette. YES summons · NO clears · GOODBYE closes · spell RAILS or KUBE to find a project's ghosts

    DEV Hacktoberfest 2026 · Week 4 · Ghost in the Machine

    Why is this line here?

    Every codebase has a line nobody dares delete, and the person who knew why it is there has left. Ask the line. The ghost of whoever wrote it answers only in words they actually wrote, each linked to the commit, pull request or review where they wrote it. Gemma then explains it in plain words, citing those quotes. If nobody wrote the reason down, the ghost says so.

    Your own GitHub token (optional) and limits

    Live séances take public repos up to 150 MB, and the medium runs on a small CPU, so allow a minute. GitHub lets each browser make 60 calls an hour, about two séances. A token raises that: it stays in this tab, is sent only to api.github.com, and never reaches our server.

    Each of these lines was deleted by someone who thought it was pointless. It broke, and it was put back. Each séance heard only what was written before the deletion, so you can check the ghost against why the line really had to come back.

    How the séance works

    1. Walk the line back. git blame shows the last commit that touched a line, often a reformat. git log -L follows the line back through every change to the commit that first wrote it.
    2. Gather what was written. Commit messages, the pull requests behind them, review comments, linked issues, and the prompts behind agent-written code when a commit has an Entire checkpoint.
    3. The medium points. Gemma, an open-weight model, reads the closest passages and picks up to three that say why the line exists. It can only pick passage numbers, never write a quote.
    4. Code checks every word. Each quote must appear word for word in its source. Gemma's plain-words explanation must cite the quotes; a "why" that cites nothing is not shown.

    Ground rules

    The evidence

    On 45 real lines that were deleted, broke, and were put back, the séance surfaced a written reason for 28; the git blame message did for 19. Method and limits: results/summary.md.