{"id":"tutor-setup","name":"tutor-setup","summary":"知識源をオブシディアン・スタディヴォールトに変換する。2つのモード:(1) ドキュメントモード — PDF/テキスト/ウェブソース→練習問題付き学習ノート。","body":"# Tutor Setup — Knowledge to Obsidian StudyVault\n\n## CWD Boundary Rule (ALL MODES)\n\n> **NEVER access files outside the current working directory (CWD).**\n> All source scanning, reading, and vault output MUST stay within CWD and its subdirectories.\n> If the user provides an external path, ask them to copy the files into CWD first.\n\n## Mode Detection\n\nOn invocation, detect mode automatically:\n\n1. **Check for project markers** in CWD:\n   - `package.json`, `pom.xml`, `build.gradle`, `Cargo.toml`, `go.mod`, `Makefile`,\n     `*.sln`, `pyproject.toml`, `setup.py`, `Gemfile`\n2. **If any marker found** → **Codebase Mode**\n3. **If no marker found** → **Document Mode**\n4. **Tie-break**: If `.git/` is the sole indicator and no source code files (`*.ts`, `*.py`, `*.java`, `*.go`, `*.rs`, etc.) exist, default to Document Mode.\n5. Announce detected mode and ask user to confirm or override.\n\n---\n\n## Document Mode\n\n> Transforms knowledge sources (PDF, text, web, epub) into study notes.\n> Templates: [templates.md](references/templates.md)\n\n### Phase D1: Source Discovery & Extraction\n\n1. **Auto-scan CWD** for `**/*.pdf`, `**/*.txt`, `**/*.md`, `**/*.html`, `**/*.epub` (exclude `node_modules/`, `.git/`, `dist/`, `build/`, `StudyVault/`). Present for user confirmation.\n2. **Extract text (MANDATORY tools)**:\n   - **PDF → `pdftotext` CLI ONLY** (run via Bash tool). NEVER use the Read tool directly on PDF files — it renders pages as images and wastes 10-50x more tokens. Convert to `.txt` first, then Read the `.txt` file.\n     ```bash\n     pdftotext \"source.pdf\" \"/tmp/source.txt\"\n     ```\n   - If `pdftotext` is not installed, install it first: `brew install poppler` (macOS) or `apt-get install poppler-utils` (Linux).\n   - URL → WebFetch\n   - Other formats (`.md`, `.txt`, `.html`) → Read directly.\n3. **Read extracted `.txt` files** — understand scope, structure, depth. Work exclusively from the converted text, never from the raw PDF.\n4. **Source Content Mapping (MANDATORY for multi-file sources)**:\n   - Read **cover page + TOC + 3+ sample pages from middle/end** for EVERY source file\n   - **NEVER assume content from filename** — file numbering often ≠ chapter numbering\n   - Build verified mapping: `{ source_file → actual_topics → page_ranges }`\n   - Flag non-academic files and missing sources\n   - Present mapping to user for verification before proceeding\n\n### Phase D2: Content Analysis\n\n1. Identify topic hierarchy — sections, chapters, domain divisions.\n2. Separate concept content vs practice questions.\n3. Map dependencies between topics.\n4. Identify key patterns — comparisons, decision trees, formulas.\n5. **Full topic checklist (MANDATORY)** — every topic/subtopic listed. Drives all subsequent phases.\n\n> **Equal Depth Rule**: Even a briefly mentioned subtopic MUST get a full dedicated note supplemented with textbook-level knowledge.\n\n6. **Classification completeness**: When source enumerates categories (\"3 types of X\"), every member gets a dedicated note. Scan for: \"types of\", \"N가지\", \"categories\", \"there are N\".\n7. **Source-to-note cross-verification (MANDATORY)**: Record which source file(s) and page range(s) cover each topic. Flag untraceable topics as \"source not available\".\n\n### Phase D3: Tag Standard\n\nDefine tag vocabulary before creating notes:\n- **Format**: English, lowercase, kebab-case (e.g., `#data-hazard`)\n- **Hierarchy**: top-level → domain → detail → technique → note-type\n- **Registry**: Only registered tags allowed. Detail tags co-attach parent domain tag.\n\n### Phase D4: Vault Structure\n\nCreate `StudyVault/` with numbered folders per [templates.md](references/templates.md). Group 3-5 related concepts per file.\n\n### Phase D5: Dashboard Creation\n\nCreate `00-Dashboard/`: MOC, Quick Reference, Exam Traps. See [templates.md](references/templates.md).\n\n- **MOC**: Topic Map + Practice Notes + Study Tools + Tag Index (with rules) + Weak Areas (with links) + Non-core Topic Policy\n- **Quick Reference**: every heading includes `→ [[Concept Note]]` link; all key formulas\n- **Exam Traps**: per-topic trap points in fold callouts, linked to concept notes\n\n### Phase D6: Concept Notes\n\nPer [templates.md](references/templates.md). Key rules:\n- YAML frontmatter: `source_pdf`, `part`, `keywords` (MANDATORY)\n- **source_pdf MUST match verified Phase D1 mapping** — never guess from filename\n- If unavailable: `source_pdf: 원문 미보유`\n- `[[wiki-links]]`, callouts (`[!tip]`, `[!important]`, `[!warning]`), comparison tables > prose\n- ASCII diagrams for processes/flows/sequences\n- **Simplification-with-exceptions**: general statements must note edge cases\n\n### Phase D7: Practice Questions\n\nPer [templates.md](references/templates.md). Key rules:\n- Every topic folder MUST have a practice file (8+ questions)\n- **Active recall**: answers use `> [!answer]- 정답 보기` fold callout\n- Patterns use `> [!hint]-` / `> [!summary]-` fold callouts\n- **Question type diversity**: ≥60% recall, ≥20% application, ≥2 analysis per file\n- `## Related Concepts` with `[[wiki-links]]`\n\n### Phase D8: Interlinking\n\n1. `## Related Notes` on every concept note\n2. MOC links to every concept + practice note\n3. Cross-link concept ↔ practice; siblings reference each other\n4. Quick Reference sections → `[[Concept Note]]` links\n5. Weak Areas → relevant note + Exam Traps; Exam Traps → concept notes\n\n### Phase D9: Self-Review (MANDATORY)\n\nVerify against [quality-checklist.md](references/quality-checklist.md) **Document Mode** section. Fix and re-verify until all checks pass.\n\n---\n\n## Codebase Mode\n\n> Generates a new-developer onboarding StudyVault from a source code project.\n> Full workflow: [codebase-workflow.md](references/codebase-workflow.md)\n> Templates: [codebase-templates.md](references/codebase-templates.md)\n\n### Phase Summary\n\n| Phase | Name | Key Action |\n|-------|------|------------|\n| C1 | Project Exploration | Scan files, detect tech stack, read entry points, map directory layout |\n| C2 | Architecture Analysis | Identify patterns, trace request flow, map module boundaries and data flow |\n| C3 | Tag Standard | Define `#arch-*`, `#module-*`, `#pattern-*`, `#api-*` tag registry |\n| C4 | Vault Structure | Create `StudyVault/` with Dashboard, Architecture, per-module, DevOps, Exercises folders |\n| C5 | Dashboard | MOC (Module Map + API Surface + Getting Started + Onboarding Path) + Quick Reference |\n| C6 | Module Notes | Per-module notes: Purpose, Key Files, Public Interface, Internal Flow, Dependencies |\n| C7 | Onboarding Exercises | Code reading, configuration, debugging, extension exercises (5+ per major module) |\n| C8 | Interlinking | Cross-link modules, architecture ↔ implementations, exercises ↔ modules |\n| C9 | Self-Review | Verify against [quality-checklist.md](references/quality-checklist.md) **Codebase Mode** section |\n\nSee [codebase-workflow.md](references/codebase-workflow.md) for detailed per-phase instructions.\n\n---\n\n## Language\n\n- Match source material language (Korean → Korean notes, etc.)\n- **Tags/keywords**: ALWAYS English","author":"@bevibing","ownerProfile":null,"authorContacts":null,"sourceUrl":"https://github.com/bevibing/tutor-skills/tree/main/skills/tutor-setup","license":"MIT","category":"writing","lang":"en","tokens":1748,"stars":0,"calls30d":2,"claimed":false,"visibility":"public","origin":"crawler","version":"0.1.0","createdAt":"2026-08-22","updatedAt":"2026-08-22","files":[{"path":"references/codebase-templates.md","size":6137,"sha256":"38b0f7dee40b7a76a7da4f5db927f1f19125f9997861969a8724c0ba2aacea94"},{"path":"references/codebase-workflow.md","size":4743,"sha256":"cabb58123d04deca83efd84499e8aa627cf3e448c261a7b18da342ab8726bd5c"},{"path":"references/quality-checklist.md","size":4381,"sha256":"4bc606389f9b5f01c5ca467401619ae03139b222ce79db10c87d0d84533daa2a"},{"path":"references/templates.md","size":4983,"sha256":"9e02d8ed6be5f97e1ae0464b1db99d16cbd022c2e5377f50ff347c41bc0999d4"}],"requires":{"mcp":[],"tools":["Read","Write","Edit","Glob","Grep","Bash","WebFetch"]},"safety":{"flags":[],"scannedAt":"2026-08-22","hasScripts":false,"networkEndpoints":[]}}