MCP.Market

project-graveyard skill

by Shubhamsaboo·Shubhamsaboo/awesome-llm-apps·145k stars·Apache-2.0

Scans the developer's machine for dead side projects, autopsies each one from its git history (died at the payments wall, killed by a newer project, finished but never shipped), surfaces their personal death patterns, and picks the corpse most worth resurrecting — then helps ship it. Use when the user mentions abandoned, unfinished, or old side projects, asks "what should I finish", wants to revive or resurrect a project, says "run the graveyard", wonders why they never finish anything, or is about to start a new project that sounds like one they already built. Runs entirely locally.

A100/100content scan

Is the project-graveyard skill safe?

Clean: nothing in its files matched our rules. We read 4 files in the folder on 2026-10-25.

No findings.

Install the project-graveyard skill

A skill is a folder. Copy it into your agent's skills folder and the agent loads it when the task matches its description.

git clone --depth 1 https://github.com/Shubhamsaboo/awesome-llm-apps.git /tmp/awesome-llm-apps
mkdir -p ~/.claude/skills
cp -r /tmp/awesome-llm-apps/agent_skills/project-graveyard ~/.claude/skills/project-graveyard
available in every project

In the Claude apps, zip the folder and upload it from the Skills settings. The folder on GitHub

The instructions your agent would load

SKILL.md as published, without the frontmatter. Read it on GitHub

Project Graveyard

Every developer has a folder full of dead projects. Nobody has ever gotten an autopsy report. This skill scans the machine for abandoned repos, works out why each one died from its git history, finds the user's personal death patterns, and picks the one corpse worth digging up — then helps ship it.

Everything runs locally. No API, no network, nothing leaves the machine.

When to use

mode). There's a decent chance they already built half of it.

  • The user asks about abandoned/unfinished/old side projects, or what to finish
  • The user wants to revive, resurrect, or "finally ship" something
  • The user asks why they never finish projects
  • The user proposes a new project — check the graveyard first (see Necromancer

When not to use

  • Cleaning up disk space or node_modules — that's kondo/npkill, not this
  • Archiving repos on GitHub — this works on local clones and never-pushed work
  • Analyzing one specific repo's history in depth — just read the git log

Run it

python3 scripts/graveyard.py ~/dev ~/projects

Point it at wherever projects actually live. If you don't know where that is, ask — one question beats sweeping someone's home directory uninvited. No args scans the usual suspects (~/dev, ~/projects, ~/code, ~/Desktop, ...). Useful flags:

without it, projects committed via a work identity or a builder tool get skipped as "not yours"

  • --days 90 — how long silent before a repo counts as dead (default 45)
  • --json report.json — full machine-readable data
  • --me work@email.com — claim commits made under other emails (repeatable);

(skipped by default: clones, forks, work checkouts are not their corpses)

  • --include-foreign — also include repos the user barely committed to
  • --state FILE — remember scans and resurrections; enables relapse watch

The script is read-only. It never writes inside a scanned repo.

Reading the report

The script gives you four blocks: census, the dead (with cause of death), patterns, and the top 3 by "pulse" (resurrectability score). Causes are evidence-based guesses, not verdicts — each comes with the evidence line that justifies it. If a cause looks wrong, check the evidence before repeating it. The cause taxonomy and what each one means for resurrection is in references/causes-of-death.md — read it before writing the report.

The autopsy interview

The script can only read git. You can ask. For corpses whose primary cause is unknown or slow_fade — the low-confidence verdicts — ask the user one question each, two or three total at most:

"recipe-scraper — the history just shows it drifting. Do you remember

what actually stopped you?"

Blend the answers in, and label verdicts honestly in the report: (forensic) for what git showed, (confirmed) for what the user told you. Testimony beats a forensic guess — update the tombstone, not just the prose. Two questions is a conversation; five is a deposition.

Writing the tombstone report

Turn the script output into a report the user will actually feel. Format:

they land on their own.

  1. The census. Deaths, combined lifespan, oldest corpse. Plain numbers —

commit count, cause of death with its evidence, and a one-line epitaph. Above ~10 corpses, give full tombstones only to the 6-8 most interesting (highest pulse, most distinctive deaths) and bury the rest together in one line — "...plus 11 one-day experiments, buried in a shared plot." A wall of 23 tombstones kills the funeral.

  1. Tombstones. One per dead project, worst-to-best pulse. Name, lifespan,

day 19." "Four of six were killed by a newer project." Quote the script's numbers; add anything you can see that it can't.

  1. The patterns. This is the part they'll remember. "Your projects die at
  1. The resurrection. One project. Not three. See below.

Carve the resurrection pick (and only it) as an ASCII tombstone card — stone is earned, not sprayed; every other corpse stays a line in the table:

.------------------------.
       /                          \
      |        tab-sensei          |
      |      Apr — May 2026        |
      |   54 commits · 12 days     |
      |                            |
      |   died of deploy fear      |
      |                            |
      |   "It worked. It just      |
      |     never shipped."        |
   ___|____________________________|___
      ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

Center the text, keep the card under 44 columns so it never wraps, epitaph last. If the graveyard is empty, no card — don't carve a stone for nobody.

Epitaph rules — this is where the whole thing lives or dies:

lived: configuring webpack" works because the config ratio was 78%. Made-up jokes about code you haven't seen don't work and the user will know.

  • Every epitaph must be traceable to evidence from the scan. "Died as it

fine. "You were too scared to ship" is not.

  • Punch at the pattern, not the person. "It worked. It just never shipped" is

README that never shipped is a small tragedy, not a punchline.

  • Dry beats wacky. One sentence. No puns unless they're earned.
  • If a project deserves respect, give it. A 26-commit repo with a finished

Offer --redact framing if the user wants to share the report: project names swapped for project-1..n, causes and patterns intact.

The resurrection

Pick ONE corpse. Highest pulse wins unless its idea is dead in the world too. Before deciding, read the top candidate's README and skim the code — then do the world-check, the part only you can do because the script can't see the present:

may have an official SDK now, the model that was too expensive may be 20x cheaper, the thing it hand-rolled may be a library today.

  • Search whether what blocked it got easier since it died: the API it fought

exactly this now, say so — that changes the plan from "ship it" to "ship it for yourself," or to "let it rest."

  • Search whether the world shipped the idea. If three funded products do

Cite what you find in the plan. "This got easier: X exists now" is the strongest argument for digging; "the window closed" is the strongest for leaving it buried.

Then write the resurrection plan. The per-cause dig strategy is in references/causes-of-death.md (each cause has a "resurrection angle" — deploy-fear corpses need shipping steps only, wall deaths need the managed alternative, scope explosions get one feature extracted). Plan rules:

published package — not "keep working on it")

  • At most 7 concrete steps, ending at shipped (a URL, a release, a

the entry point before promising anything.

  • Step 0 is always: confirm it still runs. Deps rot; prove the install and

visible progress

  • Step 1 must be completable today — the first session has to end with

that offer is the entire point of running this inside an agent.

  • Ask before touching the repo. Then offer to start on step 1 right now —

More skills from Shubhamsaboo/awesome-llm-apps

  • Aadvisor-orchestrator-workerUse when a task is too large for one model pass, needs parallel research or generation across many subtasks (like researching a dozen competitors at once), or the user asks to orchestrate multiple models, split work across a model team, run an advisor-worker loop, have a stronger model review the plan while cheap workers execute, or says "too big for one model" or "fan this out". Not for single-file edits or tasks one model handles in one pass.
  • Achatgpt-app-builderDEPRECATED: This skill has been replaced by `mcp-app-builder`. Check if `mcp-app-builder` is available in the skills folder. If not, install it: `npx skills install mcp-use/mcp-use --skill mcp-app-builder` Use `mcp-app-builder` instead of this skill.
  • Acommit-archaeologistReconstructs why code exists from local git history, including the introducing commit, later changes, current authors, repeated companion files, and likely intent. Use when the user asks "why does this code exist", "who wrote this function and why", or to "explain the history of this function" before a rewrite, refactor, or risky edit. Runs entirely locally.
  • Adependency-doctorChecks requirements.txt, pyproject.toml, and package.json dependency manifests for surface-level direct-dependency footguns: standard-library shadowing pins, abandoned backports, unpinned dependencies, and obvious intra-manifest conflicts, plus opt-in PyPI yanked releases. Use when the user asks to check a manifest for dependency problems, asks why dependencies won't install or whether anything is wrong with their dependencies, wants a dependency autopsy, or suspects dependency manifest rot. Runs offline by default as a local tool for the user's own project, not repository CI.
  • Afirst-readerBeta readers for any draft, run by simulating how a real reader experiences it, moment by moment. A skim gate, a no-lookahead timed read producing an attention transcript with quit points, a recall test of what a reader remembers the next day, and a trust ledger of the implied author. Use when the user asks for a beta read, beta readers, test readers, human review, reader review, to read something like a human, to be a first reader, whether a piece holds attention or will actually get read, for a quick read of whether a busy skimmer would even open a post, what readers will remember or take away tomorrow, where readers stop reading or bounce, or why a draft still feels off or hollow after anti-slop or humanizer edits. Final gate before publishing; reports where the reading broke; never rewrites.
  • Amcp-apps-builder**MANDATORY for ALL MCP server work** - mcp-use framework best practices and patterns.
  • Amcp-builderDEPRECATED: This skill has been replaced by `mcp-app-builder`. Check if `mcp-app-builder` is available in the skills folder. If not, install it: `npx skills install mcp-use/mcp-use --skill mcp-app-builder` Use `mcp-app-builder` instead of this skill.
  • Ascope-creep-detectorAnalyzes git diffs against a stated intent to detect scope creep, unrelated files, broad pull requests, changes that grew beyond a fix, dependency additions, public API renames, config or CI edits, oversized hunks, and formatting-only files. Use when the user asks whether a change grew beyond the fix, a PR is too broad, or what unrelated stuff they touched, and wants keep, split, or justify guidance. Operates locally and offline.
  • Athinking-out-loudA contract for what the agent does when a long, messy, stream-of-consciousness ramble arrives (usually voice dictation): act on nothing until the echo brief is approved. The echo audits the entire transfer, mission, locked decisions and constraints, open questions, flips and parked tangents, with the model's inferences and guesses quarantined away from the user's own phrasing, so the user verifies what the model believes, not just what it doubts. Use when the user says "let me think out loud" or wants to ramble a bit before building anything, when a message opens with a speech-to-text preamble like "switching to voice, sorry for typos", when input is a long weakly punctuated stream with restarts and mid-message reversals ("actually no, wait, scrap that idea entirely"), or when the user asks to be interviewed about a fuzzy half-formed idea. Includes an optional capture mode for rambles spread across several messages and an optional targeted interview.

All agent skills → · MCP servers