# Capture Desktop

> Capture a claude.ai Desktop session into the MEL file system. Use when Ane finishes a session in the Claude Desktop app and wants the work captured on the device — triggered by "/capture-desktop", "capture this desktop session", "I did this on Claude desktop", "save my desktop work", "import from claude.ai". Paste-driven; no cloud API exists. Stages a local transcript, classifies content into deliverables, decisions/rules, project-knowledge changes, and full log, then files each to its home. Auto-files transcript + deliverables; confirms memory/wiki/CLAUDE.md writes one-by-one.

- Skill: `gasserane/capture-desktop` (Agent Skill)
- Install (CLI): `npx skillmds@latest add gasserane/capture-desktop`
- Raw SKILL.md: https://api.skillmd.com/api/skills/gasserane/capture-desktop/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: gasserane (https://skillmd.com/u/gasserane)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/gasserane/capture-desktop

---


# Capture Desktop Session

The device-side mirror of `scripts/check_desktop_sync.py`. That script governs
device-to-cloud sync. This skill governs cloud-to-device capture. claude.ai has
no API, so capture is paste-driven: Ane pastes a finished Desktop session and
this skill routes its content to the right places on disk.

## Step 1 — Get the content

Ask Ane to paste the Desktop conversation, or accept a file path if she gives
one. If the paste is long, write it to a temp file first to avoid truncation.

## Step 2 — Stage the transcript

Run the helper to stage a verbatim, deduplicated transcript:

```
python scripts/capture_desktop.py stage --input <tempfile> --title "<short title>"
```

- Exit 0: prints the transcript path. Continue.
- Exit 3: `[DUP] already captured` — this session was captured before. Tell Ane
  and stop unless she confirms she wants to re-route it anyway.

Transcripts are local-only (gitignored, OneDrive-backed). The staged transcript
IS the "full log" bucket — no further action for that bucket.

## Step 3 — Classify the content

Read the staged transcript. Sort its substantive content into four buckets:

1. **Deliverables** — documents, analyses, tables, drafts Ane produced.
2. **Decisions / rules / lessons** — locked decisions, framework calls, guidance
   on how the system should work, feedback on your behaviour. Capture successes
   as well as corrections: an approach the transcript shows Ane praised, reused,
   or locked is a success worth banking as a `feedback` memory (with **Why:**
   and **How to apply:**) so `/improve-system` trends confirmed successes, not
   only corrections.
3. **Project-knowledge changes** — edits that belong in canonical sources
   (`mel_wiki/` pages, `~/.claude/CLAUDE.md`).
4. **Full log** — already staged in Step 2. No action.

If a bucket is empty, say so. Do not invent content to fill it.

## Step 4 — Route each bucket

**Deliverables (auto-file).** Propose a path under the work folder, save with the
Write tool, and name it in the summary. Apply mel_wiki/wiki/concepts/edit-preservation-protocol.md when target file exists.

**Decisions / rules / lessons (confirm each).** For each item, propose the target
— a memory file under the memory dir, a wiki entry, or a feedback memory — and
show the exact content you will write. Get a yes/no from Ane before writing.
Apply mel_wiki/wiki/concepts/edit-preservation-protocol.md when target file exists.

**Project-knowledge changes (confirm each).** For each item, propose the exact
edit to the canonical source and get a yes/no. Apply the change with the Edit
tool, scope-bounded. Apply mel_wiki/wiki/concepts/edit-preservation-protocol.md when target file exists.
- For `mel_wiki/` edits: stage for the work-folder commit in Step 5.
- For `~/.claude/CLAUDE.md` edits: after applying, commit cross-repo by running
  `bash ~/.claude-config-clone/scripts/sync-from-local.sh --auto "capture-desktop: <one-line reason>"`.
  This copies live CLAUDE.md into the claude-config clone, reconciles, commits,
  and pushes. It exits 0 silently if nothing changed.

## Step 5 — Close the loop and commit

If any canonical source was edited (wiki or CLAUDE.md), run the sync check so the
re-upload flag for the Desktop project fires:

```
python scripts/check_desktop_sync.py
```

Report any `[DRIFT]` it surfaces. Then commit the work-folder changes (deliverables
and `mel_wiki/` edits only — transcripts are gitignored). Stage by name, never
`git add -A`:

```
git add <deliverable paths> <mel_wiki paths>
git commit -m "feat(capture): desktop session <slug> — <what landed>"
git push
```

## Step 6 — Report

Deliver a tight summary:

```
CAPTURE-DESKTOP — <date>
  Transcript: desktop-captures/<slug>/transcript.md (local)
  Deliverables: <list or none>
  Decisions/rules written: <list or none>
  Canonical edits: <list or none> (CLAUDE.md pushed to claude-config: yes/no)
  Sync check: <in sync / N drift flagged>
  Commit: <short-SHA> pushed / nothing to commit
```

