mcpField
A
add-template

add-template

github.com/plainlang開発8042 回インストール今日更新
リポジトリ

add-template について

Liquid の include とパラメーターを使い、再利用可能な `.plain` 仕様テンプレートを作成するスキルです。テンプレートの確認や作成、展開後の検証を案内します。

主な機能

  1. 01パラメーター付き include による仕様の再利用
  2. 02`template/` ディレクトリでのテンプレート作成
  3. 03パラメーターと展開後の内容の検証

活用シーン

  1. 01複数の `.plain` ファイルで仕様パターンを再利用
  2. 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 ファイル間で同じ仕様の内容を再利用します。各インクルードには異なるパラメーターを渡せるため、1 つのソースから用途に合わせた出力を生成できます。これは 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 }}".

ワークフロー:既存のテンプレートをインクルードする

  1. template/ ディレクトリを確認して、利用できるテンプレートを調べます。
  2. テンプレートを読み込み、 必要なパラメーターと生成される内容を把握します。
  3. 対象の .plain ファイルに {% include %} 文を追加し、 正しいパラメーターを指定します。
  4. 展開された内容を確認し、 概念名の衝突やセクションの重複が生じないことを確かめます。

ワークフロー:新しいテンプレートを作成する

  1. 繰り返されているパターンを特定します。 複数の .plain ファイル間で重複している(または重複する予定の)仕様の内容を探します。
  2. 共通の内容を抽出し、template/ ディレクトリに新しい .plain ファイルとして保存します。
  3. 異なる部分をパラメーター化します。 変化する箇所を Liquid 変数に置き換えます。
  4. 元のファイルを更新し、重複した内容の代わりに {% include %} を使うようにします。

検証チェックリスト

  • テンプレートファイルが template/ ディレクトリにある
  • 変化する部分がすべて Liquid 変数でパラメーター化されている
  • 各 {% include %} の呼び出し箇所で必要なパラメーターがすべて渡されている
  • 展開された内容で概念名の衝突が生じない
  • テンプレートが複数の .plain ファイルで使われている(そうでない場合は、内容をインライン化する)

コメント