--- name: tsl-syntax-reference description: Use when Codex 需要编写、修改、审查或解释 TSL/TSF 代码,或排查语法错误并核对语言与运行时规则。 --- # TSL Syntax Reference ## 范围判断 只处理 TSL/TSF 的语言语法、文件模型、表达式、控制流、对象、运行时语言结构和 TS-SQL 外形。先判断用户的问题是否属于“语言怎么写”;API 函数事实、命名偏好、代码风格、工具链、模块集成和项目执行事实分别交给其事实所有者。 ## 写代码前确定文件模型 生成或修改代码前,先读 [references/01_quickstart.md](references/01_quickstart.md),再根据交付目标确定 `.tsl` 或 `.tsf` 文件模型。后缀或顶层结构会影响正确性而需求不足时,停止并向用户确认;不要凭 Pascal、Python、JavaScript、TypeScript 或其他相似语言补全 TSL 语法。 ## 选择一个主专题 从 [references/index.md](references/index.md) 的“任务 → 主专题 → 停止条件”表选择一个主专题。先按最具体的任务信号命中,不要顺序通读全部专题,也不要把路由页本身当成语法事实页。 ## 渐进读取候选页 先读主专题,只在主专题明确列出的候选页中继续读取。每次只补当前缺口;得到足够事实后停止。遇到语法错误、相互矛盾的写法或高频误写时,再读 [references/11_pitfalls.md](references/11_pitfalls.md) 交叉核对。 ## 遵守代码块身份协议 页面级元数据只用于粗筛,生成代码时以紧邻代码块的 `代码块身份` 为准: - `可直接照写示例`:可以作为源码外形,但仍需按当前任务替换业务内容。 - `反例 / 不可照写`:只用于识别错误边界,不得复制为实现。 - `输出片段`:只表示结果,不得当作源码。 - `配置片段 / 概念骨架`:只表达结构或配置意图,不得假定为可直接运行代码。 代码块没有身份、身份与正文冲突或缺少支持当前结论的事实时,停止生成并报告缺口。 ## 交接其他事实所有者 - API 名称、签名、参数、返回值和金融取数事实:使用 `tsl-api-reference` skill。 - 命名偏好:交给仓库的 `docs/tsl/naming.md`。 - 代码风格:交给仓库的 `docs/tsl/code_style.md`。 - 验证命令与工具链:交给仓库的 `docs/tsl/toolchain.md`、项目脚本或 CI。 - Python 调 TSL、回测、通知等模块集成:交给仓库的 `docs/tsl/modules/`。 - 项目路径、数据结构、部署方式和运行参数:只使用目标项目的真实文档与配置。 不要把这些外部领域复制进本 Skill;完成交接后由对应事实所有者继续判断。 ## 缺口时停止 主专题和候选页没有给出结论、运行时版本不明、项目事实缺失或依赖的 Skill 不可用时,明确说明缺失项并停止。不得以经验、相似语言或猜测产生新的 TSL 写法。 ## 执行 TSL 前读取项目指引 需要实际执行 TSL 时,先读取目标文件附近最近的 `AGENTS.md`,完成平台检测并严格使用其中指定的解释器环境。不同平台或多个 Windows 环境不得混用、默认任选或自行回退。