关于 add-template
用于通过 Liquid include 和参数编写可复用 `.plain` 规范模板的 Skill,涵盖查找、创建模板及检查展开后的内容。
主要功能
- 01通过带参数的 include 复用规范
- 02在 `template/` 目录创建模板
- 03检查参数和展开后的内容
适用场景
- 01在多个 `.plain` 文件中复用规范模式
- 02为共享内容中的名称、路径或配置设置参数
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ plainlang/ plain-forge --skill add-template安装后在 Claude Code 中输入/add-template确认已加载。
详细介绍
添加模板
请先加载规则。 在读取、编辑或编写任何 .plain 文件之前,请调用 load-plain-reference 技能,并阅读它指引你查看的规则文件。只有在本次对话中已经运行过 load-plain-reference 时,才可跳过此步骤。
模板使用 Liquid 语法({% include %}),以便在多个 .plain 文件中重复使用相同的规范内容。每次包含都可以传入不同的参数,从而根据单一来源生成定制输出。这不同于 import 和 requires——模板用于带参数的文本复用,而不是模块依赖。
何时使用模板
- 多个
.plain文件需要使用完全相同的规范结构。 - 复用的内容只有特定值(名称、路径、配置)不同,并且可以参数化。
- 你想为多个模块中出现的某个模式设立单一事实来源。
格式
包含模板
使用 {% include %},并传入模板路径和参数:
{% include "console_app_template.plain", main_file_name: "app.py", app_name: "MyApp" %}
参数以键值对的形式跟在模板路径后面。在模板内部,使用 Liquid 变量语法({{ main_file_name }})访问参数。
编写模板
模板存放在 template/ 目录中。仅支持变量({{ variable_name }})——不支持条件、循环和其他 Liquid 功能:
***definitions***
- :{{ app_name }}MainFile: is the entry point file for :{{ app_name }}:.
***implementation reqs***
- :{{ app_name }}MainFile: should be called "{{ main_file_name }}".
工作流:包含现有模板
- 检查
template/目录,查看有哪些可用模板。 - 阅读模板,了解它需要哪些参数,以及会生成什么内容。
- 在目标
.plain文件中添加{% include %}语句,并传入正确的参数。 - 验证展开后的内容不会导致概念名称冲突或章节重复。
工作流:创建新模板
- 识别重复模式——找出在多个
.plain文件中重复(或将要重复)的规范内容。 - 将共用内容提取到
template/目录中的新.plain文件。 - 将差异参数化——用 Liquid 变量替换不同的部分。
- 更新原文件,使用
{% include %}替代重复内容。
验证清单
- 模板文件位于
template/目录中 - 所有不同的部分都使用 Liquid 变量进行了参数化
- 每个
{% include %}调用位置都传入了所有必需参数 - 展开后的内容不会导致概念名称冲突
- 模板被多个
.plain文件使用(否则,请直接内联内容)
评论
支持 Markdown