@stalfh233/omc-cli 0.4.15 → 0.4.16
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/LICENSE +21 -21
- package/README.md +297 -297
- package/coverage/m1-coverage-manifest-v1.json +1278 -1277
- package/dist/args.js +0 -0
- package/dist/artifacts.js +0 -0
- package/dist/bench/call-face-eval.js +0 -0
- package/dist/bench/context-attribution.js +0 -0
- package/dist/bench/discovery-cost-eval.js +0 -0
- package/dist/bench/driver.js +0 -0
- package/dist/bench/evals.js +0 -0
- package/dist/bench/fake-http-server.js +0 -0
- package/dist/bench/instrument.js +0 -0
- package/dist/bench/intent-face-eval.js +40 -40
- package/dist/bench/run.js +0 -0
- package/dist/bench/scenario.js +0 -0
- package/dist/bench/types.js +0 -0
- package/dist/bi-wire.js +0 -0
- package/dist/bizservice-config.js +38 -13
- package/dist/call.js +0 -0
- package/dist/capability-absences.js +0 -0
- package/dist/capability-overview.js +2 -2
- package/dist/capability-shape.js +0 -0
- package/dist/cli-contract.js +0 -0
- package/dist/cli-output.js +41 -15
- package/dist/cli.js +22 -2
- package/dist/code-rules.js +0 -0
- package/dist/command-transport.js +0 -0
- package/dist/config-store.js +0 -0
- package/dist/context.js +0 -0
- package/dist/contract-consistency.js +0 -0
- package/dist/contract-resources.js +0 -0
- package/dist/coverage-consistency.js +0 -0
- package/dist/coverage-registry.js +0 -0
- package/dist/coverage.js +0 -0
- package/dist/data-list-filter.js +0 -0
- package/dist/discovery.js +0 -0
- package/dist/endpoints.js +2 -0
- package/dist/environment-policy.js +0 -0
- package/dist/execution-metadata.js +4 -4
- package/dist/fake/app.js +0 -0
- package/dist/fake/b2-registration.js +26 -0
- package/dist/fake/businessrule.js +0 -0
- package/dist/fake/datarule.js +0 -0
- package/dist/fake/dictionary.js +0 -0
- package/dist/fake/environment.js +0 -0
- package/dist/fake/field.js +0 -0
- package/dist/fake/form.js +0 -0
- package/dist/fake/index.js +0 -0
- package/dist/fake/list-view.js +0 -0
- package/dist/fake/model.js +0 -0
- package/dist/fake/online-js.js +0 -0
- package/dist/fake/report.js +0 -0
- package/dist/fake/routes.js +0 -0
- package/dist/fake/rule-lifecycle.js +0 -0
- package/dist/fake/runtime-data.js +0 -0
- package/dist/fake/state.js +0 -0
- package/dist/fake/workflow.js +0 -0
- package/dist/field-change.js +0 -0
- package/dist/field-families.js +0 -0
- package/dist/form-layout.js +0 -0
- package/dist/form-support.js +12 -2
- package/dist/goal-routes.js +0 -0
- package/dist/governed-execution.js +0 -0
- package/dist/human-summary.js +0 -0
- package/dist/identity.js +0 -0
- package/dist/intent/baseline.js +0 -0
- package/dist/intent/capabilities/bizservice.js +0 -0
- package/dist/intent/capabilities/businessrule.js +0 -0
- package/dist/intent/capabilities/datarule.js +0 -0
- package/dist/intent/capabilities/field.js +0 -0
- package/dist/intent/capabilities/form.js +0 -0
- package/dist/intent/capabilities/index.js +0 -0
- package/dist/intent/capabilities/listview.js +0 -0
- package/dist/intent/capabilities/model.js +0 -0
- package/dist/intent/capabilities/onlinejs.js +0 -0
- package/dist/intent/capabilities/report.js +0 -0
- package/dist/intent/capabilities/workflow.js +0 -0
- package/dist/intent/capability.js +0 -0
- package/dist/intent/cli.js +0 -0
- package/dist/intent/compare.js +0 -0
- package/dist/intent/compiler.js +0 -0
- package/dist/intent/dsl.js +0 -0
- package/dist/intent/plan-file.js +0 -0
- package/dist/intent/readback.js +0 -0
- package/dist/intent/schema.js +0 -0
- package/dist/intent/validation.js +0 -0
- package/dist/intent/yaml.js +0 -0
- package/dist/json-column.js +0 -0
- package/dist/lanes/app-contract.js +0 -0
- package/dist/lanes/app-coverage.js +0 -0
- package/dist/lanes/app.js +0 -0
- package/dist/lanes/apply-changes.js +14 -1
- package/dist/lanes/b2-registration-contract.js +5 -0
- package/dist/lanes/b2-registration-coverage.js +1 -0
- package/dist/lanes/b2-registration.js +55 -6
- package/dist/lanes/businessrule-contract.js +0 -0
- package/dist/lanes/businessrule-coverage.js +0 -0
- package/dist/lanes/businessrule.js +0 -0
- package/dist/lanes/contract-support.js +0 -0
- package/dist/lanes/coverage-declaration.js +0 -0
- package/dist/lanes/datarule-contract.js +0 -0
- package/dist/lanes/datarule-coverage.js +0 -0
- package/dist/lanes/datarule-protocol.js +0 -0
- package/dist/lanes/datarule.js +0 -0
- package/dist/lanes/dictionary-contract.js +0 -0
- package/dist/lanes/dictionary-coverage.js +0 -0
- package/dist/lanes/dictionary.js +0 -0
- package/dist/lanes/environment-contract.js +0 -0
- package/dist/lanes/environment-coverage.js +0 -0
- package/dist/lanes/environment.js +0 -0
- package/dist/lanes/field-contract.js +3 -2
- package/dist/lanes/field-coverage.js +0 -0
- package/dist/lanes/field.js +268 -172
- package/dist/lanes/form-contract.js +2 -2
- package/dist/lanes/form-coverage.js +0 -0
- package/dist/lanes/form.js +4 -0
- package/dist/lanes/lane-ids.js +0 -0
- package/dist/lanes/list-view-contract.js +0 -0
- package/dist/lanes/list-view-coverage.js +0 -0
- package/dist/lanes/list-view-shapes.js +0 -0
- package/dist/lanes/list-view.js +0 -0
- package/dist/lanes/meta-contract.js +0 -0
- package/dist/lanes/meta.js +11 -1
- package/dist/lanes/model-contract.js +0 -0
- package/dist/lanes/model-coverage.js +0 -0
- package/dist/lanes/model.js +1 -1
- package/dist/lanes/online-js-contract.js +0 -0
- package/dist/lanes/online-js-coverage.js +0 -0
- package/dist/lanes/online-js.js +0 -0
- package/dist/lanes/report-contract.js +0 -0
- package/dist/lanes/report-coverage.js +0 -0
- package/dist/lanes/report.js +0 -0
- package/dist/lanes/rule-graph.js +0 -0
- package/dist/lanes/rule-lifecycle-contract.js +0 -0
- package/dist/lanes/rule-lifecycle-coverage.js +0 -0
- package/dist/lanes/rule-lifecycle.js +0 -0
- package/dist/lanes/runtime-data-contract.js +0 -0
- package/dist/lanes/runtime-data-coverage.js +0 -0
- package/dist/lanes/runtime-data.js +0 -0
- package/dist/lanes/workflow-contract.js +0 -0
- package/dist/lanes/workflow-coverage.js +0 -0
- package/dist/lanes/workflow.js +2 -0
- package/dist/omc-core-lazy.js +6 -0
- package/dist/online-js-layout.js +0 -0
- package/dist/online-js-source.js +28 -28
- package/dist/package-tool.js +0 -0
- package/dist/package.js +0 -0
- package/dist/plan.js +11 -1
- package/dist/read.js +0 -0
- package/dist/redact.js +0 -0
- package/dist/rule-support.js +0 -0
- package/dist/runtime-support.js +0 -0
- package/dist/service-doctor.js +28 -0
- package/dist/session-manager.js +0 -0
- package/dist/session.js +38 -12
- package/dist/skills.js +0 -0
- package/dist/sqlite-warning-filter.js +27 -0
- package/dist/support.js +0 -0
- package/dist/tool-types.js +0 -0
- package/dist/tools.js +0 -0
- package/dist/usage-log.js +4 -0
- package/dist/wire.js +0 -0
- package/dist/workflow-support.js +0 -0
- package/dist/write-lease.js +0 -0
- package/dist/write-lock.js +0 -0
- package/dist/write.js +24 -2
- package/dist/zip.js +0 -0
- package/docs/tool-surface-map.md +42 -42
- package/package.json +71 -71
- package/skills/omc-acceptance-criteria.md +47 -47
- package/skills/omc-business-configuration.md +258 -257
- package/skills/omc-capabilities.md +197 -197
- package/skills/omc-capability-scouting.md +55 -55
- package/skills/omc-config-draft-review.md +171 -171
- package/skills/omc-five-piece-flow.md +35 -35
- package/skills/omc-glossary.md +86 -86
- package/skills/omc-refusals.md +110 -110
- package/skills/omc-requirement-analysis.md +161 -161
- package/skills/omc-requirement-vocabulary.md +51 -51
- package/skills/omc-start-here.md +82 -82
- package/skills/omc-tool-selection.md +119 -119
- package/skills/omc-write-hazards.md +88 -87
- package/dist/approval-token.js +0 -102
- package/dist/server.js +0 -92
|
@@ -1,171 +1,171 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: omc-config-draft-review
|
|
3
|
-
description: Draft-before-write protocol — use before ANY CLI write (model, field, form, view, data rule, business rule, workflow, service, data). Present the intended design in plain language and get explicit human approval first; revise the draft freely while it is unapproved. This is the human gate; the environment writable permission is the machine gate.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Draft Review (草稿确认) — the human gate before every write
|
|
7
|
-
|
|
8
|
-
The agent owns the design; the CLI materialises it. **Before any write call**,
|
|
9
|
-
present a plain-language draft of exactly what will be written and wait for
|
|
10
|
-
explicit approval. An unapproved draft is free to revise; nothing touches the
|
|
11
|
-
environment until the human says write.
|
|
12
|
-
|
|
13
|
-
This skill is the conversational human gate. The machine-side permission check
|
|
14
|
-
comes after it: `writable:false` refuses, and a production write additionally
|
|
15
|
-
requires `confirmProduction:true`:
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
先定参数 → 由参数生成草稿 → 人工确认 → 写入 → 读回核对
|
|
19
|
-
(写前你已确认的,就是即将发出的那份参数)
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## 0. Approval lifecycle — package granularity, interruption, one notice
|
|
23
|
-
|
|
24
|
-
- **粒度 = 变更包(master approval)**:一份草稿枚举本包全部增删改(含清理),逐条列出;
|
|
25
|
-
人工一次批准授权**整包**顺序执行。批一次 ≠ 看不清 —— 每一条都必须在草稿里可见。
|
|
26
|
-
- **中断作废**:执行中断(断网、会话重启、停损保留)后,已获的批准**随之作废**;
|
|
27
|
-
恢复执行剩余步骤前必须**重新出草稿、重新获准**。看不见的时段里不得有旧批准继续生效。
|
|
28
|
-
- **一次收口报告(run completion notice)**:一个 run 只在结束(或最后动作完成)时发
|
|
29
|
-
一条结构化收口报告(做了什么/结果/残留);中间步骤不打扰用户。执行过程中的说明是
|
|
30
|
-
协调信息,不是通知。
|
|
31
|
-
|
|
32
|
-
## 1. Unit — one coherent change per draft
|
|
33
|
-
|
|
34
|
-
One draft per coherent change (e.g. "build the inspection model + its form").
|
|
35
|
-
A single draft may cover **several** designs; group them by **design surface**:
|
|
36
|
-
|
|
37
|
-
| 节 | 设计域 | 对应写工具 |
|
|
38
|
-
| --- | --- | --- |
|
|
39
|
-
| 模型 | 模型设计 | `model.create` / `model.delete` |
|
|
40
|
-
| 字段 | 表单字段设计 | `field.create` / `field.update` / `field.publish` |
|
|
41
|
-
| 表单 | 表单设计 | `form.draft` / `form.publish` |
|
|
42
|
-
| 数据规则 | 字段级数据规则 | `datarule.create` / `update` / `delete` |
|
|
43
|
-
| 业务规则 | 业务规则配置(触发器+图) | `rule.save` / `rule.enable` / `configure_rule` |
|
|
44
|
-
| 视图 | 列表视图设计 | `listview.create` / `configure` / `delete` |
|
|
45
|
-
| 流程 | 流程设计 | `workflow.create` / `update` / `publish` / `bindRule` |
|
|
46
|
-
| 在线JS | 表单脚本 | `onlinejs.compose`(唯一可用;`draft`/`publish` 已冻结、调用即拒) |
|
|
47
|
-
| 服务 | 后端服务注册 | `service.register` / `service.delete` |
|
|
48
|
-
| 数据 | 运行时数据(夹具) | `data.save` / `submit` / `update` / `delete` |
|
|
49
|
-
|
|
50
|
-
**Every write entry point takes this gate — low-level atoms and the high-level
|
|
51
|
-
`configure_model` / `configure_form` / `configure_rule` alike.**
|
|
52
|
-
|
|
53
|
-
## 2. Language — Chinese design prose, codes on identity keys
|
|
54
|
-
|
|
55
|
-
- Field/control **types in Chinese**: 短文本、长文本、数值、日期、单选、多选、
|
|
56
|
-
下拉、复选、关联单选、关联多选、人员单选、部门单选、附件、地址、超链接、布尔、公式…
|
|
57
|
-
- Relations say **what maps where**, e.g.
|
|
58
|
-
`设备(device) 关联单选 → 设备台账(eq_device),带出 设备名称(deviceName)`.
|
|
59
|
-
- **Attach the code for identity keys** (model schemaCode, field code, choice
|
|
60
|
-
values, relation target code) — these are written verbatim and can collide.
|
|
61
|
-
Pure display labels may omit the code.
|
|
62
|
-
- Each section is headed with its design surface + the tool it maps to, so the
|
|
63
|
-
reviewer can point at one section precisely.
|
|
64
|
-
|
|
65
|
-
## 3. Draft template
|
|
66
|
-
|
|
67
|
-
```
|
|
68
|
-
目标:<一句话业务目的>
|
|
69
|
-
环境:<environment> 应用:<application code>
|
|
70
|
-
|
|
71
|
-
> 选应用前先 `discover_environment` 看它的门户分组归属:若 `portalHidden:true`
|
|
72
|
-
> (落在兜底分组 code=all,或分组解析不到),门户按具名分组渲染、该应用不可见——
|
|
73
|
-
> 先用 `app.update {code, groupId}` 迁入具名分组,再动工。别只在接口里确认应用存在。
|
|
74
|
-
|
|
75
|
-
【模型设计】 (model.create)
|
|
76
|
-
· OMC走查(omc_mcp_walk) 类型:列表
|
|
77
|
-
|
|
78
|
-
【表单字段设计】 (field.create → field.publish)
|
|
79
|
-
· 编号(walk_no) 短文本 列表显示
|
|
80
|
-
· 数量(walk_qty) 数值
|
|
81
|
-
· 类别(walk_cat) 单选 选项:一类 / 二类 / 三类
|
|
82
|
-
· 备注(walk_remark) 长文本 非必填
|
|
83
|
-
|
|
84
|
-
【表单设计】 (form.draft → form.publish)
|
|
85
|
-
· 默认表单,编码 = 模型 code(omc_mcp_walk)
|
|
86
|
-
· 布局:标题 + 系统行(创建人/创建时间/单据号)+ 业务分组
|
|
87
|
-
· 控件:类别 必填;其他默认;字段按上序一行一个
|
|
88
|
-
|
|
89
|
-
【业务规则配置】 (rule.save → rule.enable)
|
|
90
|
-
· 触发:数据事件 新增(提交后)
|
|
91
|
-
· 图:开始 → 完成态守卫(guardProjectEditable) → 计算实际产出(actualOutput) → 系统新增 → 结束
|
|
92
|
-
· 入映射:申报金额(declaredAmount) → declaredAmount,信用等级(creditLevel) → creditLevel
|
|
93
|
-
· 出映射:actualOutput → actualOutput
|
|
94
|
-
· 铁律:动作节点排在系统节点之前(否则输出不落库)
|
|
95
|
-
|
|
96
|
-
【视图设计】 (listview.configure)
|
|
97
|
-
· 列:编号 / 数量 / 类别
|
|
98
|
-
· 条件:类别 下拉;排序:编号 倒序
|
|
99
|
-
· 按钮:沿用平台默认(新增 / 删除)
|
|
100
|
-
|
|
101
|
-
【流程设计】 (workflow.create → update → publish → bindRule)
|
|
102
|
-
· 模板:开始 → 审批节点(审批人:<角色>)→ 结束
|
|
103
|
-
· 绑定:提交事件 → <ruleCode>
|
|
104
|
-
|
|
105
|
-
【清理授权】 (data.delete / rule.delete / model.delete)
|
|
106
|
-
· 验收后删除:本条数据、该规则、模型 omc_mcp_walk(清单外对象另行报备)
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
## 4. Review flow
|
|
110
|
-
|
|
111
|
-
1. Agent posts the draft(s) and asks **“确认写入 / 需要修改?”**
|
|
112
|
-
2. Reviewer answers:
|
|
113
|
-
- **确认** (nothing named) → the whole batch is approved → write.
|
|
114
|
-
- **点名要改第 N 张** → **整批挂起**,只改那张,改完重新全批过。
|
|
115
|
-
3. **先定参数 → 由参数生成草稿**:草稿里的类型/code/目标/映射,必须就是要发出的
|
|
116
|
-
参数值;不要先写一段话、执行时另拼参数。
|
|
117
|
-
4. After writing: **read back and compare**. If the readback differs from the
|
|
118
|
-
approved draft, **stop and report** — never silently accept or auto-retry.
|
|
119
|
-
|
|
120
|
-
## 5. Fingerprint re-check
|
|
121
|
-
|
|
122
|
-
A draft carries the environment fingerprint captured when it was written.
|
|
123
|
-
**Before executing an approved draft, re-check that fingerprint**; if it
|
|
124
|
-
changed, the draft is void — re-discover and re-present. No machine token
|
|
125
|
-
enforces this anymore, so the check is an explicit agent step, not a refusal
|
|
126
|
-
you can wait for.
|
|
127
|
-
|
|
128
|
-
## 6. Exemptions
|
|
129
|
-
|
|
130
|
-
- **空转写**(读回证明本次写不会改变任何字段/结构,如重复发布已发布表单)免草稿,
|
|
131
|
-
报一行「无变更」即可。**只要任一处会变,就回到完整草稿。**
|
|
132
|
-
- **免草稿开关只由人工主动说**(如「本轮免草稿」)才生效;agent 不得自行提议或默认。
|
|
133
|
-
豁免仅限**本轮新建的 `omc_mcp_*` 夹具**;**删除既有对象、改真实域,永不豁免**。
|
|
134
|
-
豁免期间每步仍报一行「做了什么」。
|
|
135
|
-
- **预授权任务书(自治执行)**:当你在**非交互**上下文运行(被委派的子代理 / 批处理 / 一次
|
|
136
|
-
性任务),且任务书本身就是一份完整变更包、并声明已批准(如项目 `AGENTS.md` 写明
|
|
137
|
-
「本基准任务书即已批准的需求草稿,可直接执行」)时——**任务书即草稿即批准**:执行前按
|
|
138
|
-
§3 粒度把变更包原样列一遍作为记录,然后**直接写入**。**不要停下来问「确认写入」**:
|
|
139
|
-
非交互上下文没有人类回合会回答,等待 = 永久停滞(实测:子代理因此空转到任务失败)。
|
|
140
|
-
范围以任务书为界,任务书之外的增删改仍需新草稿。指纹重核与写后读回照旧。
|
|
141
|
-
此豁免**要求任务书显式声明预授权**;agent 不得自行把交互会话当成自治上下文。
|
|
142
|
-
|
|
143
|
-
## 7. Cleanup
|
|
144
|
-
|
|
145
|
-
清理授权捆在创建授权里:创建草稿写明「验收后删除这些」,确认即一并授权。
|
|
146
|
-
**清单外的对象仍要单独出草稿。** 清理只碰自有 `omc_mcp_*` 夹具。
|
|
147
|
-
|
|
148
|
-
## 8. Canonical configuration order(规范配置顺序)
|
|
149
|
-
|
|
150
|
-
```
|
|
151
|
-
0. 选定应用并确认门户分组可见(discover_environment 的 portalHidden)
|
|
152
|
-
1. model.create (被引用的目标模型最先建)
|
|
153
|
-
2. field.create (全部字段;关联字段带 displayField + displayFieldType)
|
|
154
|
-
3. field.publish (模型级:一次发布该模型全部草稿字段)
|
|
155
|
-
4. form.draft → form.publish (脚手架依赖已发布字段;重跑必须带 fieldCodes)
|
|
156
|
-
5. listview.create/configure (依赖已发布字段;query/update 自动 publish=TRUE,无 draft→publish 两态)
|
|
157
|
-
6. rule.save → rule.enable (保存 ≠ 发布 ≠ 可见;enable 才 publish+启用,或 rule.save 传 publish:true)
|
|
158
|
-
7. workflow(依赖模型与字段就绪)
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
视图与表单脚手架都从**发布面**读字段元数据——字段未发布,列/控件就生成不出来。
|
|
162
|
-
`data.list` 对未配列的自定义字段投影为 null(显示面缺配置,不是数据缺失);核值用 `data.load`。
|
|
163
|
-
字段级变更(如关联展示字段)改完后,必须重走 `form.draft` → `form.publish` 运行时才生效(表单控件快照字段 options
|
|
164
|
-
|
|
165
|
-
## Invariants
|
|
166
|
-
|
|
167
|
-
- 未确认不写入;改任何一张 = 整批暂停,重新全批通过才写。
|
|
168
|
-
- 批准跟着变更包走:一次批准一整包;中断后批准作废,恢复需重新草稿、重新确认。
|
|
169
|
-
- 草稿里的身份键带 code;类型用中文;关联写明映射目标。
|
|
170
|
-
- 执行前重核环境指纹,变了就重出草稿;写后读回核对。
|
|
171
|
-
- 一个 run 只发一次收口报告;生产环境可写但每笔必须显式带 `confirmProduction:true`。
|
|
1
|
+
---
|
|
2
|
+
name: omc-config-draft-review
|
|
3
|
+
description: Draft-before-write protocol — use before ANY CLI write (model, field, form, view, data rule, business rule, workflow, service, data). Present the intended design in plain language and get explicit human approval first; revise the draft freely while it is unapproved. This is the human gate; the environment writable permission is the machine gate.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Draft Review (草稿确认) — the human gate before every write
|
|
7
|
+
|
|
8
|
+
The agent owns the design; the CLI materialises it. **Before any write call**,
|
|
9
|
+
present a plain-language draft of exactly what will be written and wait for
|
|
10
|
+
explicit approval. An unapproved draft is free to revise; nothing touches the
|
|
11
|
+
environment until the human says write.
|
|
12
|
+
|
|
13
|
+
This skill is the conversational human gate. The machine-side permission check
|
|
14
|
+
comes after it: `writable:false` refuses, and a production write additionally
|
|
15
|
+
requires `confirmProduction:true`:
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
先定参数 → 由参数生成草稿 → 人工确认 → 写入 → 读回核对
|
|
19
|
+
(写前你已确认的,就是即将发出的那份参数)
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## 0. Approval lifecycle — package granularity, interruption, one notice
|
|
23
|
+
|
|
24
|
+
- **粒度 = 变更包(master approval)**:一份草稿枚举本包全部增删改(含清理),逐条列出;
|
|
25
|
+
人工一次批准授权**整包**顺序执行。批一次 ≠ 看不清 —— 每一条都必须在草稿里可见。
|
|
26
|
+
- **中断作废**:执行中断(断网、会话重启、停损保留)后,已获的批准**随之作废**;
|
|
27
|
+
恢复执行剩余步骤前必须**重新出草稿、重新获准**。看不见的时段里不得有旧批准继续生效。
|
|
28
|
+
- **一次收口报告(run completion notice)**:一个 run 只在结束(或最后动作完成)时发
|
|
29
|
+
一条结构化收口报告(做了什么/结果/残留);中间步骤不打扰用户。执行过程中的说明是
|
|
30
|
+
协调信息,不是通知。
|
|
31
|
+
|
|
32
|
+
## 1. Unit — one coherent change per draft
|
|
33
|
+
|
|
34
|
+
One draft per coherent change (e.g. "build the inspection model + its form").
|
|
35
|
+
A single draft may cover **several** designs; group them by **design surface**:
|
|
36
|
+
|
|
37
|
+
| 节 | 设计域 | 对应写工具 |
|
|
38
|
+
| --- | --- | --- |
|
|
39
|
+
| 模型 | 模型设计 | `model.create` / `model.delete` |
|
|
40
|
+
| 字段 | 表单字段设计 | `field.create` / `field.update` / `field.publish` |
|
|
41
|
+
| 表单 | 表单设计 | `form.draft` / `form.publish` |
|
|
42
|
+
| 数据规则 | 字段级数据规则 | `datarule.create` / `update` / `delete` |
|
|
43
|
+
| 业务规则 | 业务规则配置(触发器+图) | `rule.save` / `rule.enable` / `configure_rule` |
|
|
44
|
+
| 视图 | 列表视图设计 | `listview.create` / `configure` / `delete` |
|
|
45
|
+
| 流程 | 流程设计 | `workflow.create` / `update` / `publish` / `bindRule` |
|
|
46
|
+
| 在线JS | 表单脚本 | `onlinejs.compose`(唯一可用;`draft`/`publish` 已冻结、调用即拒) |
|
|
47
|
+
| 服务 | 后端服务注册 | `service.register` / `service.delete` |
|
|
48
|
+
| 数据 | 运行时数据(夹具) | `data.save` / `submit` / `update` / `delete` |
|
|
49
|
+
|
|
50
|
+
**Every write entry point takes this gate — low-level atoms and the high-level
|
|
51
|
+
`configure_model` / `configure_form` / `configure_rule` alike.**
|
|
52
|
+
|
|
53
|
+
## 2. Language — Chinese design prose, codes on identity keys
|
|
54
|
+
|
|
55
|
+
- Field/control **types in Chinese**: 短文本、长文本、数值、日期、单选、多选、
|
|
56
|
+
下拉、复选、关联单选、关联多选、人员单选、部门单选、附件、地址、超链接、布尔、公式…
|
|
57
|
+
- Relations say **what maps where**, e.g.
|
|
58
|
+
`设备(device) 关联单选 → 设备台账(eq_device),带出 设备名称(deviceName)`.
|
|
59
|
+
- **Attach the code for identity keys** (model schemaCode, field code, choice
|
|
60
|
+
values, relation target code) — these are written verbatim and can collide.
|
|
61
|
+
Pure display labels may omit the code.
|
|
62
|
+
- Each section is headed with its design surface + the tool it maps to, so the
|
|
63
|
+
reviewer can point at one section precisely.
|
|
64
|
+
|
|
65
|
+
## 3. Draft template
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
目标:<一句话业务目的>
|
|
69
|
+
环境:<environment> 应用:<application code>
|
|
70
|
+
|
|
71
|
+
> 选应用前先 `discover_environment` 看它的门户分组归属:若 `portalHidden:true`
|
|
72
|
+
> (落在兜底分组 code=all,或分组解析不到),门户按具名分组渲染、该应用不可见——
|
|
73
|
+
> 先用 `app.update {code, groupId}` 迁入具名分组,再动工。别只在接口里确认应用存在。
|
|
74
|
+
|
|
75
|
+
【模型设计】 (model.create)
|
|
76
|
+
· OMC走查(omc_mcp_walk) 类型:列表
|
|
77
|
+
|
|
78
|
+
【表单字段设计】 (field.create → field.publish)
|
|
79
|
+
· 编号(walk_no) 短文本 列表显示
|
|
80
|
+
· 数量(walk_qty) 数值
|
|
81
|
+
· 类别(walk_cat) 单选 选项:一类 / 二类 / 三类
|
|
82
|
+
· 备注(walk_remark) 长文本 非必填
|
|
83
|
+
|
|
84
|
+
【表单设计】 (form.draft → form.publish)
|
|
85
|
+
· 默认表单,编码 = 模型 code(omc_mcp_walk)
|
|
86
|
+
· 布局:标题 + 系统行(创建人/创建时间/单据号)+ 业务分组
|
|
87
|
+
· 控件:类别 必填;其他默认;字段按上序一行一个
|
|
88
|
+
|
|
89
|
+
【业务规则配置】 (rule.save → rule.enable)
|
|
90
|
+
· 触发:数据事件 新增(提交后)
|
|
91
|
+
· 图:开始 → 完成态守卫(guardProjectEditable) → 计算实际产出(actualOutput) → 系统新增 → 结束
|
|
92
|
+
· 入映射:申报金额(declaredAmount) → declaredAmount,信用等级(creditLevel) → creditLevel
|
|
93
|
+
· 出映射:actualOutput → actualOutput
|
|
94
|
+
· 铁律:动作节点排在系统节点之前(否则输出不落库)
|
|
95
|
+
|
|
96
|
+
【视图设计】 (listview.configure)
|
|
97
|
+
· 列:编号 / 数量 / 类别
|
|
98
|
+
· 条件:类别 下拉;排序:编号 倒序
|
|
99
|
+
· 按钮:沿用平台默认(新增 / 删除)
|
|
100
|
+
|
|
101
|
+
【流程设计】 (workflow.create → update → publish → bindRule)
|
|
102
|
+
· 模板:开始 → 审批节点(审批人:<角色>)→ 结束
|
|
103
|
+
· 绑定:提交事件 → <ruleCode>
|
|
104
|
+
|
|
105
|
+
【清理授权】 (data.delete / rule.delete / model.delete)
|
|
106
|
+
· 验收后删除:本条数据、该规则、模型 omc_mcp_walk(清单外对象另行报备)
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## 4. Review flow
|
|
110
|
+
|
|
111
|
+
1. Agent posts the draft(s) and asks **“确认写入 / 需要修改?”**
|
|
112
|
+
2. Reviewer answers:
|
|
113
|
+
- **确认** (nothing named) → the whole batch is approved → write.
|
|
114
|
+
- **点名要改第 N 张** → **整批挂起**,只改那张,改完重新全批过。
|
|
115
|
+
3. **先定参数 → 由参数生成草稿**:草稿里的类型/code/目标/映射,必须就是要发出的
|
|
116
|
+
参数值;不要先写一段话、执行时另拼参数。
|
|
117
|
+
4. After writing: **read back and compare**. If the readback differs from the
|
|
118
|
+
approved draft, **stop and report** — never silently accept or auto-retry.
|
|
119
|
+
|
|
120
|
+
## 5. Fingerprint re-check
|
|
121
|
+
|
|
122
|
+
A draft carries the environment fingerprint captured when it was written.
|
|
123
|
+
**Before executing an approved draft, re-check that fingerprint**; if it
|
|
124
|
+
changed, the draft is void — re-discover and re-present. No machine token
|
|
125
|
+
enforces this anymore, so the check is an explicit agent step, not a refusal
|
|
126
|
+
you can wait for.
|
|
127
|
+
|
|
128
|
+
## 6. Exemptions
|
|
129
|
+
|
|
130
|
+
- **空转写**(读回证明本次写不会改变任何字段/结构,如重复发布已发布表单)免草稿,
|
|
131
|
+
报一行「无变更」即可。**只要任一处会变,就回到完整草稿。**
|
|
132
|
+
- **免草稿开关只由人工主动说**(如「本轮免草稿」)才生效;agent 不得自行提议或默认。
|
|
133
|
+
豁免仅限**本轮新建的 `omc_mcp_*` 夹具**;**删除既有对象、改真实域,永不豁免**。
|
|
134
|
+
豁免期间每步仍报一行「做了什么」。
|
|
135
|
+
- **预授权任务书(自治执行)**:当你在**非交互**上下文运行(被委派的子代理 / 批处理 / 一次
|
|
136
|
+
性任务),且任务书本身就是一份完整变更包、并声明已批准(如项目 `AGENTS.md` 写明
|
|
137
|
+
「本基准任务书即已批准的需求草稿,可直接执行」)时——**任务书即草稿即批准**:执行前按
|
|
138
|
+
§3 粒度把变更包原样列一遍作为记录,然后**直接写入**。**不要停下来问「确认写入」**:
|
|
139
|
+
非交互上下文没有人类回合会回答,等待 = 永久停滞(实测:子代理因此空转到任务失败)。
|
|
140
|
+
范围以任务书为界,任务书之外的增删改仍需新草稿。指纹重核与写后读回照旧。
|
|
141
|
+
此豁免**要求任务书显式声明预授权**;agent 不得自行把交互会话当成自治上下文。
|
|
142
|
+
|
|
143
|
+
## 7. Cleanup
|
|
144
|
+
|
|
145
|
+
清理授权捆在创建授权里:创建草稿写明「验收后删除这些」,确认即一并授权。
|
|
146
|
+
**清单外的对象仍要单独出草稿。** 清理只碰自有 `omc_mcp_*` 夹具。
|
|
147
|
+
|
|
148
|
+
## 8. Canonical configuration order(规范配置顺序)
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
0. 选定应用并确认门户分组可见(discover_environment 的 portalHidden)
|
|
152
|
+
1. model.create (被引用的目标模型最先建)
|
|
153
|
+
2. field.create (全部字段;关联字段带 displayField + displayFieldType)
|
|
154
|
+
3. field.publish (模型级:一次发布该模型全部草稿字段)
|
|
155
|
+
4. form.draft → form.publish (脚手架依赖已发布字段;重跑必须带 fieldCodes)
|
|
156
|
+
5. listview.create/configure (依赖已发布字段;query/update 自动 publish=TRUE,无 draft→publish 两态)
|
|
157
|
+
6. rule.save → rule.enable (保存 ≠ 发布 ≠ 可见;enable 才 publish+启用,或 rule.save 传 publish:true)
|
|
158
|
+
7. workflow(依赖模型与字段就绪)
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
视图与表单脚手架都从**发布面**读字段元数据——字段未发布,列/控件就生成不出来。
|
|
162
|
+
`data.list` 对未配列的自定义字段投影为 null(显示面缺配置,不是数据缺失);核值用 `data.load`。
|
|
163
|
+
字段级变更(如关联展示字段)改完后,必须重走 `field.publish` → `form.draft` → `form.publish` 运行时才生效(表单控件快照字段 options);`field.update` 带 `"cascadeRepublish":true` 一调完成整条链(中途失败按 partial steps 如实报告),只刷新表单用 `form.publish rebuild:true`。
|
|
164
|
+
|
|
165
|
+
## Invariants
|
|
166
|
+
|
|
167
|
+
- 未确认不写入;改任何一张 = 整批暂停,重新全批通过才写。
|
|
168
|
+
- 批准跟着变更包走:一次批准一整包;中断后批准作废,恢复需重新草稿、重新确认。
|
|
169
|
+
- 草稿里的身份键带 code;类型用中文;关联写明映射目标。
|
|
170
|
+
- 执行前重核环境指纹,变了就重出草稿;写后读回核对。
|
|
171
|
+
- 一个 run 只发一次收口报告;生产环境可写但每笔必须显式带 `confirmProduction:true`。
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: omc-five-piece-flow
|
|
3
|
-
description: The CLI governed change process — use for any CloudPivot write (model, field, form, rule, workflow, data, service). discover → draft → permission check → execute → readback/cleanup.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Five-Piece Flow (五件套流程)
|
|
7
|
-
|
|
8
|
-
**五件套** — every governed change runs the same five pieces. High-level tools
|
|
9
|
-
orchestrate them; low-level tools expose each piece as one atom.
|
|
10
|
-
|
|
11
|
-
1. **Discover (发现)** — `discover_environment` / `environment.fingerprint`.
|
|
12
|
-
Applications, models, fields, forms; the environment fingerprint. Discovery
|
|
13
|
-
precedes every write.
|
|
14
|
-
2. **Draft (草稿)** — present the design as plain-language change package and
|
|
15
|
-
get explicit human approval through `omc-config-draft-review`.
|
|
16
|
-
3. **Permission check (权限检查)** — `writable:false` refuses before wire;
|
|
17
|
-
`production:true` additionally requires the write call to carry
|
|
18
|
-
`confirmProduction:true`. `dryRun` previews the exact plan without writing.
|
|
19
|
-
4. **Execute (执行)** — call the write tool once. The governance chain runs
|
|
20
|
-
(semantic gate → coverage gate → environment permission → version gate →
|
|
21
|
-
production confirmation → write lease), then authoritative readback. Success
|
|
22
|
-
records `deliveryState: DELIVERED`.
|
|
23
|
-
5. **Read back & clean up (读回与清理)** — prove the state with read tools;
|
|
24
|
-
delete owned fixtures and confirm exact absence. The delivery ends CLEANED
|
|
25
|
-
only when absence is proven.
|
|
26
|
-
|
|
27
|
-
## Invariants
|
|
28
|
-
|
|
29
|
-
- `writable` is the only environment write permission; no approval token or
|
|
30
|
-
self-approval setting exists.
|
|
31
|
-
- `uncertain` ≠ `ok`. A transport failure freezes; re-discover before retrying.
|
|
32
|
-
- Production is writable when `writable:true`, but every production write must
|
|
33
|
-
carry `confirmProduction:true` and records `productionConfirmed:true`.
|
|
34
|
-
- Cleanup touches owned fixtures only (prefix `omc_mcp_`) and exits with zero
|
|
35
|
-
residue.
|
|
1
|
+
---
|
|
2
|
+
name: omc-five-piece-flow
|
|
3
|
+
description: The CLI governed change process — use for any CloudPivot write (model, field, form, rule, workflow, data, service). discover → draft → permission check → execute → readback/cleanup.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Five-Piece Flow (五件套流程)
|
|
7
|
+
|
|
8
|
+
**五件套** — every governed change runs the same five pieces. High-level tools
|
|
9
|
+
orchestrate them; low-level tools expose each piece as one atom.
|
|
10
|
+
|
|
11
|
+
1. **Discover (发现)** — `discover_environment` / `environment.fingerprint`.
|
|
12
|
+
Applications, models, fields, forms; the environment fingerprint. Discovery
|
|
13
|
+
precedes every write.
|
|
14
|
+
2. **Draft (草稿)** — present the design as plain-language change package and
|
|
15
|
+
get explicit human approval through `omc-config-draft-review`.
|
|
16
|
+
3. **Permission check (权限检查)** — `writable:false` refuses before wire;
|
|
17
|
+
`production:true` additionally requires the write call to carry
|
|
18
|
+
`confirmProduction:true`. `dryRun` previews the exact plan without writing.
|
|
19
|
+
4. **Execute (执行)** — call the write tool once. The governance chain runs
|
|
20
|
+
(semantic gate → coverage gate → environment permission → version gate →
|
|
21
|
+
production confirmation → write lease), then authoritative readback. Success
|
|
22
|
+
records `deliveryState: DELIVERED`.
|
|
23
|
+
5. **Read back & clean up (读回与清理)** — prove the state with read tools;
|
|
24
|
+
delete owned fixtures and confirm exact absence. The delivery ends CLEANED
|
|
25
|
+
only when absence is proven.
|
|
26
|
+
|
|
27
|
+
## Invariants
|
|
28
|
+
|
|
29
|
+
- `writable` is the only environment write permission; no approval token or
|
|
30
|
+
self-approval setting exists.
|
|
31
|
+
- `uncertain` ≠ `ok`. A transport failure freezes; re-discover before retrying.
|
|
32
|
+
- Production is writable when `writable:true`, but every production write must
|
|
33
|
+
carry `confirmProduction:true` and records `productionConfirmed:true`.
|
|
34
|
+
- Cleanup touches owned fixtures only (prefix `omc_mcp_`) and exits with zero
|
|
35
|
+
residue.
|
package/skills/omc-glossary.md
CHANGED
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: omc-glossary
|
|
3
|
-
description: OMC and CloudPivot terminology. Consult when a term is unclear — 环境指纹, 覆盖清单, 交付态, bizsheet, Void envelope, or a result status.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# OMC Glossary (术语表)
|
|
7
|
-
|
|
8
|
-
Terminology for the `omc` configuration CLI. Built on CloudPivot 8.6 (anchor
|
|
9
|
-
8.6.26); other versions/product lines are accepted in compatibility mode with a
|
|
10
|
-
`versionNotice`.
|
|
11
|
-
|
|
12
|
-
## Core nouns
|
|
13
|
-
|
|
14
|
-
- **CloudPivot (云枢)** — the low-code platform being configured. The CLI
|
|
15
|
-
drives its design-time and runtime APIs over HTTPS.
|
|
16
|
-
- **Environment profile (命名环境)** — a named CloudPivot connection record
|
|
17
|
-
(baseUrl + applicationCode + optional engineCode, default marker, production
|
|
18
|
-
risk label, writable permission) in `omc.config.json`. Non-default
|
|
19
|
-
environments must be selected explicitly (`environment` argument, `OMC_ENV`,
|
|
20
|
-
or project `.omc-env`).
|
|
21
|
-
- **Multi-tenant engineCode (多租户租户码)** — the profile's optional
|
|
22
|
-
`engineCode`. On a multi-tenant deployment
|
|
23
|
-
(`systemConfig.options.multiTenancy === true`) the gateway routes by the
|
|
24
|
-
`x-lowcode-enginecode` header, which OMC sends on every request; without it
|
|
25
|
-
the gateway answers 404 (even for `/api/public/system/config`). Leave it unset
|
|
26
|
-
on single-tenant deployments.
|
|
27
|
-
- **Environment write permission (环境写权限)** — the profile's `writable`
|
|
28
|
-
boolean. False refuses every write before wire; true permits writes subject to
|
|
29
|
-
coverage, version, semantic, and production-confirmation gates.
|
|
30
|
-
- **Production confirmation (生产确认)** — the per-write `confirmProduction:true`
|
|
31
|
-
acknowledgement required when the selected profile is marked production. It
|
|
32
|
-
records `productionConfirmed:true`; it is not a second configuration key.
|
|
33
|
-
- **Credential store (凭据存储)** — `~/.config/omc/credentials`, mode 0600.
|
|
34
|
-
Never packaged, never echoed, never logged. `OMC_CLOUDPIVOT_CREDENTIAL`
|
|
35
|
-
(JSON) takes priority.
|
|
36
|
-
- **Environment fingerprint** — canonical sha256 of (environment name,
|
|
37
|
-
authoritative origin, application code, enterprise id). Identifies the
|
|
38
|
-
environment in plans and audit artifacts; it is not an approval-token binding.
|
|
39
|
-
- **Coverage manifest (覆盖清单)** — the machine-readable M1 manifest vendored
|
|
40
|
-
at `coverage/m1-coverage-manifest-v1.json`. The tool surface is bounded by
|
|
41
|
-
it; out-of-coverage calls reject citing the entry.
|
|
42
|
-
- **Write lease (写租约)** — per-environment serialization of write
|
|
43
|
-
operations inside one server process.
|
|
44
|
-
- **Delivery state (交付态)** — DELIVERED (write + authoritative readback
|
|
45
|
-
recorded) → VERIFIED (agent verified readback) → CLEANED (fixture
|
|
46
|
-
removed, exact absence proven).
|
|
47
|
-
|
|
48
|
-
## CloudPivot domain nouns
|
|
49
|
-
|
|
50
|
-
- **Model (.bizmodels)** — design-time schema; LIST or TREE. Physical
|
|
51
|
-
delete is proven; there is no separate model-publish wire call (a model
|
|
52
|
-
reaches its usable state via field/form publication).
|
|
53
|
-
- **Field (bizproperty)** — model property. Draft → publish two-face
|
|
54
|
-
lifecycle; draft face `isPublish=false`, published face `isPublish=true`.
|
|
55
|
-
- **Field families (字段族)** — live-accepted types: text-extension,
|
|
56
|
-
people-department, address-attachment, dictionary-enum, relevance,
|
|
57
|
-
numeric-logical, date-time (+ formula EXPRESSION-only).
|
|
58
|
-
- **Default form (bizsheet)** — the model's own sheet. Draft-first:
|
|
59
|
-
`bizsheet/update` saves the draft (publishedHtmlJson carried explicitly),
|
|
60
|
-
then `bizsheet/publish` publishes.
|
|
61
|
-
- **Business rule (businessrule)** — B-plane rule graph. B1 dead-state
|
|
62
|
-
rules and B1.2 CRUD/conditional node graphs; enable = publish by rule id.
|
|
63
|
-
- **Online JS** — form-level custom script embedded in the published form:
|
|
64
|
-
compose (preserves the platform skeleton) → publish; the authoritative
|
|
65
|
-
readback is `onlinejs.compose` returning the read-back publishedHtmlJson
|
|
66
|
-
with a SHA-256 fingerprint. (There is no `get_source`/programming tool —
|
|
67
|
-
that removed face authored backend Java, not form Online JS.)
|
|
68
|
-
- **M2 runtime data** — `runtime/form/save|load|delete`, `query/list` (CLI
|
|
69
|
-
tools `data.save` / `data.load` / `data.submit` / `data.update` / `data.list`).
|
|
70
|
-
`data.load` is the authoritative custom-field readback; list projection
|
|
71
|
-
is a pinned boundary (custom fields keys-present-values-null).
|
|
72
|
-
- **B2 service (bizservice)** — service + method registration face.
|
|
73
|
-
- **List view (query)** — design-time list-view header lifecycle with
|
|
74
|
-
forced LIST/showOnPc/unpublished defaults.
|
|
75
|
-
- **Void envelope** — CloudPivot responses are `{errcode, errmsg, data}`;
|
|
76
|
-
errcode 0 with `data: null` is a success with no payload.
|
|
77
|
-
|
|
78
|
-
## Result vocabulary
|
|
79
|
-
|
|
80
|
-
- `ok` — performed and authoritatively read back.
|
|
81
|
-
- `refused` — governance or coverage refusal; nothing executed. Citations
|
|
82
|
-
name the manifest entry.
|
|
83
|
-
- `uncertain` + `frozen: true` — transport outcome cannot be established
|
|
84
|
-
(outage/timeout). Never treated as success; re-discover before retrying.
|
|
85
|
-
- `dry-run` — a validated plan is returned with zero environment writes; rerun without dry-run to execute when the environment permits it.
|
|
86
|
-
- `production-confirmation-required` — a writable production environment refused a write because the call omitted `confirmProduction:true`.
|
|
1
|
+
---
|
|
2
|
+
name: omc-glossary
|
|
3
|
+
description: OMC and CloudPivot terminology. Consult when a term is unclear — 环境指纹, 覆盖清单, 交付态, bizsheet, Void envelope, or a result status.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# OMC Glossary (术语表)
|
|
7
|
+
|
|
8
|
+
Terminology for the `omc` configuration CLI. Built on CloudPivot 8.6 (anchor
|
|
9
|
+
8.6.26); other versions/product lines are accepted in compatibility mode with a
|
|
10
|
+
`versionNotice`.
|
|
11
|
+
|
|
12
|
+
## Core nouns
|
|
13
|
+
|
|
14
|
+
- **CloudPivot (云枢)** — the low-code platform being configured. The CLI
|
|
15
|
+
drives its design-time and runtime APIs over HTTPS.
|
|
16
|
+
- **Environment profile (命名环境)** — a named CloudPivot connection record
|
|
17
|
+
(baseUrl + applicationCode + optional engineCode, default marker, production
|
|
18
|
+
risk label, writable permission) in `omc.config.json`. Non-default
|
|
19
|
+
environments must be selected explicitly (`environment` argument, `OMC_ENV`,
|
|
20
|
+
or project `.omc-env`).
|
|
21
|
+
- **Multi-tenant engineCode (多租户租户码)** — the profile's optional
|
|
22
|
+
`engineCode`. On a multi-tenant deployment
|
|
23
|
+
(`systemConfig.options.multiTenancy === true`) the gateway routes by the
|
|
24
|
+
`x-lowcode-enginecode` header, which OMC sends on every request; without it
|
|
25
|
+
the gateway answers 404 (even for `/api/public/system/config`). Leave it unset
|
|
26
|
+
on single-tenant deployments.
|
|
27
|
+
- **Environment write permission (环境写权限)** — the profile's `writable`
|
|
28
|
+
boolean. False refuses every write before wire; true permits writes subject to
|
|
29
|
+
coverage, version, semantic, and production-confirmation gates.
|
|
30
|
+
- **Production confirmation (生产确认)** — the per-write `confirmProduction:true`
|
|
31
|
+
acknowledgement required when the selected profile is marked production. It
|
|
32
|
+
records `productionConfirmed:true`; it is not a second configuration key.
|
|
33
|
+
- **Credential store (凭据存储)** — `~/.config/omc/credentials`, mode 0600.
|
|
34
|
+
Never packaged, never echoed, never logged. `OMC_CLOUDPIVOT_CREDENTIAL`
|
|
35
|
+
(JSON) takes priority.
|
|
36
|
+
- **Environment fingerprint** — canonical sha256 of (environment name,
|
|
37
|
+
authoritative origin, application code, enterprise id). Identifies the
|
|
38
|
+
environment in plans and audit artifacts; it is not an approval-token binding.
|
|
39
|
+
- **Coverage manifest (覆盖清单)** — the machine-readable M1 manifest vendored
|
|
40
|
+
at `coverage/m1-coverage-manifest-v1.json`. The tool surface is bounded by
|
|
41
|
+
it; out-of-coverage calls reject citing the entry.
|
|
42
|
+
- **Write lease (写租约)** — per-environment serialization of write
|
|
43
|
+
operations inside one server process.
|
|
44
|
+
- **Delivery state (交付态)** — DELIVERED (write + authoritative readback
|
|
45
|
+
recorded) → VERIFIED (agent verified readback) → CLEANED (fixture
|
|
46
|
+
removed, exact absence proven).
|
|
47
|
+
|
|
48
|
+
## CloudPivot domain nouns
|
|
49
|
+
|
|
50
|
+
- **Model (.bizmodels)** — design-time schema; LIST or TREE. Physical
|
|
51
|
+
delete is proven; there is no separate model-publish wire call (a model
|
|
52
|
+
reaches its usable state via field/form publication).
|
|
53
|
+
- **Field (bizproperty)** — model property. Draft → publish two-face
|
|
54
|
+
lifecycle; draft face `isPublish=false`, published face `isPublish=true`.
|
|
55
|
+
- **Field families (字段族)** — live-accepted types: text-extension,
|
|
56
|
+
people-department, address-attachment, dictionary-enum, relevance,
|
|
57
|
+
numeric-logical, date-time (+ formula EXPRESSION-only).
|
|
58
|
+
- **Default form (bizsheet)** — the model's own sheet. Draft-first:
|
|
59
|
+
`bizsheet/update` saves the draft (publishedHtmlJson carried explicitly),
|
|
60
|
+
then `bizsheet/publish` publishes.
|
|
61
|
+
- **Business rule (businessrule)** — B-plane rule graph. B1 dead-state
|
|
62
|
+
rules and B1.2 CRUD/conditional node graphs; enable = publish by rule id.
|
|
63
|
+
- **Online JS** — form-level custom script embedded in the published form:
|
|
64
|
+
compose (preserves the platform skeleton) → publish; the authoritative
|
|
65
|
+
readback is `onlinejs.compose` returning the read-back publishedHtmlJson
|
|
66
|
+
with a SHA-256 fingerprint. (There is no `get_source`/programming tool —
|
|
67
|
+
that removed face authored backend Java, not form Online JS.)
|
|
68
|
+
- **M2 runtime data** — `runtime/form/save|load|delete`, `query/list` (CLI
|
|
69
|
+
tools `data.save` / `data.load` / `data.submit` / `data.update` / `data.list`).
|
|
70
|
+
`data.load` is the authoritative custom-field readback; list projection
|
|
71
|
+
is a pinned boundary (custom fields keys-present-values-null).
|
|
72
|
+
- **B2 service (bizservice)** — service + method registration face.
|
|
73
|
+
- **List view (query)** — design-time list-view header lifecycle with
|
|
74
|
+
forced LIST/showOnPc/unpublished defaults.
|
|
75
|
+
- **Void envelope** — CloudPivot responses are `{errcode, errmsg, data}`;
|
|
76
|
+
errcode 0 with `data: null` is a success with no payload.
|
|
77
|
+
|
|
78
|
+
## Result vocabulary
|
|
79
|
+
|
|
80
|
+
- `ok` — performed and authoritatively read back.
|
|
81
|
+
- `refused` — governance or coverage refusal; nothing executed. Citations
|
|
82
|
+
name the manifest entry.
|
|
83
|
+
- `uncertain` + `frozen: true` — transport outcome cannot be established
|
|
84
|
+
(outage/timeout). Never treated as success; re-discover before retrying.
|
|
85
|
+
- `dry-run` — a validated plan is returned with zero environment writes; rerun without dry-run to execute when the environment permits it.
|
|
86
|
+
- `production-confirmation-required` — a writable production environment refused a write because the call omitted `confirmProduction:true`.
|