Additional Blocked Names
【免费下载链接】LifeOS⛰️ The Life Operating System — an intent engineering platform that moves you from your current state to your ideal state, in life and work.项目地址: https://gitcode.com/GitHub_Trending/pe/LifeOS
- Name1
- Name2
Additional Public Projects
- ProjectName
Additional Excluded Paths
- /path/to/exclude
## 四个核心 Workflow 实战 ### UpdateDaemon:聚合 → 审阅 → 批准 → 发布 完整更新周期([UpdateDaemon.md](https://link.gitcode.com/i/c6a5c3422472afbd23e5a9a5c38d7eba)): **Step 1 — 预览模式运行聚合器:** ```bash bun ${LIFEOS_SKILL_DIR}/Tools/DaemonAggregator.ts --preview --verbose读取 TELOS、Knowledge 归档(仅标题+论点)、PROJECTS.md(仅公开项目)、最近工作会话(抽象为主题)、现有 daemon.md(保留手工策展章节)。SecurityFilter 自动运行并报告脱敏情况。
Step 2 — 对照当前版本展示 diff:
bun ${LIFEOS_SKILL_DIR}/Tools/DaemonAggregator.ts --diff ${LIFEOS_USER_DIR}/Daemon/daemon.md向用户展示新增、删除、更新章节与安全脱敏。审阅控制在"一屏以内",按章节汇总而非倾倒原文。
Step 3 — 获取批准:展示逐章节变更摘要、脱敏数量、警告(过期章节、缺失源)。没有明确批准绝不继续。
Step 4 — 写入 daemon.md:
bun ${LIFEOS_SKILL_DIR}/Tools/DaemonAggregator.ts --output ${LIFEOS_USER_DIR}/Daemon/daemon.mdStep 5 — 同步到公开仓库:
cp ${LIFEOS_USER_DIR}/Daemon/daemon.md ~/Projects/daemon/public/daemon.mdStep 6 — 部署并同步 MCP KV:
cd ~/Projects/daemon && git add -A && git commit -m "Update daemon data $(date +%Y-%m-%d)" && git push cd ${LIFEOS_SKILL_DIR}/Mcp && bun install && bun update-daemonStep 7 — 验证双端点:
curl -s -o /dev/null -w "%{http_code}" https://daemon.example.com curl -s https://mcp.daemon.example.com -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"get_about","arguments":{}},"id":1}' | head -c 200典型的响应示例(展示聚合规模、脱敏状态、变更汇总与部署结果):
Aggregated LifeOS data: Books: 12 | Movies: 8 | Ideas: 10 | Work themes: 6 | Wisdom: 5 Security filter: clean (no redactions needed) Changes vs current daemon: + Added 3 new recent ideas + Updated work themes (4 new, 2 removed) ~ Books list merged (2 new from TELOS) = Mission, location, predictions unchangedReadDaemon:查看当前公开状态
ReadDaemon.md 用于拉取线上档案并检查本地与线上的一致性:
curl -s https://mcp.daemon.example.com \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"get_all","arguments":{}},"id":1}'随后解析 JSON 并按章节展示内容长度与新鲜度,再用bun ${LIFEOS_SKILL_DIR}/Tools/DaemonAggregator.ts --sources对照本地 daemon.md 与线上 API 响应,识别漂移。输出格式类似:
Daemon Status (daemon.example.com) Last updated: 2026-04-08T21:45:00Z Sections: About: 342 chars Books: 12 items ... Live endpoint: 200 OK MCP API: responding Local sync: [in sync / X sections drifted]PreviewDaemon:发布前零副作用预览
PreviewDaemon.md 只展示 UpdateDaemon 会带来什么变化,不写文件、不部署:
bun ${LIFEOS_SKILL_DIR}/Tools/DaemonAggregator.ts --diff ${LIFEOS_USER_DIR}/Daemon/daemon.md --verbose按章节汇总变化,并标记三类风险:内容超过 30 天未更新、安全过滤器产生脱敏(展示捕获了什么)、LifeOS 源文件缺失。确认无误后再执行 "update daemon"。
DeployDaemon:只发布不聚合
DeployDaemon.md 不聚合、不修改内容,只做发布:push 公开仓库(pre-commit hook 自动拦截敏感数据,Cloudflare Pages 收到 push 自动部署),然后同步 MCP KV(执行cd ${LIFEOS_SKILL_DIR}/Mcp && bun install && bun update-daemon,内部链路为:sync integrations → 聚合 daemon.md + integrations → Zod 校验 → 上传 Cloudflare KV),最后用 curl 验证网站与 MCP API。注意事项:只改了 UI 不动内容时跑 Step 1 即可;daemon.md 内容变了则两步都要;要聚合新鲜数据请先跑 UpdateDaemon。
线上运行时:边缘动态 + 静态外壳
SKILL.md 的架构图显示公开站点daemon.example.com(Cloudflare Pages,全静态)通过通用的src/worker.ts提供两类动态端点:
- /daemon-data.json:经边缘请求时服务,过期 ephemera 在请求时被剥离(status/now/offerings/requesting items 带过去
expires的条目被去掉;非默认 location 回退到location_default)。 - /feed.json:每 30 分钟聚合一次实时活动条目(cron + 懒刷新),只来自公开源,在
daemon-data.json的feeds字段配置(rss | beehiiv | github | x),缓存于 KVFEED_KV。
Worker secrets(X_BEARER_TOKEN、BEEHIIV_API_KEY)作为 Cloudflare Worker 密钥配置,永不进入代码。
安全哲学与常见坑(Gotchas)
SKILL.md 总结的五条安全哲学:
- 默认私有(Private by default):所有数据默认私有,直到被显式分类为公开。
- 代码级强制(Code-level enforcement):SecurityFilter.ts 是确定性模式匹配,不是 LLM 判断。
- 结构化排除(Structural exclusion):敏感文件(CONTACTS、FINANCES、HEALTH)永远不会被聚合器打开。
- 纵深防御(Defense in depth):聚合器过滤 + SecurityFilter + pre-commit hook + 人工批准。
- 失败即关闭(Fail closed):不确定就排除。
SKILL.md 的 Gotchas 是实际运维中最容易踩的坑,逐条列出:
- 双仓库:公开框架
~/Projects/daemon/(可 fork)+ 私有内容~/Projects/daemon-dm/(属于你)。框架可 fork,内容是私有的。 - deploy.sh 先跑 DeployGate,再在构建时把数据拷入框架,最后清理。Gate 失败就阻断部署——修数据,绝不要绕过 gate。个人数据永远不会被提交进公开仓库。
- SecurityFilter 是代码不是提示词:要加新的屏蔽模式,改 SecurityFilter.ts,不要改 workflow markdown。
- Ephemera 必须有
expires:status、now(经 now_meta)、有时效的 offerings/requesting items、任何非默认 location 都带 ISOexpires字段。三层强制:DeployGate(阻断)、worker(服务时剥离)、dashboard(客户端隐藏)。刷新过期 status = 编辑 daemon-data.json 写入新expires再跑 deploy.sh。 - 位置原则:默认粗粒度,实时为例外:只到城市/区域粒度;街道/ZIP/坐标/家庭区域字符串被 gate 阻断。"Tonight/I'm at" 措辞要求该项显式带
realtime_approved: true——仅用于 principal 主动希望被找到的活动。没有自动 GPS/日历流水线;位置只在显式命令下改变。 - 实时 feed 只吃公开源:worker 轮询博客 RSS、Beehiiv(官方 API)、YouTube RSS、GitHub 公开事件、所有者自己的 X 帖子——都是已发布内容,构造上零隐私风险。绝不要把 LifeOS 内部源加进
feeds。 - Beehiiv 会 403 掉 RSS 爬虫:newsletter 源用官方 Beehiiv API(
type: "beehiiv"+ BEEHIIV_API_KEY worker secret),不走 /feed URL。 - 服务是边缘动态的,页面外壳是静态的:/daemon-data.json 和 /feed.json 由 worker 按请求计算(
run_worker_first),其余是静态资源。数据变更仍需 deploy.sh;feed 内容自我刷新。 - 上游框架仓库发布的是生成模板(merge-back 原则):main 分支是从清洗过的暂存副本生成的通用模板,从不直接 push 工作树;模板排除 analytics、授权字体、favicons 与所有个人内容,身份由数据驱动(daemon-data.json 里的
owner_name/owner_handle/fork_url)。发布 workflow 只在维护者侧运行、不随系统发布;在你的安装上,daemon 内容位于你自己的私有仓库,只有框架可 fork。
社区 Fork 与扩展
SKILL.md 说明该 skill 设计为通用的,任何社区 fork 可按以下步骤接入:
- Fork 公开的 Daemon 仓库;
- 创建自己的私有数据仓库并放入
daemon-data.json; - 配置自己的屏蔽姓名/路径;
- 聚合器读取标准 LifeOS 目录结构;
- 用
deploy.sh构建并部署到你自己的 Cloudflare Pages。
执行日志
完成任一 workflow 后,SKILL.md 要求追加一条 JSONL 执行日志:
echo '{"ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","skill":"Daemon","workflow":"WORKFLOW_USED","input":"8_WORD_SUMMARY","status":"ok|error","duration_s":SECONDS}' >> ~/.claude/LIFEOS/MEMORY/SKILLS/execution.jsonl【免费下载链接】LifeOS⛰️ The Life Operating System — an intent engineering platform that moves you from your current state to your ideal state, in life and work.项目地址: https://gitcode.com/GitHub_Trending/pe/LifeOS
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考