with one click
export
Use when user says "export [[Note]] ...", "export
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Use when user says "export [[Note]] ...", "export
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | export |
| description | Use when user says "export [[Note]] ...", "export |
Trigger phrases: "export [[A]] [[B]]", "export #crypto", "export AI/TOOLS", "wyeksportuj",
"make a bundle of X". Produces a brain-pack-*.zip that another kb-template brain imports
with /import.
Privacy levels:
| Level | Flag | For | Behavior |
|---|---|---|---|
me | none (default) | your own brains | verbatim copies — the flow below, steps 1–5 |
public | --public (alias --level public) | strangers / open publication | redaction pipeline — extra steps 3a–3c |
Unknown level value → abort before any work. A future trusted level may join the enum.
Read-only guarantee: export never creates, edits, or deletes notes and never touches
the 3 indexes. me writes nothing but the bundle zip. --public additionally writes
exactly one local redaction report to content/_outputs/reports/ (build-excluded,
outside the index protocol) — nothing else.
Interaction budget: me = 2 prompts (selection confirm, link closure).
--public = 3 (plus the redaction verdict table). Never ask per note.
brain-pack-<slug>-<YYYY-MM-DD>.zip
├─ manifest.json
└─ notes/
└─ AI/TOOLS/Serena.md # source folder path preserved
{
"format": 1,
"source": "brain",
"exported": "2026-07-11",
"notes": [
{ "path": "AI/TOOLS/Serena.md", "title": "Serena", "sha256": "<hex of file bytes>" }
]
}
source — this brain's name. Heuristic: title: frontmatter of content/ABOUT/About.md
if it names the vault, else the repo folder name.sha256 — hash of the exact shipped bytes (at --public: the redacted bytes); gives
/import free integrity checks and idempotent re-import.Read content/_indexes/vault-map.md, then content/_indexes/catalog.md. Accepted selectors,
mixable in one call:
| Selector | Resolution |
|---|---|
[[Note]] [[Other]] | look up each title's folder section in catalog.md → path |
#tag | every catalog entry whose [tags] contain the tag, across all folders |
TOPIC/SUB | all entries of that catalog folder section |
_indexes/, _outputs/, _raw/, _graveyard/, templates/,
any underscore-prefixed file or folder (_privacy.md can never ship), and non-.md files
are dropped from resolution but named in the confirmation list as "omitted (excluded)".Show the resolved list (full paths + count) and ask once: "Pack these N notes?". Include any ambiguity picks and exclusion notices in this same prompt. Do not proceed without approval.
From content/_indexes/graph.md Outgoing lines of the selected notes, collect link
targets outside the selection. If any exist, show them with per-target link counts:
Selection links to 3 notes outside the pack:
- [[Claude Code]] (4 links)
- [[MCP]] (2)
- [[Obsidian]] (1)
Add? [all / pick / none]
Add approved neighbors to the selection. If no outside neighbors — skip this step silently.
At me level these were the final prompts; steps 4–5 run unattended.
--public only — redact working copiesLoad the policy, then produce a redacted working copy of every selected note in the
session scratchpad (never inside content/; sources stay byte-identical).
Default policy (applies to every vault):
| Class | Action |
|---|---|
| Secrets, credentials, keys | always cut — and flag to the user: they should not live in notes at all |
| Third-party PII: person names, client companies | always cut |
| Health data | always cut |
| Finance specifics: amounts, wallets, strategies | always cut |
| Rates, contract terms, commercial identifiers | always cut |
| Personal/commercial context | genericize ("my client's real-estate platform" → "a real-estate platform") |
| Tools used, howtos, technical opinions, the fact of using something | keep |
Vault overrides — content/_privacy.md (optional): extra always-cut terms and explicit
exceptions ("the vault owner's name is public"). Extends/overrides the defaults. Absent →
defaults alone, silently.
Wikilink leak rule — links targeting excluded notes or notes matching the policy:
[[My Crypto Strategy]] → [[Crypto Strategy]].[[Private Note|alias]]: keep the alias text, de-personalize the target.
Every transformation counts in "what was cut". (Deliberate exception to the import-side
"broken links stay verbatim" rule — that rule protects graph re-stitching between your own
vaults; here the title would leak to strangers.)Per-note verdict:
include — nothing to cut, original file ships;redact — redacted copy ships;exclude — unsalvageable (the note's substance is itself private, e.g. a personal
finance strategy) — drop from the bundle instead of shipping a husk.--public only — verdict table (interaction 3)One approvable table, whole-table approval, full diff on demand inside the same prompt:
Redaction (5 notes):
| note | verdict | what was cut |
| Serena | redact | client project name ×1 |
| Wiring Serena into a Codebase | redact | client monorepo context ×3, link de-personalized ×1 |
| My Crypto Strategy | exclude | unsalvageable (finance) |
| GrepRAG | include | — |
Approve? [yes / edit verdicts / show diff [[X]]]
--public only — verification nets (autonomous)After approval, before zipping, two nets over the redacted/included copies:
Deterministic sweep — report-only, never edits:
python .claude/skills/export/scripts/privacy_sweep.py "<scratchpad>/export-staging"
Scans for emails, phone shapes, IBAN/card numbers, API-key prefixes, JWTs, crypto wallets. Exit 2 + JSON hits when something survived redaction.
Adversarial audit — a fresh-context LLM pass over the same copies with the policy +
_privacy.md, role: "find remaining private information".
Hits → fix the copy, log to the report. False positives (sweep context lines show them) → dismiss in the report, no edit. A hit that flips a verdict (redact→exclude) → re-present only the affected rows — the sole permitted 4th interaction, expected rare.
python .claude/skills/export/scripts/bundle.py pack \
--source "<brain name>" \
--out "brain-pack-<slug>-<YYYY-MM-DD>.zip" \
"AI/TOOLS/Serena.md" "CODE/TOOLS/Git.md" ...
content/. The script re-checks exclusions, computes hashes,
writes manifest.json and the note copies, prints a JSON receipt.--public: run pack from a staging content/-shaped dir where redact-verdict
notes are the redacted copies and include-verdict notes are the originals
(bundle.py packs whatever bytes it is pointed at; excluded notes simply aren't listed).<slug> — short kebab description of the selection (e.g. crypto, ai-tools).me: state bundle path, note count, total size, omitted-as-excluded list. Vault untouched.
--public: additionally write content/_outputs/reports/export-<date>-<slug>.md with:
selection, per-note verdicts, the full cut log (every redaction and link transformation),
sweep/audit hits and how each was resolved (fixed / dismissed as false positive), bundle
path. The report stays local — never goes into the bundle (its cut descriptions are
themselves a meta-leak).
| Script | Purpose |
|---|---|
scripts/bundle.py | pack / unpack / same — deterministic bundle format tool (shared with /import) |
scripts/privacy_sweep.py | report-only pattern sweep of redacted copies (--public net #1) |
scripts/test_bundle.py, scripts/test_privacy_sweep.py | unit tests; run each with python <path> |
Use when user says "import <file.zip>", "zaimportuj paczkę", "import bundle/pack of notes". Imports a brain-pack zip (made by /export in another brain) into this vault - validates, triages collisions, places notes into this vault's taxonomy, stamps provenance, updates all 3 indexes, writes a report. At most 2 user prompts per run.
Use when user says "ingest", "process inbox", "przetworz nowe pliki", or when files appear in `content/_raw/inbox/`. Processes raw sources into wiki notes, handles intra-batch clustering with confirmation, updates all 3 indexes.
Use when user says "lint", "health check", "audit". Checks vault for missing frontmatter, broken wikilinks, orphans, stub notes, inconsistent tags, TODO markers, stale content; saves report to `_outputs/reports/`.
Use when user says "research X", "what do my notes say about X", "co mam w notatkach o X". Synthesizes an answer from the vault citing wikilinks; offers to save substantial answers to `_outputs/answers/`.
Read research outline, launch independent agent for each item for deep research. Disable task output.
Conduct preliminary research on a topic and generate research outline. For academic research, benchmark research, technology selection, etc.