Submission for the Ghost in the Machine challenge
What I Built
Every abandoned repository is a kind of ghost: the intent, the arguments and the people behind it are buried in commits nobody reads. Commitmortem turns a dead public repo into a digital ofrenda (the Día de los Muertos memorial altar), lets you talk to an AI imitation of its maintainer, and then tries to bring the project back to life.
Paste a GitHub URL or a local path, and Commitmortem:
Remembers. It reads the full commit history and issues and builds a memorial page. Each milestone commit becomes a candle, each contributor gets a portrait frame with marigolds sized by activity, and open issues appear as “unanswered prayers”. A short calavera epitaph teases the project, never its people.
Answers through a séance. You ask the ghost questions. Every answer must cite real commits or issues ([commit:abc1234], [issue:#7]). If nothing in the history matches, it says it doesn’t remember instead of guessing.
Haunts. A haunting report turns technical debt into hauntings, with a severity, a real file and line, and a suggested fix.
Resurrects. In a sandbox copy, the agent runs the project’s checks and tries up to three small fixes. It shows the steps, the logs and a diff, and it never pushes anything.
Screenshots:
Code:
Commitmortem
A post-mortem for abandoned code. Commitmortem turns a dead public repository into a digital ofrenda, lets you question an AI imitation of its maintainer, and then tries to bring the project back to life in a sandbox.
Built for the Ghost in the Machine challenge with Gemma 4 and an open skill harness.
What it does
Process
What you get
I. Ofrenda
A memorial page: calavera epitaph, a candle per milestone commit, a portrait frame per contributor with marigolds sized by activity, and open issues as "unanswered prayers"
II. Séance
Ask the ghost a question. Every answer cites real commits or issues (
[commit:abc1234], [issue:#7]). If nothing matches, it says it does not remember
III. Haunting report
Technical debt phrased as hauntings, each with a severity, a real file and line, and a suggested fix
IV. Resurrect
An agent copies the repo into a sandbox, runs
. It runs with Python 3.10+ and git only, with no installs:
python3 demo/make_fixture.py
python3 -m server.app demo/sample-dead-repo
How I Used Gemma 4
Gemma 4 is called through the Gemini API (gemma-4-31b-it for reasoning, gemma-4-26b-a4b-it for fast tasks). It does four jobs:
Task What Gemma does
Séance Answers in the maintainer’s commit-message style from retrieved commits and issues, with citations
Ofrenda Writes a short remembrance for each contributor using only facts from the data
Calavera Writes a respectful, humorous verse in the calavera tradition
Resurrection Reads the failing build log and the source files and proposes the smallest patch
[After your real Gemma run, add one line with what you measured, for example how many séance answers passed the citation check on the first try, and the response time.]
Keeping the ghost honest. Every claim must cite a retrieved commit or issue. A post-check regenerates an answer with no valid citation once, then falls back to a plain answer built straight from the retrieved items. Ghost output always carries the label “AI imitation based on public commits”, and the tool uses public data only.
Built to survive failure. Every Gemma step has a deterministic offline fallback, so the demo still runs with no API key or network. That is how I tested it end to end.
Open-source harness and skills
The repo includes seven agent skills as SKILL.md files (scan-repo, ofrenda-builder, seance, haunting-report, calavera, resurrect, oral-history). A small open harness (harness/) loads them, routes each call to its module, caps the number of steps and writes a trace of every call. Resurrection is sandboxed: temporary copy only, allow-listed commands, a step cap, and nothing is pushed or published.
Limits and what’s next
Offline fixes cover Python only. Other languages need Gemma to propose patches.
The oral-history interview mode (a Gemma-led interview that saves a maintainer’s own story) is specified but not built.
Next: a hosted demo and deeper issue and diff summarization.
Prize categories
Best Use of Gemma 4
DigitalOcean Best Open-Source AI Project





Top comments (0)