$npx -y skills add tuan3w/obsidian-vault-agent --skill processCORE learning workflow — use this whenever the user has a source note open (paper, post, book, lecture, course, clipping) and wants to extract knowledge, understand what they just read, or build it into their vault. Triggers on "process this note", "process this paper", "extract
| 1 | <Purpose> |
| 2 | Extract knowledge from a source note into the vault's permanent knowledge base. |
| 3 | Implements three evidence-backed learning principles: |
| 4 | - **Generation effect**: writing from memory > copying (McCurdy et al. 2020) |
| 5 | - **Elaborative interrogation**: explaining WHY deepens retention |
| 6 | - **Cross-domain transfer**: explicit abstraction is what moves knowledge across fields |
| 7 | |
| 8 | This skill is INTERACTIVE by design. The desirable-difficulty questions in Stage 3 |
| 9 | are not optional ceremony — the friction IS the learning. The user's answers shape |
| 10 | what gets extracted and how. |
| 11 | </Purpose> |
| 12 | |
| 13 | <Use_When> |
| 14 | - User has a source note (paper, post, book, lecture, course, clipping) to process |
| 15 | - User wants to extract concepts into Term or Note entries |
| 16 | - User asks what's important in something they've read |
| 17 | - User wants to build wikilink connections from a note into the rest of the vault |
| 18 | - User says "process this", "atomize this", "extract concepts", "what did I learn" |
| 19 | </Use_When> |
| 20 | |
| 21 | <Do_Not_Use_When> |
| 22 | - User wants to find new papers on a topic (use /paper-discover) |
| 23 | - User wants web research on something new (use /research) |
| 24 | - User wants to synthesize ACROSS multiple existing vault notes (use /synthesize) |
| 25 | - The note is already a Term, Note, or Thought (not a source note) |
| 26 | </Do_Not_Use_When> |
| 27 | |
| 28 | <Steps> |
| 29 | |
| 30 | ## Stage 1: READ THE SOURCE NOTE |
| 31 | |
| 32 | Ask the user which note to process if it's not clear from context. Then read it. |
| 33 | |
| 34 | Verify the note type is a source type: `paper`, `post`, `book`, `lecture`, |
| 35 | `course`, or a Clipping. If the note is a Term, Note, or Thought, stop and |
| 36 | explain why this workflow doesn't apply. |
| 37 | |
| 38 | Read the frontmatter and body: |
| 39 | ``` |
| 40 | mcp__obsidian-vault__read_note(path="path/to/note.md") |
| 41 | ``` |
| 42 | |
| 43 | Or if MCP is unavailable: |
| 44 | ``` |
| 45 | Read("/absolute/path/to/note.md") |
| 46 | ``` |
| 47 | |
| 48 | ## Stage 2: MARK AS PROCESSING |
| 49 | |
| 50 | Update frontmatter to signal active work: |
| 51 | ``` |
| 52 | mcp__obsidian-vault__update_frontmatter( |
| 53 | path="path/to/note.md", |
| 54 | updates={"processing_status": "processing", "updated_date": "YYYY-MM-DD"} |
| 55 | ) |
| 56 | ``` |
| 57 | |
| 58 | ## Stage 3: ASK DESIRABLE-DIFFICULTY QUESTIONS |
| 59 | |
| 60 | **Do NOT skip this stage.** Present these three questions and wait for the user's answers before proceeding: |
| 61 | |
| 62 | --- |
| 63 | **Q1.** In one sentence — what is the single most important idea in this note? |
| 64 | *(Don't look at the note. Reconstruct it from memory. That struggle is the point.)* |
| 65 | |
| 66 | **Q2.** How does this connect to something you already know? Name a specific vault note, or a concept from a completely different domain. |
| 67 | |
| 68 | **Q3.** What surprised you, or pushed back against something you already believed? |
| 69 | |
| 70 | --- |
| 71 | |
| 72 | Wait for the user's responses. Their answers determine: |
| 73 | - Which concepts are worth extracting (Q1 focus) |
| 74 | - Which wikilinks to create (Q2 connections) |
| 75 | - Where the note's real epistemic value lives (Q3 surprises) |
| 76 | |
| 77 | If the user skips a question or gives a short answer, acknowledge it and move on — don't block the workflow. |
| 78 | |
| 79 | ## Stage 4: VAULT CONCEPT SCAN |
| 80 | |
| 81 | Search the vault thoroughly for concepts mentioned in the note. Use multiple strategies: |
| 82 | |
| 83 | **By keyword (MCP preferred):** |
| 84 | ``` |
| 85 | mcp__obsidian-vault__search_notes(query="CONCEPT NAME", limit=10) |
| 86 | ``` |
| 87 | |
| 88 | **By keyword (Grep fallback):** |
| 89 | ``` |
| 90 | Grep(pattern="concept name", path="notes/", glob="*.md", output_mode="files_with_matches", head_limit=15) |
| 91 | ``` |
| 92 | |
| 93 | **By type — check all Term notes in relevant domain:** |
| 94 | ``` |
| 95 | Grep(pattern="type: term", path="notes/ml/", glob="*.md", output_mode="files_with_matches") |
| 96 | ``` |
| 97 | |
| 98 | For each key concept extracted from the note (aim for 5–12 concepts), classify it: |
| 99 | |
| 100 | | Classification | Meaning | Action | |
| 101 | |---|---|---| |
| 102 | | **EXISTING** | Term/Note already in vault | Add [[wikilink]] to source note | |
| 103 | | **NEW TERM** | Atomic concept, one clear definition | Extract as new (Term) note | |
| 104 | | **NEW NOTE** | Multi-facet idea, needs more depth | Extract as new (Note) note | |
| 105 | | **SKIP** | Tangential, not reusable | Don't extract | |
| 106 | |
| 107 | Search ACROSS domain folders — a psychology concept may already exist under |
| 108 | a different framing in notes/startup/ or notes/design/. Cross-domain matches |
| 109 | are the most valuable finds. |
| 110 | |
| 111 | ## Stage 5: PRESENT EXTRACTION PLAN |
| 112 | |
| 113 | Pres |