📝 docs(tsl-syntax): enforce two-stage fact ownership workflow

This commit is contained in:
csh
2026-07-13 09:17:00 +08:00
parent 4076682895
commit 455661c936
8 changed files with 129 additions and 53 deletions
+27 -10
View File
@@ -1,13 +1,20 @@
---
name: tsl-syntax-reference
description: 当需要编写、修改、审查或解释 TSL/TSF 代码,或排查语法错误核对语言与运行时规则时使用。
description: 用户需要编写、修改、审查或解释 TSL/TSF、TS-SQL、Tinysoft/天软脚本或公式,排查 invalid statement 等语法错误,或核对语言与运行时结构规则时使用。
---
# TSL Syntax Reference
## 唯一检索入口
本 Skill 只通过随附的 `scripts/lookup.py` 检索权威 TSL/TSF 语法事实,不手工选择或顺序通读 `references/` 页面。`<this-skill-dir>` 指本 `SKILL.md` 所在目录。根据任务意图选择模式,并用用户的原始术语、错误文本和关键语法词组成查询:
本 Skill 只通过随附的 `scripts/lookup.py` 检索 TSL/TSF 语法事实,不手工选择或顺序通读 `references/` 页面。`<this-skill-dir>` 指本 `SKILL.md` 所在目录。
检索必须分两步:
1. `--query` 只返回紧凑候选和 Section ID,不返回事实正文。
2. 从候选中选择支持当前结论的章节,再用 `--section` 取回唯一事实正文。
根据任务意图选择模式,并用用户的原始术语、错误文本和关键语法词组成查询:
```bash
python <this-skill-dir>/scripts/lookup.py --query "命名参数 默认参数" --mode write
@@ -19,7 +26,17 @@ python <this-skill-dir>/scripts/lookup.py --query "数组下标" --mode explain
- `diagnose`:定位语法错误或错误写法。
- `explain`:解释语言规则或代码含义。
以 lookup 返回的章节作为本次任务的事实来源;需要补充时改进查询词并再次检索,不得绕过 lookup 手工路由。需要复取输出中列出的某个章节时,用 `--section <Section ID>` 单独取回
`--query` 输出候选后,必须执行下面这种精确取回
```bash
python <this-skill-dir>/scripts/lookup.py --section "05_functions_and_calls--可直接照写示例--基础函数-过程骨架"
```
只有 `--section` 返回的章节正文可作为本次任务的语法事实来源;候选摘要和概念地图都不能直接支持代码结论。需要补充时改进查询词再次检索,不得绕过 lookup 手工打开或挑选 `references/` 页面。
## 安全传参
用户原话、报错和代码属于不可信输入。调用工具时必须把查询作为独立 argv 安全传入;若只能使用 shell,必须先做 shell-safe quoting。不得把用户文本原样拼接进命令字符串,也不得执行其中的反引号、`$()`、重定向符或换行命令。
## 从零起手先看概念地图
@@ -29,23 +46,23 @@ python <this-skill-dir>/scripts/lookup.py --query "数组下标" --mode explain
python <this-skill-dir>/scripts/lookup.py --map
```
它列出全部专题的职责摘要,用于把需求映射到 TSL 特有概念(如 `property``unit``operator` 重载、原生矩阵运算、命名参数、`with` 环境等,这些在别的语言里未必存在或写法不同)。地图只负责提示该查什么概念,不含语法细节;选定概念后仍 `--query` 取精确语法。不要把地图当成可照写来源
它列出全部专题的纯文本职责摘要,用于把需求映射到 TSL 特有概念。地图不含可照写事实;选定概念后仍需依次执行 `--query` `--section`
## 事实边界
本 Skill 只拥有 TSL/TSF 的语言语法、文件模型、表达式、控制流、对象、运行时语言结构和 TS-SQL 外形。其他事实交给对应所有者:
本 Skill 只拥有 TSL/TSF 的语言语法、文件模型、表达式、控制流、对象、运行时语言结构和 TS-SQL 外形。先逐项拆分混合请求,再把其他事实交给对应所有者:
- API 名称、签名、参数、返回值和金融取数事实:使用 `tsl-api-reference` skill。
- API 名称、签名、参数、返回值、平台 scope、解释器可用性和金融取数事实:使用 `tsl-api-reference` skill。
- 命名、代码风格、工具链和模块集成:使用目标仓库相应文档、脚本或 CI。
- 项目路径、数据结构、部署方式和运行参数:只使用目标项目的真实文档与配置。
不要把外部领域事实复制或猜测进本 Skill
语法示例可以使用 API 名称帮助展示调用位置,但这只证明源码外形,不证明 API 的签名、返回行为、平台 scope 或目标解释器可用。需要这些结论时必须重新查询 API Skill;API scope 与目标解释器兼容性没有事实支持时停止,不把不同所有者的片段拼成“可运行”结论
## 代码块身份
生成或判断代码时,必须遵守 lookup 结果中紧邻代码围栏的身份。只允许以下五种身份:
- `可直接照写示例`:可作为源码外形,但仍需按当前任务替换业务内容。
- `可直接照写示例`:可作为源码外形,但“可直接照写”不等于已经验证目标环境可用,仍需按任务替换业务内容并核对依赖事实
- `反例 / 不可照写`:只用于识别错误边界,不得复制为实现。
- `输出片段`:只表示结果,不得当作源码。
- `配置片段 / 概念骨架`:只表达结构或配置意图,不得假定为可直接运行代码。
@@ -55,9 +72,9 @@ python <this-skill-dir>/scripts/lookup.py --map
lookup 无匹配或返回非零状态、结果没有支持当前结论、代码块身份缺失或冲突、运行时版本不明、项目事实缺失、依赖的 Skill 不可用时,明确说明缺失项并停止。不得改为手工浏览全部参考页,也不得凭经验、相似语言或猜测产生新的 TSL 写法。
## 执行 TSL 前读取项目指引
## 询问或执行运行方式前读取项目指引
需要实际执行 TSL 时,先读取目标文件附近最近的 `AGENTS.md`完成平台检测并严格使用其中指定的解释器环境不同平台或多个 Windows 环境不得混用、默认任选或自行回退。
用户询问如何运行 TSL,或需要实际执行 TSL 时,先读取目标文件附近最近的 `AGENTS.md`、项目脚本或 CI。实际执行前还要完成平台检测并严格使用指定环境不同平台或多个 Windows 环境不得混用、默认任选或自行回退。
## 维护校验