Skip to content
Back to skills

Ai Wiki Export

ASecurity

Package a research topic (its hub, all paper notes filed under it, and the figures those notes embed) into a single zip at a user-specified path. Use when the user asks to export, package, bundle, or zip up a topic to send, archive, or read offline. Requires an explicit destination path.

  • 2 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 22, 2026
researchpythongoshellbashgit

Security analysis

A100/100

Scanned September 22, 2026

npx -y skills add alfredzhang98/research-obsidian-skill --skill ai-wiki-export --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ai Wiki Export?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ai Wiki Export
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/alfredzhang98-ai-wiki-export/badge)](https://www.skillsdirectory.com/skills/alfredzhang98-ai-wiki-export)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ai-wiki-export
description: Package a research topic (its hub, all paper notes filed under it, and the figures those notes embed) into a single zip at a user-specified path. Use when the user asks to export, package, bundle, or zip up a topic to send, archive, or read offline. Requires an explicit destination path.
---

# ai-wiki-export — package one research direction as a zip

```
/ai-wiki-export <destination-path> [topic-slug]
```

Produces a self-contained archive: **the topic hub, every paper note filed under it, and the figures those notes embed**. It reads correctly in any markdown viewer after extraction, images included.

## Arguments

| Argument | Required | Meaning |
|---|---|---|
| `<destination-path>` | **yes** | a directory (the zip is named `<topic>.zip`) or a full `.zip` filename |
| `[topic-slug]` | no | omit it and the topics are listed for the user to choose |

Order is not significant: an argument that looks like a path is the path; one matching a slug in `Research/topics/` is the topic.

## Procedure

### 1. No path given → stop and ask. Never guess.

**This is the most important rule in this skill.** When the user has not written a destination:

- **Do not** default to the working directory, the desktop, somewhere inside the vault, or any other "reasonable-looking" location.
- **Do not** invent a path on the user's behalf.
- Ask: "Where should the archive go?" and offer one or two concrete examples (`D:/exports`, `C:/tmp`) so the answer is cheap to give.

The underlying `export-topic.py` defaults to the current directory when invoked directly from a shell. **This skill overrides that default** and always passes `-o` explicitly. The caller of a slash command usually cannot see what the working directory is, and a 5 MB archive landing silently somewhere is worse than an error.

### 2. No topic given → list them and let the user choose

```bash
python .claude/skills/ai-wiki/scripts/export-topic.py <AI_WIKI> --list
```

Show that table to the user verbatim — it carries paper counts, figure counts, and bundle size. **Do not choose for them**, and confirm even when only one topic exists, unless the user already named the direction in the same sentence.

### 3. Check the destination

- **Directory does not exist** → ask before creating it. Do not silently create nested directories; a typo would leave debris in an unexpected place.
- **A zip of that name already exists** → report its size and modification time, then ask whether to overwrite or rename. **Never overwrite silently.**
- Quote paths containing spaces.

### 4. Export

```bash
python .claude/skills/ai-wiki/scripts/export-topic.py <AI_WIKI> <topic-slug> -o "<full zip path>"
```

Add `--all-figures` when the user wants extracted-but-unembedded crops as well (an archival copy) — but state the size difference first, typically several-fold, and let them decide.

To export every direction at once: `--all -o <directory>`, producing one zip per topic.

### 5. Report

When it finishes, tell the user:

- **full path and size**
- **what is inside**: 1 hub + N paper notes + M figures
- **wikilinks pointing outside the bundle** — the script reports these and the bundle README lists them. They point at notes belonging to other topics and will not open inside this archive. That is expected, not a defect.
- **where to extract**: if the script warned about path length, pass on that on Windows the archive should be extracted somewhere short (e.g. `C:\tmp`), or extraction can fail against the 260-character MAX_PATH limit.

## Archive layout

```
<topic-slug>/
  README.md                            ← manifest, structure, outside links
  Research/topics/<topic>.md           ← the hub; read this first
  Research/papers/<topic>/*.md         ← the paper notes
  _attachments/paper-figures/<slug>/   ← figures each note embeds
```

**The directory depths are deliberate — do not "tidy" them into a flat structure.** Image embeds inside the notes are real relative paths (`../../../_attachments/...`); only the original depth lets them resolve after extraction. Flattening any level breaks every image, and it breaks *silently*.

**Only embedded figures ship by default.** Figure extraction is deliberately over-inclusive — one paper may yield 27 crops of which a note embeds 2 — so whole folders inflate the archive several-fold.

## When not to use this command

- The user wants **one paper**, not a direction → give them that note's path, or send the file directly; no archive needed.
- The user wants a **backup of the whole vault** → that is the file-sync or git story, not this skill.
- The user just wants to **see what a direction contains** → run `--list` or read the hub's S6; do not produce a zip.

## Related

Writing notes: `/ai-wiki` (no topic), `/ai-wiki-full` (filed under a topic).
The script itself: `.claude/skills/ai-wiki/scripts/export-topic.py` (`--help` for full arguments).

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.