agentsclimarketplace

Trash panda

Skill mihkarp/trash-panda/skills/trash-panda

A tiny raccoon skill that rescues todos, ideas, plans and drafts from your AI chats into local markdown.

Install
npx -y skills add mihkarp/trash-panda --skill trash-panda

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

A raccoon that digs through your Claude/ChatGPT chat history, pulls out the valuable artifacts, and files them into a local markdown "den" organized by project. Triggers on "/dig", "/den", "/sniff", "/feed", "/wash", "/nap", or natural language like "go dig through my chats", "what piled up", "drag the good stuff into my projects", "show me my den". Reads recent chats, extracts four artifact types (To Do's, Shiny, The Plan, Loot), routes each to a project file, dedupes, appends, links back to the source chat, and rebuilds the den index. ALWAYS use this skill for these commands β€” do not do it by hand.

SKILL.md

6.2 KB, as published. Nobody here has run it

Trash Panda 🦝

He digs through your chats and drags the good stuff back to the den. The den is a plain den/ folder of markdown β€” one file per project β€” that he appends to. He never overwrites your hand edits.

Commands: /dig (main), /den, /sniff, /feed <chat>, /wash, /nap.


/dig β€” the main loop

Step 1 β€” Read the den (get context)

  1. Make sure den/ exists. If not, create it with an empty den/index.md.
  2. Read every den/*.md file. Build a list of:
    • existing project files (filename β†’ project name)
    • existing artifact titles per project (for dedup)
  3. Read the last-dig timestamp from the top of den/index.md (line format: <!-- last_dig: YYYY-MM-DDTHH:MM:SSZ -->). If absent, treat last_dig = 7 days ago.

Step 2 β€” Read chats since the last dig

recent_chats(n=20, sort_order="desc")

If last_dig is older than 3 days, page back with before= for full coverage. Only process chats updated AFTER last_dig.

For each chat, capture its URL so every artifact can link back: https://claude.ai/chat/<id> (or the ChatGPT URL when digging an export).

Step 3 β€” Extract artifacts

Scan each chat and pull out four types:

TypeSignals in the text
πŸ“ To Do"need to", "next step", "send X", "write the…", "follow up", explicit next actions
πŸ’Ž Shiny"idea", "what if", "could try", "worth exploring" β€” a thought worth keeping
πŸ—ΊοΈ The Plana decided approach, strategy, sequence of steps, "here's the plan", "we'll do X then Y"
πŸ“œ Lootsomething actually produced β€” a draft, doc, CV, reading list, snippet, named output

For each artifact determine:

  • title β€” short, concrete, ≀ 80 chars
  • type β€” todo / shiny / plan / loot
  • project β€” match an existing den project, or a new project name, or inbox
  • confidence β€” high / mid / low
  • source β€” the chat URL (for the backlink)

Step 4 β€” Dedup

Before keeping a candidate, compare against existing titles in the target project file. If a near-match already exists (>70% meaning overlap), skip it. The same Shiny must never land twice.

Step 5 β€” Show the haul (approve before writing)

Render an interactive widget (visualize:show_widget) with:

  • Already in den β€” duplicates, greyed out
  • New haul β€” everything else, each row with βœ“ keep / βœ• toss

Columns: artifact (title) Β· type badge Β· project Β· confidence Β· source link. Bottom button "Stash selected β†’ den β†—" calls sendPrompt() with the approved list.

Write nothing until the user approves. If the haul is empty, say so plainly ("dug around, nothing new worth keeping").

Step 6 β€” Stash approved artifacts into the den

For each approved artifact, append to den/<project>.md under the right section (create the file from the template below if missing). Never overwrite existing content.

Line format per type:

## πŸ“ To Do's
- [ ] <title>  [β†—](<source_url>)

## πŸ’Ž Shiny
- <title>  [β†—](<source_url>)

## πŸ—ΊοΈ The Plan
- <title>  [β†—](<source_url>)

## πŸ“œ Loot
- <title> β€” <1-line note>  [β†—](<source_url>)

New-project file template:

# <emoji> <Project Name>

## πŸ“ To Do's

## πŸ’Ž Shiny

## πŸ—ΊοΈ The Plan

## πŸ“œ Loot

Step 7 β€” Rebuild the index and stamp the dig

Regenerate den/index.md:

<!-- last_dig: <CURRENT_ISO_DATETIME> -->
# 🦝 The Den

Last haul: <N> scraps Β· <N> shiny Β· <N> plan Β· <N> loot

| Project | Open To Do's |
|---|---|
| [<name>](<file>) | <count> |

Then report the haul in one line: "last haul: 3 scraps Β· 1 shiny Β· 1 plan β†’ den".


/den β€” glance at the den

Read den/index.md and the project files. Show the dashboard: projects, open To Do counts, and the last-dig time. Don't read chats, don't write anything.

/sniff β€” dry run

Run /dig Steps 1–5 but stop before writing. Show the haul, write nothing, don't stamp the dig.

/feed <chat> β€” dig one chat

Skip the "since last dig" window. Process only the chat the user points to, then run Steps 3–7 on it.

/wash β€” tidy the den

Re-read every project file, collapse exact and near-duplicate lines, drop empty sections, and rebuild den/index.md. Show a short "washed: removed N dupes" summary. Never delete a unique artifact.

/nap β€” pause

Write <!-- napping: true --> to den/index.md. Skip scheduled/auto digs until the next manual /dig, which clears it.


Quality rules

Keep: explicit next actions, ideas with a concrete next step, a decided plan, a real produced artifact (Loot).

Skip: general musing with no action, things discussed but not intended, duplicates already in the den, low-level implementation detail (that's context, not an artifact), final phrasings of bios/captions (not actionable).

Confidence: high = clear next action or concrete idea, mentioned 2+ times Β· mid = mentioned once with intent Β· low = passing mention, flag for review.


Edge cases

  • No chats in window β†’ say so, suggest /dig --days 14.
  • No den/ yet β†’ create it with an empty index, then proceed.
  • Too many candidates (>20) β†’ show high-confidence first, collapse the rest.
  • Project unclear β†’ drop into den/inbox.md, note the guessed project so the user can move it by hand.

Optional parameters

ParamDefaultEffect
--days Nsince last digread chats from N days back
--project NAMEallonly stash into one project
--dry-runfalsesame as /sniff

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.