# Qingflow Build

> 轻流全栈搭建方法技能。提供从连接预检、需求分析、方案设计到搭建实施、验证测试的标准化流程。 触发词：搭建轻流应用、设计审批流程、创建表单、配置权限、搭建看板

- Skill: `infometa/qingflow-build` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add infometa/qingflow-build`
- Raw SKILL.md: https://api.skillmd.com/api/skills/infometa/qingflow-build/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: infometa (https://skillmd.com/u/infometa)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/infometa/qingflow-build

---


# 轻流搭建方法

## 参考资料

- 5 个 HR 场景完整索引：@references/skills-index.md
- 人才管理端到端协作链路：@references/collaboration-chains.md

## 概述

这是人力资源 HR 专家的标准化搭建方法技能。当用户在轻流平台上需要搭建 HR 相关应用时使用此技能，遵循"先设计后搭建"的原则。

## 适用场景

- 新建轻流应用（表单 + 流程）
- 在现有应用上增加模块
- 搭建数据看板和报表
- 设计审批流程
- 配置权限和角色

## 连接策略

WorkBuddy **已内置轻流连接器**。按用户意图分三种情况：

### 情况 1：愿意连接，但尚未连接

- 引导用户打开 **WorkBuddy → 连接器**，搜索并连接「轻流」连接器
- 无轻流账号 → 引导 [qingflow.com](https://qingflow.com) 注册后再连接
- 有账号无 Token → 轻流个人设置 → OpenAPI → 生成 Token → 填入连接器
- 验证 `workspace_list` 通过后，进入 Phase 3 搭建实施

### 情况 2：不想连接 / 暂不方便连接

进入 **咨询模式**：只做需求分析与方案建议（表单/流程/权限思路），**不调用 MCP，不输出逐步手动搭建教程**。流程止于 Phase 2。

### 情况 3：已连接

走完整 Phase 0–4 流程。

## 搭建流程

### Phase 0：连接预检（情况 1、3 适用；情况 2 跳过）

在开始任何**需要实际操作轻流**的搭建任务前，确认用户愿意连接且连接器可用：

**A. 未连接**
- A1. 连接器未连接 → 引导 WorkBuddy **连接器** 中连接「轻流」
- A2. 已连接但未认证 → 引导填入 OpenAPI Token

**B. 账号与认证**
- B1. 没有轻流账号 → 引导 [qingflow.com](https://qingflow.com) **注册**
- B2. 不知道 Token → 轻流 → 个人设置 → OpenAPI → 生成 Token
- B3. Token 无效 → 检查格式，建议重新生成

**C. 认证后**
- C1. 无工作区 → 引导去轻流后台创建
- C2. 多个工作区 → 列出供用户选择
- C3. Token 过期 → 重新生成并在连接器中更新

**D. 运行时异常**
- D1. 网络/服务异常 → 检查网络，稍后重试
- D2. 限流（429）→ 等待约 30 秒
- D3. 权限不足（403）→ 确认工作区与账号权限

**执行策略**：
1. 用户**不想连接**时，不执行 Phase 0，直接进入 Phase 1–2（咨询模式）
2. 用户**愿意连接**时，先调用 `workspace_list` 验证；异常则引导连接/注册，**不降级为手动搭建教程**
3. MCP 失败最多重试 2 次，仍失败则说明原因并引导排查
4. 连接恢复后从断点继续

### Phase 1：需求分析

与用户确认以下 4 要素：

1. **使用者**：谁会用？多少人？什么角色？
2. **数据**：管什么核心业务数据？
3. **流转**：数据怎么流转？谁审批？条件是什么？
4. **输出**：需要什么报表/看板/通知？

### Phase 2：方案设计

输出结构化方案，包含：

**表单结构**：
```
- 主表单：{名称} — {用途}
- 子表单（如需）：{名称} — {用途}
```

**字段清单**：
| 字段名 | 类型 | 必填 | 选项/规则 | 说明 |
|--------|------|------|----------|------|

**流程设计**：
```
A → B（条件：xxx）→ C → 结束
```

**权限矩阵**：
| 角色 | 可见表单 | 可编辑字段 | 操作按钮 |
|------|---------|-----------|---------|

### Phase 3：搭建实施（仅搭建模式，情况 3；或情况 1 连接完成后）

前提：用户已连接轻流且同意直接操作。

1. **创建应用**：设定名称和分类
2. **设计表单**：添加字段、设置联动规则、配置计算公式
3. **配置流程**：添加节点、设置审批人、配置条件分支
4. **设置权限**：定义角色、分配数据权限
5. **搭建视图**：配置数据列表、图表、看板
6. **联调测试**：写入测试数据、走通全流程

### Phase 4：验证测试（仅搭建模式）

至少测试以下场景：
1. 正常流程走通（标准数据完整流转）
2. 边界条件（必填项为空、超金额阈值等）
3. 异常路径（退回、驳回、超时等）

## 常用公式参考

| 场景 | 公式 |
|------|------|
| 自动编号 | `CONCAT("QJ-", YEAR(NOW()), "-", LPAD(ROW_NUMBER(), 4, "0"))` |
| 请假天数计算 | `DATEDIFF({结束日期}, {开始日期}) + 1` |
| 金额大写 | `RMB({金额})` |
| 条件求和 | `SUMV({子表单}-{金额}, WHERE({子表单}-{状态}="已确认"))` |
| 时间差 | `TIMEDIFF({结束时间}, {开始时间}, "h")` |

## 常见流程模式

### 模式 1：线性审批
```
提交 → 直属上级 → 部门负责人 → HR → 归档
```

### 模式 2：条件分支
```
提交 → （金额<5000 → 部门负责人）→（金额>=5000 → 部门负责人 → 总经理）→ 归档
```

### 模式 3：并行审批
```
提交 → [并行] 人事部审批 + 财务部审批 + IT部审批 → 汇总 → 归档
```

### 模式 4：会签/或签
```
提交 → 部门负责人（会签：多人同时审批，全票通过才通过）→ 归档
```

## MCP 工具速查

创建应用时优先使用以下 MCP 工具（实际工具名以 `mcp__qingflow-app-builder__` 和 `mcp__qingflow-app-user__` 为前缀）：

| 操作 | 工具 |
|------|------|
| 创建/更新应用结构 | `qingflow-app-builder: app_schema_apply` |
| 获取应用字段 | `qingflow-app-builder: app_get_fields` |
| 配置流程 | `qingflow-app-builder: app_flow_apply` |
| 获取流程设计 | `qingflow-app-builder: app_flow_get` / `app_flow_get_schema` |
| 配置视图 | `qingflow-app-builder: app_views_apply` |
| 配置图表 | `qingflow-app-builder: app_charts_apply` |
| 配置布局 | `qingflow-app-builder: app_layout_apply` |
| 配置门户 | `qingflow-app-builder: portal_apply` |
| 查询工作区 | `qingflow-app-builder: workspace_list` |
| 写入数据 | `qingflow-app-user: record_insert` |
| 查询数据 | `qingflow-app-user: record_list` / `record_get` |
| 更新数据 | `qingflow-app-user: record_update` |
| 执行流程任务 | `qingflow-app-user: task_action_execute` |
| 数据导入 | `qingflow-app-user: record_import_start` |
| 数据导出 | `qingflow-app-user: record_export_start` |

