Catalogskills.sh · gasserane

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.

Review advisedVerified hub604 installs

Savant verdict: Review advised

Security analysis or source-hub review identified patterns requiring attention.

Live evaluation

Not evaluated yet. Workspaces can request a live evaluation.

Security assessment

Scan pending.

Structure

  • 2 referenced files aren't in the packagescripts/check_desktop_sync.py, scripts/capture_desktop.py. They may be binary, too large to catalog, or missing upstream.
  • No license declaredConfirm you may reuse this skill before importing it into your repository.
  • The source hub's security checks flagged this skillGen Agent Trust Hub: warn (The skill automates the capture of desktop session transcripts into local files and remote repositories. It executes several local scripts and Git commands to manage project state. It is vulnerable to indirect prompt injection because it processes untrusted transcript data to modify sensitive configuration files without sanitization.); Snyk: fail (Risk: HIGH · 2 issues)

SKILL.md

---
name: capture-desktop
description: 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.
disable-model-invocation: true
---

# 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
```