# Daily Update

Run or configure the daily wiki maintenance cycle: check source freshness, refresh the...

- Repository: https://github.com/Ar9av/obsidian-wiki (3650 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add Ar9av/obsidian-wiki --skill daily-update -g -a claude-code -y`
Codex: `npx skills add Ar9av/obsidian-wiki --skill daily-update -g -a codex -y`
Cursor: `npx skills add Ar9av/obsidian-wiki --skill daily-update -g -a cursor -y`
Gemini CLI: `npx skills add Ar9av/obsidian-wiki --skill daily-update -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add Ar9av/obsidian-wiki`

## Description

Run or configure the daily wiki maintenance cycle: check source freshness, refresh the index and hot.md, and manage its scheduled 9 AM launchd/systemd/cron reminder. Use for daily or morning wiki refresh or scheduler setup and verification.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Daily Update, Wiki Maintenance Cycle

You run a lightweight maintenance pass over the wiki: check source freshness, refresh the index, update hot.md, and write the state file that the terminal notification reads.

## Before You Start

1. **Resolve config**, follow the Config Resolution Protocol in `llm-wiki/SKILL.md` (inline `@name` override → walk up CWD for `.env` → global config → prompt setup). This gives `OBSIDIAN_VAULT_PATH` and `OBSIDIAN_WIKI_REPO`.
2. **Derive vault-scoped state dir**, all runtime state is scoped to the resolved vault, not global:
   ```bash
   VAULT_ID=$(echo "$OBSIDIAN_VAULT_PATH" | md5sum 2>/dev/null | cut -c1-8 || md5 -q - <<< "$OBSIDIAN_VAULT_PATH" | cut -c1-8)
   STATE_DIR="$(obsidian_wiki_config_dir)/state/$VAULT_ID"
   mkdir -p "$STATE_DIR"
   ```
3. Read `$OBSIDIAN_VAULT_PATH/.manifest.json`.

## Modes

### Run Mode (default, triggered by cron or `/daily-update`)

Execute the maintenance cycle:

**Step 1: Source freshness check**

Compare each source in `.manifest.json` against its file's modification time. Classify as:
- **Fresh**, `mtime ≤ ingested_at`
- **Stale**, `mtime > ingested_at` (new content exists, not yet ingested)
- **Missing**, source file no longer exists

**Step 2: Index refresh**

```bash
obsidian-wiki memory index --vault "$OBSIDIAN_VAULT_PATH"
```

This reconciles `index.md` against the pages on disk under the memory lock, missing entries added, entries for deleted pages removed, the owner's own sections left untouched. Note `added`/`removed` from the output for the log line in Step 6. Do not enumerate pages with `find` and edit the index by hand.

**Step 3: hot.md update**

```bash
obsidian-wiki memory hot --vault "$OBSIDIAN_VAULT_PATH"
```

The rest: https://github.com/Ar9av/obsidian-wiki/blob/HEAD/.skills/daily-update/SKILL.md
