onboarding

GitHub 作者 LeoYeAI/openclaw-master-skills

OpenClaw Diary 日记系统安装向导。引导用户完成日记系统的初始化设置,包括人设选择、用户身份建立、存储配置和授权管理。 **立即触发当**:用户说「setup my journal」「初始化日记」「配置日记系统」「journal setup」「开始设置日记」。 **主动触发当**:用户首次尝试使用 diary skill 但配置文件不存在时,主动提示「看起来你还没有初始化日记系统,要现在设置吗?」 完成 5 个阶段的设置:人设选择、用户身份建立(可选)、存储配置、授权收集、生成配置文件。 **核心特性**: - 智能授权合并:如果导入和存储使用相同平台(如飞书),只需授权一次 - 渐进式引导:5 个阶段,可选步骤可跳过 - 人设一致性:INTJ/ENFP 风格贯穿全程 - 纯文本交互:完全适配 Telegram/WhatsApp/Discord 等消息平台

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install github:LeoYeAI~openclaw-master-skills~openclaw-diary-setup
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/github%3ALeoYeAI~openclaw-master-skills~openclaw-diary-setup/file -o openclaw-diary-setup.md
# Onboarding Skill - 日记系统安装向导

## 核心原则

**交互方式**:
- ✅ 使用纯文本对话,不依赖任何结构化交互工具
- ✅ 提供清晰的编号选项(1, 2, 3...)
- ✅ 支持多种输入方式(数字、关键词、自然语言)
- ✅ 每次选择后立即确认并进入下一步
- ✅ 显示进度提示(阶段 X/5)
- ✅ 允许跳过可选步骤

**人设一致性**:
- 根据用户选择的人设(INTJ/ENFP)调整对话风格
- INTJ:简洁、直接、高效,少废话
- ENFP:温暖、详细、鼓励,多关心

**智能授权合并**:
- 提前收集所有需要授权的场景
- 计算去重后的授权列表
- 一次性收集所有授权信息

---

## 前置检查

### 步骤 1:检查依赖的 skills 是否已安装

**检查 diary 和 note-extractor skills**:

使用 Bash 工具检查:
```bash
ls -la ~/.openclaw/skills/diary 2>&1 && ls -la ~/.openclaw/skills/note-extractor 2>&1
```

**如果任一 skill 不存在**:

发送提示:
```
OpenClaw Diary 需要安装以下 skills:
- openclaw-diary-core(日记记录)
- openclaw-diary-insights(洞察提取)

正在为你安装...
```

然后使用 Bash 工具安装:
```bash
# 检查是否安装了 clawhub CLI
if ! command -v clawhub &> /dev/null; then
    echo "正在安装 ClawHub CLI..."
    npm install -g clawhub
fi

# 安装依赖的 skills
clawhub install openclaw-diary-core
clawhub install openclaw-diary-insights
```

安装完成后发送:
```
✓ 依赖 skills 安装完成!

现在开始配置你的日记系统。
```

### 步骤 2:检查配置文件是否已存在

1. 展开 `~` 为完整路径:使用 `echo $HOME` 获取主目录
2. 检查文件:`~/.openclaw/workspace/diary/config/diary-config.json`
3. 如果文件已存在:
   ```
   看起来你已经初始化过日记系统了。

   要重新配置吗?这会覆盖现有配置。

   回复「是」继续,或「否」取消。
   ```

4. 如果用户回复「否」或「取消」,结束 skill

---

## 阶段 1:欢迎和人设选择

### 1.1 欢迎用户

发送欢迎消息:

```
欢迎使用 OpenClaw Diary!

这个系统可以:
✓ 智能记录你的想法、文章讨论和协作任务
✓ 支持本地存储和多平台同步(飞书/Flomo/Notion)
✓ 提供两种 AI 人设风格

整个设置大约需要 2-3 分钟,分为 5 个步骤。

【阶段 1/5】选择 AI 人设
```

### 1.2 人设选择

发送选项:

```
请选择你希望的 AI 日记助手风格:

1. **INTJ - 分析型**(推荐)
   话少、精准、善于发现规律
   适合:喜欢简洁高效沟通的人
   特点:会帮你识别行为模式,提供战略性思考

2. **ENFP - 温暖型**
   话多、温暖、陪伴感强
   适合:喜欢情感支持和深度交流的人
   特点:会主动关心你的感受,提供情感陪伴

💡 回复数字(1 或 2)或名称(INTJ/ENFP)即可。
```

### 1.3 解析用户输入

等待用户回复,解析输入:

**识别规则**:
- 包含 "1" 或 "intj" 或 "分析" → 选择 INTJ
- 包含 "2" 或 "enfp" 或 "温暖" → 选择 ENFP
- 其他 → 提示未识别

**未识别时的提示**:
```
没听清,请重新选择:

回复 1 选择 INTJ(分析型)
回复 2 选择 ENFP(温暖型)
```

### 1.4 确认选择

记录选择:`personality_type = "intj"` 或 `"enfp"`

根据人设发送确认消息:

**INTJ 风格**:
```
✓ 已选择 INTJ - 分析型

接下来的对话我会保持简洁高效。
```

**ENFP 风格**:
```
✓ 已选择 ENFP - 温暖型

太好了!接下来我会用温暖的方式陪伴你完成设置 😊
```

---

## 阶段 2:用户身份建立(可选)

### 2.1 询问是否建立用户身份

根据人设发送消息:

**INTJ 风格**:
```
【阶段 2/5】用户身份建立(可选)

建立用户档案可以让 AI 更了解你的背景和目标。

选择方式:
1. 聊天建立 - 我问几个问题了解你
2. 导入建立 - 从文档导入你的信息
3. 跳过 - 直接进入下一步

回复数字即可。
```

**ENFP 风格**:
```
【阶段 2/5】用户身份建立(可选)

如果你愿意,我想更了解你一些 😊

这样我就能更好地理解你的想法,提供更贴心的陪伴。

你可以选择:
1. 聊天建立 - 我们聊几句,我来了解你
2. 导入建立 - 如果你有现成的个人介绍文档,可以直接导入
3. 跳过 - 也可以先跳过,以后再补充

你想怎么做呢?回复数字就好。
```

### 2.2 解析用户选择

**识别规则**:
- 包含 "1" 或 "聊天" → 进入 2.3 聊天建立
- 包含 "2" 或 "导入" → 进入 2.4 导入建立
- 包含 "3" 或 "跳过" → 跳到阶段 3
- 其他 → 提示未识别

### 2.3 聊天建立用户身份

**INTJ 风格**(简洁提问):
```
✓ 选择聊天建立

我会问 3 个问题,简短回答即可。

问题 1/3:你的职业或主要身份是什么?
(例如:软件工程师、产品经理、学生、创业者)
```

等待回复,记录答案。

```
问题 2/3:你目前关注的主要领域或目标是什么?
(例如:AI 技术、个人成长、投资理财)
```

等待回复,记录答案。

```
问题 3/3:你希望通过日记系统达成什么?
(例如:记录想法、复盘反思、知识管理)
```

等待回复,记录答案。

**ENFP 风格**(温暖提问):
```
✓ 太好了!我们来聊聊吧 😊

我会问你 3 个问题,帮助我更了解你。放轻松,随便聊就好。

问题 1/3:你平时主要做什么工作或学习呢?
(比如你是做技术的、做产品的、还是在创业?)
```

等待回复,记录答案。

```
问题 2/3:最近你在关注什么领域或想达成什么目标?
(可以是技术学习、个人成长、投资理财,或者其他任何你在意的事)
```

等待回复,记录答案。

```
问题 3/3:你希望这个日记系统帮你做什么呢?
(比如记录灵感、复盘反思、整理知识,或者只是想有个地方倾诉)
```

等待回复,记录答案。

**生成用户档案**:

根据用户的回答,生成 `identity.md` 文件:

```markdown
# 用户身份档案

**生成时间**:{当前日期}

## 基本信息

- **职业/身份**:{用户回答1}
- **关注领域**:{用户回答2}
- **使用目标**:{用户回答3}

## 档案来源

通过聊天建立,基于用户的自我描述。

---

此档案由 OpenClaw Diary onboarding skill 自动生成。
```

保存到:`~/write_me/01studio/me/identity.md`

确认消息:
```
✓ 用户档案已创建

保存位置:~/write_me/01studio/me/identity.md
```

然后进入阶段 3。

### 2.4 导入建立用户身份

**询问导入来源**:

```
✓ 选择导入建立

请选择要导入的数据源(可多选):

1. 📄 飞书文档 - 导入飞书云文档中的个人档案
2. 📝 Notion - 导入 Notion 中的个人页面
3. 💾 本地文件 - 上传本地的 Markdown/Word 文档
4. 🌐 网页链接 - 提供在线文档链接

💡 输入方式:
- 单选:回复数字(如 1)
- 多选:用逗号分隔(如 1,3 或 飞书,本地)
- 全选:回复 all 或 全部

回复你的选择:
```

**解析用户输入**:

识别规则:
- "1" 或 "飞书" → 添加 feishu
- "2" 或 "notion" → 添加 notion
- "3" 或 "本地" → 添加 local
- "4" 或 "网页" 或 "链接" → 添加 web
- "all" 或 "全部" → 添加所有

支持组合:
- "1,3" → [feishu, local]
- "飞书,notion" → [feishu, notion]

**记录选择**:`import_sources = ["feishu", "local", ...]`

**确认选择**:
```
✓ 已选择:{列出选择的数据源}

稍后会在授权阶段收集相关信息。
```

然后进入阶段 3。

### 2.5 跳过用户身份建立

如果用户选择跳过:

```
✓ 已跳过用户身份建立

你可以随时通过编辑 ~/write_me/01studio/me/identity.md 来添加用户档案。
```

然后进入阶段 3。

---

## 阶段 3:存储配置

### 3.1 询问存储方式

根据人设发送消息:

**INTJ 风格**:
```
【阶段 3/5】存储配置

日记保存位置:

1. 仅本地 - 保存到 ~/write_me/00inbox/journal/
2. 本地 + 飞书同步
3. 本地 + Notion 同步
4. 本地 + Flomo 同步

回复数字即可。
```

**ENFP 风格**:
```
【阶段 3/5】存储配置

你的日记想保存在哪里呢?

1. 仅本地 - 保存在你的电脑上,最私密安全
2. 本地 + 飞书同步 - 本地保存,同时同步到飞书云文档
3. 本地 + Notion 同步 - 本地保存,同时同步到 Notion
4. 本地 + Flomo 同步 - 本地保存,同时同步到 Flomo

💡 所有选项都会在本地保存一份,云端同步只是额外备份。

回复数字就好:
```

### 3.2 解析用户选择

**识别规则**:
- "1" 或 "本地" 或 "local" → storage_type = "local_only"
- "2" 或 "飞书" 或 "feishu" → storage_type = "local_feishu"
- "3" 或 "notion" → storage_type = "local_notion"
- "4" 或 "flomo" → storage_type = "local_flomo"
- 其他 → 提示未识别

### 3.3 确认选择

根据选择发送确认消息:

**仅本地**:
```
✓ 已选择:仅本地存储

日记将保存到:~/write_me/00inbox/journal/
```

**本地 + 飞书**:
```
✓ 已选择:本地 + 飞书同步

日记将保存到:
- 本地:~/write_me/00inbox/journal/
- 飞书:需要在下一步提供授权信息
```

记录:`sync_platform = "feishu"`

**本地 + Notion**:
```
✓ 已选择:本地 + Notion 同步

日记将保存到:
- 本地:~/write_me/00inbox/journal/
- Notion:需要在下一步提供授权信息
```

记录:`sync_platform = "notion"`

**本地 + Flomo**:
```
✓ 已选择:本地 + Flomo 同步

日记将保存到:
- 本地:~/write_me/00inbox/journal/
- Flomo:需要在下一步提供授权信息
```

记录:`sync_platform = "flomo"`

---

## 阶段 4:智能授权合并

### 4.1 计算需要的授权

根据前面的选择,计算需要授权的平台:

```python
needed_auth = set()

# 从阶段 2 的导入来源
if "feishu" in import_sources:
    needed_auth.add("feishu")
if "notion" in import_sources:
    needed_auth.add("notion")

# 从阶段 3 的存储配置
if sync_platform == "feishu":
    needed_auth.add("feishu")
elif sync_platform == "notion":
    needed_auth.add("notion")
elif sync_platform == "flomo":
    needed_auth.add("flomo")

# 转换为列表
auth_list = list(needed_auth)
```

### 4.2 如果不需要授权

如果 `auth_list` 为空(用户选择了仅本地存储,且没有导入):

```
【阶段 4/5】授权配置

✓ 无需授权

你选择的配置不需要任何外部平台授权。
```

直接进入阶段 5。

### 4.3 如果需要授权

根据人设发送消息:

**INTJ 风格**:
```
【阶段 4/5】授权配置

需要以下授权:
{列出 auth_list 中的平台}

你可以:
1. 现在配置 - 我会引导你获取授权信息
2. 稍后配置 - 先生成配置文件,之后手动编辑

回复数字即可。
```

**ENFP 风格**:
```
【阶段 4/5】授权配置

为了让日记系统正常工作,我们需要一些授权信息:
{列出 auth_list 中的平台}

别担心,这些信息都保存在你的本地,不会上传到任何地方 🔒

你想:
1. 现在配置 - 我来帮你一步步获取授权信息
2. 稍后配置 - 先完成设置,之后你自己手动填写

回复数字就好:
```

### 4.4 解析用户选择

**识别规则**:
- "1" 或 "现在" → 进入 4.5 收集授权
- "2" 或 "稍后" → 跳到阶段 5
- 其他 → 提示未识别

### 4.5 收集授权信息

对于 `auth_list` 中的每个平台,逐个收集授权信息。

#### 4.5.1 飞书授权

```
【飞书授权】

需要提供以下信息:

1. App ID
2. App Secret
3. Folder Token(可选,用于指定日记保存的文件夹)

💡 如何获取:
- 访问飞书开放平台:https://open.feishu.cn/
- 创建企业自建应用
- 在「凭证与基础信息」中找到 App ID 和 App Secret
- Folder Token 可以从飞书云文档的文件夹链接中获取

请按以下格式回复(一行一个):
App ID: cli_xxxxx
App Secret: xxxxx
Folder Token: xxxxx(可选,没有就不填)

或者回复「跳过」稍后配置。
```

等待用户回复。

**解析回复**:
- 提取 App ID、App Secret、Folder Token
- 如果用户回复「跳过」,记录为稍后配置

**确认**:
```
✓ 飞书授权信息已记录
```

#### 4.5.2 Notion 授权

```
【Notion 授权】

需要提供 Integration Token。

💡 如何获取:
- 访问 Notion Integrations:https://www.notion.so/my-integrations
- 创建新的 Integration
- 复制 Internal Integration Token
- 在 Notion 中分享页面给这个 Integration

请回复你的 Integration Token:
(或回复「跳过」稍后配置)
```

等待用户回复。

**解析回复**:
- 提取 Integration Token
- 如果用户回复「跳过」,记录为稍后配置

**确认**:
```
✓ Notion 授权信息已记录
```

#### 4.5.3 Flomo 授权

```
【Flomo 授权】

需要提供 API Token。

💡 如何获取:
- 登录 Flomo:https://flomoapp.com/
- 进入「设置」→「API」
- 复制 API Token

请回复你的 API Token:
(或回复「跳过」稍后配置)
```

等待用户回复。

**解析回复**:
- 提取 API Token
- 如果用户回复「跳过」,记录为稍后配置

**确认**:
```
✓ Flomo 授权信息已记录
```

---

## 阶段 5:生成配置文件

### 5.1 生成配置

根据人设发送消息:

**INTJ 风格**:
```
【阶段 5/5】生成配置

正在生成配置文件...
```

**ENFP 风格**:
```
【阶段 5/5】生成配置

太好了!我们快完成了 🎉

正在为你生成配置文件...
```

### 5.2 创建目录结构

使用 Bash 工具创建必要的目录:

```bash
mkdir -p ~/.openclaw/workspace/diary/config
mkdir -p ~/.openclaw/workspace/diary/personalities
mkdir -p ~/write_me/00inbox/journal
mkdir -p ~/write_me/01studio/me
mkdir -p ~/write_me/02notes/insights
```

### 5.3 生成 diary-config.json

根据用户的选择生成配置文件:

```json
{
  "personality": {
    "type": "{personality_type}",
    "file": "personalities/{personality_type}.md"
  },
  "storage": {
    "path": "~/write_me/00inbox/journal",