revert commit
This commit is contained in:
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
Vendored
+33
@@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"file-explorer": true,
|
||||||
|
"global-search": true,
|
||||||
|
"switcher": true,
|
||||||
|
"graph": true,
|
||||||
|
"backlink": true,
|
||||||
|
"canvas": true,
|
||||||
|
"outgoing-link": true,
|
||||||
|
"tag-pane": true,
|
||||||
|
"footnotes": false,
|
||||||
|
"properties": true,
|
||||||
|
"page-preview": true,
|
||||||
|
"daily-notes": true,
|
||||||
|
"templates": true,
|
||||||
|
"note-composer": true,
|
||||||
|
"command-palette": true,
|
||||||
|
"slash-command": false,
|
||||||
|
"editor-status": true,
|
||||||
|
"bookmarks": true,
|
||||||
|
"markdown-importer": false,
|
||||||
|
"zk-prefixer": false,
|
||||||
|
"random-note": false,
|
||||||
|
"outline": true,
|
||||||
|
"word-count": true,
|
||||||
|
"slides": false,
|
||||||
|
"audio-recorder": false,
|
||||||
|
"workspaces": false,
|
||||||
|
"file-recovery": true,
|
||||||
|
"publish": false,
|
||||||
|
"sync": true,
|
||||||
|
"bases": true,
|
||||||
|
"webviewer": false
|
||||||
|
}
|
||||||
Vendored
+22
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"collapse-filter": true,
|
||||||
|
"search": "",
|
||||||
|
"showTags": false,
|
||||||
|
"showAttachments": false,
|
||||||
|
"hideUnresolved": false,
|
||||||
|
"showOrphans": true,
|
||||||
|
"collapse-color-groups": true,
|
||||||
|
"colorGroups": [],
|
||||||
|
"collapse-display": true,
|
||||||
|
"showArrow": false,
|
||||||
|
"textFadeMultiplier": 0,
|
||||||
|
"nodeSizeMultiplier": 1,
|
||||||
|
"lineSizeMultiplier": 1,
|
||||||
|
"collapse-forces": true,
|
||||||
|
"centerStrength": 0.518713248970312,
|
||||||
|
"repelStrength": 10,
|
||||||
|
"linkStrength": 1,
|
||||||
|
"linkDistance": 250,
|
||||||
|
"scale": 1,
|
||||||
|
"close": true
|
||||||
|
}
|
||||||
Vendored
+206
@@ -0,0 +1,206 @@
|
|||||||
|
{
|
||||||
|
"main": {
|
||||||
|
"id": "b33042e1dae2ebee",
|
||||||
|
"type": "split",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"id": "d6adc6f6ab929fb8",
|
||||||
|
"type": "tabs",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"id": "11878edbbb5f0b0a",
|
||||||
|
"type": "leaf",
|
||||||
|
"state": {
|
||||||
|
"type": "markdown",
|
||||||
|
"state": {
|
||||||
|
"file": "환영합니다!.md",
|
||||||
|
"mode": "source",
|
||||||
|
"source": false
|
||||||
|
},
|
||||||
|
"icon": "lucide-file",
|
||||||
|
"title": "환영합니다!"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "9a59b699c2664d6e",
|
||||||
|
"type": "tabs",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"id": "1e6a9de3e7a2f91f",
|
||||||
|
"type": "leaf",
|
||||||
|
"state": {
|
||||||
|
"type": "graph",
|
||||||
|
"state": {},
|
||||||
|
"icon": "lucide-git-fork",
|
||||||
|
"title": "그래프 뷰"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"direction": "vertical"
|
||||||
|
},
|
||||||
|
"left": {
|
||||||
|
"id": "9345f240ecf9718f",
|
||||||
|
"type": "split",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"id": "91216e15c89884c5",
|
||||||
|
"type": "tabs",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"id": "a334448a82082dfb",
|
||||||
|
"type": "leaf",
|
||||||
|
"state": {
|
||||||
|
"type": "file-explorer",
|
||||||
|
"state": {
|
||||||
|
"sortOrder": "alphabetical",
|
||||||
|
"autoReveal": false
|
||||||
|
},
|
||||||
|
"icon": "lucide-folder-closed",
|
||||||
|
"title": "파일 탐색기"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "3fde83500b942e71",
|
||||||
|
"type": "leaf",
|
||||||
|
"state": {
|
||||||
|
"type": "search",
|
||||||
|
"state": {
|
||||||
|
"query": "",
|
||||||
|
"matchingCase": false,
|
||||||
|
"explainSearch": false,
|
||||||
|
"collapseAll": false,
|
||||||
|
"extraContext": false,
|
||||||
|
"sortOrder": "alphabetical"
|
||||||
|
},
|
||||||
|
"icon": "lucide-search",
|
||||||
|
"title": "검색"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "37b12a15d0fa6468",
|
||||||
|
"type": "leaf",
|
||||||
|
"state": {
|
||||||
|
"type": "bookmarks",
|
||||||
|
"state": {},
|
||||||
|
"icon": "lucide-bookmark",
|
||||||
|
"title": "북마크"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"direction": "horizontal",
|
||||||
|
"width": 300
|
||||||
|
},
|
||||||
|
"right": {
|
||||||
|
"id": "b319432f1125be96",
|
||||||
|
"type": "split",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"id": "400f9cd61e8ce9b1",
|
||||||
|
"type": "tabs",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"id": "bde996f9da69c71a",
|
||||||
|
"type": "leaf",
|
||||||
|
"state": {
|
||||||
|
"type": "backlink",
|
||||||
|
"state": {
|
||||||
|
"file": "환영합니다!.md",
|
||||||
|
"collapseAll": false,
|
||||||
|
"extraContext": false,
|
||||||
|
"sortOrder": "alphabetical",
|
||||||
|
"showSearch": false,
|
||||||
|
"searchQuery": "",
|
||||||
|
"backlinkCollapsed": false,
|
||||||
|
"unlinkedCollapsed": true
|
||||||
|
},
|
||||||
|
"icon": "links-coming-in",
|
||||||
|
"title": "환영합니다! 의 백링크"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "db2dbfd8d9544d44",
|
||||||
|
"type": "leaf",
|
||||||
|
"state": {
|
||||||
|
"type": "outgoing-link",
|
||||||
|
"state": {
|
||||||
|
"file": "환영합니다!.md",
|
||||||
|
"linksCollapsed": false,
|
||||||
|
"unlinkedCollapsed": true
|
||||||
|
},
|
||||||
|
"icon": "links-going-out",
|
||||||
|
"title": "환영합니다! 의 나가는 링크"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "364cc9b1930534f7",
|
||||||
|
"type": "leaf",
|
||||||
|
"state": {
|
||||||
|
"type": "tag",
|
||||||
|
"state": {
|
||||||
|
"sortOrder": "frequency",
|
||||||
|
"useHierarchy": true,
|
||||||
|
"showSearch": false,
|
||||||
|
"searchQuery": ""
|
||||||
|
},
|
||||||
|
"icon": "lucide-tags",
|
||||||
|
"title": "태그"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "7e1c14ddf85167c6",
|
||||||
|
"type": "leaf",
|
||||||
|
"state": {
|
||||||
|
"type": "all-properties",
|
||||||
|
"state": {
|
||||||
|
"sortOrder": "frequency",
|
||||||
|
"showSearch": false,
|
||||||
|
"searchQuery": ""
|
||||||
|
},
|
||||||
|
"icon": "lucide-archive",
|
||||||
|
"title": "모든 속성"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ba5f9cca95ba7d37",
|
||||||
|
"type": "leaf",
|
||||||
|
"state": {
|
||||||
|
"type": "outline",
|
||||||
|
"state": {
|
||||||
|
"file": "환영합니다!.md",
|
||||||
|
"followCursor": false,
|
||||||
|
"showSearch": false,
|
||||||
|
"searchQuery": ""
|
||||||
|
},
|
||||||
|
"icon": "lucide-list",
|
||||||
|
"title": "환영합니다! 의 개요"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"direction": "horizontal",
|
||||||
|
"width": 300,
|
||||||
|
"collapsed": true
|
||||||
|
},
|
||||||
|
"left-ribbon": {
|
||||||
|
"hiddenItems": {
|
||||||
|
"switcher:빠른 전환기 열기": false,
|
||||||
|
"graph:그래프 뷰 열기": false,
|
||||||
|
"canvas:새 캔버스 만들기": false,
|
||||||
|
"daily-notes:오늘의 일일 노트 열기": false,
|
||||||
|
"templates:템플릿 삽입": false,
|
||||||
|
"command-palette:명령어 팔레트 열기": false,
|
||||||
|
"bases:새 베이스 생성하기": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"active": "11878edbbb5f0b0a",
|
||||||
|
"lastOpenFiles": [
|
||||||
|
"환영합니다!.md"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,135 +0,0 @@
|
|||||||
# Obsidian Wiki — Agent Context
|
|
||||||
|
|
||||||
A **skill-based framework** for building and maintaining an Obsidian knowledge base. No scripts or dependencies — everything is markdown instructions that you execute directly.
|
|
||||||
|
|
||||||
## Configuration
|
|
||||||
|
|
||||||
Resolve config using the Config Resolution Protocol in `.agents/skills/llm-wiki/SKILL.md`:
|
|
||||||
|
|
||||||
1. **Walk up from CWD** — look for a `.env` file in the current directory, then each parent, up to `$HOME`. Stop at the first `.env` that contains `OBSIDIAN_VAULT_PATH`.
|
|
||||||
2. **Global config** — if no local `.env` is found, read `~/.obsidian-wiki/config`.
|
|
||||||
3. **Prompt setup** — if neither exists, tell the user to run `wiki-setup`.
|
|
||||||
|
|
||||||
The resolved config sets `OBSIDIAN_VAULT_PATH` (where the wiki lives). It may also set `OBSIDIAN_WIKI_REPO` (where this repo is cloned) and other optional variables.
|
|
||||||
|
|
||||||
**After reading config, always read `$OBSIDIAN_VAULT_PATH/AGENTS.md` if it exists.** It contains owner-specific conventions (domain vocabulary, ingest preferences, writing style, project scoping) that override framework defaults for all skills. Apply it for the duration of the session.
|
|
||||||
|
|
||||||
## Vault Structure
|
|
||||||
|
|
||||||
```
|
|
||||||
$OBSIDIAN_VAULT_PATH/
|
|
||||||
├── .agents/
|
|
||||||
│ └── skills # Skills for building obsidian-wiki
|
|
||||||
├── index.md # Master index — every page listed, always kept current
|
|
||||||
├── log.md # Chronological activity log (ingests, updates, lints)
|
|
||||||
├── hot.md # Session hot cache — ~500-word semantic snapshot of recent activity
|
|
||||||
├── .manifest.json # Tracks every ingested source: path, timestamps, pages produced
|
|
||||||
├── _meta/
|
|
||||||
│ ├── taxonomy.md # Controlled tag vocabulary
|
|
||||||
│ └── *.base # Obsidian Bases dashboard definitions (wiki-dashboard skill)
|
|
||||||
├── _insights.md # Graph analysis output (hubs, bridges, dead ends)
|
|
||||||
├── _raw/ # Staging area — drop rough notes here, next ingest promotes them
|
|
||||||
├── concepts/ # Abstract ideas, patterns, mental models
|
|
||||||
├── entities/ # Concrete things — people, tools, libraries, companies
|
|
||||||
├── skills/ # How-to knowledge, techniques, procedures
|
|
||||||
├── references/ # Factual lookups — specs, APIs, configs
|
|
||||||
├── synthesis/ # Cross-cutting analysis connecting multiple concepts
|
|
||||||
├── journal/ # Time-bound entries — daily logs, session notes
|
|
||||||
└── projects/
|
|
||||||
└── <project-name>.md # One page per project synced via wiki-update
|
|
||||||
```
|
|
||||||
|
|
||||||
Every wiki page has required frontmatter: `title`, `category`, `tags`, `sources`, `created`, `updated`. Pages connect via internal links — `[[wikilinks]]` by default, or standard Markdown links when `OBSIDIAN_LINK_FORMAT=markdown` is set in config.
|
|
||||||
|
|
||||||
## Skill Routing
|
|
||||||
|
|
||||||
Skills live in `.agents/skills/<name>/SKILL.md`. Match the user's intent to the right skill:
|
|
||||||
|
|
||||||
| User says something like… | Skill |
|
|
||||||
|---|---|
|
|
||||||
| "set up my wiki" / "initialize" | `wiki-setup` |
|
|
||||||
| "/wiki-history-ingest claude" / "/wiki-history-ingest codex" / "/wiki-history-ingest hermes" / "/wiki-history-ingest pi" | `wiki-history-ingest` |
|
|
||||||
| "/ingest-url <url>" / "add this URL" / "ingest this link" / "save this page" | `ingest-url` |
|
|
||||||
| "ingest" / "add this to the wiki" / "process these docs" | `wiki-ingest` |
|
|
||||||
| "import my Claude history" / "mine my conversations" | `claude-history-ingest` |
|
|
||||||
| "import my Codex history" / "mine my Codex sessions" | `codex-history-ingest` |
|
|
||||||
| "import my Hermes history" / "mine my Hermes memories" / "ingest ~/.hermes" | `hermes-history-ingest` |
|
|
||||||
| "import my OpenClaw history" / "mine my OpenClaw sessions" / "ingest ~/.openclaw" | `openclaw-history-ingest` |
|
|
||||||
| "import my Copilot history" / "mine my Copilot sessions" / "ingest ~/.copilot" | `copilot-history-ingest` |
|
|
||||||
| "import my Pi history" / "mine my Pi sessions" / "ingest ~/.pi" | `pi-history-ingest` |
|
|
||||||
| "process this export" / "ingest this data" / logs, transcripts | `data-ingest` |
|
|
||||||
| "ingest this obsidian wiki" / "ingest the obsidian-wiki project" | `obsidian-wiki-ingest` |
|
|
||||||
| "what's the status" / "what's been ingested" / "show the delta" | `wiki-status` |
|
|
||||||
| "wiki insights" / "hubs" / "wiki structure" | `wiki-status` (insights mode) |
|
|
||||||
| "what do I know about X" / "find info on Y" / any question | `wiki-query` |
|
|
||||||
| "audit" / "lint" / "find broken links" / "wiki health" | `wiki-lint` |
|
|
||||||
| "dedup my wiki" / "find duplicate pages" / "merge duplicates" / "identity resolution" / "consolidate my wiki" | `wiki-dedup` |
|
|
||||||
| "rebuild" / "start over" / "archive" / "restore" | `wiki-rebuild` |
|
|
||||||
| "link my pages" / "cross-reference" / "connect my wiki" | `cross-linker` |
|
|
||||||
| "fix my tags" / "normalize tags" / "tag audit" | `tag-taxonomy` |
|
|
||||||
| "update wiki" / "sync to wiki" / "save this to my wiki" | `wiki-update` |
|
|
||||||
| "export wiki" / "export graph" / "graphml" / "neo4j" | `wiki-export` |
|
|
||||||
| "color my graph" / "color code obsidian" / "color by tag/category/visibility" | `graph-colorize` |
|
|
||||||
| "save this" / "/wiki-capture" / "capture this" / "file this conversation" | `wiki-capture` |
|
|
||||||
| "/wiki-quick-chat-capture" / "quick capture" / "capture this finding" / "save this gotcha" / "drop to raw" | `wiki-quick-chat-capture` |
|
|
||||||
| "/wiki-research [topic]" / "research X" / "find everything about Y" | `wiki-research` |
|
|
||||||
| "create a dashboard" / "vault dashboard" / "show all X as a table" / "dynamic view" | `wiki-dashboard` |
|
|
||||||
| "synthesize my wiki" / "find connections" / "what concepts keep coming up together" / "/wiki-synthesize" | `wiki-synthesize` |
|
|
||||||
| "create a new skill" | `skill-creator` |
|
|
||||||
| "/wiki-claude [topic]" / "/wiki-codex [topic]" / "/wiki-hermes [topic]" / "/wiki-openclaw [topic]" / "/wiki-copilot [topic]" / "/wiki-pi [topic]" | `wiki-agent` |
|
|
||||||
| "/memory-bridge" / "browse codex memory" / "what did codex know about X" / "compare tool memories" / "cross-tool memory" | `memory-bridge` |
|
|
||||||
| "/daily-update" / "morning sync" / "refresh the wiki index" / "set up the daily cron" / "install terminal notification" | `daily-update` |
|
|
||||||
| "/impl-validator" / "check this implementation" / "validate what you did" / "is this correct?" | `impl-validator` |
|
|
||||||
| "/wiki-switch NAME" / "switch to my work wiki" / "switch vault" / "change wiki" / "list my wikis" / "show my vaults" / "create a new vault config" | `wiki-switch` |
|
|
||||||
| "/wiki-digest" / "what did I learn this week" / "weekly digest" / "knowledge summary" / "what's new in my wiki" / "summarize my recent learning" / "monthly review" | `wiki-digest` |
|
|
||||||
|
|
||||||
## Cross-Project Usage
|
|
||||||
|
|
||||||
The main use case: you're working in some other project and want to sync knowledge into your wiki or query it. Two global skills handle this — `wiki-update` and `wiki-query`. They work from any directory.
|
|
||||||
|
|
||||||
### wiki-update (write to wiki)
|
|
||||||
|
|
||||||
1. Resolve config using the Config Resolution Protocol to get `OBSIDIAN_VAULT_PATH`
|
|
||||||
2. Scan the current project: README, source structure, git log, package metadata
|
|
||||||
3. Distill what's worth remembering (architecture decisions, patterns, trade-offs — not code listings)
|
|
||||||
4. Write to `$VAULT/projects/<project-name>.md`, cross-linking to concept/entity pages as needed
|
|
||||||
5. Update `.manifest.json`, `index.md`, and `log.md`
|
|
||||||
|
|
||||||
On repeat runs, it checks `last_commit_synced` in `.manifest.json` and only processes the delta via `git log <last_commit>..HEAD`.
|
|
||||||
|
|
||||||
### wiki-query (read from wiki)
|
|
||||||
|
|
||||||
1. Resolve config using the Config Resolution Protocol to get `OBSIDIAN_VAULT_PATH`
|
|
||||||
2. Scan titles, tags, and `summary:` frontmatter fields first (cheap pass)
|
|
||||||
3. Only open page bodies when the index pass can't answer
|
|
||||||
4. Return a synthesized answer with `[[wikilink]]` citations
|
|
||||||
|
|
||||||
## Visibility Tags (optional)
|
|
||||||
|
|
||||||
Pages can carry a `visibility/` tag to mark their intended reach. **This is entirely optional** — untagged pages behave exactly as they always have (visible everywhere). The system stays single-vault, single source of truth.
|
|
||||||
|
|
||||||
| Tag | Meaning |
|
|
||||||
|---|---|
|
|
||||||
| *(no tag)* | Same as `visibility/public` — visible in all modes |
|
|
||||||
| `visibility/public` | Explicitly public — visible in all modes |
|
|
||||||
| `visibility/internal` | Team-only — excluded when querying in filtered mode |
|
|
||||||
| `visibility/pii` | Sensitive data — excluded when querying in filtered mode |
|
|
||||||
|
|
||||||
**Filtered mode** is opt-in, triggered by phrases like "public only", "user-facing answer", "no internal content", or "as a user would see it" in a query. Default mode shows everything.
|
|
||||||
|
|
||||||
`visibility/` tags are **system tags** — they don't count toward the 5-tag limit and are listed separately from domain/type tags in the taxonomy.
|
|
||||||
|
|
||||||
See `wiki-query` and `wiki-export` skills for how the filter is applied.
|
|
||||||
|
|
||||||
## Core Principles
|
|
||||||
|
|
||||||
- **Compile, don't retrieve.** The wiki is pre-compiled knowledge. Update existing pages — don't append or duplicate.
|
|
||||||
- **Track everything.** Update `.manifest.json` after ingesting, `index.md`, `log.md`, and `hot.md` after any write operation.
|
|
||||||
- **Connect with `[[wikilinks]]`.** Every page should link to related pages. This is what makes it a knowledge graph, not a folder of files.
|
|
||||||
- **Frontmatter is required.** Every wiki page needs: `title`, `category`, `tags`, `sources`, `created`, `updated`.
|
|
||||||
- **Single source of truth.** Visibility tags shape how content is surfaced — they don't duplicate or separate it.
|
|
||||||
- **Keep context warm.** `hot.md` is a ~500-word semantic snapshot of recent activity. Every write skill updates it so the next session can pick up where the last one left off without crawling the full vault.
|
|
||||||
|
|
||||||
## Architecture Reference
|
|
||||||
|
|
||||||
For the full pattern (three-layer architecture, page templates, project org), read `.agent/skills/llm-wiki/SKILL.md`.
|
|
||||||
Reference in New Issue
Block a user