vault-resync
Re-pull all of the user's external capture sources into their Obsidian vault inbox and refresh the Command Center dashboards. Use this whenever the user asks to "re-sync", "resync", "pull new stuff", "update my inbox/vault", "refresh my tasks", "what's new in Feishu/WeChat/my tabs", "catch me up", or "pull from the providers again" — even if they only name one source, default to refreshing all of them unless they scope it down. The sources are: Feishu (lark-cli), WeChat self-chat (chatlog), Zen browser tabs (session decode), and active Claude Code sessions (the AI build queue). This skill encodes hard-won auth/format gotchas that are easy to get wrong — always consult it before touching these sources rather than improvising.
- License 许可
- MIT
- 所属仓库
- caezium/skills
- 最近更新
- 2026-08-24
- Stars
- ★ 3
- Forks
- 0
01 前言 Front Matter
- name
- vault-resync
- description
- Re-pull all of the user's external capture sources into their Obsidian vault inbox and refresh the Command Center dashboards. Use this whenever the user asks to "re-sync", "resync", "pull new stuff", "update my inbox/vault", "refresh my tasks", "what's new in Feishu/WeChat/my tabs", "catch me up", or "pull from the providers again" — even if they only name one source, default to refreshing all of them unless they scope it down. The sources are: Feishu (lark-cli), WeChat self-chat (chatlog), Zen browser tabs (session decode), and active Claude Code sessions (the AI build queue). This skill encodes hard-won auth/format gotchas that are easy to get wrong — always consult it before touching these sources rather than improvising.
02 资源文件 2
- 参考文档references/sources.md8.0 KB
- 脚本scripts/decode_zen_tabs.py5.5 KB
03 SKILL.md 正文
Vault re-sync
This pulls the user's scattered capture sources into one place — the Obsidian vault inbox — and refreshes the dashboards they read. The whole point of the vault system is that they shouldn't have to hold "what's new across Feishu / WeChat / ~1500 browser tabs / my Claude projects" in their head. This skill is the recurring sweep that keeps that promise.
User-specific values (vault path, Feishu app details, the WeChat self-chat hint) live in
local.private.md next to this SKILL.md — it's gitignored and machine-local, kept out of the public
repo on purpose. Read it at the start of a run. Where a value can be discovered at runtime instead
of stored, prefer that (noted per-source below). $VAULT below = the vault root from the sidecar.
The four sources → where they land
| Source | Tool | Output note |
|---|---|---|
| Feishu tasks + all-chat messages | lark-cli (read-only scopes) |
01_inbox/feishu/feishu-inbox-<date>.md + feishu-messages-<date>.md |
| WeChat self-saves | chatlog HTTP API |
01_inbox/wechat/wechat-inbox-<date>.md |
| Zen browser tabs | scripts/decode_zen_tabs.py |
01_inbox/tabs/zen-tabs-<date>.md |
| Active Claude sessions | list_sessions MCP |
01_inbox/projects/claude-projects.md (the AI Build Queue) |
<date> is today as YYYY-MM-DD. Always read the previous dated note first so you can frame the
pull as "what's new since last sync" rather than re-dumping everything.
Orchestration pattern (do it in this order)
- Snapshot first.
cd "$VAULT" && git add -A && git commit -m "snapshot before re-sync". This gives a restore point before you write anything. - Pre-flight: disk space. See "Disk pre-flight" — a full disk silently breaks everything, including your own shell. Check before you start.
- Fan out the slow pulls. Feishu and WeChat each involve many API calls and per-conversation
summarization — launch them as parallel background subagents (one per source) using the prompts
in
references/sources.md, so they run while you do the fast local work. - Do the fast local pulls inline while the agents run: decode Zen tabs (one script call) and
rebuild the AI Build Queue from
list_sessions. - Fold in the agent results as they land. Read each agent's summary; don't re-read the full note unless something looks off.
- Update the Command Center. Repoint the capture-source links in
homepage.mdto the new dated notes, and surface any genuinely actionable finding (a deadline, an escalation) ontoTasks Board.mdwith an area tag + due date — don't let a real action item rot inside a digest. - Commit + push.
git add -A && git commit -m "Re-sync all capture sources (<date>): ..." && git push. If push fails with an HTTP/2 framing error, retry withgit -c http.version=HTTP/1.1 push.
Scale to what was asked. "Re-sync everything" → all four. "What's new in Feishu" → just that one, still following its source rules.
Disk pre-flight
A 100%-full disk on macOS makes the shell itself fail (ENOSPC: no space left on device) — commands
can't even write their output, so you'll be blocked before you start. If a trivial Bash call errors
with ENOSPC, the disk is the problem, not your command.
The user has Burrow for exactly this — its MCP tools run out-of-process so they work even when the
shell can't. Use burrow_doctor (read-only health) and burrow_analyze (size-ranked tree) to see the
situation, and burrow_clean to clear caches. Caches rarely free enough alone; the big wins are usually
VM images, app DB backups (e.g. ~/Library/Application Support/Dayflow/backups + timestamped
Dayflow.backup-* copies), and stale build dirs. Only auto-delete caches. For real user data — VMs,
project folders, app data — show the user the sizes and let them choose. Never nuke a directory you
didn't create without their say-so.
Per-source details
Each source has non-obvious auth/format traps. Read references/sources.md before pulling — it has the
exact commands, the subagent prompts, and the gotchas. The traps that bite hardest:
- Feishu — read-only scopes ONLY. Re-auth (only if needed) with
lark-cli auth login --scope task:task:read,im:message:readonly,im:chat:read,contact:user.base:readonly. Never use--domain— that requests write scopes, and authorizing write scopes triggers a slow enterprise admin review that has cost hours. Aneeds_refreshtoken auto-refreshes on the first valid API call; only if that fails do you re-auth (you can drive the logged-in browser to click Authorize). App/enterprise IDs and the dev-console URL are inlocal.private.md. - WeChat — discover the self-chat at runtime. It's the chat flagged
isSelfin the chatlog session list, NOTfilehelper/ 文件传输助手 (which is empty). Thechatlogserver must be running (chatlog server, binary at~/go/bin/chatlog) onhttp://127.0.0.1:5030. Quote URLs in curl — a bare?gets eaten by zsh globbing and looks like a dead server when it isn't. - Zen tabs — use the bundled script.
python3 scripts/decode_zen_tabs.py --out "$VAULT/01_inbox/tabs/zen-tabs-<date>.md" --date <date>. It handles the mozlz4 decode with no dependencies. Don'tpip install lz4(PEP 668 blocks it). - Claude sessions — dedupe by folder, flag status.
list_sessionsreturns ~85 with heavy duplication (recurring "weekly sync" etc.) and many merged-PR sessions that are actually done. Group bycwd, collapse dupes, flag ✅-done (merged PRs) as archive candidates, surface what's new since last sync.
Quality bars (what makes this "the same high quality")
- Dedupe and categorize, don't dump. 1,500 raw URLs or 250 raw messages is just moving the mess. Bucket, summarize, count. The note should be skimmable in 30 seconds.
- Surface deadlines as tasks. A real commitment with a clock (a demo date, an escalating reminder) belongs on the board with a 📅 due date, not buried in prose.
- Frame as a delta. "9 new since 06-23" beats re-listing 259 old items. Read the prior note first.
- Keep Chinese text as-is but make it scannable.
- Don't loop on Feishu auth. If read-only re-auth still fails, stop and tell the user — repeated login attempts re-trigger the admin-review trap. One clean attempt, then escalate.
After a re-sync, give a tight recap: what each source surfaced, the count of new items, and the one or two things that actually need attention this week.
04 同仓库更多 Skills
writing-for-agents
Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.
wrangler
Cloudflare Workers CLI for deploying, developing, and managing Workers, KV, R2, D1, Vectorize, Hyperdrive, Workers AI, Containers, Queues, Workflows, Pipelines, and Secrets Store. Load before running wrangler commands to ensure correct syntax and best practices. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.
workers-best-practices
Reviews and authors Cloudflare Workers code against production best practices. Load when writing new Workers, reviewing Worker code, configuring wrangler.jsonc, or checking for common Workers anti-patterns (streaming, floating promises, global state, secrets, bindings, observability). Biases towards retrieval from Cloudflare docs over pre-trained knowledge.
wizard
Generate an interactive bash wizard that walks a human through steps only they can perform. Use when provisioning infrastructure, setting up credentials or CI secrets, walking an unfamiliar third-party dashboard, or running a one-off migration or cutover. Don't invoke this for steps the agent can perform itself.
why
Use for 'why does X work this way', 'why we picked Y', design rationale, regressions, postmortems, or data-backed thresholds. Discovers available evidence sources, searches each relevant category, and returns a cited read on decisions and tradeoffs. Use how for runtime behavior.
week-prep
Generate a briefing with calendar, tasks, and attention flags. Use for "week prep", "briefing", or "what's on this week".