name: yida-formula-evaluate
description: 静态检查宜搭公式语法、字段引用和常见风险。适用于用户要求“检查公式”“公式是否能用”“定位公式报错”。不适用于:声明平台真实运行结果、保存表单配置或编写完整公式字段方案。
宜搭公式静态检查
严格禁止 (NEVER DO)
- 不要声称本地检查等同于宜搭平台真实执行结果;本技能只做静态检查。
- 不要编造平台支持的函数、字段 ID 或错误码;不确定时明确标注“需在宜搭平台验证”。
- 不要在没有 Schema 的情况下断言
#{fieldId} 一定存在;应提示用户提供 Schema 或先运行 openyida get-schema。
- 不要把
>、>=、== 这类运算符自动当作可靠写法;宜搭公式优先使用 GT/GE/EQ/NE/LT/LE 等函数。
适用场景
正向触发:
- “帮我检查这个公式”
- “这个宜搭公式为什么报错”
- “公式字段是否引用了正确 fieldId”
- “发布前检查公式风险”
不适用场景:
| 场景 |
应使用技能 |
| 编写公式字段和赋值规则方案 |
yida-formula |
| 获取真实字段 ID |
yida-get-schema |
| 修改/发布表单字段配置 |
yida-create-form-page |
命令
openyida formula evaluate <公式或文件> [--schema schema.json] [--json] [--strict]
| 参数 |
说明 |
<公式或文件> |
公式字符串,或保存公式的本地文件路径 |
--schema <schema.json> |
可选;用 openyida get-schema 输出校验 #{fieldId} 是否存在 |
--json |
输出机器可读 JSON |
--strict |
存在阻塞错误时返回非 0 退出码,适合 CI |
推荐流程
- 如果公式包含字段引用,先获取 Schema:
openyida get-schema APP_XXX FORM-XXX > .cache/form-schema.json
- 运行静态检查:
openyida formula evaluate 'IF(GT(#{numberField_total}, 100), "高", "低")' --schema .cache/form-schema.json
- 根据诊断结果修复:
| 诊断 |
处理 |
field_ref_not_in_schema |
重新通过 get-schema 确认真实 fieldId,禁止猜测 |
comparison_operator |
改用 GT/GE/LT/LE/EQ/NE |
fullwidth_punctuation |
将中文逗号、括号、引号改为英文半角符号 |
function_unknown |
检查函数是否确为宜搭支持函数;无法确认时在平台公式编辑器中验证 |
parenthesis_unclosed / string_unclosed |
补全括号或引号 |
输出判断
ok: true 只表示没有本地发现的阻塞错误。
warning 表示高风险写法或本地无法确认的点,不应忽略。
error 表示本地可确定的问题,例如字段引用不在提供的 Schema 中,或括号/字段引用明显不闭合。
与其他技能配合
| 步骤 |
技能 |
说明 |
| 前置 |
yida-get-schema |
获取真实字段 ID |
| 前置/并行 |
yida-formula |
编写或改写公式 |
| 后续 |
yida-create-form-page |
将确认后的公式写入表单配置 |