@qingflow-tech/qingflow-cli 1.1.2 → 1.1.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/docs/local-agent-install.md +10 -0
- package/package.json +1 -1
- package/pyproject.toml +1 -1
- package/skills/qingflow-cli/SKILL.md +61 -47
- package/skills/qingflow-cli/manifest.yaml +1 -1
- package/skills/qingflow-cli/reference/00-INDEX.md +35 -0
- package/skills/qingflow-cli/reference/QINGFLOW_CLI_BUILDER_APP_DELIVERY_WORKFLOW.md +21 -477
- package/skills/qingflow-cli/reference/QINGFLOW_CLI_BUILDER_VIEWS_WORKFLOW.md +44 -290
- package/skills/qingflow-cli/reference/QINGFLOW_CLI_SCHEMA_APPLY_FIELD_TYPES_AND_SCENARIOS.md +11 -102
- package/skills/qingflow-cli/reference/builder/10-build-single-app.md +57 -0
- package/skills/qingflow-cli/reference/builder/20-build-complete-system.md +84 -0
- package/skills/qingflow-cli/reference/builder/30-schema-fields.md +317 -0
- package/skills/qingflow-cli/reference/builder/40-layout.md +70 -0
- package/skills/qingflow-cli/reference/builder/50-views.md +540 -0
- package/skills/qingflow-cli/reference/builder/60-charts.md +328 -0
- package/skills/qingflow-cli/reference/builder/70-portal.md +372 -0
- package/skills/qingflow-cli/reference/builder/80-buttons-associated-resources.md +148 -0
- package/skills/qingflow-cli/reference/builder/90-workflow.md +35 -0
- package/skills/qingflow-cli/reference/builder/99-publish-verify.md +64 -0
- package/skills/qingflow-cli/reference/builder/README.md +62 -0
- package/skills/qingflow-cli/reference/builder/code-integrations/README.md +130 -0
- package/skills/qingflow-cli/reference/builder/code-integrations/code-block.md +66 -0
- package/skills/qingflow-cli/reference/builder/code-integrations/q-linker.md +77 -0
- package/skills/qingflow-cli/reference/builder/reference/app-delivery-sop.md +508 -0
- package/skills/qingflow-cli/reference/builder/reference/match-rules.md +229 -0
- package/skills/qingflow-cli/reference/builder/reference/workspace-icons.md +89 -0
- package/skills/qingflow-cli/reference/builder/workflow/01-overview.md +48 -0
- package/skills/qingflow-cli/reference/builder/workflow/02-update-mode.md +63 -0
- package/skills/qingflow-cli/reference/builder/workflow/03-flow-patterns.md +59 -0
- package/skills/qingflow-cli/reference/builder/workflow/04-stage1-business-modeling.md +131 -0
- package/skills/qingflow-cli/reference/builder/workflow/05-stage2-members-roles.md +29 -0
- package/skills/qingflow-cli/reference/builder/workflow/06-stage3-build-spec.md +211 -0
- package/skills/qingflow-cli/reference/builder/workflow/07-stage4-validate-spec.md +36 -0
- package/skills/qingflow-cli/reference/builder/workflow/08-stage5-apply-verify.md +66 -0
- package/skills/qingflow-cli/reference/builder/workflow/09-stage6-summary.md +88 -0
- package/skills/qingflow-cli/reference/builder/workflow/10-node-config-reference.md +93 -0
- package/skills/qingflow-cli/reference/builder/workflow/11-troubleshooting.md +18 -0
- package/skills/qingflow-cli/reference/builder/workflow/README.md +88 -0
- package/skills/qingflow-cli/reference/builder/workflow/workflow-schema.json +1754 -0
- package/skills/qingflow-cli/reference/charts_upsert_dashboard_starter.example.json +81 -0
- package/skills/qingflow-cli/reference/core/QINGFLOW_CLI_ADMIN_CHEATSHEET.md +94 -0
- package/skills/qingflow-cli/reference/core/QINGFLOW_CLI_DATA_RETRIEVAL_WORKFLOW.md +139 -0
- package/skills/qingflow-cli/reference/core/QINGFLOW_CLI_EXPLORATION_REPORT.md +84 -0
- package/skills/qingflow-cli/reference/core/QINGFLOW_CLI_FIELD_DATA_TYPES.md +129 -0
- package/skills/qingflow-cli/reference/core/QINGFLOW_CLI_MEMBER_CHEATSHEET.md +195 -0
- package/skills/qingflow-cli/reference/core/QINGFLOW_CLI_ONE_SHOT_CHEATSHEET.md +159 -0
- package/skills/qingflow-cli/reference/examples/README.md +17 -0
- package/skills/qingflow-cli/reference/examples/associated/associated_resources_semantic_full.example.json +50 -0
- package/skills/qingflow-cli/reference/examples/buttons/custom_buttons_advanced.example.json +56 -0
- package/skills/qingflow-cli/reference/examples/charts/charts_remove.example.json +1 -0
- package/skills/qingflow-cli/reference/examples/charts/charts_reorder.example.json +1 -0
- package/skills/qingflow-cli/reference/examples/charts/charts_upsert_bar.example.json +8 -0
- package/skills/qingflow-cli/reference/examples/charts/charts_upsert_dashboard_starter.example.json +118 -0
- package/skills/qingflow-cli/reference/examples/charts/charts_upsert_minimal.example.json +13 -0
- package/skills/qingflow-cli/reference/examples/layout/layout_sections_full.example.json +22 -0
- package/skills/qingflow-cli/reference/examples/portal/portal_sections_all_types.example.json +145 -0
- package/skills/qingflow-cli/reference/examples/portal/portal_sections_five_types.example.json +126 -0
- package/skills/qingflow-cli/reference/examples/portal/portal_sections_standard_workbench.example.json +178 -0
- package/skills/qingflow-cli/reference/examples/record/record_insert_all_field_types.example.json +35 -0
- package/skills/qingflow-cli/reference/examples/schema/_batch_schema_complex.json +18 -0
- package/skills/qingflow-cli/reference/examples/schema/_batch_schema_scalar.json +17 -0
- package/skills/qingflow-cli/reference/examples/schema/schema_add_fields_minimal.example.json +7 -0
- package/skills/qingflow-cli/reference/examples/schema/schema_apply_add_fields_all_types.json +78 -0
- package/skills/qingflow-cli/reference/examples/schema/schema_multi_app_form_relation_layout.example.json +166 -0
- package/skills/qingflow-cli/reference/examples/schema/schema_single_app_form_standard.example.json +95 -0
- package/skills/qingflow-cli/reference/examples/views/views_batch_full.example.json +159 -0
- package/skills/qingflow-cli/reference/examples/views/views_upsert_table_minimal.example.json +42 -0
- package/skills/qingflow-cli/reference/portal_sections_all_types.example.json +18 -4
- package/skills/qingflow-cli/reference/portal_sections_five_types.example.json +3 -3
- package/skills/qingflow-cli/reference/portal_sections_standard_workbench.example.json +57 -7
- package/skills/qingflow-cli/reference/record/QINGFLOW_CLI_RECORD_CREATE_WORKFLOW.md +22 -0
- package/skills/qingflow-cli/reference/record/QINGFLOW_CLI_RECORD_DELETE_WORKFLOW.md +31 -0
- package/skills/qingflow-cli/reference/record/QINGFLOW_CLI_RECORD_IMPORT_WORKFLOW.md +176 -0
- package/skills/qingflow-cli/reference/record/QINGFLOW_CLI_RECORD_UPDATE_WORKFLOW.md +167 -0
- package/skills/qingflow-cli/reference/record/analysis/README.md +130 -0
- package/skills/qingflow-cli/reference/record/analysis/analysis-gotchas.md +91 -0
- package/skills/qingflow-cli/reference/record/analysis/analysis-patterns.md +112 -0
- package/skills/qingflow-cli/reference/record/analysis/business-context.md +74 -0
- package/skills/qingflow-cli/reference/record/analysis/confidence-reporting.md +69 -0
- package/skills/qingflow-cli/reference/record/analysis/data-access-playbook.md +106 -0
- package/skills/qingflow-cli/reference/record/analysis/pandas-recipes.md +172 -0
- package/skills/qingflow-cli/reference/record/analysis/report-format.md +76 -0
- package/skills/qingflow-cli/reference/record/insert/README.md +125 -0
- package/skills/qingflow-cli/reference/schema_apply_add_fields_all_types.json +1 -1
- package/skills/qingflow-cli/reference/task/QINGFLOW_CLI_TASK_CONTEXT_WORKFLOW.md +153 -0
- package/skills/qingflow-cli/reference/task/ops/README.md +134 -0
- package/skills/qingflow-cli/reference/task/ops/environments.md +43 -0
- package/skills/qingflow-cli/reference/task/ops/workflow-usage.md +29 -0
- package/skills/qingflow-cli/reference/views_upsert_table_minimal.example.json +42 -7
- package/skills/qingflow-cli/scripts/validate_system_build_summary.py +124 -0
- package/skills/qingflow-cli/scripts/workflow/diff_flow_spec.py +275 -0
- package/skills/qingflow-cli/scripts/workflow/validate_flow_spec.py +627 -0
- package/src/qingflow_mcp/builder_facade/models.py +413 -119
- package/src/qingflow_mcp/builder_facade/service.py +4238 -666
- package/src/qingflow_mcp/cli/commands/builder.py +232 -75
- package/src/qingflow_mcp/cli/main.py +34 -0
- package/src/qingflow_mcp/public_surface.py +10 -0
- package/src/qingflow_mcp/server_app_builder.py +62 -34
- package/src/qingflow_mcp/solution/compiler/workflow_compiler.py +173 -0
- package/src/qingflow_mcp/solution/executor.py +2 -0
- package/src/qingflow_mcp/tools/ai_builder_tools.py +2649 -457
- package/src/qingflow_mcp/tools/record_tools.py +23 -11
package/README.md
CHANGED
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
Install:
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
npm install @qingflow-tech/qingflow-cli@1.1.
|
|
6
|
+
npm install @qingflow-tech/qingflow-cli@1.1.34
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
Run:
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
npx -y -p @qingflow-tech/qingflow-cli@1.1.
|
|
12
|
+
npx -y -p @qingflow-tech/qingflow-cli@1.1.34 qingflow
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
Environment:
|
|
@@ -84,6 +84,7 @@ npm run pack:npm
|
|
|
84
84
|
|
|
85
85
|
```bash
|
|
86
86
|
dist/npm/qingflow-tech-qingflow-cli-<version>.tgz
|
|
87
|
+
dist/npm/qingflow-cli-<version>.tgz
|
|
87
88
|
dist/npm/qingflow-tech-qingflow-app-user-mcp-<version>.tgz
|
|
88
89
|
dist/npm/qingflow-tech-qingflow-app-builder-mcp-<version>.tgz
|
|
89
90
|
```
|
|
@@ -91,11 +92,20 @@ dist/npm/qingflow-tech-qingflow-app-builder-mcp-<version>.tgz
|
|
|
91
92
|
然后在目标机器安装:
|
|
92
93
|
|
|
93
94
|
```bash
|
|
95
|
+
npx -y -p /absolute/path/to/dist/npm/qingflow-cli-<version>.tgz qingflow-cli install --package /absolute/path/to/dist/npm/qingflow-tech-qingflow-cli-<version>.tgz
|
|
94
96
|
npm install /absolute/path/to/dist/npm/qingflow-tech-qingflow-cli-<version>.tgz
|
|
95
97
|
npm install /absolute/path/to/dist/npm/qingflow-tech-qingflow-app-user-mcp-<version>.tgz
|
|
96
98
|
npm install /absolute/path/to/dist/npm/qingflow-tech-qingflow-app-builder-mcp-<version>.tgz
|
|
97
99
|
```
|
|
98
100
|
|
|
101
|
+
线上官网入口对应:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
npx qingflow-cli@latest install
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
安装器只安装真实 CLI 包 `@qingflow-tech/qingflow-cli`。它会先检查 Node.js、npm 和 Python 3.11+;如果 `npm install -g` 因本机全局目录权限失败,安装器会自动 fallback 到用户目录(macOS/Linux 为 `~/.local`,Windows 为当前用户 AppData npm 目录),但不会修改 shell 配置文件;PATH 缺失时会打印需要执行的 shell / PowerShell 命令。排障可加 `--verbose`;如需禁止 fallback 可加 `--no-fallback`。
|
|
108
|
+
|
|
99
109
|
安装时会自动:
|
|
100
110
|
|
|
101
111
|
1. 创建 `.npm-python/`
|
package/package.json
CHANGED
package/pyproject.toml
CHANGED
|
@@ -2,17 +2,18 @@
|
|
|
2
2
|
name: qingflow-cli
|
|
3
3
|
description: |
|
|
4
4
|
【强制】在执行或编排任何 qingflow CLI 命令前必须优先加载本 Skill。
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
Qingflow CLI 包以本 Skill 作为 CLI 主入口;record/app-builder/task/workflow 等相关说明按场景组织在 reference 子目录。
|
|
6
|
+
指导安装、执行上下文失败恢复、查询与写入;规定 task/record/import/builder 查询落盘;覆盖普通成员读数、字段 kind 与数据形态、任务上下文、批量导入、record access/list/get/insert/update/delete 与管理端边界。
|
|
7
|
+
Builder SOP 按智能体任务路径组织:完整系统、单应用、字段、已有应用布局维护、视图、报表、门户、关联资源、流程、发布校验;完整系统创建用 apps[].form 一次声明字段、relation 和布局;按钮随视图 action_buttons 声明;更新动作并入对应资源文档,批量读/批量写/局部改作为资源文档内的写法变体;明细见「关联文件」表与文末命令索引。
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
# Qingflow CLI 使用技能
|
|
10
11
|
|
|
11
|
-
> **Skill 版本**:`qingflow-skills-2026.
|
|
12
|
+
> **Skill 版本**:`qingflow-skills-2026.07.01.04`(入口文档版本;CLI 包版本用 `qingflow --version`;需要定位版本漂移时用 `qingflow --json version` 读取 `version/package/command_path/executable_path/package_root/skill_version`)。
|
|
12
13
|
|
|
13
|
-
**硬约束(必读)**:正文各节与文末「命令速查」中的命令**只作子命令形态索引**,不覆盖 JSON 结构、`--*-file` 键名、枚举全集、执行顺序与排障细节。凡工作**偏复杂**(多步串联、大块 payload、导入全链、**Builder 搭建向**(应用/schema/流程/布局/视图/门户/报表/按钮/关联资源的配置与发布、系统列与字段 `type`)、契约型 `apply`、按 schema 组织写入 payload、任务下钻与 `task action` 等),或你判断当前任务与「关联文件」里某篇所描述的内容**需求一致、场景相同或大体同类**,都应**先 Read 对应 `reference
|
|
14
|
+
**硬约束(必读)**:正文各节与文末「命令速查」中的命令**只作子命令形态索引**,不覆盖 JSON 结构、`--*-file` 键名、枚举全集、执行顺序与排障细节。凡工作**偏复杂**(多步串联、大块 payload、导入全链、**Builder 搭建向**(应用/schema/流程/布局/视图/门户/报表/按钮/关联资源的配置与发布、系统列与字段 `type`)、契约型 `apply`、按 schema 组织写入 payload、任务下钻与 `task action` 等),或你判断当前任务与「关联文件」里某篇所描述的内容**需求一致、场景相同或大体同类**,都应**先 Read 对应 `reference/...` 文档**,再结合 `qingflow … --help` 与 **[EXPLORATION_REPORT](./reference/core/QINGFLOW_CLI_EXPLORATION_REPORT.md)**。**禁止**仅凭索引、习惯或类比去补参数、臆造字段名或推断服务端行为。**CLI 自动化场景只通过 `qingflow` 命令工作**;相关说明已按主题合并为本文档下的 `reference/` 子目录。**最终统计结论、分析报告、趋势/排名/比例/分布**统一走 **[record/analysis](./reference/record/analysis/README.md)** 的 `qingflow record access -> Python/pandas`。
|
|
14
15
|
|
|
15
|
-
> **CLI
|
|
16
|
+
> **CLI**:当前实际执行包以 `qingflow --json version` 返回的 `package / version / command_path / executable_path / package_root / skill_version` 为准;不要从安装文档或全局 npm 目录猜版本。人工快速查看可用 `qingflow --version`。**复杂任务先读 [reference/00-INDEX.md](./reference/00-INDEX.md)**。**搭建/创建/系统配置**:先区分 **完整系统/应用包** 与 **单应用**。完整系统主链路必须走 `builder package apply -> builder schema apply --apps-file`,每个应用只用 `apps[].form` 同时声明字段、表单分组和行布局,并用 `apps[].client_key + relation.target_app_ref` 处理同批跨应用关联;不要拆成逐个应用创建、真实 `target_app_key` 回填、`add_fields` 追加或单独 `layout apply`。单应用新建走 `builder schema apply --package-id --app-name --form-file`,已有应用才走 `--app-key` 的维护路径。门户需要新报表时在 portal section 写 `chart`,不要把报表创建拆成完整系统主步骤。完整系统 schema apply 超时、`partial_success`、`write_executed=true`、`safe_to_retry=false` 或回读不完整时,下一步固定是 **`readback_before_retry`**(`package get` / `app resolve` / `app get fields`),禁止直接拆成单应用重建、用 V2/测试/随机后缀绕过重名或重放整批创建;随后按 **[builder/README.md](./reference/builder/README.md)** 选择单应用、完整系统或具体资源文档。仅成员读数速通仍可先打开 **[MEMBER_CHEATSHEET](./reference/core/QINGFLOW_CLI_MEMBER_CHEATSHEET.md)**。
|
|
16
17
|
|
|
17
18
|
## 关联文件
|
|
18
19
|
|
|
@@ -20,22 +21,35 @@ description: |
|
|
|
20
21
|
| 文件 | 说明 |
|
|
21
22
|
| ------------------------------------------------------------------------------------------------ |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
22
23
|
| `manifest.yaml` | 技能清单 |
|
|
23
|
-
| [reference/
|
|
24
|
-
| [reference/
|
|
25
|
-
| [reference/
|
|
26
|
-
| [reference/
|
|
27
|
-
| [reference/
|
|
28
|
-
| [reference/
|
|
29
|
-
| [reference/
|
|
30
|
-
| [reference/
|
|
31
|
-
| [reference/
|
|
32
|
-
| [reference/
|
|
33
|
-
| [reference/
|
|
34
|
-
| [reference/
|
|
35
|
-
| [reference/
|
|
36
|
-
| [reference/
|
|
37
|
-
| [reference/
|
|
38
|
-
| [reference/
|
|
24
|
+
| [reference/00-INDEX.md](./reference/00-INDEX.md) | **总导航**:按用户目标选择 record / task / builder 文档;复杂任务先读 |
|
|
25
|
+
| [reference/QINGFLOW_CLI_MEMBER_CHEATSHEET.md](./reference/core/QINGFLOW_CLI_MEMBER_CHEATSHEET.md) | **普通成员**主线:最短路径、`view_id`、与管理命令的差异预期 |
|
|
26
|
+
| [reference/QINGFLOW_CLI_FIELD_DATA_TYPES.md](./reference/core/QINGFLOW_CLI_FIELD_DATA_TYPES.md) | **字段数据类型**:`record schema …` 的 `fields[]`(`field_id`、`title`、`kind`、`options`…);`record list/get/access` 与写入 payload 的形态对照 |
|
|
27
|
+
| [reference/QINGFLOW_CLI_DATA_RETRIEVAL_WORKFLOW.md](./reference/core/QINGFLOW_CLI_DATA_RETRIEVAL_WORKFLOW.md) | **应用记录获取数据**:`app get`(`accessible_views`)→ `record schema browse` → `record list(query)` 模糊定位 / `record get` 详情页首屏上下文 / `record logs` 全量日志;分析取数转 `record_access` |
|
|
28
|
+
| [reference/QINGFLOW_CLI_TASK_CONTEXT_WORKFLOW.md](./reference/task/QINGFLOW_CLI_TASK_CONTEXT_WORKFLOW.md) | **任务(待办已办)上下文 SOP**:`task list` → `task get` → `task log` → `task report` → `task action`;只把 `task_id` 作为主定位参数 |
|
|
29
|
+
| [reference/QINGFLOW_CLI_RECORD_IMPORT_WORKFLOW.md](./reference/record/QINGFLOW_CLI_RECORD_IMPORT_WORKFLOW.md) | **批量导入 SOP**:`app_get`(**`import_capability`**)→ `record_import_template_get` → `record_import_verify` →(可选)`record_import_repair_local` → `record_import_start` → `record_import_status_get`;CLI `import` / `record schema import` |
|
|
30
|
+
| [reference/builder/README.md](./reference/builder/README.md) | **Builder 总导航**:完整系统、单应用、字段、布局、视图、报表、门户、按钮/关联资源、流程、发布校验 |
|
|
31
|
+
| [reference/builder/10-build-single-app.md](./reference/builder/10-build-single-app.md) | **单应用搭建主入口**:一个应用端到端交付顺序 |
|
|
32
|
+
| [reference/builder/20-build-complete-system.md](./reference/builder/20-build-complete-system.md) | **完整系统/应用包主入口**:多应用、同批 relation、门户闭环 |
|
|
33
|
+
| [reference/builder/30-schema-fields.md](./reference/builder/30-schema-fields.md) | **字段 / schema**:字段类型、直觉别名、数据标题/封面、schema 创建与更新 |
|
|
34
|
+
| [reference/builder/40-layout.md](./reference/builder/40-layout.md) | **布局维护**:仅用于已有应用的分组、`rows` 矩阵、布局修复;新建应用布局写在 `form` 内 |
|
|
35
|
+
| [reference/builder/50-views.md](./reference/builder/50-views.md) | **视图**:表格/卡片/看板/甘特、固定筛选、查询面板、视图 patch |
|
|
36
|
+
| [reference/builder/60-charts.md](./reference/builder/60-charts.md) | **报表 / QingBI**:指标卡、图表、语义聚合、筛选、排序、更新 |
|
|
37
|
+
| [reference/builder/70-portal.md](./reference/builder/70-portal.md) | **门户**:标准工作台、业务入口、指标、图表、视图组件、发布 |
|
|
38
|
+
| [reference/builder/80-buttons-associated-resources.md](./reference/builder/80-buttons-associated-resources.md) | **关联资源 / 非主链路按钮维护**:关联视图/报表、`match_mappings`、上下文传参;按钮配置看视图文档 `action_buttons` |
|
|
39
|
+
| [reference/builder/90-workflow.md](./reference/builder/90-workflow.md) | **流程**:WorkflowSpec、`patch_nodes`、角色/成员、流程回读 |
|
|
40
|
+
| [reference/builder/99-publish-verify.md](./reference/builder/99-publish-verify.md) | **发布与回读**:`publish verify`、partial/readback 处理、最终汇报口径 |
|
|
41
|
+
| [reference/QINGFLOW_CLI_RECORD_CREATE_WORKFLOW.md](./reference/record/QINGFLOW_CLI_RECORD_CREATE_WORKFLOW.md) | **新建记录**:`record schema insert -> record insert --items-file`;成员/部门/关联优先自然语言输入;细节见 [record/insert](./reference/record/insert/README.md) |
|
|
42
|
+
| [reference/QINGFLOW_CLI_RECORD_UPDATE_WORKFLOW.md](./reference/record/QINGFLOW_CLI_RECORD_UPDATE_WORKFLOW.md) | **更新记录**:主链路是 `record get` → 智能体按 `fields[]` 组 key/value → **`record update`**;`record schema update` 仅用于失败后诊断可写字段/路径 |
|
|
43
|
+
| [reference/QINGFLOW_CLI_RECORD_DELETE_WORKFLOW.md](./reference/record/QINGFLOW_CLI_RECORD_DELETE_WORKFLOW.md) | **删除记录**:`record list/get` 精确定位 → `record delete --app-key --record-id --view-id system:*`;批量用 `--record-ids-file` |
|
|
44
|
+
| [reference/record/analysis/README.md](./reference/record/analysis/README.md) | **数据分析**:最终统计结论、分析报告、趋势/排名/比例/分布统一走 `record access -> Python/pandas` |
|
|
45
|
+
| [reference/builder/reference/app-delivery-sop.md](./reference/builder/reference/app-delivery-sop.md) | **底层交付参考**:历史完整 SOP、权限、系统列和工具细节;不是主入口 |
|
|
46
|
+
| [reference/builder/reference/workspace-icons.md](./reference/builder/reference/workspace-icons.md) | **图标参考**:`builder icon catalog`;新建应用包、应用、门户必须显式选择非 `template` 的 `icon + color` |
|
|
47
|
+
| [reference/builder/reference/match-rules.md](./reference/builder/reference/match-rules.md) | **统一筛选 / 条件写法**:`filters`、`visible_when`、QingBI 图表筛选、工作流条件、`match_mappings`、`field_mappings` 的 `operator/value` 规则 |
|
|
48
|
+
| [reference/builder/workflow/README.md](./reference/builder/workflow/README.md) | **工作流搭建**:已有应用的流程建模、节点配置、`builder flow apply` 与 `patch_nodes` |
|
|
49
|
+
| [reference/builder/code-integrations/README.md](./reference/builder/code-integrations/README.md) | **代码块 / Q-Linker 配置**:字段别名、绑定、输入字段插入和配置排障 |
|
|
50
|
+
| [reference/QINGFLOW_CLI_ADMIN_CHEATSHEET.md](./reference/core/QINGFLOW_CLI_ADMIN_CHEATSHEET.md) | **管理员**:检索、导入等与成员差异(主技能正文不展开) |
|
|
51
|
+
| [reference/QINGFLOW_CLI_EXPLORATION_REPORT.md](./reference/core/QINGFLOW_CLI_EXPLORATION_REPORT.md) | CLI 实测与 argparse/服务端对齐备忘 |
|
|
52
|
+
| [reference/QINGFLOW_CLI_ONE_SHOT_CHEATSHEET.md](./reference/core/QINGFLOW_CLI_ONE_SHOT_CHEATSHEET.md) | **可选**:全角色「一次可复制」分项模板;默认执行技能**不必**打开 |
|
|
39
53
|
| [scripts/find-app-by-keyword.py](./scripts/find-app-by-keyword.py) | **旧版 CLI 兼容脚本**:当 `app list --query` 不可用时,用 `app list` 本地解析;默认优先使用 `qingflow --json app list --query <关键词>` |
|
|
40
54
|
| [scripts/builder-package-from-app-list.py](./scripts/builder-package-from-app-list.py) | **旧版 CLI 兼容脚本**:当 `builder package list` 不可用时,才从 `app list` 曲线反查 **`package_name` / `resolve-id`**;新版默认直接用 `qingflow --json builder package list --query <关键词>` |
|
|
41
55
|
|
|
@@ -56,10 +70,10 @@ description: |
|
|
|
56
70
|
> 仅qingflow命令执行后发现不可用再安装,不需要进行校验动作
|
|
57
71
|
|
|
58
72
|
```bash
|
|
59
|
-
|
|
73
|
+
npx qingflow-cli@latest install
|
|
60
74
|
```
|
|
61
75
|
|
|
62
|
-
|
|
76
|
+
安装器会安装真实 CLI 包 `@qingflow-tech/qingflow-cli@latest`;会预检 Node.js、npm、Python 3.11+;若全局 npm 目录权限不足,会 fallback 到用户目录(macOS/Linux 为 `~/.local`,Windows 为用户 AppData npm 目录)并提示 PATH 配置,不会自动改 shell 文件。排障可加 `--verbose`。环境:Node.js v16+、npm、Python 3.11+、可达 npm registry / 轻流 API。
|
|
63
77
|
|
|
64
78
|
---
|
|
65
79
|
|
|
@@ -145,7 +159,7 @@ qingflow --json auth whoami
|
|
|
145
159
|
`app get` 里的 `CUSTOM_VIEW_LIST_UNAVAILABLE` 表示自定义视图列表读取被权限或后端限制降级;若 `accessible_views` 中仍有 `system:*`,可继续用该视图读数。若没有任何视图,再回到前端 URL、`app list` 可见应用、或用户提供的 `viewgraphKey` 补充上下文,不要直接断言应用不可读。
|
|
146
160
|
`app get.data.can_create=false` 才表示 applicant/create 路径不可用;创建权限探测遇到 auth / server 等非权限类错误时应直接按失败处理,不要包装成“未知创建权限”或“用户无新建权限”。
|
|
147
161
|
|
|
148
|
-
**细则、响应解包、`view_id` 雷区与命令模板**见 **[reference/QINGFLOW_CLI_DATA_RETRIEVAL_WORKFLOW.md](./reference/QINGFLOW_CLI_DATA_RETRIEVAL_WORKFLOW.md)**(编写前已对当前 CLI **实跑**校验)。若仅需「最快看一眼有没有行」,可省略 **`schema browse
|
|
162
|
+
**细则、响应解包、`view_id` 雷区与命令模板**见 **[reference/QINGFLOW_CLI_DATA_RETRIEVAL_WORKFLOW.md](./reference/core/QINGFLOW_CLI_DATA_RETRIEVAL_WORKFLOW.md)**(编写前已对当前 CLI **实跑**校验)。若仅需「最快看一眼有没有行」,可省略 **`schema browse`**,直接走下文「最短路径」。如果用户要任何最终统计结论、分析报告、趋势/排名/比例/分布,按 **[record/analysis](./reference/record/analysis/README.md)** 执行 `record access -> Python/pandas`。
|
|
149
163
|
|
|
150
164
|
---
|
|
151
165
|
|
|
@@ -153,11 +167,11 @@ qingflow --json auth whoami
|
|
|
153
167
|
|
|
154
168
|
推荐顺序:
|
|
155
169
|
|
|
156
|
-
1.
|
|
157
|
-
2. **`
|
|
158
|
-
3.
|
|
170
|
+
1. **`record schema insert`**:先读取 insert-ready schema、`required_fields`、`payload_template`、`format_hint`、`example_value`、联动与运行时必填提示。
|
|
171
|
+
2. **`record insert --items-file`**:单条也是 `items` 数组的一行;成员、部门、关联字段优先写自然语言(如 `"张三"`、`"直销部"`、`"海军军医大学"`),仅在返回 `needs_confirmation` 时再让用户确认候选。
|
|
172
|
+
3. **写后读回**:单条重要数据用 `record get`,批量样本用 `record list` 或业务视图校验;`partial_success` 只重试失败行,不重放全批。
|
|
159
173
|
|
|
160
|
-
**细则、字段 JSON 结构与排障**见 **[reference/QINGFLOW_CLI_RECORD_CREATE_WORKFLOW.md](./reference/QINGFLOW_CLI_RECORD_CREATE_WORKFLOW.md)**。
|
|
174
|
+
**细则、字段 JSON 结构与排障**见 **[reference/QINGFLOW_CLI_RECORD_CREATE_WORKFLOW.md](./reference/record/QINGFLOW_CLI_RECORD_CREATE_WORKFLOW.md)**。
|
|
161
175
|
|
|
162
176
|
---
|
|
163
177
|
|
|
@@ -166,15 +180,15 @@ qingflow --json auth whoami
|
|
|
166
180
|
主链路是先读详情,再直接提交用户要求修改的 key/value。不要把 `record schema update` 当成更新前置步骤:
|
|
167
181
|
|
|
168
182
|
1. **`record get`** → 拿 **`record_id`、当前值、fields[].title / field_id / kind**;已知前端/自定义视图时必须带同一个 **`--view-id`**。未知时 CLI 会先试默认 `system:all`,权限拒绝后再尝试可访问视图,但智能体仍优先从 `app get.accessible_views` 取 view。
|
|
169
|
-
2. 智能体根据 `record get.fields[]` 和用户要求,组一个只包含待改字段的 JSON 对象(标题 →
|
|
183
|
+
2. 智能体根据 `record get.fields[]` 和用户要求,组一个只包含待改字段的 JSON 对象(标题 → 值)。字段必须来自当前详情上下文的 `fields[]`;带 `--view-id` 时,视图隐藏的字段不要强写。若用户要求改的字段不在当前 `record get.fields[]`,先换到包含该字段的视图/详情上下文,或用 `record schema update` 做失败诊断。
|
|
170
184
|
3. **`record update`** → **`--record-id` + `--fields-file`**,已知前端视图时同样带 **`--view-id`** 让 CLI 优先走该 view;批量用 **`--items-file`**(**`--dry-run` 仅批量**)。
|
|
171
185
|
4. 只有字段范围不清、候选歧义、或 `record update` 失败时,才用 **`record schema update`** 诊断本条记录的 **`writable_fields / payload_template / available_update_routes`**;已知前端视图时同样带 **`--view-id`**,让诊断优先探测同一个详情页上下文。
|
|
172
186
|
|
|
173
187
|
**更新路径**:`record update` 会自动先尝试数据管理员直改,再 fallback 到前端同源的 custom view 详情编辑路径;如果当前用户存在这条记录的唯一待办且目标字段在当前节点可编辑,最后会尝试 workflow save-only。成功时只需要读 **`status / update_route / verification_status`**;失败时再读失败原因与路线诊断。不要把中间 route 或辅助 schema/readback 探测的 40002 / 40027 / 404 当作最终失败。
|
|
174
188
|
|
|
175
|
-
**大号 `record_id`(常见于 Snowflake 类 id)**:若干 CLI 版本在 **`record update` 写入路径**上对 `apply_id` 会做 **JavaScript 安全整数**相关校验,`list`/`get`/`schema update` 仍可能正常而 **更新落库报错**(常为 `apply_id must be positive`)。排障见 **[reference/QINGFLOW_CLI_RECORD_UPDATE_WORKFLOW.md](./reference/QINGFLOW_CLI_RECORD_UPDATE_WORKFLOW.md)**。业务统计与最终结论仍必须按
|
|
189
|
+
**大号 `record_id`(常见于 Snowflake 类 id)**:若干 CLI 版本在 **`record update` 写入路径**上对 `apply_id` 会做 **JavaScript 安全整数**相关校验,`list`/`get`/`schema update` 仍可能正常而 **更新落库报错**(常为 `apply_id must be positive`)。排障见 **[reference/QINGFLOW_CLI_RECORD_UPDATE_WORKFLOW.md](./reference/record/QINGFLOW_CLI_RECORD_UPDATE_WORKFLOW.md)**。业务统计与最终结论仍必须按 **[record/analysis](./reference/record/analysis/README.md)** 使用 `record access -> Python/pandas`。
|
|
176
190
|
|
|
177
|
-
**命令模板、批量 `items` 形态、与新建相同的写入值约定**(按 **`kind`** 分题型见 **[QINGFLOW_CLI_FIELD_DATA_TYPES.md](./reference/QINGFLOW_CLI_FIELD_DATA_TYPES.md)**)见 **[reference/QINGFLOW_CLI_RECORD_UPDATE_WORKFLOW.md](./reference/QINGFLOW_CLI_RECORD_UPDATE_WORKFLOW.md)**。
|
|
191
|
+
**命令模板、批量 `items` 形态、与新建相同的写入值约定**(按 **`kind`** 分题型见 **[QINGFLOW_CLI_FIELD_DATA_TYPES.md](./reference/core/QINGFLOW_CLI_FIELD_DATA_TYPES.md)**)见 **[reference/QINGFLOW_CLI_RECORD_UPDATE_WORKFLOW.md](./reference/record/QINGFLOW_CLI_RECORD_UPDATE_WORKFLOW.md)**。
|
|
178
192
|
|
|
179
193
|
**成员 / 部门候选排障**:若成员、部门字段返回 `needs_confirmation` 或候选不清,使用 `qingflow record member-candidates` / `qingflow record department-candidates`;它们优先走表单字段候选范围接口(与前端选择器一致)。不要改用通讯录管理类查询去“补候选”,那会把普通成员误带到 ContactAuth 管理权限链路。
|
|
180
194
|
|
|
@@ -212,7 +226,7 @@ qingflow --json record list \
|
|
|
212
226
|
|
|
213
227
|
`record list` 默认最多返回 10 条,适合样本检查和模糊定位;需要更大或更小样本时用 `--page-size <N>`,但最终统计结论仍转 `record_access -> Python/pandas`。若用户只给出模糊文本,使用 `--query` 和可选 `--query-field <FIELD_ID>` 收窄候选,再用 `record get` 读详情。若用户明确要完整日志/审计历史,继续执行 `qingflow --json record logs --app-key <APP_KEY> --record-id <RECORD_ID> --view-id <VIEW_ID> > tmp/qingflow_record_logs.json`,再读取返回的 `data_logs.local_path` / `workflow_logs.local_path`。
|
|
214
228
|
|
|
215
|
-
**找应用包(Builder 管理面)**:默认直接用 **`builder package list --query <关键词>`**;它调用应用包后端 `/tag`,能看到空包、同名包和包级权限。拿到 `items[].package_id` 后再 `builder package get --package-id <ID>`。`package get` 会优先读 `/tag/{id}/baseInfo`,再尝试增强读取 `/tag/{id}`;若返回 `PACKAGE_DETAIL_READ_DEGRADED`,表示详细配置接口需要包编辑/加应用权限但基础信息已读到,不要当成包读取失败。旧版 CLI 没有该命令时,才看 **[reference/
|
|
229
|
+
**找应用包(Builder 管理面)**:默认直接用 **`builder package list --query <关键词>`**;它调用应用包后端 `/tag`,能看到空包、同名包和包级权限。拿到 `items[].package_id` 后再 `builder package get --package-id <ID>`。`package get` 会优先读 `/tag/{id}/baseInfo`,再尝试增强读取 `/tag/{id}`;若返回 `PACKAGE_DETAIL_READ_DEGRADED`,表示详细配置接口需要包编辑/加应用权限但基础信息已读到,不要当成包读取失败。旧版 CLI 没有该命令时,才看 **[reference/builder/reference/app-delivery-sop.md](./reference/builder/reference/app-delivery-sop.md) §2.3** 与 **[scripts/builder-package-from-app-list.py](./scripts/builder-package-from-app-list.py)**。
|
|
216
230
|
|
|
217
231
|
**按关键字找应用(成员可用)**:默认直接用 **`app list --query`**,它只读取当前用户可见应用并在本地过滤,响应看 `items[].app_key`、`matched_count`、`unfiltered_count`、`filter_mode`。
|
|
218
232
|
|
|
@@ -231,7 +245,7 @@ qingflow --json app list --keyword '发票'
|
|
|
231
245
|
- **`--view-id`** 仅从 **`app get`** 的 **`accessible_views`** 选取 **业务 / 自定义视图**(优先 **非「`custom:` 后仅数字」**,如带字母后缀的 `custom:…`)。
|
|
232
246
|
- 若 `app get.warnings` 含 **`CUSTOM_VIEW_LIST_UNAVAILABLE`**,说明 custom view 列表辅助读取不可用;已有 `system:*` 视图仍可继续使用,缺 custom view 本身不等同于应用无权。
|
|
233
247
|
- **禁止**把 `custom:1`、`custom:12` 等纯数字后缀自定义视图当作读数首选:成员侧常见 **`schema browse` / `record list`** 返回 **40038**。
|
|
234
|
-
- 读数前**不必**前置 `workspace get`、`view get`。若仅需列表可先省略 **`record schema browse`**;若要列定义或与 **「获取数据工作流」** 对齐,见 **[reference/QINGFLOW_CLI_DATA_RETRIEVAL_WORKFLOW.md](./reference/QINGFLOW_CLI_DATA_RETRIEVAL_WORKFLOW.md)**。
|
|
248
|
+
- 读数前**不必**前置 `workspace get`、`view get`。若仅需列表可先省略 **`record schema browse`**;若要列定义或与 **「获取数据工作流」** 对齐,见 **[reference/QINGFLOW_CLI_DATA_RETRIEVAL_WORKFLOW.md](./reference/core/QINGFLOW_CLI_DATA_RETRIEVAL_WORKFLOW.md)**。
|
|
235
249
|
|
|
236
250
|
---
|
|
237
251
|
|
|
@@ -247,7 +261,7 @@ qingflow --json app list --keyword '发票'
|
|
|
247
261
|
| 工作区切换 | `workspace select` | 可能 **59004**(配额),与未登录区分 |
|
|
248
262
|
|
|
249
263
|
|
|
250
|
-
**成员侧只读仍较稳**的示例:`app list` / `app get`、`portal list`。其它管理向子命令参见 **[reference/QINGFLOW_CLI_ADMIN_CHEATSHEET.md](./reference/QINGFLOW_CLI_ADMIN_CHEATSHEET.md)**。
|
|
264
|
+
**成员侧只读仍较稳**的示例:`app list` / `app get`、`portal list`。其它管理向子命令参见 **[reference/QINGFLOW_CLI_ADMIN_CHEATSHEET.md](./reference/core/QINGFLOW_CLI_ADMIN_CHEATSHEET.md)**。
|
|
251
265
|
|
|
252
266
|
---
|
|
253
267
|
|
|
@@ -276,7 +290,7 @@ qingflow --json task list \
|
|
|
276
290
|
|
|
277
291
|
### 待办 / 已办 / 抄送处理 SOP(`task list`)
|
|
278
292
|
|
|
279
|
-
> **与编排工具名逐步对齐的独立长文**(含 **`task_workflow_log_get` / `task_associated_report_detail_get` / `task_action_execute`** 与 **`task log` / `task report` / `task action`** 对照、实测排障):**[reference/QINGFLOW_CLI_TASK_CONTEXT_WORKFLOW.md](./reference/QINGFLOW_CLI_TASK_CONTEXT_WORKFLOW.md)**。
|
|
293
|
+
> **与编排工具名逐步对齐的独立长文**(含 **`task_workflow_log_get` / `task_associated_report_detail_get` / `task_action_execute`** 与 **`task log` / `task report` / `task action`** 对照、实测排障):**[reference/QINGFLOW_CLI_TASK_CONTEXT_WORKFLOW.md](./reference/task/QINGFLOW_CLI_TASK_CONTEXT_WORKFLOW.md)**。
|
|
280
294
|
> **命令形态与参数级写法**见下文 **「命令速查 → 待办 `task`」**;本节约定 **执行顺序** 与 **是否传入 `--app-key`**。
|
|
281
295
|
|
|
282
296
|
**与前序通路区分**:若以 **待办 / 已办 / 抄送「任务箱」** 为目标,**须**按本节下文 **「待办 / 已办 / 抄送处理 SOP」** 使用 `**task list --task-box …`**; `**record list` + `system:todo`、`system:done`、`system:cc` 等 `view_id` 已过时,不作为推荐**。`record list` 用于 **应用内业务视图**:在 `**app get**` 的 `accessible_views` 中取可用的 `**custom:***` 等 `**--view-id**`,与本节 SOP 勿混为一谈。
|
|
@@ -329,7 +343,7 @@ qingflow --json task list \
|
|
|
329
343
|
|
|
330
344
|
**勿把记录列表的 `list_type`(或过时文档里的 `system:*` 视图口径)与任务中心的 `type` 混为一谈**:`task list --task-box …` 的映射见上表(例如任务中心「已办」为 `type=5`);**不要**再把旧表单视图侧的编号抄到 `**--task-box`** 或自行拼接请求 `type`。
|
|
331
345
|
|
|
332
|
-
更深的行为差异与踩坑备忘仍见 **[reference/QINGFLOW_CLI_EXPLORATION_REPORT.md](./reference/QINGFLOW_CLI_EXPLORATION_REPORT.md)**。
|
|
346
|
+
更深的行为差异与踩坑备忘仍见 **[reference/QINGFLOW_CLI_EXPLORATION_REPORT.md](./reference/core/QINGFLOW_CLI_EXPLORATION_REPORT.md)**。
|
|
333
347
|
|
|
334
348
|
#### `--query`(列表检索与回退)
|
|
335
349
|
|
|
@@ -358,7 +372,7 @@ qingflow --json task list \
|
|
|
358
372
|
|
|
359
373
|
### 记录:表结构、列表、分析取数
|
|
360
374
|
|
|
361
|
-
多级子命令 **不要** 整体加引号;`record list` / `record access` **运行时必须** `--view-id`(从 `app get` 的 `accessible_views`
|
|
375
|
+
多级子命令 **不要** 整体加引号;`record list` / `record access` **运行时必须** `--view-id`(从 `app get` 的 `accessible_views` 取)。最终统计结论、分析报告、趋势/排名/比例/分布必须按 **[record/analysis](./reference/record/analysis/README.md)** 使用 `record access -> Python/pandas`。
|
|
362
376
|
|
|
363
377
|
```bash
|
|
364
378
|
qingflow --json record schema browse \
|
|
@@ -386,9 +400,9 @@ qingflow --json record access \
|
|
|
386
400
|
| `record insert/update` | 可用 `--verify-write`;`record update --dry-run` **仅批量**且需 `--items-file` |
|
|
387
401
|
|
|
388
402
|
|
|
389
|
-
更多见 **[reference/QINGFLOW_CLI_MEMBER_CHEATSHEET.md](./reference/QINGFLOW_CLI_MEMBER_CHEATSHEET.md)**;**管理向**(检索/导入等)见 **[reference/QINGFLOW_CLI_ADMIN_CHEATSHEET.md](./reference/QINGFLOW_CLI_ADMIN_CHEATSHEET.md)**。
|
|
403
|
+
更多见 **[reference/QINGFLOW_CLI_MEMBER_CHEATSHEET.md](./reference/core/QINGFLOW_CLI_MEMBER_CHEATSHEET.md)**;**管理向**(检索/导入等)见 **[reference/QINGFLOW_CLI_ADMIN_CHEATSHEET.md](./reference/core/QINGFLOW_CLI_ADMIN_CHEATSHEET.md)**。
|
|
390
404
|
|
|
391
|
-
`record delete`
|
|
405
|
+
`record delete` 必须传可访问的系统 `--view-id system:*`;删除前可用 custom/system view 的 `record list/get` 精确定位 record_id,但真正删除提交不要传 `custom:*`、`list_type`,也不要省略系统视图上下文。完整规则见 **[RECORD_DELETE](./reference/record/QINGFLOW_CLI_RECORD_DELETE_WORKFLOW.md)**。
|
|
392
406
|
|
|
393
407
|
### 注销
|
|
394
408
|
|
|
@@ -405,10 +419,10 @@ qingflow auth logout --forget-persisted
|
|
|
405
419
|
| ---------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
|
|
406
420
|
| 未登录 / profile 未登录 | **再**走「认证方式」节,重试业务命令 |
|
|
407
421
|
| `record_list requires view_id` | 先 `app get --app-key`,取 `view_id` |
|
|
408
|
-
| JSON 内 `backend_code` / `error_code` | 区分配额、权限与参数错误;普通成员见上节「偏向管理」;非本技能速查表覆盖的报错见 **[reference/QINGFLOW_CLI_ADMIN_CHEATSHEET.md](./reference/QINGFLOW_CLI_ADMIN_CHEATSHEET.md)** |
|
|
422
|
+
| JSON 内 `backend_code` / `error_code` | 区分配额、权限与参数错误;普通成员见上节「偏向管理」;非本技能速查表覆盖的报错见 **[reference/QINGFLOW_CLI_ADMIN_CHEATSHEET.md](./reference/core/QINGFLOW_CLI_ADMIN_CHEATSHEET.md)** |
|
|
409
423
|
| `task get` / `task log` / `task report` / `task action` 报 config | 回到 `task list`,复制 `data.items[].task_id` 后再传 `--task-id`;不要用列表序号、record_id、workflow_node_id 或自行拼三键。详见 **「待办 … SOP」步骤 2** |
|
|
410
424
|
| 成员 + `custom:` 后纯数字视图 | 读数时**跳过**,换 `system:*` 或其它 `custom:*` |
|
|
411
|
-
| `record update` 报 **`apply_id must be positive`** 等而 `get`/`list` 正常 | 常为 **超大 `record_id`(超 JS 安全整数)** 下的 CLI 校验问题;见 **[reference/QINGFLOW_CLI_RECORD_UPDATE_WORKFLOW.md](./reference/QINGFLOW_CLI_RECORD_UPDATE_WORKFLOW.md)** |
|
|
425
|
+
| `record update` 报 **`apply_id must be positive`** 等而 `get`/`list` 正常 | 常为 **超大 `record_id`(超 JS 安全整数)** 下的 CLI 校验问题;见 **[reference/QINGFLOW_CLI_RECORD_UPDATE_WORKFLOW.md](./reference/record/QINGFLOW_CLI_RECORD_UPDATE_WORKFLOW.md)** |
|
|
412
426
|
|
|
413
427
|
|
|
414
428
|
---
|
|
@@ -417,7 +431,7 @@ qingflow auth logout --forget-persisted
|
|
|
417
431
|
|
|
418
432
|
**何时须细读引用、勿凭本节推测**:见**文首「硬约束(必读)」**。
|
|
419
433
|
|
|
420
|
-
> **适用范围**:普通/基本成员在只读或小范围写入里**较高概率可用**的形态;勿照抄旧应用搜索入口、无权的 **`import …`**(易 **40002 / IMPORT_\***);管理闭环见 **[reference/QINGFLOW_CLI_ADMIN_CHEATSHEET.md](./reference/QINGFLOW_CLI_ADMIN_CHEATSHEET.md)**。
|
|
434
|
+
> **适用范围**:普通/基本成员在只读或小范围写入里**较高概率可用**的形态;勿照抄旧应用搜索入口、无权的 **`import …`**(易 **40002 / IMPORT_\***);管理闭环见 **[reference/QINGFLOW_CLI_ADMIN_CHEATSHEET.md](./reference/core/QINGFLOW_CLI_ADMIN_CHEATSHEET.md)**。
|
|
421
435
|
|
|
422
436
|
**形态**:`qingflow [--profile 名] [--json] …` · 自动化**始终**建议 `--json` · `profile` 是根级执行上下文,若 `builder contract` 示例 JSON 里出现 `"profile": "default"`,不要复制进 CLI 的 `--*-file` 载荷;CLI 要写 `qingflow --profile default ...` · 嵌套子命令(如 `record schema browse`)**勿**整体加引号 · 包版本用 `qingflow --version`;需要结构化输出时用 `qingflow --json version`。
|
|
423
437
|
|
|
@@ -426,14 +440,14 @@ qingflow auth logout --forget-persisted
|
|
|
426
440
|
| **auth** | `auth whoami` · `auth use-credential --base-url "$QINGFLOW_BASE_URL" --credential-stdin --persist` · `auth login …`(见「失败恢复时的认证方式」)· `auth logout --forget-persisted` |
|
|
427
441
|
| **workspace** | `workspace list` · `workspace get --ws-id` · `workspace select`(慎用,可读数前不必;可能 **59004**) |
|
|
428
442
|
| **app / portal / view / chart** | `app list [--query 关键词]` → **`app get --app-key`**(`accessible_views` / `view_id`、`import_capability`)· `builder package list [--query 关键词]` → `builder package get --package-id` · `portal list` · `portal get --dash-key` · `view get --view-id`(只读视图元信息;`baseInfo` 或 `viewConfig` 只有 40002 / 40027 / 404 这类权限/缺失边界可用另一侧降级,非权限类后端错误不隐藏;解析 app 仅依赖同源 view/form 与可见应用树,不回退旧应用搜索)· `chart get --chart-id`(图表 `baseInfo` / 数据 / 配置分阶段读取;单个辅助阶段 40002 / 40027 / 404 只作为 warning,非权限类后端错误不隐藏) |
|
|
429
|
-
| **record** | `record schema insert`(新建记录 insert-ready schema,仅 `--app-key`)· **`browse`/`list`/`access`:`--app-key` + `--view-id`(缺一常 CONFIG)** · `record list --query ... [--query-field FIELD_ID] [--page-size N]` 用于候选定位/样本浏览 · `record get --record-id` 读详情页首屏上下文 · `record logs --record-id` 读完整数据/流程日志 JSONL · `record insert --items-file`(单条也是 items 一行)· `schema update --record-id [--view-id]` / **`update`**(单条 `--fields-file` **或** 批量 `--items-file`/`--dry-run`,二者勿混)· `export start/direct --view-id` 仅用于明确导出文件 ·
|
|
430
|
-
| **import** | `record schema import?` · `import template` → `verify` → `repair?` → `start`(**`being-enter-auditing` 必填**)→ `status`(**三者 selector 只选一**);导入权限预检的 `baseInfo` 只有 40002 / 40027 / 404 可降级为 unknown,非权限错误不能当成无导入权或继续执行;**链路与本机目录**只靠本节不够 → **[RECORD_IMPORT](./reference/QINGFLOW_CLI_RECORD_IMPORT_WORKFLOW.md)** |
|
|
431
|
-
| **builder** |
|
|
432
|
-
| **task**(须落盘见上文) | `task list [--task-box][--flow-status][--app-key][--query] --page --page-size`(**枚举、`--query`、与 `record` 视图口径勿混**:见上文 SOP · **[TASK_CONTEXT](./reference/QINGFLOW_CLI_TASK_CONTEXT_WORKFLOW.md)**)· **`get`/`log`/`report`/`action`**:默认只传 `task list` 返回的 **`data.items[].task_id`**;`report` 另须必选 **`--report-id`**;`action` **无 `--dry-run`** |
|
|
443
|
+
| **record** | `record schema insert`(新建记录 insert-ready schema,仅 `--app-key`)· **`browse`/`list`/`access`:`--app-key` + `--view-id`(缺一常 CONFIG)** · `record list --query ... [--query-field FIELD_ID] [--page-size N]` 用于候选定位/样本浏览 · `record get --record-id` 读详情页首屏上下文 · `record logs --record-id` 读完整数据/流程日志 JSONL · `record insert --items-file`(单条也是 items 一行)· `schema update --record-id [--view-id]` / **`update`**(单条 `--fields-file` **或** 批量 `--items-file`/`--dry-run`,二者勿混)· `record delete --app-key --record-id --view-id system:*` / `--record-ids-file` · `export start/direct --view-id` 仅用于明确导出文件 · **大 schema**:先 **[FIELD_DATA_TYPES](./reference/core/QINGFLOW_CLI_FIELD_DATA_TYPES.md)** / **[RECORD_CREATE](./reference/record/QINGFLOW_CLI_RECORD_CREATE_WORKFLOW.md)** / **[RECORD_UPDATE](./reference/record/QINGFLOW_CLI_RECORD_UPDATE_WORKFLOW.md)** / **[RECORD_DELETE](./reference/record/QINGFLOW_CLI_RECORD_DELETE_WORKFLOW.md)**,再 `-h` |
|
|
444
|
+
| **import** | `record schema import?` · `import template` → `verify` → `repair?` → `start`(**`being-enter-auditing` 必填**)→ `status`(**三者 selector 只选一**);导入权限预检的 `baseInfo` 只有 40002 / 40027 / 404 可降级为 unknown,非权限错误不能当成无导入权或继续执行;**链路与本机目录**只靠本节不够 → **[RECORD_IMPORT](./reference/record/QINGFLOW_CLI_RECORD_IMPORT_WORKFLOW.md)** |
|
|
445
|
+
| **builder** | **搭建/系统化配置**:先按 **[INDEX](./reference/00-INDEX.md)** / **[BUILDER](./reference/builder/README.md)** 选主路径,再读 `builder contract`。**完整系统/应用包**:`builder package apply --config-file` → `builder schema apply --apps-file`(唯一主写法 `{package_id, apps}`;每个应用写 `apps[].form`;同批 relation 只写 `target_app_ref` 指向 `client_key`;布局在 `form[].rows` 内,不单独提交)→ 视图(按钮随视图 `action_buttons` 写)→ 门户(缺报表时写 `chart`)→ 发布/回读。超时、`partial_success`、`write_executed=true`、`safe_to_retry=false` 或回读不完整时先 `readback_before_retry`,不得直接拆单应用重建、重放整批或创建 V2/测试/随机后缀绕过重名。**单应用**:新建走 `schema apply --form-file`,再按需求配置流程/视图。更新动作归入对应资源文档:字段 [30](./reference/builder/30-schema-fields.md)、布局维护 [40](./reference/builder/40-layout.md)、视图 [50](./reference/builder/50-views.md)、报表 [60](./reference/builder/60-charts.md)、门户 [70](./reference/builder/70-portal.md)、关联资源/非主链路按钮维护 [80](./reference/builder/80-buttons-associated-resources.md)、流程 [90](./reference/builder/90-workflow.md)、发布 [99](./reference/builder/99-publish-verify.md)。 |
|
|
446
|
+
| **task**(须落盘见上文) | `task list [--task-box][--flow-status][--app-key][--query] --page --page-size`(**枚举、`--query`、与 `record` 视图口径勿混**:见上文 SOP · **[TASK_CONTEXT](./reference/task/QINGFLOW_CLI_TASK_CONTEXT_WORKFLOW.md)**)· **`get`/`log`/`report`/`action`**:默认只传 `task list` 返回的 **`data.items[].task_id`**;`report` 另须必选 **`--report-id`**;`action` **无 `--dry-run`** |
|
|
433
447
|
|
|
434
448
|
**高发必败**:旧应用搜索入口 · **`record list`/`browse`/`access` 缺 `--view-id`** · **`task report` 缺 `--report-id`** · **`record update` 批量与单条参数混用**。
|
|
435
449
|
|
|
436
|
-
更多成员策略:**[reference/QINGFLOW_CLI_MEMBER_CHEATSHEET.md](./reference/QINGFLOW_CLI_MEMBER_CHEATSHEET.md)** · 一次性长模板:**[reference/QINGFLOW_CLI_ONE_SHOT_CHEATSHEET.md](./reference/QINGFLOW_CLI_ONE_SHOT_CHEATSHEET.md)** · 对齐说明:**[reference/QINGFLOW_CLI_EXPLORATION_REPORT.md](./reference/QINGFLOW_CLI_EXPLORATION_REPORT.md)**。
|
|
450
|
+
更多成员策略:**[reference/QINGFLOW_CLI_MEMBER_CHEATSHEET.md](./reference/core/QINGFLOW_CLI_MEMBER_CHEATSHEET.md)** · 一次性长模板:**[reference/QINGFLOW_CLI_ONE_SHOT_CHEATSHEET.md](./reference/core/QINGFLOW_CLI_ONE_SHOT_CHEATSHEET.md)** · 对齐说明:**[reference/QINGFLOW_CLI_EXPLORATION_REPORT.md](./reference/core/QINGFLOW_CLI_EXPLORATION_REPORT.md)**。
|
|
437
451
|
|
|
438
452
|
---
|
|
439
453
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
identity: qingflow_cli
|
|
2
2
|
type: skill
|
|
3
|
-
description: 「使用 qingflow CLI 的任何命令或自动化脚本前必须先调用本 Skill
|
|
3
|
+
description: 「使用 qingflow CLI 的任何命令或自动化脚本前必须先调用本 Skill」。Qingflow CLI 包以本 Skill 作为 CLI 主入口;record/app-builder/task/workflow 等相关说明按场景组织在 reference 子目录。涵盖安装、执行上下文失败恢复、task/record/import/builder 查询落盘规则、普通成员读数速通、record list 模糊定位、record get 详情上下文、record access 分析取数、record insert/update/delete/import、schema 字段类型、任务上下文 SOP。Builder reference 按智能体任务路径组织:单应用、完整系统/应用包、字段、已有应用布局维护、视图、报表/QingBI、门户、关联资源、流程、发布校验;完整系统创建主链路是 package apply -> schema apply --apps-file,使用 apps[].form 一次声明字段、relation 和布局;按钮随视图 action_buttons 声明;更新动作并入对应资源文档,批量读、批量写、局部改作为资源内写法变体;默认不把登录或工作区校验作为业务前置
|
|
4
4
|
tags:
|
|
5
5
|
- cli
|
|
6
6
|
- qingflow
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Qingflow CLI Reference Index
|
|
2
|
+
|
|
3
|
+
Use this file as the first routing page after `SKILL.md` when the task is not a trivial one-command lookup.
|
|
4
|
+
|
|
5
|
+
## Route by user goal
|
|
6
|
+
|
|
7
|
+
| User goal | Read first | Then read |
|
|
8
|
+
|-----------|------------|-----------|
|
|
9
|
+
| Read records, locate one record, inspect schema | [core/data retrieval](./core/QINGFLOW_CLI_DATA_RETRIEVAL_WORKFLOW.md) | [core/field data types](./core/QINGFLOW_CLI_FIELD_DATA_TYPES.md) |
|
|
10
|
+
| Create records | [record/create](./record/QINGFLOW_CLI_RECORD_CREATE_WORKFLOW.md) | [record/insert details](./record/insert/README.md) |
|
|
11
|
+
| Update records | [record/update](./record/QINGFLOW_CLI_RECORD_UPDATE_WORKFLOW.md) | [core/field data types](./core/QINGFLOW_CLI_FIELD_DATA_TYPES.md) |
|
|
12
|
+
| Delete records | [record/delete](./record/QINGFLOW_CLI_RECORD_DELETE_WORKFLOW.md) | - |
|
|
13
|
+
| Import records in bulk | [record/import](./record/QINGFLOW_CLI_RECORD_IMPORT_WORKFLOW.md) | - |
|
|
14
|
+
| Statistical analysis, ratios, rankings, trends | [record/analysis](./record/analysis/README.md) | [analysis patterns](./record/analysis/analysis-patterns.md) |
|
|
15
|
+
| Task/todo context or task action | [task context](./task/QINGFLOW_CLI_TASK_CONTEXT_WORKFLOW.md) | [task ops](./task/ops/README.md) |
|
|
16
|
+
| Build or modify apps, views, charts, portal, workflow | [builder index](./builder/README.md) | The resource document named there |
|
|
17
|
+
|
|
18
|
+
## Builder task shortcuts
|
|
19
|
+
|
|
20
|
+
| Builder task | Main document |
|
|
21
|
+
|--------------|---------------|
|
|
22
|
+
| One app end-to-end | [builder/single app](./builder/10-build-single-app.md) |
|
|
23
|
+
| Multi-app system / app package | [builder/complete system](./builder/20-build-complete-system.md) |
|
|
24
|
+
| Fields, schema, data title/cover | [builder/schema fields](./builder/30-schema-fields.md) |
|
|
25
|
+
| Form layout | [builder/layout](./builder/40-layout.md) |
|
|
26
|
+
| Views and view filters | [builder/views](./builder/50-views.md) |
|
|
27
|
+
| QingBI charts/reports | [builder/charts](./builder/60-charts.md) |
|
|
28
|
+
| Portal/workbench | [builder/portal](./builder/70-portal.md) |
|
|
29
|
+
| Associated views/reports and current-record matching | [builder/associated resources](./builder/80-buttons-associated-resources.md) |
|
|
30
|
+
| Workflow | [builder/workflow](./builder/90-workflow.md) |
|
|
31
|
+
| Publish and readback verification | [builder/publish verify](./builder/99-publish-verify.md) |
|
|
32
|
+
|
|
33
|
+
## Reading rule
|
|
34
|
+
|
|
35
|
+
Pick the document for the target resource first. Do not start from historical playbooks or old MCP skill names. If a task says "update", route by the resource being updated: fields -> schema fields, views -> views, portal -> portal, charts -> charts, workflow -> workflow.
|