원클릭으로
storage-abstraction-layer
Unified storage interface for Obsidian, Notion, and local file systems
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Unified storage interface for Obsidian, Notion, and local file systems
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Generate professional slide deck images from content. Creates comprehensive outlines with style instructions, then generates individual slide images. Use when user asks to "create slides", "make a presentation", "generate deck", or "slide deck".
6-phase workflow for content extraction, analysis, and export to Obsidian/Notion
Extract content from Threads, Instagram with reply collection and depth control
Unified browser interface for Antigravity native, Playwright, and Hyperbrowser providers
Automated setup wizard for Knowledge Manager - configures MCP servers and creates config files
Output format specifications for Obsidian, Notion, and Markdown exports
| name | Storage Abstraction Layer |
| description | Unified storage interface for Obsidian, Notion, and local file systems |
Unified interface for saving notes across different storage backends
function get_storage_backend() {
config = Read("km-config.json")
return config?.storage?.primary || "local"
}
┌─────────────────────────────────────────────────────┐
│ 🛑 CRITICAL: MCP 도구 사용 강제 │
│ │
│ MCP 도구가 사용 가능한 환경에서는 반드시 MCP 사용! │
│ │
│ ❌ 잘못된 예: │
│ - write_to_file("vault/note.md", content) │
│ │
│ ✅ 올바른 예: │
│ - mcp_obsidian_create_note(path, content) │
└─────────────────────────────────────────────────────┘
| Feature | Obsidian | Notion | Local |
|---|---|---|---|
| Create | mcp_obsidian_create_note | mcp_notion_API-post-page | write_to_file |
| Search | mcp_obsidian_search_vault | mcp_notion_API-post-search | N/A |
| Read | mcp_obsidian_read_note | mcp_notion_API-get-block-children | read_file |
| Path format | Relative to vault | Database/Page ID | File system path |
| Wikilinks | Supported | Converted to mentions | Supported |
참고: Antigravity는 MCP 도구 이름에 싱글 언더스코어(
_)를 사용합니다.
| 작업 | 도구명 | 설명 |
|---|---|---|
| 노트 생성 | mcp_obsidian_create_note | 새 노트 생성 |
| 노트 검색 | mcp_obsidian_search_vault | Vault 내 키워드 검색 |
| 노트 읽기 | mcp_obsidian_read_note | 노트 내용 읽기 |
| 노트 목록 | mcp_obsidian_list_notes | 폴더 내 노트 목록 |
// Antigravity/Gemini CLI용 (싱글 언더스코어 사용)
function save_note(relativePath, content) {
backend = get_storage_backend()
config = Read("km-config.json")
switch (backend) {
case "obsidian":
// ⚠️ 반드시 MCP 도구 사용!
return mcp_obsidian_create_note({
path: relativePath,
content: content
})
case "notion":
return mcp_notion_API_post_page({
parent: { page_id: config.storage.notion.parentPageId },
properties: { title: [{ text: { content: getTitle(relativePath) } }] }
})
case "local":
default:
fullPath = `${config.storage.local.outputPath}/${relativePath}`
return write_to_file(fullPath, content)
}
}
function normalize_path(path) {
// Windows backslash → forward slash
path = path.replace(/\\/g, '/')
// Remove leading slash for relative paths
path = path.replace(/^\//, '')
return path
}
After every save operation:
□ Did the tool actually execute? (no JSON-only output!)
□ Did we receive a success response?
□ Verify with Glob that file exists