obsidian-wiki 2026.5.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- obsidian_wiki-2026.5.2/.agent/rules/obsidian-wiki.md +44 -0
- obsidian_wiki-2026.5.2/.agent/workflows/obsidian-wiki.md +29 -0
- obsidian_wiki-2026.5.2/.cursor/rules/obsidian-wiki.mdc +41 -0
- obsidian_wiki-2026.5.2/.env.example +76 -0
- obsidian_wiki-2026.5.2/.github/copilot-instructions.md +44 -0
- obsidian_wiki-2026.5.2/.github/workflows/publish.yml +65 -0
- obsidian_wiki-2026.5.2/.github/workflows/setup.yml +29 -0
- obsidian_wiki-2026.5.2/.gitignore +13 -0
- obsidian_wiki-2026.5.2/.hermes.md +1 -0
- obsidian_wiki-2026.5.2/.kiro/steering/obsidian-wiki.md +43 -0
- obsidian_wiki-2026.5.2/.skills/claude-history-ingest/SKILL.md +376 -0
- obsidian_wiki-2026.5.2/.skills/claude-history-ingest/references/claude-data-format.md +118 -0
- obsidian_wiki-2026.5.2/.skills/codex-history-ingest/SKILL.md +245 -0
- obsidian_wiki-2026.5.2/.skills/codex-history-ingest/references/codex-data-format.md +82 -0
- obsidian_wiki-2026.5.2/.skills/copilot-history-ingest/SKILL.md +373 -0
- obsidian_wiki-2026.5.2/.skills/copilot-history-ingest/references/copilot-data-format.md +321 -0
- obsidian_wiki-2026.5.2/.skills/cross-linker/SKILL.md +270 -0
- obsidian_wiki-2026.5.2/.skills/daily-update/SKILL.md +199 -0
- obsidian_wiki-2026.5.2/.skills/data-ingest/SKILL.md +195 -0
- obsidian_wiki-2026.5.2/.skills/graph-colorize/SKILL.md +180 -0
- obsidian_wiki-2026.5.2/.skills/hermes-history-ingest/SKILL.md +236 -0
- obsidian_wiki-2026.5.2/.skills/hermes-history-ingest/references/hermes-data-format.md +131 -0
- obsidian_wiki-2026.5.2/.skills/impl-validator/SKILL.md +118 -0
- obsidian_wiki-2026.5.2/.skills/ingest-url/SKILL.md +348 -0
- obsidian_wiki-2026.5.2/.skills/llm-wiki/SKILL.md +526 -0
- obsidian_wiki-2026.5.2/.skills/llm-wiki/references/karpathy-pattern.md +45 -0
- obsidian_wiki-2026.5.2/.skills/memory-bridge/SKILL.md +163 -0
- obsidian_wiki-2026.5.2/.skills/obsidian-wiki-ingest/SKILL.md +79 -0
- obsidian_wiki-2026.5.2/.skills/obsidian-wiki-ingest/scripts/ingest-wiki.sh +7 -0
- obsidian_wiki-2026.5.2/.skills/openclaw-history-ingest/SKILL.md +254 -0
- obsidian_wiki-2026.5.2/.skills/openclaw-history-ingest/references/openclaw-data-format.md +154 -0
- obsidian_wiki-2026.5.2/.skills/pi-history-ingest/SKILL.md +280 -0
- obsidian_wiki-2026.5.2/.skills/skill-creator/LICENSE.txt +202 -0
- obsidian_wiki-2026.5.2/.skills/skill-creator/SKILL.md +485 -0
- obsidian_wiki-2026.5.2/.skills/skill-creator/agents/analyzer.md +274 -0
- obsidian_wiki-2026.5.2/.skills/skill-creator/agents/comparator.md +202 -0
- obsidian_wiki-2026.5.2/.skills/skill-creator/agents/grader.md +223 -0
- obsidian_wiki-2026.5.2/.skills/skill-creator/assets/eval_review.html +146 -0
- obsidian_wiki-2026.5.2/.skills/skill-creator/eval-viewer/generate_review.py +471 -0
- obsidian_wiki-2026.5.2/.skills/skill-creator/eval-viewer/viewer.html +1325 -0
- obsidian_wiki-2026.5.2/.skills/skill-creator/references/schemas.md +430 -0
- obsidian_wiki-2026.5.2/.skills/skill-creator/scripts/__init__.py +0 -0
- obsidian_wiki-2026.5.2/.skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- obsidian_wiki-2026.5.2/.skills/skill-creator/scripts/generate_report.py +326 -0
- obsidian_wiki-2026.5.2/.skills/skill-creator/scripts/improve_description.py +247 -0
- obsidian_wiki-2026.5.2/.skills/skill-creator/scripts/package_skill.py +136 -0
- obsidian_wiki-2026.5.2/.skills/skill-creator/scripts/quick_validate.py +103 -0
- obsidian_wiki-2026.5.2/.skills/skill-creator/scripts/run_eval.py +310 -0
- obsidian_wiki-2026.5.2/.skills/skill-creator/scripts/run_loop.py +328 -0
- obsidian_wiki-2026.5.2/.skills/skill-creator/scripts/utils.py +47 -0
- obsidian_wiki-2026.5.2/.skills/tag-taxonomy/SKILL.md +218 -0
- obsidian_wiki-2026.5.2/.skills/wiki-agent/SKILL.md +312 -0
- obsidian_wiki-2026.5.2/.skills/wiki-capture/SKILL.md +249 -0
- obsidian_wiki-2026.5.2/.skills/wiki-context-pack/SKILL.md +138 -0
- obsidian_wiki-2026.5.2/.skills/wiki-dashboard/SKILL.md +469 -0
- obsidian_wiki-2026.5.2/.skills/wiki-dedup/SKILL.md +282 -0
- obsidian_wiki-2026.5.2/.skills/wiki-digest/SKILL.md +240 -0
- obsidian_wiki-2026.5.2/.skills/wiki-export/SKILL.md +314 -0
- obsidian_wiki-2026.5.2/.skills/wiki-history-ingest/SKILL.md +61 -0
- obsidian_wiki-2026.5.2/.skills/wiki-ingest/SKILL.md +390 -0
- obsidian_wiki-2026.5.2/.skills/wiki-ingest/references/ingest-prompts.md +42 -0
- obsidian_wiki-2026.5.2/.skills/wiki-lint/SKILL.md +532 -0
- obsidian_wiki-2026.5.2/.skills/wiki-query/SKILL.md +188 -0
- obsidian_wiki-2026.5.2/.skills/wiki-quick-chat-capture/SKILL.md +114 -0
- obsidian_wiki-2026.5.2/.skills/wiki-quick-chat-capture/references/RAW-FORMAT.md +115 -0
- obsidian_wiki-2026.5.2/.skills/wiki-rebuild/SKILL.md +213 -0
- obsidian_wiki-2026.5.2/.skills/wiki-research/SKILL.md +241 -0
- obsidian_wiki-2026.5.2/.skills/wiki-setup/SKILL.md +182 -0
- obsidian_wiki-2026.5.2/.skills/wiki-stage-commit/SKILL.md +164 -0
- obsidian_wiki-2026.5.2/.skills/wiki-status/SKILL.md +462 -0
- obsidian_wiki-2026.5.2/.skills/wiki-switch/SKILL.md +98 -0
- obsidian_wiki-2026.5.2/.skills/wiki-synthesize/SKILL.md +204 -0
- obsidian_wiki-2026.5.2/.skills/wiki-update/SKILL.md +239 -0
- obsidian_wiki-2026.5.2/.windsurf/rules/obsidian-wiki.md +41 -0
- obsidian_wiki-2026.5.2/AGENTS.md +133 -0
- obsidian_wiki-2026.5.2/CLAUDE.md +1 -0
- obsidian_wiki-2026.5.2/GEMINI.md +1 -0
- obsidian_wiki-2026.5.2/LICENSE +21 -0
- obsidian_wiki-2026.5.2/PKG-INFO +499 -0
- obsidian_wiki-2026.5.2/README.md +477 -0
- obsidian_wiki-2026.5.2/SETUP.md +174 -0
- obsidian_wiki-2026.5.2/obsidian_wiki/__init__.py +14 -0
- obsidian_wiki-2026.5.2/obsidian_wiki/__main__.py +6 -0
- obsidian_wiki-2026.5.2/obsidian_wiki/cli.py +398 -0
- obsidian_wiki-2026.5.2/pyproject.toml +88 -0
- obsidian_wiki-2026.5.2/scripts/com.obsidian-wiki.daily-update.plist +35 -0
- obsidian_wiki-2026.5.2/scripts/daily-update.sh +114 -0
- obsidian_wiki-2026.5.2/scripts/wiki-notify.sh +42 -0
- obsidian_wiki-2026.5.2/setup.sh +245 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
alwaysApply: true
|
|
3
|
+
description: Obsidian Wiki skill-based framework — routing, conventions, and core rules.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Obsidian Wiki — Agent Context
|
|
7
|
+
|
|
8
|
+
This project is a **skill-based framework** for building and maintaining an Obsidian knowledge base.
|
|
9
|
+
|
|
10
|
+
## Quick Orientation
|
|
11
|
+
|
|
12
|
+
1. Read `~/.obsidian-wiki/config` (or `.env` in this repo) for `OBSIDIAN_VAULT_PATH` — this is where the wiki lives.
|
|
13
|
+
2. Read `.manifest.json` at the vault root to see what's already been ingested.
|
|
14
|
+
3. Skills are in `.skills/` (also at `.agents/skills/`). Each subfolder has a `SKILL.md`.
|
|
15
|
+
|
|
16
|
+
## When to Use Skills
|
|
17
|
+
|
|
18
|
+
| User says something like… | Read this skill |
|
|
19
|
+
|---|---|
|
|
20
|
+
| "set up my wiki" / "initialize" | `wiki-setup` |
|
|
21
|
+
| "ingest" / "add this to the wiki" | `wiki-ingest` |
|
|
22
|
+
| "import my Claude history" | `claude-history-ingest` |
|
|
23
|
+
| "import my Codex history" | `codex-history-ingest` |
|
|
24
|
+
| "import my Hermes history" | `hermes-history-ingest` |
|
|
25
|
+
| "import my OpenClaw history" | `openclaw-history-ingest` |
|
|
26
|
+
| "import my Pi history" | `pi-history-ingest` |
|
|
27
|
+
| "process this export" / "ingest this data" | `data-ingest` |
|
|
28
|
+
| "what's the status" / "show the delta" | `wiki-status` |
|
|
29
|
+
| "what do I know about X" | `wiki-query` |
|
|
30
|
+
| "audit" / "lint" / "find broken links" | `wiki-lint` |
|
|
31
|
+
| "rebuild" / "archive" / "restore" | `wiki-rebuild` |
|
|
32
|
+
| "link my pages" / "cross-reference" | `cross-linker` |
|
|
33
|
+
| "fix my tags" | `tag-taxonomy` |
|
|
34
|
+
| "update wiki" / "sync to wiki" | `wiki-update` |
|
|
35
|
+
| "export wiki" / "export graph" | `wiki-export` |
|
|
36
|
+
|
|
37
|
+
## Core Rules
|
|
38
|
+
|
|
39
|
+
- **Compile, don't retrieve** — update existing pages, don't append or duplicate.
|
|
40
|
+
- **Track everything** — update `.manifest.json`, `index.md`, and `log.md` after every operation.
|
|
41
|
+
- **Connect with `[[wikilinks]]`** — every page should link to related pages.
|
|
42
|
+
- **Frontmatter required** — every page needs `title`, `category`, `tags`, `sources`, `created`, `updated`.
|
|
43
|
+
|
|
44
|
+
For full context, read `AGENTS.md` at the repo root.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: obsidian-wiki
|
|
3
|
+
description: Obsidian wiki workflows — query, update, ingest, lint, status.
|
|
4
|
+
commands:
|
|
5
|
+
- name: wiki-query
|
|
6
|
+
description: Answer questions from the compiled Obsidian wiki with [[wikilink]] citations.
|
|
7
|
+
skill: .skills/wiki-query/SKILL.md
|
|
8
|
+
- name: wiki-update
|
|
9
|
+
description: Sync the current project's knowledge into the Obsidian wiki.
|
|
10
|
+
skill: .skills/wiki-update/SKILL.md
|
|
11
|
+
- name: wiki-ingest
|
|
12
|
+
description: Ingest documents into the Obsidian wiki.
|
|
13
|
+
skill: .skills/wiki-ingest/SKILL.md
|
|
14
|
+
- name: wiki-status
|
|
15
|
+
description: Show what's been ingested, what's pending, and the delta.
|
|
16
|
+
skill: .skills/wiki-status/SKILL.md
|
|
17
|
+
- name: wiki-lint
|
|
18
|
+
description: Audit the wiki for orphans, broken links, stale content.
|
|
19
|
+
skill: .skills/wiki-lint/SKILL.md
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Obsidian Wiki — Workflow Registry
|
|
23
|
+
|
|
24
|
+
Each command above maps to a `SKILL.md` in `.skills/`. When a user invokes one
|
|
25
|
+
of these commands, read the mapped skill file and follow its instructions
|
|
26
|
+
exactly. The skills handle vault path resolution, manifest tracking, and
|
|
27
|
+
`[[wikilink]]` connectivity on their own.
|
|
28
|
+
|
|
29
|
+
For the full routing table (all 15+ skills), see `AGENTS.md` at the repo root.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Obsidian Wiki skill-based framework for building and maintaining knowledge bases. Use these rules whenever engaging with the vault, wiki, ingestion, or knowledge management.
|
|
3
|
+
globs: "**/*"
|
|
4
|
+
alwaysApply: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Obsidian Wiki — Agent Context
|
|
8
|
+
|
|
9
|
+
This project is a **skill-based framework** for building and maintaining an Obsidian knowledge base.
|
|
10
|
+
|
|
11
|
+
## Quick Orientation
|
|
12
|
+
|
|
13
|
+
1. Read `.env` for `OBSIDIAN_VAULT_PATH` — this is where the wiki lives.
|
|
14
|
+
2. Read `.manifest.json` at the vault root to see what's already been ingested.
|
|
15
|
+
3. Skills are in `.skills/` (also at `.cursor/skills/`). Each subfolder has a `SKILL.md`.
|
|
16
|
+
|
|
17
|
+
## When to Use Skills
|
|
18
|
+
|
|
19
|
+
| User says something like… | Read this skill |
|
|
20
|
+
|---|---|
|
|
21
|
+
| "set up my wiki" / "initialize" | `.skills/wiki-setup/SKILL.md` |
|
|
22
|
+
| "ingest" / "add this to the wiki" | `.skills/wiki-ingest/SKILL.md` |
|
|
23
|
+
| "/wiki-history-ingest claude" / "/wiki-history-ingest codex" | `.skills/wiki-history-ingest/SKILL.md` |
|
|
24
|
+
| "import my Claude history" | `.skills/claude-history-ingest/SKILL.md` |
|
|
25
|
+
| "import my Codex history" | `.skills/codex-history-ingest/SKILL.md` |
|
|
26
|
+
| "process this export" / "ingest this data" | `.skills/data-ingest/SKILL.md` |
|
|
27
|
+
| "what's the status" / "show the delta" | `.skills/wiki-status/SKILL.md` |
|
|
28
|
+
| "what do I know about X" / any question | `.skills/wiki-query/SKILL.md` |
|
|
29
|
+
| "audit" / "lint" / "find broken links" | `.skills/wiki-lint/SKILL.md` |
|
|
30
|
+
| "rebuild" / "start over" / "archive" | `.skills/wiki-rebuild/SKILL.md` |
|
|
31
|
+
| "link my pages" / "cross-reference" | `.skills/cross-linker/SKILL.md` |
|
|
32
|
+
| "fix my tags" / "normalize tags" | `.skills/tag-taxonomy/SKILL.md` |
|
|
33
|
+
| "create a new skill" | `.skills/skill-creator/SKILL.md` |
|
|
34
|
+
|
|
35
|
+
## Key Rules
|
|
36
|
+
|
|
37
|
+
- **Compile, don't retrieve.** Update existing pages, don't just append.
|
|
38
|
+
- **Always update `.manifest.json`** after ingesting.
|
|
39
|
+
- **Always update `index.md` and `log.md`** after any operation.
|
|
40
|
+
- **Use `[[wikilinks]]`** to connect related pages.
|
|
41
|
+
- **Frontmatter is required** on every wiki page.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# Obsidian Wiki — Environment Configuration
|
|
3
|
+
# Copy this to .env and set your vault path
|
|
4
|
+
# =============================================================================
|
|
5
|
+
|
|
6
|
+
# --- Required ---
|
|
7
|
+
|
|
8
|
+
# Absolute path to your Obsidian vault
|
|
9
|
+
OBSIDIAN_VAULT_PATH=
|
|
10
|
+
|
|
11
|
+
# --- Optional ---
|
|
12
|
+
|
|
13
|
+
# Comma-separated source directories to ingest documents from
|
|
14
|
+
# Leave empty to skip document ingestion
|
|
15
|
+
OBSIDIAN_SOURCES_DIR=
|
|
16
|
+
|
|
17
|
+
# Wiki categories (directories created in the vault)
|
|
18
|
+
OBSIDIAN_CATEGORIES=concepts,entities,skills,references,synthesis,journal
|
|
19
|
+
|
|
20
|
+
# Max pages to create/update per ingest operation
|
|
21
|
+
OBSIDIAN_MAX_PAGES_PER_INGEST=15
|
|
22
|
+
|
|
23
|
+
# Claude conversation history path (auto-discovered from ~/.claude if empty)
|
|
24
|
+
CLAUDE_HISTORY_PATH=
|
|
25
|
+
|
|
26
|
+
# Codex history path (defaults to ~/.codex if empty)
|
|
27
|
+
CODEX_HISTORY_PATH=
|
|
28
|
+
|
|
29
|
+
# Pi agent session history path (defaults to ~/.pi/agent/sessions if empty)
|
|
30
|
+
PI_HISTORY_PATH=
|
|
31
|
+
|
|
32
|
+
# Lint schedule: daily | weekly | manual
|
|
33
|
+
LINT_SCHEDULE=weekly
|
|
34
|
+
|
|
35
|
+
# Internal link format for generated/updated pages
|
|
36
|
+
# wikilink (default) → [[concepts/foo]] or [[concepts/foo|display text]]
|
|
37
|
+
# markdown → [display text](relative/path.md)
|
|
38
|
+
# Only affects future writes — existing vault content is never migrated automatically.
|
|
39
|
+
OBSIDIAN_LINK_FORMAT=wikilink
|
|
40
|
+
|
|
41
|
+
# --- QMD Semantic Search (optional) ---
|
|
42
|
+
#
|
|
43
|
+
# QMD indexes your wiki and sources for fast semantic search.
|
|
44
|
+
# Install: https://github.com/tobi/qmd
|
|
45
|
+
# After installing, point these at your QMD collection names (set when you ran `qmd index`).
|
|
46
|
+
#
|
|
47
|
+
# Without QMD: wiki-ingest and wiki-query fall back to Grep/Glob — fully functional, just slower.
|
|
48
|
+
# With QMD: semantic search replaces grep passes, enabling concept-level matches and cross-collection queries.
|
|
49
|
+
|
|
50
|
+
# Name of the QMD collection indexing your compiled wiki pages (OBSIDIAN_VAULT_PATH)
|
|
51
|
+
QMD_WIKI_COLLECTION=
|
|
52
|
+
|
|
53
|
+
# Name of the QMD collection indexing your raw source documents (OBSIDIAN_SOURCES_DIR or _raw/)
|
|
54
|
+
QMD_PAPERS_COLLECTION=
|
|
55
|
+
|
|
56
|
+
# QMD integration transport: mcp | cli
|
|
57
|
+
# mcp preserves the original behavior and uses an agent-configured QMD MCP server.
|
|
58
|
+
# cli runs the local qmd command directly; useful for agents without QMD MCP support.
|
|
59
|
+
QMD_TRANSPORT=mcp
|
|
60
|
+
|
|
61
|
+
# CLI search quality mode: quality | balanced | fast
|
|
62
|
+
# quality: qmd query with reranking (best relevance, slowest on CPU)
|
|
63
|
+
# balanced: qmd query --no-rerank (good hybrid results, faster)
|
|
64
|
+
# fast: qmd vsearch (semantic only) or qmd search when exact terms matter
|
|
65
|
+
QMD_CLI_SEARCH_MODE=quality
|
|
66
|
+
|
|
67
|
+
# Optional qmd binary override if qmd is not on PATH.
|
|
68
|
+
QMD_CLI=qmd
|
|
69
|
+
|
|
70
|
+
# --- Raw Staging Directory (optional) ---
|
|
71
|
+
#
|
|
72
|
+
# A directory inside OBSIDIAN_VAULT_PATH for unprocessed draft pages.
|
|
73
|
+
# Drop rough notes, clipboard pastes, or quick captures here.
|
|
74
|
+
# wiki-ingest will promote them to proper wiki pages when you run it.
|
|
75
|
+
# Promoted files are deleted from _raw/ after processing.
|
|
76
|
+
OBSIDIAN_RAW_DIR=_raw
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Obsidian Wiki — Copilot Context
|
|
2
|
+
|
|
3
|
+
This project is a **skill-based framework** for building and maintaining an Obsidian knowledge base using AI coding agents. There are no scripts or dependencies — everything is markdown instructions that the agent executes directly.
|
|
4
|
+
|
|
5
|
+
## Project Overview
|
|
6
|
+
|
|
7
|
+
- **Purpose:** Build and maintain an Obsidian wiki using the LLM Wiki pattern (Andrej Karpathy).
|
|
8
|
+
- **Tech Stack:** Markdown only. No code, no dependencies. The AI agent IS the runtime.
|
|
9
|
+
- **Key Config:** `.env` contains `OBSIDIAN_VAULT_PATH` pointing to the vault location.
|
|
10
|
+
- **Skills:** `.skills/` contains skill folders, each with a `SKILL.md` defining a workflow.
|
|
11
|
+
|
|
12
|
+
## Key Concepts
|
|
13
|
+
|
|
14
|
+
- The wiki is a **compiled artifact** — knowledge distilled from raw sources into interconnected pages.
|
|
15
|
+
- Every wiki page has YAML frontmatter: `title`, `category`, `tags`, `sources`, `created`, `updated`.
|
|
16
|
+
- Pages are connected with Obsidian `[[wikilinks]]`.
|
|
17
|
+
- A `.manifest.json` in the vault root tracks all ingested sources for delta-based updates.
|
|
18
|
+
- `index.md` and `log.md` must be updated after every operation.
|
|
19
|
+
|
|
20
|
+
## Skills Reference
|
|
21
|
+
|
|
22
|
+
| Skill | Folder | Purpose |
|
|
23
|
+
|---|---|---|
|
|
24
|
+
| Setup | `.skills/wiki-setup/` | Initialize vault structure |
|
|
25
|
+
| Ingest | `.skills/wiki-ingest/` | Distill documents into wiki pages |
|
|
26
|
+
| History Router | `.skills/wiki-history-ingest/` | Route `/wiki-history-ingest <claude|codex>` to the right history skill |
|
|
27
|
+
| Claude History | `.skills/claude-history-ingest/` | Mine `~/.claude` conversations |
|
|
28
|
+
| Codex History | `.skills/codex-history-ingest/` | Mine `~/.codex` sessions and rollout logs |
|
|
29
|
+
| Data Ingest | `.skills/data-ingest/` | Process any text data |
|
|
30
|
+
| Status | `.skills/wiki-status/` | Audit ingestion state and delta |
|
|
31
|
+
| Query | `.skills/wiki-query/` | Answer questions from wiki |
|
|
32
|
+
| Lint | `.skills/wiki-lint/` | Find broken links, orphans |
|
|
33
|
+
| Rebuild | `.skills/wiki-rebuild/` | Archive and rebuild |
|
|
34
|
+
| Cross-Linker | `.skills/cross-linker/` | Auto-discover and insert missing wikilinks |
|
|
35
|
+
| Tag Taxonomy | `.skills/tag-taxonomy/` | Enforce consistent tag vocabulary |
|
|
36
|
+
| LLM Wiki | `.skills/llm-wiki/` | Core architecture pattern |
|
|
37
|
+
| Skill Creator | `.skills/skill-creator/` | Create new skills |
|
|
38
|
+
|
|
39
|
+
## Coding Conventions
|
|
40
|
+
|
|
41
|
+
- When creating wiki pages, always use YAML frontmatter.
|
|
42
|
+
- Use `[[wikilinks]]` syntax for cross-references — NOT markdown links.
|
|
43
|
+
- Project-specific knowledge goes in `projects/<name>/`. Global knowledge goes in top-level categories.
|
|
44
|
+
- Never modify the `.obsidian/` directory.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
name: publish
|
|
2
|
+
|
|
3
|
+
# Build and publish obsidian-wiki to PyPI when a version tag is pushed.
|
|
4
|
+
#
|
|
5
|
+
# Setup (one-time): on PyPI, add a Trusted Publisher for this repo with
|
|
6
|
+
# workflow `publish.yml` and environment `pypi`. No API token needed — the
|
|
7
|
+
# `id-token: write` permission below mints a short-lived OIDC credential.
|
|
8
|
+
#
|
|
9
|
+
# Release: bump `version` in pyproject.toml, commit, then
|
|
10
|
+
# git tag v0.1.0 && git push origin v0.1.0
|
|
11
|
+
|
|
12
|
+
on:
|
|
13
|
+
push:
|
|
14
|
+
tags:
|
|
15
|
+
- "v*"
|
|
16
|
+
# Allow a manual build (artifacts only, no publish) for verification.
|
|
17
|
+
workflow_dispatch:
|
|
18
|
+
|
|
19
|
+
permissions:
|
|
20
|
+
contents: read
|
|
21
|
+
|
|
22
|
+
jobs:
|
|
23
|
+
build:
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
steps:
|
|
26
|
+
- uses: actions/checkout@v4
|
|
27
|
+
- uses: actions/setup-python@v5
|
|
28
|
+
with:
|
|
29
|
+
python-version: "3.x"
|
|
30
|
+
- name: Build sdist and wheel
|
|
31
|
+
run: |
|
|
32
|
+
python -m pip install --upgrade build
|
|
33
|
+
python -m build
|
|
34
|
+
- name: Verify wheel bundles the skills
|
|
35
|
+
run: |
|
|
36
|
+
python -m pip install --upgrade twine
|
|
37
|
+
twine check dist/*
|
|
38
|
+
wheel=$(ls dist/*.whl)
|
|
39
|
+
echo "Inspecting $wheel"
|
|
40
|
+
if ! python -m zipfile -l "$wheel" | grep -q "obsidian_wiki/_data/skills/wiki-setup/SKILL.md"; then
|
|
41
|
+
echo "::error::wheel is missing bundled skills under obsidian_wiki/_data/skills/"
|
|
42
|
+
exit 1
|
|
43
|
+
fi
|
|
44
|
+
- uses: actions/upload-artifact@v4
|
|
45
|
+
with:
|
|
46
|
+
name: dist
|
|
47
|
+
path: dist/
|
|
48
|
+
|
|
49
|
+
publish:
|
|
50
|
+
needs: build
|
|
51
|
+
runs-on: ubuntu-latest
|
|
52
|
+
# Only publish on a real tag push, not workflow_dispatch.
|
|
53
|
+
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
|
|
54
|
+
environment: pypi
|
|
55
|
+
permissions:
|
|
56
|
+
id-token: write # required for PyPI Trusted Publishing (OIDC)
|
|
57
|
+
steps:
|
|
58
|
+
- uses: actions/download-artifact@v4
|
|
59
|
+
with:
|
|
60
|
+
name: dist
|
|
61
|
+
path: dist/
|
|
62
|
+
- name: Publish to PyPI
|
|
63
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
64
|
+
with:
|
|
65
|
+
skip-existing: true
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: setup
|
|
2
|
+
|
|
3
|
+
# Guards setup.sh against the regression where it rewrites committed
|
|
4
|
+
# relative symlinks with absolute paths (or any other modification to
|
|
5
|
+
# tracked files). See #52 for the original bug.
|
|
6
|
+
|
|
7
|
+
on:
|
|
8
|
+
push:
|
|
9
|
+
branches: [main]
|
|
10
|
+
pull_request:
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
install-leaves-tree-clean:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v4
|
|
17
|
+
- name: Run setup.sh
|
|
18
|
+
# stdin closed so the vault-path prompt returns empty rather than hang
|
|
19
|
+
run: bash setup.sh < /dev/null
|
|
20
|
+
- name: Working tree must be unchanged
|
|
21
|
+
run: |
|
|
22
|
+
if ! git diff --exit-code; then
|
|
23
|
+
echo "::error::setup.sh modified tracked files. Likely cause: an" \
|
|
24
|
+
"in-repo symlink mirror is being written with an absolute" \
|
|
25
|
+
"target instead of a relative one. See install_skills() in setup.sh."
|
|
26
|
+
exit 1
|
|
27
|
+
fi
|
|
28
|
+
- name: Re-run is idempotent
|
|
29
|
+
run: bash setup.sh < /dev/null && git diff --exit-code
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
.env
|
|
2
|
+
.DS_Store
|
|
3
|
+
*.pyc
|
|
4
|
+
__pycache__/
|
|
5
|
+
|
|
6
|
+
# Python build artifacts (pyproject.toml / `python -m build`)
|
|
7
|
+
/dist/
|
|
8
|
+
/build/
|
|
9
|
+
*.egg-info/
|
|
10
|
+
|
|
11
|
+
# Agent skill symlinks (created by setup.sh) — these are just pointers to .skills/
|
|
12
|
+
# We track them so cloners get the symlinks too, but if your git doesn't
|
|
13
|
+
# preserve symlinks, run `bash setup.sh` after cloning.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
AGENTS.md
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
inclusion: always
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Obsidian Wiki — Agent Context
|
|
6
|
+
|
|
7
|
+
This project is a **skill-based framework** for building and maintaining an Obsidian knowledge base.
|
|
8
|
+
|
|
9
|
+
## Quick Orientation
|
|
10
|
+
|
|
11
|
+
1. Read `~/.obsidian-wiki/config` (or `.env` in this repo) for `OBSIDIAN_VAULT_PATH` — this is where the wiki lives.
|
|
12
|
+
2. Read `.manifest.json` at the vault root to see what's already been ingested.
|
|
13
|
+
3. Skills are in `.skills/` (also at `.kiro/skills/`). Each subfolder has a `SKILL.md`.
|
|
14
|
+
|
|
15
|
+
## When to Use Skills
|
|
16
|
+
|
|
17
|
+
| User says something like… | Read this skill |
|
|
18
|
+
|---|---|
|
|
19
|
+
| "set up my wiki" / "initialize" | `wiki-setup` |
|
|
20
|
+
| "ingest" / "add this to the wiki" / "process these docs" | `wiki-ingest` |
|
|
21
|
+
| "import my Claude history" / "mine my conversations" | `claude-history-ingest` |
|
|
22
|
+
| "import my Codex history" | `codex-history-ingest` |
|
|
23
|
+
| "import my Hermes history" | `hermes-history-ingest` |
|
|
24
|
+
| "import my OpenClaw history" | `openclaw-history-ingest` |
|
|
25
|
+
| "import my Pi history" | `pi-history-ingest` |
|
|
26
|
+
| "process this export" / "ingest this data" | `data-ingest` |
|
|
27
|
+
| "what's the status" / "show the delta" | `wiki-status` |
|
|
28
|
+
| "what do I know about X" | `wiki-query` |
|
|
29
|
+
| "audit" / "lint" / "find broken links" | `wiki-lint` |
|
|
30
|
+
| "rebuild" / "archive" / "restore" | `wiki-rebuild` |
|
|
31
|
+
| "link my pages" / "cross-reference" | `cross-linker` |
|
|
32
|
+
| "fix my tags" | `tag-taxonomy` |
|
|
33
|
+
| "update wiki" / "sync to wiki" | `wiki-update` |
|
|
34
|
+
| "export wiki" / "export graph" | `wiki-export` |
|
|
35
|
+
|
|
36
|
+
## Core Rules
|
|
37
|
+
|
|
38
|
+
- **Compile, don't retrieve** — update existing pages, don't append or duplicate.
|
|
39
|
+
- **Track everything** — update `.manifest.json`, `index.md`, and `log.md` after every operation.
|
|
40
|
+
- **Connect with `[[wikilinks]]`** — every page should link to related pages.
|
|
41
|
+
- **Frontmatter required** — every page needs `title`, `category`, `tags`, `sources`, `created`, `updated`.
|
|
42
|
+
|
|
43
|
+
For full context, read `AGENTS.md` at the repo root.
|