Commit Graph

20 Commits

Author SHA1 Message Date
Arnav 77d74e0261 feat(config): XDG-style config location, with legacy fallback (#172) (#173)
* feat(config): resolve global config from an XDG-style location (#172)

The global config lived at ~/.obsidian-wiki, which isn't XDG-compliant.
It now resolves to $XDG_CONFIG_HOME/obsidian-wiki (default
~/.config/obsidian-wiki).

Existing installs are unaffected: if ~/.obsidian-wiki is present and the
XDG path is not, the legacy directory is used as-is. No migration is
required, and nothing moves on upgrade. Once the XDG path exists it wins,
so `mv ~/.obsidian-wiki ~/.config/obsidian-wiki` is all a migration takes.

Resolution is implemented identically in Python (cli.py), bash (setup.sh,
scripts/daily-update.sh, scripts/wiki-notify.sh), and the Config
Resolution Protocol that every skill defers to, so vault-scoped state and
named `config.<name>` profiles stay in one place.

* fix(config): stop setup from wiping user-added config keys

`write_config` rewrote the global config with only the three setup-managed
keys, so every `obsidian-wiki setup` — including the one a pip upgrade
prompts for — silently destroyed anything else in the file:
OBSIDIAN_LINK_FORMAT, QMD_WIKI_COLLECTION, WIKI_SKIP_PROJECTS, sync
settings, and comments.

Setup now owns only OBSIDIAN_VAULT_PATH, OBSIDIAN_WIKI_REPO and
OBSIDIAN_WIKI_VERSION, updating those in place and carrying every other
line over untouched. Duplicate definitions of a managed key collapse to
one.

Predates the XDG change (same behavior on main) but is fixed here because
this branch already touches config writing, and the XDG work makes
re-running setup more likely.

Also pins PYTHONPATH in both new test files so they exercise this
checkout rather than whatever obsidian_wiki happens to be installed.
2026-08-16 20:40:09 -07:00
Mike Tsai 3288eb648b feat: add vault-backed agent context (#149) 2026-07-26 23:15:52 -07:00
Haoqian Li 2f91a81f1f fix: remove dangling skill mirror symlinks 2026-07-07 20:37:51 +08:00
Arnav d6dee95ede Add inline vault targeting docs
Document @name named-vault routing across shared skills, bootstrap docs, and README; add regression tests for config-resolution consistency.
2026-06-29 16:24:47 -07:00
Arnav 4b1cd29dc8 refactor(skills): merge data-ingest into wiki-ingest (#84)
data-ingest was effectively wiki-ingest plus a format-detection
preamble — its own process step said "Follow the wiki-ingest skill's
process for creating/updating pages". The split forced users and the
skill router to disambiguate two overlapping ingest skills (a .md
ChatGPT export fit either one).

Fold it in to keep the skill surface small:
- wiki-ingest now handles structured docs AND raw/unstructured text
  (chat exports, Slack/Discord JSON, CSV/JSON, transcripts, logs).
- Added an "Unstructured & conversational sources" section to Step 1
  with format detection, chat-export shapes, and "distill substance,
  not dialogue" guidance carried over from data-ingest.
- Expanded the description to absorb data-ingest's triggers.
- Removed .skills/data-ingest/ and repointed every reference
  (CLAUDE.md/AGENTS.md, README, SETUP, llm-wiki, wiki-status,
  wiki-rebuild, wiki-quick-chat-capture, and the mirror rule files
  for cursor/windsurf/agent/kiro/copilot).
2026-06-11 11:45:36 +05:30
Louis van Schalwkyk 6f20faaa0f feat(pi): add first-class Pi coding agent support (#63)
Thanks for the well-structured PR — mirrors the existing `claude-history-ingest` / `codex-history-ingest` pattern cleanly and the Pi session-format details (tree JSONL with id/parentId, message roles, compaction/branch_summary) line up with pi.dev.

Reviewed:
- New `pi-history-ingest` skill, routing across `wiki-history-ingest`, `wiki-agent` (`/wiki-pi`), and `memory-bridge`
- `setup.sh`, `.env.example`, `AGENTS.md`, `README.md`, `SETUP.md`, and all four IDE rule files updated consistently
- 38 committed symlinks under `.pi/skills/` + 5 cross-agent symlinks

One small follow-up: the SKILL.md cites `references/pi-data-format.md` but the file isn't shipped (the claude/codex skills both ship that companion reference). I'll add it in a follow-up so the family stays consistent.
2026-05-20 13:05:14 +05:30
Ar9av 3b4e6c00b1 feat: add wiki-digest skill — periodic knowledge newsletter generator
New skill that produces a human-readable digest of what was learned,
updated, and connected in the wiki over a configurable period (day /
week / month). Triggered by "/wiki-digest", "what did I learn this
week", "weekly summary", etc.

What it does:
- Collects pages active in the period by created/updated frontmatter
- Identifies top themes from tags, flagging new vocabulary
- Surfaces notable cross-category wikilinks formed this period, ranked
  by interestingness (hub proximity, inferred claims, cross-domain score)
- Reports open threads: drafts, ^[ambiguous] claims, _raw/ files, taxonomy gaps
- Recommends pre-period pages worth revisiting given new connections
- Generates a structured digest with Headlines, New Knowledge, Themes,
  Connections, Open Threads, and Re-reads sections
- Optionally saves to journal/digest-YYYY-MM-DD.md and logs to log.md
- Respects visibility/ tags (omits pii pages from output unless asked)

Distinct from wiki-status (which reports *source* ingestion delta) —
wiki-digest summarizes *knowledge*, not pending sources.

Changes:
- .skills/wiki-digest/SKILL.md — full skill instructions
- Symlinks in all 5 mirror dirs (.agents, .claude, .cursor, .windsurf, .kiro)
- AGENTS.md routing table updated with trigger phrases
2026-05-10 18:21:22 +00:00
Ar9av 476ac88075 fix: complete relative symlink migration across all mirrors and skills
Supersedes #39 with a comprehensive fix:

- Convert ALL 31 skills to relative symlinks (../../.skills/<name>) in every
  mirror directory (.agents, .claude, .cursor, .windsurf, .kiro)
- Replace directory copies (codex-history-ingest, daily-update, graph-colorize,
  hermes-history-ingest, impl-validator, memory-bridge, obsidian-wiki-ingest,
  openclaw-history-ingest, wiki-agent, wiki-history-ingest, copilot-history-ingest)
  with symlinks — these were duplicated files that drifted from .skills/
- Add missing wiki-switch symlink to all five mirror directories
- Bring .kiro/skills/ to full parity with .skills/ (was missing 22 of 31 skills)
- Fix remaining /home/ubuntu/... and /Users/ar9av/... absolute symlink paths

All 155 symlinks (31 skills × 5 mirrors) verified to resolve correctly.
2026-05-09 14:22:39 +00:00
Ar9av 23c4a92b59 fix: sync missing skills to all mirrors and document new skills
- Copy 6 missing skills to .claude, .cursor, .agents, .windsurf mirrors:
  codex-history-ingest, copilot-history-ingest, graph-colorize,
  hermes-history-ingest, openclaw-history-ingest, wiki-history-ingest
- Add .skills/obsidian-wiki-ingest and its mirror copies (was untracked)
- Update README skill table to include all 30 skills (was missing 8)
- Update AGENTS.md routing table: add copilot-history-ingest and
  obsidian-wiki-ingest trigger phrases
2026-05-08 13:00:23 +00:00
ar9av ae2cff3e4a feat: add wiki-agent skill for targeted cross-agent history search
Introduces /wiki-claude, /wiki-codex, /wiki-hermes, /wiki-openclaw,
/wiki-copilot commands. Unlike wiki-history-ingest (bulk), this does
query-driven targeted search: find sessions about a specific topic in
one agent's raw history, extract the relevant blob using per-agent
extraction strategies, ingest into wiki, and return a synthesized answer
immediately usable in the current session.

Primary use case: you're on agent A, want to pull in how you solved X
in agent B's history, without ingesting all of B's sessions.

Registered across all 5 tool dirs (.claude, .kiro, .agents, .cursor, .windsurf).
2026-05-06 10:15:35 +05:30
ar9av 22f48feee4 feat: add memory-bridge, impl-validator, and daily-update skills
- memory-bridge: browse wiki by source tool; diff mode surfaces knowledge
  blind spots between AI tools (Claude vs Codex vs Hermes etc.)
- impl-validator: quality-checking subagent spawned by other skills to
  verify output correctness before presenting to the user
- daily-update: daily maintenance cycle (freshness check, index reconcile,
  hot.md refresh) with launchd cron and zshrc terminal notification
- scripts/: daily-update.sh, wiki-notify.sh, launchd plist

All three skills registered across .claude, .kiro, .agents, .cursor, .windsurf.
source_type mappings verified against actual manifest specs in each history-ingest skill.
2026-05-05 16:22:03 +05:30
ar9av e534bacf7f feat: hot.md coverage for all write skills + wiki-synthesize skill
- Add hot.md update step to 6 previously missing write skills:
  cross-linker, tag-taxonomy, claude/codex/hermes/openclaw-history-ingest
- New wiki-synthesize skill: scans vault for concept pairs that
  co-occur across pages but lack a synthesis/ page, scores candidates,
  drafts cross-cutting synthesis pages with A × B title format
- wiki-lint check #11: synthesis gap report with co-occurrence counts
- CLAUDE.md routing + README skills table updated
2026-04-24 22:00:46 +05:30
ar9av c64cfd8374 feat: add wiki-capture, wiki-research, wiki-dashboard skills + hot.md session cache
- wiki-capture: save any conversation as a permanent wiki note; classifies into 5
  types (synthesis/concept/source/decision/session) and rewrites content as
  declarative knowledge rather than a chat transcript
- wiki-research: autonomous 3-round web research loop that decomposes topics,
  fills gaps, resolves contradictions, and self-files into sources/concepts/
  entities/synthesis
- wiki-dashboard: creates Obsidian Bases .base files (native, no plugin needed)
  for dynamic queryable views — tables, cards, lists filtered from vault frontmatter
- hot.md session cache: ~500-word semantic snapshot of recent activity; all write
  skills (wiki-ingest, wiki-update, ingest-url, data-ingest) now update it at the
  end of each run; wiki-query reads it first for cheap context
- ingest-url: preflight check for defuddle CLI — uses it for cleaner URL extraction
  when available (~40-60% token reduction on articles), falls back to WebFetch
- Routing table in AGENTS.md updated; symlinks created across all 5 platforms
2026-04-24 16:15:26 +05:30
ar9av c52f1a223f feat: add ingest-url skill with misc staging and project affinity promotion
- New skill: ingest-url fetches any URL via WebFetch, distills content into
  misc/<slug>.md, computes initial project affinity from wikilinks, and
  surfaces promotion candidates when a project score reaches 3+
- cross-linker: new Step 5 rescores affinity for all misc/ pages after the
  main linking pass and reports promotion candidates in the Cross-Link Report
- wiki-lint: new check #10 flags misc/ pages with affinity >= 3 in the
  health report; log line gets promotion_candidates= field
- Skill routing: AGENTS.md updated with /ingest-url trigger phrases
- Platform parity: ingest-url symlink deployed to .agents, .claude, .cursor,
  .windsurf, .kiro
2026-04-22 11:31:01 +05:30
medenor bcff8f24bb feat(history): add unified history ingest router for Claude and Codex 2026-04-12 18:54:43 +02:00
ar9av dc5a57d2bd feat: enhance wiki skills with graph analysis and add wiki-export skill
- wiki-ingest: add SHA-256 content-hash change detection; skip re-ingest
  when file content is unchanged even if mtime differs; write content_hash
  to manifest entries
- wiki-status: add bridge pages, tag cohesion scoring, composite surprise
  scoring, graph delta diffing (via GRAPH_SNAPSHOT comment), and a
  "Questions Worth Asking" section to insights mode; add Touched status
  for mtime-bumped but hash-identical files
- wiki-lint: tighten provenance thresholds (AMBIGUOUS>15%, INFERRED>40%
  unsourced, hub pages with INFERRED>20%); add fragmented tag cluster
  check using cohesion = actual_links / (n*(n-1)/2) with 0.15 threshold
- cross-linker: add cross-category and peripheral-to-hub scoring bonuses;
  label candidates EXTRACTED/INFERRED/AMBIGUOUS; skip AMBIGUOUS by default
- wiki-export: new skill — exports vault wikilink graph to graph.json,
  graph.graphml, cypher.txt (Neo4j), and graph.html (vis.js interactive)
2026-04-09 15:15:36 +05:30
ar9av de78ca54d0 chore: ignore .obsidian/workspace.json to prevent local state tracking 2026-04-08 12:31:27 +05:30
ar9av 700dae4e5b refactor: rename obsidian-* skill references to wiki-* and remove redundant agent-specific skill configuration files 2026-04-06 18:02:43 +05:30
ar9av 1d5053276f feat: add cross-linker and tag-taxonomy skills, update documentation, and refine claude-history-ingest workflow. 2026-04-06 17:05:31 +05:30
ar9av b9cbf01e6d feat: add agent-specific configuration and documentation for the Obsidian wiki skill-based framework 2026-04-06 14:29:57 +05:30