tielei60/informat-skills · Archived

informat-expression

当用户要求编写织信 / Informat UEL 表达式时使用,?

First seen Mar 17, 2026

Installation

$ npx skills add tielei60/informat-skills --skill informat-expression

Summary

当用户要求编写织信 / Informat UEL 表达式时使用,包括审批条件、流转条件、实例名称、自动完成规则、表单或仪表盘公式、API 返回模板、`${...}` 片段,或提到 `String.concat`、`Array.of`、`Date.datePart`、`User.usersWithRole`,或无法判断该…

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from tielei60/informat-skills.

npx skills add tielei60/informat-skills

Browse all from tielei60/informat-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 1
Default branch main
Open issues 0
Status Archived

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,397 B
  • docs SUMMARY.md 354 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 3 installs

SKILL.md

Informat Expression

用于把自然语言规则转换成 Informat / 织信平台可执行的 UEL 表达式。

先读顺序

按这个顺序读取:

  1. references/expression-rules.md
  2. references/expression-boundaries.md
  3. references/expression-sdk.md
  4. references/expression-examples.md

如果需要完整函数定义、User./Date. 边缘能力或 DSL 细节,再查:

  • ../../sources/informat.expression.md

如果用户要求示例资产、存档位置或“展示一个示例”,优先查:

  • ../../examples/generated_expressions/

适用场景

优先用于这些请求:

  • 审批条件
  • 流转条件
  • 实例名称表达式
  • 自动完成条件
  • 字段公式
  • 表单、仪表盘、API 返回值中的表达式
  • 类似“请给我一个 ${...} 规则”的请求
  • 需要判断“这件事该用表达式还是脚本”

如果用户需要的是脚本代码、自动化 JavaScript、平台脚本逻辑,改用 informat-script

强约束

  • 表达式必须使用 ${} 包裹。
  • ${} 外的内容是普通字符串,不会被执行。
  • 字符串拼接不要使用 +,只能使用 String.concat(...)
  • 数组字面量禁止使用,改用 Array.of(...)
  • 禁止输出 JavaScript 风格的 .map(...).filter(...).reduce(...)、箭头函数和对象字面量推导。
  • 可以使用来源文档明确存在的 DSL 函数,例如 Array.map(list, key)Array.filter(list, key, value)Array.join(...)
  • 只能使用来源资料里已知的表达式对象和函数。
  • 除法要考虑除数为 0 会抛异常。
  • 保留关键字不能误用为普通标识符。
  • Date.datePart(..., 'month') 中 1 月对应 0dayofweek 中星期日对应 0

两条硬规则

1. 字符串拼接

错误:

${ 'A' + 'B' }
${ name + '-' + code }

正确:

${ String.concat('A', 'B') }
${ String.concat(name, '-', code) }

2. 数组构造

错误:

${ ['a', 'b'] }
${ Array.first(User.usersWithRole(['researcher'])) }

正确:

${ Array.of('a', 'b') }
${ Array.first(User.usersWithRole(Array.of('researcher'))) }

输出方式

默认按这个顺序输出:

  1. 最终表达式
  2. 必要时补一句适用说明或 DSL 替代写法
  3. 用户要求示例资产或存档位置时,补充相关文件路径
  4. 若无法实现,单独列出原因,并建议改用脚本

如果用户要求多个候选表达式,就给多个合法版本,并说明差异。

示例资产

当用户要求查看、引用或说明示例资产时,使用 examples/generated_expressions/YYYY-MM/ 下的文件:

  • 字符串拼接 / 审批编号:examples/generatedexpressions/2026-03/stringconcat_example.txt
  • 0 基月份判断:examples/generatedexpressions/2026-03/datemonthzerobase.txt
  • User.usersWithRoleArray.ofexamples/generatedexpressions/2026-03/arrayofuserrole.txt
  • JS 风格 .map(...) 反例:examples/generatedexpressions/2026-03/jsstyle_error.txt

如果日期或月份目录变化,先用当前仓库里的 examples/generated_expressions/ 实际文件为准。

什么时候不要继续硬写表达式

遇到下面这些情况,优先停止并说明边界,再建议改用脚本:

  • 需要复杂流程控制、复杂副作用或多步编排
  • 需要 JavaScript 风格的循环、箭头函数、.map/.filter/.reduce
  • 需要调用来源资料中不存在的函数
  • 需要数组字面量或对象字面量来完成核心逻辑
  • 无法确认某个对象或函数是否真实存在

自检清单

输出前检查:

  • 是否完整使用了 ${}
  • 是否误用了 JavaScript 语法
  • 是否把字符串拼接写成了 +
  • 是否把数组写成了字面量
  • 是否把 JS .map/.filter 错当成了表达式 DSL
  • 是否误用了 JS 高阶函数或箭头函数
  • 是否存在除数为 0 的风险
  • 是否正确处理了月份与星期的 0 基取值
  • 是否在不能实现时明确说明了限制