个人办公工作台 · 一键创建 Skill
本 Skill 让任何人在自己的 WorkBuddy 账号下一键生成一套完全属于他自己的「个人办公工作台」。
每运行一次,都会:① 新建一张独立的云端数据库(绑定到当前用户);② 生成并发布一个仅属于他的在线工作台链接;③ 额外导出一份纯本地分享版 HTML(断网可用、可发给同事,各自数据隔离)。
> 关键特性:多实例隔离。每个运行本 Skill 的人拿到的是自己的云端库 + 自己的链接,数据互不干扰,不会污染其他人的工作台。
0. 前置依赖
本 Skill 依赖 资料库(skill-library) 提供的脚本与鉴权能力。开始前先加载它:
- 调用 Skill 工具,
skill="library"(或skill-library),把它加载进上下文。 - 加载后其脚本目录记为
LIB(即包含database/create_database.py与page/import_html.py的目录)。 - 若运行环境未注入
$CODEBUDDY_SKILL_DIR,用 Glob 在~/.workbuddy/plugins/cache/workbuddy-builtin/skill-library/*/下定位database/create_database.py,取其父目录的两级上层作为LIB。 - 鉴权:调用
connect_open_platform(参数skill_id="library")获取 open-platform token,后续脚本通过--token-stdin从 stdin 传入。 - ⚠️ token 会过期;若后续步骤报
NETWORK_ERROR/401,重新connect_open_platform取新 token 再继续。
1. 资产说明(本 Skill 自带)
assets/schema.json—— 云端数据表结构(12 字段:类型/标题/优先级/截止日期/完成/关联项目/标签/当前步骤/下一步/卡点/顺延次数/创建时间),直接用于建库。assets/workbench.html—— 工作台 HTML 模板(全内联、断网可用)。- 含占位符
REPLACE_WITH_NEW_DATABASE_ID(云端库 ID)与REPLACE_WITH_REPORT_URL(进度汇报页链接,可选)。 - 若
REPORT_URL仍是占位符,页面会自动隐藏所有「进度汇报」入口,保持最小版干净。
2. 执行流程(按序)
步骤 A:新建独立云端数据库
TOKEN=$(printf '%s' "<token>")
printf '%s' "$TOKEN" | python3 "$LIB/database/create_database.py" \
--token-stdin --schema "$(cat assets/schema.json)"
- 从 stdout 解析
database_id(形如AyQxxxxxx),记为DBID。 - 若报错,先确认 token 有效(重新
connect_open_platform)。
步骤 B:注入 DBID,生成工作台 HTML
- 读取
assets/workbench.html,把字符串REPLACE_WITH_NEW_DATABASE_ID替换为DBID,写出为工作台_build.html。 - (可选)若本次也想启用「进度汇报」功能,先按步骤 D 生成汇报页拿到链接,再在此处把
REPLACE_WITH_REPORT_URL替换为该链接;否则保留占位符(按钮会自动隐藏)。
步骤 C:SDK 契约自检
SCHEMA=$(cat assets/schema.json)
printf '%s' "$TOKEN" | python3 "$LIB/page/lint_database_sdk_usage.py" \
--schema "$SCHEMA" --html 工作台_build.html
- 期望输出含
MINDX_DBSDK_LINT_OK。若有 DSDK 类告警,按提示修模板后重跑(模板已遵循databaseId: DATABASE_ID字面量规范与 addRecord 表单缓存规范,正常情况下直接通过)。
步骤 D:(可选)生成「进度汇报」只读页
- 若用户需要「分享给领导/同事看进度」的功能,复制现有进度汇报页(或基于同一张
DBID现做一份只读页),关联同一DBID后发布,得到REPORT_LINK。 - 把
REPORT_LINK回填到步骤 B 的REPORT_URL占位符。 - 不做此步也完全 OK:工作台依然完整,只是不显示「进度汇报」入口。
步骤 E:上传并关联云端库
printf '%s' "$TOKEN" | python3 "$LIB/page/import_html.py" 工作台_build.html \
--file-name "个人办公工作台.html" \
--databases '[{"id":"'"$DBID"'"}]' \
--token-stdin
- 从输出解析
node_block_id(页面节点 ID),记为NODE。
步骤 F:发布在线链接
for i in 1 2 3; do
out=$(printf '%s' "$TOKEN" | python3 "$LIB/page/publish_page.py" \
--token-stdin --node-id "$NODE" 2>&1)
if echo "$out" | grep -q "workbuddy.link"; then echo "$out"; break; fi
sleep 4
done
- 从输出解析公开链接
https://workbuddy.link/p/<id>,记为WORKBENCH_LINK。
步骤 G:产出「本地分享版」(纯本地、各自隔离)
- 复制
工作台_build.html为个人办公工作台(本地分享版).html。 - 把其中的
detectMode()函数体改为永远返回"local"(切断云端连接),确保任何人打开都是自己浏览器独立的 localStorage 空间,绝不写DBID。 - 该文件用于断网使用、或发给同事/他人各自使用(数据天然隔离)。
步骤 H:交付
- 向用户展示:
1. 他的在线工作台链接WORKBENCH_LINK(电脑/手机登录同一账号即多端同步)。
2. 本地分享版文件个人办公工作台(本地分享版).html(可离线、可转发,收件人各自独立)。
3. 一句话说明:数据存在他自己的云端库DBID下,与其他运行本 Skill 的人完全隔离。 - 用
present_files打开预览工作台_build.html与本地分享版。
3. 功能清单(生成的工作台含这些)
- 今天待办:填任务 / 选优先级 P0–P2 / 填截止日期 / 打勾完成;逾期自动标红、一键顺延到明天并记录顺延次数;未来任务按日期分组。
- 本月待办:本月任务按周一为起点的自然周分组,顶部 KPI(本月/已完成/待完成/逾期),任务可「↩ 转到今天」流入当日清单。
- 灵感速记:随手记 + 打标签 + 按标签筛选。
- 项目跟进:项目名 / 当前步骤 / 下一步 / 卡点;待办可挂到项目下,项目卡显示关联待办进度。
- 每周复盘:本周完成数、优先级分布、精力分布(按项目)、卡点汇总(内联 SVG 图表)。
- 顶部「今天要处理的」:逾期任务 + 卡住项目标红置顶;昨日未完成的自动挪到今天并记顺延次数。
- 通用:自动保存(localStorage + 云端双写)、导出备份 / 导入、攒到 20 条提醒导出、手机电脑自适应(手机大按钮)、白底蓝绿商务风、页头克制配图、预置示例 + 清空示例按钮。
4. 注意事项
- 每次运行都是新实例:DBID、NODE、链接都不同,用户之间数据隔离。不要复用同一个
DBID给多人。 - token 过期:资料库上传/发布接口偶发
NETWORK_ERROR多为 token 过期,重新connect_open_platform即可,不是网络问题。 - 本地分享版务必强制 local:否则他人打开会误写创建者的云端库。步骤 G 的改造不可省略。
- 断网可用:
workbench.html全部资源内联,无外部依赖。