🎛️ LifeOS 驾驶舱

🌅 今天

三件事 + 打卡

今日三件事

  • ① → OBJ__
  • ② → OBJ__
  • ③

今日拒绝:不做 ______


习惯打卡(录入 → Habit-Log)

const dir = "复盘/习惯/Habits";
const f = app.vault.getAbstractFileByPath("复盘/习惯/Habit-Log.md");
const raw = f ? await app.vault.cachedRead(f) : "";
const pad = n => String(n).padStart(2, "0");
const d = new Date();
const today = `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}`;
const lines = raw.split(/\r?\n/).filter(l => new RegExp(`^\\s*-\\s*${today}\\s`).test(l));
const line = lines.length ? lines[lines.length - 1] : "";
const rec = {};
if (line) {
  const re = /([^\s::]+)\s*[::]\s*(✅|🟡|❌)/g;
  let m;
  while ((m = re.exec(line)) !== null) rec[m[1]] = m[2];
}
const habits = dv.pages(`"${dir}"`).where(p => p.type === "habit").array()
  .map(p => ({ n: p.file.name, i: p.icon ?? "•", o: Number(p.order ?? 99) }))
  .sort((a, b) => a.o - b.o);
const done = habits.filter(h => rec[h.n] === "✅").length;
dv.el("div", "").innerHTML =
  `<div style="margin-bottom:6px"><b>${done} / ${habits.length}</b> 今日已打卡</div>` +
  habits.map(h => `<span class="wb-pill">${h.i} ${h.n} ${rec[h.n] ?? "·"}</span>`).join("");

🧠 知识库中台

沉淀与检索

新东西先丢 Inbox/,每周清一次进来。按问题分,不按来源分。

TABLE WITHOUT ID file.link AS "最近沉淀", file.folder AS "位置"
FROM "知识库"
SORT file.mtime DESC
LIMIT 6

🗺️ 知识地图

按「问题」找入口

🪞 我是谁 → 自我 · 🧑‍⚖️ 多视角 → 顾问团 · 📘 怎么做 → Playbook 🧪 技术 → 技术 · 📖 方法 → 学习体验设计 · 🎯 职业 → 职业路线

📦 项目 · 前台

正在推进

OBJ名称进度
OBJ1日常支持
OBJ2项目支持
OBJ3项目交付
OBJ4个人发展
OBJ5AI 相关

→ 目标详情 · China Payroll · 数据

🎯 Skill 中台

内化与复用

别人的好经验 → 写成 SOP → 用够 3 次 → 升级成「自己的」。

TABLE WITHOUT ID file.link AS "Skill", file.folder AS "阶段"
FROM "Skill库"
WHERE !startswith(file.name, "_") AND file.name != "Skill库"
SORT file.mtime DESC
LIMIT 5

→ 打开 Skill 库

📊 数据中台

最近日记

TABLE WITHOUT ID file.link AS "日记", week AS "周", energy AS "能量", mood AS "心情"
FROM "复盘/日记/2026"
WHERE type = "daily"
SORT date DESC
LIMIT 6

→ 全部数据 · 周复盘在 复盘/周复盘/