{"id":73572,"plugin_id":"plugin_asdk_app_6ad2d875b8648191b6e43ed5675b2c0b","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-31T01:23:00.351Z","digest":"2eddea7a52487656ae88ce4d18d58bf379b688dcb926d51795603fab5a3c1a80","against":null,"payload":{"description":"Turn scattered materials (lecture slides, lab scripts, project docs, meeting notes, research papers) into a richly visual, linked Obsidian knowledge vault. Use when the user wants to build, bootstrap, or extend an Obsidian study, work or research vault from raw inputs. Trigger on '/vaultcraft', 'build a vault', 'vaultcraft', or 'make an Obsidian vault from my materials'.","included_files":[{"relative_path":"references/operations.md","size_in_bytes":10911},{"relative_path":"references/phase-0-1-intake.md","size_in_bytes":16334},{"relative_path":"references/phase-2-3-extract.md","size_in_bytes":13615},{"relative_path":"references/phase-4-notes.md","size_in_bytes":10749},{"relative_path":"references/phase-5-lectures.md","size_in_bytes":9895},{"relative_path":"references/phase-6-9-finish.md","size_in_bytes":12279},{"relative_path":"references/principles.md","size_in_bytes":28893},{"relative_path":"scripts/check_diagrams.mjs","size_in_bytes":3724},{"relative_path":"scripts/check_vault.py","size_in_bytes":7708},{"relative_path":"templates/bridge.md","size_in_bytes":1528},{"relative_path":"templates/concept.md","size_in_bytes":2037},{"relative_path":"templates/lab.md","size_in_bytes":1741},{"relative_path":"templates/lecture-golden.md","size_in_bytes":4515},{"relative_path":"templates/lecture.md","size_in_bytes":2523}],"name":"vaultcraft","skill_md_contents":"---\nname: vaultcraft\ndescription: \"Turn scattered materials (lecture slides, lab scripts, project docs, meeting notes, research papers) into a richly visual, linked Obsidian knowledge vault. Use when the user wants to build, bootstrap, or extend an Obsidian study, work or research vault from raw inputs. Trigger on '/vaultcraft', 'build a vault', 'vaultcraft', or 'make an Obsidian vault from my materials'.\"\n---\n\n# vaultcraft\n\nThis skill turns course, work or research materials into a linked Obsidian vault.\nIt runs the same way in Claude Code, Cowork, claude.ai, ChatGPT and Codex: this file\nowns the conversation (banner, intake, confirm), and the files in `references/` hold\nthe generation pipeline (parsing, note-writing, linking, audit).\n\nPaths in this skill (`references/...`, `templates/...`) are relative to the folder\nthat holds this `SKILL.md`. Call that folder `SKILL_DIR`.\n\nDo these steps in order. Do not skip the banner or the intake.\n\n## Step 1 — Print the banner (always, first thing)\n\nPrint this exactly, inside a fenced code block, before anything else:\n\n```text\n██╗   ██╗ █████╗ ██╗   ██╗██╗  ████████╗ ██████╗██████╗  █████╗ ███████╗████████╗\n██║   ██║██╔══██╗██║   ██║██║  ╚══██╔══╝██╔════╝██╔══██╗██╔══██╗██╔════╝╚══██╔══╝\n██║   ██║███████║██║   ██║██║     ██║   ██║     ██████╔╝███████║█████╗     ██║\n╚██╗ ██╔╝██╔══██║██║   ██║██║     ██║   ██║     ██╔══██╗██╔══██║██╔══╝     ██║\n ╚████╔╝ ██║  ██║╚██████╔╝███████╗██║   ╚██████╗██║  ██║██║  ██║██║        ██║\n  ╚═══╝  ╚═╝  ╚═╝ ╚═════╝ ╚══════╝╚═╝    ╚═════╝╚═╝  ╚═╝╚═╝  ╚═╝╚═╝        ╚═╝\n           ⛏  an obsidian vault builder — study · work · research  ⛏\n```\n\nThen one status line, e.g. `→ Bootstrap mode. Starting intake.`\n\n## Step 2 — Quick mode detection\n\nIf the user's prompt names a vault path you can read, glob it: `.obsidian/` present +\nnotes in standard folders → **INCREMENTAL** (only ask what's new). `.vault-progress.md`\npresent → offer **Resume** (Resume / Start over / Inspect). Otherwise → **BOOTSTRAP**\n(full intake). Announce the detected mode.\n\n## Step 3 — Intake\n\nSkip any question the user's prompt already answered. If your host has an interactive\nquestion tool (`AskUserQuestion` in Claude Code and Cowork), use it: ≤4 questions and\n≤4 options per call, headers ≤12 chars, Recommended option first with `(Recommended)`,\n`multiSelect: true` where multiple answers fit, `preview` for Format/Style. If it has\nnone (claude.ai chat, ChatGPT, Codex, Cursor), send Batches A and B as ONE numbered plain-text\nlist with the options and the recommended default on each line, and tell the user they\ncan reply \"defaults\" to accept every recommendation.\n\n**Batch A — Vault shape** (4 single-select):\n\n1. `Vault type` — studies (Recommended) · work · research · personal *(reference/teaching → Other)*\n2. `Format` — Detailed narrative (Recommended) · Study sheet · Golden template · Reference *(preview a 6-line sample of each)*\n3. `Depth` — standard (Recommended) · lean · thorough\n4. `Language` — English (Recommended) · Polish · German · Spanish\n\nFor `studies`/`teaching`, add a follow-up `Templates` — Yes both (Recommended) · Lecture only · Concept only · No free format.\n\n**Batch B — Style** (3 questions):\n\n1. `Styles` (multiSelect) — defaults by type: studies → ELI5 + Worked example + Historical + Real-world; work → Real-world + Counter-example + Worked example + Devil's advocate; research → Counter-example + Historical + Devil's advocate + Worked example; personal → ELI5 + Real-world + Historical + Visual metaphor.\n2. `Flashcards` — None (Recommended) · Key concepts only · Every concept\n3. `Urgency` — studies: <1 week · 1–4 weeks (Recommended) · 1–3 months · No rush; work/research: weekly · monthly (Recommended) · quarterly · ongoing.\n\n**Batch C — Free-text** (plain markdown block, never option chips):\n\n```text\n1. Course / project name?\n2. Specific goal? (e.g. \"exam 28 June\", \"onboarding doc by Q3\")\n3. Priority topics? (must-know vs nice-to-have, or \"extract from materials\")\n4. Deadline / target date? (YYYY-MM-DD or \"no rush\")\n5. Vault path? (default: ~/Documents/ObsidianVaults/<name>/)\n6. Input sources? (file paths, folder paths, URLs, or files attached to this chat)\n```\n\nAsk question 5 only when you can write to the user's own disk (see Step 5).\nINCREMENTAL mode: skip Batches A and B, run only Batch C for new sources.\n\n## Step 4 — Restate the plan, then confirm\n\nRestate the locked answers as a short markdown block (type, format, depth, language,\nstyles, flashcards, name, path, sources, mode). Then ask one confirm question:\nProceed (Recommended) · Adjust answers · Show estimated cost first.\n\n## Step 5 — Generate\n\n### 5a. Claude Code or Cowork with the vaultcraft agent: delegate\n\nIf your Agent tool lists a `vaultcraft` agent (`vaultcraft` or, from the plugin,\n`vaultcraft:vaultcraft`), dispatch it with a prompt that starts with this exact marker\nso it skips its own banner and intake. Fill in every line; the agent needs `SKILL_DIR`\nto find the note templates:\n\n```text\nVAULTCRAFT_HANDOFF: intake complete, banner already shown — do NOT reprint the banner,\ndo NOT run Phase 1 AskUserQuestion. Start at Phase 0 with these LOCKED PARAMETERS:\n- SKILL_DIR: <absolute path of the folder holding this SKILL.md>\n- vault_type: <…>\n- format: <…>          (and templates: <…> if studies/teaching)\n- depth: <…>\n- language: <…>\n- styles: <…>\n- flashcards: <…>\n- urgency: <…>\n- name: <…>\n- goal: <…>\n- priority_topics: <…>\n- deadline: <…>\n- vault_path: <…>\n- sources: <…>\n- mode: BOOTSTRAP | INCREMENTAL | RESUME\nRun the full phase pipeline and write the vault. Print status footers as specified.\n```\n\nRelay the agent's final report. If it returns with a question it cannot decide (e.g. a\nfile fails to parse), ask the user and re-dispatch.\n\n### 5b. Everywhere else: run the pipeline yourself\n\nNo vaultcraft agent listed (claude.ai chat, ChatGPT, Codex, Cursor, or Claude Code with the\nskill alone): run the pipeline in this conversation.\n\n1. Read `references/principles.md` and `references/operations.md` now.\n2. Start at Phase 0 with the locked answers from Step 4. Skip Phase 1, which Steps 3\n   and 4 already did. Read each `references/phase-*.md` file when you reach that phase:\n   `phase-0-1-intake.md`, `phase-2-3-extract.md`, `phase-4-notes.md`,\n   `phase-5-lectures.md`, `phase-6-9-finish.md`.\n3. Apply the substitutions below wherever those files name a tool you do not have.\n4. If your host lists the vaultcraft server tools `get_vault_config`, `get_note_template`\n   and `check_vault` (the ChatGPT and Codex directory version), use `get_vault_config`\n   for the Phase 2.5 settings, `get_note_template` before writing each note type, and run\n   `check_vault` on all notes before the final report or zip, then fix what it reports.\n   Without these tools, follow the references as written.\n\n| The references say | If you don't have it, do this instead |\n|---|---|\n| The `vaultcraft-*` worker agents (Haiku/Sonnet) | Run the same work loop yourself, batch by batch, until `scripts/check_vault.py` exits 0. Keep the same templates and quality bar. |\n| `Skill` (obsidian-markdown, json-canvas, docs, …) | Use the syntax rules already in the references and your own knowledge. |\n| `AskUserQuestion` | Ask in plain text, as in Step 3. |\n| `Bash` + `pdfimages` / `brew install poppler` | Use the code tool's Python (`pypdf`, `pymupdf`/`fitz`, `pdfplumber`, whichever imports). Never install system packages without asking. If figures can't be extracted, embed the source PDF and say so. |\n| `WebSearch` / `WebFetch` | Use your host's web tool. If there is none, skip web supplements and mark gaps with `> [!warning] Needs verification`. |\n| The user's vault path on disk | See \"Where the vault goes\" below. |\n\nPrint the status footer after each phase, as `references/principles.md` specifies,\nwith the name of the model you actually are (not the Claude tiers in its examples).\n\n### Where the vault goes\n\n- **You can write to the user's disk** (Claude Code, Cowork with a folder, Codex, Cursor): write\n  to the vault path from Batch C.\n- **You run in a sandbox** (claude.ai chat, ChatGPT): build the vault in a working\n  folder named after the course, then zip it as `<name>-vault.zip` and give the user\n  the file. Tell them: unzip it, then in Obsidian choose **Open folder as vault** and\n  pick the unzipped folder. Keep the run inside the sandbox's limits: if the materials\n  are large, say how many lectures fit in this run and offer to continue in the next\n  message using the zip they upload back (RESUME mode reads `.vault-progress.md`).\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}