# TSL 工具链与验证命令模板

文档类型：项目工具链模板页
是否可直接用于生成代码：否
是否含可直接照写示例：否
是否含不可照写反例：否
遇到不确定时：项目自身文档、`scripts/*` 入口脚本、CI 配置；只有目标项目已真实填写且没有 `<...>` 占位符时才看本页。

本页只记录目标项目的 TSL 执行事实模板，不是通用执行手册，也不是 TSL 语法事实页。只有目标项目已真实填写且没有 `<...>` 占位符时，本页才可以作为执行依据；仍有 `<...>` 占位符时，不能作为执行依据。本页不提供真实可执行命令。

## 模板说明

- 本文件提供一份通用占位模板，不是通用执行手册。
- 只有在本项目已经写明工具链、执行入口和验证命令后，才可以把它当成执行依据。
- 如果这页里仍然出现 `<...>` 形式的占位符，说明本项目还没有写明真实信息，应回到项目自身文档或脚本入口。
- 以下命令片段全部属于模板占位，不代表真实命令，也不应被 AI 直接复制执行。

## 为什么不可直接执行

- 占位符没有绑定到本项目的真实解释器、路径、环境变量和脚本入口。
- 同一条模板命令在不同项目里可能对应不同的安装方式、权限模型和验证流程。
- 如果直接照抄本页内容，最常见的错误是路径不存在、可执行入口错误、凭证缺失或验证层级不匹配。

## 项目填写项

### 解释器/编译器（必填）

- 工具名称：`<tsl/tslcli/内部工具名>`
- 安装方式：`<内部安装包/路径/IDE 自带/CI 镜像等>`
- 版本要求：`<固定版本或范围；未知可写 N/A>`
- 推荐统一入口脚本：`scripts/tsl.{sh,ps1}`

可执行入口模板：

代码块身份：配置片段 / 概念骨架

```text
<tsl>
<tsl> <path/to/script.tsl> <args...>
```

平台命令模板：

代码块身份：配置片段 / 概念骨架

```text
macOS/Linux: <tsl>
Windows: <tsl>
```

### 运行环境（按需）

- 必要环境变量模板：

代码块身份：配置片段 / 概念骨架

```text
<TSL_HOME>
<TSL_LIB_PATH>
<LICENSE_PATH>
```

- 外部依赖模板：

代码块身份：配置片段 / 概念骨架

```text
<数据库/服务/共享目录/网络权限/账户权限>
```

- 运行约束模板：

代码块身份：配置片段 / 概念骨架

```text
是否允许联网：<yes/no>
是否需要许可证/凭证：<说明如何在本地与 CI 提供；禁止写入仓库>
```

- 凭证、许可证等敏感信息应通过环境变量或 CI secrets 注入；文档只写变量名或获取方式，不写明文值。

### 验证命令（必须填写）

- 至少填写一个最小冒烟命令。
- 如果项目存在测试体系，应继续填写单元测试、静态检查和构建命令。
- 所有命令都应替换成本项目的真实入口，不要保留模板占位。

最小冒烟模板：

代码块身份：配置片段 / 概念骨架

```text
<tsl> <path/to/SmokeTest.tsl> <args...>
sh scripts/smoke.sh
powershell -File scripts/smoke.ps1
```

单元测试模板：

代码块身份：配置片段 / 概念骨架

```text
sh scripts/test.sh
<tsl> <path/to/TestRunner.tsl> <args...>
```

静态检查 / 格式化模板：

代码块身份：配置片段 / 概念骨架

```text
sh scripts/lint.sh
sh scripts/format.sh
```

构建 / 打包模板：

代码块身份：配置片段 / 概念骨架

```text
sh scripts/build.sh
```

成功信号也必须写成真实规则，例如退出码、关键输出或产物路径。

### 失败处理约定（必填）

- 只修复与本次改动直接相关的失败；无关失败在输出中说明并隔离。
- 若某验证步骤无法执行，必须明确写出原因与替代验证手段，例如最小复现脚本或手动检查清单。
- 建议记录：执行的命令、退出码、关键日志片段和产物位置，便于 review 与复现。
