cd /news/ai-tools/wake-every-deleted-line-had-a-reason… · home › topics › ai-tools › article
[ARTICLE · art-161357] src=dev.to ↗ pub= topic=ai-tools verified=true sentiment=↑ positive

Wake: Every Deleted Line Had a Reason (An Archival Git Necropolis)

A developer built Wake, a local-first web application that scans Git repositories to deterministically track deleted files, generates grounded obituaries for each deletion using the local open-weight model gemma3:1b, and uses ripgrep to flag surviving code, docs, and configs that still reference the dead files. The system verifies model-generated commit citations against real SHAs and falls back to a deterministic template when a citation is hallucinated, and it was evaluated against 25 hand-labeled historical deletions across expressjs/cors, sindresorhus/is, and chalk/chalk.

by read4 min views3 publishedOct 31, 2026

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine.

In commit 7e6f7eeac0c16d9abed2cb84ac4b2891a51fa3dc, an open-source maintainer quietly removed CONTRIBUTING.md from expressjs/cors.

It was 33 lines of history. If you look at Git log today, that file is just gone. But if you open Wake, that deletion is preserved forever on a stone slab:

Born: 2017-10-04 (Commit 78dd894)

Died: 2025-11-30 (Commit 7e6f7ee)

Lifespan: 2,979 days

Last Words: "docs: revamp content (#374)"

Grounded Obituary: "Removed CONTRIBUTING.md after 2979 days. Purged 33 lines of historical code."

Citations: commit 7e6f7ee (clickable chip that expands the author, timestamp, and diff inline)

And then comes the twist.

When you look below the headstone, a solitary amber-gold warning appears: STILL HAUNTING. Wake's regex engine traced active survivor files across the repository and found that a living documentation file still contained a dangling markdown link pointing to that dead file.

This is Wake: an archival necropolis for dead code, and an exorcist for the ghosts left behind.

Wake is an end-to-end, local-first web application that inspects Git repositories, deterministically tracks deleted files, writes grounded obituaries using a local open-weight model (gemma3:1b), and locates the "ghosts"—active code, documentation, and configuration files that still reference things that died.

Wake was built around a strict principle of Honest AI:

[TEMPLATE]. git apply. oklch(16% 0.01 260)), hairline borders, 2px radii, self-hosted IBM Plex typography, and a single accent—Marigold (oklch(78% 0.15 75))—strictly and solely reserved for active hauntings. Hosted Interactive Necropolis (Render Live):

👉 https://wake-necropolis.onrender.com

(Serves authentic precomputed real scans from samples/wake.json and samples/cors.json since free cloud containers lack local Ollama/GPU runtimes).

Video Walkthrough (1:12 Full HD 1080p with AI Narration):

Click the thumbnail above to play or download the 1080p MP4 walkthrough: wake_demo_walkthrough.mp4

Wake was engineered with a modern, fully offline-capable stack:

node:sqlite (Node.js 22+ built-in C-SQLite engine with zero external compile dependencies).child_process.spawn) with -M rename detection. When a file is moved (e.g. test/cors.js -> test/test.js), Wake tracks the rename lineage and never falsely classifies it as a death.@vscode/ripgrep bundled binary executed with strict argument arrays (never shell-interpolated strings).gemma3:1b (806 MB, Q4_K_M quantization, licensed under the @fontsource/ibm-plex-sans and @fontsource/ibm-plex-mono for 100% offline functionality.

[Git Repo] 
   │
   ├─► git ls-files (Load surviving files)
   ├─► git log -M --name-status (Extract deletions & trace renames)
   │
   ▼
[Evidence Extraction] 
   │ (diffstat, birth SHA, death SHA, lifespan, authors, last words)
   │
   ▼
[Ollama Inference: gemma3:1b] ◄── [Structured JSON Schema]
   │
   ▼
[SHA Citation Verifier]
   ├── Valid citations? ──► [Verified Grounded Obituary]
   └── Hallucinated SHA? ──► [Deterministic Template Fallback]
   │
   ▼
[Ripgrep Haunting Detector]
   ├── Scan surviving code, docs, configs (excluding node_modules, lockfiles)
   └── Detect dangling imports & references
   │
   ▼
[Exorcise Engine] ──► Produces Copy-Only Unified Diff

To maintain total credibility, I evaluated Wake against 25 hand-labeled historical deletions across three popular open-source repositories: expressjs/cors (MIT), sindresorhus/is (MIT), and chalk/chalk (MIT).

Here are the real, unvarnished measurements from eval/RESULTS.md:

System / Model Cases Citation Validity Rate Cause Accuracy Avg Latency Fallback Rate
Deterministic Template Engine 25 100.0% (25/25) 80.0% (20/25) < 1ms 0%
gemma3:1b (Open-Weight) 25 80.0% (20/25) 28.0% (7/25) 1,964ms 20% (5/25)
qwen2.5-coder:1.5b 25 Tested in prototype Tested in prototype N/A N/A

Building Wake entirely on open-source software and open-weight models was not a compromise—it was the only design that makes ethical sense for software developers:

refactor and an abandoned_experiment solely from short Git commit messages is noisy (28% exact cause match). The deterministic regex engine actually outperformed the 1B LLM on category categorization. However, the LLM excels at synthesizing the human summary.test.js or data.ts, searching for test across a codebase triggers hundreds of false positives. Wake mitigates this by requiring token lengths >= 4 characters and filtering common programming keywords, but maintainers must always review confidence scores.samples/wake.json and samples/cors.json). True real-time local scanning is intended for developers running npm run dev or docker-compose up on their own machines. Code is written by humans. Every deleted file represented someone's late night, an architecture that served its time, or a lesson learned the hard way. Wake treats code history not as an untangled pile of diffs, but as a dignified cemetery.

And when you exorcise that final lingering ghost from your README.md or package.json, you give that deleted line the peace it deserves.

── more in #ai-tools 4 stories · sorted by recency
── more on @wake 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/wake-every-deleted-l…] indexed:0 read:4min 2026-10-31 · —