Complete 6-phase workflow guide for content processing
Workflow Overview
Phase 0: Load Configuration
↓
Phase 1: Detect Input Source
↓
Phase 1.5: Collect User Preferences
↓
Phase 2: Extract Content
↓
Phase 3: Analyze Content
↓
Phase 4: Select Output Format
↓
Phase 5: Execute Export
↓
Phase 6: Verify and Report
🛑 MANDATORY WORKFLOW - Never skip this!
Must be executed in Antigravity/Gemini CLI:
STEP 1: Check user preferences (Phase 1.5) - Required!
Before processing content must ask the user the following questions:
📊 상세 수준: 1.요약 / 2.보통 / 3.상세
🎯 중점 영역: A.개념 / B.실용 / C.기술 / D.인사이트 / E.전체
📝 노트 분할: ①단일 / ②주제별 / ③원자적 / ④3-tier
🔗 연결 수준: 최소 / 보통 / 최대
기본값(3.상세, E.전체, ④3-tier, 최대)을 사용하시겠습니까?
💡 3-tier란? 개요 노트 + 주제별 노트 + 원자적 노트로 계층 구조화
If it is a social media (Threads/Instagram) URL, additional questions:
🔄 답글 수집 범위:
1) depth=1: 직접 답글만 (빠름)
2) depth=2: 답글의 답글까지 (더 완전한 맥락)
⚠️ You must not skip this step!
- Can be omitted only if the user used quick preset keywords such as "quickly", "by default", etc.
- In all other cases: must ask before proceeding
STEP 2: Vault search and note linking (Phase 3.5) - Required!
Before saving the note must search for and link related notes.
Step 2-1: Extract related keywords
Extract key keywords from the content:
- Topic keywords (e.g., "AI", "prompt", "Claude")
- Person/account names (e.g., "@openai", "Anthropic")
- Technical terms (e.g., "LLM", "RAG", "embedding")
Step 2-2: Run Vault search
// Antigravity/Gemini CLI 도구명
keywords = ["AI", "프롬프트", "Claude"]
keywords.forEach(keyword => {
mcp_obsidian_search_vault({ query: keyword })
})
Step 2-3: Read and analyze related notes
Read the top notes from the search results to check relevance:
// 검색 결과에서 상위 10개 노트 읽기
search_results.slice(0, 10).forEach(result => {
mcp_obsidian_read_note({ path: result.path })
})
Step 2-4: Add links according to connection level
Determine the number of links according to the "🔗 Connection Level" selected in Phase 1.5:
| Connection level | Number of links | Description |
|---|---|---|
| Minimum | 1-2개 | Link only the most relevant notes |
| Normal (default) | 3-5개 | Link major related notes |
| Maximum | 5-10개 | Link all potentially related notes |
Step 2-5: Add to the note in Wikilink format
## 관련 노트
- [[AI-프롬프트-기초]]
- [[Claude-사용-가이드]]
- [[LLM-활용법]]
⚠️ Saving without Vault search = incorrect behavior! ⚠️ Found related notes but did not add wikilinks = incorrect behavior!
STEP 3: Use MCP tools (Phase 5) - Required!
| Environment | Tools to use | Absolutely forbidden to use |
|---|---|---|
| Antigravity | mcp_obsidian_create_note |
write_to_file |
| Gemini CLI | mcp_obsidian_create_note |
write_to_file |
⚠️ MCP tools available but using file system tools = incorrect behavior!
Phase 0: Load Configuration (CRITICAL)
Must execute before all operations
// 1. Read config file
config = Read("km-config.json")
// 2. Check required items
if (!config) {
return "Configuration file not found. Please run /knowledge-manager setup"
}
// 3. Load storage settings
storage = {
primary: config.storage.primary,
obsidian: config.storage.obsidian,
notion: config.storage.notion,
local: config.storage.local
}
// 4. Load browser settings
browser = {
provider: config.browser.provider,
hyperbrowser: config.browser.hyperbrowser
}
Phase 1: Detect Input Source
Input Type Detection
| Input Pattern | Type | Processing |
|---|---|---|
https://threads.net/* |
Social Media | → km-browser-abstraction (stealth recommended) |
https://instagram.com/* |
Social Media | → km-browser-abstraction (stealth recommended) |
https://* |
Web URL | → km-browser-abstraction |
*.pdf |
PDF File | → Read tool |
*.docx |
Word File | → Read tool |
notion.so/* |
Notion Page | → Notion MCP |
Phase 2: Extract Content
Use Browser Abstraction Layer
→ See km-browser-abstraction skill
// Auto-select based on configured provider
content = scrape_url(url, {
stealth: inputType.requiresStealth
})
Phase 3: Analyze Content
Apply Zettelkasten Principles
- Atomicity: One idea = One note
- Self-contained: Note is understandable on its own
- Connectivity: Links between related concepts
Phase 4-6: Export and Verify
Use Storage Abstraction Layer
→ See km-storage-abstraction skill
// Auto-save to configured storage
save_note(relativePath, content)
Final Report Template
## ✅ Processing Complete!
### Input
- Source: {url or filename}
- Type: {web / file / social media}
### Saved Notes
| Title | Path | Status |
|-------|------|--------|
| {note1} | {path1} | ✅ |